cli-jaw 1.3.2 → 1.3.3

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.
@@ -1,17 +1,29 @@
1
1
  #!/usr/bin/env node
2
- // bin/commands/orchestrate.ts — CLI: jaw orchestrate [P|A|B|C|D]
2
+ // bin/commands/orchestrate.ts — CLI: jaw orchestrate [P|A|B|C|D|reset]
3
3
  // Calls the running server's API so WS broadcast reaches all clients in real-time.
4
4
  // Derive port: --port flag > env > settings > 3457
5
5
  const portIdx = process.argv.indexOf('--port');
6
6
  const PORT = (portIdx !== -1 && process.argv[portIdx + 1]) ? process.argv[portIdx + 1] : (process.env.PORT || '3457');
7
7
  const BASE = `http://localhost:${PORT}`;
8
8
  const target = (process.argv[3] || 'P').toUpperCase();
9
- const valid = ['P', 'A', 'B', 'C', 'D'];
9
+ const valid = ['P', 'A', 'B', 'C', 'D', 'RESET'];
10
10
  if (!valid.includes(target)) {
11
- console.error(`Invalid state: ${target}. Must be one of: ${valid.join(', ')}`);
11
+ console.error(`Invalid state: ${target}. Must be one of: P, A, B, C, D, reset`);
12
12
  process.exit(1);
13
13
  }
14
14
  try {
15
+ // Reset: return to IDLE from any state
16
+ if (target === 'RESET') {
17
+ const res = await fetch(`${BASE}/api/orchestrate/reset`, { method: 'POST' });
18
+ const body = await res.json();
19
+ if (!res.ok) {
20
+ console.error(body.error || `Failed: ${res.status}`);
21
+ process.exit(1);
22
+ }
23
+ console.log('✅ State → IDLE (reset)');
24
+ process.exit(0);
25
+ }
26
+ // State transition: P|A|B|C|D
15
27
  const res = await fetch(`${BASE}/api/orchestrate/state`, {
16
28
  method: 'PUT',
17
29
  headers: { 'Content-Type': 'application/json' },
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrate.js","sourceRoot":"","sources":["../../../bin/commands/orchestrate.ts"],"names":[],"mappings":";AACA,iEAAiE;AACjE,mFAAmF;AAInF,mDAAmD;AACnD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC/C,MAAM,IAAI,GAAG,CAAC,OAAO,KAAK,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC;AACtH,MAAM,IAAI,GAAG,oBAAoB,IAAI,EAAE,CAAC;AAExC,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;AACtD,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAExC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;IAC5B,OAAO,CAAC,KAAK,CAAC,kBAAkB,MAAM,qBAAqB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,IAAI,CAAC;IACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,wBAAwB,EAAE;QACvD,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;KACxC,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAS,CAAC;IAErC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,WAAW,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,KAAK,IAAI,MAAM,EAAE,CAAC,CAAC;IAEjD,0CAA0C;IAC1C,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,yCAAyC,CAAC,CAAC;IACnF,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,MAAa,CAAC,CAAC,CAAC;AAC7C,CAAC;AAAC,OAAO,CAAM,EAAE,CAAC;IAChB,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,KAAK,cAAc,EAAE,CAAC;QACrC,OAAO,CAAC,KAAK,CAAC,8BAA8B,IAAI,kCAAkC,IAAI,EAAE,CAAC,CAAC;IAC5F,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"orchestrate.js","sourceRoot":"","sources":["../../../bin/commands/orchestrate.ts"],"names":[],"mappings":"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"}
@@ -39,13 +39,14 @@ For complex, multi-step tasks, you have a structured orchestration system called
39
39
  - User says "orchestrate", "지휘 모드", or "pabcd" → system auto-enters P.
40
40
  - You can also run: `cli-jaw orchestrate P` to enter P manually.
41
41
 
42
- **How to transition phases** (Shell commands):
42
+ **How to transition phases** (Shell commands — forward only, no backward moves):
43
43
  ```bash
44
- cli-jaw orchestrate P # Enter Planning
45
- cli-jaw orchestrate A # Enter Plan Audit
46
- cli-jaw orchestrate B # Enter Build
47
- cli-jaw orchestrate C # Enter Check
48
- cli-jaw orchestrate D # Enter Done
44
+ cli-jaw orchestrate P # Enter Planning (from IDLE)
45
+ cli-jaw orchestrate A # Enter Plan Audit (from P)
46
+ cli-jaw orchestrate B # Enter Build (from A)
47
+ cli-jaw orchestrate C # Enter Check (from B)
48
+ cli-jaw orchestrate D # Enter Done (from C, returns to IDLE)
49
+ cli-jaw orchestrate reset # Return to IDLE from any state
49
50
  ```
50
51
  If shell is unavailable, the system will auto-advance when the user explicitly approves.
51
52
 
@@ -64,3 +65,5 @@ If shell is unavailable, the system will auto-advance when the user explicitly a
64
65
  - D: Summarize and return to IDLE.
65
66
 
66
67
  **⚠️ State transitions MUST use `cli-jaw orchestrate` commands. No other method.**
68
+
69
+ **All code must pass static analysis (`tsc --noEmit`, `mypy`, `go vet`, etc.) before claiming completion.**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cli-jaw",
3
- "version": "1.3.2",
3
+ "version": "1.3.3",
4
4
  "description": "Personal AI assistant powered by 5 engines (Claude, Codex, Gemini, OpenCode, Copilot) — Web, Terminal, and Telegram interfaces with 107 built-in skills",
5
5
  "type": "module",
6
6
  "keywords": [