@styx-api/core 0.5.2 → 0.5.3

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@styx-api/core",
3
- "version": "0.5.2",
3
+ "version": "0.5.3",
4
4
  "description": "Styx compiler core: parses CLI tool descriptors (e.g. Boutiques), optimizes an IR, solves typed parameter bindings, and generates type-safe wrappers (TypeScript, Python, JSON Schema). Part of the Styx/NiWrap ecosystem.",
5
5
  "keywords": [
6
6
  "styx",
@@ -50,8 +50,14 @@ export function emitMetadata(ctx: CodegenContext, metaConst: string, cb: CodeBui
50
50
  if (ctx.app?.doc?.literature?.length) {
51
51
  cb.line(`citations=[${ctx.app.doc.literature.map(pyStr).join(", ")}],`);
52
52
  }
53
- if (ctx.app?.container?.image) {
54
- cb.line(`container_image_tag=${pyStr(ctx.app.container.image)},`);
53
+ // The package/version-level container is authoritative: niwrap curates one
54
+ // container per tool version (version.json) and applies it to every app, so
55
+ // it overrides a descriptor's incidental inline container-image. The inline
56
+ // image is only a fallback for a standalone single-descriptor build that has
57
+ // no package context.
58
+ const containerImage = ctx.package?.docker ?? ctx.app?.container?.image;
59
+ if (containerImage) {
60
+ cb.line(`container_image_tag=${pyStr(containerImage)},`);
55
61
  }
56
62
  });
57
63
  cb.line(")");
@@ -42,8 +42,14 @@ export function emitMetadata(ctx: CodegenContext, metaConst: string, cb: CodeBui
42
42
  if (ctx.app?.doc?.literature?.length) {
43
43
  cb.line(`citations: ${JSON.stringify(ctx.app.doc.literature)},`);
44
44
  }
45
- if (ctx.app?.container?.image) {
46
- cb.line(`container_image_tag: ${JSON.stringify(ctx.app.container.image)},`);
45
+ // The package/version-level container is authoritative: niwrap curates one
46
+ // container per tool version (version.json) and applies it to every app, so
47
+ // it overrides a descriptor's incidental inline container-image. The inline
48
+ // image is only a fallback for a standalone single-descriptor build that has
49
+ // no package context.
50
+ const containerImage = ctx.package?.docker ?? ctx.app?.container?.image;
51
+ if (containerImage) {
52
+ cb.line(`container_image_tag: ${JSON.stringify(containerImage)},`);
47
53
  }
48
54
  });
49
55
  cb.line("};");