@skaile/workspaces 3.18.0 → 3.20.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.
- package/CHANGELOG.md +59 -0
- package/dist/{asset-feeds-LT4GI576.js → asset-feeds-V4DZPOVS.js} +7 -7
- package/dist/{asset-feeds-LT4GI576.js.map → asset-feeds-V4DZPOVS.js.map} +1 -1
- package/dist/asset-manager/catalog-deployer.js +3 -3
- package/dist/asset-manager/index.js +6 -6
- package/dist/asset-manager/installer.js +4 -4
- package/dist/asset-manager/src/index.d.ts +7 -0
- package/dist/asset-manager/src/index.d.ts.map +1 -1
- package/dist/bridge/codex-app-server.js +1 -1
- package/dist/bridge/drivers/claude-sdk.js +4 -4
- package/dist/bridge/drivers/codex.js +147 -48
- package/dist/bridge/drivers/codex.js.map +1 -1
- package/dist/bridge/drivers/continue.js +2 -2
- package/dist/bridge/drivers/echo.js +1 -1
- package/dist/bridge/drivers/gemini.js +3 -3
- package/dist/bridge/drivers/goose.js +2 -2
- package/dist/bridge/drivers/omp.js +1 -1
- package/dist/bridge/drivers/opencode.js +2 -2
- package/dist/bridge/drivers/qwen.js +3 -3
- package/dist/bridge/index.js +5 -5
- package/dist/bridge/src/codex/managed-driver.d.ts +2 -0
- package/dist/bridge/src/codex/managed-driver.d.ts.map +1 -1
- package/dist/bridge/src/codex/native-mcp-approval.d.ts +13 -0
- package/dist/bridge/src/codex/native-mcp-approval.d.ts.map +1 -0
- package/dist/bridge/src/codex/native-protocol.generated.d.ts +5 -1
- package/dist/bridge/src/codex/native-protocol.generated.d.ts.map +1 -1
- package/dist/bridge/src/codex/questions.d.ts +2 -2
- package/dist/bridge/src/codex/questions.d.ts.map +1 -1
- package/dist/bridge/src/codex-app-server.d.ts +2 -0
- package/dist/bridge/src/codex-app-server.d.ts.map +1 -1
- package/dist/bridge/src/normalizer.d.ts.map +1 -1
- package/dist/bridge/src/types.d.ts +7 -1
- package/dist/bridge/src/types.d.ts.map +1 -1
- package/dist/{chunk-IT42ZT3T.js → chunk-5JTA7HNJ.js} +9 -9
- package/dist/{chunk-IT42ZT3T.js.map → chunk-5JTA7HNJ.js.map} +1 -1
- package/dist/{chunk-J7VSUGGH.js → chunk-6FZCQT3V.js} +2 -2
- package/dist/chunk-6FZCQT3V.js.map +1 -0
- package/dist/{chunk-XL45U3C5.js → chunk-6H6HLMWG.js} +3 -3
- package/dist/{chunk-XL45U3C5.js.map → chunk-6H6HLMWG.js.map} +1 -1
- package/dist/{chunk-AI2PZX4H.js → chunk-74KGZA7R.js} +3 -3
- package/dist/{chunk-AI2PZX4H.js.map → chunk-74KGZA7R.js.map} +1 -1
- package/dist/{chunk-67KB2A77.js → chunk-AQJ5ZYD6.js} +36 -25
- package/dist/chunk-AQJ5ZYD6.js.map +1 -0
- package/dist/{chunk-FYVDBIZV.js → chunk-BGURUGZW.js} +6 -6
- package/dist/{chunk-FYVDBIZV.js.map → chunk-BGURUGZW.js.map} +1 -1
- package/dist/{chunk-BJI7IGZF.js → chunk-CGLJHFQI.js} +7 -7
- package/dist/{chunk-BJI7IGZF.js.map → chunk-CGLJHFQI.js.map} +1 -1
- package/dist/{chunk-RJOGAEIY.js → chunk-D2TTGUMZ.js} +14 -13
- package/dist/chunk-D2TTGUMZ.js.map +1 -0
- package/dist/{chunk-GRA4BWCV.js → chunk-DFELEIPJ.js} +5 -5
- package/dist/{chunk-GRA4BWCV.js.map → chunk-DFELEIPJ.js.map} +1 -1
- package/dist/{chunk-4JDCKPTM.js → chunk-EKFFTOQJ.js} +2 -2
- package/dist/{chunk-4JDCKPTM.js.map → chunk-EKFFTOQJ.js.map} +1 -1
- package/dist/{chunk-GMMACS5W.js → chunk-F4ORFHB5.js} +4 -4
- package/dist/{chunk-GMMACS5W.js.map → chunk-F4ORFHB5.js.map} +1 -1
- package/dist/{chunk-H662SXKS.js → chunk-HSRHO7SK.js} +4 -4
- package/dist/{chunk-H662SXKS.js.map → chunk-HSRHO7SK.js.map} +1 -1
- package/dist/{chunk-DCG4UWJM.js → chunk-IB4XKQMQ.js} +3 -3
- package/dist/{chunk-DCG4UWJM.js.map → chunk-IB4XKQMQ.js.map} +1 -1
- package/dist/{chunk-2IROGAS7.js → chunk-IUOXPQA3.js} +2 -2
- package/dist/{chunk-2IROGAS7.js.map → chunk-IUOXPQA3.js.map} +1 -1
- package/dist/{chunk-CQY7XKRV.js → chunk-K5BUXOBH.js} +5 -4
- package/dist/chunk-K5BUXOBH.js.map +1 -0
- package/dist/{chunk-RPVTPVGX.js → chunk-MBARHWMZ.js} +71 -36
- package/dist/chunk-MBARHWMZ.js.map +1 -0
- package/dist/{chunk-QEZPFJX3.js → chunk-NCHMJPKN.js} +3 -3
- package/dist/{chunk-QEZPFJX3.js.map → chunk-NCHMJPKN.js.map} +1 -1
- package/dist/{chunk-JVFZ5R7L.js → chunk-NW65H5EV.js} +3 -3
- package/dist/{chunk-JVFZ5R7L.js.map → chunk-NW65H5EV.js.map} +1 -1
- package/dist/{chunk-S635WMXH.js → chunk-OHLYKLGJ.js} +4 -4
- package/dist/{chunk-S635WMXH.js.map → chunk-OHLYKLGJ.js.map} +1 -1
- package/dist/{chunk-FBD5SOIH.js → chunk-OJOK4VKC.js} +3 -3
- package/dist/{chunk-FBD5SOIH.js.map → chunk-OJOK4VKC.js.map} +1 -1
- package/dist/{chunk-XKSGEYZC.js → chunk-PHBYB4XT.js} +5 -2
- package/dist/chunk-PHBYB4XT.js.map +1 -0
- package/dist/{chunk-SH7GXS7V.js → chunk-PLLVREB2.js} +59 -26
- package/dist/chunk-PLLVREB2.js.map +1 -0
- package/dist/{chunk-X3LUB275.js → chunk-PVVPGD7P.js} +4 -4
- package/dist/{chunk-X3LUB275.js.map → chunk-PVVPGD7P.js.map} +1 -1
- package/dist/{chunk-5T7Y3AZU.js → chunk-SIREWRZE.js} +3 -3
- package/dist/{chunk-5T7Y3AZU.js.map → chunk-SIREWRZE.js.map} +1 -1
- package/dist/{chunk-QG2ZXU5W.js → chunk-TCHEW3T2.js} +4 -4
- package/dist/{chunk-QG2ZXU5W.js.map → chunk-TCHEW3T2.js.map} +1 -1
- package/dist/{chunk-SFCVAEJ5.js → chunk-W5LPG3X6.js} +3 -3
- package/dist/{chunk-SFCVAEJ5.js.map → chunk-W5LPG3X6.js.map} +1 -1
- package/dist/cli/index.js +47 -47
- package/dist/connectors/config.js +4 -4
- package/dist/connectors/index.js +8 -8
- package/dist/core/index.js +3 -3
- package/dist/core/runtime-assets.js +2 -2
- package/dist/core/src/index.d.ts +2 -2
- package/dist/core/src/index.d.ts.map +1 -1
- package/dist/core/src/repo-manager.d.ts +30 -1
- package/dist/core/src/repo-manager.d.ts.map +1 -1
- package/dist/core/workspace-config.js +1 -1
- package/dist/deploy/index.js +3 -3
- package/dist/{ensure-sources-4BQ6GMYG.js → ensure-sources-HXAPBBA5.js} +9 -9
- package/dist/{ensure-sources-4BQ6GMYG.js.map → ensure-sources-HXAPBBA5.js.map} +1 -1
- package/dist/factory-assets/connectors/box.js +8 -8
- package/dist/factory-assets/connectors/deploy.js +8 -8
- package/dist/factory-assets/connectors/devserver.js +8 -8
- package/dist/factory-assets/connectors/flow/adapter.js +8 -8
- package/dist/factory-assets/connectors/flow/engine.js +4 -4
- package/dist/factory-assets/connectors/flow/run-flow.js +9 -9
- package/dist/factory-assets/connectors/flow.js +8 -8
- package/dist/factory-assets/connectors/git/driver.d.ts.map +1 -1
- package/dist/factory-assets/connectors/git.js +8 -8
- package/dist/factory-assets/connectors/gmail.js +8 -8
- package/dist/factory-assets/connectors/googledrive.js +8 -8
- package/dist/factory-assets/connectors/local.js +8 -8
- package/dist/factory-assets/connectors/mattermost.js +8 -8
- package/dist/factory-assets/connectors/memory.js +8 -8
- package/dist/factory-assets/connectors/minio.js +8 -8
- package/dist/factory-assets/connectors/postgres.js +8 -8
- package/dist/factory-assets/connectors/s3.js +8 -8
- package/dist/factory-assets/connectors/sharepoint.js +8 -8
- package/dist/factory-assets/connectors/sqlite.js +8 -8
- package/dist/factory-assets/connectors/static-server.js +8 -8
- package/dist/factory-assets/connectors/tunnel.js +8 -8
- package/dist/factory-assets/connectors/webdav.js +8 -8
- package/dist/factory-assets/connectors/xstate-store.js +8 -8
- package/dist/factory-assets/connectors/xstate.js +8 -8
- package/dist/{flows-COBS26MK.js → flows-4DYGXE4A.js} +6 -6
- package/dist/{flows-COBS26MK.js.map → flows-4DYGXE4A.js.map} +1 -1
- package/dist/{helpers-4UJMSN6T.js → helpers-3VAE3TYQ.js} +9 -9
- package/dist/{helpers-4UJMSN6T.js.map → helpers-3VAE3TYQ.js.map} +1 -1
- package/dist/library/index.js +4 -4
- package/dist/library/install.js +3 -3
- package/dist/{library-publish-QHQDN4IC.js → library-publish-Z7QQDGOL.js} +13 -13
- package/dist/{library-publish-QHQDN4IC.js.map → library-publish-Z7QQDGOL.js.map} +1 -1
- package/dist/{open-library-ZDM6DUKJ.js → open-library-424UBGA7.js} +11 -11
- package/dist/{open-library-ZDM6DUKJ.js.map → open-library-424UBGA7.js.map} +1 -1
- package/dist/{paths-CZPCCBYX.js → paths-CZEH643M.js} +6 -6
- package/dist/{paths-CZPCCBYX.js.map → paths-CZEH643M.js.map} +1 -1
- package/dist/{plugin-store-ZEIBSNTO.js → plugin-store-QJNBPIQK.js} +5 -5
- package/dist/{plugin-store-ZEIBSNTO.js.map → plugin-store-QJNBPIQK.js.map} +1 -1
- package/dist/{project-JJUAAI7N.js → project-HLSVZVAF.js} +10 -10
- package/dist/{project-JJUAAI7N.js.map → project-HLSVZVAF.js.map} +1 -1
- package/dist/resolver/index.js +3 -3
- package/dist/runner/index.js +13 -13
- package/dist/runner/src/codex-tools.d.ts.map +1 -1
- package/dist/sdk/asset-manager.js +6 -6
- package/dist/sdk/bridge.js +5 -5
- package/dist/sdk/core.js +3 -3
- package/dist/sdk/flow.js +4 -4
- package/dist/sdk/index.js +13 -13
- package/dist/sdk/resolver.js +3 -3
- package/dist/sdk/runner.js +13 -13
- package/dist/{setup-PS6ZERZ5.js → setup-WXYQJW56.js} +7 -7
- package/dist/{setup-PS6ZERZ5.js.map → setup-WXYQJW56.js.map} +1 -1
- package/dist/{skills-LG6IQSSN.js → skills-IE3IWWB7.js} +5 -5
- package/dist/{skills-LG6IQSSN.js.map → skills-IE3IWWB7.js.map} +1 -1
- package/dist/{source-QLDIZCI3.js → source-SWZRKTKL.js} +12 -12
- package/dist/{source-QLDIZCI3.js.map → source-SWZRKTKL.js.map} +1 -1
- package/dist/{source-manifest-publish-J3AVCTLX.js → source-manifest-publish-XBRXFOHO.js} +14 -14
- package/dist/{source-manifest-publish-J3AVCTLX.js.map → source-manifest-publish-XBRXFOHO.js.map} +1 -1
- package/dist/tui/index.js +13 -13
- package/dist/types/src/events.d.ts +3 -3
- package/dist/types/src/events.d.ts.map +1 -1
- package/dist/workspace-plugin/adapters/mcp.js +5 -5
- package/dist/workspace-plugin/adapters/omp.js +7 -7
- package/dist/workspace-plugin/index.js +1 -1
- package/package.json +2 -1
- package/dist/chunk-67KB2A77.js.map +0 -1
- package/dist/chunk-CQY7XKRV.js.map +0 -1
- package/dist/chunk-J7VSUGGH.js.map +0 -1
- package/dist/chunk-RJOGAEIY.js.map +0 -1
- package/dist/chunk-RPVTPVGX.js.map +0 -1
- package/dist/chunk-SH7GXS7V.js.map +0 -1
- package/dist/chunk-XKSGEYZC.js.map +0 -1
|
@@ -222,6 +222,9 @@ var CodexAppServerClient = class _CodexAppServerClient {
|
|
|
222
222
|
}, this.callbackTimeout);
|
|
223
223
|
})
|
|
224
224
|
]);
|
|
225
|
+
const current = this.options.canReplyToServerRequest?.(method, params) ?? true;
|
|
226
|
+
if (!current || this.terminal || controller.signal.aborted || this.callbacks.get(id) !== controller)
|
|
227
|
+
throw new CodexAppServerError("closed");
|
|
225
228
|
this.write({ id, result });
|
|
226
229
|
} catch {
|
|
227
230
|
if (!this.terminal) {
|
|
@@ -240,5 +243,5 @@ var CodexAppServerClient = class _CodexAppServerClient {
|
|
|
240
243
|
};
|
|
241
244
|
|
|
242
245
|
export { CodexAppServerClient, CodexAppServerError };
|
|
243
|
-
//# sourceMappingURL=chunk-
|
|
244
|
-
//# sourceMappingURL=chunk-
|
|
246
|
+
//# sourceMappingURL=chunk-PHBYB4XT.js.map
|
|
247
|
+
//# sourceMappingURL=chunk-PHBYB4XT.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../bridge/src/codex-app-server.ts"],"names":[],"mappings":"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","file":"chunk-PHBYB4XT.js","sourcesContent":["import { CodexNativeStateUnavailable } from \"./codex/native-state.js\";\nimport { spawn, type ChildProcessWithoutNullStreams } from \"node:child_process\";\nimport type { NativeRequests, NativeServerRequests } from \"./codex/native-protocol.generated.js\";\n\n/** The retained native request types, exposed only through this client surface. */\nexport type CodexRequestMethod = keyof NativeRequests;\n/** Native callback handlers receive cancellation when their process is disposed. */\nexport type CodexServerRequestHandlers = {\n [M in keyof NativeServerRequests]?: (\n params: NativeServerRequests[M][\"params\"],\n signal: AbortSignal,\n ) => Promise<NativeServerRequests[M][\"result\"]>;\n};\n/** Explicit process inputs keep managed callers from inheriting ambient credentials. */\nexport interface CodexAppServerOptions {\n command: string;\n args: string[];\n cwd: string;\n env: Record<string, string>;\n clientInfo: NativeRequests[\"initialize\"][\"params\"][\"clientInfo\"];\n requestTimeoutMs?: number;\n serverRequestTimeoutMs?: number;\n maxPendingRequests?: number;\n maxFrameBytes?: number;\n /** Isolate and reap the native process group on POSIX. */\n processGroup?: boolean;\n onServerRequest?: CodexServerRequestHandlers;\n /** Final synchronous lifecycle veto before a callback reply; cannot grant a missing handler. */\n canReplyToServerRequest?: (method: string, params: unknown) => boolean;\n onNotification?: (method: string, params: unknown) => void;\n /** Exactly once on terminal failure or disposal, even with no RPC pending. */\n onClose?: (error: CodexAppServerError) => void;\n}\n/** Safe error codes never contain stderr, native errors, RPC payloads or credentials. */\nexport class CodexAppServerError extends Error {\n constructor(\n readonly code: \"closed\" | \"process\" | \"protocol\" | \"timeout\" | \"rejected\" | \"capacity\",\n ) {\n super(`Codex App Server ${code}`);\n this.name = \"CodexAppServerError\";\n }\n}\ntype Pending = {\n resolve: (value: unknown) => void;\n reject: (error: CodexAppServerError | CodexNativeStateUnavailable) => void;\n timer: ReturnType<typeof setTimeout>;\n resumeThreadId?: string;\n};\nconst record = (value: unknown): value is Record<string, unknown> =>\n value !== null && typeof value === \"object\" && !Array.isArray(value);\nconst validId = (value: unknown): value is string | number =>\n typeof value === \"string\" || (typeof value === \"number\" && Number.isSafeInteger(value));\nfunction bound(value: number | undefined, fallback: number, maximum: number): number {\n const result = value ?? fallback;\n if (!Number.isSafeInteger(result) || result <= 0 || result > maximum)\n throw new CodexAppServerError(\"protocol\");\n return result;\n}\n\n/** One initialized stdio process with correlated, bounded requests and terminal disposal. */\nexport class CodexAppServerClient {\n private readonly pending = new Map<number, Pending>();\n private readonly callbacks = new Map<string | number, AbortController>();\n private readonly timeout: number;\n private readonly callbackTimeout: number;\n private readonly capacity: number;\n private readonly frameLimit: number;\n private readonly child: ChildProcessWithoutNullStreams;\n private readonly closed: Promise<void>;\n private terminal = false;\n private childClosed = false;\n private nextId = 1;\n private buffer = \"\";\n\n private constructor(private readonly options: CodexAppServerOptions) {\n this.timeout = bound(options.requestTimeoutMs, 15_000, 300_000);\n this.callbackTimeout = bound(options.serverRequestTimeoutMs, 30_000, 300_000);\n this.capacity = bound(options.maxPendingRequests, 64, 1024);\n this.frameLimit = bound(options.maxFrameBytes, 1024 * 1024, 16 * 1024 * 1024);\n this.child = spawn(options.command, options.args, {\n cwd: options.cwd,\n env: options.env,\n stdio: \"pipe\",\n detached: options.processGroup === true && process.platform !== \"win32\",\n });\n this.closed = new Promise((resolve) =>\n this.child.once(\"close\", () => {\n this.childClosed = true;\n resolve();\n }),\n );\n this.child.stdout.setEncoding(\"utf8\");\n this.child.stdout.on(\"data\", (chunk: string) => this.receive(chunk));\n // Drain without retaining raw diagnostic output: native stderr can contain secrets.\n this.child.stderr.resume();\n this.child.on(\"error\", () => this.fail(\"process\"));\n this.child.stdin.on(\"error\", () => this.fail(\"process\"));\n this.child.stdout.on(\"error\", () => this.fail(\"process\"));\n this.child.stderr.on(\"error\", () => this.fail(\"process\"));\n this.child.once(\"exit\", () => this.fail(\"process\"));\n }\n\n /** Spawn and finish the native initialize/initialized handshake before returning. */\n static async connect(\n options: CodexAppServerOptions,\n signal?: AbortSignal,\n ): Promise<CodexAppServerClient> {\n let client: CodexAppServerClient | undefined;\n const abort = () => client?.fail(\"closed\");\n try {\n if (signal?.aborted) throw new CodexAppServerError(\"closed\");\n client = new CodexAppServerClient(options);\n signal?.addEventListener(\"abort\", abort, { once: true });\n await client.request(\"initialize\", {\n clientInfo: options.clientInfo,\n capabilities: { experimentalApi: true },\n });\n client.write({ method: \"initialized\" });\n return client;\n } catch (error) {\n await client?.dispose();\n throw error instanceof CodexAppServerError ? error : new CodexAppServerError(\"process\");\n } finally {\n signal?.removeEventListener(\"abort\", abort);\n }\n }\n\n /** Timeout closes this generation, so late replies can never satisfy a later request. */\n request<M extends CodexRequestMethod>(\n method: M,\n params: NativeRequests[M][\"params\"],\n ): Promise<NativeRequests[M][\"result\"]> {\n if (this.terminal) return Promise.reject(new CodexAppServerError(\"closed\"));\n if (this.pending.size >= this.capacity)\n return Promise.reject(new CodexAppServerError(\"capacity\"));\n const id = this.nextId++;\n return new Promise((resolve, reject) => {\n const timer = setTimeout(() => this.fail(\"timeout\"), this.timeout);\n this.pending.set(id, {\n resolve: resolve as (value: unknown) => void,\n reject,\n timer,\n ...(method === \"thread/resume\" &&\n params !== null &&\n \"threadId\" in params &&\n typeof params.threadId === \"string\"\n ? { resumeThreadId: params.threadId }\n : {}),\n });\n try {\n this.write({ id, method, params });\n } catch {\n this.fail(\"protocol\");\n }\n });\n }\n\n /** Reject pending work immediately and wait a bounded interval for process shutdown. */\n async dispose(): Promise<void> {\n this.fail(\"closed\");\n let timer: ReturnType<typeof setTimeout> | undefined;\n await Promise.race([\n this.closed,\n new Promise<void>((resolve) => {\n timer = setTimeout(resolve, 1000);\n }),\n ]);\n clearTimeout(timer);\n }\n\n /** Positive exit proof for callers that may replace a failed native generation. */\n get terminationConfirmed(): boolean {\n if (!this.childClosed) return false;\n if (!this.options.processGroup || process.platform === \"win32\" || !this.child.pid) return true;\n try {\n process.kill(-this.child.pid, 0);\n return false;\n } catch (error) {\n return (error as NodeJS.ErrnoException).code === \"ESRCH\";\n }\n }\n\n private fail(code: CodexAppServerError[\"code\"]): void {\n if (this.terminal) return;\n this.terminal = true;\n this.buffer = \"\";\n for (const request of this.pending.values()) {\n clearTimeout(request.timer);\n request.reject(new CodexAppServerError(code));\n }\n this.pending.clear();\n for (const controller of this.callbacks.values()) controller.abort();\n this.callbacks.clear();\n if (this.options.processGroup && process.platform !== \"win32\" && this.child.pid) {\n try {\n process.kill(-this.child.pid, \"SIGKILL\");\n } catch {\n this.child.kill(\"SIGKILL\");\n }\n } else this.child.kill(\"SIGKILL\");\n try {\n this.options.onClose?.(new CodexAppServerError(code));\n } catch {\n // Observer failures cannot interrupt transport cleanup.\n }\n }\n\n private write(frame: unknown): void {\n if (this.terminal) throw new CodexAppServerError(\"closed\");\n const line = `${JSON.stringify(frame)}\\n`;\n if (Buffer.byteLength(line) > this.frameLimit) throw new CodexAppServerError(\"protocol\");\n this.child.stdin.write(line);\n }\n\n private receive(chunk: string): void {\n if (this.terminal) return;\n this.buffer += chunk;\n try {\n for (;;) {\n const end = this.buffer.indexOf(\"\\n\");\n if (end < 0) break;\n const line = this.buffer.slice(0, end);\n this.buffer = this.buffer.slice(end + 1);\n if (Buffer.byteLength(line) > this.frameLimit) throw new CodexAppServerError(\"protocol\");\n if (!line.trim()) continue;\n const frame: unknown = JSON.parse(line);\n if (!record(frame)) throw new CodexAppServerError(\"protocol\");\n if (typeof frame.method === \"string\") {\n if (\"id\" in frame) {\n if (!validId(frame.id)) throw new CodexAppServerError(\"protocol\");\n void this.handleServerRequest(frame.id, frame.method, frame.params);\n } else this.options.onNotification?.(frame.method, frame.params);\n } else {\n if (\n typeof frame.id !== \"number\" ||\n !Number.isSafeInteger(frame.id) ||\n \"error\" in frame === \"result\" in frame\n )\n throw new CodexAppServerError(\"protocol\");\n const request = this.pending.get(frame.id);\n if (!request) throw new CodexAppServerError(\"protocol\");\n clearTimeout(request.timer);\n this.pending.delete(frame.id);\n if (\"error\" in frame) {\n // Pinned 0.153.4 thread_store_resume_read_error maps only missing rollout\n // to this exact invalid-request message. Never retain raw native errors.\n const missing =\n request.resumeThreadId &&\n record(frame.error) &&\n frame.error.code === -32600 &&\n frame.error.message === `no rollout found for thread id ${request.resumeThreadId}`;\n request.reject(\n missing ? new CodexNativeStateUnavailable() : new CodexAppServerError(\"rejected\"),\n );\n } else request.resolve(frame.result);\n }\n if (this.terminal) return;\n }\n if (Buffer.byteLength(this.buffer) > this.frameLimit)\n throw new CodexAppServerError(\"protocol\");\n } catch {\n this.fail(\"protocol\");\n }\n }\n\n private async handleServerRequest(\n id: string | number,\n method: string,\n params: unknown,\n ): Promise<void> {\n if (this.callbacks.has(id) || this.callbacks.size >= this.capacity)\n return this.fail(\"protocol\");\n const controller = new AbortController();\n this.callbacks.set(id, controller);\n let timer: ReturnType<typeof setTimeout> | undefined;\n try {\n const handler = Object.hasOwn(this.options.onServerRequest ?? {}, method)\n ? this.options.onServerRequest?.[method as keyof NativeServerRequests]\n : undefined;\n if (!handler) throw new CodexAppServerError(\"rejected\");\n const result = await Promise.race([\n Promise.resolve().then(() => {\n if (this.terminal || controller.signal.aborted) throw new CodexAppServerError(\"closed\");\n return (handler as (params: unknown, signal: AbortSignal) => Promise<unknown>)(\n params,\n controller.signal,\n );\n }),\n new Promise<never>((_, reject) => {\n controller.signal.addEventListener(\n \"abort\",\n () => reject(new CodexAppServerError(\"closed\")),\n { once: true },\n );\n timer = setTimeout(() => {\n controller.abort();\n reject(new CodexAppServerError(\"timeout\"));\n }, this.callbackTimeout);\n }),\n ]);\n const current = this.options.canReplyToServerRequest?.(method, params) ?? true;\n if (\n !current ||\n this.terminal ||\n controller.signal.aborted ||\n this.callbacks.get(id) !== controller\n )\n throw new CodexAppServerError(\"closed\");\n this.write({ id, result });\n } catch {\n if (!this.terminal) {\n try {\n this.write({ id, error: { code: -32603, message: \"Codex client request failed\" } });\n } catch {\n this.fail(\"protocol\");\n }\n }\n } finally {\n clearTimeout(timer);\n controller.abort();\n this.callbacks.delete(id);\n }\n }\n}\n"]}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { resolveAuthRef } from './chunk-
|
|
2
|
-
import { EventNormalizer } from './chunk-
|
|
1
|
+
import { resolveAuthRef } from './chunk-SIREWRZE.js';
|
|
2
|
+
import { EventNormalizer } from './chunk-K5BUXOBH.js';
|
|
3
3
|
import { resolveModelTier } from './chunk-GURXUF2J.js';
|
|
4
|
-
import { createDriver } from './chunk-
|
|
4
|
+
import { createDriver } from './chunk-6FZCQT3V.js';
|
|
5
5
|
import { pluginRegistry } from './chunk-6E6PKKAD.js';
|
|
6
6
|
import { computeStimulus } from './chunk-IFGTRL2I.js';
|
|
7
|
-
import { resolveNodeBindings, getConsumedOutputSchema, validateConsumedNodeOutput, appendAttempt, resolveTerminalFailureStatus, remainingActiveExecutionMs, interpolateNodeInstruction, deriveCheckEvidence, computeFlowStateFromSnapshots, availableRouterFrontier, evaluateRouterSelection, routerSelectionOutput, planRouterSkips, unsettledRouterBranchIds, countFailedAttempts, hasAutomaticRetryBudget, persistedRouterSelection } from './chunk-
|
|
7
|
+
import { resolveNodeBindings, getConsumedOutputSchema, validateConsumedNodeOutput, appendAttempt, resolveTerminalFailureStatus, remainingActiveExecutionMs, interpolateNodeInstruction, deriveCheckEvidence, computeFlowStateFromSnapshots, availableRouterFrontier, evaluateRouterSelection, routerSelectionOutput, planRouterSkips, unsettledRouterBranchIds, countFailedAttempts, hasAutomaticRetryBudget, persistedRouterSelection } from './chunk-W5LPG3X6.js';
|
|
8
8
|
import { INPUT_SCHEMA_SHAPES_HINT, coerceInputSchema } from './chunk-YCMHWNZA.js';
|
|
9
9
|
import { parseFlowDefinition } from './chunk-CP62G5PK.js';
|
|
10
10
|
import { describeStimulus, buildOrchestratorPrompt, renderSubpromptPrompt, renderStimulusPrompt } from './chunk-2D5BYAL6.js';
|
|
11
11
|
import { deterministicNodeKindLabel, flowDefaults, isAgentNode, isGateNode, isCheckNode, nodeRequiresApproval, isSubFlowNode, isFunctionNode, isSubpromptNode, nodeInstruction, isRouterNode, isActiveRuntimeNode, nodeIsOptional, nodeLabel, nodeAssets } from './chunk-ELPR5XBG.js';
|
|
12
|
-
import { portableSpawn } from './chunk-
|
|
12
|
+
import { portableSpawn } from './chunk-HSRHO7SK.js';
|
|
13
13
|
import { withFsDeadline, tryWithFsDeadline, FsDeadlineError, fsDeadlineMs } from './chunk-MKZOK4JU.js';
|
|
14
14
|
import { createLogger } from './chunk-W4IPN3DD.js';
|
|
15
15
|
import { resolve, relative, sep, isAbsolute, join, dirname } from 'path';
|
|
16
|
-
import { mkdir, rename, writeFile, readFile, stat, cp, readdir, chmod, realpath } from 'fs/promises';
|
|
16
|
+
import { mkdir, rename, writeFile, readFile, stat, cp, readdir, chmod, rm, realpath } from 'fs/promises';
|
|
17
17
|
import * as z4 from 'zod';
|
|
18
18
|
import { execFile } from 'child_process';
|
|
19
19
|
import { promisify } from 'util';
|
|
@@ -550,7 +550,7 @@ var SessionSubpromptRunner = class {
|
|
|
550
550
|
};
|
|
551
551
|
var DEFAULT_SUBPROMPT_TIMEOUT_MS = 5 * 6e4;
|
|
552
552
|
function runIsolatedPrompt(driver, prompt) {
|
|
553
|
-
return new Promise((
|
|
553
|
+
return new Promise((resolve7, reject) => {
|
|
554
554
|
const normalizer = new EventNormalizer();
|
|
555
555
|
let text = "";
|
|
556
556
|
let settled = false;
|
|
@@ -559,7 +559,7 @@ function runIsolatedPrompt(driver, prompt) {
|
|
|
559
559
|
settled = true;
|
|
560
560
|
driver.off("agent-event", onEvent);
|
|
561
561
|
if (err) reject(err);
|
|
562
|
-
else
|
|
562
|
+
else resolve7(text);
|
|
563
563
|
};
|
|
564
564
|
const onEvent = (event) => {
|
|
565
565
|
for (const normalized of normalizer.normalize(event)) {
|
|
@@ -1399,6 +1399,38 @@ function git(args, cwd, timeout = 3e4) {
|
|
|
1399
1399
|
function pathExists(path) {
|
|
1400
1400
|
return tryWithFsDeadline(`stat ${path}`, () => stat(path).then(() => true), false);
|
|
1401
1401
|
}
|
|
1402
|
+
var MAX_GIT_CHILD_TIMEOUT_MS = 12e4;
|
|
1403
|
+
async function clearStaleIndexLock(targetDir, log) {
|
|
1404
|
+
let lockPath;
|
|
1405
|
+
try {
|
|
1406
|
+
lockPath = resolve(
|
|
1407
|
+
targetDir,
|
|
1408
|
+
await git(["rev-parse", "--git-path", "index.lock"], targetDir, 5e3)
|
|
1409
|
+
);
|
|
1410
|
+
} catch {
|
|
1411
|
+
return;
|
|
1412
|
+
}
|
|
1413
|
+
const mtimeMs = await tryWithFsDeadline(
|
|
1414
|
+
`stat ${lockPath}`,
|
|
1415
|
+
() => stat(lockPath).then((s) => s.mtimeMs),
|
|
1416
|
+
null
|
|
1417
|
+
);
|
|
1418
|
+
if (mtimeMs === null) {
|
|
1419
|
+
return;
|
|
1420
|
+
}
|
|
1421
|
+
const ageMs = Date.now() - mtimeMs;
|
|
1422
|
+
if (ageMs < MAX_GIT_CHILD_TIMEOUT_MS) {
|
|
1423
|
+
return;
|
|
1424
|
+
}
|
|
1425
|
+
const removed = await tryWithFsDeadline(
|
|
1426
|
+
`rm ${lockPath}`,
|
|
1427
|
+
() => rm(lockPath, { force: true }).then(() => true),
|
|
1428
|
+
false
|
|
1429
|
+
);
|
|
1430
|
+
if (removed) {
|
|
1431
|
+
log.warn("removed an abandoned .git/index.lock", { lockPath, ageMs });
|
|
1432
|
+
}
|
|
1433
|
+
}
|
|
1402
1434
|
async function syncSubmodules(cwd, log) {
|
|
1403
1435
|
if (!await pathExists(join(cwd, ".gitmodules"))) return;
|
|
1404
1436
|
try {
|
|
@@ -1633,6 +1665,7 @@ var GitConnector = class extends AbstractConnector {
|
|
|
1633
1665
|
async prepareCheckout(targetDir, url, branch, authUrl, access, started) {
|
|
1634
1666
|
try {
|
|
1635
1667
|
if (await pathExists(join(targetDir, ".git"))) {
|
|
1668
|
+
await clearStaleIndexLock(targetDir, this.log);
|
|
1636
1669
|
if (await this.isInitialisedCheckout(targetDir)) {
|
|
1637
1670
|
this.log.info("found existing checkout \u2014 using as-is", { branch, targetDir });
|
|
1638
1671
|
} else {
|
|
@@ -3890,7 +3923,7 @@ var MinIOConnector = class extends AbstractConnector {
|
|
|
3890
3923
|
const { client, bucket } = handle.state;
|
|
3891
3924
|
const entries = [];
|
|
3892
3925
|
const stream = client.listObjects(bucket, path ?? "", recursive);
|
|
3893
|
-
return new Promise((
|
|
3926
|
+
return new Promise((resolve7, reject) => {
|
|
3894
3927
|
stream.on("data", (obj) => {
|
|
3895
3928
|
entries.push({
|
|
3896
3929
|
name: obj.name,
|
|
@@ -3900,7 +3933,7 @@ var MinIOConnector = class extends AbstractConnector {
|
|
|
3900
3933
|
modifiedAt: obj.lastModified
|
|
3901
3934
|
});
|
|
3902
3935
|
});
|
|
3903
|
-
stream.on("end", () =>
|
|
3936
|
+
stream.on("end", () => resolve7(entries));
|
|
3904
3937
|
stream.on("error", reject);
|
|
3905
3938
|
});
|
|
3906
3939
|
}
|
|
@@ -3908,9 +3941,9 @@ var MinIOConnector = class extends AbstractConnector {
|
|
|
3908
3941
|
const { client, bucket } = handle.state;
|
|
3909
3942
|
const chunks = [];
|
|
3910
3943
|
const stream = await client.getObject(bucket, path);
|
|
3911
|
-
return new Promise((
|
|
3944
|
+
return new Promise((resolve7, reject) => {
|
|
3912
3945
|
stream.on("data", (chunk) => chunks.push(chunk));
|
|
3913
|
-
stream.on("end", () =>
|
|
3946
|
+
stream.on("end", () => resolve7({ data: Buffer.concat(chunks).toString() }));
|
|
3914
3947
|
stream.on("error", reject);
|
|
3915
3948
|
});
|
|
3916
3949
|
}
|
|
@@ -5178,7 +5211,7 @@ async function checkCliExists(cli) {
|
|
|
5178
5211
|
}
|
|
5179
5212
|
}
|
|
5180
5213
|
async function spawnCloudflaredTunnel(port) {
|
|
5181
|
-
return new Promise((
|
|
5214
|
+
return new Promise((resolve7, reject) => {
|
|
5182
5215
|
const proc = portableSpawn(["cloudflared", "tunnel", "--url", `http://localhost:${port}`]);
|
|
5183
5216
|
const decoder = new TextDecoder();
|
|
5184
5217
|
const reader = proc.stderr.getReader();
|
|
@@ -5189,7 +5222,7 @@ async function spawnCloudflaredTunnel(port) {
|
|
|
5189
5222
|
const chunk = decoder.decode(value);
|
|
5190
5223
|
const match = chunk.match(/https:\/\/[^\s"]+\.trycloudflare\.com/);
|
|
5191
5224
|
if (match) {
|
|
5192
|
-
|
|
5225
|
+
resolve7({ url: match[0], process: proc });
|
|
5193
5226
|
return;
|
|
5194
5227
|
}
|
|
5195
5228
|
}
|
|
@@ -7576,7 +7609,7 @@ async function ensureFleetMounted(dir, log, options) {
|
|
|
7576
7609
|
return;
|
|
7577
7610
|
} catch (err) {
|
|
7578
7611
|
lastErr = err;
|
|
7579
|
-
await new Promise((
|
|
7612
|
+
await new Promise((resolve7) => setTimeout(resolve7, pollIntervalMs));
|
|
7580
7613
|
}
|
|
7581
7614
|
}
|
|
7582
7615
|
throw new Error(
|
|
@@ -7954,19 +7987,19 @@ var PortPool = class _PortPool {
|
|
|
7954
7987
|
}
|
|
7955
7988
|
/** Quick TCP connect test — returns true if nothing is listening. */
|
|
7956
7989
|
static isPortFree(port, host = "127.0.0.1") {
|
|
7957
|
-
return new Promise((
|
|
7990
|
+
return new Promise((resolve7) => {
|
|
7958
7991
|
const socket = createConnection({ port, host });
|
|
7959
7992
|
socket.once("connect", () => {
|
|
7960
7993
|
socket.destroy();
|
|
7961
|
-
|
|
7994
|
+
resolve7(false);
|
|
7962
7995
|
});
|
|
7963
7996
|
socket.once("error", () => {
|
|
7964
7997
|
socket.destroy();
|
|
7965
|
-
|
|
7998
|
+
resolve7(true);
|
|
7966
7999
|
});
|
|
7967
8000
|
socket.setTimeout(500, () => {
|
|
7968
8001
|
socket.destroy();
|
|
7969
|
-
|
|
8002
|
+
resolve7(true);
|
|
7970
8003
|
});
|
|
7971
8004
|
});
|
|
7972
8005
|
}
|
|
@@ -8202,7 +8235,7 @@ var AGENT_INLINE_OPERATIONS = /* @__PURE__ */ new Set([
|
|
|
8202
8235
|
var NodeTimeoutError = class extends Error {
|
|
8203
8236
|
};
|
|
8204
8237
|
function raceWithTimeout(promise, ms, timeoutMessage) {
|
|
8205
|
-
return new Promise((
|
|
8238
|
+
return new Promise((resolve7, reject) => {
|
|
8206
8239
|
const timer = setTimeout(() => {
|
|
8207
8240
|
reject(new NodeTimeoutError(timeoutMessage));
|
|
8208
8241
|
promise.catch(() => {
|
|
@@ -8212,7 +8245,7 @@ function raceWithTimeout(promise, ms, timeoutMessage) {
|
|
|
8212
8245
|
promise.then(
|
|
8213
8246
|
(value) => {
|
|
8214
8247
|
clearTimeout(timer);
|
|
8215
|
-
|
|
8248
|
+
resolve7(value);
|
|
8216
8249
|
},
|
|
8217
8250
|
(err) => {
|
|
8218
8251
|
clearTimeout(timer);
|
|
@@ -8223,12 +8256,12 @@ function raceWithTimeout(promise, ms, timeoutMessage) {
|
|
|
8223
8256
|
}
|
|
8224
8257
|
var ABORTED_ATTEMPT_SETTLE_MS = ABORT_SIGKILL_GRACE_MS + 1e3;
|
|
8225
8258
|
function settleWithin(promise, ms) {
|
|
8226
|
-
return new Promise((
|
|
8227
|
-
const timer = setTimeout(
|
|
8259
|
+
return new Promise((resolve7) => {
|
|
8260
|
+
const timer = setTimeout(resolve7, ms);
|
|
8228
8261
|
timer.unref?.();
|
|
8229
8262
|
const settled = () => {
|
|
8230
8263
|
clearTimeout(timer);
|
|
8231
|
-
|
|
8264
|
+
resolve7();
|
|
8232
8265
|
};
|
|
8233
8266
|
promise.then(settled, settled);
|
|
8234
8267
|
});
|
|
@@ -10685,5 +10718,5 @@ function createConnector() {
|
|
|
10685
10718
|
}
|
|
10686
10719
|
|
|
10687
10720
|
export { AbstractConnector, BUILTIN_CONNECTOR_CATALOG, BoxConnector, ConnectorFieldMissingError, ConnectorManager, ConnectorStartupError, DeployConnector, DevServerConnector, FlowAdapter, GitConnector, GmailConnector, GoogleDriveConnector, LocalConnector, LogBuffer, ManagedGitconfigCollisionError, MattermostConnector, MemoryConnector, MinIOConnector, PortPool, PostgresConnector, S3Connector, SQLiteConnector, SessionInlineSubFlowRunner, SessionNodeExecutor, SessionSubpromptRunner, SharePointConnector, StaticServerConnector, TunnelConnector, WebDAVConnector, XStateConnector, XStateStoreConnector, __test, atomicReplaceCredential, buildConnectorPromptSection, buildConnectorToolDefs, buildFlowPromptEvent, buildFlowToolDefs, buildSdkConnectorTools, buildSdkFlowTools, createConnector, createConnector10, createConnector11, createConnector12, createConnector13, createConnector14, createConnector15, createConnector16, createConnector17, createConnector18, createConnector19, createConnector2, createConnector20, createConnector3, createConnector4, createConnector5, createConnector6, createConnector7, createConnector8, createConnector9, createFsWatcher, createWorktree, defaultSpawn, driveOrchestratorTurn, ensureDirMode, ensureFleetMounted, ensureRefreshAttemptStamp, findGitRoot, findMissingPackages, getConnector, installNpmPackages, isFleetManaged, isPackageResolvable, listConnectors, listWorktrees, readGitSyncStatus, registerBuiltinConnectors, removeMountBlock, removeUnavailableMountBlock, renderCredentialHelperScript, tryGetConnector, worktreeRegistry, writeHelperScript, writeMountBlock, writeUnavailableMountBlock };
|
|
10688
|
-
//# sourceMappingURL=chunk-
|
|
10689
|
-
//# sourceMappingURL=chunk-
|
|
10721
|
+
//# sourceMappingURL=chunk-PLLVREB2.js.map
|
|
10722
|
+
//# sourceMappingURL=chunk-PLLVREB2.js.map
|