dsh-super-code 0.3.2 → 0.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/cordis.patch.yml CHANGED
@@ -17,7 +17,7 @@
17
17
  - id: super-code
18
18
  name: dsh-super-code/super-code
19
19
  config:
20
- presetVersion: 0.3.2
20
+ presetVersion: 0.3.4
21
21
  presetInstallation: bundle:dsh-super-code
22
22
  - id: compaction
23
23
  name: cordis:group
@@ -62,6 +62,19 @@
62
62
  maxDepth: 1
63
63
  - id: skill-filesystem
64
64
  name: '@deepseek-ai/dsh-skill-filesystem'
65
+ # Declarations may be persisted in a profile patch. Resolve the
66
+ # installed package instead of treating that patch as a skill root.
67
+ - id: skill-super-code-bundled
68
+ name: '@deepseek-ai/dsh-skill-filesystem'
69
+ config:
70
+ providerName: super-code-bundled
71
+ includeDefaultRoots: false
72
+ watch: false
73
+ bundledSkillDir: !!js >-
74
+ (() => {
75
+ const require = process.getBuiltinModule('node:module').createRequire(new URL('package.json', baseUrl))
76
+ return require('node:path').join(require('node:path').dirname(require.resolve('dsh-super-code/package.json')), 'presets/super-code/skills')
77
+ })()
65
78
  - id: tool-skill
66
79
  name: '@deepseek-ai/dsh-tool-skill'
67
80
  - id: tool-presentation
@@ -0,0 +1,105 @@
1
+ # 致谢与借鉴 · Acknowledgements and Design References
2
+
3
+ 感谢为 Super Code 提供运行基础、设计启发、开放规范和评测资源的项目与维护者。本文展开 [README 致谢表格](../README.md#4-致谢--acknowledgements)中的具体贡献,范围为当前 `0.3.4` 主干及其已有研究记录。
4
+
5
+ We thank the projects and maintainers who provide Super Code's runtime foundation, design references, open specifications, and evaluation resources. This document expands the [README acknowledgements](../README.md#4-致谢--acknowledgements), covering the current `0.3.4` main branch and its recorded design studies.
6
+
7
+ ## DeepSeek Harness
8
+
9
+ **[项目与源码](https://github.com/deepseek-ai/deepseek-harness) · [MIT 许可证](https://github.com/deepseek-ai/deepseek-harness/blob/master/LICENSE)**
10
+
11
+ DeepSeek Harness 是本插件的运行基础。Super Code 复用宿主的 Agent、模型路由、会话、工具、权限、取消、持久化、子 Agent 和用量记录;批量调用与独立读取通过宿主原生 PTC 调度。预设组合沿用官方的 compaction、文件、搜索、终端、网页、子 Agent 与 Skill 插件。
12
+
13
+ DeepSeek Harness is the runtime foundation. Super Code uses its Agents, model routing, sessions, tools, permissions, cancellation, persistence, subagents, and usage records. Native PTC schedules batched calls and independent reads. Preset compositions use the official compaction, file, search, shell, Web, subagent, and Skill plugins.
14
+
15
+ Web 与桌面界面依托 Harness 的 React、主题变量、Remote、设置页、侧栏和会话投影接口。对话式 Agent 详情也参考宿主的消息与工具调用呈现。Cordis 的插件生命周期和组合机制、Schemastery 的配置机制同样来自宿主提供的基础设施。
16
+
17
+ The Web and desktop interfaces use Harness-provided React, theme variables, Remotes, settings pages, sidebars, and session projections. Chat-style Agent details also draw on its message and tool-call presentation. Cordis supplies plugin lifecycles and composition, while Schemastery supplies configuration facilities through the host.
18
+
19
+ 实现对应:[预设组合](../presets/super-code/agent.cordis.yml)、[声明式预设](../cordis.patch.yml)、[宿主接入](https://github.com/ArtlexYoung/dsh-super-code/blob/main/src/dsh/index.ts)、[客户端](../client/index.js)。
20
+
21
+ Implementation: [preset composition](../presets/super-code/agent.cordis.yml), [declarative preset](../cordis.patch.yml), [host integration](https://github.com/ArtlexYoung/dsh-super-code/blob/main/src/dsh/index.ts), and [client](../client/index.js).
22
+
23
+ ## ZCode
24
+
25
+ **[项目与源码](https://github.com/zai-org/ZCode) · [Apache-2.0 许可证](https://github.com/zai-org/ZCode/blob/main/LICENSE)**
26
+
27
+ 0.3.2 界面设计阶段研究了 ZCode 的 [DESIGN.md](https://github.com/zai-org/ZCode/blob/main/DESIGN.md)、语义主题与字号、Button / Input、设置资源分组、分段切换、搜索框、确认对话框和 WorkflowAgentPill。感谢这些可供阅读的设计与组件实现,它们帮助梳理紧凑布局、清晰层级、分组操作和交互状态。
28
+
29
+ During the 0.3.2 UI design work, we studied ZCode's [DESIGN.md](https://github.com/zai-org/ZCode/blob/main/DESIGN.md), semantic themes and typography, Button / Input components, settings resource groups, segmented tabs, search fields, confirmation dialogs, and WorkflowAgentPill. These design documents and component implementations informed compact layouts, clear hierarchy, grouped actions, and interaction states.
30
+
31
+ Super Code 的界面接入仍采用 Harness 的公开接口与主题变量。ZCode 在这里是设计参考,没有作为插件依赖引入;执行树保留 Super Code 的圆形节点与运行反馈。
32
+
33
+ Super Code implements its interface through Harness's public APIs and theme variables. ZCode is a design reference rather than a package dependency; the execution tree keeps Super Code's circular nodes and running feedback.
34
+
35
+ ## Agent Skills
36
+
37
+ **[格式规范](https://agentskills.io/specification) · [规范仓库与许可证](https://github.com/agentskills/agentskills)**
38
+
39
+ 内嵌前端 Skill 采用 Agent Skills 的目录格式:SKILL.md、YAML 元数据和 references/ 资源目录。宿主先提供名称与短描述,匹配任务后再加载正文和相关参考文件。感谢这套开放约定,使指导内容可以保持简短入口、按需展开,并与项目和用户自己的 Skill 共存。
40
+
41
+ The bundled frontend Skill follows Agent Skills conventions: SKILL.md, YAML metadata, and a references/ resource directory. The host exposes a name and short description first, then loads the body and relevant resources when needed. This open format supports a short entry point, progressive disclosure, and coexistence with project and user Skills.
42
+
43
+ 实现对应:[super-code-frontend](../presets/super-code/skills/super-code-frontend/SKILL.md)。格式与内容加载复用 Harness 的原生 Skill 能力。
44
+
45
+ Implementation: [super-code-frontend](../presets/super-code/skills/super-code-frontend/SKILL.md). Parsing and content loading use Harness's native Skill facilities.
46
+
47
+ ## 前端设计与无障碍资料 · Frontend Design and Accessibility
48
+
49
+ ### Apple Human Interface Guidelines
50
+
51
+ **[布局](https://developer.apple.com/design/human-interface-guidelines/layout) · [无障碍](https://developer.apple.com/design/human-interface-guidelines/accessibility) · [按钮](https://developer.apple.com/design/human-interface-guidelines/buttons) · [反馈](https://developer.apple.com/design/human-interface-guidelines/feedback)**
52
+
53
+ 前端 Skill 的补充研究阅读了上述官方指南,采纳对齐表达关系、布局适应容器与字体、控制尺寸与间隔降低操作负担、交互可预测、反馈就近且适度等原则。这些原则被整理进视觉设计、交互状态和浏览器验证三份按需参考,感谢指南对具体交互问题的细致说明。
54
+
55
+ The frontend Skill study used these official guides for alignment, layouts that adapt to containers and typography, control size and spacing, predictable interaction, and timely, proportionate feedback. These principles inform the Skill's visual-design, interaction-state, and browser-validation references.
56
+
57
+ 采纳范围是可迁移的交互原则;产品仍沿用自己的视觉语言。原生平台尺寸单位不直接换成 Web 的 CSS pixel,材质、字体和图标也不作为统一模板。资料适用条款见 [Apple Developer 条款](https://developer.apple.com/support/terms/)。
58
+
59
+ The reference concerns transferable interaction principles, applied within each product's visual language. Native platform units are not treated as CSS pixels, and platform materials, typography, and icons are not prescribed as a template. See [Apple Developer terms](https://developer.apple.com/support/terms/) for applicable documentation terms.
60
+
61
+ ### W3C WCAG 2.2
62
+
63
+ **[WCAG 2.2](https://www.w3.org/TR/WCAG22/) · [2.5.8 Target Size (Minimum) 说明](https://www.w3.org/WAI/WCAG22/Understanding/target-size-minimum.html)**
64
+
65
+ 感谢 W3C Web Accessibility Initiative 对操作目标尺寸、间距和例外条件的公开说明。前端 Skill 使用 WCAG 2.2 AA 2.5.8 的 24 × 24 CSS pixel 尺寸及间距等例外作为 Web 检查依据,并要求通过实际命中、键盘操作和内容验证检查可用性。数字检查通过不等于整个界面已满足无障碍要求。
66
+
67
+ We thank the W3C Web Accessibility Initiative for its target-size, spacing, and exception guidance. The frontend Skill uses WCAG 2.2 AA 2.5.8's 24 × 24 CSS pixel criterion and its exceptions when checking Web controls, alongside real hit-area, keyboard, and content checks. Passing numeric checks does not establish accessibility compliance for the whole interface.
68
+
69
+ 实现对应:[交互状态参考](../presets/super-code/skills/super-code-frontend/references/interaction-states.md)、[浏览器验证参考](../presets/super-code/skills/super-code-frontend/references/browser-validation.md)。版权与使用条件见各 W3C 文档随附声明。
70
+
71
+ Implementation: [interaction-state guidance](../presets/super-code/skills/super-code-frontend/references/interaction-states.md) and [browser-validation guidance](../presets/super-code/skills/super-code-frontend/references/browser-validation.md). Copyright and usage conditions are recorded in the respective W3C documents.
72
+
73
+ ## 评测项目 · Evaluation Projects
74
+
75
+ ### SWE-bench
76
+
77
+ **[项目与评分工具](https://github.com/SWE-bench/SWE-bench) · [数据集](https://huggingface.co/datasets/princeton-nlp/SWE-bench) · [代码许可证](https://github.com/SWE-bench/SWE-bench/blob/main/LICENSE)**
78
+
79
+ 感谢 SWE-bench 提供真实软件工程任务、任务环境和可复现的评分基础。当前版本迭代使用从官方 dev 集中筛选并验证有效的 33 道困难题进行效果优化与开发验证。这 33 题是本项目的筛选集合。
80
+
81
+ We thank SWE-bench for real software-engineering tasks, task environments, and reproducible grading infrastructure. Current iterations use 33 valid difficult tasks selected from the official dev split for performance improvement and development checks. This is a project-selected subset.
82
+
83
+ ### SWE-bench Pro
84
+
85
+ **[项目与评分工具](https://github.com/scaleapi/SWE-bench_Pro-os) · [数据集](https://huggingface.co/datasets/ScaleAI/SWE-bench_Pro) · [代码许可证](https://github.com/scaleapi/SWE-bench_Pro-os/blob/main/LICENSE)**
86
+
87
+ 感谢 Scale AI 与 SWE-bench Pro 的维护者提供长流程软件工程任务及评分工具。本项目固定的 hard-100 用于候选冻结后的效果评测和 bug 排查,不参与效果调优;“hard-100”是本项目的集合名称,不代表官方认定的最难 100 题。
88
+
89
+ We thank Scale AI and the SWE-bench Pro maintainers for long-horizon software-engineering tasks and grading tools. The project's frozen hard-100 set is used to evaluate frozen candidates and investigate bugs, not for performance tuning. “hard-100” is this project's selection name, rather than an official hardest-100 designation.
90
+
91
+ 评测口径、限制和逐题证据见[评测文档](EvaluationResults.md)。两项评测项目的代码许可证均为 MIT;数据集、被测仓库、镜像与其他资产保留各自条款,代码许可证不统一覆盖这些内容。
92
+
93
+ See the [evaluation report](EvaluationResults.md) for methodology, limitations, and per-task evidence. Both evaluation code repositories use MIT licenses. Datasets, tested repositories, images, and other assets retain their own terms, which are not replaced by the evaluation code licenses.
94
+
95
+ ## 运行依赖 · Runtime Dependencies
96
+
97
+ 感谢 [js-yaml](https://github.com/nodeca/js-yaml) 与 [Zod](https://github.com/colinhacks/zod) 的维护者。前者提供 YAML 解析,后者提供数据结构与输入校验;两者均以 MIT 许可证发布,是本插件的直接运行依赖。完整直接依赖及宿主 peer dependencies 见 [package.json](../package.json),版本锁定见 [package-lock.json](https://github.com/ArtlexYoung/dsh-super-code/blob/main/package-lock.json)。
98
+
99
+ We thank the maintainers of [js-yaml](https://github.com/nodeca/js-yaml) and [Zod](https://github.com/colinhacks/zod). They provide YAML parsing and schema/input validation, respectively. Both are direct runtime dependencies under MIT licenses. See [package.json](../package.json) for direct and host peer dependencies, and [package-lock.json](https://github.com/ArtlexYoung/dsh-super-code/blob/main/package-lock.json) for locked versions.
100
+
101
+ ## 版权与许可证 · Copyright and Licenses
102
+
103
+ Super Code 使用 [Apache License 2.0](../LICENSE)。上述项目、规范、设计资料和数据保留各自版权、许可证或文档条款;具体内容以对应上游的 LICENSE、NOTICE、数据说明和版权声明为准。本页记录贡献与借鉴范围,设计参考本身不表示运行依赖、上游背书或功能等价。
104
+
105
+ Super Code uses the [Apache License 2.0](../LICENSE). Referenced projects, specifications, design resources, and datasets retain their own copyrights, licenses, or documentation terms, as stated by their upstream LICENSE, NOTICE, dataset documentation, and copyright notices. This page records contributions and design influence; a design reference does not imply a runtime dependency, upstream endorsement, or feature equivalence.
package/docs/Changelog.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # 版本记录 · Changelog
2
2
 
3
+ - **0.3.4 · 2026-10-15**:补充官方预设在同一批 100 题上的成绩、用量与耗时核算说明;新增 README 致谢表格和[详细致谢文档](Acknowledgements.md),说明宿主、界面设计、Skill、无障碍资料、评测项目与运行依赖的贡献和借鉴范围,并将文档纳入 npm 包。
4
+ **0.3.4 · 2026-10-15**: Adds official preset results on the same 100 tasks, with usage and timing methodology. Adds a README acknowledgements table and [detailed acknowledgements](Acknowledgements.md) covering the host, UI design, Skills, accessibility resources, evaluation projects, and runtime dependencies; includes the document in the npm package.
5
+
6
+ - **0.3.3 · 2026-10-14**:执行树与记忆库合并为单个 Super Code 侧栏,默认展开执行区,两区互斥且始终保留一个展开;切换后保留树状态、筛选、搜索、阅读位置与草稿,记忆记录同页定位。记忆支持新增、编辑、取消、保存和确认删除,手动条目标明来源,只保留当前内容,失败保留输入并防止并发覆盖。保留圆形节点,增强运行环动画,修复节点光环、文字与连线重叠。内嵌按需加载的前端 Skill,覆盖布局对齐、操作舒适度、响应式、交互状态和浏览器验证;旧预设需要确认重装。整理双语安装、评测用途、版本规则及简短更新说明;[验证范围](Compatibility.md)。
7
+ **0.3.3 · 2026-10-14**: Combines the Agent tree and memory library in one Super Code sidebar, with the tree open by default and exactly one section expanded. Switching preserves tree state, filters, search, reading position, and drafts; memory activity links open in the same page. Adds memory creation, editing, cancellation, saving, and confirmed deletion. Manual entries are labeled; only current content is stored, failed writes preserve input, and concurrent changes are protected. Retains circular nodes, makes running animation clearer, and fixes halo, label, and connector overlap. Bundles an on-demand frontend Skill for alignment, comfortable controls, responsive layout, interaction states, and browser validation; existing presets require confirmed reinstallation. Clarifies bilingual installation, evaluation methodology, version rules, and concise update notes; [validation scope](Compatibility.md).
8
+
3
9
  - **0.3.2 · 2026-10-11**:统一预设设置、执行树和记忆库的视觉样式,保留圆形节点,紧凑工具栏显示“已收起”/“自动整理”名称;所有插件按钮使用上方名称气泡,历史时间/排序改为支持键盘操作的自定义下拉。Agent 详情按对话呈现用户消息、回复和可展开的真实工具调用/结果,兼容旧版与新版 journal,顶部额外信息按需展开。记忆库新增主题导航、筛选和同主题条目,精简中英文冗余文案。保留预设安装、版本提示、归属保护及重装备份;[验证范围](Compatibility.md)。
4
10
  **0.3.2 · 2026-10-11**: Refreshes preset settings, the Agent tree, and memory library while retaining circular nodes. Compact actions have visible Collapsed/Organize labels; plugin buttons show name bubbles above, and history filters use keyboard-accessible custom dropdowns. Agent details show user/reply roles and expandable real tool calls/results from old and new journals, with additional header information folded. Adds memory topic navigation, filtering, and related entries, and trims redundant bilingual copy. Preserves installation, version notices, ownership protection, and reinstall backups; [validation scope](Compatibility.md).
5
11
  修复新版侧栏聚焦导致下拉选项无法点击的问题;启动时等待宿主语言偏好加载,避免暂定浏览器语言触发预设重复同步与刷新。
@@ -1,5 +1,43 @@
1
1
  # 宿主兼容性 · Host Compatibility
2
2
 
3
+ ## 0.3.4 · 2026-10-15
4
+
5
+ 本次更新评测文档、公开结果快照与致谢,宿主依赖和运行行为不变。构建后 112 个运行文件与 0.3.3 发布包逐字节一致,两份预设组合仅将版本标记更新为 0.3.4;此前 0.3.3 的宿主验收记录继续适用,本轮未重跑 Web / 原生 Desktop 界面,也未新增模型效果评测。
6
+
7
+ This release updates evaluation documentation, the public results snapshot, and acknowledgements, with unchanged host dependencies and runtime behavior. After building, 112 runtime files are byte-for-byte identical to the 0.3.3 release package; the two preset compositions only update their version marker to 0.3.4. The 0.3.3 host-validation records below remain applicable. Web/native Desktop UI checks and new model-quality evaluations were not rerun for this release.
8
+
9
+ 171 项测试、类型检查、构建及客户端语法检查通过;另核对评测快照汇总、文档链接、版本一致性和打包范围。
10
+
11
+ All 171 tests, type checking, build, and client syntax checks passed. Additional checks cover evaluation-snapshot aggregates, documentation links, version consistency, and package contents.
12
+
13
+ ## 0.3.3 · 2026-10-14
14
+
15
+ 支持下限保持 `0.1.5-alpha.1`,依赖范围不变。本次核对官方 npm `latest`/`next` 为 `0.2.0-rc.2`,`alpha` 为 `0.2.1-alpha.2`。以下三个宿主使用固定并审计的依赖和隔离 profile,真实安装 0.3.3 组合候选包;其他版本保留此前逐版记录,本次没有全部重测。
16
+
17
+ The minimum remains `0.1.5-alpha.1`, with unchanged dependency ranges. Official npm `latest`/`next` is `0.2.0-rc.2` and `alpha` is `0.2.1-alpha.2` on this date. The three pinned, audited hosts below installed the combined 0.3.3 candidate in isolated profiles. Other versions retain earlier per-version records and were not all rerun.
18
+
19
+ | Harness | 预设机制 / Presets | 0.3.3 Web/CLI 与浏览器 / Web/CLI and browser |
20
+ |---|---|---|
21
+ | `0.1.5-alpha.1` | 目录 / Directory | 通过 / Pass |
22
+ | `0.2.0-rc.2` | 声明式 / Declarative | 通过 / Pass |
23
+ | `0.2.1-alpha.2` | 声明式 / Declarative | 通过 / Pass |
24
+
25
+ 三版均通过安装/激活、主/子 Agent、项目/全局记忆、跨工作区隔离和重启读取。实际浏览器验证覆盖单个 Super Code 入口、默认执行区、互斥展开与键盘/焦点、整行标题、同页及重复记忆定位、树分支与历史筛选恢复、记忆新增/编辑/取消/保存/删除确认、草稿及进行中保存跨区恢复;另验证运行与完成动画、减弱动态效果、320/400/560px 与极限缩放时节点/文字/连线间距。稳定版与 alpha 版另实际切换中英文、明暗主题,无页面或控制台错误。模型由本地确定性验收程序提供,没有调用外部模型。
26
+
27
+ All three passed installation/activation, main/child Agents, project/global memory, workspace isolation, and restart reads. Real-browser checks covered the unified Super Code entry, the default tree, mutually exclusive sections, keyboard/focus behavior, full-width headings, repeated same-page memory navigation, retained tree/history filters, memory creation/editing/cancellation/saving/confirmed deletion, and drafts/in-flight saves across section switches. Checks also covered running/completed animation, reduced motion, node/label/connector spacing at 320/400/560px and zoom limits. Stable and alpha hosts additionally passed Chinese/English and light/dark switching, without page or console errors. A local deterministic fixture supplied model responses; no external model was called.
28
+
29
+ 内嵌前端 Skill 从同一候选包验证三版宿主的六条原生加载路径,覆盖目录预设及复制安装、声明式组合及持久化 profile、摘要目录、按需正文/参考读取和项目/用户同名覆盖。安装与加载验证不代表模型前端作品质量已经提升。
30
+
31
+ The bundled frontend Skill passed six native loading paths from the same candidate across these hosts: directory presets/copied installs, declarative bundles/persisted profiles, summary catalogs, on-demand content/reference reads, and project/user overrides. Installation and loading checks do not establish improved model-generated frontend quality.
32
+
33
+ 官方 macOS arm64 Desktop `0.2.0-rc.2` 在隔离应用及 profile 中通过原生插件页面从 0.3.2 升级到 0.3.3,重启后旧预设仍为 0.3.2,差异提示与确认取消通过;确认重装及宿主自动重载后,预设版本更新为 0.3.3 并包含内嵌 Skill。统一侧栏切换、草稿恢复与完整记忆维护流程通过并留有截图;真实主会话的运行/完成动画、切换恢复、宽度/缩放、减弱动态效果及节点间距通过,不将主会话检查视为原生 live 子 Agent 工具验收。副本保留原始 CFBundleName,隔离应用身份、profile 和 userData;正式应用及日常配置未修改。
34
+
35
+ Official macOS arm64 Desktop `0.2.0-rc.2` upgraded from 0.3.2 to 0.3.3 through its native plugin page in an isolated app/profile. After restart, the old preset retained 0.3.2, with a mismatch notice and cancellable confirmation. Confirmed reinstallation and the host's automatic reload updated the preset to 0.3.3 with the bundled Skill. Unified-section switching, draft recovery, and the complete memory maintenance flow passed with screenshots. A live main session passed running/completed animation, section recovery, width/zoom, reduced motion, and node spacing; this does not constitute native live child-Agent tool validation. The copy retains CFBundleName and isolates application identity, profile, and userData; the official app and daily configuration were not modified.
36
+
37
+ 171 项全量测试、类型检查、构建、客户端语法及 diff 检查通过。其他原生桌面版本和平台沿用历史覆盖,不宣称本轮全量复验;没有新增 SWE-bench 效果成绩。
38
+
39
+ All 171 tests, type checking, build, client syntax, and diff checks passed. Other native desktop versions and platforms retain historical coverage rather than a claim of full revalidation. This release adds no new SWE-bench performance scores.
40
+
3
41
  ## 0.3.2 · 2026-10-11
4
42
 
5
43
  支持下限保持 `0.1.5-alpha.1`,没有新增依赖或宿主私有 UI 接口。官方 npm `latest`/`next` 仍为 `0.2.0-rc.2`,`alpha` 为 `0.2.1-alpha.2`。本次使用固定并审计的依赖和隔离 profile,在以下三个宿主重新安装 0.3.2 候选包并验收;中间版本保留下面 0.3.1 的逐版记录,本次没有全部重测。
@@ -1,40 +1,97 @@
1
1
  # SWE-bench Pro hard-100 · 校正结果 / Corrected Results
2
2
 
3
- 截至 2026-10-09,下面五组都完成了同一批 100 题的官方评分。0.2.0 使用冻结的分层记忆候选,0.3.0 使用冻结的 Batch.3 候选成绩;本页不混入其他实验方案。
3
+ 截至 2026-10-09,版本对比中的五组都完成了同一批 100 题的官方评分。0.2.0 使用冻结的分层记忆候选,0.3.0 使用冻结的 Batch.3 候选成绩。官方预设对比另列于下方,截至 2026-10-15,极简、标准、PTC 和创造的五组均已完成。
4
4
 
5
- As of October 9, 2026, all five runs have official scores for the same 100 tasks. Version 0.2.0 refers to the frozen memory-hierarchy candidate; 0.3.0 reports the frozen Batch.3 candidate. Other experiments are not included.
5
+ As of October 9, 2026, all five version-comparison runs have official scores for the same 100 tasks. Version 0.2.0 refers to the frozen memory-hierarchy candidate; 0.3.0 reports the frozen Batch.3 candidate. The official-preset comparison appears separately below. As of October 15, 2026, all five minimal, standard, PTC, and creative runs are complete.
6
6
 
7
7
  ## 版本对比 · Version Comparison
8
8
 
9
- | 指标 / Metric | 官方 minimal | 0.0.9 | 0.1.2 | 0.2.0 分层记忆 | 0.3.0 Batch.3 |
9
+ | 指标 / Metric | 官方 minimal + high | 0.0.9 | 0.1.2 | 0.2.0 分层记忆 | 0.3.0 Batch.3 |
10
10
  |---|---:|---:|---:|---:|---:|
11
11
  | 有效评分 / Valid scores | 100 | 100 | 100 | 100 | 100 |
12
12
  | 通过题数 / Passed | 44 | 48 | 52 | 52 | 54 |
13
- | 平均回答耗时 / Mean minutes | 25.69 | 16.46 | 16.01 | 15.15 | 13.46 |
14
- | 耗时中位数 / Median minutes | 26.14 | 14.40 | 13.74 | 13.51 | 12.20 |
15
- | 耗时 P90 / P90 minutes | 43.70 | 28.82 | 29.36 | 24.14 | 21.38 |
16
- | 模型调用/题 / Model calls per task | 124.85 | 92.78 | 99.78 | 93.83 | 69.29 |
17
- | 顶层工具调用/题 / Top-level tool calls per task | 127.36 | 116.55 | 123.34 | 119.16 | 69.73 |
18
- | 总输入 token/题 / Input tokens per task | 11,477,170 | 9,525,316 | 9,840,383 | 9,202,574 | 6,290,407 |
19
- | 缓存输入 token/题 / Cached input per task | 11,404,101 | 9,461,981 | 9,775,799 | 9,142,006 | 6,231,823 |
20
- | 非缓存输入 token/题 / Uncached input per task | 73,069 | 63,334 | 64,584 | 60,569 | 58,584 |
21
- | 输出 token/题 / Output tokens per task | 100,877 | 97,901 | 97,793 | 96,520 | 91,562 |
22
- | 总 token/题 / Total tokens per task | 11,578,047 | 9,623,217 | 9,938,176 | 9,299,094 | 6,381,969 |
13
+ | 平均回答耗时(历史)/ Original mean minutes | 25.685 | 16.458 | 16.011 | 15.148 | 13.461 |
14
+ | 耗时中位数 / Median minutes | 26.138 | 14.398 | 13.736 | 13.510 | 12.197 |
15
+ | 耗时 P90 / P90 minutes | 43.696 | 28.816 | 29.360 | 24.145 | 21.381 |
16
+ | 模型调用/题 / Model calls per task | 124.660 | 92.780 | 99.780 | 93.830 | 69.290 |
17
+ | 顶层工具调用/题 / Top-level tool calls per task | 127.360 | 116.550 | 123.340 | 119.160 | 69.730 |
18
+ | 总输入 token/题 / Input tokens per task | 11,477,169.950 | 9,525,315.530 | 9,840,382.730 | 9,202,574.270 | 6,290,407.000 |
19
+ | 缓存输入 token/题 / Cached input per task | 11,404,101.120 | 9,461,981.440 | 9,775,799.040 | 9,142,005.760 | 6,231,823.360 |
20
+ | 非缓存输入 token/题 / Uncached input per task | 73,068.830 | 63,334.090 | 64,583.690 | 60,568.510 | 58,583.640 |
21
+ | 输出 token/题 / Output tokens per task | 100,876.950 | 97,900.990 | 97,793.480 | 96,519.570 | 91,561.850 |
22
+ | 总 token/题 / Total tokens per task | 11,578,046.900 | 9,623,216.520 | 9,938,176.210 | 9,299,093.840 | 6,381,968.850 |
23
23
  | 输入缓存率 / Input cache hit rate | 99.363% | 99.335% | 99.344% | 99.342% | 99.069% |
24
- | 缺少用量的请求 / Requests without usage | 7 | 8 | 1 | 1 | 0 |
24
+ | 缺少用量的请求 / Requests without usage | 3 | 8 | 1 | 1 | 0 |
25
25
 
26
26
  工具次数按宿主 `tool/call` 统计。一次 PTC 调用内部可以执行多个操作,因此这列不能用来比较实际执行了多少次文件读取或命令。
27
27
 
28
28
  Tool counts use host `tool/call` events. One PTC call can execute several operations, so this column does not compare the number of underlying file reads or commands.
29
29
 
30
+ ## 官方预设对比 · Official Preset Comparison
31
+
32
+ 截至 **2026-10-15 08:38(UTC+8)**,以下五组均已完成同一批 100 题。标准 + max 已暂停,部分成绩另列,未完成题不算错。
33
+
34
+ As of **October 15, 2026, 08:38 (UTC+8)**, all five runs below have completed the same 100 tasks. The paused standard + max run is listed separately; pending tasks are not counted as failures.
35
+
36
+ | 指标 / Metric | 极简 minimal + high | 极简 minimal + max | 标准 standard + high | PTC + high | 创造 creative + high |
37
+ |---|---:|---:|---:|---:| ---: |
38
+ | 有效进度 / Valid scores | 100/100 | 100/100 | 100/100 | 100/100 | 100/100 |
39
+ | 通过/有效 / Passed / valid | 44/100 | 48/100 | 49/100 | 44/100 | 46/100 |
40
+ | 原始分钟/题 / Original minutes | 25.685 | 32.529 | 20.683 | 17.302 | 19.856 |
41
+ | 净分钟/题 / Net minutes | 25.122 | 32.009 | 18.826 | 15.122 | 18.714 |
42
+ | 净耗时中位数 / Median net minutes | 25.598 | 32.167 | 16.639 | 13.455 | 16.452 |
43
+ | 净耗时 P90 / P90 net minutes | 41.658 | 45.179 | 36.681 | 25.031 | 30.104 |
44
+ | 模型调用/题 / Model calls | 124.660 | 138.920 | 92.370 | 71.160 | 93.600 |
45
+ | 顶层工具调用/题 / Top-level tool calls | 127.360 | 150.070 | 110.480 | 70.990 | 113.780 |
46
+ | 总输入 token/题 / Input tokens | 11,477,169.950 | 14,849,497.540 | 8,771,693.040 | 6,160,934.650 | 9,205,287.290 |
47
+ | 总 token/题 / Total tokens | 11,578,046.900 | 14,966,097.260 | 8,854,513.910 | 6,238,434.510 | 9,292,949.400 |
48
+ | 缓存输入 token/题 / Cached input | 11,404,101.120 | 14,770,140.160 | 8,713,578.230 | 6,099,266.510 | 9,145,025.240 |
49
+ | 非缓存输入 token/题 / Uncached input | 73,068.830 | 79,357.380 | 58,114.810 | 61,668.140 | 60,262.050 |
50
+ | 输出 token/题 / Output | 100,876.950 | 116,599.720 | 82,820.870 | 77,499.860 | 87,662.110 |
51
+ | 输入缓存率 / Input cache hit rate | 99.363% | 99.466% | 99.337% | 98.999% | 99.345% |
52
+ | 扣除重试分钟(全组)/ Retry minutes excluded, total | 56.323 | 51.936 | 185.717 | 217.996 | 114.226 |
53
+ | 缺少用量的请求 / Requests without usage | 3 | 11 | 4 | 5 | 2 |
54
+
55
+ | 方案 / Mode | 状态 / Status | 有效进度 / Valid scores | 通过 / Passed | 净分钟/题 / Net minutes | 模型调用/题 / Model calls | 总 token/题 / Total tokens |
56
+ |---|---|---:|---:|---:|---:|---:|
57
+ | 标准 standard + max | 已暂停 / Paused | 2/100 | 0/2 | 18.273 | 110.500 | 14,100,705.000 |
58
+
59
+ 标准 + max 的均值只覆盖其 2 道有效完成题,不参与完整 100 题排名。
60
+
61
+ Standard + max means cover its two valid completed tasks and are excluded from the completed 100-task ranking.
62
+
63
+ 极简 + high 复用历史基线,其宿主修订与本轮不同,不能把差异完全归因于思考等级。极简 + max、标准 + high、PTC + high 和创造 + high 使用同一冻结 Harness 修订和原生 Web RPC,插件未加载。各组均使用同一固定 100 题和官方评分器。
64
+
65
+ Minimal + high reuses the historical baseline, whose host revision differs from this run; reasoning effort alone cannot explain the difference. Minimal + max, standard + high, PTC + high, and creative + high use the same frozen Harness revision and native Web RPC, without the plugin. All modes target the same frozen 100 tasks and official grader.
66
+
67
+ 创造保留官方预设与工具定义;评测隔离禁止 `cordis_run` 在宿主上执行动态代码,只读检查仍可使用。
68
+
69
+ Creative retains the official preset and tool definitions. Evaluation isolation blocks host-side dynamic execution through `cordis_run`; read-only inspection remains available.
70
+
71
+ “原始分钟”是最终有效作答的 Web RPC 耗时,不含镜像准备和官方评分。“净分钟”进一步扣除该次作答中的失败模型请求与重试等待,不扣除正常思考、工具或测试时间。
72
+
73
+ Original minutes measure Web RPC time for the final valid answer, excluding image preparation and grading. Net minutes additionally remove failed model requests and retry waits within that answer, while retaining normal reasoning, tool calls, and tests.
74
+
75
+ 本次逐题核对了极简 + high 的全部 100 份原始证据、补丁及会话日志。已记录 29 次失败请求,扣除失败请求及等待共 **56.323 分钟**,净耗时为 **25.122 分钟/题**。旧调用统计已排除其中 10 次,但仍多计 19 次,本次修正后为 **124.660 次/题**;这 19 次没有有效用量,Token 总量不变。旧统计的 7 次缺失用量中,4 次属于失败请求,剩余 **3 次**发生在预算结束时,日志未返回 usage,无法补齐。版本表同步修正极简的调用数和缺失用量数,历史 JSON 保留原貌。
76
+
77
+ This audit checked all 100 original minimal + high receipts, patches, and session logs. It identified 29 failed requests and excluded **56.323 minutes** of failed-request and retry time, giving **25.122 net minutes per task**. The old call count had already excluded ten failures but still included 19; the corrected count is **124.660 calls per task**. Those 19 requests added no valid usage, so token totals are unchanged. Four of the seven previously unknown-usage requests were failures. The remaining **three** occurred at the budget cutoff and have no recorded usage to recover. The version table uses the corrected minimal call and unknown-usage counts; historical JSON remains unchanged.
78
+
79
+ 标准 + high、PTC + high、极简 + max 和创造 + high 的净计时已覆盖全部有效题。其余缺失用量也已检查原始结算和流记录,未找到可恢复的 usage;这些缺失不会被估算成零费用。调用数排除已记录的失败请求,预算结束时尚未结算用量的请求仍计入次数并单列为缺失用量。总 token = 缓存输入 + 非缓存输入 + 输出,输出含思考 token,不再次叠加。数字保留三位小数,独立舍入可能造成末位差异。
80
+
81
+ Net timing covers every valid task for standard + high, PTC + high, minimal + max, and creative + high. Original settlement and stream records were also checked for the remaining missing usage, with no recoverable usage found; this does not imply zero cost. Call counts exclude logged failed requests. Requests interrupted at the budget cutoff remain counted and are marked as unknown usage. Total tokens = cached input + uncached input + output, which already includes reasoning. Do not add reasoning again. Values use three decimal places; independent rounding can produce a last-digit difference.
82
+
83
+ [官方预设逐题快照](../eval/results/swebench-pro-final-100/OfficialPresetResults.json)保留全部 **502 个有效结果**(五组各 100 题、标准 + max 2 题)的成绩、用量、原始 / 净耗时、核算说明与证据哈希。README 和本表来自同一快照。
84
+
85
+ The [official-preset snapshot](../eval/results/swebench-pro-final-100/OfficialPresetResults.json) contains all **502 valid results**—100 for each of the five completed modes and 2 for standard + max—with usage, raw/net timing, audit notes, and evidence hashes. README and this table use the same snapshot.
86
+
30
87
  ## 相比官方 minimal · Relative to Official minimal
31
88
 
32
89
  | 版本 / Version | 通过率变化 / Pass-rate change | 平均耗时 / Mean time | 总 token / Total tokens | 新通过 / Gains | 回退 / Regressions |
33
90
  |---|---:|---:|---:|---:|---:|
34
- | 0.0.9 | +4 pp | -35.9% | -16.9% | 7 | 3 |
35
- | 0.1.2 | +8 pp | -37.7% | -14.2% | 10 | 2 |
36
- | 0.2.0 | +8 pp | -41.0% | -19.7% | 11 | 3 |
37
- | 0.3.0 Batch.3 | +10 pp | -47.6% | -44.9% | 13 | 3 |
91
+ | 0.0.9 | +4.000 pp | -35.923% | -16.884% | 7 | 3 |
92
+ | 0.1.2 | +8.000 pp | -37.663% | -14.164% | 10 | 2 |
93
+ | 0.2.0 | +8.000 pp | -41.025% | -19.683% | 11 | 3 |
94
+ | 0.3.0 Batch.3 | +10.000 pp | -47.593% | -44.879% | 13 | 3 |
38
95
 
39
96
  Batch.3 相比 0.2.0 平均耗时减少 11.1%、总 token 减少 31.4%、模型调用减少 26.2%,通过数从 52 增至 54;逐题新通过 8 题、回退 6 题。这是同题单轮结果,2 题的净增不能据此认定为稳定的质量提升。
40
97
 
@@ -57,9 +114,9 @@ Both 0.2.0 and 0.1.2 pass 52 tasks. Version 0.2.0 uses 5.4% less time and 6.4% f
57
114
 
58
115
  Sixteen grading records had anomalies such as the ConfigFileTest 500 ms timeout or a killed Jest worker. Each was regraded with the **original patch**, requiring two matching results without that anomaly—not selecting the best result from retries. Twelve recovered to a pass and four remained failures. Regrading added no model calls; the original scores, usage, and patches are preserved.
59
116
 
60
- [四版本逐题数据](../eval/results/swebench-pro-final-100/CorrectedFourVersions.json)包含全部 400 条评分、调用数、token、耗时、补丁与证据哈希,以及逐条修正原因。历史 JSON 保留原貌,以这份校正汇总为当前展示口径;结果文件留在仓库,不重复放进 npm 包。
117
+ [四版本逐题数据](../eval/results/swebench-pro-final-100/CorrectedFourVersions.json)包含全部 400 条评分、调用数、token、耗时、补丁与证据哈希,以及逐条修正原因。历史 JSON 保留原貌;极简的调用数和缺失用量数采用上述原会话核算,其余版本指标来自这份校正汇总。结果文件留在仓库,不重复放进 npm 包。
61
118
 
62
- The [four-version per-task data](../eval/results/swebench-pro-final-100/CorrectedFourVersions.json) contains all 400 scores, call counts, tokens, times, patch/evidence hashes, and individual correction reasons. Historical JSON is unchanged; the corrected summary is the current reporting source. Result files remain in the repository rather than the npm package.
119
+ The [four-version per-task data](../eval/results/swebench-pro-final-100/CorrectedFourVersions.json) contains all 400 scores, call counts, tokens, times, patch/evidence hashes, and individual correction reasons. Historical JSON is unchanged. Minimal call and unknown-usage counts use the session audit above; other version metrics come from the corrected summary. Result files remain in the repository rather than the npm package.
63
120
 
64
121
  [Batch.3 逐题数据](../eval/results/swebench-pro-final-100/Batch3Results.json)另存 100 条成绩、用量、耗时和原始证据及补丁哈希,汇总数字已逐题复算,并核对与上述基线使用同一批任务。Batch.3 的评分异常同样用原补丁复核,不把作废尝试的调用和用量加到最终结果中;这些数据也不进入 npm 包。
65
122
 
@@ -67,12 +124,12 @@ The separate [Batch.3 per-task data](../eval/results/swebench-pro-final-100/Batc
67
124
 
68
125
  ## 如何理解 · How to Read These Results
69
126
 
70
- - **同题比较:** 固定题集标识为 `swebench-pro-hard-100-ddd22492f1c38839`,使用同一开发测试模型、`high` 推理等级、原生 DSH Web RPC 和官方评分器。这是按既有难度方法选出的历史 100 题,不是官方认定的“最难 100 题”,也不是未接触过的盲测集。
71
- **Same tasks:** The frozen selection is `swebench-pro-hard-100-ddd22492f1c38839`, using the same development test model, `high` reasoning, native DSH Web RPC, and the official grader. It is a historically exposed selection from the existing difficulty-ranking method—not an official hardest-100 designation or a fresh blind test.
72
- - **时间:** 统一采用每题 Web RPC 回答耗时,不计官方评分、下载镜像和复评分;中位数取第 50、51 项均值,P90 取排序后的第 90 项。旧文档 0.0.9 的 16.27 分钟使用不同口径,现统一为 16.46 分钟。
73
- **Time:** Per-task Web RPC response time excludes grading, image downloads, and regrading. The median averages the 50th and 51st values; P90 is the 90th ordered value. The older 16.27-minute figure for 0.0.9 used a different timing convention; the consistent figure is 16.46 minutes.
74
- - **用量:** 纳入每题最终评分尝试的已记录调用,先逐题合计再对 100 题取平均。输入包含缓存读取;缓存率为全部缓存输入除以全部输入,而非逐题缓存率的平均。未返回用量的请求不估算,因此 token 不代表完整账单费用,也不包括先前被放弃的尝试成本。
75
- **Usage:** Recorded calls from each task’s final scored attempt are summed per task, then averaged over 100 tasks. Input includes cache reads; the cache rate is total cached input divided by total input, not the mean per-task rate. Missing usage is not estimated, so tokens do not represent a complete bill or the cost of earlier abandoned attempts.
127
+ - **同题比较:** 固定题集标识为 `swebench-pro-hard-100-ddd22492f1c38839`,使用同一开发测试模型、原生 DSH Web RPC 和官方评分器。版本表均为 `high` 思考等级,官方预设表的等级按列标明。这 100 题按既有难度方法选出,并非官方认定的“最难 100 题”;用于候选冻结后的效果评测及 bug 排查,不参与效果调优。
128
+ **Same tasks:** The frozen selection is `swebench-pro-hard-100-ddd22492f1c38839`, using the same development test model, native DSH Web RPC, and the official grader. All version-comparison runs use `high` reasoning; the official-preset table labels each effort level. These 100 tasks were selected using the existing difficulty-ranking method, rather than an official hardest-100 designation. They are used to evaluate frozen candidates and investigate bugs, not for performance tuning.
129
+ - **时间:** 版本表保留每题最终有效作答的原始 Web RPC 耗时,不计官方评分、下载镜像和复评分,但未逐项扣除该次作答内部的失败请求与重试等待。中位数取第 50、51 项均值,P90 取排序后的第 90 项。0.0.9 的旧文档曾写 16.27 分钟,这里按历史统一口径为 16.458 分钟。官方预设表另列净耗时,两种口径不混用。
130
+ **Time:** The version table retains raw Web RPC time for each final valid answer, excluding grading, image downloads, and regrading, but without subtracting individual failed requests and retry waits within that answer. The median averages the 50th and 51st values; P90 is the 90th ordered value. An older 0.0.9 document reported 16.27 minutes; the historical convention gives 16.458 minutes. The official-preset table reports net time separately; the two measures must not be mixed.
131
+ - **用量:** 纳入每题最终评分尝试的已记录调用,先逐题合计再对 100 题取平均。输入包含缓存读取,输出包含思考 token;缓存率为全部缓存输入除以全部输入,而非逐题缓存率的平均。未返回用量的请求不估算,因此 token 不代表完整账单费用,也不包括先前被放弃的尝试成本。
132
+ **Usage:** Recorded calls from each task’s final scored attempt are summed per task, then averaged over 100 tasks. Input includes cache reads and output includes reasoning tokens; the cache rate is total cached input divided by total input, not the mean per-task rate. Missing usage is not estimated, so tokens do not represent a complete bill or the cost of earlier abandoned attempts.
76
133
  - **候选身份:** 0.2.0 表示已评测的分层记忆候选,其实验包内部版本仍为 0.1.3,包 SHA-256 为 `164cc1b505c05288f01b6f12c0756af049dbde8f1a49bdb11f9a320a19c925f5`。新整合的记忆 UI 与兼容改动进行单测及真实宿主回归,未重新运行这 100 次模型任务。
77
134
  **Candidate identity:** The evaluated memory-hierarchy candidate is reported as 0.2.0; its experimental package still carried version 0.1.3 and SHA-256 `164cc1b505c05288f01b6f12c0756af049dbde8f1a49bdb11f9a320a19c925f5`. The integrated memory UI and compatibility changes undergo unit and real-host regression checks, not a fresh 100-task model run.
78
135
  - **0.3.0 来源:** 本页成绩属于内部版本 `0.3.0-batch.3` 的实际安装候选。整合时按冻结的运行模块逐文件核对,保留主干 0.2.1 的语言资源和兼容改动;发布包做类型、单测、打包及真实宿主回归,没有重新执行这 100 次模型任务。Batch.3 与分层记忆候选的 Harness 提交同为 `649bfcddf0e3532510a38380b9620570d8b13818`,仍不能分离提示词和工具呈现方式各自的作用。
@@ -60,6 +60,20 @@ From 0.3.1 onward, “Settings” → **Super Code** shows the loaded plugin ver
60
60
 
61
61
  If versions differ, save the custom content you need, then confirm reinstallation. Directory hosts replace the user copy; declarative hosts replace this plugin's owned declaration. Both retain recovery backups. If refreshed versions still differ, check that the plugin update took effect and inspect host logs.
62
62
 
63
+ ## 内嵌前端 Skill · Bundled Frontend Skill
64
+
65
+ 插件携带 `super-code-frontend`,用于页面/组件开发、视觉调整、响应式布局、交互状态和浏览器验证。特别覆盖共同对齐轴、视觉与点击边界、控制位置稳定、操作距离和输入负担;通过空间关系与实际命中检查定位错位和难操作的问题,沿用产品自己的视觉语言。宿主向模型提供名称与短描述,匹配任务时由原生 `skill` 工具按需加载入口;视觉设计、状态交互和浏览器验证的参考文件再按需读取。也可以在请求中明确指定使用 `super-code-frontend`。它不依赖固定框架或新增工具,不把全文加入每轮提示。
66
+
67
+ The plugin includes `super-code-frontend` for pages/components, visual refinement, responsive layout, interaction states, and browser validation. Guidance covers shared alignment anchors, painted and interactive boundaries, stable control positions, reach, and input effort. Geometry and real hit-area checks help diagnose misalignment and awkward interaction within the product's own visual language. Harness exposes its name and short description; the native `skill` tool loads the entry point when applicable, followed by only the references needed. You can explicitly ask to use `super-code-frontend`. It requires no particular framework or added tools and does not insert its full text into every turn.
68
+
69
+ 从 0.3.3 起,新安装或重装的 Super Code 预设包含此接入。已有用户副本或自定义声明需要先保留自己的调整,再通过“设置”→ **Super Code** 的重装流程更新;插件升级不会自动更新旧预设,设置页会显示其原有版本并提示差异。没有自动改写现有预设,也没有安装到全局 skills 目录。项目/用户同名 skill 仍按宿主原有优先级覆盖内置版本。
70
+
71
+ From 0.3.3 onward, newly installed or reinstalled Super Code presets include this integration. Existing user copies or custom declarations need reinstallation through “Settings” → **Super Code** after saving any customizations. Updating the plugin preserves the old preset version, and Settings flags any mismatch. Existing presets and global skill directories are not rewritten automatically. Project/user skills with the same name retain their normal host precedence.
72
+
73
+ 浏览器验证方法会指导 Agent 复用可用会话,保留已完成步骤,并从实际失败阶段恢复。它是方法指导;本身不实现强制防循环,也不会自动写入长期记忆。是否提升前端成品质量需要单独的实际任务评测,不能用安装测试或 SWE 成绩代替。
74
+
75
+ Browser guidance reuses working sessions and confirmed progress, recovering at the actual failed stage. It is workflow guidance, with no enforced loop detector or automatic long-term memory writes. Frontend quality improvements require separate real-task evaluation; installation checks or SWE scores do not establish them.
76
+
63
77
  ## 名称与语言 · Names and Language
64
78
 
65
79
  0.3.1 的名称同步和自定义安装名称同时支持目录式与声明式预设。
@@ -94,9 +108,9 @@ Declarative hosts verify a bundle source marker or matching installation record,
94
108
 
95
109
  ## Agent 执行树 · Agent Execution Tree
96
110
 
97
- 右侧执行树显示当前会话中各 Agent 的状态、用量和缓存率。拖动空白处平移,滚轮或按钮缩放;点一个节点,就能在侧栏新标签查看详情,主对话不会切换。界面跟随 Harness 的中英文语言设置。
111
+ 打开右侧栏,选择“Super Code”,同一页面包含执行树和记忆库,默认展开执行树。点击任一区域的标题切换展开内容;两者互斥,始终保持一个展开,切换后保留阅读位置、筛选和编辑草稿。执行树显示当前会话中各 Agent 的状态、用量和缓存率。拖动空白处平移,滚轮或按钮缩放;点一个节点,就能在侧栏新标签查看详情,主对话不会切换。界面跟随 Harness 的中英文语言设置。
98
112
 
99
- The Agent tree on the right shows status, usage, and cache hit rate for each Agent in the current session. Drag empty space to pan, zoom with the wheel or buttons, and click a node to open its details in a new sidebar tab. The main conversation stays put. The interface follows Harness's Chinese/English language setting.
113
+ Open the right sidebar and choose “Super Code” for the Agent tree and memory library on one page. The tree is expanded by default. Click either section heading to switch; exactly one section stays expanded, while reading positions, filters, and edit drafts are retained. The tree shows status, usage, and cache hit rate for each Agent in the current session. Drag empty space to pan, zoom with the wheel or buttons, and click a node to open its details in a new sidebar tab. The main conversation stays put. The interface follows Harness's Chinese/English language setting.
100
114
 
101
115
  [执行树截图](images/agent-tree.png)来自安装 0.3.2 包的隔离 Harness 网页宿主,展示主 Agent 和记忆读取子 Agent 的真实会话记录。模型响应由本地确定性验收程序提供,用于检查界面与记忆功能,不代表外部模型效果或评测成绩。
102
116
 
@@ -112,9 +126,9 @@ Agent details use a chat list with distinct user tasks, replies, and expandable
112
126
 
113
127
  ## 记忆库 · Memory Library
114
128
 
115
- 打开右侧栏,点新标签页中的“记忆库”。先选“当前项目”或“全局偏好”,再从主题目录选择主题,或搜索主题、摘要与标识符;点一条记忆查看详情、来源和记录时的代码版本。返回列表时会保留搜索和滚动位置。主题筛选与搜索可以同时使用,详情列出同主题条目。列表采用虚拟滚动,详情按需加载。
129
+ 在“Super Code”页面点击“记忆库”标题展开。先选“当前项目”或“全局偏好”,再从主题目录选择主题,或搜索主题、摘要与标识符;点一条记忆查看详情与来源。返回列表时会保留搜索和滚动位置。主题筛选与搜索可以同时使用,详情列出同主题条目。列表采用虚拟滚动,详情按需加载。
116
130
 
117
- Open the right sidebar and choose “Memory library” on its new-tab page. Select “This project” or “Global preferences”, choose a topic or search by topic, summary, or identifier, and open an entry for its details, source, and recorded code version. Search and scroll position are retained when you return. Topic filtering and search can be combined; details include related entries from the same topic. The list is virtualized; details load on demand.
131
+ Click the “Memory library” heading on the “Super Code” page to expand it. Select “This project” or “Global preferences”, choose a topic or search by topic, summary, or identifier, and open an entry for its details and source. Search and scroll position are retained when you return. Topic filtering and search can be combined; details include related entries from the same topic. The list is virtualized; details load on demand.
118
132
 
119
133
  记忆分三层,各管一件事:
120
134
 
@@ -126,9 +140,9 @@ Memory has three distinct roles:
126
140
  | 项目记忆 / Project memory | 有来源的项目事实、经验与约定 / Sourced facts, experience, and agreements | 同一规范化工作区路径,并按任务主题区分 / Canonical workspace path, organized by task topic |
127
141
  | 全局偏好 / Global preferences | 用户明确要求跨项目遵守的偏好 / Explicit cross-project user preferences | 同一 Harness 存储根目录 / Same Harness storage root |
128
142
 
129
- 想长期保留某个约定,直接告诉 Agent 即可;是否保存以工具成功结果和记忆库为准。项目事实与经验必须关联真实工具结果和记录时版本,全局偏好必须有用户原文和明确的跨项目意图。不同路径的项目或 Git worktree 不会自动共享项目记忆。
143
+ 想长期保留某个约定,直接告诉 Agent 即可;是否保存以工具成功结果和记忆库为准。Agent 保存的项目事实与经验必须关联真实工具结果和记录时版本,全局偏好必须有用户原文和明确的跨项目意图;在记忆库中直接维护的条目使用“手动维护”来源。不同路径的项目或 Git worktree 不会自动共享项目记忆。
130
144
 
131
- Tell the Agent when an agreement should be kept. Check the successful tool result or memory library to confirm it was saved. Facts and experience require a real tool-result source and recorded version; global preferences require a user quote and explicit cross-project intent. Different project or Git worktree paths do not automatically share project memory.
145
+ Tell the Agent when an agreement should be kept. Check the successful tool result or memory library to confirm it was saved. Agent-saved facts and experience require a real tool-result source and recorded version; global preferences require a user quote and explicit cross-project intent. Entries edited directly in the library use a manual source. Different project or Git worktree paths do not automatically share project memory.
132
146
 
133
147
  记忆存储在宿主本地,不写入项目文件,也不会整库送给模型。当前任务主题和全局偏好各最多自动带入 4 条摘要,分别受 2 KiB、1 KiB 上限约束;详情需要主动读取。记忆不代替当前指令、不授予权限,也不能证明代码仍然保持记录时的状态。
134
148
 
@@ -136,14 +150,14 @@ Memory lives in local host storage, not project files, and the full library is n
136
150
 
137
151
  ## 每个 Agent 用了什么 · Per-Agent Memory Activity
138
152
 
139
- 在执行树中点一个节点,展开顶部“详情”,再展开“记忆使用记录”。这里区分“带入上下文”“读取摘要”“读取详情”“保存”和“删除”,并标明项目/全局、主题与修订号;点记录可在侧栏记忆库查看当前条目,不切换主对话。
153
+ 在执行树中点一个节点,展开顶部“详情”,再展开“记忆使用记录”。这里区分“带入上下文”“读取摘要”“读取详情”“保存”和“删除”,并标明项目/全局与主题;点记录会回到同一个“Super Code”页面并打开记忆条目,不新增记忆库页,也不切换主对话。
140
154
 
141
- Click an Agent node, then open “Details”, then expand “Memory activity” at the top of its details. Actions distinguish context inclusion, summary reads, detail reads, saves, and removals, with scope, topic, and revision. Click a record to open the current entry in the sidebar without switching the main conversation.
155
+ Click an Agent node, then open “Details”, then expand “Memory activity” at the top of its details. Actions distinguish context inclusion, summary reads, detail reads, saves, and removals, with scope and topic. Click a record to return to the same “Super Code” page and open the current entry without creating another memory tab or switching the main conversation.
142
156
 
143
157
  这些是宿主实际记录的动作,不代表模型一定理解或遵守了记忆。子 Agent 不会把继承的父会话历史算成自己的读取;失败调用也不显示为成功读取。界面最多显示最近 100 条不同动作,原始完整记录仍在会话日志中。条目后来修改或删除时,历史使用记录仍保留,但记忆库展示当前内容,不伪装成旧版本快照。
144
158
 
145
159
  These are recorded host actions, not proof that the model understood or followed the memory. Inherited parent history is not counted as a child's own read, and failed calls are not shown as successful reads. The UI keeps the latest 100 distinct actions; full history stays in the session log. Activity survives later edits or removals, but the library shows the current entry—not a reconstructed snapshot of an older revision.
146
160
 
147
- 历史会话的记忆可直接查看,不需要恢复 Agent 或再次调用模型。当前记忆库是只读页面;需要修改或删除时,通过对话明确告诉 Agent,并核对执行结果。
161
+ 历史会话的记忆可直接查看,不需要恢复 Agent 或再次调用模型。记忆库支持新增、编辑、取消、保存和删除。编辑时可修改类型、标题和内容;取消不保存,删除需要确认。手动保存的条目标为“手动维护”,仅保留当前内容,不保留版本历史。
148
162
 
149
- You can browse memory from stored conversations without resuming an Agent or making another model call. The library is currently read-only; ask the Agent to change or remove a memory and check the result.
163
+ You can browse memory from stored conversations without resuming an Agent or making another model call. The library supports Add, Edit, Cancel, Save, and Delete. Edit the type, title, and content; Cancel discards the draft, and Delete asks for confirmation. Manually saved entries are marked accordingly. Only current content is kept, with no version history.
@@ -1,8 +1,8 @@
1
- /** User-facing, read-only memory API. Workspace identity comes from the host. */
1
+ /** User-facing memory API. Workspace identity comes from the host. */
2
2
  import type { Context } from '@deepseek-ai/cordis';
3
3
  import { TypertRemoteService } from '@deepseek-ai/dsh-typert-protocol';
4
4
  import { LongMemoryStore } from '../long-memory.js';
5
- import type { LongMemoryEntry } from '../long-memory.js';
5
+ import type { LongMemoryEntry, MemoryLibraryChange } from '../long-memory.js';
6
6
  export interface MemoryLibraryItem {
7
7
  topic: string;
8
8
  revision: number;
@@ -15,11 +15,12 @@ export type MemoryLibraryDetail = {
15
15
  } | {
16
16
  kind: 'found';
17
17
  entry: MemoryLibraryItem & {
18
+ token: string;
18
19
  detail: string;
19
20
  source: {
20
- kind: 'user' | 'tool';
21
+ kind: 'user' | 'tool' | 'manual';
21
22
  sessionId: string;
22
- eventSeq: number;
23
+ eventSeq?: number;
23
24
  };
24
25
  sourceVersion?: string;
25
26
  };
@@ -33,6 +34,8 @@ export declare class MemoryLibraryReader {
33
34
  items: MemoryLibraryItem[];
34
35
  }>;
35
36
  read(sessionId: string, scope: string, topic: string, id: string): Promise<MemoryLibraryDetail>;
37
+ save(sessionId: string, scope: string, topic: string, id: string, content: string): Promise<MemoryLibraryChange>;
38
+ remove(sessionId: string, scope: string, topic: string, id: string, expected: string): Promise<MemoryLibraryChange>;
36
39
  }
37
40
  export declare class SuperCodeMemory extends TypertRemoteService {
38
41
  private readonly reader;
@@ -40,6 +43,8 @@ export declare class SuperCodeMemory extends TypertRemoteService {
40
43
  list(sessionId: string, scope: string): Promise<{
41
44
  items: MemoryLibraryItem[];
42
45
  }>;
46
+ saveEntry(sessionId: string, scope: string, topic: string, id: string, content: string): Promise<MemoryLibraryChange>;
47
+ deleteEntry(sessionId: string, scope: string, topic: string, id: string, expected: string): Promise<MemoryLibraryChange>;
43
48
  read(sessionId: string, scope: string, topic: string, id: string): Promise<MemoryLibraryDetail>;
44
49
  }
45
50
  //# sourceMappingURL=memory-library.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"memory-library.d.ts","sourceRoot":"","sources":["../../src/dsh/memory-library.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,EAAU,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AAC9E,OAAO,EAAE,eAAe,EAAoE,MAAM,mBAAmB,CAAA;AACrH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAGxD,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;CAC5F;AACD,MAAM,MAAM,mBAAmB,GAAG;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,iBAAiB,GAAG;QAClG,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE;YAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAC/G,CAAA;CAAE,CAAA;AAEH,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAAW,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAApC,GAAG,EAAE,OAAO,EAAmB,KAAK,EAAE,eAAe;YAEpE,SAAS;IAWjB,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,iBAAiB,EAAE,CAAA;KAAE,CAAC;IAU/E,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAWtG;AAED,qBAAa,eAAgB,SAAQ,mBAAmB;IACtD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;gBAChC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe;IAKhD,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,iBAAiB,EAAE,CAAA;KAAE,CAAC;IAE/E,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAChG"}
1
+ {"version":3,"file":"memory-library.d.ts","sourceRoot":"","sources":["../../src/dsh/memory-library.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,EAAU,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AAC9E,OAAO,EAAE,eAAe,EAAsF,MAAM,mBAAmB,CAAA;AACvI,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAG7E,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;CAC5F;AACD,MAAM,MAAM,mBAAmB,GAAG;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,iBAAiB,GAAG;QAClG,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE;YAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;YAAC,SAAS,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAC1I,CAAA;CAAE,CAAA;AAEH,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAAW,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAApC,GAAG,EAAE,OAAO,EAAmB,KAAK,EAAE,eAAe;YAEpE,SAAS;IAWjB,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,iBAAiB,EAAE,CAAA;KAAE,CAAC;IAU/E,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAY/F,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAWhH,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAK1H;AAED,qBAAa,eAAgB,SAAQ,mBAAmB;IACtD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;gBAChC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe;IAKhD,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,iBAAiB,EAAE,CAAA;KAAE,CAAC;IAE/E,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAErH,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAExH,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAChG"}
@@ -34,7 +34,7 @@ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn,
34
34
  };
35
35
  import { SessionId } from '@deepseek-ai/dsh-session';
36
36
  import { Remote, TypertRemoteService } from '@deepseek-ai/dsh-typert-protocol';
37
- import { LongMemoryStore, memoryWorkspace, memoryGlobalNamespace, GLOBAL_PREFERENCES_TOPIC } from '../long-memory.js';
37
+ import { LongMemoryStore, memoryWorkspace, memoryGlobalNamespace, GLOBAL_PREFERENCES_TOPIC, memoryEntryToken } from '../long-memory.js';
38
38
  import { z } from 'zod';
39
39
  export class MemoryLibraryReader {
40
40
  ctx;
@@ -75,21 +75,45 @@ export class MemoryLibraryReader {
75
75
  if (!entry)
76
76
  return { kind: 'missing' };
77
77
  return { kind: 'found', entry: { topic, revision: found.value.revision, id, kind: entry.kind, summary: entry.summary,
78
- detail: entry.detail, ...(entry.sourceVersion ? { sourceVersion: entry.sourceVersion } : {}),
79
- source: { kind: entry.source.kind, sessionId: entry.source.sessionId, eventSeq: entry.source.eventSeq } } };
78
+ token: memoryEntryToken(entry), detail: entry.detail, ...(entry.sourceVersion ? { sourceVersion: entry.sourceVersion } : {}),
79
+ source: { kind: entry.source.kind, sessionId: entry.source.sessionId, ...('eventSeq' in entry.source ? { eventSeq: entry.source.eventSeq } : {}) } } };
80
+ }
81
+ async save(sessionId, scope, topic, id, content) {
82
+ const workspace = await this.workspace(sessionId, scope);
83
+ if (scope === 'global' && topic !== GLOBAL_PREFERENCES_TOPIC)
84
+ throw new Error('Invalid global topic');
85
+ const input = z.object({ expected: z.string(), kind: z.enum(['constraint', 'fact', 'experience']),
86
+ summary: z.string(), detail: z.string() }).strict().parse(JSON.parse(z.string().max(16000).parse(content)));
87
+ if (scope === 'global' && input.kind !== 'constraint')
88
+ throw new Error('Global memory accepts only user preferences');
89
+ return this.store.edit(workspace, topic, id, input.expected, { kind: 'save', entry: {
90
+ id, kind: input.kind, summary: input.summary, detail: input.detail, source: { kind: 'manual', sessionId },
91
+ } });
92
+ }
93
+ async remove(sessionId, scope, topic, id, expected) {
94
+ const workspace = await this.workspace(sessionId, scope);
95
+ if (scope === 'global' && topic !== GLOBAL_PREFERENCES_TOPIC)
96
+ throw new Error('Invalid global topic');
97
+ return this.store.edit(workspace, topic, id, expected, { kind: 'remove' });
80
98
  }
81
99
  }
82
100
  let SuperCodeMemory = (() => {
83
101
  let _classSuper = TypertRemoteService;
84
102
  let _instanceExtraInitializers = [];
85
103
  let _list_decorators;
104
+ let _saveEntry_decorators;
105
+ let _deleteEntry_decorators;
86
106
  let _read_decorators;
87
107
  return class SuperCodeMemory extends _classSuper {
88
108
  static {
89
109
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
90
110
  _list_decorators = [Remote];
111
+ _saveEntry_decorators = [Remote];
112
+ _deleteEntry_decorators = [Remote];
91
113
  _read_decorators = [Remote];
92
114
  __esDecorate(this, null, _list_decorators, { kind: "method", name: "list", static: false, private: false, access: { has: obj => "list" in obj, get: obj => obj.list }, metadata: _metadata }, null, _instanceExtraInitializers);
115
+ __esDecorate(this, null, _saveEntry_decorators, { kind: "method", name: "saveEntry", static: false, private: false, access: { has: obj => "saveEntry" in obj, get: obj => obj.saveEntry }, metadata: _metadata }, null, _instanceExtraInitializers);
116
+ __esDecorate(this, null, _deleteEntry_decorators, { kind: "method", name: "deleteEntry", static: false, private: false, access: { has: obj => "deleteEntry" in obj, get: obj => obj.deleteEntry }, metadata: _metadata }, null, _instanceExtraInitializers);
93
117
  __esDecorate(this, null, _read_decorators, { kind: "method", name: "read", static: false, private: false, access: { has: obj => "read" in obj, get: obj => obj.read }, metadata: _metadata }, null, _instanceExtraInitializers);
94
118
  if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
95
119
  }
@@ -99,6 +123,8 @@ let SuperCodeMemory = (() => {
99
123
  this.reader = new MemoryLibraryReader(ctx, store);
100
124
  }
101
125
  list(sessionId, scope) { return this.reader.list(sessionId, scope); }
126
+ saveEntry(sessionId, scope, topic, id, content) { return this.reader.save(sessionId, scope, topic, id, content); }
127
+ deleteEntry(sessionId, scope, topic, id, expected) { return this.reader.remove(sessionId, scope, topic, id, expected); }
102
128
  read(sessionId, scope, topic, id) { return this.reader.read(sessionId, scope, topic, id); }
103
129
  };
104
130
  })();