@tokenfactory/acc-runner 0.44.8 → 0.44.9

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 (174) hide show
  1. package/README.md +38 -0
  2. package/dist/attachments/codex-stage.d.ts +11 -0
  3. package/dist/attachments/codex-stage.d.ts.map +1 -0
  4. package/dist/attachments/codex-stage.js +82 -0
  5. package/dist/attachments/codex-stage.js.map +1 -0
  6. package/dist/attachments/fetch-attachment.d.ts +17 -0
  7. package/dist/attachments/fetch-attachment.d.ts.map +1 -1
  8. package/dist/attachments/fetch-attachment.js +134 -6
  9. package/dist/attachments/fetch-attachment.js.map +1 -1
  10. package/dist/attachments/index.d.ts +2 -1
  11. package/dist/attachments/index.d.ts.map +1 -1
  12. package/dist/attachments/index.js +2 -1
  13. package/dist/attachments/index.js.map +1 -1
  14. package/dist/build-info.generated.d.ts +1 -1
  15. package/dist/build-info.generated.js +2 -2
  16. package/dist/commit-sha.d.ts +31 -0
  17. package/dist/commit-sha.d.ts.map +1 -0
  18. package/dist/commit-sha.js +31 -0
  19. package/dist/commit-sha.js.map +1 -0
  20. package/dist/companion-run.d.ts.map +1 -1
  21. package/dist/companion-run.js +14 -1
  22. package/dist/companion-run.js.map +1 -1
  23. package/dist/doctor.d.ts +16 -0
  24. package/dist/doctor.d.ts.map +1 -1
  25. package/dist/doctor.js +107 -0
  26. package/dist/doctor.js.map +1 -1
  27. package/dist/engines/codex-chat.d.ts +10 -1
  28. package/dist/engines/codex-chat.d.ts.map +1 -1
  29. package/dist/engines/codex-chat.js +32 -2
  30. package/dist/engines/codex-chat.js.map +1 -1
  31. package/dist/login.d.ts.map +1 -1
  32. package/dist/login.js +7 -1
  33. package/dist/login.js.map +1 -1
  34. package/dist/machine-console/index.d.ts +6 -10
  35. package/dist/machine-console/index.d.ts.map +1 -1
  36. package/dist/machine-console/index.js +61 -54
  37. package/dist/machine-console/index.js.map +1 -1
  38. package/dist/machine-console/transport.d.ts +57 -0
  39. package/dist/machine-console/transport.d.ts.map +1 -0
  40. package/dist/machine-console/transport.js +170 -0
  41. package/dist/machine-console/transport.js.map +1 -0
  42. package/dist/preview-environments/control-plane.d.ts +11 -0
  43. package/dist/preview-environments/control-plane.d.ts.map +1 -0
  44. package/dist/preview-environments/control-plane.js +49 -0
  45. package/dist/preview-environments/control-plane.js.map +1 -0
  46. package/dist/preview-environments/http-provider.d.ts +13 -0
  47. package/dist/preview-environments/http-provider.d.ts.map +1 -0
  48. package/dist/preview-environments/http-provider.js +64 -0
  49. package/dist/preview-environments/http-provider.js.map +1 -0
  50. package/dist/preview-environments/profiles.d.ts +6 -0
  51. package/dist/preview-environments/profiles.d.ts.map +1 -0
  52. package/dist/preview-environments/profiles.js +34 -0
  53. package/dist/preview-environments/profiles.js.map +1 -0
  54. package/dist/preview-environments/safety.d.ts +7 -0
  55. package/dist/preview-environments/safety.d.ts.map +1 -0
  56. package/dist/preview-environments/safety.js +47 -0
  57. package/dist/preview-environments/safety.js.map +1 -0
  58. package/dist/preview-environments/service.d.ts +36 -0
  59. package/dist/preview-environments/service.d.ts.map +1 -0
  60. package/dist/preview-environments/service.js +149 -0
  61. package/dist/preview-environments/service.js.map +1 -0
  62. package/dist/preview-environments/types.d.ts +60 -0
  63. package/dist/preview-environments/types.d.ts.map +1 -0
  64. package/dist/preview-environments/types.js +2 -0
  65. package/dist/preview-environments/types.js.map +1 -0
  66. package/dist/production-migrations/command.d.ts +3 -0
  67. package/dist/production-migrations/command.d.ts.map +1 -0
  68. package/dist/production-migrations/command.js +21 -0
  69. package/dist/production-migrations/command.js.map +1 -0
  70. package/dist/production-migrations/executor.d.ts +59 -0
  71. package/dist/production-migrations/executor.d.ts.map +1 -0
  72. package/dist/production-migrations/executor.js +161 -0
  73. package/dist/production-migrations/executor.js.map +1 -0
  74. package/dist/production-migrations/pg-target.d.ts +22 -0
  75. package/dist/production-migrations/pg-target.d.ts.map +1 -0
  76. package/dist/production-migrations/pg-target.js +87 -0
  77. package/dist/production-migrations/pg-target.js.map +1 -0
  78. package/dist/production-migrations/profiles.d.ts +5 -0
  79. package/dist/production-migrations/profiles.d.ts.map +1 -0
  80. package/dist/production-migrations/profiles.js +39 -0
  81. package/dist/production-migrations/profiles.js.map +1 -0
  82. package/dist/production-migrations/service.d.ts +39 -0
  83. package/dist/production-migrations/service.d.ts.map +1 -0
  84. package/dist/production-migrations/service.js +166 -0
  85. package/dist/production-migrations/service.js.map +1 -0
  86. package/dist/program.d.ts.map +1 -1
  87. package/dist/program.js +17 -0
  88. package/dist/program.js.map +1 -1
  89. package/dist/runtime/worktree.d.ts.map +1 -1
  90. package/dist/runtime/worktree.js +23 -1
  91. package/dist/runtime/worktree.js.map +1 -1
  92. package/dist/secure-execution/auto-lease.d.ts +57 -0
  93. package/dist/secure-execution/auto-lease.d.ts.map +1 -0
  94. package/dist/secure-execution/auto-lease.js +116 -0
  95. package/dist/secure-execution/auto-lease.js.map +1 -0
  96. package/dist/secure-execution/command-policy.d.ts +5 -0
  97. package/dist/secure-execution/command-policy.d.ts.map +1 -0
  98. package/dist/secure-execution/command-policy.js +95 -0
  99. package/dist/secure-execution/command-policy.js.map +1 -0
  100. package/dist/secure-execution/confinement.d.ts +3 -0
  101. package/dist/secure-execution/confinement.d.ts.map +1 -0
  102. package/dist/secure-execution/confinement.js +18 -0
  103. package/dist/secure-execution/confinement.js.map +1 -0
  104. package/dist/secure-execution/engine.d.ts +24 -0
  105. package/dist/secure-execution/engine.d.ts.map +1 -0
  106. package/dist/secure-execution/engine.js +272 -0
  107. package/dist/secure-execution/engine.js.map +1 -0
  108. package/dist/secure-execution/index.d.ts +7 -0
  109. package/dist/secure-execution/index.d.ts.map +1 -0
  110. package/dist/secure-execution/index.js +6 -0
  111. package/dist/secure-execution/index.js.map +1 -0
  112. package/dist/secure-execution/node-pty.d.ts +11 -0
  113. package/dist/secure-execution/node-pty.d.ts.map +1 -0
  114. package/dist/secure-execution/node-pty.js +27 -0
  115. package/dist/secure-execution/node-pty.js.map +1 -0
  116. package/dist/secure-execution/types.d.ts +176 -0
  117. package/dist/secure-execution/types.d.ts.map +1 -0
  118. package/dist/secure-execution/types.js +2 -0
  119. package/dist/secure-execution/types.js.map +1 -0
  120. package/dist/staging-migrations/command.d.ts +2 -0
  121. package/dist/staging-migrations/command.d.ts.map +1 -0
  122. package/dist/staging-migrations/command.js +58 -0
  123. package/dist/staging-migrations/command.js.map +1 -0
  124. package/dist/staging-migrations/executor.d.ts +49 -0
  125. package/dist/staging-migrations/executor.d.ts.map +1 -0
  126. package/dist/staging-migrations/executor.js +125 -0
  127. package/dist/staging-migrations/executor.js.map +1 -0
  128. package/dist/staging-migrations/pg-target.d.ts +20 -0
  129. package/dist/staging-migrations/pg-target.d.ts.map +1 -0
  130. package/dist/staging-migrations/pg-target.js +63 -0
  131. package/dist/staging-migrations/pg-target.js.map +1 -0
  132. package/dist/staging-migrations/profiles.d.ts +5 -0
  133. package/dist/staging-migrations/profiles.d.ts.map +1 -0
  134. package/dist/staging-migrations/profiles.js +31 -0
  135. package/dist/staging-migrations/profiles.js.map +1 -0
  136. package/dist/staging-migrations/service.d.ts +40 -0
  137. package/dist/staging-migrations/service.d.ts.map +1 -0
  138. package/dist/staging-migrations/service.js +157 -0
  139. package/dist/staging-migrations/service.js.map +1 -0
  140. package/dist/supervisor.d.ts +15 -0
  141. package/dist/supervisor.d.ts.map +1 -0
  142. package/dist/supervisor.js +54 -0
  143. package/dist/supervisor.js.map +1 -0
  144. package/dist/terminal/http-carrier.d.ts +17 -0
  145. package/dist/terminal/http-carrier.d.ts.map +1 -0
  146. package/dist/terminal/http-carrier.js +39 -0
  147. package/dist/terminal/http-carrier.js.map +1 -0
  148. package/dist/terminal/pty-adapter.d.ts +88 -0
  149. package/dist/terminal/pty-adapter.d.ts.map +1 -0
  150. package/dist/terminal/pty-adapter.js +252 -0
  151. package/dist/terminal/pty-adapter.js.map +1 -0
  152. package/dist/terminal/transport-contract.d.ts +115 -0
  153. package/dist/terminal/transport-contract.d.ts.map +1 -0
  154. package/dist/terminal/transport-contract.js +2 -0
  155. package/dist/terminal/transport-contract.js.map +1 -0
  156. package/dist/terminal/transport.d.ts +32 -0
  157. package/dist/terminal/transport.d.ts.map +1 -0
  158. package/dist/terminal/transport.js +208 -0
  159. package/dist/terminal/transport.js.map +1 -0
  160. package/dist/watch-chat/wire.d.ts.map +1 -1
  161. package/dist/watch-chat/wire.js +14 -1
  162. package/dist/watch-chat/wire.js.map +1 -1
  163. package/dist/watch.d.ts.map +1 -1
  164. package/dist/watch.js +32 -0
  165. package/dist/watch.js.map +1 -1
  166. package/package.json +6 -1
  167. package/scripts/com.tokenfactory.acc-runner-dedicated.plist +64 -0
  168. package/scripts/com.tokenfactory.acc-runner.plist +90 -0
  169. package/scripts/gen-build-info.d.mts +3 -0
  170. package/scripts/gen-build-info.mjs +72 -0
  171. package/scripts/install-launchd.sh +235 -0
  172. package/scripts/setup-dedicated-runner-darwin.sh +75 -0
  173. package/scripts/setup-dedicated-runner-linux.sh +173 -0
  174. package/scripts/uninstall-launchd.sh +67 -0
package/README.md CHANGED
@@ -516,6 +516,24 @@ version bump (#496 reverted `package.json` 0.14.0 → 0.13.0).
516
516
 
517
517
  ## Security notes
518
518
 
519
+ ### Governed AUTO execution
520
+
521
+ AUTO terminal execution is a separate, fail-closed lane. Before a PTY starts,
522
+ the runner consumes one signed 0393 lease and binds it to the exact user,
523
+ organization, runner, repository, path set, command digest/class, destination
524
+ set, and resource ceilings. A consumed, expired, revoked, altered, or
525
+ profile-drifted lease cannot run again.
526
+
527
+ At execution time the runner also rejects shell composition, nested shells,
528
+ privilege tools, destructive commands, inline interpreters, path traversal,
529
+ and a cwd outside the lease paths. AUTO additionally requires both an active
530
+ runtime egress boundary (`DestinationPolicy.activate`) and a resource
531
+ controller; authorization without runtime enforcement is refused. Output,
532
+ input, wall time, CPU and memory remain bounded, runner-local secrets are
533
+ stream-redacted, quarantine kills the PTY, and the frozen completion receipt is
534
+ reported with a stable idempotency key. A failed audit delivery is queued for
535
+ retry. None of these rules change the manually operated bounded console.
536
+
519
537
  - The CLI never reads or writes your git, gh, or Anthropic credentials.
520
538
  It calls binaries that are already authenticated on your machine.
521
539
  - The Supabase JWT is short-lived and stored in your OS keychain via
@@ -542,3 +560,23 @@ context, not by claude itself:
542
560
  ## License
543
561
 
544
562
  Proprietary. Not for redistribution.
563
+ # Governed staging migrations
564
+
565
+ `acc watch` can serve approved staging migration plans alongside its normal
566
+ task, review, chat, and console lanes. The lane is off by default. Configure a
567
+ runner-local database profile and opt in explicitly:
568
+
569
+ ```sh
570
+ export ACC_DB_PROFILE_ACC_STAGING_URL='postgresql://...qfevnwuybyygexkcbdfy...'
571
+ export ACC_STAGING_MIGRATION_SERVICE=1
572
+ acc watch
573
+ ```
574
+
575
+ ACC stores only the opaque profile name. The database URL remains on the runner
576
+ and is redacted from errors. The runner advertises configured non-production
577
+ profiles, polls a bounded oldest-first batch, claims each plan atomically,
578
+ requires the exact repository commit and file hashes, pins the database project,
579
+ uses a database advisory lock, and verifies the canonical migration ledger after
580
+ every file. It stops on the first error and safely skips only exact ledger
581
+ matches on a resumed plan. Cancellation and shutdown are observed between files;
582
+ an in-flight SQL transaction is never interrupted halfway.
@@ -0,0 +1,11 @@
1
+ import type { FetchedAttachment } from "./types.js";
2
+ export interface CodexImageStage {
3
+ directory: string;
4
+ imagePaths: string[];
5
+ cleanup: () => Promise<void>;
6
+ }
7
+ /** Stage only verified image attachments; PDFs/text remain unsupported by Codex argv. */
8
+ export declare function stageCodexImages(attachments: readonly FetchedAttachment[]): Promise<CodexImageStage>;
9
+ /** Run a Codex turn with staged images and guarantee temp cleanup. */
10
+ export declare function withCodexImages<T>(attachments: readonly FetchedAttachment[], run: (imagePaths: readonly string[]) => Promise<T> | T): Promise<T>;
11
+ //# sourceMappingURL=codex-stage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-stage.d.ts","sourceRoot":"","sources":["../../src/attachments/codex-stage.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAIpD,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAYD,yFAAyF;AACzF,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,SAAS,iBAAiB,EAAE,GACxC,OAAO,CAAC,eAAe,CAAC,CA+C1B;AAED,sEAAsE;AACtE,wBAAsB,eAAe,CAAC,CAAC,EACrC,WAAW,EAAE,SAAS,iBAAiB,EAAE,EACzC,GAAG,EAAE,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GACrD,OAAO,CAAC,CAAC,CAAC,CAOZ"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Codex-only attachment staging.
3
+ *
4
+ * Codex's verified local-image contract is argv-based (`exec --image FILE`).
5
+ * Keep downloaded bytes out of argv and out of the repository: write them to a
6
+ * per-turn random temp directory, pass only the generated paths to the adapter,
7
+ * and remove that directory in a finally block on success, failure, or abort.
8
+ */
9
+ import { mkdir, mkdtemp, rm, writeFile } from "node:fs/promises";
10
+ import os from "node:os";
11
+ import path from "node:path";
12
+ import { isWithinSizeCeiling, MAX_ATTACHMENT_BYTES } from "./allowlist.js";
13
+ import { MAX_TURN_ATTACHMENT_BYTES, MAX_TURN_ATTACHMENTS } from "./fetch-attachment.js";
14
+ function extensionForContentType(contentType) {
15
+ switch (contentType.split(";", 1)[0].trim().toLowerCase()) {
16
+ case "image/png": return "png";
17
+ case "image/jpeg": return "jpg";
18
+ case "image/gif": return "gif";
19
+ case "image/webp": return "webp";
20
+ default: return null;
21
+ }
22
+ }
23
+ /** Stage only verified image attachments; PDFs/text remain unsupported by Codex argv. */
24
+ export async function stageCodexImages(attachments) {
25
+ if (attachments.length > MAX_TURN_ATTACHMENTS) {
26
+ throw new Error(`turn has too many attachments (maximum ${MAX_TURN_ATTACHMENTS})`);
27
+ }
28
+ let totalBytes = 0;
29
+ for (const attachment of attachments) {
30
+ if (attachment.kind !== "image") {
31
+ throw new Error("Codex attachment transport supports images only");
32
+ }
33
+ if (!isWithinSizeCeiling("image", attachment.bytes.byteLength)) {
34
+ throw new Error(`image attachment exceeds ${MAX_ATTACHMENT_BYTES.image}-byte ceiling`);
35
+ }
36
+ totalBytes += attachment.bytes.byteLength;
37
+ if (totalBytes > MAX_TURN_ATTACHMENT_BYTES) {
38
+ throw new Error("turn attachments exceed the aggregate byte ceiling");
39
+ }
40
+ if (!extensionForContentType(attachment.contentType)) {
41
+ throw new Error("Codex attachment transport received an unsupported image type");
42
+ }
43
+ }
44
+ const directory = await mkdtemp(path.join(os.tmpdir(), "acc-codex-turn-"));
45
+ let cleaned = false;
46
+ const cleanup = async () => {
47
+ if (cleaned)
48
+ return;
49
+ cleaned = true;
50
+ await rm(directory, { recursive: true, force: true }).catch(() => undefined);
51
+ };
52
+ try {
53
+ // mkdir is intentionally redundant after mkdtemp, but keeps this helper
54
+ // safe if a platform returns a lazily-created temp path in a future Node.
55
+ await mkdir(directory, { recursive: true });
56
+ const imagePaths = [];
57
+ for (const [index, attachment] of attachments.entries()) {
58
+ const extension = extensionForContentType(attachment.contentType);
59
+ // Do not use the user filename. The generated name is deterministic only
60
+ // within this turn and cannot carry path traversal or sensitive metadata.
61
+ const imagePath = path.join(directory, `image-${index}.${extension}`);
62
+ await writeFile(imagePath, attachment.bytes, { mode: 0o600, flag: "wx" });
63
+ imagePaths.push(imagePath);
64
+ }
65
+ return { directory, imagePaths, cleanup };
66
+ }
67
+ catch (error) {
68
+ await cleanup();
69
+ throw error;
70
+ }
71
+ }
72
+ /** Run a Codex turn with staged images and guarantee temp cleanup. */
73
+ export async function withCodexImages(attachments, run) {
74
+ const stage = await stageCodexImages(attachments);
75
+ try {
76
+ return await run(stage.imagePaths);
77
+ }
78
+ finally {
79
+ await stage.cleanup();
80
+ }
81
+ }
82
+ //# sourceMappingURL=codex-stage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-stage.js","sourceRoot":"","sources":["../../src/attachments/codex-stage.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,23 @@ export interface FetchAttachmentDeps {
19
19
  authToken: string;
20
20
  /** Injectable for tests; defaults to the global fetch. */
21
21
  fetchImpl?: typeof fetch;
22
+ /** Internal remaining per-turn byte budget for cumulative downloads. */
23
+ maxBytes?: number;
24
+ }
25
+ export declare const MAX_TURN_ATTACHMENTS = 8;
26
+ export declare const MAX_TURN_ATTACHMENT_BYTES: number;
27
+ export interface FetchTurnAttachmentsDeps extends FetchAttachmentDeps {
28
+ /** Injectable for tests; defaults to the global fetch. */
29
+ fetchImpl?: typeof fetch;
30
+ /** Injectable short wait while the lane's append follows its enqueue. */
31
+ sleep?: (ms: number) => Promise<void>;
22
32
  }
23
33
  export declare function fetchAttachment(attachmentId: string, deps: FetchAttachmentDeps): Promise<FetchedAttachment>;
34
+ /**
35
+ * Resolve only the attachments linked to one claimed lane turn, then download
36
+ * each through the same short-lived signed URL path. The GET is caller-scoped
37
+ * by the runner's owner JWT; the server intersects conversation + turn_id with
38
+ * the carrying user message before returning metadata.
39
+ */
40
+ export declare function fetchTurnAttachments(conversationId: string, turnId: string, deps: FetchTurnAttachmentsDeps): Promise<FetchedAttachment[]>;
24
41
  //# sourceMappingURL=fetch-attachment.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-attachment.d.ts","sourceRoot":"","sources":["../../src/attachments/fetch-attachment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAkB,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAGpE,MAAM,WAAW,mBAAmB;IAClC,iFAAiF;IACjF,SAAS,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,SAAS,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAWD,wBAAsB,eAAe,CACnC,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,iBAAiB,CAAC,CA6C5B"}
1
+ {"version":3,"file":"fetch-attachment.d.ts","sourceRoot":"","sources":["../../src/attachments/fetch-attachment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAkB,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAGpE,MAAM,WAAW,mBAAmB;IAClC,iFAAiF;IACjF,SAAS,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,SAAS,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAYD,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,eAAO,MAAM,yBAAyB,QAAmB,CAAC;AAE1D,MAAM,WAAW,wBAAyB,SAAQ,mBAAmB;IACnE,0DAA0D;IAC1D,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,yEAAyE;IACzE,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AASD,wBAAsB,eAAe,CACnC,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,iBAAiB,CAAC,CAuE5B;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC,iBAAiB,EAAE,CAAC,CA0F9B"}
@@ -11,7 +11,9 @@
11
11
  * and carries no dependency on watch.ts or the engine adapters. The Track A
12
12
  * wiring decides which bearer to pass.
13
13
  */
14
- import { kindForContentType, MAX_ATTACHMENT_BYTES } from "./allowlist.js";
14
+ import { kindForContentType, MAX_ATTACHMENT_BYTES, isWithinSizeCeiling } from "./allowlist.js";
15
+ export const MAX_TURN_ATTACHMENTS = 8;
16
+ export const MAX_TURN_ATTACHMENT_BYTES = 40 * 1024 * 1024;
15
17
  export async function fetchAttachment(attachmentId, deps) {
16
18
  if (!attachmentId)
17
19
  throw new Error("fetchAttachment: attachmentId required");
@@ -32,24 +34,150 @@ export async function fetchAttachment(attachmentId, deps) {
32
34
  if (!json.ok || !json.signed_url) {
33
35
  throw new Error(`sign-download rejected: ${json.error ?? "no signed_url"}`);
34
36
  }
35
- const kind = json.kind ?? kindForContentType(json.content_type ?? "");
37
+ let signedUrl;
38
+ try {
39
+ signedUrl = new URL(json.signed_url);
40
+ }
41
+ catch {
42
+ throw new Error("sign-download returned an invalid URL");
43
+ }
44
+ if (signedUrl.protocol !== "https:" || signedUrl.username || signedUrl.password) {
45
+ throw new Error("sign-download returned an unsafe URL");
46
+ }
47
+ const contentType = json.content_type ?? "";
48
+ const kindFromContentType = kindForContentType(contentType);
49
+ const kindFromResponse = typeof json.kind === "string" ? json.kind : null;
50
+ // The content type is the server allow-list authority. A mismatched or
51
+ // unknown response kind fails closed instead of indexing an untrusted string
52
+ // into MAX_ATTACHMENT_BYTES.
53
+ const kind = kindFromContentType && (!kindFromResponse || kindFromResponse === kindFromContentType)
54
+ ? kindFromContentType
55
+ : null;
36
56
  if (!kind) {
37
- throw new Error(`unsupported attachment content-type: ${json.content_type ?? "unknown"}`);
57
+ throw new Error(`unsupported attachment content-type: ${contentType || "unknown"}`);
58
+ }
59
+ if (typeof json.byte_size === "number" && !isWithinSizeCeiling(kind, json.byte_size)) {
60
+ throw new Error(`attachment metadata exceeds the ${kind} size ceiling`);
38
61
  }
39
- const fileRes = await doFetch(json.signed_url);
62
+ const fileRes = await doFetch(signedUrl);
40
63
  if (!fileRes.ok) {
41
64
  throw new Error(`attachment fetch failed: HTTP ${fileRes.status}`);
42
65
  }
43
66
  const bytes = new Uint8Array(await fileRes.arrayBuffer());
44
- if (bytes.byteLength > MAX_ATTACHMENT_BYTES[kind]) {
67
+ if (deps.maxBytes !== undefined && bytes.byteLength > deps.maxBytes) {
68
+ throw new Error("turn attachments exceed the aggregate byte ceiling");
69
+ }
70
+ if (!isWithinSizeCeiling(kind, bytes.byteLength)) {
45
71
  throw new Error(`attachment ${bytes.byteLength} bytes exceeds ${MAX_ATTACHMENT_BYTES[kind]}-byte ceiling for ${kind}`);
46
72
  }
73
+ if (typeof json.byte_size === "number" && bytes.byteLength !== json.byte_size) {
74
+ throw new Error("attachment byte-size metadata did not match the downloaded bytes");
75
+ }
47
76
  return {
48
77
  attachmentId,
49
78
  kind,
50
- contentType: json.content_type ?? "",
79
+ contentType,
51
80
  filename: json.filename ?? "file",
52
81
  bytes,
53
82
  };
54
83
  }
84
+ /**
85
+ * Resolve only the attachments linked to one claimed lane turn, then download
86
+ * each through the same short-lived signed URL path. The GET is caller-scoped
87
+ * by the runner's owner JWT; the server intersects conversation + turn_id with
88
+ * the carrying user message before returning metadata.
89
+ */
90
+ export async function fetchTurnAttachments(conversationId, turnId, deps) {
91
+ if (!conversationId || !turnId)
92
+ throw new Error("fetchTurnAttachments: turn identity required");
93
+ const doFetch = deps.fetchImpl ?? fetch;
94
+ const base = deps.publicUrl.replace(/\/+$/, "");
95
+ const query = new URLSearchParams({ conversation_id: conversationId, turn_id: turnId });
96
+ const sleep = deps.sleep ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));
97
+ let json = {};
98
+ let previousAttachmentSignature = null;
99
+ let stableReads = 0;
100
+ for (let attempt = 0; attempt < 5; attempt += 1) {
101
+ const listRes = await doFetch(`${base}/api/chat/attachments?${query.toString()}`, {
102
+ headers: { Authorization: `Bearer ${deps.authToken}` },
103
+ });
104
+ if (!listRes.ok)
105
+ throw new Error(`attachment metadata failed: HTTP ${listRes.status}`);
106
+ json = (await listRes.json());
107
+ if (!json.ok || !Array.isArray(json.attachments)) {
108
+ throw new Error(`attachment metadata rejected: ${json.error ?? "invalid response"}`);
109
+ }
110
+ if (json.message_found === false) {
111
+ if (attempt === 4)
112
+ throw new Error("carrying chat message was not visible for the claimed turn");
113
+ await sleep(100);
114
+ continue;
115
+ }
116
+ // Enqueue precedes append/link in the lane. Require two identical reads
117
+ // before downloading so a claim racing the link loop cannot omit the
118
+ // second (or later) attachment from the engine invocation.
119
+ const signature = JSON.stringify(json.attachments.map((row) => {
120
+ const id = row && typeof row === "object" ? row.id : null;
121
+ return typeof id === "string" ? id : null;
122
+ }));
123
+ if (signature === previousAttachmentSignature)
124
+ stableReads += 1;
125
+ else {
126
+ previousAttachmentSignature = signature;
127
+ stableReads = 1;
128
+ }
129
+ if (stableReads >= 2)
130
+ break;
131
+ if (attempt === 4)
132
+ throw new Error("attachment metadata was not stable for the claimed turn");
133
+ await sleep(100);
134
+ }
135
+ if (!json.ok || !Array.isArray(json.attachments)) {
136
+ throw new Error(`attachment metadata rejected: ${json.error ?? "invalid response"}`);
137
+ }
138
+ if (json.attachments.length > MAX_TURN_ATTACHMENTS) {
139
+ throw new Error(`turn has too many attachments (maximum ${MAX_TURN_ATTACHMENTS})`);
140
+ }
141
+ const ids = [];
142
+ let declaredBytes = 0;
143
+ for (const raw of json.attachments) {
144
+ const row = raw && typeof raw === "object" ? raw : null;
145
+ const id = typeof row?.id === "string" ? row.id.trim() : "";
146
+ if (!id || ids.includes(id)) {
147
+ throw new Error("attachment metadata contained an invalid or duplicate id");
148
+ }
149
+ const contentType = typeof row?.content_type === "string" ? row.content_type : "";
150
+ const kind = kindForContentType(contentType);
151
+ if (!kind || (typeof row?.kind === "string" && row.kind !== kind)) {
152
+ throw new Error("turn contains an attachment with an unsupported type");
153
+ }
154
+ if (typeof row?.byte_size !== "number" ||
155
+ !Number.isFinite(row.byte_size) ||
156
+ row.byte_size < 0) {
157
+ throw new Error("turn contains an attachment with invalid byte-size metadata");
158
+ }
159
+ if (!isWithinSizeCeiling(kind, row.byte_size)) {
160
+ throw new Error("turn contains an attachment over the size ceiling");
161
+ }
162
+ declaredBytes += row.byte_size;
163
+ if (declaredBytes > MAX_TURN_ATTACHMENT_BYTES) {
164
+ throw new Error("turn attachments exceed the aggregate byte ceiling");
165
+ }
166
+ ids.push(id);
167
+ }
168
+ const fetched = [];
169
+ let downloadedBytes = 0;
170
+ for (const id of ids) {
171
+ const attachment = await fetchAttachment(id, {
172
+ ...deps,
173
+ maxBytes: MAX_TURN_ATTACHMENT_BYTES - downloadedBytes,
174
+ });
175
+ downloadedBytes += attachment.bytes.byteLength;
176
+ if (downloadedBytes > MAX_TURN_ATTACHMENT_BYTES) {
177
+ throw new Error("turn attachments exceed the aggregate byte ceiling");
178
+ }
179
+ fetched.push(attachment);
180
+ }
181
+ return fetched;
182
+ }
55
183
  //# sourceMappingURL=fetch-attachment.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-attachment.js","sourceRoot":"","sources":["../../src/attachments/fetch-attachment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAoB1E,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,YAAoB,EACpB,IAAyB;IAEzB,IAAI,CAAC,YAAY;QAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC7E,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC;IACxC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAEhD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,IAAI,uBAAuB,EAAE;QAC5D,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,aAAa,EAAE,UAAU,IAAI,CAAC,SAAS,EAAE;SAC1C;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC;KAC3E,CAAC,CAAC;IACH,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,8BAA8B,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAClE,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,CAAyB,CAAC;IAC5D,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,CAAC,KAAK,IAAI,eAAe,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,IAAI,GACP,IAAI,CAAC,IAAmC,IAAI,kBAAkB,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;IAC3F,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,wCAAwC,IAAI,CAAC,YAAY,IAAI,SAAS,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/C,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,iCAAiC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACrE,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAC1D,IAAI,KAAK,CAAC,UAAU,GAAG,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CACb,cAAc,KAAK,CAAC,UAAU,kBAAkB,oBAAoB,CAAC,IAAI,CAAC,qBAAqB,IAAI,EAAE,CACtG,CAAC;IACJ,CAAC;IAED,OAAO;QACL,YAAY;QACZ,IAAI;QACJ,WAAW,EAAE,IAAI,CAAC,YAAY,IAAI,EAAE;QACpC,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,MAAM;QACjC,KAAK;KACN,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"fetch-attachment.js","sourceRoot":"","sources":["../../src/attachments/fetch-attachment.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@
16
16
  */
17
17
  export type { AttachmentKind, FetchedAttachment, EngineContentBlock, EngineBase64Source, } from "./types.js";
18
18
  export { MAX_ATTACHMENT_BYTES, ALLOWED_CONTENT_TYPES, normalizeContentType, kindForContentType, isWithinSizeCeiling, } from "./allowlist.js";
19
- export { fetchAttachment, type FetchAttachmentDeps } from "./fetch-attachment.js";
19
+ export { fetchAttachment, fetchTurnAttachments, MAX_TURN_ATTACHMENTS, MAX_TURN_ATTACHMENT_BYTES, type FetchAttachmentDeps, type FetchTurnAttachmentsDeps, } from "./fetch-attachment.js";
20
20
  export { toEngineContentBlock, toEngineContentBlocks } from "./content-block.js";
21
+ export { stageCodexImages, withCodexImages, type CodexImageStage } from "./codex-stage.js";
21
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/attachments/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,YAAY,EACV,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,KAAK,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAElF,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/attachments/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,YAAY,EACV,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,yBAAyB,EACzB,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,GAC9B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAEjF,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC"}
@@ -15,6 +15,7 @@
15
15
  * the chat serve path.
16
16
  */
17
17
  export { MAX_ATTACHMENT_BYTES, ALLOWED_CONTENT_TYPES, normalizeContentType, kindForContentType, isWithinSizeCeiling, } from "./allowlist.js";
18
- export { fetchAttachment } from "./fetch-attachment.js";
18
+ export { fetchAttachment, fetchTurnAttachments, MAX_TURN_ATTACHMENTS, MAX_TURN_ATTACHMENT_BYTES, } from "./fetch-attachment.js";
19
19
  export { toEngineContentBlock, toEngineContentBlocks } from "./content-block.js";
20
+ export { stageCodexImages, withCodexImages } from "./codex-stage.js";
20
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/attachments/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AASH,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,eAAe,EAA4B,MAAM,uBAAuB,CAAC;AAElF,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/attachments/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AASH,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,yBAAyB,GAG1B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAEjF,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAwB,MAAM,kBAAkB,CAAC"}
@@ -1,3 +1,3 @@
1
- export declare const BUILD_COMMIT_SHA = "5b40ef40fe44b552238ee21cb9d6a1abc3ae2db8";
1
+ export declare const BUILD_COMMIT_SHA = "a1b104bbb55f621220c131647f8cfc8f98bb1d90";
2
2
  export declare const BUILD_DIST_SHA256 = "pending-build";
3
3
  //# sourceMappingURL=build-info.generated.d.ts.map
@@ -1,3 +1,3 @@
1
1
  // Generated by scripts/gen-build-info.mjs. Do not edit by hand.
2
- export const BUILD_COMMIT_SHA = "5b40ef40fe44b552238ee21cb9d6a1abc3ae2db8";
3
- export const BUILD_DIST_SHA256 = "315020a9a7c9ce65e1e35c70a989bb71cc8b577aec47b4091faa53d415352067";
2
+ export const BUILD_COMMIT_SHA = "a1b104bbb55f621220c131647f8cfc8f98bb1d90";
3
+ export const BUILD_DIST_SHA256 = "a80425ade7f3111f44cd987389de698474b8c2eb479e106d96be24f0cc8f4ccc";
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Commit and digest shapes, as the database defines them.
3
+ *
4
+ * `acc.production_migration_promotions.commit_sha` (0397),
5
+ * `acc.staging_migration_promotions.commit_sha` (0394) and
6
+ * `acc.preview_environments.head_sha` (0398) are each
7
+ * `check (… ~ '^[0-9a-f]{40}$')`, and Postgres `~` is case-sensitive. Lowercase
8
+ * is the stored contract — which costs nothing, since git and the GitHub API
9
+ * only ever emit lowercase.
10
+ *
11
+ * The runner was looser than its own database in four places and stricter in a
12
+ * fifth, so `promotion.commit_sha` had two answers on the way to one migration:
13
+ * `verifyProductionCheckout` accepted either case, `assertPromotion` accepted
14
+ * only lowercase. An uppercase sha would clear the first, open a production
15
+ * database connection, and only then be refused by the second — after `started`
16
+ * was set, which is the branch that skips the completion receipt. The column
17
+ * constraints make that unreachable today; these shapes make it unreachable in
18
+ * the runner too, and refuse early rather than mid-promotion.
19
+ *
20
+ * Defined here rather than imported from the app's `src/lib` because
21
+ * `@tokenfactory/acc-runner` is published separately and never imports from the
22
+ * app — the same reason `prompt.ts` and `types.ts` keep their own slim copies.
23
+ * Keep this in step with the column constraints above, not with the app.
24
+ */
25
+ /** A git commit sha: 40 lowercase hex characters. */
26
+ export declare const COMMIT_SHA_RE: RegExp;
27
+ /** A sha-256 digest: 64 lowercase hex characters. */
28
+ export declare const DIGEST_SHA256_RE: RegExp;
29
+ export declare const isCommitSha: (value: string) => boolean;
30
+ export declare const isSha256Digest: (value: string) => boolean;
31
+ //# sourceMappingURL=commit-sha.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commit-sha.d.ts","sourceRoot":"","sources":["../src/commit-sha.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,qDAAqD;AACrD,eAAO,MAAM,aAAa,QAAmB,CAAC;AAC9C,qDAAqD;AACrD,eAAO,MAAM,gBAAgB,QAAmB,CAAC;AAEjD,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,KAAG,OAAoC,CAAC;AACjF,eAAO,MAAM,cAAc,GAAI,OAAO,MAAM,KAAG,OAAuC,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Commit and digest shapes, as the database defines them.
3
+ *
4
+ * `acc.production_migration_promotions.commit_sha` (0397),
5
+ * `acc.staging_migration_promotions.commit_sha` (0394) and
6
+ * `acc.preview_environments.head_sha` (0398) are each
7
+ * `check (… ~ '^[0-9a-f]{40}$')`, and Postgres `~` is case-sensitive. Lowercase
8
+ * is the stored contract — which costs nothing, since git and the GitHub API
9
+ * only ever emit lowercase.
10
+ *
11
+ * The runner was looser than its own database in four places and stricter in a
12
+ * fifth, so `promotion.commit_sha` had two answers on the way to one migration:
13
+ * `verifyProductionCheckout` accepted either case, `assertPromotion` accepted
14
+ * only lowercase. An uppercase sha would clear the first, open a production
15
+ * database connection, and only then be refused by the second — after `started`
16
+ * was set, which is the branch that skips the completion receipt. The column
17
+ * constraints make that unreachable today; these shapes make it unreachable in
18
+ * the runner too, and refuse early rather than mid-promotion.
19
+ *
20
+ * Defined here rather than imported from the app's `src/lib` because
21
+ * `@tokenfactory/acc-runner` is published separately and never imports from the
22
+ * app — the same reason `prompt.ts` and `types.ts` keep their own slim copies.
23
+ * Keep this in step with the column constraints above, not with the app.
24
+ */
25
+ /** A git commit sha: 40 lowercase hex characters. */
26
+ export const COMMIT_SHA_RE = /^[0-9a-f]{40}$/;
27
+ /** A sha-256 digest: 64 lowercase hex characters. */
28
+ export const DIGEST_SHA256_RE = /^[0-9a-f]{64}$/;
29
+ export const isCommitSha = (value) => COMMIT_SHA_RE.test(value);
30
+ export const isSha256Digest = (value) => DIGEST_SHA256_RE.test(value);
31
+ //# sourceMappingURL=commit-sha.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commit-sha.js","sourceRoot":"","sources":["../src/commit-sha.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,qDAAqD;AACrD,MAAM,CAAC,MAAM,aAAa,GAAG,gBAAgB,CAAC;AAC9C,qDAAqD;AACrD,MAAM,CAAC,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;AAEjD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAa,EAAW,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAa,EAAW,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"companion-run.d.ts","sourceRoot":"","sources":["../src/companion-run.ts"],"names":[],"mappings":"AAuEA,OAAO,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAE9F,gFAAgF;AAChF,MAAM,WAAW,eAAe;IAC9B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAED;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,kCAAkC,CAAC;AAEtE;;;;GAIG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,eAAe,CAAC,CAgejE;AAED,+DAA+D;AAC/D,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CAmB5D;AAED,8DAA8D;AAC9D,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CAK7D;AAED,wCAAwC;AACxC,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC,CAK/D"}
1
+ {"version":3,"file":"companion-run.d.ts","sourceRoot":"","sources":["../src/companion-run.ts"],"names":[],"mappings":"AAyEA,OAAO,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAE9F,gFAAgF;AAChF,MAAM,WAAW,eAAe;IAC9B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAED;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,kCAAkC,CAAC;AAEtE;;;;GAIG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,eAAe,CAAC,CA2ejE;AAED,+DAA+D;AAC/D,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CAmB5D;AAED,8DAA8D;AAC9D,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CAK7D;AAED,wCAAwC;AACxC,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC,CAK/D"}
@@ -15,6 +15,8 @@ import { RefreshReuseDetectedError, expiresSoon, refreshAccessToken, } from "./r
15
15
  import { CHAT_WALL_CLOCK_MS_ENV, resolveChatWallClockMs, } from "./chat-lane.js";
16
16
  import { createSupabaseChatTransport } from "./chat-transport.js";
17
17
  import { getConfiguredChatEngine } from "./engines/registry.js";
18
+ import { createCodexChatEngine } from "./engines/codex-chat.js";
19
+ import { fetchTurnAttachments } from "./attachments/fetch-attachment.js";
18
20
  import { ensureChatModelSelectionCaps, reportCodexModelCatalog } from "./codex-model-catalog.js";
19
21
  import { createMcpConfigSession, probeMcpServer, } from "./mcp-spawn.js";
20
22
  // NS RUN-3: ANTHROPIC_API_KEY sourced from the vault secret store.
@@ -98,7 +100,18 @@ export async function companionCommand() {
98
100
  let supabase = createRunnerClient(cfg, session.access_token, session.realtime_config);
99
101
  const breaker = new ChatCircuitBreaker();
100
102
  await breaker.load();
101
- const engine = getConfiguredChatEngine();
103
+ const configuredEngine = getConfiguredChatEngine();
104
+ // Codex's verified local-image transport is adapter-specific. Resolve only
105
+ // the files linked to this claimed lane turn through the owner JWT; Claude and
106
+ // Gemini keep their existing untouched adapters and receive no resolver.
107
+ const engine = configuredEngine.id === "codex"
108
+ ? createCodexChatEngine({
109
+ resolveAttachments: (turn) => fetchTurnAttachments(turn.conversationId, turn.turnId, {
110
+ publicUrl: cfg.publicUrl,
111
+ authToken: session.access_token,
112
+ }),
113
+ })
114
+ : configuredEngine;
102
115
  // CHAT-LANE-BRIDGE: the durable-ingest sink completes the round-trip. The
103
116
  // runner (authenticated) can't write the service-role delta/message tables, so
104
117
  // it POSTs its stream/complete frames to the server, which persists them under
@@ -1 +1 @@
1
- {"version":3,"file":"companion-run.js","sourceRoot":"","sources":["../src/companion-run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"companion-run.js","sourceRoot":"","sources":["../src/companion-run.ts"],"names":[],"mappings":"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"}