@excitedjs/agent-runtime-codex 0.2.0-alpha.g2b7e2d09fbdc → 0.2.0-alpha.gc17e7fda283d

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/dist/bin.d.ts +14 -0
  2. package/dist/bin.d.ts.map +1 -0
  3. package/dist/bin.js +18 -0
  4. package/dist/bin.js.map +1 -0
  5. package/dist/codex-home.d.ts +42 -0
  6. package/dist/codex-home.d.ts.map +1 -0
  7. package/dist/codex-home.js +112 -0
  8. package/dist/codex-home.js.map +1 -0
  9. package/dist/config.d.ts +4 -3
  10. package/dist/config.d.ts.map +1 -1
  11. package/dist/config.js +5 -4
  12. package/dist/config.js.map +1 -1
  13. package/dist/diagnostic.d.ts +14 -0
  14. package/dist/diagnostic.d.ts.map +1 -0
  15. package/dist/diagnostic.js +58 -0
  16. package/dist/diagnostic.js.map +1 -0
  17. package/dist/index.d.ts +6 -2
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +8 -1
  20. package/dist/index.js.map +1 -1
  21. package/dist/internal/socket.d.ts +18 -9
  22. package/dist/internal/socket.d.ts.map +1 -1
  23. package/dist/internal/socket.js +60 -9
  24. package/dist/internal/socket.js.map +1 -1
  25. package/dist/paths.d.ts +7 -0
  26. package/dist/paths.d.ts.map +1 -0
  27. package/dist/paths.js +26 -0
  28. package/dist/paths.js.map +1 -0
  29. package/dist/provider.d.ts +9 -26
  30. package/dist/provider.d.ts.map +1 -1
  31. package/dist/provider.js +23 -21
  32. package/dist/provider.js.map +1 -1
  33. package/dist/runtime-support.d.ts +10 -9
  34. package/dist/runtime-support.d.ts.map +1 -1
  35. package/dist/runtime-support.js +12 -15
  36. package/dist/runtime-support.js.map +1 -1
  37. package/dist/runtime.d.ts +1 -132
  38. package/dist/runtime.d.ts.map +1 -1
  39. package/dist/runtime.js +13 -147
  40. package/dist/runtime.js.map +1 -1
  41. package/dist/skill-roots.d.ts +14 -0
  42. package/dist/skill-roots.d.ts.map +1 -0
  43. package/dist/skill-roots.js +38 -0
  44. package/dist/skill-roots.js.map +1 -0
  45. package/dist/supervisor.js +1 -1
  46. package/dist/supervisor.js.map +1 -1
  47. package/dist/turn-manager.js +1 -1
  48. package/dist/turn-manager.js.map +1 -1
  49. package/dist/version.d.ts +1 -1
  50. package/dist/version.js +1 -1
  51. package/package.json +3 -2
  52. package/dist/internal/completion-body.d.ts +0 -38
  53. package/dist/internal/completion-body.d.ts.map +0 -1
  54. package/dist/internal/completion-body.js +0 -62
  55. package/dist/internal/completion-body.js.map +0 -1
  56. package/dist/internal/config-validate.d.ts +0 -23
  57. package/dist/internal/config-validate.d.ts.map +0 -1
  58. package/dist/internal/config-validate.js +0 -122
  59. package/dist/internal/config-validate.js.map +0 -1
  60. package/dist/internal/os.d.ts +0 -30
  61. package/dist/internal/os.d.ts.map +0 -1
  62. package/dist/internal/os.js +0 -81
  63. package/dist/internal/os.js.map +0 -1
  64. package/dist/internal/turn-render.d.ts +0 -22
  65. package/dist/internal/turn-render.d.ts.map +0 -1
  66. package/dist/internal/turn-render.js +0 -40
  67. package/dist/internal/turn-render.js.map +0 -1
@@ -3,13 +3,14 @@ import { CodexProcess, type CodexProcessOptions } from './supervisor.js';
3
3
  import { dispatcherCodexConfig, type DispatcherCodexConfig } from './config.js';
4
4
  import type { AgentRuntimeCapabilities, AgentRuntimeMcpServer, AgentRuntimeProvider, AgentRuntimeProviderDescriptor, AgentRuntimeProviderFactory, ProviderDescriptor, ProviderFactoryContext } from '@excitedjs/dreamux-types';
5
5
  /**
6
- * Host-supplied hooks for the built-in Codex provider. Everything that is a
7
- * Dreamux host contract the volatile socket root, the package-bin `PATH`, the
8
- * Codex home/auth pre-start check is injected here by Dreamux core (or by an
9
- * external embedder), so this package reconstructs none of it. Role-gated
10
- * bundled skills arrive on the create context as neutral `skillSources` (not a
11
- * host hook). The `descriptor` and the test factories let core and tests wire
12
- * process/WS/home seams without changing the provider.
6
+ * Construction options for the built-in Codex provider. The runtime's host
7
+ * contracts now arrive on the NEUTRAL create context, not as factory hooks:
8
+ * volatile socket placement comes from `context.paths.runtimeSocketDirs()` (this
9
+ * package owns the allocation policy), and env injection comes from
10
+ * `context.injectEnv`. Role-gated bundled skills arrive as neutral
11
+ * `skillSources`. What remains here is the `descriptor` and the test/host seams
12
+ * (process/WS factories, the optional Codex home pre-start check, restart
13
+ * backoff) that let core and tests wire behavior without changing the provider.
13
14
  */
14
15
  export interface CodexAgentRuntimeProviderOptions {
15
16
  /**
@@ -19,16 +20,7 @@ export interface CodexAgentRuntimeProviderOptions {
19
20
  * `agentRuntime` descriptor.
20
21
  */
21
22
  descriptor?: ProviderDescriptor;
22
- /**
23
- * Allocate a fresh volatile rendezvous socket path per app-server start. The
24
- * Dreamux host injects its own shared runtime-socket root here; when omitted
25
- * the package falls back to {@link defaultVolatileSocketPath} so a
26
- * loader-constructed / standalone runtime is still runnable.
27
- */
28
- allocateSocketPath?: (id: string) => string;
29
- /** Build the base process env (host seeds `PATH` with the Dreamux package bins). */
30
- baseProcessEnv?: (extraEnv: Record<string, string>) => NodeJS.ProcessEnv;
31
- /** Host-owned Codex home/auth pre-start check, invoked with the runtime id and cwd. */
23
+ /** Optional Codex home/auth pre-start check, invoked with the runtime id and cwd. */
32
24
  codexHomeDoctor?: (info: {
33
25
  runtimeId: string;
34
26
  cwd: string;
@@ -38,15 +30,6 @@ export interface CodexAgentRuntimeProviderOptions {
38
30
  restartBackoffBaseMs?: number;
39
31
  restartBackoffMaxMs?: number;
40
32
  }
41
- /**
42
- * Final codex binary path for one runtime. The `CODEX_HOST_CODEX_BIN`
43
- * environment variable is a deliberate host-level override that takes precedence
44
- * over the configured `runtime.config.bin`; otherwise the configured bin
45
- * (default `"codex"`) is used. `env` defaults to the live process environment
46
- * for the runtime spawn path; doctor passes the installed service unit's
47
- * environment so it checks what the service will run.
48
- */
49
- export declare function resolveCodexBinPath(configBin: string, env?: NodeJS.ProcessEnv): string;
50
33
  export declare const CODEX_AGENT_RUNTIME_CAPABILITIES: AgentRuntimeCapabilities;
51
34
  /**
52
35
  * Create the built-in Codex `AgentRuntimeProvider`. It implements the neutral
@@ -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;AAKzB,OAAO,EACL,qBAAqB,EAErB,KAAK,qBAAqB,EAC3B,MAAM,aAAa,CAAC;AAIrB,OAAO,KAAK,EACV,wBAAwB,EAGxB,qBAAqB,EACrB,oBAAoB,EACpB,8BAA8B,EAC9B,2BAA2B,EAC3B,kBAAkB,EAClB,sBAAsB,EACvB,MAAM,0BAA0B,CAAC;AAElC;;;;;;;;GAQG;AACH,MAAM,WAAW,gCAAgC;IAC/C;;;;;OAKG;IACH,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5C,oFAAoF;IACpF,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC,UAAU,CAAC;IACzE,uFAAuF;IACvF,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;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,CAIR;AAED,eAAO,MAAM,gCAAgC,EAAE,wBAe9C,CAAC;AAqBF;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAC7C,OAAO,GAAE,gCAAqC,GAC7C,oBAAoB,CAAC,qBAAqB,CAAC,CAiE7C;AAED,0EAA0E;AAC1E,OAAO,EAAE,qBAAqB,EAAE,CAAC;AAEjC,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,SAAS,qBAAqB,EAAE,GACxC,MAAM,EAAE,CAEV;AAED;;;;;GAKG;AACH,MAAM,MAAM,2BAA2B,GACrC,sBAAsB,CAAC,8BAA8B,CAAC,CAAC;AAEzD;;;;;;;;;;;;;;;;GAgBG;AACH,QAAA,MAAM,gCAAgC,EAAE,2BAA2B,CAAC,qBAAqB,CACP,CAAC;AAEnF,eAAe,gCAAgC,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;AAKzB,OAAO,EAEL,qBAAqB,EAErB,KAAK,qBAAqB,EAC3B,MAAM,aAAa,CAAC;AAMrB,OAAO,KAAK,EACV,wBAAwB,EAGxB,qBAAqB,EACrB,oBAAoB,EACpB,8BAA8B,EAC9B,2BAA2B,EAC3B,kBAAkB,EAClB,sBAAsB,EACvB,MAAM,0BAA0B,CAAC;AAElC;;;;;;;;;GASG;AACH,MAAM,WAAW,gCAAgC;IAC/C;;;;;OAKG;IACH,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,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,eAAO,MAAM,gCAAgC,EAAE,wBAe9C,CAAC;AAqBF;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAC7C,OAAO,GAAE,gCAAqC,GAC7C,oBAAoB,CAAC,qBAAqB,CAAC,CAgF7C;AAED,0EAA0E;AAC1E,OAAO,EAAE,qBAAqB,EAAE,CAAC;AAEjC,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,SAAS,qBAAqB,EAAE,GACxC,MAAM,EAAE,CAEV;AAED;;;;;GAKG;AACH,MAAM,MAAM,2BAA2B,GACrC,sBAAsB,CAAC,8BAA8B,CAAC,CAAC;AAEzD;;;;;;;;;;;;;;;;GAgBG;AACH,QAAA,MAAM,gCAAgC,EAAE,2BAA2B,CAAC,qBAAqB,CACP,CAAC;AAEnF,eAAe,gCAAgC,CAAC"}
package/dist/provider.js CHANGED
@@ -1,23 +1,11 @@
1
1
  import { codexMcpServerArgs } from './mcp-config.js';
2
2
  import { CodexRuntime, } from './runtime.js';
3
- import { dispatcherCodexConfig, readDispatcherCodexConfig, } from './config.js';
3
+ import { DEFAULT_CODEX_BIN, dispatcherCodexConfig, readDispatcherCodexConfig, } from './config.js';
4
4
  import { codexArgsFromConfig, codexArgsToCli } from './args.js';
5
5
  import { BUILTIN_CODEX_PROVIDER_REF } from './provider-ref.js';
6
- import { defaultVolatileSocketPath } from './internal/socket.js';
7
- /**
8
- * Final codex binary path for one runtime. The `CODEX_HOST_CODEX_BIN`
9
- * environment variable is a deliberate host-level override that takes precedence
10
- * over the configured `runtime.config.bin`; otherwise the configured bin
11
- * (default `"codex"`) is used. `env` defaults to the live process environment
12
- * for the runtime spawn path; doctor passes the installed service unit's
13
- * environment so it checks what the service will run.
14
- */
15
- export function resolveCodexBinPath(configBin, env = process.env) {
16
- const fromEnv = env['CODEX_HOST_CODEX_BIN'];
17
- if (fromEnv !== undefined && fromEnv.trim() !== '')
18
- return fromEnv;
19
- return configBin;
20
- }
6
+ import { resolveCodexBinPath } from './bin.js';
7
+ import { codexAgentRuntimeDiagnostic } from './diagnostic.js';
8
+ import { allocateCodexSocketPath } from './internal/socket.js';
21
9
  export const CODEX_AGENT_RUNTIME_CAPABILITIES = {
22
10
  resume: { supported: true, checkpoint: 'codexThread' },
23
11
  steer: { supported: true },
@@ -60,6 +48,17 @@ export function createCodexAgentRuntimeProvider(options = {}) {
60
48
  ? DEFAULT_CODEX_DESCRIPTOR
61
49
  : asAgentRuntimeDescriptor(options.descriptor),
62
50
  getCapabilities: () => CODEX_AGENT_RUNTIME_CAPABILITIES,
51
+ diagnostic: codexAgentRuntimeDiagnostic,
52
+ onboard: {
53
+ async collect(_context, prompts) {
54
+ const bin = await prompts.text({
55
+ message: 'Codex CLI binary',
56
+ initialValue: DEFAULT_CODEX_BIN,
57
+ required: true,
58
+ });
59
+ return { bin };
60
+ },
61
+ },
63
62
  readConfig(rawConfig, context) {
64
63
  return readDispatcherCodexConfig(rawConfig, context.file, context.prefix);
65
64
  },
@@ -76,15 +75,21 @@ export function createCodexAgentRuntimeProvider(options = {}) {
76
75
  ...codexArgsToCli(codexArgs),
77
76
  ...codexMcpServerArgs(context.mcpServers),
78
77
  ];
78
+ const paths = context.paths;
79
79
  const deps = {
80
80
  cwd: context.cwd,
81
81
  state: context.state,
82
- paths: context.paths,
83
- allocateSocketPath: options.allocateSocketPath ?? defaultVolatileSocketPath,
82
+ paths,
83
+ // The package owns socket allocation: pick a fresh name in the first of
84
+ // the host's preference-ordered candidate dirs that fits the budget.
85
+ allocateSocketPath: (id) => allocateCodexSocketPath(paths.runtimeSocketDirs(), id),
84
86
  codexBinPath: resolveCodexBinPath(codexConfig.bin),
85
87
  resolveExtraArgs: () => runtimeArgs,
86
88
  handshakeTimeoutMs: codexConfig.initialize_timeout_ms,
87
89
  extraEnv: codexConfig.extra_env,
90
+ ...(context.injectEnv !== undefined
91
+ ? { injectEnv: context.injectEnv }
92
+ : {}),
88
93
  ...(context.skillSources !== undefined
89
94
  ? { skillSources: context.skillSources }
90
95
  : {}),
@@ -95,9 +100,6 @@ export function createCodexAgentRuntimeProvider(options = {}) {
95
100
  ? { onTurnSettled: context.onTurnSettled }
96
101
  : {}),
97
102
  ...(context.logger !== undefined ? { logger: context.logger } : {}),
98
- ...(options.baseProcessEnv !== undefined
99
- ? { baseProcessEnv: options.baseProcessEnv }
100
- : {}),
101
103
  ...(options.codexHomeDoctor !== undefined
102
104
  ? { codexHomeDoctor: options.codexHomeDoctor }
103
105
  : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,16 @@
1
1
  import type { CompletionEnvelope } from '@excitedjs/dreamux-types';
2
2
  /**
3
- * Build the process env for a Codex app-server child. `buildBaseEnv` is supplied
4
- * by the host (it seeds `PATH` with the Dreamux package bins so the child can
5
- * reach the bundled MCP shims — a host packaging contract this package must not
6
- * reconstruct). This wrapper then strips `CODEX_HOME` so the child follows the
7
- * operator's global `~/.codex` instead of any inherited override — a
8
- * Codex-specific concern that must not live in the host's runtime-neutral env
9
- * builder (issue #143 de-leak). When no host builder is supplied (standalone /
10
- * tests) it falls back to the live process env.
3
+ * Build the process env for a Codex app-server child. The neutral env boundary
4
+ * (issue #209 cleanup) is `{ ...process.env, ...injectEnv, ...extraEnv }`:
5
+ * - `injectEnv` is the host's optional neutral env-injection seam from the
6
+ * create context (empty today); core owns what it injects.
7
+ * - `extraEnv` is THIS provider's own `config.extra_env`, merged last so a
8
+ * dispatcher can override an injected value.
9
+ * The child inherits the operator's ambient `CODEX_HOME` like a vanilla
10
+ * `codex` invocation Dreamux creates no dispatcher-private Codex home (MVP),
11
+ * so there is nothing to strip.
11
12
  */
12
- export declare function codexProcessEnv(buildBaseEnv: ((extraEnv: Record<string, string>) => NodeJS.ProcessEnv) | undefined, extraEnv?: Record<string, string>): NodeJS.ProcessEnv;
13
+ export declare function codexProcessEnv(injectEnv?: Record<string, string>, extraEnv?: Record<string, string>): NodeJS.ProcessEnv;
13
14
  /**
14
15
  * Build the raw Responses API item injected into the dispatcher thread's
15
16
  * model-visible history via `thread/inject_items`. A `message` item with role
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-support.d.ts","sourceRoot":"","sources":["../src/runtime-support.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAOnE;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,YAAY,EACR,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC,UAAU,CAAC,GACzD,SAAS,EACb,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GACpC,MAAM,CAAC,UAAU,CAOnB;AA0BD;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAC5C,UAAU,EAAE,kBAAkB,EAC9B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAOlC;AAED;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,QAG4B,CAAC"}
1
+ {"version":3,"file":"runtime-support.d.ts","sourceRoot":"","sources":["../src/runtime-support.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAOnE;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAC7B,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EACtC,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GACpC,MAAM,CAAC,UAAU,CAEnB;AA0BD;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAC5C,UAAU,EAAE,kBAAkB,EAC9B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAOlC;AAED;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,QAG4B,CAAC"}
@@ -1,20 +1,17 @@
1
- import { resolveCompletionBody, } from './internal/completion-body.js';
1
+ import { resolveCompletionBody, } from '@excitedjs/dreamux-utils';
2
2
  /**
3
- * Build the process env for a Codex app-server child. `buildBaseEnv` is supplied
4
- * by the host (it seeds `PATH` with the Dreamux package bins so the child can
5
- * reach the bundled MCP shims — a host packaging contract this package must not
6
- * reconstruct). This wrapper then strips `CODEX_HOME` so the child follows the
7
- * operator's global `~/.codex` instead of any inherited override — a
8
- * Codex-specific concern that must not live in the host's runtime-neutral env
9
- * builder (issue #143 de-leak). When no host builder is supplied (standalone /
10
- * tests) it falls back to the live process env.
3
+ * Build the process env for a Codex app-server child. The neutral env boundary
4
+ * (issue #209 cleanup) is `{ ...process.env, ...injectEnv, ...extraEnv }`:
5
+ * - `injectEnv` is the host's optional neutral env-injection seam from the
6
+ * create context (empty today); core owns what it injects.
7
+ * - `extraEnv` is THIS provider's own `config.extra_env`, merged last so a
8
+ * dispatcher can override an injected value.
9
+ * The child inherits the operator's ambient `CODEX_HOME` like a vanilla
10
+ * `codex` invocation Dreamux creates no dispatcher-private Codex home (MVP),
11
+ * so there is nothing to strip.
11
12
  */
12
- export function codexProcessEnv(buildBaseEnv, extraEnv = {}) {
13
- const env = buildBaseEnv !== undefined
14
- ? buildBaseEnv(extraEnv)
15
- : { ...globalThis.process.env, ...extraEnv };
16
- delete env['CODEX_HOME'];
17
- return env;
13
+ export function codexProcessEnv(injectEnv = {}, extraEnv = {}) {
14
+ return { ...globalThis.process.env, ...injectEnv, ...extraEnv };
18
15
  }
19
16
  /**
20
17
  * Frame a TeamMate completion as recognizable notification text. Delivered as
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-support.js","sourceRoot":"","sources":["../src/runtime-support.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,qBAAqB,GAEtB,MAAM,+BAA+B,CAAC;AAEvC;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAC7B,YAEa,EACb,WAAmC,EAAE;IAErC,MAAM,GAAG,GACP,YAAY,KAAK,SAAS;QACxB,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC;QACxB,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;IACjD,OAAO,GAAG,CAAC,YAAY,CAAC,CAAC;IACzB,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,oBAAoB,CAC3B,UAA8B,EAC9B,IAA4B;IAE5B,MAAM,KAAK,GACT,IAAI,CAAC,IAAI,KAAK,QAAQ;QACpB,CAAC,CAAC,IAAI,CAAC,IAAI;QACX,CAAC,CAAC,mEAAmE,IAAI,CAAC,IAAI,EAAE,CAAC;IACrF,OAAO;QACL,wCAAwC,UAAU,CAAC,MAAM,IAAI;YAC3D,OAAO,UAAU,CAAC,EAAE,aAAa,UAAU,CAAC,MAAM,IAAI;QACxD,KAAK;QACL,gCAAgC;KACjC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,UAA8B,EAC9B,QAAgB;IAEhB,MAAM,IAAI,GAAG,MAAM,qBAAqB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC/D,OAAO;QACL,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,oBAAoB,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC;KAChF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,6BAA6B,GACxC,gFAAgF;IAChF,gFAAgF;IAChF,oEAAoE,CAAC"}
1
+ {"version":3,"file":"runtime-support.js","sourceRoot":"","sources":["../src/runtime-support.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,qBAAqB,GAEtB,MAAM,0BAA0B,CAAC;AAElC;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAC7B,YAAoC,EAAE,EACtC,WAAmC,EAAE;IAErC,OAAO,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,GAAG,QAAQ,EAAE,CAAC;AAClE,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,oBAAoB,CAC3B,UAA8B,EAC9B,IAA4B;IAE5B,MAAM,KAAK,GACT,IAAI,CAAC,IAAI,KAAK,QAAQ;QACpB,CAAC,CAAC,IAAI,CAAC,IAAI;QACX,CAAC,CAAC,mEAAmE,IAAI,CAAC,IAAI,EAAE,CAAC;IACrF,OAAO;QACL,wCAAwC,UAAU,CAAC,MAAM,IAAI;YAC3D,OAAO,UAAU,CAAC,EAAE,aAAa,UAAU,CAAC,MAAM,IAAI;QACxD,KAAK;QACL,gCAAgC;KACjC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,UAA8B,EAC9B,QAAgB;IAEhB,MAAM,IAAI,GAAG,MAAM,qBAAqB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC/D,OAAO;QACL,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,oBAAoB,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC;KAChF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,6BAA6B,GACxC,gFAAgF;IAChF,gFAAgF;IAChF,oEAAoE,CAAC"}
package/dist/runtime.d.ts CHANGED
@@ -1,89 +1,27 @@
1
- /**
2
- * CodexRuntime — one running Codex-backed AgentRuntime instance.
3
- *
4
- * Owns:
5
- * - CodexProcess (child app-server)
6
- * - CodexWsClient (WS connection)
7
- * - thread_id (lazily created via thread/start or resumed)
8
- * - TurnManager (FIFO worker for this dispatcher)
9
- *
10
- * Lifecycle: declared → starting → ready → (degraded) → stopping → stopped.
11
- *
12
- * Current MVP:
13
- * - accepted inbound work is process-local and is dropped on restart;
14
- * - thread/resume failure does not degrade the whole dispatcher; we
15
- * start a fresh thread, record the lost one in last_lost_thread_id,
16
- * and post a visible warning to the next source chat.
17
- */
18
1
  import { CodexProcess, type CodexProcessOptions } from './supervisor.js';
19
2
  import { CodexWsClient } from './rpc.js';
20
3
  import type { AgentRuntime, AgentRuntimeCapabilities, AgentRuntimeIdentity, AgentRuntimeLastResult, AgentRuntimePathContext, AgentRuntimeResumeInput, AgentRuntimeSkillSource, AgentRuntimeStateCallbacks, AgentRuntimeStatus, AgentRuntimeSystemInput, AgentRuntimeTurnResult, CompletionEnvelope, DreamuxLogger, InboundDeliveryHooks, InboundTurnInput, TeamMateCompletionDeliveryResult, TurnSettledSignal } from '@excitedjs/dreamux-types';
21
4
  export interface CodexRuntimeDeps {
22
- /** Working directory the codex app-server runs in (required launch param). */
23
5
  cwd: string;
24
- /**
25
- * Launcher-supplied system-prompt content used as codex `baseInstructions`
26
- * (codex applies it as a REPLACE per its `systemPrompt` capability). Omitted
27
- * for launches that supply none (e.g. teammates).
28
- */
29
6
  systemPromptContent?: string;
30
- /** Neutral state sink the host adapts from its dispatcher store. */
31
7
  state: AgentRuntimeStateCallbacks;
32
- /** Host-supplied per-dispatcher path context (logs/spill live in the host tree). */
33
8
  paths: AgentRuntimePathContext;
34
- /**
35
- * Allocate a fresh volatile rendezvous socket path for one app-server start.
36
- * Host-supplied: the socket root is a Dreamux runtime contract this package
37
- * must not reconstruct.
38
- */
39
9
  allocateSocketPath: (id: string) => string;
40
- /**
41
- * Role-gated bundled skill sources core selected for this runtime (issue #209
42
- * slice 6). Applied via the app-server `skills/extraRoots/set` RPC after
43
- * initialize and before thread start/resume, and reapplied after every
44
- * app-server restart. Empty/omitted means no roots are set (the default for
45
- * teammates and any role core does not gate skills for).
46
- */
47
10
  skillSources?: readonly AgentRuntimeSkillSource[];
48
- /**
49
- * Build the base process env for the codex child (host seeds `PATH` with the
50
- * Dreamux package bins). Optional: standalone use falls back to the live env.
51
- */
52
- baseProcessEnv?: (extraEnv: Record<string, string>) => NodeJS.ProcessEnv;
53
- /** Optional bin path override for tests. */
11
+ injectEnv?: Record<string, string>;
54
12
  codexBinPath?: string;
55
- /** Override process construction for tests. */
56
13
  codexProcessFactory?: (opts: CodexProcessOptions) => CodexProcess;
57
- /** Override WS client factory for tests. */
58
14
  codexClientFactory?: (socketPath: string) => CodexWsClient;
59
- /**
60
- * Optional host-owned Codex home/auth pre-start check, invoked before the
61
- * child spawns with the runtime id and cwd. The host owns its path/socket
62
- * inputs and builds its own validation context from these.
63
- */
64
15
  codexHomeDoctor?: (info: {
65
16
  runtimeId: string;
66
17
  cwd: string;
67
18
  }) => void | Promise<void>;
68
- /** Codex extraArgs (parsed from dispatcher.codex_args_json). */
69
19
  resolveExtraArgs?: () => string[];
70
- /**
71
- * Codex initialize handshake timeout (ms). From this dispatcher's
72
- * `dispatchers[].runtime.config.initialize_timeout_ms` (default 10000).
73
- */
74
20
  handshakeTimeoutMs?: number;
75
- /** Per-dispatcher environment overrides from config. */
76
21
  extraEnv?: Record<string, string>;
77
- /** Codex child/WS restart backoff base (tests may override). */
78
22
  restartBackoffBaseMs?: number;
79
- /** Codex child/WS restart backoff cap (tests may override). */
80
23
  restartBackoffMaxMs?: number;
81
- /**
82
- * Fired each time a delivered turn reaches a terminal state. Supplied by the
83
- * launcher (teammate service) and omitted for dispatcher launches.
84
- */
85
24
  onTurnSettled?: (settled: TurnSettledSignal) => void;
86
- /** Neutral logger the host passes in; a console fallback is used when absent. */
87
25
  logger?: DreamuxLogger;
88
26
  }
89
27
  export declare class CodexRuntime implements AgentRuntime {
@@ -94,35 +32,12 @@ export declare class CodexRuntime implements AgentRuntime {
94
32
  private client;
95
33
  private turnManager;
96
34
  private threadId;
97
- /**
98
- * Whether the most recent thread resolution resumed an existing Codex thread
99
- * (true) rather than starting a fresh one or recovering from a failed resume.
100
- * Consulted by the server right after the slot is ready to decide whether a
101
- * `daemon restart` notice should be injected (issue #78).
102
- */
103
35
  private threadResumed;
104
36
  private status;
105
- /** Monotonic per-attempt suffix for TeamMate delivery turn dedup ids (#110 PR8). */
106
37
  private teammateDeliverySeq;
107
- /**
108
- * Completion deliveries currently being processed. Duplicate settled events can
109
- * race into `completionInput`; coalescing by completion id keeps one logical
110
- * completion from injecting or triggering more than once concurrently.
111
- */
112
38
  private readonly inFlightCompletionDeliveries;
113
- /**
114
- * Completion ids whose trigger turn has already been accepted. A later replay
115
- * of the same settled teammate turn is an idempotent success, not a new wake-up.
116
- */
117
39
  private readonly acceptedCompletionIds;
118
40
  private readonly acceptedCompletionOrder;
119
- /**
120
- * Completion ids whose item has already been injected into the thread. The
121
- * Dispatcher Service retries `completionInput` on `failed`; if the inject
122
- * succeeded but the trigger turn failed, the retry must NOT re-inject the same
123
- * item (that would persist a duplicate completion to the rollout). Bounded so
124
- * a long-lived dispatcher does not grow this set without limit.
125
- */
126
41
  private readonly injectedCompletionIds;
127
42
  private readonly injectedCompletionOrder;
128
43
  private readonly log;
@@ -138,63 +53,19 @@ export declare class CodexRuntime implements AgentRuntime {
138
53
  getStatus(): AgentRuntimeStatus;
139
54
  getCapabilities(): AgentRuntimeCapabilities;
140
55
  getThreadId(): string | null;
141
- /** True when the live thread was resumed (not freshly started/recovered). */
142
56
  wasThreadResumed(): boolean;
143
57
  getLast(): Promise<AgentRuntimeLastResult | null>;
144
58
  getContext(): Promise<null>;
145
59
  resume(input?: AgentRuntimeResumeInput): Promise<void>;
146
60
  private submitRestartNotice;
147
- /**
148
- * Bring the dispatcher up. Order:
149
- * 1. spawn codex app-server child
150
- * 2. open WS client
151
- * 3. install fail-fast approval handler
152
- * 4. thread/start (new) or thread/resume (existing)
153
- * 5. install turn manager
154
- * 6. status = ready
155
- */
156
61
  start(): Promise<void>;
157
62
  private startCodexRuntime;
158
- /**
159
- * Apply the role-gated bundled skill sources to the live app-server via
160
- * `skills/extraRoots/set`. Codex treats each extra root as a directory whose
161
- * immediate children are skill dirs, so a `skill-dir` source maps to the
162
- * *parent* of its own directory; roots are deduped (the bundled Dreamux skills
163
- * share one parent). Empty input skips the RPC entirely (a fresh per-runtime
164
- * app-server starts with no extra roots, so nothing to clear). Errors are
165
- * fatal to the start: a dispatcher/leader that cannot load its operational
166
- * skills must fail loud, not run skill-blind.
167
- */
168
63
  private applySkillExtraRoots;
169
64
  private resolveThread;
170
- /**
171
- * Submit any accepted inbound message arriving for this dispatcher. Called by
172
- * the Feishu inbound layer.
173
- */
174
65
  channelInput(input: InboundTurnInput, hooks?: InboundDeliveryHooks): Promise<AgentRuntimeTurnResult>;
175
- /** Inject a system-originated notice (e.g. a restart notice). */
176
66
  systemInput(notice: AgentRuntimeSystemInput): Promise<AgentRuntimeTurnResult>;
177
- /**
178
- * Codex TeamMate completion delivery — the native inbox-then-trigger idiom.
179
- *
180
- * Two steps, in order:
181
- * 1. `thread/inject_items` appends the completion to the dispatcher thread's
182
- * model-visible history as a developer-role message (no fake user turn).
183
- * codex folds the item onto the active turn when one is running and never
184
- * rejects on a busy thread, so a failure here is a genuine RPC error.
185
- * 2. a minimal trigger turn through the public `channelInput` seam wakes the
186
- * idle dispatcher so it reads the just-injected notification and acts.
187
- *
188
- * The trigger turn uses a fresh, non-routable source id per attempt. The turn
189
- * manager commits its dedup id before `turn/start` and does not roll it back
190
- * on failure, so a retry that reused one id would come back `duplicate` and be
191
- * mis-counted as delivered when nothing was submitted. The Dispatcher Service
192
- * only retries on `failed` (definitely not submitted), so a unique id per
193
- * attempt re-submits the trigger safely.
194
- */
195
67
  completionInput(completion: CompletionEnvelope): Promise<TeamMateCompletionDeliveryResult>;
196
68
  private deliverCompletionInput;
197
- /** Graceful stop: stop accepting work, reap codex child. */
198
69
  stop(): Promise<void>;
199
70
  private cleanupOnFailure;
200
71
  private teardownCodexRuntime;
@@ -206,9 +77,7 @@ export declare class CodexRuntime implements AgentRuntime {
206
77
  private clearRestartTimer;
207
78
  private markReady;
208
79
  private recordCollectedTurn;
209
- /** Record a completion id as injected, evicting the oldest past a small cap. */
210
80
  private rememberInjectedCompletion;
211
- /** Record a completion id as fully accepted, evicting the oldest past a cap. */
212
81
  private rememberAcceptedCompletion;
213
82
  private setStatus;
214
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,EACL,YAAY,EAEZ,KAAK,mBAAmB,EACzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAczC,OAAO,KAAK,EACV,YAAY,EACZ,wBAAwB,EACxB,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,0BAA0B,EAC1B,kBAAkB,EAClB,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAClB,aAAa,EACb,oBAAoB,EACpB,gBAAgB,EAChB,gCAAgC,EAChC,iBAAiB,EAClB,MAAM,0BAA0B,CAAC;AAqBlC,MAAM,WAAW,gBAAgB;IAC/B,8EAA8E;IAC9E,GAAG,EAAE,MAAM,CAAC;IACZ;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,oEAAoE;IACpE,KAAK,EAAE,0BAA0B,CAAC;IAClC,oFAAoF;IACpF,KAAK,EAAE,uBAAuB,CAAC;IAC/B;;;;OAIG;IACH,kBAAkB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,SAAS,uBAAuB,EAAE,CAAC;IAClD;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC,UAAU,CAAC;IACzE,4CAA4C;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+CAA+C;IAC/C,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,mBAAmB,KAAK,YAAY,CAAC;IAClE,4CAA4C;IAC5C,kBAAkB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,aAAa,CAAC;IAC3D;;;;OAIG;IACH,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,gEAAgE;IAChE,gBAAgB,CAAC,EAAE,MAAM,MAAM,EAAE,CAAC;IAClC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,gEAAgE;IAChE,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,+DAA+D;IAC/D,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACrD,iFAAiF;IACjF,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAID,qBAAa,YAAa,YAAW,YAAY;aAuD7B,QAAQ,EAAE,oBAAoB;IAC9C,OAAO,CAAC,QAAQ,CAAC,IAAI;IAvDvB,QAAQ,CAAC,WAAW,mBAA8B;IAElD,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,QAAQ,CAAuB;IACvC;;;;;OAKG;IACH,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,MAAM,CAAkC;IAChD,oFAAoF;IACpF,OAAO,CAAC,mBAAmB,CAAK;IAChC;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAGzC;IACJ;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAqB;IAC3D,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAgB;IACxD;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAqB;IAC3D,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAgB;IACxD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAIV;IACV,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,UAAU,CAAuC;IACzD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA6B;IACnD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0B;gBAG9B,QAAQ,EAAE,oBAAoB,EAC7B,IAAI,EAAE,gBAAgB;IAiBzC,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,SAAS,IAAI,kBAAkB;IAI/B,eAAe,IAAI,wBAAwB;IAI3C,WAAW,IAAI,MAAM,GAAG,IAAI;IAI5B,6EAA6E;IAC7E,gBAAgB,IAAI,OAAO;IAIrB,OAAO,IAAI,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;IAIjD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,MAAM,CAAC,KAAK,GAAE,uBAA4B,GAAG,OAAO,CAAC,IAAI,CAAC;YAYlD,mBAAmB;IAWjC;;;;;;;;OAQG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAyBd,iBAAiB;IA6E/B;;;;;;;;;OASG;YACW,oBAAoB;YAmBpB,aAAa;IA4D3B;;;OAGG;IACG,YAAY,CAChB,KAAK,EAAE,gBAAgB,EACvB,KAAK,GAAE,oBAAyB,GAC/B,OAAO,CAAC,sBAAsB,CAAC;IAclC,iEAAiE;IAC3D,WAAW,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAInF;;;;;;;;;;;;;;;;;OAiBG;IACG,eAAe,CACnB,UAAU,EAAE,kBAAkB,GAC7B,OAAO,CAAC,gCAAgC,CAAC;YAoB9B,sBAAsB;IAiEpC,4DAA4D;IACtD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAUb,gBAAgB;YAWhB,oBAAoB;IAsBlC,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,eAAe;YAuBT,mBAAmB;IAkCjC,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,iBAAiB;YAMX,SAAS;IAQvB,OAAO,CAAC,mBAAmB;IAY3B,gFAAgF;IAChF,OAAO,CAAC,0BAA0B;IAUlC,gFAAgF;IAChF,OAAO,CAAC,0BAA0B;IAUlC,OAAO,CAAC,SAAS;CAGlB"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}