@shgroup/opencode-serenity-plugin 0.3.4 → 0.4.0

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 (40) hide show
  1. package/README.md +98 -78
  2. package/dist/activation.d.ts.map +1 -1
  3. package/dist/activation.js +26 -1
  4. package/dist/activation.js.map +1 -1
  5. package/dist/config-schema.d.ts +2 -1
  6. package/dist/config-schema.d.ts.map +1 -1
  7. package/dist/config-schema.js +1 -0
  8. package/dist/config-schema.js.map +1 -1
  9. package/dist/git/cc-git-tool.d.ts +19 -0
  10. package/dist/git/cc-git-tool.d.ts.map +1 -0
  11. package/dist/git/cc-git-tool.js +170 -0
  12. package/dist/git/cc-git-tool.js.map +1 -0
  13. package/dist/git/index.d.ts +2 -0
  14. package/dist/git/index.d.ts.map +1 -0
  15. package/dist/git/index.js +2 -0
  16. package/dist/git/index.js.map +1 -0
  17. package/dist/hooks/compacting.d.ts.map +1 -1
  18. package/dist/hooks/compacting.js +38 -1
  19. package/dist/hooks/compacting.js.map +1 -1
  20. package/dist/index.d.ts +1 -1
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +3 -1
  23. package/dist/index.js.map +1 -1
  24. package/dist/init/init-wizard.d.ts +19 -13
  25. package/dist/init/init-wizard.d.ts.map +1 -1
  26. package/dist/init/init-wizard.js +247 -123
  27. package/dist/init/init-wizard.js.map +1 -1
  28. package/dist/skills/template-loader.d.ts +3 -1
  29. package/dist/skills/template-loader.d.ts.map +1 -1
  30. package/dist/skills/template-loader.js +6 -5
  31. package/dist/skills/template-loader.js.map +1 -1
  32. package/dist/state.d.ts +2 -0
  33. package/dist/state.d.ts.map +1 -1
  34. package/dist/state.js +6 -0
  35. package/dist/state.js.map +1 -1
  36. package/dist/types/index.d.ts +4 -0
  37. package/dist/types/index.d.ts.map +1 -1
  38. package/dist/types/index.js +2 -0
  39. package/dist/types/index.js.map +1 -1
  40. package/package.json +2 -2
@@ -15,7 +15,7 @@
15
15
  * 通过检查 output.system 是否已包含目标内容实现 idempotent dedup(无状态)
16
16
  * - compacting 保留:避免 serenity 关键状态被压缩丢失
17
17
  */
18
- import { getState, ensureReady } from '../state.js';
18
+ import { getState, ensureReady, clearPhase2Flag } from '../state.js';
19
19
  import { safeCreateHook } from './util.js';
20
20
  import pkg from '../../package.json' with { type: 'json' };
21
21
  const VERSION = pkg.version;
@@ -70,6 +70,42 @@ const systemTransformImpl = async (_input, output) => {
70
70
  return;
71
71
  output.system.push(state.skillContent);
72
72
  };
73
+ /**
74
+ * messages.transform — Phase 2 强制访谈(DCP 同款模式)。
75
+ *
76
+ * 当 activation 检测到 SKILL.md 为骨架模板(needsPhase2=true),
77
+ * 将最后一条用户消息替换为 Phase 2 访谈提示词,实现"无论用户发了什么都进入初始化"。
78
+ *
79
+ * 替换后立即清除 needsPhase2,确保后续消息不被重复注入。
80
+ */
81
+ const messagesTransformImpl = async (_input, output) => {
82
+ try {
83
+ await ensureReady();
84
+ }
85
+ catch {
86
+ return;
87
+ }
88
+ const state = getState();
89
+ if (!state.needsPhase2 || !state.phase2Prompt)
90
+ return;
91
+ // 从后往前找最后一个真实用户消息(跳过 synthetic / ignored / non-user)
92
+ const messages = output.messages ?? [];
93
+ for (let i = messages.length - 1; i >= 0; i--) {
94
+ const msg = messages[i];
95
+ if (!msg || msg.info.role !== 'user')
96
+ continue;
97
+ for (const part of msg.parts) {
98
+ if (part.type !== 'text')
99
+ continue;
100
+ if (part.ignored || part.synthetic)
101
+ continue;
102
+ // 替换消息文本为 Phase 2 访谈提示词
103
+ part.text = state.phase2Prompt;
104
+ clearPhase2Flag();
105
+ return;
106
+ }
107
+ }
108
+ };
73
109
  const sessionCompactingImpl = async (_input, output) => {
74
110
  try {
75
111
  await ensureReady();
@@ -146,6 +182,7 @@ const toolDefinitionImpl = async (input, output) => {
146
182
  export function createCompactingHooks(config) {
147
183
  const hooks = {};
148
184
  hooks['experimental.chat.system.transform'] = safeCreateHook('experimental.chat.system.transform', () => systemTransformImpl, config);
185
+ hooks['experimental.chat.messages.transform'] = safeCreateHook('experimental.chat.messages.transform', () => messagesTransformImpl, config);
149
186
  hooks['experimental.session.compacting'] = safeCreateHook('experimental.session.compacting', () => sessionCompactingImpl, config);
150
187
  hooks['tool.definition'] = safeCreateHook('tool.definition', () => toolDefinitionImpl, config);
151
188
  return hooks;
@@ -1 +1 @@
1
- {"version":3,"file":"compacting.js","sourceRoot":"","sources":["../../src/hooks/compacting.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compacting.js","sourceRoot":"","sources":["../../src/hooks/compacting.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * opencode-serenity-plugin — server entry
3
3
  *
4
- * 职责:注册 8 个自定义工具 + 6 个 system hook,实现 serenity 认知基础设施的
4
+ * 职责:注册 9 个自定义工具 + 6 个 system hook,实现 serenity 认知基础设施的
5
5
  * plugin 层(MSM 框架、文件系统操作、会话管理、路径守卫、skill 注入等)。
6
6
  *
7
7
  * 设计文档见 docs/:
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAS,MAAM,qBAAqB,CAAC;;;;;AA0DzD,wBAGE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAS,MAAM,qBAAqB,CAAC;;;;;AA4DzD,wBAGE"}
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * opencode-serenity-plugin — server entry
3
3
  *
4
- * 职责:注册 8 个自定义工具 + 6 个 system hook,实现 serenity 认知基础设施的
4
+ * 职责:注册 9 个自定义工具 + 6 个 system hook,实现 serenity 认知基础设施的
5
5
  * plugin 层(MSM 框架、文件系统操作、会话管理、路径守卫、skill 注入等)。
6
6
  *
7
7
  * 设计文档见 docs/:
@@ -24,6 +24,7 @@ import { sessionTool } from './session/session-tool.js';
24
24
  import { cccStatusTool } from './ccc-status.js';
25
25
  import { eapTool } from './eap-tool.js';
26
26
  import { neatTool } from './neat-tool.js';
27
+ import { ccGitTool } from './git/cc-git-tool.js';
27
28
  import { createPermissionGuards } from './hooks/permission-guards.js';
28
29
  import { createCompactingHooks } from './hooks/compacting.js';
29
30
  import { createShellEnv } from './hooks/shell-env.js';
@@ -50,6 +51,7 @@ const plugin = async (input) => {
50
51
  cc_ck: cccStatusTool, // v0.3 D18: CCC 三原则状态检查
51
52
  eap: eapTool, // v0.3: EAP 认知质量框架 (渐进式披露)
52
53
  neat: neatTool, // v0.3: Neat 设计协作协议 (渐进式披露)
54
+ cc_git: ccGitTool, // v0.4: CCC git 管理工具 (status/commit/push/log)
53
55
  },
54
56
  ...createPermissionGuards(),
55
57
  ...createCompactingHooks(),
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EACL,WAAW,EACX,WAAW,EACX,YAAY,GAEb,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gCAAgC,EAAE,MAAM,kCAAkC,CAAC;AACpF,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAEpC,MAAM,MAAM,GAAW,KAAK,EAAE,KAAK,EAAE,EAAE;IACrC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE9F,+BAA+B;IAC/B,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAE9D,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;QACnB,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,sBAAsB,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QACzE,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,+CAA+C;IAC/C,8CAA8C;IAE9C,+DAA+D;IAC/D,MAAM,KAAK,GAAU;QACnB,IAAI,EAAE;YACJ,QAAQ,EAAE,WAAW;YACrB,QAAQ,EAAE,WAAW;YACrB,SAAS,EAAE,YAAY;YACvB,KAAK,EAAE,cAAc,EAAE,6CAA6C;YACpE,OAAO,EAAE,WAAW,EAAE,oBAAoB;YAC1C,KAAK,EAAE,aAAa,EAAE,wBAAwB;YAC9C,GAAG,EAAE,OAAO,EAAS,2BAA2B;YAChD,IAAI,EAAE,QAAQ,EAAO,4BAA4B;SAClD;QACD,GAAG,sBAAsB,EAAE;QAC3B,GAAG,qBAAqB,EAAE;QAC1B,GAAG,cAAc,EAAE;QACnB,KAAK,EAAE,gCAAgC,CAAC;YACtC,YAAY,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS;SACpC,CAAC;KACH,CAAC;IAEF,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,2CAA2C,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;IAChG,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,kBAAkB,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IAChF,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,eAAe;IACb,EAAE,EAAE,iCAAiC;IACrC,MAAM,EAAE,MAAM;CACf,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EACL,WAAW,EACX,WAAW,EACX,YAAY,GAEb,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gCAAgC,EAAE,MAAM,kCAAkC,CAAC;AACpF,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAEpC,MAAM,MAAM,GAAW,KAAK,EAAE,KAAK,EAAE,EAAE;IACrC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE9F,+BAA+B;IAC/B,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAE9D,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;QACnB,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,sBAAsB,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QACzE,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,+CAA+C;IAC/C,8CAA8C;IAE9C,+DAA+D;IAC/D,MAAM,KAAK,GAAU;QACnB,IAAI,EAAE;YACJ,QAAQ,EAAE,WAAW;YACrB,QAAQ,EAAE,WAAW;YACrB,SAAS,EAAE,YAAY;YACvB,KAAK,EAAE,cAAc,EAAE,6CAA6C;YACpE,OAAO,EAAE,WAAW,EAAE,oBAAoB;YAC1C,KAAK,EAAE,aAAa,EAAE,wBAAwB;YAC9C,GAAG,EAAE,OAAO,EAAS,2BAA2B;YAChD,IAAI,EAAE,QAAQ,EAAO,4BAA4B;YACjD,MAAM,EAAE,SAAS,EAAI,8CAA8C;SACpE;QACD,GAAG,sBAAsB,EAAE;QAC3B,GAAG,qBAAqB,EAAE;QAC1B,GAAG,cAAc,EAAE;QACnB,KAAK,EAAE,gCAAgC,CAAC;YACtC,YAAY,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS;SACpC,CAAC;KACH,CAAC;IAEF,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,2CAA2C,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;IAChG,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,kBAAkB,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IAChF,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,eAAe;IACb,EAAE,EAAE,iCAAiC;IACrC,MAAM,EAAE,MAAM;CACf,CAAC"}
@@ -1,28 +1,33 @@
1
1
  /**
2
2
  * init-wizard.ts — D1 Init 向导 Phase 1
3
3
  *
4
- * CLI 交互式创建认知容器 (CCC) 的目录骨架并复制标准技能模板。
4
+ * CLI 交互式创建认知容器 (CCC) 的目录骨架、git 初始化并复制标准技能模板。
5
+ *
6
+ * 设计文档:docs/ccc-init-flow-design.md(home-serenity 仓)
5
7
  *
6
8
  * 流程:
7
- * 1. 收集基本信息(prefix, description)
8
- * 2. 创建目录骨架(.serenity, .gitignore, AGENT_SESSIONS/, docs/)
9
- * 3. 复制 9 个标准技能模板到 .opencode/skills/
10
- * 4. 生成 opencode.json(注册 plugin)
11
- * 5. 写入 Phase 2 Agent prompt
12
- * 6. 输出完成信息
9
+ * 1. 交互问答 4 题(prefix / description / remote / scope
10
+ * 2. git init add → commit(Phase 1 写骨架前)
11
+ * 3. 创建目录骨架(.serenity, opencode.json, AGENT_SESSIONS/, docs/)
12
+ * 4. 复制 3 个标准技能模板到 .opencode/skills/
13
+ * 5. git remote add push(如果提供了 remote)
14
+ * 6. 写入 Phase 2 Agent prompt
15
+ * 7. 输出完成信息
13
16
  */
14
17
  export interface InitOptions {
15
18
  /** 目标路径 */
16
19
  targetPath: string;
17
- /** 实例前缀(如 home, tg, pg) */
20
+ /** 实例前缀(如 home, work) */
18
21
  prefix?: string;
19
- /** 实例名称(如 宁静号,用于根 skill 标题) */
20
- name?: string;
21
- /** 实例描述(一句话) */
22
+ /** 一句话描述 */
22
23
  description?: string;
24
+ /** Git SSH URL(如 git@github.com:user/work-serenity.git) */
25
+ remote?: string;
26
+ /** 规模:单人/小团队/多人/企业 */
27
+ scope?: string;
23
28
  /** Plugin 根路径(用于定位模板) */
24
29
  pluginRoot: string;
25
- /** 非交互模式 */
30
+ /** 非交互模式(必须提供 prefix + description + remote) */
26
31
  nonInteractive?: boolean;
27
32
  /** 强制覆盖已有文件 */
28
33
  force?: boolean;
@@ -30,10 +35,11 @@ export interface InitOptions {
30
35
  export interface InitResult {
31
36
  success: boolean;
32
37
  prefix: string;
33
- name: string;
38
+ cccName: string;
34
39
  message: string;
35
40
  createdDirs: string[];
36
41
  installedSkills: string[];
42
+ gitPushed: boolean;
37
43
  }
38
44
  export declare function initWizard(opts: InitOptions): Promise<InitResult>;
39
45
  //# sourceMappingURL=init-wizard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"init-wizard.d.ts","sourceRoot":"","sources":["../../src/init/init-wizard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAeH,MAAM,WAAW,WAAW;IAC1B,WAAW;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yBAAyB;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY;IACZ,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAsMD,wBAAsB,UAAU,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CA2HvE"}
1
+ {"version":3,"file":"init-wizard.d.ts","sourceRoot":"","sources":["../../src/init/init-wizard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAiBH,MAAM,WAAW,WAAW;IAC1B,WAAW;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,yBAAyB;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sBAAsB;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yBAAyB;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,SAAS,EAAE,OAAO,CAAC;CACpB;AAuSD,wBAAsB,UAAU,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAmKvE"}