@coralai/sps-cli 0.10.2 → 0.11.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 (62) hide show
  1. package/README.md +63 -23
  2. package/dist/commands/workerDashboard.d.ts.map +1 -1
  3. package/dist/commands/workerDashboard.js +39 -11
  4. package/dist/commands/workerDashboard.js.map +1 -1
  5. package/dist/core/config.d.ts +1 -0
  6. package/dist/core/config.d.ts.map +1 -1
  7. package/dist/core/config.js +1 -0
  8. package/dist/core/config.js.map +1 -1
  9. package/dist/core/state.d.ts +10 -0
  10. package/dist/core/state.d.ts.map +1 -1
  11. package/dist/core/state.js +5 -0
  12. package/dist/core/state.js.map +1 -1
  13. package/dist/engines/CloseoutEngine.d.ts.map +1 -1
  14. package/dist/engines/CloseoutEngine.js +79 -28
  15. package/dist/engines/CloseoutEngine.js.map +1 -1
  16. package/dist/engines/ExecutionEngine.d.ts +5 -0
  17. package/dist/engines/ExecutionEngine.d.ts.map +1 -1
  18. package/dist/engines/ExecutionEngine.js +80 -16
  19. package/dist/engines/ExecutionEngine.js.map +1 -1
  20. package/dist/engines/MonitorEngine.d.ts.map +1 -1
  21. package/dist/engines/MonitorEngine.js +6 -1
  22. package/dist/engines/MonitorEngine.js.map +1 -1
  23. package/dist/interfaces/WorkerProvider.d.ts +68 -15
  24. package/dist/interfaces/WorkerProvider.d.ts.map +1 -1
  25. package/dist/models/types.d.ts +3 -1
  26. package/dist/models/types.d.ts.map +1 -1
  27. package/dist/providers/ClaudePrintProvider.d.ts +54 -0
  28. package/dist/providers/ClaudePrintProvider.d.ts.map +1 -0
  29. package/dist/providers/ClaudePrintProvider.js +279 -0
  30. package/dist/providers/ClaudePrintProvider.js.map +1 -0
  31. package/dist/providers/ClaudeTmuxProvider.d.ts +94 -0
  32. package/dist/providers/ClaudeTmuxProvider.d.ts.map +1 -0
  33. package/dist/providers/ClaudeTmuxProvider.js +331 -0
  34. package/dist/providers/ClaudeTmuxProvider.js.map +1 -0
  35. package/dist/providers/ClaudeWorkerProvider.d.ts +5 -93
  36. package/dist/providers/ClaudeWorkerProvider.d.ts.map +1 -1
  37. package/dist/providers/ClaudeWorkerProvider.js +3 -303
  38. package/dist/providers/ClaudeWorkerProvider.js.map +1 -1
  39. package/dist/providers/CodexExecProvider.d.ts +36 -0
  40. package/dist/providers/CodexExecProvider.d.ts.map +1 -0
  41. package/dist/providers/CodexExecProvider.js +238 -0
  42. package/dist/providers/CodexExecProvider.js.map +1 -0
  43. package/dist/providers/CodexTmuxProvider.d.ts +71 -0
  44. package/dist/providers/CodexTmuxProvider.d.ts.map +1 -0
  45. package/dist/providers/CodexTmuxProvider.js +351 -0
  46. package/dist/providers/CodexTmuxProvider.js.map +1 -0
  47. package/dist/providers/CodexWorkerProvider.d.ts +5 -70
  48. package/dist/providers/CodexWorkerProvider.d.ts.map +1 -1
  49. package/dist/providers/CodexWorkerProvider.js +3 -328
  50. package/dist/providers/CodexWorkerProvider.js.map +1 -1
  51. package/dist/providers/outputParser.d.ts +50 -0
  52. package/dist/providers/outputParser.d.ts.map +1 -0
  53. package/dist/providers/outputParser.js +219 -0
  54. package/dist/providers/outputParser.js.map +1 -0
  55. package/dist/providers/registry.d.ts.map +1 -1
  56. package/dist/providers/registry.js +18 -6
  57. package/dist/providers/registry.js.map +1 -1
  58. package/dist/providers/streamRenderer.d.ts +13 -0
  59. package/dist/providers/streamRenderer.d.ts.map +1 -0
  60. package/dist/providers/streamRenderer.js +106 -0
  61. package/dist/providers/streamRenderer.js.map +1 -0
  62. package/package.json +1 -1
@@ -1,8 +1,10 @@
1
1
  import { PlaneTaskBackend } from './PlaneTaskBackend.js';
2
2
  import { TrelloTaskBackend } from './TrelloTaskBackend.js';
3
3
  import { MarkdownTaskBackend } from './MarkdownTaskBackend.js';
4
- import { ClaudeWorkerProvider } from './ClaudeWorkerProvider.js';
5
- import { CodexWorkerProvider } from './CodexWorkerProvider.js';
4
+ import { ClaudePrintProvider } from './ClaudePrintProvider.js';
5
+ import { CodexExecProvider } from './CodexExecProvider.js';
6
+ import { ClaudeTmuxProvider } from './ClaudeTmuxProvider.js';
7
+ import { CodexTmuxProvider } from './CodexTmuxProvider.js';
6
8
  import { GitLabRepoBackend } from './GitLabRepoBackend.js';
7
9
  import { MatrixNotifier } from './MatrixNotifier.js';
8
10
  export function createTaskBackend(config) {
@@ -14,10 +16,20 @@ export function createTaskBackend(config) {
14
16
  }
15
17
  }
16
18
  export function createWorkerProvider(config) {
17
- switch (config.WORKER_TOOL) {
18
- case 'claude': return new ClaudeWorkerProvider(config);
19
- case 'codex': return new CodexWorkerProvider(config);
20
- default: throw new Error(`Unknown WORKER_TOOL: ${config.WORKER_TOOL}`);
19
+ const mode = config.WORKER_MODE || 'print';
20
+ const tool = config.WORKER_TOOL || 'claude';
21
+ if (mode === 'print') {
22
+ switch (tool) {
23
+ case 'claude': return new ClaudePrintProvider(config);
24
+ case 'codex': return new CodexExecProvider(config);
25
+ default: throw new Error(`Unknown WORKER_TOOL: ${tool}`);
26
+ }
27
+ }
28
+ // Interactive (tmux) mode — legacy fallback
29
+ switch (tool) {
30
+ case 'claude': return new ClaudeTmuxProvider(config);
31
+ case 'codex': return new CodexTmuxProvider(config);
32
+ default: throw new Error(`Unknown WORKER_TOOL: ${tool}`);
21
33
  }
22
34
  }
23
35
  export function createRepoBackend(config) {
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/providers/registry.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,UAAU,iBAAiB,CAAC,MAAqB;IACrD,QAAQ,MAAM,CAAC,OAAO,EAAE,CAAC;QACvB,KAAK,OAAO,CAAC,CAAC,OAAO,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAClD,KAAK,QAAQ,CAAC,CAAC,OAAO,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACpD,KAAK,UAAU,CAAC,CAAC,OAAO,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACxD,OAAO,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,oBAAoB,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IACjE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAqB;IACxD,QAAQ,MAAM,CAAC,WAAW,EAAE,CAAC;QAC3B,KAAK,QAAQ,CAAC,CAAC,OAAO,IAAI,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACvD,KAAK,OAAO,CAAC,CAAC,OAAO,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACrD,OAAO,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,wBAAwB,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IACzE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAqB;IACrD,OAAO,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAqB;IAClD,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;AACpC,CAAC"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/providers/registry.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,UAAU,iBAAiB,CAAC,MAAqB;IACrD,QAAQ,MAAM,CAAC,OAAO,EAAE,CAAC;QACvB,KAAK,OAAO,CAAC,CAAC,OAAO,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAClD,KAAK,QAAQ,CAAC,CAAC,OAAO,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACpD,KAAK,UAAU,CAAC,CAAC,OAAO,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACxD,OAAO,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,oBAAoB,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IACjE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAqB;IACxD,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,IAAI,OAAO,CAAC;IAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,IAAI,QAAQ,CAAC;IAE5C,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,QAAQ,CAAC,CAAC,OAAO,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;YACtD,KAAK,OAAO,CAAC,CAAC,OAAO,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;YACnD,OAAO,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,4CAA4C;IAC5C,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ,CAAC,CAAC,OAAO,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACrD,KAAK,OAAO,CAAC,CAAC,OAAO,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACnD,OAAO,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAqB;IACrD,OAAO,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAqB;IAClD,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;AACpC,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Transforms raw stream-json/JSONL output into human-readable dashboard text.
3
+ */
4
+ /**
5
+ * Render Claude stream-json lines into readable output for the dashboard.
6
+ * Each input line is a JSON object from --output-format stream-json.
7
+ */
8
+ export declare function renderClaudeStreamLines(rawLines: string[]): string[];
9
+ /**
10
+ * Render Codex exec --json JSONL lines into readable output.
11
+ */
12
+ export declare function renderCodexStreamLines(rawLines: string[]): string[];
13
+ //# sourceMappingURL=streamRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streamRenderer.d.ts","sourceRoot":"","sources":["../../src/providers/streamRenderer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAgBpE;AA2CD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAenE"}
@@ -0,0 +1,106 @@
1
+ /**
2
+ * Transforms raw stream-json/JSONL output into human-readable dashboard text.
3
+ */
4
+ /**
5
+ * Render Claude stream-json lines into readable output for the dashboard.
6
+ * Each input line is a JSON object from --output-format stream-json.
7
+ */
8
+ export function renderClaudeStreamLines(rawLines) {
9
+ const output = [];
10
+ for (const line of rawLines) {
11
+ if (!line.trim())
12
+ continue;
13
+ try {
14
+ const obj = JSON.parse(line);
15
+ const rendered = renderClaudeEvent(obj);
16
+ if (rendered)
17
+ output.push(rendered);
18
+ }
19
+ catch {
20
+ // Not valid JSON — show as-is (might be stderr mixed in)
21
+ if (line.trim())
22
+ output.push(line);
23
+ }
24
+ }
25
+ return output;
26
+ }
27
+ function renderClaudeEvent(obj) {
28
+ switch (obj.type) {
29
+ case 'system':
30
+ return null; // skip system messages
31
+ case 'assistant': {
32
+ const msg = obj.message;
33
+ if (msg && typeof msg.content === 'string') {
34
+ return truncate(msg.content, 120);
35
+ }
36
+ return null;
37
+ }
38
+ case 'tool_use': {
39
+ const name = obj.name || 'Tool';
40
+ const input = obj.input;
41
+ let detail = '';
42
+ if (input) {
43
+ if (typeof input.command === 'string')
44
+ detail = ` ${truncate(input.command, 80)}`;
45
+ else if (typeof input.pattern === 'string')
46
+ detail = ` ${input.pattern}`;
47
+ else if (typeof input.file_path === 'string')
48
+ detail = ` ${input.file_path}`;
49
+ }
50
+ return `[${name}]${detail}`;
51
+ }
52
+ case 'tool_result':
53
+ return null; // too verbose for dashboard
54
+ case 'result': {
55
+ const cost = typeof obj.total_cost_usd === 'number'
56
+ ? ` ($${obj.total_cost_usd.toFixed(2)})`
57
+ : '';
58
+ const reason = obj.subtype === 'success' ? 'Done' : `Exit: ${obj.subtype}`;
59
+ return `✓ ${reason}${cost}`;
60
+ }
61
+ default:
62
+ return null;
63
+ }
64
+ }
65
+ /**
66
+ * Render Codex exec --json JSONL lines into readable output.
67
+ */
68
+ export function renderCodexStreamLines(rawLines) {
69
+ const output = [];
70
+ for (const line of rawLines) {
71
+ if (!line.trim())
72
+ continue;
73
+ try {
74
+ const obj = JSON.parse(line);
75
+ const rendered = renderCodexEvent(obj);
76
+ if (rendered)
77
+ output.push(rendered);
78
+ }
79
+ catch {
80
+ if (line.trim())
81
+ output.push(line);
82
+ }
83
+ }
84
+ return output;
85
+ }
86
+ function renderCodexEvent(obj) {
87
+ const type = obj.type;
88
+ if (type === 'message' && typeof obj.content === 'string') {
89
+ return truncate(obj.content, 120);
90
+ }
91
+ if (type === 'function_call' || type === 'tool_call') {
92
+ const name = (obj.name || obj.function || 'Tool');
93
+ return `[${name}]`;
94
+ }
95
+ if (type === 'completed' || type === 'done') {
96
+ return '✓ Done';
97
+ }
98
+ return null;
99
+ }
100
+ function truncate(s, maxLen) {
101
+ const oneLine = s.replace(/\n/g, ' ').trim();
102
+ if (oneLine.length <= maxLen)
103
+ return oneLine;
104
+ return oneLine.slice(0, maxLen - 1) + '…';
105
+ }
106
+ //# sourceMappingURL=streamRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streamRenderer.js","sourceRoot":"","sources":["../../src/providers/streamRenderer.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.10.2",
3
+ "version": "0.11.1",
4
4
  "description": "SPS CLI — AI-driven development pipeline orchestrator",
5
5
  "type": "module",
6
6
  "main": "dist/main.js",