@deepagents/context 7.0.1 → 7.1.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 (80) hide show
  1. package/README.md +4 -4
  2. package/dist/browser.js +210 -77
  3. package/dist/browser.js.map +4 -4
  4. package/dist/index.js +1311 -1363
  5. package/dist/index.js.map +4 -4
  6. package/dist/lib/agent.d.ts +21 -45
  7. package/dist/lib/agent.d.ts.map +1 -1
  8. package/dist/lib/chat.d.ts +11 -5
  9. package/dist/lib/chat.d.ts.map +1 -1
  10. package/dist/lib/codec/serialized-fragments.d.ts +7 -5
  11. package/dist/lib/codec/serialized-fragments.d.ts.map +1 -1
  12. package/dist/lib/engine.d.ts.map +1 -1
  13. package/dist/lib/estimate.d.ts +8 -3
  14. package/dist/lib/estimate.d.ts.map +1 -1
  15. package/dist/lib/fragments/plan-shared.d.ts +1 -1
  16. package/dist/lib/fragments/reminders/src/predicates/tool.d.ts.map +1 -1
  17. package/dist/lib/fragments.d.ts +6 -0
  18. package/dist/lib/fragments.d.ts.map +1 -1
  19. package/dist/lib/resolvers/async-resolver.d.ts +2 -2
  20. package/dist/lib/resolvers/async-resolver.d.ts.map +1 -1
  21. package/dist/lib/resolvers/function-resolver.d.ts +2 -2
  22. package/dist/lib/resolvers/function-resolver.d.ts.map +1 -1
  23. package/dist/lib/resolvers/generator-resolver.d.ts +2 -2
  24. package/dist/lib/resolvers/generator-resolver.d.ts.map +1 -1
  25. package/dist/lib/resolvers/iterable-resolver.d.ts +1 -1
  26. package/dist/lib/resolvers/iterable-resolver.d.ts.map +1 -1
  27. package/dist/lib/resolvers/loader-resolver.d.ts.map +1 -1
  28. package/dist/lib/resolvers/promise-resolver.d.ts +1 -1
  29. package/dist/lib/resolvers/promise-resolver.d.ts.map +1 -1
  30. package/dist/lib/resolvers/types.d.ts +3 -2
  31. package/dist/lib/resolvers/types.d.ts.map +1 -1
  32. package/dist/lib/sandbox/apple-container-sandbox.d.ts.map +1 -1
  33. package/dist/lib/sandbox/ast-utils.d.ts +3 -1
  34. package/dist/lib/sandbox/ast-utils.d.ts.map +1 -1
  35. package/dist/lib/sandbox/binary-bridges.d.ts.map +1 -1
  36. package/dist/lib/sandbox/cli-process.d.ts +6 -1
  37. package/dist/lib/sandbox/cli-process.d.ts.map +1 -1
  38. package/dist/lib/sandbox/container-engine.d.ts +4 -1
  39. package/dist/lib/sandbox/container-engine.d.ts.map +1 -1
  40. package/dist/lib/sandbox/container-sandbox.d.ts.map +1 -1
  41. package/dist/lib/sandbox/docker-sandbox.d.ts +3 -3
  42. package/dist/lib/sandbox/docker-sandbox.d.ts.map +1 -1
  43. package/dist/lib/sandbox/index.d.ts +0 -1
  44. package/dist/lib/sandbox/index.d.ts.map +1 -1
  45. package/dist/lib/sandbox/installers/installer.d.ts +6 -1
  46. package/dist/lib/sandbox/installers/installer.d.ts.map +1 -1
  47. package/dist/lib/sandbox/installers/url-binary.d.ts.map +1 -1
  48. package/dist/lib/sandbox/read-file.d.ts +2 -1
  49. package/dist/lib/sandbox/read-file.d.ts.map +1 -1
  50. package/dist/lib/sandbox/strace/index.js +3 -3
  51. package/dist/lib/sandbox/strace/index.js.map +2 -2
  52. package/dist/lib/sandbox/types.d.ts +4 -5
  53. package/dist/lib/sandbox/types.d.ts.map +1 -1
  54. package/dist/lib/skills/frontmatter.d.ts.map +1 -1
  55. package/dist/lib/store/columns.d.ts +13 -0
  56. package/dist/lib/store/columns.d.ts.map +1 -0
  57. package/dist/lib/store/postgres.store.d.ts.map +1 -1
  58. package/dist/lib/store/sqlite.store.d.ts.map +1 -1
  59. package/dist/lib/store/sqlserver.store.d.ts.map +1 -1
  60. package/dist/lib/stream/postgres-notify-change-source.d.ts.map +1 -1
  61. package/dist/lib/stream/postgres.stream-store.d.ts.map +1 -1
  62. package/dist/lib/stream/rows.d.ts +16 -0
  63. package/dist/lib/stream/rows.d.ts.map +1 -0
  64. package/dist/lib/stream/sqlite.stream-store.d.ts.map +1 -1
  65. package/dist/lib/stream-buffer.d.ts +10 -1
  66. package/dist/lib/stream-buffer.d.ts.map +1 -1
  67. package/dist/lib/telemetry/file/index.js +23 -13
  68. package/dist/lib/telemetry/file/index.js.map +2 -2
  69. package/dist/lib/telemetry/index.js +23 -13
  70. package/dist/lib/telemetry/index.js.map +2 -2
  71. package/dist/lib/telemetry/redact-telemetry-event.d.ts +1 -0
  72. package/dist/lib/telemetry/redact-telemetry-event.d.ts.map +1 -1
  73. package/dist/lib/tracing/index.js +27 -24
  74. package/dist/lib/tracing/index.js.map +3 -3
  75. package/dist/lib/tracing/openai-traces-integration.d.ts.map +1 -1
  76. package/dist/lib/tracing/serialization.d.ts +2 -0
  77. package/dist/lib/tracing/serialization.d.ts.map +1 -1
  78. package/package.json +8 -16
  79. package/dist/lib/sandbox/agent-os-sandbox.d.ts +0 -85
  80. package/dist/lib/sandbox/agent-os-sandbox.d.ts.map +0 -1
@@ -84,7 +84,7 @@ export interface DockerNetwork {
84
84
  export interface DockerCommonOptions extends CommonSandboxOptions {
85
85
  volumes?: SandboxVolume[];
86
86
  resources?: DockerResources;
87
- /** Per-command timeout in milliseconds for `executeCommand` and `spawn`. */
87
+ /** Container execution timeout in milliseconds; excludes Docker/SSH connection setup. */
88
88
  commandTimeout?: number;
89
89
  /**
90
90
  * `--platform` (e.g. `'linux/amd64'`) — emulated when it differs from the host
@@ -118,7 +118,7 @@ export interface DockerCommonOptions extends CommonSandboxOptions {
118
118
  devices?: string[];
119
119
  /** `--init` — run an init process as PID 1 that reaps zombie subprocesses. */
120
120
  init?: boolean;
121
- /** `--label` — container metadata, emitted as `key=value` per entry. */
121
+ /** `--label` metadata on the container and any managed volumes it creates. */
122
122
  labels?: Record<string, string>;
123
123
  /** `--sysctl` — kernel parameters, emitted as `key=value` per entry. */
124
124
  sysctls?: Record<string, string>;
@@ -151,7 +151,7 @@ export interface ComposeSandboxOptions {
151
151
  compose: string;
152
152
  service: string;
153
153
  resources?: DockerResources;
154
- /** Per-command timeout in milliseconds for `executeCommand` and `spawn`. */
154
+ /** Container execution timeout in milliseconds; excludes Docker/SSH connection setup. */
155
155
  commandTimeout?: number;
156
156
  }
157
157
  export type DockerSandboxOptions = RuntimeSandboxOptions | DockerfileSandboxOptions | ComposeSandboxOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"docker-sandbox.d.ts","sourceRoot":"","sources":["../../../src/lib/sandbox/docker-sandbox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"docker-sandbox.d.ts","sourceRoot":"","sources":["../../../src/lib/sandbox/docker-sandbox.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- export * from './agent-os-sandbox.ts';
2
1
  export * from './apple-container-sandbox.ts';
3
2
  export * from './bash-exception.ts';
4
3
  export * from './bash-tool.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/sandbox/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,UAAU,CAAC;AACzB,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/sandbox/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,UAAU,CAAC;AACzB,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC"}
@@ -35,5 +35,10 @@ export declare abstract class Installer {
35
35
  abstract install(ctx: InstallerContext): Promise<void>;
36
36
  }
37
37
  export declare function isDebianBased(image: string): boolean;
38
- export declare function createInstallerContext(containerId: string, image: string): InstallerContext;
38
+ /** The container CLI an installer runs commands with, and the error it raises. */
39
+ export interface InstallerCli {
40
+ binary: string;
41
+ SandboxError: new (message: string, containerId?: string) => Error;
42
+ }
43
+ export declare function createInstallerContext(cli: InstallerCli, containerId: string, image: string): InstallerContext;
39
44
  //# sourceMappingURL=installer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../../../../src/lib/sandbox/installers/installer.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,SAAS,CAAC;AAE/C;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACxB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAC9C;;;;OAIG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD;;;;;;OAMG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpE;AAED,8BAAsB,SAAS;IAC7B,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;CACvD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAKpD;AAED,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,GACZ,gBAAgB,CAyGlB"}
1
+ {"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../../../../src/lib/sandbox/installers/installer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,SAAS,CAAC;AAE/C;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACxB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAC9C;;;;OAIG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD;;;;;;OAMG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpE;AAED,8BAAsB,SAAS;IAC7B,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;CACvD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAKpD;AAED,kFAAkF;AAClF,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,KAAK,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,KAAK,CAAC;CACpE;AAED,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,YAAY,EACjB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,GACZ,gBAAgB,CA2GlB"}
@@ -1 +1 @@
1
- {"version":3,"file":"url-binary.d.ts","sourceRoot":"","sources":["../../../../src/lib/sandbox/installers/url-binary.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElE,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,0EAA0E;IAC1E,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAC/B,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,kBAAmB,SAAQ,SAAS;IAC/C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;gBAEvB,OAAO,EAAE,gBAAgB;IAM/B,OAAO,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;CASpD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,kBAAkB,CAEvE;AAqBD,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,UAAU,CAAC,EAAE,MAAM,EACnB,MAAM,GAAE,KAAK,GAAG,gBAAwB,GACvC,OAAO,CAAC,IAAI,CAAC,CAkBf"}
1
+ {"version":3,"file":"url-binary.d.ts","sourceRoot":"","sources":["../../../../src/lib/sandbox/installers/url-binary.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElE,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAYD,MAAM,WAAW,gBAAgB;IAC/B,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,0EAA0E;IAC1E,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAC/B,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,kBAAmB,SAAQ,SAAS;IAC/C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;gBAEvB,OAAO,EAAE,gBAAgB;IAM/B,OAAO,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;CASpD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,kBAAkB,CAEvE;AAqBD,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,UAAU,CAAC,EAAE,MAAM,EACnB,MAAM,GAAE,KAAK,GAAG,gBAAwB,GACvC,OAAO,CAAC,IAAI,CAAC,CAkBf"}
@@ -2,7 +2,8 @@ import type { ReadFileContent, ReadFileEncoding, ReadFileOptions } from './types
2
2
  /**
3
3
  * Shape the bytes a backend read into what `Sandbox.readFile` promised for
4
4
  * `options.encoding`. Every backend reads bytes and ends here, so this is the
5
- * one place the conditional return type is asserted.
5
+ * one place the conditional return type is bound to the runtime value: the
6
+ * overload states the contract, the implementation returns the union.
6
7
  */
7
8
  export declare function readFileContent<Encoding extends ReadFileEncoding>(bytes: Uint8Array, options: ReadFileOptions<Encoding> | undefined): ReadFileContent<Encoding>;
8
9
  //# sourceMappingURL=read-file.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"read-file.d.ts","sourceRoot":"","sources":["../../../src/lib/sandbox/read-file.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAChB,eAAe,EAChB,MAAM,YAAY,CAAC;AAIpB;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,SAAS,gBAAgB,EAC/D,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,eAAe,CAAC,QAAQ,CAAC,GAAG,SAAS,GAC7C,eAAe,CAAC,QAAQ,CAAC,CAI3B"}
1
+ {"version":3,"file":"read-file.d.ts","sourceRoot":"","sources":["../../../src/lib/sandbox/read-file.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAChB,eAAe,EAChB,MAAM,YAAY,CAAC;AAIpB;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,QAAQ,SAAS,gBAAgB,EAC/D,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,eAAe,CAAC,QAAQ,CAAC,GAAG,SAAS,GAC7C,eAAe,CAAC,QAAQ,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  // packages/context/src/lib/sandbox/strace/index.ts
2
- import spawn from "nano-spawn";
2
+ import spawn, { SubprocessError } from "nano-spawn";
3
3
  import { randomUUID } from "node:crypto";
4
4
  import { readFile, rm } from "node:fs/promises";
5
5
  import { posix } from "node:path";
@@ -240,8 +240,8 @@ async function runOnHost(command) {
240
240
  const { stderr } = await spawn("sh", ["-c", command]);
241
241
  return { exitCode: 0, stderr };
242
242
  } catch (error) {
243
- const e = error;
244
- return { exitCode: e.exitCode ?? 1, stderr: e.stderr };
243
+ if (!(error instanceof SubprocessError)) throw error;
244
+ return { exitCode: error.exitCode ?? 1, stderr: error.stderr };
245
245
  }
246
246
  }
247
247
  async function selfTestStrace() {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/lib/sandbox/strace/index.ts", "../../../../src/lib/sandbox/shell-quote.ts"],
4
- "sourcesContent": ["import spawn, { type SubprocessError } from 'nano-spawn';\nimport { randomUUID } from 'node:crypto';\nimport { readFile, rm } from 'node:fs/promises';\nimport { posix } from 'node:path';\n\nimport { shellQuote } from '../shell-quote.ts';\nimport type { FileChange } from './file-change.ts';\n\nexport type { FileChange, FileChangeOp } from './file-change.ts';\n\nexport type StraceUnavailableReason =\n 'ptrace-blocked' | 'strace-missing' | 'trace-unparseable';\n\nconst REASON_HINT: Record<StraceUnavailableReason, string> = {\n 'ptrace-blocked':\n 'ptrace is denied by the sandbox runtime. Modern Docker permits it by default; on a hardened host, relax the runtime seccomp/ptrace policy (allow the ptrace syscall, or add the SYS_PTRACE capability).',\n 'strace-missing':\n 'strace is not installed in the sandbox image. Bake `strace` into the image.',\n 'trace-unparseable':\n 'strace ran but its output is unusable \u2014 the sandbox is likely running under emulation (e.g. amd64 via Rosetta). Use a native-architecture sandbox.',\n};\n\n/**\n * Thrown by {@link selfTestStrace} when per-command strace tracking cannot be\n * used. `reason` lets callers branch (fix-image vs fix-caps vs fix-arch). This\n * is a hard failure by design \u2014 there is no silent degrade to the snapshot\n * observer.\n */\nexport class StraceUnavailableError extends Error {\n readonly reason: StraceUnavailableReason;\n readonly diagnostics: string;\n\n constructor(reason: StraceUnavailableReason, diagnostics: string) {\n super(\n `strace file-change tracking unavailable (${reason}): ${REASON_HINT[reason]}`,\n );\n this.name = 'StraceUnavailableError';\n this.reason = reason;\n this.diagnostics = diagnostics;\n }\n}\n\nconst STRACE_FLAGS = '-f -y -qq -e trace=%file,write,pwrite64,writev';\n\n/**\n * Wraps `command` so its filesystem syscalls are traced to `traceFile`. Both\n * the inner command and this wrapper are parsed by Bash, so the single-quoting\n * via {@link shellQuote} composes with the backend's own `bash -lc`. strace\n * propagates the traced command's exit code. The `mkdir -p`\n * runs before strace (so it isn't traced) and self-heals the trace dir per\n * command \u2014 if it ever disappears mid-session, the next command recreates it\n * rather than strace failing to open `-o` and skipping the command entirely.\n */\nexport function buildStraceCommand(\n command: string,\n traceFile: string,\n traceDir: string,\n): string {\n return (\n `mkdir -p ${shellQuote(traceDir)} 2>/dev/null; ` +\n `strace ${STRACE_FLAGS} -o ${shellQuote(traceFile)} -- bash -lc ${shellQuote(command)}`\n );\n}\n\n/**\n * Like {@link buildStraceCommand}, but dumps the (base64) trace inline on stdout\n * after `sentinel`, then exits with the traced command's code. This lets one\n * `executeCommand` round-trip carry both the command output and its trace \u2014 no\n * second `readFile` exec to pull the trace out of the container. Pair with\n * {@link splitTracedOutput}. `sentinel` must be unguessable (a UUID) so the\n * command's own stdout cannot contain it. `base64` keeps the trace stream-safe\n * and its stderr is dropped so a missing trace (strace failed) doesn't leak into\n * the command's stderr.\n */\nexport function buildTracedCommand(\n command: string,\n traceFile: string,\n traceDir: string,\n sentinel: string,\n): string {\n return (\n `mkdir -p ${shellQuote(traceDir)} 2>/dev/null; ` +\n `strace ${STRACE_FLAGS} -o ${shellQuote(traceFile)} -- bash -lc ${shellQuote(command)}; ` +\n `__dat_rc=$?; ` +\n `printf '\\\\n%s\\\\n' ${shellQuote(sentinel)}; ` +\n `base64 ${shellQuote(traceFile)} 2>/dev/null; ` +\n `rm -f ${shellQuote(traceFile)} 2>/dev/null; ` +\n `exit $__dat_rc`\n );\n}\n\n/**\n * Split {@link buildTracedCommand} output into the command's own stdout and its\n * decoded strace trace. A missing sentinel (strace produced nothing) yields an\n * empty trace so the caller degrades to \"no changes\".\n */\nexport function splitTracedOutput(\n stdout: string,\n sentinel: string,\n): { stdout: string; trace: string } {\n const marker = `\\n${sentinel}\\n`;\n const at = stdout.indexOf(marker);\n if (at === -1) return { stdout, trace: '' };\n const base64 = stdout.slice(at + marker.length);\n return {\n stdout: stdout.slice(0, at),\n trace: base64 ? Buffer.from(base64, 'base64').toString('utf8') : '',\n };\n}\n\n// An open is a definite write only when it creates or truncates. Bare\n// O_WRONLY/O_RDWR/O_APPEND opens are NOT assumed to mutate \u2014 a real write()\n// syscall confirms them \u2014 so read-only-via-O_RDWR (sqlite SELECT, an editor\n// that opens then quits) doesn't produce a phantom `write`.\nconst CREATE_OR_TRUNC_FLAGS = /O_(CREAT|TRUNC)/;\nconst RENAME_SYSCALLS = new Set(['rename', 'renameat', 'renameat2']);\nconst DELETE_SYSCALLS = new Set(['unlink', 'unlinkat', 'rmdir']);\nconst MKDIR_SYSCALLS = new Set(['mkdir', 'mkdirat']);\nconst LINK_SYSCALLS = new Set(['link', 'linkat', 'symlink', 'symlinkat']);\nconst OPEN_SYSCALLS = new Set(['open', 'openat', 'openat2', 'creat']);\nconst WRITE_SYSCALLS = new Set([\n 'write',\n 'pwrite64',\n 'pwrite',\n 'writev',\n 'pwritev2',\n]);\nconst TRUNCATE_SYSCALLS = new Set(['truncate', 'ftruncate']);\n\ninterface ParsedCall {\n syscall: string;\n args: string;\n retval: string;\n errno?: string;\n}\n\n/** Reassemble `<unfinished \u2026>` / `<\u2026 resumed>` syscall splits per PID. */\nfunction stitchLines(raw: string): string[] {\n const pending = new Map<string, string>();\n const out: string[] = [];\n for (const original of raw.split('\\n')) {\n const line = original.trimEnd();\n if (!line) continue;\n const pid = line.match(/^\\s*(\\d+)\\s+/)?.[1] ?? '0';\n if (/<unfinished \\.\\.\\.>\\s*$/.test(line)) {\n pending.set(pid, line.replace(/<unfinished \\.\\.\\.>\\s*$/, ''));\n continue;\n }\n const resumed = line.match(/<\\.\\.\\.\\s+\\S+\\s+resumed>(.*)$/);\n if (resumed) {\n const head = pending.get(pid);\n pending.delete(pid);\n if (head !== undefined) out.push(head + resumed[1]);\n continue;\n }\n out.push(line);\n }\n return out;\n}\n\nfunction parseCall(line: string): ParsedCall | null {\n const m = line.match(\n /^\\s*(?:\\d+\\s+)?([a-z_][a-z0-9_]*)\\((.*)\\)\\s*=\\s*(.+?)\\s*$/,\n );\n if (!m) return null;\n const [, syscall, args, rest] = m;\n const errnoMatch = rest.match(/^(-?\\d+)\\s+([A-Z][A-Z0-9_]*)/);\n if (errnoMatch) {\n return { syscall, args, retval: errnoMatch[1], errno: errnoMatch[2] };\n }\n return { syscall, args, retval: rest.split(/\\s+/)[0] };\n}\n\nconst STRACE_ESCAPE: Record<string, number> = {\n n: 0x0a,\n t: 0x09,\n r: 0x0d,\n v: 0x0b,\n f: 0x0c,\n '\"': 0x22,\n '\\\\': 0x5c,\n};\n\n/**\n * Decode one strace-rendered string. strace emits printable ASCII verbatim and\n * non-printable / non-ASCII bytes as octal `\\NNN`, plus a few `\\x` escapes. We\n * reconstruct the raw byte sequence and decode it as UTF-8 so multi-byte\n * filenames (e.g. `caf\u00E9.txt` \u2192 `\\303\\251`) round-trip instead of being mangled.\n */\nfunction decodeStraceString(s: string): string {\n const bytes: number[] = [];\n for (let i = 0; i < s.length;) {\n if (s[i] === '\\\\' && i + 1 < s.length) {\n const octal = s.slice(i + 1, i + 4).match(/^[0-7]{1,3}/)?.[0];\n if (octal) {\n bytes.push(parseInt(octal, 8) & 0xff);\n i += 1 + octal.length;\n continue;\n }\n const mapped = STRACE_ESCAPE[s[i + 1]];\n bytes.push(mapped ?? s.charCodeAt(i + 1));\n i += 2;\n continue;\n }\n const code = s.charCodeAt(i);\n if (code < 0x80) bytes.push(code);\n else for (const b of Buffer.from(s[i], 'utf8')) bytes.push(b);\n i += 1;\n }\n return Buffer.from(bytes).toString('utf8');\n}\n\nfunction quotedStrings(args: string): string[] {\n const out: string[] = [];\n const re = /\"((?:[^\"\\\\]|\\\\.)*)\"/g;\n let m: RegExpExecArray | null;\n while ((m = re.exec(args)) !== null) {\n out.push(decodeStraceString(m[1]));\n }\n return out;\n}\n\n/** Directory path annotated on the leading dirfd (`AT_FDCWD</cwd>` / `7</dir>`). */\nfunction dirfdPath(args: string): string {\n return args.match(/^\\s*(?:AT_FDCWD|-?\\d+)<([^>]*)>/)?.[1] ?? '/';\n}\n\n/** Path annotated on the leading fd argument (`-y` output), for write syscalls. */\nfunction fdPath(args: string): string | null {\n return args.match(/^\\s*-?\\d+<([^>]*)>/)?.[1] ?? null;\n}\n\nfunction openFlags(args: string): string {\n return args.match(/\\bO_[A-Z_]+(?:\\|O_[A-Z_]+)*/)?.[0] ?? '';\n}\n\nexport interface ParseStraceOptions {\n include: string[];\n exclude?: string[];\n traceFile?: string;\n traceDir?: string;\n}\n\n/** A path is tracked when it matches an `include` glob and no `exclude` glob. */\nexport function matchesGlobs(\n path: string,\n include: string[],\n exclude?: string[],\n): boolean {\n return (\n include.some((glob) => posix.matchesGlob(path, glob)) &&\n !exclude?.some((glob) => posix.matchesGlob(path, glob))\n );\n}\n\n/**\n * Parse one command's strace output into a coarse `FileChange[]`. Failed\n * syscalls are skipped; paths are filtered to `destination`; the trace file and\n * `/proc`,`/sys`,`/dev` are excluded. Per-path final state collapses repeated\n * writes to one `write`; a path written then deleted within the command is\n * treated as transient and dropped.\n */\nexport function parseStraceTrace(\n raw: string,\n options: ParseStraceOptions,\n): FileChange[] {\n const { include, exclude, traceDir, traceFile } = options;\n const now = Date.now();\n\n const state = new Map<string, 'write' | 'delete'>();\n const renames: Array<{ from: string; to: string }> = [];\n\n const resolve = (dir: string, p: string): string =>\n posix.normalize(p.startsWith('/') ? p : posix.join(dir, p));\n\n const write = (path: string) => {\n state.set(path, 'write');\n };\n const remove = (path: string) => {\n if (state.get(path) === 'write') state.delete(path);\n else state.set(path, 'delete');\n };\n\n for (const line of stitchLines(raw)) {\n const call = parseCall(line);\n if (!call || call.errno || call.retval === '-1') continue;\n const { syscall, args } = call;\n const dir = dirfdPath(args);\n\n if (RENAME_SYSCALLS.has(syscall)) {\n const strings = quotedStrings(args);\n if (strings.length < 2) continue;\n const from = resolve(dir, strings[0]);\n const to = resolve(dir, strings[strings.length - 1]);\n state.delete(from);\n renames.push({ from, to });\n continue;\n }\n if (DELETE_SYSCALLS.has(syscall)) {\n const strings = quotedStrings(args);\n if (strings.length) remove(resolve(dir, strings[0]));\n continue;\n }\n if (MKDIR_SYSCALLS.has(syscall)) {\n const strings = quotedStrings(args);\n if (strings.length) write(resolve(dir, strings[0]));\n continue;\n }\n if (LINK_SYSCALLS.has(syscall)) {\n const strings = quotedStrings(args);\n if (strings.length) write(resolve(dir, strings[strings.length - 1]));\n continue;\n }\n if (OPEN_SYSCALLS.has(syscall)) {\n if (!CREATE_OR_TRUNC_FLAGS.test(openFlags(args))) continue;\n const strings = quotedStrings(args);\n if (strings.length) write(resolve(dir, strings[0]));\n continue;\n }\n if (WRITE_SYSCALLS.has(syscall)) {\n const p = fdPath(args);\n if (p && Number(call.retval) > 0) write(posix.normalize(p));\n continue;\n }\n if (TRUNCATE_SYSCALLS.has(syscall)) {\n const p = fdPath(args) ?? quotedStrings(args)[0];\n if (p) write(resolve(dir, p));\n }\n }\n\n const keep = (path: string): boolean => {\n if (traceFile && path === traceFile) return false;\n if (traceDir && (path === traceDir || path.startsWith(`${traceDir}/`))) {\n return false;\n }\n if (/^\\/(proc|sys|dev)(\\/|$)/.test(path)) return false;\n return matchesGlobs(path, include, exclude);\n };\n\n const changes: FileChange[] = [];\n const emittedRenameTargets = new Set<string>();\n for (const { from, to } of renames) {\n if (!keep(to)) continue;\n // A later delete of the target supersedes the rename (the tail emits the\n // delete); otherwise the rename entry already represents the target's final\n // state, so the tail must NOT also emit a `write` for it (would duplicate).\n if (state.get(to) === 'delete') continue;\n changes.push({ op: 'rename', path: to, from, timestamp: now });\n emittedRenameTargets.add(to);\n }\n const tail: FileChange[] = [];\n for (const [path, op] of state) {\n if (emittedRenameTargets.has(path)) continue;\n if (keep(path)) tail.push({ op, path, timestamp: now });\n }\n tail.sort((a, b) => {\n if (a.path < b.path) return -1;\n if (a.path > b.path) return 1;\n return 0;\n });\n changes.push(...tail);\n return changes;\n}\n\n// strace prints its own failures to stderr prefixed `strace: `. Anchor on that\n// so a benign command whose output merely contains \"Operation not permitted\" or\n// \"not found\" is not misclassified as a tracer failure.\nconst PTRACE_DENIED =\n /strace:[^\\n]*(?:PTRACE_TRACEME|ptrace|Operation not permitted|EPERM)/i;\nconst STRACE_MISSING = /strace:?\\s+(?:command\\s+)?not found/i;\n\n/**\n * Run `command` on the host via `sh -c`, flattening nano-spawn's\n * throw-on-nonzero contract into `{ exitCode, stderr }`. The probe must read\n * both even on failure \u2014 a missing strace exits 127, a blocked ptrace exits\n * non-zero with its diagnosis on stderr \u2014 which nano-spawn surfaces by rejecting\n * with a {@link SubprocessError} (its `exitCode` is undefined only when the\n * process never started or a signal killed it, hence the `?? 1`).\n */\nasync function runOnHost(\n command: string,\n): Promise<{ exitCode: number; stderr: string }> {\n try {\n const { stderr } = await spawn('sh', ['-c', command]);\n return { exitCode: 0, stderr };\n } catch (error) {\n const e = error as SubprocessError;\n return { exitCode: e.exitCode ?? 1, stderr: e.stderr };\n }\n}\n\n/**\n * One-time probe at sandbox setup. Runs a known create/write/rename sequence\n * under strace on the host and asserts the trace is clean and parseable. Throws\n * {@link StraceUnavailableError} (hard-fail) when ptrace is blocked, strace is\n * absent, or the trace is garbled (e.g. amd64 under Rosetta).\n *\n * \"strace works here\" is an invariant of the (image + host kernel + seccomp/caps)\n * \u2014 constant across every tool call and chat turn in a given container \u2014 so this\n * is the consumer's once-per-container responsibility (e.g. a daemon boot gate\n * running as PID 1 inside the container), NOT a per-tool cost. `createBashTool` /\n * `withStraceFileChanges` no longer call it.\n */\nexport async function selfTestStrace(): Promise<void> {\n const probeDir = `/tmp/dat-strace-${randomUUID()}`;\n const traceFile = `/tmp/dat-strace-${randomUUID()}.trace`;\n const q = shellQuote;\n const sequence =\n `mkdir -p ${q(probeDir)} && ` +\n `echo hi > ${q(`${probeDir}/a.txt`)} && ` +\n `mv ${q(`${probeDir}/a.txt`)} ${q(`${probeDir}/b.txt`)} && ` +\n `echo more > ${q(`${probeDir}/c.txt`)}`;\n const wrapped = buildStraceCommand(sequence, traceFile, '/tmp');\n\n try {\n const result = await runOnHost(wrapped);\n const raw = await readFile(traceFile, 'utf8').catch(() => '');\n\n const diagnostics = `exit=${result.exitCode}\\nstderr=${result.stderr}\\ntrace[0:600]=${raw.slice(0, 600)}`;\n\n // Order matters: a ptrace block makes strace error on stderr AND emit no\n // trace, so check the ptrace signal (stderr only) before the empty-trace\n // strace-missing check, or a blocked ptrace would be mislabelled.\n if (PTRACE_DENIED.test(result.stderr)) {\n throw new StraceUnavailableError('ptrace-blocked', diagnostics);\n }\n if (!raw || result.exitCode === 127 || STRACE_MISSING.test(result.stderr)) {\n throw new StraceUnavailableError('strace-missing', diagnostics);\n }\n\n // Scope to the probe dir; the exact-path `traceFile` exclusion drops the\n // sibling trace file that lives under /tmp alongside it.\n const changes = parseStraceTrace(raw, {\n include: [probeDir, `${probeDir}/**`],\n traceFile,\n });\n const hasRealFdPath = raw.includes(`<${probeDir}/`);\n const hasRename = changes.some(\n (c) =>\n c.op === 'rename' &&\n c.from === `${probeDir}/a.txt` &&\n c.path === `${probeDir}/b.txt`,\n );\n const hasWrite = changes.some((c) => c.op === 'write');\n const allUnderDir = changes.every(\n (c) => c.path === probeDir || c.path.startsWith(`${probeDir}/`),\n );\n if (!hasRealFdPath || !hasRename || !hasWrite || !allUnderDir) {\n throw new StraceUnavailableError('trace-unparseable', diagnostics);\n }\n } finally {\n await Promise.allSettled([\n rm(probeDir, { recursive: true, force: true }),\n rm(traceFile, { force: true }),\n ]);\n }\n}\n", "/**\n * POSIX shell single-quote escape: wrap in `'...'`, replace any embedded\n * `'` with `'\\''`. Safe for arbitrary content as one shell word.\n *\n * Lives in its own zero-import module so lean consumers such as the\n * `./sandbox/strace` leaf entry can use it without dragging in the\n * installer/runtime surface.\n */\nexport function shellQuote(s: string): string {\n return `'${s.replace(/'/g, `'\\\\''`)}'`;\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import spawn, { SubprocessError } from 'nano-spawn';\nimport { randomUUID } from 'node:crypto';\nimport { readFile, rm } from 'node:fs/promises';\nimport { posix } from 'node:path';\n\nimport { shellQuote } from '../shell-quote.ts';\nimport type { FileChange } from './file-change.ts';\n\nexport type { FileChange, FileChangeOp } from './file-change.ts';\n\nexport type StraceUnavailableReason =\n 'ptrace-blocked' | 'strace-missing' | 'trace-unparseable';\n\nconst REASON_HINT: Record<StraceUnavailableReason, string> = {\n 'ptrace-blocked':\n 'ptrace is denied by the sandbox runtime. Modern Docker permits it by default; on a hardened host, relax the runtime seccomp/ptrace policy (allow the ptrace syscall, or add the SYS_PTRACE capability).',\n 'strace-missing':\n 'strace is not installed in the sandbox image. Bake `strace` into the image.',\n 'trace-unparseable':\n 'strace ran but its output is unusable \u2014 the sandbox is likely running under emulation (e.g. amd64 via Rosetta). Use a native-architecture sandbox.',\n};\n\n/**\n * Thrown by {@link selfTestStrace} when per-command strace tracking cannot be\n * used. `reason` lets callers branch (fix-image vs fix-caps vs fix-arch). This\n * is a hard failure by design \u2014 there is no silent degrade to the snapshot\n * observer.\n */\nexport class StraceUnavailableError extends Error {\n readonly reason: StraceUnavailableReason;\n readonly diagnostics: string;\n\n constructor(reason: StraceUnavailableReason, diagnostics: string) {\n super(\n `strace file-change tracking unavailable (${reason}): ${REASON_HINT[reason]}`,\n );\n this.name = 'StraceUnavailableError';\n this.reason = reason;\n this.diagnostics = diagnostics;\n }\n}\n\nconst STRACE_FLAGS = '-f -y -qq -e trace=%file,write,pwrite64,writev';\n\n/**\n * Wraps `command` so its filesystem syscalls are traced to `traceFile`. Both\n * the inner command and this wrapper are parsed by Bash, so the single-quoting\n * via {@link shellQuote} composes with the backend's own `bash -lc`. strace\n * propagates the traced command's exit code. The `mkdir -p`\n * runs before strace (so it isn't traced) and self-heals the trace dir per\n * command \u2014 if it ever disappears mid-session, the next command recreates it\n * rather than strace failing to open `-o` and skipping the command entirely.\n */\nexport function buildStraceCommand(\n command: string,\n traceFile: string,\n traceDir: string,\n): string {\n return (\n `mkdir -p ${shellQuote(traceDir)} 2>/dev/null; ` +\n `strace ${STRACE_FLAGS} -o ${shellQuote(traceFile)} -- bash -lc ${shellQuote(command)}`\n );\n}\n\n/**\n * Like {@link buildStraceCommand}, but dumps the (base64) trace inline on stdout\n * after `sentinel`, then exits with the traced command's code. This lets one\n * `executeCommand` round-trip carry both the command output and its trace \u2014 no\n * second `readFile` exec to pull the trace out of the container. Pair with\n * {@link splitTracedOutput}. `sentinel` must be unguessable (a UUID) so the\n * command's own stdout cannot contain it. `base64` keeps the trace stream-safe\n * and its stderr is dropped so a missing trace (strace failed) doesn't leak into\n * the command's stderr.\n */\nexport function buildTracedCommand(\n command: string,\n traceFile: string,\n traceDir: string,\n sentinel: string,\n): string {\n return (\n `mkdir -p ${shellQuote(traceDir)} 2>/dev/null; ` +\n `strace ${STRACE_FLAGS} -o ${shellQuote(traceFile)} -- bash -lc ${shellQuote(command)}; ` +\n `__dat_rc=$?; ` +\n `printf '\\\\n%s\\\\n' ${shellQuote(sentinel)}; ` +\n `base64 ${shellQuote(traceFile)} 2>/dev/null; ` +\n `rm -f ${shellQuote(traceFile)} 2>/dev/null; ` +\n `exit $__dat_rc`\n );\n}\n\n/**\n * Split {@link buildTracedCommand} output into the command's own stdout and its\n * decoded strace trace. A missing sentinel (strace produced nothing) yields an\n * empty trace so the caller degrades to \"no changes\".\n */\nexport function splitTracedOutput(\n stdout: string,\n sentinel: string,\n): { stdout: string; trace: string } {\n const marker = `\\n${sentinel}\\n`;\n const at = stdout.indexOf(marker);\n if (at === -1) return { stdout, trace: '' };\n const base64 = stdout.slice(at + marker.length);\n return {\n stdout: stdout.slice(0, at),\n trace: base64 ? Buffer.from(base64, 'base64').toString('utf8') : '',\n };\n}\n\n// An open is a definite write only when it creates or truncates. Bare\n// O_WRONLY/O_RDWR/O_APPEND opens are NOT assumed to mutate \u2014 a real write()\n// syscall confirms them \u2014 so read-only-via-O_RDWR (sqlite SELECT, an editor\n// that opens then quits) doesn't produce a phantom `write`.\nconst CREATE_OR_TRUNC_FLAGS = /O_(CREAT|TRUNC)/;\nconst RENAME_SYSCALLS = new Set(['rename', 'renameat', 'renameat2']);\nconst DELETE_SYSCALLS = new Set(['unlink', 'unlinkat', 'rmdir']);\nconst MKDIR_SYSCALLS = new Set(['mkdir', 'mkdirat']);\nconst LINK_SYSCALLS = new Set(['link', 'linkat', 'symlink', 'symlinkat']);\nconst OPEN_SYSCALLS = new Set(['open', 'openat', 'openat2', 'creat']);\nconst WRITE_SYSCALLS = new Set([\n 'write',\n 'pwrite64',\n 'pwrite',\n 'writev',\n 'pwritev2',\n]);\nconst TRUNCATE_SYSCALLS = new Set(['truncate', 'ftruncate']);\n\ninterface ParsedCall {\n syscall: string;\n args: string;\n retval: string;\n errno?: string;\n}\n\n/** Reassemble `<unfinished \u2026>` / `<\u2026 resumed>` syscall splits per PID. */\nfunction stitchLines(raw: string): string[] {\n const pending = new Map<string, string>();\n const out: string[] = [];\n for (const original of raw.split('\\n')) {\n const line = original.trimEnd();\n if (!line) continue;\n const pid = line.match(/^\\s*(\\d+)\\s+/)?.[1] ?? '0';\n if (/<unfinished \\.\\.\\.>\\s*$/.test(line)) {\n pending.set(pid, line.replace(/<unfinished \\.\\.\\.>\\s*$/, ''));\n continue;\n }\n const resumed = line.match(/<\\.\\.\\.\\s+\\S+\\s+resumed>(.*)$/);\n if (resumed) {\n const head = pending.get(pid);\n pending.delete(pid);\n if (head !== undefined) out.push(head + resumed[1]);\n continue;\n }\n out.push(line);\n }\n return out;\n}\n\nfunction parseCall(line: string): ParsedCall | null {\n const m = line.match(\n /^\\s*(?:\\d+\\s+)?([a-z_][a-z0-9_]*)\\((.*)\\)\\s*=\\s*(.+?)\\s*$/,\n );\n if (!m) return null;\n const [, syscall, args, rest] = m;\n const errnoMatch = rest.match(/^(-?\\d+)\\s+([A-Z][A-Z0-9_]*)/);\n if (errnoMatch) {\n return { syscall, args, retval: errnoMatch[1], errno: errnoMatch[2] };\n }\n return { syscall, args, retval: rest.split(/\\s+/)[0] };\n}\n\nconst STRACE_ESCAPE: Record<string, number> = {\n n: 0x0a,\n t: 0x09,\n r: 0x0d,\n v: 0x0b,\n f: 0x0c,\n '\"': 0x22,\n '\\\\': 0x5c,\n};\n\n/**\n * Decode one strace-rendered string. strace emits printable ASCII verbatim and\n * non-printable / non-ASCII bytes as octal `\\NNN`, plus a few `\\x` escapes. We\n * reconstruct the raw byte sequence and decode it as UTF-8 so multi-byte\n * filenames (e.g. `caf\u00E9.txt` \u2192 `\\303\\251`) round-trip instead of being mangled.\n */\nfunction decodeStraceString(s: string): string {\n const bytes: number[] = [];\n for (let i = 0; i < s.length;) {\n if (s[i] === '\\\\' && i + 1 < s.length) {\n const octal = s.slice(i + 1, i + 4).match(/^[0-7]{1,3}/)?.[0];\n if (octal) {\n bytes.push(parseInt(octal, 8) & 0xff);\n i += 1 + octal.length;\n continue;\n }\n const mapped = STRACE_ESCAPE[s[i + 1]];\n bytes.push(mapped ?? s.charCodeAt(i + 1));\n i += 2;\n continue;\n }\n const code = s.charCodeAt(i);\n if (code < 0x80) bytes.push(code);\n else for (const b of Buffer.from(s[i], 'utf8')) bytes.push(b);\n i += 1;\n }\n return Buffer.from(bytes).toString('utf8');\n}\n\nfunction quotedStrings(args: string): string[] {\n const out: string[] = [];\n const re = /\"((?:[^\"\\\\]|\\\\.)*)\"/g;\n let m: RegExpExecArray | null;\n while ((m = re.exec(args)) !== null) {\n out.push(decodeStraceString(m[1]));\n }\n return out;\n}\n\n/** Directory path annotated on the leading dirfd (`AT_FDCWD</cwd>` / `7</dir>`). */\nfunction dirfdPath(args: string): string {\n return args.match(/^\\s*(?:AT_FDCWD|-?\\d+)<([^>]*)>/)?.[1] ?? '/';\n}\n\n/** Path annotated on the leading fd argument (`-y` output), for write syscalls. */\nfunction fdPath(args: string): string | null {\n return args.match(/^\\s*-?\\d+<([^>]*)>/)?.[1] ?? null;\n}\n\nfunction openFlags(args: string): string {\n return args.match(/\\bO_[A-Z_]+(?:\\|O_[A-Z_]+)*/)?.[0] ?? '';\n}\n\nexport interface ParseStraceOptions {\n include: string[];\n exclude?: string[];\n traceFile?: string;\n traceDir?: string;\n}\n\n/** A path is tracked when it matches an `include` glob and no `exclude` glob. */\nexport function matchesGlobs(\n path: string,\n include: string[],\n exclude?: string[],\n): boolean {\n return (\n include.some((glob) => posix.matchesGlob(path, glob)) &&\n !exclude?.some((glob) => posix.matchesGlob(path, glob))\n );\n}\n\n/**\n * Parse one command's strace output into a coarse `FileChange[]`. Failed\n * syscalls are skipped; paths are filtered to `destination`; the trace file and\n * `/proc`,`/sys`,`/dev` are excluded. Per-path final state collapses repeated\n * writes to one `write`; a path written then deleted within the command is\n * treated as transient and dropped.\n */\nexport function parseStraceTrace(\n raw: string,\n options: ParseStraceOptions,\n): FileChange[] {\n const { include, exclude, traceDir, traceFile } = options;\n const now = Date.now();\n\n const state = new Map<string, 'write' | 'delete'>();\n const renames: Array<{ from: string; to: string }> = [];\n\n const resolve = (dir: string, p: string): string =>\n posix.normalize(p.startsWith('/') ? p : posix.join(dir, p));\n\n const write = (path: string) => {\n state.set(path, 'write');\n };\n const remove = (path: string) => {\n if (state.get(path) === 'write') state.delete(path);\n else state.set(path, 'delete');\n };\n\n for (const line of stitchLines(raw)) {\n const call = parseCall(line);\n if (!call || call.errno || call.retval === '-1') continue;\n const { syscall, args } = call;\n const dir = dirfdPath(args);\n\n if (RENAME_SYSCALLS.has(syscall)) {\n const strings = quotedStrings(args);\n if (strings.length < 2) continue;\n const from = resolve(dir, strings[0]);\n const to = resolve(dir, strings[strings.length - 1]);\n state.delete(from);\n renames.push({ from, to });\n continue;\n }\n if (DELETE_SYSCALLS.has(syscall)) {\n const strings = quotedStrings(args);\n if (strings.length) remove(resolve(dir, strings[0]));\n continue;\n }\n if (MKDIR_SYSCALLS.has(syscall)) {\n const strings = quotedStrings(args);\n if (strings.length) write(resolve(dir, strings[0]));\n continue;\n }\n if (LINK_SYSCALLS.has(syscall)) {\n const strings = quotedStrings(args);\n if (strings.length) write(resolve(dir, strings[strings.length - 1]));\n continue;\n }\n if (OPEN_SYSCALLS.has(syscall)) {\n if (!CREATE_OR_TRUNC_FLAGS.test(openFlags(args))) continue;\n const strings = quotedStrings(args);\n if (strings.length) write(resolve(dir, strings[0]));\n continue;\n }\n if (WRITE_SYSCALLS.has(syscall)) {\n const p = fdPath(args);\n if (p && Number(call.retval) > 0) write(posix.normalize(p));\n continue;\n }\n if (TRUNCATE_SYSCALLS.has(syscall)) {\n const p = fdPath(args) ?? quotedStrings(args)[0];\n if (p) write(resolve(dir, p));\n }\n }\n\n const keep = (path: string): boolean => {\n if (traceFile && path === traceFile) return false;\n if (traceDir && (path === traceDir || path.startsWith(`${traceDir}/`))) {\n return false;\n }\n if (/^\\/(proc|sys|dev)(\\/|$)/.test(path)) return false;\n return matchesGlobs(path, include, exclude);\n };\n\n const changes: FileChange[] = [];\n const emittedRenameTargets = new Set<string>();\n for (const { from, to } of renames) {\n if (!keep(to)) continue;\n // A later delete of the target supersedes the rename (the tail emits the\n // delete); otherwise the rename entry already represents the target's final\n // state, so the tail must NOT also emit a `write` for it (would duplicate).\n if (state.get(to) === 'delete') continue;\n changes.push({ op: 'rename', path: to, from, timestamp: now });\n emittedRenameTargets.add(to);\n }\n const tail: FileChange[] = [];\n for (const [path, op] of state) {\n if (emittedRenameTargets.has(path)) continue;\n if (keep(path)) tail.push({ op, path, timestamp: now });\n }\n tail.sort((a, b) => {\n if (a.path < b.path) return -1;\n if (a.path > b.path) return 1;\n return 0;\n });\n changes.push(...tail);\n return changes;\n}\n\n// strace prints its own failures to stderr prefixed `strace: `. Anchor on that\n// so a benign command whose output merely contains \"Operation not permitted\" or\n// \"not found\" is not misclassified as a tracer failure.\nconst PTRACE_DENIED =\n /strace:[^\\n]*(?:PTRACE_TRACEME|ptrace|Operation not permitted|EPERM)/i;\nconst STRACE_MISSING = /strace:?\\s+(?:command\\s+)?not found/i;\n\n/**\n * Run `command` on the host via `sh -c`, flattening nano-spawn's\n * throw-on-nonzero contract into `{ exitCode, stderr }`. The probe must read\n * both even on failure \u2014 a missing strace exits 127, a blocked ptrace exits\n * non-zero with its diagnosis on stderr \u2014 which nano-spawn surfaces by rejecting\n * with a {@link SubprocessError} (its `exitCode` is undefined only when the\n * process never started or a signal killed it, hence the `?? 1`).\n */\nasync function runOnHost(\n command: string,\n): Promise<{ exitCode: number; stderr: string }> {\n try {\n const { stderr } = await spawn('sh', ['-c', command]);\n return { exitCode: 0, stderr };\n } catch (error) {\n if (!(error instanceof SubprocessError)) throw error;\n return { exitCode: error.exitCode ?? 1, stderr: error.stderr };\n }\n}\n\n/**\n * One-time probe at sandbox setup. Runs a known create/write/rename sequence\n * under strace on the host and asserts the trace is clean and parseable. Throws\n * {@link StraceUnavailableError} (hard-fail) when ptrace is blocked, strace is\n * absent, or the trace is garbled (e.g. amd64 under Rosetta).\n *\n * \"strace works here\" is an invariant of the (image + host kernel + seccomp/caps)\n * \u2014 constant across every tool call and chat turn in a given container \u2014 so this\n * is the consumer's once-per-container responsibility (e.g. a daemon boot gate\n * running as PID 1 inside the container), NOT a per-tool cost. `createBashTool` /\n * `withStraceFileChanges` no longer call it.\n */\nexport async function selfTestStrace(): Promise<void> {\n const probeDir = `/tmp/dat-strace-${randomUUID()}`;\n const traceFile = `/tmp/dat-strace-${randomUUID()}.trace`;\n const q = shellQuote;\n const sequence =\n `mkdir -p ${q(probeDir)} && ` +\n `echo hi > ${q(`${probeDir}/a.txt`)} && ` +\n `mv ${q(`${probeDir}/a.txt`)} ${q(`${probeDir}/b.txt`)} && ` +\n `echo more > ${q(`${probeDir}/c.txt`)}`;\n const wrapped = buildStraceCommand(sequence, traceFile, '/tmp');\n\n try {\n const result = await runOnHost(wrapped);\n const raw = await readFile(traceFile, 'utf8').catch(() => '');\n\n const diagnostics = `exit=${result.exitCode}\\nstderr=${result.stderr}\\ntrace[0:600]=${raw.slice(0, 600)}`;\n\n // Order matters: a ptrace block makes strace error on stderr AND emit no\n // trace, so check the ptrace signal (stderr only) before the empty-trace\n // strace-missing check, or a blocked ptrace would be mislabelled.\n if (PTRACE_DENIED.test(result.stderr)) {\n throw new StraceUnavailableError('ptrace-blocked', diagnostics);\n }\n if (!raw || result.exitCode === 127 || STRACE_MISSING.test(result.stderr)) {\n throw new StraceUnavailableError('strace-missing', diagnostics);\n }\n\n // Scope to the probe dir; the exact-path `traceFile` exclusion drops the\n // sibling trace file that lives under /tmp alongside it.\n const changes = parseStraceTrace(raw, {\n include: [probeDir, `${probeDir}/**`],\n traceFile,\n });\n const hasRealFdPath = raw.includes(`<${probeDir}/`);\n const hasRename = changes.some(\n (c) =>\n c.op === 'rename' &&\n c.from === `${probeDir}/a.txt` &&\n c.path === `${probeDir}/b.txt`,\n );\n const hasWrite = changes.some((c) => c.op === 'write');\n const allUnderDir = changes.every(\n (c) => c.path === probeDir || c.path.startsWith(`${probeDir}/`),\n );\n if (!hasRealFdPath || !hasRename || !hasWrite || !allUnderDir) {\n throw new StraceUnavailableError('trace-unparseable', diagnostics);\n }\n } finally {\n await Promise.allSettled([\n rm(probeDir, { recursive: true, force: true }),\n rm(traceFile, { force: true }),\n ]);\n }\n}\n", "/**\n * POSIX shell single-quote escape: wrap in `'...'`, replace any embedded\n * `'` with `'\\''`. Safe for arbitrary content as one shell word.\n *\n * Lives in its own zero-import module so lean consumers such as the\n * `./sandbox/strace` leaf entry can use it without dragging in the\n * installer/runtime surface.\n */\nexport function shellQuote(s: string): string {\n return `'${s.replace(/'/g, `'\\\\''`)}'`;\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -61,11 +61,10 @@ export interface SandboxProcess {
61
61
  }
62
62
  /**
63
63
  * Sandbox contract used throughout this package: buffered command execution,
64
- * file IO, and a lifecycle hook. Every backend (virtual, docker, agent-os)
65
- * implements this so callers can dispose uniformly. Backends that honor
66
- * `options.signal` forward it to their runner; others ignore. Pure
67
- * backends with no external resources (e.g. virtual-sandbox) supply a
68
- * no-op `dispose()`.
64
+ * file IO, and a lifecycle hook. Every backend implements this so callers can
65
+ * dispose uniformly. Backends that honor `options.signal` forward it to their
66
+ * runner; others ignore. Pure backends with no external resources (e.g.
67
+ * virtual-sandbox) supply a no-op `dispose()`.
69
68
  *
70
69
  * `spawn` is optional: only backends that can honestly expose unbuffered
71
70
  * stdio (e.g. Docker or Apple Container sandboxes) implement it. Callers
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/sandbox/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/sandbox/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAE/B,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,QAAQ,CAAC,EAAE,KAAK,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;CACJ;AAED;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,QAAQ,CAAC;AAElD,MAAM,WAAW,eAAe,CAAC,QAAQ,SAAS,gBAAgB,GAAG,OAAO;IAC1E,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,MAAM,MAAM,eAAe,CAAC,QAAQ,SAAS,gBAAgB,IAC3D,QAAQ,SAAS,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;AAElD,MAAM,WAAW,OAAO;IACtB;;;OAGG;IACH,cAAc,CACZ,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,aAAa,CAAC,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,QAAQ,SAAS,gBAAgB,GAAG,OAAO,EAClD,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC,GAClC,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;IACtC,UAAU,CACR,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC,GACvD,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,mGAAmG;IACnG,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;IAC9B,oCAAoC;IACpC,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IAC5C,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IAC5C,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;CAClC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,iBAAkB,SAAQ,OAAO,EAAE,eAAe;IACjE,qFAAqF;IACrF,KAAK,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,cAAc,CAAC;IAChE;;;;OAIG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,uBAAuB;IACtC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClE;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,cAAc,GAAG,aAAa,CAAC;AAE3C,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,mBAAmB,GAAG;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,GAAG,aAAa,CAAC;AAEpE,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,aAAa,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,eAAe,CAAC,EAAE;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE;QACd,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,gBAAgB,CAAC,EAAE,CACjB,KAAK,EAAE,mBAAmB,KACvB,oBAAoB,GAAG,SAAS,CAAC;IACtC,eAAe,CAAC,EAAE,CAChB,KAAK,EAAE,kBAAkB,KACtB,mBAAmB,GAAG,SAAS,CAAC;IACrC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC;AAED,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;AAClE,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;AACrE,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,CAAC;AAE1E,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,eAAe,CAAC;IACtB,KAAK,EAAE;QACL,IAAI,EAAE,eAAe,CAAC;QACtB,QAAQ,EAAE,YAAY,CAAC;QACvB,SAAS,EAAE,aAAa,CAAC;KAC1B,CAAC;IACF,OAAO,EAAE,iBAAiB,CAAC;CAC5B;AAED,8EAA8E;AAC9E,MAAM,MAAM,YAAY,GAAG,WAAW,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"frontmatter.d.ts","sourceRoot":"","sources":["../../../src/lib/skills/frontmatter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAyB/D"}
1
+ {"version":3,"file":"frontmatter.d.ts","sourceRoot":"","sources":["../../../src/lib/skills/frontmatter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAgBhD;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAkB/D"}
@@ -0,0 +1,13 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * A BIGINT column. pg and mssql return BIGINT as a decimal string, because it
4
+ * can exceed Number.MAX_SAFE_INTEGER; a pool whose pg type parser turns int8
5
+ * into a number returns a number instead.
6
+ */
7
+ export declare const bigintColumn: z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>;
8
+ /** A JSON object column, such as chat metadata. */
9
+ export declare const jsonObject: z.ZodRecord<z.ZodString, z.ZodUnknown>;
10
+ export declare function parseJson(text: string): unknown;
11
+ /** Parses a TEXT column that stores a JSON object. */
12
+ export declare function parseJsonObject(text: string): Record<string, unknown>;
13
+ //# sourceMappingURL=columns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"columns.d.ts","sourceRoot":"","sources":["../../../src/lib/store/columns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;GAIG;AACH,eAAO,MAAM,YAAY,qGAEL,CAAC;AAErB,mDAAmD;AACnD,eAAO,MAAM,UAAU,wCAAoC,CAAC;AAE5D,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE/C;AAED,sDAAsD;AACtD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAErE"}
@@ -1 +1 @@
1
- {"version":3,"file":"postgres.store.d.ts","sourceRoot":"","sources":["../../../src/lib/store/postgres.store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"postgres.store.d.ts","sourceRoot":"","sources":["../../../src/lib/store/postgres.store.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite.store.d.ts","sourceRoot":"","sources":["../../../src/lib/store/sqlite.store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sqlite.store.d.ts","sourceRoot":"","sources":["../../../src/lib/store/sqlite.store.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sqlserver.store.d.ts","sourceRoot":"","sources":["../../../src/lib/store/sqlserver.store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sqlserver.store.d.ts","sourceRoot":"","sources":["../../../src/lib/store/sqlserver.store.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"postgres-notify-change-source.d.ts","sourceRoot":"","sources":["../../../src/lib/stream/postgres-notify-change-source.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAgB,IAAI,EAAc,UAAU,EAAE,MAAM,IAAI,CAAC;AAErE,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAM3E,MAAM,WAAW,iCAAiC;IAChD,IAAI,EAAE,IAAI,GAAG,UAAU,GAAG,MAAM,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAID,qBAAa,0BAA2B,YAAW,kBAAkB;;gBA4BvD,OAAO,EAAE,iCAAiC;IAgChD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAO1B,SAAS,CACd,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,WAAW,GAClB,aAAa,CAAC,YAAY,CAAC;IA6BxB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAkJ7B"}
1
+ {"version":3,"file":"postgres-notify-change-source.d.ts","sourceRoot":"","sources":["../../../src/lib/stream/postgres-notify-change-source.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAgB,IAAI,EAAc,UAAU,EAAE,MAAM,IAAI,CAAC;AAIrE,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAM3E,MAAM,WAAW,iCAAiC;IAChD,IAAI,EAAE,IAAI,GAAG,UAAU,GAAG,MAAM,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAID,qBAAa,0BAA2B,YAAW,kBAAkB;;gBA4BvD,OAAO,EAAE,iCAAiC;IAgChD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAO1B,SAAS,CACd,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,WAAW,GAClB,aAAa,CAAC,YAAY,CAAC;IA6BxB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAkJ7B"}
@@ -1 +1 @@
1
- {"version":3,"file":"postgres.stream-store.d.ts","sourceRoot":"","sources":["../../../src/lib/stream/postgres.stream-store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAc,UAAU,EAAE,MAAM,IAAI,CAAC;AAGvD,OAAO,KAAK,EACV,oBAAoB,EACpB,eAAe,EACf,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACd,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,IAAI,GAAG,UAAU,GAAG,MAAM,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAmBD,qBAAa,mBAAoB,SAAQ,WAAW;;gBAOtC,OAAO,EAAE,0BAA0B;IAkCzC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAyCtB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAS/C,YAAY,CAChB,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC;QAAE,MAAM,EAAE,UAAU,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAuB9C,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAQ5D,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAQpE,aAAa,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAehE,YAAY,CAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,kBAAkB,CAAC;IA6CxB,kBAAkB,CACtB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,YAAY,EACpB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC3B,OAAO,CAAC,IAAI,CAAC;IA6CV,YAAY,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA2CtD,SAAS,CACb,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,eAAe,EAAE,CAAC;IAyBvB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM7C,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CAyC1D"}
1
+ {"version":3,"file":"postgres.stream-store.d.ts","sourceRoot":"","sources":["../../../src/lib/stream/postgres.stream-store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAc,UAAU,EAAE,MAAM,IAAI,CAAC;AAMvD,OAAO,KAAK,EACV,oBAAoB,EACpB,eAAe,EACf,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAyB,MAAM,mBAAmB,CAAC;AAEvE,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,IAAI,GAAG,UAAU,GAAG,MAAM,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAoCD,qBAAa,mBAAoB,SAAQ,WAAW;;gBAOtC,OAAO,EAAE,0BAA0B;IAkCzC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA8CtB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAS/C,YAAY,CAChB,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC;QAAE,MAAM,EAAE,UAAU,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAwB9C,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAS5D,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IASpE,aAAa,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAehE,YAAY,CAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,kBAAkB,CAAC;IA4CxB,kBAAkB,CACtB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,YAAY,EACpB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC3B,OAAO,CAAC,IAAI,CAAC;IA6CV,YAAY,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA2CtD,SAAS,CACb,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,eAAe,EAAE,CAAC;IA2BvB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM7C,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CAyC1D"}
@@ -0,0 +1,16 @@
1
+ import { z } from 'zod';
2
+ import type { StreamPart } from './stream-store.ts';
3
+ /** The values the streams.status CHECK constraint allows. */
4
+ export declare const streamStatus: z.ZodEnum<{
5
+ queued: "queued";
6
+ running: "running";
7
+ completed: "completed";
8
+ failed: "failed";
9
+ cancelled: "cancelled";
10
+ }>;
11
+ /**
12
+ * Checks a stored chunk against the AI SDK's UI message chunk schema, the
13
+ * same check the SDK's chat transport applies to chunks it receives.
14
+ */
15
+ export declare function toStreamPart(value: unknown): Promise<StreamPart>;
16
+ //# sourceMappingURL=rows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rows.d.ts","sourceRoot":"","sources":["../../../src/lib/stream/rows.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,UAAU,EAAgB,MAAM,mBAAmB,CAAC;AAElE,6DAA6D;AAC7D,eAAO,MAAM,YAAY;;;;;;EAMW,CAAC;AAErC;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAEhE"}
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite.stream-store.d.ts","sourceRoot":"","sources":["../../../src/lib/stream/sqlite.stream-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAsB,MAAM,aAAa,CAAC;AAG/D,OAAO,KAAK,EACV,oBAAoB,EACpB,eAAe,EACf,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACd,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,qBAAa,iBAAkB,SAAQ,WAAW;;IAchD,KAAK,IAAI,IAAI;gBAOD,QAAQ,EAAE,MAAM,GAAG,YAAY;IAOrC,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAe/C,YAAY,CAChB,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC;QAAE,MAAM,EAAE,UAAU,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAkD9C,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IA4B5D,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAWpE,aAAa,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAehE,YAAY,CAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,kBAAkB,CAAC;IAiDxB,kBAAkB,CACtB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,YAAY,EACpB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC3B,OAAO,CAAC,IAAI,CAAC;IAmCV,YAAY,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAsCtD,SAAS,CACb,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,eAAe,EAAE,CAAC;IA+BvB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7C,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CAsD1D"}
1
+ {"version":3,"file":"sqlite.stream-store.d.ts","sourceRoot":"","sources":["../../../src/lib/stream/sqlite.stream-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAsB,MAAM,aAAa,CAAC;AAM/D,OAAO,KAAK,EACV,oBAAoB,EACpB,eAAe,EACf,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAyB,MAAM,mBAAmB,CAAC;AAyBvE,qBAAa,iBAAkB,SAAQ,WAAW;;IAchD,KAAK,IAAI,IAAI;gBAOD,QAAQ,EAAE,MAAM,GAAG,YAAY;IAOrC,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAe/C,YAAY,CAChB,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC;QAAE,MAAM,EAAE,UAAU,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IA+B9C,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAM5D,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IASpE,aAAa,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAehE,YAAY,CAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,kBAAkB,CAAC;IAwCxB,kBAAkB,CACtB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,YAAY,EACpB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC3B,OAAO,CAAC,IAAI,CAAC;IAmCV,YAAY,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAsCtD,SAAS,CACb,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,eAAe,EAAE,CAAC;IA4BvB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7C,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CAiD1D"}
@@ -1,5 +1,6 @@
1
1
  import type { UIMessageStreamWriter } from 'ai';
2
2
  import type { StreamStore } from './stream/stream-store.ts';
3
+ import type { StreamPart } from './stream/types.ts';
3
4
  export interface PersistedWriterOptions {
4
5
  writer: UIMessageStreamWriter;
5
6
  store: StreamStore;
@@ -13,8 +14,16 @@ export interface PersistedWriterOptions {
13
14
  /** For buffered strategy: flush after this many chunks (default: 20) */
14
15
  flushSize?: number;
15
16
  }
17
+ /**
18
+ * A `UIMessageStreamWriter` whose `write` persists the chunk before forwarding
19
+ * it, so it returns that work's promise. Await it to keep chunk order and to
20
+ * observe storage failures.
21
+ */
22
+ export type PersistedStreamWriter = Omit<UIMessageStreamWriter, 'write'> & {
23
+ write(part: StreamPart): Promise<void>;
24
+ };
16
25
  export interface PersistedWriter {
17
- writer: UIMessageStreamWriter;
26
+ writer: PersistedStreamWriter;
18
27
  streamId: string;
19
28
  flush(): Promise<void>;
20
29
  complete(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"stream-buffer.d.ts","sourceRoot":"","sources":["../../src/lib/stream-buffer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,IAAI,CAAC;AAEhD,OAAO,KAAK,EAAmB,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAK7E,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,qBAAqB,CAAC;IAC9B,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;IACpC,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,qBAAqB,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,wBAAsB,eAAe,CACnC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,eAAe,CAAC,CAmG1B"}
1
+ {"version":3,"file":"stream-buffer.d.ts","sourceRoot":"","sources":["../../src/lib/stream-buffer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,IAAI,CAAC;AAEhD,OAAO,KAAK,EAAmB,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAIpD,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,qBAAqB,CAAC;IAC9B,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;IACpC,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,EAAE,OAAO,CAAC,GAAG;IACzE,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,qBAAqB,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,wBAAsB,eAAe,CACnC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,eAAe,CAAC,CAmG1B"}
@@ -237,32 +237,42 @@ function normalize(value, ancestors) {
237
237
  }
238
238
  }
239
239
  function normalizeError(error, ancestors) {
240
- const normalized = /* @__PURE__ */ Object.create(null);
241
- normalized.name = error.name;
242
- normalized.message = error.message;
243
- if (error.stack != null) normalized.stack = error.stack;
240
+ const entries = [
241
+ ["name", error.name],
242
+ ["message", error.message]
243
+ ];
244
+ if (error.stack != null) entries.push(["stack", error.stack]);
244
245
  if (error.cause !== void 0) {
245
- normalized.cause = normalize(error.cause, ancestors);
246
+ entries.push(["cause", normalize(error.cause, ancestors)]);
246
247
  }
247
248
  for (const [key, descriptor] of Object.entries(
248
249
  Object.getOwnPropertyDescriptors(error)
249
250
  )) {
250
251
  if (["name", "message", "stack", "cause"].includes(key)) continue;
251
- normalized[key] = normalizeDescriptor(descriptor, ancestors);
252
+ entries.push([key, normalizeDescriptor(descriptor, ancestors)]);
252
253
  }
253
- return normalized;
254
+ return Object.fromEntries(entries);
254
255
  }
255
256
  function normalizeObject(value, ancestors) {
256
- const normalized = /* @__PURE__ */ Object.create(null);
257
- const prototype = Object.getPrototypeOf(value);
258
- const typeName = prototype?.constructor?.name;
259
- if (typeName && typeName !== "Object") normalized.$type = typeName;
257
+ const typeName = prototypeConstructorName(value);
258
+ const entries = typeName && typeName !== "Object" ? [["$type", typeName]] : [];
260
259
  for (const key of Reflect.ownKeys(value)) {
261
260
  const descriptor = Object.getOwnPropertyDescriptor(value, key);
262
261
  if (descriptor == null) continue;
263
- normalized[typeof key === "symbol" ? String(key) : key] = normalizeDescriptor(descriptor, ancestors);
262
+ entries.push([
263
+ typeof key === "symbol" ? String(key) : key,
264
+ normalizeDescriptor(descriptor, ancestors)
265
+ ]);
266
+ }
267
+ return Object.fromEntries(entries);
268
+ }
269
+ function prototypeConstructorName(value) {
270
+ const prototype = Object.getPrototypeOf(value);
271
+ if (typeof prototype !== "object" || prototype === null || !("constructor" in prototype)) {
272
+ return void 0;
264
273
  }
265
- return normalized;
274
+ const { constructor } = prototype;
275
+ return typeof constructor === "function" ? constructor.name : void 0;
266
276
  }
267
277
  function normalizeDescriptor(descriptor, ancestors) {
268
278
  if ("value" in descriptor) return normalize(descriptor.value, ancestors);