@alchemy.run/archil 0.0.0 → 2.0.0-beta.87

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 (184) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +57 -4
  3. package/lib/AWS/S3Disk.d.ts +68 -0
  4. package/lib/AWS/S3Disk.d.ts.map +1 -0
  5. package/lib/AWS/S3Disk.js +100 -0
  6. package/lib/AWS/S3Disk.js.map +1 -0
  7. package/lib/AWS/index.d.ts +2 -0
  8. package/lib/AWS/index.d.ts.map +1 -0
  9. package/lib/AWS/index.js +2 -0
  10. package/lib/AWS/index.js.map +1 -0
  11. package/lib/ApiToken.d.ts +63 -0
  12. package/lib/ApiToken.d.ts.map +1 -0
  13. package/lib/ApiToken.js +121 -0
  14. package/lib/ApiToken.js.map +1 -0
  15. package/lib/ArchilBindings.d.ts +65 -0
  16. package/lib/ArchilBindings.d.ts.map +1 -0
  17. package/lib/ArchilBindings.js +128 -0
  18. package/lib/ArchilBindings.js.map +1 -0
  19. package/lib/AuthProvider.d.ts +40 -0
  20. package/lib/AuthProvider.d.ts.map +1 -0
  21. package/lib/AuthProvider.js +87 -0
  22. package/lib/AuthProvider.js.map +1 -0
  23. package/lib/Bootstrap.d.ts +8 -0
  24. package/lib/Bootstrap.d.ts.map +1 -0
  25. package/lib/Bootstrap.js +27 -0
  26. package/lib/Bootstrap.js.map +1 -0
  27. package/lib/Branch.d.ts +101 -0
  28. package/lib/Branch.d.ts.map +1 -0
  29. package/lib/Branch.js +117 -0
  30. package/lib/Branch.js.map +1 -0
  31. package/lib/BranchDisk.d.ts +42 -0
  32. package/lib/BranchDisk.d.ts.map +1 -0
  33. package/lib/BranchDisk.js +14 -0
  34. package/lib/BranchDisk.js.map +1 -0
  35. package/lib/Checkpoint.d.ts +78 -0
  36. package/lib/Checkpoint.d.ts.map +1 -0
  37. package/lib/Checkpoint.js +95 -0
  38. package/lib/Checkpoint.js.map +1 -0
  39. package/lib/Clients.d.ts +369 -0
  40. package/lib/Clients.d.ts.map +1 -0
  41. package/lib/Clients.js +334 -0
  42. package/lib/Clients.js.map +1 -0
  43. package/lib/ConnectSandbox.d.ts +69 -0
  44. package/lib/ConnectSandbox.d.ts.map +1 -0
  45. package/lib/ConnectSandbox.js +21 -0
  46. package/lib/ConnectSandbox.js.map +1 -0
  47. package/lib/Contributions.d.ts +7 -0
  48. package/lib/Contributions.d.ts.map +1 -0
  49. package/lib/Contributions.js +6 -0
  50. package/lib/Contributions.js.map +1 -0
  51. package/lib/CreateDisk.d.ts +90 -0
  52. package/lib/CreateDisk.d.ts.map +1 -0
  53. package/lib/CreateDisk.js +47 -0
  54. package/lib/CreateDisk.js.map +1 -0
  55. package/lib/CreateImage.d.ts +42 -0
  56. package/lib/CreateImage.d.ts.map +1 -0
  57. package/lib/CreateImage.js +19 -0
  58. package/lib/CreateImage.js.map +1 -0
  59. package/lib/CreateSandbox.d.ts +104 -0
  60. package/lib/CreateSandbox.d.ts.map +1 -0
  61. package/lib/CreateSandbox.js +98 -0
  62. package/lib/CreateSandbox.js.map +1 -0
  63. package/lib/Credentials.d.ts +44 -0
  64. package/lib/Credentials.d.ts.map +1 -0
  65. package/lib/Credentials.js +57 -0
  66. package/lib/Credentials.js.map +1 -0
  67. package/lib/Disk.d.ts +283 -0
  68. package/lib/Disk.d.ts.map +1 -0
  69. package/lib/Disk.js +294 -0
  70. package/lib/Disk.js.map +1 -0
  71. package/lib/DiskObjectsHttp.d.ts +20 -0
  72. package/lib/DiskObjectsHttp.d.ts.map +1 -0
  73. package/lib/DiskObjectsHttp.js +51 -0
  74. package/lib/DiskObjectsHttp.js.map +1 -0
  75. package/lib/DiskUser.d.ts +189 -0
  76. package/lib/DiskUser.d.ts.map +1 -0
  77. package/lib/DiskUser.js +243 -0
  78. package/lib/DiskUser.js.map +1 -0
  79. package/lib/ExecDisk.d.ts +57 -0
  80. package/lib/ExecDisk.d.ts.map +1 -0
  81. package/lib/ExecDisk.js +3 -0
  82. package/lib/ExecDisk.js.map +1 -0
  83. package/lib/ExecDiskHttp.d.ts +5 -0
  84. package/lib/ExecDiskHttp.d.ts.map +1 -0
  85. package/lib/ExecDiskHttp.js +18 -0
  86. package/lib/ExecDiskHttp.js.map +1 -0
  87. package/lib/ExecDisks.d.ts +54 -0
  88. package/lib/ExecDisks.d.ts.map +1 -0
  89. package/lib/ExecDisks.js +37 -0
  90. package/lib/ExecDisks.js.map +1 -0
  91. package/lib/Image.d.ts +188 -0
  92. package/lib/Image.d.ts.map +1 -0
  93. package/lib/Image.js +191 -0
  94. package/lib/Image.js.map +1 -0
  95. package/lib/InferEnv.d.ts +26 -0
  96. package/lib/InferEnv.d.ts.map +1 -0
  97. package/lib/InferEnv.js +1 -0
  98. package/lib/InferEnv.js.map +1 -0
  99. package/lib/MountDisk.d.ts +190 -0
  100. package/lib/MountDisk.d.ts.map +1 -0
  101. package/lib/MountDisk.js +227 -0
  102. package/lib/MountDisk.js.map +1 -0
  103. package/lib/Providers.d.ts +25 -0
  104. package/lib/Providers.d.ts.map +1 -0
  105. package/lib/Providers.js +48 -0
  106. package/lib/Providers.js.map +1 -0
  107. package/lib/ReadDisk.d.ts +55 -0
  108. package/lib/ReadDisk.d.ts.map +1 -0
  109. package/lib/ReadDisk.js +3 -0
  110. package/lib/ReadDisk.js.map +1 -0
  111. package/lib/ReadWriteDisk.d.ts +26 -0
  112. package/lib/ReadWriteDisk.d.ts.map +1 -0
  113. package/lib/ReadWriteDisk.js +3 -0
  114. package/lib/ReadWriteDisk.js.map +1 -0
  115. package/lib/Sandbox.d.ts +507 -0
  116. package/lib/Sandbox.d.ts.map +1 -0
  117. package/lib/Sandbox.js +729 -0
  118. package/lib/Sandbox.js.map +1 -0
  119. package/lib/SandboxOptions.d.ts +185 -0
  120. package/lib/SandboxOptions.d.ts.map +1 -0
  121. package/lib/SandboxOptions.js +102 -0
  122. package/lib/SandboxOptions.js.map +1 -0
  123. package/lib/SandboxPortToken.d.ts +64 -0
  124. package/lib/SandboxPortToken.d.ts.map +1 -0
  125. package/lib/SandboxPortToken.js +77 -0
  126. package/lib/SandboxPortToken.js.map +1 -0
  127. package/lib/WriteDisk.d.ts +37 -0
  128. package/lib/WriteDisk.d.ts.map +1 -0
  129. package/lib/WriteDisk.js +3 -0
  130. package/lib/WriteDisk.js.map +1 -0
  131. package/lib/index.d.ts +29 -0
  132. package/lib/index.d.ts.map +1 -0
  133. package/lib/index.js +28 -0
  134. package/lib/index.js.map +1 -0
  135. package/lib/internal/DeployerKey.d.ts +21 -0
  136. package/lib/internal/DeployerKey.d.ts.map +1 -0
  137. package/lib/internal/DeployerKey.js +34 -0
  138. package/lib/internal/DeployerKey.js.map +1 -0
  139. package/lib/internal/archil.d.ts +87 -0
  140. package/lib/internal/archil.d.ts.map +1 -0
  141. package/lib/internal/archil.js +154 -0
  142. package/lib/internal/archil.js.map +1 -0
  143. package/lib/internal/hosted.d.ts +90 -0
  144. package/lib/internal/hosted.d.ts.map +1 -0
  145. package/lib/internal/hosted.js +291 -0
  146. package/lib/internal/hosted.js.map +1 -0
  147. package/package.json +79 -3
  148. package/src/AWS/S3Disk.ts +125 -0
  149. package/src/AWS/index.ts +1 -0
  150. package/src/ApiToken.ts +168 -0
  151. package/src/ArchilBindings.ts +179 -0
  152. package/src/AuthProvider.ts +122 -0
  153. package/src/Bootstrap.ts +54 -0
  154. package/src/Branch.ts +199 -0
  155. package/src/BranchDisk.ts +57 -0
  156. package/src/Checkpoint.ts +145 -0
  157. package/src/Clients.ts +954 -0
  158. package/src/ConnectSandbox.ts +91 -0
  159. package/src/Contributions.ts +9 -0
  160. package/src/CreateDisk.ts +165 -0
  161. package/src/CreateImage.ts +73 -0
  162. package/src/CreateSandbox.ts +258 -0
  163. package/src/Credentials.ts +101 -0
  164. package/src/Disk.ts +468 -0
  165. package/src/DiskObjectsHttp.ts +64 -0
  166. package/src/DiskUser.ts +369 -0
  167. package/src/ExecDisk.ts +62 -0
  168. package/src/ExecDiskHttp.ts +25 -0
  169. package/src/ExecDisks.ts +100 -0
  170. package/src/Image.ts +316 -0
  171. package/src/InferEnv.ts +27 -0
  172. package/src/MountDisk.ts +466 -0
  173. package/src/Providers.ts +75 -0
  174. package/src/ReadDisk.ts +61 -0
  175. package/src/ReadWriteDisk.ts +31 -0
  176. package/src/Sandbox.ts +1064 -0
  177. package/src/SandboxOptions.ts +230 -0
  178. package/src/SandboxPortToken.ts +125 -0
  179. package/src/WriteDisk.ts +42 -0
  180. package/src/globals.d.ts +2 -0
  181. package/src/index.ts +59 -0
  182. package/src/internal/DeployerKey.ts +63 -0
  183. package/src/internal/archil.ts +273 -0
  184. package/src/internal/hosted.ts +402 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sandbox.js","sources":["../src/Sandbox.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,185 @@
1
+ import type * as archil from "@distilled.cloud/archil";
2
+ import * as Effect from "effect/Effect";
3
+ import * as Redacted from "effect/Redacted";
4
+ import type { Disk } from "./Disk.ts";
5
+ import type { Providers } from "./Providers.ts";
6
+ /**
7
+ * An allowed destination, with optional changes to outbound HTTPS requests
8
+ * that match it. Headers set here overwrite whatever the sandbox sends, so
9
+ * a credential injected at the boundary never enters the sandbox.
10
+ */
11
+ export interface SandboxEgressTarget {
12
+ /** IPv4 address, CIDR range, exact domain, or `*.`-wildcard domain. */
13
+ target: string;
14
+ /** HTTP headers to set on matching HTTPS requests. */
15
+ headers?: Record<string, string | Redacted.Redacted<string>>;
16
+ /**
17
+ * Forward matching requests to this public HTTPS URL instead of their
18
+ * destination, such as a Worker that adds a credential. Archil appends
19
+ * the original path and query, applies `headers` first, and names the
20
+ * destination and the sandbox in `archil-forwarded-host`,
21
+ * `archil-forwarded-scheme`, `archil-forwarded-port`,
22
+ * `archil-forwarded-path` and `archil-sandbox-id` headers.
23
+ */
24
+ forwardUrl?: string;
25
+ }
26
+ /**
27
+ * Outbound network policy. Deny entries win when an address or domain
28
+ * matches both lists. Wildcards match subdomains, not the apex domain.
29
+ */
30
+ export interface SandboxEgress {
31
+ /** What happens to destinations neither list names. */
32
+ default: "allow" | "deny";
33
+ /** Allowed destinations: addresses, CIDRs, domains, or targets with request changes. */
34
+ allow?: ReadonlyArray<string | SandboxEgressTarget>;
35
+ /** Denied addresses, CIDRs, or domains. */
36
+ deny?: ReadonlyArray<string>;
37
+ /**
38
+ * Hosts whose in-flight HTTP(S) requests finish before the sandbox
39
+ * pauses (ports 80 and 443 only). Doesn't grant access.
40
+ */
41
+ drainOnPause?: ReadonlyArray<string>;
42
+ }
43
+ /**
44
+ * How a mount shares the disk with other clients.
45
+ *
46
+ * - `exclusive` — this client owns writes to the whole disk (local-disk
47
+ * speed); other clients can still mount `read-only`.
48
+ * - `shared` — many clients; the disk is read-only until a path is checked
49
+ * out with `archil checkout <path>`. FUSE client only.
50
+ * - `conditional` — many writers; writes go to the server unless a path is
51
+ * checked out (remote-filesystem speed).
52
+ * - `read-only` — no writes.
53
+ */
54
+ export type MountMode = "exclusive" | "shared" | "conditional" | "read-only";
55
+ /** A disk known at run time, e.g. a `DiskHandle` from `CreateDisk`. */
56
+ export interface DiskRef {
57
+ readonly diskId: string;
58
+ }
59
+ /**
60
+ * The disk of a mount entry: a declared `Archil.Disk` (or the Effect that
61
+ * declares it), or a run-time handle with its `diskId`.
62
+ */
63
+ export type MountableDisk = Disk | Effect.Effect<Disk, never, Providers> | DiskRef;
64
+ /** How a disk is mounted, in Archil's own terms. */
65
+ export interface DiskMountOptions {
66
+ /** Absolute directory to mount at. */
67
+ readonly path: string;
68
+ /** @default "exclusive" */
69
+ readonly mode?: MountMode;
70
+ /** Mount only this subdirectory of the disk. */
71
+ readonly subdirectory?: string;
72
+ /**
73
+ * Milliseconds to wait for the disk's exclusive root delegation before
74
+ * the mount fails. Only for `exclusive` mounts in an `Archil.Sandbox`.
75
+ */
76
+ readonly queueMs?: number;
77
+ /** Mount a branch of the disk instead of its root. FUSE client only. */
78
+ readonly branch?: string;
79
+ /**
80
+ * Take ownership of the root from a client that crashed without
81
+ * unmounting; that client's outstanding writes are lost. FUSE client only.
82
+ */
83
+ readonly force?: boolean;
84
+ }
85
+ /** A disk mounted into a sandbox (`mounts`), or by `MountDisk`. */
86
+ export interface DiskMount extends DiskMountOptions {
87
+ readonly disk: MountableDisk;
88
+ }
89
+ declare const MountOptionUnsupported_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
90
+ readonly _tag: "Archil.MountOptionUnsupported";
91
+ } & Readonly<A>;
92
+ /** A mount option the target doesn't support was set. */
93
+ export declare class MountOptionUnsupported extends MountOptionUnsupported_base<{
94
+ readonly option: string;
95
+ readonly message: string;
96
+ }> {
97
+ }
98
+ declare const MountDiskUnresolved_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
99
+ readonly _tag: "Archil.MountDiskUnresolved";
100
+ } & Readonly<A>;
101
+ /** A mount entry whose disk isn't known yet. */
102
+ export declare class MountDiskUnresolved extends MountDiskUnresolved_base<{
103
+ readonly path: string;
104
+ readonly message: string;
105
+ }> {
106
+ }
107
+ /** The disk id of a resolved mount entry's disk, if it has one. */
108
+ export declare const mountDiskId: (disk: unknown) => string | undefined;
109
+ /**
110
+ * The wire shape of a sandbox mount. Archil sandboxes mount natively: no
111
+ * `shared` mode, branches, or `force`.
112
+ */
113
+ export declare const toSandboxMount: (diskId: string, mount: DiskMountOptions) => Effect.Effect<{
114
+ disk_id: string;
115
+ path: string;
116
+ subdirectory: string | undefined;
117
+ read_only: boolean;
118
+ conditional: boolean;
119
+ queue_ms: number | undefined;
120
+ }, MountOptionUnsupported, never>;
121
+ /** A comparable form of a wire mount, defaults filled in. */
122
+ export declare const mountIdentity: (mount: archil.SandboxMount) => {
123
+ disk_id: string;
124
+ path: string;
125
+ subdirectory: string | undefined;
126
+ read_only: boolean;
127
+ conditional: boolean;
128
+ queue_ms: number | undefined;
129
+ };
130
+ /** A port a sandbox serves publicly. */
131
+ export interface SandboxEndpoint {
132
+ port: number;
133
+ /** Public hostname that routes to the port. */
134
+ hostname: string;
135
+ }
136
+ /** The wire shape of an egress policy. */
137
+ export declare const toEgressPolicy: (egress: SandboxEgress) => archil.SandboxEgressPolicy;
138
+ /**
139
+ * Split off the allow-list entries Archil adds itself to a sandbox that
140
+ * mounts disks (`mount.*.archil.com`, `data.*.archil.com`). They aren't
141
+ * part of the desired policy, but an update must keep them.
142
+ */
143
+ export declare const splitArchilEgress: (egress: archil.SandboxEgressPolicy | undefined) => {
144
+ managed: archil.SandboxEgressPolicyAllowItem[];
145
+ policy: {
146
+ default: archil.SandboxNetworkAction | (string & {});
147
+ deny?: archil.SandboxEgressPolicyDenyList | undefined;
148
+ drain_on_pause?: archil.SandboxEgressPolicyDrainOnPauseList | undefined;
149
+ allow: archil.SandboxEgressPolicyAllowItem[] | undefined;
150
+ } | undefined;
151
+ };
152
+ /** Environment values, unwrapped for the wire. */
153
+ export declare const toEnv: (env: Record<string, string | Redacted.Redacted<string>> | undefined) => {
154
+ [k: string]: string;
155
+ } | undefined;
156
+ /** A comparable form of an egress policy (header values are hashed out). */
157
+ export declare const egressIdentity: (egress: SandboxEgress | undefined) => {
158
+ /** What happens to destinations neither list names. */
159
+ default: "allow" | "deny";
160
+ /** Denied addresses, CIDRs, or domains. */
161
+ deny?: ReadonlyArray<string>;
162
+ /**
163
+ * Hosts whose in-flight HTTP(S) requests finish before the sandbox
164
+ * pauses (ports 80 and 443 only). Doesn't grant access.
165
+ */
166
+ drainOnPause?: ReadonlyArray<string>;
167
+ allow: (string | {
168
+ /** IPv4 address, CIDR range, exact domain, or `*.`-wildcard domain. */
169
+ target: string;
170
+ /**
171
+ * Forward matching requests to this public HTTPS URL instead of their
172
+ * destination, such as a Worker that adds a credential. Archil appends
173
+ * the original path and query, applies `headers` first, and names the
174
+ * destination and the sandbox in `archil-forwarded-host`,
175
+ * `archil-forwarded-scheme`, `archil-forwarded-port`,
176
+ * `archil-forwarded-path` and `archil-sandbox-id` headers.
177
+ */
178
+ forwardUrl?: string;
179
+ headers: {
180
+ [k: string]: string;
181
+ } | undefined;
182
+ })[] | undefined;
183
+ } | undefined;
184
+ export {};
185
+ //# sourceMappingURL=SandboxOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SandboxOptions.d.ts","sources":["../src/SandboxOptions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,102 @@
1
+ import * as Data from "effect/Data";
2
+ import * as Effect from "effect/Effect";
3
+ import * as Redacted from "effect/Redacted";
4
+ /** A mount option the target doesn't support was set. */
5
+ export class MountOptionUnsupported extends Data.TaggedError("Archil.MountOptionUnsupported") {
6
+ }
7
+ /** A mount entry whose disk isn't known yet. */
8
+ export class MountDiskUnresolved extends Data.TaggedError("Archil.MountDiskUnresolved") {
9
+ }
10
+ /** The disk id of a resolved mount entry's disk, if it has one. */
11
+ export const mountDiskId = (disk) => typeof disk === "object" && disk !== null && "diskId" in disk && typeof disk.diskId === "string"
12
+ ? disk.diskId
13
+ : undefined;
14
+ /**
15
+ * The wire shape of a sandbox mount. Archil sandboxes mount natively: no
16
+ * `shared` mode, branches, or `force`.
17
+ */
18
+ export const toSandboxMount = Effect.fn(function* (diskId, mount) {
19
+ const unsupported = mount.mode === "shared"
20
+ ? 'mode: "shared"'
21
+ : mount.branch !== undefined
22
+ ? "branch"
23
+ : mount.force
24
+ ? "force"
25
+ : undefined;
26
+ if (unsupported !== undefined) {
27
+ return yield* new MountOptionUnsupported({
28
+ option: unsupported,
29
+ message: `An Archil sandbox can't mount a disk with ${unsupported} (only the FUSE client can); mount it at ${mount.path} without it.`,
30
+ });
31
+ }
32
+ if (mount.queueMs !== undefined && (mount.mode ?? "exclusive") !== "exclusive") {
33
+ return yield* new MountOptionUnsupported({
34
+ option: "queueMs",
35
+ message: `queueMs only applies to exclusive mounts (${mount.path} is ${mount.mode}).`,
36
+ });
37
+ }
38
+ return {
39
+ disk_id: diskId,
40
+ path: mount.path,
41
+ subdirectory: mount.subdirectory,
42
+ read_only: mount.mode === "read-only",
43
+ conditional: mount.mode === "conditional",
44
+ queue_ms: mount.queueMs,
45
+ };
46
+ });
47
+ /** A comparable form of a wire mount, defaults filled in. */
48
+ export const mountIdentity = (mount) => ({
49
+ disk_id: mount.disk_id,
50
+ path: mount.path ?? "/mnt/archil",
51
+ subdirectory: mount.subdirectory || undefined,
52
+ read_only: mount.read_only ?? false,
53
+ conditional: mount.conditional ?? false,
54
+ queue_ms: mount.queue_ms ?? undefined,
55
+ });
56
+ const secretValue = (value) => typeof value === "string" ? value : Redacted.value(value);
57
+ /** The wire shape of an egress policy. */
58
+ export const toEgressPolicy = (egress) => ({
59
+ default: egress.default,
60
+ allow: egress.allow?.map((entry) => typeof entry === "string"
61
+ ? entry
62
+ : {
63
+ target: entry.target,
64
+ transform: entry.headers
65
+ ? {
66
+ headers: Object.fromEntries(Object.entries(entry.headers).map(([k, v]) => [k, secretValue(v)])),
67
+ }
68
+ : undefined,
69
+ forward_url: entry.forwardUrl,
70
+ }),
71
+ deny: egress.deny ? [...egress.deny] : undefined,
72
+ drain_on_pause: egress.drainOnPause ? [...egress.drainOnPause] : undefined,
73
+ });
74
+ const isArchilEgress = (entry) => typeof entry === "string" && /^(mount|data)\.\*\.archil\.com$/.test(entry);
75
+ /**
76
+ * Split off the allow-list entries Archil adds itself to a sandbox that
77
+ * mounts disks (`mount.*.archil.com`, `data.*.archil.com`). They aren't
78
+ * part of the desired policy, but an update must keep them.
79
+ */
80
+ export const splitArchilEgress = (egress) => ({
81
+ managed: (egress?.allow ?? []).filter(isArchilEgress),
82
+ policy: egress && { ...egress, allow: egress.allow?.filter((entry) => !isArchilEgress(entry)) },
83
+ });
84
+ /** Environment values, unwrapped for the wire. */
85
+ export const toEnv = (env) => env === undefined
86
+ ? undefined
87
+ : Object.fromEntries(Object.entries(env).map(([k, v]) => [k, secretValue(v)]));
88
+ /** A comparable form of an egress policy (header values are hashed out). */
89
+ export const egressIdentity = (egress) => egress === undefined
90
+ ? undefined
91
+ : {
92
+ ...egress,
93
+ allow: egress.allow?.map((entry) => typeof entry === "string"
94
+ ? entry
95
+ : {
96
+ ...entry,
97
+ headers: entry.headers
98
+ ? Object.fromEntries(Object.entries(entry.headers).map(([k, v]) => [k, secretValue(v)]))
99
+ : undefined,
100
+ }),
101
+ };
102
+ //# sourceMappingURL=SandboxOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SandboxOptions.js","sources":["../src/SandboxOptions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ import * as archil from "@distilled.cloud/archil";
2
+ import * as Provider from "alchemy/Provider";
3
+ import { Resource } from "alchemy/Resource";
4
+ import * as Effect from "effect/Effect";
5
+ import * as Redacted from "effect/Redacted";
6
+ import type { Providers } from "./Providers.ts";
7
+ export interface SandboxPortTokenProps {
8
+ /** Sandbox id (e.g. `sandbox.sandboxId`). Changing it replaces the token. */
9
+ sandbox: string;
10
+ /** The exposed port the token opens. Changing it replaces the token. */
11
+ port: number;
12
+ /**
13
+ * How long the token lasts, e.g. `"24h"` or `"30m"`. Omit for a token
14
+ * that lasts until revoked. Changing it replaces the token.
15
+ */
16
+ ttl?: string;
17
+ }
18
+ export interface SandboxPortTokenAttributes {
19
+ /** Token id. */
20
+ tokenId: string;
21
+ sandboxId: string;
22
+ port: number;
23
+ /** Hostname the token opens. */
24
+ hostname: string;
25
+ /** The token. Send it with requests to `hostname`. */
26
+ token: Redacted.Redacted<string>;
27
+ /** When the token expires, if it does. */
28
+ expiresAt: string | undefined;
29
+ }
30
+ export type SandboxPortToken = Resource<"Archil.SandboxPortToken", SandboxPortTokenProps, SandboxPortTokenAttributes, never, Providers>;
31
+ /**
32
+ * A token that opens one exposed port of one sandbox, for a client that
33
+ * shouldn't hold your API key. Archil only shows the token once, so Alchemy
34
+ * stores it in state as a `Redacted` value; destroying the resource revokes
35
+ * it.
36
+ * @see https://docs.archil.com/compute/sandboxes/introduction
37
+ *
38
+ * ### Creating a Port Token
39
+ * **Example:** A day-long token for a preview
40
+ * ```typescript
41
+ * const token = yield* Archil.SandboxPortToken("PreviewToken", {
42
+ * sandbox: preview.sandboxId,
43
+ * port: 3000,
44
+ * ttl: "24h",
45
+ * });
46
+ * ```
47
+ *
48
+ * @resource
49
+ * @product Sandbox
50
+ */
51
+ export declare const SandboxPortToken: import("alchemy").ResourceClass<SandboxPortToken>;
52
+ /** Mint a port token. */
53
+ export declare const createPortToken: (sid: string, port: number, ttl?: string | undefined) => Effect.Effect<{
54
+ tokenId: string;
55
+ sandboxId: string;
56
+ port: number;
57
+ hostname: string;
58
+ token: Redacted.Redacted<string>;
59
+ expiresAt: string | undefined;
60
+ }, archil.CreateSandboxPortTokenError, archil.ArchilOpContext>;
61
+ /** Revoke a port token. Revoking a missing token succeeds. */
62
+ export declare const revokePortToken: (sid: string, tokenId: string) => Effect.Effect<void, archil.ArchilParseError | archil.BadGateway | import("@distilled.cloud/core/errors").BadRequest | archil.ConfigError | import("@distilled.cloud/core/errors").Conflict | import("@distilled.cloud/core/errors").Forbidden | archil.GatewayTimeout | import("effect/http/HttpClientError").HttpClientError | archil.InternalServerError | import("@distilled.cloud/core/protocol-http").InvalidInput | archil.Locked | import("@distilled.cloud/core/sdk-error").SdkError | archil.ServiceUnavailable | archil.TooManyRequests | archil.Unauthorized | archil.UnknownArchilError | archil.UnprocessableEntity, archil.ArchilOpContext>;
63
+ export declare const SandboxPortTokenProvider: () => import("effect/Layer").Layer<Provider.Provider<SandboxPortToken>, never, archil.ArchilOpContext>;
64
+ //# sourceMappingURL=SandboxPortToken.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SandboxPortToken.d.ts","sources":["../src/SandboxPortToken.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,yBAAyB,CAAC;AAElD,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,WAAW,qBAAqB;IACpC,6EAA6E;IAC7E,OAAO,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,0BAA0B;IACzC,gBAAgB;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjC,0CAA0C;IAC1C,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CACrC,yBAAyB,EACzB,qBAAqB,EACrB,0BAA0B,EAC1B,KAAK,EACL,SAAS,CACV,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,gBAAgB,mDAAwD,CAAC;AAEtF,yBAAyB;AACzB,eAAO,MAAM,eAAe;;;;;;;8DAU1B,CAAC;AAEH,8DAA8D;AAC9D,eAAO,MAAM,eAAe,QAAS,MAAM,WAAW,MAAM,8nBAIzD,CAAC;AAEJ,eAAO,MAAM,wBAAwB,wGAyClC,CAAC"}
@@ -0,0 +1,77 @@
1
+ import * as archil from "@distilled.cloud/archil";
2
+ import { isResolved } from "alchemy/Diff";
3
+ import * as Provider from "alchemy/Provider";
4
+ import { Resource } from "alchemy/Resource";
5
+ import * as Effect from "effect/Effect";
6
+ import * as Redacted from "effect/Redacted";
7
+ /**
8
+ * A token that opens one exposed port of one sandbox, for a client that
9
+ * shouldn't hold your API key. Archil only shows the token once, so Alchemy
10
+ * stores it in state as a `Redacted` value; destroying the resource revokes
11
+ * it.
12
+ * @see https://docs.archil.com/compute/sandboxes/introduction
13
+ *
14
+ * ### Creating a Port Token
15
+ * **Example:** A day-long token for a preview
16
+ * ```typescript
17
+ * const token = yield* Archil.SandboxPortToken("PreviewToken", {
18
+ * sandbox: preview.sandboxId,
19
+ * port: 3000,
20
+ * ttl: "24h",
21
+ * });
22
+ * ```
23
+ *
24
+ * @resource
25
+ * @product Sandbox
26
+ */
27
+ export const SandboxPortToken = Resource("Archil.SandboxPortToken");
28
+ /** Mint a port token. */
29
+ export const createPortToken = Effect.fn(function* (sid, port, ttl) {
30
+ const { data } = yield* archil.createSandboxPortToken({ sid, port, ttl });
31
+ return {
32
+ tokenId: data.id,
33
+ sandboxId: sid,
34
+ port: data.port,
35
+ hostname: data.hostname,
36
+ token: typeof data.token === "string" ? Redacted.make(data.token) : data.token,
37
+ expiresAt: data.expires_at,
38
+ };
39
+ });
40
+ /** Revoke a port token. Revoking a missing token succeeds. */
41
+ export const revokePortToken = (sid, tokenId) => archil.deleteSandboxPortToken({ sid, token_id: tokenId }).pipe(Effect.asVoid, Effect.catchTag("NotFound", () => Effect.void));
42
+ export const SandboxPortTokenProvider = () => Provider.effect(SandboxPortToken, Effect.gen(function* () {
43
+ return {
44
+ stables: ["tokenId", "sandboxId", "port", "hostname", "token", "expiresAt"],
45
+ diff: Effect.fn(function* ({ olds, news }) {
46
+ if (!isResolved(news) || olds === undefined)
47
+ return undefined;
48
+ if (news.sandbox !== olds.sandbox || news.port !== olds.port || news.ttl !== olds.ttl) {
49
+ return { action: "replace" };
50
+ }
51
+ return undefined;
52
+ }),
53
+ read: Effect.fn(function* ({ output }) {
54
+ if (!output)
55
+ return undefined;
56
+ return yield* archil
57
+ .getSandboxPortToken({ sid: output.sandboxId, token_id: output.tokenId })
58
+ .pipe(Effect.map(() => output), Effect.catchTag("NotFound", () => Effect.undefined));
59
+ }),
60
+ reconcile: Effect.fn(function* ({ news, output }) {
61
+ // Observe — a live token we minted is kept; tokens can't be updated.
62
+ if (output) {
63
+ const live = yield* archil
64
+ .getSandboxPortToken({ sid: output.sandboxId, token_id: output.tokenId })
65
+ .pipe(Effect.as(true), Effect.catchTag("NotFound", () => Effect.succeed(false)));
66
+ if (live)
67
+ return output;
68
+ }
69
+ // Ensure
70
+ return yield* createPortToken(news.sandbox, news.port, news.ttl);
71
+ }),
72
+ delete: Effect.fn(function* ({ output }) {
73
+ yield* revokePortToken(output.sandboxId, output.tokenId);
74
+ }),
75
+ };
76
+ }));
77
+ //# sourceMappingURL=SandboxPortToken.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SandboxPortToken.js","sources":["../src/SandboxPortToken.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import * as Binding from "alchemy/Binding";
2
+ import type * as Effect from "effect/Effect";
3
+ import type { WriteDiskClient } from "./Clients.ts";
4
+ import type { Disk } from "./Disk.ts";
5
+ import type { DiskObjectsOptions } from "./ReadDisk.ts";
6
+ export type { WriteDiskClient } from "./Clients.ts";
7
+ /**
8
+ * Write a disk's files as objects over Archil's S3-compatible API: put,
9
+ * append, copy, delete, and multipart uploads of any size. The host gets
10
+ * its own read-write S3 user on this disk, so it can't reach any other
11
+ * disk and never holds an API key. A write that conflicts with a mounted
12
+ * client's write delegation fails with `ObjectConflict`; `ExecDisk`'s
13
+ * `delegations` and `revokeDelegation` reclaim paths a crashed client
14
+ * still holds.
15
+ *
16
+ * ### Writing Files
17
+ * **Example:** Append events to a log on a disk
18
+ * ```typescript
19
+ * const files = yield* Archil.WriteDisk(Dataset);
20
+ * yield* files.append("events.ndjson", JSON.stringify(event) + "\n");
21
+ * ```
22
+ *
23
+ * ### Uploading Large Files
24
+ * **Example:** Stream a file of any size onto the disk
25
+ * ```typescript
26
+ * const files = yield* Archil.WriteDisk(Dataset);
27
+ * const request = yield* HttpServerRequest;
28
+ * yield* files.upload("uploads/video.mp4", request.stream, { contentType: "video/mp4" });
29
+ * ```
30
+ *
31
+ * @binding
32
+ * @product Disk
33
+ */
34
+ export interface WriteDisk extends Binding.Service<WriteDisk, "Archil.WriteDisk", (disk: Disk, options?: DiskObjectsOptions) => Effect.Effect<WriteDiskClient>> {
35
+ }
36
+ export declare const WriteDisk: WriteDisk;
37
+ //# sourceMappingURL=WriteDisk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WriteDisk.d.ts","sources":["../src/WriteDisk.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAC3C,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAExD,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,WAAW,SAAU,SAAQ,OAAO,CAAC,OAAO,CAChD,SAAS,EACT,kBAAkB,EAClB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,kBAAkB,KAAK,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAC7E;CAAG;AAEJ,eAAO,MAAM,SAAS,WAAiD,CAAC"}
@@ -0,0 +1,3 @@
1
+ import * as Binding from "alchemy/Binding";
2
+ export const WriteDisk = Binding.Service("Archil.WriteDisk");
3
+ //# sourceMappingURL=WriteDisk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WriteDisk.js","sources":["../src/WriteDisk.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAyC3C,MAAM,CAAC,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAY,kBAAkB,CAAC,CAAC"}
package/lib/index.d.ts ADDED
@@ -0,0 +1,29 @@
1
+ export * from "./ApiToken.ts";
2
+ export * from "./AuthProvider.ts";
3
+ export * from "./Branch.ts";
4
+ export * from "./BranchDisk.ts";
5
+ export * from "./Checkpoint.ts";
6
+ export { SandboxPortNotExposed, type Command, type DiskDelegationsClient, type DiskHandle, type ExecOptions, type ObjectsTransportError, type ProcessCallError, type PtyConnection, type PtyOptions, type ReadWriteDiskClient, type SandboxFiles, type SandboxHandle, type SandboxOps, type SandboxPort, type SandboxPortError, type SandboxProcess, type SandboxProcessExit, type SandboxProcessOutput, type ShareError, type StartOptions, } from "./Clients.ts";
7
+ export * from "./ConnectSandbox.ts";
8
+ export * from "./CreateDisk.ts";
9
+ export * from "./CreateImage.ts";
10
+ export * from "./CreateSandbox.ts";
11
+ export { Account, account, Credentials, CredentialsFromEnv, DEFAULT_REGION, fromApiKey, fromAuthProvider, REGIONS, type ArchilAccount, } from "./Credentials.ts";
12
+ export * from "./Disk.ts";
13
+ export * from "./DiskObjectsHttp.ts";
14
+ export * from "./DiskUser.ts";
15
+ export * from "./ExecDisk.ts";
16
+ export * from "./ExecDiskHttp.ts";
17
+ export * from "./ExecDisks.ts";
18
+ export * from "./Image.ts";
19
+ export { ArchilFailed, ArchilNotReady } from "./internal/archil.ts";
20
+ export * from "./MountDisk.ts";
21
+ export * from "./Providers.ts";
22
+ export * from "./ReadDisk.ts";
23
+ export * from "./ReadWriteDisk.ts";
24
+ export * from "./Sandbox.ts";
25
+ export * from "./SandboxOptions.ts";
26
+ export * from "./SandboxPortToken.ts";
27
+ export type { InferEnv } from "./InferEnv.ts";
28
+ export * from "./WriteDisk.ts";
29
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,OAAO,EACL,qBAAqB,EACrB,KAAK,OAAO,EACZ,KAAK,qBAAqB,EAC1B,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,UAAU,EACf,KAAK,YAAY,GAClB,MAAM,cAAc,CAAC;AACtB,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,OAAO,EACL,OAAO,EACP,OAAO,EACP,WAAW,EACX,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,OAAO,EACP,KAAK,aAAa,GACnB,MAAM,kBAAkB,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACpE,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,cAAc,gBAAgB,CAAC"}
package/lib/index.js ADDED
@@ -0,0 +1,28 @@
1
+ export * from "./ApiToken.js";
2
+ export * from "./AuthProvider.js";
3
+ export * from "./Branch.js";
4
+ export * from "./BranchDisk.js";
5
+ export * from "./Checkpoint.js";
6
+ export { SandboxPortNotExposed, } from "./Clients.js";
7
+ export * from "./ConnectSandbox.js";
8
+ export * from "./CreateDisk.js";
9
+ export * from "./CreateImage.js";
10
+ export * from "./CreateSandbox.js";
11
+ export { Account, account, Credentials, CredentialsFromEnv, DEFAULT_REGION, fromApiKey, fromAuthProvider, REGIONS, } from "./Credentials.js";
12
+ export * from "./Disk.js";
13
+ export * from "./DiskObjectsHttp.js";
14
+ export * from "./DiskUser.js";
15
+ export * from "./ExecDisk.js";
16
+ export * from "./ExecDiskHttp.js";
17
+ export * from "./ExecDisks.js";
18
+ export * from "./Image.js";
19
+ export { ArchilFailed, ArchilNotReady } from "./internal/archil.js";
20
+ export * from "./MountDisk.js";
21
+ export * from "./Providers.js";
22
+ export * from "./ReadDisk.js";
23
+ export * from "./ReadWriteDisk.js";
24
+ export * from "./Sandbox.js";
25
+ export * from "./SandboxOptions.js";
26
+ export * from "./SandboxPortToken.js";
27
+ export * from "./WriteDisk.js";
28
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,OAAO,EACL,qBAAqB,GAoBtB,MAAM,cAAc,CAAC;AACtB,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,OAAO,EACL,OAAO,EACP,OAAO,EACP,WAAW,EACX,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,OAAO,GAER,MAAM,kBAAkB,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACpE,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AAEtC,cAAc,gBAAgB,CAAC"}