@jasonews/agent-squad-gateway 1.0.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 (149) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +200 -0
  3. package/SECURITY.md +44 -0
  4. package/dist/bin/agent-squad-gateway.js +55 -0
  5. package/dist/bin/agent-squad-gateway.js.map +1 -0
  6. package/dist/config/config.js +124 -0
  7. package/dist/config/config.js.map +1 -0
  8. package/dist/config/paths.js +16 -0
  9. package/dist/config/paths.js.map +1 -0
  10. package/dist/control-plane/clients.js +77 -0
  11. package/dist/control-plane/clients.js.map +1 -0
  12. package/dist/control-plane/core-connection.js +54 -0
  13. package/dist/control-plane/core-connection.js.map +1 -0
  14. package/dist/control-plane/credentials.js +134 -0
  15. package/dist/control-plane/credentials.js.map +1 -0
  16. package/dist/control-plane/db.js +33 -0
  17. package/dist/control-plane/db.js.map +1 -0
  18. package/dist/control-plane/extensions.js +59 -0
  19. package/dist/control-plane/extensions.js.map +1 -0
  20. package/dist/control-plane/grants.js +107 -0
  21. package/dist/control-plane/grants.js.map +1 -0
  22. package/dist/control-plane/idempotency.js +132 -0
  23. package/dist/control-plane/idempotency.js.map +1 -0
  24. package/dist/control-plane/migrations.js +133 -0
  25. package/dist/control-plane/migrations.js.map +1 -0
  26. package/dist/control-plane/response-sessions.js +359 -0
  27. package/dist/control-plane/response-sessions.js.map +1 -0
  28. package/dist/control-plane/retention.js +138 -0
  29. package/dist/control-plane/retention.js.map +1 -0
  30. package/dist/control-plane/runs.js +156 -0
  31. package/dist/control-plane/runs.js.map +1 -0
  32. package/dist/control-plane/targets.js +449 -0
  33. package/dist/control-plane/targets.js.map +1 -0
  34. package/dist/control-plane/types.js +2 -0
  35. package/dist/control-plane/types.js.map +1 -0
  36. package/dist/core-client/client.js +275 -0
  37. package/dist/core-client/client.js.map +1 -0
  38. package/dist/core-client/event-proxy.js +105 -0
  39. package/dist/core-client/event-proxy.js.map +1 -0
  40. package/dist/core-client/types.js +2 -0
  41. package/dist/core-client/types.js.map +1 -0
  42. package/dist/extensions/contract.js +2 -0
  43. package/dist/extensions/contract.js.map +1 -0
  44. package/dist/extensions/openai/auth.js +16 -0
  45. package/dist/extensions/openai/auth.js.map +1 -0
  46. package/dist/extensions/openai/chat.js +403 -0
  47. package/dist/extensions/openai/chat.js.map +1 -0
  48. package/dist/extensions/openai/errors.js +79 -0
  49. package/dist/extensions/openai/errors.js.map +1 -0
  50. package/dist/extensions/openai/image-input.js +79 -0
  51. package/dist/extensions/openai/image-input.js.map +1 -0
  52. package/dist/extensions/openai/models.js +40 -0
  53. package/dist/extensions/openai/models.js.map +1 -0
  54. package/dist/extensions/openai/responses.js +731 -0
  55. package/dist/extensions/openai/responses.js.map +1 -0
  56. package/dist/extensions/openai/routes.js +81 -0
  57. package/dist/extensions/openai/routes.js.map +1 -0
  58. package/dist/extensions/openai/run-attempt.js +96 -0
  59. package/dist/extensions/openai/run-attempt.js.map +1 -0
  60. package/dist/extensions/openai/schemas.js +176 -0
  61. package/dist/extensions/openai/schemas.js.map +1 -0
  62. package/dist/extensions/openai/sse.js +421 -0
  63. package/dist/extensions/openai/sse.js.map +1 -0
  64. package/dist/extensions/openai/tools.js +727 -0
  65. package/dist/extensions/openai/tools.js.map +1 -0
  66. package/dist/extensions/registry.js +30 -0
  67. package/dist/extensions/registry.js.map +1 -0
  68. package/dist/lifecycle/daemon.js +437 -0
  69. package/dist/lifecycle/daemon.js.map +1 -0
  70. package/dist/lifecycle/pidfile.js +34 -0
  71. package/dist/lifecycle/pidfile.js.map +1 -0
  72. package/dist/provider-runtime/antigravity/adapter.js +398 -0
  73. package/dist/provider-runtime/antigravity/adapter.js.map +1 -0
  74. package/dist/provider-runtime/antigravity/conversation.js +31 -0
  75. package/dist/provider-runtime/antigravity/conversation.js.map +1 -0
  76. package/dist/provider-runtime/capability-service.js +191 -0
  77. package/dist/provider-runtime/capability-service.js.map +1 -0
  78. package/dist/provider-runtime/claude/adapter.js +397 -0
  79. package/dist/provider-runtime/claude/adapter.js.map +1 -0
  80. package/dist/provider-runtime/claude/protocol.js +143 -0
  81. package/dist/provider-runtime/claude/protocol.js.map +1 -0
  82. package/dist/provider-runtime/codex/adapter.js +440 -0
  83. package/dist/provider-runtime/codex/adapter.js.map +1 -0
  84. package/dist/provider-runtime/codex/json-rpc-client.js +182 -0
  85. package/dist/provider-runtime/codex/json-rpc-client.js.map +1 -0
  86. package/dist/provider-runtime/codex/protocol.js +128 -0
  87. package/dist/provider-runtime/codex/protocol.js.map +1 -0
  88. package/dist/provider-runtime/command-discovery.js +106 -0
  89. package/dist/provider-runtime/command-discovery.js.map +1 -0
  90. package/dist/provider-runtime/cursor/adapter.js +427 -0
  91. package/dist/provider-runtime/cursor/adapter.js.map +1 -0
  92. package/dist/provider-runtime/cursor/protocol.js +81 -0
  93. package/dist/provider-runtime/cursor/protocol.js.map +1 -0
  94. package/dist/provider-runtime/fake/adapter.js +138 -0
  95. package/dist/provider-runtime/fake/adapter.js.map +1 -0
  96. package/dist/provider-runtime/image-assets.js +409 -0
  97. package/dist/provider-runtime/image-assets.js.map +1 -0
  98. package/dist/provider-runtime/image-support.js +5 -0
  99. package/dist/provider-runtime/image-support.js.map +1 -0
  100. package/dist/provider-runtime/invocation-service.js +503 -0
  101. package/dist/provider-runtime/invocation-service.js.map +1 -0
  102. package/dist/provider-runtime/kimi/adapter.js +657 -0
  103. package/dist/provider-runtime/kimi/adapter.js.map +1 -0
  104. package/dist/provider-runtime/opencode/adapter.js +610 -0
  105. package/dist/provider-runtime/opencode/adapter.js.map +1 -0
  106. package/dist/provider-runtime/opencode/server.js +46 -0
  107. package/dist/provider-runtime/opencode/server.js.map +1 -0
  108. package/dist/provider-runtime/process/line-reader.js +49 -0
  109. package/dist/provider-runtime/process/line-reader.js.map +1 -0
  110. package/dist/provider-runtime/process/managed-process.js +151 -0
  111. package/dist/provider-runtime/process/managed-process.js.map +1 -0
  112. package/dist/provider-runtime/provider-input.js +77 -0
  113. package/dist/provider-runtime/provider-input.js.map +1 -0
  114. package/dist/provider-runtime/register-providers.js +26 -0
  115. package/dist/provider-runtime/register-providers.js.map +1 -0
  116. package/dist/provider-runtime/registry.js +35 -0
  117. package/dist/provider-runtime/registry.js.map +1 -0
  118. package/dist/provider-runtime/replay-buffer.js +168 -0
  119. package/dist/provider-runtime/replay-buffer.js.map +1 -0
  120. package/dist/provider-runtime/scheduler.js +155 -0
  121. package/dist/provider-runtime/scheduler.js.map +1 -0
  122. package/dist/provider-runtime/types.js +2 -0
  123. package/dist/provider-runtime/types.js.map +1 -0
  124. package/dist/provider-runtime/workspaces.js +814 -0
  125. package/dist/provider-runtime/workspaces.js.map +1 -0
  126. package/dist/security/admin-auth.js +109 -0
  127. package/dist/security/admin-auth.js.map +1 -0
  128. package/dist/security/crypto.js +52 -0
  129. package/dist/security/crypto.js.map +1 -0
  130. package/dist/security/secret-files.js +33 -0
  131. package/dist/security/secret-files.js.map +1 -0
  132. package/dist/server/admin-routes.js +610 -0
  133. package/dist/server/admin-routes.js.map +1 -0
  134. package/dist/server/app.js +178 -0
  135. package/dist/server/app.js.map +1 -0
  136. package/dist/server/auth-hooks.js +43 -0
  137. package/dist/server/auth-hooks.js.map +1 -0
  138. package/dist/server/core-routes.js +127 -0
  139. package/dist/server/core-routes.js.map +1 -0
  140. package/dist/server/errors.js +19 -0
  141. package/dist/server/errors.js.map +1 -0
  142. package/dist/server/ui-routes.js +77 -0
  143. package/dist/server/ui-routes.js.map +1 -0
  144. package/dist/web/assets/index-BhqNoPpE.js +206 -0
  145. package/dist/web/assets/index-BhqNoPpE.js.map +1 -0
  146. package/dist/web/assets/index-C5nnaBfZ.css +1 -0
  147. package/dist/web/index.html +14 -0
  148. package/package.json +74 -0
  149. package/translations/README.zh-CN.md +175 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/extensions/openai/tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ export class GatewayExtensionRegistry {
2
+ context;
3
+ extensions = new Map();
4
+ constructor(context) {
5
+ this.context = context;
6
+ }
7
+ register(extension) {
8
+ const id = extension.manifest.id;
9
+ if (this.extensions.has(id))
10
+ throw new Error('extension_already_registered');
11
+ extension.register(this.context);
12
+ this.extensions.set(id, extension);
13
+ }
14
+ async start() {
15
+ for (const extension of this.extensions.values())
16
+ await extension.start();
17
+ }
18
+ async stop() {
19
+ const registered = [...this.extensions.values()].reverse();
20
+ for (const extension of registered)
21
+ await extension.stop();
22
+ }
23
+ async health() {
24
+ const result = {};
25
+ for (const [id, extension] of this.extensions)
26
+ result[id] = await extension.health();
27
+ return result;
28
+ }
29
+ }
30
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/extensions/registry.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,wBAAwB;IAGN;IAFZ,UAAU,GAAG,IAAI,GAAG,EAA4B,CAAC;IAElE,YAA6B,OAAyB;QAAzB,YAAO,GAAP,OAAO,CAAkB;IAAG,CAAC;IAE1D,QAAQ,CAAC,SAA2B;QAClC,MAAM,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAC7E,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,KAAK;QACT,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YAAE,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QAC3D,KAAK,MAAM,SAAS,IAAI,UAAU;YAAE,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,MAAM;QACV,MAAM,MAAM,GAAqD,EAAE,CAAC;QACpE,KAAK,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,UAAU;YAAE,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,SAAS,CAAC,MAAM,EAAE,CAAC;QACrF,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
@@ -0,0 +1,437 @@
1
+ import { spawn as spawnChild } from 'node:child_process';
2
+ import { statSync } from 'node:fs';
3
+ import Database from 'better-sqlite3';
4
+ import { ensureGatewayConfigFile, gatewayLoopbackOrigin, loadGatewayConfig, } from '../config/config.js';
5
+ import { ClientRepository } from '../control-plane/clients.js';
6
+ import { CredentialService } from '../control-plane/credentials.js';
7
+ import { openGatewayDb } from '../control-plane/db.js';
8
+ import { ExtensionRepository } from '../control-plane/extensions.js';
9
+ import { GrantRepository } from '../control-plane/grants.js';
10
+ import { RunRepository } from '../control-plane/runs.js';
11
+ import { TargetRepository } from '../control-plane/targets.js';
12
+ import { BUILT_IN_PROVIDER_COMMANDS, registerBuiltInProviders, } from '../provider-runtime/register-providers.js';
13
+ import { resolveProviderCommand } from '../provider-runtime/command-discovery.js';
14
+ import { ProviderRegistry } from '../provider-runtime/registry.js';
15
+ import { AdminAuthService } from '../security/admin-auth.js';
16
+ import { ensureSecretFile, readSecretFile } from '../security/secret-files.js';
17
+ import { buildGatewayApp } from '../server/app.js';
18
+ import { inspectPid, removePid, writePid } from './pidfile.js';
19
+ const SECRET_BYTES = 32;
20
+ const BOOTSTRAP_CODE = /^[A-Za-z0-9_-]+$/;
21
+ const defaultFetch = async (url, init) => fetch(url, init);
22
+ const defaultProcess = {
23
+ pid: process.pid,
24
+ argv: process.argv,
25
+ execPath: process.execPath,
26
+ kill: (pid, signal) => process.kill(pid, signal),
27
+ on: (signal, listener) => { process.on(signal, listener); },
28
+ off: (signal, listener) => { process.off(signal, listener); },
29
+ exit: (code) => { process.exit(code); },
30
+ get exitCode() { return process.exitCode; },
31
+ set exitCode(code) { process.exitCode = code; },
32
+ };
33
+ export async function startGateway(options = {}) {
34
+ ensureGatewayConfigFile(options.baseDir);
35
+ const config = resolveConfig(options);
36
+ const processRef = options.process ?? defaultProcess;
37
+ const output = options.output ?? console.error;
38
+ const existingPid = readLifecyclePid(config.paths);
39
+ if (existingPid !== null) {
40
+ if (isProcessAlive(existingPid, processRef)) {
41
+ output(`agent-squad-gateway already running (pid ${existingPid})`);
42
+ return;
43
+ }
44
+ removePid(config.paths);
45
+ }
46
+ if (!options.foreground) {
47
+ const child = (options.spawn ?? defaultSpawn)(processRef.execPath ?? process.execPath, [
48
+ processRef.argv[1],
49
+ 'start',
50
+ '--foreground',
51
+ '--address',
52
+ config.host,
53
+ '--port',
54
+ String(config.port),
55
+ '--web-ui-auth',
56
+ config.webUiAuth,
57
+ ], { detached: true, stdio: 'ignore' });
58
+ child.unref();
59
+ output(`agent-squad-gateway started${child.pid ? ` (pid ${child.pid})` : ''}`);
60
+ return;
61
+ }
62
+ const masterKey = ensureSecretFile(config.paths.masterKeyPath, SECRET_BYTES);
63
+ const adminSecret = ensureSecretFile(config.paths.adminSecretPath, SECRET_BYTES);
64
+ const runtime = (options.createRuntime ?? createGatewayRuntime)(config, masterKey, adminSecret, options.clock ?? Date.now);
65
+ let shutdown;
66
+ let signalHandled = false;
67
+ let resolveShutdown = () => { };
68
+ let rejectShutdown = () => { };
69
+ const shutdownComplete = new Promise((resolve, reject) => {
70
+ resolveShutdown = resolve;
71
+ rejectShutdown = reject;
72
+ });
73
+ const close = () => {
74
+ shutdown ??= closeRuntime(runtime, config.paths);
75
+ return shutdown;
76
+ };
77
+ const handleSignal = () => {
78
+ if (signalHandled)
79
+ return;
80
+ signalHandled = true;
81
+ void close().then(resolveShutdown, rejectShutdown);
82
+ };
83
+ processRef.on?.('SIGINT', handleSignal);
84
+ processRef.on?.('SIGTERM', handleSignal);
85
+ try {
86
+ runtime.interruptUnfinished();
87
+ writePid(config.paths, processRef.pid);
88
+ await runtime.listen(config.host, config.port);
89
+ }
90
+ catch (error) {
91
+ try {
92
+ await close();
93
+ }
94
+ catch (cleanupError) {
95
+ throw new AggregateError([error, cleanupError], 'Gateway startup failed and cleanup also failed', { cause: error });
96
+ }
97
+ finally {
98
+ processRef.off?.('SIGINT', handleSignal);
99
+ processRef.off?.('SIGTERM', handleSignal);
100
+ }
101
+ throw error;
102
+ }
103
+ try {
104
+ await shutdownComplete;
105
+ }
106
+ catch (error) {
107
+ processRef.exitCode = 1;
108
+ throw error;
109
+ }
110
+ finally {
111
+ processRef.off?.('SIGINT', handleSignal);
112
+ processRef.off?.('SIGTERM', handleSignal);
113
+ }
114
+ processRef.exit?.(0);
115
+ }
116
+ async function closeRuntime(runtime, paths) {
117
+ const errors = [];
118
+ try {
119
+ await runtime.closeApp();
120
+ }
121
+ catch (error) {
122
+ errors.push(error);
123
+ }
124
+ try {
125
+ runtime.closeDb();
126
+ }
127
+ catch (error) {
128
+ errors.push(error);
129
+ }
130
+ try {
131
+ removePid(paths);
132
+ }
133
+ catch (error) {
134
+ errors.push(error);
135
+ }
136
+ if (errors.length === 1)
137
+ throw errors[0];
138
+ if (errors.length > 1)
139
+ throw new AggregateError(errors, 'Gateway runtime shutdown failed');
140
+ }
141
+ export async function stopGateway(options = {}) {
142
+ const config = resolveConfig(options);
143
+ const processRef = options.process ?? defaultProcess;
144
+ const output = options.output ?? console.error;
145
+ const pid = readLifecyclePid(config.paths);
146
+ if (pid === null) {
147
+ output('agent-squad-gateway is not running');
148
+ return;
149
+ }
150
+ if (!isProcessAlive(pid, processRef)) {
151
+ removePid(config.paths);
152
+ output('removed stale Gateway PID file');
153
+ return;
154
+ }
155
+ processRef.kill(pid, 'SIGTERM');
156
+ output(`sent SIGTERM to Gateway (pid ${pid})`);
157
+ }
158
+ export async function statusGateway(options = {}) {
159
+ const config = resolveConfig(options);
160
+ const processRef = options.process ?? defaultProcess;
161
+ const pid = readLifecyclePid(config.paths);
162
+ const alive = pid !== null && isProcessAlive(pid, processRef);
163
+ if (pid !== null && !alive)
164
+ removePid(config.paths);
165
+ const health = await probe(options.fetch ?? defaultFetch, `${gatewayLoopbackOrigin(config)}/health`);
166
+ const status = { pid: alive ? pid : null, alive, health };
167
+ (options.output ?? console.error)(`pid: ${status.pid ?? '-'}, alive: ${status.alive}, health: ${status.health}`);
168
+ return status;
169
+ }
170
+ export async function openGateway(options = {}) {
171
+ const config = resolveConfig(options);
172
+ const origin = gatewayLoopbackOrigin(config);
173
+ const modeResponse = await (options.fetch ?? defaultFetch)(`${origin}/admin/auth/mode`);
174
+ if (!modeResponse.ok || !modeResponse.json) {
175
+ throw new Error(`Gateway Web UI auth mode request failed (${modeResponse.status})`);
176
+ }
177
+ const mode = await modeResponse.json();
178
+ if (!isWebUiAuthMode(mode))
179
+ throw new Error('Gateway returned an invalid Web UI auth mode');
180
+ if (mode.mode === 'disabled') {
181
+ (options.openUrl ?? openInBrowser)(`${origin}/#/overview`);
182
+ return;
183
+ }
184
+ const adminSecret = readSecretFile(config.paths.adminSecretPath);
185
+ if (adminSecret.length !== SECRET_BYTES)
186
+ throw new Error('invalid Gateway admin secret');
187
+ const response = await (options.fetch ?? defaultFetch)(`${origin}/admin/bootstrap/mint`, {
188
+ method: 'POST',
189
+ headers: { authorization: `Bearer ${adminSecret.toString('base64url')}` },
190
+ });
191
+ if (!response.ok || !response.json)
192
+ throw new Error(`Gateway bootstrap mint failed (${response.status})`);
193
+ const body = await response.json();
194
+ const code = isBootstrapCode(body) ? body.code : null;
195
+ if (!code)
196
+ throw new Error('Gateway bootstrap mint returned an invalid code');
197
+ (options.openUrl ?? openInBrowser)(`${origin}/#/bootstrap/${code}`);
198
+ }
199
+ export async function doctorGateway(options = {}) {
200
+ const config = resolveConfig(options);
201
+ const providers = options.providers ?? new ProviderRegistry();
202
+ if (!options.providers)
203
+ registerBuiltInProviders(providers);
204
+ let providerReport;
205
+ try {
206
+ providerReport = await inspectProviders(providers, readDoctorTargets(config.paths.dbPath), options.resolveProviderBinary ?? resolveProviderBinary);
207
+ }
208
+ finally {
209
+ await providers.dispose();
210
+ }
211
+ const report = {
212
+ masterKeyMode: fileMode(config.paths.masterKeyPath),
213
+ adminSecretMode: fileMode(config.paths.adminSecretPath),
214
+ database: databaseReachability(options.databaseProbe ?? defaultDatabaseProbe, config.paths.dbPath),
215
+ core: asCoreReachability(await probe(options.fetch ?? defaultFetch, `${config.coreUrl}/v1/health`)),
216
+ providers: providerReport,
217
+ };
218
+ const output = options.output ?? console.error;
219
+ output(`master.key mode: ${report.masterKeyMode}`);
220
+ output(`admin-secret mode: ${report.adminSecretMode}`);
221
+ output(`database: ${report.database}`);
222
+ output(`Core: ${report.core}`);
223
+ for (const provider of report.providers) {
224
+ const targets = provider.targets.length === 0
225
+ ? 'not-configured'
226
+ : provider.targets.map((target) => `${target.id}:${target.status}`).join(',');
227
+ output(`provider ${provider.cli}: binary=${provider.binaryPath ?? 'missing'} version=${provider.version ?? 'unknown'} targets=${targets}`);
228
+ }
229
+ return report;
230
+ }
231
+ export function createGatewayRuntime(config, masterKey, adminSecret, clock, factories = {}) {
232
+ const db = (factories.openDb ?? openGatewayDb)(config.paths.dbPath);
233
+ try {
234
+ const clients = new ClientRepository(db);
235
+ const credentials = new CredentialService(db, masterKey);
236
+ const targets = new TargetRepository(db);
237
+ const grants = new GrantRepository(db);
238
+ const extensions = new ExtensionRepository(db);
239
+ const runs = new RunRepository(db);
240
+ const adminAuth = new AdminAuthService(db, adminSecret, { now: clock });
241
+ const app = (factories.buildApp ?? buildGatewayApp)({
242
+ config,
243
+ db,
244
+ clients,
245
+ credentials,
246
+ targets,
247
+ grants,
248
+ extensions,
249
+ runs,
250
+ adminAuth,
251
+ scanCapabilitiesOnReady: true,
252
+ });
253
+ return asRuntime(app, db);
254
+ }
255
+ catch (error) {
256
+ try {
257
+ db.close();
258
+ }
259
+ catch (cleanupError) {
260
+ throw new AggregateError([error, cleanupError], 'Gateway runtime assembly failed and database cleanup also failed', { cause: error });
261
+ }
262
+ throw error;
263
+ }
264
+ }
265
+ function asRuntime(app, db) {
266
+ return {
267
+ // Retention's onReady hook reconciles Runs and response chains in one transaction.
268
+ interruptUnfinished: () => { },
269
+ listen: async (host, port) => { await app.listen({ host, port }); },
270
+ closeApp: async () => { await app.close(); },
271
+ closeDb: () => { db.close(); },
272
+ };
273
+ }
274
+ function defaultSpawn(command, args, options) {
275
+ return spawnChild(command, args, options);
276
+ }
277
+ function openInBrowser(url) {
278
+ const command = process.platform === 'darwin' ? 'open' : process.platform === 'win32' ? 'cmd' : 'xdg-open';
279
+ const args = process.platform === 'darwin'
280
+ ? [url]
281
+ : process.platform === 'win32'
282
+ ? ['/c', 'start', '', url]
283
+ : [url];
284
+ const child = spawnChild(command, args, { detached: true, stdio: 'ignore' });
285
+ child.unref();
286
+ }
287
+ function resolveConfig(options) {
288
+ return loadGatewayConfig({
289
+ baseDir: options.baseDir,
290
+ address: options.address,
291
+ port: options.port,
292
+ coreUrl: options.coreUrl,
293
+ webUiAuth: options.webUiAuth,
294
+ });
295
+ }
296
+ function isWebUiAuthMode(value) {
297
+ if (typeof value !== 'object' || value === null || !('mode' in value))
298
+ return false;
299
+ return value.mode === 'disabled' || value.mode === 'token';
300
+ }
301
+ function readLifecyclePid(paths) {
302
+ const result = inspectPid(paths);
303
+ if (result.kind === 'malformed')
304
+ removePid(paths);
305
+ return result.kind === 'valid' ? result.pid : null;
306
+ }
307
+ function isProcessAlive(pid, processRef) {
308
+ try {
309
+ processRef.kill(pid, 0);
310
+ return true;
311
+ }
312
+ catch {
313
+ return false;
314
+ }
315
+ }
316
+ async function probe(fetch, url) {
317
+ try {
318
+ const response = await fetch(url);
319
+ return response.ok ? 'ok' : `status:${response.status}`;
320
+ }
321
+ catch {
322
+ return 'unreachable';
323
+ }
324
+ }
325
+ function asCoreReachability(value) {
326
+ return value === 'ok' ? 'reachable' : value;
327
+ }
328
+ function fileMode(path) {
329
+ try {
330
+ return (statSync(path).mode & 0o777).toString(8).padStart(4, '0');
331
+ }
332
+ catch {
333
+ return 'missing';
334
+ }
335
+ }
336
+ function defaultDatabaseProbe(path) {
337
+ const database = new Database(path, { readonly: true, fileMustExist: true });
338
+ try {
339
+ database.prepare('SELECT name FROM sqlite_schema LIMIT 1').get();
340
+ }
341
+ finally {
342
+ database.close();
343
+ }
344
+ }
345
+ function databaseReachability(probeDatabase, path) {
346
+ try {
347
+ probeDatabase(path);
348
+ return 'reachable';
349
+ }
350
+ catch {
351
+ return 'unreachable';
352
+ }
353
+ }
354
+ async function inspectProviders(providers, targets, resolveBinary) {
355
+ const report = [];
356
+ for (const cli of providers.list()) {
357
+ let capabilities;
358
+ try {
359
+ capabilities = await providers.require(cli).probeCapabilities({ mode: 'static' });
360
+ }
361
+ catch {
362
+ capabilities = unavailableDoctorCapabilities();
363
+ }
364
+ const matchingTargets = targets.filter((target) => target.cli === cli);
365
+ report.push({
366
+ cli,
367
+ binaryPath: resolveBinary(cli),
368
+ available: capabilities.available,
369
+ version: capabilities.version ?? null,
370
+ staticCeiling: {
371
+ modelSelection: capabilities.modelSelection,
372
+ effortSelection: capabilities.effortSelection,
373
+ isolationLevel: capabilities.isolationLevel,
374
+ streamingMode: capabilities.streamingMode,
375
+ toolBridge: capabilities.toolBridge,
376
+ resume: capabilities.resume,
377
+ cancellation: capabilities.cancellation,
378
+ },
379
+ targets: matchingTargets.map((target) => ({
380
+ id: target.id,
381
+ enabled: target.enabled === 1,
382
+ persistedVersion: target.capability_version,
383
+ verifiedAt: target.capability_verified_at,
384
+ status: !capabilities.available
385
+ ? 'unavailable'
386
+ : target.capability_version === capabilities.version
387
+ && target.capability_verified_at !== null
388
+ && target.capability_error === null
389
+ ? 'verified'
390
+ : 'verify-required',
391
+ })),
392
+ });
393
+ }
394
+ return report;
395
+ }
396
+ function readDoctorTargets(path) {
397
+ let database;
398
+ try {
399
+ database = new Database(path, { readonly: true, fileMustExist: true });
400
+ return database.prepare(`
401
+ SELECT id, cli, enabled, capability_version, capability_verified_at, capability_error
402
+ FROM invocation_targets
403
+ ORDER BY id
404
+ `).all();
405
+ }
406
+ catch {
407
+ return [];
408
+ }
409
+ finally {
410
+ database?.close();
411
+ }
412
+ }
413
+ function resolveProviderBinary(cli) {
414
+ const command = BUILT_IN_PROVIDER_COMMANDS[cli];
415
+ return command ? resolveProviderCommand(command) : null;
416
+ }
417
+ function unavailableDoctorCapabilities() {
418
+ return {
419
+ available: false,
420
+ verified: false,
421
+ modelSelection: false,
422
+ effortSelection: false,
423
+ isolationLevel: 'best_effort',
424
+ streamingMode: 'none',
425
+ toolBridge: 'none',
426
+ resume: false,
427
+ cancellation: false,
428
+ };
429
+ }
430
+ function isBootstrapCode(value) {
431
+ return typeof value === 'object'
432
+ && value !== null
433
+ && 'code' in value
434
+ && typeof value.code === 'string'
435
+ && BOOTSTRAP_CODE.test(value.code);
436
+ }
437
+ //# sourceMappingURL=daemon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/lifecycle/daemon.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import { existsSync, mkdirSync, readFileSync, unlinkSync, writeFileSync } from 'node:fs';
2
+ import { dirname } from 'node:path';
3
+ export function readPid(paths) {
4
+ const result = inspectPid(paths);
5
+ return result.kind === 'valid' ? result.pid : null;
6
+ }
7
+ export function inspectPid(paths) {
8
+ if (!existsSync(paths.pidPath))
9
+ return { kind: 'missing' };
10
+ const content = readFileSync(paths.pidPath, 'utf8').trim();
11
+ if (!/^\d+$/.test(content))
12
+ return { kind: 'malformed' };
13
+ const pid = Number(content);
14
+ return Number.isSafeInteger(pid) && pid > 0
15
+ ? { kind: 'valid', pid }
16
+ : { kind: 'malformed' };
17
+ }
18
+ export function writePid(paths, pid) {
19
+ mkdirSync(dirname(paths.pidPath), { recursive: true, mode: 0o700 });
20
+ writeFileSync(paths.pidPath, String(pid), { mode: 0o600 });
21
+ }
22
+ export function removePid(paths) {
23
+ try {
24
+ unlinkSync(paths.pidPath);
25
+ }
26
+ catch (error) {
27
+ if (!isErrorWithCode(error, 'ENOENT'))
28
+ throw error;
29
+ }
30
+ }
31
+ function isErrorWithCode(error, code) {
32
+ return typeof error === 'object' && error !== null && 'code' in error && error.code === code;
33
+ }
34
+ //# sourceMappingURL=pidfile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pidfile.js","sourceRoot":"","sources":["../../src/lifecycle/pidfile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACzF,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,MAAM,UAAU,OAAO,CAAC,KAAoC;IAC1D,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IACjC,OAAO,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AACrD,CAAC;AAOD,MAAM,UAAU,UAAU,CAAC,KAAoC;IAC7D,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC3D,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IACzD,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5B,OAAO,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC;QACzC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE;QACxB,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAoC,EAAE,GAAW;IACxE,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACpE,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAoC;IAC5D,IAAI,CAAC;QACH,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,MAAM,KAAK,CAAC;IACrD,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,KAAc,EAAE,IAAY;IACnD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;AAC/F,CAAC"}