@zakstam/codex-local-component 0.2.0 → 0.3.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 (199) hide show
  1. package/README.md +33 -3
  2. package/dist/app-server/client.d.ts +41 -1
  3. package/dist/app-server/client.d.ts.map +1 -1
  4. package/dist/app-server/client.js +67 -3
  5. package/dist/app-server/client.js.map +1 -1
  6. package/dist/app-server/index.d.ts +1 -1
  7. package/dist/app-server/index.d.ts.map +1 -1
  8. package/dist/app-server/index.js +1 -1
  9. package/dist/app-server/index.js.map +1 -1
  10. package/dist/client/index.d.ts +4 -2
  11. package/dist/client/index.d.ts.map +1 -1
  12. package/dist/client/index.js +3 -1
  13. package/dist/client/index.js.map +1 -1
  14. package/dist/client/reasoning.d.ts +10 -0
  15. package/dist/client/reasoning.d.ts.map +1 -0
  16. package/dist/client/reasoning.js +4 -0
  17. package/dist/client/reasoning.js.map +1 -0
  18. package/dist/client/serverRequests.d.ts +14 -0
  19. package/dist/client/serverRequests.d.ts.map +1 -0
  20. package/dist/client/serverRequests.js +10 -0
  21. package/dist/client/serverRequests.js.map +1 -0
  22. package/dist/client/threads.d.ts +39 -3
  23. package/dist/client/threads.d.ts.map +1 -1
  24. package/dist/client/threads.js +18 -0
  25. package/dist/client/threads.js.map +1 -1
  26. package/dist/client/types.d.ts +23 -1
  27. package/dist/client/types.d.ts.map +1 -1
  28. package/dist/component/_generated/component.d.ts +131 -0
  29. package/dist/component/_generated/component.d.ts.map +1 -1
  30. package/dist/component/approvals.d.ts +1 -1
  31. package/dist/component/index.d.ts +2 -0
  32. package/dist/component/index.d.ts.map +1 -1
  33. package/dist/component/index.js +2 -0
  34. package/dist/component/index.js.map +1 -1
  35. package/dist/component/ingest/applyApprovals.d.ts +5 -0
  36. package/dist/component/ingest/applyApprovals.d.ts.map +1 -0
  37. package/dist/component/ingest/applyApprovals.js +59 -0
  38. package/dist/component/ingest/applyApprovals.js.map +1 -0
  39. package/dist/component/ingest/applyMessages.d.ts +4 -0
  40. package/dist/component/ingest/applyMessages.d.ts.map +1 -0
  41. package/dist/component/ingest/applyMessages.js +149 -0
  42. package/dist/component/ingest/applyMessages.js.map +1 -0
  43. package/dist/component/ingest/applyStreams.d.ts +7 -0
  44. package/dist/component/ingest/applyStreams.d.ts.map +1 -0
  45. package/dist/component/ingest/applyStreams.js +189 -0
  46. package/dist/component/ingest/applyStreams.js.map +1 -0
  47. package/dist/component/ingest/applyTurns.d.ts +6 -0
  48. package/dist/component/ingest/applyTurns.d.ts.map +1 -0
  49. package/dist/component/ingest/applyTurns.js +94 -0
  50. package/dist/component/ingest/applyTurns.js.map +1 -0
  51. package/dist/component/ingest/checkpoints.d.ts +12 -0
  52. package/dist/component/ingest/checkpoints.d.ts.map +1 -0
  53. package/dist/component/ingest/checkpoints.js +63 -0
  54. package/dist/component/ingest/checkpoints.js.map +1 -0
  55. package/dist/component/ingest/index.d.ts +10 -0
  56. package/dist/component/ingest/index.d.ts.map +1 -0
  57. package/dist/component/ingest/index.js +76 -0
  58. package/dist/component/ingest/index.js.map +1 -0
  59. package/dist/component/ingest/normalize.d.ts +5 -0
  60. package/dist/component/ingest/normalize.d.ts.map +1 -0
  61. package/dist/component/ingest/normalize.js +35 -0
  62. package/dist/component/ingest/normalize.js.map +1 -0
  63. package/dist/component/ingest/postIngest.d.ts +4 -0
  64. package/dist/component/ingest/postIngest.d.ts.map +1 -0
  65. package/dist/component/ingest/postIngest.js +31 -0
  66. package/dist/component/ingest/postIngest.js.map +1 -0
  67. package/dist/component/ingest/sessionGuard.d.ts +9 -0
  68. package/dist/component/ingest/sessionGuard.d.ts.map +1 -0
  69. package/dist/component/ingest/sessionGuard.js +102 -0
  70. package/dist/component/ingest/sessionGuard.js.map +1 -0
  71. package/dist/component/ingest/stateCache.d.ts +19 -0
  72. package/dist/component/ingest/stateCache.d.ts.map +1 -0
  73. package/dist/component/ingest/stateCache.js +121 -0
  74. package/dist/component/ingest/stateCache.js.map +1 -0
  75. package/dist/component/ingest/types.d.ts +129 -0
  76. package/dist/component/ingest/types.d.ts.map +1 -0
  77. package/dist/component/ingest/types.js +2 -0
  78. package/dist/component/ingest/types.js.map +1 -0
  79. package/dist/component/reasoning.d.ts +37 -0
  80. package/dist/component/reasoning.d.ts.map +1 -0
  81. package/dist/component/reasoning.js +48 -0
  82. package/dist/component/reasoning.js.map +1 -0
  83. package/dist/component/schema.d.ts +105 -11
  84. package/dist/component/schema.d.ts.map +1 -1
  85. package/dist/component/schema.js +57 -0
  86. package/dist/component/schema.js.map +1 -1
  87. package/dist/component/serverRequests.d.ts +53 -0
  88. package/dist/component/serverRequests.d.ts.map +1 -0
  89. package/dist/component/serverRequests.js +187 -0
  90. package/dist/component/serverRequests.js.map +1 -0
  91. package/dist/component/streamStats.d.ts +10 -0
  92. package/dist/component/streamStats.d.ts.map +1 -1
  93. package/dist/component/streamStats.js +34 -0
  94. package/dist/component/streamStats.js.map +1 -1
  95. package/dist/component/streams.d.ts +1 -1
  96. package/dist/component/streams.js +2 -2
  97. package/dist/component/streams.js.map +1 -1
  98. package/dist/component/sync.d.ts +4 -22
  99. package/dist/component/sync.d.ts.map +1 -1
  100. package/dist/component/sync.js +45 -1
  101. package/dist/component/sync.js.map +1 -1
  102. package/dist/component/syncHelpers.d.ts +12 -35
  103. package/dist/component/syncHelpers.d.ts.map +1 -1
  104. package/dist/component/syncHelpers.js +11 -228
  105. package/dist/component/syncHelpers.js.map +1 -1
  106. package/dist/component/syncIngest.d.ts +4 -44
  107. package/dist/component/syncIngest.d.ts.map +1 -1
  108. package/dist/component/syncIngest.js +72 -679
  109. package/dist/component/syncIngest.js.map +1 -1
  110. package/dist/component/syncRuntime.d.ts +7 -1
  111. package/dist/component/syncRuntime.d.ts.map +1 -1
  112. package/dist/component/syncRuntime.js +8 -2
  113. package/dist/component/syncRuntime.js.map +1 -1
  114. package/dist/component/threads.d.ts +38 -0
  115. package/dist/component/threads.d.ts.map +1 -1
  116. package/dist/component/threads.js +166 -28
  117. package/dist/component/threads.js.map +1 -1
  118. package/dist/component/types.d.ts +5 -1
  119. package/dist/component/types.d.ts.map +1 -1
  120. package/dist/component/types.js +2 -0
  121. package/dist/component/types.js.map +1 -1
  122. package/dist/component/utils.d.ts.map +1 -1
  123. package/dist/component/utils.js +4 -3
  124. package/dist/component/utils.js.map +1 -1
  125. package/dist/host/convex-entry.d.ts +3 -0
  126. package/dist/host/convex-entry.d.ts.map +1 -0
  127. package/dist/host/convex-entry.js +3 -0
  128. package/dist/host/convex-entry.js.map +1 -0
  129. package/dist/host/convex.d.ts +102 -0
  130. package/dist/host/convex.d.ts.map +1 -0
  131. package/dist/host/convex.js +59 -0
  132. package/dist/host/convex.js.map +1 -0
  133. package/dist/host/convexSlice.d.ts +504 -0
  134. package/dist/host/convexSlice.d.ts.map +1 -0
  135. package/dist/host/convexSlice.js +315 -0
  136. package/dist/host/convexSlice.js.map +1 -0
  137. package/dist/host/index.d.ts +4 -0
  138. package/dist/host/index.d.ts.map +1 -0
  139. package/dist/host/index.js +4 -0
  140. package/dist/host/index.js.map +1 -0
  141. package/dist/host/runtime.d.ts +214 -0
  142. package/dist/host/runtime.d.ts.map +1 -0
  143. package/dist/host/runtime.js +616 -0
  144. package/dist/host/runtime.js.map +1 -0
  145. package/dist/index.d.ts +1 -0
  146. package/dist/index.d.ts.map +1 -1
  147. package/dist/index.js +1 -0
  148. package/dist/index.js.map +1 -1
  149. package/dist/local-adapter/bridge.d.ts +3 -2
  150. package/dist/local-adapter/bridge.d.ts.map +1 -1
  151. package/dist/local-adapter/bridge.js.map +1 -1
  152. package/dist/mapping.d.ts +29 -0
  153. package/dist/mapping.d.ts.map +1 -1
  154. package/dist/mapping.js +136 -46
  155. package/dist/mapping.js.map +1 -1
  156. package/dist/protocol/classifier.d.ts +2 -12
  157. package/dist/protocol/classifier.d.ts.map +1 -1
  158. package/dist/protocol/classifier.js +1 -107
  159. package/dist/protocol/classifier.js.map +1 -1
  160. package/dist/protocol/events.d.ts +72 -0
  161. package/dist/protocol/events.d.ts.map +1 -0
  162. package/dist/protocol/events.js +533 -0
  163. package/dist/protocol/events.js.map +1 -0
  164. package/dist/protocol/generated.d.ts +16 -2
  165. package/dist/protocol/generated.d.ts.map +1 -1
  166. package/dist/protocol/index.d.ts +3 -0
  167. package/dist/protocol/index.d.ts.map +1 -1
  168. package/dist/protocol/index.js +3 -0
  169. package/dist/protocol/index.js.map +1 -1
  170. package/dist/protocol/outbound.d.ts +13 -0
  171. package/dist/protocol/outbound.d.ts.map +1 -0
  172. package/dist/protocol/outbound.js +2 -0
  173. package/dist/protocol/outbound.js.map +1 -0
  174. package/dist/protocol/parser.d.ts +3 -2
  175. package/dist/protocol/parser.d.ts.map +1 -1
  176. package/dist/protocol/parser.js +99 -3
  177. package/dist/protocol/parser.js.map +1 -1
  178. package/dist/protocol/schemas/CommandExecutionRequestApprovalResponse.json +72 -0
  179. package/dist/protocol/schemas/DynamicToolCallResponse.json +66 -0
  180. package/dist/protocol/schemas/FileChangeRequestApprovalResponse.json +47 -0
  181. package/dist/protocol/schemas/ToolRequestUserInputResponse.json +34 -0
  182. package/dist/react/index.d.ts +3 -1
  183. package/dist/react/index.d.ts.map +1 -1
  184. package/dist/react/index.js +2 -0
  185. package/dist/react/index.js.map +1 -1
  186. package/dist/react/types.d.ts +13 -1
  187. package/dist/react/types.d.ts.map +1 -1
  188. package/dist/react/useCodexReasoning.d.ts +7 -0
  189. package/dist/react/useCodexReasoning.d.ts.map +1 -0
  190. package/dist/react/useCodexReasoning.js +16 -0
  191. package/dist/react/useCodexReasoning.js.map +1 -0
  192. package/dist/react/useCodexStreamOverlay.d.ts.map +1 -1
  193. package/dist/react/useCodexStreamOverlay.js +68 -23
  194. package/dist/react/useCodexStreamOverlay.js.map +1 -1
  195. package/dist/react/useCodexStreamingReasoning.d.ts +12 -0
  196. package/dist/react/useCodexStreamingReasoning.d.ts.map +1 -0
  197. package/dist/react/useCodexStreamingReasoning.js +21 -0
  198. package/dist/react/useCodexStreamingReasoning.js.map +1 -0
  199. package/package.json +9 -1
@@ -0,0 +1,616 @@
1
+ import { buildCommandExecutionApprovalResponse, buildDynamicToolCallResponse, buildFileChangeApprovalResponse, buildThreadArchiveRequest, buildThreadForkRequest, buildThreadListRequest, buildThreadLoadedListRequest, buildThreadReadRequest, buildThreadResumeRequest, buildThreadRollbackRequest, buildInitializeRequestWithCapabilities, buildInitializedNotification, buildThreadStartRequest, buildThreadUnarchiveRequest, buildToolRequestUserInputResponse, buildTurnInterruptRequest, buildTurnStartTextRequest, isUuidLikeThreadId, } from "../app-server/client.js";
2
+ import { CodexLocalBridge } from "../local-adapter/bridge.js";
3
+ const MAX_BATCH_SIZE = 32;
4
+ const MANAGED_SERVER_REQUEST_METHODS = new Set([
5
+ "item/commandExecution/requestApproval",
6
+ "item/fileChange/requestApproval",
7
+ "item/tool/requestUserInput",
8
+ "item/tool/call",
9
+ ]);
10
+ function toRequestKey(requestId) {
11
+ return `${typeof requestId}:${String(requestId)}`;
12
+ }
13
+ function asObject(value) {
14
+ return typeof value === "object" && value !== null ? value : null;
15
+ }
16
+ function parseManagedServerRequestFromEvent(event) {
17
+ if (!MANAGED_SERVER_REQUEST_METHODS.has(event.kind)) {
18
+ return null;
19
+ }
20
+ let parsed;
21
+ try {
22
+ parsed = JSON.parse(event.payloadJson);
23
+ }
24
+ catch {
25
+ return null;
26
+ }
27
+ const message = asObject(parsed);
28
+ if (!message || typeof message.method !== "string") {
29
+ return null;
30
+ }
31
+ if (!MANAGED_SERVER_REQUEST_METHODS.has(message.method)) {
32
+ return null;
33
+ }
34
+ if (typeof message.id !== "number" && typeof message.id !== "string") {
35
+ return null;
36
+ }
37
+ const params = asObject(message.params);
38
+ if (!params) {
39
+ return null;
40
+ }
41
+ if (typeof params.threadId !== "string" || typeof params.turnId !== "string") {
42
+ return null;
43
+ }
44
+ const method = message.method;
45
+ const itemId = typeof params.itemId === "string"
46
+ ? params.itemId
47
+ : method === "item/tool/call" && typeof params.callId === "string"
48
+ ? params.callId
49
+ : null;
50
+ if (!itemId) {
51
+ return null;
52
+ }
53
+ const reason = typeof params.reason === "string" ? params.reason : undefined;
54
+ const questionsRaw = params.questions;
55
+ const questions = method === "item/tool/requestUserInput" && Array.isArray(questionsRaw)
56
+ ? questionsRaw
57
+ : undefined;
58
+ return {
59
+ requestId: message.id,
60
+ method,
61
+ threadId: params.threadId,
62
+ turnId: params.turnId,
63
+ itemId,
64
+ payloadJson: event.payloadJson,
65
+ createdAt: event.createdAt,
66
+ ...(reason ? { reason } : {}),
67
+ ...(questions ? { questions } : {}),
68
+ };
69
+ }
70
+ function randomSessionId() {
71
+ if (typeof crypto !== "undefined" && typeof crypto.randomUUID === "function") {
72
+ return crypto.randomUUID();
73
+ }
74
+ return `${Date.now()}-${Math.random().toString(36).slice(2, 10)}`;
75
+ }
76
+ function isServerNotification(message) {
77
+ return "method" in message;
78
+ }
79
+ function isResponse(message) {
80
+ return "id" in message && !isServerNotification(message);
81
+ }
82
+ export function createCodexHostRuntime(args) {
83
+ let bridge = null;
84
+ let actor = null;
85
+ let sessionId = null;
86
+ let threadId = null;
87
+ let runtimeThreadId = null;
88
+ let externalThreadId = null;
89
+ let turnId = null;
90
+ let turnInFlight = false;
91
+ let turnSettled = false;
92
+ let interruptRequested = false;
93
+ let nextRequestId = 1;
94
+ let ingestQueue = [];
95
+ let flushTimer = null;
96
+ let flushTail = Promise.resolve();
97
+ let ingestFlushMs = 250;
98
+ const pendingServerRequests = new Map();
99
+ const pendingRequests = new Map();
100
+ const emitState = (lastError = null) => {
101
+ args.handlers?.onState?.({
102
+ running: !!bridge,
103
+ threadId,
104
+ externalThreadId,
105
+ turnId,
106
+ turnInFlight,
107
+ pendingServerRequestCount: pendingServerRequests.size,
108
+ lastError,
109
+ });
110
+ };
111
+ const clearFlushTimer = () => {
112
+ if (flushTimer) {
113
+ clearTimeout(flushTimer);
114
+ flushTimer = null;
115
+ }
116
+ };
117
+ const requestId = () => {
118
+ const id = nextRequestId;
119
+ nextRequestId += 1;
120
+ return id;
121
+ };
122
+ const assertRuntimeReady = () => {
123
+ if (!bridge) {
124
+ throw new Error("Bridge not started");
125
+ }
126
+ return bridge;
127
+ };
128
+ const methodForRequest = (message) => message.method;
129
+ const sendMessage = (message, trackedMethod) => {
130
+ const runtimeBridge = assertRuntimeReady();
131
+ runtimeBridge.send(message);
132
+ if ("id" in message && typeof message.id === "number" && trackedMethod) {
133
+ pendingRequests.set(message.id, { method: trackedMethod });
134
+ }
135
+ };
136
+ const sendRequest = (message) => {
137
+ const runtimeBridge = assertRuntimeReady();
138
+ if (typeof message.id !== "number") {
139
+ throw new Error("Runtime requires numeric request ids.");
140
+ }
141
+ const messageId = message.id;
142
+ return new Promise((resolve, reject) => {
143
+ pendingRequests.set(messageId, { method: methodForRequest(message), resolve, reject });
144
+ runtimeBridge.send(message);
145
+ });
146
+ };
147
+ const registerPendingServerRequest = async (request) => {
148
+ pendingServerRequests.set(toRequestKey(request.requestId), request);
149
+ if (actor) {
150
+ await args.persistence.upsertPendingServerRequest({ actor, request });
151
+ }
152
+ emitState();
153
+ };
154
+ const resolvePendingServerRequest = async (argsForResolve) => {
155
+ const key = toRequestKey(argsForResolve.requestId);
156
+ const pending = pendingServerRequests.get(key);
157
+ if (!pending) {
158
+ return;
159
+ }
160
+ pendingServerRequests.delete(key);
161
+ if (actor) {
162
+ await args.persistence.resolvePendingServerRequest({
163
+ actor,
164
+ threadId: pending.threadId,
165
+ requestId: pending.requestId,
166
+ status: argsForResolve.status,
167
+ resolvedAt: Date.now(),
168
+ ...(argsForResolve.responseJson ? { responseJson: argsForResolve.responseJson } : {}),
169
+ });
170
+ }
171
+ emitState();
172
+ };
173
+ const expireTurnServerRequests = async (turn) => {
174
+ if (!turn.turnId) {
175
+ return;
176
+ }
177
+ const idsToExpire = [];
178
+ for (const request of pendingServerRequests.values()) {
179
+ if (request.threadId === turn.threadId && request.turnId === turn.turnId) {
180
+ idsToExpire.push(request.requestId);
181
+ }
182
+ }
183
+ for (const requestId of idsToExpire) {
184
+ await resolvePendingServerRequest({ requestId, status: "expired" });
185
+ }
186
+ };
187
+ const getPendingServerRequest = (requestId) => {
188
+ const pending = pendingServerRequests.get(toRequestKey(requestId));
189
+ if (!pending) {
190
+ throw new Error(`No pending server request found for id ${String(requestId)}`);
191
+ }
192
+ return pending;
193
+ };
194
+ const sendServerRequestResponse = async (requestId, responseMessage) => {
195
+ getPendingServerRequest(requestId);
196
+ sendMessage(responseMessage);
197
+ await resolvePendingServerRequest({
198
+ requestId,
199
+ status: "answered",
200
+ responseJson: JSON.stringify(responseMessage),
201
+ });
202
+ };
203
+ const throwIfTurnMutationLocked = () => {
204
+ if (turnInFlight && !turnSettled) {
205
+ throw new Error("Cannot change thread lifecycle while a turn is in flight.");
206
+ }
207
+ };
208
+ const setRuntimeThreadFromResponse = (message, method) => {
209
+ if (message.error || !message.result || typeof message.result !== "object") {
210
+ return;
211
+ }
212
+ if (!("thread" in message.result) || typeof message.result.thread !== "object" || message.result.thread === null) {
213
+ return;
214
+ }
215
+ if (!("id" in message.result.thread) || typeof message.result.thread.id !== "string") {
216
+ return;
217
+ }
218
+ if (method === "thread/start" || method === "thread/resume" || method === "thread/fork") {
219
+ runtimeThreadId = message.result.thread.id;
220
+ if (!externalThreadId) {
221
+ externalThreadId = message.result.thread.id;
222
+ }
223
+ emitState();
224
+ }
225
+ };
226
+ const flushQueue = async () => {
227
+ if (!actor || !sessionId || !threadId) {
228
+ return;
229
+ }
230
+ const activeActor = actor;
231
+ const activeSessionId = sessionId;
232
+ const activeThreadId = threadId;
233
+ const next = flushTail.then(async () => {
234
+ clearFlushTimer();
235
+ while (ingestQueue.length > 0) {
236
+ const batch = ingestQueue.splice(0, MAX_BATCH_SIZE);
237
+ const result = await args.persistence.ingestSafe({
238
+ actor: activeActor,
239
+ sessionId: activeSessionId,
240
+ threadId: activeThreadId,
241
+ deltas: batch,
242
+ });
243
+ if (result.status === "rejected") {
244
+ throw new Error(`ingestSafe rejected: ${result.errors.map((err) => err.code).join(",")}`);
245
+ }
246
+ }
247
+ });
248
+ flushTail = next.catch(() => undefined);
249
+ await next;
250
+ };
251
+ const enqueueIngestDelta = async (delta, forceFlush) => {
252
+ ingestQueue.push(delta);
253
+ if (forceFlush || ingestQueue.length >= MAX_BATCH_SIZE) {
254
+ await flushQueue();
255
+ return;
256
+ }
257
+ if (!flushTimer) {
258
+ flushTimer = setTimeout(() => {
259
+ flushTimer = null;
260
+ void flushQueue();
261
+ }, turnInFlight ? ingestFlushMs : 5000);
262
+ }
263
+ };
264
+ const start = async (startArgs) => {
265
+ if (bridge) {
266
+ emitState();
267
+ return;
268
+ }
269
+ actor = startArgs.actor;
270
+ sessionId = startArgs.sessionId ? `${startArgs.sessionId}-${randomSessionId()}` : randomSessionId();
271
+ externalThreadId = startArgs.externalThreadId ?? null;
272
+ ingestFlushMs = startArgs.ingestFlushMs ?? 250;
273
+ const bridgeConfig = {};
274
+ if (args.bridge?.codexBin !== undefined) {
275
+ bridgeConfig.codexBin = args.bridge.codexBin;
276
+ }
277
+ const resolvedCwd = startArgs.cwd ?? args.bridge?.cwd;
278
+ if (resolvedCwd !== undefined) {
279
+ bridgeConfig.cwd = resolvedCwd;
280
+ }
281
+ const bridgeHandlers = {
282
+ onEvent: async (event) => {
283
+ if (!actor || !sessionId) {
284
+ return;
285
+ }
286
+ if (!runtimeThreadId ||
287
+ (!isUuidLikeThreadId(runtimeThreadId) && isUuidLikeThreadId(event.threadId))) {
288
+ runtimeThreadId = event.threadId;
289
+ }
290
+ if (!threadId) {
291
+ const binding = await args.persistence.ensureThread({
292
+ actor,
293
+ externalThreadId: externalThreadId ?? runtimeThreadId,
294
+ ...(startArgs.model !== undefined ? { model: startArgs.model } : {}),
295
+ ...(startArgs.cwd !== undefined ? { cwd: startArgs.cwd } : {}),
296
+ localThreadId: event.threadId,
297
+ });
298
+ threadId = binding.threadId;
299
+ externalThreadId = binding.externalThreadId ?? runtimeThreadId;
300
+ await args.persistence.ensureSession({
301
+ actor,
302
+ sessionId,
303
+ threadId,
304
+ lastEventCursor: 0,
305
+ });
306
+ emitState();
307
+ }
308
+ if (event.kind === "turn/started" && event.turnId) {
309
+ turnId = event.turnId;
310
+ turnInFlight = true;
311
+ turnSettled = false;
312
+ emitState();
313
+ if (interruptRequested) {
314
+ if (!runtimeThreadId) {
315
+ return;
316
+ }
317
+ sendMessage(buildTurnInterruptRequest(requestId(), {
318
+ threadId: runtimeThreadId,
319
+ turnId: event.turnId,
320
+ }), "turn/interrupt");
321
+ interruptRequested = false;
322
+ }
323
+ }
324
+ if (event.kind === "turn/completed") {
325
+ turnId = null;
326
+ turnInFlight = false;
327
+ turnSettled = true;
328
+ emitState();
329
+ await expireTurnServerRequests({
330
+ threadId: threadId ?? event.threadId,
331
+ ...(event.turnId ? { turnId: event.turnId } : {}),
332
+ });
333
+ }
334
+ if (event.kind === "error") {
335
+ turnInFlight = false;
336
+ turnSettled = true;
337
+ if (!event.turnId || event.turnId === turnId) {
338
+ turnId = null;
339
+ }
340
+ emitState();
341
+ await expireTurnServerRequests({
342
+ threadId: threadId ?? event.threadId,
343
+ ...(event.turnId ? { turnId: event.turnId } : {}),
344
+ });
345
+ }
346
+ const pendingServerRequest = parseManagedServerRequestFromEvent(event);
347
+ if (pendingServerRequest) {
348
+ const persistedThreadId = threadId;
349
+ if (persistedThreadId) {
350
+ await registerPendingServerRequest({
351
+ ...pendingServerRequest,
352
+ threadId: persistedThreadId,
353
+ });
354
+ }
355
+ }
356
+ args.handlers?.onEvent?.(event);
357
+ const persistedThreadId = threadId;
358
+ if (!persistedThreadId) {
359
+ return;
360
+ }
361
+ const delta = event.streamId && event.turnId
362
+ ? {
363
+ type: "stream_delta",
364
+ eventId: event.eventId,
365
+ kind: event.kind,
366
+ payloadJson: event.payloadJson,
367
+ cursorStart: event.cursorStart,
368
+ cursorEnd: event.cursorEnd,
369
+ createdAt: event.createdAt,
370
+ threadId: persistedThreadId,
371
+ turnId: event.turnId,
372
+ streamId: event.streamId,
373
+ }
374
+ : {
375
+ type: "lifecycle_event",
376
+ eventId: event.eventId,
377
+ kind: event.kind,
378
+ payloadJson: event.payloadJson,
379
+ createdAt: event.createdAt,
380
+ threadId: persistedThreadId,
381
+ ...(event.turnId ? { turnId: event.turnId } : {}),
382
+ };
383
+ const forceFlush = event.kind === "turn/completed" ||
384
+ event.kind === "error";
385
+ await enqueueIngestDelta(delta, forceFlush);
386
+ },
387
+ onGlobalMessage: async (message) => {
388
+ if (isResponse(message) && typeof message.id === "number") {
389
+ const pending = pendingRequests.get(message.id);
390
+ pendingRequests.delete(message.id);
391
+ if (pending) {
392
+ setRuntimeThreadFromResponse(message, pending.method);
393
+ }
394
+ if (message.error && pending?.method === "turn/start") {
395
+ turnInFlight = false;
396
+ turnSettled = true;
397
+ turnId = null;
398
+ emitState();
399
+ }
400
+ if (pending?.resolve) {
401
+ if (message.error) {
402
+ const code = typeof message.error.code === "number" ? String(message.error.code) : "UNKNOWN";
403
+ pending.reject?.(new Error(`[${code}] ${message.error.message}`));
404
+ }
405
+ else {
406
+ pending.resolve(message);
407
+ }
408
+ }
409
+ }
410
+ args.handlers?.onGlobalMessage?.(message);
411
+ },
412
+ onProtocolError: async ({ line, error }) => {
413
+ const message = error instanceof Error ? error.message : String(error);
414
+ emitState(message);
415
+ args.handlers?.onProtocolError?.({ message, line });
416
+ },
417
+ onProcessExit: (code) => {
418
+ emitState(`codex exited with code ${String(code)}`);
419
+ },
420
+ };
421
+ bridge = args.bridgeFactory
422
+ ? args.bridgeFactory(bridgeConfig, bridgeHandlers)
423
+ : new CodexLocalBridge(bridgeConfig, bridgeHandlers);
424
+ bridge.start();
425
+ sendMessage(buildInitializeRequestWithCapabilities(requestId(), {
426
+ name: "codex_local_host_runtime",
427
+ title: "Codex Local Host Runtime",
428
+ version: "0.1.0",
429
+ }, {
430
+ experimentalApi: Array.isArray(startArgs.dynamicTools) && startArgs.dynamicTools.length > 0,
431
+ }), "initialize");
432
+ sendMessage(buildInitializedNotification());
433
+ const strategy = startArgs.threadStrategy ?? "start";
434
+ if ((strategy === "resume" || strategy === "fork") && !startArgs.runtimeThreadId) {
435
+ throw new Error(`runtimeThreadId is required when threadStrategy=\"${strategy}\".`);
436
+ }
437
+ if (strategy === "start") {
438
+ sendMessage(buildThreadStartRequest(requestId(), {
439
+ ...(startArgs.model ? { model: startArgs.model } : {}),
440
+ ...(startArgs.cwd ? { cwd: startArgs.cwd } : {}),
441
+ ...(startArgs.dynamicTools ? { dynamicTools: startArgs.dynamicTools } : {}),
442
+ }), "thread/start");
443
+ }
444
+ else if (strategy === "resume") {
445
+ sendMessage(buildThreadResumeRequest(requestId(), {
446
+ threadId: startArgs.runtimeThreadId,
447
+ ...(startArgs.model ? { model: startArgs.model } : {}),
448
+ ...(startArgs.cwd ? { cwd: startArgs.cwd } : {}),
449
+ ...(startArgs.dynamicTools ? { dynamicTools: startArgs.dynamicTools } : {}),
450
+ }), "thread/resume");
451
+ }
452
+ else {
453
+ sendMessage(buildThreadForkRequest(requestId(), {
454
+ threadId: startArgs.runtimeThreadId,
455
+ ...(startArgs.model ? { model: startArgs.model } : {}),
456
+ ...(startArgs.cwd ? { cwd: startArgs.cwd } : {}),
457
+ }), "thread/fork");
458
+ }
459
+ emitState();
460
+ };
461
+ const stop = async () => {
462
+ clearFlushTimer();
463
+ await flushQueue();
464
+ for (const [, pending] of pendingRequests) {
465
+ pending.reject?.(new Error("Bridge stopped before request completed."));
466
+ }
467
+ bridge?.stop();
468
+ bridge = null;
469
+ actor = null;
470
+ sessionId = null;
471
+ threadId = null;
472
+ runtimeThreadId = null;
473
+ externalThreadId = null;
474
+ turnId = null;
475
+ turnInFlight = false;
476
+ turnSettled = false;
477
+ interruptRequested = false;
478
+ pendingRequests.clear();
479
+ pendingServerRequests.clear();
480
+ emitState();
481
+ };
482
+ const sendTurn = (text) => {
483
+ if (!bridge || !runtimeThreadId) {
484
+ throw new Error("Bridge/thread not ready. Start runtime first.");
485
+ }
486
+ if (turnInFlight && !turnSettled) {
487
+ throw new Error("A turn is already in flight.");
488
+ }
489
+ turnInFlight = true;
490
+ turnSettled = false;
491
+ emitState();
492
+ sendMessage(buildTurnStartTextRequest(requestId(), {
493
+ threadId: runtimeThreadId,
494
+ text,
495
+ }), "turn/start");
496
+ };
497
+ const interrupt = () => {
498
+ if (!bridge || !runtimeThreadId) {
499
+ return;
500
+ }
501
+ if (!turnId) {
502
+ interruptRequested = true;
503
+ return;
504
+ }
505
+ sendMessage(buildTurnInterruptRequest(requestId(), { threadId: runtimeThreadId, turnId }), "turn/interrupt");
506
+ };
507
+ const resumeThread = async (nextRuntimeThreadId, params) => {
508
+ throwIfTurnMutationLocked();
509
+ return sendRequest(buildThreadResumeRequest(requestId(), {
510
+ threadId: nextRuntimeThreadId,
511
+ ...(params ?? {}),
512
+ }));
513
+ };
514
+ const forkThread = async (sourceRuntimeThreadId, params) => {
515
+ throwIfTurnMutationLocked();
516
+ return sendRequest(buildThreadForkRequest(requestId(), {
517
+ threadId: sourceRuntimeThreadId,
518
+ ...(params ?? {}),
519
+ }));
520
+ };
521
+ const archiveThread = async (targetRuntimeThreadId) => {
522
+ throwIfTurnMutationLocked();
523
+ return sendRequest(buildThreadArchiveRequest(requestId(), {
524
+ threadId: targetRuntimeThreadId,
525
+ }));
526
+ };
527
+ const unarchiveThread = async (targetRuntimeThreadId) => {
528
+ throwIfTurnMutationLocked();
529
+ return sendRequest(buildThreadUnarchiveRequest(requestId(), {
530
+ threadId: targetRuntimeThreadId,
531
+ }));
532
+ };
533
+ const rollbackThread = async (targetRuntimeThreadId, numTurns) => {
534
+ throwIfTurnMutationLocked();
535
+ return sendRequest(buildThreadRollbackRequest(requestId(), {
536
+ threadId: targetRuntimeThreadId,
537
+ numTurns,
538
+ }));
539
+ };
540
+ const readThread = async (targetRuntimeThreadId, includeTurns = false) => sendRequest(buildThreadReadRequest(requestId(), {
541
+ threadId: targetRuntimeThreadId,
542
+ includeTurns,
543
+ }));
544
+ const listThreads = async (params) => sendRequest(buildThreadListRequest(requestId(), params));
545
+ const listLoadedThreads = async (params) => sendRequest(buildThreadLoadedListRequest(requestId(), params));
546
+ const listPendingServerRequests = async (threadIdFilter) => {
547
+ if (actor) {
548
+ return args.persistence.listPendingServerRequests({
549
+ actor,
550
+ ...(threadIdFilter ? { threadId: threadIdFilter } : {}),
551
+ });
552
+ }
553
+ return [];
554
+ };
555
+ const respondCommandApproval = async (argsForDecision) => {
556
+ const pending = getPendingServerRequest(argsForDecision.requestId);
557
+ if (pending.method !== "item/commandExecution/requestApproval") {
558
+ throw new Error(`Server request ${String(argsForDecision.requestId)} is ${pending.method}, expected item/commandExecution/requestApproval`);
559
+ }
560
+ await sendServerRequestResponse(argsForDecision.requestId, buildCommandExecutionApprovalResponse(argsForDecision.requestId, argsForDecision.decision));
561
+ };
562
+ const respondFileChangeApproval = async (argsForDecision) => {
563
+ const pending = getPendingServerRequest(argsForDecision.requestId);
564
+ if (pending.method !== "item/fileChange/requestApproval") {
565
+ throw new Error(`Server request ${String(argsForDecision.requestId)} is ${pending.method}, expected item/fileChange/requestApproval`);
566
+ }
567
+ await sendServerRequestResponse(argsForDecision.requestId, buildFileChangeApprovalResponse(argsForDecision.requestId, argsForDecision.decision));
568
+ };
569
+ const respondToolUserInput = async (argsForAnswer) => {
570
+ const pending = getPendingServerRequest(argsForAnswer.requestId);
571
+ if (pending.method !== "item/tool/requestUserInput") {
572
+ throw new Error(`Server request ${String(argsForAnswer.requestId)} is ${pending.method}, expected item/tool/requestUserInput`);
573
+ }
574
+ await sendServerRequestResponse(argsForAnswer.requestId, buildToolRequestUserInputResponse(argsForAnswer.requestId, argsForAnswer.answers));
575
+ };
576
+ const respondDynamicToolCall = async (argsForResult) => {
577
+ const pending = getPendingServerRequest(argsForResult.requestId);
578
+ if (pending.method !== "item/tool/call") {
579
+ throw new Error(`Server request ${String(argsForResult.requestId)} is ${pending.method}, expected item/tool/call`);
580
+ }
581
+ await sendServerRequestResponse(argsForResult.requestId, buildDynamicToolCallResponse(argsForResult.requestId, {
582
+ success: argsForResult.success,
583
+ contentItems: argsForResult.contentItems,
584
+ }));
585
+ };
586
+ const getState = () => ({
587
+ running: !!bridge,
588
+ threadId,
589
+ externalThreadId,
590
+ turnId,
591
+ turnInFlight,
592
+ pendingServerRequestCount: pendingServerRequests.size,
593
+ lastError: null,
594
+ });
595
+ return {
596
+ start,
597
+ stop,
598
+ sendTurn,
599
+ interrupt,
600
+ resumeThread,
601
+ forkThread,
602
+ archiveThread,
603
+ unarchiveThread,
604
+ rollbackThread,
605
+ readThread,
606
+ listThreads,
607
+ listLoadedThreads,
608
+ listPendingServerRequests,
609
+ respondCommandApproval,
610
+ respondFileChangeApproval,
611
+ respondToolUserInput,
612
+ respondDynamicToolCall,
613
+ getState,
614
+ };
615
+ }
616
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/host/runtime.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export * from "./client/index.js";
2
+ export * from "./host/index.js";
2
3
  export * from "./mapping.js";
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -1,3 +1,4 @@
1
1
  export * from "./client/index.js";
2
+ export * from "./host/index.js";
2
3
  export * from "./mapping.js";
3
4
  //# sourceMappingURL=index.js.map