@siming-org/opencode-plugin 0.1.12 → 0.1.15

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 (41) hide show
  1. package/README.md +3 -3
  2. package/dist/assets-store.d.ts +34 -21
  3. package/dist/assets-store.d.ts.map +1 -1
  4. package/dist/assets-store.js +44 -52
  5. package/dist/assets-store.js.map +1 -1
  6. package/dist/fetch-assets.d.ts +28 -3
  7. package/dist/fetch-assets.d.ts.map +1 -1
  8. package/dist/fetch-assets.js +116 -16
  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 +23 -3
  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/agents.d.ts +3 -2
  19. package/dist/register/agents.d.ts.map +1 -1
  20. package/dist/register/agents.js +6 -6
  21. package/dist/register/agents.js.map +1 -1
  22. package/dist/register/refresh-tool.d.ts +4 -1
  23. package/dist/register/refresh-tool.d.ts.map +1 -1
  24. package/dist/register/refresh-tool.js +13 -10
  25. package/dist/register/refresh-tool.js.map +1 -1
  26. package/dist/register/skills.d.ts +4 -1
  27. package/dist/register/skills.d.ts.map +1 -1
  28. package/dist/register/skills.js +10 -9
  29. package/dist/register/skills.js.map +1 -1
  30. package/dist/revalidate.d.ts +39 -36
  31. package/dist/revalidate.d.ts.map +1 -1
  32. package/dist/revalidate.js +149 -149
  33. package/dist/revalidate.js.map +1 -1
  34. package/dist/server/index.d.ts.map +1 -1
  35. package/dist/server/index.js +35 -20
  36. package/dist/server/index.js.map +1 -1
  37. package/dist/task-discipline-prompt.d.ts +1 -0
  38. package/dist/task-discipline-prompt.d.ts.map +1 -1
  39. package/dist/task-discipline-prompt.js +6 -4
  40. package/dist/task-discipline-prompt.js.map +1 -1
  41. package/package.json +2 -2
@@ -1,3 +1,22 @@
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 参考对齐,不进入运行时依赖。
19
+ */
1
20
  import type { ZodType } from 'zod';
2
21
  /**
3
22
  * 工具执行上下文(v2.0.26 promise ToolContext 实测形态)。
@@ -81,10 +100,11 @@ export interface HostAgentItem {
81
100
  system?: string;
82
101
  }
83
102
  /**
84
- * 技能合成展示路径(内置技能 /builtin/*.md 先例):以 tmpdir 为基避免与真实项目文件混淆;
85
- * references 已在拉取时物化为绝对路径,不依赖此 path 做相对解析。
103
+ * 技能合成展示路径(内置技能 /builtin/*.md 先例):以附件缓存根为基避免与真实项目文件混淆。
104
+ * 宿主对 basename==='SKILL.md' 的 path 执行 scan(dirname(path)) 生成 <skill_files>,故展示
105
+ * 路径必须与 references 物化路径同源(T202610220004 决策 B)。
86
106
  */
87
- export declare function skillDisplayPath(name: string): string;
107
+ export declare function skillDisplayPath(referencesRoot: string, name: string): string;
88
108
  /**
89
109
  * 域公共面:list=回查注册表,reload=触发重放。
90
110
  * transform 不放基接口——各域编辑器形状不同,交集声明会把回调参数收缩成 never(实测);
@@ -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":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAInC;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,WAAW,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,4EAA4E;AAC5E,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IAC3E,6DAA6D;IAC7D,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACnC;AAID,oCAAoC;AACpC,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;IACzC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,mDAAmD;AACnD,MAAM,WAAW,eAAe;IAC9B,GAAG,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAAC;IAC/B,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,0DAA0D;AAC1D,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,GAAG,IAAI,CAAC;IAC5D,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,2BAA2B;AAC3B,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAAC;IAC9B,MAAM,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAID,0DAA0D;AAC1D,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,+DAA+D;AAC/D,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,KAAK,CAAC;IACrC,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE7E;AAID;;;;GAIG;AACH,MAAM,WAAW,UAAU,CAAC,SAAS;IACnC,IAAI,IAAI,OAAO,CAAC,SAAS,SAAS,EAAE,CAAC,CAAC;IACtC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB;AAED,qGAAqG;AACrG,MAAM,WAAW,cAAe,SAAQ,UAAU,CAAC,OAAO,CAAC;IACzD,SAAS,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;IAC/E,IAAI,CACF,IAAI,EAAE,eAAe,EACrB,EAAE,EAAE,CAAC,KAAK,EAAE,yBAAyB,EAAE,MAAM,EAAE,0BAA0B,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GACjG,OAAO,CAAC;CACZ;AAED,gEAAgE;AAChE,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAID,sEAAsE;AACtE,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,iEAAiE;AACjE,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B;AAED,yEAAyE;AACzE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;kDACkD;AAClD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,oEAAoE;AACpE,MAAM,WAAW,iBAAiB;IAChC,IAAI,CACF,IAAI,EAAE,SAAS,EACf,EAAE,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAC3D,OAAO,CAAC;IACX,GAAG,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CAC3D;AAID,sDAAsD;AACtD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,GAAG,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG;QAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAA;KAAE,CAAC;IAC7G,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG;QAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAA;KAAE,CAAC;IACjH,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG;QAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAA;KAAE,CAAC;IACjH,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,iBAAiB,CAAC;CAC5B;AAED,sCAAsC;AACtC,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,CAAC,GAAG,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACzD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,SAAS,OAAO,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAcvE"}
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;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"}
@@ -10,8 +10,9 @@
10
10
  * 对账簿语义同技能域(§4.C3-5)。
11
11
  */
12
12
  import type { HostPluginContext } from '../host-api.js';
13
- import { type AgentAsset } from '../assets-store.js';
13
+ import type { AssetsStore, AgentAsset } from '../assets-store.js';
14
14
  /** 资产 → 宿主 system(writer.ts:166-172 同构:身份 + 绑定技能加载指令 + 条件信息边界 + 正文) */
15
15
  export declare function agentToSystemPrompt(agent: AgentAsset): string;
16
- export declare function registerAgents(ctx: HostPluginContext): void;
16
+ /** store=本 location 实例(setup 构造后注入——多 location 各注册各的,互不串扰) */
17
+ export declare function registerAgents(ctx: HostPluginContext, store: AssetsStore): void;
17
18
  //# sourceMappingURL=agents.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/register/agents.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAiE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAMpH,uEAAuE;AACvE,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAQ7D;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI,CAkB3D"}
1
+ {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/register/agents.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAMlE,uEAAuE;AACvE,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAQ7D;AAED,8DAA8D;AAC9D,wBAAgB,cAAc,CAAC,GAAG,EAAE,iBAAiB,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAkB/E"}
@@ -1,4 +1,3 @@
1
- import { getSnapshot, getRegisteredAgentNames, setRegisteredAgentNames } from '../assets-store.js';
2
1
  /** reviewer 专属信息边界(T202608260002 A 版定版 + T202609220001 修订;仅 function=reviewer 注入) */
3
2
  const AGENT_INFO_BOUNDARY = '任务依据限于项目代码、设计文档/执行报告及任务上下文(含任务信息、提示词、委派材料);不修改代码或文档,不执行测试、构建或发布命令;自身角色定义授权的采证操作(如浏览器交互、截图取证、读取运行证据)不受此限,其余过程产物读取与命令执行仍禁止。';
4
3
  /** 资产 → 宿主 system(writer.ts:166-172 同构:身份 + 绑定技能加载指令 + 条件信息边界 + 正文) */
@@ -10,16 +9,17 @@ export function agentToSystemPrompt(agent) {
10
9
  const boundary = agent.function === 'reviewer' ? AGENT_INFO_BOUNDARY : '';
11
10
  return `${identity}${skillLine}${boundary}\n\n${agent.systemPrompt}`;
12
11
  }
13
- export function registerAgents(ctx) {
12
+ /** store=本 location 实例(setup 构造后注入——多 location 各注册各的,互不串扰) */
13
+ export function registerAgents(ctx, store) {
14
14
  ctx.agent.transform((editor) => {
15
15
  // 对账:store 已无但上轮注册过的名字移除(停用/删除消失)
16
- const currentNames = new Set(getSnapshot().agents.map((agent) => agent.name));
17
- for (const name of getRegisteredAgentNames()) {
16
+ const currentNames = new Set(store.getSnapshot().agents.map((agent) => agent.name));
17
+ for (const name of store.getRegisteredAgentNames()) {
18
18
  if (!currentNames.has(name))
19
19
  editor.remove(name);
20
20
  }
21
- setRegisteredAgentNames(currentNames);
22
- for (const agent of getSnapshot().agents) {
21
+ store.setRegisteredAgentNames(currentNames);
22
+ for (const agent of store.getSnapshot().agents) {
23
23
  const system = agentToSystemPrompt(agent);
24
24
  editor.update(agent.name, (item) => {
25
25
  item.description = agent.description;
@@ -1 +1 @@
1
- {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/register/agents.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,uBAAuB,EAAmB,MAAM,oBAAoB,CAAC;AAEpH,qFAAqF;AACrF,MAAM,mBAAmB,GACvB,2HAA2H,CAAC;AAE9H,uEAAuE;AACvE,MAAM,UAAU,mBAAmB,CAAC,KAAiB;IACnD,MAAM,QAAQ,GAAG,0BAA0B,CAAC;IAC5C,MAAM,SAAS,GACb,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;QAC1B,CAAC,CAAC,kBAAkB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ;QAC7D,CAAC,CAAC,EAAE,CAAC;IACT,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,OAAO,KAAK,CAAC,YAAY,EAAE,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAsB;IACnD,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;QAC7B,kCAAkC;QAClC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9E,KAAK,MAAM,IAAI,IAAI,uBAAuB,EAAE,EAAE,CAAC;YAC7C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnD,CAAC;QACD,uBAAuB,CAAC,YAAY,CAAC,CAAC;QAEtC,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC,MAAM,EAAE,CAAC;YACzC,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;YAC1C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE;gBACjC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;gBACrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;gBACrB,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;YACzB,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/register/agents.ts"],"names":[],"mappings":"AAcA,qFAAqF;AACrF,MAAM,mBAAmB,GACvB,2HAA2H,CAAC;AAE9H,uEAAuE;AACvE,MAAM,UAAU,mBAAmB,CAAC,KAAiB;IACnD,MAAM,QAAQ,GAAG,0BAA0B,CAAC;IAC5C,MAAM,SAAS,GACb,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;QAC1B,CAAC,CAAC,kBAAkB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ;QAC7D,CAAC,CAAC,EAAE,CAAC;IACT,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,OAAO,KAAK,CAAC,YAAY,EAAE,CAAC;AACvE,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,cAAc,CAAC,GAAsB,EAAE,KAAkB;IACvE,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;QAC7B,kCAAkC;QAClC,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,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,CAAC;YAC/C,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;YAC1C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE;gBACjC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;gBACrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;gBACrB,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;YACzB,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -7,6 +7,9 @@
7
7
  * 缺项如实报出(弱校验——compose 产出名单逐项对照由引导对话执行,工具报告提供数据面)。
8
8
  */
9
9
  import type { HostPluginContext } from '../host-api.js';
10
+ import type { Revalidator } from '../revalidate.js';
11
+ import type { AssetsStore } from '../assets-store.js';
10
12
  export declare const SIMING_REFRESH_TOOL_NAME = "siming_refresh";
11
- export declare function registerRefreshTool(ctx: HostPluginContext, directory: string): void;
13
+ /** revalidator/store=本 location 实例(setup 构造后注入) */
14
+ export declare function registerRefreshTool(ctx: HostPluginContext, revalidator: Revalidator, store: AssetsStore): void;
12
15
  //# sourceMappingURL=refresh-tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"refresh-tool.d.ts","sourceRoot":"","sources":["../../src/register/refresh-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAgB,MAAM,gBAAgB,CAAC;AAKtE,eAAO,MAAM,wBAAwB,mBAAmB,CAAC;AAezD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CA+BnF"}
1
+ {"version":3,"file":"refresh-tool.d.ts","sourceRoot":"","sources":["../../src/register/refresh-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAgB,MAAM,gBAAgB,CAAC;AAEtE,OAAO,KAAK,EAAE,WAAW,EAAiB,MAAM,kBAAkB,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,eAAO,MAAM,wBAAwB,mBAAmB,CAAC;AAoBzD,mDAAmD;AACnD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,iBAAiB,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CA+B9G"}
@@ -1,6 +1,4 @@
1
1
  import { z } from 'zod';
2
- import { revalidate, getLastResolvedTarget } from '../revalidate.js';
3
- import { getSnapshot } from '../assets-store.js';
4
2
  export const SIMING_REFRESH_TOOL_NAME = 'siming_refresh';
5
3
  function domainLine(label, outcome) {
6
4
  switch (outcome.status) {
@@ -14,25 +12,30 @@ function domainLine(label, outcome) {
14
12
  return `${label}域刷新失败:${outcome.error ?? '未知错误'}`;
15
13
  }
16
14
  }
17
- export function registerRefreshTool(ctx, directory) {
15
+ /** 项目绑定来源标签(区分工作区 defaultProject 与实例默认项目兜底——两者都算绑定,来源不同;调用点已按 projectId 非 null 收窄) */
16
+ function bindSourceLabel(source) {
17
+ return source === 'workspace' ? '工作区 defaultProject' : '实例默认项目';
18
+ }
19
+ /** revalidator/store=本 location 实例(setup 构造后注入) */
20
+ export function registerRefreshTool(ctx, revalidator, store) {
18
21
  const info = {
19
22
  name: SIMING_REFRESH_TOOL_NAME,
20
23
  description: '刷新 siming 资产注册(技能/子代理):跳过指纹直连 server 全链重拉,变更下一请求生效。' +
21
24
  '用于接入引导 doctor 通过后显式调用一次,或 server 侧资产变更后手动同步。',
22
25
  input: z.object({}).describe('无参数'),
23
26
  execute: async (_input, _toolCtx) => {
24
- const summary = await revalidate({ force: true, directory, source: 'refresh' });
25
- const lines = [`server:${getLastResolvedTarget()?.serverUrl ?? '(解析失败)'}`];
27
+ const summary = await revalidator.revalidate({ force: true, source: 'refresh' });
28
+ const lines = [`server:${revalidator.getLastResolvedTarget()?.serverUrl ?? '(解析失败)'}`];
26
29
  lines.push(domainLine('技能', summary.skill));
27
30
  lines.push(domainLine('子代理', summary.agent));
28
- // 项目作用域就位确认(弱校验):绑定项目时报告 task-create 就位状态与数量
29
- const target = getLastResolvedTarget();
31
+ // 项目作用域就位确认(弱校验):绑定项目时报告 task-create 就位状态与数量(来源区分见 bindSourceLabel)
32
+ const target = revalidator.getLastResolvedTarget();
30
33
  if (target !== null && target.projectId !== null) {
31
- const snapshot = getSnapshot();
34
+ const snapshot = store.getSnapshot();
32
35
  const hasTaskCreate = snapshot.skills.some((skill) => skill.name === 'task-create');
33
36
  lines.push(hasTaskCreate
34
- ? '项目作用域确认:task-create 已注册(数量对照 flow compose 产出名单请见引导第 4 步)'
35
- : '项目作用域确认:未检测到 task-create 技能——请核对 flow compose 是否已执行/产出名单,缺项如实上报');
37
+ ? `项目作用域确认(${bindSourceLabel(target.projectSource)}):task-create 已注册(数量对照 flow compose 产出名单请见引导第 4 步)`
38
+ : `项目作用域确认(${bindSourceLabel(target.projectSource)}):未检测到 task-create 技能——请核对 flow compose 是否已执行/产出名单,缺项如实上报`);
36
39
  }
37
40
  lines.push('(刷新完成 ≠ 当前请求内立即可见,下一请求生效)');
38
41
  return { content: lines.join('\n') };
@@ -1 +1 @@
1
- {"version":3,"file":"refresh-tool.js","sourceRoot":"","sources":["../../src/register/refresh-tool.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAsB,MAAM,kBAAkB,CAAC;AACzF,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,MAAM,wBAAwB,GAAG,gBAAgB,CAAC;AAEzD,SAAS,UAAU,CAAC,KAAa,EAAE,OAAsB;IACvD,QAAQ,OAAO,CAAC,MAAM,EAAE,CAAC;QACvB,KAAK,WAAW;YACd,OAAO,GAAG,KAAK,QAAQ,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC;QACxD,KAAK,WAAW;YACd,OAAO,GAAG,KAAK,MAAM,CAAC;QACxB,KAAK,aAAa;YAChB,OAAO,GAAG,KAAK,QAAQ,CAAC;QAC1B,KAAK,QAAQ;YACX,OAAO,GAAG,KAAK,SAAS,OAAO,CAAC,KAAK,IAAI,MAAM,EAAE,CAAC;IACtD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,GAAsB,EAAE,SAAiB;IAC3E,MAAM,IAAI,GAAiB;QACzB,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EACT,qDAAqD;YACrD,8CAA8C;QAChD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QACnC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;YAClC,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;YAChF,MAAM,KAAK,GAAG,CAAC,UAAU,qBAAqB,EAAE,EAAE,SAAS,IAAI,QAAQ,EAAE,CAAC,CAAC;YAC3E,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5C,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;YAE7C,6CAA6C;YAC7C,MAAM,MAAM,GAAG,qBAAqB,EAAE,CAAC;YACvC,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;gBACjD,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;gBAC/B,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;gBACpF,KAAK,CAAC,IAAI,CACR,aAAa;oBACX,CAAC,CAAC,0DAA0D;oBAC5D,CAAC,CAAC,iEAAiE,CACtE,CAAC;YACJ,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YACxC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,CAAC;KACF,CAAC;IACF,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;QAC5B,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"refresh-tool.js","sourceRoot":"","sources":["../../src/register/refresh-tool.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,CAAC,MAAM,wBAAwB,GAAG,gBAAgB,CAAC;AAEzD,SAAS,UAAU,CAAC,KAAa,EAAE,OAAsB;IACvD,QAAQ,OAAO,CAAC,MAAM,EAAE,CAAC;QACvB,KAAK,WAAW;YACd,OAAO,GAAG,KAAK,QAAQ,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC;QACxD,KAAK,WAAW;YACd,OAAO,GAAG,KAAK,MAAM,CAAC;QACxB,KAAK,aAAa;YAChB,OAAO,GAAG,KAAK,QAAQ,CAAC;QAC1B,KAAK,QAAQ;YACX,OAAO,GAAG,KAAK,SAAS,OAAO,CAAC,KAAK,IAAI,MAAM,EAAE,CAAC;IACtD,CAAC;AACH,CAAC;AAED,sFAAsF;AACtF,SAAS,eAAe,CAAC,MAAwC;IAC/D,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,QAAQ,CAAC;AAClE,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,mBAAmB,CAAC,GAAsB,EAAE,WAAwB,EAAE,KAAkB;IACtG,MAAM,IAAI,GAAiB;QACzB,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EACT,qDAAqD;YACrD,8CAA8C;QAChD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QACnC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;YAClC,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;YACjF,MAAM,KAAK,GAAG,CAAC,UAAU,WAAW,CAAC,qBAAqB,EAAE,EAAE,SAAS,IAAI,QAAQ,EAAE,CAAC,CAAC;YACvF,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5C,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;YAE7C,oEAAoE;YACpE,MAAM,MAAM,GAAG,WAAW,CAAC,qBAAqB,EAAE,CAAC;YACnD,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;gBACjD,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;gBACrC,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;gBACpF,KAAK,CAAC,IAAI,CACR,aAAa;oBACX,CAAC,CAAC,WAAW,eAAe,CAAC,MAAM,CAAC,aAAa,CAAC,oDAAoD;oBACtG,CAAC,CAAC,WAAW,eAAe,CAAC,MAAM,CAAC,aAAa,CAAC,2DAA2D,CAChH,CAAC;YACJ,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YACxC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,CAAC;KACF,CAAC;IACF,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;QAC5B,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -9,5 +9,8 @@
9
9
  * transform 每请求重放,读的是 assets-store 当前快照——刷新替换 store 后下一请求即见新名单。
10
10
  */
11
11
  import type { HostPluginContext } from '../host-api.js';
12
- export declare function registerSkills(ctx: HostPluginContext): void;
12
+ import type { AssetsStore } from '../assets-store.js';
13
+ /** store=本 location 实例(setup 构造后注入——多 location 各注册各的,互不串扰);
14
+ * referencesRoot 与拉取侧物化根同源(referencesRootOf(directory)),展示路径靠它定位 <skill_files> */
15
+ export declare function registerSkills(ctx: HostPluginContext, store: AssetsStore, referencesRoot: string): void;
13
16
  //# 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;AAKxD,wBAAgB,cAAc,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI,CAuB3D"}
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;mFACmF;AACnF,wBAAgB,cAAc,CAAC,GAAG,EAAE,iBAAiB,EAAE,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI,CAuBvG"}
@@ -1,27 +1,28 @@
1
1
  import { skillDisplayPath } from '../host-api.js';
2
- import { getSnapshot, getRegisteredSkillNames, setRegisteredSkillNames } from '../assets-store.js';
3
2
  import { guideSkillInfo } from '../guide-skill.js';
4
- export function registerSkills(ctx) {
3
+ /** store=本 location 实例(setup 构造后注入——多 location 各注册各的,互不串扰);
4
+ * referencesRoot 与拉取侧物化根同源(referencesRootOf(directory)),展示路径靠它定位 <skill_files> */
5
+ export function registerSkills(ctx, store, referencesRoot) {
5
6
  ctx.skill.transform((editor) => {
6
7
  // 1. 对账:store 已无但上轮注册过的名字移除(停用/删除消失)
7
- const currentNames = new Set(getSnapshot().skills.map((skill) => skill.name));
8
- for (const name of getRegisteredSkillNames()) {
8
+ const currentNames = new Set(store.getSnapshot().skills.map((skill) => skill.name));
9
+ for (const name of store.getRegisteredSkillNames()) {
9
10
  if (!currentNames.has(name))
10
11
  editor.remove(name);
11
12
  }
12
- setRegisteredSkillNames(currentNames);
13
+ store.setRegisteredSkillNames(currentNames);
13
14
  // 2. 全量注册(同名 project 胜已在拉取侧 Map 合并完成)
14
- for (const skill of getSnapshot().skills) {
15
+ for (const skill of store.getSnapshot().skills) {
15
16
  editor.add({
16
17
  id: skill.name,
17
18
  name: skill.name,
18
19
  description: skill.description,
19
- path: skillDisplayPath(skill.name),
20
+ path: skillDisplayPath(referencesRoot, skill.name),
20
21
  content: skill.content,
21
22
  });
22
23
  }
23
- // 3. 引导技能(固定常驻)
24
- editor.add(guideSkillInfo());
24
+ // 3. 引导技能(固定常驻;展示路径同根,保持注册面一致)
25
+ editor.add(guideSkillInfo(referencesRoot));
25
26
  });
26
27
  }
27
28
  //# 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;AAClD,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AACnG,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,UAAU,cAAc,CAAC,GAAsB;IACnD,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;QAC7B,qCAAqC;QACrC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9E,KAAK,MAAM,IAAI,IAAI,uBAAuB,EAAE,EAAE,CAAC;YAC7C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnD,CAAC;QACD,uBAAuB,CAAC,YAAY,CAAC,CAAC;QAEtC,sCAAsC;QACtC,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC,MAAM,EAAE,CAAC;YACzC,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":"AAWA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD;mFACmF;AACnF,MAAM,UAAU,cAAc,CAAC,GAAsB,EAAE,KAAkB,EAAE,cAAsB;IAC/F,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;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,20 +1,25 @@
1
1
  /**
2
2
  * 再验证调度(技术方案 §4.C3 第 4-6 条:三触发 + 指纹协商 + single-flight)。
3
3
  *
4
- * 三触发(唯一入口均在本模块):
4
+ * 三触发(唯一入口均在本模块,全部作用于构造时的 location 实例):
5
5
  * 1. 初始化:setup 同步阻塞有界等待(INIT_BUDGET_MS),失败空集注册不中断激活(§4.G 行 1);
6
6
  * 2. 任务创建触发:ctx.tool.hook("execute.after") 观测 MCP siming_task 的 create 动作,
7
- * fire-and-forget(不 await、异常吞掉),目录基准=setup 捕获的 location directory
7
+ * fire-and-forget(不 await、异常吞掉),目录基准=构造参数 directory
8
8
  * (ctx.location.directory,与初始化触发同源——钩子载荷无 directory 字段);
9
9
  * 3. 手动:siming_refresh 工具直调 revalidate({force:true}),force=跳过指纹直接全链重拉。
10
10
  *
11
+ * per-location 实例(T202610220003):gates/reloaders/projectCache/lastResolvedTarget/
12
+ * lastErrorByDomain 全部闭包在 createRevalidator 实例内——多 location(一个宿主进程多个
13
+ * 活跃项目目录)各 setup 各构造,互不覆盖;reload 只打回本 location 的注册表。
14
+ * single-flight 闸门为实例内语义:同 location 三触发互斥,跨 location 拉取目标不同不互斥。
15
+ *
11
16
  * 指纹协商:每域一次列表请求比对 name@scope|version|updatedAt|enabled;
12
17
  * 指纹仅对应域重拉成功后写入(失败不前移,下次触发自然重试)。
13
- * single-flight:每域独立闸门,进行中新触发直接返回不重入(siming_refresh 拿到 in-progress 如实上报)。
14
18
  * 变更生效:store 原子替换 → 对应域 reload() → 下一请求生效(宿主按名单重建会话注入面)。
15
19
  * 失败:保留现有注册(不空转),限频 console.error(连续相同消息只打一次)。
16
20
  */
17
21
  import type { HostToolDomain } from './host-api.js';
22
+ import type { AssetsStore } from './assets-store.js';
18
23
  export type Domain = 'skill' | 'agent';
19
24
  export type DomainStatus = 'unchanged' | 'refreshed' | 'failed' | 'in-progress';
20
25
  export interface DomainOutcome {
@@ -28,41 +33,39 @@ export interface RevalidateSummary {
28
33
  skill: DomainOutcome;
29
34
  agent: DomainOutcome;
30
35
  }
31
- /** setup 调用:记录本插件实例绑定 location 的目录(插件按活跃 location 各跑一份 setup) */
32
- export declare function setLocationDirectory(directory: string): void;
33
- export declare function getLastResolvedTarget(): {
34
- serverUrl: string;
35
- projectId: string | null;
36
- } | null;
37
- export declare function setReloader(domain: Domain, reload: () => Promise<void> | void): void;
38
- /**
39
- * 再验证(两域并行独立)。
40
- * - siming_refresh:force=true(跳过指纹),目录=注册闭包持有的 location directory,await 返回摘要;
41
- * - 任务创建触发:force=false,目录=setup 捕获的 location directory(钩子载荷无 directory 字段),fire-and-forget。
42
- */
43
- export declare function revalidate(opts: {
44
- force: boolean;
45
- directory?: string;
46
- source: 'task-create' | 'refresh';
47
- }): Promise<RevalidateSummary>;
48
36
  /**
49
- * 初始化拉取(setup 同步阻塞,有界等待 budgetMs,缺省 INIT_BUDGET_MS)。
50
- * - 成功:两域 store + 指纹就位,返回 true;
51
- * - 失败/超时:返回 false(store 保持空集,激活继续注册空名单——首个 siming_refresh/任务创建触发自愈)。
52
- * 超时后底层拉取不取消:迟到成功仍会写入 store(下次请求即见),只是不再阻塞激活。
53
- * budgetMs 参数为测试缝(§6:init 有界等待行为单测可缩短预算)——生产调用方不传。
37
+ * 最近一次成功解析的拉取目标(siming_refresh/selfCheck 报告项目绑定状态用;未解析过=null)。
38
+ * 可辨识联合钉住不变量:projectId 非 null ⇔ projectSource 非 null(绑定必知来源,仅全局两者皆 null)
54
39
  */
55
- export declare function initFetch(startDir: string, budgetMs?: number): Promise<boolean>;
40
+ export type ResolvedTarget = {
41
+ serverUrl: string;
42
+ projectId: string;
43
+ projectSource: 'workspace' | 'instance-default';
44
+ } | {
45
+ serverUrl: string;
46
+ projectId: null;
47
+ projectSource: null;
48
+ };
49
+ /** 再验证器实例接口(setup 时每 location 构造一个) */
50
+ export interface Revalidator {
51
+ /** 再验证(两域并行独立):force=true 跳过指纹;await 返回摘要 */
52
+ revalidate(opts: {
53
+ force: boolean;
54
+ source: 'task-create' | 'refresh';
55
+ }): Promise<RevalidateSummary>;
56
+ /** 初始化拉取(setup 同步阻塞有界等待;budgetMs 为测试缝,生产调用方不传) */
57
+ initFetch(budgetMs?: number): Promise<boolean>;
58
+ /** 变更后通知宿主重建注入面的 reload 通道(setup 时注入;未注入=宿主无此域注册,静默跳过) */
59
+ setReloader(domain: Domain, reload: () => Promise<void> | void): void;
60
+ /** 注册任务创建观测(setup 调用一次) */
61
+ observeTaskCreate(toolDomain: HostToolDomain): void;
62
+ getLastResolvedTarget(): ResolvedTarget | null;
63
+ }
56
64
  /**
57
- * 注册任务创建观测(setup 调用一次)。
58
- * 仅 MCP siming_task + action=create + 执行成功 → fire-and-forget revalidate(不 await,异常吞掉——
59
- * 闸门防重入,失败留限频日志)。窄观测面:siming_cli / 终端 CLI 建任务不触发(防参数字符串解析脆弱)。
60
- *
61
- * 目录基准(v2.0.26 实测修订,§4.C3-3):宿主钩子载荷仅含 sessionID(无 directory 字段),
62
- * 但插件 setup ctx.location.directory 存在(setup 时捕获,setLocationDirectory)——任务创建触发
63
- * 与初始化触发同取捕获值(同一 location 的插件实例,目录天然一致)。
64
- * 多 location 形态(一个宿主进程多个活跃项目目录)下各 location 独立 setup 各自捕获;
65
- * 模块级 store 单实例=最后捕获者生效(当前边界,PRD 非目标:单 location 主场景)。
65
+ * 构造一个再验证器实例(setup 时每 location 调用一次)。
66
+ * store 与 directory 由调用方注入(同一 location 的 store/reloader/transform 回调闭环在各自实例)。
67
+ * referencesRoot 为 setup 时定格的附件缓存根(缺省按 directory 推导)——会话内物化不因运行期
68
+ * 可写性翻转而换根,与注册展示路径始终同源。
66
69
  */
67
- export declare function observeTaskCreate(toolDomain: HostToolDomain): void;
70
+ export declare function createRevalidator(store: AssetsStore, directory: string, referencesRoot?: string): Revalidator;
68
71
  //# sourceMappingURL=revalidate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"revalidate.d.ts","sourceRoot":"","sources":["../src/revalidate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,cAAc,EAA8B,MAAM,eAAe,CAAC;AAoBhF,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,iEAAiE;AACjE,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAE5D;AAaD,wBAAgB,qBAAqB,IAAI;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,CAE9F;AAKD,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAEpF;AA4ED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,aAAa,GAAG,SAAS,CAAC;CACnC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAY7B;AAED;;;;;;GAMG;AACH,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAuB,GAAG,OAAO,CAAC,OAAO,CAAC,CAerG;AAoCD;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,cAAc,GAAG,IAAI,CAUlE"}
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"}