@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,136 +1,161 @@
1
- import { fetchAgentsDomain, fetchAgentCheckFingerprint, fetchSkillsDomain, fetchSkillCheckFingerprint, resolveFetchPlan, } from './fetch-assets.js';
2
- import { getAgentFingerprint, getSkillFingerprint, replaceAgents, replaceSkills, setAgentFingerprint, setSkillFingerprint, } from './assets-store.js';
1
+ import { fetchAgentsDomain, fetchAgentCheckFingerprint, fetchSkillsDomain, fetchSkillCheckFingerprint, resolveFetchPlan, referencesRootOf, INSTANCE_DEFAULT_PROJECT_KEY, } from './fetch-assets.js';
3
2
  /** setup 同步阻塞的初始化拉取预算(§4.C3-3:AbortSignal.timeout(10_000) 有界) */
4
3
  const INIT_BUDGET_MS = 10_000;
5
- // ── 模块状态(单宿主进程单实例;setup 一次注册) ──
6
- /** 每域 single-flight 闸门:进行中的任务 Promise;新触发见非空即跳过该域 */
7
- const gates = { skill: null, agent: null };
8
- /** 变更后通知宿主重建注入面的 reload 通道(index.ts setup 时注入;未注入=宿主无此域注册,静默跳过) */
9
- const reloaders = {};
10
- // ── location directory 捕获(setup 时写入;三触发目录基准的唯一来源) ──
11
- /** setup 捕获的 location directory(v2.0.26:ctx.location.directory;未捕获时兜底宿主进程 cwd) */
12
- let capturedLocationDirectory = null;
13
- /** setup 调用:记录本插件实例绑定 location 的目录(插件按活跃 location 各跑一份 setup) */
14
- export function setLocationDirectory(directory) {
15
- capturedLocationDirectory = directory;
16
- }
17
- /** 目录基准读取:捕获值优先,未捕获(异常场景/setup 前触发)兜底 process.cwd() */
18
- function locationDirectory() {
19
- return capturedLocationDirectory ?? process.cwd();
20
- }
21
- /** 工作区项目 key→hex id 缓存:稳态检查跳过 /api/projects 解析,保持每域 1 次列表请求 */
22
- let projectCache = null;
23
- /** 最近一次成功解析的拉取目标(siming_refresh 报告项目作用域就位确认用;进程启动后未解析过=null) */
24
- let lastResolvedTarget = null;
25
- export function getLastResolvedTarget() {
26
- return lastResolvedTarget;
27
- }
28
- /** 限频去重:每域连续相同的错误消息只打一次(消息变化才重打) */
29
- const lastErrorByDomain = { skill: null, agent: null };
30
- export function setReloader(domain, reload) {
31
- reloaders[domain] = reload;
32
- }
33
- function logError(domain, message) {
34
- if (lastErrorByDomain[domain] === message)
35
- return; // 限频:连续相同不重打
36
- lastErrorByDomain[domain] = message;
37
- console.error(`[siming-plugin] 资产刷新失败(${domain === 'skill' ? '技能' : '子代理'}域,保留现有注册):${message}`);
38
- }
39
- async function runDomainJob(domain, opts) {
40
- try {
41
- const plan = await resolveFetchPlan(opts.directory, projectCache ?? undefined);
42
- lastResolvedTarget = { serverUrl: plan.target.serverUrl, projectId: plan.projectId };
43
- if (plan.projectId !== null && plan.target.projectKey !== null) {
44
- projectCache = { key: plan.target.projectKey, id: plan.projectId };
45
- }
46
- if (!opts.force) {
47
- const checked = domain === 'skill' ? await fetchSkillCheckFingerprint(plan) : await fetchAgentCheckFingerprint(plan);
48
- const stored = domain === 'skill' ? getSkillFingerprint() : getAgentFingerprint();
49
- if (checked === stored)
50
- return { status: 'unchanged' };
51
- }
52
- let refreshedCount;
53
- if (domain === 'skill') {
54
- const result = await fetchSkillsDomain(plan);
55
- replaceSkills(result.assets);
56
- setSkillFingerprint(result.fingerprint);
57
- refreshedCount = result.assets.length;
4
+ /**
5
+ * 构造一个再验证器实例(setup 时每 location 调用一次)。
6
+ * store 与 directory 由调用方注入(同一 location 的 store/reloader/transform 回调闭环在各自实例)。
7
+ * referencesRoot 为 setup 时定格的附件缓存根(缺省按 directory 推导)——会话内物化不因运行期
8
+ * 可写性翻转而换根,与注册展示路径始终同源。
9
+ */
10
+ export function createRevalidator(store, directory, referencesRoot = referencesRootOf(directory)) {
11
+ // ── 实例状态(闭包持有;多 location 互不可见) ──
12
+ /** 每域 single-flight 闸门:进行中的任务 Promise;新触发见非空即跳过该域 */
13
+ const gates = { skill: null, agent: null };
14
+ /** 变更后通知宿主重建注入面的 reload 通道(setup 注入本 location 的 ctx 域 reload) */
15
+ const reloaders = {};
16
+ /** 工作区项目 key→hex id 缓存(含 key=default 兜底命中):稳态检查跳过 /api/projects 解析,保持每域 1 次列表请求 */
17
+ let projectCache = null;
18
+ let lastResolvedTarget = null;
19
+ /** 限频去重:每域连续相同的错误消息只打一次(消息变化才重打) */
20
+ const lastErrorByDomain = { skill: null, agent: null };
21
+ function logError(domain, message) {
22
+ if (lastErrorByDomain[domain] === message)
23
+ return; // 限频:连续相同不重打
24
+ lastErrorByDomain[domain] = message;
25
+ console.error(`[siming-plugin] 资产刷新失败(${domain === 'skill' ? '技能' : '子代理'}域,保留现有注册):${message}`);
26
+ }
27
+ // ── 单域任务(检查 → 差异 → 重拉 → 替换 → reload;目录基准=构造参数 directory) ──
28
+ async function runDomainJob(domain, opts) {
29
+ try {
30
+ const plan = await resolveFetchPlan(directory, projectCache ?? undefined, referencesRoot);
31
+ lastResolvedTarget =
32
+ plan.projectId !== null
33
+ ? {
34
+ serverUrl: plan.target.serverUrl,
35
+ projectId: plan.projectId,
36
+ projectSource: plan.target.projectKey !== null ? 'workspace' : 'instance-default',
37
+ }
38
+ : { serverUrl: plan.target.serverUrl, projectId: null, projectSource: null };
39
+ if (plan.projectId !== null) {
40
+ projectCache = { key: plan.target.projectKey ?? INSTANCE_DEFAULT_PROJECT_KEY, id: plan.projectId };
41
+ }
42
+ if (!opts.force) {
43
+ const checked = domain === 'skill' ? await fetchSkillCheckFingerprint(plan) : await fetchAgentCheckFingerprint(plan);
44
+ const stored = domain === 'skill' ? store.getSkillFingerprint() : store.getAgentFingerprint();
45
+ if (checked === stored)
46
+ return { status: 'unchanged' };
47
+ }
48
+ let refreshedCount;
49
+ if (domain === 'skill') {
50
+ const result = await fetchSkillsDomain(plan);
51
+ store.replaceSkills(result.assets);
52
+ store.setSkillFingerprint(result.fingerprint);
53
+ refreshedCount = result.assets.length;
54
+ }
55
+ else {
56
+ const result = await fetchAgentsDomain(plan);
57
+ store.replaceAgents(result.assets);
58
+ store.setAgentFingerprint(result.fingerprint);
59
+ refreshedCount = result.assets.length;
60
+ }
61
+ const reload = reloaders[domain];
62
+ if (reload !== undefined)
63
+ await reload();
64
+ if (opts.source !== 'refresh') {
65
+ // 后台触发的变更完成:留一条可观测日志(siming_refresh 自带返回摘要,不重复打)
66
+ console.log(`[siming-plugin] 检测到资产变更,${domain === 'skill' ? '技能' : '子代理'}域已刷新(${String(refreshedCount)} 条,下一请求生效)`);
67
+ }
68
+ return { status: 'refreshed', count: refreshedCount };
58
69
  }
59
- else {
60
- const result = await fetchAgentsDomain(plan);
61
- replaceAgents(result.assets);
62
- setAgentFingerprint(result.fingerprint);
63
- refreshedCount = result.assets.length;
70
+ catch (err) {
71
+ const message = err instanceof Error ? err.message : String(err);
72
+ logError(domain, message);
73
+ return { status: 'failed', error: message };
64
74
  }
65
- const reload = reloaders[domain];
66
- if (reload !== undefined)
67
- await reload();
68
- if (opts.source !== 'refresh') {
69
- // 后台触发的变更完成:留一条可观测日志(siming_refresh 自带返回摘要,不重复打)
70
- console.log(`[siming-plugin] 检测到资产变更,${domain === 'skill' ? '技能' : '子代理'}域已刷新(${String(refreshedCount)} 条,下一请求生效)`);
75
+ }
76
+ /** 带闸门的单域调度:进行中返回 in-progress 不重入 */
77
+ function dispatchDomain(domain, opts) {
78
+ const running = gates[domain];
79
+ if (running !== null)
80
+ return Promise.resolve({ status: 'in-progress' });
81
+ const job = runDomainJob(domain, opts).finally(() => {
82
+ gates[domain] = null;
83
+ });
84
+ gates[domain] = job;
85
+ return job;
86
+ }
87
+ // ── 对外入口(实例方法) ──
88
+ /**
89
+ * 再验证(两域并行独立)。
90
+ * - siming_refresh:force=true(跳过指纹),await 返回摘要;
91
+ * - 任务创建触发:force=false,fire-and-forget。
92
+ * 目录基准=构造参数 directory(本 location 的 location directory)。
93
+ */
94
+ function revalidate(opts) {
95
+ const jobOpts = { force: opts.force, source: opts.source };
96
+ const skill = dispatchDomain('skill', jobOpts);
97
+ const agent = dispatchDomain('agent', jobOpts);
98
+ return Promise.all([skill, agent]).then(([skillOutcome, agentOutcome]) => ({
99
+ skill: skillOutcome,
100
+ agent: agentOutcome,
101
+ }));
102
+ }
103
+ /**
104
+ * 初始化拉取(setup 同步阻塞,有界等待 budgetMs,缺省 INIT_BUDGET_MS)。
105
+ * - 成功:两域 store + 指纹就位,返回 true;
106
+ * - 失败/超时:返回 false(store 保持空集,激活继续注册空名单——首个 siming_refresh/任务创建触发自愈)。
107
+ * 超时后底层拉取不取消:迟到成功仍会写入 store(下次请求即见),只是不再阻塞激活。
108
+ * budgetMs 参数为测试缝(§6:init 有界等待行为单测可缩短预算)——生产调用方不传。
109
+ */
110
+ async function initFetch(budgetMs = INIT_BUDGET_MS) {
111
+ const jobOpts = { force: true, source: 'init' };
112
+ const timedFetch = Promise.all([dispatchDomain('skill', jobOpts), dispatchDomain('agent', jobOpts)]);
113
+ let budgetTimer;
114
+ const budget = new Promise((resolve) => {
115
+ budgetTimer = setTimeout(() => resolve(null), budgetMs);
116
+ });
117
+ const settled = await Promise.race([timedFetch.then(() => true), budget]);
118
+ clearTimeout(budgetTimer);
119
+ if (settled === true) {
120
+ const [skillOutcome, agentOutcome] = await timedFetch;
121
+ return skillOutcome.status === 'refreshed' && agentOutcome.status === 'refreshed';
71
122
  }
72
- return { status: 'refreshed', count: refreshedCount };
123
+ console.error('[siming-plugin] 初始化拉取超时(10s)——空集注册继续激活,稍后触发自动补齐');
124
+ return false;
73
125
  }
74
- catch (err) {
75
- const message = err instanceof Error ? err.message : String(err);
76
- logError(domain, message);
77
- return { status: 'failed', error: message };
126
+ /**
127
+ * 注册任务创建观测(setup 调用一次)。
128
+ * 仅 MCP siming_task + action=create + 执行成功 → fire-and-forget revalidate(不 await,异常吞掉——
129
+ * 闸门防重入,失败留限频日志)。窄观测面:siming_cli / 终端 CLI 建任务不触发(防参数字符串解析脆弱)。
130
+ *
131
+ * 目录基准(v2.0.26 实测修订,§4.C3-3):宿主钩子载荷仅含 sessionID(无 directory 字段),
132
+ * 故取构造参数 directory——同一 location 的插件实例,目录天然一致。
133
+ */
134
+ function observeTaskCreate(toolDomain) {
135
+ void toolDomain.hook('execute.after', (input, output) => {
136
+ const name = extractToolName(input.tool);
137
+ if (name === null || !isSimingTaskTool(name))
138
+ return;
139
+ if (!isCreateArgs(input.args))
140
+ return;
141
+ if (isFailedOutput(output))
142
+ return;
143
+ void revalidate({ force: false, source: 'task-create' }).catch(() => {
144
+ // fire-and-forget:异常吞掉(runDomainJob 内部已捕获留痕,此处兜底防未处理拒绝)
145
+ });
146
+ });
78
147
  }
79
- }
80
- /** 带闸门的单域调度:进行中返回 in-progress 不重入 */
81
- function dispatchDomain(domain, opts) {
82
- const running = gates[domain];
83
- if (running !== null)
84
- return Promise.resolve({ status: 'in-progress' });
85
- const job = runDomainJob(domain, opts).finally(() => {
86
- gates[domain] = null;
87
- });
88
- gates[domain] = job;
89
- return job;
90
- }
91
- // ── 对外入口 ──
92
- /**
93
- * 再验证(两域并行独立)。
94
- * - siming_refresh:force=true(跳过指纹),目录=注册闭包持有的 location directory,await 返回摘要;
95
- * - 任务创建触发:force=false,目录=setup 捕获的 location directory(钩子载荷无 directory 字段),fire-and-forget。
96
- */
97
- export function revalidate(opts) {
98
- const jobOpts = {
99
- force: opts.force,
100
- directory: opts.directory ?? locationDirectory(),
101
- source: opts.source,
148
+ return {
149
+ revalidate,
150
+ initFetch,
151
+ setReloader: (domain, reload) => {
152
+ reloaders[domain] = reload;
153
+ },
154
+ observeTaskCreate,
155
+ getLastResolvedTarget: () => lastResolvedTarget,
102
156
  };
103
- const skill = dispatchDomain('skill', jobOpts);
104
- const agent = dispatchDomain('agent', jobOpts);
105
- return Promise.all([skill, agent]).then(([skillOutcome, agentOutcome]) => ({
106
- skill: skillOutcome,
107
- agent: agentOutcome,
108
- }));
109
157
  }
110
- /**
111
- * 初始化拉取(setup 同步阻塞,有界等待 budgetMs,缺省 INIT_BUDGET_MS)。
112
- * - 成功:两域 store + 指纹就位,返回 true;
113
- * - 失败/超时:返回 false(store 保持空集,激活继续注册空名单——首个 siming_refresh/任务创建触发自愈)。
114
- * 超时后底层拉取不取消:迟到成功仍会写入 store(下次请求即见),只是不再阻塞激活。
115
- * budgetMs 参数为测试缝(§6:init 有界等待行为单测可缩短预算)——生产调用方不传。
116
- */
117
- export async function initFetch(startDir, budgetMs = INIT_BUDGET_MS) {
118
- const jobOpts = { force: true, directory: startDir, source: 'init' };
119
- const timedFetch = Promise.all([dispatchDomain('skill', jobOpts), dispatchDomain('agent', jobOpts)]);
120
- let budgetTimer;
121
- const budget = new Promise((resolve) => {
122
- budgetTimer = setTimeout(() => resolve(null), budgetMs);
123
- });
124
- const settled = await Promise.race([timedFetch.then(() => true), budget]);
125
- clearTimeout(budgetTimer);
126
- if (settled === true) {
127
- const [skillOutcome, agentOutcome] = await timedFetch;
128
- return skillOutcome.status === 'refreshed' && agentOutcome.status === 'refreshed';
129
- }
130
- console.error('[siming-plugin] 初始化拉取超时(10s)——空集注册继续激活,稍后触发自动补齐');
131
- return false;
132
- }
133
- // ── 任务创建触发(§4.C3-3:execute.after 观测) ──
158
+ // ── 钩子载荷判定(纯函数,模块级共享) ──
134
159
  /** 从 execute.after 载荷提取工具名(V8 申报:载荷形态以实测锚定,容错多种呈现) */
135
160
  function extractToolName(tool) {
136
161
  if (typeof tool === 'string')
@@ -162,29 +187,4 @@ function isFailedOutput(output) {
162
187
  }
163
188
  return false;
164
189
  }
165
- /**
166
- * 注册任务创建观测(setup 调用一次)。
167
- * 仅 MCP siming_task + action=create + 执行成功 → fire-and-forget revalidate(不 await,异常吞掉——
168
- * 闸门防重入,失败留限频日志)。窄观测面:siming_cli / 终端 CLI 建任务不触发(防参数字符串解析脆弱)。
169
- *
170
- * 目录基准(v2.0.26 实测修订,§4.C3-3):宿主钩子载荷仅含 sessionID(无 directory 字段),
171
- * 但插件 setup ctx.location.directory 存在(setup 时捕获,setLocationDirectory)——任务创建触发
172
- * 与初始化触发同取捕获值(同一 location 的插件实例,目录天然一致)。
173
- * 多 location 形态(一个宿主进程多个活跃项目目录)下各 location 独立 setup 各自捕获;
174
- * 模块级 store 单实例=最后捕获者生效(当前边界,PRD 非目标:单 location 主场景)。
175
- */
176
- export function observeTaskCreate(toolDomain) {
177
- void toolDomain.hook('execute.after', (input, output) => {
178
- const name = extractToolName(input.tool);
179
- if (name === null || !isSimingTaskTool(name))
180
- return;
181
- if (!isCreateArgs(input.args))
182
- return;
183
- if (isFailedOutput(output))
184
- return;
185
- void revalidate({ force: false, source: 'task-create' }).catch(() => {
186
- // fire-and-forget:异常吞掉(runDomainJob 内部已捕获留痕,此处兜底防未处理拒绝)
187
- });
188
- });
189
- }
190
190
  //# sourceMappingURL=revalidate.js.map
@@ -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":"AAqBA,OAAO,EACL,iBAAiB,EACjB,0BAA0B,EAC1B,iBAAiB,EACjB,0BAA0B,EAC1B,gBAAgB,EAChB,gBAAgB,EAChB,4BAA4B,GAC7B,MAAM,mBAAmB,CAAC;AAG3B,iEAAiE;AACjE,MAAM,cAAc,GAAG,MAAM,CAAC;AAgD9B;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAC/B,KAAkB,EAClB,SAAiB,EACjB,iBAAyB,gBAAgB,CAAC,SAAS,CAAC;IAEpD,mCAAmC;IAEnC,qDAAqD;IACrD,MAAM,KAAK,GAAkD,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAE1F,iEAAiE;IACjE,MAAM,SAAS,GAAwD,EAAE,CAAC;IAE1E,mFAAmF;IACnF,IAAI,YAAY,GAAuC,IAAI,CAAC;IAE5D,IAAI,kBAAkB,GAA0B,IAAI,CAAC;IAErD,oCAAoC;IACpC,MAAM,iBAAiB,GAAkC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAEtF,SAAS,QAAQ,CAAC,MAAc,EAAE,OAAe;QAC/C,IAAI,iBAAiB,CAAC,MAAM,CAAC,KAAK,OAAO;YAAE,OAAO,CAAC,aAAa;QAChE,iBAAiB,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC;QACpC,OAAO,CAAC,KAAK,CAAC,0BAA0B,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,aAAa,OAAO,EAAE,CAAC,CAAC;IACnG,CAAC;IAED,6DAA6D;IAE7D,KAAK,UAAU,YAAY,CAAC,MAAc,EAAE,IAAsB;QAChE,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,SAAS,EAAE,YAAY,IAAI,SAAS,EAAE,cAAc,CAAC,CAAC;YAC1F,kBAAkB;gBAChB,IAAI,CAAC,SAAS,KAAK,IAAI;oBACrB,CAAC,CAAC;wBACE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;wBAChC,SAAS,EAAE,IAAI,CAAC,SAAS;wBACzB,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,kBAAkB;qBAClF;oBACH,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;YACjF,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;gBAC5B,YAAY,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,4BAA4B,EAAE,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;YACrG,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBAChB,MAAM,OAAO,GACX,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,0BAA0B,CAAC,IAAI,CAAC,CAAC;gBACvG,MAAM,MAAM,GAAG,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC;gBAC9F,IAAI,OAAO,KAAK,MAAM;oBAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;YACzD,CAAC;YAED,IAAI,cAAsB,CAAC;YAC3B,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;gBACvB,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBAC7C,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACnC,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBAC9C,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBAC7C,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACnC,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBAC9C,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;YACxC,CAAC;YACD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;YACjC,IAAI,MAAM,KAAK,SAAS;gBAAE,MAAM,MAAM,EAAE,CAAC;YAEzC,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC9B,iDAAiD;gBACjD,OAAO,CAAC,GAAG,CACT,2BAA2B,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,MAAM,CAAC,cAAc,CAAC,YAAY,CACvG,CAAC;YACJ,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;QACxD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC1B,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,qCAAqC;IACrC,SAAS,cAAc,CAAC,MAAc,EAAE,IAAsB;QAC5D,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;QACxE,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;YAClD,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;QACvB,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;QACpB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,mBAAmB;IAEnB;;;;;OAKG;IACH,SAAS,UAAU,CAAC,IAA2D;QAC7E,MAAM,OAAO,GAAqB,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;QAC7E,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC/C,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC;YACzE,KAAK,EAAE,YAAY;YACnB,KAAK,EAAE,YAAY;SACpB,CAAC,CAAC,CAAC;IACN,CAAC;IAED;;;;;;OAMG;IACH,KAAK,UAAU,SAAS,CAAC,WAAmB,cAAc;QACxD,MAAM,OAAO,GAAqB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAClE,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QACrG,IAAI,WAAuC,CAAC;QAC5C,MAAM,MAAM,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAC3C,WAAW,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAa,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QACnF,YAAY,CAAC,WAAW,CAAC,CAAC;QAC1B,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,MAAM,CAAC,YAAY,EAAE,YAAY,CAAC,GAAG,MAAM,UAAU,CAAC;YACtD,OAAO,YAAY,CAAC,MAAM,KAAK,WAAW,IAAI,YAAY,CAAC,MAAM,KAAK,WAAW,CAAC;QACpF,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACjE,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;OAOG;IACH,SAAS,iBAAiB,CAAC,UAA0B;QACnD,KAAK,UAAU,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YACtD,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;gBAAE,OAAO;YACrD,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC;gBAAE,OAAO;YACtC,IAAI,cAAc,CAAC,MAAM,CAAC;gBAAE,OAAO;YACnC,KAAK,UAAU,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;gBAClE,wDAAwD;YAC1D,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,UAAU;QACV,SAAS;QACT,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;YAC9B,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;QAC7B,CAAC;QACD,iBAAiB;QACjB,qBAAqB,EAAE,GAAG,EAAE,CAAC,kBAAkB;KAChD,CAAC;AACJ,CAAC;AAED,0BAA0B;AAE1B,sDAAsD;AACtD,SAAS,eAAe,CAAC,IAAa;IACpC,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC1C,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAI,IAA2B,CAAC,IAAI,CAAC;QAC/C,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;IAC5C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,oGAAoG;AACpG,SAAS,gBAAgB,CAAC,IAAY;IACpC,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AACtC,CAAC;AAED,uDAAuD;AACvD,SAAS,YAAY,CAAC,IAAa;IACjC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACnF,OAAQ,IAA6B,CAAC,MAAM,KAAK,QAAQ,CAAC;AAC5D,CAAC;AAED;;+CAE+C;AAC/C,SAAS,cAAc,CAAC,MAA8C;IACpE,MAAM,KAAK,GAAG,MAAM,EAAE,MAAM,CAAC;IAC7B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAK,KAA+B,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;QACtG,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAkB,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAiExE,QAAA,MAAM,MAAM;;iBAES,iBAAiB,KAAG,OAAO,CAAC,IAAI,CAAC;CAoCrD,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAkB,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AA8ExE,QAAA,MAAM,MAAM;;iBAES,iBAAiB,KAAG,OAAO,CAAC,IAAI,CAAC;CA4CrD,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -11,8 +11,9 @@
11
11
  * 仅激活时刻执行一次(此后动态增减由三触发点承接,正确性归 §6 刷新链单测)。
12
12
  */
13
13
  import { checkHostVersion, locateCli } from '../cli-locator.js';
14
- import { getSnapshot } from '../assets-store.js';
15
- import { initFetch, observeTaskCreate, setReloader, setLocationDirectory } from '../revalidate.js';
14
+ import { createAssetsStore } from '../assets-store.js';
15
+ import { referencesRootOf } from '../fetch-assets.js';
16
+ import { createRevalidator } from '../revalidate.js';
16
17
  import { MCP_SERVER_NAME, registerMcp } from '../register/mcp.js';
17
18
  import { SIMING_CLI_TOOL_NAME, registerSimingCli } from '../register/tools.js';
18
19
  import { SIMING_REFRESH_TOOL_NAME, registerRefreshTool } from '../register/refresh-tool.js';
@@ -20,10 +21,9 @@ import { registerTaskDiscipline } from '../register/task-discipline.js';
20
21
  import { registerSkills } from '../register/skills.js';
21
22
  import { registerAgents } from '../register/agents.js';
22
23
  import { GUIDE_SKILL_NAME } from '../guide-skill.js';
23
- import { getLastResolvedTarget } from '../revalidate.js';
24
24
  import { listEntryNames } from '../host-api.js';
25
25
  /** 激活自检(§4.G:固定项按双轴基准;动态项区分拉取失败与注册缺项;异常 console.error) */
26
- async function selfCheck(ctx, opts) {
26
+ async function selfCheck(ctx, store, revalidator, opts) {
27
27
  const problems = [];
28
28
  let skillCount = 0;
29
29
  let agentCount = 0;
@@ -57,7 +57,7 @@ async function selfCheck(ctx, opts) {
57
57
  problems.push('任务纪律注入 session 域不可用(context hook 或 session.get 缺失)——本宿主不注入任务纪律提示词');
58
58
  }
59
59
  // 动态项:拉取成功但注册缺项(拉取失败时 store 为空、此处自然无比对项=预期降级不告警)
60
- const snapshot = getSnapshot();
60
+ const snapshot = store.getSnapshot();
61
61
  for (const skill of snapshot.skills) {
62
62
  if (!skillNames.has(skill.name))
63
63
  problems.push(`技能 ${skill.name} 已拉取但未出现在 skill 域注册表`);
@@ -76,10 +76,17 @@ async function selfCheck(ctx, opts) {
76
76
  console.error(`[siming-plugin] 激活自检发现异常(${String(problems.length)} 项,doctor 会话内可二次查证):\n- ${problems.join('\n- ')}`);
77
77
  return;
78
78
  }
79
- const target = getLastResolvedTarget();
79
+ const target = revalidator.getLastResolvedTarget();
80
+ const bindLabel = target === null
81
+ ? ''
82
+ : target.projectId === null
83
+ ? ''
84
+ : target.projectSource === 'workspace'
85
+ ? ',项目已绑定(工作区 defaultProject)'
86
+ : ',项目已绑定(实例默认项目)';
80
87
  console.log(`[siming-plugin] 激活完成:固定 ${opts.interpreterOk ? '5' : '3'} 项(解释器${opts.interpreterOk ? '正常' : '缺失降级'})` +
81
88
  ` + 技能 ${String(skillCount)} + 子代理 ${String(agentCount)}` +
82
- `${target !== null ? `(server:${target.serverUrl}${target.projectId !== null ? ',项目已绑定' : ''})` : ''}` +
89
+ `${target !== null ? `(server:${target.serverUrl}${bindLabel})` : ''}` +
83
90
  `${skillCount === 0 && agentCount === 0 ? '——资产拉取未成功(空集注册,首次建任务/手动刷新时自动重试)' : ''}`);
84
91
  }
85
92
  const plugin = {
@@ -92,27 +99,35 @@ const plugin = {
92
99
  throw new Error('[siming-plugin] 安装损坏:@siming-org/cli 依赖解析失败——' +
93
100
  '请执行 opencode plugin remove @siming-org/opencode-plugin && opencode plugin add @siming-org/opencode-plugin 重装');
94
101
  }
95
- // 目录基准:捕获本 location 的 directory(v2.0.26 实测:ToolContext 无 directory 字段,
96
- // ctx.location.directory 于 setup 时可得——三触发与工具 cwd 统一取此值)
102
+ // 目录基准:本 location 的 directory(v2.0.26 实测:ToolContext 无 directory 字段,
103
+ // ctx.location.directory 于 setup 时可得——三触发与工具 cwd 统一取此值)。
104
+ // per-location 实例(T202610220003):store + revalidator 每次各构造一个,本 location 的
105
+ // 拉取/注册/刷新/自检全链闭环在这对实例上——多 location 互不覆盖(历史缺陷:模块级单例被
106
+ // 最后完成初始化的 location 覆盖,其他 location 的 project 域技能从注册表消失)。
97
107
  const directory = ctx.location.directory;
98
- setLocationDirectory(directory);
108
+ // 附件缓存根:setup 一次求值(referencesRootOf(directory)),既供注册展示路径,又经
109
+ // createRevalidator 传入 revalidator 贯穿会话——物化与展示始终同源(T202610220004 决策 B),
110
+ // 不因运行期可写性翻转而换根。
111
+ const referencesRoot = referencesRootOf(directory);
112
+ const store = createAssetsStore();
113
+ const revalidator = createRevalidator(store, directory, referencesRoot);
99
114
  // 注册面(解释器轴降级:MCP 与 siming_cli 跳过,其余照常;任务纪律注入不在此轴,仅依赖宿主 session 域)
100
115
  if (nodeBin !== null)
101
116
  registerMcp(ctx, { nodeBin, cliJs });
102
- registerRefreshTool(ctx, directory);
103
- registerSkills(ctx);
104
- registerAgents(ctx);
117
+ registerRefreshTool(ctx, revalidator, store);
118
+ registerSkills(ctx, store, referencesRoot);
119
+ registerAgents(ctx, store);
105
120
  if (nodeBin !== null)
106
121
  registerSimingCli(ctx, { nodeBin, cliJs }, directory);
107
122
  registerTaskDiscipline(ctx, directory);
108
- // 变更生效通道 + 任务创建观测(fire-and-forget)
109
- setReloader('skill', () => ctx.skill.reload());
110
- setReloader('agent', () => ctx.agent.reload());
111
- observeTaskCreate(ctx.tool);
112
- // 初始化拉取(setup 期会话未建立 → location directory 基准,§4.C3-3)
113
- await initFetch(directory);
123
+ // 变更生效通道 + 任务创建观测(fire-and-forget)——均注入本 location 实例
124
+ revalidator.setReloader('skill', () => ctx.skill.reload());
125
+ revalidator.setReloader('agent', () => ctx.agent.reload());
126
+ revalidator.observeTaskCreate(ctx.tool);
127
+ // 初始化拉取(setup 期会话未建立 → 构造时 location directory 基准,§4.C3-3)
128
+ await revalidator.initFetch();
114
129
  // 激活自检(仅此刻一次)
115
- await selfCheck(ctx, { interpreterOk: nodeBin !== null });
130
+ await selfCheck(ctx, store, revalidator, { interpreterOk: nodeBin !== null });
116
131
  },
117
132
  };
118
133
  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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"}
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * 任务纪律提示词(T202610160002 用户裁定:插件内常量·短提示;T202610200001 补全
3
3
  * 使用引导与异常推进原则——任务读取/推进骨架、工具边界与异常处理;
4
+ * T202610220001 默认约束面收敛为开发流程与调研流程,其他工作默认不走 siming,业务特定流程需项目提示词声明;
4
5
  * 不做服务端动态拉取)。
5
6
  * 外层判定:register/task-discipline.ts——仅已接入 siming 工作区的主会话注入。
6
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"task-discipline-prompt.d.ts","sourceRoot":"","sources":["../src/task-discipline-prompt.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,QAU2B,CAAC"}
1
+ {"version":3,"file":"task-discipline-prompt.d.ts","sourceRoot":"","sources":["../src/task-discipline-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,QAW2B,CAAC"}
@@ -1,13 +1,15 @@
1
1
  /**
2
2
  * 任务纪律提示词(T202610160002 用户裁定:插件内常量·短提示;T202610200001 补全
3
3
  * 使用引导与异常推进原则——任务读取/推进骨架、工具边界与异常处理;
4
+ * T202610220001 默认约束面收敛为开发流程与调研流程,其他工作默认不走 siming,业务特定流程需项目提示词声明;
4
5
  * 不做服务端动态拉取)。
5
6
  * 外层判定:register/task-discipline.ts——仅已接入 siming 工作区的主会话注入。
6
7
  */
7
- export const TASK_DISCIPLINE_PROMPT = '[siming 任务纪律] 本工作区已接入 siming 任务平台:对代码、流程资产(节点提示词/skill/DAG 模板)或设计文档的改动,' +
8
- '必须先经项目的任务创建入口(通常为 task-create skill)建立任务,再按任务节点提示词推进执行;不得无任务状态直接动手,' +
9
- '不得跳步或事后补办归档动作。\n\n' +
10
- '任务状态、节点提示词与归档要求一律以 siming 平台为唯一权威:新会话或上下文丢失时,先用 siming_task 查询当前任务' +
8
+ export const TASK_DISCIPLINE_PROMPT = '[siming 任务纪律] 本插件只默认约束两类工作的流程:开发流程与调研流程——属于这两类的工作,' +
9
+ '必须先经项目的任务创建入口(通常为 task-create skill)建立任务,再按任务节点提示词推进执行;' +
10
+ '不得无任务状态直接动手,不得跳步或事后补办归档动作。其他工作在默认情况下不走 siming 流程,' +
11
+ '按项目自身约定直接执行;若某个业务的特定流程也要求走 siming,由该业务在自己的项目提示词中声明。\n\n' +
12
+ '已进入 siming 流程的工作,任务状态、节点提示词与归档要求一律以 siming 平台为唯一权威:新会话或上下文丢失时,先用 siming_task 查询当前任务' +
11
13
  '(没有才新建),再用 context 读取需求、节点提示词、所需技能与记录;同一会话内 advance/approve 的响应已含下一节点' +
12
14
  '完整资料包,无需重读 context。每个节点完成时先按节点要求写入记录再推进;完成判定以节点提示词为准。\n\n' +
13
15
  '工具边界:正常情况下,任务相关操作只走 siming MCP(siming_task 管任务生命周期,siming_template 查模板,siming_auth 自查身份);' +
@@ -1 +1 @@
1
- {"version":3,"file":"task-discipline-prompt.js","sourceRoot":"","sources":["../src/task-discipline-prompt.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GACjC,yEAAyE;IACzE,qEAAqE;IACrE,oBAAoB;IACpB,oEAAoE;IACpE,uEAAuE;IACvE,2DAA2D;IAC3D,2FAA2F;IAC3F,2EAA2E;IAC3E,2BAA2B;IAC3B,4DAA4D,CAAC"}
1
+ {"version":3,"file":"task-discipline-prompt.js","sourceRoot":"","sources":["../src/task-discipline-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GACjC,oDAAoD;IACpD,yDAAyD;IACzD,mDAAmD;IACnD,yDAAyD;IACzD,qFAAqF;IACrF,uEAAuE;IACvE,2DAA2D;IAC3D,2FAA2F;IAC3F,2EAA2E;IAC3E,2BAA2B;IAC3B,4DAA4D,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@siming-org/opencode-plugin",
3
- "version": "0.1.12",
3
+ "version": "0.1.15",
4
4
  "description": "opencode v2 plugin for siming: registers MCP task tools (siming_*), onboarding guide skill, siming_cli/siming_refresh tools, and global+project skills/subagents pulled live from the siming server",
5
5
  "type": "module",
6
6
  "keywords": [
@@ -15,7 +15,7 @@
15
15
  "dependencies": {
16
16
  "jsonc-parser": "^3.3.1",
17
17
  "zod": "^4.4.3",
18
- "@siming-org/cli": "0.8.15"
18
+ "@siming-org/cli": "0.8.16"
19
19
  },
20
20
  "devDependencies": {
21
21
  "@opencode-ai/plugin": "^1.18.35",