@siming-org/opencode-plugin 0.1.13 → 0.1.16

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 (57) hide show
  1. package/README.md +37 -3
  2. package/dist/assets-store.d.ts +2 -1
  3. package/dist/assets-store.d.ts.map +1 -1
  4. package/dist/assets-store.js +2 -1
  5. package/dist/assets-store.js.map +1 -1
  6. package/dist/fetch-assets.d.ts +44 -1
  7. package/dist/fetch-assets.d.ts.map +1 -1
  8. package/dist/fetch-assets.js +141 -13
  9. package/dist/fetch-assets.js.map +1 -1
  10. package/dist/guide-skill.d.ts +2 -2
  11. package/dist/guide-skill.d.ts.map +1 -1
  12. package/dist/guide-skill.js +2 -2
  13. package/dist/guide-skill.js.map +1 -1
  14. package/dist/host-api.d.ts +35 -4
  15. package/dist/host-api.d.ts.map +1 -1
  16. package/dist/host-api.js +5 -24
  17. package/dist/host-api.js.map +1 -1
  18. package/dist/register/skills.d.ts +7 -4
  19. package/dist/register/skills.d.ts.map +1 -1
  20. package/dist/register/skills.js +11 -5
  21. package/dist/register/skills.js.map +1 -1
  22. package/dist/register/todo-suite.d.ts +28 -0
  23. package/dist/register/todo-suite.d.ts.map +1 -0
  24. package/dist/register/todo-suite.js +133 -0
  25. package/dist/register/todo-suite.js.map +1 -0
  26. package/dist/revalidate.d.ts +3 -1
  27. package/dist/revalidate.d.ts.map +1 -1
  28. package/dist/revalidate.js +5 -3
  29. package/dist/revalidate.js.map +1 -1
  30. package/dist/server/index.d.ts.map +1 -1
  31. package/dist/server/index.js +50 -4
  32. package/dist/server/index.js.map +1 -1
  33. package/dist/todo/config.d.ts +21 -0
  34. package/dist/todo/config.d.ts.map +1 -0
  35. package/dist/todo/config.js +272 -0
  36. package/dist/todo/config.js.map +1 -0
  37. package/dist/todo/counter.d.ts +14 -0
  38. package/dist/todo/counter.d.ts.map +1 -0
  39. package/dist/todo/counter.js +19 -0
  40. package/dist/todo/counter.js.map +1 -0
  41. package/dist/todo/nudge-log.d.ts +5 -0
  42. package/dist/todo/nudge-log.d.ts.map +1 -0
  43. package/dist/todo/nudge-log.js +45 -0
  44. package/dist/todo/nudge-log.js.map +1 -0
  45. package/dist/todo/prompt.d.ts +9 -0
  46. package/dist/todo/prompt.d.ts.map +1 -0
  47. package/dist/todo/prompt.js +18 -0
  48. package/dist/todo/prompt.js.map +1 -0
  49. package/dist/todo/rate-limit.d.ts +7 -0
  50. package/dist/todo/rate-limit.d.ts.map +1 -0
  51. package/dist/todo/rate-limit.js +20 -0
  52. package/dist/todo/rate-limit.js.map +1 -0
  53. package/dist/todo/task-planning-skill.d.ts +9 -0
  54. package/dist/todo/task-planning-skill.d.ts.map +1 -0
  55. package/dist/todo/task-planning-skill.js +58 -0
  56. package/dist/todo/task-planning-skill.js.map +1 -0
  57. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"host-api.d.ts","sourceRoot":"","sources":["../src/host-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"host-api.d.ts","sourceRoot":"","sources":["../src/host-api.ts"],"names":[],"mappings":"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"}
package/dist/host-api.js CHANGED
@@ -1,29 +1,10 @@
1
1
  /**
2
- * opencode v2 宿主插件 API 最小契约(自维护)。
3
- *
4
- * 为什么不用 @opencode-ai/plugin 的类型:SDK .d.ts 滞后于宿主运行时
5
- * (v2.0.26 宿主有 mcp/tool 等域的运行时能力,SDK 声明缺失/漂移,见技术方案 §2)。
6
- * 本文件按 v2.0.26 宿主源码锚点(packages/plugin/src/promise/*.ts,隔离 HOME 实测核实):
7
- * - skill 域:SkillEditor = list/get/add/update/remove(无 set;Skill.Info 必填 path=合成展示路径,
8
- * content 内嵌消费——内置技能先例 /builtin/opencode.md + core/src/skill.ts toModelOutput);
9
- * - agent 域:AgentEditor = list/get/default/update/remove(无 set 无 add;update=upsert-create,
10
- * 回调条目字段是 system 非 systemPrompt,种子 Agent.default(id) mode=primary);
11
- * - mcp 域:MCPEditor = set/remove(LocalConfig 无 enabled 字段,语义取 disabled?);
12
- * - tool 域:Tool.Info 必填 input(zod 实现 StandardSchemaV1 可行);ToolContext 无 directory
13
- * ——cwd 基准由 setup 捕获 ctx.location.directory 经闭包传入;
14
- * - session 域:SessionDomain 的 hook/get 消费子集(context hook 事件 system 可变数组 + sessionID;
15
- * session.get 回查 Session.Info——parentID 缺省=主会话,子代理跑 child session 带 parentID,
16
- * v2.0.26/v2.0.30/dev 三版本核验一致,T202610160002);
17
- * - setup ctx.location.directory 存在(Location.Info):插件按活跃 location 各跑一份 setup。
18
- * 只声明插件实际消费的最小面;SDK 仅作 devDep 参考对齐,不进入运行时依赖。
2
+ * 技能合成展示路径(内置技能 /builtin/*.md 先例):以附件缓存根为基避免与真实项目文件混淆。
3
+ * 宿主对 basename==='SKILL.md' 的 path 执行 scan(dirname(path)) 生成 <skill_files>,故展示
4
+ * 路径必须与 references 物化路径同源(T202610220004 决策 B)。
19
5
  */
20
- import { tmpdir } from 'node:os';
21
- /**
22
- * 技能合成展示路径(内置技能 /builtin/*.md 先例):以 tmpdir 为基避免与真实项目文件混淆;
23
- * references 已在拉取时物化为绝对路径,不依赖此 path 做相对解析。
24
- */
25
- export function skillDisplayPath(name) {
26
- return `${tmpdir()}/siming-opencode-plugin/skills/${name}/SKILL.md`;
6
+ export function skillDisplayPath(referencesRoot, name) {
7
+ return `${referencesRoot}/skills/${name}/SKILL.md`;
27
8
  }
28
9
  /**
29
10
  * 域 list() 返回条目的名字归一化(自检用)。
@@ -1 +1 @@
1
- {"version":3,"file":"host-api.js","sourceRoot":"","sources":["../src/host-api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAkGjC;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,OAAO,GAAG,MAAM,EAAE,kCAAkC,IAAI,WAAW,CAAC;AACtE,CAAC;AAyFD;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,OAA2B;IACxD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;YAChE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAW,CAAC,CAAC;QAChC,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACvD,MAAM,MAAM,GAAG,KAAgC,CAAC;YAChD,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;gBAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;iBACvD,IAAI,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ;gBAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"host-api.js","sourceRoot":"","sources":["../src/host-api.ts"],"names":[],"mappings":"AAoHA;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,cAAsB,EAAE,IAAY;IACnE,OAAO,GAAG,cAAc,WAAW,IAAI,WAAW,CAAC;AACrD,CAAC;AAsGD;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,OAA2B;IACxD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;YAChE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAW,CAAC,CAAC;QAChC,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACvD,MAAM,MAAM,GAAG,KAAgC,CAAC;YAChD,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;gBAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;iBACvD,IAAI,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ;gBAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -5,11 +5,14 @@
5
5
  * 1. 对账簿比对——上轮注册过但本轮 store 已无的名字 ed.remove(停用/删除的消失不依赖宿主 reload 实现形态);
6
6
  * 2. store 内全部技能 add(正文内嵌消费,path=合成展示路径——内置技能 /builtin/*.md 先例,
7
7
  * references 已在拉取时物化并改写为绝对路径);
8
- * 3. 引导技能固定注册(注册面固定项之一,不随拉取变化)。
8
+ * 3. 引导技能固定注册(注册面固定项之一,不随拉取变化);
9
+ * 4. 内置常量技能(T202610260002 todo 三件套之 task-planning;门控/旧宿主守卫不过时传空数组)。
9
10
  * transform 每请求重放,读的是 assets-store 当前快照——刷新替换 store 后下一请求即见新名单。
10
11
  */
11
- import type { HostPluginContext } from '../host-api.js';
12
+ import type { HostPluginContext, HostSkillInfo } from '../host-api.js';
12
13
  import type { AssetsStore } from '../assets-store.js';
13
- /** store=本 location 实例(setup 构造后注入——多 location 各注册各的,互不串扰) */
14
- export declare function registerSkills(ctx: HostPluginContext, store: AssetsStore): void;
14
+ /** store=本 location 实例(setup 构造后注入——多 location 各注册各的,互不串扰);
15
+ * referencesRoot 与拉取侧物化根同源(referencesRootOf(directory)),展示路径靠它定位 <skill_files>;
16
+ * extraSkills=内置常量技能(门控不过时为空——三件套整体生效/整体不生效,PRD 规则 14) */
17
+ export declare function registerSkills(ctx: HostPluginContext, store: AssetsStore, referencesRoot: string, extraSkills?: readonly HostSkillInfo[]): void;
15
18
  //# sourceMappingURL=skills.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/register/skills.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGtD,8DAA8D;AAC9D,wBAAgB,cAAc,CAAC,GAAG,EAAE,iBAAiB,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAuB/E"}
1
+ {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/register/skills.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGtD;;2DAE2D;AAC3D,wBAAgB,cAAc,CAC5B,GAAG,EAAE,iBAAiB,EACtB,KAAK,EAAE,WAAW,EAClB,cAAc,EAAE,MAAM,EACtB,WAAW,GAAE,SAAS,aAAa,EAAO,GACzC,IAAI,CA4BN"}
@@ -1,7 +1,9 @@
1
1
  import { skillDisplayPath } from '../host-api.js';
2
2
  import { guideSkillInfo } from '../guide-skill.js';
3
- /** store=本 location 实例(setup 构造后注入——多 location 各注册各的,互不串扰) */
4
- export function registerSkills(ctx, store) {
3
+ /** store=本 location 实例(setup 构造后注入——多 location 各注册各的,互不串扰);
4
+ * referencesRoot 与拉取侧物化根同源(referencesRootOf(directory)),展示路径靠它定位 <skill_files>;
5
+ * extraSkills=内置常量技能(门控不过时为空——三件套整体生效/整体不生效,PRD 规则 14) */
6
+ export function registerSkills(ctx, store, referencesRoot, extraSkills = []) {
5
7
  ctx.skill.transform((editor) => {
6
8
  // 1. 对账:store 已无但上轮注册过的名字移除(停用/删除消失)
7
9
  const currentNames = new Set(store.getSnapshot().skills.map((skill) => skill.name));
@@ -16,12 +18,16 @@ export function registerSkills(ctx, store) {
16
18
  id: skill.name,
17
19
  name: skill.name,
18
20
  description: skill.description,
19
- path: skillDisplayPath(skill.name),
21
+ path: skillDisplayPath(referencesRoot, skill.name),
20
22
  content: skill.content,
21
23
  });
22
24
  }
23
- // 3. 引导技能(固定常驻)
24
- editor.add(guideSkillInfo());
25
+ // 3. 引导技能(固定常驻;展示路径同根,保持注册面一致)
26
+ editor.add(guideSkillInfo(referencesRoot));
27
+ // 4. 内置常量技能(todo task-planning 等;与固定项同形态——每轮重放 add,幂等)
28
+ for (const info of extraSkills) {
29
+ editor.add(info);
30
+ }
25
31
  });
26
32
  }
27
33
  //# sourceMappingURL=skills.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/register/skills.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,8DAA8D;AAC9D,MAAM,UAAU,cAAc,CAAC,GAAsB,EAAE,KAAkB;IACvE,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;QAC7B,qCAAqC;QACrC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACpF,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,uBAAuB,EAAE,EAAE,CAAC;YACnD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnD,CAAC;QACD,KAAK,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAC;QAE5C,sCAAsC;QACtC,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,CAAC;YAC/C,MAAM,CAAC,GAAG,CAAC;gBACT,EAAE,EAAE,KAAK,CAAC,IAAI;gBACd,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,IAAI,EAAE,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC;gBAClC,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB,CAAC,CAAC;QACL,CAAC;QAED,gBAAgB;QAChB,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/register/skills.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD;;2DAE2D;AAC3D,MAAM,UAAU,cAAc,CAC5B,GAAsB,EACtB,KAAkB,EAClB,cAAsB,EACtB,cAAwC,EAAE;IAE1C,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;QAC7B,qCAAqC;QACrC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACpF,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,uBAAuB,EAAE,EAAE,CAAC;YACnD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnD,CAAC;QACD,KAAK,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAC;QAE5C,sCAAsC;QACtC,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,CAAC;YAC/C,MAAM,CAAC,GAAG,CAAC;gBACT,EAAE,EAAE,KAAK,CAAC,IAAI;gBACd,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,IAAI,EAAE,gBAAgB,CAAC,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC;gBAClD,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB,CAAC,CAAC;QACL,CAAC;QAED,+BAA+B;QAC/B,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC;QAE3C,uDAAuD;QACvD,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC/B,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * todo 三件套注册:task-planning 技能 + todo 系统提示词 + 每 N 次请求提醒注入(技术方案 §4.3/§4.7)。
3
+ *
4
+ * 判定链(顺序即语义):
5
+ * ① 旧宿主守卫:session 域缺 hook/get → 三件套全不注册(selfCheck 可观测);
6
+ * ② 激活门控:tool.list() 无 'todowrite'(宿主 experimental.todo 未开启)→ 三件套全不注册
7
+ * + 指引日志;判定仅在 setup 时一次(PRD 规则 14,用户开启后重启/重载恢复);
8
+ * ③ handler(每请求):主会话判定(子代理不注入;识别失败按主会话处理——宁可多提醒)
9
+ * → 8.1 系统提示词幂等注入(不读配置——开关只停提醒,PRD 规则 3)
10
+ * → corrupt/enabled=false 早退(零 IO,不计数)
11
+ * → 计数 % every 命中 → 尾部判重(末条消息最后一个 text part 严格相等,PRD 规则 8)
12
+ * → 消息尾部注入(user + text parts 数组——纯字符串会被宿主静默丢弃)
13
+ * → 命中日志(§4.5)。
14
+ * 失败隔离:handler 全体 try/catch,同类错误 60s 一条,绝不 rethrow(PRD 规则 9)。
15
+ */
16
+ import { type HostPluginContext, type HostSkillInfo } from '../host-api.js';
17
+ import { type TodoNudgeConfigWatch } from '../todo/config.js';
18
+ export type TodoSuiteStatus = 'active' | 'gated-off' | 'unsupported-host' | 'error';
19
+ export interface TodoSuite {
20
+ readonly skillInfo: HostSkillInfo | null;
21
+ /** selfCheck 上报用:active=三件套生效;gated-off=宿主未开 todo 工具;unsupported-host=宿主过旧;
22
+ * error=初始化异常(todo 失败域自收敛——最坏影响=无提醒,不阻断其余注册面,技术方案 §6) */
23
+ readonly status: TodoSuiteStatus;
24
+ /** status=error 时的原因(selfCheck 渲染用,避免把读取失败误报成「未开 experimental.todo」) */
25
+ readonly reason?: string;
26
+ }
27
+ export declare function registerTodoSuite(ctx: HostPluginContext, directory: string, referencesRoot: string, todoNudgeConfig: TodoNudgeConfigWatch): Promise<TodoSuite>;
28
+ //# sourceMappingURL=todo-suite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"todo-suite.d.ts","sourceRoot":"","sources":["../../src/register/todo-suite.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAkB,KAAK,iBAAiB,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE5F,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAY9D,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,WAAW,GAAG,kBAAkB,GAAG,OAAO,CAAC;AAEpF,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,SAAS,EAAE,aAAa,GAAG,IAAI,CAAC;IACzC;8DAC0D;IAC1D,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,wEAAwE;IACxE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,iBAAiB,EACtB,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,oBAAoB,GACpC,OAAO,CAAC,SAAS,CAAC,CAuGpB"}
@@ -0,0 +1,133 @@
1
+ /**
2
+ * todo 三件套注册:task-planning 技能 + todo 系统提示词 + 每 N 次请求提醒注入(技术方案 §4.3/§4.7)。
3
+ *
4
+ * 判定链(顺序即语义):
5
+ * ① 旧宿主守卫:session 域缺 hook/get → 三件套全不注册(selfCheck 可观测);
6
+ * ② 激活门控:tool.list() 无 'todowrite'(宿主 experimental.todo 未开启)→ 三件套全不注册
7
+ * + 指引日志;判定仅在 setup 时一次(PRD 规则 14,用户开启后重启/重载恢复);
8
+ * ③ handler(每请求):主会话判定(子代理不注入;识别失败按主会话处理——宁可多提醒)
9
+ * → 8.1 系统提示词幂等注入(不读配置——开关只停提醒,PRD 规则 3)
10
+ * → corrupt/enabled=false 早退(零 IO,不计数)
11
+ * → 计数 % every 命中 → 尾部判重(末条消息最后一个 text part 严格相等,PRD 规则 8)
12
+ * → 消息尾部注入(user + text parts 数组——纯字符串会被宿主静默丢弃)
13
+ * → 命中日志(§4.5)。
14
+ * 失败隔离:handler 全体 try/catch,同类错误 60s 一条,绝不 rethrow(PRD 规则 9)。
15
+ */
16
+ import { listEntryNames } from '../host-api.js';
17
+ import { createNudgeCounter } from '../todo/counter.js';
18
+ import {} from '../todo/config.js';
19
+ import { createNudgeLogger } from '../todo/nudge-log.js';
20
+ import { DEFAULT_NUDGE_TEXT, TODO_SYSTEM_PROMPT } from '../todo/prompt.js';
21
+ import { createRateLimiter } from '../todo/rate-limit.js';
22
+ import { taskPlanningSkillInfo } from '../todo/task-planning-skill.js';
23
+ /** 门控键:宿主 experimental.todo 开启时注册的实验工具名(本机 v2.1.3 实测) */
24
+ const TODO_TOOL_NAME = 'todowrite';
25
+ /** 主会话判定缓存上限(超出整体清空重建——会话创建后 parentID 不变,整表丢弃无正确性影响) */
26
+ const SESSION_CACHE_MAX = 1024;
27
+ export async function registerTodoSuite(ctx, directory, referencesRoot, todoNudgeConfig) {
28
+ // ① 旧宿主守卫:session 域不完整则三件套全不注册(镜像 task-discipline.ts 先例)
29
+ if (typeof ctx.session?.hook !== 'function' || typeof ctx.session?.get !== 'function') {
30
+ console.error(`[siming-plugin] ${directory}:宿主 session 域缺少 hook/get——todo 提醒与 todo 系统提示词不注入`);
31
+ return { skillInfo: null, status: 'unsupported-host' };
32
+ }
33
+ // ② 激活门控:宿主未注册 todowrite 工具(experimental.todo 默认关闭)——三件套整体不生效
34
+ let toolNames;
35
+ try {
36
+ toolNames = listEntryNames(await ctx.tool.list());
37
+ }
38
+ catch (err) {
39
+ const reason = `读取宿主工具表失败:${String(err)}`;
40
+ console.error(`[siming-plugin] ${directory}:todo 三件套本次不注册(${reason}),重启宿主后重试`);
41
+ return { skillInfo: null, status: 'error', reason };
42
+ }
43
+ if (!toolNames.has(TODO_TOOL_NAME)) {
44
+ console.error(`[siming-plugin] ${directory}:宿主未注册 ${TODO_TOOL_NAME} 工具(experimental.todo 未开启)——` +
45
+ 'todo 提醒/系统提示词/技能整体不生效;在 opencode 配置开启 experimental.todo 后重启宿主即可恢复');
46
+ return { skillInfo: null, status: 'gated-off' };
47
+ }
48
+ const allowLog = createRateLimiter(60_000);
49
+ try {
50
+ const counter = createNudgeCounter();
51
+ const logger = createNudgeLogger(referencesRoot);
52
+ const mainSessionCache = new Map();
53
+ // 计数复位接线(PRD 规则 11):关闭/损坏 → 开启跃迁时清零,重开从 0 起算
54
+ // (启动即 enabled 时无需复位——计数器生来为 0)
55
+ let wasCounting = todoNudgeConfig.snapshot()?.enabled === true;
56
+ todoNudgeConfig.onChange((next) => {
57
+ const counting = next?.enabled === true;
58
+ if (counting && !wasCounting) {
59
+ counter.resetAll();
60
+ console.log('[siming-plugin] todoNudge 重新开启——计数已从 0 起算');
61
+ }
62
+ wasCounting = counting;
63
+ });
64
+ const isMainSession = async (sessionID) => {
65
+ const cached = mainSessionCache.get(sessionID);
66
+ if (cached !== undefined)
67
+ return cached;
68
+ let main;
69
+ try {
70
+ const info = await ctx.session.get({ sessionID });
71
+ main = info.parentID === undefined;
72
+ }
73
+ catch (err) {
74
+ // 识别失败按主会话处理(宁可多提醒,PRD 规则 1)+ 限频日志
75
+ if (allowLog(`session-get:${errKey(err)}`)) {
76
+ console.error(`[siming-plugin] 会话 ${sessionID} 主会话判定失败(按主会话处理):${String(err)}`);
77
+ }
78
+ main = true;
79
+ }
80
+ if (mainSessionCache.size >= SESSION_CACHE_MAX) {
81
+ console.error(`[siming-plugin] 主会话判定缓存超 ${String(SESSION_CACHE_MAX)} 条——整表清空重建(parentID 创建后不变,无正确性影响)`);
82
+ mainSessionCache.clear(); // 整表清空(LRU 无必要:parentID 创建后不变)
83
+ }
84
+ mainSessionCache.set(sessionID, main);
85
+ return main;
86
+ };
87
+ ctx.session.hook('context', async (event) => {
88
+ try {
89
+ if (!(await isMainSession(event.sessionID)))
90
+ return; // 子代理会话不注入
91
+ // 8.1 系统提示词:幂等注入,不读配置(开关只停提醒,技能/系统提示词不受影响)
92
+ if (!event.system.some((part) => part.text === TODO_SYSTEM_PROMPT)) {
93
+ event.system.push({ type: 'text', text: TODO_SYSTEM_PROMPT });
94
+ }
95
+ const snap = todoNudgeConfig.snapshot();
96
+ if (snap === null || !snap.enabled)
97
+ return; // corrupt/关闭:零 IO 早退(期间不计数)
98
+ const count = counter.next(event.sessionID);
99
+ if (count % snap.every !== 0)
100
+ return;
101
+ // 尾部判重(严格相等,不做子串匹配——防模型复述/引用误伤,PRD 规则 8)
102
+ const last = event.messages[event.messages.length - 1];
103
+ const lastText = last === undefined ? undefined : [...last.content].reverse().find((part) => part.type === 'text');
104
+ if (lastText?.text === snap.text)
105
+ return;
106
+ event.messages.push({ role: 'user', content: [{ type: 'text', text: snap.text ?? DEFAULT_NUDGE_TEXT }] });
107
+ logger.hit(event.sessionID, count, snap.every, event.messages.length);
108
+ }
109
+ catch (err) {
110
+ // 失败隔离:任何异常不阻断请求(PRD 规则 9)
111
+ if (allowLog(`handler:${errKey(err)}`)) {
112
+ console.error(`[siming-plugin] todo 提醒处理异常(忽略,不影响请求):${String(err)}`);
113
+ }
114
+ }
115
+ });
116
+ return { skillInfo: taskPlanningSkillInfo(referencesRoot), status: 'active' };
117
+ }
118
+ catch (err) {
119
+ // 套件级兜底(§6 契约):初始化任何异常自收敛——最坏影响=todo 不生效,不阻断 setup 其余注册面
120
+ const reason = String(err);
121
+ if (allowLog(`init:${errKey(err)}`)) {
122
+ console.error(`[siming-plugin] ${directory}:todo 三件套初始化失败(${reason})——todo 不生效,其余注册面不受影响`);
123
+ }
124
+ return { skillInfo: null, status: 'error', reason };
125
+ }
126
+ }
127
+ /** 错误分类键:构造名 + 消息前缀(同类错误 60s 一条) */
128
+ function errKey(err) {
129
+ const name = err instanceof Error ? err.constructor.name : typeof err;
130
+ const msg = err instanceof Error ? err.message : String(err);
131
+ return `${name}:${msg.slice(0, 80)}`;
132
+ }
133
+ //# sourceMappingURL=todo-suite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"todo-suite.js","sourceRoot":"","sources":["../../src/register/todo-suite.ts"],"names":[],"mappings":"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"}
@@ -64,6 +64,8 @@ export interface Revalidator {
64
64
  /**
65
65
  * 构造一个再验证器实例(setup 时每 location 调用一次)。
66
66
  * store 与 directory 由调用方注入(同一 location 的 store/reloader/transform 回调闭环在各自实例)。
67
+ * referencesRoot 为 setup 时定格的附件缓存根(缺省按 directory 推导)——会话内物化不因运行期
68
+ * 可写性翻转而换根,与注册展示路径始终同源。
67
69
  */
68
- export declare function createRevalidator(store: AssetsStore, directory: string): Revalidator;
70
+ export declare function createRevalidator(store: AssetsStore, directory: string, referencesRoot?: string): Revalidator;
69
71
  //# sourceMappingURL=revalidate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"revalidate.d.ts","sourceRoot":"","sources":["../src/revalidate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,EAAE,cAAc,EAA8B,MAAM,eAAe,CAAC;AAShF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAKrD,MAAM,MAAM,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAEvC,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,WAAW,GAAG,QAAQ,GAAG,aAAa,CAAC;AAEhF,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,YAAY,CAAC;IACrB,uBAAuB;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,aAAa,CAAC;IACrB,KAAK,EAAE,aAAa,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,MAAM,cAAc,GACtB;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,WAAW,GAAG,kBAAkB,CAAA;CAAE,GACzF;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,IAAI,CAAC;IAAC,aAAa,EAAE,IAAI,CAAA;CAAE,CAAC;AAEhE,uCAAuC;AACvC,MAAM,WAAW,WAAW;IAC1B,6CAA6C;IAC7C,UAAU,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,aAAa,GAAG,SAAS,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACpG,kDAAkD;IAClD,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/C,0DAA0D;IAC1D,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;IACtE,2BAA2B;IAC3B,iBAAiB,CAAC,UAAU,EAAE,cAAc,GAAG,IAAI,CAAC;IACpD,qBAAqB,IAAI,cAAc,GAAG,IAAI,CAAC;CAChD;AAUD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW,CA8JpF"}
1
+ {"version":3,"file":"revalidate.d.ts","sourceRoot":"","sources":["../src/revalidate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,EAAE,cAAc,EAA8B,MAAM,eAAe,CAAC;AAUhF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAKrD,MAAM,MAAM,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAEvC,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,WAAW,GAAG,QAAQ,GAAG,aAAa,CAAC;AAEhF,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,YAAY,CAAC;IACrB,uBAAuB;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,aAAa,CAAC;IACrB,KAAK,EAAE,aAAa,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,MAAM,cAAc,GACtB;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,WAAW,GAAG,kBAAkB,CAAA;CAAE,GACzF;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,IAAI,CAAC;IAAC,aAAa,EAAE,IAAI,CAAA;CAAE,CAAC;AAEhE,uCAAuC;AACvC,MAAM,WAAW,WAAW;IAC1B,6CAA6C;IAC7C,UAAU,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,aAAa,GAAG,SAAS,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACpG,kDAAkD;IAClD,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/C,0DAA0D;IAC1D,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;IACtE,2BAA2B;IAC3B,iBAAiB,CAAC,UAAU,EAAE,cAAc,GAAG,IAAI,CAAC;IACpD,qBAAqB,IAAI,cAAc,GAAG,IAAI,CAAC;CAChD;AAUD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,MAAM,EACjB,cAAc,GAAE,MAAoC,GACnD,WAAW,CA8Jb"}
@@ -1,11 +1,13 @@
1
- import { fetchAgentsDomain, fetchAgentCheckFingerprint, fetchSkillsDomain, fetchSkillCheckFingerprint, resolveFetchPlan, INSTANCE_DEFAULT_PROJECT_KEY, } from './fetch-assets.js';
1
+ import { fetchAgentsDomain, fetchAgentCheckFingerprint, fetchSkillsDomain, fetchSkillCheckFingerprint, resolveFetchPlan, referencesRootOf, INSTANCE_DEFAULT_PROJECT_KEY, } from './fetch-assets.js';
2
2
  /** setup 同步阻塞的初始化拉取预算(§4.C3-3:AbortSignal.timeout(10_000) 有界) */
3
3
  const INIT_BUDGET_MS = 10_000;
4
4
  /**
5
5
  * 构造一个再验证器实例(setup 时每 location 调用一次)。
6
6
  * store 与 directory 由调用方注入(同一 location 的 store/reloader/transform 回调闭环在各自实例)。
7
+ * referencesRoot 为 setup 时定格的附件缓存根(缺省按 directory 推导)——会话内物化不因运行期
8
+ * 可写性翻转而换根,与注册展示路径始终同源。
7
9
  */
8
- export function createRevalidator(store, directory) {
10
+ export function createRevalidator(store, directory, referencesRoot = referencesRootOf(directory)) {
9
11
  // ── 实例状态(闭包持有;多 location 互不可见) ──
10
12
  /** 每域 single-flight 闸门:进行中的任务 Promise;新触发见非空即跳过该域 */
11
13
  const gates = { skill: null, agent: null };
@@ -25,7 +27,7 @@ export function createRevalidator(store, directory) {
25
27
  // ── 单域任务(检查 → 差异 → 重拉 → 替换 → reload;目录基准=构造参数 directory) ──
26
28
  async function runDomainJob(domain, opts) {
27
29
  try {
28
- const plan = await resolveFetchPlan(directory, projectCache ?? undefined);
30
+ const plan = await resolveFetchPlan(directory, projectCache ?? undefined, referencesRoot);
29
31
  lastResolvedTarget =
30
32
  plan.projectId !== null
31
33
  ? {
@@ -1 +1 @@
1
- {"version":3,"file":"revalidate.js","sourceRoot":"","sources":["../src/revalidate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"revalidate.js","sourceRoot":"","sources":["../src/revalidate.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAkB,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AA8ExE,QAAA,MAAM,MAAM;;iBAES,iBAAiB,KAAG,OAAO,CAAC,IAAI,CAAC;CAwCrD,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAkB,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AA0GxE,QAAA,MAAM,MAAM;;iBAES,iBAAiB,KAAG,OAAO,CAAC,IAAI,CAAC;CAuDrD,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -5,13 +5,15 @@
5
5
  * 1. 宿主版本检测(< v2.0.26 console.error 提示,不中断);
6
6
  * 2. CLI 定位:cliJs 解析失败=安装损坏 → setup 抛结构化错误(plugin remove + add 重装指引);
7
7
  * 解释器缺失=预期降级(MCP/siming_cli 跳过,其余照常——固定项基准 5→3);
8
- * 3. 注册固定面(五样 + 任务纪律注入;降级面按解释器轴与宿主 session 域裁定)+ reload 通道注入 + 任务创建观测;
8
+ * 3. 注册固定面(五样 + 任务纪律注入 + todo 三件套;降级面按解释器轴与宿主 session 域/todo 门控裁定)
9
+ * + reload 通道注入 + 任务创建观测;
9
10
  * 4. 初始化拉取:同步阻塞有界 10s,失败/超时空集注册不中断激活(迟到成功仍写入 store);
10
11
  * 5. 激活自检:list() 回查固定项与动态项,区分「拉取失败(预期降级)」与「拉取成功但注册缺项」,
11
12
  * 仅激活时刻执行一次(此后动态增减由三触发点承接,正确性归 §6 刷新链单测)。
12
13
  */
13
14
  import { checkHostVersion, locateCli } from '../cli-locator.js';
14
15
  import { createAssetsStore } from '../assets-store.js';
16
+ import { referencesRootOf } from '../fetch-assets.js';
15
17
  import { createRevalidator } from '../revalidate.js';
16
18
  import { MCP_SERVER_NAME, registerMcp } from '../register/mcp.js';
17
19
  import { SIMING_CLI_TOOL_NAME, registerSimingCli } from '../register/tools.js';
@@ -19,6 +21,8 @@ import { SIMING_REFRESH_TOOL_NAME, registerRefreshTool } from '../register/refre
19
21
  import { registerTaskDiscipline } from '../register/task-discipline.js';
20
22
  import { registerSkills } from '../register/skills.js';
21
23
  import { registerAgents } from '../register/agents.js';
24
+ import { registerTodoSuite } from '../register/todo-suite.js';
25
+ import { createTodoNudgeConfig } from '../todo/config.js';
22
26
  import { GUIDE_SKILL_NAME } from '../guide-skill.js';
23
27
  import { listEntryNames } from '../host-api.js';
24
28
  /** 激活自检(§4.G:固定项按双轴基准;动态项区分拉取失败与注册缺项;异常 console.error) */
@@ -55,6 +59,12 @@ async function selfCheck(ctx, store, revalidator, opts) {
55
59
  if (typeof ctx.session?.hook !== 'function' || typeof ctx.session?.get !== 'function') {
56
60
  problems.push('任务纪律注入 session 域不可用(context hook 或 session.get 缺失)——本宿主不注入任务纪律提示词');
57
61
  }
62
+ // todo 三件套(T202610260002):active 时 task-planning 技能必须在册(系统提示词/提醒注入不走注册表)
63
+ if (opts.todo !== null && opts.todo.status === 'active' && opts.todo.skillInfo !== null) {
64
+ if (!skillNames.has(opts.todo.skillInfo.name)) {
65
+ problems.push(`技能 ${opts.todo.skillInfo.name} 已内置于插件但未出现在 skill 域注册表`);
66
+ }
67
+ }
58
68
  // 动态项:拉取成功但注册缺项(拉取失败时 store 为空、此处自然无比对项=预期降级不告警)
59
69
  const snapshot = store.getSnapshot();
60
70
  for (const skill of snapshot.skills) {
@@ -83,9 +93,30 @@ async function selfCheck(ctx, store, revalidator, opts) {
83
93
  : target.projectSource === 'workspace'
84
94
  ? ',项目已绑定(工作区 defaultProject)'
85
95
  : ',项目已绑定(实例默认项目)';
96
+ // todo 三件套状态段(T202610260002 §4.6):active 顺带开关现值与 watcher 健康度
97
+ let todoLabel = '';
98
+ if (opts.todo === null) {
99
+ todoLabel = ';todo 提醒:本宿主不支持(session 域缺失)';
100
+ }
101
+ else if (opts.todo.status === 'error') {
102
+ todoLabel = `;todo 提醒:未激活(初始化异常${opts.todo.reason === undefined ? '' : `:${opts.todo.reason}`},重启宿主后重试)`;
103
+ }
104
+ else if (opts.todo.status === 'gated-off') {
105
+ todoLabel = ';todo 提醒:未激活(宿主未开启 experimental.todo,开启并重启后生效)';
106
+ }
107
+ else {
108
+ const snap = opts.todoConfig.snapshot();
109
+ todoLabel =
110
+ snap === null
111
+ ? ';todo 提醒:激活,配置损坏按关闭处理'
112
+ : `;todo 提醒:${snap.enabled ? '开' : '关'}(每 ${String(snap.every)} 次)`;
113
+ if (!opts.todoConfig.healthy())
114
+ todoLabel += ',配置热重载不可用(变更需重启生效)';
115
+ }
86
116
  console.log(`[siming-plugin] 激活完成:固定 ${opts.interpreterOk ? '5' : '3'} 项(解释器${opts.interpreterOk ? '正常' : '缺失降级'})` +
87
117
  ` + 技能 ${String(skillCount)} + 子代理 ${String(agentCount)}` +
88
118
  `${target !== null ? `(server:${target.serverUrl}${bindLabel})` : ''}` +
119
+ `${todoLabel}` +
89
120
  `${skillCount === 0 && agentCount === 0 ? '——资产拉取未成功(空集注册,首次建任务/手动刷新时自动重试)' : ''}`);
90
121
  }
91
122
  const plugin = {
@@ -104,13 +135,24 @@ const plugin = {
104
135
  // 拉取/注册/刷新/自检全链闭环在这对实例上——多 location 互不覆盖(历史缺陷:模块级单例被
105
136
  // 最后完成初始化的 location 覆盖,其他 location 的 project 域技能从注册表消失)。
106
137
  const directory = ctx.location.directory;
138
+ // 附件缓存根:setup 一次求值(referencesRootOf(directory)),既供注册展示路径,又经
139
+ // createRevalidator 传入 revalidator 贯穿会话——物化与展示始终同源(T202610220004 决策 B),
140
+ // 不因运行期可写性翻转而换根。
141
+ const referencesRoot = referencesRootOf(directory);
107
142
  const store = createAssetsStore();
108
- const revalidator = createRevalidator(store, directory);
143
+ const revalidator = createRevalidator(store, directory, referencesRoot);
109
144
  // 注册面(解释器轴降级:MCP 与 siming_cli 跳过,其余照常;任务纪律注入不在此轴,仅依赖宿主 session 域)
145
+ // todo 三件套(T202610260002 §4.6):config 实例在此创建,同一实例贯穿注入判定/计数复位/selfCheck;
146
+ // 双层兜底(suite 内部 + 此处调用位)确保 todo 任何初始化异常不阻断其余注册面(§6 契约)
147
+ const todoNudgeConfig = createTodoNudgeConfig(directory);
148
+ let todoSuite = await registerTodoSuite(ctx, directory, referencesRoot, todoNudgeConfig).catch((err) => {
149
+ console.error(`[siming-plugin] ${directory}:todo 三件套注册异常(${String(err)})——todo 不生效,其余注册面不受影响`);
150
+ return { skillInfo: null, status: 'error', reason: String(err) };
151
+ });
110
152
  if (nodeBin !== null)
111
153
  registerMcp(ctx, { nodeBin, cliJs });
112
154
  registerRefreshTool(ctx, revalidator, store);
113
- registerSkills(ctx, store);
155
+ registerSkills(ctx, store, referencesRoot, todoSuite.skillInfo === null ? [] : [todoSuite.skillInfo]);
114
156
  registerAgents(ctx, store);
115
157
  if (nodeBin !== null)
116
158
  registerSimingCli(ctx, { nodeBin, cliJs }, directory);
@@ -122,7 +164,11 @@ const plugin = {
122
164
  // 初始化拉取(setup 期会话未建立 → 构造时 location directory 基准,§4.C3-3)
123
165
  await revalidator.initFetch();
124
166
  // 激活自检(仅此刻一次)
125
- await selfCheck(ctx, store, revalidator, { interpreterOk: nodeBin !== null });
167
+ await selfCheck(ctx, store, revalidator, {
168
+ interpreterOk: nodeBin !== null,
169
+ todo: todoSuite,
170
+ todoConfig: todoNudgeConfig,
171
+ });
126
172
  },
127
173
  };
128
174
  export default plugin;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ export interface TodoNudgeConfig {
2
+ enabled: boolean;
3
+ every: number;
4
+ text: string;
5
+ }
6
+ export interface TodoNudgeConfigWatch {
7
+ /** null = corrupt 态(调用方视为 enabled=false) */
8
+ readonly snapshot: () => TodoNudgeConfig | null;
9
+ /** watcher 是否存活(selfCheck/降级声明用) */
10
+ readonly healthy: () => boolean;
11
+ /** 生效快照变化回调(计数复位接线用;corrupt↔恢复也触发) */
12
+ readonly onChange: (cb: (next: TodoNudgeConfig | null) => void) => void;
13
+ /** 仅为测试与完整性提供(宿主 location 存活期即插件存活期,无 dispose 时机) */
14
+ readonly dispose: () => void;
15
+ }
16
+ /**
17
+ * 创建配置实例:同步完成首次读取(启动即建快照)与监听挂载;失败不抛——
18
+ * corrupt 态/降级态在返回对象内表达(§6 契约表)。
19
+ */
20
+ export declare function createTodoNudgeConfig(directory: string): TodoNudgeConfigWatch;
21
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/todo/config.ts"],"names":[],"mappings":"AA2BA,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,oBAAoB;IACnC,4CAA4C;IAC5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,eAAe,GAAG,IAAI,CAAC;IAChD,oCAAoC;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC;IAChC,sCAAsC;IACtC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,KAAK,IAAI,KAAK,IAAI,CAAC;IACxE,qDAAqD;IACrD,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B;AAqGD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,oBAAoB,CA+J7E"}