@alchemy.run/docker 2.0.0-beta.85 → 2.0.0-beta.86

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 (93) hide show
  1. package/README.md +16 -0
  2. package/lib/Bootstrap.d.ts.map +1 -1
  3. package/lib/Bootstrap.js +2 -1
  4. package/lib/Bootstrap.js.map +1 -1
  5. package/lib/BuildCache.d.ts +87 -0
  6. package/lib/BuildCache.d.ts.map +1 -0
  7. package/lib/BuildCache.js +39 -0
  8. package/lib/BuildCache.js.map +1 -0
  9. package/lib/BuildHash.d.ts +9 -1
  10. package/lib/BuildHash.d.ts.map +1 -1
  11. package/lib/BuildHash.js +51 -19
  12. package/lib/BuildHash.js.map +1 -1
  13. package/lib/BuildPlan.d.ts +202 -0
  14. package/lib/BuildPlan.d.ts.map +1 -0
  15. package/lib/BuildPlan.js +514 -0
  16. package/lib/BuildPlan.js.map +1 -0
  17. package/lib/Container.d.ts +24 -1
  18. package/lib/Container.d.ts.map +1 -1
  19. package/lib/Container.js +14 -0
  20. package/lib/Container.js.map +1 -1
  21. package/lib/Context.d.ts +20 -1
  22. package/lib/Context.d.ts.map +1 -1
  23. package/lib/Context.js +15 -0
  24. package/lib/Context.js.map +1 -1
  25. package/lib/Docker.d.ts +33 -0
  26. package/lib/Docker.d.ts.map +1 -1
  27. package/lib/Docker.js +23 -2
  28. package/lib/Docker.js.map +1 -1
  29. package/lib/Dockerfile.d.ts +0 -2
  30. package/lib/Dockerfile.d.ts.map +1 -1
  31. package/lib/Dockerfile.js.map +1 -1
  32. package/lib/DockerfileParser.d.ts +125 -0
  33. package/lib/DockerfileParser.d.ts.map +1 -0
  34. package/lib/DockerfileParser.js +1040 -0
  35. package/lib/DockerfileParser.js.map +1 -0
  36. package/lib/HealthcheckCommand.d.ts.map +1 -1
  37. package/lib/HealthcheckCommand.js.map +1 -1
  38. package/lib/Image.d.ts +40 -12
  39. package/lib/Image.d.ts.map +1 -1
  40. package/lib/Image.js +41 -9
  41. package/lib/Image.js.map +1 -1
  42. package/lib/ImageArchive.d.ts +41 -0
  43. package/lib/ImageArchive.d.ts.map +1 -0
  44. package/lib/ImageArchive.js +54 -0
  45. package/lib/ImageArchive.js.map +1 -0
  46. package/lib/ImageSource.d.ts +100 -11
  47. package/lib/ImageSource.d.ts.map +1 -1
  48. package/lib/ImageSource.js +219 -73
  49. package/lib/ImageSource.js.map +1 -1
  50. package/lib/Network.d.ts +175 -3
  51. package/lib/Network.d.ts.map +1 -1
  52. package/lib/Network.js +296 -8
  53. package/lib/Network.js.map +1 -1
  54. package/lib/Providers.d.ts.map +1 -1
  55. package/lib/Providers.js.map +1 -1
  56. package/lib/Registry.d.ts.map +1 -1
  57. package/lib/Registry.js.map +1 -1
  58. package/lib/RegistryError.d.ts.map +1 -1
  59. package/lib/RegistryError.js.map +1 -1
  60. package/lib/RemoteImage.d.ts.map +1 -1
  61. package/lib/RemoteImage.js.map +1 -1
  62. package/lib/Service.d.ts.map +1 -1
  63. package/lib/Service.js.map +1 -1
  64. package/lib/ServiceImage.d.ts.map +1 -1
  65. package/lib/ServiceImage.js.map +1 -1
  66. package/lib/ShellWord.d.ts +28 -0
  67. package/lib/ShellWord.d.ts.map +1 -0
  68. package/lib/ShellWord.js +301 -0
  69. package/lib/ShellWord.js.map +1 -0
  70. package/lib/Swarm.d.ts.map +1 -1
  71. package/lib/Swarm.js.map +1 -1
  72. package/lib/Volume.d.ts +24 -1
  73. package/lib/Volume.d.ts.map +1 -1
  74. package/lib/Volume.js +16 -0
  75. package/lib/Volume.js.map +1 -1
  76. package/lib/index.d.ts.map +1 -1
  77. package/lib/index.js.map +1 -1
  78. package/package.json +9 -9
  79. package/src/Bootstrap.ts +2 -0
  80. package/src/BuildCache.ts +111 -0
  81. package/src/BuildHash.ts +73 -24
  82. package/src/BuildPlan.ts +758 -0
  83. package/src/Container.ts +31 -1
  84. package/src/Context.ts +27 -1
  85. package/src/Docker.ts +56 -2
  86. package/src/Dockerfile.ts +0 -2
  87. package/src/DockerfileParser.ts +1152 -0
  88. package/src/Image.ts +45 -14
  89. package/src/ImageArchive.ts +77 -0
  90. package/src/ImageSource.ts +322 -103
  91. package/src/Network.ts +432 -10
  92. package/src/ShellWord.ts +326 -0
  93. package/src/Volume.ts +33 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ImageSource.d.ts","sourceRoot":"","sources":["../src/ImageSource.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ImageSource.d.ts","sources":["../src/ImageSource.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,14 @@
1
1
  import { AlchemyContext } from "alchemy/AlchemyContext";
2
2
  import * as Bundle from "alchemy/Bundle/Bundle";
3
3
  import { findCwdForBundle, getStableContextDir, resolveMainPath } from "alchemy/Bundle/TempRoot";
4
- import { hashDirectory } from "alchemy/Command/Memo";
5
4
  import { sha256Object } from "alchemy/Util/sha256";
6
5
  import * as Data from "effect/Data";
7
6
  import * as Effect from "effect/Effect";
8
7
  import * as FileSystem from "effect/FileSystem";
9
8
  import * as Path from "effect/Path";
10
9
  import * as Schedule from "effect/Schedule";
10
+ import { imageBuildCacheOptions } from "./BuildCache.js";
11
+ import { hashDockerBuildInputs } from "./BuildHash.js";
11
12
  import { Docker } from "./Docker.js";
12
13
  import { isInlineDockerfile } from "./Dockerfile.js";
13
14
  /**
@@ -25,16 +26,20 @@ export const imageSourceKind = (source) => source.main !== undefined
25
26
  : undefined;
26
27
  /**
27
28
  * `build.args` or `build.secrets` set on an image that is not built from the
28
- * user's own Dockerfile: a `main` program or a pre-built `image`.
29
+ * user's own Dockerfile (a `main` program or a pre-built `image`), or
30
+ * `build.cache` set on a pre-built `image`, which is never built.
29
31
  */
30
32
  export class DockerfileBuildConflict extends Data.TaggedError("DockerfileBuildConflict") {
31
33
  get message() {
32
- return `'${this.id}': 'build.args' and 'build.secrets' apply to an image built from your own Dockerfile ('context' / 'dockerfile'), not to '${this.source}'`;
34
+ return this.option === "cache"
35
+ ? `'${this.id}': 'build.cache' applies to an image Alchemy builds ('main' / 'context' / 'dockerfile'), not to a pre-built 'image'`
36
+ : `'${this.id}': 'build.args' and 'build.secrets' apply to an image built from your own Dockerfile ('context' / 'dockerfile'), not to '${this.source}'`;
33
37
  }
34
38
  }
35
39
  /**
36
40
  * Dies with {@link DockerfileBuildConflict} when `build.args` or
37
- * `build.secrets` are set alongside `main` or `image`.
41
+ * `build.secrets` are set alongside `main` or `image`, or `build.cache`
42
+ * alongside `image`.
38
43
  */
39
44
  export const validateDockerfileBuild = (id, source) => (source.main !== undefined || source.image !== undefined) &&
40
45
  (source.build?.args !== undefined || source.build?.secrets !== undefined)
@@ -42,7 +47,9 @@ export const validateDockerfileBuild = (id, source) => (source.main !== undefine
42
47
  id,
43
48
  source: source.main !== undefined ? "main" : "image",
44
49
  }))
45
- : Effect.void;
50
+ : source.main === undefined && source.image !== undefined && source.build?.cache
51
+ ? Effect.die(new DockerfileBuildConflict({ id, source: "image", option: "cache" }))
52
+ : Effect.void;
46
53
  /**
47
54
  * Validate environment-source exclusivity. Dies (plan-time defect) on
48
55
  * `image`+`dockerfile`, `image`+`context`, inline-`dockerfile`+`context`, or
@@ -62,6 +69,58 @@ export const validateImageSource = (id, source) => {
62
69
  }
63
70
  return validateDockerfileBuild(id, source);
64
71
  };
72
+ /**
73
+ * Where an {@link ImageAgent}'s image copies the agent and its runtime, and
74
+ * where the image's container finds them.
75
+ */
76
+ export const IMAGE_AGENT_DIR = "/opt/alchemy/sandbox";
77
+ /**
78
+ * The entry point that starts an {@link ImageAgent} from
79
+ * {@link IMAGE_AGENT_DIR}. Bun starts through the loader that came with it,
80
+ * so the image's own libc (glibc, another musl, or none) is never consulted
81
+ * and the image needs nothing installed. The container's command arrives as
82
+ * the agent's arguments.
83
+ */
84
+ export const imageAgentEntryPoint = [
85
+ `${IMAGE_AGENT_DIR}/ld-musl.so.1`,
86
+ "--library-path",
87
+ `${IMAGE_AGENT_DIR}/lib`,
88
+ `${IMAGE_AGENT_DIR}/bun`,
89
+ `${IMAGE_AGENT_DIR}/index.mjs`,
90
+ ];
91
+ /**
92
+ * The image the agent's runtime comes from. The musl build of Bun runs on any
93
+ * Linux image once its loader and C++ runtime come with it.
94
+ */
95
+ const AGENT_RUNTIME_IMAGE = "oven/bun:1-alpine";
96
+ /** Where the agent's bundle sits inside its own image. */
97
+ const AGENT_BUNDLE_DIR = "/agent";
98
+ /**
99
+ * The Dockerfile of an {@link ImageAgent}'s image: the runtime's image plus
100
+ * the agent's bundle. Its entry point copies the runtime, the loader, the
101
+ * C++ runtime and the bundle into {@link IMAGE_AGENT_DIR}, where the platform
102
+ * mounted a volume, and exits.
103
+ */
104
+ const AGENT_DOCKERFILE = `${[
105
+ `FROM ${AGENT_RUNTIME_IMAGE}`,
106
+ `COPY index.mjs ${AGENT_BUNDLE_DIR}/index.mjs`,
107
+ `COPY *.js ${AGENT_BUNDLE_DIR}/`,
108
+ `ENTRYPOINT ${JSON.stringify([
109
+ "/bin/sh",
110
+ "-ec",
111
+ [
112
+ `mkdir -p ${IMAGE_AGENT_DIR}/lib`,
113
+ `cp /usr/local/bin/bun ${IMAGE_AGENT_DIR}/bun`,
114
+ `cp /lib/ld-musl-*.so.1 ${IMAGE_AGENT_DIR}/ld-musl.so.1`,
115
+ `cp /usr/lib/libstdc++.so.6 /usr/lib/libgcc_s.so.1 ${IMAGE_AGENT_DIR}/lib/`,
116
+ `cp ${AGENT_BUNDLE_DIR}/* ${IMAGE_AGENT_DIR}/`,
117
+ // The image's container may run as any user.
118
+ `chmod -R a+rX ${IMAGE_AGENT_DIR}`,
119
+ ].join(" && "),
120
+ ])}`,
121
+ ].join("\n")}\n`;
122
+ /** The generated entry of an {@link ImageAgent}: import the module and run it. */
123
+ const agentEntry = (importPath) => `import { bootstrap } from ${JSON.stringify(importPath)};\nawait bootstrap();\n`;
65
124
  /**
66
125
  * Resolve the Dockerfile path for a `context` source: always relative to the
67
126
  * cwd (absolute paths pass through), defaulting to `${context}/Dockerfile`.
@@ -116,22 +175,76 @@ export const computeStaticSourceHash = Effect.fn(function* (source, platform) {
116
175
  buildArgs: source.build?.args,
117
176
  })).slice(0, 16);
118
177
  }
119
- const fs = yield* FileSystem.FileSystem;
120
178
  const { context, dockerfile } = yield* resolveContextPaths({
121
179
  context: source.context,
122
180
  dockerfile: source.dockerfile,
123
181
  });
124
- const contextHash = yield* hashDirectory({ cwd: context });
125
- const dockerfileContent = yield* fs.readFileString(dockerfile);
126
- return (yield* sha256Object({
127
- contextHash,
128
- dockerfile: dockerfileContent,
182
+ // Hash what Docker receives: the context `.dockerignore` keeps (never a
183
+ // lockfile above it), the Dockerfile, platform and build args.
184
+ return (yield* hashDockerBuildInputs({
185
+ context,
186
+ dockerfile,
129
187
  platform: platform ?? "linux/amd64",
130
188
  buildArgs: source.build?.args,
131
- })).slice(0, 16);
189
+ }, "effective")).slice(0, 16);
132
190
  }
133
191
  return undefined;
134
192
  });
193
+ /**
194
+ * The exact rolldown input/output options `bundleMainProgram` hands to
195
+ * `Bundle.build` — shared with {@link watchMain} so a dev watcher's
196
+ * `Bundle.watch` observes the identical module graph.
197
+ */
198
+ export const mainBundleOptions = (source, entry, cwd, plugins) => ({
199
+ inputOptions: {
200
+ ...source.build?.input,
201
+ input: entry,
202
+ cwd,
203
+ platform: "node",
204
+ // The container runs on `bun`; keep `bun`/`bun:*` external (the
205
+ // runtime provides them) and resolve the `bun` export condition
206
+ // so `@effect/platform-bun` picks its Bun implementations.
207
+ external: ["bun", "bun:*", ...(source.build?.input?.external ?? [])],
208
+ resolve: {
209
+ conditionNames: [...Bundle.BUN_CONDITION_NAMES],
210
+ ...source.build?.input?.resolve,
211
+ },
212
+ plugins: [source.build?.input?.plugins, plugins],
213
+ },
214
+ outputOptions: {
215
+ ...source.build?.output,
216
+ format: "esm",
217
+ sourcemap: source.build?.output?.sourcemap ?? false,
218
+ minify: source.build?.output?.minify ?? false,
219
+ entryFileNames: "index.mjs",
220
+ },
221
+ });
222
+ /**
223
+ * Bundle the Effect program behind a `main` source: every emitted file
224
+ * (entry + shared chunks) and the bundle hash. Needs no Docker engine, so
225
+ * builders that are not Docker (`BuildPlan`) share it.
226
+ */
227
+ export const bundleMainProgram = Effect.fn(function* (options) {
228
+ const { source } = options;
229
+ const virtualEntryPlugin = yield* Bundle.virtualEntryPlugin;
230
+ const realMain = yield* resolveMainPath(source.main);
231
+ const cwd = yield* findCwdForBundle(realMain);
232
+ const buildBundle = Effect.fn(function* (entry, plugins) {
233
+ const opts = mainBundleOptions(source, entry, cwd, plugins);
234
+ return yield* Bundle.build(opts.inputOptions, opts.outputOptions, source.build);
235
+ });
236
+ const bundleOutput = options.isExternal
237
+ ? yield* buildBundle(realMain)
238
+ : yield* buildBundle(realMain, virtualEntryPlugin(options.bootstrap));
239
+ // Return every emitted file (entry + shared chunks). Dynamic imports in
240
+ // the Bun HTTP server / AWS SDK split into chunks; dropping any of them
241
+ // crashes the container with `Cannot find module './chunk-XXX.js'`.
242
+ const files = bundleOutput.files.map((file) => ({
243
+ path: file.path,
244
+ content: typeof file.content === "string" ? new TextEncoder().encode(file.content) : file.content,
245
+ }));
246
+ return { files, hash: bundleOutput.hash };
247
+ });
135
248
  /**
136
249
  * Init-time constructor for the image-source resolver. Resolves the services
137
250
  * that are only available at provider-layer construction (Docker, the
@@ -143,60 +256,6 @@ export const makeContainerImageSource = Effect.gen(function* () {
143
256
  const docker = yield* Docker;
144
257
  const { dotAlchemy } = yield* AlchemyContext;
145
258
  const virtualEntryPlugin = yield* Bundle.virtualEntryPlugin;
146
- /**
147
- * The exact rolldown input/output options `bundleProgram` hands to
148
- * `Bundle.build` — shared with {@link watchMain} so a dev watcher's
149
- * `Bundle.watch` observes the identical module graph.
150
- */
151
- const mainBundleOptions = (source, entry, cwd, plugins) => ({
152
- inputOptions: {
153
- ...source.build?.input,
154
- input: entry,
155
- cwd,
156
- platform: "node",
157
- // The container runs on `bun`; keep `bun`/`bun:*` external (the
158
- // runtime provides them) and resolve the `bun` export condition
159
- // so `@effect/platform-bun` picks its Bun implementations.
160
- external: [
161
- "bun",
162
- "bun:*",
163
- ...(source.build?.input?.external ?? []),
164
- ],
165
- resolve: {
166
- conditionNames: [...Bundle.BUN_CONDITION_NAMES],
167
- ...source.build?.input?.resolve,
168
- },
169
- plugins: [source.build?.input?.plugins, plugins],
170
- },
171
- outputOptions: {
172
- ...source.build?.output,
173
- format: "esm",
174
- sourcemap: source.build?.output?.sourcemap ?? false,
175
- minify: source.build?.output?.minify ?? false,
176
- entryFileNames: "index.mjs",
177
- },
178
- });
179
- /** Bundle the Effect program behind a `main` source. */
180
- const bundleProgram = Effect.fn(function* (options) {
181
- const { source } = options;
182
- const realMain = yield* resolveMainPath(source.main);
183
- const cwd = yield* findCwdForBundle(realMain);
184
- const buildBundle = Effect.fn(function* (entry, plugins) {
185
- const opts = mainBundleOptions(source, entry, cwd, plugins);
186
- return yield* Bundle.build(opts.inputOptions, opts.outputOptions, source.build);
187
- });
188
- const bundleOutput = options.isExternal
189
- ? yield* buildBundle(realMain)
190
- : yield* buildBundle(realMain, virtualEntryPlugin(options.bootstrap));
191
- // Return every emitted file (entry + shared chunks). Dynamic imports in
192
- // the Bun HTTP server / AWS SDK split into chunks; dropping any of them
193
- // crashes the container with `Cannot find module './chunk-XXX.js'`.
194
- const files = bundleOutput.files.map((file) => ({
195
- path: file.path,
196
- content: typeof file.content === "string" ? new TextEncoder().encode(file.content) : file.content,
197
- }));
198
- return { files, hash: bundleOutput.hash };
199
- });
200
259
  /**
201
260
  * Bundle a `main` source and compute its content-addressed code hash.
202
261
  *
@@ -207,7 +266,7 @@ export const makeContainerImageSource = Effect.gen(function* () {
207
266
  * pushed image tag always agree.
208
267
  */
209
268
  const computeMainCodeHash = Effect.fn(function* (options) {
210
- const bundled = yield* bundleProgram({
269
+ const bundled = yield* bundleMainProgram({
211
270
  source: options.source,
212
271
  isExternal: options.isExternal,
213
272
  bootstrap: options.bootstrap,
@@ -221,14 +280,12 @@ export const makeContainerImageSource = Effect.gen(function* () {
221
280
  const isPathEnv = df !== undefined && !isInlineDockerfile(df);
222
281
  let envIdentity = {};
223
282
  if (isPathEnv) {
224
- const fs = yield* FileSystem.FileSystem;
225
283
  const { context, dockerfile } = yield* resolveContextPaths({
226
284
  context: options.source.context,
227
285
  dockerfile: df,
228
286
  });
229
287
  envIdentity = {
230
- envContextHash: yield* hashDirectory({ cwd: context }),
231
- envDockerfile: yield* fs.readFileString(dockerfile),
288
+ envContextHash: yield* hashDockerBuildInputs({ context, dockerfile, platform: options.platform }, "effective"),
232
289
  };
233
290
  }
234
291
  const dockerfile = generateDockerfile(options.source, options.port, isPathEnv ? "<env>" : undefined);
@@ -256,6 +313,7 @@ export const makeContainerImageSource = Effect.gen(function* () {
256
313
  : `FROM ${source.image ?? "oven/bun:1"}`;
257
314
  const lines = [
258
315
  preamble,
316
+ ...(source.install ?? []),
259
317
  `WORKDIR /app`,
260
318
  `COPY index.mjs /app/index.mjs`,
261
319
  // Copy any additional rolldown chunks (`chunk-XXX.js`,
@@ -269,6 +327,28 @@ export const makeContainerImageSource = Effect.gen(function* () {
269
327
  lines.push(`ENTRYPOINT ["bun", "/app/index.mjs"]`);
270
328
  return `${lines.join("\n")}\n`;
271
329
  };
330
+ /**
331
+ * Bundle an {@link ImageAgent} and compute the content-addressed hash of
332
+ * its image: the bundle, the Dockerfile and the platform. `resolve` and
333
+ * `hash` share this, so the plan-time hash and the pushed tag agree.
334
+ */
335
+ const bundleAgent = Effect.fn(function* (agent, platform) {
336
+ const bundled = yield* bundleMainProgram({
337
+ source: { main: agent.main },
338
+ isExternal: false,
339
+ bootstrap: agentEntry,
340
+ });
341
+ const hash = (yield* sha256Object({
342
+ bundleHash: bundled.hash,
343
+ dockerfile: AGENT_DOCKERFILE,
344
+ platform,
345
+ })).slice(0, 16);
346
+ return { bundled, hash };
347
+ });
348
+ /** One hash for an image and the agent published beside it. */
349
+ const hashWithAgent = Effect.fn(function* (environment, agent) {
350
+ return (yield* sha256Object({ environment, agent })).slice(0, 16);
351
+ });
272
352
  /**
273
353
  * Build (or mirror) and push an image to `target`, pushing with the
274
354
  * target's credentials or — when it has none — the build machine's own
@@ -299,16 +379,17 @@ export const makeContainerImageSource = Effect.gen(function* () {
299
379
  platform: options.platform,
300
380
  "build-arg": options.build?.args,
301
381
  secrets: options.build?.secrets,
382
+ ...imageBuildCacheOptions(options.build, options.imageUri, credentials),
302
383
  });
303
384
  yield* push(options.imageUri, credentials, options.platform);
304
385
  return options.imageUri;
305
386
  });
306
387
  /**
307
- * Resolve the image for a props bag: resolve the target repository,
388
+ * Resolve the image of a props bag's own source: resolve the target repository,
308
389
  * compute the content-addressed tag, then build/mirror + push only when
309
390
  * that exact tag is not already in the registry (crash-safe convergence).
310
391
  */
311
- const resolve = Effect.fnUntraced(function* (options, target) {
392
+ const resolveSource = Effect.fnUntraced(function* (options, target) {
312
393
  const { id, source, session } = options;
313
394
  const platform = options.platform ?? "linux/amd64";
314
395
  const kind = imageSourceKind(source);
@@ -347,11 +428,14 @@ export const makeContainerImageSource = Effect.gen(function* () {
347
428
  });
348
429
  envFrom = `alchemy-env-${id.toLowerCase()}:${codeHash}`;
349
430
  yield* session.note(`Building environment image for ${id}...`);
431
+ // The user's Dockerfile holds the expensive steps, so the layer
432
+ // cache applies to this stage rather than the bundle layered on top.
350
433
  yield* docker.image.build({
351
434
  context: env.context,
352
435
  file: env.dockerfile,
353
436
  tag: envFrom,
354
437
  platform,
438
+ ...imageBuildCacheOptions(source.build, imageUri, source.build?.cache ? yield* target.credentials : undefined),
355
439
  });
356
440
  }
357
441
  const finalDockerfile = envFrom === undefined
@@ -374,6 +458,7 @@ export const makeContainerImageSource = Effect.gen(function* () {
374
458
  imageUri,
375
459
  context: contextDir,
376
460
  platform,
461
+ build: envFrom === undefined ? { cache: source.build?.cache } : undefined,
377
462
  });
378
463
  yield* session.note(`Pushed ${imageUri}`);
379
464
  return { imageUri, repositoryUri, codeHash };
@@ -451,6 +536,57 @@ export const makeContainerImageSource = Effect.gen(function* () {
451
536
  yield* session.note(`Pushed ${imageUri}`);
452
537
  return { imageUri, repositoryUri, codeHash };
453
538
  });
539
+ /**
540
+ * Publish an {@link ImageAgent} as an image of its own, `agent-<hash>` in
541
+ * the target repository, unless that tag is already there.
542
+ */
543
+ const resolveAgent = Effect.fnUntraced(function* (options, target) {
544
+ const { id, platform, session } = options;
545
+ yield* session.note(`Bundling ${id} sandbox agent...`);
546
+ const { bundled, hash } = yield* bundleAgent(options.agent, platform);
547
+ const tag = `agent-${hash}`;
548
+ const imageUri = `${options.repositoryUri}:${tag}`;
549
+ if (yield* target.hasTag(tag)) {
550
+ return { imageUri, hash };
551
+ }
552
+ const contextDir = yield* getStableContextDir(dotAlchemy, dotAlchemy, `${id}-agent`);
553
+ yield* docker.materialize({
554
+ context: contextDir,
555
+ dockerfile: AGENT_DOCKERFILE,
556
+ files: bundled.files.map((file, index) => ({
557
+ path: index === 0 ? "index.mjs" : file.path,
558
+ content: file.content,
559
+ })),
560
+ });
561
+ yield* session.note(`Building sandbox agent image ${imageUri}...`);
562
+ yield* buildAndPush(target, { imageUri, context: contextDir, platform });
563
+ yield* session.note(`Pushed ${imageUri}`);
564
+ return { imageUri, hash };
565
+ });
566
+ /**
567
+ * Resolve the image for a props bag, and the {@link ImageAgent} published
568
+ * beside it when one is asked for. The image is the user's own, unchanged;
569
+ * `codeHash` then covers both images.
570
+ */
571
+ const resolve = Effect.fnUntraced(function* (options, target) {
572
+ const image = yield* resolveSource(options, target);
573
+ if (options.agent === undefined || imageSourceKind(options.source) === "main") {
574
+ return { ...image, agent: undefined };
575
+ }
576
+ const published = yield* resolveAgent({
577
+ id: options.id,
578
+ agent: options.agent,
579
+ platform: options.platform ?? "linux/amd64",
580
+ repositoryUri: image.repositoryUri,
581
+ session: options.session,
582
+ }, target);
583
+ return {
584
+ imageUri: image.imageUri,
585
+ repositoryUri: image.repositoryUri,
586
+ codeHash: yield* hashWithAgent(image.codeHash, published.hash),
587
+ agent: { imageUri: published.imageUri },
588
+ };
589
+ });
454
590
  /**
455
591
  * Content hash for ANY source kind without building or pushing an image.
456
592
  *
@@ -463,7 +599,17 @@ export const makeContainerImageSource = Effect.gen(function* () {
463
599
  */
464
600
  const hash = Effect.fn(function* (options) {
465
601
  const platform = options.platform ?? "linux/amd64";
466
- if (imageSourceKind(options.source) === "main") {
602
+ const kind = imageSourceKind(options.source);
603
+ if (options.agent !== undefined && kind !== undefined && kind !== "main") {
604
+ // The image and its agent are two images. One hash covers both, so a
605
+ // new agent plans an update just as a new image does.
606
+ const environment = yield* computeStaticSourceHash(options.source, platform);
607
+ if (environment === undefined)
608
+ return undefined;
609
+ const agent = yield* bundleAgent(options.agent, platform);
610
+ return yield* hashWithAgent(environment, agent.hash);
611
+ }
612
+ if (kind === "main") {
467
613
  // Unresolved inline environment content (an Output) can't be hashed
468
614
  // at plan time — return undefined so the diff defers to reconcile.
469
615
  const df = options.source.dockerfile;
@@ -1 +1 @@
1
- {"version":3,"file":"ImageSource.js","sourceRoot":"","sources":["../src/ImageSource.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ImageSource.js","sources":["../src/ImageSource.ts"],"names":[],"mappings":"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"}