@excitedjs/agent-runtime-codex 0.5.0-beta.179 → 0.5.0-beta.183
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/dist/activity/budget.d.ts +8 -0
- package/dist/activity/budget.d.ts.map +1 -0
- package/dist/activity/budget.js +9 -0
- package/dist/activity/budget.js.map +1 -0
- package/dist/{transcript → activity}/cursor.d.ts +2 -2
- package/dist/activity/cursor.d.ts.map +1 -0
- package/dist/{transcript → activity}/cursor.js +10 -10
- package/dist/activity/cursor.js.map +1 -0
- package/dist/activity/error.d.ts +16 -0
- package/dist/activity/error.d.ts.map +1 -0
- package/dist/activity/error.js +22 -0
- package/dist/activity/error.js.map +1 -0
- package/dist/activity/opened-file.d.ts +10 -0
- package/dist/activity/opened-file.d.ts.map +1 -0
- package/dist/{transcript → activity}/opened-file.js +10 -10
- package/dist/activity/opened-file.js.map +1 -0
- package/dist/activity/path.d.ts +27 -0
- package/dist/activity/path.d.ts.map +1 -0
- package/dist/{transcript → activity}/path.js +49 -119
- package/dist/activity/path.js.map +1 -0
- package/dist/activity/projection.d.ts +34 -0
- package/dist/activity/projection.d.ts.map +1 -0
- package/dist/activity/projection.js +191 -0
- package/dist/activity/projection.js.map +1 -0
- package/dist/activity/reader.d.ts +14 -0
- package/dist/activity/reader.d.ts.map +1 -0
- package/dist/activity/reader.js +314 -0
- package/dist/activity/reader.js.map +1 -0
- package/dist/approval.d.ts +4 -3
- package/dist/approval.d.ts.map +1 -1
- package/dist/approval.js +6 -5
- package/dist/approval.js.map +1 -1
- package/dist/args.d.ts +3 -3
- package/dist/args.js +4 -4
- package/dist/args.js.map +1 -1
- package/dist/diagnostic.d.ts +2 -2
- package/dist/diagnostic.d.ts.map +1 -1
- package/dist/events.d.ts +1 -1
- package/dist/events.js +1 -1
- package/dist/index.d.ts +1 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp-config.d.ts +27 -3
- package/dist/mcp-config.d.ts.map +1 -1
- package/dist/mcp-config.js +55 -9
- package/dist/mcp-config.js.map +1 -1
- package/dist/provider.d.ts +28 -42
- package/dist/provider.d.ts.map +1 -1
- package/dist/provider.js +37 -56
- package/dist/provider.js.map +1 -1
- package/dist/rpc.d.ts +2 -2
- package/dist/rpc.js +3 -3
- package/dist/rpc.js.map +1 -1
- package/dist/runtime-deps.d.ts +43 -0
- package/dist/runtime-deps.d.ts.map +1 -0
- package/dist/runtime-deps.js +2 -0
- package/dist/runtime-deps.js.map +1 -0
- package/dist/runtime.d.ts +69 -47
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +189 -132
- package/dist/runtime.js.map +1 -1
- package/dist/supervisor.d.ts +2 -2
- package/dist/supervisor.js +2 -2
- package/dist/turn-manager.d.ts +14 -19
- package/dist/turn-manager.d.ts.map +1 -1
- package/dist/turn-manager.js +16 -104
- package/dist/turn-manager.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.js +1 -1
- package/package.json +3 -3
- package/dist/transcript/budget.d.ts +0 -8
- package/dist/transcript/budget.d.ts.map +0 -1
- package/dist/transcript/budget.js +0 -9
- package/dist/transcript/budget.js.map +0 -1
- package/dist/transcript/cursor.d.ts.map +0 -1
- package/dist/transcript/cursor.js.map +0 -1
- package/dist/transcript/error.d.ts +0 -9
- package/dist/transcript/error.d.ts.map +0 -1
- package/dist/transcript/error.js +0 -9
- package/dist/transcript/error.js.map +0 -1
- package/dist/transcript/opened-file.d.ts +0 -10
- package/dist/transcript/opened-file.d.ts.map +0 -1
- package/dist/transcript/opened-file.js.map +0 -1
- package/dist/transcript/path.d.ts +0 -28
- package/dist/transcript/path.d.ts.map +0 -1
- package/dist/transcript/path.js.map +0 -1
- package/dist/transcript/projection.d.ts +0 -6
- package/dist/transcript/projection.d.ts.map +0 -1
- package/dist/transcript/projection.js +0 -170
- package/dist/transcript/projection.js.map +0 -1
- package/dist/transcript/reader.d.ts +0 -7
- package/dist/transcript/reader.d.ts.map +0 -1
- package/dist/transcript/reader.js +0 -421
- package/dist/transcript/reader.js.map +0 -1
package/dist/approval.js
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Approval handler for Codex server→client requests.
|
|
3
3
|
*
|
|
4
|
-
* Issue #2
|
|
4
|
+
* Issue #2, "trust model" and "implementation pitfalls":
|
|
5
5
|
* - MVP runs Codex with approval-policy=never (or auto-approve).
|
|
6
6
|
* - If a server-request still arrives (e.g. because policy was misconfigured
|
|
7
7
|
* or codex escalates anyway), fail loudly — never return null. Silent null
|
|
8
8
|
* is the trap that hangs the daemon.
|
|
9
9
|
*
|
|
10
|
-
* `onReject` is an observer hook for logs or metrics.
|
|
11
|
-
*
|
|
10
|
+
* `onReject` is an observer hook for logs or metrics. A runtime package knows
|
|
11
|
+
* nothing about Channels, so this handler must not try to reach a user: the
|
|
12
|
+
* rejection travels back to codex, and Core decides what any Channel says.
|
|
12
13
|
*/
|
|
13
14
|
/** A method name like `exec_command_approval`, `apply_patch_approval`, etc. */
|
|
14
15
|
const APPROVAL_METHOD_HINTS = ['approval', 'approve', 'confirm', 'review'];
|
|
@@ -34,9 +35,9 @@ export function createFailFastApprovalHandler(opts = {}) {
|
|
|
34
35
|
}
|
|
35
36
|
}
|
|
36
37
|
if (looksLikeApprovalRequest(req.method)) {
|
|
37
|
-
throw new Error(
|
|
38
|
+
throw new Error(`approvals are not supported in this version (${req.method}). Configure codex approval-policy=never, or deploy this dispatcher in a trusted-local environment.`);
|
|
38
39
|
}
|
|
39
|
-
throw new Error(`dispatcher
|
|
40
|
+
throw new Error(`dispatcher received an unsupported codex server-request: ${req.method} (id=${req.id})`);
|
|
40
41
|
};
|
|
41
42
|
}
|
|
42
43
|
//# sourceMappingURL=approval.js.map
|
package/dist/approval.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approval.js","sourceRoot":"","sources":["../src/approval.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"approval.js","sourceRoot":"","sources":["../src/approval.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAYH,+EAA+E;AAC/E,MAAM,qBAAqB,GAAG,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AAE3E,MAAM,UAAU,wBAAwB,CAAC,MAAc;IACrD,MAAM,CAAC,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IAC/B,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,6BAA6B,CAC3C,OAA+B,EAAE;IAEjC,OAAO,KAAK,EAAE,GAAkB,EAAoB,EAAE;QACpD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC3B,CAAC;YAAC,MAAM,CAAC;gBACP,uDAAuD;YACzD,CAAC;QACH,CAAC;QACD,IAAI,wBAAwB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CACb,gDAAgD,GAAG,CAAC,MAAM,qGAAqG,CAChK,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,KAAK,CACb,4DAA4D,GAAG,CAAC,MAAM,QAAQ,GAAG,CAAC,EAAE,GAAG,CACxF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
|
package/dist/args.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Parse `dispatchers.codex_args_json` into the CLI-arg array passed to
|
|
3
3
|
* the codex app-server child, AND validate that the trusted-local
|
|
4
|
-
* invariants from issue #2
|
|
4
|
+
* invariants from issue #2 "trust model" hold.
|
|
5
5
|
*
|
|
6
6
|
* Canonical shape:
|
|
7
7
|
* {
|
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
* 3. hardcoded fallbacks (`'never'`, `'workspace-write'`, `[]`)
|
|
23
23
|
*
|
|
24
24
|
* `approvalPolicy` not in the trusted-local allowlist fails-fast at startup
|
|
25
|
-
* (issue #2
|
|
26
|
-
* request approval AND no approval handler is wired.
|
|
25
|
+
* (issue #2 "implementation pitfalls"): dispatcher refuses to come up if the
|
|
26
|
+
* policy may request approval AND no approval handler is wired.
|
|
27
27
|
*
|
|
28
28
|
* `sandboxMode` is similarly validated against the codex 0.134 enum so a
|
|
29
29
|
* typo doesn't reach the daemon (where the only feedback is a fatal early
|
package/dist/args.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Parse `dispatchers.codex_args_json` into the CLI-arg array passed to
|
|
3
3
|
* the codex app-server child, AND validate that the trusted-local
|
|
4
|
-
* invariants from issue #2
|
|
4
|
+
* invariants from issue #2 "trust model" hold.
|
|
5
5
|
*
|
|
6
6
|
* Canonical shape:
|
|
7
7
|
* {
|
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
* 3. hardcoded fallbacks (`'never'`, `'workspace-write'`, `[]`)
|
|
23
23
|
*
|
|
24
24
|
* `approvalPolicy` not in the trusted-local allowlist fails-fast at startup
|
|
25
|
-
* (issue #2
|
|
26
|
-
* request approval AND no approval handler is wired.
|
|
25
|
+
* (issue #2 "implementation pitfalls"): dispatcher refuses to come up if the
|
|
26
|
+
* policy may request approval AND no approval handler is wired.
|
|
27
27
|
*
|
|
28
28
|
* `sandboxMode` is similarly validated against the codex 0.134 enum so a
|
|
29
29
|
* typo doesn't reach the daemon (where the only feedback is a fatal early
|
|
@@ -88,7 +88,7 @@ function validateCodexArgs(parsed) {
|
|
|
88
88
|
if (!TRUSTED_LOCAL_APPROVAL_POLICIES.has(parsed.approvalPolicy)) {
|
|
89
89
|
throw new Error(`dispatcher startup refused: approvalPolicy='${parsed.approvalPolicy}' may request approval, ` +
|
|
90
90
|
`but the dreamux MVP only ships with a fail-fast approval handler ` +
|
|
91
|
-
`(issue #2
|
|
91
|
+
`(issue #2 "trust model"). Configure approvalPolicy='never' or extend the trust model first.`);
|
|
92
92
|
}
|
|
93
93
|
if (!ALLOWED_SANDBOX_MODES.has(parsed.sandboxMode)) {
|
|
94
94
|
throw new Error(`dispatcher startup refused: sandboxMode='${parsed.sandboxMode}' is not one of ` +
|
package/dist/args.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args.js","sourceRoot":"","sources":["../src/args.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,MAAM,+BAA+B,GAAG,IAAI,GAAG,CAAC;IAC9C,OAAO;IACP,MAAM;IACN,cAAc;IACd,YAAY;CACb,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC;IACpC,WAAW;IACX,iBAAiB;IACjB,oBAAoB;CACrB,CAAC,CAAC;AAcH,MAAM,UAAU,cAAc,CAC5B,IAAY,EACZ,WAA8B,EAAE;IAEhC,IAAI,GAAY,CAAC;IACjB,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,sCAAuC,CAAW,CAAC,OAAO,EAAE,CAC7D,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,CAAC;IACD,MAAM,GAAG,GAAG,GAA8B,CAAC;IAC3C,MAAM,cAAc,GAClB,OAAO,GAAG,CAAC,gBAAgB,CAAC,KAAK,QAAQ;QACvC,CAAC,CAAE,GAAG,CAAC,gBAAgB,CAAY;QACnC,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,IAAI,OAAO,CAAC,CAAC;IAC3C,MAAM,WAAW,GACf,OAAO,GAAG,CAAC,aAAa,CAAC,KAAK,QAAQ;QACpC,CAAC,CAAE,GAAG,CAAC,aAAa,CAAY;QAChC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,IAAI,iBAAiB,CAAC,CAAC;IAClD,MAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACxD,CAAC,CAAE,GAAG,CAAC,WAAW,CAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACvD,CAAC,CAAC,EAAE,CAAC;IACP,uEAAuE;IACvE,4EAA4E;IAC5E,6EAA6E;IAC7E,WAAW;IACX,MAAM,SAAS,GAAG;QAChB,GAAG,CAAC,QAAQ,CAAC,SAAS,IAAI,EAAE,CAAC;QAC7B,GAAG,kBAAkB;KACtB,CAAC;IAEF,OAAO,iBAAiB,CAAC,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC;AACvE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAInC;IACC,OAAO,iBAAiB,CAAC;QACvB,cAAc,EAAE,MAAM,CAAC,eAAe;QACtC,WAAW,EAAE,MAAM,CAAC,YAAY;QAChC,SAAS,EAAE,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC;KAClC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAuB;IAChD,IAAI,CAAC,+BAA+B,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CACb,+CAA+C,MAAM,CAAC,cAAc,0BAA0B;YAC5F,mEAAmE;YACnE,
|
|
1
|
+
{"version":3,"file":"args.js","sourceRoot":"","sources":["../src/args.ts"],"names":[],"mappings":"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"}
|
package/dist/diagnostic.d.ts
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* representative app-server socket sample is derived from the neutral path
|
|
9
9
|
* context's `runtimeSocketDirs()`, so the package never names `~/.dreamux`.
|
|
10
10
|
*/
|
|
11
|
-
import type {
|
|
11
|
+
import type { AgentRuntimeDiagnosticCapability } from '@excitedjs/dreamux-types';
|
|
12
12
|
import { type DispatcherCodexConfig } from './config.js';
|
|
13
|
-
export declare const codexAgentRuntimeDiagnostic:
|
|
13
|
+
export declare const codexAgentRuntimeDiagnostic: AgentRuntimeDiagnosticCapability<DispatcherCodexConfig>;
|
|
14
14
|
//# sourceMappingURL=diagnostic.d.ts.map
|
package/dist/diagnostic.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostic.d.ts","sourceRoot":"","sources":["../src/diagnostic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAEV,
|
|
1
|
+
{"version":3,"file":"diagnostic.d.ts","sourceRoot":"","sources":["../src/diagnostic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAEV,gCAAgC,EAIjC,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAkCzD,eAAO,MAAM,2BAA2B,EAAE,gCAAgC,CAAC,qBAAqB,CAiC7F,CAAC"}
|
package/dist/events.d.ts
CHANGED
|
@@ -81,7 +81,7 @@ export declare function runTurn(client: CodexWsClient, threadId: string, prompt:
|
|
|
81
81
|
/**
|
|
82
82
|
* Extract the final assistant message text from a collected turn.
|
|
83
83
|
* Returns null if the turn had no assistant message — caller decides
|
|
84
|
-
* what to surface to the user (see issue #2
|
|
84
|
+
* what to surface to the user (see issue #2 "open questions", Q4).
|
|
85
85
|
*/
|
|
86
86
|
export declare function extractAssistantText(turn: CollectedTurn): string | null;
|
|
87
87
|
//# sourceMappingURL=events.d.ts.map
|
package/dist/events.js
CHANGED
|
@@ -294,7 +294,7 @@ export async function runTurn(client, threadId, prompt, cwd) {
|
|
|
294
294
|
/**
|
|
295
295
|
* Extract the final assistant message text from a collected turn.
|
|
296
296
|
* Returns null if the turn had no assistant message — caller decides
|
|
297
|
-
* what to surface to the user (see issue #2
|
|
297
|
+
* what to surface to the user (see issue #2 "open questions", Q4).
|
|
298
298
|
*/
|
|
299
299
|
export function extractAssistantText(turn) {
|
|
300
300
|
const messages = turn.items.filter((it) => it.type === 'agentMessage');
|
package/dist/index.d.ts
CHANGED
|
@@ -4,9 +4,8 @@
|
|
|
4
4
|
* `@excitedjs/dreamux-types` `AgentRuntimeProvider` contract; never imports
|
|
5
5
|
* `@excitedjs/dreamux` core.
|
|
6
6
|
*/
|
|
7
|
-
export { default, createCodexAgentRuntimeProvider, codexSystemPromptReplace, codexRuntimeArgsForMcpServers, dispatcherCodexConfig, CODEX_AGENT_RUNTIME_CAPABILITIES, type CodexAgentRuntimeProviderOptions,
|
|
7
|
+
export { default, createCodexAgentRuntimeProvider, codexSystemPromptReplace, codexRuntimeArgsForMcpServers, dispatcherCodexConfig, CODEX_AGENT_RUNTIME_CAPABILITIES, type CodexAgentRuntimeProviderOptions, } from './provider.js';
|
|
8
8
|
export { resolveCodexBinPath } from './bin.js';
|
|
9
|
-
export { CodexRuntime, type CodexRuntimeDeps, } from './runtime.js';
|
|
10
9
|
export { CodexProcess, type CodexProcessOptions, type CodexProcessExit, type CodexProcessExitHandler, } from './supervisor.js';
|
|
11
10
|
export { CodexWsClient, type CodexWsClientOptions, type NotificationHandler, } from './rpc.js';
|
|
12
11
|
export type { ServerNotification, ServerRequest, ThreadStartResponse, TurnStartResponse, } from './types.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,OAAO,EACP,+BAA+B,EAC/B,wBAAwB,EACxB,6BAA6B,EAC7B,qBAAqB,EACrB,gCAAgC,EAChC,KAAK,gCAAgC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,OAAO,EACP,+BAA+B,EAC/B,wBAAwB,EACxB,6BAA6B,EAC7B,qBAAqB,EACrB,gCAAgC,EAChC,KAAK,gCAAgC,GACtC,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAO/C,OAAO,EACL,YAAY,EACZ,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,GAC7B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,aAAa,EACb,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,GACzB,MAAM,UAAU,CAAC;AAElB,YAAY,EACV,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAE5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,KAAK,eAAe,GACrB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,KAAK,qBAAqB,EAC1B,yBAAyB,EACzB,4BAA4B,EAC5B,iBAAiB,EACjB,6BAA6B,EAC7B,6BAA6B,EAC7B,uBAAuB,EACvB,oBAAoB,EACpB,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAK/D,OAAO,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAE9D,OAAO,EACL,2CAA2C,EAC3C,gCAAgC,EAChC,2BAA2B,EAC3B,8BAA8B,EAC9B,+BAA+B,EAC/B,KAAK,yBAAyB,EAC9B,KAAK,gCAAgC,EACrC,KAAK,+BAA+B,GACrC,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -6,7 +6,10 @@
|
|
|
6
6
|
*/
|
|
7
7
|
export { default, createCodexAgentRuntimeProvider, codexSystemPromptReplace, codexRuntimeArgsForMcpServers, dispatcherCodexConfig, CODEX_AGENT_RUNTIME_CAPABILITIES, } from './provider.js';
|
|
8
8
|
export { resolveCodexBinPath } from './bin.js';
|
|
9
|
-
|
|
9
|
+
// The concrete runtime class and the deps it is constructed from are both
|
|
10
|
+
// implementation details: the package's public surface is the provider factory
|
|
11
|
+
// and its options, and Core only ever holds the neutral `start`/`submit`/`stop`
|
|
12
|
+
// handle `createRuntime` returns.
|
|
10
13
|
export { CodexProcess, } from './supervisor.js';
|
|
11
14
|
export { CodexWsClient, } from './rpc.js';
|
|
12
15
|
export { performInitializeHandshake } from './handshake.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,OAAO,EACP,+BAA+B,EAC/B,wBAAwB,EACxB,6BAA6B,EAC7B,qBAAqB,EACrB,gCAAgC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,OAAO,EACP,+BAA+B,EAC/B,wBAAwB,EACxB,6BAA6B,EAC7B,qBAAqB,EACrB,gCAAgC,GAEjC,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE/C,0EAA0E;AAC1E,+EAA+E;AAC/E,gFAAgF;AAChF,kCAAkC;AAElC,OAAO,EACL,YAAY,GAIb,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,aAAa,GAGd,MAAM,UAAU,CAAC;AASlB,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAE5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,cAAc,GAEf,MAAM,WAAW,CAAC;AAEnB,OAAO,EAEL,yBAAyB,EACzB,4BAA4B,EAC5B,iBAAiB,EACjB,6BAA6B,EAC7B,6BAA6B,EAC7B,uBAAuB,EACvB,oBAAoB,EACpB,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAE/D,+EAA+E;AAC/E,yEAAyE;AACzE,8EAA8E;AAC9E,OAAO,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAE9D,OAAO,EACL,2CAA2C,EAC3C,gCAAgC,EAChC,2BAA2B,EAC3B,8BAA8B,EAC9B,+BAA+B,GAIhC,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,YAAY,CAAC"}
|
package/dist/mcp-config.d.ts
CHANGED
|
@@ -1,9 +1,33 @@
|
|
|
1
1
|
import type { AgentRuntimeMcpServer } from '@excitedjs/dreamux-types';
|
|
2
2
|
/**
|
|
3
|
-
* Render neutral MCP server descriptors into Codex `-c mcp_servers
|
|
4
|
-
* config-override CLI
|
|
3
|
+
* Render neutral MCP server descriptors into a Codex `-c mcp_servers=...`
|
|
4
|
+
* config-override CLI arg.
|
|
5
|
+
*
|
|
6
|
+
* Provider-neutral about *what* it renders: it knows nothing about which
|
|
5
7
|
* channel or shim produced a descriptor — the Dreamux host decides which MCP
|
|
6
|
-
* servers a runtime gets and passes them through the create context.
|
|
8
|
+
* servers a runtime gets and passes them through the create context. What it
|
|
9
|
+
* does own is *how* a descriptor becomes Codex configuration, including the
|
|
10
|
+
* server name. A name is a logical identity chosen by the host; making it
|
|
11
|
+
* expressible in TOML is this adapter's job, not a constraint the host has to
|
|
12
|
+
* honor when it picks one.
|
|
13
|
+
*
|
|
14
|
+
* That is why the whole table is rendered as one override value rather than as
|
|
15
|
+
* one `mcp_servers.<name>.<field>=` override per field. Codex parses the value
|
|
16
|
+
* of `-c key=value` as TOML but not the key: it splits the key on `.` and takes
|
|
17
|
+
* each segment literally, so a quoted segment arrives with its quotes attached
|
|
18
|
+
* and a name containing `.` is silently split across two config levels. Inside
|
|
19
|
+
* the value a real TOML parser is reading, so a quoted key carries any string —
|
|
20
|
+
* dots, spaces, quotes, `=`, `#`, newlines, non-ASCII — back out under exactly
|
|
21
|
+
* the name it went in under.
|
|
22
|
+
*
|
|
23
|
+
* The override still merges into the operator's own `config.toml` rather than
|
|
24
|
+
* replacing it, at every level: servers Dreamux does not name are untouched,
|
|
25
|
+
* and for a name it does, fields it does not set keep their configured values.
|
|
26
|
+
*
|
|
27
|
+
* Values that cannot survive the TOML/argv boundary at all — a lone surrogate,
|
|
28
|
+
* an unescaped control character — fail loud when Codex loads the override.
|
|
29
|
+
* That envelope already applies to `command`, `args`, and `env`; a name is not
|
|
30
|
+
* given a private encoding to escape it.
|
|
7
31
|
*/
|
|
8
32
|
export declare function codexMcpServerArgs(servers: readonly AgentRuntimeMcpServer[]): string[];
|
|
9
33
|
//# sourceMappingURL=mcp-config.d.ts.map
|
package/dist/mcp-config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-config.d.ts","sourceRoot":"","sources":["../src/mcp-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEtE
|
|
1
|
+
{"version":3,"file":"mcp-config.d.ts","sourceRoot":"","sources":["../src/mcp-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,SAAS,qBAAqB,EAAE,GACxC,MAAM,EAAE,CAMV"}
|
package/dist/mcp-config.js
CHANGED
|
@@ -1,20 +1,66 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Render neutral MCP server descriptors into Codex `-c mcp_servers
|
|
3
|
-
* config-override CLI
|
|
2
|
+
* Render neutral MCP server descriptors into a Codex `-c mcp_servers=...`
|
|
3
|
+
* config-override CLI arg.
|
|
4
|
+
*
|
|
5
|
+
* Provider-neutral about *what* it renders: it knows nothing about which
|
|
4
6
|
* channel or shim produced a descriptor — the Dreamux host decides which MCP
|
|
5
|
-
* servers a runtime gets and passes them through the create context.
|
|
7
|
+
* servers a runtime gets and passes them through the create context. What it
|
|
8
|
+
* does own is *how* a descriptor becomes Codex configuration, including the
|
|
9
|
+
* server name. A name is a logical identity chosen by the host; making it
|
|
10
|
+
* expressible in TOML is this adapter's job, not a constraint the host has to
|
|
11
|
+
* honor when it picks one.
|
|
12
|
+
*
|
|
13
|
+
* That is why the whole table is rendered as one override value rather than as
|
|
14
|
+
* one `mcp_servers.<name>.<field>=` override per field. Codex parses the value
|
|
15
|
+
* of `-c key=value` as TOML but not the key: it splits the key on `.` and takes
|
|
16
|
+
* each segment literally, so a quoted segment arrives with its quotes attached
|
|
17
|
+
* and a name containing `.` is silently split across two config levels. Inside
|
|
18
|
+
* the value a real TOML parser is reading, so a quoted key carries any string —
|
|
19
|
+
* dots, spaces, quotes, `=`, `#`, newlines, non-ASCII — back out under exactly
|
|
20
|
+
* the name it went in under.
|
|
21
|
+
*
|
|
22
|
+
* The override still merges into the operator's own `config.toml` rather than
|
|
23
|
+
* replacing it, at every level: servers Dreamux does not name are untouched,
|
|
24
|
+
* and for a name it does, fields it does not set keep their configured values.
|
|
25
|
+
*
|
|
26
|
+
* Values that cannot survive the TOML/argv boundary at all — a lone surrogate,
|
|
27
|
+
* an unescaped control character — fail loud when Codex loads the override.
|
|
28
|
+
* That envelope already applies to `command`, `args`, and `env`; a name is not
|
|
29
|
+
* given a private encoding to escape it.
|
|
6
30
|
*/
|
|
7
31
|
export function codexMcpServerArgs(servers) {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
32
|
+
if (servers.length === 0)
|
|
33
|
+
return [];
|
|
34
|
+
const entries = servers.map((server) => `${tomlString(server.name)} = ${tomlServerTable(server)}`);
|
|
35
|
+
return ['-c', `mcp_servers={${entries.join(', ')}}`];
|
|
36
|
+
}
|
|
37
|
+
function tomlServerTable(server) {
|
|
38
|
+
const fields = [
|
|
39
|
+
`command = ${tomlString(server.command)}`,
|
|
40
|
+
`args = ${tomlStringArray(server.args)}`,
|
|
41
|
+
// Carried, never dropped: a descriptor's `env` holds what its server needs
|
|
42
|
+
// to start, so losing it breaks the server it was minted for. Note that
|
|
43
|
+
// this rendering puts those values into Codex's own command line, so `env`
|
|
44
|
+
// is not a secrecy boundary here — the host is told as much and does not
|
|
45
|
+
// rely on one.
|
|
46
|
+
...(server.env !== undefined ? [`env = ${tomlTable(server.env)}`] : []),
|
|
47
|
+
];
|
|
48
|
+
return `{${fields.join(', ')}}`;
|
|
49
|
+
}
|
|
50
|
+
function tomlTable(entries) {
|
|
51
|
+
const pairs = Object.entries(entries).map(([key, value]) => `${tomlString(key)} = ${tomlString(value)}`);
|
|
52
|
+
return `{${pairs.join(', ')}}`;
|
|
14
53
|
}
|
|
15
54
|
function tomlStringArray(values) {
|
|
16
55
|
return `[${values.map(tomlString).join(', ')}]`;
|
|
17
56
|
}
|
|
57
|
+
/**
|
|
58
|
+
* One TOML basic string, used for both keys and values.
|
|
59
|
+
*
|
|
60
|
+
* `JSON.stringify` is the whole implementation because TOML's basic-string
|
|
61
|
+
* escapes are a superset of JSON's: the same double quotes, the same `\"`,
|
|
62
|
+
* `\\`, `\b`, `\f`, `\n`, `\r`, `\t`, and the same `\uXXXX`.
|
|
63
|
+
*/
|
|
18
64
|
function tomlString(value) {
|
|
19
65
|
return JSON.stringify(value);
|
|
20
66
|
}
|
package/dist/mcp-config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-config.js","sourceRoot":"","sources":["../src/mcp-config.ts"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"mcp-config.js","sourceRoot":"","sources":["../src/mcp-config.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAAyC;IAEzC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CACzB,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,eAAe,CAAC,MAAM,CAAC,EAAE,CACtE,CAAC;IACF,OAAO,CAAC,IAAI,EAAE,gBAAgB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,eAAe,CAAC,MAA6B;IACpD,MAAM,MAAM,GAAG;QACb,aAAa,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;QACzC,UAAU,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;QACxC,2EAA2E;QAC3E,wEAAwE;QACxE,2EAA2E;QAC3E,yEAAyE;QACzE,eAAe;QACf,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KACxE,CAAC;IACF,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AAClC,CAAC;AAED,SAAS,SAAS,CAAC,OAAyC;IAC1D,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CACvC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,UAAU,CAAC,KAAK,CAAC,EAAE,CAC9D,CAAC;IACF,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACjC,CAAC;AAED,SAAS,eAAe,CAAC,MAAyB;IAChD,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AAClD,CAAC;AAED;;;;;;GAMG;AACH,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC"}
|
package/dist/provider.d.ts
CHANGED
|
@@ -1,26 +1,19 @@
|
|
|
1
1
|
import { CodexWsClient } from './rpc.js';
|
|
2
2
|
import { CodexProcess, type CodexProcessOptions } from './supervisor.js';
|
|
3
|
-
import { type CodexRuntimeDeps } from './runtime.js';
|
|
4
3
|
import { dispatcherCodexConfig, type DispatcherCodexConfig } from './config.js';
|
|
5
|
-
import type {
|
|
4
|
+
import type { AgentRuntimeMcpServer, AgentRuntimeProvider, AgentRuntimeProviderCapabilities, AgentRuntimeProviderFactory, AgentRuntimeSessionRef, AgentRuntimeSystemPrompt } from '@excitedjs/dreamux-types';
|
|
6
5
|
/**
|
|
7
6
|
* Construction options for the built-in Codex provider. The runtime's host
|
|
8
|
-
* contracts
|
|
7
|
+
* contracts arrive on the NEUTRAL create context, not as factory hooks:
|
|
9
8
|
* volatile socket placement comes from `context.paths.runtimeSocketDirs()` (this
|
|
10
9
|
* package owns the allocation policy), and env injection comes from
|
|
11
10
|
* `context.injectEnv`. Role-gated bundled skills arrive as neutral
|
|
12
|
-
* `skillSources`.
|
|
13
|
-
*
|
|
14
|
-
*
|
|
11
|
+
* `skillSources`. Registration identity is Core's: the provider carries no
|
|
12
|
+
* descriptor. What remains here are the test/host seams (process/WS factories,
|
|
13
|
+
* the optional Codex home pre-start check, restart backoff) that let core and
|
|
14
|
+
* tests wire behavior without changing the provider.
|
|
15
15
|
*/
|
|
16
16
|
export interface CodexAgentRuntimeProviderOptions {
|
|
17
|
-
/**
|
|
18
|
-
* The registry descriptor for `builtin:codex`. Defaults to a minimal one.
|
|
19
|
-
* Accepted wide (`ProviderDescriptor`) so a host that resolved it from its
|
|
20
|
-
* registry need not pre-narrow the kind; the factory validates it is an
|
|
21
|
-
* `agentRuntime` descriptor.
|
|
22
|
-
*/
|
|
23
|
-
descriptor?: ProviderDescriptor;
|
|
24
17
|
/** Optional Codex home/auth pre-start check, invoked with the runtime id and cwd. */
|
|
25
18
|
codexHomeDoctor?: (info: {
|
|
26
19
|
runtimeId: string;
|
|
@@ -30,48 +23,41 @@ export interface CodexAgentRuntimeProviderOptions {
|
|
|
30
23
|
codexClientFactory?: (socketPath: string) => CodexWsClient;
|
|
31
24
|
restartBackoffBaseMs?: number;
|
|
32
25
|
restartBackoffMaxMs?: number;
|
|
33
|
-
/** Override native transcript path validation for deterministic tests. */
|
|
34
|
-
validateTranscriptPath?: CodexRuntimeDeps['validateTranscriptPath'];
|
|
35
26
|
}
|
|
36
|
-
|
|
27
|
+
/**
|
|
28
|
+
* Provider-static selection metadata. Recovery, session-bound structured
|
|
29
|
+
* output, and recent Activity reads are mandatory provider behavior, so none of
|
|
30
|
+
* them is advertised here.
|
|
31
|
+
*/
|
|
32
|
+
export declare const CODEX_AGENT_RUNTIME_CAPABILITIES: AgentRuntimeProviderCapabilities;
|
|
37
33
|
export declare function codexSystemPromptReplace(systemPrompt: AgentRuntimeSystemPrompt | undefined): string | undefined;
|
|
38
34
|
export declare function codexSystemPromptAppend(systemPrompt: AgentRuntimeSystemPrompt | undefined): readonly string[] | undefined;
|
|
39
35
|
/**
|
|
40
36
|
* Create the built-in Codex `AgentRuntimeProvider`. It implements the neutral
|
|
41
|
-
* `@excitedjs/dreamux-types` contract: `
|
|
42
|
-
* `
|
|
43
|
-
* `createRuntime` builds a {@link CodexRuntime} from the neutral create
|
|
44
|
-
* plus the host-supplied hooks.
|
|
37
|
+
* `@excitedjs/dreamux-types` contract: `config.read` parses Codex runtime
|
|
38
|
+
* config, `readRecentActivity` serves neutral Activity Records for any session,
|
|
39
|
+
* and `createRuntime` builds a {@link CodexRuntime} from the neutral create
|
|
40
|
+
* context plus the host-supplied hooks.
|
|
41
|
+
*
|
|
42
|
+
* Codex resumes from its thread id alone, so its session identity is the base
|
|
43
|
+
* {@link AgentRuntimeSessionRef}.
|
|
45
44
|
*/
|
|
46
|
-
export declare function createCodexAgentRuntimeProvider(options?: CodexAgentRuntimeProviderOptions): AgentRuntimeProvider<DispatcherCodexConfig>;
|
|
45
|
+
export declare function createCodexAgentRuntimeProvider(options?: CodexAgentRuntimeProviderOptions): AgentRuntimeProvider<DispatcherCodexConfig, AgentRuntimeSessionRef>;
|
|
47
46
|
/** Re-export the typed accessor for a runtime's resolved codex config. */
|
|
48
47
|
export { dispatcherCodexConfig };
|
|
49
48
|
export declare function codexRuntimeArgsForMcpServers(servers: readonly AgentRuntimeMcpServer[]): string[];
|
|
50
|
-
/**
|
|
51
|
-
* The context Dreamux core's generic provider package-loader passes to this
|
|
52
|
-
* package's factory export. A back-compat alias of the public
|
|
53
|
-
* {@link ProviderFactoryContext}, narrowed to the Agent Runtime descriptor kind
|
|
54
|
-
* so the factory assigns `descriptor` without a cast.
|
|
55
|
-
*/
|
|
56
|
-
export type CodexProviderFactoryContext = ProviderFactoryContext<AgentRuntimeProviderDescriptor>;
|
|
57
49
|
/**
|
|
58
50
|
* Default export — the factory Dreamux core's generic provider-loader selects
|
|
59
51
|
* for the `builtin:codex` ref (it imports this package and calls the default
|
|
60
|
-
* export with `{ ref
|
|
61
|
-
*
|
|
62
|
-
* skills.
|
|
52
|
+
* export with `{ ref }`). It returns a provider on package defaults: a
|
|
53
|
+
* standalone volatile-socket allocator and no host-injected bundled skills.
|
|
63
54
|
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
* explicit dreamux bin path). This default export keeps the package a
|
|
70
|
-
* first-class, loadable `AgentRuntimeProvider` for the generic loader and for
|
|
71
|
-
* external embedders;
|
|
72
|
-
* converging core's launcher onto the neutral context so it can drive the loaded
|
|
73
|
-
* provider directly is later-slice work.
|
|
55
|
+
* This is the production path. Core drives the loaded provider through the
|
|
56
|
+
* neutral facade alone — it holds no adapter for this package — and supplies
|
|
57
|
+
* every host contract (socket root, skill sources, MCP servers, state lease)
|
|
58
|
+
* through the neutral create context. The options argument of
|
|
59
|
+
* {@link createCodexAgentRuntimeProvider} exists for embedders and tests.
|
|
74
60
|
*/
|
|
75
|
-
declare const codexAgentRuntimeProviderFactory: AgentRuntimeProviderFactory<DispatcherCodexConfig>;
|
|
61
|
+
declare const codexAgentRuntimeProviderFactory: AgentRuntimeProviderFactory<DispatcherCodexConfig, AgentRuntimeSessionRef>;
|
|
76
62
|
export default codexAgentRuntimeProviderFactory;
|
|
77
63
|
//# sourceMappingURL=provider.d.ts.map
|
package/dist/provider.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EACL,YAAY,EACZ,KAAK,mBAAmB,EACzB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EACL,YAAY,EACZ,KAAK,mBAAmB,EACzB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAEL,qBAAqB,EAErB,KAAK,qBAAqB,EAC3B,MAAM,aAAa,CAAC;AAUrB,OAAO,KAAK,EAGV,qBAAqB,EACrB,oBAAoB,EACpB,gCAAgC,EAChC,2BAA2B,EAC3B,sBAAsB,EACtB,wBAAwB,EACzB,MAAM,0BAA0B,CAAC;AAElC;;;;;;;;;;GAUG;AACH,MAAM,WAAW,gCAAgC;IAC/C,qFAAqF;IACrF,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE;QACvB,SAAS,EAAE,MAAM,CAAC;QAClB,GAAG,EAAE,MAAM,CAAC;KACb,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,mBAAmB,KAAK,YAAY,CAAC;IAClE,kBAAkB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,aAAa,CAAC;IAC3D,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;GAIG;AACH,eAAO,MAAM,gCAAgC,EAAE,gCACjC,CAAC;AAEf,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,wBAAwB,GAAG,SAAS,GACjD,MAAM,GAAG,SAAS,CAIpB;AAED,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,wBAAwB,GAAG,SAAS,GACjD,SAAS,MAAM,EAAE,GAAG,SAAS,CAO/B;AAED;;;;;;;;;GASG;AACH,wBAAgB,+BAA+B,CAC7C,OAAO,GAAE,gCAAqC,GAC7C,oBAAoB,CAAC,qBAAqB,EAAE,sBAAsB,CAAC,CAwFrE;AAED,0EAA0E;AAC1E,OAAO,EAAE,qBAAqB,EAAE,CAAC;AAEjC,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,SAAS,qBAAqB,EAAE,GACxC,MAAM,EAAE,CAEV;AAED;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,gCAAgC,EAAE,2BAA2B,CACjE,qBAAqB,EACrB,sBAAsB,CACmB,CAAC;AAE5C,eAAe,gCAAgC,CAAC"}
|
package/dist/provider.js
CHANGED
|
@@ -1,21 +1,18 @@
|
|
|
1
1
|
import { codexMcpServerArgs } from './mcp-config.js';
|
|
2
|
-
import { CodexRuntime
|
|
2
|
+
import { CodexRuntime } from './runtime.js';
|
|
3
3
|
import { DEFAULT_CODEX_BIN, dispatcherCodexConfig, readDispatcherCodexConfig, } from './config.js';
|
|
4
4
|
import { codexArgsFromConfig, codexArgsToCli } from './args.js';
|
|
5
|
-
import { BUILTIN_CODEX_PROVIDER_REF } from './provider-ref.js';
|
|
6
5
|
import { resolveCodexBinPath } from './bin.js';
|
|
7
6
|
import { codexAgentRuntimeDiagnostic } from './diagnostic.js';
|
|
8
7
|
import { allocateCodexSocketPath } from './internal/socket.js';
|
|
9
|
-
import {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
ref: { source: 'builtin', id: 'codex', raw: BUILTIN_CODEX_PROVIDER_REF },
|
|
18
|
-
};
|
|
8
|
+
import { readCodexRecentActivity } from './activity/reader.js';
|
|
9
|
+
import { compileCodexOutputSchema, } from './output-schema-codec.js';
|
|
10
|
+
/**
|
|
11
|
+
* Provider-static selection metadata. Recovery, session-bound structured
|
|
12
|
+
* output, and recent Activity reads are mandatory provider behavior, so none of
|
|
13
|
+
* them is advertised here.
|
|
14
|
+
*/
|
|
15
|
+
export const CODEX_AGENT_RUNTIME_CAPABILITIES = { tags: [] };
|
|
19
16
|
export function codexSystemPromptReplace(systemPrompt) {
|
|
20
17
|
if (systemPrompt === undefined)
|
|
21
18
|
return undefined;
|
|
@@ -33,27 +30,18 @@ export function codexSystemPromptAppend(systemPrompt) {
|
|
|
33
30
|
const append = systemPrompt.append.filter((prompt) => prompt !== '');
|
|
34
31
|
return append.length > 0 ? append : undefined;
|
|
35
32
|
}
|
|
36
|
-
/** Validate + narrow a seed descriptor to the Agent Runtime kind. */
|
|
37
|
-
function asAgentRuntimeDescriptor(descriptor) {
|
|
38
|
-
if (descriptor.kind !== 'agentRuntime') {
|
|
39
|
-
throw new Error(`@excitedjs/agent-runtime-codex: descriptor.kind must be 'agentRuntime' ` +
|
|
40
|
-
`(got ${JSON.stringify(descriptor.kind)})`);
|
|
41
|
-
}
|
|
42
|
-
return { ...descriptor, kind: descriptor.kind };
|
|
43
|
-
}
|
|
44
33
|
/**
|
|
45
34
|
* Create the built-in Codex `AgentRuntimeProvider`. It implements the neutral
|
|
46
|
-
* `@excitedjs/dreamux-types` contract: `
|
|
47
|
-
* `
|
|
48
|
-
* `createRuntime` builds a {@link CodexRuntime} from the neutral create
|
|
49
|
-
* plus the host-supplied hooks.
|
|
35
|
+
* `@excitedjs/dreamux-types` contract: `config.read` parses Codex runtime
|
|
36
|
+
* config, `readRecentActivity` serves neutral Activity Records for any session,
|
|
37
|
+
* and `createRuntime` builds a {@link CodexRuntime} from the neutral create
|
|
38
|
+
* context plus the host-supplied hooks.
|
|
39
|
+
*
|
|
40
|
+
* Codex resumes from its thread id alone, so its session identity is the base
|
|
41
|
+
* {@link AgentRuntimeSessionRef}.
|
|
50
42
|
*/
|
|
51
43
|
export function createCodexAgentRuntimeProvider(options = {}) {
|
|
52
44
|
return {
|
|
53
|
-
ref: BUILTIN_CODEX_PROVIDER_REF,
|
|
54
|
-
descriptor: options.descriptor === undefined
|
|
55
|
-
? DEFAULT_CODEX_DESCRIPTOR
|
|
56
|
-
: asAgentRuntimeDescriptor(options.descriptor),
|
|
57
45
|
getCapabilities: () => CODEX_AGENT_RUNTIME_CAPABILITIES,
|
|
58
46
|
diagnostic: codexAgentRuntimeDiagnostic,
|
|
59
47
|
onboard: {
|
|
@@ -66,17 +54,13 @@ export function createCodexAgentRuntimeProvider(options = {}) {
|
|
|
66
54
|
return { bin };
|
|
67
55
|
},
|
|
68
56
|
},
|
|
69
|
-
|
|
70
|
-
|
|
57
|
+
config: {
|
|
58
|
+
read(rawConfig, context) {
|
|
59
|
+
return readDispatcherCodexConfig(rawConfig, context.file, context.prefix);
|
|
60
|
+
},
|
|
71
61
|
},
|
|
72
|
-
|
|
73
|
-
createRuntime(context) {
|
|
74
|
-
if (context.state === undefined) {
|
|
75
|
-
throw new Error('codex runtime requires a state sink in the create context');
|
|
76
|
-
}
|
|
77
|
-
if (context.paths === undefined) {
|
|
78
|
-
throw new Error('codex runtime requires a path context in the create context');
|
|
79
|
-
}
|
|
62
|
+
readRecentActivity: (query, context) => readCodexRecentActivity(query, context),
|
|
63
|
+
async createRuntime(context) {
|
|
80
64
|
const codexConfig = context.config;
|
|
81
65
|
const codexArgs = codexArgsFromConfig(codexConfig);
|
|
82
66
|
const runtimeArgs = [
|
|
@@ -86,10 +70,16 @@ export function createCodexAgentRuntimeProvider(options = {}) {
|
|
|
86
70
|
const paths = context.paths;
|
|
87
71
|
const systemPromptReplace = codexSystemPromptReplace(context.systemPrompt);
|
|
88
72
|
const systemPromptAppend = codexSystemPromptAppend(context.systemPrompt);
|
|
73
|
+
// Bind the output schema once, here. A compile failure is a create-time
|
|
74
|
+
// error; no later submission can change or renegotiate the schema.
|
|
75
|
+
const codec = context.outputSchema === undefined
|
|
76
|
+
? null
|
|
77
|
+
: compileCodexOutputSchema(context.outputSchema);
|
|
89
78
|
const deps = {
|
|
90
79
|
cwd: context.cwd,
|
|
91
80
|
state: context.state,
|
|
92
|
-
activitySink: context.
|
|
81
|
+
activitySink: context.activity ?? (() => undefined),
|
|
82
|
+
codec,
|
|
93
83
|
paths,
|
|
94
84
|
// The package owns socket allocation: pick a fresh name in the first of
|
|
95
85
|
// the host's preference-ordered candidate dirs that fits the budget.
|
|
@@ -126,9 +116,6 @@ export function createCodexAgentRuntimeProvider(options = {}) {
|
|
|
126
116
|
...(options.restartBackoffMaxMs !== undefined
|
|
127
117
|
? { restartBackoffMaxMs: options.restartBackoffMaxMs }
|
|
128
118
|
: {}),
|
|
129
|
-
...(options.validateTranscriptPath !== undefined
|
|
130
|
-
? { validateTranscriptPath: options.validateTranscriptPath }
|
|
131
|
-
: {}),
|
|
132
119
|
};
|
|
133
120
|
return new CodexRuntime(context.identity, deps);
|
|
134
121
|
},
|
|
@@ -142,21 +129,15 @@ export function codexRuntimeArgsForMcpServers(servers) {
|
|
|
142
129
|
/**
|
|
143
130
|
* Default export — the factory Dreamux core's generic provider-loader selects
|
|
144
131
|
* for the `builtin:codex` ref (it imports this package and calls the default
|
|
145
|
-
* export with `{ ref
|
|
146
|
-
*
|
|
147
|
-
* skills.
|
|
132
|
+
* export with `{ ref }`). It returns a provider on package defaults: a
|
|
133
|
+
* standalone volatile-socket allocator and no host-injected bundled skills.
|
|
148
134
|
*
|
|
149
|
-
*
|
|
150
|
-
*
|
|
151
|
-
*
|
|
152
|
-
*
|
|
153
|
-
*
|
|
154
|
-
* explicit dreamux bin path). This default export keeps the package a
|
|
155
|
-
* first-class, loadable `AgentRuntimeProvider` for the generic loader and for
|
|
156
|
-
* external embedders;
|
|
157
|
-
* converging core's launcher onto the neutral context so it can drive the loaded
|
|
158
|
-
* provider directly is later-slice work.
|
|
135
|
+
* This is the production path. Core drives the loaded provider through the
|
|
136
|
+
* neutral facade alone — it holds no adapter for this package — and supplies
|
|
137
|
+
* every host contract (socket root, skill sources, MCP servers, state lease)
|
|
138
|
+
* through the neutral create context. The options argument of
|
|
139
|
+
* {@link createCodexAgentRuntimeProvider} exists for embedders and tests.
|
|
159
140
|
*/
|
|
160
|
-
const codexAgentRuntimeProviderFactory = (
|
|
141
|
+
const codexAgentRuntimeProviderFactory = () => createCodexAgentRuntimeProvider();
|
|
161
142
|
export default codexAgentRuntimeProviderFactory;
|
|
162
143
|
//# sourceMappingURL=provider.js.map
|
package/dist/provider.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAMrD,OAAO,
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAMrD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,yBAAyB,GAE1B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EACL,wBAAwB,GAEzB,MAAM,0BAA0B,CAAC;AAmClC;;;;GAIG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAC3C,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AAEf,MAAM,UAAU,wBAAwB,CACtC,YAAkD;IAElD,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACjD,IAAI,YAAY,CAAC,OAAO,KAAK,SAAS;QAAE,OAAO,YAAY,CAAC,OAAO,CAAC;IACpE,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,YAAkD;IAElD,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACjD,IAAI,YAAY,CAAC,OAAO,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACzD,IAAI,YAAY,CAAC,MAAM,KAAK,SAAS,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;QACvE,OAAO,SAAS,CAAC;IACnB,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC;IACrE,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AAChD,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,+BAA+B,CAC7C,UAA4C,EAAE;IAE9C,OAAO;QACL,eAAe,EAAE,GAAG,EAAE,CAAC,gCAAgC;QACvD,UAAU,EAAE,2BAA2B;QACvC,OAAO,EAAE;YACP,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO;gBAC7B,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;oBAC7B,OAAO,EAAE,kBAAkB;oBAC3B,YAAY,EAAE,iBAAiB;oBAC/B,QAAQ,EAAE,IAAI;iBACf,CAAC,CAAC;gBACH,OAAO,EAAE,GAAG,EAAE,CAAC;YACjB,CAAC;SACF;QACD,MAAM,EAAE;YACN,IAAI,CAAC,SAAS,EAAE,OAAO;gBACrB,OAAO,yBAAyB,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YAC5E,CAAC;SACF;QACD,kBAAkB,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CACrC,uBAAuB,CAAC,KAAK,EAAE,OAAO,CAAC;QACzC,KAAK,CAAC,aAAa,CACjB,OAGC;YAED,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;YACnC,MAAM,SAAS,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,WAAW,GAAG;gBAClB,GAAG,cAAc,CAAC,SAAS,CAAC;gBAC5B,GAAG,kBAAkB,CAAC,OAAO,CAAC,UAAU,CAAC;aAC1C,CAAC;YACF,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;YAC5B,MAAM,mBAAmB,GAAG,wBAAwB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAC3E,MAAM,kBAAkB,GAAG,uBAAuB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YACzE,wEAAwE;YACxE,mEAAmE;YACnE,MAAM,KAAK,GACT,OAAO,CAAC,YAAY,KAAK,SAAS;gBAChC,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,wBAAwB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YACrD,MAAM,IAAI,GAAqB;gBAC7B,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,YAAY,EAAE,OAAO,CAAC,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;gBACnD,KAAK;gBACL,KAAK;gBACL,wEAAwE;gBACxE,qEAAqE;gBACrE,kBAAkB,EAAE,CAAC,EAAE,EAAE,EAAE,CACzB,uBAAuB,CAAC,KAAK,CAAC,iBAAiB,EAAE,EAAE,EAAE,CAAC;gBACxD,YAAY,EAAE,mBAAmB,CAAC,WAAW,CAAC,GAAG,CAAC;gBAClD,gBAAgB,EAAE,GAAG,EAAE,CAAC,WAAW;gBACnC,kBAAkB,EAAE,WAAW,CAAC,qBAAqB;gBACrD,QAAQ,EAAE,WAAW,CAAC,SAAS;gBAC/B,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS;oBACjC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE;oBAClC,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS;oBACpC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE;oBACxC,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,mBAAmB,KAAK,SAAS;oBACnC,CAAC,CAAC,EAAE,mBAAmB,EAAE;oBACzB,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,kBAAkB,KAAK,SAAS;oBAClC,CAAC,CAAC,EAAE,kBAAkB,EAAE;oBACxB,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnE,GAAG,CAAC,OAAO,CAAC,eAAe,KAAK,SAAS;oBACvC,CAAC,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE;oBAC9C,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,OAAO,CAAC,mBAAmB,KAAK,SAAS;oBAC3C,CAAC,CAAC,EAAE,mBAAmB,EAAE,OAAO,CAAC,mBAAmB,EAAE;oBACtD,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,OAAO,CAAC,kBAAkB,KAAK,SAAS;oBAC1C,CAAC,CAAC,EAAE,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,EAAE;oBACpD,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,OAAO,CAAC,oBAAoB,KAAK,SAAS;oBAC5C,CAAC,CAAC,EAAE,oBAAoB,EAAE,OAAO,CAAC,oBAAoB,EAAE;oBACxD,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,OAAO,CAAC,mBAAmB,KAAK,SAAS;oBAC3C,CAAC,CAAC,EAAE,mBAAmB,EAAE,OAAO,CAAC,mBAAmB,EAAE;oBACtD,CAAC,CAAC,EAAE,CAAC;aACR,CAAC;YACF,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAClD,CAAC;KACF,CAAC;AACJ,CAAC;AAED,0EAA0E;AAC1E,OAAO,EAAE,qBAAqB,EAAE,CAAC;AAEjC,MAAM,UAAU,6BAA6B,CAC3C,OAAyC;IAEzC,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,gCAAgC,GAGlC,GAAG,EAAE,CAAC,+BAA+B,EAAE,CAAC;AAE5C,eAAe,gCAAgC,CAAC"}
|