@codetreker/daynight 0.25.4 → 0.26.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 (170) hide show
  1. package/README.md +108 -4
  2. package/config.example.yml +3 -0
  3. package/dist/api/client.js +2 -2
  4. package/dist/api/client.js.map +1 -1
  5. package/dist/api/parse.js +14 -2
  6. package/dist/api/parse.js.map +1 -1
  7. package/dist/api/types.d.ts +4 -1
  8. package/dist/api/worker-mode.d.ts +6 -0
  9. package/dist/api/worker-mode.js +14 -0
  10. package/dist/api/worker-mode.js.map +1 -0
  11. package/dist/cli/commands.js +2 -0
  12. package/dist/cli/commands.js.map +1 -1
  13. package/dist/commands/controller/command-controls.d.ts +4 -0
  14. package/dist/commands/controller/command-controls.js +33 -0
  15. package/dist/commands/controller/command-controls.js.map +1 -0
  16. package/dist/commands/controller/definition.d.ts +3 -0
  17. package/dist/commands/controller/definition.js +22 -0
  18. package/dist/commands/controller/definition.js.map +1 -0
  19. package/dist/commands/controller/independent.d.ts +3 -0
  20. package/dist/commands/controller/independent.js +344 -0
  21. package/dist/commands/controller/independent.js.map +1 -0
  22. package/dist/commands/controller/index.d.ts +12 -0
  23. package/dist/commands/controller/index.js +73 -0
  24. package/dist/commands/controller/index.js.map +1 -0
  25. package/dist/commands/controller/launch-ticket.d.ts +49 -0
  26. package/dist/commands/controller/launch-ticket.js +99 -0
  27. package/dist/commands/controller/launch-ticket.js.map +1 -0
  28. package/dist/commands/controller/lifecycle-store.d.ts +84 -0
  29. package/dist/commands/controller/lifecycle-store.js +278 -0
  30. package/dist/commands/controller/lifecycle-store.js.map +1 -0
  31. package/dist/commands/controller/local-client.d.ts +44 -0
  32. package/dist/commands/controller/local-client.js +75 -0
  33. package/dist/commands/controller/local-client.js.map +1 -0
  34. package/dist/commands/controller/local-content.d.ts +23 -0
  35. package/dist/commands/controller/local-content.js +103 -0
  36. package/dist/commands/controller/local-content.js.map +1 -0
  37. package/dist/commands/controller/process-proof.d.ts +13 -0
  38. package/dist/commands/controller/process-proof.js +121 -0
  39. package/dist/commands/controller/process-proof.js.map +1 -0
  40. package/dist/commands/controller/providers/claude.d.ts +2 -0
  41. package/dist/commands/controller/providers/claude.js +470 -0
  42. package/dist/commands/controller/providers/claude.js.map +1 -0
  43. package/dist/commands/controller/providers/codex.d.ts +2 -0
  44. package/dist/commands/controller/providers/codex.js +254 -0
  45. package/dist/commands/controller/providers/codex.js.map +1 -0
  46. package/dist/commands/controller/providers/controls-claude.d.ts +26 -0
  47. package/dist/commands/controller/providers/controls-claude.js +138 -0
  48. package/dist/commands/controller/providers/controls-claude.js.map +1 -0
  49. package/dist/commands/controller/providers/controls-codex.d.ts +38 -0
  50. package/dist/commands/controller/providers/controls-codex.js +199 -0
  51. package/dist/commands/controller/providers/controls-codex.js.map +1 -0
  52. package/dist/commands/controller/providers/controls-copilot.d.ts +20 -0
  53. package/dist/commands/controller/providers/controls-copilot.js +143 -0
  54. package/dist/commands/controller/providers/controls-copilot.js.map +1 -0
  55. package/dist/commands/controller/providers/controls.d.ts +21 -0
  56. package/dist/commands/controller/providers/controls.js +53 -0
  57. package/dist/commands/controller/providers/controls.js.map +1 -0
  58. package/dist/commands/controller/providers/copilot-interactions.d.ts +47 -0
  59. package/dist/commands/controller/providers/copilot-interactions.js +295 -0
  60. package/dist/commands/controller/providers/copilot-interactions.js.map +1 -0
  61. package/dist/commands/controller/providers/copilot-projection.d.ts +11 -0
  62. package/dist/commands/controller/providers/copilot-projection.js +93 -0
  63. package/dist/commands/controller/providers/copilot-projection.js.map +1 -0
  64. package/dist/commands/controller/providers/copilot-runtime.d.ts +9 -0
  65. package/dist/commands/controller/providers/copilot-runtime.js +127 -0
  66. package/dist/commands/controller/providers/copilot-runtime.js.map +1 -0
  67. package/dist/commands/controller/providers/copilot.d.ts +2 -0
  68. package/dist/commands/controller/providers/copilot.js +309 -0
  69. package/dist/commands/controller/providers/copilot.js.map +1 -0
  70. package/dist/commands/controller/providers/interactions.d.ts +3 -0
  71. package/dist/commands/controller/providers/interactions.js +79 -0
  72. package/dist/commands/controller/providers/interactions.js.map +1 -0
  73. package/dist/commands/controller/providers/native-rpc.d.ts +28 -0
  74. package/dist/commands/controller/providers/native-rpc.js +85 -0
  75. package/dist/commands/controller/providers/native-rpc.js.map +1 -0
  76. package/dist/commands/controller/providers/projection.d.ts +23 -0
  77. package/dist/commands/controller/providers/projection.js +99 -0
  78. package/dist/commands/controller/providers/projection.js.map +1 -0
  79. package/dist/commands/controller/providers/turns.d.ts +7 -0
  80. package/dist/commands/controller/providers/turns.js +21 -0
  81. package/dist/commands/controller/providers/turns.js.map +1 -0
  82. package/dist/commands/controller/providers/types.d.ts +44 -0
  83. package/dist/commands/controller/providers/types.js +2 -0
  84. package/dist/commands/controller/providers/types.js.map +1 -0
  85. package/dist/commands/controller/recovery.d.ts +6 -0
  86. package/dist/commands/controller/recovery.js +22 -0
  87. package/dist/commands/controller/recovery.js.map +1 -0
  88. package/dist/commands/controller/relay.d.ts +18 -0
  89. package/dist/commands/controller/relay.js +299 -0
  90. package/dist/commands/controller/relay.js.map +1 -0
  91. package/dist/commands/controller/resume.d.ts +18 -0
  92. package/dist/commands/controller/resume.js +193 -0
  93. package/dist/commands/controller/resume.js.map +1 -0
  94. package/dist/commands/controller/runtime.d.ts +5 -0
  95. package/dist/commands/controller/runtime.js +455 -0
  96. package/dist/commands/controller/runtime.js.map +1 -0
  97. package/dist/commands/controller/windows-job.d.ts +3 -0
  98. package/dist/commands/controller/windows-job.js +59 -0
  99. package/dist/commands/controller/windows-job.js.map +1 -0
  100. package/dist/commands/controller/wire-display.d.ts +5 -0
  101. package/dist/commands/controller/wire-display.js +11 -0
  102. package/dist/commands/controller/wire-display.js.map +1 -0
  103. package/dist/commands/worker/backend.d.ts +7 -0
  104. package/dist/commands/worker/backend.js +7 -0
  105. package/dist/commands/worker/backend.js.map +1 -0
  106. package/dist/commands/worker/backends/grant-renewal.d.ts +13 -0
  107. package/dist/commands/worker/backends/grant-renewal.js +42 -0
  108. package/dist/commands/worker/backends/grant-renewal.js.map +1 -0
  109. package/dist/commands/worker/backends/session-api.d.ts +66 -0
  110. package/dist/commands/worker/backends/session-api.js +84 -0
  111. package/dist/commands/worker/backends/session-api.js.map +1 -0
  112. package/dist/commands/worker/backends/web-process.d.ts +79 -0
  113. package/dist/commands/worker/backends/web-process.js +156 -0
  114. package/dist/commands/worker/backends/web-process.js.map +1 -0
  115. package/dist/commands/worker/backends/web-store.d.ts +49 -0
  116. package/dist/commands/worker/backends/web-store.js +323 -0
  117. package/dist/commands/worker/backends/web-store.js.map +1 -0
  118. package/dist/commands/worker/backends/web-types.d.ts +83 -0
  119. package/dist/commands/worker/backends/web-types.js +3 -0
  120. package/dist/commands/worker/backends/web-types.js.map +1 -0
  121. package/dist/commands/worker/backends/web.d.ts +26 -0
  122. package/dist/commands/worker/backends/web.js +178 -0
  123. package/dist/commands/worker/backends/web.js.map +1 -0
  124. package/dist/commands/worker/config.js +12 -5
  125. package/dist/commands/worker/config.js.map +1 -1
  126. package/dist/commands/worker/control.d.ts +2 -0
  127. package/dist/commands/worker/control.js +11 -4
  128. package/dist/commands/worker/control.js.map +1 -1
  129. package/dist/commands/worker/coordinator.d.ts +7 -0
  130. package/dist/commands/worker/coordinator.js +138 -19
  131. package/dist/commands/worker/coordinator.js.map +1 -1
  132. package/dist/commands/worker/herdr/agents.js +5 -4
  133. package/dist/commands/worker/herdr/agents.js.map +1 -1
  134. package/dist/commands/worker/herdr/arguments.js +9 -4
  135. package/dist/commands/worker/herdr/arguments.js.map +1 -1
  136. package/dist/commands/worker/herdr/claude-input.d.ts +2 -0
  137. package/dist/commands/worker/herdr/claude-input.js +20 -0
  138. package/dist/commands/worker/herdr/claude-input.js.map +1 -0
  139. package/dist/commands/worker/herdr/instance.js +1 -1
  140. package/dist/commands/worker/herdr/instance.js.map +1 -1
  141. package/dist/commands/worker/herdr/preflight.d.ts +1 -1
  142. package/dist/commands/worker/herdr/preflight.js +31 -10
  143. package/dist/commands/worker/herdr/preflight.js.map +1 -1
  144. package/dist/commands/worker/herdr.js +5 -1
  145. package/dist/commands/worker/herdr.js.map +1 -1
  146. package/dist/commands/worker/prompts.js +5 -1
  147. package/dist/commands/worker/prompts.js.map +1 -1
  148. package/dist/commands/worker/repositories.js +2 -2
  149. package/dist/commands/worker/repositories.js.map +1 -1
  150. package/dist/commands/worker/runtime.js +62 -10
  151. package/dist/commands/worker/runtime.js.map +1 -1
  152. package/dist/commands/worker/setup-environment.d.ts +2 -1
  153. package/dist/commands/worker/setup-environment.js +10 -4
  154. package/dist/commands/worker/setup-environment.js.map +1 -1
  155. package/dist/commands/worker/setup.js +5 -5
  156. package/dist/commands/worker/setup.js.map +1 -1
  157. package/dist/commands/worker/store.d.ts +2 -1
  158. package/dist/commands/worker/store.js +19 -9
  159. package/dist/commands/worker/store.js.map +1 -1
  160. package/dist/commands/worker/types.d.ts +4 -1
  161. package/dist/session/controller-protocol.d.ts +245 -0
  162. package/dist/session/controller-protocol.js +218 -0
  163. package/dist/session/controller-protocol.js.map +1 -0
  164. package/dist/session/controls.d.ts +28 -0
  165. package/dist/session/controls.js +37 -0
  166. package/dist/session/controls.js.map +1 -0
  167. package/dist/session/protocol.d.ts +290 -0
  168. package/dist/session/protocol.js +307 -0
  169. package/dist/session/protocol.js.map +1 -0
  170. package/package.json +7 -2
@@ -0,0 +1,470 @@
1
+ import { ClaudeControls } from "./controls-claude.js";
2
+ import { NativeTurns } from "./turns.js";
3
+ import { execFile, spawn } from "node:child_process";
4
+ import { randomUUID } from "node:crypto";
5
+ import { realpath } from "node:fs/promises";
6
+ import { query, getSessionInfo, getSessionMessages } from "@anthropic-ai/claude-agent-sdk";
7
+ import { record, string, NativeRpcError } from "./native-rpc.js";
8
+ import { nativeEntryId, parseProviderArguments, readable, limited } from "./projection.js";
9
+ import { formInteraction, validateResponse } from "./interactions.js";
10
+ class InputStream {
11
+ items = [];
12
+ wake = null;
13
+ closed = false;
14
+ push(message) { if (this.closed)
15
+ throw new Error("Native input is closed."); this.items.push(message); this.wake?.(); }
16
+ close() { this.closed = true; this.wake?.(); }
17
+ async *[Symbol.asyncIterator]() { while (!this.closed) {
18
+ const item = this.items.shift();
19
+ if (item) {
20
+ yield item;
21
+ continue;
22
+ }
23
+ await new Promise(resolve => { this.wake = resolve; });
24
+ this.wake = null;
25
+ } }
26
+ }
27
+ const deadline = (promise, message, ms = 30_000) => new Promise((resolve, reject) => { const timer = setTimeout(() => reject(new Error(message)), ms); promise.then(value => { clearTimeout(timer); resolve(value); }, error => { clearTimeout(timer); reject(error); }); });
28
+ export const openClaudeProvider = async (options) => {
29
+ const config = parseProviderArguments("claude", options.args), input = new InputStream();
30
+ const nativeId = options.resumeNativeSessionId ?? randomUUID();
31
+ const capabilities = { send: true, steer: false, cancel: true, respond: true };
32
+ let currentTurnId = null, activity = "initializing", closed = false, verified = false, disconnected = false;
33
+ let controls, turnStartedAt = null;
34
+ let cancellation;
35
+ const steered = new Map();
36
+ const children = [], interactions = new Map();
37
+ const accepted = new Map();
38
+ const cancelWaiters = new Set();
39
+ const state = () => options.onState({ nativeSessionId: verified ? nativeId : null, activity: interactions.size ? "waiting_input" : activity, currentTurnId, turnStartedAt, ...(controls ? { controls: controls.store.value } : {}), capabilities: closed || disconnected ? { send: false, steer: false, cancel: false, respond: false } : capabilities });
40
+ let identityResolve;
41
+ let identityReject;
42
+ const identity = new Promise((resolve, reject) => { identityResolve = resolve; identityReject = reject; });
43
+ void identity.catch(() => { });
44
+ const verify = (sessionId) => { if (sessionId !== nativeId) {
45
+ const error = new Error("Native Claude session identity mismatch.");
46
+ identityReject(error);
47
+ throw error;
48
+ } if (!verified) {
49
+ verified = true;
50
+ identityResolve();
51
+ state();
52
+ } };
53
+ const publishInteraction = (interaction) => options.onTimeline({ entryId: interaction.interactionId, revision: interaction.revision, kind: "interaction", interaction });
54
+ const ask = (interaction, signal, nativeToolId = null) => new Promise((resolve, reject) => {
55
+ const abort = () => { const pending = interactions.get(interaction.interactionId); if (!pending)
56
+ return; interactions.delete(interaction.interactionId); publishInteraction({ ...interaction, revision: "2", state: "expired" }); const error = new Error("Native interaction expired."); reject(error); pending.rejectConfirmation?.(error); state(); };
57
+ if (signal.aborted) {
58
+ reject(new Error("Native interaction expired."));
59
+ return;
60
+ }
61
+ signal.addEventListener("abort", abort, { once: true });
62
+ interactions.set(interaction.interactionId, { interaction, nativeToolId, turnId: currentTurnId, submitted: false, resolve: response => { signal.removeEventListener("abort", abort); resolve(response); }, reject });
63
+ publishInteraction(interaction);
64
+ state();
65
+ });
66
+ const turns = new NativeTurns();
67
+ const confirmInteraction = (id, pending) => {
68
+ if (!pending.submitted)
69
+ return;
70
+ interactions.delete(id);
71
+ publishInteraction({ ...pending.interaction, state: "resolved", revision: "2" });
72
+ pending.confirm?.();
73
+ state();
74
+ };
75
+ const withdrawInput = (id) => {
76
+ const item = steered.get(id);
77
+ if (!item)
78
+ return;
79
+ steered.delete(id);
80
+ item.reject(new NativeRpcError(-32602, "Native queued input was stopped before execution."));
81
+ if (!item.started)
82
+ options.onTimeline({ entryId: nativeEntryId(nativeId, `cancelled:${id}`), revision: "1", kind: "error", code: "input_cancelled", message: "Queued input was stopped before execution." });
83
+ };
84
+ const tools = new Map();
85
+ const textBlocks = new Map();
86
+ const streamKeys = new Map(), assistantKeys = new Map();
87
+ const streamOrdinals = new Map(), assistantOrdinals = new Map();
88
+ const blockKey = (keys, ordinals, source, messageId, kind) => {
89
+ const existing = keys.get(source);
90
+ if (existing)
91
+ return existing;
92
+ const group = `${messageId}:${kind}`, ordinal = ordinals.get(group) ?? 0;
93
+ const key = `${group}:${ordinal}`;
94
+ ordinals.set(group, ordinal + 1);
95
+ keys.set(source, key);
96
+ return key;
97
+ };
98
+ let streamingMessageId = "";
99
+ const project = (raw, history = false) => {
100
+ const m = record(raw), message = record(m.message), type = string(m.type);
101
+ if (m.session_id !== undefined)
102
+ verify(m.session_id);
103
+ if (!history && !m.parent_tool_use_id && type === "system") {
104
+ controls?.observe(m);
105
+ if (m.subtype === "init") {
106
+ const declared = Array.isArray(m.capabilities) ? m.capabilities : [];
107
+ capabilities.steer = ["msg_lifecycle_v1", "interrupt_cancel_queued_v1"].every(value => declared.includes(value));
108
+ state();
109
+ }
110
+ }
111
+ if (!history && !m.parent_tool_use_id && type === "command_lifecycle") {
112
+ const id = string(m.command_uuid);
113
+ if (m.state === "started" && currentTurnId === id && !turnStartedAt) {
114
+ turnStartedAt = new Date().toISOString();
115
+ state();
116
+ }
117
+ const item = steered.get(id);
118
+ if (!item)
119
+ return;
120
+ if (m.state === "queued") {
121
+ item.resolve({ disposition: "queued", ...(currentTurnId ? { turnId: currentTurnId } : {}) });
122
+ options.onInputObserved?.(id);
123
+ }
124
+ if (m.state === "started") {
125
+ item.started = true;
126
+ if (!currentTurnId) {
127
+ currentTurnId = id;
128
+ turnStartedAt = new Date().toISOString();
129
+ activity = "working";
130
+ }
131
+ item.resolve({ disposition: "handled", turnId: currentTurnId });
132
+ options.onInputObserved?.(id);
133
+ state();
134
+ }
135
+ if (m.state === "cancelled")
136
+ withdrawInput(id);
137
+ if (m.state === "completed")
138
+ steered.delete(id);
139
+ return;
140
+ }
141
+ if (type === "stream_event") {
142
+ const e = record(m.event), delta = record(e.delta), block = record(e.content_block);
143
+ if (e.type === "message_start") {
144
+ streamingMessageId = string(record(e.message).id);
145
+ if (!m.parent_tool_use_id && currentTurnId && !turnStartedAt) {
146
+ turnStartedAt = new Date().toISOString();
147
+ state();
148
+ }
149
+ }
150
+ const key = `${streamingMessageId}:${String(e.index)}`;
151
+ if (e.type === "content_block_start" && (block.type === "text" || block.type === "thinking")) {
152
+ textBlocks.set(key, { text: string(block.text ?? block.thinking), kind: block.type });
153
+ blockKey(streamKeys, streamOrdinals, key, streamingMessageId, block.type);
154
+ }
155
+ if (e.type === "content_block_delta" && ["text_delta", "thinking_delta"].includes(string(delta.type))) {
156
+ const value = textBlocks.get(key) ?? { text: "", kind: delta.type === "thinking_delta" ? "thinking" : "text" };
157
+ value.text += string(delta.text ?? delta.thinking);
158
+ textBlocks.set(key, value);
159
+ const canonicalKey = blockKey(streamKeys, streamOrdinals, key, streamingMessageId, value.kind);
160
+ options.onTimeline(value.kind === "thinking" ? { entryId: nativeEntryId(nativeId, canonicalKey), revision: "1", kind: "reasoning", text: limited(value.text) } : { entryId: nativeEntryId(nativeId, canonicalKey), revision: "1", kind: "assistant_message", content: [{ type: "text", text: limited(value.text) }] });
161
+ }
162
+ if (currentTurnId) {
163
+ accepted.get(currentTurnId)?.resolve();
164
+ accepted.delete(currentTurnId);
165
+ }
166
+ return;
167
+ }
168
+ if (type === "user" || type === "assistant") {
169
+ const id = type === "assistant" ? string(message.id) || string(m.uuid) : string(m.uuid) || randomUUID();
170
+ const content = typeof message.content === "string" ? [{ type: "text", text: message.content }] : Array.isArray(message.content) ? message.content : [];
171
+ if (type === "user" && typeof m.uuid === "string" && content.some(part => record(part).type === "text") && !content.some(part => record(part).type === "tool_result"))
172
+ options.onInputObserved?.(m.uuid);
173
+ content.forEach((raw, index) => {
174
+ const part = record(raw);
175
+ // SDK assistant messages arrive one completed block at a time: array index
176
+ // zero can refer to text after a streamed thinking block at index zero.
177
+ const key = type === "assistant" ? blockKey(assistantKeys, assistantOrdinals, `${string(m.uuid) || id}:${index}`, id, string(part.type)) : `${id}:${index}`;
178
+ const base = { entryId: nativeEntryId(nativeId, key), revision: "1" };
179
+ if (part.type === "text")
180
+ options.onTimeline({ ...base, kind: type === "user" ? "user_message" : "assistant_message", content: [{ type: "text", text: limited(string(part.text)) }] });
181
+ else if (part.type === "thinking")
182
+ options.onTimeline({ ...base, kind: "reasoning", text: limited(string(part.thinking)) });
183
+ else if (part.type === "tool_use") {
184
+ const callId = string(part.id), tool = { name: string(part.name), input: limited(readable(part.input)) };
185
+ tools.set(callId, tool);
186
+ options.onTimeline({ entryId: nativeEntryId(nativeId, callId), revision: "1", kind: "tool_call", callId, ...tool, output: [], status: "running", truncated: false });
187
+ }
188
+ else if (part.type === "tool_result") {
189
+ const callId = string(part.tool_use_id);
190
+ if (!history)
191
+ for (const [id, pending] of interactions)
192
+ if (pending.nativeToolId === callId)
193
+ confirmInteraction(id, pending);
194
+ const output = readable(part.content);
195
+ const tool = tools.get(callId) ?? { name: "tool", input: "" };
196
+ options.onTimeline({ entryId: nativeEntryId(nativeId, callId), revision: "1", kind: "tool_call", callId, ...tool, output: [{ type: "text", text: limited(output) }], status: part.is_error ? "failed" : "completed", truncated: output.length > 200_000 });
197
+ }
198
+ else
199
+ options.onTimeline({ ...base, kind: "error", code: "unsupported_native_content", message: `Native ${string(part.type)} content is unavailable in this text session.` });
200
+ });
201
+ if (!history && currentTurnId) {
202
+ accepted.get(currentTurnId)?.resolve();
203
+ accepted.delete(currentTurnId);
204
+ }
205
+ }
206
+ if (type === "result") {
207
+ if (history || m.parent_tool_use_id || m.user_message_uuid && m.user_message_uuid !== currentTurnId)
208
+ return;
209
+ const interrupted = cancellation && cancellation.turnId === currentTurnId && m.user_message_uuid === currentTurnId && ["aborted_streaming", "aborted_tools"].includes(string(m.terminal_reason));
210
+ // The result can precede the interrupt receipt. Only a successful native
211
+ // receipt and an explicitly aborted result establish user cancellation.
212
+ if (interrupted && !cancellation.acknowledged) {
213
+ cancellation.result = raw;
214
+ return;
215
+ }
216
+ if (!m.is_error && !interrupted && currentTurnId)
217
+ for (const [id, pending] of interactions)
218
+ if (pending.nativeToolId === null && pending.turnId === currentTurnId)
219
+ confirmInteraction(id, pending);
220
+ if (currentTurnId)
221
+ turns.complete(currentTurnId, interrupted ? new Error("Native Claude turn was interrupted by the user.") : m.is_error ? new Error(`Native Claude turn failed: ${readable(m.errors ?? m.subtype)}`) : null);
222
+ if (currentTurnId) {
223
+ accepted.get(currentTurnId)?.resolve();
224
+ accepted.delete(currentTurnId);
225
+ }
226
+ if (interrupted)
227
+ options.onTimeline({ entryId: nativeEntryId(nativeId, string(m.uuid) || randomUUID()), revision: "1", kind: "error", code: "turn_interrupted", message: "Interrupted by the user." });
228
+ else if (m.is_error)
229
+ options.onTimeline({ entryId: nativeEntryId(nativeId, string(m.uuid) || randomUUID()), revision: "1", kind: "error", code: "native_result_error", message: limited(readable(m.errors ?? m.result ?? m.subtype)) });
230
+ for (const [id, pending] of interactions) {
231
+ interactions.delete(id);
232
+ publishInteraction({ ...pending.interaction, state: "expired", revision: "2" });
233
+ const ended = new Error("The native turn ended before interaction confirmation.");
234
+ pending.reject(ended);
235
+ pending.rejectConfirmation?.(ended);
236
+ }
237
+ cancellation = undefined;
238
+ currentTurnId = null;
239
+ turnStartedAt = null;
240
+ activity = "idle";
241
+ for (const waiter of cancelWaiters)
242
+ waiter.resolve();
243
+ cancelWaiters.clear();
244
+ state();
245
+ }
246
+ if (type === "system" && m.subtype === "compact_boundary")
247
+ options.onTimeline({ entryId: nativeEntryId(nativeId, string(m.uuid) || randomUUID()), revision: "1", kind: "compaction", summary: "Native conversation context compacted." });
248
+ };
249
+ if (options.resumeNativeSessionId) {
250
+ // SDK history readers use their own process environment, not Query.options.env.
251
+ // A read-only process preserves the writer's private home without mutating ours.
252
+ const history = options.env && options.env.CLAUDE_CONFIG_DIR !== process.env.CLAUDE_CONFIG_DIR
253
+ ? await new Promise((resolve, reject) => {
254
+ const source = `import {getSessionInfo,getSessionMessages} from ${JSON.stringify(import.meta.resolve("@anthropic-ai/claude-agent-sdk"))}; const [id,dir]=process.argv.slice(1); const info=await getSessionInfo(id,{dir}); const messages=info ? await getSessionMessages(id,{dir,includeSystemMessages:true}) : []; process.stdout.write(JSON.stringify({info,messages}));`;
255
+ execFile(process.execPath, ["--input-type=module", "--eval", source, nativeId, options.cwd], { env: options.env, cwd: options.cwd, encoding: "utf8", timeout: 30_000, maxBuffer: 32 * 1024 * 1024, windowsHide: true }, (error, stdout) => {
256
+ if (error) {
257
+ reject(new Error("Native Claude history reader failed, timed out, or exceeded its output limit."));
258
+ return;
259
+ }
260
+ try {
261
+ resolve(JSON.parse(stdout));
262
+ }
263
+ catch {
264
+ reject(new Error("Native Claude history reader returned invalid data."));
265
+ }
266
+ });
267
+ })
268
+ : { info: await getSessionInfo(nativeId, { dir: options.cwd }), messages: await getSessionMessages(nativeId, { dir: options.cwd, includeSystemMessages: true }) };
269
+ if (!history.info || history.info.sessionId !== nativeId || history.info.cwd && await realpath(history.info.cwd) !== await realpath(options.cwd) || !Array.isArray(history.messages))
270
+ throw new Error("Native Claude history identity or working directory is unavailable.");
271
+ for (const m of history.messages)
272
+ project(m, true);
273
+ }
274
+ const native = query({ prompt: input, options: {
275
+ ...(options.resumeNativeSessionId ? { resume: nativeId } : { sessionId: nativeId }), cwd: options.cwd,
276
+ ...(!options.resumeNativeSessionId && options.model ? { model: options.model } : {}), ...(!options.resumeNativeSessionId && config.effort ? { effort: config.effort } : {}),
277
+ ...(config.additionalDirectories ? { additionalDirectories: config.additionalDirectories } : {}),
278
+ ...(options.executable ? { pathToClaudeCodeExecutable: options.executable } : {}), env: options.env ?? process.env,
279
+ allowDangerouslySkipPermissions: true, persistSession: true, includePartialMessages: true, settingSources: ["user", "project", "local"], ...(!options.resumeNativeSessionId ? { permissionMode: options.unattended ? "bypassPermissions" : config.permissionMode ?? "default", ...(options.unattended ? { sandbox: { enabled: false } } : {}) } : {}),
280
+ hooks: { SessionStart: [{ hooks: [async (event) => { verify(event.session_id); return {}; }] }] },
281
+ spawnClaudeCodeProcess: args => { const child = spawn(args.command, args.args, { cwd: args.cwd ?? options.cwd, env: args.env, signal: args.signal, stdio: ["pipe", "pipe", "pipe"], windowsHide: true, detached: false }); children.push(child); options.onSpawn(child); child.stderr.on("data", chunk => options.onDiagnostic?.(String(chunk))); return child; },
282
+ canUseTool: async (name, toolInput, context) => {
283
+ const base = { interactionId: randomUUID(), revision: "1", state: "pending" };
284
+ if (name === "AskUserQuestion") {
285
+ const interaction = { ...base, kind: "question", title: "Agent question", canDismiss: true, questions: (Array.isArray(toolInput.questions) ? toolInput.questions : []).map((raw, i) => { const q = record(raw); return { questionId: String(i), label: string(q.question), multiple: q.multiSelect === true, required: true, sensitive: false, allowCustom: true, options: (Array.isArray(q.options) ? q.options : []).map(raw => { const o = record(raw); return { id: string(o.label), label: string(o.label) }; }) }; }) };
286
+ const response = await ask(interaction, context.signal, context.toolUseID);
287
+ if (response.kind !== "question")
288
+ return { behavior: "deny", message: "User dismissed the question." };
289
+ return { behavior: "allow", updatedInput: { ...toolInput, answers: Object.fromEntries(response.answers.map(a => [interaction.questions.find(q => q.questionId === a.questionId).label, [...a.optionIds, ...(a.text ? [a.text] : [])].join(", ")])) } };
290
+ }
291
+ const response = await ask({ ...base, kind: "approval", title: `Approve ${name}`, detail: limited(readable(toolInput)), actions: ["allow_once", "reject"] }, context.signal, context.toolUseID);
292
+ return response.kind === "approval" && response.action === "allow_once" ? { behavior: "allow", updatedInput: toolInput } : { behavior: "deny", message: "User rejected this operation." };
293
+ },
294
+ onElicitation: async (request, context) => {
295
+ if (request.mode !== "form")
296
+ return { action: "decline" };
297
+ const response = await ask(formInteraction(request.message, request.requestedSchema), context.signal);
298
+ return response.kind === "form" ? { action: "accept", content: Object.fromEntries(response.values.map(v => [v.fieldId, Array.isArray(v.value) ? [...v.value] : v.value])) } : { action: "decline" };
299
+ }, stderr: line => options.onDiagnostic?.(line),
300
+ } });
301
+ controls = new ClaudeControls(native, options.resumeNativeSessionId ? null : options.model, options.resumeNativeSessionId ? undefined : config.effort, state, options.onControlConfirmed, !!options.resumeNativeSessionId, options.controlsRevisionFloor);
302
+ const disconnect = (error) => {
303
+ if (disconnected || closed)
304
+ return;
305
+ disconnected = true;
306
+ controls?.close();
307
+ input.close();
308
+ native.close();
309
+ identityReject(error);
310
+ for (const item of steered.values())
311
+ item.reject(error);
312
+ steered.clear();
313
+ for (const pending of accepted.values())
314
+ pending.reject(error);
315
+ accepted.clear();
316
+ for (const waiter of cancelWaiters)
317
+ waiter.reject(error);
318
+ cancelWaiters.clear();
319
+ if (currentTurnId)
320
+ turns.complete(currentTurnId, error);
321
+ for (const [id, pending] of interactions) {
322
+ interactions.delete(id);
323
+ pending.reject(error);
324
+ pending.rejectConfirmation?.(error);
325
+ publishInteraction({ ...pending.interaction, revision: "2", state: "expired" });
326
+ }
327
+ currentTurnId = null;
328
+ activity = "unknown";
329
+ options.onTimeline({ entryId: randomUUID(), revision: "1", kind: "error", code: "native_connection_lost", message: error.message });
330
+ state();
331
+ options.onFatalError?.(error);
332
+ };
333
+ const pump = (async () => {
334
+ try {
335
+ for await (const message of native)
336
+ project(message);
337
+ if (!closed)
338
+ disconnect(new Error("Native Claude connection ended; pending operation results are unknown."));
339
+ }
340
+ catch (error) {
341
+ if (!closed && !disconnected)
342
+ disconnect(new Error(`Native Claude connection lost; pending operation results are unknown: ${error instanceof Error ? error.message : String(error)}`));
343
+ }
344
+ })();
345
+ const close = async () => {
346
+ if (closed)
347
+ return;
348
+ closed = true;
349
+ controls?.close();
350
+ input.close();
351
+ native.close();
352
+ const stopped = new Error("Native Claude process stopped; pending operation results are unknown.");
353
+ for (const item of steered.values())
354
+ item.reject(stopped);
355
+ steered.clear();
356
+ for (const pending of accepted.values())
357
+ pending.reject(stopped);
358
+ accepted.clear();
359
+ for (const waiter of cancelWaiters)
360
+ waiter.reject(stopped);
361
+ cancelWaiters.clear();
362
+ if (currentTurnId)
363
+ turns.complete(currentTurnId, stopped);
364
+ await Promise.all(children.map(child => child.exitCode !== null || child.signalCode !== null ? Promise.resolve() : deadline(new Promise(resolve => child.once("close", () => resolve())), "Native Claude stop is unconfirmed.", 10_000)));
365
+ await pump;
366
+ activity = "stopped";
367
+ for (const p of interactions.values()) {
368
+ publishInteraction({ ...p.interaction, revision: "2", state: "expired" });
369
+ p.reject(stopped);
370
+ p.rejectConfirmation?.(stopped);
371
+ }
372
+ interactions.clear();
373
+ state();
374
+ };
375
+ try {
376
+ await deadline(native.initializationResult(), "Claude initialization timed out.");
377
+ if (disconnected)
378
+ throw new Error("Native Claude connection ended during initialization.");
379
+ await controls.refresh();
380
+ activity = "idle";
381
+ state();
382
+ }
383
+ catch (error) {
384
+ await close();
385
+ throw error;
386
+ }
387
+ const send = async (text, operationId, expectedTurnId) => {
388
+ if (closed || disconnected || currentTurnId !== expectedTurnId || interactions.size)
389
+ throw new NativeRpcError(-32602, "Claude cannot accept input in this session state.");
390
+ if (currentTurnId !== null) {
391
+ if (!capabilities.steer)
392
+ throw new NativeRpcError(-32602, "This Claude version cannot accept input during an active turn.");
393
+ const confirmation = new Promise((resolve, reject) => steered.set(operationId, { text, started: false, resolve, reject }));
394
+ input.push({ type: "user", uuid: operationId, session_id: nativeId, message: { role: "user", content: text }, parent_tool_use_id: null });
395
+ options.onTimeline({ entryId: nativeEntryId(nativeId, `${operationId}:0`), revision: "1", kind: "user_message", content: [{ type: "text", text: limited(text) }] });
396
+ return deadline(confirmation, "Claude steering acceptance is unknown.", 60_000);
397
+ }
398
+ if ([...steered.values()].some(item => !item.started))
399
+ throw new NativeRpcError(-32602, "Claude has pending native input.");
400
+ currentTurnId = operationId;
401
+ turnStartedAt = null;
402
+ activity = "working";
403
+ state();
404
+ const receipt = new Promise((resolve, reject) => accepted.set(operationId, { resolve, reject }));
405
+ input.push({ type: "user", uuid: operationId, session_id: nativeId, message: { role: "user", content: text }, parent_tool_use_id: null });
406
+ // SDK input is not echoed in every live stream. Display the dispatch with
407
+ // the same identity used by native echo/history, without recording an ACK
408
+ // or feeding locally submitted content into native recovery evidence.
409
+ options.onTimeline({ entryId: nativeEntryId(nativeId, `${operationId}:0`), revision: "1", kind: "user_message", content: [{ type: "text", text: limited(text) }] });
410
+ await deadline(Promise.all([identity, receipt]), "Claude input result or native session identity is unknown.", 60_000);
411
+ return { disposition: "started", turnId: operationId };
412
+ };
413
+ return {
414
+ nativeSessionId: nativeId, send,
415
+ async refreshControls() { await controls.refresh(); return { disposition: "handled" }; },
416
+ async setSetting(id, value, operationId, revision) { if (closed || disconnected)
417
+ throw new NativeRpcError(-32602, "Native session unavailable."); await controls.set(id, value, operationId, revision); return { disposition: "handled" }; },
418
+ async executeCommand(id, args, operationId, revision, expectedTurnId) {
419
+ if (currentTurnId !== null || expectedTurnId !== null || interactions.size)
420
+ throw new NativeRpcError(-32602, "Claude commands require an idle session.");
421
+ const command = controls.command(id, revision);
422
+ return send(`/${command.name}${args ? ` ${args}` : ""}`, operationId, null);
423
+ },
424
+ async cancel(expectedTurnId) {
425
+ if (closed || disconnected || !currentTurnId || currentTurnId !== expectedTurnId || cancellation)
426
+ throw new NativeRpcError(-32602, "Native turn changed or cancellation is already pending.");
427
+ let waiter;
428
+ const stopped = new Promise((resolve, reject) => { waiter = { resolve, reject }; cancelWaiters.add(waiter); });
429
+ void stopped.catch(() => { });
430
+ const attempt = { turnId: currentTurnId, acknowledged: false, result: undefined };
431
+ cancellation = attempt;
432
+ try {
433
+ const interrupt = native.interrupt.bind(native);
434
+ const result = await deadline(interrupt(capabilities.steer ? { cancelQueued: true } : undefined), "Claude interrupt receipt is unconfirmed.");
435
+ if (closed || disconnected)
436
+ throw new Error("Native Claude closed before interrupt confirmation.");
437
+ attempt.acknowledged = true;
438
+ for (const id of Array.isArray(record(result).cancelled) ? record(result).cancelled : [])
439
+ if (typeof id === "string")
440
+ withdrawInput(id);
441
+ if (attempt.result)
442
+ project(attempt.result);
443
+ await deadline(stopped, "Claude turn cancellation is unconfirmed.");
444
+ return { disposition: "handled" };
445
+ }
446
+ finally {
447
+ cancelWaiters.delete(waiter);
448
+ if (cancellation === attempt) {
449
+ cancellation = undefined;
450
+ if (attempt.result && !attempt.acknowledged && !closed && !disconnected)
451
+ project(attempt.result);
452
+ }
453
+ }
454
+ },
455
+ async respond(interactionId, revision, response) {
456
+ const pending = interactions.get(interactionId);
457
+ if (!pending || pending.submitted || pending.interaction.revision !== revision)
458
+ throw new NativeRpcError(-32602, "Native interaction is stale.");
459
+ validateResponse(pending.interaction, response);
460
+ const confirmation = new Promise((resolve, reject) => { pending.confirm = resolve; pending.rejectConfirmation = reject; });
461
+ pending.submitted = true;
462
+ pending.resolve(response);
463
+ // A resolved SDK callback is not a native receipt. The matching tool result,
464
+ // or a successful elicitation turn, supplies the confirmation boundary.
465
+ await deadline(confirmation, "Native Claude interaction result is unknown.");
466
+ return { disposition: "handled" };
467
+ }, waitForTurn: (turnId, deadline) => turns.wait(turnId, deadline), close,
468
+ };
469
+ };
470
+ //# sourceMappingURL=claude.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../../../src/commands/controller/providers/claude.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { NativeProvider, ProviderOptions } from "./types.js";
2
+ export declare const openCodexProvider: (options: ProviderOptions) => Promise<NativeProvider>;