codekin 0.6.4 → 0.7.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 (86) hide show
  1. package/README.md +8 -5
  2. package/bin/codekin.mjs +69 -6
  3. package/dist/assets/index-CLuQVRRb.css +1 -0
  4. package/dist/assets/index-JVnFWiSw.js +185 -0
  5. package/dist/index.html +2 -2
  6. package/package.json +6 -4
  7. package/server/dist/anthropic-models.d.ts +40 -0
  8. package/server/dist/anthropic-models.js +212 -0
  9. package/server/dist/anthropic-models.js.map +1 -0
  10. package/server/dist/claude-process.d.ts +32 -3
  11. package/server/dist/claude-process.js +129 -9
  12. package/server/dist/claude-process.js.map +1 -1
  13. package/server/dist/codex-process.d.ts +147 -0
  14. package/server/dist/codex-process.js +741 -0
  15. package/server/dist/codex-process.js.map +1 -0
  16. package/server/dist/coding-process.d.ts +16 -4
  17. package/server/dist/coding-process.js +10 -0
  18. package/server/dist/coding-process.js.map +1 -1
  19. package/server/dist/commit-event-handler.d.ts +14 -1
  20. package/server/dist/commit-event-handler.js +40 -8
  21. package/server/dist/commit-event-handler.js.map +1 -1
  22. package/server/dist/config.d.ts +25 -0
  23. package/server/dist/config.js +42 -0
  24. package/server/dist/config.js.map +1 -1
  25. package/server/dist/opencode-process.d.ts +142 -5
  26. package/server/dist/opencode-process.js +664 -84
  27. package/server/dist/opencode-process.js.map +1 -1
  28. package/server/dist/orchestrator-children.d.ts +94 -7
  29. package/server/dist/orchestrator-children.js +375 -65
  30. package/server/dist/orchestrator-children.js.map +1 -1
  31. package/server/dist/orchestrator-manager.d.ts +10 -0
  32. package/server/dist/orchestrator-manager.js +70 -18
  33. package/server/dist/orchestrator-manager.js.map +1 -1
  34. package/server/dist/orchestrator-monitor.d.ts +7 -1
  35. package/server/dist/orchestrator-monitor.js +62 -19
  36. package/server/dist/orchestrator-monitor.js.map +1 -1
  37. package/server/dist/orchestrator-notify.d.ts +42 -0
  38. package/server/dist/orchestrator-notify.js +42 -0
  39. package/server/dist/orchestrator-notify.js.map +1 -0
  40. package/server/dist/orchestrator-outbox.d.ts +48 -0
  41. package/server/dist/orchestrator-outbox.js +154 -0
  42. package/server/dist/orchestrator-outbox.js.map +1 -0
  43. package/server/dist/orchestrator-session-router.js +43 -1
  44. package/server/dist/orchestrator-session-router.js.map +1 -1
  45. package/server/dist/prompt-router.d.ts +22 -1
  46. package/server/dist/prompt-router.js +94 -11
  47. package/server/dist/prompt-router.js.map +1 -1
  48. package/server/dist/session-archive.js +11 -1
  49. package/server/dist/session-archive.js.map +1 -1
  50. package/server/dist/session-lifecycle.d.ts +1 -0
  51. package/server/dist/session-lifecycle.js +37 -0
  52. package/server/dist/session-lifecycle.js.map +1 -1
  53. package/server/dist/session-manager.d.ts +49 -2
  54. package/server/dist/session-manager.js +221 -33
  55. package/server/dist/session-manager.js.map +1 -1
  56. package/server/dist/session-naming.d.ts +4 -0
  57. package/server/dist/session-naming.js +26 -5
  58. package/server/dist/session-naming.js.map +1 -1
  59. package/server/dist/session-routes.js +42 -2
  60. package/server/dist/session-routes.js.map +1 -1
  61. package/server/dist/stepflow-handler.js +2 -2
  62. package/server/dist/stepflow-handler.js.map +1 -1
  63. package/server/dist/tsconfig.tsbuildinfo +1 -1
  64. package/server/dist/types.d.ts +24 -3
  65. package/server/dist/types.js +1 -9
  66. package/server/dist/types.js.map +1 -1
  67. package/server/dist/upload-routes.d.ts +7 -0
  68. package/server/dist/upload-routes.js +85 -28
  69. package/server/dist/upload-routes.js.map +1 -1
  70. package/server/dist/webhook-handler.js +3 -3
  71. package/server/dist/webhook-handler.js.map +1 -1
  72. package/server/dist/workflow-config.d.ts +2 -2
  73. package/server/dist/workflow-engine.d.ts +20 -0
  74. package/server/dist/workflow-engine.js +52 -15
  75. package/server/dist/workflow-engine.js.map +1 -1
  76. package/server/dist/workflow-loader.d.ts +5 -5
  77. package/server/dist/workflow-loader.js +169 -54
  78. package/server/dist/workflow-loader.js.map +1 -1
  79. package/server/dist/workflow-routes.js +36 -2
  80. package/server/dist/workflow-routes.js.map +1 -1
  81. package/server/dist/ws-message-handler.js +24 -9
  82. package/server/dist/ws-message-handler.js.map +1 -1
  83. package/server/dist/ws-server.js +53 -11
  84. package/server/dist/ws-server.js.map +1 -1
  85. package/dist/assets/index-BRB_Ksyk.js +0 -182
  86. package/dist/assets/index-Q2WSVlHo.css +0 -1
@@ -0,0 +1,154 @@
1
+ /**
2
+ * Persistent outbox for orchestrator notifications.
3
+ *
4
+ * When a notification cannot be delivered to the orchestrator session
5
+ * (Claude process not running), it is queued here and replayed as a single
6
+ * digest message once the orchestrator is back. The queue survives server
7
+ * restarts via a JSON file in the orchestrator workspace.
8
+ */
9
+ import { dirname, join } from 'path';
10
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs';
11
+ import { randomUUID } from 'crypto';
12
+ import { DATA_DIR, getAgentDisplayName } from './config.js';
13
+ import { getOrchestratorSessionId } from './orchestrator-manager.js';
14
+ /** Hard cap on queued items — oldest entries are dropped beyond this. */
15
+ const MAX_QUEUED_ITEMS = 200;
16
+ /** Default interval for the background flusher. */
17
+ const FLUSH_INTERVAL_MS = 60_000;
18
+ export class OrchestratorOutbox {
19
+ items = [];
20
+ filePath;
21
+ flushTimer = null;
22
+ constructor(filePath = join(DATA_DIR, 'orchestrator', 'outbox.json')) {
23
+ this.filePath = filePath;
24
+ this.load();
25
+ }
26
+ /** Number of queued (undelivered) notifications. */
27
+ size() {
28
+ return this.items.length;
29
+ }
30
+ /** Queue a notification for later delivery. Oldest items are dropped at the cap. */
31
+ enqueue(args) {
32
+ this.items.push({
33
+ id: randomUUID(),
34
+ label: args.label,
35
+ title: args.title,
36
+ body: args.body,
37
+ queuedAt: new Date().toISOString(),
38
+ });
39
+ if (this.items.length > MAX_QUEUED_ITEMS) {
40
+ this.items = this.items.slice(-MAX_QUEUED_ITEMS);
41
+ }
42
+ this.persist();
43
+ }
44
+ /**
45
+ * Attempt to deliver all queued items to the orchestrator session as a
46
+ * single digest message. No-op when the queue is empty, the orchestrator
47
+ * session is missing / not running, or the rate-limit circuit breaker is
48
+ * open. Returns the number of items delivered.
49
+ */
50
+ flush(sessions) {
51
+ if (this.items.length === 0)
52
+ return 0;
53
+ if (sessions.isRateLimited())
54
+ return 0;
55
+ const orchestratorId = getOrchestratorSessionId(sessions);
56
+ if (!orchestratorId)
57
+ return 0;
58
+ const session = sessions.get(orchestratorId);
59
+ if (!session?.claudeProcess?.isAlive())
60
+ return 0;
61
+ const count = this.items.length;
62
+ const digest = this.buildDigest();
63
+ // Clear before sending: if sendInput throws we'd rather drop than
64
+ // double-deliver on the next flush tick.
65
+ this.items = [];
66
+ this.persist();
67
+ sessions.sendInput(orchestratorId, digest);
68
+ return count;
69
+ }
70
+ /** Start a background timer that periodically attempts a flush. */
71
+ startFlusher(sessions, intervalMs = FLUSH_INTERVAL_MS) {
72
+ if (this.flushTimer)
73
+ return;
74
+ this.flushTimer = setInterval(() => {
75
+ try {
76
+ const delivered = this.flush(sessions);
77
+ if (delivered > 0) {
78
+ console.log(`[orchestrator-outbox] replayed ${delivered} queued notification(s)`);
79
+ }
80
+ }
81
+ catch (err) {
82
+ console.error('[orchestrator-outbox] flush error:', err);
83
+ }
84
+ }, intervalMs);
85
+ if (this.flushTimer.unref)
86
+ this.flushTimer.unref();
87
+ }
88
+ /** Stop the background flusher. */
89
+ stopFlusher() {
90
+ if (this.flushTimer) {
91
+ clearInterval(this.flushTimer);
92
+ this.flushTimer = null;
93
+ }
94
+ }
95
+ // -------------------------------------------------------------------------
96
+ // Internal
97
+ // -------------------------------------------------------------------------
98
+ buildDigest() {
99
+ const agent = getAgentDisplayName();
100
+ const header = this.items.length === 1
101
+ ? `[Agent ${agent} Notification — ${this.items[0].label} (queued while you were away)]`
102
+ : `[Agent ${agent} Notifications — ${this.items.length} queued while you were away]`;
103
+ const sections = this.items.map(item => {
104
+ const ts = item.queuedAt.replace('T', ' ').slice(0, 16);
105
+ return this.items.length === 1
106
+ ? `${item.title}\n${item.body}`
107
+ : `--- [${item.label}] ${ts} ---\n${item.title}\n${item.body}`;
108
+ });
109
+ return [header, ...sections].join('\n');
110
+ }
111
+ load() {
112
+ try {
113
+ if (!existsSync(this.filePath))
114
+ return;
115
+ const parsed = JSON.parse(readFileSync(this.filePath, 'utf-8'));
116
+ if (Array.isArray(parsed)) {
117
+ this.items = parsed.filter((it) => !!it && typeof it === 'object'
118
+ && typeof it.label === 'string'
119
+ && typeof it.title === 'string'
120
+ && typeof it.body === 'string').slice(-MAX_QUEUED_ITEMS);
121
+ }
122
+ }
123
+ catch (err) {
124
+ console.warn('[orchestrator-outbox] failed to load outbox file, starting empty:', err);
125
+ this.items = [];
126
+ }
127
+ }
128
+ persist() {
129
+ try {
130
+ const dir = dirname(this.filePath);
131
+ if (!existsSync(dir))
132
+ mkdirSync(dir, { recursive: true });
133
+ writeFileSync(this.filePath, JSON.stringify(this.items, null, 2), 'utf-8');
134
+ }
135
+ catch (err) {
136
+ console.warn('[orchestrator-outbox] failed to persist outbox file:', err);
137
+ }
138
+ }
139
+ }
140
+ // ---------------------------------------------------------------------------
141
+ // Singleton
142
+ // ---------------------------------------------------------------------------
143
+ let singleton = null;
144
+ /** Get the process-wide outbox instance. */
145
+ export function getOrchestratorOutbox() {
146
+ if (!singleton)
147
+ singleton = new OrchestratorOutbox();
148
+ return singleton;
149
+ }
150
+ /** Test-only: replace the singleton (pass null to reset). */
151
+ export function setOrchestratorOutboxForTest(outbox) {
152
+ singleton = outbox;
153
+ }
154
+ //# sourceMappingURL=orchestrator-outbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestrator-outbox.js","sourceRoot":"","sources":["../orchestrator-outbox.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,IAAI,CAAA;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAC3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AAWpE,yEAAyE;AACzE,MAAM,gBAAgB,GAAG,GAAG,CAAA;AAC5B,mDAAmD;AACnD,MAAM,iBAAiB,GAAG,MAAM,CAAA;AAEhC,MAAM,OAAO,kBAAkB;IACrB,KAAK,GAAiB,EAAE,CAAA;IACxB,QAAQ,CAAQ;IAChB,UAAU,GAA0C,IAAI,CAAA;IAEhE,YAAY,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,cAAc,EAAE,aAAa,CAAC;QAClE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,IAAI,EAAE,CAAA;IACb,CAAC;IAED,oDAAoD;IACpD,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAA;IAC1B,CAAC;IAED,oFAAoF;IACpF,OAAO,CAAC,IAAoD;QAC1D,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACd,EAAE,EAAE,UAAU,EAAE;YAChB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACnC,CAAC,CAAA;QACF,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,gBAAgB,EAAE,CAAC;YACzC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAAC,CAAA;QAClD,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAA;IAChB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,QAAwB;QAC5B,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,CAAA;QACrC,IAAI,QAAQ,CAAC,aAAa,EAAE;YAAE,OAAO,CAAC,CAAA;QAEtC,MAAM,cAAc,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAA;QACzD,IAAI,CAAC,cAAc;YAAE,OAAO,CAAC,CAAA;QAC7B,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;QAC5C,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE;YAAE,OAAO,CAAC,CAAA;QAEhD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAA;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;QACjC,kEAAkE;QAClE,yCAAyC;QACzC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;QACf,IAAI,CAAC,OAAO,EAAE,CAAA;QACd,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;QAC1C,OAAO,KAAK,CAAA;IACd,CAAC;IAED,mEAAmE;IACnE,YAAY,CAAC,QAAwB,EAAE,UAAU,GAAG,iBAAiB;QACnE,IAAI,IAAI,CAAC,UAAU;YAAE,OAAM;QAC3B,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;YACjC,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;gBACtC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;oBAClB,OAAO,CAAC,GAAG,CAAC,kCAAkC,SAAS,yBAAyB,CAAC,CAAA;gBACnF,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,GAAG,CAAC,CAAA;YAC1D,CAAC;QACH,CAAC,EAAE,UAAU,CAAC,CAAA;QACd,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK;YAAE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAA;IACpD,CAAC;IAED,mCAAmC;IACnC,WAAW;QACT,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YAC9B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;QACxB,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,WAAW;IACX,4EAA4E;IAEpE,WAAW;QACjB,MAAM,KAAK,GAAG,mBAAmB,EAAE,CAAA;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YACpC,CAAC,CAAC,UAAU,KAAK,mBAAmB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,gCAAgC;YACvF,CAAC,CAAC,UAAU,KAAK,oBAAoB,IAAI,CAAC,KAAK,CAAC,MAAM,8BAA8B,CAAA;QAEtF,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACrC,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YACvD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;gBAC5B,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,EAAE;gBAC/B,CAAC,CAAC,QAAQ,IAAI,CAAC,KAAK,KAAK,EAAE,SAAS,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,EAAE,CAAA;QAClE,CAAC,CAAC,CAAA;QAEF,OAAO,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzC,CAAC;IAEO,IAAI;QACV,IAAI,CAAC;YACH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAAE,OAAM;YACtC,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAA;YACxE,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAoB,EAAE,CAClD,CAAC,CAAC,EAAE,IAAI,OAAO,EAAE,KAAK,QAAQ;uBAC3B,OAAQ,EAAiB,CAAC,KAAK,KAAK,QAAQ;uBAC5C,OAAQ,EAAiB,CAAC,KAAK,KAAK,QAAQ;uBAC5C,OAAQ,EAAiB,CAAC,IAAI,KAAK,QAAQ,CAC/C,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAAC,CAAA;YAC5B,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,mEAAmE,EAAE,GAAG,CAAC,CAAA;YACtF,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;QACjB,CAAC;IACH,CAAC;IAEO,OAAO;QACb,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YAClC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YACzD,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;QAC5E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,sDAAsD,EAAE,GAAG,CAAC,CAAA;QAC3E,CAAC;IACH,CAAC;CACF;AAED,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,IAAI,SAAS,GAA8B,IAAI,CAAA;AAE/C,4CAA4C;AAC5C,MAAM,UAAU,qBAAqB;IACnC,IAAI,CAAC,SAAS;QAAE,SAAS,GAAG,IAAI,kBAAkB,EAAE,CAAA;IACpD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,4BAA4B,CAAC,MAAiC;IAC5E,SAAS,GAAG,MAAM,CAAA;AACpB,CAAC"}
@@ -140,10 +140,16 @@ export function createSessionRouter(verifyOrchestratorAuth, sessions, memory, ch
140
140
  router.post('/api/orchestrator/children', spawnRateLimiter, async (req, res) => {
141
141
  if (!verifyOrchestratorAuth(req))
142
142
  return res.status(401).json({ error: 'Unauthorized' });
143
- const { repo, task, branchName, completionPolicy, deployAfter, useWorktree, model, allowedTools } = req.body;
143
+ const { repo, task, branchName, completionPolicy, deployAfter, useWorktree, model, allowedTools, timeoutMs } = req.body;
144
144
  if (!repo || !task || !branchName) {
145
145
  return res.status(400).json({ error: 'Missing required fields: repo, task, branchName' });
146
146
  }
147
+ // Validate timeoutMs if provided: 1 minute to 4 hours
148
+ if (timeoutMs !== undefined) {
149
+ if (typeof timeoutMs !== 'number' || !Number.isFinite(timeoutMs) || timeoutMs < 60_000 || timeoutMs > 14_400_000) {
150
+ return res.status(400).json({ error: 'Invalid timeoutMs: must be a number between 60000 (1m) and 14400000 (4h)' });
151
+ }
152
+ }
147
153
  // Validate branchName to prevent prompt injection
148
154
  if (!/^[a-zA-Z0-9][a-zA-Z0-9/_.-]*$/.test(branchName)) {
149
155
  return res.status(400).json({ error: 'Invalid branchName: only alphanumeric, /, _, ., and - are allowed' });
@@ -174,6 +180,10 @@ export function createSessionRouter(verifyOrchestratorAuth, sessions, memory, ch
174
180
  useWorktree: useWorktree ?? true,
175
181
  model,
176
182
  allowedTools,
183
+ timeoutMs,
184
+ // Stamp the orchestrator (parent) session ID so the child can push
185
+ // a terminal-state notification back to it without a 30-min poll.
186
+ parentSessionId: getOrCreateOrchestratorId(),
177
187
  });
178
188
  res.json({ child });
179
189
  }
@@ -190,6 +200,38 @@ export function createSessionRouter(verifyOrchestratorAuth, sessions, memory, ch
190
200
  return res.status(404).json({ error: 'Child session not found' });
191
201
  res.json({ child });
192
202
  });
203
+ /**
204
+ * Get the tail of a child session's transcript (Claude output only).
205
+ * Lets the orchestrator inspect what a child actually did — e.g. when a
206
+ * child stops with "Completion not verified" or gets stuck — without
207
+ * attaching to the session. `?limit` caps the returned characters
208
+ * (default 5000, max 50000).
209
+ */
210
+ router.get('/api/orchestrator/children/:id/transcript', (req, res) => {
211
+ if (!verifyOrchestratorAuth(req))
212
+ return res.status(401).json({ error: 'Unauthorized' });
213
+ const child = children.get(req.params.id);
214
+ if (!child)
215
+ return res.status(404).json({ error: 'Child session not found' });
216
+ const session = sessions.get(child.id);
217
+ if (!session) {
218
+ return res.status(404).json({ error: 'Session no longer exists (it may have been deleted)' });
219
+ }
220
+ const rawLimit = Number(req.query.limit);
221
+ const limit = Number.isFinite(rawLimit) && rawLimit > 0 ? Math.min(rawLimit, 50_000) : 5_000;
222
+ const full = session.outputHistory
223
+ .filter((m) => m.type === 'output')
224
+ .map(m => m.data)
225
+ .join('');
226
+ const truncated = full.length > limit;
227
+ res.json({
228
+ childId: child.id,
229
+ status: child.status,
230
+ transcript: truncated ? full.slice(-limit) : full,
231
+ truncated,
232
+ totalLength: full.length,
233
+ });
234
+ });
193
235
  // -------------------------------------------------------------------------
194
236
  // Session prompts & approvals
195
237
  // -------------------------------------------------------------------------
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator-session-router.js","sourceRoot":"","sources":["../orchestrator-session-router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orchestrator-session-router.js","sourceRoot":"","sources":["../orchestrator-session-router.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,8 @@ export interface PromptRouterDeps {
20
20
  globalBroadcast(msg: WsServerMessage): void;
21
21
  approvalManager: ApprovalManager;
22
22
  promptListeners: Array<(sessionId: string, promptType: 'permission' | 'question', toolName: string | undefined, requestId: string | undefined) => void>;
23
+ /** Called after the user approves a plan, so the session can transition out of plan mode. */
24
+ onPlanApproved(session: Session): void;
23
25
  }
24
26
  export declare class PromptRouter {
25
27
  private deps;
@@ -59,6 +61,11 @@ export declare class PromptRouter {
59
61
  always: boolean;
60
62
  answer?: string;
61
63
  }>;
64
+ /**
65
+ * Surface an automatic denial to the user as a visible system message
66
+ * (broadcast + history), so silent timeouts/disconnect denials are explained.
67
+ */
68
+ private notifyAutoDeny;
62
69
  /** Decode the allow/deny/always/pattern intent from a prompt response value. */
63
70
  private decodeApprovalValue;
64
71
  /** Resolve a pending PreToolUse hook approval and update auto-approval registries. */
@@ -84,7 +91,21 @@ export declare class PromptRouter {
84
91
  private static readonly FILE_TOOLS;
85
92
  /** Permission modes that auto-approve file-editing tools. */
86
93
  private static readonly EDIT_MODES;
87
- resolveAutoApproval(session: Session, toolName: string, toolInput: Record<string, unknown>): 'registry' | 'session' | 'headless' | 'permissionMode' | 'prompt';
94
+ /** Read-only tools that are safe in every permission mode (including plan). */
95
+ private static readonly READ_ONLY_TOOLS;
96
+ /** File-mutating tools that must be denied (not prompted) while plan mode is active. */
97
+ private static readonly WRITE_TOOLS;
98
+ /** Denial reason sent back to Claude when a write tool is blocked during planning. */
99
+ static readonly PLAN_MODE_DENY_MESSAGE = "Plan mode is active \u2014 file modifications are blocked until the plan is approved. Present your plan with ExitPlanMode first.";
100
+ /** True while the session is in plan mode (by permission mode or active plan state machine). */
101
+ private isPlanModeActive;
102
+ /**
103
+ * True if the tool input's target path resolves inside the session's working
104
+ * directory (or its group repo). Inputs without a path target the cwd and count
105
+ * as in-project.
106
+ */
107
+ private isPathInProject;
108
+ resolveAutoApproval(session: Session, toolName: string, toolInput: Record<string, unknown>): 'registry' | 'session' | 'headless' | 'permissionMode' | 'readOnly' | 'planDeny' | 'prompt';
88
109
  /**
89
110
  * Check if a tool invocation matches any of the session's allowedTools patterns.
90
111
  * Patterns follow Claude CLI format: 'ToolName' or 'ToolName(prefix:*)'.
@@ -9,6 +9,7 @@
9
9
  * - Prompt UI message construction and broadcast
10
10
  */
11
11
  import { randomUUID } from 'crypto';
12
+ import path from 'path';
12
13
  import { ApprovalManager } from './approval-manager.js';
13
14
  import { jsonParse } from './json-parse.js';
14
15
  export class PromptRouter {
@@ -81,8 +82,14 @@ export class PromptRouter {
81
82
  return;
82
83
  }
83
84
  console.log(`[control_request] session=${sessionId} tool=${toolName} requestId=${requestId}`);
84
- if (this.resolveAutoApproval(session, toolName, toolInput) !== 'prompt') {
85
- console.log(`[control_request] auto-approved: ${toolName}`);
85
+ const autoResult = this.resolveAutoApproval(session, toolName, toolInput);
86
+ if (autoResult === 'planDeny') {
87
+ console.log(`[control_request] denied (plan mode active): ${toolName}`);
88
+ cp.sendControlResponse(requestId, 'deny', undefined, PromptRouter.PLAN_MODE_DENY_MESSAGE);
89
+ return;
90
+ }
91
+ if (autoResult !== 'prompt') {
92
+ console.log(`[control_request] auto-approved (${autoResult}): ${toolName}`);
86
93
  cp.sendControlResponse(requestId, 'allow');
87
94
  return;
88
95
  }
@@ -218,6 +225,14 @@ export class PromptRouter {
218
225
  return Promise.resolve({ allow: false, always: false });
219
226
  }
220
227
  const autoResult = this.resolveAutoApproval(session, toolName, toolInput);
228
+ if (autoResult === 'planDeny') {
229
+ console.log(`[tool-approval] denied (plan mode active): ${toolName}`);
230
+ return Promise.resolve({ allow: false, always: false, answer: PromptRouter.PLAN_MODE_DENY_MESSAGE });
231
+ }
232
+ if (autoResult === 'readOnly') {
233
+ console.log(`[tool-approval] auto-approved (read-only in project): ${toolName}`);
234
+ return Promise.resolve({ allow: true, always: false });
235
+ }
221
236
  if (autoResult === 'permissionMode') {
222
237
  console.log(`[tool-approval] auto-approved (permissionMode=${session.permissionMode}): ${toolName}`);
223
238
  return Promise.resolve({ allow: true, always: false });
@@ -234,12 +249,10 @@ export class PromptRouter {
234
249
  console.log(`[tool-approval] auto-approved (headless ${session.source}): ${toolName}`);
235
250
  return Promise.resolve({ allow: true, always: false });
236
251
  }
237
- // Agent child sessions with no browser client: fast-deny tools not in
238
- // allowedTools rather than hanging 5 minutes on a prompt nobody will see.
239
- if (session.clients.size === 0 && session.source === 'agent') {
240
- console.log(`[tool-approval] fast-deny headless agent (tool not in allowedTools): ${toolName}`);
241
- return Promise.resolve({ allow: false, always: false });
242
- }
252
+ // Agent child sessions with no browser client: register the prompt and
253
+ // continue the orchestrator is notified via promptListeners and can
254
+ // approve/deny through the API. The 5-minute approval timeout below is
255
+ // the backstop deny if nobody (orchestrator or user) responds.
243
256
  console.log(`[tool-approval] requesting approval: session=${sessionId} tool=${toolName} clients=${session.clients.size}`);
244
257
  // ExitPlanMode: route through PlanManager state machine for plan-specific
245
258
  // approval UI. The hook blocks until we resolve the promise.
@@ -278,6 +291,7 @@ export class PromptRouter {
278
291
  // Dismiss the stale prompt in all clients so they don't inject
279
292
  // "allow"/"deny" as plain text after the timeout
280
293
  this.deps.broadcast(session, { type: 'prompt_dismiss', requestId: approvalRequestId });
294
+ this.notifyAutoDeny(session, `Approval request for ${toolName} timed out after 5 minutes and was automatically denied.`);
281
295
  resolve({ allow: false, always: false });
282
296
  }
283
297
  }, 300_000); // 5 min for all approval types
@@ -356,6 +370,15 @@ export class PromptRouter {
356
370
  // ---------------------------------------------------------------------------
357
371
  // Internal helpers
358
372
  // ---------------------------------------------------------------------------
373
+ /**
374
+ * Surface an automatic denial to the user as a visible system message
375
+ * (broadcast + history), so silent timeouts/disconnect denials are explained.
376
+ */
377
+ notifyAutoDeny(session, text) {
378
+ const msg = { type: 'system_message', subtype: 'error', text };
379
+ this.deps.addToHistory(session, msg);
380
+ this.deps.broadcast(session, msg);
381
+ }
359
382
  /** Decode the allow/deny/always/pattern intent from a prompt response value. */
360
383
  decodeApprovalValue(value) {
361
384
  const first = Array.isArray(value) ? value[0] : value;
@@ -390,6 +413,10 @@ export class PromptRouter {
390
413
  session.planManager.approve(approval.requestId);
391
414
  console.log(`[plan-approval] approved`);
392
415
  approval.resolve({ allow: true, always: false });
416
+ // Transition the session out of plan mode (plan → acceptEdits) so the
417
+ // implementation phase doesn't prompt on every file edit and process
418
+ // restarts don't re-enter plan mode mid-implementation.
419
+ this.deps.onPlanApproved(session);
393
420
  }
394
421
  session.pendingToolApprovals.delete(approval.requestId);
395
422
  this.deps.broadcast(session, { type: 'prompt_dismiss', requestId: approval.requestId });
@@ -430,6 +457,7 @@ export class PromptRouter {
430
457
  session.pendingToolApprovals.delete(reviewId);
431
458
  session.planManager.deny(reviewId);
432
459
  this.deps.broadcast(session, { type: 'prompt_dismiss', requestId: reviewId });
460
+ this.notifyAutoDeny(session, 'Plan approval request timed out after 5 minutes — the plan was automatically rejected.');
433
461
  resolve({ allow: false, always: false });
434
462
  }
435
463
  }, 300_000);
@@ -507,7 +535,10 @@ export class PromptRouter {
507
535
  if (isApprovePattern) {
508
536
  this.deps.approvalManager.savePatternApproval(session.groupDir ?? session.workingDir, pending.toolName, pending.toolInput);
509
537
  }
510
- const behavior = isDeny ? 'deny' : 'allow';
538
+ // 'allow_always' lets providers persist the grant natively (OpenCode maps
539
+ // it to its 'always' reply; Claude treats it as a plain allow — Codekin's
540
+ // ApprovalManager handles persistence there).
541
+ const behavior = isDeny ? 'deny' : isAlwaysAllow ? 'allow_always' : 'allow';
511
542
  if (!session.claudeProcess?.isAlive())
512
543
  return;
513
544
  session.claudeProcess.sendControlResponse(pending.requestId, behavior);
@@ -522,7 +553,43 @@ export class PromptRouter {
522
553
  static FILE_TOOLS = new Set(['Read', 'Write', 'Edit', 'Glob', 'Grep', 'NotebookEdit']);
523
554
  /** Permission modes that auto-approve file-editing tools. */
524
555
  static EDIT_MODES = new Set(['acceptEdits', 'bypassPermissions', 'dangerouslySkipPermissions']);
556
+ /** Read-only tools that are safe in every permission mode (including plan). */
557
+ static READ_ONLY_TOOLS = new Set(['Read', 'Glob', 'Grep']);
558
+ /** File-mutating tools that must be denied (not prompted) while plan mode is active. */
559
+ static WRITE_TOOLS = new Set(['Write', 'Edit', 'NotebookEdit']);
560
+ /** Denial reason sent back to Claude when a write tool is blocked during planning. */
561
+ static PLAN_MODE_DENY_MESSAGE = 'Plan mode is active — file modifications are blocked until the plan is approved. Present your plan with ExitPlanMode first.';
562
+ /** True while the session is in plan mode (by permission mode or active plan state machine). */
563
+ isPlanModeActive(session) {
564
+ return session.permissionMode === 'plan' || session.planManager.state !== 'idle';
565
+ }
566
+ /**
567
+ * True if the tool input's target path resolves inside the session's working
568
+ * directory (or its group repo). Inputs without a path target the cwd and count
569
+ * as in-project.
570
+ */
571
+ isPathInProject(session, toolInput) {
572
+ const raw = toolInput.file_path ?? toolInput.path;
573
+ if (raw === undefined || raw === null)
574
+ return true; // defaults to cwd
575
+ if (typeof raw !== 'string')
576
+ return false;
577
+ const resolved = path.resolve(session.workingDir, raw);
578
+ const roots = [session.workingDir, session.groupDir].filter((r) => !!r);
579
+ return roots.some(root => resolved === root || resolved.startsWith(root + path.sep));
580
+ }
525
581
  resolveAutoApproval(session, toolName, toolInput) {
582
+ // Plan mode is read-only: deny write tools outright instead of prompting,
583
+ // so the user can't accidentally approve an edit during planning and
584
+ // Claude gets a clear, parseable reason.
585
+ if (PromptRouter.WRITE_TOOLS.has(toolName) && this.isPlanModeActive(session)) {
586
+ return 'planDeny';
587
+ }
588
+ // Read-only tools on in-project paths are safe in every mode — without
589
+ // this, plan mode (a research mode) prompts on every Glob/Grep.
590
+ if (PromptRouter.READ_ONLY_TOOLS.has(toolName) && this.isPathInProject(session, toolInput)) {
591
+ return 'readOnly';
592
+ }
526
593
  // File tools are governed by permission mode, not per-tool approval.
527
594
  // The PreToolUse hook intercepts them before Claude's native permission
528
595
  // logic runs, so we must enforce permission mode here.
@@ -586,8 +653,24 @@ export class PromptRouter {
586
653
  const filePath = String(toolInput.file_path || '');
587
654
  return `Allow Read? \`${filePath}\``;
588
655
  }
589
- default:
590
- return `Allow ${toolName}?`;
656
+ // OpenCode permission types — toolInput carries {permission, ...metadata, patterns}
657
+ case 'external_directory': {
658
+ const target = String(toolInput.filepath || toolInput.parentDir || '');
659
+ const patterns = Array.isArray(toolInput.patterns) && toolInput.patterns.length
660
+ ? ` (${toolInput.patterns.map(String).join(', ')})`
661
+ : '';
662
+ return target
663
+ ? `Allow access outside the project directory? \`${target}\`${patterns}`
664
+ : `Allow access outside the project directory?${patterns}`;
665
+ }
666
+ case 'doom_loop':
667
+ return 'The agent appears to be repeating itself (possible loop). Allow it to continue?';
668
+ default: {
669
+ const patterns = Array.isArray(toolInput.patterns) && toolInput.patterns.length
670
+ ? ` \`${toolInput.patterns.map(String).join(', ')}\``
671
+ : '';
672
+ return `Allow ${toolName}?${patterns}`;
673
+ }
591
674
  }
592
675
  }
593
676
  }
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-router.js","sourceRoot":"","sources":["../prompt-router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt-router.js","sourceRoot":"","sources":["../prompt-router.ts"],"names":[],"mappings":"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"}