experimental-ash 0.3.0-alpha.13 → 0.3.0-alpha.14

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 (28) hide show
  1. package/dist/src/execution/sandboxes/bindings/local.js +11 -0
  2. package/dist/src/execution/sandboxes/bindings/local.js.map +1 -1
  3. package/dist/src/execution/sandboxes/bindings/vercel.js +7 -0
  4. package/dist/src/execution/sandboxes/bindings/vercel.js.map +1 -1
  5. package/dist/src/execution/sandboxes/session.d.ts +10 -0
  6. package/dist/src/execution/sandboxes/session.d.ts.map +1 -1
  7. package/dist/src/execution/sandboxes/session.js +4 -0
  8. package/dist/src/execution/sandboxes/session.js.map +1 -1
  9. package/dist/src/harness/attachment-staging.d.ts +79 -19
  10. package/dist/src/harness/attachment-staging.d.ts.map +1 -1
  11. package/dist/src/harness/attachment-staging.js +218 -24
  12. package/dist/src/harness/attachment-staging.js.map +1 -1
  13. package/dist/src/harness/tool-loop.d.ts.map +1 -1
  14. package/dist/src/harness/tool-loop.js +14 -4
  15. package/dist/src/harness/tool-loop.js.map +1 -1
  16. package/dist/src/internal/application/package.js +1 -1
  17. package/dist/src/internal/attachments/sandbox-refs.d.ts +99 -0
  18. package/dist/src/internal/attachments/sandbox-refs.d.ts.map +1 -0
  19. package/dist/src/internal/attachments/sandbox-refs.js +127 -0
  20. package/dist/src/internal/attachments/sandbox-refs.js.map +1 -0
  21. package/dist/src/internal/nitro/routes/web-ui/assets/index-BEQWswDI.js +11 -0
  22. package/dist/src/internal/nitro/routes/web-ui/index.html +2 -2
  23. package/dist/src/public/definitions/sandbox.d.ts +13 -0
  24. package/dist/src/public/definitions/sandbox.d.ts.map +1 -1
  25. package/dist/src/public/definitions/sandbox.js.map +1 -1
  26. package/package.json +1 -1
  27. package/dist/src/internal/nitro/routes/web-ui/assets/index.js +0 -11
  28. /package/dist/src/internal/nitro/routes/web-ui/assets/{style.css → style-Kqb6YxTP.css} +0 -0
@@ -148,6 +148,16 @@ async function createBashSandbox(input) {
148
148
  const result = await bash.exec(command);
149
149
  return { exitCode: result.exitCode, stderr: result.stderr, stdout: result.stdout };
150
150
  },
151
+ async readFileBytes(path) {
152
+ let bytes;
153
+ try {
154
+ bytes = await filesystem.readFileBuffer(path);
155
+ }
156
+ catch {
157
+ return null;
158
+ }
159
+ return Buffer.from(bytes);
160
+ },
151
161
  async readFileText(path) {
152
162
  let bytes;
153
163
  try {
@@ -193,6 +203,7 @@ function createHandle(sandbox, sandboxName) {
193
203
  function createLocalSessionPrimitives(sandbox) {
194
204
  return {
195
205
  id: sandbox.sessionKey,
206
+ readFileBytes: (path) => sandbox.readFileBytes(path),
196
207
  readFileRaw: (path) => sandbox.readFileText(path),
197
208
  resolvePath: resolveLocalPath,
198
209
  runCommand: (command) => sandbox.executeCommand(command),
@@ -1 +1 @@
1
- {"version":3,"file":"local.js","sourceRoot":"","sources":["../../../../../src/execution/sandboxes/bindings/local.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local.js","sourceRoot":"","sources":["../../../../../src/execution/sandboxes/bindings/local.ts"],"names":[],"mappings":"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"}
@@ -135,6 +135,13 @@ function createHandle(sandbox, sandboxName, sessionKey) {
135
135
  function createVercelSessionPrimitives(sandbox, id) {
136
136
  return {
137
137
  id,
138
+ async readFileBytes(resolvedPath) {
139
+ const buffer = await sandbox.readFileToBuffer({ path: resolvedPath });
140
+ if (buffer === null) {
141
+ return null;
142
+ }
143
+ return Buffer.isBuffer(buffer) ? buffer : Buffer.from(buffer);
144
+ },
138
145
  async readFileRaw(resolvedPath) {
139
146
  const buffer = await sandbox.readFileToBuffer({ path: resolvedPath });
140
147
  if (buffer === null) {
@@ -1 +1 @@
1
- {"version":3,"file":"vercel.js","sourceRoot":"","sources":["../../../../../src/execution/sandboxes/bindings/vercel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vercel.js","sourceRoot":"","sources":["../../../../../src/execution/sandboxes/bindings/vercel.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,16 @@ export interface SandboxSessionPrimitives {
16
16
  * live sessions or the `templateKey` for bootstrap/prewarm sessions.
17
17
  */
18
18
  readonly id: string;
19
+ /**
20
+ * Reads the full file at `resolvedPath` as raw bytes, or `null` if
21
+ * missing.
22
+ *
23
+ * The public {@link SandboxSession} exposes only text reads; this
24
+ * binary counterpart is consumed by internal framework paths that
25
+ * need byte fidelity — attachment hydration, for example — where a
26
+ * UTF-8 decode would corrupt the payload.
27
+ */
28
+ readFileBytes(resolvedPath: string): Promise<Buffer | null>;
19
29
  /** Reads the full file at `resolvedPath` as UTF-8, or `null` if missing. */
20
30
  readFileRaw(resolvedPath: string): Promise<string | null>;
21
31
  /** Translates a user-facing path to the backend's native path. */
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../../src/execution/sandboxes/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EAEpB,cAAc,EACf,MAAM,qCAAqC,CAAC;AAE7C;;;;;;GAMG;AACH,MAAM,WAAW,wBAAwB;IACvC;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,4EAA4E;IAC5E,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC1D,kEAAkE;IAClE,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAClC,iDAAiD;IACjD,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC3D;;;;;;;OAOG;IACH,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7E;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,wBAAwB,GAAG,cAAc,CAuBxF"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../../src/execution/sandboxes/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EAEpB,cAAc,EACf,MAAM,qCAAqC,CAAC;AAE7C;;;;;;GAMG;AACH,MAAM,WAAW,wBAAwB;IACvC;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB;;;;;;;;OAQG;IACH,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC5D,4EAA4E;IAC5E,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC1D,kEAAkE;IAClE,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAClC,iDAAiD;IACjD,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC3D;;;;;;;OAOG;IACH,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7E;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,wBAAwB,GAAG,cAAc,CA2BxF"}
@@ -16,6 +16,10 @@ export function buildSandboxSession(primitives) {
16
16
  }
17
17
  return applyLineRange(content, options);
18
18
  },
19
+ async readFileBytes(path) {
20
+ const resolvedPath = primitives.resolvePath(path);
21
+ return await primitives.readFileBytes(resolvedPath);
22
+ },
19
23
  resolvePath(path) {
20
24
  return primitives.resolvePath(path);
21
25
  },
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../../src/execution/sandboxes/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../../src/execution/sandboxes/session.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { UserContent } from "ai";
1
+ import type { ModelMessage, UserContent } from "ai";
2
2
  import type { ChannelAdapterContext } from "../channel/adapter.js";
3
3
  import type { SandboxSession } from "../public/definitions/sandbox.js";
4
4
  /**
@@ -9,28 +9,40 @@ import type { SandboxSession } from "../public/definitions/sandbox.js";
9
9
  export declare const ATTACHMENTS_ROOT = "/workspace/attachments";
10
10
  /**
11
11
  * Writes every `FilePart` carried on the inbound turn message into the
12
- * agent's sandbox, rewrites each part's `filename` to the resolved
13
- * backend-native path, and replaces `data` with the resolved bytes so
14
- * the provider receives the file inline. The model gets the bytes
15
- * (vision providers) *and* a concrete sandbox path (`read_file`,
16
- * `bash`, custom tools) — one write, two consumption paths.
12
+ * agent's sandbox and rewrites each part so no raw bytes travel on the
13
+ * returned message.
14
+ *
15
+ * Each `FilePart` is transformed to carry:
16
+ *
17
+ * - `data` — an `ash-sandbox:` URL encoding `{ path, size, mediaType }`.
18
+ * The raw bytes are NOT attached. Sandbox URLs are small enough
19
+ * (typically <300 bytes) to cross step boundaries without bloating
20
+ * `session.history`.
21
+ * - `filename` — the backend-native resolved path (for example
22
+ * `/vercel/sandbox/workspace/attachments/<sha>/<name>` on Vercel),
23
+ * so tools (`read_file`, `bash`, authored tools) can access the
24
+ * file directly from the sandbox filesystem.
25
+ * - `mediaType` — preserved in parallel with the sandbox-ref's `type`
26
+ * param so providers and AI SDK consumers see the expected shape.
17
27
  *
18
28
  * Opaque `data` shapes (`ash-attachment:` refs, data URLs, bare base64
19
- * strings) are resolved to `Buffer` before handoff so downstream
20
- * providers never see a scheme they cannot fetch. Remote `http(s):`
21
- * URLs pass through untouched — the provider fetches those directly.
29
+ * strings) are resolved to bytes here before being written to the
30
+ * sandbox. Remote `http(s):` URLs pass through untouched — the
31
+ * provider fetches those directly. `ash-sandbox:` URLs are passed
32
+ * through unchanged (idempotent staging).
22
33
  *
23
- * Addressing is SHA-prefixed to dedupe across turns and sessions.
24
- * Human-supplied filenames are preserved as the on-disk basename after
25
- * sanitization. Attachments accumulate under {@link ATTACHMENTS_ROOT};
26
- * cleanup is left to the sandbox lifecycle.
34
+ * The raw bytes are written once at staging time; subsequent model
35
+ * calls within the same step (and across all future steps of the
36
+ * conversation) reach the bytes via the hydration pass, never the
37
+ * message history. Addressing is SHA-prefixed to dedupe across turns
38
+ * and sessions.
27
39
  *
28
40
  * `adapterCtx` is the same shape the runtime hands to `deliver` and
29
- * event handlers. {@link stageAttachmentsFromContext} builds it from
30
- * the active {@link AshContext}; tests that never produce refs can
31
- * pass a stub whose accessor answers `undefined` for
32
- * {@link ChannelKey} — a ref on the message will then surface as
33
- * {@link AshAttachmentError} with `kind: "missing-adapter"`.
41
+ * event handlers. {@link stageAttachmentsToSandbox} builds it from the
42
+ * active {@link AshContext}; tests that never produce refs can pass a
43
+ * stub whose accessor answers `undefined` for {@link ChannelKey} — a
44
+ * ref on the message will then surface as {@link AshAttachmentError}
45
+ * with `kind: "missing-adapter"`.
34
46
  *
35
47
  * This module imports Node built-ins (`node:crypto`, `node:path`) and
36
48
  * is only safe to call from step-running code.
@@ -59,5 +71,53 @@ export declare function stageAttachmentsForAdapter(content: string | UserContent
59
71
  * message into the model history. Exposed here so integration tests can
60
72
  * exercise the same handoff without driving the full harness.
61
73
  */
62
- export declare function stageAttachmentsFromContext(message: string | UserContent): Promise<string | UserContent>;
74
+ export declare function stageAttachmentsToSandbox(message: string | UserContent): Promise<string | UserContent>;
75
+ /**
76
+ * Hydrates `ash-sandbox:` ref `FilePart`s in a message list into the
77
+ * shape expected at the AI SDK model call site.
78
+ *
79
+ * Walks every message's content. For each `FilePart` whose `data` is
80
+ * an `ash-sandbox:` URL, branches on the ref's `mediaType` and `size`:
81
+ *
82
+ * - Images (`image/*`) with `size <= 3 MiB` are hydrated as inline
83
+ * bytes — the provider consumes them multimodally.
84
+ * - PDFs (`application/pdf`) with `size <= 20 MiB` are hydrated as
85
+ * inline bytes — most document-aware providers ingest PDFs natively
86
+ * at these sizes.
87
+ * - Everything else (oversized images, large PDFs, every non-image /
88
+ * non-PDF media type) is substituted for a {@link TextPart} of the
89
+ * form `Attached file <path> (<mediaType>)`. The path is the
90
+ * backend-native resolved sandbox path recorded on the ref, so the
91
+ * agent can reach the bytes through its normal filesystem tools
92
+ * (`read_file`, `bash`, authored tools) without the model ever
93
+ * receiving the payload inline. This matches the text shape
94
+ * compaction produces when summarizing older file attachments,
95
+ * giving the model one consistent way to reason about staged files.
96
+ *
97
+ * Every other shape (inline `Buffer`, remote `http(s):` URL,
98
+ * already-staged or unrelated `URL`) passes through unchanged, so
99
+ * repeated hydration is idempotent.
100
+ *
101
+ * Non-mutating: when nothing needs rewriting the input array is
102
+ * returned as-is (no allocation), so the common attachment-free turn
103
+ * pays zero overhead. When hydration is needed, a new array with new
104
+ * message objects is returned — the original messages (and the
105
+ * `session.history` that will eventually be persisted from them) are
106
+ * never mutated. This preserves the core invariant: `session.history`
107
+ * stays ref-only across step boundaries regardless of the inlining
108
+ * decision taken here, so every step re-evaluates the decision from
109
+ * the same stable wire format.
110
+ *
111
+ * The hydrated array is intended for one-shot consumption at the
112
+ * model call site; it must never be written back onto `session.history`
113
+ * or `promptMessages`, because that would defeat the whole purpose of
114
+ * the sandbox-ref wire format.
115
+ *
116
+ * Throws when a `SandboxKey` is required (a message contains an
117
+ * `ash-sandbox:` ref that will inline as bytes) but none is bound on
118
+ * the active context, or when the referenced payload is missing from
119
+ * the sandbox — both indicate a programming error elsewhere in the
120
+ * pipeline rather than a recoverable condition.
121
+ */
122
+ export declare function hydrateSandboxAttachments(messages: readonly ModelMessage[]): Promise<ModelMessage[]>;
63
123
  //# sourceMappingURL=attachment-staging.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"attachment-staging.d.ts","sourceRoot":"","sources":["../../../src/harness/attachment-staging.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAY,WAAW,EAAE,MAAM,IAAI,CAAC;AAGhD,OAAO,KAAK,EAEV,qBAAqB,EAEtB,MAAM,uBAAuB,CAAC;AAO/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAEvE;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,2BAA2B,CAAC;AAKzD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,MAAM,GAAG,WAAW,EAC7B,OAAO,EAAE,cAAc,EACvB,UAAU,EAAE,qBAAqB,GAChC,OAAO,CAAC,MAAM,GAAG,WAAW,CAAC,CAa/B;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,MAAM,GAAG,WAAW,GAC5B,OAAO,CAAC,MAAM,GAAG,WAAW,CAAC,CAkC/B"}
1
+ {"version":3,"file":"attachment-staging.d.ts","sourceRoot":"","sources":["../../../src/harness/attachment-staging.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAY,YAAY,EAAY,WAAW,EAAE,MAAM,IAAI,CAAC;AAGxE,OAAO,KAAK,EAEV,qBAAqB,EAEtB,MAAM,uBAAuB,CAAC;AAa/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAEvE;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,2BAA2B,CAAC;AAwBzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,MAAM,GAAG,WAAW,EAC7B,OAAO,EAAE,cAAc,EACvB,UAAU,EAAE,qBAAqB,GAChC,OAAO,CAAC,MAAM,GAAG,WAAW,CAAC,CAa/B;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,MAAM,GAAG,WAAW,GAC5B,OAAO,CAAC,MAAM,GAAG,WAAW,CAAC,CAkC/B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,SAAS,YAAY,EAAE,GAChC,OAAO,CAAC,YAAY,EAAE,CAAC,CA6BzB"}
@@ -7,6 +7,7 @@ import { ChannelKey, SandboxKey } from "../context/keys.js";
7
7
  import { fileDataToBytes } from "../internal/attachments/data.js";
8
8
  import { AshAttachmentError } from "../internal/attachments/errors.js";
9
9
  import { isAttachmentRefUrl, parseAttachmentRef } from "../internal/attachments/refs.js";
10
+ import { decodeSandboxRef, encodeSandboxRef, isSandboxRefUrl, } from "../internal/attachments/sandbox-refs.js";
10
11
  /**
11
12
  * Sandbox directory where inbound file attachments are staged before the
12
13
  * model call. Authored canonical path — {@link SandboxSession.writeFile}
@@ -15,30 +16,57 @@ import { isAttachmentRefUrl, parseAttachmentRef } from "../internal/attachments/
15
16
  export const ATTACHMENTS_ROOT = "/workspace/attachments";
16
17
  const UNSAFE_FILENAME_CHARS = /[^\w.-]+/g;
17
18
  const SHA_PREFIX_LENGTH = 16;
19
+ const DEFAULT_MEDIA_TYPE = "application/octet-stream";
20
+ /**
21
+ * Upper bound, in bytes, on image payloads that hydrate as inline bytes
22
+ * on the model call. Larger images are substituted for a text reference
23
+ * pointing at the staged sandbox path so the agent can read the file
24
+ * through its normal filesystem tools (`read_file`, `bash`, etc.).
25
+ */
26
+ const HYDRATE_IMAGE_INLINE_MAX_BYTES = 3 * 1024 * 1024;
27
+ /**
28
+ * Upper bound, in bytes, on PDF payloads that hydrate as inline bytes.
29
+ * Matches provider-side caps for native document understanding.
30
+ */
31
+ const HYDRATE_PDF_INLINE_MAX_BYTES = 20 * 1024 * 1024;
32
+ const PDF_MEDIA_TYPE = "application/pdf";
33
+ const IMAGE_MEDIA_TYPE_PREFIX = "image/";
18
34
  /**
19
35
  * Writes every `FilePart` carried on the inbound turn message into the
20
- * agent's sandbox, rewrites each part's `filename` to the resolved
21
- * backend-native path, and replaces `data` with the resolved bytes so
22
- * the provider receives the file inline. The model gets the bytes
23
- * (vision providers) *and* a concrete sandbox path (`read_file`,
24
- * `bash`, custom tools) — one write, two consumption paths.
36
+ * agent's sandbox and rewrites each part so no raw bytes travel on the
37
+ * returned message.
38
+ *
39
+ * Each `FilePart` is transformed to carry:
40
+ *
41
+ * - `data` — an `ash-sandbox:` URL encoding `{ path, size, mediaType }`.
42
+ * The raw bytes are NOT attached. Sandbox URLs are small enough
43
+ * (typically <300 bytes) to cross step boundaries without bloating
44
+ * `session.history`.
45
+ * - `filename` — the backend-native resolved path (for example
46
+ * `/vercel/sandbox/workspace/attachments/<sha>/<name>` on Vercel),
47
+ * so tools (`read_file`, `bash`, authored tools) can access the
48
+ * file directly from the sandbox filesystem.
49
+ * - `mediaType` — preserved in parallel with the sandbox-ref's `type`
50
+ * param so providers and AI SDK consumers see the expected shape.
25
51
  *
26
52
  * Opaque `data` shapes (`ash-attachment:` refs, data URLs, bare base64
27
- * strings) are resolved to `Buffer` before handoff so downstream
28
- * providers never see a scheme they cannot fetch. Remote `http(s):`
29
- * URLs pass through untouched — the provider fetches those directly.
53
+ * strings) are resolved to bytes here before being written to the
54
+ * sandbox. Remote `http(s):` URLs pass through untouched — the
55
+ * provider fetches those directly. `ash-sandbox:` URLs are passed
56
+ * through unchanged (idempotent staging).
30
57
  *
31
- * Addressing is SHA-prefixed to dedupe across turns and sessions.
32
- * Human-supplied filenames are preserved as the on-disk basename after
33
- * sanitization. Attachments accumulate under {@link ATTACHMENTS_ROOT};
34
- * cleanup is left to the sandbox lifecycle.
58
+ * The raw bytes are written once at staging time; subsequent model
59
+ * calls within the same step (and across all future steps of the
60
+ * conversation) reach the bytes via the hydration pass, never the
61
+ * message history. Addressing is SHA-prefixed to dedupe across turns
62
+ * and sessions.
35
63
  *
36
64
  * `adapterCtx` is the same shape the runtime hands to `deliver` and
37
- * event handlers. {@link stageAttachmentsFromContext} builds it from
38
- * the active {@link AshContext}; tests that never produce refs can
39
- * pass a stub whose accessor answers `undefined` for
40
- * {@link ChannelKey} — a ref on the message will then surface as
41
- * {@link AshAttachmentError} with `kind: "missing-adapter"`.
65
+ * event handlers. {@link stageAttachmentsToSandbox} builds it from the
66
+ * active {@link AshContext}; tests that never produce refs can pass a
67
+ * stub whose accessor answers `undefined` for {@link ChannelKey} — a
68
+ * ref on the message will then surface as {@link AshAttachmentError}
69
+ * with `kind: "missing-adapter"`.
42
70
  *
43
71
  * This module imports Node built-ins (`node:crypto`, `node:path`) and
44
72
  * is only safe to call from step-running code.
@@ -77,7 +105,7 @@ export async function stageAttachmentsForAdapter(content, sandbox, adapterCtx) {
77
105
  * message into the model history. Exposed here so integration tests can
78
106
  * exercise the same handoff without driving the full harness.
79
107
  */
80
- export async function stageAttachmentsFromContext(message) {
108
+ export async function stageAttachmentsToSandbox(message) {
81
109
  if (typeof message === "string") {
82
110
  return message;
83
111
  }
@@ -108,6 +136,74 @@ export async function stageAttachmentsFromContext(message) {
108
136
  : { ctx: container, state: {} };
109
137
  return stageAttachmentsForAdapter(message, sandbox, adapterCtx);
110
138
  }
139
+ /**
140
+ * Hydrates `ash-sandbox:` ref `FilePart`s in a message list into the
141
+ * shape expected at the AI SDK model call site.
142
+ *
143
+ * Walks every message's content. For each `FilePart` whose `data` is
144
+ * an `ash-sandbox:` URL, branches on the ref's `mediaType` and `size`:
145
+ *
146
+ * - Images (`image/*`) with `size <= 3 MiB` are hydrated as inline
147
+ * bytes — the provider consumes them multimodally.
148
+ * - PDFs (`application/pdf`) with `size <= 20 MiB` are hydrated as
149
+ * inline bytes — most document-aware providers ingest PDFs natively
150
+ * at these sizes.
151
+ * - Everything else (oversized images, large PDFs, every non-image /
152
+ * non-PDF media type) is substituted for a {@link TextPart} of the
153
+ * form `Attached file <path> (<mediaType>)`. The path is the
154
+ * backend-native resolved sandbox path recorded on the ref, so the
155
+ * agent can reach the bytes through its normal filesystem tools
156
+ * (`read_file`, `bash`, authored tools) without the model ever
157
+ * receiving the payload inline. This matches the text shape
158
+ * compaction produces when summarizing older file attachments,
159
+ * giving the model one consistent way to reason about staged files.
160
+ *
161
+ * Every other shape (inline `Buffer`, remote `http(s):` URL,
162
+ * already-staged or unrelated `URL`) passes through unchanged, so
163
+ * repeated hydration is idempotent.
164
+ *
165
+ * Non-mutating: when nothing needs rewriting the input array is
166
+ * returned as-is (no allocation), so the common attachment-free turn
167
+ * pays zero overhead. When hydration is needed, a new array with new
168
+ * message objects is returned — the original messages (and the
169
+ * `session.history` that will eventually be persisted from them) are
170
+ * never mutated. This preserves the core invariant: `session.history`
171
+ * stays ref-only across step boundaries regardless of the inlining
172
+ * decision taken here, so every step re-evaluates the decision from
173
+ * the same stable wire format.
174
+ *
175
+ * The hydrated array is intended for one-shot consumption at the
176
+ * model call site; it must never be written back onto `session.history`
177
+ * or `promptMessages`, because that would defeat the whole purpose of
178
+ * the sandbox-ref wire format.
179
+ *
180
+ * Throws when a `SandboxKey` is required (a message contains an
181
+ * `ash-sandbox:` ref that will inline as bytes) but none is bound on
182
+ * the active context, or when the referenced payload is missing from
183
+ * the sandbox — both indicate a programming error elsewhere in the
184
+ * pipeline rather than a recoverable condition.
185
+ */
186
+ export async function hydrateSandboxAttachments(messages) {
187
+ if (!messagesContainSandboxRef(messages)) {
188
+ return messages;
189
+ }
190
+ const sandboxAccess = loadContext().get(SandboxKey);
191
+ if (sandboxAccess === undefined) {
192
+ throw new Error("Cannot hydrate sandbox-ref FilePart: no SandboxKey is bound on the active Ash context. " +
193
+ "Hydration must run inside a step scope with the framework sandbox provider installed.");
194
+ }
195
+ const sandbox = await sandboxAccess.get();
196
+ if (sandbox === null) {
197
+ throw new Error("Cannot hydrate sandbox-ref FilePart: SandboxKey is bound but no active sandbox session is available.");
198
+ }
199
+ return Promise.all(messages.map(async (message) => {
200
+ if (!messageContainsSandboxRef(message)) {
201
+ return message;
202
+ }
203
+ const content = await hydrateMessageContent(message.content, sandbox);
204
+ return { ...message, content };
205
+ }));
206
+ }
111
207
  function hasFileParts(content) {
112
208
  for (const part of content) {
113
209
  if (part.type === "file") {
@@ -116,7 +212,102 @@ function hasFileParts(content) {
116
212
  }
117
213
  return false;
118
214
  }
215
+ function messagesContainSandboxRef(messages) {
216
+ for (const message of messages) {
217
+ if (messageContainsSandboxRef(message)) {
218
+ return true;
219
+ }
220
+ }
221
+ return false;
222
+ }
223
+ function messageContainsSandboxRef(message) {
224
+ const content = message.content;
225
+ if (!Array.isArray(content)) {
226
+ return false;
227
+ }
228
+ for (const part of content) {
229
+ if (isSandboxRefFilePart(part)) {
230
+ return true;
231
+ }
232
+ }
233
+ return false;
234
+ }
235
+ /**
236
+ * Narrows a `UserContent` / `ModelMessage.content` element to a
237
+ * {@link FilePart} whose `data` is an `ash-sandbox:` ref URL.
238
+ *
239
+ * Safe on arbitrary input shapes — returns `false` for strings,
240
+ * `null`, non-object values, non-file parts, and file parts whose
241
+ * `data` is not a sandbox ref. Centralises the structural check used
242
+ * by the staging and hydration passes so the two stay in lockstep.
243
+ */
244
+ function isSandboxRefFilePart(part) {
245
+ return (part !== null &&
246
+ typeof part === "object" &&
247
+ part.type === "file" &&
248
+ isSandboxRefUrl(part.data));
249
+ }
250
+ async function hydrateMessageContent(content, sandbox) {
251
+ if (!Array.isArray(content)) {
252
+ return content;
253
+ }
254
+ return Promise.all(content.map(async (part) => {
255
+ if (!isSandboxRefFilePart(part)) {
256
+ return part;
257
+ }
258
+ const filePart = part;
259
+ const ref = decodeSandboxRef(filePart.data);
260
+ if (!shouldInlineSandboxRefAsBytes(ref)) {
261
+ return renderSandboxRefAsTextPart(ref);
262
+ }
263
+ const bytes = await sandbox.readFileBytes(ref.path);
264
+ if (bytes === null) {
265
+ throw new Error(`Sandbox-ref FilePart references missing file: "${ref.path}". ` +
266
+ "The staging pipeline invariant (every ash-sandbox: ref has bytes on disk) was violated.");
267
+ }
268
+ return { ...filePart, data: bytes, mediaType: ref.mediaType };
269
+ }));
270
+ }
271
+ /**
272
+ * Decides whether a sandbox-resident attachment should flow to the
273
+ * model as inline bytes at the hydration step, or be substituted for a
274
+ * text reference pointing at the staged sandbox path.
275
+ *
276
+ * Keep this decision narrow: only the shapes every major provider
277
+ * supports natively qualify for byte inlining. Everything else — raw
278
+ * documents, archives, source code, oversized images/PDFs — reaches
279
+ * the model as a text reference so the agent's filesystem tools do
280
+ * the reading.
281
+ */
282
+ function shouldInlineSandboxRefAsBytes(ref) {
283
+ if (ref.mediaType.startsWith(IMAGE_MEDIA_TYPE_PREFIX)) {
284
+ return ref.size <= HYDRATE_IMAGE_INLINE_MAX_BYTES;
285
+ }
286
+ if (ref.mediaType === PDF_MEDIA_TYPE) {
287
+ return ref.size <= HYDRATE_PDF_INLINE_MAX_BYTES;
288
+ }
289
+ return false;
290
+ }
291
+ /**
292
+ * Renders a sandbox-resident attachment as a {@link TextPart} the model
293
+ * can use to reach the payload through filesystem tools.
294
+ *
295
+ * Matches the text shape produced by the compaction summarizer for
296
+ * `FilePart`s so the model sees one consistent surface for "there is a
297
+ * file at this path" regardless of whether the reference came from the
298
+ * current turn's hydration or a summarized older turn.
299
+ */
300
+ function renderSandboxRefAsTextPart(ref) {
301
+ return { text: `Attached file ${ref.path} (${ref.mediaType})`, type: "text" };
302
+ }
119
303
  async function stageFilePart(part, sandbox, adapterCtx) {
304
+ // Already-staged parts carry an `ash-sandbox:` URL. Pass them
305
+ // through unchanged so repeated staging is a no-op — important
306
+ // when a message re-enters the pipeline (for example, a message
307
+ // coalesced across multiple deliver calls).
308
+ if (isSandboxRefUrl(part.data)) {
309
+ return part;
310
+ }
120
311
  const resolved = isAttachmentRefUrl(part.data)
121
312
  ? await resolveAttachmentRefViaActiveChannel(part.data, adapterCtx)
122
313
  : null;
@@ -128,13 +319,16 @@ async function stageFilePart(part, sandbox, adapterCtx) {
128
319
  const name = safeFilename(resolved?.filename ?? part.filename, sha);
129
320
  const authored = `${ATTACHMENTS_ROOT}/${sha}/${name}`;
130
321
  await sandbox.writeFile(authored, bytes);
131
- // `data` is replaced with the resolved bytes so the AI SDK gateway
132
- // sees inline bytes rather than an opaque `ash-attachment:` URL.
322
+ const resolvedPath = sandbox.resolvePath(authored);
323
+ const mediaType = resolved?.mediaType ?? part.mediaType ?? DEFAULT_MEDIA_TYPE;
324
+ // `data` becomes a compact `ash-sandbox:` URL so no bytes flow into
325
+ // `session.history`. Bytes are rehydrated at the model call site via
326
+ // `hydrateSandboxAttachments`.
133
327
  return {
134
328
  ...part,
135
- data: bytes,
136
- filename: sandbox.resolvePath(authored),
137
- mediaType: resolved?.mediaType ?? part.mediaType,
329
+ data: encodeSandboxRef({ mediaType, path: resolvedPath, size: bytes.byteLength }),
330
+ filename: resolvedPath,
331
+ mediaType,
138
332
  };
139
333
  }
140
334
  /**
@@ -146,7 +340,7 @@ async function stageFilePart(part, sandbox, adapterCtx) {
146
340
  * self-documenting: this is the one place in the staging pipeline that
147
341
  * looks up the active adapter and calls its resolver. No
148
342
  * `AsyncLocalStorage` reads happen here — the caller (which is always
149
- * {@link stageAttachmentsFromContext}) owns the ambient lookup.
343
+ * {@link stageAttachmentsToSandbox}) owns the ambient lookup.
150
344
  *
151
345
  * Always returns a normalized {@link ResolvedAttachment}. Resolvers
152
346
  * that return a bare `Buffer` are wrapped automatically.