@coralai/sps-cli 0.56.3 → 0.57.1

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 (59) hide show
  1. package/dist/console/routes/chat.d.ts +2 -0
  2. package/dist/console/routes/chat.d.ts.map +1 -1
  3. package/dist/console/routes/chat.js +54 -5
  4. package/dist/console/routes/chat.js.map +1 -1
  5. package/dist/console/routes/processes.d.ts.map +1 -1
  6. package/dist/console/routes/processes.js +12 -0
  7. package/dist/console/routes/processes.js.map +1 -1
  8. package/dist/console-assets/assets/{index-CnUBHNsN.css → index-BOpxRNe1.css} +1 -1
  9. package/dist/console-assets/assets/{index-CWkYVI5d.js → index-DtEIOcXC.js} +195 -190
  10. package/dist/console-assets/index.html +2 -2
  11. package/dist/core/claudeJsonl.d.ts +1 -0
  12. package/dist/core/claudeJsonl.d.ts.map +1 -1
  13. package/dist/core/claudeJsonl.js +23 -0
  14. package/dist/core/claudeJsonl.js.map +1 -1
  15. package/dist/core/pipelineSession.d.ts +15 -0
  16. package/dist/core/pipelineSession.d.ts.map +1 -0
  17. package/dist/core/pipelineSession.js +45 -0
  18. package/dist/core/pipelineSession.js.map +1 -0
  19. package/dist/core/reclaimConfig.d.ts +6 -0
  20. package/dist/core/reclaimConfig.d.ts.map +1 -0
  21. package/dist/core/reclaimConfig.js +33 -0
  22. package/dist/core/reclaimConfig.js.map +1 -0
  23. package/dist/daemon/sessionDaemon.d.ts +10 -0
  24. package/dist/daemon/sessionDaemon.d.ts.map +1 -1
  25. package/dist/daemon/sessionDaemon.js +39 -15
  26. package/dist/daemon/sessionDaemon.js.map +1 -1
  27. package/dist/engines/StageEngine.d.ts.map +1 -1
  28. package/dist/engines/StageEngine.js +15 -0
  29. package/dist/engines/StageEngine.js.map +1 -1
  30. package/dist/manager/worker-manager-impl.d.ts.map +1 -1
  31. package/dist/manager/worker-manager-impl.js +7 -3
  32. package/dist/manager/worker-manager-impl.js.map +1 -1
  33. package/dist/manager/worker-manager.d.ts +5 -0
  34. package/dist/manager/worker-manager.d.ts.map +1 -1
  35. package/dist/providers/ACPWorkerRuntime.d.ts +1 -0
  36. package/dist/providers/ACPWorkerRuntime.d.ts.map +1 -1
  37. package/dist/providers/ACPWorkerRuntime.js +4 -1
  38. package/dist/providers/ACPWorkerRuntime.js.map +1 -1
  39. package/dist/services/ChatService.d.ts +6 -0
  40. package/dist/services/ChatService.d.ts.map +1 -1
  41. package/dist/services/ChatService.js +57 -2
  42. package/dist/services/ChatService.js.map +1 -1
  43. package/dist/shared/runtimePaths.d.ts +5 -1
  44. package/dist/shared/runtimePaths.d.ts.map +1 -1
  45. package/dist/shared/runtimePaths.js +6 -2
  46. package/dist/shared/runtimePaths.js.map +1 -1
  47. package/package.json +3 -3
  48. package/project-template/.claude/CLAUDE.md +66 -0
  49. package/project-template/.claude/hooks/start.sh +44 -0
  50. package/project-template/.claude/hooks/stop.sh +54 -0
  51. package/project-template/.claude/rules/.gitkeep +0 -0
  52. package/project-template/.claude/settings.json +32 -0
  53. package/project-template/.claude/settings.local.json.template +3 -0
  54. package/project-template/.claude/skills/.gitkeep +0 -0
  55. package/project-template/README.md +10 -0
  56. package/project-template/batch_scheduler.sh +8 -0
  57. package/project-template/conf.template +61 -0
  58. package/project-template/deploy.sh +3 -0
  59. package/project-template/pm_meta/.gitkeep +0 -0
@@ -32,7 +32,10 @@ export class ChatService {
32
32
  if (this.deps.fs.exists(dir)) {
33
33
  let files;
34
34
  try {
35
- files = this.deps.fs.readDir(dir).filter((e) => e.isFile && e.name.endsWith('.json'));
35
+ // 只认会话记录文件 <uuid>.json;排除 <uuid>.openai-session.json(RuntimeSession 历史数组,非会话对象)
36
+ files = this.deps.fs
37
+ .readDir(dir)
38
+ .filter((e) => e.isFile && e.name.endsWith('.json') && !e.name.endsWith('.openai-session.json'));
36
39
  }
37
40
  catch (cause) {
38
41
  return err(domainError('internal', 'CHAT_LIST_FAIL', 'Failed to read session list', { cause }));
@@ -42,6 +45,8 @@ export class ChatService {
42
45
  try {
43
46
  const raw = this.deps.fs.readFile(path);
44
47
  const session = JSON.parse(raw);
48
+ if (!session.id)
49
+ continue; // 缺 id 的残缺记录不入列表(否则前端无法加载/删除,且 {count} 插值失败)
45
50
  summaries.push({ ...this.summarize(session), source: 'console', readonly: false });
46
51
  consoleIds.add(session.id);
47
52
  }
@@ -133,7 +138,7 @@ export class ChatService {
133
138
  if (this.deps.fs.exists(path)) {
134
139
  try {
135
140
  const raw = this.deps.fs.readFile(path);
136
- const session = JSON.parse(raw);
141
+ const session = this.enrichToolInputs(JSON.parse(raw));
137
142
  // v0.57:lastTurn 缺失(旧文件)时从末条 assistant/error 消息推导(按已结束),供轮询兜底。
138
143
  if (!session.lastTurn) {
139
144
  const last = [...session.messages].reverse().find((m) => m.role === 'assistant' || m.role === 'error');
@@ -209,6 +214,16 @@ export class ChatService {
209
214
  return err(domainError('internal', 'CHAT_DELETE_FAIL', 'Failed to delete session', { cause }));
210
215
  }
211
216
  }
217
+ // 一并清掉 openai 后端历史(<id>.openai-session.json),否则孤儿文件累积
218
+ const openaiPath = resolve(chatSessionsDir(), `${id}.openai-session.json`);
219
+ if (this.deps.fs.exists(openaiPath)) {
220
+ try {
221
+ this.deps.fs.unlink(openaiPath);
222
+ }
223
+ catch {
224
+ /* best effort */
225
+ }
226
+ }
212
227
  // best effort 停止 daemon worker
213
228
  if (this.deps.executor) {
214
229
  try {
@@ -264,6 +279,46 @@ export class ChatService {
264
279
  sessionPath(id) {
265
280
  return resolve(chatSessionsDir(), `${id}.json`);
266
281
  }
282
+ /**
283
+ * 回填工具参数:ACP 实时事件不带 rawInput(恒空),工具的真实参数(文件名/命令/skill)
284
+ * 只在 claude jsonl transcript 里。serve console 会话时按 tool id(= ACP toolCallId = jsonl
285
+ * tool_use id,已验证一致)从 jsonl 补上 input,供 UI 展示详情。CLI 会话本就直接读 jsonl,无需回填。
286
+ */
287
+ enrichToolInputs(session) {
288
+ const cwd = session.cwd;
289
+ const csid = session.claudeSessionId;
290
+ if (!cwd || !csid || !jsonlExists(cwd, csid))
291
+ return session;
292
+ const inputById = new Map();
293
+ try {
294
+ for (const m of parseJsonlMessages(cwd, csid)) {
295
+ for (const b of (m.blocks ?? [])) {
296
+ if (b.type === 'tool_use' && typeof b.id === 'string' && b.input != null)
297
+ inputById.set(b.id, b.input);
298
+ }
299
+ }
300
+ }
301
+ catch {
302
+ return session;
303
+ }
304
+ if (inputById.size === 0)
305
+ return session;
306
+ const isEmpty = (v) => v == null || (typeof v === 'object' && !Array.isArray(v) && Object.keys(v).length === 0);
307
+ let changed = false;
308
+ const messages = session.messages.map((m) => {
309
+ if (!m.blocks)
310
+ return m;
311
+ const blocks = m.blocks.map((b) => {
312
+ if (b.type === 'tool_use' && typeof b.id === 'string' && isEmpty(b.input) && inputById.has(b.id)) {
313
+ changed = true;
314
+ return { ...b, input: inputById.get(b.id) };
315
+ }
316
+ return b;
317
+ });
318
+ return { ...m, blocks };
319
+ });
320
+ return changed ? { ...session, messages } : session;
321
+ }
267
322
  summarize(s) {
268
323
  return {
269
324
  id: s.id,
@@ -1 +1 @@
1
- {"version":3,"file":"ChatService.js","sourceRoot":"","sources":["../../src/services/ChatService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChatService.js","sourceRoot":"","sources":["../../src/services/ChatService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,cAAc,GACf,MAAM,wBAAwB,CAAC;AAKhC,OAAO,EAAoB,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAsGzE,MAAM,OAAO,WAAW;IACO;IAA7B,YAA6B,IAAqB;QAArB,SAAI,GAAJ,IAAI,CAAiB;IAAG,CAAC;IAEtD,KAAK,CAAC,IAAI;QACR,MAAM,SAAS,GAAyB,EAAE,CAAC;QAE3C,oDAAoD;QACpD,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;QACrC,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,IAAI,KAAK,CAAC;YACV,IAAI,CAAC;gBACH,gFAAgF;gBAChF,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE;qBACjB,OAAO,CAAC,GAAG,CAAC;qBACZ,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC;YACrG,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,GAAG,CAAC,WAAW,CAAC,UAAU,EAAE,gBAAgB,EAAE,6BAA6B,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YAClG,CAAC;YACD,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;gBAC1B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBACtC,IAAI,CAAC;oBACH,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBACxC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,CAAC;oBAC/C,IAAI,CAAC,OAAO,CAAC,EAAE;wBAAE,SAAS,CAAC,6CAA6C;oBACxE,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;oBACnF,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAC7B,CAAC;gBAAC,MAAM,CAAC;oBACP,iBAAiB;gBACnB,CAAC;YACH,CAAC;QACH,CAAC;QAED,mDAAmD;QACnD,0DAA0D;QAC1D,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;YAC5C,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC5C,IAAI,SAAS,IAAI,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC;gBAAE,SAAS;YACrD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC;gBAAE,SAAS;YACnD,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;YACvD,SAAS,CAAC,IAAI,CAAC;gBACb,EAAE,EAAE,GAAG,CAAC,IAAI;gBACZ,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,SAAS;gBACvE,KAAK,EAAE,OAAO,CAAC,aAAa,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC;gBAC5D,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,YAAY,EAAE,GAAG,CAAC,YAAY;gBAC9B,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC;QACL,CAAC;QAED,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACtB,MAAM,EAAE,GAAG,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,SAAS,CAAC;YAC1C,MAAM,EAAE,GAAG,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,SAAS,CAAC;YAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QACH,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;IAED,sDAAsD;IAC9C,kBAAkB;QACxB,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,EAAE,EAAE,YAAY,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;YAAE,OAAO,EAAE,CAAC;QAC1C,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACxC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAoD,CAAC;YAClF,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;QAC9C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,QAA4B,EAAE;QACzC,oCAAoC;QACpC,IAAI,GAAG,GAAkB,IAAI,CAAC;QAC9B,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACjD,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACjC,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtD,IAAI,CAAC,UAAU,CAAC,EAAE;gBAAE,OAAO,UAAU,CAAC;YACtC,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC;QACzB,CAAC;QAED,MAAM,EAAE,GAAG,UAAU,EAAE,CAAC;QACxB,MAAM,OAAO,GAAgB;YAC3B,EAAE;YACF,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YACnC,aAAa,EAAE,IAAI;YACnB,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,UAAU;YACxC,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI;YAC9B,YAAY,EAAE,CAAC;YACf,QAAQ,EAAE,EAAE;YACZ,GAAG;YACH,SAAS,EAAE,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;YAC7D,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5E,CAAC;QACF,IAAI,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,GAAG,CAAC,WAAW,CAAC,UAAU,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QACjG,CAAC;QACD,OAAO,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAAE,OAAO,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;QAEnD,gDAAgD;QAChD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAClC,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACxC,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,CAAC,CAAC;gBACtE,+DAA+D;gBAC/D,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;oBACtB,MAAM,IAAI,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;oBACvG,IAAI,IAAI,EAAE,CAAC;wBACT,OAAO,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;oBAC9H,CAAC;gBACH,CAAC;gBACD,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC;YACrB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,GAAG,CAAC,WAAW,CAAC,UAAU,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YAC7F,CAAC;QACH,CAAC;QAED,oDAAoD;QACpD,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;YACjE,IAAI,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC/C,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC5D,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC7E,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC9E,OAAO,EAAE,CAAC;oBACR,EAAE;oBACF,SAAS,EAAE,GAAG,CAAC,SAAS;oBACxB,aAAa,EAAE,MAAM,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,SAAS;oBACxD,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,kBAAkB,CAAC,EAAE,CAAC;oBACxE,OAAO,EAAE,IAAI;oBACb,YAAY,EAAE,QAAQ,CAAC,MAAM;oBAC7B,QAAQ;oBACR,GAAG,EAAE,GAAG,CAAC,GAAG;oBACZ,MAAM,EAAE,KAAK;oBACb,QAAQ,EAAE,IAAI;iBACf,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,GAAG,CAAC,WAAW,CAAC,WAAW,EAAE,wBAAwB,EAAE,mBAAmB,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,+CAA+C;IAC/C,KAAK,CAAC,WAAW,CACf,EAAU,EACV,KAAc;QAEd,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,OAAO,QAAQ,CAAC;QAClC,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC/B,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QACzF,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAAE,OAAO,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;QAEnD,2EAA2E;QAC3E,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACvB,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;gBAC7C,CAAC;gBAAC,MAAM,CAAC;oBACP,8BAA8B;gBAChC,CAAC;YACH,CAAC;YACD,IAAI,CAAC;gBACH,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;YAC/B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,GAAG,CAAC,WAAW,CAAC,UAAU,EAAE,kBAAkB,EAAE,4CAA4C,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YACnH,CAAC;YACD,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;QACvB,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAClC,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,GAAG,CAAC,WAAW,CAAC,UAAU,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YACjG,CAAC;QACH,CAAC;QACD,sDAAsD;QACtD,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,EAAE,EAAE,GAAG,EAAE,sBAAsB,CAAC,CAAC;QAC3E,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC;gBACH,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAClC,CAAC;YAAC,MAAM,CAAC;gBACP,iBAAiB;YACnB,CAAC;QACH,CAAC;QACD,+BAA+B;QAC/B,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACvB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAC3C,CAAC;YAAC,MAAM,CAAC;gBACP,WAAW;YACb,CAAC;QACH,CAAC;QACD,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;IAED;;;OAGG;IACK,mBAAmB,CAAC,IAAY;QACtC,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,EAAE,EAAE,YAAY,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;YAAE,OAAO;QACvC,IAAI,MAAsF,CAAC;QAC3F,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAkB,CAAC;QACpE,CAAC;QAAC,MAAM,CAAC;YACP,qCAAqC;YACrC,OAAO;QACT,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO;QACvD,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAC5C,MAAM,CAAC,SAAS,GAAG,qBAAqB,CAAC;QACzC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,EAAU;QACxB,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAAE,OAAO,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;QACnD,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9B,OAAO,GAAG,CACR,WAAW,CAAC,YAAY,EAAE,oBAAoB,EAAE,uEAAuE,CAAC,CACzH,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACxB,OAAO,GAAG,CACR,WAAW,CAAC,UAAU,EAAE,kBAAkB,EAAE,2BAA2B,CAAC,CACzE,CAAC;QACJ,CAAC;QACD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,GAAG,CACR,WAAW,CAAC,UAAU,EAAE,kBAAkB,EAAE,6BAA6B,EAAE,EAAE,KAAK,EAAE,CAAC,CACtF,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;IAED,qEAAqE;IAE7D,WAAW,CAAC,EAAU;QAC5B,OAAO,OAAO,CAAC,eAAe,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAED;;;;OAIG;IACK,gBAAgB,CAAC,OAAoB;QAC3C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACxB,MAAM,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC;QACrC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC;YAAE,OAAO,OAAO,CAAC;QAC7D,MAAM,SAAS,GAAG,IAAI,GAAG,EAAmB,CAAC;QAC7C,IAAI,CAAC;YACH,KAAK,MAAM,CAAC,IAAI,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;gBAC9C,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAmC,EAAE,CAAC;oBACnE,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,IAAI,IAAI;wBAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;gBACzG,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,OAAO,CAAC;QACzC,MAAM,OAAO,GAAG,CAAC,CAAU,EAAE,EAAE,CAC7B,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAW,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;QACrG,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC1C,IAAI,CAAC,CAAC,CAAC,MAAM;gBAAE,OAAO,CAAC,CAAC;YACxB,MAAM,MAAM,GAAI,CAAC,CAAC,MAAyC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACpE,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;oBACjG,OAAO,GAAG,IAAI,CAAC;oBACf,OAAO,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC9C,CAAC;gBACD,OAAO,CAAC,CAAC;YACX,CAAC,CAAC,CAAC;YACH,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;IACtD,CAAC;IAEO,SAAS,CAAC,CAAc;QAC9B,OAAO;YACL,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,aAAa,EAAE,CAAC,CAAC,aAAa;YAC9B,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,YAAY,EAAE,CAAC,CAAC,YAAY;YAC5B,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,IAAI;SACnB,CAAC;IACJ,CAAC;CACF;AAED,SAAS,gBAAgB,CAAC,EAAU;IAClC,OAAO,OAAO,EAAE,KAAK,QAAQ,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED,gFAAgF;AAChF,SAAS,eAAe,CAAC,IAAY;IACnC,MAAM,CAAC,GAAG,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACzB,CAAC;AAED,yDAAyD;AACzD,SAAS,kBAAkB,CAAC,IAAY;IACtC,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,WAAW,CAAC,YAAY,EAAE,oBAAoB,EAAE,oBAAoB,CAAC,CAAC;AAC/E,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CAClB,GAAW,EACX,EAAc;IAEd,8EAA8E;IAC9E,6DAA6D;IAC7D,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACzD,OAAO,GAAG,CACR,WAAW,CAAC,YAAY,EAAE,uBAAuB,EAAE,4CAA4C,EAAE;YAC/F,OAAO,EAAE,EAAE,GAAG,EAAE;SACjB,CAAC,CACH,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO,GAAG,CACR,WAAW,CAAC,YAAY,EAAE,oBAAoB,EAAE,qCAAqC,GAAG,EAAE,EAAE;YAC1F,OAAO,EAAE,EAAE,GAAG,EAAE;SACjB,CAAC,CACH,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;AACjB,CAAC"}
@@ -18,7 +18,11 @@ export declare function chatAttachmentsDir(): string;
18
18
  export declare function chatAttachmentsDirFor(sessionId: string): string;
19
19
  /** $HOME/.claude/projects —— Claude CLI 的会话历史根目录 */
20
20
  export declare function claudeProjectsDir(): string;
21
- /** 把 cwd 编码为 Claude 用的目录名('/' → '-',盘符同样处理)*/
21
+ /**
22
+ * 把 cwd 编码为 Claude 用的目录名。Claude Code 把所有非字母数字字符(含 '/' '.' ':' 等)都换成 '-'
23
+ * (如 '/.coral' → '--coral')。此前只换 '/\\:'、漏了 '.',导致 .coral 下的项目算错路径、
24
+ * jsonlExists 恒 false —— durable resume 与工具详情回填对真实游戏 repo 全部失效。
25
+ */
22
26
  export declare function encodeClaudeProjectDir(cwd: string): string;
23
27
  /** $HOME/.claude/projects/<encoded-cwd> —— 单个 cwd 的 jsonl 目录 */
24
28
  export declare function claudeProjectDir(cwd: string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"runtimePaths.d.ts","sourceRoot":"","sources":["../../src/shared/runtimePaths.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtimePaths.d.ts","sourceRoot":"","sources":["../../src/shared/runtimePaths.ts"],"names":[],"mappings":"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"}
@@ -83,9 +83,13 @@ export function chatAttachmentsDirFor(sessionId) {
83
83
  export function claudeProjectsDir() {
84
84
  return resolve(home(), '.claude', 'projects');
85
85
  }
86
- /** 把 cwd 编码为 Claude 用的目录名('/' → '-',盘符同样处理)*/
86
+ /**
87
+ * 把 cwd 编码为 Claude 用的目录名。Claude Code 把所有非字母数字字符(含 '/' '.' ':' 等)都换成 '-'
88
+ * (如 '/.coral' → '--coral')。此前只换 '/\\:'、漏了 '.',导致 .coral 下的项目算错路径、
89
+ * jsonlExists 恒 false —— durable resume 与工具详情回填对真实游戏 repo 全部失效。
90
+ */
87
91
  export function encodeClaudeProjectDir(cwd) {
88
- return cwd.replace(/[/\\:]/g, '-');
92
+ return cwd.replace(/[^a-zA-Z0-9]/g, '-');
89
93
  }
90
94
  /** $HOME/.claude/projects/<encoded-cwd> —— 单个 cwd 的 jsonl 目录 */
91
95
  export function claudeProjectDir(cwd) {
@@ -1 +1 @@
1
- {"version":3,"file":"runtimePaths.js","sourceRoot":"","sources":["../../src/shared/runtimePaths.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtimePaths.js","sourceRoot":"","sources":["../../src/shared/runtimePaths.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coralai/sps-cli",
3
- "version": "0.56.3",
3
+ "version": "0.57.1",
4
4
  "description": "SPS CLI — AI-driven development pipeline orchestrator",
5
5
  "type": "module",
6
6
  "main": "dist/main.js",
@@ -9,7 +9,7 @@
9
9
  },
10
10
  "scripts": {
11
11
  "build": "npm run build:cli && npm run build:console",
12
- "build:cli": "tsc",
12
+ "build:cli": "rm -rf dist && tsc",
13
13
  "build:console": "cd console && npm install --no-audit --no-fund --silent && npm run build && cd .. && rm -rf ./dist/console-assets && cp -r ./console/dist ./dist/console-assets",
14
14
  "dev": "tsx src/main.ts",
15
15
  "typecheck": "tsc --noEmit",
@@ -52,7 +52,7 @@
52
52
  "dependencies": {
53
53
  "@agentclientprotocol/sdk": "^0.21.0",
54
54
  "@anthropic-ai/claude-agent-sdk": "^0.2.132",
55
- "@coralai/claude-code-agent": "^0.2.3",
55
+ "@coralai/claude-code-agent": "^0.2.4",
56
56
  "@hono/node-server": "^2.0.0",
57
57
  "@openai/agents": "^0.11.6",
58
58
  "chokidar": "^5.0.0",
@@ -0,0 +1,66 @@
1
+ # Project Rules (Claude Code Worker)
2
+
3
+ <!--
4
+ This file is auto-generated by `sps project init` / `sps doctor --fix`.
5
+ Edit it to add project-specific rules. SPS will not overwrite it once it exists.
6
+ -->
7
+
8
+ ## Scope
9
+
10
+ - Work only in the current project directory.
11
+ - Do NOT read or modify files outside this directory.
12
+ - Do NOT explore `~/.coral/projects/...` or other system paths.
13
+
14
+ ## SPS Pipeline Context
15
+
16
+ This project is driven by SPS (Smart Pipeline System). Each card is a task.
17
+ When you are launched as a worker, two env vars identify your stable context:
18
+
19
+ - `$SPS_PROJECT` — project name (stable across card reuse)
20
+ - `$SPS_WORKER_SLOT` — worker slot name (stable across card reuse)
21
+
22
+ Per-card information (card id, stage name, title) is **not** in env. POSIX
23
+ freezes env at spawn, so any per-card value would go stale once the claude
24
+ process is reused for the next card. If you need the current card info,
25
+ read the marker file or use the `sps` CLI:
26
+
27
+ - Marker file: `~/.coral/projects/$SPS_PROJECT/runtime/worker-$SPS_WORKER_SLOT-current.json`
28
+ - CLI: `sps card dashboard $SPS_PROJECT` (or the command your task prompt already passed to you)
29
+
30
+ ## Card lifecycle labels (for reference — all managed automatically)
31
+
32
+ Each card moves through these labels during its pipeline run:
33
+
34
+ - `AI-PIPELINE` — added at `sps card add`; the pipeline admission mark
35
+ - `CLAIMED` — added when SPS claims a worker slot for this card
36
+ - `STARTED-<stage>` — added automatically on each prompt submit via the
37
+ **UserPromptSubmit** hook. This is the "ACK signal" that proves Claude
38
+ received the prompt. If this label doesn't appear within
39
+ `WORKER_ACK_TIMEOUT_S` seconds after dispatch, SPS's MonitorEngine flags
40
+ `ACK-TIMEOUT` and StageEngine kills the worker + retries.
41
+ - `COMPLETED-<stage>` — added on turn end via the **Stop hook**. Tells SPS
42
+ to advance the card to the next stage (or Done).
43
+
44
+ You do NOT need to manually update card state, move the card between
45
+ columns, or commit on behalf of the pipeline. The hooks do it all.
46
+
47
+ **Honesty note**: If you declare "done" without actually implementing the
48
+ work, the pipeline will still advance (the Stop hook fires regardless). The
49
+ user relies on your honesty here.
50
+
51
+ ## Memory
52
+
53
+ - Claude's **auto memory** is enabled and stored under
54
+ `~/.coral/projects/$SPS_PROJECT/memory/`. You write to `MEMORY.md` there
55
+ to persist knowledge across sessions.
56
+ - Use `sps memory add $SPS_PROJECT --type ...` to write structured SPS memories
57
+ (conventions, decisions, lessons) for the human to curate.
58
+
59
+ ## Git (if the project uses git)
60
+
61
+ - Claude handles all git operations itself (commit, push, etc.).
62
+ - SPS does NOT intervene in git workflows or conflict resolution.
63
+
64
+ ## Project-specific rules
65
+
66
+ <!-- Add your own conventions, architecture notes, and constraints below. -->
@@ -0,0 +1,44 @@
1
+ #!/bin/bash
2
+ # SPS Pipeline Worker — UserPromptSubmit hook (v0.42.0+)
3
+ #
4
+ # Triggered synchronously before Claude processes each prompt. Used by SPS
5
+ # to label the card with STARTED-<stage> — this is the "ACK signal" that
6
+ # proves Claude received the prompt. Also injects skill hints based on the
7
+ # card's `skills` field (or legacy skill:* labels).
8
+ #
9
+ # Phase 2 is user-customizable: add audit logging, request rate limiting,
10
+ # prompt enrichment, etc. without touching Phase 1.
11
+ #
12
+ # Env vars (stable across claude process reuse):
13
+ # SPS_PROJECT Project name
14
+ # SPS_WORKER_SLOT Worker slot name
15
+ #
16
+ # Per-card info (card id, stage, title) is NOT in env — POSIX env freezes at
17
+ # spawn. Hook scripts must read the marker file instead. Phase 1 does this
18
+ # automatically via `sps hook user-prompt-submit`.
19
+
20
+ set -e
21
+
22
+ # ─── Phase 1: SPS official action (do NOT remove) ────────────────────
23
+ # Reads marker file → addLabel STARTED-<stage> + emit skill hints.
24
+ sps hook user-prompt-submit
25
+
26
+ # ─── Phase 2: User-customizable actions (edit as needed) ────────────
27
+
28
+ # Example: audit log of every prompt submission.
29
+ # if [ -n "$SPS_PROJECT" ] && [ -n "$SPS_WORKER_SLOT" ]; then
30
+ # echo "$(date): prompt submitted to $SPS_PROJECT/$SPS_WORKER_SLOT" \
31
+ # >> "$CLAUDE_PROJECT_DIR/.sps/user-prompts.log"
32
+ # fi
33
+
34
+ # Example: rate limiting (block if too many prompts in a window).
35
+ # count=$(find "$CLAUDE_PROJECT_DIR/.sps" -name 'last-prompt-*' -mmin -1 | wc -l)
36
+ # if [ "$count" -gt 30 ]; then
37
+ # echo '{"decision":"block","reason":"rate limit exceeded (>30 prompts/min)"}'
38
+ # exit 0
39
+ # fi
40
+
41
+ # Example: prompt-to-Slack mirror for team visibility.
42
+ # curl -sfX POST "$SLACK_WEBHOOK" -d "{\"text\":\"[$SPS_PROJECT] new prompt\"}"
43
+
44
+ exit 0
@@ -0,0 +1,54 @@
1
+ #!/bin/bash
2
+ # SPS Pipeline Worker — Stop hook
3
+ #
4
+ # Triggered when Claude finishes its current turn. The pipeline depends on
5
+ # Phase 1 to advance card state. Phase 2+ is user-customizable.
6
+ #
7
+ # Env vars (set by SPS worker at spawn time, frozen for the process lifetime):
8
+ # SPS_PROJECT Project name (stable across card reuse)
9
+ # SPS_WORKER_SLOT Worker slot name (stable across card reuse)
10
+ #
11
+ # These two env vars form the index to locate the per-slot marker file:
12
+ # ~/.coral/projects/$SPS_PROJECT/runtime/worker-$SPS_WORKER_SLOT-current.json
13
+ #
14
+ # Per-card info (card id, stage name, card title) is intentionally NOT in env.
15
+ # POSIX freezes env at spawn; when the claude process is reused for the next
16
+ # card, any per-card env would go stale. Always read the marker file (or use
17
+ # `sps` CLI) to get current card information.
18
+ #
19
+ # Claude-native env also available:
20
+ # CLAUDE_PROJECT_DIR, CLAUDE_SESSION_ID
21
+
22
+ set -e
23
+
24
+ # ─── Phase 1: SPS official action (do NOT remove) ────────────────────
25
+ # Mark the card complete so pipeline can advance state.
26
+ # We call mark-complete WITHOUT a seq — the command reads the per-slot
27
+ # current-card marker file (written by the worker manager on each dispatch)
28
+ # to get the authoritative current card. This is the only way to be correct
29
+ # when the same claude process handles multiple cards in sequence.
30
+ if [ -n "$SPS_PROJECT" ] && [ -n "$SPS_WORKER_SLOT" ]; then
31
+ # 绝不让 mark-complete 失败阻塞 stop:Stop hook 非零退出会被 claude 当成"别停、继续",
32
+ # 导致 worker 被无限重戳("Acknowledged." 死循环)。失败仅记 stderr(MonitorEngine 有超时兜底)。
33
+ sps card mark-complete "$SPS_PROJECT" || echo "[stop.sh] mark-complete non-fatal failure — allowing stop" >&2
34
+ fi
35
+
36
+ # ─── Phase 2: User-customizable actions (edit as needed) ────────────
37
+
38
+ # Example: record the session transcript location for later audit.
39
+ # if [ -n "$CLAUDE_SESSION_ID" ] && [ -n "$SPS_CARD_ID" ]; then
40
+ # echo "$CLAUDE_SESSION_ID" >> "$CLAUDE_PROJECT_DIR/.sps/session-log.txt"
41
+ # fi
42
+
43
+ # Example: third-party knowledge base capture.
44
+ # if command -v your-kb-cli &>/dev/null; then
45
+ # your-kb-cli capture --project "$SPS_PROJECT" --session "$CLAUDE_SESSION_ID"
46
+ # fi
47
+
48
+ # Example: notify on completion.
49
+ # sps notify matrix "[$SPS_PROJECT] seq $SPS_CARD_ID ($SPS_STAGE) done"
50
+
51
+ # Example: post-task CI trigger.
52
+ # curl -sfX POST "$CI_WEBHOOK" -d "{\"project\":\"$SPS_PROJECT\",\"card\":\"$SPS_CARD_ID\"}"
53
+
54
+ exit 0
File without changes
@@ -0,0 +1,32 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/claude-code-settings.json",
3
+ "hooks": {
4
+ "Stop": [
5
+ {
6
+ "hooks": [
7
+ {
8
+ "type": "command",
9
+ "command": "bash \"$CLAUDE_PROJECT_DIR\"/.claude/hooks/stop.sh"
10
+ }
11
+ ]
12
+ }
13
+ ],
14
+ "UserPromptSubmit": [
15
+ {
16
+ "hooks": [
17
+ {
18
+ "type": "command",
19
+ "command": "bash \"$CLAUDE_PROJECT_DIR\"/.claude/hooks/start.sh"
20
+ }
21
+ ]
22
+ }
23
+ ]
24
+ },
25
+ "attribution": {
26
+ "commit": "",
27
+ "pr": ""
28
+ },
29
+ "companyAnnouncements": [
30
+ "🔧 SPS Pipeline Worker — completion is declared via Stop hook \u2192 COMPLETED-<stage> label"
31
+ ]
32
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "autoMemoryDirectory": "~/.coral/projects/__PROJECT__/memory"
3
+ }
File without changes
@@ -0,0 +1,10 @@
1
+ # Project Template
2
+
3
+ This folder is copied into `~/.coral/projects/<project-name>/` for each new pipeline-managed project.
4
+
5
+ Contents:
6
+ - `conf` — project-specific configuration
7
+ - `deploy.sh` — optional project-local deploy entrypoint
8
+ - `batch_scheduler.sh` — project-local Planning → Backlog scheduler
9
+ - `logs/` — runtime logs
10
+ - `pm_meta/` — local PM metadata store (used especially for Plane)
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ # batch_scheduler.sh — project-local cron entry point
3
+ # Delegates to the SPS CLI tick command.
4
+ set -euo pipefail
5
+
6
+ PROJECT_NAME="$(basename "$(cd "$(dirname "$0")" && pwd)")"
7
+
8
+ exec sps tick "$PROJECT_NAME" "$@"
@@ -0,0 +1,61 @@
1
+ # ── 项目基础信息 ─────────────────────────────────────────────────
2
+ export PROJECT_NAME="__PROJECT_NAME__"
3
+
4
+ # ── 路径配置(可选,不设置则使用默认值)───────────────────────────
5
+ # 业务代码仓库目录(默认: ~/projects/<project>)
6
+ # export PROJECT_DIR="$HOME/projects/__PROJECT_NAME__"
7
+ # Worker worktree 根目录(默认: ~/.coral/worktrees/)
8
+ # export WORKTREE_DIR="$HOME/.coral/worktrees"
9
+
10
+ # ── GitLab(项目特有)──────────────────────────────────────────
11
+ # GITLAB_URL / GITLAB_TOKEN 从全局 ~/.coral/env 继承,此处不重复
12
+ export GITLAB_PROJECT="__GITLAB_PROJECT__"
13
+ # GITLAB_PROJECT_ID 可选 — 留空则通过 GITLAB_PROJECT 路径自动查询
14
+ # export GITLAB_PROJECT_ID=""
15
+ export GITLAB_MERGE_BRANCH="develop"
16
+
17
+ # ── PM Backend ───────────────────────────────────────────────────
18
+ export PM_TOOL="plane"
19
+
20
+ # ── Trello(PM_TOOL=trello 时填写)───────────────────────────────
21
+ # TRELLO_API_KEY / TRELLO_TOKEN 从全局 ~/.coral/env 继承
22
+ # export TRELLO_BOARD_ID=""
23
+ # export TRELLO_LIST_PLANNING=""
24
+ # export TRELLO_LIST_BACKLOG=""
25
+ # export TRELLO_LIST_TODO=""
26
+ # export TRELLO_LIST_INPROGRESS=""
27
+ # export TRELLO_LIST_QA=""
28
+ # export TRELLO_LIST_DONE=""
29
+ # export TRELLO_ACCOUNT=""
30
+
31
+ # ── Plane(PM_TOOL=plane 时填写)────────────────────────────────
32
+ # PLANE_URL / PLANE_API_KEY / PLANE_WORKSPACE_SLUG 从全局 ~/.coral/env 继承
33
+ export PLANE_PROJECT_ID="__PLANE_PROJECT_ID__"
34
+ export PLANE_STATE_PLANNING="__PLANE_STATE_PLANNING__"
35
+ export PLANE_STATE_BACKLOG="__PLANE_STATE_BACKLOG__"
36
+ export PLANE_STATE_TODO="__PLANE_STATE_TODO__"
37
+ export PLANE_STATE_INPROGRESS="__PLANE_STATE_INPROGRESS__"
38
+ export PLANE_STATE_QA="__PLANE_STATE_QA__"
39
+ export PLANE_STATE_DONE="__PLANE_STATE_DONE__"
40
+
41
+ # ── Pipeline ─────────────────────────────────────────────────────
42
+ export PIPELINE_LABEL="AI-PIPELINE"
43
+ export MR_MODE="none"
44
+
45
+ # ── Worker / Agent ───────────────────────────────────────────────
46
+ # claude is the only supported CLI; no selector exposed.
47
+ export MAX_CONCURRENT_WORKERS=3
48
+ # export MAX_ACTIONS_PER_TICK=1
49
+ # export WORKER_RESTART_LIMIT=2
50
+ # export DEFAULT_WORKER_SKILLS="senior"
51
+
52
+ # ── 超时与策略(可选,以下为默认值)──────────────────────────────
53
+ # export INPROGRESS_TIMEOUT_HOURS=8
54
+ # export MONITOR_AUTO_QA=false
55
+ # export CONFLICT_DEFAULT=serial
56
+ # export TICK_LOCK_TIMEOUT_MINUTES=30
57
+
58
+ # ── 通知(项目特有 — 不同项目可发不同房间)──────────────────────
59
+ # MATRIX_HOMESERVER / MATRIX_ACCESS_TOKEN 从全局 ~/.coral/env 继承
60
+ # 如果项目需要发到特定房间,设置 MATRIX_ROOM_ID:
61
+ # export MATRIX_ROOM_ID=""
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ echo "Deployment not configured for ${PROJECT_NAME:-unknown-project}"
File without changes