@gkorepanov/ccodex 0.3.0 → 0.4.1

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 (210) hide show
  1. package/README.md +139 -63
  2. package/assets/ccodex/goals/continuation.md +1 -0
  3. package/{compatibility.json → config/compatibility.json} +5 -6
  4. package/dist/claude/asyncQueue.d.ts +3 -0
  5. package/dist/claude/asyncQueue.js +13 -2
  6. package/dist/claude/asyncQueue.js.map +1 -1
  7. package/dist/claude/commandActions.d.ts +6 -0
  8. package/dist/claude/commandActions.js +57 -0
  9. package/dist/claude/commandActions.js.map +1 -0
  10. package/dist/claude/compactCommand.d.ts +2 -0
  11. package/dist/claude/compactCommand.js +7 -0
  12. package/dist/claude/compactCommand.js.map +1 -0
  13. package/dist/claude/goalTools.d.ts +15 -0
  14. package/dist/claude/goalTools.js +128 -0
  15. package/dist/claude/goalTools.js.map +1 -0
  16. package/dist/claude/hookMapper.d.ts +17 -4
  17. package/dist/claude/hookMapper.js +7 -5
  18. package/dist/claude/hookMapper.js.map +1 -1
  19. package/dist/claude/inputMapper.d.ts +1 -0
  20. package/dist/claude/inputMapper.js +1 -0
  21. package/dist/claude/inputMapper.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 +9 -1
  30. package/dist/claude/resultClassifier.js.map +1 -1
  31. package/dist/claude/service.d.ts +116 -29
  32. package/dist/claude/service.js +1337 -680
  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 +862 -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/permissionUpdates.d.ts +4 -0
  50. package/dist/claude/session/permissionUpdates.js +17 -0
  51. package/dist/claude/session/permissionUpdates.js.map +1 -0
  52. package/dist/claude/session/providerFacts.d.ts +47 -0
  53. package/dist/claude/session/providerFacts.js +84 -0
  54. package/dist/claude/session/providerFacts.js.map +1 -0
  55. package/dist/claude/session/providerRuntime.d.ts +1 -0
  56. package/dist/claude/session/providerRuntime.js +2 -0
  57. package/dist/claude/session/providerRuntime.js.map +1 -0
  58. package/dist/claude/session/providerRuntimeFactory.d.ts +49 -0
  59. package/dist/claude/session/providerRuntimeFactory.js +122 -0
  60. package/dist/claude/session/providerRuntimeFactory.js.map +1 -0
  61. package/dist/claude/session/repository.d.ts +57 -0
  62. package/dist/claude/session/repository.js +161 -0
  63. package/dist/claude/session/repository.js.map +1 -0
  64. package/dist/claude/session/runtime.d.ts +46 -0
  65. package/dist/claude/session/runtime.js +140 -0
  66. package/dist/claude/session/runtime.js.map +1 -0
  67. package/dist/claude/session/scopeState.d.ts +61 -0
  68. package/dist/claude/session/scopeState.js +74 -0
  69. package/dist/claude/session/scopeState.js.map +1 -0
  70. package/dist/claude/session/session.d.ts +285 -0
  71. package/dist/claude/session/session.js +6778 -0
  72. package/dist/claude/session/session.js.map +1 -0
  73. package/dist/claude/session/shellRunner.d.ts +13 -0
  74. package/dist/claude/session/shellRunner.js +103 -0
  75. package/dist/claude/session/shellRunner.js.map +1 -0
  76. package/dist/claude/session/usage.d.ts +2 -0
  77. package/dist/claude/session/usage.js +10 -0
  78. package/dist/claude/session/usage.js.map +1 -0
  79. package/dist/claude/sessionRegistry.d.ts +26 -0
  80. package/dist/claude/sessionRegistry.js +118 -0
  81. package/dist/claude/sessionRegistry.js.map +1 -0
  82. package/dist/claude/shellSupervisor.d.ts +1 -0
  83. package/dist/claude/shellSupervisor.js +69 -0
  84. package/dist/claude/shellSupervisor.js.map +1 -0
  85. package/dist/claude/statusCommand.d.ts +21 -0
  86. package/dist/claude/statusCommand.js +97 -0
  87. package/dist/claude/statusCommand.js.map +1 -0
  88. package/dist/claude/toolMapper.d.ts +9 -1
  89. package/dist/claude/toolMapper.js +98 -18
  90. package/dist/claude/toolMapper.js.map +1 -1
  91. package/dist/claude/transcriptBrancher.d.ts +37 -0
  92. package/dist/claude/transcriptBrancher.js +103 -0
  93. package/dist/claude/transcriptBrancher.js.map +1 -0
  94. package/dist/cli/delegate.js +23 -1
  95. package/dist/cli/delegate.js.map +1 -1
  96. package/dist/cli/main.js +28 -12
  97. package/dist/cli/main.js.map +1 -1
  98. package/dist/codex/generated/ResponseItemRuntimeSchema.d.ts +8 -0
  99. package/dist/codex/generated/ResponseItemRuntimeSchema.js +7 -0
  100. package/dist/codex/generated/ResponseItemRuntimeSchema.js.map +1 -0
  101. package/dist/compatibility/probe.js +12 -7
  102. package/dist/compatibility/probe.js.map +1 -1
  103. package/dist/config/config.d.ts +12 -0
  104. package/dist/config/config.js +103 -11
  105. package/dist/config/config.js.map +1 -1
  106. package/dist/daemon/daemon.js +91 -43
  107. package/dist/daemon/daemon.js.map +1 -1
  108. package/dist/daemon/ownership.d.ts +15 -0
  109. package/dist/daemon/ownership.js +185 -0
  110. package/dist/daemon/ownership.js.map +1 -0
  111. package/dist/daemon/probe.js +1 -1
  112. package/dist/daemon/supervisor.d.ts +3 -0
  113. package/dist/daemon/supervisor.js +37 -1
  114. package/dist/daemon/supervisor.js.map +1 -1
  115. package/dist/gateway/clientConnection.d.ts +7 -1
  116. package/dist/gateway/clientConnection.js +656 -60
  117. package/dist/gateway/clientConnection.js.map +1 -1
  118. package/dist/gateway/logicalThreadProjection.d.ts +8 -0
  119. package/dist/gateway/logicalThreadProjection.js +59 -0
  120. package/dist/gateway/logicalThreadProjection.js.map +1 -0
  121. package/dist/gateway/remoteRelay.js +0 -1
  122. package/dist/gateway/remoteRelay.js.map +1 -1
  123. package/dist/gateway/server.d.ts +1 -1
  124. package/dist/gateway/server.js +69 -11
  125. package/dist/gateway/server.js.map +1 -1
  126. package/dist/gateway/stockRpc.d.ts +5 -2
  127. package/dist/gateway/stockRpc.js +52 -6
  128. package/dist/gateway/stockRpc.js.map +1 -1
  129. package/dist/gateway/subscriptions.d.ts +19 -3
  130. package/dist/gateway/subscriptions.js +152 -13
  131. package/dist/gateway/subscriptions.js.map +1 -1
  132. package/dist/gateway/threadList.d.ts +7 -2
  133. package/dist/gateway/threadList.js +8 -4
  134. package/dist/gateway/threadList.js.map +1 -1
  135. package/dist/gateway/transientNotice.d.ts +15 -0
  136. package/dist/gateway/transientNotice.js +96 -1
  137. package/dist/gateway/transientNotice.js.map +1 -1
  138. package/dist/handoff/providerEpochs.d.ts +18 -0
  139. package/dist/handoff/providerEpochs.js +77 -0
  140. package/dist/handoff/providerEpochs.js.map +1 -0
  141. package/dist/handoff/service.d.ts +86 -6
  142. package/dist/handoff/service.js +1276 -168
  143. package/dist/handoff/service.js.map +1 -1
  144. package/dist/handoff/store.d.ts +189 -2
  145. package/dist/handoff/store.js +618 -7
  146. package/dist/handoff/store.js.map +1 -1
  147. package/dist/handoff/titleGeneration.d.ts +28 -0
  148. package/dist/handoff/titleGeneration.js +138 -0
  149. package/dist/handoff/titleGeneration.js.map +1 -0
  150. package/dist/management/doctor.d.ts +1 -1
  151. package/dist/management/doctor.js +32 -23
  152. package/dist/management/doctor.js.map +1 -1
  153. package/dist/management/lifecycle.js +14 -2
  154. package/dist/management/lifecycle.js.map +1 -1
  155. package/dist/management/remoteShim.d.ts +10 -0
  156. package/dist/management/remoteShim.js +65 -0
  157. package/dist/management/remoteShim.js.map +1 -0
  158. package/dist/management/setup.d.ts +5 -0
  159. package/dist/management/setup.js +122 -41
  160. package/dist/management/setup.js.map +1 -1
  161. package/dist/management/shimSelect.d.ts +3 -0
  162. package/dist/management/shimSelect.js +49 -0
  163. package/dist/management/shimSelect.js.map +1 -0
  164. package/dist/management/shims.d.ts +5 -0
  165. package/dist/management/shims.js +59 -0
  166. package/dist/management/shims.js.map +1 -0
  167. package/dist/observability/metrics.d.ts +2 -0
  168. package/dist/observability/metrics.js +6 -0
  169. package/dist/observability/metrics.js.map +1 -1
  170. package/dist/protocol/errors.d.ts +1 -0
  171. package/dist/protocol/errors.js +4 -1
  172. package/dist/protocol/errors.js.map +1 -1
  173. package/dist/runtime/dependencies.js +3 -3
  174. package/dist/runtime/dependencies.js.map +1 -1
  175. package/dist/runtime/providerAvailability.d.ts +24 -0
  176. package/dist/runtime/providerAvailability.js +107 -0
  177. package/dist/runtime/providerAvailability.js.map +1 -0
  178. package/dist/state/stateCommand.d.ts +21 -0
  179. package/dist/state/stateCommand.js +198 -0
  180. package/dist/state/stateCommand.js.map +1 -0
  181. package/dist/state/stockStateTracker.d.ts +16 -0
  182. package/dist/state/stockStateTracker.js +137 -0
  183. package/dist/state/stockStateTracker.js.map +1 -0
  184. package/dist/store/HybridStore.d.ts +118 -2
  185. package/dist/store/HybridStore.js +23 -1
  186. package/dist/store/HybridStore.js.map +1 -1
  187. package/dist/store/memoryStore.d.ts +57 -7
  188. package/dist/store/memoryStore.js +337 -5
  189. package/dist/store/memoryStore.js.map +1 -1
  190. package/dist/store/sqliteStore.d.ts +30 -4
  191. package/dist/store/sqliteStore.js +395 -42
  192. package/dist/store/sqliteStore.js.map +1 -1
  193. package/examples/config.toml +35 -0
  194. package/{LICENSES.md → legal/LICENSES.md} +2 -2
  195. package/{THIRD_PARTY_NOTICES.md → legal/THIRD_PARTY_NOTICES.md} +177 -148
  196. package/package.json +36 -24
  197. package/{install.sh → scripts/install.sh} +2 -2
  198. package/scripts/postinstall.mjs +10 -0
  199. package/vendor/codex/continuation.md +51 -0
  200. package/BUILD_BENCHMARKS.md +0 -27
  201. package/RELEASING.md +0 -98
  202. package/SSH_VERIFY.md +0 -69
  203. package/config.example.toml +0 -20
  204. package/dist/claude/interactions.d.ts +0 -23
  205. package/dist/claude/interactions.js +0 -77
  206. package/dist/claude/interactions.js.map +0 -1
  207. package/dist/claude/sessionRuntime.d.ts +0 -102
  208. package/dist/claude/sessionRuntime.js +0 -1361
  209. package/dist/claude/sessionRuntime.js.map +0 -1
  210. /package/{uninstall.sh → scripts/uninstall.sh} +0 -0
@@ -0,0 +1,185 @@
1
+ import { randomUUID } from "node:crypto";
2
+ import { spawnSync } from "node:child_process";
3
+ import { chmodSync, existsSync, mkdirSync, readFileSync, readdirSync, readlinkSync, renameSync, rmSync, writeFileSync, } from "node:fs";
4
+ import { dirname } from "node:path";
5
+ import { processMatches, processStartTime } from "./supervisor.js";
6
+ const POLL_MS = 50;
7
+ const STOP_GRACE_MS = 10_000;
8
+ const STOP_TIMEOUT_MS = 15_000;
9
+ const sleep = (milliseconds) => new Promise((resolve) => setTimeout(resolve, milliseconds));
10
+ export function gatewayOwnerFile(socketPath) {
11
+ return `${socketPath}.ccodex-owner.json`;
12
+ }
13
+ function linuxSocketOwners(socketPath) {
14
+ const inodes = new Set(readFileSync("/proc/net/unix", "utf8")
15
+ .split("\n")
16
+ .slice(1)
17
+ .map((line) => /^\S+:\s+\S+\s+\S+\s+\S+\s+\S+\s+\S+\s+(\d+)(?:\s+(.*))?$/u.exec(line.trim()))
18
+ .filter((match) => match?.[2] === socketPath)
19
+ .map((match) => match?.[1])
20
+ .filter((inode) => Boolean(inode)));
21
+ if (inodes.size === 0)
22
+ return [];
23
+ const owners = new Set();
24
+ for (const entry of readdirSync("/proc")) {
25
+ if (!/^\d+$/u.test(entry))
26
+ continue;
27
+ try {
28
+ for (const descriptor of readdirSync(`/proc/${entry}/fd`)) {
29
+ const target = readlinkSync(`/proc/${entry}/fd/${descriptor}`);
30
+ const match = /^socket:\[(\d+)\]$/u.exec(target);
31
+ if (match?.[1] && inodes.has(match[1])) {
32
+ owners.add(Number(entry));
33
+ break;
34
+ }
35
+ }
36
+ }
37
+ catch {
38
+ // Processes can exit, close descriptors, or be inaccessible during the scan.
39
+ }
40
+ }
41
+ return [...owners].sort((left, right) => left - right);
42
+ }
43
+ function lsofSocketOwners(socketPath) {
44
+ const command = process.platform === "darwin" ? "/usr/sbin/lsof" : "lsof";
45
+ const result = spawnSync(command, ["-n", "-P", "-t", "--", socketPath], { encoding: "utf8" });
46
+ if (result.error || (result.status !== 0 && result.status !== 1)) {
47
+ throw result.error ?? new Error(`lsof failed with status ${result.status}: ${result.stderr.trim()}`);
48
+ }
49
+ return [...new Set(result.stdout.split(/\s+/u).filter(Boolean).map(Number).filter(Number.isInteger))]
50
+ .sort((left, right) => left - right);
51
+ }
52
+ export function socketOwnerPids(socketPath) {
53
+ if (process.platform === "linux")
54
+ return linuxSocketOwners(socketPath);
55
+ if (process.platform === "darwin")
56
+ return lsofSocketOwners(socketPath);
57
+ throw new Error(`Unix socket ownership discovery is unsupported on ${process.platform}`);
58
+ }
59
+ const systemOwnershipRuntime = {
60
+ ownerPids: socketOwnerPids,
61
+ processStartTime,
62
+ processMatches,
63
+ signal: (pid, signal) => process.kill(pid, signal),
64
+ now: Date.now,
65
+ sleep,
66
+ };
67
+ function readOwner(path) {
68
+ try {
69
+ const value = JSON.parse(readFileSync(path, "utf8"));
70
+ return value.schemaVersion === 1 && Number.isInteger(value.pid) &&
71
+ typeof value.processStartTime === "string" && typeof value.token === "string"
72
+ ? value
73
+ : undefined;
74
+ }
75
+ catch {
76
+ return undefined;
77
+ }
78
+ }
79
+ function sameOwner(path, expected) {
80
+ const current = readOwner(path);
81
+ return current?.token === expected.token && current.pid === expected.pid &&
82
+ current.processStartTime === expected.processStartTime;
83
+ }
84
+ export function publishGatewayOwner(socketPath) {
85
+ const path = gatewayOwnerFile(socketPath);
86
+ const startTime = processStartTime(process.pid);
87
+ if (!startTime)
88
+ throw new Error(`failed to identify gateway process ${process.pid}`);
89
+ const owner = {
90
+ schemaVersion: 1,
91
+ pid: process.pid,
92
+ processStartTime: startTime,
93
+ token: randomUUID(),
94
+ };
95
+ mkdirSync(dirname(path), { recursive: true, mode: 0o700 });
96
+ const temporary = `${path}.${process.pid}.${owner.token}.tmp`;
97
+ writeFileSync(temporary, JSON.stringify(owner), { mode: 0o600 });
98
+ renameSync(temporary, path);
99
+ chmodSync(path, 0o600);
100
+ return () => {
101
+ if (sameOwner(path, owner))
102
+ rmSync(path, { force: true });
103
+ };
104
+ }
105
+ export function reconcileOwnedGateway(socketPath) {
106
+ const path = gatewayOwnerFile(socketPath);
107
+ if (!existsSync(path))
108
+ return undefined;
109
+ const owner = readOwner(path);
110
+ if (!owner || !processMatches(owner) || !socketOwnerPids(socketPath).includes(owner.pid)) {
111
+ rmSync(path, { force: true });
112
+ return undefined;
113
+ }
114
+ return { pid: owner.pid, processStartTime: owner.processStartTime };
115
+ }
116
+ function exactSocketOwnerPresent(socketPath, expected, runtime) {
117
+ const owners = runtime.ownerPids(socketPath);
118
+ if (owners.length === 0)
119
+ return false;
120
+ if (owners.length !== 1 || owners[0] !== expected.pid) {
121
+ throw new Error(`app-server socket owner changed (expected ${expected.pid}, found ${owners.join(", ") || "none"})`);
122
+ }
123
+ if (runtime.processMatches(expected))
124
+ return true;
125
+ if (runtime.ownerPids(socketPath).length === 0)
126
+ return false;
127
+ throw new Error(`app-server owner ${expected.pid} changed identity`);
128
+ }
129
+ function signalExactSocketOwner(socketPath, expected, signal, runtime) {
130
+ if (!exactSocketOwnerPresent(socketPath, expected, runtime))
131
+ return false;
132
+ try {
133
+ runtime.signal(expected.pid, signal);
134
+ }
135
+ catch (error) {
136
+ if (error.code !== "ESRCH")
137
+ throw error;
138
+ return exactSocketOwnerPresent(socketPath, expected, runtime);
139
+ }
140
+ return true;
141
+ }
142
+ export function identifySocketOwner(socketPath, expected, runtime = systemOwnershipRuntime) {
143
+ const owners = runtime.ownerPids(socketPath);
144
+ if (owners.length === 0)
145
+ return undefined;
146
+ if (owners.length !== 1) {
147
+ throw new Error(`refusing app-server takeover: expected one owner for ${socketPath}, found ${owners.join(", ")}`);
148
+ }
149
+ const pid = owners[0];
150
+ if (expected && pid !== expected.pid) {
151
+ throw new Error(`refusing app-server takeover: socket owner changed from ${expected.pid} to ${pid}`);
152
+ }
153
+ const startTime = runtime.processStartTime(pid);
154
+ if (!startTime) {
155
+ if (runtime.ownerPids(socketPath).length === 0)
156
+ return undefined;
157
+ throw new Error(`refusing app-server takeover: owner ${pid} exited during identification`);
158
+ }
159
+ const record = { pid, processStartTime: startTime };
160
+ if (expected && startTime !== expected.processStartTime) {
161
+ throw new Error(`refusing app-server takeover: owner ${pid} changed identity`);
162
+ }
163
+ if (!exactSocketOwnerPresent(socketPath, record, runtime))
164
+ return undefined;
165
+ return record;
166
+ }
167
+ export async function stopSocketOwner(socketPath, expected, runtime = systemOwnershipRuntime) {
168
+ if (!signalExactSocketOwner(socketPath, expected, "SIGTERM", runtime))
169
+ return;
170
+ const startedAt = runtime.now();
171
+ let forced = false;
172
+ while (runtime.now() - startedAt < STOP_TIMEOUT_MS) {
173
+ if (!exactSocketOwnerPresent(socketPath, expected, runtime))
174
+ return;
175
+ if (!forced && runtime.now() - startedAt >= STOP_GRACE_MS) {
176
+ // Fence PID reuse and socket handoff again immediately before escalation.
177
+ if (!signalExactSocketOwner(socketPath, expected, "SIGKILL", runtime))
178
+ return;
179
+ forced = true;
180
+ }
181
+ await runtime.sleep(POLL_MS);
182
+ }
183
+ throw new Error(`timed out waiting for app-server socket owner ${expected.pid} to stop`);
184
+ }
185
+ //# sourceMappingURL=ownership.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ownership.js","sourceRoot":"","sources":["../../src/daemon/ownership.ts"],"names":[],"mappings":"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"}
@@ -30,7 +30,7 @@ export function probeAppServer(socketPath) {
30
30
  id: 1,
31
31
  method: "initialize",
32
32
  params: {
33
- clientInfo: { name: "codex_app_server_daemon", title: "Codex App Server Daemon", version: "0.144.4" },
33
+ clientInfo: { name: "codex_app_server_daemon", title: "Codex App Server Daemon", version: "0.144.6" },
34
34
  },
35
35
  }));
36
36
  });
@@ -2,6 +2,7 @@ export interface PidRecord {
2
2
  readonly pid: number;
3
3
  readonly processStartTime: string;
4
4
  }
5
+ export declare function daemonStateDirectory(): string;
5
6
  export declare function processStartTime(pid: number): string | undefined;
6
7
  export declare function processMatches(record: PidRecord): boolean;
7
8
  export declare function reconcileManagedProcess(pidFile: string): PidRecord | undefined;
@@ -13,4 +14,6 @@ export declare function spawnDetachedGateway(options: {
13
14
  readonly remoteControlEnabled: boolean;
14
15
  }): Promise<number>;
15
16
  export declare function stopManagedProcess(pidFile: string, expected?: PidRecord): Promise<void>;
17
+ export declare function killManagedProcess(pidFile: string, expected: PidRecord): Promise<void>;
16
18
  export declare function withDaemonLock<T>(stateDirectory: string, operation: () => Promise<T>): Promise<T>;
19
+ export declare function withGatewayStartupFence<T>(operation: () => Promise<T>): Promise<T>;
@@ -1,7 +1,8 @@
1
1
  import { randomUUID } from "node:crypto";
2
2
  import { spawn, spawnSync } from "node:child_process";
3
3
  import { chmodSync, closeSync, existsSync, mkdirSync, openSync, readFileSync, renameSync, rmSync, statSync, writeFileSync, } from "node:fs";
4
- import { dirname } from "node:path";
4
+ import { homedir } from "node:os";
5
+ import { dirname, join } from "node:path";
5
6
  const CHILD_PID_FILE = "CODEX_HYBRID_DAEMON_PID_FILE";
6
7
  const CHILD_TOKEN = "CODEX_HYBRID_DAEMON_TOKEN";
7
8
  const REMOTE_CONTROL_DISABLED = "CODEX_INTERNAL_APP_SERVER_REMOTE_CONTROL_DISABLED";
@@ -11,6 +12,18 @@ const STOP_GRACE_MS = 60_000;
11
12
  const STOP_TIMEOUT_MS = 70_000;
12
13
  const LOCK_TIMEOUT_MS = 75_000;
13
14
  const sleep = (milliseconds) => new Promise((resolve) => setTimeout(resolve, milliseconds));
15
+ export function daemonStateDirectory() {
16
+ return join(process.env.CODEX_HOME ?? join(homedir(), ".codex"), "app-server-daemon");
17
+ }
18
+ function hasDaemonChildHandshake() {
19
+ const pidFile = process.env[CHILD_PID_FILE];
20
+ const token = process.env[CHILD_TOKEN];
21
+ if (!pidFile && !token)
22
+ return false;
23
+ if (!pidFile || !token)
24
+ throw new Error("incomplete daemon child handshake environment");
25
+ return true;
26
+ }
14
27
  function processExists(pid) {
15
28
  if (!Number.isInteger(pid) || pid <= 0)
16
29
  return false;
@@ -213,6 +226,24 @@ export async function stopManagedProcess(pidFile, expected) {
213
226
  }
214
227
  throw new Error(`timed out waiting for pid-managed app server ${record.pid} to stop`);
215
228
  }
229
+ export async function killManagedProcess(pidFile, expected) {
230
+ const current = reconcileManagedProcess(pidFile);
231
+ if (!current || current.pid !== expected.pid || current.processStartTime !== expected.processStartTime)
232
+ return;
233
+ // A stale gateway whose socket pathname was rebound must not run graceful
234
+ // cleanup: its rm(socketPath) would unlink the new owner's live endpoint.
235
+ // PID/start-time still fences this dedicated detached process group.
236
+ signalGroup(expected.pid, "SIGKILL");
237
+ const deadline = Date.now() + START_TIMEOUT_MS;
238
+ while (Date.now() < deadline) {
239
+ if (!groupExists(expected.pid)) {
240
+ removeRecord(pidFile, expected);
241
+ return;
242
+ }
243
+ await sleep(POLL_MS);
244
+ }
245
+ throw new Error(`timed out killing stale pid-managed app server ${expected.pid}`);
246
+ }
216
247
  function readLockOwner(path) {
217
248
  try {
218
249
  const value = JSON.parse(readFileSync(path, "utf8"));
@@ -282,4 +313,9 @@ export async function withDaemonLock(stateDirectory, operation) {
282
313
  rmSync(lockDirectory, { recursive: true, force: true });
283
314
  }
284
315
  }
316
+ export function withGatewayStartupFence(operation) {
317
+ return hasDaemonChildHandshake()
318
+ ? operation()
319
+ : withDaemonLock(daemonStateDirectory(), operation);
320
+ }
285
321
  //# sourceMappingURL=supervisor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"supervisor.js","sourceRoot":"","sources":["../../src/daemon/supervisor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EACL,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,MAAM,EACN,QAAQ,EACR,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,cAAc,GAAG,8BAA8B,CAAC;AACtD,MAAM,WAAW,GAAG,2BAA2B,CAAC;AAChD,MAAM,uBAAuB,GAAG,mDAAmD,CAAC;AACpF,MAAM,OAAO,GAAG,EAAE,CAAC;AACnB,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAChC,MAAM,aAAa,GAAG,MAAM,CAAC;AAC7B,MAAM,eAAe,GAAG,MAAM,CAAC;AAC/B,MAAM,eAAe,GAAG,MAAM,CAAC;AAW/B,MAAM,KAAK,GAAG,CAAC,YAAoB,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;AAEpG,SAAS,aAAa,CAAC,GAAW;IAChC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACrD,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAQ,KAA+B,CAAC,IAAI,KAAK,OAAO,CAAC;IAC3D,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,GAAW;IACjC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,YAAY,CAAC,SAAS,GAAG,OAAO,EAAE,MAAM,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1E,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;QAAE,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IAC3F,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9D,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAiB;IAC9C,OAAO,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,gBAAgB,CAAC;AAClE,CAAC;AAED,SAAS,WAAW,CAAC,QAAgB;IACnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAuB,CAAC;IACzD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,OAAO,KAAK,CAAC,gBAAgB,KAAK,QAAQ,EAAE,CAAC;QAC/E,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,KAAkB,CAAC;AAC5B,CAAC;AAED,SAAS,WAAW,CAAC,IAAY,EAAE,KAAc;IAC/C,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3D,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;IAChC,MAAM,SAAS,GAAG,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,IAAI,UAAU,EAAE,MAAM,CAAC;IAC/D,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACjE,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC5B,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,UAAU,CAAC,IAAY,EAAE,QAAmB;IACnD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC9F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,QAAoB;IACtD,IAAI,CAAC,QAAQ,IAAI,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC;QAAE,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,WAAW,CAAC,YAAoB;IACvC,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAQ,KAA+B,CAAC,IAAI,KAAK,OAAO,CAAC;IAC3D,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,YAAoB,EAAE,MAAsB;IAC/D,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,OAAO;YAAE,MAAM,KAAK,CAAC;IACrE,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAY;IAC1C,IAAI,CAAC;QACH,UAAU,CAAC,IAAI,EAAE,GAAG,IAAI,YAAY,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,KAAK,CAAC;IACtE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAe;IACrD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAC;IAC3C,IAAI,MAAiB,CAAC;IACtB,IAAI,CAAC;QACH,MAAM,GAAG,WAAW,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAChC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QACxE,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,IAAI,gBAAgB;YAAE,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC9F,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,cAAc,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAC5D,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC;QAAE,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IACrF,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC9B,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB;IAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACvC,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK;QAAE,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC;IAC/C,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACzF,MAAM,WAAW,GAAG,WAAW,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/D,IAAI,WAAW,CAAC,GAAG,KAAK,CAAC,IAAI,WAAW,CAAC,gBAAgB,KAAK,YAAY,KAAK,EAAE,EAAE,CAAC;QAClF,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAChF,CAAC;IACD,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChD,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,OAAO,CAAC,GAAG,UAAU,CAAC,CAAC;IAChG,MAAM,MAAM,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC;IACjE,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC7B,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACnC,OAAO,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAChC,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,OAK1C;IACC,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC;IAC3B,MAAM,WAAW,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,gBAAgB,EAAE,YAAY,KAAK,EAAE,EAAE,CAAC;IACtE,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC1C,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACxE,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IACjD,IAAI,OAAO,CAAC,oBAAoB;QAAE,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAChE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IACjC,MAAM,GAAG,GAAG;QACV,GAAG,OAAO,CAAC,GAAG;QACd,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,OAAO;QACjC,CAAC,WAAW,CAAC,EAAE,KAAK;QACpB,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,uBAAuB,CAAC,EAAE,GAAG,EAAE,CAAC;KAC5E,CAAC;IACF,IAAI,KAAK,CAAC;IACV,IAAI,UAA6B,CAAC;IAClC,IAAI,CAAC;QACH,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IACtG,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,SAAS,CAAC,MAAM,CAAC,CAAC;QAClB,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC3C,MAAM,KAAK,CAAC;IACd,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,SAAS,CAAC,MAAM,CAAC,CAAC;IAClB,KAAK,CAAC,KAAK,EAAE,CAAC;IACd,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,gBAAgB,CAAC;IAC/C,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,uBAAuB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACxD,IAAI,MAAM,IAAI,MAAM,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG;YAAE,OAAO,MAAM,CAAC,GAAG,CAAC;QAC1D,IAAI,UAAU,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI;YAAE,MAAM;QACjD,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IACD,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;QACd,IAAI,CAAC;YAAC,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,wCAAwC,CAAC,CAAC;IAC/F,CAAC;IACD,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACrH,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,kCAAkC,OAAO,CAAC,SAAS,OAAO,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACxG,MAAM,UAAU,IAAI,IAAI,KAAK,CAAC,oDAAoD,MAAM,EAAE,CAAC,CAAC;AAC9F,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAAe,EAAE,QAAoB;IAC5E,MAAM,OAAO,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACjD,IAAI,QAAQ,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC;QAAE,OAAO;IAClE,MAAM,MAAM,GAAG,QAAQ,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;IACzE,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IACnC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,eAAe,EAAE,CAAC;QAChD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC9B,OAAO;QACT,CAAC;QACD,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,IAAI,aAAa,EAAE,CAAC;YACvD,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YACnC,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC;QACD,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,gDAAgD,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC;AACxF,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAuB,CAAC;QAC3E,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,OAAO,KAAK,CAAC,gBAAgB,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;YACjH,CAAC,CAAC,KAAkB;YACpB,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,aAAqB;IACxC,MAAM,QAAQ,GAAG,GAAG,aAAa,WAAW,CAAC;IAC7C,IAAI,CAAC;QACH,SAAS,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,KAAK,CAAC;QACpE,OAAO;IACT,CAAC;IACD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,aAAa,aAAa,CAAC,CAAC;QAC3D,MAAM,GAAG,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACzF,IAAI,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAC7E,MAAM,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACrD,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAI,cAAsB,EAAE,SAA2B;IACzF,SAAS,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5D,SAAS,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACjC,MAAM,QAAQ,GAAG,GAAG,cAAc,cAAc,CAAC;IACjD,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAClD,SAAS,CAAC,UAAU,CAAC,CAAC;IACtB,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC3B,MAAM,aAAa,GAAG,GAAG,QAAQ,SAAS,CAAC;IAC3C,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChD,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAC/E,MAAM,KAAK,GAAc,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,gBAAgB,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC;IAChG,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,eAAe,CAAC;IAC9C,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC;YACH,SAAS,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAC1C,WAAW,CAAC,GAAG,aAAa,aAAa,EAAE,KAAK,CAAC,CAAC;YAClD,MAAM;QACR,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;gBAAE,MAAM,KAAK,CAAC;YACpE,WAAW,CAAC,aAAa,CAAC,CAAC;YAC3B,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,QAAQ,EAAE,CAAC,CAAC;YACvG,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IACD,IAAI,CAAC;QACH,OAAO,MAAM,SAAS,EAAE,CAAC;IAC3B,CAAC;YAAS,CAAC;QACT,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,aAAa,aAAa,CAAC,CAAC;QAC7D,IAAI,OAAO,EAAE,KAAK,KAAK,KAAK,CAAC,KAAK;YAAE,MAAM,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9F,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"supervisor.js","sourceRoot":"","sources":["../../src/daemon/supervisor.ts"],"names":[],"mappings":"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"}
@@ -8,4 +8,10 @@ import type { MetricsRegistry } from "../observability/metrics.js";
8
8
  import type { RpcRecorder } from "../observability/rpcRecorder.js";
9
9
  import type { RemoteControlHub } from "./remoteControlHub.js";
10
10
  import type { CrossProviderForks } from "../handoff/service.js";
11
- export declare function attachClientConnection(client: WebSocket, stockSocket: string, claudeModels: ClaudeModelCatalog, claude: ClaudeService, handoffs: CrossProviderForks, subscriptions: SubscriptionHub, logger: Logger, cursors: CursorCodec, metrics: MetricsRegistry, recorder: RpcRecorder, remoteControl?: RemoteControlHub): void;
11
+ import { type FeatureConfig } from "../config/config.js";
12
+ import type { ProviderAvailabilityService } from "../runtime/providerAvailability.js";
13
+ import { StockStateTracker } from "../state/stockStateTracker.js";
14
+ export interface ClientConnectionHandle {
15
+ readonly closed: Promise<void>;
16
+ }
17
+ export declare function attachClientConnection(client: WebSocket, stockSocket: string, claudeModels: ClaudeModelCatalog, claude: ClaudeService, handoffs: CrossProviderForks, subscriptions: SubscriptionHub, logger: Logger, cursors: CursorCodec, metrics: MetricsRegistry, recorder: RpcRecorder, remoteControl?: RemoteControlHub, features?: FeatureConfig, providerAvailability?: Pick<ProviderAvailabilityService, "read" | "refresh" | "refreshAll">, sharedStockState?: StockStateTracker): ClientConnectionHandle;