@finalai/final-agent-provider 0.10.1 → 0.11.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 (159) hide show
  1. package/HOSTING.md +334 -245
  2. package/README.md +126 -40
  3. package/WORKSPACE-EGRESS.md +11 -11
  4. package/dist/modules/catalog.d.mts +9 -0
  5. package/dist/modules/catalog.mjs +21 -0
  6. package/dist/modules/catalog.mjs.map +7 -0
  7. package/dist/modules/harnesses/acp-agent.d.mts +4 -0
  8. package/dist/modules/harnesses/acp-agent.mjs +35 -0
  9. package/dist/modules/harnesses/acp-agent.mjs.map +7 -0
  10. package/dist/modules/harnesses/adapters.d.mts +7 -0
  11. package/dist/modules/harnesses/adapters.mjs +74 -0
  12. package/dist/modules/harnesses/adapters.mjs.map +7 -0
  13. package/dist/modules/harnesses/claude-code.d.mts +14 -0
  14. package/dist/modules/harnesses/claude-code.mjs +79 -0
  15. package/dist/modules/harnesses/claude-code.mjs.map +7 -0
  16. package/dist/modules/harnesses/codex.d.mts +12 -0
  17. package/dist/modules/harnesses/codex.mjs +90 -0
  18. package/dist/modules/harnesses/codex.mjs.map +7 -0
  19. package/dist/modules/harnesses/config-fields.d.mts +98 -57
  20. package/dist/modules/harnesses/config-fields.mjs +58 -35
  21. package/dist/modules/harnesses/config-fields.mjs.map +3 -3
  22. package/dist/modules/harnesses/definitions.d.mts +3 -0
  23. package/dist/modules/harnesses/definitions.mjs +21 -0
  24. package/dist/modules/harnesses/definitions.mjs.map +7 -0
  25. package/dist/modules/harnesses/fidelity.d.mts +1 -1
  26. package/dist/modules/harnesses/fidelity.mjs +17 -14
  27. package/dist/modules/harnesses/fidelity.mjs.map +2 -2
  28. package/dist/modules/harnesses/final.d.mts +12 -0
  29. package/dist/modules/harnesses/final.mjs +70 -0
  30. package/dist/modules/harnesses/final.mjs.map +7 -0
  31. package/dist/modules/harnesses/index.d.mts +13 -12
  32. package/dist/modules/harnesses/index.mjs +86 -45
  33. package/dist/modules/harnesses/index.mjs.map +3 -3
  34. package/dist/modules/harnesses/names.d.mts +43 -0
  35. package/dist/modules/harnesses/names.mjs +59 -0
  36. package/dist/modules/harnesses/names.mjs.map +7 -0
  37. package/dist/modules/harnesses/nanocode-claude.d.mts +18 -0
  38. package/dist/modules/harnesses/nanocode-claude.mjs +101 -0
  39. package/dist/modules/harnesses/nanocode-claude.mjs.map +7 -0
  40. package/dist/modules/harnesses/nanocode-codex.d.mts +13 -0
  41. package/dist/modules/harnesses/nanocode-codex.mjs +64 -0
  42. package/dist/modules/harnesses/nanocode-codex.mjs.map +7 -0
  43. package/dist/modules/harnesses/pi.d.mts +12 -0
  44. package/dist/modules/harnesses/pi.mjs +71 -0
  45. package/dist/modules/harnesses/pi.mjs.map +7 -0
  46. package/dist/modules/integrations.d.mts +9 -0
  47. package/dist/modules/integrations.mjs +29 -0
  48. package/dist/modules/integrations.mjs.map +7 -0
  49. package/dist/modules/provider/general.bundle.d.mts +1 -0
  50. package/dist/modules/provider/general.bundle.mjs +5 -0
  51. package/dist/modules/provider/general.bundle.mjs.map +7 -0
  52. package/dist/modules/provider/general.d.mts +11 -0
  53. package/dist/modules/provider/general.mjs +130 -0
  54. package/dist/modules/provider/general.mjs.map +7 -0
  55. package/dist/modules/provider/index.d.mts +3 -0
  56. package/dist/modules/provider/index.mjs +13 -0
  57. package/dist/modules/provider/index.mjs.map +7 -0
  58. package/dist/modules/sandboxes/access.d.mts +34 -0
  59. package/dist/modules/sandboxes/access.mjs +15 -0
  60. package/dist/modules/sandboxes/access.mjs.map +7 -0
  61. package/dist/modules/sandboxes/computer.d.mts +24 -51
  62. package/dist/modules/sandboxes/computer.mjs +523 -888
  63. package/dist/modules/sandboxes/computer.mjs.map +3 -3
  64. package/dist/modules/sandboxes/computers-api.d.mts +3 -2
  65. package/dist/modules/sandboxes/computers-api.mjs +2 -4
  66. package/dist/modules/sandboxes/computers-api.mjs.map +2 -2
  67. package/dist/modules/sandboxes/device-api.d.mts +4 -3
  68. package/dist/modules/sandboxes/device-api.mjs +2 -4
  69. package/dist/modules/sandboxes/device-api.mjs.map +2 -2
  70. package/dist/modules/sandboxes/device.d.mts +6 -6
  71. package/dist/modules/sandboxes/device.mjs +126 -121
  72. package/dist/modules/sandboxes/device.mjs.map +3 -3
  73. package/dist/modules/sandboxes/egress.d.mts +10 -9
  74. package/dist/modules/sandboxes/egress.mjs +73 -56
  75. package/dist/modules/sandboxes/egress.mjs.map +2 -2
  76. package/dist/modules/sandboxes/environment.d.mts +35 -269
  77. package/dist/modules/sandboxes/environment.mjs +27 -104
  78. package/dist/modules/sandboxes/environment.mjs.map +3 -3
  79. package/dist/modules/sandboxes/index.d.mts +9 -69
  80. package/dist/modules/sandboxes/index.mjs +35 -95
  81. package/dist/modules/sandboxes/index.mjs.map +3 -3
  82. package/dist/modules/sandboxes/local.d.mts +28 -0
  83. package/dist/modules/sandboxes/local.mjs +499 -0
  84. package/dist/modules/sandboxes/local.mjs.map +7 -0
  85. package/dist/modules/sandboxes/session.d.mts +0 -3
  86. package/dist/modules/sandboxes/session.mjs +2 -22
  87. package/dist/modules/sandboxes/session.mjs.map +2 -2
  88. package/dist/modules/sandboxes/testing/fake-machine.mjs +0 -28
  89. package/dist/modules/sandboxes/testing/fake-machine.mjs.map +2 -2
  90. package/package.json +76 -104
  91. package/dist/modules/connections.d.mts +0 -11
  92. package/dist/modules/connections.mjs +0 -16
  93. package/dist/modules/connections.mjs.map +0 -7
  94. package/dist/modules/harnesses/acp-describe.d.mts +0 -20
  95. package/dist/modules/harnesses/acp-describe.mjs +0 -110
  96. package/dist/modules/harnesses/acp-describe.mjs.map +0 -7
  97. package/dist/modules/harnesses/local-stdio.d.mts +0 -47
  98. package/dist/modules/harnesses/local-stdio.mjs +0 -41
  99. package/dist/modules/harnesses/local-stdio.mjs.map +0 -7
  100. package/dist/modules/harnesses/remote-acp.d.mts +0 -76
  101. package/dist/modules/harnesses/remote-acp.mjs +0 -83
  102. package/dist/modules/harnesses/remote-acp.mjs.map +0 -7
  103. package/dist/modules/harnesses/remote-claude-code.d.mts +0 -88
  104. package/dist/modules/harnesses/remote-claude-code.mjs +0 -113
  105. package/dist/modules/harnesses/remote-claude-code.mjs.map +0 -7
  106. package/dist/modules/harnesses/remote-client-tls.d.mts +0 -35
  107. package/dist/modules/harnesses/remote-client-tls.mjs +0 -37
  108. package/dist/modules/harnesses/remote-client-tls.mjs.map +0 -7
  109. package/dist/modules/harnesses/remote-codex.d.mts +0 -98
  110. package/dist/modules/harnesses/remote-codex.mjs +0 -128
  111. package/dist/modules/harnesses/remote-codex.mjs.map +0 -7
  112. package/dist/modules/harnesses/remote-pi.d.mts +0 -78
  113. package/dist/modules/harnesses/remote-pi.mjs +0 -104
  114. package/dist/modules/harnesses/remote-pi.mjs.map +0 -7
  115. package/dist/modules/harnesses/remote-url.d.mts +0 -5
  116. package/dist/modules/harnesses/remote-url.mjs +0 -19
  117. package/dist/modules/harnesses/remote-url.mjs.map +0 -7
  118. package/dist/modules/harnesses/serverless-final.d.mts +0 -63
  119. package/dist/modules/harnesses/serverless-final.mjs +0 -88
  120. package/dist/modules/harnesses/serverless-final.mjs.map +0 -7
  121. package/dist/modules/harnesses/serverless-nanocode-claude.d.mts +0 -64
  122. package/dist/modules/harnesses/serverless-nanocode-claude.mjs +0 -105
  123. package/dist/modules/harnesses/serverless-nanocode-claude.mjs.map +0 -7
  124. package/dist/modules/harnesses/serverless-nanocode-codex.d.mts +0 -66
  125. package/dist/modules/harnesses/serverless-nanocode-codex.mjs +0 -113
  126. package/dist/modules/harnesses/serverless-nanocode-codex.mjs.map +0 -7
  127. package/dist/modules/harnesses/serverless-pi.d.mts +0 -64
  128. package/dist/modules/harnesses/serverless-pi.mjs +0 -98
  129. package/dist/modules/harnesses/serverless-pi.mjs.map +0 -7
  130. package/dist/modules/runtime/index.d.mts +0 -7
  131. package/dist/modules/runtime/index.mjs +0 -18
  132. package/dist/modules/runtime/index.mjs.map +0 -7
  133. package/dist/modules/runtime/local-stdio.d.mts +0 -10
  134. package/dist/modules/runtime/local-stdio.mjs +0 -106
  135. package/dist/modules/runtime/local-stdio.mjs.map +0 -7
  136. package/dist/modules/runtime/remote-acp.d.mts +0 -16
  137. package/dist/modules/runtime/remote-acp.mjs +0 -152
  138. package/dist/modules/runtime/remote-acp.mjs.map +0 -7
  139. package/dist/modules/runtime/remote-claude-code.d.mts +0 -5
  140. package/dist/modules/runtime/remote-claude-code.mjs +0 -47
  141. package/dist/modules/runtime/remote-claude-code.mjs.map +0 -7
  142. package/dist/modules/runtime/remote-codex.d.mts +0 -5
  143. package/dist/modules/runtime/remote-codex.mjs +0 -47
  144. package/dist/modules/runtime/remote-codex.mjs.map +0 -7
  145. package/dist/modules/runtime/remote-host.d.mts +0 -127
  146. package/dist/modules/runtime/remote-host.mjs +0 -387
  147. package/dist/modules/runtime/remote-host.mjs.map +0 -7
  148. package/dist/modules/runtime/remote-pi.d.mts +0 -5
  149. package/dist/modules/runtime/remote-pi.mjs +0 -44
  150. package/dist/modules/runtime/remote-pi.mjs.map +0 -7
  151. package/dist/modules/sandboxes/guide.d.mts +0 -35
  152. package/dist/modules/sandboxes/guide.mjs +0 -119
  153. package/dist/modules/sandboxes/guide.mjs.map +0 -7
  154. package/dist/modules/sandboxes/workspace-setup.d.mts +0 -42
  155. package/dist/modules/sandboxes/workspace-setup.mjs +0 -242
  156. package/dist/modules/sandboxes/workspace-setup.mjs.map +0 -7
  157. package/dist/modules/testing/harness.d.mts +0 -9
  158. package/dist/modules/testing/harness.mjs +0 -123
  159. package/dist/modules/testing/harness.mjs.map +0 -7
@@ -0,0 +1,13 @@
1
+ import {
2
+ defineHarnessProvider
3
+ } from "@finalai/agent-definition/authoring";
4
+ import { GENERAL_HARNESS_PROVIDER_SOURCE } from "./general.bundle.mjs";
5
+ import { REQUIRED_FINAL_EXTENSIONS } from "./general.mjs";
6
+ const GENERAL_HARNESS_PROVIDER = defineHarnessProvider({
7
+ source: GENERAL_HARNESS_PROVIDER_SOURCE
8
+ });
9
+ export {
10
+ GENERAL_HARNESS_PROVIDER,
11
+ REQUIRED_FINAL_EXTENSIONS
12
+ };
13
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/provider/index.ts"],
4
+ "sourcesContent": ["import {\n defineHarnessProvider,\n type DefinedHarnessProviderIface,\n} from '@finalai/agent-definition/authoring';\nimport { GENERAL_HARNESS_PROVIDER_SOURCE } from \"./general.bundle.mjs\";\n\nexport { REQUIRED_FINAL_EXTENSIONS } from \"./general.mjs\";\n\n// The general harness provider as one self-contained module, ready to run on\n// a serverless runtime like any other harness provider's code.\nexport const GENERAL_HARNESS_PROVIDER: DefinedHarnessProviderIface = defineHarnessProvider({\n source: GENERAL_HARNESS_PROVIDER_SOURCE,\n});\n"],
5
+ "mappings": "AAAA;AAAA,EACE;AAAA,OAEK;AACP,SAAS,uCAAuC;AAEhD,SAAS,iCAAiC;AAInC,MAAM,2BAAwD,sBAAsB;AAAA,EACzF,QAAQ;AACV,CAAC;",
6
+ "names": []
7
+ }
@@ -0,0 +1,34 @@
1
+ export interface FinalPlatformAccessIface {
2
+ baseUrl: string;
3
+ token: string;
4
+ }
5
+ export type ComputersAccessIface = (args: {
6
+ organizationId: string;
7
+ projectId: string;
8
+ refresh: boolean;
9
+ }) => Promise<FinalPlatformAccessIface | null>;
10
+ export type DeviceAccessIface = (args: {
11
+ organizationId: string;
12
+ projectId: string | null;
13
+ actingUserId: string | null;
14
+ refresh: boolean;
15
+ }) => Promise<FinalPlatformAccessIface | null>;
16
+ export interface ComputersApiCredentialsIface {
17
+ computersAccess(args?: {
18
+ refresh?: boolean;
19
+ }): Promise<FinalPlatformAccessIface | null>;
20
+ }
21
+ export interface DeviceApiCredentialsIface {
22
+ deviceAccess(args?: {
23
+ actingUserId?: string | null;
24
+ refresh?: boolean;
25
+ }): Promise<FinalPlatformAccessIface | null>;
26
+ }
27
+ export declare const computersCredentialsFor: (access: ComputersAccessIface | undefined, scope: {
28
+ organizationId: string;
29
+ projectId: string;
30
+ }) => ComputersApiCredentialsIface;
31
+ export declare const deviceCredentialsFor: (access: DeviceAccessIface | undefined, scope: {
32
+ organizationId: string;
33
+ projectId: string | null;
34
+ }) => DeviceApiCredentialsIface;
@@ -0,0 +1,15 @@
1
+ const computersCredentialsFor = (access, scope) => ({
2
+ computersAccess: async (args) => access == null ? null : access({ ...scope, refresh: args?.refresh === true })
3
+ });
4
+ const deviceCredentialsFor = (access, scope) => ({
5
+ deviceAccess: async (args) => access == null ? null : access({
6
+ ...scope,
7
+ actingUserId: args?.actingUserId ?? null,
8
+ refresh: args?.refresh === true
9
+ })
10
+ });
11
+ export {
12
+ computersCredentialsFor,
13
+ deviceCredentialsFor
14
+ };
15
+ //# sourceMappingURL=access.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/sandboxes/access.ts"],
4
+ "sourcesContent": ["// Access to Final's Computers and Device APIs. It is configuration of the\n// `computer` and `device` providers (and of workspace Device egress), supplied\n// by whoever runs them, never part of the generic provider context.\n\nexport interface FinalPlatformAccessIface {\n // The API origin; requests go to `<baseUrl>/v1/...`.\n baseUrl: string;\n token: string;\n}\n\n// Computers API access for one project's sandboxes. `refresh` asks for a new\n// token after the API rejected the last one. Null: none granted.\nexport type ComputersAccessIface = (args: {\n organizationId: string;\n projectId: string;\n refresh: boolean;\n}) => Promise<FinalPlatformAccessIface | null>;\n\n// Device API access acting for `actingUserId` (null: service access for\n// workspace networking). Null: none granted.\nexport type DeviceAccessIface = (args: {\n organizationId: string;\n projectId: string | null;\n actingUserId: string | null;\n refresh: boolean;\n}) => Promise<FinalPlatformAccessIface | null>;\n\n// The per-call form the API clients ask before each request.\nexport interface ComputersApiCredentialsIface {\n computersAccess(args?: { refresh?: boolean }): Promise<FinalPlatformAccessIface | null>;\n}\n\nexport interface DeviceApiCredentialsIface {\n deviceAccess(args?: {\n actingUserId?: string | null;\n refresh?: boolean;\n }): Promise<FinalPlatformAccessIface | null>;\n}\n\nexport const computersCredentialsFor = (\n access: ComputersAccessIface | undefined,\n scope: { organizationId: string; projectId: string },\n): ComputersApiCredentialsIface => ({\n computersAccess: async (args) =>\n access == null ? null : access({ ...scope, refresh: args?.refresh === true }),\n});\n\nexport const deviceCredentialsFor = (\n access: DeviceAccessIface | undefined,\n scope: { organizationId: string; projectId: string | null },\n): DeviceApiCredentialsIface => ({\n deviceAccess: async (args) =>\n access == null\n ? null\n : access({\n ...scope,\n actingUserId: args?.actingUserId ?? null,\n refresh: args?.refresh === true,\n }),\n});\n"],
5
+ "mappings": "AAuCO,MAAM,0BAA0B,CACrC,QACA,WACkC;AAAA,EAClC,iBAAiB,OAAO,SACtB,UAAU,OAAO,OAAO,OAAO,EAAE,GAAG,OAAO,SAAS,MAAM,YAAY,KAAK,CAAC;AAChF;AAEO,MAAM,uBAAuB,CAClC,QACA,WAC+B;AAAA,EAC/B,cAAc,OAAO,SACnB,UAAU,OACN,OACA,OAAO;AAAA,IACL,GAAG;AAAA,IACH,cAAc,MAAM,gBAAgB;AAAA,IACpC,SAAS,MAAM,YAAY;AAAA,EAC7B,CAAC;AACT;",
6
+ "names": []
7
+ }
@@ -1,25 +1,17 @@
1
- import { SandboxAccess, type JsonValue } from '@finalai/agent-provider';
2
- import { type SandboxNetworkingExtensionIface, SandboxCapability, type NetworkSandboxSessionIface, type SandboxProviderIface } from '@finalai/agent-provider/sandbox';
1
+ import { NetworkPolicy, type JsonValue } from '@finalai/agent-provider';
2
+ import { SandboxCapability, type NetworkPolicyIface, type NetworkSandboxSessionIface, type SandboxNetworkingExtensionIface, type SandboxProviderIface, type SandboxSetupIface } from '@finalai/agent-provider/sandbox';
3
3
  import * as z from 'zod';
4
4
  import { type ComputersApiConfigIface } from "./computers-api.mjs";
5
- import { ComputerWorkspacePolicy } from "./environment.mjs";
6
- import { type GuideCommandIface } from "./workspace-setup.mjs";
7
- export declare const computerWorkspaceName: (options: {
8
- bindingId: string;
9
- conversationId: string | null;
10
- target: string;
11
- conversationWorkspace: boolean;
12
- }) => Promise<string>;
5
+ import { type ComputerBuildIface } from "./environment.mjs";
13
6
  export type { ComputersApiConfigIface } from "./computers-api.mjs";
14
- export type { FinalPlatformAccessIface } from '@finalai/agent-provider/sandbox';
15
- export { COMPUTER_SANDBOX_SPECIFIER } from "./environment.mjs";
16
- export { computeComputerArtifactKey } from "./guide.mjs";
17
- export type { ComputerGuideVersionIface } from "./guide.mjs";
18
- export type { RepositoryCloneSourceIface } from "./workspace-setup.mjs";
7
+ export type { FinalPlatformAccessIface } from "./access.mjs";
8
+ export { COMPUTER_PROVIDER } from "./environment.mjs";
9
+ export declare const WORKSPACE_ROOT = "/workspaces";
19
10
  export interface ComputerSandboxLogIface {
20
11
  (message: string, fields?: Record<string, string | number | boolean | null>): void;
21
12
  }
22
13
  export interface ComputerSandboxProviderConfigIface {
14
+ computersApiUrl: string;
23
15
  computersApi?: ComputersApiConfigIface;
24
16
  networking?: SandboxNetworkingExtensionIface;
25
17
  registryCredentialId?: string;
@@ -30,13 +22,10 @@ export interface ComputerSandboxProviderConfigIface {
30
22
  memoryMb?: number;
31
23
  diskGb?: number;
32
24
  };
33
- idleTimeoutSeconds?: number;
34
25
  imageWaitMs?: number;
35
26
  imagePollMs?: number;
36
27
  buildWaitMs?: number;
37
28
  buildPollMs?: number;
38
- shelveWaitMs?: number;
39
- shelvePollMs?: number;
40
29
  runningWaitMs?: number;
41
30
  runningPollMs?: number;
42
31
  log?: ComputerSandboxLogIface;
@@ -64,47 +53,31 @@ declare const computerArtifactSchema: z.ZodObject<{
64
53
  }, z.core.$strip>], "kind">;
65
54
  }, z.core.$strip>;
66
55
  declare const computerStateSchema: z.ZodObject<{
67
- version: z.ZodLiteral<1>;
68
- computerId: z.ZodString;
56
+ version: z.ZodLiteral<2>;
69
57
  computerName: z.ZodString;
70
- workspace: z.ZodEnum<typeof ComputerWorkspacePolicy>;
71
- access: z.ZodEnum<typeof SandboxAccess>;
72
- guideVersionId: z.ZodNullable<z.ZodString>;
73
- setupHash: z.ZodNullable<z.ZodString>;
74
- setupPending: z.ZodDefault<z.ZodBoolean>;
75
- workspaceId: z.ZodOptional<z.ZodString>;
76
- networkPolicySaved: z.ZodOptional<z.ZodBoolean>;
58
+ computerId: z.ZodNullable<z.ZodString>;
59
+ network: z.ZodObject<{
60
+ mode: z.ZodEnum<typeof NetworkPolicy>;
61
+ allow: z.ZodOptional<z.ZodArray<z.ZodString>>;
62
+ }, z.core.$strip>;
63
+ ports: z.ZodDefault<z.ZodArray<z.ZodNumber>>;
64
+ networkPolicySaved: z.ZodDefault<z.ZodBoolean>;
77
65
  }, z.core.$strip>;
78
66
  export type ComputerSandboxArtifact = z.infer<typeof computerArtifactSchema>;
79
67
  export type ComputerSandboxState = z.infer<typeof computerStateSchema>;
80
- export interface ComputerSandboxDescriptionIface {
81
- provider: 'computer';
82
- computerId: string;
83
- computerName: string;
84
- workspaceRoot: string;
85
- transport: string;
86
- guide: {
87
- slug: string;
88
- number: number;
89
- } | null;
90
- repositories: {
91
- alias: string;
92
- path: string;
93
- repository: string;
94
- }[];
95
- services: {
96
- name: string;
97
- readyUrl: string | null;
98
- }[];
99
- commands: GuideCommandIface[];
100
- capabilities: SandboxCapability[];
101
- }
102
68
  export interface ComputerSandboxSessionIface extends NetworkSandboxSessionIface {
103
- describe(): ComputerSandboxDescriptionIface;
104
69
  readonly capabilities: readonly SandboxCapability[];
105
70
  }
106
- export type ComputerSandboxProviderIface = SandboxProviderIface<JsonValue, JsonValue, ComputerSandboxArtifact, ComputerSandboxState, ComputerSandboxSessionIface>;
71
+ export type ComputerSandboxProviderIface = SandboxProviderIface<JsonValue, ComputerSandboxArtifact, ComputerSandboxState, ComputerSandboxSessionIface>;
107
72
  export interface ComputerSandboxErrorIface extends Error {
108
73
  code: 'artifact_unavailable' | 'computer_gone' | 'computer_not_running' | 'invalid_environment' | 'build_failed';
109
74
  }
75
+ export declare const computerNetworkPolicyOf: (setup: SandboxSetupIface | null) => NetworkPolicyIface;
76
+ export declare const computerNameFor: (sandboxId: string) => Promise<string>;
77
+ export declare const computerNeedsBuild: (build: ComputerBuildIface | undefined) => boolean;
78
+ export declare const computeComputerArtifactKey: (inputs: {
79
+ image: string;
80
+ build: ComputerBuildIface | undefined;
81
+ diskGb: number | null;
82
+ }) => Promise<string>;
110
83
  export declare const createComputerSandboxProvider: (config: ComputerSandboxProviderConfigIface) => ComputerSandboxProviderIface;