@gkorepanov/ccodex 0.3.0 → 0.3.4

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 (176) hide show
  1. package/README.md +27 -9
  2. package/RELEASING.md +14 -15
  3. package/SSH_VERIFY.md +11 -0
  4. package/archive/README.md +23 -0
  5. package/compatibility.json +1 -2
  6. package/config.example.toml +12 -4
  7. package/dist/claude/asyncQueue.d.ts +3 -0
  8. package/dist/claude/asyncQueue.js +13 -2
  9. package/dist/claude/asyncQueue.js.map +1 -1
  10. package/dist/claude/commandActions.d.ts +6 -0
  11. package/dist/claude/commandActions.js +57 -0
  12. package/dist/claude/commandActions.js.map +1 -0
  13. package/dist/claude/compactCommand.d.ts +2 -0
  14. package/dist/claude/compactCommand.js +7 -0
  15. package/dist/claude/compactCommand.js.map +1 -0
  16. package/dist/claude/goalTools.d.ts +15 -0
  17. package/dist/claude/goalTools.js +173 -0
  18. package/dist/claude/goalTools.js.map +1 -0
  19. package/dist/claude/hookMapper.d.ts +17 -4
  20. package/dist/claude/hookMapper.js +7 -5
  21. package/dist/claude/hookMapper.js.map +1 -1
  22. package/dist/claude/rateLimits.d.ts +72 -0
  23. package/dist/claude/rateLimits.js +330 -0
  24. package/dist/claude/rateLimits.js.map +1 -0
  25. package/dist/claude/responseItemValidation.d.ts +2 -0
  26. package/dist/claude/responseItemValidation.js +40 -0
  27. package/dist/claude/responseItemValidation.js.map +1 -0
  28. package/dist/claude/resultClassifier.d.ts +8 -2
  29. package/dist/claude/resultClassifier.js +1 -1
  30. package/dist/claude/resultClassifier.js.map +1 -1
  31. package/dist/claude/service.d.ts +108 -28
  32. package/dist/claude/service.js +1276 -668
  33. package/dist/claude/service.js.map +1 -1
  34. package/dist/claude/session/backgroundOutput.d.ts +2 -0
  35. package/dist/claude/session/backgroundOutput.js +29 -0
  36. package/dist/claude/session/backgroundOutput.js.map +1 -0
  37. package/dist/claude/session/commands.d.ts +855 -0
  38. package/dist/claude/session/commands.js +2 -0
  39. package/dist/claude/session/commands.js.map +1 -0
  40. package/dist/claude/session/goalState.d.ts +49 -0
  41. package/dist/claude/session/goalState.js +407 -0
  42. package/dist/claude/session/goalState.js.map +1 -0
  43. package/dist/claude/session/mailbox.d.ts +52 -0
  44. package/dist/claude/session/mailbox.js +190 -0
  45. package/dist/claude/session/mailbox.js.map +1 -0
  46. package/dist/claude/session/outputAdapter.d.ts +11 -0
  47. package/dist/claude/session/outputAdapter.js +31 -0
  48. package/dist/claude/session/outputAdapter.js.map +1 -0
  49. package/dist/claude/session/providerFacts.d.ts +47 -0
  50. package/dist/claude/session/providerFacts.js +84 -0
  51. package/dist/claude/session/providerFacts.js.map +1 -0
  52. package/dist/claude/session/providerRuntime.d.ts +1 -0
  53. package/dist/claude/session/providerRuntime.js +2 -0
  54. package/dist/claude/session/providerRuntime.js.map +1 -0
  55. package/dist/claude/session/providerRuntimeFactory.d.ts +49 -0
  56. package/dist/claude/session/providerRuntimeFactory.js +127 -0
  57. package/dist/claude/session/providerRuntimeFactory.js.map +1 -0
  58. package/dist/claude/session/repository.d.ts +57 -0
  59. package/dist/claude/session/repository.js +161 -0
  60. package/dist/claude/session/repository.js.map +1 -0
  61. package/dist/claude/session/runtime.d.ts +46 -0
  62. package/dist/claude/session/runtime.js +140 -0
  63. package/dist/claude/session/runtime.js.map +1 -0
  64. package/dist/claude/session/scopeState.d.ts +61 -0
  65. package/dist/claude/session/scopeState.js +74 -0
  66. package/dist/claude/session/scopeState.js.map +1 -0
  67. package/dist/claude/session/session.d.ts +281 -0
  68. package/dist/claude/session/session.js +6664 -0
  69. package/dist/claude/session/session.js.map +1 -0
  70. package/dist/claude/session/shellRunner.d.ts +13 -0
  71. package/dist/claude/session/shellRunner.js +103 -0
  72. package/dist/claude/session/shellRunner.js.map +1 -0
  73. package/dist/claude/session/usage.d.ts +2 -0
  74. package/dist/claude/session/usage.js +10 -0
  75. package/dist/claude/session/usage.js.map +1 -0
  76. package/dist/claude/sessionRegistry.d.ts +26 -0
  77. package/dist/claude/sessionRegistry.js +118 -0
  78. package/dist/claude/sessionRegistry.js.map +1 -0
  79. package/dist/claude/shellSupervisor.d.ts +1 -0
  80. package/dist/claude/shellSupervisor.js +69 -0
  81. package/dist/claude/shellSupervisor.js.map +1 -0
  82. package/dist/claude/statusCommand.d.ts +21 -0
  83. package/dist/claude/statusCommand.js +97 -0
  84. package/dist/claude/statusCommand.js.map +1 -0
  85. package/dist/claude/toolMapper.d.ts +9 -1
  86. package/dist/claude/toolMapper.js +92 -16
  87. package/dist/claude/toolMapper.js.map +1 -1
  88. package/dist/claude/transcriptBrancher.d.ts +37 -0
  89. package/dist/claude/transcriptBrancher.js +103 -0
  90. package/dist/claude/transcriptBrancher.js.map +1 -0
  91. package/dist/cli/delegate.js +23 -1
  92. package/dist/cli/delegate.js.map +1 -1
  93. package/dist/cli/main.js +28 -12
  94. package/dist/cli/main.js.map +1 -1
  95. package/dist/codex/generated/ResponseItemRuntimeSchema.d.ts +8 -0
  96. package/dist/codex/generated/ResponseItemRuntimeSchema.js +7 -0
  97. package/dist/codex/generated/ResponseItemRuntimeSchema.js.map +1 -0
  98. package/dist/compatibility/probe.js +11 -6
  99. package/dist/compatibility/probe.js.map +1 -1
  100. package/dist/config/config.d.ts +9 -0
  101. package/dist/config/config.js +80 -11
  102. package/dist/config/config.js.map +1 -1
  103. package/dist/daemon/daemon.js +91 -43
  104. package/dist/daemon/daemon.js.map +1 -1
  105. package/dist/daemon/ownership.d.ts +15 -0
  106. package/dist/daemon/ownership.js +185 -0
  107. package/dist/daemon/ownership.js.map +1 -0
  108. package/dist/daemon/supervisor.d.ts +3 -0
  109. package/dist/daemon/supervisor.js +37 -1
  110. package/dist/daemon/supervisor.js.map +1 -1
  111. package/dist/gateway/clientConnection.d.ts +7 -1
  112. package/dist/gateway/clientConnection.js +435 -48
  113. package/dist/gateway/clientConnection.js.map +1 -1
  114. package/dist/gateway/remoteRelay.js +0 -1
  115. package/dist/gateway/remoteRelay.js.map +1 -1
  116. package/dist/gateway/server.d.ts +1 -1
  117. package/dist/gateway/server.js +37 -9
  118. package/dist/gateway/server.js.map +1 -1
  119. package/dist/gateway/subscriptions.d.ts +9 -2
  120. package/dist/gateway/subscriptions.js +87 -9
  121. package/dist/gateway/subscriptions.js.map +1 -1
  122. package/dist/gateway/transientNotice.d.ts +2 -0
  123. package/dist/gateway/transientNotice.js +42 -1
  124. package/dist/gateway/transientNotice.js.map +1 -1
  125. package/dist/handoff/service.d.ts +32 -3
  126. package/dist/handoff/service.js +304 -26
  127. package/dist/handoff/service.js.map +1 -1
  128. package/dist/handoff/titleGeneration.d.ts +28 -0
  129. package/dist/handoff/titleGeneration.js +151 -0
  130. package/dist/handoff/titleGeneration.js.map +1 -0
  131. package/dist/management/doctor.d.ts +1 -1
  132. package/dist/management/doctor.js +32 -23
  133. package/dist/management/doctor.js.map +1 -1
  134. package/dist/management/lifecycle.js +14 -2
  135. package/dist/management/lifecycle.js.map +1 -1
  136. package/dist/management/remoteShim.d.ts +10 -0
  137. package/dist/management/remoteShim.js +65 -0
  138. package/dist/management/remoteShim.js.map +1 -0
  139. package/dist/management/setup.d.ts +4 -0
  140. package/dist/management/setup.js +108 -39
  141. package/dist/management/setup.js.map +1 -1
  142. package/dist/observability/metrics.d.ts +2 -0
  143. package/dist/observability/metrics.js +6 -0
  144. package/dist/observability/metrics.js.map +1 -1
  145. package/dist/protocol/errors.d.ts +1 -0
  146. package/dist/protocol/errors.js +4 -1
  147. package/dist/protocol/errors.js.map +1 -1
  148. package/dist/runtime/dependencies.js +2 -2
  149. package/dist/runtime/dependencies.js.map +1 -1
  150. package/dist/runtime/providerAvailability.d.ts +24 -0
  151. package/dist/runtime/providerAvailability.js +107 -0
  152. package/dist/runtime/providerAvailability.js.map +1 -0
  153. package/dist/state/stateCommand.d.ts +21 -0
  154. package/dist/state/stateCommand.js +198 -0
  155. package/dist/state/stateCommand.js.map +1 -0
  156. package/dist/state/stockStateTracker.d.ts +14 -0
  157. package/dist/state/stockStateTracker.js +120 -0
  158. package/dist/state/stockStateTracker.js.map +1 -0
  159. package/dist/store/HybridStore.d.ts +118 -2
  160. package/dist/store/HybridStore.js +23 -1
  161. package/dist/store/HybridStore.js.map +1 -1
  162. package/dist/store/memoryStore.d.ts +57 -7
  163. package/dist/store/memoryStore.js +337 -5
  164. package/dist/store/memoryStore.js.map +1 -1
  165. package/dist/store/sqliteStore.d.ts +30 -4
  166. package/dist/store/sqliteStore.js +395 -42
  167. package/dist/store/sqliteStore.js.map +1 -1
  168. package/install.sh +2 -2
  169. package/package.json +18 -10
  170. package/dist/claude/interactions.d.ts +0 -23
  171. package/dist/claude/interactions.js +0 -77
  172. package/dist/claude/interactions.js.map +0 -1
  173. package/dist/claude/sessionRuntime.d.ts +0 -102
  174. package/dist/claude/sessionRuntime.js +0 -1361
  175. package/dist/claude/sessionRuntime.js.map +0 -1
  176. /package/{BUILD_BENCHMARKS.md → archive/BUILD_BENCHMARKS.md} +0 -0
@@ -1,4 +1,5 @@
1
- import { extname } from "node:path";
1
+ import { basename, extname, isAbsolute, resolve } from "node:path";
2
+ import { bashCommandActions } from "./commandActions.js";
2
3
  const fileTools = new Set(["Edit", "Write", "NotebookEdit"]);
3
4
  const commandTools = new Set(["Bash"]);
4
5
  const collabTools = new Set(["Agent", "Task"]);
@@ -6,6 +7,72 @@ const imageExtensions = new Set([".gif", ".jpeg", ".jpg", ".png", ".webp"]);
6
7
  function text(value) {
7
8
  return typeof value === "string" ? value : "";
8
9
  }
10
+ function absolutePath(path, cwd) {
11
+ return isAbsolute(path) ? path : resolve(cwd, path);
12
+ }
13
+ function imagePath(name, input, cwd) {
14
+ if (name !== "Read")
15
+ return undefined;
16
+ const path = text(input.file_path) || text(input.path);
17
+ if (!path)
18
+ return undefined;
19
+ if (/^https?:\/\//i.test(path))
20
+ return undefined;
21
+ return imageExtensions.has(extname(path).toLocaleLowerCase()) ? absolutePath(path, cwd) : undefined;
22
+ }
23
+ function nativeCommand(name, input, cwd) {
24
+ if (name === "Bash") {
25
+ const command = text(input.command);
26
+ return { command, actions: bashCommandActions(command, cwd) };
27
+ }
28
+ if (name === "Read") {
29
+ const path = text(input.file_path) || text(input.path);
30
+ if (!path)
31
+ return { command: "", actions: [] };
32
+ const command = `Read ${path}`;
33
+ const resolved = absolutePath(path, cwd);
34
+ return { command, actions: [{ type: "read", command, name: basename(resolved) || resolved, path: resolved }] };
35
+ }
36
+ if (name === "Glob") {
37
+ const pattern = text(input.pattern) || text(input.glob);
38
+ if (!pattern)
39
+ return { command: "", actions: [] };
40
+ const path = text(input.path) || cwd;
41
+ const command = `Glob ${pattern} in ${path}`;
42
+ return { command, actions: [{ type: "listFiles", command, path }] };
43
+ }
44
+ if (name === "Grep") {
45
+ const query = text(input.pattern) || text(input.query);
46
+ if (!query)
47
+ return { command: "", actions: [] };
48
+ const path = text(input.path) || null;
49
+ const command = `Grep ${query}${path ? ` in ${path}` : ""}`;
50
+ return { command, actions: [{ type: "search", command, query, path }] };
51
+ }
52
+ if (name === "ToolSearch") {
53
+ const query = text(input.query);
54
+ if (!query)
55
+ return { command: "", actions: [] };
56
+ const command = `ToolSearch ${query}`;
57
+ return { command, actions: [{ type: "search", command, query, path: null }] };
58
+ }
59
+ if (name === "TaskOutput") {
60
+ const taskId = text(input.task_id) || text(input.taskId);
61
+ if (!taskId)
62
+ return { command: "", actions: [] };
63
+ const wait = input.block === true ? " (wait)" : "";
64
+ const command = `TaskOutput ${taskId}${wait}`;
65
+ return { command, actions: [{ type: "unknown", command }] };
66
+ }
67
+ return undefined;
68
+ }
69
+ function commandItem(state, command, actions, cwd) {
70
+ return {
71
+ type: "commandExecution", id: state.itemId, command, cwd,
72
+ processId: null, source: "agent", status: "inProgress", commandActions: actions,
73
+ aggregatedOutput: null, exitCode: null, durationMs: null,
74
+ };
75
+ }
9
76
  function mcpName(name) {
10
77
  if (!name.startsWith("mcp__"))
11
78
  return undefined;
@@ -40,12 +107,8 @@ export function startTool(index, block, cwd, threadId) {
40
107
  const input = block.input && typeof block.input === "object" ? block.input : {};
41
108
  const state = { index, providerId, itemId: providerId, name, input, partialInput: "", started: false, startedAtMs: Date.now() };
42
109
  if (commandTools.has(name)) {
43
- return { state, item: {
44
- type: "commandExecution", id: state.itemId, command: text(input.command), cwd,
45
- processId: null, source: "agent", status: "inProgress",
46
- commandActions: text(input.command) ? [{ type: "unknown", command: text(input.command) }] : [],
47
- aggregatedOutput: null, exitCode: null, durationMs: null,
48
- } };
110
+ const native = nativeCommand(name, input, cwd);
111
+ return { state, item: commandItem(state, native.command, native.actions, cwd) };
49
112
  }
50
113
  if (fileTools.has(name))
51
114
  return { state, item: { type: "fileChange", id: state.itemId, changes: [], status: "inProgress" } };
@@ -65,12 +128,9 @@ export function startTool(index, block, cwd, threadId) {
65
128
  const url = text(input.url);
66
129
  return { state, item: { type: "webSearch", id: state.itemId, query: url, action: { type: "openPage", url: url || null } } };
67
130
  }
68
- if (name === "Read") {
69
- const path = text(input.file_path) || text(input.path);
70
- if (path && imageExtensions.has(extname(path).toLocaleLowerCase())) {
71
- return { state, item: { type: "imageView", id: state.itemId, path } };
72
- }
73
- }
131
+ const native = nativeCommand(name, input, cwd);
132
+ if (native)
133
+ return { state, item: commandItem(state, native.command, native.actions, cwd) };
74
134
  if (collabTools.has(name)) {
75
135
  return { state, item: {
76
136
  type: "collabAgentToolCall", id: state.itemId, tool: "spawnAgent", status: "inProgress",
@@ -85,16 +145,32 @@ export function startTool(index, block, cwd, threadId) {
85
145
  arguments: input, status: "inProgress", contentItems: null, success: null, durationMs: null,
86
146
  } };
87
147
  }
88
- export function updateToolInput(item, state, input) {
148
+ export function updateToolInput(item, state, input, cwd) {
89
149
  state.input = input;
90
150
  if (item.type === "commandExecution") {
91
- item.command = text(input.command);
92
- item.commandActions = item.command ? [{ type: "unknown", command: item.command }] : [];
151
+ const native = nativeCommand(state.name, input, item.cwd);
152
+ item.command = native?.command ?? text(input.command);
153
+ item.commandActions = native?.actions ?? (item.command ? [{ type: "unknown", command: item.command }] : []);
93
154
  }
94
155
  else if (item.type === "dynamicToolCall" || item.type === "mcpToolCall")
95
156
  item.arguments = input;
96
157
  else if (item.type === "plan")
97
158
  item.text = planText(input);
159
+ return item;
160
+ }
161
+ export function isImageRead(state, cwd) {
162
+ return imagePath(state.name, state.input, cwd) !== undefined;
163
+ }
164
+ export function projectToolCompletion(item, state, output, isError, result, cwd) {
165
+ const path = !isError ? imagePath(state.name, state.input, cwd) : undefined;
166
+ if (path) {
167
+ const image = { type: "imageView", id: state.itemId, path };
168
+ return { started: image, completed: image };
169
+ }
170
+ return {
171
+ started: item,
172
+ completed: completeTool(item, output, isError, result, state.startedAtMs),
173
+ };
98
174
  }
99
175
  function resultDiff(result) {
100
176
  const diff = text(result?.diff) || text(result?.patch);
@@ -1 +1 @@
1
- {"version":3,"file":"toolMapper.js","sourceRoot":"","sources":["../../src/claude/toolMapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toolMapper.js","sourceRoot":"","sources":["../../src/claude/toolMapper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import { deleteSession, forkSession, importSessionToStore } from "@anthropic-ai/claude-agent-sdk";
2
+ export interface ForkedTranscript {
3
+ readonly sessionId: string;
4
+ readonly uuidMap: ReadonlyMap<string, string>;
5
+ }
6
+ export interface CompactionBoundary {
7
+ readonly uuid: string;
8
+ readonly compact_metadata: {
9
+ readonly preserved_segment?: {
10
+ readonly anchor_uuid: string;
11
+ };
12
+ readonly preserved_messages?: {
13
+ readonly anchor_uuid: string;
14
+ };
15
+ };
16
+ }
17
+ export interface TranscriptBrancher {
18
+ forkWithProvenance(sourceSessionId: string, boundaryUuid: string, cwd: string, expectedBoundaries: readonly string[]): Promise<ForkedTranscript>;
19
+ resolveCompactionBoundary(sessionId: string, cwd: string, boundary: CompactionBoundary): Promise<string>;
20
+ delete(sessionId: string, cwd: string): Promise<void>;
21
+ }
22
+ export interface TranscriptSdk {
23
+ forkSession: typeof forkSession;
24
+ importSessionToStore: typeof importSessionToStore;
25
+ deleteSession: typeof deleteSession;
26
+ }
27
+ export declare class SdkTranscriptBrancher implements TranscriptBrancher {
28
+ private readonly sdk;
29
+ private readonly compactionPoll;
30
+ constructor(sdk?: TranscriptSdk, compactionPoll?: {
31
+ readonly attempts: number;
32
+ readonly delayMs: number;
33
+ });
34
+ forkWithProvenance(sourceSessionId: string, boundaryUuid: string, cwd: string, expectedBoundaries: readonly string[]): Promise<ForkedTranscript>;
35
+ resolveCompactionBoundary(sessionId: string, cwd: string, boundary: CompactionBoundary): Promise<string>;
36
+ delete(sessionId: string, cwd: string): Promise<void>;
37
+ }
@@ -0,0 +1,103 @@
1
+ import { deleteSession, forkSession, importSessionToStore, } from "@anthropic-ai/claude-agent-sdk";
2
+ class RecordingSessionStore {
3
+ sessionId;
4
+ mainEntries = [];
5
+ constructor(sessionId) {
6
+ this.sessionId = sessionId;
7
+ }
8
+ async append(key, entries) {
9
+ if (key.sessionId === this.sessionId && key.subpath === undefined)
10
+ this.mainEntries.push(...structuredClone(entries));
11
+ }
12
+ async load(_key) {
13
+ return null;
14
+ }
15
+ entries() {
16
+ return this.mainEntries;
17
+ }
18
+ }
19
+ function stringField(value) {
20
+ return typeof value === "string" ? value : undefined;
21
+ }
22
+ function provenance(entry) {
23
+ const value = entry.forkedFrom;
24
+ if (!value || typeof value !== "object")
25
+ return undefined;
26
+ const fields = value;
27
+ return { sessionId: stringField(fields.sessionId), messageUuid: stringField(fields.messageUuid) };
28
+ }
29
+ export class SdkTranscriptBrancher {
30
+ sdk;
31
+ compactionPoll;
32
+ constructor(sdk = { forkSession, importSessionToStore, deleteSession }, compactionPoll = { attempts: 8, delayMs: 10 }) {
33
+ this.sdk = sdk;
34
+ this.compactionPoll = compactionPoll;
35
+ }
36
+ async forkWithProvenance(sourceSessionId, boundaryUuid, cwd, expectedBoundaries) {
37
+ let forkedSessionId;
38
+ try {
39
+ const fork = await this.sdk.forkSession(sourceSessionId, { dir: cwd, upToMessageId: boundaryUuid });
40
+ forkedSessionId = fork.sessionId;
41
+ const recording = new RecordingSessionStore(fork.sessionId);
42
+ await this.sdk.importSessionToStore(fork.sessionId, recording, { dir: cwd, includeSubagents: false });
43
+ const uuidMap = new Map();
44
+ for (const entry of recording.entries()) {
45
+ const copiedFrom = provenance(entry);
46
+ const newUuid = stringField(entry.uuid);
47
+ if (copiedFrom?.sessionId !== sourceSessionId || !copiedFrom.messageUuid || !newUuid)
48
+ continue;
49
+ const previous = uuidMap.get(copiedFrom.messageUuid);
50
+ if (previous && previous !== newUuid) {
51
+ throw new Error(`Claude fork contains conflicting provenance for boundary '${copiedFrom.messageUuid}'.`);
52
+ }
53
+ uuidMap.set(copiedFrom.messageUuid, newUuid);
54
+ }
55
+ const required = new Set([boundaryUuid, ...expectedBoundaries]);
56
+ const missing = [...required].filter((uuid) => !uuidMap.has(uuid));
57
+ if (missing.length > 0) {
58
+ throw new Error(`Claude fork is missing provenance for retained boundary '${missing[0]}'.`);
59
+ }
60
+ return { sessionId: fork.sessionId, uuidMap };
61
+ }
62
+ catch (error) {
63
+ if (forkedSessionId)
64
+ await this.delete(forkedSessionId, cwd).catch(() => undefined);
65
+ throw error;
66
+ }
67
+ }
68
+ async resolveCompactionBoundary(sessionId, cwd, boundary) {
69
+ let lastError;
70
+ for (let attempt = 0; attempt < this.compactionPoll.attempts; attempt += 1) {
71
+ try {
72
+ const recording = new RecordingSessionStore(sessionId);
73
+ await this.sdk.importSessionToStore(sessionId, recording, { dir: cwd, includeSubagents: false });
74
+ const entries = recording.entries().filter((entry) => entry.isSidechain !== true);
75
+ const boundaryIndex = entries.findIndex((entry) => entry.uuid === boundary.uuid);
76
+ if (boundaryIndex < 0)
77
+ throw new Error(`Claude transcript does not contain compact boundary '${boundary.uuid}'.`);
78
+ const declaredAnchor = boundary.compact_metadata.preserved_messages?.anchor_uuid
79
+ ?? boundary.compact_metadata.preserved_segment?.anchor_uuid;
80
+ if (declaredAnchor && entries.findIndex((entry) => entry.uuid === declaredAnchor) > boundaryIndex)
81
+ return declaredAnchor;
82
+ const summary = entries.slice(boundaryIndex + 1).find((entry) => entry.type === "user"
83
+ && typeof entry.uuid === "string"
84
+ && entry.parentUuid === boundary.uuid);
85
+ if (summary?.uuid)
86
+ return summary.uuid;
87
+ lastError = new Error(`Claude transcript does not contain a resumable summary after compact boundary '${boundary.uuid}'.`);
88
+ }
89
+ catch (error) {
90
+ lastError = error;
91
+ }
92
+ if (attempt + 1 < this.compactionPoll.attempts) {
93
+ const delayMs = Math.min(250, this.compactionPoll.delayMs * 2 ** attempt);
94
+ await new Promise((resolve) => setTimeout(resolve, delayMs));
95
+ }
96
+ }
97
+ throw lastError ?? new Error(`Claude transcript did not expose compact boundary '${boundary.uuid}'.`);
98
+ }
99
+ async delete(sessionId, cwd) {
100
+ await this.sdk.deleteSession(sessionId, { dir: cwd });
101
+ }
102
+ }
103
+ //# sourceMappingURL=transcriptBrancher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transcriptBrancher.js","sourceRoot":"","sources":["../../src/claude/transcriptBrancher.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,30 @@
1
1
  import { spawn } from "node:child_process";
2
+ import { existsSync, realpathSync } from "node:fs";
3
+ import { homedir } from "node:os";
4
+ import { join, resolve } from "node:path";
5
+ function refuseManagedEntrypoint(command) {
6
+ if (!existsSync(command))
7
+ return;
8
+ const home = resolve(process.env.CCODEX_HOME ?? join(homedir(), ".ccodex"));
9
+ const own = realpathSync(command);
10
+ const managed = [
11
+ process.argv[1],
12
+ join(home, "bin", "codex"),
13
+ join(home, "bin", "ccodex"),
14
+ join(home, "current", "node_modules", ".bin", "ccodex"),
15
+ join(home, "current", "node_modules", ".bin", "codex-hybrid"),
16
+ ].filter((path) => typeof path === "string" && existsSync(path));
17
+ if (managed.some((path) => realpathSync(path) === own)) {
18
+ throw new Error(`Refusing recursive delegation to managed CCodex entrypoint '${command}'.`);
19
+ }
20
+ }
2
21
  export function delegate(command, args) {
22
+ refuseManagedEntrypoint(command);
23
+ const env = { ...process.env };
24
+ delete env.CCODEX_SHIM_ACTIVE;
3
25
  return new Promise((resolve, reject) => {
4
26
  const child = spawn(command, args, {
5
- env: process.env,
27
+ env,
6
28
  stdio: "inherit",
7
29
  });
8
30
  child.once("error", reject);
@@ -1 +1 @@
1
- {"version":3,"file":"delegate.js","sourceRoot":"","sources":["../../src/cli/delegate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,MAAM,UAAU,QAAQ,CAAC,OAAe,EAAE,IAAuB;IAC/D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE;YACjC,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;QACH,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YAClC,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;gBAClC,OAAO;YACT,CAAC;YACD,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"delegate.js","sourceRoot":"","sources":["../../src/cli/delegate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE1C,SAAS,uBAAuB,CAAC,OAAe;IAC9C,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO;IACjC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC;IAC5E,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG;QACd,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC;QAC1B,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC;QAC3B,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,CAAC;QACvD,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,CAAC;KAC9D,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IACjF,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CAAC,+DAA+D,OAAO,IAAI,CAAC,CAAC;IAC9F,CAAC;AACH,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAe,EAAE,IAAuB;IAC/D,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACjC,MAAM,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC/B,OAAO,GAAG,CAAC,kBAAkB,CAAC;IAC9B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE;YACjC,GAAG;YACH,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;QACH,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YAClC,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;gBAClC,OAAO;YACT,CAAC;YACD,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
package/dist/cli/main.js CHANGED
@@ -4,7 +4,8 @@ import { classifyInvocation, withProxySocket } from "./args.js";
4
4
  import { delegate } from "./delegate.js";
5
5
  import { loadConfig } from "../config/config.js";
6
6
  import { Logger } from "../observability/logger.js";
7
- import { publishDaemonChildRecord } from "../daemon/supervisor.js";
7
+ import { publishDaemonChildRecord, withGatewayStartupFence } from "../daemon/supervisor.js";
8
+ import { publishGatewayOwner } from "../daemon/ownership.js";
8
9
  import { runDaemonCommand } from "../daemon/daemon.js";
9
10
  import { runEarlyManagementCommand, runManagementCommand } from "../management/commands.js";
10
11
  async function main() {
@@ -32,27 +33,42 @@ async function main() {
32
33
  return delegate(config.realCodex, withProxySocket(invocation.proxyArgs, invocation.socketPath));
33
34
  }
34
35
  const { startGateway } = await import("../gateway/server.js");
35
- const gateway = await startGateway(config, invocation.socketPath, invocation.stockArgs, logger);
36
+ let stopRequested = false;
37
+ let resolveStop;
38
+ const stopped = new Promise((resolve) => { resolveStop = resolve; });
39
+ const stop = () => {
40
+ stopRequested = true;
41
+ resolveStop();
42
+ };
43
+ process.once("SIGINT", stop);
44
+ process.once("SIGTERM", stop);
36
45
  let releaseDaemonRecord = () => undefined;
46
+ let releaseGatewayOwner = () => undefined;
37
47
  try {
48
+ const gateway = await withGatewayStartupFence(() => startGateway(config, invocation.socketPath, invocation.stockArgs, logger));
38
49
  // Publishing is the daemon parent's readiness handshake. It must happen only
39
50
  // after this process owns the public socket and its relay is ready; otherwise
40
51
  // a concurrently started direct gateway can be mistaken for this child.
41
- releaseDaemonRecord = await publishDaemonChildRecord();
42
- await new Promise((resolve) => {
43
- const stop = () => resolve();
44
- process.once("SIGINT", stop);
45
- process.once("SIGTERM", stop);
46
- });
47
- }
48
- finally {
49
52
  try {
50
- await gateway.stop();
53
+ releaseGatewayOwner = publishGatewayOwner(invocation.socketPath);
54
+ if (!stopRequested)
55
+ releaseDaemonRecord = await publishDaemonChildRecord();
56
+ await stopped;
51
57
  }
52
58
  finally {
53
- releaseDaemonRecord();
59
+ try {
60
+ await gateway.stop();
61
+ }
62
+ finally {
63
+ releaseDaemonRecord();
64
+ releaseGatewayOwner();
65
+ }
54
66
  }
55
67
  }
68
+ finally {
69
+ process.removeListener("SIGINT", stop);
70
+ process.removeListener("SIGTERM", stop);
71
+ }
56
72
  return 0;
57
73
  }
58
74
  main()
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export declare const RESPONSE_ITEM_SCHEMA_JSON: string;
2
+ export declare const RESPONSE_ITEM_KNOWN_TYPES: readonly ["message", "agent_message", "reasoning", "local_shell_call", "function_call", "tool_search_call", "function_call_output", "custom_tool_call", "custom_tool_call_output", "tool_search_output", "web_search_call", "image_generation_call", "compaction", "compaction_trigger", "context_compaction", "other", "compaction_summary", "additional_tools"];
3
+ export declare const WEB_SEARCH_ACTION_KNOWN_TYPES: readonly ["search", "open_page", "find_in_page", "other"];
4
+ export declare const RESPONSE_ITEM_IMAGE_FIELDS: {
5
+ readonly message: readonly ["content"];
6
+ readonly function_call_output: readonly ["output"];
7
+ readonly custom_tool_call_output: readonly ["output"];
8
+ };
@@ -0,0 +1,7 @@
1
+ // GENERATED CODE! DO NOT MODIFY BY HAND!
2
+ // Codex 0.144.4 ClientRequest JSON schema plus version-pinned serde overlays.
3
+ export const RESPONSE_ITEM_SCHEMA_JSON = "{\"$schema\":\"http://json-schema.org/draft-07/schema#\",\"oneOf\":[{\"type\":\"object\",\"required\":[\"content\",\"role\",\"type\"],\"properties\":{\"content\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/ContentItem\"}},\"id\":{\"type\":[\"string\",\"null\"]},\"internal_chat_message_metadata_passthrough\":{\"anyOf\":[{\"$ref\":\"#/definitions/InternalChatMessageMetadataPassthrough\"},{\"type\":\"null\"}]},\"phase\":{\"anyOf\":[{\"$ref\":\"#/definitions/MessagePhase\"},{\"type\":\"null\"}]},\"role\":{\"type\":\"string\"},\"type\":{\"type\":\"string\",\"enum\":[\"message\"],\"title\":\"MessageResponseItemType\"}},\"title\":\"MessageResponseItem\"},{\"type\":\"object\",\"required\":[\"author\",\"content\",\"recipient\",\"type\"],\"properties\":{\"author\":{\"type\":\"string\"},\"content\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/AgentMessageInputContent\"}},\"id\":{\"type\":[\"string\",\"null\"]},\"internal_chat_message_metadata_passthrough\":{\"anyOf\":[{\"$ref\":\"#/definitions/InternalChatMessageMetadataPassthrough\"},{\"type\":\"null\"}]},\"recipient\":{\"type\":\"string\"},\"type\":{\"type\":\"string\",\"enum\":[\"agent_message\"],\"title\":\"AgentMessageResponseItemType\"}},\"title\":\"AgentMessageResponseItem\"},{\"type\":\"object\",\"required\":[\"summary\",\"type\"],\"properties\":{\"content\":{\"default\":null,\"type\":[\"array\",\"null\"],\"items\":{\"$ref\":\"#/definitions/ReasoningItemContent\"}},\"encrypted_content\":{\"type\":[\"string\",\"null\"]},\"id\":{\"type\":[\"string\",\"null\"]},\"internal_chat_message_metadata_passthrough\":{\"anyOf\":[{\"$ref\":\"#/definitions/InternalChatMessageMetadataPassthrough\"},{\"type\":\"null\"}]},\"summary\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/ReasoningItemReasoningSummary\"}},\"type\":{\"type\":\"string\",\"enum\":[\"reasoning\"],\"title\":\"ReasoningResponseItemType\"}},\"title\":\"ReasoningResponseItem\"},{\"type\":\"object\",\"required\":[\"action\",\"status\",\"type\"],\"properties\":{\"action\":{\"$ref\":\"#/definitions/LocalShellAction\"},\"call_id\":{\"description\":\"Set when using the Responses API.\",\"type\":[\"string\",\"null\"]},\"id\":{\"description\":\"Legacy id field retained for compatibility with older payloads.\",\"type\":[\"string\",\"null\"]},\"internal_chat_message_metadata_passthrough\":{\"anyOf\":[{\"$ref\":\"#/definitions/InternalChatMessageMetadataPassthrough\"},{\"type\":\"null\"}]},\"status\":{\"$ref\":\"#/definitions/LocalShellStatus\"},\"type\":{\"type\":\"string\",\"enum\":[\"local_shell_call\"],\"title\":\"LocalShellCallResponseItemType\"}},\"title\":\"LocalShellCallResponseItem\"},{\"type\":\"object\",\"required\":[\"arguments\",\"call_id\",\"name\",\"type\"],\"properties\":{\"arguments\":{\"type\":\"string\"},\"call_id\":{\"type\":\"string\"},\"id\":{\"type\":[\"string\",\"null\"]},\"internal_chat_message_metadata_passthrough\":{\"anyOf\":[{\"$ref\":\"#/definitions/InternalChatMessageMetadataPassthrough\"},{\"type\":\"null\"}]},\"name\":{\"type\":\"string\"},\"namespace\":{\"type\":[\"string\",\"null\"]},\"type\":{\"type\":\"string\",\"enum\":[\"function_call\"],\"title\":\"FunctionCallResponseItemType\"}},\"title\":\"FunctionCallResponseItem\"},{\"type\":\"object\",\"required\":[\"arguments\",\"execution\",\"type\"],\"properties\":{\"arguments\":true,\"call_id\":{\"type\":[\"string\",\"null\"]},\"execution\":{\"type\":\"string\"},\"id\":{\"type\":[\"string\",\"null\"]},\"internal_chat_message_metadata_passthrough\":{\"anyOf\":[{\"$ref\":\"#/definitions/InternalChatMessageMetadataPassthrough\"},{\"type\":\"null\"}]},\"status\":{\"type\":[\"string\",\"null\"]},\"type\":{\"type\":\"string\",\"enum\":[\"tool_search_call\"],\"title\":\"ToolSearchCallResponseItemType\"}},\"title\":\"ToolSearchCallResponseItem\"},{\"type\":\"object\",\"required\":[\"call_id\",\"output\",\"type\"],\"properties\":{\"call_id\":{\"type\":\"string\"},\"id\":{\"type\":[\"string\",\"null\"]},\"internal_chat_message_metadata_passthrough\":{\"anyOf\":[{\"$ref\":\"#/definitions/InternalChatMessageMetadataPassthrough\"},{\"type\":\"null\"}]},\"output\":{\"$ref\":\"#/definitions/FunctionCallOutputBody\"},\"type\":{\"type\":\"string\",\"enum\":[\"function_call_output\"],\"title\":\"FunctionCallOutputResponseItemType\"}},\"title\":\"FunctionCallOutputResponseItem\"},{\"type\":\"object\",\"required\":[\"call_id\",\"input\",\"name\",\"type\"],\"properties\":{\"call_id\":{\"type\":\"string\"},\"id\":{\"type\":[\"string\",\"null\"]},\"input\":{\"type\":\"string\"},\"internal_chat_message_metadata_passthrough\":{\"anyOf\":[{\"$ref\":\"#/definitions/InternalChatMessageMetadataPassthrough\"},{\"type\":\"null\"}]},\"name\":{\"type\":\"string\"},\"namespace\":{\"type\":[\"string\",\"null\"]},\"status\":{\"type\":[\"string\",\"null\"]},\"type\":{\"type\":\"string\",\"enum\":[\"custom_tool_call\"],\"title\":\"CustomToolCallResponseItemType\"}},\"title\":\"CustomToolCallResponseItem\"},{\"type\":\"object\",\"required\":[\"call_id\",\"output\",\"type\"],\"properties\":{\"call_id\":{\"type\":\"string\"},\"id\":{\"type\":[\"string\",\"null\"]},\"internal_chat_message_metadata_passthrough\":{\"anyOf\":[{\"$ref\":\"#/definitions/InternalChatMessageMetadataPassthrough\"},{\"type\":\"null\"}]},\"name\":{\"type\":[\"string\",\"null\"]},\"output\":{\"$ref\":\"#/definitions/FunctionCallOutputBody\"},\"type\":{\"type\":\"string\",\"enum\":[\"custom_tool_call_output\"],\"title\":\"CustomToolCallOutputResponseItemType\"}},\"title\":\"CustomToolCallOutputResponseItem\"},{\"type\":\"object\",\"required\":[\"execution\",\"status\",\"tools\",\"type\"],\"properties\":{\"call_id\":{\"type\":[\"string\",\"null\"]},\"execution\":{\"type\":\"string\"},\"id\":{\"type\":[\"string\",\"null\"]},\"internal_chat_message_metadata_passthrough\":{\"anyOf\":[{\"$ref\":\"#/definitions/InternalChatMessageMetadataPassthrough\"},{\"type\":\"null\"}]},\"status\":{\"type\":\"string\"},\"tools\":{\"type\":\"array\",\"items\":true},\"type\":{\"type\":\"string\",\"enum\":[\"tool_search_output\"],\"title\":\"ToolSearchOutputResponseItemType\"}},\"title\":\"ToolSearchOutputResponseItem\"},{\"type\":\"object\",\"required\":[\"type\"],\"properties\":{\"action\":{\"anyOf\":[{\"$ref\":\"#/definitions/ResponsesApiWebSearchAction\"},{\"type\":\"null\"}]},\"id\":{\"type\":[\"string\",\"null\"]},\"internal_chat_message_metadata_passthrough\":{\"anyOf\":[{\"$ref\":\"#/definitions/InternalChatMessageMetadataPassthrough\"},{\"type\":\"null\"}]},\"status\":{\"type\":[\"string\",\"null\"]},\"type\":{\"type\":\"string\",\"enum\":[\"web_search_call\"],\"title\":\"WebSearchCallResponseItemType\"}},\"title\":\"WebSearchCallResponseItem\"},{\"type\":\"object\",\"required\":[\"result\",\"status\",\"type\"],\"properties\":{\"id\":{\"type\":[\"string\",\"null\"]},\"internal_chat_message_metadata_passthrough\":{\"anyOf\":[{\"$ref\":\"#/definitions/InternalChatMessageMetadataPassthrough\"},{\"type\":\"null\"}]},\"result\":{\"type\":\"string\"},\"revised_prompt\":{\"type\":[\"string\",\"null\"]},\"status\":{\"type\":\"string\"},\"type\":{\"type\":\"string\",\"enum\":[\"image_generation_call\"],\"title\":\"ImageGenerationCallResponseItemType\"}},\"title\":\"ImageGenerationCallResponseItem\"},{\"type\":\"object\",\"required\":[\"encrypted_content\",\"type\"],\"properties\":{\"encrypted_content\":{\"type\":\"string\"},\"id\":{\"type\":[\"string\",\"null\"]},\"internal_chat_message_metadata_passthrough\":{\"anyOf\":[{\"$ref\":\"#/definitions/InternalChatMessageMetadataPassthrough\"},{\"type\":\"null\"}]},\"type\":{\"type\":\"string\",\"enum\":[\"compaction\"],\"title\":\"CompactionResponseItemType\"}},\"title\":\"CompactionResponseItem\"},{\"type\":\"object\",\"required\":[\"type\"],\"properties\":{\"type\":{\"type\":\"string\",\"enum\":[\"compaction_trigger\"],\"title\":\"CompactionTriggerResponseItemType\"}},\"title\":\"CompactionTriggerResponseItem\"},{\"type\":\"object\",\"required\":[\"type\"],\"properties\":{\"encrypted_content\":{\"type\":[\"string\",\"null\"]},\"id\":{\"type\":[\"string\",\"null\"]},\"internal_chat_message_metadata_passthrough\":{\"anyOf\":[{\"$ref\":\"#/definitions/InternalChatMessageMetadataPassthrough\"},{\"type\":\"null\"}]},\"type\":{\"type\":\"string\",\"enum\":[\"context_compaction\"],\"title\":\"ContextCompactionResponseItemType\"}},\"title\":\"ContextCompactionResponseItem\"},{\"type\":\"object\",\"required\":[\"type\"],\"properties\":{\"type\":{\"type\":\"string\",\"enum\":[\"other\"],\"title\":\"OtherResponseItemType\"}},\"title\":\"OtherResponseItem\"},{\"type\":\"object\",\"required\":[\"encrypted_content\",\"type\"],\"properties\":{\"encrypted_content\":{\"type\":\"string\"},\"id\":{\"type\":[\"string\",\"null\"]},\"internal_chat_message_metadata_passthrough\":{\"anyOf\":[{\"$ref\":\"#/definitions/InternalChatMessageMetadataPassthrough\"},{\"type\":\"null\"}]},\"type\":{\"type\":\"string\",\"enum\":[\"compaction_summary\"],\"title\":\"compaction_summaryResponseItemType\"}},\"title\":\"compaction_summaryResponseItem\"},{\"type\":\"object\",\"required\":[\"role\",\"tools\",\"type\"],\"properties\":{\"id\":{\"type\":[\"string\",\"null\"]},\"role\":{\"type\":\"string\"},\"tools\":{\"type\":\"array\",\"items\":{}},\"type\":{\"type\":\"string\",\"enum\":[\"additional_tools\"]}},\"title\":\"AdditionalToolsResponseItem\"}],\"definitions\":{\"AgentMessageInputContent\":{\"oneOf\":[{\"type\":\"object\",\"required\":[\"text\",\"type\"],\"properties\":{\"text\":{\"type\":\"string\"},\"type\":{\"type\":\"string\",\"enum\":[\"input_text\"],\"title\":\"InputTextAgentMessageInputContentType\"}},\"title\":\"InputTextAgentMessageInputContent\"},{\"type\":\"object\",\"required\":[\"encrypted_content\",\"type\"],\"properties\":{\"encrypted_content\":{\"type\":\"string\"},\"type\":{\"type\":\"string\",\"enum\":[\"encrypted_content\"],\"title\":\"EncryptedContentAgentMessageInputContentType\"}},\"title\":\"EncryptedContentAgentMessageInputContent\"}]},\"ContentItem\":{\"oneOf\":[{\"type\":\"object\",\"required\":[\"text\",\"type\"],\"properties\":{\"text\":{\"type\":\"string\"},\"type\":{\"type\":\"string\",\"enum\":[\"input_text\"],\"title\":\"InputTextContentItemType\"}},\"title\":\"InputTextContentItem\"},{\"type\":\"object\",\"required\":[\"image_url\",\"type\"],\"properties\":{\"detail\":{\"anyOf\":[{\"$ref\":\"#/definitions/ImageDetail\"},{\"type\":\"null\"}]},\"image_url\":{\"type\":\"string\"},\"type\":{\"type\":\"string\",\"enum\":[\"input_image\"],\"title\":\"InputImageContentItemType\"}},\"title\":\"InputImageContentItem\"},{\"type\":\"object\",\"required\":[\"text\",\"type\"],\"properties\":{\"text\":{\"type\":\"string\"},\"type\":{\"type\":\"string\",\"enum\":[\"output_text\"],\"title\":\"OutputTextContentItemType\"}},\"title\":\"OutputTextContentItem\"}]},\"FunctionCallOutputBody\":{\"anyOf\":[{\"type\":\"string\"},{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/FunctionCallOutputContentItem\"}}]},\"FunctionCallOutputContentItem\":{\"description\":\"Responses API compatible content items that can be returned by a tool call. This is a subset of ContentItem with the types we support as function call outputs.\",\"oneOf\":[{\"type\":\"object\",\"required\":[\"text\",\"type\"],\"properties\":{\"text\":{\"type\":\"string\"},\"type\":{\"type\":\"string\",\"enum\":[\"input_text\"],\"title\":\"InputTextFunctionCallOutputContentItemType\"}},\"title\":\"InputTextFunctionCallOutputContentItem\"},{\"type\":\"object\",\"required\":[\"image_url\",\"type\"],\"properties\":{\"detail\":{\"anyOf\":[{\"$ref\":\"#/definitions/ImageDetail\"},{\"type\":\"null\"}]},\"image_url\":{\"type\":\"string\"},\"type\":{\"type\":\"string\",\"enum\":[\"input_image\"],\"title\":\"InputImageFunctionCallOutputContentItemType\"}},\"title\":\"InputImageFunctionCallOutputContentItem\"},{\"type\":\"object\",\"required\":[\"encrypted_content\",\"type\"],\"properties\":{\"encrypted_content\":{\"type\":\"string\"},\"type\":{\"type\":\"string\",\"enum\":[\"encrypted_content\"],\"title\":\"EncryptedContentFunctionCallOutputContentItemType\"}},\"title\":\"EncryptedContentFunctionCallOutputContentItem\"}]},\"ImageDetail\":{\"type\":\"string\",\"enum\":[\"auto\",\"low\",\"high\",\"original\"]},\"InternalChatMessageMetadataPassthrough\":{\"description\":\"Internal Responses API passthrough metadata copied into underlying chat messages.\\n\\nResponses API strongly types this payload. Do not modify it without first getting API approval and making the corresponding Responses API change.\",\"type\":\"object\",\"properties\":{\"turn_id\":{\"type\":[\"string\",\"null\"]}}},\"LocalShellAction\":{\"oneOf\":[{\"type\":\"object\",\"required\":[\"command\",\"type\"],\"properties\":{\"command\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"env\":{\"type\":[\"object\",\"null\"],\"additionalProperties\":{\"type\":\"string\"}},\"timeout_ms\":{\"type\":[\"integer\",\"null\"],\"format\":\"uint64\",\"minimum\":0},\"type\":{\"type\":\"string\",\"enum\":[\"exec\"],\"title\":\"ExecLocalShellActionType\"},\"user\":{\"type\":[\"string\",\"null\"]},\"working_directory\":{\"type\":[\"string\",\"null\"]}},\"title\":\"ExecLocalShellAction\"}]},\"LocalShellStatus\":{\"type\":\"string\",\"enum\":[\"completed\",\"in_progress\",\"incomplete\"]},\"MessagePhase\":{\"description\":\"Classifies an assistant message as interim commentary or final answer text.\\n\\nProviders do not emit this consistently, so callers must treat `None` as \\\"phase unknown\\\" and keep compatibility behavior for legacy models.\",\"oneOf\":[{\"description\":\"Mid-turn assistant text (for example preamble/progress narration).\\n\\nAdditional tool calls or assistant output may follow before turn completion.\",\"type\":\"string\",\"enum\":[\"commentary\"]},{\"description\":\"The assistant's terminal answer text for the current turn.\",\"type\":\"string\",\"enum\":[\"final_answer\"]}]},\"ReasoningItemContent\":{\"oneOf\":[{\"type\":\"object\",\"required\":[\"text\",\"type\"],\"properties\":{\"text\":{\"type\":\"string\"},\"type\":{\"type\":\"string\",\"enum\":[\"reasoning_text\"],\"title\":\"ReasoningTextReasoningItemContentType\"}},\"title\":\"ReasoningTextReasoningItemContent\"},{\"type\":\"object\",\"required\":[\"text\",\"type\"],\"properties\":{\"text\":{\"type\":\"string\"},\"type\":{\"type\":\"string\",\"enum\":[\"text\"],\"title\":\"TextReasoningItemContentType\"}},\"title\":\"TextReasoningItemContent\"}]},\"ReasoningItemReasoningSummary\":{\"oneOf\":[{\"type\":\"object\",\"required\":[\"text\",\"type\"],\"properties\":{\"text\":{\"type\":\"string\"},\"type\":{\"type\":\"string\",\"enum\":[\"summary_text\"],\"title\":\"SummaryTextReasoningItemReasoningSummaryType\"}},\"title\":\"SummaryTextReasoningItemReasoningSummary\"}]},\"ResponsesApiWebSearchAction\":{\"oneOf\":[{\"type\":\"object\",\"required\":[\"type\"],\"properties\":{\"queries\":{\"type\":[\"array\",\"null\"],\"items\":{\"type\":\"string\"}},\"query\":{\"type\":[\"string\",\"null\"]},\"type\":{\"type\":\"string\",\"enum\":[\"search\"],\"title\":\"SearchResponsesApiWebSearchActionType\"}},\"title\":\"SearchResponsesApiWebSearchAction\"},{\"type\":\"object\",\"required\":[\"type\"],\"properties\":{\"type\":{\"type\":\"string\",\"enum\":[\"open_page\"],\"title\":\"OpenPageResponsesApiWebSearchActionType\"},\"url\":{\"type\":[\"string\",\"null\"]}},\"title\":\"OpenPageResponsesApiWebSearchAction\"},{\"type\":\"object\",\"required\":[\"type\"],\"properties\":{\"pattern\":{\"type\":[\"string\",\"null\"]},\"type\":{\"type\":\"string\",\"enum\":[\"find_in_page\"],\"title\":\"FindInPageResponsesApiWebSearchActionType\"},\"url\":{\"type\":[\"string\",\"null\"]}},\"title\":\"FindInPageResponsesApiWebSearchAction\"},{\"type\":\"object\",\"required\":[\"type\"],\"properties\":{\"type\":{\"type\":\"string\",\"enum\":[\"other\"],\"title\":\"OtherResponsesApiWebSearchActionType\"}},\"title\":\"OtherResponsesApiWebSearchAction\"}]}}}";
4
+ export const RESPONSE_ITEM_KNOWN_TYPES = ["message", "agent_message", "reasoning", "local_shell_call", "function_call", "tool_search_call", "function_call_output", "custom_tool_call", "custom_tool_call_output", "tool_search_output", "web_search_call", "image_generation_call", "compaction", "compaction_trigger", "context_compaction", "other", "compaction_summary", "additional_tools"];
5
+ export const WEB_SEARCH_ACTION_KNOWN_TYPES = ["search", "open_page", "find_in_page", "other"];
6
+ export const RESPONSE_ITEM_IMAGE_FIELDS = { "message": ["content"], "function_call_output": ["output"], "custom_tool_call_output": ["output"] };
7
+ //# sourceMappingURL=ResponseItemRuntimeSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResponseItemRuntimeSchema.js","sourceRoot":"","sources":["../../../src/codex/generated/ResponseItemRuntimeSchema.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,8EAA8E;AAC9E,MAAM,CAAC,MAAM,yBAAyB,GAAW,ykfAAykf,CAAC;AAC3nf,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,SAAS,EAAC,eAAe,EAAC,WAAW,EAAC,kBAAkB,EAAC,eAAe,EAAC,kBAAkB,EAAC,sBAAsB,EAAC,kBAAkB,EAAC,yBAAyB,EAAC,oBAAoB,EAAC,iBAAiB,EAAC,uBAAuB,EAAC,YAAY,EAAC,oBAAoB,EAAC,oBAAoB,EAAC,OAAO,EAAC,oBAAoB,EAAC,kBAAkB,CAAU,CAAC;AAC1X,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,QAAQ,EAAC,WAAW,EAAC,cAAc,EAAC,OAAO,CAAU,CAAC;AACpG,MAAM,CAAC,MAAM,0BAA0B,GAAG,EAAC,SAAS,EAAC,CAAC,SAAS,CAAC,EAAC,sBAAsB,EAAC,CAAC,QAAQ,CAAC,EAAC,yBAAyB,EAAC,CAAC,QAAQ,CAAC,EAAU,CAAC"}
@@ -31,15 +31,20 @@ export async function probeHostCompatibility(config, logger) {
31
31
  if (!nodeSupported(process.versions.node)) {
32
32
  throw new Error(`Node.js ${expected.node} is required, found ${process.versions.node}.`);
33
33
  }
34
- const [codexVersion, claudeVersion] = await Promise.all([
35
- executableVersion(config.realCodex).catch((error) => { throw new Error(`Pinned Codex version probe failed: ${String(error)}`); }),
36
- executableVersion(config.claudeBinary).catch((error) => { throw new Error(`Bundled Claude version probe failed: ${String(error)}`); }),
37
- ]);
34
+ const codexVersion = await executableVersion(config.realCodex)
35
+ .catch((error) => { throw new Error(`Pinned Codex version probe failed: ${String(error)}`); });
36
+ const claudeVersion = await executableVersion(config.claudeBinary).catch((error) => {
37
+ logger.warn("compatibility.claude-unavailable", {
38
+ error: String(error),
39
+ repair: "npm i -g @anthropic-ai/claude-code",
40
+ });
41
+ return undefined;
42
+ });
38
43
  const sdkVersion = claudeAgentSdkVersion();
39
44
  if (!exactVersion(codexVersion, expected.codexCli)) {
40
45
  throw new Error(`Unsupported pinned Codex: expected ${expected.codexCli}, found '${codexVersion}'. Reinstall @gkorepanov/ccodex.`);
41
46
  }
42
- if (!exactVersion(claudeVersion, expected.claudeCode)) {
47
+ if (claudeVersion && !exactVersion(claudeVersion, expected.claudeCode)) {
43
48
  throw new Error(`Unsupported bundled Claude: expected ${expected.claudeCode}, found '${claudeVersion}'. Reinstall @gkorepanov/ccodex.`);
44
49
  }
45
50
  if (sdkVersion !== expected.claudeAgentSdk) {
@@ -48,7 +53,7 @@ export async function probeHostCompatibility(config, logger) {
48
53
  logger.info("compatibility.versions", {
49
54
  nodeVersion: process.versions.node,
50
55
  codexVersion,
51
- claudeVersion,
56
+ claudeVersion: claudeVersion ?? "not installed",
52
57
  claudeAgentSdkVersion: sdkVersion,
53
58
  expected,
54
59
  });
@@ -1 +1 @@
1
- {"version":3,"file":"probe.js","sourceRoot":"","sources":["../../src/compatibility/probe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"probe.js","sourceRoot":"","sources":["../../src/compatibility/probe.ts"],"names":[],"mappings":"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"}
@@ -17,5 +17,14 @@ export interface HybridConfig {
17
17
  readonly rpcCapture?: boolean;
18
18
  readonly rpcCaptureIncludeContent?: boolean;
19
19
  readonly rpcCaptureMaxBytes?: number;
20
+ /** Optional UX conveniences. Missing values remain enabled for backwards compatibility. */
21
+ readonly features?: FeatureConfig;
20
22
  }
23
+ export interface FeatureConfig {
24
+ readonly titleGenerationUx: boolean;
25
+ readonly statusCommand: boolean;
26
+ }
27
+ export declare const DEFAULT_FEATURES: FeatureConfig;
28
+ export declare function findDelegatedCodex(appServerCodex: string, productHome: string): string | undefined;
29
+ export declare function delegatedCodexExecutable(productHome: string, appServerCodex: string, configPath?: string): string | undefined;
21
30
  export declare function loadConfig(): HybridConfig;