@usine/agents 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/README.md +92 -30
  2. package/dist/child-host/child-host.d.ts +60 -0
  3. package/dist/child-host/child-host.d.ts.map +1 -0
  4. package/dist/child-host/child-host.js +84 -0
  5. package/dist/child-host/child-host.js.map +1 -0
  6. package/dist/child-host/command.d.ts +11 -0
  7. package/dist/child-host/command.d.ts.map +1 -0
  8. package/dist/child-host/command.js +26 -0
  9. package/dist/child-host/command.js.map +1 -0
  10. package/dist/pi/authentication.d.ts +11 -2
  11. package/dist/pi/authentication.d.ts.map +1 -1
  12. package/dist/pi/authentication.js +15 -2
  13. package/dist/pi/authentication.js.map +1 -1
  14. package/dist/pi/children.d.ts +1 -4
  15. package/dist/pi/children.d.ts.map +1 -1
  16. package/dist/pi/children.js +1 -4
  17. package/dist/pi/children.js.map +1 -1
  18. package/dist/pi/claude.d.ts +8 -9
  19. package/dist/pi/claude.d.ts.map +1 -1
  20. package/dist/pi/claude.js +366 -50
  21. package/dist/pi/claude.js.map +1 -1
  22. package/dist/pi/codex/account.d.ts +3 -3
  23. package/dist/pi/codex/account.d.ts.map +1 -1
  24. package/dist/pi/codex/account.js +5 -5
  25. package/dist/pi/codex/account.js.map +1 -1
  26. package/dist/pi/codex/app-server.d.ts +19 -7
  27. package/dist/pi/codex/app-server.d.ts.map +1 -1
  28. package/dist/pi/codex/app-server.js +41 -36
  29. package/dist/pi/codex/app-server.js.map +1 -1
  30. package/dist/pi/codex/codec.d.ts +35 -13
  31. package/dist/pi/codex/codec.d.ts.map +1 -1
  32. package/dist/pi/codex/codec.js +42 -15
  33. package/dist/pi/codex/codec.js.map +1 -1
  34. package/dist/pi/codex/codex.d.ts +0 -1
  35. package/dist/pi/codex/codex.d.ts.map +1 -1
  36. package/dist/pi/codex/codex.js +75 -14
  37. package/dist/pi/codex/codex.js.map +1 -1
  38. package/dist/pi/conversation.d.ts +29 -12
  39. package/dist/pi/conversation.d.ts.map +1 -1
  40. package/dist/pi/conversation.js +54 -18
  41. package/dist/pi/conversation.js.map +1 -1
  42. package/dist/pi/pi.d.ts +1 -4
  43. package/dist/pi/pi.d.ts.map +1 -1
  44. package/dist/pi/pi.js +24 -175
  45. package/dist/pi/pi.js.map +1 -1
  46. package/dist/pi/sdk.d.ts +11 -15
  47. package/dist/pi/sdk.d.ts.map +1 -1
  48. package/dist/pi/sdk.js +35 -53
  49. package/dist/pi/sdk.js.map +1 -1
  50. package/dist/pi/session.d.ts +13 -14
  51. package/dist/pi/session.d.ts.map +1 -1
  52. package/dist/pi/session.js +63 -24
  53. package/dist/pi/session.js.map +1 -1
  54. package/dist/pi/turns.d.ts +7 -7
  55. package/dist/pi/turns.d.ts.map +1 -1
  56. package/dist/pi/turns.js +22 -9
  57. package/dist/pi/turns.js.map +1 -1
  58. package/dist/pi/usage.d.ts +29 -15
  59. package/dist/pi/usage.d.ts.map +1 -1
  60. package/dist/pi/usage.js +48 -24
  61. package/dist/pi/usage.js.map +1 -1
  62. package/dist/preflight/command.d.ts +16 -3
  63. package/dist/preflight/command.d.ts.map +1 -1
  64. package/dist/preflight/command.js +30 -17
  65. package/dist/preflight/command.js.map +1 -1
  66. package/dist/preflight/preflight.d.ts +10 -5
  67. package/dist/preflight/preflight.d.ts.map +1 -1
  68. package/dist/preflight/preflight.js +52 -25
  69. package/dist/preflight/preflight.js.map +1 -1
  70. package/dist/prompt.d.ts +12 -9
  71. package/dist/prompt.d.ts.map +1 -1
  72. package/dist/prompt.js +33 -4
  73. package/dist/prompt.js.map +1 -1
  74. package/dist/protocol/codex.d.ts +4 -7
  75. package/dist/protocol/codex.d.ts.map +1 -1
  76. package/dist/protocol/codex.js +1 -1
  77. package/dist/protocol/codex.js.map +1 -1
  78. package/dist/runtime.d.ts +100 -55
  79. package/dist/runtime.d.ts.map +1 -1
  80. package/dist/runtime.js +108 -27
  81. package/dist/runtime.js.map +1 -1
  82. package/package.json +22 -10
  83. package/dist/pi/live.d.ts +0 -4
  84. package/dist/pi/live.d.ts.map +0 -1
  85. package/dist/pi/live.js +0 -11
  86. package/dist/pi/live.js.map +0 -1
  87. package/dist/pi/subagents.d.ts +0 -29
  88. package/dist/pi/subagents.d.ts.map +0 -1
  89. package/dist/pi/subagents.js +0 -120
  90. package/dist/pi/subagents.js.map +0 -1
  91. package/dist/pi/thinking.d.ts +0 -8
  92. package/dist/pi/thinking.d.ts.map +0 -1
  93. package/dist/pi/thinking.js +0 -15
  94. package/dist/pi/thinking.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../../src/pi/codex/account.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAU,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAMxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,wFAAwF;AACxF,eAAO,MAAM,eAAe,+GAS1B,CAAC;AAEH,gFAAgF;AAChF,eAAO,MAAM,oBAAoB,UAAW,OAAO,yBAM/C,CAAC;AAEL,8FAA8F;AAC9F,eAAO,MAAM,kBAAkB,wMAgC7B,CAAC"}
1
+ {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../../src/pi/codex/account.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAU,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAMxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,kHAAkH;AAClH,eAAO,MAAM,eAAe,+GAS1B,CAAC;AAEH,qFAAqF;AACrF,eAAO,MAAM,oBAAoB,UAAW,OAAO,yBAM/C,CAAC;AAEL,yJAAyJ;AACzJ,eAAO,MAAM,kBAAkB,wMAgC7B,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { Effect, Schema } from "effect";
2
2
  import { PoolUnavailableError } from "../../runtime.js";
3
3
  import { AccountResponse, } from "../../protocol/codex.js";
4
- /** Negotiates the app-server connection before account inspection or child creation. */
4
+ /** Sends `initialize` and `initialized` to the app server; must run before account checks or creating a child. */
5
5
  export const initializeCodex = Effect.fn("Codex.initialize")(function* (connection) {
6
6
  const params = {
7
7
  clientInfo: { name: "usine", title: "usine", version: "0.0.1" },
@@ -10,20 +10,20 @@ export const initializeCodex = Effect.fn("Codex.initialize")(function* (connecti
10
10
  yield* connection.request("launch", "initialize", Schema.decodeUnknownSync(Schema.Json)(params));
11
11
  yield* connection.notify("launch", "initialized", {});
12
12
  });
13
- /** Operator-facing refusal when Codex cannot prove it uses the ChatGPT pool. */
13
+ /** Returns the error for when Codex cannot confirm that it uses the ChatGPT pool. */
14
14
  export const codexPoolUnavailable = (model) => new PoolUnavailableError({
15
15
  harness: "codex",
16
16
  model,
17
17
  pool: "chatgptPlan",
18
- message: "Codex children require a ChatGPT login; run codex login on the Worker",
18
+ message: "Codex children need a ChatGPT login. Run codex login on the worker.",
19
19
  });
20
- /** Refuses unknown, absent, or API-key authentication before any model request (ADR 0013). */
20
+ /** Verifies the Codex account before any model request. Fails with `PoolUnavailableError` for unknown, missing, or API-key authentication (ADR 0013). */
21
21
  export const verifyCodexAccount = Effect.fn("Codex.verifyAccount")(function* (connection, model) {
22
22
  yield* Effect.annotateCurrentSpan({ harness: "codex", model });
23
23
  const params = { refreshToken: false };
24
24
  const response = yield* connection.request("launch", "account/read", Schema.decodeUnknownSync(Schema.Json)(params));
25
25
  const account = yield* Schema.decodeUnknownEffect(AccountResponse)(response).pipe(Effect.tapError(() => Effect.logError("Codex returned an unrecognized account status", { model })),
26
- // An unrecognized auth response is not evidence of a supported billing pool.
26
+ // An auth response that does not decode is treated as an unsupported billing pool.
27
27
  Effect.mapError(() => codexPoolUnavailable(model)));
28
28
  if (account.account?.type !== "chatgpt" || !account.requiresOpenaiAuth) {
29
29
  yield* Effect.logError("Codex rejected an unavailable billing pool", {
@@ -1 +1 @@
1
- {"version":3,"file":"account.js","sourceRoot":"","sources":["../../../src/pi/codex/account.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EACL,eAAe,GAGhB,MAAM,yBAAyB,CAAC;AAGjC,wFAAwF;AACxF,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,EACpE,UAA2B;IAE3B,MAAM,MAAM,GAAqB;QAC/B,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE;QAC/D,YAAY,EAAE,IAAI;KACnB,CAAC;IACF,KAAK,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACjG,KAAK,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;AACxD,CAAC,CAAC,CAAC;AAEH,gFAAgF;AAChF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAc,EAAE,EAAE,CACrD,IAAI,oBAAoB,CAAC;IACvB,OAAO,EAAE,OAAO;IAChB,KAAK;IACL,IAAI,EAAE,aAAa;IACnB,OAAO,EAAE,uEAAuE;CACjF,CAAC,CAAC;AAEL,8FAA8F;AAC9F,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,EAC1E,UAA2B,EAC3B,KAAc;IAEd,KAAK,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAqB,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;IACzD,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,OAAO,CACxC,QAAQ,EACR,cAAc,EACd,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAC9C,CAAC;IACF,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAC/E,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CACnB,MAAM,CAAC,QAAQ,CAAC,+CAA+C,EAAE,EAAE,KAAK,EAAE,CAAC,CAC5E;IACD,6EAA6E;IAC7E,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CACnD,CAAC;IACF,IAAI,OAAO,CAAC,OAAO,EAAE,IAAI,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;QACvE,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,4CAA4C,EAAE;YACnE,KAAK;YACL,YAAY,EAAE,aAAa;YAC3B,cAAc,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,IAAI,YAAY;SACtD,CAAC,CAAC;QACH,OAAO,KAAK,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IACD,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,6BAA6B,EAAE;QACnD,KAAK;QACL,cAAc,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI;QACpC,IAAI,EAAE,aAAa;KACpB,CAAC,CAAC;IACH,OAAO,aAAsB,CAAC;AAChC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"account.js","sourceRoot":"","sources":["../../../src/pi/codex/account.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EACL,eAAe,GAGhB,MAAM,yBAAyB,CAAC;AAGjC,kHAAkH;AAClH,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,EACpE,UAA2B;IAE3B,MAAM,MAAM,GAAqB;QAC/B,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE;QAC/D,YAAY,EAAE,IAAI;KACnB,CAAC;IACF,KAAK,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACjG,KAAK,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;AACxD,CAAC,CAAC,CAAC;AAEH,qFAAqF;AACrF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAc,EAAE,EAAE,CACrD,IAAI,oBAAoB,CAAC;IACvB,OAAO,EAAE,OAAO;IAChB,KAAK;IACL,IAAI,EAAE,aAAa;IACnB,OAAO,EAAE,qEAAqE;CAC/E,CAAC,CAAC;AAEL,yJAAyJ;AACzJ,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,EAC1E,UAA2B,EAC3B,KAAc;IAEd,KAAK,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAqB,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;IACzD,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,OAAO,CACxC,QAAQ,EACR,cAAc,EACd,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAC9C,CAAC;IACF,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAC/E,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CACnB,MAAM,CAAC,QAAQ,CAAC,+CAA+C,EAAE,EAAE,KAAK,EAAE,CAAC,CAC5E;IACD,mFAAmF;IACnF,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CACnD,CAAC;IACF,IAAI,OAAO,CAAC,OAAO,EAAE,IAAI,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;QACvE,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,4CAA4C,EAAE;YACnE,KAAK;YACL,YAAY,EAAE,aAAa;YAC3B,cAAc,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,IAAI,YAAY;SACtD,CAAC,CAAC;QACH,OAAO,KAAK,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IACD,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,6BAA6B,EAAE;QACnD,KAAK;QACL,cAAc,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI;QACpC,IAAI,EAAE,aAAa;KACpB,CAAC,CAAC;IACH,OAAO,aAAsB,CAAC;AAChC,CAAC,CAAC,CAAC"}
@@ -1,20 +1,28 @@
1
1
  import { Context, Effect, Layer, Option, Schema, Scope, Stream } from "effect";
2
- import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
2
+ import { type ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
3
3
  import type { AgentSessionId } from "@usine/core/agent/session";
4
+ import { type ChildHost } from "../../child-host/child-host.ts";
4
5
  import { type WorkingDirectory, SessionOperationError } from "../../runtime.ts";
5
- /** Worker directory and optional session identity for a scoped app-server connection. */
6
+ /** The settings of one app-server connection. */
6
7
  export interface CodexClient {
8
+ /** The checkout directory on `host`. */
7
9
  readonly cwd: WorkingDirectory;
8
- /** None during preflight, before a child Session exists. */
10
+ /** `None` during preflight, before a child session exists. */
9
11
  readonly sessionId: Option.Option<AgentSessionId>;
12
+ /**
13
+ * The complete environment of the app server and its commands on a local host, or the variables
14
+ * exported on top of a remote host's environment.
15
+ */
16
+ readonly environment: Readonly<Record<string, string>>;
17
+ readonly host: ChildHost;
10
18
  }
11
19
  export interface CodexNotification {
12
20
  readonly method: string;
13
21
  readonly params: Schema.Json;
14
22
  }
15
- /** One JSON-RPC connection to the app server, scoped to its process. */
23
+ /** A JSON-RPC connection to the app server, scoped to its process. */
16
24
  export interface CodexConnection {
17
- /** Closes stdin and waits for the app server to release its threads and commands. */
25
+ /** Closes stdin and waits for the app server to shut down its threads and commands. */
18
26
  readonly close: Effect.Effect<void, SessionOperationError>;
19
27
  readonly notifications: Stream.Stream<CodexNotification, SessionOperationError>;
20
28
  readonly request: (operation: SessionOperationError["operation"], method: string, params: Schema.Json) => Effect.Effect<Schema.Json, SessionOperationError>;
@@ -23,11 +31,15 @@ export interface CodexConnection {
23
31
  declare const CodexAppServer_base: Context.ServiceClass<CodexAppServer, "@usine/agents/pi/CodexAppServer", {
24
32
  readonly open: (request: CodexClient) => Effect.Effect<CodexConnection, SessionOperationError, Scope.Scope>;
25
33
  }>;
26
- /** Spawns the Codex app-server process and exposes its JSON-RPC connection. */
34
+ /** The service that spawns the Codex app-server process and provides its JSON-RPC connection. */
27
35
  export declare class CodexAppServer extends CodexAppServer_base {
28
36
  }
29
37
  export declare const operationError: (operation: SessionOperationError["operation"], request: CodexClient, message: string, cause: unknown) => SessionOperationError;
30
- export declare const codexAppServerCommand: (cwd: string, stdin?: ChildProcess.CommandOptions["stdin"]) => ChildProcess.Command;
38
+ /**
39
+ * Returns the app-server command for `client` on its host. The process starts in the home directory,
40
+ * not the worktree, so startup cannot read repository config before thread trust is set.
41
+ */
42
+ export declare const codexAppServerCommand: (client: CodexClient, stdin?: ChildProcess.CommandOptions["stdin"]) => ChildProcess.Command;
31
43
  export declare const codexAppServerLive: Layer.Layer<CodexAppServer, never, ChildProcessSpawner.ChildProcessSpawner>;
32
44
  export {};
33
45
  //# sourceMappingURL=app-server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"app-server.d.ts","sourceRoot":"","sources":["../../../src/pi/codex/app-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,OAAO,EAEP,MAAM,EAEN,KAAK,EACL,MAAM,EAGN,MAAM,EACN,KAAK,EACL,MAAM,EACP,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,KAAK,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEhF,yFAAyF;AACzF,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,GAAG,EAAE,gBAAgB,CAAC;IAC/B,4DAA4D;IAC5D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;CACnD;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC;CAC9B;AAED,wEAAwE;AACxE,MAAM,WAAW,eAAe;IAC9B,qFAAqF;IACrF,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;IAC3D,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,qBAAqB,CAAC,CAAC;IAChF,QAAQ,CAAC,OAAO,EAAE,CAChB,SAAS,EAAE,qBAAqB,CAAC,WAAW,CAAC,EAC7C,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,IAAI,KAChB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;IACvD,QAAQ,CAAC,MAAM,EAAE,CACf,SAAS,EAAE,qBAAqB,CAAC,WAAW,CAAC,EAC7C,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,IAAI,KAChB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;CACjD;;mBAMkB,CACb,OAAO,EAAE,WAAW,KACjB,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,qBAAqB,EAAE,KAAK,CAAC,KAAK,CAAC;;AAN3E,+EAA+E;AAC/E,qBAAa,cAAe,SAAQ,mBAOE;CAAG;AA2BzC,eAAO,MAAM,cAAc,cACd,qBAAqB,CAAC,WAAW,CAAC,WACpC,WAAW,WACX,MAAM,SACR,OAAO,KACb,qBAMC,CAAC;AAWL,eAAO,MAAM,qBAAqB,QAC3B,MAAM,UACH,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,KAC3C,YAAY,CAAC,OAuBf,CAAC;AA0VF,eAAO,MAAM,kBAAkB,6EAAmD,CAAC"}
1
+ {"version":3,"file":"app-server.d.ts","sourceRoot":"","sources":["../../../src/pi/codex/app-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,OAAO,EAEP,MAAM,EAEN,KAAK,EACL,MAAM,EAGN,MAAM,EACN,KAAK,EACL,MAAM,EACP,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,KAAK,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACjF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,KAAK,SAAS,EAAgB,MAAM,gCAAgC,CAAC;AAE9E,OAAO,EAAE,KAAK,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEhF,iDAAiD;AACjD,MAAM,WAAW,WAAW;IAC1B,wCAAwC;IACxC,QAAQ,CAAC,GAAG,EAAE,gBAAgB,CAAC;IAC/B,8DAA8D;IAC9D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAClD;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACvD,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC;CAC9B;AAED,sEAAsE;AACtE,MAAM,WAAW,eAAe;IAC9B,uFAAuF;IACvF,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;IAC3D,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,qBAAqB,CAAC,CAAC;IAChF,QAAQ,CAAC,OAAO,EAAE,CAChB,SAAS,EAAE,qBAAqB,CAAC,WAAW,CAAC,EAC7C,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,IAAI,KAChB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;IACvD,QAAQ,CAAC,MAAM,EAAE,CACf,SAAS,EAAE,qBAAqB,CAAC,WAAW,CAAC,EAC7C,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,IAAI,KAChB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;CACjD;;mBAMkB,CACb,OAAO,EAAE,WAAW,KACjB,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,qBAAqB,EAAE,KAAK,CAAC,KAAK,CAAC;;AAN3E,iGAAiG;AACjG,qBAAa,cAAe,SAAQ,mBAOE;CAAG;AA2BzC,eAAO,MAAM,cAAc,cACd,qBAAqB,CAAC,WAAW,CAAC,WACpC,WAAW,WACX,MAAM,SACR,OAAO,KACb,qBAMC,CAAC;AAWL;;;GAGG;AACH,eAAO,MAAM,qBAAqB,WACxB,WAAW,UACX,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,KAC3C,YAAY,CAAC,OA0Bf,CAAC;AAyVF,eAAO,MAAM,kBAAkB,6EAAmD,CAAC"}
@@ -1,8 +1,9 @@
1
1
  import { Cause, Context, Deferred, Effect, Fiber, Layer, Option, Queue, Ref, Schema, Scope, Stream, } from "effect";
2
- import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
3
- import { homedir } from "node:os";
2
+ import { ChildProcessSpawner } from "effect/unstable/process";
3
+ import { childPidFile } from "../../child-host/child-host.js";
4
+ import { hostCommand } from "../../child-host/command.js";
4
5
  import { SessionOperationError } from "../../runtime.js";
5
- /** Spawns the Codex app-server process and exposes its JSON-RPC connection. */
6
+ /** The service that spawns the Codex app-server process and provides its JSON-RPC connection. */
6
7
  export class CodexAppServer extends Context.Service()("@usine/agents/pi/CodexAppServer") {
7
8
  }
8
9
  const RpcSuccessResponse = Schema.Struct({
@@ -36,25 +37,30 @@ export const operationError = (operation, request, message, cause) => new Sessio
36
37
  });
37
38
  const repositoryTrustOverride = (cwd) => `projects.${JSON.stringify(cwd)}.trust_level="untrusted"`;
38
39
  const disableRecursiveAgentsOverride = "features.multi_agent=false";
39
- export const codexAppServerCommand = (cwd, stdin) => {
40
- const options = {
41
- // Start outside the worktree so process startup cannot read
42
- // repository-owned config before thread trust is set.
43
- cwd: homedir(),
44
- // Stay in the run host's process group so the executor's hard kill reaps
45
- // the app server too; the bounded SIGTERM window is the grace-then-force
46
- // stop (ADR 0006).
40
+ /**
41
+ * Returns the app-server command for `client` on its host. The process starts in the home directory,
42
+ * not the worktree, so startup cannot read repository config before thread trust is set.
43
+ */
44
+ export const codexAppServerCommand = (client, stdin) => {
45
+ const lifetime = {
46
+ // Not detached, so killing the launching process group also kills the app server; SIGTERM is
47
+ // followed by SIGKILL after 5 seconds (ADR 0006).
47
48
  detached: false,
48
49
  forceKillAfter: "5 seconds",
49
50
  };
50
- return ChildProcess.make("codex", [
51
- "app-server",
52
- "--stdio",
53
- "-c",
54
- repositoryTrustOverride(cwd),
55
- "-c",
56
- disableRecursiveAgentsOverride,
57
- ], stdin === undefined ? options : { ...options, stdin });
51
+ return hostCommand(client.host, {
52
+ environment: client.environment,
53
+ pidFile: Option.getOrUndefined(Option.map(client.sessionId, (sessionId) => childPidFile(client.cwd, sessionId))),
54
+ command: "codex",
55
+ args: [
56
+ "app-server",
57
+ "--stdio",
58
+ "-c",
59
+ repositoryTrustOverride(client.cwd),
60
+ "-c",
61
+ disableRecursiveAgentsOverride,
62
+ ],
63
+ }, stdin === undefined ? lifetime : { ...lifetime, stdin });
58
64
  };
59
65
  const makeCodexAppServer = Effect.gen(function* () {
60
66
  const spawner = yield* ChildProcessSpawner.ChildProcessSpawner;
@@ -71,7 +77,7 @@ const makeCodexAppServer = Effect.gen(function* () {
71
77
  const failure = yield* Ref.make(Option.none());
72
78
  const stderrTail = yield* Ref.make([]);
73
79
  const handle = yield* spawner
74
- .spawn(codexAppServerCommand(request.cwd, {
80
+ .spawn(codexAppServerCommand(request, {
75
81
  stream: Stream.fromQueue(input),
76
82
  endOnDone: true,
77
83
  }))
@@ -80,7 +86,7 @@ const makeCodexAppServer = Effect.gen(function* () {
80
86
  ? Effect.void
81
87
  : Effect.fail(operationError(operation, request, "Codex app-server input is closed", new Error("input queue closed")))), Effect.mapError((cause) => cause instanceof SessionOperationError
82
88
  ? cause
83
- : operationError(operation, request, "Could not write to Codex app-server", cause)));
89
+ : operationError(operation, request, "Can't write to Codex app-server", cause)));
84
90
  const failAll = Effect.fn("CodexAppServer.failAll")(function* (error) {
85
91
  yield* Ref.update(failure, Option.orElseSome(() => error));
86
92
  const waiting = yield* Ref.getAndSet(pending, new Map());
@@ -88,9 +94,8 @@ const makeCodexAppServer = Effect.gen(function* () {
88
94
  yield* Deferred.fail(entry.response, error);
89
95
  yield* Queue.fail(notifications, error);
90
96
  });
91
- // One effect per stdout line, without a span: a line is not an
92
- // operation. Unrecognized input is logged and skipped so a stray frame
93
- // cannot fail the session and trigger an infra retry (ADR 0002).
97
+ // Handles one stdout line, without a span. Unrecognized input is logged and skipped, so a
98
+ // stray frame does not fail the session and cause an infra retry (ADR 0002).
94
99
  const routeLine = (line) => Effect.gen(function* () {
95
100
  if (line.trim().length === 0)
96
101
  return;
@@ -117,7 +122,7 @@ const makeCodexAppServer = Effect.gen(function* () {
117
122
  });
118
123
  }
119
124
  if (Schema.is(RpcErrorResponse)(decoded)) {
120
- return yield* Deferred.fail(found.value.response, operationError(found.value.operation, request, `Codex app-server rejected ${decoded.error.message}`, decoded.error));
125
+ return yield* Deferred.fail(found.value.response, operationError(found.value.operation, request, `Codex app-server returned an error: ${decoded.error.message}`, decoded.error));
121
126
  }
122
127
  return yield* Deferred.succeed(found.value.response, decoded.result);
123
128
  }
@@ -145,30 +150,30 @@ const makeCodexAppServer = Effect.gen(function* () {
145
150
  const stdoutReader = yield* handle.stdout.pipe(Stream.decodeText(), Stream.splitLines, Stream.runForEach(routeLine), Effect.flatMap(() => Ref.get(closing).pipe(Effect.flatMap((closed) => closed
146
151
  ? Effect.void
147
152
  : handle.exitCode.pipe(
148
- // On process exit, its monitor owns the richer diagnostic.
149
- // A live process that closes stdout still fails promptly.
153
+ // If the process exits within 5 seconds, its exit monitor reports the error;
154
+ // otherwise a running process that closed stdout fails here.
150
155
  Effect.timeout("5 seconds"), Effect.matchEffect({
151
156
  onSuccess: () => Effect.void,
152
157
  onFailure: (cause) => failAll(operationError("stream", request, "Codex app-server output closed unexpectedly", cause)),
153
158
  }))))), Effect.catch((error) => failAll(error instanceof SessionOperationError
154
159
  ? error
155
- : operationError("stream", request, "Could not read Codex app-server output", error))), Effect.forkScoped);
160
+ : operationError("stream", request, "Can't read Codex app-server output", error))), Effect.forkScoped);
156
161
  const stderrReader = yield* handle.stderr.pipe(Stream.decodeText(), Stream.splitLines, Stream.runForEach((line) => line.trim().length === 0
157
162
  ? Effect.void
158
163
  : Effect.logDebug("Codex app-server stderr", {
159
164
  line: preview(line),
160
165
  sessionId: Option.getOrUndefined(request.sessionId),
161
- }).pipe(Effect.andThen(Ref.update(stderrTail, (tail) => [...tail, line].slice(-STDERR_TAIL_LINES))))), Effect.catch((cause) => failAll(operationError("stream", request, "Could not read Codex app-server diagnostics", cause))), Effect.forkScoped);
166
+ }).pipe(Effect.andThen(Ref.update(stderrTail, (tail) => [...tail, line].slice(-STDERR_TAIL_LINES))))), Effect.catch((cause) => failAll(operationError("stream", request, "Can't read Codex app-server diagnostics", cause))), Effect.forkScoped);
162
167
  yield* handle.exitCode.pipe(Effect.flatMap((exitCode) => Effect.all([Ref.get(closing), Ref.get(stderrTail)]).pipe(Effect.flatMap(([closed, stderr]) => closed
163
168
  ? Effect.void
164
- : failAll(operationError("stream", request, `Codex app-server exited with code ${String(exitCode)}`, { exitCode, stderr }))))), Effect.catch((cause) => failAll(operationError("stream", request, "Could not monitor Codex app-server", cause))), Effect.forkScoped);
165
- // Stdio EOF runs Codex's thread shutdown, including background commands.
166
- // SIGTERM bypasses that cleanup in stdio mode. Share one bounded shutdown
167
- // across terminal delivery and scope release, even if the caller is canceled.
169
+ : failAll(operationError("stream", request, `Codex app-server exited with code ${String(exitCode)}`, { exitCode, stderr }))))), Effect.catch((cause) => failAll(operationError("stream", request, "Can't monitor Codex app-server", cause))), Effect.forkScoped);
170
+ // Closing stdin runs Codex's thread shutdown, including background commands; SIGTERM skips it
171
+ // in stdio mode. One bounded shutdown is shared by terminal delivery and scope release, and
172
+ // it runs even if the caller is interrupted.
168
173
  const rejectPending = (cause) => Effect.gen(function* () {
169
174
  const waiting = yield* Ref.getAndSet(pending, new Map());
170
175
  for (const entry of waiting.values())
171
- yield* Deferred.fail(entry.response, operationError(entry.operation, request, "Codex app-server closed before answering the request", cause));
176
+ yield* Deferred.fail(entry.response, operationError(entry.operation, request, "Codex app-server closed before it responded to the request", cause));
172
177
  });
173
178
  const close = yield* Effect.cached(Effect.fn("CodexAppServer.close")(function* () {
174
179
  yield* Effect.annotateCurrentSpan({
@@ -178,7 +183,7 @@ const makeCodexAppServer = Effect.gen(function* () {
178
183
  yield* Queue.end(input);
179
184
  const [exitCode] = yield* Effect.all([handle.exitCode, Fiber.join(stdoutReader), Fiber.join(stderrReader)], {
180
185
  concurrency: "unbounded",
181
- }).pipe(Effect.timeout("15 seconds"), Effect.mapError((cause) => operationError("interrupt", request, "Codex app-server did not shut down cleanly", cause)), Effect.tapError(rejectPending));
186
+ }).pipe(Effect.timeout("15 seconds"), Effect.mapError((cause) => operationError("interrupt", request, "Codex app-server didn't shut down cleanly", cause)), Effect.tapError(rejectPending));
182
187
  yield* rejectPending({ exitCode });
183
188
  if (exitCode !== 0)
184
189
  return yield* operationError("interrupt", request, `Codex app-server exited with code ${String(exitCode)} during shutdown`, { exitCode, stderr: yield* Ref.get(stderrTail) });
@@ -210,7 +215,7 @@ const makeCodexAppServer = Effect.gen(function* () {
210
215
  yield* write({ id, method, params }, operation).pipe(Effect.tapError(() => forget));
211
216
  return yield* Deferred.await(response).pipe(Effect.timeoutOrElse({
212
217
  duration: RPC_TIMEOUT,
213
- orElse: () => forget.pipe(Effect.andThen(operationError(operation, request, `Codex app-server did not answer ${method} within ${RPC_TIMEOUT}`, new Error("request timed out")))),
218
+ orElse: () => forget.pipe(Effect.andThen(operationError(operation, request, `Codex app-server didn't respond to ${method} within ${RPC_TIMEOUT}`, new Error("request timed out")))),
214
219
  }));
215
220
  });
216
221
  const notify = (operation, method, params) => write({ method, params }, operation);
@@ -1 +1 @@
1
- {"version":3,"file":"app-server.js","sourceRoot":"","sources":["../../../src/pi/codex/app-server.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,OAAO,EACP,QAAQ,EACR,MAAM,EACN,KAAK,EACL,KAAK,EACL,MAAM,EACN,KAAK,EACL,GAAG,EACH,MAAM,EACN,KAAK,EACL,MAAM,GACP,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,OAAO,EAAyB,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AA+BhF,+EAA+E;AAC/E,MAAM,OAAO,cAAe,SAAQ,OAAO,CAAC,OAAO,EAOhD,CAAC,iCAAiC,CAAC;CAAG;AAEzC,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC;IACvC,EAAE,EAAE,MAAM,CAAC,GAAG;IACd,MAAM,EAAE,MAAM,CAAC,IAAI;CACpB,CAAC,CAAC;AACH,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC;IACrC,EAAE,EAAE,MAAM,CAAC,GAAG;IACd,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC,MAAM;QACnB,OAAO,EAAE,MAAM,CAAC,MAAM;QACtB,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;KACtC,CAAC;CACH,CAAC,CAAC;AACH,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC,CAAC;AACzE,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC,MAAM;IACrB,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;IACvC,EAAE,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;CACrE,CAAC,CAAC;AACH,MAAM,UAAU,GAAG,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAClF,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;AAElC,MAAM,WAAW,GAAG,YAAY,CAAC;AACjC,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAC5B,MAAM,OAAO,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAEhG,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,SAA6C,EAC7C,OAAoB,EACpB,OAAe,EACf,KAAc,EACS,EAAE,CACzB,IAAI,qBAAqB,CAAC;IACxB,SAAS;IACT,SAAS,EAAE,OAAO,CAAC,SAAS;IAC5B,OAAO;IACP,KAAK;CACN,CAAC,CAAC;AAOL,MAAM,uBAAuB,GAAG,CAAC,GAAW,EAAU,EAAE,CACtD,YAAY,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,0BAA0B,CAAC;AAC5D,MAAM,8BAA8B,GAAG,4BAA4B,CAAC;AAEpE,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,GAAW,EACX,KAA4C,EACtB,EAAE;IACxB,MAAM,OAAO,GAAgC;QAC3C,4DAA4D;QAC5D,sDAAsD;QACtD,GAAG,EAAE,OAAO,EAAE;QACd,yEAAyE;QACzE,yEAAyE;QACzE,mBAAmB;QACnB,QAAQ,EAAE,KAAK;QACf,cAAc,EAAE,WAAW;KAC5B,CAAC;IACF,OAAO,YAAY,CAAC,IAAI,CACtB,OAAO,EACP;QACE,YAAY;QACZ,SAAS;QACT,IAAI;QACJ,uBAAuB,CAAC,GAAG,CAAC;QAC5B,IAAI;QACJ,8BAA8B;KAC/B,EACD,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,CACtD,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAC7C,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,mBAAmB,CAAC,mBAAmB,CAAC;IAE/D,MAAM,IAAI,GAAsC,MAAM,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAC9E,QAAQ,CAAC,EAAE,OAAO;QAChB,KAAK,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC;YAChC,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC;SACpD,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,EAA0B,CAAC;QAC1D,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,EAGpC,CAAC;QACJ,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,EAA0B,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAyB,CAAC,CAAC;QACtE,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAwB,EAAE,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,OAAO;aAC1B,KAAK,CACJ,qBAAqB,CAAC,OAAO,CAAC,GAAG,EAAE;YACjC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;YAC/B,SAAS,EAAE,IAAI;SAChB,CAAC,CACH;aACA,IAAI,CACH,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,kCAAkC,EAAE,KAAK,CAAC,CAC7E,CACF,CAAC;QAEJ,MAAM,KAAK,GAAG,CAAC,OAAoB,EAAE,SAA6C,EAAE,EAAE,CACpF,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CACrE,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC1B,QAAQ;YACN,CAAC,CAAC,MAAM,CAAC,IAAI;YACb,CAAC,CAAC,MAAM,CAAC,IAAI,CACT,cAAc,CACZ,SAAS,EACT,OAAO,EACP,kCAAkC,EAClC,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAChC,CACF,CACN,EACD,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,KAAK,YAAY,qBAAqB;YACpC,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,EAAE,qCAAqC,EAAE,KAAK,CAAC,CACrF,CACF,CAAC;QAEJ,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,wBAAwB,CAAC,CAAC,QAAQ,CAAC,EAAE,KAA4B;YACzF,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CACf,OAAO,EACP,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAC/B,CAAC;YACF,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;YACzD,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE;gBAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAClF,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,+DAA+D;QAC/D,uEAAuE;QACvE,iEAAiE;QACjE,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,EAAE,CACjC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YACrC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAC1C,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CACrB,MAAM,CAAC,UAAU,CAAC,2CAA2C,EAAE;gBAC7D,KAAK;gBACL,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC;gBACnB,SAAS,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC;aACpD,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAC9B,CACF,CAAC;YACF,IAAI,OAAO,KAAK,SAAS;gBAAE,OAAO;YAClC,IAAI,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;gBACpC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE;oBACnD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBACtC,IAAI,KAAK,KAAK,SAAS;wBAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAkB,EAAE,OAAO,CAAC,CAAC;oBACzE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;oBACjC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBAC3B,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;gBACvC,CAAC,CAAC,CAAC;gBACH,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;oBACzB,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,mDAAmD,EAAE;wBACjF,EAAE,EAAE,OAAO,CAAC,EAAE;wBACd,SAAS,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC;qBACpD,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,MAAM,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;oBACzC,OAAO,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CACzB,KAAK,CAAC,KAAK,CAAC,QAAQ,EACpB,cAAc,CACZ,KAAK,CAAC,KAAK,CAAC,SAAS,EACrB,OAAO,EACP,6BAA6B,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,EACpD,OAAO,CAAC,KAAK,CACd,CACF,CAAC;gBACJ,CAAC;gBACD,OAAO,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YACvE,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;gBACpC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,0CAA0C,EAAE;oBAC1E,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC;oBACnB,SAAS,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC;iBACpD,CAAC,CAAC;YACL,CAAC;YACD,IAAI,OAAO,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;gBAC7B,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,qDAAqD,EAAE;oBAC9E,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,SAAS,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC;iBACpD,CAAC,CAAC;gBACH,OAAO,KAAK,CAAC,CAAC,KAAK,CACjB;oBACE,EAAE,EAAE,OAAO,CAAC,EAAE;oBACd,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,6BAA6B,EAAE;iBAChE,EACD,QAAQ,CACT,CAAC;YACJ,CAAC;YACD,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,EAAE;gBAChC,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,IAAI;aAC/B,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEL,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAC5C,MAAM,CAAC,UAAU,EAAE,EACnB,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,EAC5B,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAClB,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CACnB,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CACxB,MAAM;YACJ,CAAC,CAAC,MAAM,CAAC,IAAI;YACb,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI;YAClB,2DAA2D;YAC3D,0DAA0D;YAC1D,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAC3B,MAAM,CAAC,WAAW,CAAC;gBACjB,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI;gBAC5B,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CACnB,OAAO,CACL,cAAc,CACZ,QAAQ,EACR,OAAO,EACP,6CAA6C,EAC7C,KAAK,CACN,CACF;aACJ,CAAC,CACH,CACN,CACF,CACF,EACD,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CACrB,OAAO,CACL,KAAK,YAAY,qBAAqB;YACpC,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,wCAAwC,EAAE,KAAK,CAAC,CACvF,CACF,EACD,MAAM,CAAC,UAAU,CAClB,CAAC;QACF,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAC5C,MAAM,CAAC,UAAU,EAAE,EACnB,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,EAAE,CACzB,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;YACtB,CAAC,CAAC,MAAM,CAAC,IAAI;YACb,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,EAAE;gBACzC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC;gBACnB,SAAS,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC;aACpD,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,OAAO,CACZ,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAC5E,CACF,CACN,EACD,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CACrB,OAAO,CACL,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,6CAA6C,EAAE,KAAK,CAAC,CACxF,CACF,EACD,MAAM,CAAC,UAAU,CAClB,CAAC;QACF,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CACzB,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC1B,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CACtD,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,CAClC,MAAM;YACJ,CAAC,CAAC,MAAM,CAAC,IAAI;YACb,CAAC,CAAC,OAAO,CACL,cAAc,CACZ,QAAQ,EACR,OAAO,EACP,qCAAqC,MAAM,CAAC,QAAQ,CAAC,EAAE,EACvD,EAAE,QAAQ,EAAE,MAAM,EAAE,CACrB,CACF,CACN,CACF,CACF,EACD,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CACrB,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,oCAAoC,EAAE,KAAK,CAAC,CAAC,CACxF,EACD,MAAM,CAAC,UAAU,CAClB,CAAC;QACF,yEAAyE;QACzE,0EAA0E;QAC1E,8EAA8E;QAC9E,MAAM,aAAa,GAAG,CAAC,KAAc,EAAE,EAAE,CACvC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;YACzD,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE;gBAClC,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAClB,KAAK,CAAC,QAAQ,EACd,cAAc,CACZ,KAAK,CAAC,SAAS,EACf,OAAO,EACP,sDAAsD,EACtD,KAAK,CACN,CACF,CAAC;QACN,CAAC,CAAC,CAAC;QACL,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAChC,MAAM,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC,QAAQ,CAAC;YACzC,KAAK,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC;gBAChC,SAAS,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC;aACpD,CAAC,CAAC;YACH,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC9B,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACxB,MAAM,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAClC,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,EACrE;gBACE,WAAW,EAAE,WAAW;aACzB,CACF,CAAC,IAAI,CACJ,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAC5B,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,cAAc,CACZ,WAAW,EACX,OAAO,EACP,4CAA4C,EAC5C,KAAK,CACN,CACF,EACD,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAC/B,CAAC;YACF,KAAK,CAAC,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;YACnC,IAAI,QAAQ,KAAK,CAAC;gBAChB,OAAO,KAAK,CAAC,CAAC,cAAc,CAC1B,WAAW,EACX,OAAO,EACP,qCAAqC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,EACvE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CACjD,CAAC;YACJ,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAChC,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,qCAAqC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC9E,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,CAC5D,CAAC;QACF,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,CAC9B,KAAK,CAAC,IAAI,CACR,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CACrB,MAAM,CAAC,UAAU,CAAC,iEAAiE,EAAE;YACnF,KAAK;YACL,SAAS,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC;SACpD,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC,EAC5D,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CACrB,MAAM,CAAC,UAAU,CAAC,0CAA0C,EAAE;YAC5D,KAAK;YACL,SAAS,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC;SACpD,CAAC,CACH,CACF,CACF,CACF,CACF,CAAC;QAEF,MAAM,UAAU,GAA+B,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CAC3E,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;gBACzB,OAAO,KAAK,CAAC,CAAC,cAAc,CAC1B,SAAS,EACT,OAAO,EACP,wCAAwC,EACxC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAC/B,CAAC;YACJ,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACvC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,OAAO,KAAK,CAAC,CAAC,cAAc,CAC1B,SAAS,EACT,OAAO,EACP,4CAA4C,EAC5C,MAAM,CAAC,KAAK,CACb,CAAC;YACJ,CAAC;YACD,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;YACrE,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAsC,CAAC;YAC5E,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CACrC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAClD,CAAC;YACF,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE;gBAC7C,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;gBACjC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACnB,OAAO,OAAO,CAAC;YACjB,CAAC,CAAC,CAAC;YACH,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;YACpF,OAAO,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CACzC,MAAM,CAAC,aAAa,CAAC;gBACnB,QAAQ,EAAE,WAAW;gBACrB,MAAM,EAAE,GAAG,EAAE,CACX,MAAM,CAAC,IAAI,CACT,MAAM,CAAC,OAAO,CACZ,cAAc,CACZ,SAAS,EACT,OAAO,EACP,mCAAmC,MAAM,WAAW,WAAW,EAAE,EACjE,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAC/B,CACF,CACF;aACJ,CAAC,CACH,CAAC;QACJ,CAAC,CAAC,CAAC;QACL,MAAM,MAAM,GAA8B,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CACtE,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,SAAS,CAAC,CAAC;QACvC,OAAO;YACL,KAAK;YACL,aAAa,EAAE,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC;YAC9C,OAAO,EAAE,UAAU;YACnB,MAAM;SACmB,CAAC;IAC9B,CAAC,CACF,CAAC;IACF,OAAO,cAAc,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AACrC,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC"}
1
+ {"version":3,"file":"app-server.js","sourceRoot":"","sources":["../../../src/pi/codex/app-server.ts"],"names":[],"mappings":"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"}
@@ -4,9 +4,9 @@ import type { ModelListParams, ThreadStartParams, TurnInterruptParams, TurnStart
4
4
  import { SessionOperationError } from "../../runtime.ts";
5
5
  import { type CodexClient } from "./app-server.ts";
6
6
  type CodexRequestPayload = ModelListParams | ThreadStartParams | TurnStartParams | TurnSteerParams | TurnInterruptParams;
7
- /** Encodes typed Codex request parameters for the app-server JSON transport. */
7
+ /** Returns typed Codex request parameters as JSON for the app-server transport. */
8
8
  export declare const json: (value: CodexRequestPayload) => Schema.Json;
9
- /** Model catalog page used to validate the requested model and reasoning effort. */
9
+ /** The model catalog page, used to validate the requested model and reasoning effort. */
10
10
  export declare const ModelListResponse: Schema.Struct<{
11
11
  readonly data: Schema.$Array<Schema.Struct<{
12
12
  readonly id: Schema.String;
@@ -17,7 +17,7 @@ export declare const ModelListResponse: Schema.Struct<{
17
17
  }>>;
18
18
  readonly nextCursor: Schema.NullOr<Schema.String>;
19
19
  }>;
20
- /** Thread identity and effective model returned when a child conversation opens. */
20
+ /** The thread ID and effective model returned when a child thread starts. */
21
21
  export declare const ThreadStartResponse: Schema.Struct<{
22
22
  readonly thread: Schema.Struct<{
23
23
  readonly id: Schema.brand<Schema.NonEmptyString, "HarnessSessionId">;
@@ -25,33 +25,40 @@ export declare const ThreadStartResponse: Schema.Struct<{
25
25
  readonly model: Schema.NonEmptyString;
26
26
  readonly instructionSources: Schema.$Array<Schema.String>;
27
27
  }>;
28
- /** Turn identity required to address guidance and interruption. */
28
+ /** The turn ID, needed to steer or interrupt the turn. */
29
29
  export declare const TurnStartResponse: Schema.Struct<{
30
30
  readonly turn: Schema.Struct<{
31
31
  readonly id: Schema.NonEmptyString;
32
32
  }>;
33
33
  }>;
34
- /** Routes a vendor item to its thread and turn while preserving its JSON details. */
34
+ /** An item notification with its thread and turn IDs; `item` is kept as JSON. */
35
35
  export declare const ItemNotification: Schema.Struct<{
36
36
  readonly item: Schema.Codec<Schema.Json, Schema.Json, never, never>;
37
37
  readonly threadId: Schema.String;
38
38
  readonly turnId: Schema.String;
39
39
  }>;
40
- /** Completed assistant prose; phase distinguishes a final answer from commentary. */
40
+ /** A user message recorded in the thread: a turn's input, or steered input once the running turn reads it. */
41
+ export declare const UserMessageItem: Schema.Struct<{
42
+ readonly type: Schema.Literal<"userMessage">;
43
+ readonly content: Schema.$Array<Schema.Codec<Schema.Json, Schema.Json, never, never>>;
44
+ }>;
45
+ /** Returns the text of a recorded user message as the executor sent it. */
46
+ export declare const userMessageText: (item: typeof UserMessageItem.Type) => string;
47
+ /** A completed assistant message; `phase` distinguishes a final answer from commentary. */
41
48
  export declare const AgentMessageItem: Schema.Struct<{
42
49
  readonly type: Schema.Literal<"agentMessage">;
43
50
  readonly id: Schema.NonEmptyString;
44
51
  readonly text: Schema.String;
45
52
  readonly phase: Schema.optionalKey<Schema.NullOr<Schema.String>>;
46
53
  }>;
47
- /** Recognized tool activity with the fields needed to pair starts and results. */
54
+ /** A recognized tool item, with the fields needed to match starts and results. */
48
55
  export declare const ToolItem: Schema.Struct<{
49
56
  readonly type: Schema.Literals<readonly ["commandExecution", "fileChange", "mcpToolCall", "dynamicToolCall", "webSearch", "imageView", "imageGeneration"]>;
50
57
  readonly id: Schema.NonEmptyString;
51
58
  readonly status: Schema.optionalKey<Schema.String>;
52
59
  readonly success: Schema.optionalKey<Schema.NullOr<Schema.Boolean>>;
53
60
  }>;
54
- /** Turn outcome used to resume a held conversation or report a session failure. */
61
+ /** The outcome of a turn, used to resume a conversation on Hold or report a session failure. */
55
62
  export declare const TurnCompleted: Schema.Struct<{
56
63
  readonly turn: Schema.Struct<{
57
64
  readonly id: Schema.String;
@@ -62,12 +69,27 @@ export declare const TurnCompleted: Schema.Struct<{
62
69
  }>>;
63
70
  }>;
64
71
  }>;
72
+ /** A turn error from the app server; if `willRetry` is set, the model provider request is retried, for example `Reconnecting... 2/5`. */
73
+ export declare const ErrorNotification: Schema.Struct<{
74
+ readonly error: Schema.Struct<{
75
+ readonly message: Schema.String;
76
+ readonly additionalDetails: Schema.optionalKey<Schema.NullOr<Schema.String>>;
77
+ }>;
78
+ readonly willRetry: Schema.Boolean;
79
+ readonly turnId: Schema.String;
80
+ }>;
81
+ /** Any notification for one turn, for example an item or a streaming delta. */
82
+ export declare const TurnActivity: Schema.Struct<{
83
+ readonly turnId: Schema.String;
84
+ }>;
85
+ /** Returns the retry message followed by its details in parentheses. */
86
+ export declare const providerRetryMessage: (error: (typeof ErrorNotification.Type)["error"]) => string;
65
87
  declare const RateLimitWindow: Schema.Struct<{
66
88
  readonly usedPercent: Schema.Number;
67
89
  readonly windowDurationMins: Schema.optionalKey<Schema.NullOr<Schema.Number>>;
68
90
  readonly resetsAt: Schema.optionalKey<Schema.NullOr<Schema.Number>>;
69
91
  }>;
70
- /** Sparse account usage update; omitted windows remain absent in the normalized snapshot. */
92
+ /** A partial account usage update; omitted windows are also absent in the normalized snapshot. */
71
93
  export declare const RateLimitsUpdated: Schema.Struct<{
72
94
  readonly rateLimits: Schema.Struct<{
73
95
  readonly limitId: Schema.optionalKey<Schema.NullOr<Schema.String>>;
@@ -84,13 +106,13 @@ export declare const RateLimitsUpdated: Schema.Struct<{
84
106
  }>>>;
85
107
  }>;
86
108
  }>;
87
- /** Decodes a required response, attributing malformed data to the client operation and response label. */
109
+ /** Decodes a required response. Fails with `SessionOperationError` for `operation` if the data is malformed. */
88
110
  export declare const decodeResponse: <S extends Schema.Top>(schema: S, operation: SessionOperationError["operation"], client: CodexClient, label: string, value: Schema.Json) => Effect.Effect<S["Type"], SessionOperationError, S["DecodingServices"]>;
89
- /** Decodes one notification payload; an undecodable payload is logged and skipped, never fatal. */
111
+ /** Decodes a notification payload; if it does not decode, logs a warning and returns `None`. */
90
112
  export declare const decodeNotification: <S extends Schema.Top>(schema: S, label: string, sessionId: AgentSessionId, value: Schema.Json) => Effect.Effect<Option.Option<S["Type"]>, never, S["DecodingServices"]>;
91
- /** Maps a recognized vendor tool kind to the stable transcript tool name. */
113
+ /** Returns the transcript tool name for a Codex tool item. */
92
114
  export declare const toolName: (item: typeof ToolItem.Type) => string;
93
- /** Normalizes an account window, converting reset timestamps to UTC and absent values to Options. */
115
+ /** Converts a rate-limit window, with reset timestamps in UTC and absent values as `None`. */
94
116
  export declare const rateLimitWindow: (window: typeof RateLimitWindow.Type) => CoreRateLimitWindow;
95
117
  export {};
96
118
  //# sourceMappingURL=codec.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../../../src/pi/codex/codec.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EACd,eAAe,IAAI,mBAAmB,EACvC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAY,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC1D,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,eAAe,EAChB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,KAAK,WAAW,EAAkB,MAAM,iBAAiB,CAAC;AAEnE,KAAK,mBAAmB,GACpB,eAAe,GACf,iBAAiB,GACjB,eAAe,GACf,eAAe,GACf,mBAAmB,CAAC;AAExB,gFAAgF;AAChF,eAAO,MAAM,IAAI,UAAW,mBAAmB,KAAG,MAAM,CAAC,IACiB,CAAC;AAE3E,oFAAoF;AACpF,eAAO,MAAM,iBAAiB;;;;;;;;;EAW5B,CAAC;AACH,oFAAoF;AACpF,eAAO,MAAM,mBAAmB;;;;;;EAI9B,CAAC;AACH,mEAAmE;AACnE,eAAO,MAAM,iBAAiB;;;;EAE5B,CAAC;AACH,qFAAqF;AACrF,eAAO,MAAM,gBAAgB;;;;EAI3B,CAAC;AACH,qFAAqF;AACrF,eAAO,MAAM,gBAAgB;;;;;EAK3B,CAAC;AACH,kFAAkF;AAClF,eAAO,MAAM,QAAQ;;;;;EAanB,CAAC;AACH,mFAAmF;AACnF,eAAO,MAAM,aAAa;;;;;;;;;EAWxB,CAAC;AAGH,QAAA,MAAM,eAAe;;;;EAInB,CAAC;AACH,6FAA6F;AAC7F,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;EAO5B,CAAC;AAEH,0GAA0G;AAC1G,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,MAAM,CAAC,GAAG,UACzC,CAAC,aACE,qBAAqB,CAAC,WAAW,CAAC,UACrC,WAAW,SACZ,MAAM,SACN,MAAM,CAAC,IAAI,KACjB,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,qBAAqB,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAKrE,CAAC;AAEJ,mGAAmG;AACnG,eAAO,MAAM,kBAAkB,GAAI,CAAC,SAAS,MAAM,CAAC,GAAG,UAC7C,CAAC,SACF,MAAM,aACF,cAAc,SAClB,MAAM,CAAC,IAAI,KACjB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAQpE,CAAC;AAEJ,6EAA6E;AAC7E,eAAO,MAAM,QAAQ,SAAU,OAAO,QAAQ,CAAC,IAAI,KAAG,MAiBrD,CAAC;AAEF,qGAAqG;AACrG,eAAO,MAAM,eAAe,WAAY,OAAO,eAAe,CAAC,IAAI,KAAG,mBAKlE,CAAC"}
1
+ {"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../../../src/pi/codex/codec.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EACd,eAAe,IAAI,mBAAmB,EACvC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAY,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC1D,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,eAAe,EAChB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,KAAK,WAAW,EAAkB,MAAM,iBAAiB,CAAC;AAEnE,KAAK,mBAAmB,GACpB,eAAe,GACf,iBAAiB,GACjB,eAAe,GACf,eAAe,GACf,mBAAmB,CAAC;AAExB,mFAAmF;AACnF,eAAO,MAAM,IAAI,UAAW,mBAAmB,KAAG,MAAM,CAAC,IACiB,CAAC;AAE3E,yFAAyF;AACzF,eAAO,MAAM,iBAAiB;;;;;;;;;EAW5B,CAAC;AACH,6EAA6E;AAC7E,eAAO,MAAM,mBAAmB;;;;;;EAI9B,CAAC;AACH,0DAA0D;AAC1D,eAAO,MAAM,iBAAiB;;;;EAE5B,CAAC;AACH,iFAAiF;AACjF,eAAO,MAAM,gBAAgB;;;;EAI3B,CAAC;AACH,8GAA8G;AAC9G,eAAO,MAAM,eAAe;;;EAG1B,CAAC;AAEH,2EAA2E;AAC3E,eAAO,MAAM,eAAe,SAAU,OAAO,eAAe,CAAC,IAAI,KAAG,MAIvD,CAAC;AACd,2FAA2F;AAC3F,eAAO,MAAM,gBAAgB;;;;;EAK3B,CAAC;AACH,kFAAkF;AAClF,eAAO,MAAM,QAAQ;;;;;EAanB,CAAC;AACH,gGAAgG;AAChG,eAAO,MAAM,aAAa;;;;;;;;;EAWxB,CAAC;AACH,yIAAyI;AACzI,eAAO,MAAM,iBAAiB;;;;;;;EAO5B,CAAC;AACH,+EAA+E;AAC/E,eAAO,MAAM,YAAY;;EAA2C,CAAC;AAErE,wEAAwE;AACxE,eAAO,MAAM,oBAAoB,UAAW,CAAC,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAG,MAItF,CAAC;AAEF,QAAA,MAAM,eAAe;;;;EAInB,CAAC;AACH,kGAAkG;AAClG,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;EAO5B,CAAC;AAEH,gHAAgH;AAChH,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,MAAM,CAAC,GAAG,UACzC,CAAC,aACE,qBAAqB,CAAC,WAAW,CAAC,UACrC,WAAW,SACZ,MAAM,SACN,MAAM,CAAC,IAAI,KACjB,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,qBAAqB,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAKrE,CAAC;AAEJ,gGAAgG;AAChG,eAAO,MAAM,kBAAkB,GAAI,CAAC,SAAS,MAAM,CAAC,GAAG,UAC7C,CAAC,SACF,MAAM,aACF,cAAc,SAClB,MAAM,CAAC,IAAI,KACjB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAQpE,CAAC;AAEJ,8DAA8D;AAC9D,eAAO,MAAM,QAAQ,SAAU,OAAO,QAAQ,CAAC,IAAI,KAAG,MAiBrD,CAAC;AAEF,8FAA8F;AAC9F,eAAO,MAAM,eAAe,WAAY,OAAO,eAAe,CAAC,IAAI,KAAG,mBAKlE,CAAC"}
@@ -2,9 +2,9 @@ import { HarnessSessionId, AgentSessionId, RateLimitWindow as CoreRateLimitWindo
2
2
  import { DateTime, Effect, Option, Schema } from "effect";
3
3
  import { SessionOperationError } from "../../runtime.js";
4
4
  import { operationError } from "./app-server.js";
5
- /** Encodes typed Codex request parameters for the app-server JSON transport. */
5
+ /** Returns typed Codex request parameters as JSON for the app-server transport. */
6
6
  export const json = (value) => Schema.decodeUnknownSync(Schema.Json)(JSON.parse(JSON.stringify(value)));
7
- /** Model catalog page used to validate the requested model and reasoning effort. */
7
+ /** The model catalog page, used to validate the requested model and reasoning effort. */
8
8
  export const ModelListResponse = Schema.Struct({
9
9
  data: Schema.Array(Schema.Struct({
10
10
  id: Schema.String,
@@ -13,30 +13,41 @@ export const ModelListResponse = Schema.Struct({
13
13
  })),
14
14
  nextCursor: Schema.NullOr(Schema.String),
15
15
  });
16
- /** Thread identity and effective model returned when a child conversation opens. */
16
+ /** The thread ID and effective model returned when a child thread starts. */
17
17
  export const ThreadStartResponse = Schema.Struct({
18
18
  thread: Schema.Struct({ id: HarnessSessionId }),
19
19
  model: Schema.NonEmptyString,
20
20
  instructionSources: Schema.Array(Schema.String),
21
21
  });
22
- /** Turn identity required to address guidance and interruption. */
22
+ /** The turn ID, needed to steer or interrupt the turn. */
23
23
  export const TurnStartResponse = Schema.Struct({
24
24
  turn: Schema.Struct({ id: Schema.NonEmptyString }),
25
25
  });
26
- /** Routes a vendor item to its thread and turn while preserving its JSON details. */
26
+ /** An item notification with its thread and turn IDs; `item` is kept as JSON. */
27
27
  export const ItemNotification = Schema.Struct({
28
28
  item: Schema.Json,
29
29
  threadId: Schema.String,
30
30
  turnId: Schema.String,
31
31
  });
32
- /** Completed assistant prose; phase distinguishes a final answer from commentary. */
32
+ /** A user message recorded in the thread: a turn's input, or steered input once the running turn reads it. */
33
+ export const UserMessageItem = Schema.Struct({
34
+ type: Schema.Literal("userMessage"),
35
+ content: Schema.Array(Schema.Json),
36
+ });
37
+ const UserTextInput = Schema.Struct({ type: Schema.Literal("text"), text: Schema.String });
38
+ /** Returns the text of a recorded user message as the executor sent it. */
39
+ export const userMessageText = (item) => item.content
40
+ .filter(Schema.is(UserTextInput))
41
+ .map(({ text }) => text)
42
+ .join("");
43
+ /** A completed assistant message; `phase` distinguishes a final answer from commentary. */
33
44
  export const AgentMessageItem = Schema.Struct({
34
45
  type: Schema.Literal("agentMessage"),
35
46
  id: Schema.NonEmptyString,
36
47
  text: Schema.String,
37
48
  phase: Schema.optionalKey(Schema.NullOr(Schema.String)),
38
49
  });
39
- /** Recognized tool activity with the fields needed to pair starts and results. */
50
+ /** A recognized tool item, with the fields needed to match starts and results. */
40
51
  export const ToolItem = Schema.Struct({
41
52
  type: Schema.Literals([
42
53
  "commandExecution",
@@ -51,7 +62,7 @@ export const ToolItem = Schema.Struct({
51
62
  status: Schema.optionalKey(Schema.String),
52
63
  success: Schema.optionalKey(Schema.NullOr(Schema.Boolean)),
53
64
  });
54
- /** Turn outcome used to resume a held conversation or report a session failure. */
65
+ /** The outcome of a turn, used to resume a conversation on Hold or report a session failure. */
55
66
  export const TurnCompleted = Schema.Struct({
56
67
  turn: Schema.Struct({
57
68
  id: Schema.String,
@@ -62,14 +73,30 @@ export const TurnCompleted = Schema.Struct({
62
73
  })),
63
74
  }),
64
75
  });
65
- // Upstream sends this notification as a sparse rolling update: any account
66
- // field may be absent, so only the load figure is required.
76
+ /** A turn error from the app server; if `willRetry` is set, the model provider request is retried, for example `Reconnecting... 2/5`. */
77
+ export const ErrorNotification = Schema.Struct({
78
+ error: Schema.Struct({
79
+ message: Schema.String,
80
+ additionalDetails: Schema.optionalKey(Schema.NullOr(Schema.String)),
81
+ }),
82
+ willRetry: Schema.Boolean,
83
+ turnId: Schema.String,
84
+ });
85
+ /** Any notification for one turn, for example an item or a streaming delta. */
86
+ export const TurnActivity = Schema.Struct({ turnId: Schema.String });
87
+ /** Returns the retry message followed by its details in parentheses. */
88
+ export const providerRetryMessage = (error) => {
89
+ const message = error.message.trim() || "Codex is retrying its model provider";
90
+ const details = error.additionalDetails?.trim() ?? "";
91
+ return details === "" ? message : `${message} (${details})`;
92
+ };
93
+ // Upstream sends partial updates where any field can be absent, so only `usedPercent` is required.
67
94
  const RateLimitWindow = Schema.Struct({
68
95
  usedPercent: Schema.Number,
69
96
  windowDurationMins: Schema.optionalKey(Schema.NullOr(Schema.Number)),
70
97
  resetsAt: Schema.optionalKey(Schema.NullOr(Schema.Number)),
71
98
  });
72
- /** Sparse account usage update; omitted windows remain absent in the normalized snapshot. */
99
+ /** A partial account usage update; omitted windows are also absent in the normalized snapshot. */
73
100
  export const RateLimitsUpdated = Schema.Struct({
74
101
  rateLimits: Schema.Struct({
75
102
  limitId: Schema.optionalKey(Schema.NullOr(Schema.String)),
@@ -78,11 +105,11 @@ export const RateLimitsUpdated = Schema.Struct({
78
105
  secondary: Schema.optionalKey(Schema.NullOr(RateLimitWindow)),
79
106
  }),
80
107
  });
81
- /** Decodes a required response, attributing malformed data to the client operation and response label. */
108
+ /** Decodes a required response. Fails with `SessionOperationError` for `operation` if the data is malformed. */
82
109
  export const decodeResponse = (schema, operation, client, label, value) => Schema.decodeUnknownEffect(schema)(value).pipe(Effect.mapError((cause) => operationError(operation, client, `Codex returned an invalid ${label}`, cause)));
83
- /** Decodes one notification payload; an undecodable payload is logged and skipped, never fatal. */
110
+ /** Decodes a notification payload; if it does not decode, logs a warning and returns `None`. */
84
111
  export const decodeNotification = (schema, label, sessionId, value) => Schema.decodeUnknownEffect(schema)(value).pipe(Effect.map(Option.some), Effect.catch((cause) => Effect.logWarning(`Skipping an undecodable Codex ${label}`, { cause, sessionId }).pipe(Effect.as(Option.none()))));
85
- /** Maps a recognized vendor tool kind to the stable transcript tool name. */
112
+ /** Returns the transcript tool name for a Codex tool item. */
86
113
  export const toolName = (item) => {
87
114
  switch (item.type) {
88
115
  case "commandExecution":
@@ -101,7 +128,7 @@ export const toolName = (item) => {
101
128
  return "image_generation";
102
129
  }
103
130
  };
104
- /** Normalizes an account window, converting reset timestamps to UTC and absent values to Options. */
131
+ /** Converts a rate-limit window, with reset timestamps in UTC and absent values as `None`. */
105
132
  export const rateLimitWindow = (window) => new CoreRateLimitWindow({
106
133
  usedPercent: window.usedPercent,
107
134
  windowDurationMinutes: Option.fromNullishOr(window.windowDurationMins),