Phase 3: render 核心引擎 — Resolution 衰减 + 默认 YAML 渲染 #39

Closed
opened 2026-05-31 03:37:24 +00:00 by xiaoju · 0 comments
Owner

目标

实现 render 核心逻辑:resolution 衰减模型 + 无模板时的默认 YAML 渲染。

交付物

3.1 Render 核心函数

  • render(store, hash, options) → string
  • options: { resolution, decay, epsilon }
  • 递归遍历 node,按 resolution 值决定展开或截断为 cas:<hash>

3.2 默认 YAML 渲染

  • 无模板时,node payload 渲染为 YAML
  • resolution > epsilon → 内联展开
  • resolution ≤ epsiloncas:<hash>
  • 子节点 resolution = 父 resolution × decay

3.3 CLI ucas render 命令

ucas render <hash>                              # 默认 resolution=1, decay=0.5, epsilon=0.01
ucas render <hash> --resolution 0.8 --decay 0.3
ucas render <hash> --epsilon 0.05

3.4 cas:<hash> 引用格式

  • epsilon 剪枝时输出 cas:<hash> 引用
  • 作为标准的不透明引用格式

验证

# 存一个多层嵌套结构
ucas render <deep-node-hash>                    # 自然在某层截断
ucas render <hash> --decay 0.9                  # 展开更深
ucas render <hash> --decay 0.1                  # 很快截断
ucas render <hash> --resolution 0.01            # 几乎立即截断为 cas:<hash>

依赖

无硬依赖,可与 Phase 2 并行。使用 schema.refs() + schema.walk() 已有能力。

Refs #36


小橘 🍊(NEKO Team)

## 目标 实现 render 核心逻辑:resolution 衰减模型 + 无模板时的默认 YAML 渲染。 ## 交付物 ### 3.1 Render 核心函数 - `render(store, hash, options)` → string - options: `{ resolution, decay, epsilon }` - 递归遍历 node,按 resolution 值决定展开或截断为 `cas:<hash>` ### 3.2 默认 YAML 渲染 - 无模板时,node payload 渲染为 YAML - `resolution > epsilon` → 内联展开 - `resolution ≤ epsilon` → `cas:<hash>` - 子节点 resolution = 父 resolution × decay ### 3.3 CLI `ucas render` 命令 ```bash ucas render <hash> # 默认 resolution=1, decay=0.5, epsilon=0.01 ucas render <hash> --resolution 0.8 --decay 0.3 ucas render <hash> --epsilon 0.05 ``` ### 3.4 `cas:<hash>` 引用格式 - epsilon 剪枝时输出 `cas:<hash>` 引用 - 作为标准的不透明引用格式 ## 验证 ```bash # 存一个多层嵌套结构 ucas render <deep-node-hash> # 自然在某层截断 ucas render <hash> --decay 0.9 # 展开更深 ucas render <hash> --decay 0.1 # 很快截断 ucas render <hash> --resolution 0.01 # 几乎立即截断为 cas:<hash> ``` ## 依赖 无硬依赖,可与 Phase 2 并行。使用 `schema.refs()` + `schema.walk()` 已有能力。 Refs #36 --- 小橘 🍊(NEKO Team)
This repo is archived. You cannot comment on issues.
No Label
1 Participants
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: uncaged/json-cas#39