dsh-super-code 0.2.1 → 0.3.1

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.
Files changed (36) hide show
  1. package/README.md +30 -22
  2. package/client/index.js +84 -33
  3. package/cordis.patch.yml +7 -0
  4. package/docs/Changelog.md +8 -0
  5. package/docs/Compatibility.md +69 -11
  6. package/docs/EvaluationResults.md +37 -22
  7. package/docs/UsageGuide.md +38 -10
  8. package/lib/core/batch-policy.d.ts +14 -0
  9. package/lib/core/batch-policy.d.ts.map +1 -0
  10. package/lib/core/batch-policy.js +31 -0
  11. package/lib/core/batch-policy.js.map +1 -0
  12. package/lib/core/teams.d.ts +1 -1
  13. package/lib/core/teams.d.ts.map +1 -1
  14. package/lib/core/teams.js +6 -6
  15. package/lib/core/teams.js.map +1 -1
  16. package/lib/dsh/preset-declaration.d.ts +75 -0
  17. package/lib/dsh/preset-declaration.d.ts.map +1 -0
  18. package/lib/dsh/preset-declaration.js +313 -0
  19. package/lib/dsh/preset-declaration.js.map +1 -0
  20. package/lib/dsh/preset-installation.d.ts +18 -9
  21. package/lib/dsh/preset-installation.d.ts.map +1 -1
  22. package/lib/dsh/preset-installation.js +57 -7
  23. package/lib/dsh/preset-installation.js.map +1 -1
  24. package/lib/dsh/preset-version.d.ts +7 -0
  25. package/lib/dsh/preset-version.d.ts.map +1 -0
  26. package/lib/dsh/preset-version.js +36 -0
  27. package/lib/dsh/preset-version.js.map +1 -0
  28. package/lib/dsh/super-code.d.ts +2 -0
  29. package/lib/dsh/super-code.d.ts.map +1 -1
  30. package/lib/dsh/super-code.js +18 -7
  31. package/lib/dsh/super-code.js.map +1 -1
  32. package/lib/memory-usage-projection.d.ts.map +1 -1
  33. package/lib/memory-usage-projection.js +29 -13
  34. package/lib/memory-usage-projection.js.map +1 -1
  35. package/package.json +3 -3
  36. package/presets/super-code/agent.cordis.yml +10 -0
@@ -10,6 +10,20 @@ The [three steps in the README](../README.md) will get you started. This page co
10
10
 
11
11
  If you already have a working model, there is nothing extra to configure for the plugin. Otherwise, add a provider under Harness “Settings” → “Models”, then choose a model and reasoning effort below the message input. Super Code uses the current session's choice rather than a separate model pool. Child Agents inherit the parent Agent's model by default, while Harness manages permissions and tools.
12
12
 
13
+ ## 批量工具调用 · Batched Tool Calls
14
+
15
+ 0.3.0 的 Super Code 预设使用 Harness 原生 PTC。Agent 可以在一次模型调用里组合几个工具操作,例如同时读取互不依赖的文件,拿到结果后再决定下一步。它不需要额外的 Agent,也不用另选模式。
16
+
17
+ The Super Code preset in 0.3.0 uses Harness-native PTC. An Agent can compose several tool operations in one model call—for example, read independent files together before deciding what to do next. It needs neither an extra Agent nor a separate mode selection.
18
+
19
+ 默认指导要求独立读取按需并行,写入、测试、状态变更和依赖步骤依次执行;失败时保留已成功的结果,只重试失败或过期的读取。插件向宿主声明任务和记忆工具中哪些动作可以并行,未知动作默认独占。其他工具是否允许并行,由它们在 Harness 中的声明决定。权限确认、取消、结果保存和部分失败都由宿主管理。
20
+
21
+ The default guidance calls for parallel reads when useful, ordered writes, tests, state changes, and dependent steps, and retries limited to failed or stale reads while retaining successful results. The plugin declares which task and memory actions are safe to overlap; unknown actions remain exclusive. Other tools use their own Harness concurrency declarations. Harness handles permissions, cancellation, result persistence, and partial failures.
22
+
23
+ 批量调用减少的是模型与工具之间的来回,不保证每项操作都会更快,也不改变模型、权限或记忆的设置。
24
+
25
+ Batching reduces round trips between the model and tools. It does not guarantee that every operation runs faster or change model, permission, or memory settings.
26
+
13
27
  ## 找不到预设 · Can't Find the Preset?
14
28
 
15
29
  先确认插件已启用,并按[兼容矩阵](Compatibility.md)核对宿主版本与实际依赖。插件按宿主提供的预设机制选择以下两条路径。
@@ -18,13 +32,13 @@ First confirm the plugin is enabled and check the host version and installed dep
18
32
 
19
33
  ### Harness 0.1.7 / 0.2.0 / 0.2.1:声明式预设 · Declarative Presets
20
34
 
21
- 在已验证的 0.1.7、0.2.0 和 0.2.1 版本上,Super Code 由插件 bundle 声明,宿主负责发现和加载;插件不会创建用户预设目录。设置页显示宿主报告的预设状态,不提供安装、重命名或重装目录副本的流程。若状态为缺失或损坏,检查插件是否启用、宿主组件是否混版,以及日志中的预设依赖错误,而不是反复点击安装。
35
+ Super Code 由插件 bundle 声明,宿主负责加载。从 0.3.1 起,未安装时可以在“设置”→ **Super Code** 安装预设;已安装时提供“重新安装预设”,确认后按所填名称和标识符替换。声明保存在当前 profile 的补丁层,通过宿主公开接口加载,不需要用户预设目录。宿主未开放管理接口时,页面会明确提示。
22
36
 
23
- On the verified 0.1.7, 0.2.0, and 0.2.1 versions, the plugin bundle declares Super Code and the host discovers and loads it; the plugin does not create a user preset directory. Settings show the host's preset status rather than a workflow for installing, renaming, or reinstalling directory copies. If the preset is missing or broken, check plugin activation, mixed host versions, and preset dependency errors in the logs instead of retrying directory installation.
37
+ The plugin bundle declares Super Code and the host loads it. From 0.3.1, use “Settings” → **Super Code** to install a missing preset or confirm reinstallation of an installed preset with the entered name and identifier. Declarations persist in the current profile's patch layer and load through public host APIs; no user preset directory is needed. Hosts without management APIs show an explicit notice.
24
38
 
25
- 声明默认名称为 `Super Code`,描述为 `A faster, more efficient, smarter coding mode.`;插件不在此路径同步预设名称/描述的语言或改写用户 profile。定制应通过宿主支持的配置机制进行,本轮兼容冒烟不覆盖全部定制场景。插件界面本身仍支持中英文。
39
+ 声明式预设的默认名称和描述从 0.3.1 起跟随中英文设置,已自定义的字段保留。语言变化只调整展示字段,不更新旧预设的内容或版本;确认重装才使用当前插件随包的组合。
26
40
 
27
- The declaration defaults to the name `Super Code` and description `A faster, more efficient, smarter coding mode.` On this path, the plugin does not synchronize the preset name/description language or rewrite the user profile. Use the host's supported configuration mechanisms for customization; the smoke checks do not cover every customization scenario. The plugin interface itself still supports Chinese and English.
41
+ From 0.3.1, default declarative preset names and descriptions follow Chinese/English settings while custom fields remain intact. Language changes update display fields only, retaining the older preset's content and version. Confirmed reinstallation uses the composition shipped with the current plugin.
28
42
 
29
43
  插件管理中的展示信息独立于预设声明:0.2.1 通过导出的语言资源提供 `Super Code 模式` / `Super Code` 和对应描述,支持新版宿主读取根路径及子路径的展示信息。
30
44
 
@@ -32,15 +46,25 @@ Plugin management metadata is separate from the preset declaration. Version 0.2.
32
46
 
33
47
  ### Harness 0.1.5/0.1.6:目录预设 · Directory Presets
34
48
 
35
- 如果 Harness 没发现插件自带的 `super-code`,插件首次加载时会尝试安装一份用户预设。仍然没看到时,打开“设置”→ **Super Code**,展开卡片查看状态并手动安装。默认标识符 `super-code` 若已被占用,换一个即可;原有预设不会被覆盖。之后若主动删除这份用户副本,重启也不会自动重装,需要再次手动安装。0.2.0 以前的插件设置入口在“插件”→“插件配置”中。
49
+ 如果 Harness 没发现插件自带的 `super-code`,插件首次加载时会尝试安装一份用户预设。仍然没看到时,打开“设置”→ **Super Code**,查看状态并手动安装;0.3.1 起此页始终展开。默认标识符 `super-code` 若已被占用,换一个即可;原有预设不会被覆盖。之后若主动删除这份用户副本,重启也不会自动重装,需要再次手动安装。0.2.0 以前的插件设置入口在“插件”→“插件配置”中。
36
50
 
37
- If Harness doesn't find the bundled `super-code` preset, the plugin tries to install a user copy on first load. If it still isn't listed, open “Settings” → **Super Code** and expand the card to check its status or install it manually. If the default identifier `super-code` is taken, choose another; the existing preset won't be overwritten. If you later delete this copy, a restart won't reinstall it automatically. Plugin versions before 0.2.0 place this page under “Plugins” → “Plugin configuration”.
51
+ If Harness doesn't find the bundled `super-code` preset, the plugin tries to install a user copy on first load. If it still isn't listed, open “Settings” → **Super Code** to check its status or install it manually; this page stays expanded from 0.3.1 onward. If the default identifier `super-code` is taken, choose another; the existing preset won't be overwritten. If you later delete this copy, a restart won't reinstall it automatically. Plugin versions before 0.2.0 place this page under “Plugins” → “Plugin configuration”.
52
+
53
+ ## 查看预设版本 · Checking the Preset Version
54
+
55
+ 0.3.1 起,“设置”→ **Super Code** 分别显示已加载的插件版本和当前预设版本。预设版本来自实际加载的预设组合;两者一致时表示预设与当前安装的插件同步,不代表 npm 上没有更新版本。旧预设没有版本记录时,会显示“未记录版本”,不会自动视为最新版。修改名称或切换语言不改变预设版本。
56
+
57
+ From 0.3.1 onward, “Settings” → **Super Code** shows the loaded plugin version and the current preset version separately. The preset version comes from its actual composition. Matching versions mean the preset is in sync with the installed plugin, not that no newer npm release exists. Older presets without version metadata show “Version not recorded”. Renaming a preset or changing the language does not change its version.
58
+
59
+ 若版本不一致,先保留需要的自定义内容,再通过确认清单重装。目录式宿主替换用户副本,声明式宿主替换本插件拥有的声明,均保留恢复备份。重装后刷新仍不一致时,检查插件更新是否生效及宿主日志。
60
+
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.
38
62
 
39
63
  ## 名称与语言 · Names and Language
40
64
 
41
- 本节的名称同步和自定义安装名称适用于旧宿主的目录预设,不适用于 0.1.7 / 0.2.0 / 0.2.1 的声明式预设。
65
+ 0.3.1 的名称同步和自定义安装名称同时支持目录式与声明式预设。
42
66
 
43
- The name synchronization and custom installation names in this section apply to directory presets on older hosts, not declarative presets on 0.1.7 / 0.2.0 / 0.2.1.
67
+ Version 0.3.1 supports display-language synchronization and custom installation names for directory and declarative presets.
44
68
 
45
69
  标识符和显示名称是两回事:标识符用于选择预设,显示名称可以单独修改。默认名称会跟随 Harness 的中英文语言设置;自定义名称可以包含中文和空格,例如 `Super Code 模式`,最多 120 个字符。插件只更新仍保持默认值的名称和描述,不会改动你的自定义内容。
46
70
 
@@ -52,9 +76,9 @@ Older Harness versions cache the preset list, so the page refreshes once if the
52
76
 
53
77
  ## 重装与备份 · Reinstallation and Backup
54
78
 
55
- 仅适用于插件在旧宿主上管理的用户目录副本;0.1.7 / 0.2.0 / 0.2.1 声明式预设没有此重装/备份流程。
79
+ 目录副本与声明式预设均支持此流程;插件只替换能够核实归属的预设。
56
80
 
57
- This applies only to user-directory copies managed by the plugin on older hosts. Declarative presets on 0.1.7 / 0.2.0 / 0.2.1 do not use this reinstallation/backup workflow.
81
+ This workflow supports directory copies and declarative presets. The plugin replaces only presets whose ownership can be verified.
58
82
 
59
83
  已安装用户预设时,可以点“重新安装预设”。确认框会列出将被替换的预设及新名称、标识符,先核对再确认。可以从列表中移除条目,但全部移除后不能确认;取消或按 Escape 不会改动预设。重装会重置旧副本的内容,所以自定义内容请先自行留存。
60
84
 
@@ -64,6 +88,10 @@ If a user preset is already installed, you can choose “Reinstall preset”. Th
64
88
 
65
89
  To avoid removing the wrong files, the plugin replaces only copies whose installation record, UUID, path, and directory identity all match. It never automatically deletes unmarked legacy copies. The previous directory stays under `.super-code-backup-*/<old-id>` in the user preset root and won't appear in the preset list. An installation failure restores the old directory; after an unexpected interruption, you can recover it manually from the backup.
66
90
 
91
+ 声明式宿主通过 bundle 来源标记,或匹配的安装记录、声明标识符和 UUID 核实归属;同名的无标记声明不会自动认领。旧声明及原 profile 补丁保存在当前 profile 的 `.super-code-backup-*` 中,安装记录位于 `.super-code-presets.json`。失败时尝试恢复原补丁和记录;若进程中断,可从备份恢复。已有会话继续使用宿主保留的旧预设组合,新会话使用重装后的版本。
92
+
93
+ Declarative hosts verify a bundle source marker or matching installation record, entry identity and UUID. Unmarked same-name declarations are not adopted automatically. The previous declaration and profile patch stay in `.super-code-backup-*` under the current profile; `.super-code-presets.json` stores ownership records. Failures attempt to restore the original patch and record; backups allow recovery after interruption. Existing sessions retain their old composition through the host; new sessions use the reinstalled version.
94
+
67
95
  ## Agent 执行树 · Agent Execution Tree
68
96
 
69
97
  右侧执行树显示当前会话中各 Agent 的状态、用量和缓存率。拖动空白处平移,滚轮或按钮缩放;点一个节点,就能在侧栏新标签查看详情,主对话不会切换。界面跟随 Harness 的中英文语言设置。
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Small, host-facing classification for calls assembled by one PTC program.
3
+ * The Harness owns scheduling; this module only declares whether an action is
4
+ * safe to overlap. Unknown actions stay exclusive by default.
5
+ */
6
+ export type BatchActionKind = 'read' | 'write' | 'test' | 'unknown';
7
+ export type BatchSafety = 'parallel' | 'exclusive';
8
+ /** Classify task-ledger actions. Validation is a read of the current snapshot. */
9
+ export declare function classifyTaskAction(action: string): BatchActionKind;
10
+ /** Classify durable-memory actions. Unknown scopes/actions remain exclusive. */
11
+ export declare function classifyMemoryAction(action: string): BatchActionKind;
12
+ /** Only explicitly read-only calls may overlap in the host scheduler. */
13
+ export declare function batchSafety(kind: BatchActionKind): BatchSafety;
14
+ //# sourceMappingURL=batch-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch-policy.d.ts","sourceRoot":"","sources":["../../src/core/batch-policy.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAA;AACnE,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,WAAW,CAAA;AASlD,kFAAkF;AAClF,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CAKlE;AAED,gFAAgF;AAChF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CAKpE;AAED,yEAAyE;AACzE,wBAAgB,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,WAAW,CAE9D"}
@@ -0,0 +1,31 @@
1
+ const TASK_READ_ACTIONS = new Set([
2
+ 'list', 'read', 'delegate', 'validate_member', 'source', 'history', 'archives', 'evidence',
3
+ ]);
4
+ const TASK_WRITE_ACTIONS = new Set(['create', 'update', 'focus', 'archive', 'restore']);
5
+ const MEMORY_READ_ACTIONS = new Set(['topics', 'read']);
6
+ const MEMORY_WRITE_ACTIONS = new Set(['remember', 'forget']);
7
+ /** Classify task-ledger actions. Validation is a read of the current snapshot. */
8
+ export function classifyTaskAction(action) {
9
+ if (TASK_READ_ACTIONS.has(action))
10
+ return 'read';
11
+ if (TASK_WRITE_ACTIONS.has(action))
12
+ return 'write';
13
+ if (/^(test|check|verify|assert)(?:_|$)/.test(action))
14
+ return 'test';
15
+ return 'unknown';
16
+ }
17
+ /** Classify durable-memory actions. Unknown scopes/actions remain exclusive. */
18
+ export function classifyMemoryAction(action) {
19
+ if (MEMORY_READ_ACTIONS.has(action))
20
+ return 'read';
21
+ if (MEMORY_WRITE_ACTIONS.has(action))
22
+ return 'write';
23
+ if (/^(test|check|verify|assert)(?:_|$)/.test(action))
24
+ return 'test';
25
+ return 'unknown';
26
+ }
27
+ /** Only explicitly read-only calls may overlap in the host scheduler. */
28
+ export function batchSafety(kind) {
29
+ return kind === 'read' ? 'parallel' : 'exclusive';
30
+ }
31
+ //# sourceMappingURL=batch-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch-policy.js","sourceRoot":"","sources":["../../src/core/batch-policy.ts"],"names":[],"mappings":"AAQA,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IAChC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU;CAC3F,CAAC,CAAA;AACF,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAA;AACvF,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAA;AACvD,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAA;AAE5D,kFAAkF;AAClF,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,IAAI,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAA;IAChD,IAAI,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO,OAAO,CAAA;IAClD,IAAI,oCAAoC,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAA;IACpE,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,oBAAoB,CAAC,MAAc;IACjD,IAAI,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAA;IAClD,IAAI,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO,OAAO,CAAA;IACpD,IAAI,oCAAoC,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAA;IACpE,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,WAAW,CAAC,IAAqB;IAC/C,OAAO,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAA;AACnD,CAAC"}
@@ -13,7 +13,7 @@ export type MethodName = 'investigation' | 'product' | 'bugfix' | 'architecture'
13
13
  export declare const METHODS: Readonly<Record<MethodName, string>>;
14
14
  export declare const TEAMS: Readonly<Record<TeamName, TeamDefinition>>;
15
15
  /** Stable, compact instructions; the host logs selected methods as tool results. */
16
- export declare const SUPER_CODE_INSTRUCTIONS = "You are super-code, completing the user's authorized coding work.\nChoose by deliverable: research, design, develop, verify, optimize. Teams are specialties, not stages. Use super_code_method when causes remain indistinguishable, failures repeat or state/recovery behavior is unclear; reuse loaded guidance. No mandatory routing or reflection loop.\nExplanation/design does not authorize edits; methods/teammates grant no permission. Ask only for decisions affecting correctness or scope. Diagnosis is not a fix.\nFor long/interleaved work, use super_code_task to preserve user-sourced requirements, acceptance, decisions/evidence and next dependency before switching or compaction, not each action. Corrections replace affected constraints only. Never truncate hard requirements. Resume from current context; read missing details and recheck mutable evidence. Status questions do not cancel work.\nBatch independent tools first. Delegate independent deliverables for time or verification value; reuse members for related scope, never recursively. Continue locally; one writer per file or isolated workspaces. For recorded tasks, delegate binds ownership/versions; validate_member precedes lead review. Neither starts workers nor enforces token budgets. Reject stale returns; count all attempts; unknown-stop is not success.\nResolve APIs from visible contracts and callers, never guessed tests or aliases. Before finishing, compare the diff with requirements and affected existing behavior. Check changed recovery/state paths, not just the happy path. An unresolved failure stays unresolved unless baseline evidence or an explicit contract change explains it; future tests cannot establish success. When stuck, change the hypothesis or reduce the reproduction before expanding scope.\nMinimize request cost: reuse context, read targeted ranges, batch independent checks. Keep full verbose logs in task files; report exit status, executed test counts, failure context and file references. Do not hide errors or skip required checks to save tokens. Inspect scaling and resource release. Report delivery, checks and gaps; no unmeasured gains.";
16
+ export declare const SUPER_CODE_INSTRUCTIONS = "You are super-code, completing the user's authorized coding work.\nChoose by deliverable: research, design, develop, verify, optimize. Teams are specialties, not stages. Load super_code_method only for an unclear cause, repeated failure or recovery/state problem; reuse it.\nExplanation/design does not authorize edits; methods/teammates grant no permission. Ask only when correctness or scope needs a decision. Diagnosis is not a fix.\nFor long/interleaved work, use super_code_task before switching or compaction. Preserve user requirements, acceptance, decisions/evidence and the next dependency; corrections replace only affected constraints. Never truncate hard requirements. Resume from current context; status questions do not cancel work.\nBatch is dispatch-only: use one run_code program for independent reads when it changes the next step. The host preserves permissions, cancellation, result links and partial failures. Within that program, normalize identical tool+argument reads and share one promise/result; never cache across calls or bypass a permission/guard. Use Promise.allSettled to keep successes and failure reasons. Prefer decisive checks over speculative fan-out; retry only failed/stale reads; never replay successes, writes, tests or unknown side effects. Sequence writes, tests, state and dependency gates. Use a small per-run budget (usually <=8 calls); stop on cancellation and keep completed results. PTC is optional when native tool presentation is unavailable.\nDelegate only independent deliverables with clear ownership; reuse a settled member for related work, never recurse. One writer per file or isolated workspace. Reject stale returns, count every attempt and treat unknown-stop as unresolved. Resolve APIs from visible contracts and callers, never guessed aliases.\nBefore finishing, compare the diff with requirements and affected behavior, including recovery/state and resource release. Run named acceptance and affected tests; partial pass, zero tests, environment errors and future tests are not completion. Keep verbose logs in files, report exit status, counts, failure context and limits. Stop unrelated exploration after supported evidence; claim no unmeasured gains.";
17
17
  /** Read exactly the selected team/method; caller chooses using task meaning. */
18
18
  export declare function readTeamMethod(team: TeamName, method?: MethodName): string;
19
19
  //# sourceMappingURL=teams.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"teams.d.ts","sourceRoot":"","sources":["../../src/core/teams.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,eAAO,MAAM,UAAU,kEAAmE,CAAA;AAC1F,MAAM,MAAM,QAAQ,GAAG,OAAO,UAAU,CAAC,MAAM,CAAC,CAAA;AAChD,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAA;AAE5C,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,CAAA;CACxC;AAED,sFAAsF;AACtF,MAAM,MAAM,UAAU,GAAG,eAAe,GAAG,SAAS,GAAG,QAAQ,GAAG,cAAc,GAAG,WAAW,GAAG,SAAS,GAAG,aAAa,GAAG,aAAa,GAAG,SAAS,CAAA;AACtJ,eAAO,MAAM,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAU9C,CAAA;AAEX,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,cAAc,CAAC,CAM3D,CAAA;AAEF,oFAAoF;AACpF,eAAO,MAAM,uBAAuB,imEAM+T,CAAA;AAEnW,gFAAgF;AAChF,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM,CAM1E"}
1
+ {"version":3,"file":"teams.d.ts","sourceRoot":"","sources":["../../src/core/teams.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,eAAO,MAAM,UAAU,kEAAmE,CAAA;AAC1F,MAAM,MAAM,QAAQ,GAAG,OAAO,UAAU,CAAC,MAAM,CAAC,CAAA;AAChD,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAA;AAE5C,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,CAAA;CACxC;AAED,sFAAsF;AACtF,MAAM,MAAM,UAAU,GAAG,eAAe,GAAG,SAAS,GAAG,QAAQ,GAAG,cAAc,GAAG,WAAW,GAAG,SAAS,GAAG,aAAa,GAAG,aAAa,GAAG,SAAS,CAAA;AACtJ,eAAO,MAAM,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAU9C,CAAA;AAEX,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,cAAc,CAAC,CAM3D,CAAA;AAEF,oFAAoF;AACpF,eAAO,MAAM,uBAAuB,6qEAMsX,CAAA;AAE1Z,gFAAgF;AAChF,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM,CAM1E"}
package/lib/core/teams.js CHANGED
@@ -20,12 +20,12 @@ export const TEAMS = Object.freeze({
20
20
  });
21
21
  /** Stable, compact instructions; the host logs selected methods as tool results. */
22
22
  export const SUPER_CODE_INSTRUCTIONS = `You are super-code, completing the user's authorized coding work.
23
- Choose by deliverable: research, design, develop, verify, optimize. Teams are specialties, not stages. Use super_code_method when causes remain indistinguishable, failures repeat or state/recovery behavior is unclear; reuse loaded guidance. No mandatory routing or reflection loop.
24
- Explanation/design does not authorize edits; methods/teammates grant no permission. Ask only for decisions affecting correctness or scope. Diagnosis is not a fix.
25
- For long/interleaved work, use super_code_task to preserve user-sourced requirements, acceptance, decisions/evidence and next dependency before switching or compaction, not each action. Corrections replace affected constraints only. Never truncate hard requirements. Resume from current context; read missing details and recheck mutable evidence. Status questions do not cancel work.
26
- Batch independent tools first. Delegate independent deliverables for time or verification value; reuse members for related scope, never recursively. Continue locally; one writer per file or isolated workspaces. For recorded tasks, delegate binds ownership/versions; validate_member precedes lead review. Neither starts workers nor enforces token budgets. Reject stale returns; count all attempts; unknown-stop is not success.
27
- Resolve APIs from visible contracts and callers, never guessed tests or aliases. Before finishing, compare the diff with requirements and affected existing behavior. Check changed recovery/state paths, not just the happy path. An unresolved failure stays unresolved unless baseline evidence or an explicit contract change explains it; future tests cannot establish success. When stuck, change the hypothesis or reduce the reproduction before expanding scope.
28
- Minimize request cost: reuse context, read targeted ranges, batch independent checks. Keep full verbose logs in task files; report exit status, executed test counts, failure context and file references. Do not hide errors or skip required checks to save tokens. Inspect scaling and resource release. Report delivery, checks and gaps; no unmeasured gains.`;
23
+ Choose by deliverable: research, design, develop, verify, optimize. Teams are specialties, not stages. Load super_code_method only for an unclear cause, repeated failure or recovery/state problem; reuse it.
24
+ Explanation/design does not authorize edits; methods/teammates grant no permission. Ask only when correctness or scope needs a decision. Diagnosis is not a fix.
25
+ For long/interleaved work, use super_code_task before switching or compaction. Preserve user requirements, acceptance, decisions/evidence and the next dependency; corrections replace only affected constraints. Never truncate hard requirements. Resume from current context; status questions do not cancel work.
26
+ Batch is dispatch-only: use one run_code program for independent reads when it changes the next step. The host preserves permissions, cancellation, result links and partial failures. Within that program, normalize identical tool+argument reads and share one promise/result; never cache across calls or bypass a permission/guard. Use Promise.allSettled to keep successes and failure reasons. Prefer decisive checks over speculative fan-out; retry only failed/stale reads; never replay successes, writes, tests or unknown side effects. Sequence writes, tests, state and dependency gates. Use a small per-run budget (usually <=8 calls); stop on cancellation and keep completed results. PTC is optional when native tool presentation is unavailable.
27
+ Delegate only independent deliverables with clear ownership; reuse a settled member for related work, never recurse. One writer per file or isolated workspace. Reject stale returns, count every attempt and treat unknown-stop as unresolved. Resolve APIs from visible contracts and callers, never guessed aliases.
28
+ Before finishing, compare the diff with requirements and affected behavior, including recovery/state and resource release. Run named acceptance and affected tests; partial pass, zero tests, environment errors and future tests are not completion. Keep verbose logs in files, report exit status, counts, failure context and limits. Stop unrelated exploration after supported evidence; claim no unmeasured gains.`;
29
29
  /** Read exactly the selected team/method; caller chooses using task meaning. */
30
30
  export function readTeamMethod(team, method) {
31
31
  const definition = TEAMS[team];
@@ -1 +1 @@
1
- {"version":3,"file":"teams.js","sourceRoot":"","sources":["../../src/core/teams.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAU,CAAA;AAa1F,MAAM,CAAC,MAAM,OAAO,GAAyC,MAAM,CAAC,MAAM,CAAC;IACzE,aAAa,EAAE,inBAAinB;IAChoB,OAAO,EAAE,iaAAia;IAC1a,MAAM,EAAE,4tBAA4tB;IACpuB,YAAY,EAAE,miBAAmiB;IACjjB,SAAS,EAAE,ykBAAykB;IACplB,OAAO,EAAE,00BAA00B;IACn1B,WAAW,EAAE,oeAAoe;IACjf,WAAW,EAAE,mjBAAmjB;IAChkB,OAAO,EAAE,8WAA8W;CAC/W,CAAC,CAAA;AAEX,MAAM,CAAC,MAAM,KAAK,GAA+C,MAAM,CAAC,MAAM,CAAC;IAC7E,QAAQ,EAAE,EAAE,OAAO,EAAE,mDAAmD,EAAE,QAAQ,EAAE,kFAAkF,EAAE,QAAQ,EAAE,0EAA0E,EAAE,OAAO,EAAE,CAAC,eAAe,EAAE,aAAa,CAAC,EAAE;IACzS,MAAM,EAAE,EAAE,OAAO,EAAE,wEAAwE,EAAE,QAAQ,EAAE,8EAA8E,EAAE,QAAQ,EAAE,sFAAsF,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,WAAW,CAAC,EAAE;IAC5U,OAAO,EAAE,EAAE,OAAO,EAAE,iEAAiE,EAAE,QAAQ,EAAE,wFAAwF,EAAE,QAAQ,EAAE,sEAAsE,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,CAAC,EAAE;IAC5U,MAAM,EAAE,EAAE,OAAO,EAAE,2DAA2D,EAAE,QAAQ,EAAE,iFAAiF,EAAE,QAAQ,EAAE,iFAAiF,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC,EAAE;IAC/S,QAAQ,EAAE,EAAE,OAAO,EAAE,sEAAsE,EAAE,QAAQ,EAAE,sGAAsG,EAAE,QAAQ,EAAE,2FAA2F,EAAE,OAAO,EAAE,CAAC,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,CAAC,EAAE;CACzX,CAAC,CAAA;AAEF,oFAAoF;AACpF,MAAM,CAAC,MAAM,uBAAuB,GAAG;;;;;;mWAM4T,CAAA;AAEnW,gFAAgF;AAChF,MAAM,UAAU,cAAc,CAAC,IAAc,EAAE,MAAmB;IAChE,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAA;IAC9B,IAAI,CAAC,UAAU;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAA;IACzD,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAA;IACzG,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,GAAG,IAAI,KAAK,UAAU,CAAC,OAAO,KAAK,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,EAAE,CAAA;IAChG,OAAO,GAAG,IAAI,KAAK,UAAU,CAAC,OAAO,KAAK,UAAU,CAAC,QAAQ,eAAe,UAAU,CAAC,QAAQ,cAAc,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;AAC9I,CAAC"}
1
+ {"version":3,"file":"teams.js","sourceRoot":"","sources":["../../src/core/teams.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAU,CAAA;AAa1F,MAAM,CAAC,MAAM,OAAO,GAAyC,MAAM,CAAC,MAAM,CAAC;IACzE,aAAa,EAAE,inBAAinB;IAChoB,OAAO,EAAE,iaAAia;IAC1a,MAAM,EAAE,4tBAA4tB;IACpuB,YAAY,EAAE,miBAAmiB;IACjjB,SAAS,EAAE,ykBAAykB;IACplB,OAAO,EAAE,00BAA00B;IACn1B,WAAW,EAAE,oeAAoe;IACjf,WAAW,EAAE,mjBAAmjB;IAChkB,OAAO,EAAE,8WAA8W;CAC/W,CAAC,CAAA;AAEX,MAAM,CAAC,MAAM,KAAK,GAA+C,MAAM,CAAC,MAAM,CAAC;IAC7E,QAAQ,EAAE,EAAE,OAAO,EAAE,mDAAmD,EAAE,QAAQ,EAAE,kFAAkF,EAAE,QAAQ,EAAE,0EAA0E,EAAE,OAAO,EAAE,CAAC,eAAe,EAAE,aAAa,CAAC,EAAE;IACzS,MAAM,EAAE,EAAE,OAAO,EAAE,wEAAwE,EAAE,QAAQ,EAAE,8EAA8E,EAAE,QAAQ,EAAE,sFAAsF,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,WAAW,CAAC,EAAE;IAC5U,OAAO,EAAE,EAAE,OAAO,EAAE,iEAAiE,EAAE,QAAQ,EAAE,wFAAwF,EAAE,QAAQ,EAAE,sEAAsE,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,CAAC,EAAE;IAC5U,MAAM,EAAE,EAAE,OAAO,EAAE,2DAA2D,EAAE,QAAQ,EAAE,iFAAiF,EAAE,QAAQ,EAAE,iFAAiF,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC,EAAE;IAC/S,QAAQ,EAAE,EAAE,OAAO,EAAE,sEAAsE,EAAE,QAAQ,EAAE,sGAAsG,EAAE,QAAQ,EAAE,2FAA2F,EAAE,OAAO,EAAE,CAAC,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,CAAC,EAAE;CACzX,CAAC,CAAA;AAEF,oFAAoF;AACpF,MAAM,CAAC,MAAM,uBAAuB,GAAG;;;;;;0ZAMmX,CAAA;AAE1Z,gFAAgF;AAChF,MAAM,UAAU,cAAc,CAAC,IAAc,EAAE,MAAmB;IAChE,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAA;IAC9B,IAAI,CAAC,UAAU;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAA;IACzD,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAA;IACzG,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,GAAG,IAAI,KAAK,UAAU,CAAC,OAAO,KAAK,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,EAAE,CAAA;IAChG,OAAO,GAAG,IAAI,KAAK,UAAU,CAAC,OAAO,KAAK,UAAU,CAAC,QAAQ,eAAe,UAAU,CAAC,QAAQ,cAAc,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;AAC9I,CAAC"}
@@ -0,0 +1,75 @@
1
+ import yaml from 'js-yaml';
2
+ import { type DisplayBaseline } from './preset-metadata.js';
3
+ import type { DeclaredPresetRegistry, PresetInstallationResult, PresetInstallationStatus } from './preset-installation.js';
4
+ export declare const declarationSchema: yaml.Schema;
5
+ export interface DeclarationConfig {
6
+ id: string;
7
+ name?: string;
8
+ description?: string;
9
+ order?: number;
10
+ plugins: Array<{
11
+ name?: string;
12
+ config?: Record<string, unknown>;
13
+ [key: string]: unknown;
14
+ }>;
15
+ }
16
+ export interface DeclarationEntry {
17
+ id: string;
18
+ disabled?: boolean;
19
+ options: {
20
+ name: string;
21
+ config?: DeclarationConfig;
22
+ };
23
+ }
24
+ export interface DeclarationHost {
25
+ patchPath: string;
26
+ entries(): readonly DeclarationEntry[];
27
+ reload(): Promise<void>;
28
+ exclusive<T>(run: () => Promise<T>): Promise<T>;
29
+ }
30
+ export interface DeclarationSettings {
31
+ declaration?: {
32
+ entryId: string;
33
+ id: string;
34
+ token: string;
35
+ };
36
+ declarationDisplay?: DisplayBaseline;
37
+ }
38
+ export interface DeclarationState {
39
+ get(): DeclarationSettings;
40
+ update(patch: Partial<DeclarationSettings>): Promise<void>;
41
+ }
42
+ /** Newer settings providers edit Loader forms; installation records stay local. */
43
+ export declare class DeclarationStateFile implements DeclarationState {
44
+ private readonly path;
45
+ private value;
46
+ private constructor();
47
+ static open(path: string): Promise<DeclarationStateFile>;
48
+ get(): DeclarationSettings;
49
+ update(patch: Partial<DeclarationSettings>): Promise<void>;
50
+ }
51
+ /** Only marked bundle rows or UUID-matched manual installations may be replaced. */
52
+ export declare class DeclaredPresetInstaller {
53
+ private readonly registry;
54
+ private readonly settings;
55
+ private readonly host;
56
+ private readonly bundlePath;
57
+ private tail;
58
+ constructor(registry: DeclaredPresetRegistry, settings: DeclarationState, host: DeclarationHost, bundlePath: string);
59
+ private entry;
60
+ private document;
61
+ status(): Promise<PresetInstallationStatus>;
62
+ install(id: unknown, name?: string): Promise<PresetInstallationResult>;
63
+ reinstall(previousId: string, id: unknown, name?: string): Promise<PresetInstallationResult>;
64
+ private reject;
65
+ private replace;
66
+ synchronize(language: string): Promise<{
67
+ changed: boolean;
68
+ }>;
69
+ /** Back up first, refuse a stale file, and restore only our own failed write. */
70
+ private save;
71
+ private readPatch;
72
+ private atomicWrite;
73
+ private enqueue;
74
+ }
75
+ //# sourceMappingURL=preset-declaration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preset-declaration.d.ts","sourceRoot":"","sources":["../../src/dsh/preset-declaration.ts"],"names":[],"mappings":"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"}