uxnan-bridge 0.0.1-alpha.20260621
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/README.md +150 -0
- package/dist/src/account-status.d.ts +13 -0
- package/dist/src/account-status.js +78 -0
- package/dist/src/account-status.js.map +1 -0
- package/dist/src/adapters/base-adapter.d.ts +18 -0
- package/dist/src/adapters/base-adapter.js +15 -0
- package/dist/src/adapters/base-adapter.js.map +1 -0
- package/dist/src/adapters/claude-adapter.d.ts +102 -0
- package/dist/src/adapters/claude-adapter.js +486 -0
- package/dist/src/adapters/claude-adapter.js.map +1 -0
- package/dist/src/adapters/claude-tools.d.ts +25 -0
- package/dist/src/adapters/claude-tools.js +146 -0
- package/dist/src/adapters/claude-tools.js.map +1 -0
- package/dist/src/adapters/codex-adapter.d.ts +116 -0
- package/dist/src/adapters/codex-adapter.js +912 -0
- package/dist/src/adapters/codex-adapter.js.map +1 -0
- package/dist/src/adapters/codex-app-server.d.ts +74 -0
- package/dist/src/adapters/codex-app-server.js +225 -0
- package/dist/src/adapters/codex-app-server.js.map +1 -0
- package/dist/src/adapters/codex-approval.d.ts +88 -0
- package/dist/src/adapters/codex-approval.js +160 -0
- package/dist/src/adapters/codex-approval.js.map +1 -0
- package/dist/src/adapters/codex-tools.d.ts +18 -0
- package/dist/src/adapters/codex-tools.js +106 -0
- package/dist/src/adapters/codex-tools.js.map +1 -0
- package/dist/src/adapters/content-blocks.d.ts +68 -0
- package/dist/src/adapters/content-blocks.js +205 -0
- package/dist/src/adapters/content-blocks.js.map +1 -0
- package/dist/src/adapters/echo-agent-adapter.d.ts +23 -0
- package/dist/src/adapters/echo-agent-adapter.js +72 -0
- package/dist/src/adapters/echo-agent-adapter.js.map +1 -0
- package/dist/src/adapters/gemini-adapter.d.ts +87 -0
- package/dist/src/adapters/gemini-adapter.js +594 -0
- package/dist/src/adapters/gemini-adapter.js.map +1 -0
- package/dist/src/adapters/gemini-tools.d.ts +4 -0
- package/dist/src/adapters/gemini-tools.js +48 -0
- package/dist/src/adapters/gemini-tools.js.map +1 -0
- package/dist/src/adapters/opencode-adapter.d.ts +74 -0
- package/dist/src/adapters/opencode-adapter.js +418 -0
- package/dist/src/adapters/opencode-adapter.js.map +1 -0
- package/dist/src/adapters/opencode-tools.d.ts +2 -0
- package/dist/src/adapters/opencode-tools.js +41 -0
- package/dist/src/adapters/opencode-tools.js.map +1 -0
- package/dist/src/adapters/pi-adapter.d.ts +92 -0
- package/dist/src/adapters/pi-adapter.js +467 -0
- package/dist/src/adapters/pi-adapter.js.map +1 -0
- package/dist/src/adapters/pi-tools.d.ts +10 -0
- package/dist/src/adapters/pi-tools.js +72 -0
- package/dist/src/adapters/pi-tools.js.map +1 -0
- package/dist/src/adapters/process-agent-adapter.d.ts +24 -0
- package/dist/src/adapters/process-agent-adapter.js +111 -0
- package/dist/src/adapters/process-agent-adapter.js.map +1 -0
- package/dist/src/adapters/resolve-claude.d.ts +13 -0
- package/dist/src/adapters/resolve-claude.js +57 -0
- package/dist/src/adapters/resolve-claude.js.map +1 -0
- package/dist/src/adapters/resolve-codex.d.ts +13 -0
- package/dist/src/adapters/resolve-codex.js +48 -0
- package/dist/src/adapters/resolve-codex.js.map +1 -0
- package/dist/src/adapters/resolve-gemini.d.ts +13 -0
- package/dist/src/adapters/resolve-gemini.js +47 -0
- package/dist/src/adapters/resolve-gemini.js.map +1 -0
- package/dist/src/adapters/resolve-opencode.d.ts +11 -0
- package/dist/src/adapters/resolve-opencode.js +49 -0
- package/dist/src/adapters/resolve-opencode.js.map +1 -0
- package/dist/src/adapters/resolve-pi.d.ts +13 -0
- package/dist/src/adapters/resolve-pi.js +46 -0
- package/dist/src/adapters/resolve-pi.js.map +1 -0
- package/dist/src/adapters/run-options.d.ts +22 -0
- package/dist/src/adapters/run-options.js +48 -0
- package/dist/src/adapters/run-options.js.map +1 -0
- package/dist/src/adapters/spawn.d.ts +20 -0
- package/dist/src/adapters/spawn.js +16 -0
- package/dist/src/adapters/spawn.js.map +1 -0
- package/dist/src/agents/agent-manager.d.ts +98 -0
- package/dist/src/agents/agent-manager.js +433 -0
- package/dist/src/agents/agent-manager.js.map +1 -0
- package/dist/src/agents/attachments.d.ts +28 -0
- package/dist/src/agents/attachments.js +121 -0
- package/dist/src/agents/attachments.js.map +1 -0
- package/dist/src/bridge-context.d.ts +45 -0
- package/dist/src/bridge-context.js +2 -0
- package/dist/src/bridge-context.js.map +1 -0
- package/dist/src/bridge-status.d.ts +12 -0
- package/dist/src/bridge-status.js +17 -0
- package/dist/src/bridge-status.js.map +1 -0
- package/dist/src/bridge.d.ts +37 -0
- package/dist/src/bridge.js +446 -0
- package/dist/src/bridge.js.map +1 -0
- package/dist/src/cli.d.ts +2 -0
- package/dist/src/cli.js +194 -0
- package/dist/src/cli.js.map +1 -0
- package/dist/src/conversation/session-history.d.ts +27 -0
- package/dist/src/conversation/session-history.js +1082 -0
- package/dist/src/conversation/session-history.js.map +1 -0
- package/dist/src/conversation/thread-store.d.ts +74 -0
- package/dist/src/conversation/thread-store.js +366 -0
- package/dist/src/conversation/thread-store.js.map +1 -0
- package/dist/src/daemon-config.d.ts +123 -0
- package/dist/src/daemon-config.js +64 -0
- package/dist/src/daemon-config.js.map +1 -0
- package/dist/src/daemon-state.d.ts +27 -0
- package/dist/src/daemon-state.js +76 -0
- package/dist/src/daemon-state.js.map +1 -0
- package/dist/src/git/git-runner.d.ts +24 -0
- package/dist/src/git/git-runner.js +63 -0
- package/dist/src/git/git-runner.js.map +1 -0
- package/dist/src/git/git-service.d.ts +76 -0
- package/dist/src/git/git-service.js +435 -0
- package/dist/src/git/git-service.js.map +1 -0
- package/dist/src/handler-router.d.ts +34 -0
- package/dist/src/handler-router.js +67 -0
- package/dist/src/handler-router.js.map +1 -0
- package/dist/src/handlers/account-handler.d.ts +4 -0
- package/dist/src/handlers/account-handler.js +27 -0
- package/dist/src/handlers/account-handler.js.map +1 -0
- package/dist/src/handlers/agent-handler.d.ts +2 -0
- package/dist/src/handlers/agent-handler.js +8 -0
- package/dist/src/handlers/agent-handler.js.map +1 -0
- package/dist/src/handlers/bridge-control-handler.d.ts +2 -0
- package/dist/src/handlers/bridge-control-handler.js +64 -0
- package/dist/src/handlers/bridge-control-handler.js.map +1 -0
- package/dist/src/handlers/desktop-handler.d.ts +12 -0
- package/dist/src/handlers/desktop-handler.js +5 -0
- package/dist/src/handlers/desktop-handler.js.map +1 -0
- package/dist/src/handlers/git-handler.d.ts +2 -0
- package/dist/src/handlers/git-handler.js +82 -0
- package/dist/src/handlers/git-handler.js.map +1 -0
- package/dist/src/handlers/index.d.ts +8 -0
- package/dist/src/handlers/index.js +22 -0
- package/dist/src/handlers/index.js.map +1 -0
- package/dist/src/handlers/not-implemented.d.ts +10 -0
- package/dist/src/handlers/not-implemented.js +21 -0
- package/dist/src/handlers/not-implemented.js.map +1 -0
- package/dist/src/handlers/notifications-handler.d.ts +2 -0
- package/dist/src/handlers/notifications-handler.js +62 -0
- package/dist/src/handlers/notifications-handler.js.map +1 -0
- package/dist/src/handlers/params.d.ts +11 -0
- package/dist/src/handlers/params.js +72 -0
- package/dist/src/handlers/params.js.map +1 -0
- package/dist/src/handlers/project-handler.d.ts +2 -0
- package/dist/src/handlers/project-handler.js +6 -0
- package/dist/src/handlers/project-handler.js.map +1 -0
- package/dist/src/handlers/thread-context-handler.d.ts +2 -0
- package/dist/src/handlers/thread-context-handler.js +211 -0
- package/dist/src/handlers/thread-context-handler.js.map +1 -0
- package/dist/src/handlers/workspace-handler.d.ts +2 -0
- package/dist/src/handlers/workspace-handler.js +101 -0
- package/dist/src/handlers/workspace-handler.js.map +1 -0
- package/dist/src/hooks/claude-approval-hook.d.ts +7 -0
- package/dist/src/hooks/claude-approval-hook.js +95 -0
- package/dist/src/hooks/claude-approval-hook.js.map +1 -0
- package/dist/src/hooks/gemini-approval-hook.d.ts +7 -0
- package/dist/src/hooks/gemini-approval-hook.js +113 -0
- package/dist/src/hooks/gemini-approval-hook.js.map +1 -0
- package/dist/src/index.d.ts +62 -0
- package/dist/src/index.js +65 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/keyring-secret-store.d.ts +36 -0
- package/dist/src/keyring-secret-store.js +70 -0
- package/dist/src/keyring-secret-store.js.map +1 -0
- package/dist/src/lock-file.d.ts +18 -0
- package/dist/src/lock-file.js +60 -0
- package/dist/src/lock-file.js.map +1 -0
- package/dist/src/logger.d.ts +28 -0
- package/dist/src/logger.js +99 -0
- package/dist/src/logger.js.map +1 -0
- package/dist/src/pairing/pairing-code-service.d.ts +45 -0
- package/dist/src/pairing/pairing-code-service.js +183 -0
- package/dist/src/pairing/pairing-code-service.js.map +1 -0
- package/dist/src/projects/project-registry.d.ts +14 -0
- package/dist/src/projects/project-registry.js +60 -0
- package/dist/src/projects/project-registry.js.map +1 -0
- package/dist/src/push/push-sender.d.ts +21 -0
- package/dist/src/push/push-sender.js +96 -0
- package/dist/src/push/push-sender.js.map +1 -0
- package/dist/src/push/push-service.d.ts +122 -0
- package/dist/src/push/push-service.js +260 -0
- package/dist/src/push/push-service.js.map +1 -0
- package/dist/src/qr.d.ts +17 -0
- package/dist/src/qr.js +31 -0
- package/dist/src/qr.js.map +1 -0
- package/dist/src/secret-store.d.ts +23 -0
- package/dist/src/secret-store.js +27 -0
- package/dist/src/secret-store.js.map +1 -0
- package/dist/src/secure-device-state.d.ts +16 -0
- package/dist/src/secure-device-state.js +63 -0
- package/dist/src/secure-device-state.js.map +1 -0
- package/dist/src/service-installer.d.ts +57 -0
- package/dist/src/service-installer.js +254 -0
- package/dist/src/service-installer.js.map +1 -0
- package/dist/src/session-state.d.ts +14 -0
- package/dist/src/session-state.js +19 -0
- package/dist/src/session-state.js.map +1 -0
- package/dist/src/transport/crypto.d.ts +43 -0
- package/dist/src/transport/crypto.js +78 -0
- package/dist/src/transport/crypto.js.map +1 -0
- package/dist/src/transport/lan-server.d.ts +33 -0
- package/dist/src/transport/lan-server.js +105 -0
- package/dist/src/transport/lan-server.js.map +1 -0
- package/dist/src/transport/local-hosts.d.ts +17 -0
- package/dist/src/transport/local-hosts.js +30 -0
- package/dist/src/transport/local-hosts.js.map +1 -0
- package/dist/src/transport/mdns-advertiser.d.ts +83 -0
- package/dist/src/transport/mdns-advertiser.js +282 -0
- package/dist/src/transport/mdns-advertiser.js.map +1 -0
- package/dist/src/transport/message-io.d.ts +33 -0
- package/dist/src/transport/message-io.js +87 -0
- package/dist/src/transport/message-io.js.map +1 -0
- package/dist/src/transport/outbound-log.d.ts +24 -0
- package/dist/src/transport/outbound-log.js +78 -0
- package/dist/src/transport/outbound-log.js.map +1 -0
- package/dist/src/transport/relay-client.d.ts +19 -0
- package/dist/src/transport/relay-client.js +27 -0
- package/dist/src/transport/relay-client.js.map +1 -0
- package/dist/src/transport/secure-channel.d.ts +33 -0
- package/dist/src/transport/secure-channel.js +81 -0
- package/dist/src/transport/secure-channel.js.map +1 -0
- package/dist/src/transport/server-handshake.d.ts +49 -0
- package/dist/src/transport/server-handshake.js +137 -0
- package/dist/src/transport/server-handshake.js.map +1 -0
- package/dist/src/transport/session-handler.d.ts +19 -0
- package/dist/src/transport/session-handler.js +134 -0
- package/dist/src/transport/session-handler.js.map +1 -0
- package/dist/src/transport/session-registry.d.ts +58 -0
- package/dist/src/transport/session-registry.js +91 -0
- package/dist/src/transport/session-registry.js.map +1 -0
- package/dist/src/transport/trust-store.d.ts +23 -0
- package/dist/src/transport/trust-store.js +33 -0
- package/dist/src/transport/trust-store.js.map +1 -0
- package/dist/src/transport/ws-adapter.d.ts +7 -0
- package/dist/src/transport/ws-adapter.js +16 -0
- package/dist/src/transport/ws-adapter.js.map +1 -0
- package/dist/src/version.d.ts +1 -0
- package/dist/src/version.js +13 -0
- package/dist/src/version.js.map +1 -0
- package/dist/src/workspace/browse-service.d.ts +10 -0
- package/dist/src/workspace/browse-service.js +97 -0
- package/dist/src/workspace/browse-service.js.map +1 -0
- package/dist/src/workspace/checkpoint-service.d.ts +21 -0
- package/dist/src/workspace/checkpoint-service.js +219 -0
- package/dist/src/workspace/checkpoint-service.js.map +1 -0
- package/dist/src/workspace/path-guard.d.ts +7 -0
- package/dist/src/workspace/path-guard.js +51 -0
- package/dist/src/workspace/path-guard.js.map +1 -0
- package/dist/src/workspace/workspace-service.d.ts +8 -0
- package/dist/src/workspace/workspace-service.js +111 -0
- package/dist/src/workspace/workspace-service.js.map +1 -0
- package/package.json +46 -0
- package/scripts/extract-gemini-hook.mjs +16 -0
- package/scripts/fake-approval-bridge.mjs +23 -0
- package/scripts/install-service-linux.sh +38 -0
- package/scripts/install-service-macos.sh +38 -0
- package/scripts/install-service-windows.ps1 +26 -0
- package/scripts/test-gemini-hook-e2e.mjs +168 -0
- package/scripts/write-gemini-settings.mjs +31 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex-adapter.js","sourceRoot":"","sources":["../../../src/adapters/codex-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import type { Readable, Writable } from 'node:stream';
|
|
2
|
+
export type RpcId = number | string;
|
|
3
|
+
export interface JsonRpcRequest {
|
|
4
|
+
jsonrpc: '2.0';
|
|
5
|
+
id: RpcId;
|
|
6
|
+
method: string;
|
|
7
|
+
params?: unknown;
|
|
8
|
+
}
|
|
9
|
+
export interface JsonRpcNotification {
|
|
10
|
+
jsonrpc: '2.0';
|
|
11
|
+
method: string;
|
|
12
|
+
params?: unknown;
|
|
13
|
+
}
|
|
14
|
+
export interface JsonRpcResponseSuccess {
|
|
15
|
+
jsonrpc: '2.0';
|
|
16
|
+
id: RpcId;
|
|
17
|
+
result: unknown;
|
|
18
|
+
}
|
|
19
|
+
export interface JsonRpcResponseError {
|
|
20
|
+
jsonrpc: '2.0';
|
|
21
|
+
id: RpcId;
|
|
22
|
+
error: {
|
|
23
|
+
code: number;
|
|
24
|
+
message: string;
|
|
25
|
+
data?: unknown;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
export type JsonRpcResponse = JsonRpcResponseSuccess | JsonRpcResponseError;
|
|
29
|
+
/** A one-way notification from the server (no `id`, no reply expected). */
|
|
30
|
+
export type ServerNotificationHandler = (method: string, params: unknown) => void;
|
|
31
|
+
/**
|
|
32
|
+
* A server-initiated REQUEST (has `id` + `method`) — we MUST reply. The handler
|
|
33
|
+
* returns the `result` payload (or throws an `RpcError`, see below).
|
|
34
|
+
*/
|
|
35
|
+
export type ServerRequestHandler = (method: string, params: unknown) => Promise<unknown> | unknown;
|
|
36
|
+
export declare class RpcError extends Error {
|
|
37
|
+
readonly code: number;
|
|
38
|
+
readonly data: unknown;
|
|
39
|
+
constructor(code: number, message: string, data?: unknown);
|
|
40
|
+
}
|
|
41
|
+
export interface CodexAppServerRpcOptions {
|
|
42
|
+
/** Per-request timeout in ms (default 60s). Pass 0 to disable. */
|
|
43
|
+
requestTimeoutMs?: number;
|
|
44
|
+
/** Extra `id` offset so multiple clients in the same process don't collide. */
|
|
45
|
+
idStart?: number;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Thin NDJSON JSON-RPC 2.0 client bound to a single child process's stdio.
|
|
49
|
+
* Not thread-safe; intended for use from a single async context (one adapter).
|
|
50
|
+
*/
|
|
51
|
+
export declare class CodexAppServerRpc {
|
|
52
|
+
#private;
|
|
53
|
+
constructor(streams: {
|
|
54
|
+
stdin: Writable;
|
|
55
|
+
stdout: Readable;
|
|
56
|
+
onClose?: (code: number | null) => void;
|
|
57
|
+
}, handlers: {
|
|
58
|
+
onNotification: ServerNotificationHandler;
|
|
59
|
+
onServerRequest: ServerRequestHandler;
|
|
60
|
+
}, options?: CodexAppServerRpcOptions);
|
|
61
|
+
/** Send a request and await the server's response. Throws on timeout / error. */
|
|
62
|
+
request<T = unknown>(method: string, params?: unknown, timeoutMs?: number): Promise<T>;
|
|
63
|
+
/** Send a one-way notification (no `id`, no reply). */
|
|
64
|
+
notify(method: string, params?: unknown): void;
|
|
65
|
+
/** Send a reply to a server-initiated request. */
|
|
66
|
+
reply(id: RpcId, result: unknown): void;
|
|
67
|
+
/** Send an error reply to a server-initiated request. */
|
|
68
|
+
replyError(id: RpcId, code: number, message: string, data?: unknown): void;
|
|
69
|
+
/** Reject every pending request and stop reading. Idempotent. */
|
|
70
|
+
close(): void;
|
|
71
|
+
get closed(): boolean;
|
|
72
|
+
/** Called by the owner when the child process emits `close`. */
|
|
73
|
+
onProcessClose(code: number | null): void;
|
|
74
|
+
}
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal JSON-RPC 2.0 client over newline-delimited stdio, used to talk to
|
|
3
|
+
* `codex app-server`.
|
|
4
|
+
*
|
|
5
|
+
* Why a custom client (no deps): the bridge already has a one-line
|
|
6
|
+
* `createInterface({ input })` reader per adapter and only needs request
|
|
7
|
+
* correlation, server-request routing, and clean shutdown. The protocol
|
|
8
|
+
* surface is small and stable.
|
|
9
|
+
*
|
|
10
|
+
* Lifecycle:
|
|
11
|
+
* const proc = spawn(...);
|
|
12
|
+
* const rpc = new CodexAppServerRpc(proc, handlers);
|
|
13
|
+
* await rpc.request('initialize', { ... }); // request → response
|
|
14
|
+
* rpc.onNotification((notif) => { ... }); // one-way server→client
|
|
15
|
+
* rpc.onServerRequest(async (method, params, id) => …)// server requests a reply
|
|
16
|
+
* await rpc.close(); // graceful shutdown
|
|
17
|
+
*
|
|
18
|
+
* Resilience:
|
|
19
|
+
* - A pending request is rejected when the process closes (so callers can fail
|
|
20
|
+
* fast instead of hanging on a 60s timeout).
|
|
21
|
+
* - A default per-request timeout (60s) catches hung requests; model listing
|
|
22
|
+
* uses its own shorter timeout because it's known to be fast.
|
|
23
|
+
* - Late responses (after the caller already moved on) are dropped, not
|
|
24
|
+
* surfaced.
|
|
25
|
+
*/
|
|
26
|
+
import { createInterface } from 'node:readline';
|
|
27
|
+
export class RpcError extends Error {
|
|
28
|
+
code;
|
|
29
|
+
data;
|
|
30
|
+
constructor(code, message, data) {
|
|
31
|
+
super(message);
|
|
32
|
+
this.name = 'RpcError';
|
|
33
|
+
this.code = code;
|
|
34
|
+
this.data = data;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Thin NDJSON JSON-RPC 2.0 client bound to a single child process's stdio.
|
|
39
|
+
* Not thread-safe; intended for use from a single async context (one adapter).
|
|
40
|
+
*/
|
|
41
|
+
export class CodexAppServerRpc {
|
|
42
|
+
#stdin;
|
|
43
|
+
#stdout;
|
|
44
|
+
#requestTimeoutMs;
|
|
45
|
+
#reader;
|
|
46
|
+
#pending = new Map();
|
|
47
|
+
#onNotification;
|
|
48
|
+
#onServerRequest;
|
|
49
|
+
#nextId;
|
|
50
|
+
/** Closed by `close()` or an EOF on stdout — rejects pending requests. */
|
|
51
|
+
#closed = false;
|
|
52
|
+
#onClose;
|
|
53
|
+
constructor(streams, handlers, options = {}) {
|
|
54
|
+
this.#stdin = streams.stdin;
|
|
55
|
+
this.#stdout = streams.stdout;
|
|
56
|
+
this.#requestTimeoutMs = options.requestTimeoutMs ?? 60_000;
|
|
57
|
+
this.#nextId = options.idStart ?? 1;
|
|
58
|
+
this.#onNotification = handlers.onNotification;
|
|
59
|
+
this.#onServerRequest = handlers.onServerRequest;
|
|
60
|
+
this.#onClose = streams.onClose;
|
|
61
|
+
this.#reader = createInterface({ input: this.#stdout, crlfDelay: Infinity });
|
|
62
|
+
this.#reader.on('line', (line) => {
|
|
63
|
+
void this.#handleLine(line);
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
/** Send a request and await the server's response. Throws on timeout / error. */
|
|
67
|
+
request(method, params, timeoutMs) {
|
|
68
|
+
if (this.#closed) {
|
|
69
|
+
return Promise.reject(new Error('rpc: client is closed'));
|
|
70
|
+
}
|
|
71
|
+
const id = this.#nextId++;
|
|
72
|
+
const effectiveTimeout = timeoutMs ?? this.#requestTimeoutMs;
|
|
73
|
+
return new Promise((resolve, reject) => {
|
|
74
|
+
const entry = {
|
|
75
|
+
resolve: (v) => resolve(v),
|
|
76
|
+
reject,
|
|
77
|
+
timer: undefined,
|
|
78
|
+
method,
|
|
79
|
+
};
|
|
80
|
+
if (effectiveTimeout > 0) {
|
|
81
|
+
entry.timer = setTimeout(() => {
|
|
82
|
+
this.#pending.delete(id);
|
|
83
|
+
reject(new RpcError(-32010, `rpc: request '${method}' (id=${id}) timed out after ${effectiveTimeout}ms`));
|
|
84
|
+
}, effectiveTimeout);
|
|
85
|
+
}
|
|
86
|
+
this.#pending.set(id, entry);
|
|
87
|
+
const msg = {
|
|
88
|
+
jsonrpc: '2.0',
|
|
89
|
+
id,
|
|
90
|
+
method,
|
|
91
|
+
...(params !== undefined ? { params } : {}),
|
|
92
|
+
};
|
|
93
|
+
try {
|
|
94
|
+
this.#stdin.write(`${JSON.stringify(msg)}\n`);
|
|
95
|
+
}
|
|
96
|
+
catch (err) {
|
|
97
|
+
clearTimeout(entry.timer);
|
|
98
|
+
this.#pending.delete(id);
|
|
99
|
+
reject(err);
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
/** Send a one-way notification (no `id`, no reply). */
|
|
104
|
+
notify(method, params) {
|
|
105
|
+
if (this.#closed)
|
|
106
|
+
return;
|
|
107
|
+
const msg = {
|
|
108
|
+
jsonrpc: '2.0',
|
|
109
|
+
method,
|
|
110
|
+
...(params !== undefined ? { params } : {}),
|
|
111
|
+
};
|
|
112
|
+
try {
|
|
113
|
+
this.#stdin.write(`${JSON.stringify(msg)}\n`);
|
|
114
|
+
}
|
|
115
|
+
catch {
|
|
116
|
+
/* pipe closed mid-flight; onClose handler will fire */
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/** Send a reply to a server-initiated request. */
|
|
120
|
+
reply(id, result) {
|
|
121
|
+
this.#write({ jsonrpc: '2.0', id, result });
|
|
122
|
+
}
|
|
123
|
+
/** Send an error reply to a server-initiated request. */
|
|
124
|
+
replyError(id, code, message, data) {
|
|
125
|
+
this.#write({
|
|
126
|
+
jsonrpc: '2.0',
|
|
127
|
+
id,
|
|
128
|
+
error: { code, message, ...(data !== undefined ? { data } : {}) },
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
/** Reject every pending request and stop reading. Idempotent. */
|
|
132
|
+
close() {
|
|
133
|
+
if (this.#closed)
|
|
134
|
+
return;
|
|
135
|
+
this.#closed = true;
|
|
136
|
+
for (const [, entry] of this.#pending) {
|
|
137
|
+
if (entry.timer)
|
|
138
|
+
clearTimeout(entry.timer);
|
|
139
|
+
entry.reject(new Error('rpc: client closed'));
|
|
140
|
+
}
|
|
141
|
+
this.#pending.clear();
|
|
142
|
+
try {
|
|
143
|
+
this.#reader.close();
|
|
144
|
+
}
|
|
145
|
+
catch {
|
|
146
|
+
/* already closed */
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
get closed() {
|
|
150
|
+
return this.#closed;
|
|
151
|
+
}
|
|
152
|
+
/** Called by the owner when the child process emits `close`. */
|
|
153
|
+
onProcessClose(code) {
|
|
154
|
+
this.#onClose?.(code);
|
|
155
|
+
}
|
|
156
|
+
#write(msg) {
|
|
157
|
+
if (this.#closed)
|
|
158
|
+
return;
|
|
159
|
+
try {
|
|
160
|
+
this.#stdin.write(`${JSON.stringify(msg)}\n`);
|
|
161
|
+
}
|
|
162
|
+
catch {
|
|
163
|
+
/* pipe closed */
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
async #handleLine(line) {
|
|
167
|
+
const trimmed = line.trim();
|
|
168
|
+
if (!trimmed)
|
|
169
|
+
return;
|
|
170
|
+
let parsed;
|
|
171
|
+
try {
|
|
172
|
+
parsed = JSON.parse(trimmed);
|
|
173
|
+
}
|
|
174
|
+
catch {
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
if (!isRecord(parsed))
|
|
178
|
+
return;
|
|
179
|
+
// Response (has `id`, no `method`) → resolve a pending request.
|
|
180
|
+
if (parsed['id'] !== undefined && parsed['method'] === undefined) {
|
|
181
|
+
const id = parsed['id'];
|
|
182
|
+
const entry = this.#pending.get(id);
|
|
183
|
+
if (!entry)
|
|
184
|
+
return; // late response
|
|
185
|
+
this.#pending.delete(id);
|
|
186
|
+
if (entry.timer)
|
|
187
|
+
clearTimeout(entry.timer);
|
|
188
|
+
if (isRecord(parsed['error'])) {
|
|
189
|
+
const errObj = parsed['error'];
|
|
190
|
+
entry.reject(new RpcError(typeof errObj['code'] === 'number' ? errObj['code'] : -32000, typeof errObj['message'] === 'string' ? errObj['message'] : 'rpc error', errObj['data']));
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
entry.resolve(parsed['result']);
|
|
194
|
+
}
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
// Server request (has both `id` and `method`) → must reply.
|
|
198
|
+
if (parsed['id'] !== undefined && typeof parsed['method'] === 'string') {
|
|
199
|
+
const id = parsed['id'];
|
|
200
|
+
const method = parsed['method'];
|
|
201
|
+
const params = parsed['params'];
|
|
202
|
+
try {
|
|
203
|
+
const result = await this.#onServerRequest(method, params);
|
|
204
|
+
this.reply(id, result ?? null);
|
|
205
|
+
}
|
|
206
|
+
catch (err) {
|
|
207
|
+
if (err instanceof RpcError) {
|
|
208
|
+
this.replyError(id, err.code, err.message, err.data);
|
|
209
|
+
}
|
|
210
|
+
else {
|
|
211
|
+
this.replyError(id, -32000, err instanceof Error ? err.message : String(err));
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
216
|
+
// Notification (has `method`, no `id`) → one-way.
|
|
217
|
+
if (parsed['method'] === undefined)
|
|
218
|
+
return;
|
|
219
|
+
this.#onNotification(parsed['method'], parsed['params']);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
function isRecord(value) {
|
|
223
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
224
|
+
}
|
|
225
|
+
//# sourceMappingURL=codex-app-server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex-app-server.js","sourceRoot":"","sources":["../../../src/adapters/codex-app-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Maps the various Codex app-server approval-elicitation shapes onto the
|
|
3
|
+
* bridge's generic approval tool descriptor (`{ toolName, input }`), so the
|
|
4
|
+
* caller can use a single `agentManager.requestApproval(...)` call regardless
|
|
5
|
+
* of which approval type the server sent.
|
|
6
|
+
*
|
|
7
|
+
* Codex has accumulated several approval channel names over the codebasex-cli
|
|
8
|
+
* versions, and the app-server protocol surfaces BOTH the new `v2` names and
|
|
9
|
+
* the legacy ones. Every one of them is routed through this module:
|
|
10
|
+
*
|
|
11
|
+
* v2 (current):
|
|
12
|
+
* - `item/commandExecution/requestApproval` (params: { command, parsedCmd, ... })
|
|
13
|
+
* - `item/fileChange/requestApproval` (params: { fileChanges, grantRoot?, reason? })
|
|
14
|
+
* - `item/permissions/requestApproval` (params: { reason, permissions })
|
|
15
|
+
* - `mcpServer/elicitation/request` (params: { serverName, message, ... })
|
|
16
|
+
* - `item/tool/requestUserInput` (params: { toolName, question, ... })
|
|
17
|
+
*
|
|
18
|
+
* v1 (legacy, still emitted by older `codex-cli` releases):
|
|
19
|
+
* - `execCommandApproval` (params: { command, parsedCmd, ... })
|
|
20
|
+
* - `applyPatchApproval` (params: { fileChanges, grantRoot?, reason? })
|
|
21
|
+
*
|
|
22
|
+
* See `/tmp/codex-schema/ServerRequest.json` for the full schema. The bridge
|
|
23
|
+
* treats them all as a tool to gate; the user replies with one of
|
|
24
|
+
* `approve | reject | approveSession` and the caller maps it back to the
|
|
25
|
+
* right JSON-RPC decision shape for THIS method.
|
|
26
|
+
*/
|
|
27
|
+
import type { ApprovalDecision } from '@uxnan/shared';
|
|
28
|
+
/** The bridge's tool descriptor for `AgentManager.requestApproval`. */
|
|
29
|
+
export interface ApprovalDescriptor {
|
|
30
|
+
toolName: string;
|
|
31
|
+
input: Record<string, unknown>;
|
|
32
|
+
/** Optional human-readable one-liner shown as the card's "action" subtitle. */
|
|
33
|
+
detail?: string;
|
|
34
|
+
}
|
|
35
|
+
/** Identify the elicitation shape so the reply can be shaped correctly. */
|
|
36
|
+
export type ApprovalKind =
|
|
37
|
+
/** `item/commandExecution/requestApproval` (v2). */
|
|
38
|
+
'commandExecution'
|
|
39
|
+
/** `item/fileChange/requestApproval` (v2). */
|
|
40
|
+
| 'fileChange'
|
|
41
|
+
/** `item/permissions/requestApproval` (v2). */
|
|
42
|
+
| 'permissions'
|
|
43
|
+
/** `mcpServer/elicitation/request` (v2 MCP server). */
|
|
44
|
+
| 'mcpElicitation'
|
|
45
|
+
/** `item/tool/requestUserInput` (v2, EXPERIMENTAL — treat as approval). */
|
|
46
|
+
| 'toolUserInput'
|
|
47
|
+
/** Legacy `execCommandApproval` (v1). */
|
|
48
|
+
| 'legacyExecCommand'
|
|
49
|
+
/** Legacy `applyPatchApproval` (v1). */
|
|
50
|
+
| 'legacyApplyPatch';
|
|
51
|
+
/** A pending approval extracted from one server request. */
|
|
52
|
+
export interface PendingCodexApproval {
|
|
53
|
+
kind: ApprovalKind;
|
|
54
|
+
serverRequestId: number | string;
|
|
55
|
+
descriptor: ApprovalDescriptor;
|
|
56
|
+
}
|
|
57
|
+
/** A JSON-RPC reply shape for a given approval kind. */
|
|
58
|
+
export type ApprovalReply = {
|
|
59
|
+
kind: 'approved';
|
|
60
|
+
} | {
|
|
61
|
+
kind: 'approved_for_session';
|
|
62
|
+
} | {
|
|
63
|
+
kind: 'denied';
|
|
64
|
+
} | {
|
|
65
|
+
kind: 'abort';
|
|
66
|
+
} | {
|
|
67
|
+
kind: 'timed_out';
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Map a user-facing decision onto the wire reply. `approveSession` becomes
|
|
71
|
+
* `approved_for_session` (Codex caches the approval for the rest of the
|
|
72
|
+
* session), `approve` → `approved`, `reject` → `denied`.
|
|
73
|
+
*/
|
|
74
|
+
export declare function decisionToReply(decision: ApprovalDecision): ApprovalReply;
|
|
75
|
+
/**
|
|
76
|
+
* Inspect a server request and pull out the kind + descriptor. Returns
|
|
77
|
+
* `undefined` for methods the bridge does not treat as a gateable approval
|
|
78
|
+
* (e.g. `account/chatgptAuthTokens/refresh` — handled separately).
|
|
79
|
+
*/
|
|
80
|
+
export declare function describeServerRequest(method: string, params: unknown, id: number | string): PendingCodexApproval | undefined;
|
|
81
|
+
/**
|
|
82
|
+
* Build the JSON-RPC `result` payload for a given kind + reply. The shape
|
|
83
|
+
* differs per method: the v2 names use `{ decision: ... }` with a
|
|
84
|
+
* `ReviewDecision` oneOf; the v1 names use the SAME `ReviewDecision` oneOf
|
|
85
|
+
* directly. The bridge keeps it simple and only emits the string forms it
|
|
86
|
+
* understands (Codex ignores unknown forms).
|
|
87
|
+
*/
|
|
88
|
+
export declare function buildReplyResult(_kind: ApprovalKind, reply: ApprovalReply): Record<string, unknown>;
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Map a user-facing decision onto the wire reply. `approveSession` becomes
|
|
3
|
+
* `approved_for_session` (Codex caches the approval for the rest of the
|
|
4
|
+
* session), `approve` → `approved`, `reject` → `denied`.
|
|
5
|
+
*/
|
|
6
|
+
export function decisionToReply(decision) {
|
|
7
|
+
if (decision === 'approveSession')
|
|
8
|
+
return { kind: 'approved_for_session' };
|
|
9
|
+
if (decision === 'reject')
|
|
10
|
+
return { kind: 'denied' };
|
|
11
|
+
return { kind: 'approved' };
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Inspect a server request and pull out the kind + descriptor. Returns
|
|
15
|
+
* `undefined` for methods the bridge does not treat as a gateable approval
|
|
16
|
+
* (e.g. `account/chatgptAuthTokens/refresh` — handled separately).
|
|
17
|
+
*/
|
|
18
|
+
export function describeServerRequest(method, params, id) {
|
|
19
|
+
switch (method) {
|
|
20
|
+
case 'item/commandExecution/requestApproval':
|
|
21
|
+
return describeCommandExecution(params, id);
|
|
22
|
+
case 'item/fileChange/requestApproval':
|
|
23
|
+
return describeFileChange(params, id);
|
|
24
|
+
case 'item/permissions/requestApproval':
|
|
25
|
+
return describePermissions(params, id);
|
|
26
|
+
case 'mcpServer/elicitation/request':
|
|
27
|
+
return describeMcpElicitation(params, id);
|
|
28
|
+
case 'item/tool/requestUserInput':
|
|
29
|
+
return describeToolUserInput(params, id);
|
|
30
|
+
case 'execCommandApproval':
|
|
31
|
+
return describeLegacyExecCommand(params, id);
|
|
32
|
+
case 'applyPatchApproval':
|
|
33
|
+
return describeLegacyApplyPatch(params, id);
|
|
34
|
+
default:
|
|
35
|
+
return undefined;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Build the JSON-RPC `result` payload for a given kind + reply. The shape
|
|
40
|
+
* differs per method: the v2 names use `{ decision: ... }` with a
|
|
41
|
+
* `ReviewDecision` oneOf; the v1 names use the SAME `ReviewDecision` oneOf
|
|
42
|
+
* directly. The bridge keeps it simple and only emits the string forms it
|
|
43
|
+
* understands (Codex ignores unknown forms).
|
|
44
|
+
*/
|
|
45
|
+
export function buildReplyResult(_kind, reply) {
|
|
46
|
+
return { decision: reply.kind };
|
|
47
|
+
}
|
|
48
|
+
function describeCommandExecution(params, id) {
|
|
49
|
+
const p = asRecord(params) ?? {};
|
|
50
|
+
// `command` is a string[] (argv); `parsedCmd` is a best-effort parse.
|
|
51
|
+
const command = Array.isArray(p['command'])
|
|
52
|
+
? p['command'].filter((c) => typeof c === 'string').join(' ')
|
|
53
|
+
: '';
|
|
54
|
+
const detail = command ||
|
|
55
|
+
(typeof p['reason'] === 'string' ? p['reason'] : 'codex wants to run a command');
|
|
56
|
+
return {
|
|
57
|
+
kind: 'commandExecution',
|
|
58
|
+
serverRequestId: id,
|
|
59
|
+
descriptor: {
|
|
60
|
+
toolName: 'codex.command',
|
|
61
|
+
input: {
|
|
62
|
+
command,
|
|
63
|
+
...(Array.isArray(p['parsedCmd']) ? { parsedCmd: p['parsedCmd'] } : {}),
|
|
64
|
+
...(typeof p['cwd'] === 'string' ? { cwd: p['cwd'] } : {}),
|
|
65
|
+
},
|
|
66
|
+
detail,
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
function describeFileChange(params, id) {
|
|
71
|
+
const p = asRecord(params) ?? {};
|
|
72
|
+
const fileChanges = asRecord(p['fileChanges']) ?? {};
|
|
73
|
+
const paths = Object.keys(fileChanges);
|
|
74
|
+
const detail = paths.length > 0 ? paths.join(', ') : 'codex wants to edit files';
|
|
75
|
+
return {
|
|
76
|
+
kind: 'fileChange',
|
|
77
|
+
serverRequestId: id,
|
|
78
|
+
descriptor: {
|
|
79
|
+
toolName: 'codex.applyPatch',
|
|
80
|
+
input: { fileChanges, ...(typeof p['reason'] === 'string' ? { reason: p['reason'] } : {}) },
|
|
81
|
+
detail,
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
function describePermissions(params, id) {
|
|
86
|
+
const p = asRecord(params) ?? {};
|
|
87
|
+
const reason = typeof p['reason'] === 'string' ? p['reason'] : 'codex wants extra permissions';
|
|
88
|
+
return {
|
|
89
|
+
kind: 'permissions',
|
|
90
|
+
serverRequestId: id,
|
|
91
|
+
descriptor: {
|
|
92
|
+
toolName: 'codex.permissions',
|
|
93
|
+
input: { reason, permissions: p['permissions'] },
|
|
94
|
+
detail: reason,
|
|
95
|
+
},
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
function describeMcpElicitation(params, id) {
|
|
99
|
+
const p = asRecord(params) ?? {};
|
|
100
|
+
const serverName = typeof p['serverName'] === 'string' ? p['serverName'] : 'mcp';
|
|
101
|
+
const message = typeof p['message'] === 'string' ? p['message'] : 'mcp server needs input';
|
|
102
|
+
return {
|
|
103
|
+
kind: 'mcpElicitation',
|
|
104
|
+
serverRequestId: id,
|
|
105
|
+
descriptor: {
|
|
106
|
+
toolName: `mcp.${serverName}`,
|
|
107
|
+
input: p,
|
|
108
|
+
detail: message,
|
|
109
|
+
},
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
function describeToolUserInput(params, id) {
|
|
113
|
+
const p = asRecord(params) ?? {};
|
|
114
|
+
const toolName = typeof p['toolName'] === 'string' ? p['toolName'] : 'codex tool';
|
|
115
|
+
const question = typeof p['question'] === 'string' ? p['question'] : 'codex needs input';
|
|
116
|
+
return {
|
|
117
|
+
kind: 'toolUserInput',
|
|
118
|
+
serverRequestId: id,
|
|
119
|
+
descriptor: {
|
|
120
|
+
toolName: `codex.${toolName}`,
|
|
121
|
+
input: p,
|
|
122
|
+
detail: question,
|
|
123
|
+
},
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
function describeLegacyExecCommand(params, id) {
|
|
127
|
+
const p = asRecord(params) ?? {};
|
|
128
|
+
const command = Array.isArray(p['command'])
|
|
129
|
+
? p['command'].filter((c) => typeof c === 'string').join(' ')
|
|
130
|
+
: '';
|
|
131
|
+
return {
|
|
132
|
+
kind: 'legacyExecCommand',
|
|
133
|
+
serverRequestId: id,
|
|
134
|
+
descriptor: {
|
|
135
|
+
toolName: 'codex.command',
|
|
136
|
+
input: { command, ...(typeof p['cwd'] === 'string' ? { cwd: p['cwd'] } : {}) },
|
|
137
|
+
detail: command || 'codex wants to run a command',
|
|
138
|
+
},
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
function describeLegacyApplyPatch(params, id) {
|
|
142
|
+
const p = asRecord(params) ?? {};
|
|
143
|
+
const fileChanges = asRecord(p['fileChanges']) ?? {};
|
|
144
|
+
const paths = Object.keys(fileChanges);
|
|
145
|
+
return {
|
|
146
|
+
kind: 'legacyApplyPatch',
|
|
147
|
+
serverRequestId: id,
|
|
148
|
+
descriptor: {
|
|
149
|
+
toolName: 'codex.applyPatch',
|
|
150
|
+
input: { fileChanges, ...(typeof p['reason'] === 'string' ? { reason: p['reason'] } : {}) },
|
|
151
|
+
detail: paths.length > 0 ? paths.join(', ') : 'codex wants to edit files',
|
|
152
|
+
},
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
function asRecord(value) {
|
|
156
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value)
|
|
157
|
+
? value
|
|
158
|
+
: undefined;
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=codex-approval.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex-approval.js","sourceRoot":"","sources":["../../../src/adapters/codex-approval.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/** The reasoning text of a Codex `reasoning` item (`text` or a `summary` list). */
|
|
2
|
+
export declare function codexReasoningText(item: Record<string, unknown>): string;
|
|
3
|
+
/** A changed path + kind from a Codex `file_change` item. */
|
|
4
|
+
export interface CodexFileChange {
|
|
5
|
+
path: string;
|
|
6
|
+
kind: string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* The changed paths/kinds of a `file_change` item — the adapter reads the files
|
|
10
|
+
* to synthesize a diff (Codex reports only path + kind, not the hunk text).
|
|
11
|
+
*/
|
|
12
|
+
export declare function codexFileChanges(item: Record<string, unknown>): CodexFileChange[];
|
|
13
|
+
/**
|
|
14
|
+
* The structured block(s) for a Codex `command_execution` / `mcp_tool_call`
|
|
15
|
+
* item (`file_change` is handled by the adapter so it can read the file
|
|
16
|
+
* content), or `[]` otherwise.
|
|
17
|
+
*/
|
|
18
|
+
export declare function codexItemBlocks(item: Record<string, unknown>): Record<string, unknown>[];
|