zeitlich 0.2.41 → 0.2.42

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 (119) hide show
  1. package/dist/{activities-qUflxmfS.d.cts → activities-Coafq5zr.d.cts} +2 -2
  2. package/dist/{activities-D_g13S3y.d.ts → activities-CrN-ghLo.d.ts} +2 -2
  3. package/dist/adapters/sandbox/daytona/index.cjs +4 -23
  4. package/dist/adapters/sandbox/daytona/index.cjs.map +1 -1
  5. package/dist/adapters/sandbox/daytona/index.d.cts +18 -86
  6. package/dist/adapters/sandbox/daytona/index.d.ts +18 -86
  7. package/dist/adapters/sandbox/daytona/index.js +4 -23
  8. package/dist/adapters/sandbox/daytona/index.js.map +1 -1
  9. package/dist/adapters/sandbox/daytona/workflow.cjs +1 -7
  10. package/dist/adapters/sandbox/daytona/workflow.cjs.map +1 -1
  11. package/dist/adapters/sandbox/daytona/workflow.d.cts +9 -2
  12. package/dist/adapters/sandbox/daytona/workflow.d.ts +9 -2
  13. package/dist/adapters/sandbox/daytona/workflow.js +1 -7
  14. package/dist/adapters/sandbox/daytona/workflow.js.map +1 -1
  15. package/dist/adapters/sandbox/e2b/index.cjs +9 -0
  16. package/dist/adapters/sandbox/e2b/index.cjs.map +1 -1
  17. package/dist/adapters/sandbox/e2b/index.d.cts +13 -5
  18. package/dist/adapters/sandbox/e2b/index.d.ts +13 -5
  19. package/dist/adapters/sandbox/e2b/index.js +9 -1
  20. package/dist/adapters/sandbox/e2b/index.js.map +1 -1
  21. package/dist/adapters/sandbox/e2b/workflow.cjs.map +1 -1
  22. package/dist/adapters/sandbox/e2b/workflow.d.cts +4 -2
  23. package/dist/adapters/sandbox/e2b/workflow.d.ts +4 -2
  24. package/dist/adapters/sandbox/e2b/workflow.js.map +1 -1
  25. package/dist/adapters/sandbox/inmemory/index.cjs +11 -0
  26. package/dist/adapters/sandbox/inmemory/index.cjs.map +1 -1
  27. package/dist/adapters/sandbox/inmemory/index.d.cts +11 -3
  28. package/dist/adapters/sandbox/inmemory/index.d.ts +11 -3
  29. package/dist/adapters/sandbox/inmemory/index.js +11 -1
  30. package/dist/adapters/sandbox/inmemory/index.js.map +1 -1
  31. package/dist/adapters/sandbox/inmemory/workflow.cjs.map +1 -1
  32. package/dist/adapters/sandbox/inmemory/workflow.d.cts +4 -2
  33. package/dist/adapters/sandbox/inmemory/workflow.d.ts +4 -2
  34. package/dist/adapters/sandbox/inmemory/workflow.js.map +1 -1
  35. package/dist/adapters/thread/anthropic/index.cjs.map +1 -1
  36. package/dist/adapters/thread/anthropic/index.d.cts +5 -5
  37. package/dist/adapters/thread/anthropic/index.d.ts +5 -5
  38. package/dist/adapters/thread/anthropic/index.js.map +1 -1
  39. package/dist/adapters/thread/anthropic/workflow.d.cts +5 -5
  40. package/dist/adapters/thread/anthropic/workflow.d.ts +5 -5
  41. package/dist/adapters/thread/google-genai/index.cjs.map +1 -1
  42. package/dist/adapters/thread/google-genai/index.d.cts +5 -5
  43. package/dist/adapters/thread/google-genai/index.d.ts +5 -5
  44. package/dist/adapters/thread/google-genai/index.js.map +1 -1
  45. package/dist/adapters/thread/google-genai/workflow.d.cts +5 -5
  46. package/dist/adapters/thread/google-genai/workflow.d.ts +5 -5
  47. package/dist/adapters/thread/langchain/index.cjs.map +1 -1
  48. package/dist/adapters/thread/langchain/index.d.cts +5 -5
  49. package/dist/adapters/thread/langchain/index.d.ts +5 -5
  50. package/dist/adapters/thread/langchain/index.js.map +1 -1
  51. package/dist/adapters/thread/langchain/workflow.d.cts +5 -5
  52. package/dist/adapters/thread/langchain/workflow.d.ts +5 -5
  53. package/dist/index.cjs +224 -70
  54. package/dist/index.cjs.map +1 -1
  55. package/dist/index.d.cts +66 -16
  56. package/dist/index.d.ts +66 -16
  57. package/dist/index.js +224 -70
  58. package/dist/index.js.map +1 -1
  59. package/dist/{proxy-D7mvDEO6.d.cts → proxy-Bf7uI-Hw.d.cts} +1 -1
  60. package/dist/{proxy-BbcgoXg1.d.ts → proxy-COqA95FW.d.ts} +1 -1
  61. package/dist/{thread-manager-CTXPCu9W.d.ts → thread-manager-BhkOyQ1I.d.ts} +2 -2
  62. package/dist/{thread-manager-Dqstsw4i.d.ts → thread-manager-Bi1XlbpJ.d.ts} +2 -2
  63. package/dist/{thread-manager-cLhDhRRc.d.cts → thread-manager-BsLO3Fgc.d.cts} +2 -2
  64. package/dist/{thread-manager-DrWfVjlj.d.cts → thread-manager-wRVVBFgj.d.cts} +2 -2
  65. package/dist/{types-CjF1_Idx.d.ts → types-BkX4HLzi.d.ts} +1 -1
  66. package/dist/{types-CdvcmXb6.d.cts → types-C66-BVBr.d.cts} +1 -1
  67. package/dist/types-CJ7tCdl6.d.cts +266 -0
  68. package/dist/types-CJ7tCdl6.d.ts +266 -0
  69. package/dist/{types-DjaQKUJx.d.cts → types-CdALEF3z.d.cts} +300 -20
  70. package/dist/{types-BqTmyH31.d.ts → types-ChAy_jSP.d.ts} +300 -20
  71. package/dist/types-CjY93AWZ.d.cts +84 -0
  72. package/dist/types-gVa5XCWD.d.ts +84 -0
  73. package/dist/{workflow-N1MNDoul.d.ts → workflow-BwT5EybR.d.ts} +7 -6
  74. package/dist/{workflow-CuqxgS6X.d.cts → workflow-DMmiaw6w.d.cts} +7 -6
  75. package/dist/workflow.cjs +99 -46
  76. package/dist/workflow.cjs.map +1 -1
  77. package/dist/workflow.d.cts +4 -4
  78. package/dist/workflow.d.ts +4 -4
  79. package/dist/workflow.js +99 -46
  80. package/dist/workflow.js.map +1 -1
  81. package/package.json +7 -32
  82. package/src/adapters/sandbox/daytona/index.ts +25 -48
  83. package/src/adapters/sandbox/daytona/proxy.ts +7 -8
  84. package/src/adapters/sandbox/e2b/index.ts +21 -6
  85. package/src/adapters/sandbox/e2b/proxy.ts +3 -2
  86. package/src/adapters/sandbox/inmemory/index.ts +21 -1
  87. package/src/adapters/sandbox/inmemory/proxy.ts +7 -3
  88. package/src/lib/activity.ts +5 -0
  89. package/src/lib/sandbox/capability-types.test.ts +859 -0
  90. package/src/lib/sandbox/index.ts +1 -0
  91. package/src/lib/sandbox/manager.ts +187 -31
  92. package/src/lib/sandbox/types.ts +189 -46
  93. package/src/lib/session/index.ts +1 -0
  94. package/src/lib/session/session.ts +97 -35
  95. package/src/lib/session/types.ts +181 -5
  96. package/src/lib/subagent/handler.ts +66 -43
  97. package/src/lib/subagent/types.ts +484 -16
  98. package/src/workflow.ts +3 -0
  99. package/tsup.config.ts +0 -4
  100. package/dist/adapters/sandbox/bedrock/index.cjs +0 -457
  101. package/dist/adapters/sandbox/bedrock/index.cjs.map +0 -1
  102. package/dist/adapters/sandbox/bedrock/index.d.cts +0 -25
  103. package/dist/adapters/sandbox/bedrock/index.d.ts +0 -25
  104. package/dist/adapters/sandbox/bedrock/index.js +0 -454
  105. package/dist/adapters/sandbox/bedrock/index.js.map +0 -1
  106. package/dist/adapters/sandbox/bedrock/workflow.cjs +0 -36
  107. package/dist/adapters/sandbox/bedrock/workflow.cjs.map +0 -1
  108. package/dist/adapters/sandbox/bedrock/workflow.d.cts +0 -29
  109. package/dist/adapters/sandbox/bedrock/workflow.d.ts +0 -29
  110. package/dist/adapters/sandbox/bedrock/workflow.js +0 -34
  111. package/dist/adapters/sandbox/bedrock/workflow.js.map +0 -1
  112. package/dist/types-DAsQ21Rt.d.ts +0 -74
  113. package/dist/types-lm8tMNJQ.d.cts +0 -74
  114. package/dist/types-yx0LzPGn.d.cts +0 -173
  115. package/dist/types-yx0LzPGn.d.ts +0 -173
  116. package/src/adapters/sandbox/bedrock/filesystem.ts +0 -340
  117. package/src/adapters/sandbox/bedrock/index.ts +0 -274
  118. package/src/adapters/sandbox/bedrock/proxy.ts +0 -59
  119. package/src/adapters/sandbox/bedrock/types.ts +0 -24
@@ -1,34 +0,0 @@
1
- import { workflowInfo, proxyActivities } from '@temporalio/workflow';
2
-
3
- // src/adapters/sandbox/bedrock/proxy.ts
4
- var ADAPTER_PREFIX = "bedrock";
5
- function proxyBedrockSandboxOps(scope, options) {
6
- const resolvedScope = scope ?? workflowInfo().workflowType;
7
- const acts = proxyActivities(
8
- options ?? {
9
- startToCloseTimeout: "120s",
10
- retry: {
11
- maximumAttempts: 3,
12
- initialInterval: "5s",
13
- maximumInterval: "60s",
14
- backoffCoefficient: 3
15
- }
16
- }
17
- );
18
- const prefix = `${ADAPTER_PREFIX}${resolvedScope.charAt(0).toUpperCase()}${resolvedScope.slice(1)}`;
19
- const p = (key) => `${prefix}${key.charAt(0).toUpperCase()}${key.slice(1)}`;
20
- return {
21
- createSandbox: acts[p("createSandbox")],
22
- destroySandbox: acts[p("destroySandbox")],
23
- pauseSandbox: acts[p("pauseSandbox")],
24
- resumeSandbox: acts[p("resumeSandbox")],
25
- snapshotSandbox: acts[p("snapshotSandbox")],
26
- restoreSandbox: acts[p("restoreSandbox")],
27
- deleteSandboxSnapshot: acts[p("deleteSandboxSnapshot")],
28
- forkSandbox: acts[p("forkSandbox")]
29
- };
30
- }
31
-
32
- export { proxyBedrockSandboxOps };
33
- //# sourceMappingURL=workflow.js.map
34
- //# sourceMappingURL=workflow.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/adapters/sandbox/bedrock/proxy.ts"],"names":[],"mappings":";;;AAuBA,IAAM,cAAA,GAAiB,SAAA;AAEhB,SAAS,sBAAA,CACd,OACA,OAAA,EACyC;AACzC,EAAA,MAAM,aAAA,GAAgB,KAAA,IAAS,YAAA,EAAa,CAAE,YAAA;AAG9C,EAAA,MAAM,IAAA,GAAO,eAAA;AAAA,IACX,OAAA,IAAW;AAAA,MACT,mBAAA,EAAqB,MAAA;AAAA,MACrB,KAAA,EAAO;AAAA,QACL,eAAA,EAAiB,CAAA;AAAA,QACjB,eAAA,EAAiB,IAAA;AAAA,QACjB,eAAA,EAAiB,KAAA;AAAA,QACjB,kBAAA,EAAoB;AAAA;AACtB;AACF,GACF;AAEA,EAAA,MAAM,MAAA,GAAS,CAAA,EAAG,cAAc,CAAA,EAAG,cAAc,MAAA,CAAO,CAAC,CAAA,CAAE,WAAA,EAAa,CAAA,EAAG,aAAA,CAAc,KAAA,CAAM,CAAC,CAAC,CAAA,CAAA;AACjG,EAAA,MAAM,IAAI,CAAC,GAAA,KACT,CAAA,EAAG,MAAM,GAAG,GAAA,CAAI,MAAA,CAAO,CAAC,CAAA,CAAE,aAAa,CAAA,EAAG,GAAA,CAAI,KAAA,CAAM,CAAC,CAAC,CAAA,CAAA;AAExD,EAAA,OAAO;AAAA,IACL,aAAA,EAAe,IAAA,CAAK,CAAA,CAAE,eAAe,CAAC,CAAA;AAAA,IACtC,cAAA,EAAgB,IAAA,CAAK,CAAA,CAAE,gBAAgB,CAAC,CAAA;AAAA,IACxC,YAAA,EAAc,IAAA,CAAK,CAAA,CAAE,cAAc,CAAC,CAAA;AAAA,IACpC,aAAA,EAAe,IAAA,CAAK,CAAA,CAAE,eAAe,CAAC,CAAA;AAAA,IACtC,eAAA,EAAiB,IAAA,CAAK,CAAA,CAAE,iBAAiB,CAAC,CAAA;AAAA,IAC1C,cAAA,EAAgB,IAAA,CAAK,CAAA,CAAE,gBAAgB,CAAC,CAAA;AAAA,IACxC,qBAAA,EAAuB,IAAA,CAAK,CAAA,CAAE,uBAAuB,CAAC,CAAA;AAAA,IACtD,WAAA,EAAa,IAAA,CAAK,CAAA,CAAE,aAAa,CAAC;AAAA,GACpC;AACF","file":"workflow.js","sourcesContent":["/**\n * Workflow-safe proxy for Bedrock sandbox operations.\n *\n * Uses longer timeouts than in-memory providers since Bedrock\n * sandboxes are remote and creation involves provisioning.\n *\n * Import this from `zeitlich/adapters/sandbox/bedrock/workflow`\n * in your Temporal workflow files.\n *\n * By default the scope is derived from `workflowInfo().workflowType`,\n * so activities are automatically namespaced per workflow.\n *\n * @example\n * ```typescript\n * import { proxyBedrockSandboxOps } from 'zeitlich/adapters/sandbox/bedrock/workflow';\n *\n * const sandbox = proxyBedrockSandboxOps();\n * ```\n */\nimport { proxyActivities, workflowInfo } from \"@temporalio/workflow\";\nimport type { SandboxOps } from \"../../../lib/sandbox/types\";\nimport type { BedrockSandboxCreateOptions } from \"./types\";\n\nconst ADAPTER_PREFIX = \"bedrock\";\n\nexport function proxyBedrockSandboxOps(\n scope?: string,\n options?: Parameters<typeof proxyActivities>[0]\n): SandboxOps<BedrockSandboxCreateOptions> {\n const resolvedScope = scope ?? workflowInfo().workflowType;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const acts = proxyActivities<Record<string, (...args: any[]) => any>>(\n options ?? {\n startToCloseTimeout: \"120s\",\n retry: {\n maximumAttempts: 3,\n initialInterval: \"5s\",\n maximumInterval: \"60s\",\n backoffCoefficient: 3,\n },\n }\n );\n\n const prefix = `${ADAPTER_PREFIX}${resolvedScope.charAt(0).toUpperCase()}${resolvedScope.slice(1)}`;\n const p = (key: string): string =>\n `${prefix}${key.charAt(0).toUpperCase()}${key.slice(1)}`;\n\n return {\n createSandbox: acts[p(\"createSandbox\")],\n destroySandbox: acts[p(\"destroySandbox\")],\n pauseSandbox: acts[p(\"pauseSandbox\")],\n resumeSandbox: acts[p(\"resumeSandbox\")],\n snapshotSandbox: acts[p(\"snapshotSandbox\")],\n restoreSandbox: acts[p(\"restoreSandbox\")],\n deleteSandboxSnapshot: acts[p(\"deleteSandboxSnapshot\")],\n forkSandbox: acts[p(\"forkSandbox\")],\n } as SandboxOps<BedrockSandboxCreateOptions>;\n}\n"]}
@@ -1,74 +0,0 @@
1
- import { a as SandboxFileSystem, F as FileStat, D as DirentEntry, S as Sandbox, d as SandboxCreateOptions } from './types-yx0LzPGn.js';
2
- import { BedrockAgentCoreClient, BedrockAgentCoreClientConfig } from '@aws-sdk/client-bedrock-agentcore';
3
-
4
- /**
5
- * {@link SandboxFileSystem} backed by AWS Bedrock AgentCore Code Interpreter.
6
- *
7
- * Maps zeitlich's filesystem interface to Code Interpreter's
8
- * `readFiles` / `writeFiles` / `listFiles` / `removeFiles` / `executeCommand`
9
- * tool invocations.
10
- */
11
- declare class BedrockSandboxFileSystem implements SandboxFileSystem {
12
- private client;
13
- private codeInterpreterIdentifier;
14
- private sessionId;
15
- readonly workspaceBase: string;
16
- constructor(client: BedrockAgentCoreClient, codeInterpreterIdentifier: string, sessionId: string, workspaceBase?: string);
17
- /**
18
- * Resolve a caller-supplied path to an absolute path within the workspace.
19
- * Used for shell commands that need full paths.
20
- */
21
- private normalisePath;
22
- /**
23
- * Return a workspace-relative path for Bedrock tool invocations
24
- * (`writeFiles`, `readFiles`, `listFiles`, `removeFiles`), which
25
- * reject absolute paths as "path traversal".
26
- */
27
- private toToolPath;
28
- private invoke;
29
- private execShell;
30
- readFile(path: string): Promise<string>;
31
- readFileBuffer(path: string): Promise<Uint8Array>;
32
- writeFile(path: string, content: string | Uint8Array): Promise<void>;
33
- appendFile(path: string, content: string | Uint8Array): Promise<void>;
34
- exists(path: string): Promise<boolean>;
35
- stat(path: string): Promise<FileStat>;
36
- mkdir(path: string, options?: {
37
- recursive?: boolean;
38
- }): Promise<void>;
39
- readdir(path: string): Promise<string[]>;
40
- readdirWithFileTypes(path: string): Promise<DirentEntry[]>;
41
- rm(path: string, options?: {
42
- recursive?: boolean;
43
- force?: boolean;
44
- }): Promise<void>;
45
- cp(src: string, dest: string, options?: {
46
- recursive?: boolean;
47
- }): Promise<void>;
48
- mv(src: string, dest: string): Promise<void>;
49
- readlink(path: string): Promise<string>;
50
- resolvePath(base: string, path: string): string;
51
- }
52
-
53
- /**
54
- * A Bedrock-backed {@link Sandbox} with its typed filesystem.
55
- */
56
- type BedrockSandbox = Sandbox & {
57
- fs: BedrockSandboxFileSystem;
58
- };
59
- interface BedrockSandboxConfig {
60
- /** ARN or name of the Code Interpreter resource. */
61
- codeInterpreterIdentifier: string;
62
- /** AWS SDK client configuration (region, credentials, etc.). */
63
- clientConfig?: BedrockAgentCoreClientConfig;
64
- /** Default base path for resolving relative filesystem paths. */
65
- workspaceBase?: string;
66
- }
67
- interface BedrockSandboxCreateOptions extends SandboxCreateOptions {
68
- /** Session name (human-readable, does not need to be unique). */
69
- name?: string;
70
- /** Session timeout in seconds. Default 900 (15 min). Max 28 800 (8 h). */
71
- sessionTimeoutSeconds?: number;
72
- }
73
-
74
- export { type BedrockSandboxCreateOptions as B, type BedrockSandbox as a, type BedrockSandboxConfig as b, BedrockSandboxFileSystem as c };
@@ -1,74 +0,0 @@
1
- import { a as SandboxFileSystem, F as FileStat, D as DirentEntry, S as Sandbox, d as SandboxCreateOptions } from './types-yx0LzPGn.cjs';
2
- import { BedrockAgentCoreClient, BedrockAgentCoreClientConfig } from '@aws-sdk/client-bedrock-agentcore';
3
-
4
- /**
5
- * {@link SandboxFileSystem} backed by AWS Bedrock AgentCore Code Interpreter.
6
- *
7
- * Maps zeitlich's filesystem interface to Code Interpreter's
8
- * `readFiles` / `writeFiles` / `listFiles` / `removeFiles` / `executeCommand`
9
- * tool invocations.
10
- */
11
- declare class BedrockSandboxFileSystem implements SandboxFileSystem {
12
- private client;
13
- private codeInterpreterIdentifier;
14
- private sessionId;
15
- readonly workspaceBase: string;
16
- constructor(client: BedrockAgentCoreClient, codeInterpreterIdentifier: string, sessionId: string, workspaceBase?: string);
17
- /**
18
- * Resolve a caller-supplied path to an absolute path within the workspace.
19
- * Used for shell commands that need full paths.
20
- */
21
- private normalisePath;
22
- /**
23
- * Return a workspace-relative path for Bedrock tool invocations
24
- * (`writeFiles`, `readFiles`, `listFiles`, `removeFiles`), which
25
- * reject absolute paths as "path traversal".
26
- */
27
- private toToolPath;
28
- private invoke;
29
- private execShell;
30
- readFile(path: string): Promise<string>;
31
- readFileBuffer(path: string): Promise<Uint8Array>;
32
- writeFile(path: string, content: string | Uint8Array): Promise<void>;
33
- appendFile(path: string, content: string | Uint8Array): Promise<void>;
34
- exists(path: string): Promise<boolean>;
35
- stat(path: string): Promise<FileStat>;
36
- mkdir(path: string, options?: {
37
- recursive?: boolean;
38
- }): Promise<void>;
39
- readdir(path: string): Promise<string[]>;
40
- readdirWithFileTypes(path: string): Promise<DirentEntry[]>;
41
- rm(path: string, options?: {
42
- recursive?: boolean;
43
- force?: boolean;
44
- }): Promise<void>;
45
- cp(src: string, dest: string, options?: {
46
- recursive?: boolean;
47
- }): Promise<void>;
48
- mv(src: string, dest: string): Promise<void>;
49
- readlink(path: string): Promise<string>;
50
- resolvePath(base: string, path: string): string;
51
- }
52
-
53
- /**
54
- * A Bedrock-backed {@link Sandbox} with its typed filesystem.
55
- */
56
- type BedrockSandbox = Sandbox & {
57
- fs: BedrockSandboxFileSystem;
58
- };
59
- interface BedrockSandboxConfig {
60
- /** ARN or name of the Code Interpreter resource. */
61
- codeInterpreterIdentifier: string;
62
- /** AWS SDK client configuration (region, credentials, etc.). */
63
- clientConfig?: BedrockAgentCoreClientConfig;
64
- /** Default base path for resolving relative filesystem paths. */
65
- workspaceBase?: string;
66
- }
67
- interface BedrockSandboxCreateOptions extends SandboxCreateOptions {
68
- /** Session name (human-readable, does not need to be unique). */
69
- name?: string;
70
- /** Session timeout in seconds. Default 900 (15 min). Max 28 800 (8 h). */
71
- sessionTimeoutSeconds?: number;
72
- }
73
-
74
- export { type BedrockSandboxCreateOptions as B, type BedrockSandbox as a, type BedrockSandboxConfig as b, BedrockSandboxFileSystem as c };
@@ -1,173 +0,0 @@
1
- import { ApplicationFailure } from '@temporalio/common';
2
-
3
- interface DirentEntry {
4
- name: string;
5
- isFile: boolean;
6
- isDirectory: boolean;
7
- isSymbolicLink: boolean;
8
- }
9
- interface FileStat {
10
- isFile: boolean;
11
- isDirectory: boolean;
12
- isSymbolicLink: boolean;
13
- size: number;
14
- mtime: Date;
15
- }
16
- interface SandboxNetworkConfig {
17
- allowOut?: string[];
18
- denyOut?: string[];
19
- allowPublicTraffic?: boolean;
20
- }
21
- interface SandboxLifecycleConfig {
22
- onTimeout: "kill" | "pause";
23
- autoResume?: boolean;
24
- }
25
- /**
26
- * Provider-agnostic filesystem interface.
27
- *
28
- * Implementations that don't support a method should throw
29
- * {@link SandboxNotSupportedError}.
30
- */
31
- interface SandboxFileSystem {
32
- /** Base directory used when resolving relative paths. */
33
- readonly workspaceBase: string;
34
- readFile(path: string): Promise<string>;
35
- readFileBuffer(path: string): Promise<Uint8Array>;
36
- writeFile(path: string, content: string | Uint8Array): Promise<void>;
37
- appendFile(path: string, content: string | Uint8Array): Promise<void>;
38
- exists(path: string): Promise<boolean>;
39
- stat(path: string): Promise<FileStat>;
40
- mkdir(path: string, options?: {
41
- recursive?: boolean;
42
- }): Promise<void>;
43
- readdir(path: string): Promise<string[]>;
44
- readdirWithFileTypes(path: string): Promise<DirentEntry[]>;
45
- rm(path: string, options?: {
46
- recursive?: boolean;
47
- force?: boolean;
48
- }): Promise<void>;
49
- cp(src: string, dest: string, options?: {
50
- recursive?: boolean;
51
- }): Promise<void>;
52
- mv(src: string, dest: string): Promise<void>;
53
- readlink(path: string): Promise<string>;
54
- resolvePath(base: string, path: string): string;
55
- }
56
- interface ExecOptions {
57
- timeout?: number;
58
- cwd?: string;
59
- env?: Record<string, string>;
60
- }
61
- interface ExecResult {
62
- exitCode: number;
63
- stdout: string;
64
- stderr: string;
65
- }
66
- interface SandboxCapabilities {
67
- /** Sandbox supports filesystem operations */
68
- filesystem: boolean;
69
- /** Sandbox supports shell/command execution */
70
- execution: boolean;
71
- /** Sandbox state can be persisted and restored */
72
- persistence: boolean;
73
- }
74
- interface Sandbox {
75
- readonly id: string;
76
- readonly capabilities: SandboxCapabilities;
77
- readonly fs: SandboxFileSystem;
78
- exec(command: string, options?: ExecOptions): Promise<ExecResult>;
79
- destroy(): Promise<void>;
80
- }
81
- interface SandboxSnapshot {
82
- sandboxId: string;
83
- providerId: string;
84
- /** Provider-specific serialised state */
85
- data: unknown;
86
- createdAt: string;
87
- }
88
- interface SandboxCreateOptions {
89
- /** Preferred sandbox ID (provider may ignore) */
90
- id?: string;
91
- /** Seed the filesystem with these files */
92
- initialFiles?: Record<string, string | Uint8Array>;
93
- /** Environment variables available inside the sandbox */
94
- env?: Record<string, string>;
95
- /** Key-value metadata surfaced via provider list/query APIs */
96
- metadata?: Record<string, string>;
97
- /** Sandbox idle timeout in milliseconds */
98
- timeoutMs?: number;
99
- /** Enable or disable outbound internet access */
100
- allowInternetAccess?: boolean;
101
- /** Outbound network allow/deny rules */
102
- network?: SandboxNetworkConfig;
103
- /** Sandbox timeout behaviour */
104
- lifecycle?: SandboxLifecycleConfig;
105
- }
106
- interface SandboxCreateResult {
107
- sandbox: Sandbox;
108
- }
109
- interface SandboxProvider<TOptions extends SandboxCreateOptions = SandboxCreateOptions, TSandbox extends Sandbox = Sandbox> {
110
- readonly id: string;
111
- readonly capabilities: SandboxCapabilities;
112
- create(options?: TOptions): Promise<SandboxCreateResult>;
113
- get(sandboxId: string): Promise<TSandbox>;
114
- destroy(sandboxId: string): Promise<void>;
115
- pause(sandboxId: string, ttlSeconds?: number): Promise<void>;
116
- /** Resume a paused sandbox. No-op if already running. */
117
- resume(sandboxId: string): Promise<void>;
118
- /**
119
- * Capture a snapshot of a running sandbox. `options` is a per-call override
120
- * merged on top of the provider's static defaults.
121
- */
122
- snapshot(sandboxId: string, options?: TOptions): Promise<SandboxSnapshot>;
123
- /**
124
- * Restore a sandbox from a snapshot. `options` is a per-call override
125
- * merged on top of the provider's static defaults.
126
- */
127
- restore(snapshot: SandboxSnapshot, options?: TOptions): Promise<Sandbox>;
128
- /** Delete a previously captured snapshot. No-op if already deleted. */
129
- deleteSnapshot(snapshot: SandboxSnapshot): Promise<void>;
130
- /**
131
- * Fork a running sandbox into a new one. `options` is a per-call override
132
- * merged on top of the provider's static defaults.
133
- */
134
- fork(sandboxId: string, options?: TOptions): Promise<Sandbox>;
135
- }
136
- interface SandboxOps<TOptions extends SandboxCreateOptions = SandboxCreateOptions, TCtx = unknown> {
137
- createSandbox(options?: TOptions, ctx?: TCtx): Promise<{
138
- sandboxId: string;
139
- } | null>;
140
- destroySandbox(sandboxId: string): Promise<void>;
141
- pauseSandbox(sandboxId: string): Promise<void>;
142
- /** Resume a paused sandbox. No-op if already running. */
143
- resumeSandbox(sandboxId: string): Promise<void>;
144
- /** Capture a snapshot. `options` is a per-call override merged on top of provider defaults. */
145
- snapshotSandbox(sandboxId: string, options?: TOptions): Promise<SandboxSnapshot>;
146
- /** Create a fresh sandbox from a snapshot. `options` is a per-call override merged on top of provider defaults. */
147
- restoreSandbox(snapshot: SandboxSnapshot, options?: TOptions): Promise<string>;
148
- /** Delete a previously captured snapshot. No-op if already deleted. */
149
- deleteSandboxSnapshot(snapshot: SandboxSnapshot): Promise<void>;
150
- /** Fork a running sandbox. `options` is a per-call override merged on top of provider defaults. */
151
- forkSandbox(sandboxId: string, options?: TOptions): Promise<string>;
152
- }
153
- /**
154
- * Maps generic {@link SandboxOps} method names to adapter-prefixed names.
155
- *
156
- * @example
157
- * ```typescript
158
- * type InMemOps = PrefixedSandboxOps<"inMemory">;
159
- * // → { inMemoryCreateSandbox, inMemoryDestroySandbox, inMemorySnapshotSandbox }
160
- * ```
161
- */
162
- type PrefixedSandboxOps<TPrefix extends string, TOptions extends SandboxCreateOptions = SandboxCreateOptions, TCtx = unknown> = {
163
- [K in keyof SandboxOps<TOptions, TCtx> as `${TPrefix}${Capitalize<K & string>}`]: SandboxOps<TOptions, TCtx>[K];
164
- };
165
-
166
- declare class SandboxNotSupportedError extends ApplicationFailure {
167
- constructor(operation: string);
168
- }
169
- declare class SandboxNotFoundError extends ApplicationFailure {
170
- constructor(sandboxId: string);
171
- }
172
-
173
- export { type DirentEntry as D, type ExecResult as E, type FileStat as F, type PrefixedSandboxOps as P, type Sandbox as S, type SandboxFileSystem as a, type SandboxProvider as b, type SandboxCapabilities as c, type SandboxCreateOptions as d, type SandboxCreateResult as e, type SandboxSnapshot as f, type SandboxOps as g, type ExecOptions as h, SandboxNotFoundError as i, SandboxNotSupportedError as j };
@@ -1,173 +0,0 @@
1
- import { ApplicationFailure } from '@temporalio/common';
2
-
3
- interface DirentEntry {
4
- name: string;
5
- isFile: boolean;
6
- isDirectory: boolean;
7
- isSymbolicLink: boolean;
8
- }
9
- interface FileStat {
10
- isFile: boolean;
11
- isDirectory: boolean;
12
- isSymbolicLink: boolean;
13
- size: number;
14
- mtime: Date;
15
- }
16
- interface SandboxNetworkConfig {
17
- allowOut?: string[];
18
- denyOut?: string[];
19
- allowPublicTraffic?: boolean;
20
- }
21
- interface SandboxLifecycleConfig {
22
- onTimeout: "kill" | "pause";
23
- autoResume?: boolean;
24
- }
25
- /**
26
- * Provider-agnostic filesystem interface.
27
- *
28
- * Implementations that don't support a method should throw
29
- * {@link SandboxNotSupportedError}.
30
- */
31
- interface SandboxFileSystem {
32
- /** Base directory used when resolving relative paths. */
33
- readonly workspaceBase: string;
34
- readFile(path: string): Promise<string>;
35
- readFileBuffer(path: string): Promise<Uint8Array>;
36
- writeFile(path: string, content: string | Uint8Array): Promise<void>;
37
- appendFile(path: string, content: string | Uint8Array): Promise<void>;
38
- exists(path: string): Promise<boolean>;
39
- stat(path: string): Promise<FileStat>;
40
- mkdir(path: string, options?: {
41
- recursive?: boolean;
42
- }): Promise<void>;
43
- readdir(path: string): Promise<string[]>;
44
- readdirWithFileTypes(path: string): Promise<DirentEntry[]>;
45
- rm(path: string, options?: {
46
- recursive?: boolean;
47
- force?: boolean;
48
- }): Promise<void>;
49
- cp(src: string, dest: string, options?: {
50
- recursive?: boolean;
51
- }): Promise<void>;
52
- mv(src: string, dest: string): Promise<void>;
53
- readlink(path: string): Promise<string>;
54
- resolvePath(base: string, path: string): string;
55
- }
56
- interface ExecOptions {
57
- timeout?: number;
58
- cwd?: string;
59
- env?: Record<string, string>;
60
- }
61
- interface ExecResult {
62
- exitCode: number;
63
- stdout: string;
64
- stderr: string;
65
- }
66
- interface SandboxCapabilities {
67
- /** Sandbox supports filesystem operations */
68
- filesystem: boolean;
69
- /** Sandbox supports shell/command execution */
70
- execution: boolean;
71
- /** Sandbox state can be persisted and restored */
72
- persistence: boolean;
73
- }
74
- interface Sandbox {
75
- readonly id: string;
76
- readonly capabilities: SandboxCapabilities;
77
- readonly fs: SandboxFileSystem;
78
- exec(command: string, options?: ExecOptions): Promise<ExecResult>;
79
- destroy(): Promise<void>;
80
- }
81
- interface SandboxSnapshot {
82
- sandboxId: string;
83
- providerId: string;
84
- /** Provider-specific serialised state */
85
- data: unknown;
86
- createdAt: string;
87
- }
88
- interface SandboxCreateOptions {
89
- /** Preferred sandbox ID (provider may ignore) */
90
- id?: string;
91
- /** Seed the filesystem with these files */
92
- initialFiles?: Record<string, string | Uint8Array>;
93
- /** Environment variables available inside the sandbox */
94
- env?: Record<string, string>;
95
- /** Key-value metadata surfaced via provider list/query APIs */
96
- metadata?: Record<string, string>;
97
- /** Sandbox idle timeout in milliseconds */
98
- timeoutMs?: number;
99
- /** Enable or disable outbound internet access */
100
- allowInternetAccess?: boolean;
101
- /** Outbound network allow/deny rules */
102
- network?: SandboxNetworkConfig;
103
- /** Sandbox timeout behaviour */
104
- lifecycle?: SandboxLifecycleConfig;
105
- }
106
- interface SandboxCreateResult {
107
- sandbox: Sandbox;
108
- }
109
- interface SandboxProvider<TOptions extends SandboxCreateOptions = SandboxCreateOptions, TSandbox extends Sandbox = Sandbox> {
110
- readonly id: string;
111
- readonly capabilities: SandboxCapabilities;
112
- create(options?: TOptions): Promise<SandboxCreateResult>;
113
- get(sandboxId: string): Promise<TSandbox>;
114
- destroy(sandboxId: string): Promise<void>;
115
- pause(sandboxId: string, ttlSeconds?: number): Promise<void>;
116
- /** Resume a paused sandbox. No-op if already running. */
117
- resume(sandboxId: string): Promise<void>;
118
- /**
119
- * Capture a snapshot of a running sandbox. `options` is a per-call override
120
- * merged on top of the provider's static defaults.
121
- */
122
- snapshot(sandboxId: string, options?: TOptions): Promise<SandboxSnapshot>;
123
- /**
124
- * Restore a sandbox from a snapshot. `options` is a per-call override
125
- * merged on top of the provider's static defaults.
126
- */
127
- restore(snapshot: SandboxSnapshot, options?: TOptions): Promise<Sandbox>;
128
- /** Delete a previously captured snapshot. No-op if already deleted. */
129
- deleteSnapshot(snapshot: SandboxSnapshot): Promise<void>;
130
- /**
131
- * Fork a running sandbox into a new one. `options` is a per-call override
132
- * merged on top of the provider's static defaults.
133
- */
134
- fork(sandboxId: string, options?: TOptions): Promise<Sandbox>;
135
- }
136
- interface SandboxOps<TOptions extends SandboxCreateOptions = SandboxCreateOptions, TCtx = unknown> {
137
- createSandbox(options?: TOptions, ctx?: TCtx): Promise<{
138
- sandboxId: string;
139
- } | null>;
140
- destroySandbox(sandboxId: string): Promise<void>;
141
- pauseSandbox(sandboxId: string): Promise<void>;
142
- /** Resume a paused sandbox. No-op if already running. */
143
- resumeSandbox(sandboxId: string): Promise<void>;
144
- /** Capture a snapshot. `options` is a per-call override merged on top of provider defaults. */
145
- snapshotSandbox(sandboxId: string, options?: TOptions): Promise<SandboxSnapshot>;
146
- /** Create a fresh sandbox from a snapshot. `options` is a per-call override merged on top of provider defaults. */
147
- restoreSandbox(snapshot: SandboxSnapshot, options?: TOptions): Promise<string>;
148
- /** Delete a previously captured snapshot. No-op if already deleted. */
149
- deleteSandboxSnapshot(snapshot: SandboxSnapshot): Promise<void>;
150
- /** Fork a running sandbox. `options` is a per-call override merged on top of provider defaults. */
151
- forkSandbox(sandboxId: string, options?: TOptions): Promise<string>;
152
- }
153
- /**
154
- * Maps generic {@link SandboxOps} method names to adapter-prefixed names.
155
- *
156
- * @example
157
- * ```typescript
158
- * type InMemOps = PrefixedSandboxOps<"inMemory">;
159
- * // → { inMemoryCreateSandbox, inMemoryDestroySandbox, inMemorySnapshotSandbox }
160
- * ```
161
- */
162
- type PrefixedSandboxOps<TPrefix extends string, TOptions extends SandboxCreateOptions = SandboxCreateOptions, TCtx = unknown> = {
163
- [K in keyof SandboxOps<TOptions, TCtx> as `${TPrefix}${Capitalize<K & string>}`]: SandboxOps<TOptions, TCtx>[K];
164
- };
165
-
166
- declare class SandboxNotSupportedError extends ApplicationFailure {
167
- constructor(operation: string);
168
- }
169
- declare class SandboxNotFoundError extends ApplicationFailure {
170
- constructor(sandboxId: string);
171
- }
172
-
173
- export { type DirentEntry as D, type ExecResult as E, type FileStat as F, type PrefixedSandboxOps as P, type Sandbox as S, type SandboxFileSystem as a, type SandboxProvider as b, type SandboxCapabilities as c, type SandboxCreateOptions as d, type SandboxCreateResult as e, type SandboxSnapshot as f, type SandboxOps as g, type ExecOptions as h, SandboxNotFoundError as i, SandboxNotSupportedError as j };