@siming-org/opencode-plugin 0.1.4 → 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -9,9 +9,9 @@ opencode plugin add @siming-org/opencode-plugin@latest # 安装
9
9
  opencode plugin update # 升级
10
10
  ```
11
11
 
12
- 要求:opencode ≥ 2.0.26(过低仅提示不阻断);Node.js ≥ 22(随 @siming-org/cli 依赖自检,不满足时 MCP 与 siming_cli 降级不注册,其余三样不受影响)。
12
+ 要求:opencode ≥ 2.0.26(过低仅提示不阻断);Node.js ≥ 22(随 @siming-org/cli 依赖自检,不满足时 MCP 与 siming_cli 降级不注册,其余四样不受影响)。
13
13
 
14
- ## 注册的五样
14
+ ## 注册的六样
15
15
 
16
16
  | 资产 | 说明 |
17
17
  |---|---|
@@ -20,6 +20,7 @@ opencode plugin update # 升级
20
20
  | 工具 `siming_cli` | 以子进程执行任意 siming CLI 命令(仅限接入与诊断;任务生命周期操作一律走 MCP 三件套 siming_task / siming_template / siming_auth;日常运维请走终端) |
21
21
  | 技能 | `siming-guide` 接入引导(固定常驻)+ server 侧全局/项目技能自动同步 |
22
22
  | 子代理 | server 侧 agent 自动同步为 subagent(模型置空继承主会话当前模型;任务依据限于项目代码,过程产物读取与命令执行由主会话完成) |
23
+ | 任务纪律注入 | 已接入 siming 的工作区(`.siming/config.json` 含 `defaultProject`)的**主会话**,向系统指令追加任务纪律提示词(插件内常量,无网络拉取;子代理/辅助请求/未接入工作区不注入;判定复用 worktree 桥语义,T202610150001;旧宿主缺 session 域自动跳过并由激活自检上报) |
23
24
 
24
25
  ## server 连接与凭证
25
26
 
@@ -27,7 +28,7 @@ opencode plugin update # 升级
27
28
  - Token 三层:工作区 `.siming/dev.json` 的 `authToken` > `~/.siming/auth.json` > `SIMING_TOKEN` 环境变量
28
29
  - 401 时按提示执行 `siming auth token set --global`(或工作区形态 `siming auth token set`)后触发刷新
29
30
 
30
- **首次接入重启提示**:MCP 子进程的 server 地址在 opencode 启动时定格。若引导流程中途才写入 `.siming/config.json`(绑定 server),其余四样当会话即刻生效,但建任务走的 MCP 通道需重启 opencode 一次以读取新地址。
31
+ **首次接入重启提示**:MCP 子进程的 server 地址在 opencode 启动时定格。若引导流程中途才写入 `.siming/config.json`(绑定 server),其余五样当会话即刻生效,但建任务走的 MCP 通道需重启 opencode 一次以读取新地址。
31
32
 
32
33
  ## 资产新鲜度
33
34
 
@@ -38,7 +39,7 @@ opencode plugin update # 升级
38
39
 
39
40
  ## 常驻与上下文占用
40
41
 
41
- 全部注册物常驻会话,合计约 2-3K token(窗口占比 1-1.5%)。插件不内置任何 permissions 规则;如需收窄 `siming_cli` 可达面,可自配 deny 规则引用其锚点 `siming-setup`(options.permission 声明值),例如在 opencode 权限配置中 deny `siming-setup`。
42
+ 全部注册物常驻会话,合计约 2-3K token(窗口占比 1-1.5%;其中任务纪律提示词为常量短文,约 0.2-0.3K token,T202610160002 随新增一并核对)。插件不内置任何 permissions 规则;如需收窄 `siming_cli` 可达面,可自配 deny 规则引用其锚点 `siming-setup`(options.permission 声明值),例如在 opencode 权限配置中 deny `siming-setup`。
42
43
 
43
44
  ## 旧产物同名处理
44
45
 
@@ -80,7 +81,7 @@ bash scripts/install-cli.sh --plugin-npm-install [@siming-org/opencode-plugin[@
80
81
 
81
82
  - loader 是生成文件(`<config>/opencode/plugins/simming-plugin-dev.ts`,转发 import 到本仓 `dist/server/index.js`)——换机器或仓库迁移后重跑 `--plugin-dev` 重新生成绝对路径。
82
83
  - 装入后任意 opencode 会话即加载本仓构建产物;改动代码后重跑 `--plugin-dev` + 重启 opencode(或触发宿主 location 重建)生效。
83
- - **单通道互斥为脚本强制**(非提示):与 npm 安装的同 id 插件会各自加载(v2 宿主行为,五样会重复注册)。`--plugin-dev` 写入前检测 `opencode plugin list`,发现同 id 其他通道实例(npm/git spec 或手工副本)即拒绝;`--plugin-npm-install` 自动先移除 loader。`plugin list` 不可用时同样拒绝写入(无法确认即不写)。
84
+ - **单通道互斥为脚本强制**(非提示):与 npm 安装的同 id 插件会各自加载(v2 宿主行为,六样会重复注册)。`--plugin-dev` 写入前检测 `opencode plugin list`,发现同 id 其他通道实例(npm/git spec 或手工副本)即拒绝;`--plugin-npm-install` 自动先移除 loader。`plugin list` 不可用时同样拒绝写入(无法确认即不写)。
84
85
  - 默认安装(`bash scripts/install-cli.sh` 无参)尾部会顺带执行同一激活(检测到 opencode 宿主时);无 opencode 的机器自动跳过;互斥检测失败时降级为警示+跳过,不影响 CLI 生产安装结果。
85
86
 
86
87
  设计文档:`ProjectHub/docs/技术方案/平台/T202610090002-opencode插件-技术方案.md`
@@ -41,10 +41,10 @@ const GUIDE_CONTENT = `# siming 新项目接入引导(opencode 插件版)
41
41
 
42
42
  ## 第 4 步:验证与资产就位
43
43
 
44
- 1. 经 siming_cli 传 \`doctor\` / \`healthcheck\` 验证并报告:接入结果、五样就位状态、下一步(建任务走 MCP 三件套:siming_task / siming_template / siming_auth)。
44
+ 1. 经 siming_cli 传 \`doctor\` / \`healthcheck\` 验证并报告:接入结果、六样就位状态、下一步(建任务走 MCP 三件套:siming_task / siming_template / siming_auth)。
45
45
  2. doctor 通过后,**显式调用一次 \`siming_refresh\`**——进程内强制重拉,技能/子代理即时就位(下一请求可见,不等下次触发、无需重启)。如实告知时序:刷新完成 ≠ 当前请求内立即可见。
46
46
  3. 项目作用域就位校验:对照 flow compose 产出名单核对刷新报告中的技能/子代理数量(弱校验:技能含 task-create 且数量非零);缺项如实报出,不静默吞掉。多项目实例形态下缺项可经「重启宿主于项目目录」缓解。
47
- 4. **首次接入重启提示**:命令链写入工作区绑定后,本会话已运行的 MCP 子进程仍持启动时定格的旧地址——**重启 opencode 后 MCP 通道才连向新绑定地址**。其余四样(引导技能/siming_cli/全局技能/全局子代理)与 siming_refresh 当会话即已可用,不受影响。**建任务走 MCP 的操作请在重启后进行**——重启前旧地址实例仍存活时,任务会静默建到错误实例,比报错更难察觉。
47
+ 4. **首次接入重启提示**:命令链写入工作区绑定后,本会话已运行的 MCP 子进程仍持启动时定格的旧地址——**重启 opencode 后 MCP 通道才连向新绑定地址**。其余五样(siming_refresh、siming_cli、技能、子代理、任务纪律注入)当会话即已可用,不受影响。**建任务走 MCP 的操作请在重启后进行**——重启前旧地址实例仍存活时,任务会静默建到错误实例,比报错更难察觉。
48
48
 
49
49
  ## 第 5 步:AGENTS.md 指路与多宿主边界
50
50
 
@@ -88,7 +88,7 @@ export declare function skillDisplayPath(name: string): string;
88
88
  /**
89
89
  * 域公共面:list=回查注册表,reload=触发重放。
90
90
  * transform 不放基接口——各域编辑器形状不同,交集声明会把回调参数收缩成 never(实测);
91
- * 由各域接口自行声明(见 HostPluginContext 四域)。
91
+ * 由各域接口自行声明(见 HostPluginContext 五域)。
92
92
  */
93
93
  export interface HostDomain<ListEntry> {
94
94
  list(): Promise<readonly ListEntry[]>;
@@ -111,7 +111,31 @@ export interface HostToolExecuteAfterOutput {
111
111
  output?: unknown;
112
112
  metadata?: unknown;
113
113
  }
114
- /** 宿主注入的插件 context(仅声明消费面:location.directory + 四域) */
114
+ /** 宿主 SystemPart 消费面(packages/plugin/src/promise/…:{ type, text }) */
115
+ export interface HostSystemPart {
116
+ type: 'text';
117
+ text: string;
118
+ }
119
+ /** context hook 事件消费面(SessionContext:system 可变数组 + sessionID) */
120
+ export interface HostSessionContextEvent {
121
+ readonly sessionID: string;
122
+ system: HostSystemPart[];
123
+ }
124
+ /** Session.Info 消费面(packages/schema/src/session.ts:parentID 缺省 = 主会话) */
125
+ export interface HostSessionInfo {
126
+ readonly parentID?: string;
127
+ }
128
+ /** session.get 入参(packages/client/src/promise/generated/types.ts:SessionGetInput = { sessionID };
129
+ * v2.0.30 实测——传裸字符串报 "Expected object",须对象入参) */
130
+ export interface HostSessionGetInput {
131
+ readonly sessionID: string;
132
+ }
133
+ /** session 域消费面:context hook + 会话回查(SessionDomain 的 hook/get 子集) */
134
+ export interface HostSessionDomain {
135
+ hook(name: 'context', cb: (event: HostSessionContextEvent) => Promise<void> | void): unknown;
136
+ get(input: HostSessionGetInput): Promise<HostSessionInfo>;
137
+ }
138
+ /** 宿主注入的插件 context(仅声明消费面:location.directory + 五域) */
115
139
  export interface HostPluginContext {
116
140
  location: {
117
141
  directory: string;
@@ -126,6 +150,7 @@ export interface HostPluginContext {
126
150
  transform(editorFn: (editor: HostAgentEditor) => void | Promise<void>): unknown;
127
151
  };
128
152
  tool: HostToolDomain;
153
+ session: HostSessionDomain;
129
154
  }
130
155
  /** 插件对象:exports['./server'] 默认导出形状 */
131
156
  export interface HostPlugin {
@@ -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
@@ -11,6 +11,9 @@
11
11
  * - mcp 域:MCPEditor = set/remove(LocalConfig 无 enabled 字段,语义取 disabled?);
12
12
  * - tool 域:Tool.Info 必填 input(zod 实现 StandardSchemaV1 可行);ToolContext 无 directory
13
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);
14
17
  * - setup ctx.location.directory 存在(Location.Info):插件按活跃 location 各跑一份 setup。
15
18
  * 只声明插件实际消费的最小面;SDK 仅作 devDep 参考对齐,不进入运行时依赖。
16
19
  */
@@ -1 +1 @@
1
- {"version":3,"file":"host-api.js","sourceRoot":"","sources":["../src/host-api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;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;AAsDD;;;;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":"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"}
@@ -5,7 +5,7 @@
5
5
  * 1. 对账簿比对——上轮注册过但本轮 store 已无的名字 ed.remove(停用/删除的消失不依赖宿主 reload 实现形态);
6
6
  * 2. store 内全部技能 add(正文内嵌消费,path=合成展示路径——内置技能 /builtin/*.md 先例,
7
7
  * references 已在拉取时物化并改写为绝对路径);
8
- * 3. 引导技能固定注册(五样常驻之一,不随拉取变化)。
8
+ * 3. 引导技能固定注册(注册面固定项之一,不随拉取变化)。
9
9
  * transform 每请求重放,读的是 assets-store 当前快照——刷新替换 store 后下一请求即见新名单。
10
10
  */
11
11
  import type { HostPluginContext } from '../host-api.js';
@@ -0,0 +1,17 @@
1
+ /**
2
+ * 任务纪律注入注册器(T202610160002;方案 §2.3)。
3
+ *
4
+ * 判定链(全部通过才注入,任一步不进即跳过):
5
+ * ① 已接入判定——复用 resolveFetchTarget 纯本地解析:工作区 .siming/config.json 的
6
+ * defaultProject 非空串(用户裁定唯一条件);未接入 → 跳过(含保守失败方向)。
7
+ * ② 主会话判定——ctx.session.get({ sessionID }) 查询 Session.Info,parentID 存在 = 子代理
8
+ * child session → 跳过;查询异常 → 保守跳过(不注入,留 console.error 可见痕迹)。
9
+ * ③ 幂等——event.system 已含同文本 → 跳过(宿主可能复用基线数组重放 hook)。
10
+ * ④ 注入——向 event.system push 常量文本 SystemPart。
11
+ *
12
+ * session 域为宿主 v2 新增能力:老宿主缺 hook/get → 不注册(本宿主不注入,
13
+ * 由 server 侧激活自检作为固定项上报)。
14
+ */
15
+ import type { HostPluginContext } from '../host-api.js';
16
+ export declare function registerTaskDiscipline(ctx: HostPluginContext, directory: string): void;
17
+ //# sourceMappingURL=task-discipline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-discipline.d.ts","sourceRoot":"","sources":["../../src/register/task-discipline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAIxD,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CA6BtF"}
@@ -0,0 +1,30 @@
1
+ import { TASK_DISCIPLINE_PROMPT } from '../task-discipline-prompt.js';
2
+ import { resolveFetchTarget } from '../fetch-assets.js';
3
+ export function registerTaskDiscipline(ctx, directory) {
4
+ if (typeof ctx.session?.hook !== 'function' || typeof ctx.session?.get !== 'function') {
5
+ return; // 旧宿主降级:不注册(能力缺失由 server 侧自检项上报)
6
+ }
7
+ ctx.session.hook('context', async (event) => {
8
+ const target = resolveFetchTarget(directory);
9
+ if (target.projectKey === null) {
10
+ return; // ① 已接入判定(纯本地,无网络)
11
+ }
12
+ let info;
13
+ try {
14
+ info = await ctx.session.get({ sessionID: event.sessionID }); // ② 主会话判定(经宿主 server 的本地 RPC)
15
+ }
16
+ catch (error) {
17
+ // 保守失败方向:查询异常时不注入;留可见痕迹避免静默降级(v2.0.30 实测教训:错误入参曾静默跳过)
18
+ console.error(`[siming-plugin] 会话回查失败,本次跳过任务纪律注入(sessionID=${event.sessionID}):${error instanceof Error ? error.message : String(error)}`);
19
+ return;
20
+ }
21
+ if (info.parentID !== undefined) {
22
+ return; // 子代理跑 child session(带 parentID)
23
+ }
24
+ if (event.system.some((part) => part.text === TASK_DISCIPLINE_PROMPT)) {
25
+ return; // ③ 幂等:同文本不重复追加
26
+ }
27
+ event.system.push({ type: 'text', text: TASK_DISCIPLINE_PROMPT });
28
+ });
29
+ }
30
+ //# sourceMappingURL=task-discipline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-discipline.js","sourceRoot":"","sources":["../../src/register/task-discipline.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,UAAU,sBAAsB,CAAC,GAAsB,EAAE,SAAiB;IAC9E,IAAI,OAAO,GAAG,CAAC,OAAO,EAAE,IAAI,KAAK,UAAU,IAAI,OAAO,GAAG,CAAC,OAAO,EAAE,GAAG,KAAK,UAAU,EAAE,CAAC;QACtF,OAAO,CAAC,iCAAiC;IAC3C,CAAC;IACD,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QAC1C,MAAM,MAAM,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YAC/B,OAAO,CAAC,mBAAmB;QAC7B,CAAC;QACD,IAAI,IAAI,CAAC;QACT,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,8BAA8B;QAC9F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,sDAAsD;YACtD,OAAO,CAAC,KAAK,CACX,+CAA+C,KAAK,CAAC,SAAS,KAC5D,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CACvD,EAAE,CACH,CAAC;YACF,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,CAAC,iCAAiC;QAC3C,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,sBAAsB,CAAC,EAAE,CAAC;YACtE,OAAO,CAAC,gBAAgB;QAC1B,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -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;AA6DxE,QAAA,MAAM,MAAM;;iBAES,iBAAiB,KAAG,OAAO,CAAC,IAAI,CAAC;CAmCrD,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;AAiExE,QAAA,MAAM,MAAM;;iBAES,iBAAiB,KAAG,OAAO,CAAC,IAAI,CAAC;CAoCrD,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -4,8 +4,8 @@
4
4
  * setup 序列(技术方案 §4.C1/§4.C3/§4.G):
5
5
  * 1. 宿主版本检测(< v2.0.26 console.error 提示,不中断);
6
6
  * 2. CLI 定位:cliJs 解析失败=安装损坏 → setup 抛结构化错误(plugin remove + add 重装指引);
7
- * 解释器缺失=预期降级(MCP/siming_cli 跳过,其余照常——固定项基准 4→2);
8
- * 3. 注册五样(降级面按解释器轴裁定)+ reload 通道注入 + 任务创建观测;
7
+ * 解释器缺失=预期降级(MCP/siming_cli 跳过,其余照常——固定项基准 5→3);
8
+ * 3. 注册固定面(五样 + 任务纪律注入;降级面按解释器轴与宿主 session 域裁定)+ reload 通道注入 + 任务创建观测;
9
9
  * 4. 初始化拉取:同步阻塞有界 10s,失败/超时空集注册不中断激活(迟到成功仍写入 store);
10
10
  * 5. 激活自检:list() 回查固定项与动态项,区分「拉取失败(预期降级)」与「拉取成功但注册缺项」,
11
11
  * 仅激活时刻执行一次(此后动态增减由三触发点承接,正确性归 §6 刷新链单测)。
@@ -16,6 +16,7 @@ import { initFetch, observeTaskCreate, setReloader, setLocationDirectory } from
16
16
  import { MCP_SERVER_NAME, registerMcp } from '../register/mcp.js';
17
17
  import { SIMING_CLI_TOOL_NAME, registerSimingCli } from '../register/tools.js';
18
18
  import { SIMING_REFRESH_TOOL_NAME, registerRefreshTool } from '../register/refresh-tool.js';
19
+ import { registerTaskDiscipline } from '../register/task-discipline.js';
19
20
  import { registerSkills } from '../register/skills.js';
20
21
  import { registerAgents } from '../register/agents.js';
21
22
  import { GUIDE_SKILL_NAME } from '../guide-skill.js';
@@ -37,7 +38,7 @@ async function selfCheck(ctx, opts) {
37
38
  const skillNames = listEntryNames(skillEntries);
38
39
  const agentNames = listEntryNames(agentEntries);
39
40
  const toolNames = listEntryNames(toolEntries);
40
- // 固定项:解释器轴成功基准 4,轴降级基准 2(MCP/siming_cli 缺=预期不告警)
41
+ // 固定项:解释器轴成功基准 5,轴降级基准 3(MCP/siming_cli 缺=预期不告警)
41
42
  if (opts.interpreterOk && !mcpNames.has(MCP_SERVER_NAME)) {
42
43
  problems.push(`MCP "${MCP_SERVER_NAME}" 未出现在 mcp 域注册表`);
43
44
  }
@@ -51,6 +52,10 @@ async function selfCheck(ctx, opts) {
51
52
  if (!skillNames.has(GUIDE_SKILL_NAME)) {
52
53
  problems.push(`引导技能 ${GUIDE_SKILL_NAME} 未出现在 skill 域注册表`);
53
54
  }
55
+ // 任务纪律注入(T202610160002)仅依赖宿主 session 域——缺=本宿主不注入(真缺项,非预期降级)
56
+ if (typeof ctx.session?.hook !== 'function' || typeof ctx.session?.get !== 'function') {
57
+ problems.push('任务纪律注入 session 域不可用(context hook 或 session.get 缺失)——本宿主不注入任务纪律提示词');
58
+ }
54
59
  // 动态项:拉取成功但注册缺项(拉取失败时 store 为空、此处自然无比对项=预期降级不告警)
55
60
  const snapshot = getSnapshot();
56
61
  for (const skill of snapshot.skills) {
@@ -72,7 +77,7 @@ async function selfCheck(ctx, opts) {
72
77
  return;
73
78
  }
74
79
  const target = getLastResolvedTarget();
75
- console.log(`[siming-plugin] 激活完成:固定 ${opts.interpreterOk ? '4' : '2'} 项(解释器${opts.interpreterOk ? '正常' : '缺失降级'})` +
80
+ console.log(`[siming-plugin] 激活完成:固定 ${opts.interpreterOk ? '5' : '3'} 项(解释器${opts.interpreterOk ? '正常' : '缺失降级'})` +
76
81
  ` + 技能 ${String(skillCount)} + 子代理 ${String(agentCount)}` +
77
82
  `${target !== null ? `(server:${target.serverUrl}${target.projectId !== null ? ',项目已绑定' : ''})` : ''}` +
78
83
  `${skillCount === 0 && agentCount === 0 ? '——资产拉取未成功(空集注册,首次建任务/手动刷新时自动重试)' : ''}`);
@@ -91,7 +96,7 @@ const plugin = {
91
96
  // ctx.location.directory 于 setup 时可得——三触发与工具 cwd 统一取此值)
92
97
  const directory = ctx.location.directory;
93
98
  setLocationDirectory(directory);
94
- // 注册五样(解释器轴降级:MCP 与 siming_cli 跳过,其余照常)
99
+ // 注册面(解释器轴降级:MCP 与 siming_cli 跳过,其余照常;任务纪律注入不在此轴,仅依赖宿主 session 域)
95
100
  if (nodeBin !== null)
96
101
  registerMcp(ctx, { nodeBin, cliJs });
97
102
  registerRefreshTool(ctx, directory);
@@ -99,6 +104,7 @@ const plugin = {
99
104
  registerAgents(ctx);
100
105
  if (nodeBin !== null)
101
106
  registerSimingCli(ctx, { nodeBin, cliJs }, directory);
107
+ registerTaskDiscipline(ctx, directory);
102
108
  // 变更生效通道 + 任务创建观测(fire-and-forget)
103
109
  setReloader('skill', () => ctx.skill.reload());
104
110
  setReloader('agent', () => ctx.agent.reload());
@@ -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,7 @@
1
+ /**
2
+ * 任务纪律提示词(T202610160002 用户裁定:插件内常量·短提示 3-6 行;
3
+ * 声明纪律 + 指路 task-create skill 与 siming_task 工具;不做服务端动态拉取)。
4
+ * 外层判定:register/task-discipline.ts——仅已接入 siming 工作区的主会话注入。
5
+ */
6
+ export declare const TASK_DISCIPLINE_PROMPT: string;
7
+ //# sourceMappingURL=task-discipline-prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-discipline-prompt.d.ts","sourceRoot":"","sources":["../src/task-discipline-prompt.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,QAIS,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * 任务纪律提示词(T202610160002 用户裁定:插件内常量·短提示 3-6 行;
3
+ * 声明纪律 + 指路 task-create skill 与 siming_task 工具;不做服务端动态拉取)。
4
+ * 外层判定:register/task-discipline.ts——仅已接入 siming 工作区的主会话注入。
5
+ */
6
+ export const TASK_DISCIPLINE_PROMPT = '[siming 任务纪律] 本工作区已接入 siming 任务平台:对代码、流程资产(节点提示词/skill/DAG 模板)或设计文档的改动,' +
7
+ '必须先经 task-create skill 建立任务,再按任务节点提示词推进执行;不得无任务状态直接动手,不得跳步或事后补办归档动作。\n' +
8
+ '任务状态、节点提示词与归档要求一律以 siming 平台为唯一权威:任务读取与推进用 siming_task(断点续跑用其 context 动作),' +
9
+ '模板查询用 siming_template,身份自查用 siming_auth。';
10
+ //# sourceMappingURL=task-discipline-prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-discipline-prompt.js","sourceRoot":"","sources":["../src/task-discipline-prompt.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GACjC,yEAAyE;IACzE,wEAAwE;IACxE,4EAA4E;IAC5E,0CAA0C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@siming-org/opencode-plugin",
3
- "version": "0.1.4",
3
+ "version": "0.1.6",
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.8"
18
+ "@siming-org/cli": "0.8.10"
19
19
  },
20
20
  "devDependencies": {
21
21
  "@opencode-ai/plugin": "^1.18.35",