@bendyline/gezel-catalog 0.1.0 → 1.0.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.
package/dist/index.d.ts CHANGED
@@ -79,10 +79,16 @@ interface BundledSourceOptions {
79
79
  */
80
80
  noIndex?: boolean;
81
81
  /**
82
- * The running app's version, compared against content `minGezelVersion`
83
- * floors. Defaults to `GEZEL_VERSION`; injectable so tests can exercise
84
- * gating against a stamped version (`GEZEL_VERSION` is `0.0.0` in dev
85
- * checkouts, which bypasses all filtering).
82
+ * The calendar line this build sits on, compared against content
83
+ * `minGezelVersion` floors. Defaults to `GEZEL_CONTENT_COMPAT`; injectable so
84
+ * tests can exercise gating against a stamped build (both constants are
85
+ * `0.0.0` in dev checkouts, which bypasses all filtering).
86
+ *
87
+ * Deliberately **not** `GEZEL_VERSION`. Floors are authored as `1.YYDDD`, and
88
+ * npm releases are semver: `0.1.0` and `1.0.0` fall below every floor while a
89
+ * later `2.0.0` clears all of them, so gating on the published version made
90
+ * npm builds hide floored content and would eventually have made them accept
91
+ * content they cannot run.
86
92
  */
87
93
  gezelVersion?: string;
88
94
  }
@@ -186,10 +192,12 @@ declare class CatalogService {
186
192
  * bundled + community tiers, re-read on every disk access. The live
187
193
  * gilde update mechanism flips it without reconstructing this service
188
194
  * (which is built once at boot and held by many subsystems).
189
- * @param opts.gezelVersion the running app's version, compared against
190
- * content `minGezelVersion` floors. Defaults to `GEZEL_VERSION`
191
- * inside each source; injectable so tests can exercise gating (dev
192
- * checkouts report `0.0.0`, which bypasses all filtering).
195
+ * @param opts.gezelVersion the calendar line this build sits on, compared
196
+ * against content `minGezelVersion` floors. Defaults to
197
+ * `GEZEL_CONTENT_COMPAT` inside each source *not* `GEZEL_VERSION`, which
198
+ * is semver on the npm channel and not on the axis floors are authored
199
+ * against. Injectable so tests can exercise gating (dev checkouts report
200
+ * `0.0.0`, which bypasses all filtering).
193
201
  */
194
202
  constructor(sources?: CatalogSource[], opts?: {
195
203
  localRoot?: string;
package/dist/index.js CHANGED
@@ -1,6 +1,9 @@
1
1
  // src/service.ts
2
2
  import { join as join4 } from "path";
3
3
 
4
+ // src/builtin-toolsets.ts
5
+ import { sanitizePresentationSvg } from "@bendyline/gezel/svg";
6
+
4
7
  // src/builtin-toolset-icons.ts
5
8
  var SVG_ATTRS = 'xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"';
6
9
  var BUILTIN_TOOLSET_ICONS = {
@@ -50,6 +53,10 @@ var BUILTIN_TOOLSET_ICONS = {
50
53
  // src/builtin-toolsets.ts
51
54
  var BUILTIN_VERSION = "1.0.0";
52
55
  var BUILTIN_RELEASED_AT = "2026-04-25T00:00:00Z";
56
+ function builtinIconSvg(id) {
57
+ const raw = BUILTIN_TOOLSET_ICONS[id];
58
+ return raw ? sanitizePresentationSvg(raw) ?? void 0 : void 0;
59
+ }
53
60
  var BUILTIN_TOOLSETS = [
54
61
  {
55
62
  id: "memory",
@@ -401,11 +408,12 @@ var BuiltinToolsetsSource = class {
401
408
  if (kind !== "toolset") return [];
402
409
  return BUILTIN_TOOLSETS.map((g) => {
403
410
  const manifest = manifestForGroup(g);
411
+ const iconSvg = builtinIconSvg(g.id);
404
412
  return {
405
413
  sourceId: this.id,
406
414
  kind,
407
415
  manifest,
408
- ...BUILTIN_TOOLSET_ICONS[g.id] ? { iconSvg: BUILTIN_TOOLSET_ICONS[g.id] } : {}
416
+ ...iconSvg ? { iconSvg } : {}
409
417
  };
410
418
  });
411
419
  }
@@ -417,11 +425,12 @@ var BuiltinToolsetsSource = class {
417
425
  const g = BUILTIN_BY_ID.get(groupId);
418
426
  if (!g) return null;
419
427
  const manifest = manifestForGroup(g);
428
+ const iconSvg = builtinIconSvg(g.id);
420
429
  return {
421
430
  sourceId: this.id,
422
431
  kind,
423
432
  manifest,
424
- ...BUILTIN_TOOLSET_ICONS[g.id] ? { iconSvg: BUILTIN_TOOLSET_ICONS[g.id] } : {}
433
+ ...iconSvg ? { iconSvg } : {}
425
434
  };
426
435
  }
427
436
  async listVersions(kind, id) {
@@ -465,7 +474,7 @@ import {
465
474
  ChatModelVersionManifestSchema,
466
475
  ConnectorTypeVersionManifestSchema,
467
476
  CraftbookTemplateVersionManifestSchema,
468
- GEZEL_VERSION,
477
+ GEZEL_CONTENT_COMPAT,
469
478
  GezelTemplateVersionManifestSchema,
470
479
  ImageModelVersionManifestSchema,
471
480
  ProjectTypeVersionManifestSchema,
@@ -480,6 +489,7 @@ import {
480
489
  parseCraftbookTestSpec,
481
490
  satisfiesMinGezelVersion
482
491
  } from "@bendyline/gezel";
492
+ import { sanitizePresentationSvg as sanitizePresentationSvg2 } from "@bendyline/gezel/svg";
483
493
  var KINDS = [
484
494
  "toolset",
485
495
  "gezel-template",
@@ -528,7 +538,7 @@ var BundledSource = class {
528
538
  this.id = opts.id ?? "bundled";
529
539
  this.label = opts.label ?? "Bundled";
530
540
  this.useIndex = !opts.noIndex;
531
- this.gezelVersion = opts.gezelVersion ?? GEZEL_VERSION;
541
+ this.gezelVersion = opts.gezelVersion ?? GEZEL_CONTENT_COMPAT;
532
542
  }
533
543
  get root() {
534
544
  return this.rootProvider();
@@ -587,11 +597,12 @@ var BundledSource = class {
587
597
  if (!reResolved) continue;
588
598
  manifest = reResolved;
589
599
  }
600
+ const iconSvg = typeof e.iconSvg === "string" ? sanitizePresentationSvg2(e.iconSvg) : null;
590
601
  const item = {
591
602
  sourceId: this.id,
592
603
  kind,
593
604
  manifest,
594
- ...typeof e.iconSvg === "string" ? { iconSvg: e.iconSvg } : {}
605
+ ...iconSvg ? { iconSvg } : {}
595
606
  };
596
607
  const logo = this.logoUrlFor(kind, manifest.id, manifest);
597
608
  if (logo) item.logoUrl = logo;
@@ -1402,10 +1413,12 @@ var CatalogService = class {
1402
1413
  * bundled + community tiers, re-read on every disk access. The live
1403
1414
  * gilde update mechanism flips it without reconstructing this service
1404
1415
  * (which is built once at boot and held by many subsystems).
1405
- * @param opts.gezelVersion the running app's version, compared against
1406
- * content `minGezelVersion` floors. Defaults to `GEZEL_VERSION`
1407
- * inside each source; injectable so tests can exercise gating (dev
1408
- * checkouts report `0.0.0`, which bypasses all filtering).
1416
+ * @param opts.gezelVersion the calendar line this build sits on, compared
1417
+ * against content `minGezelVersion` floors. Defaults to
1418
+ * `GEZEL_CONTENT_COMPAT` inside each source *not* `GEZEL_VERSION`, which
1419
+ * is semver on the npm channel and not on the axis floors are authored
1420
+ * against. Injectable so tests can exercise gating (dev checkouts report
1421
+ * `0.0.0`, which bypasses all filtering).
1409
1422
  */
1410
1423
  constructor(sources, opts) {
1411
1424
  this.contentRootProvider = opts?.contentRoot ?? null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bendyline/gezel-catalog",
3
- "version": "0.1.0",
3
+ "version": "1.0.0",
4
4
  "description": "Gezel catalog loader: sources, install pipeline, and authoring scripts over the external @bendyline/gilde content package.",
5
5
  "license": "MIT",
6
6
  "keywords": [
@@ -47,10 +47,10 @@
47
47
  "!dist/**/*.map"
48
48
  ],
49
49
  "dependencies": {
50
- "@bendyline/gilde": "0.1.20",
50
+ "@bendyline/gezel": "1.0.0",
51
+ "@bendyline/gilde": "0.1.21",
51
52
  "tar": "7.5.21",
52
- "zod": "^4.4.3",
53
- "@bendyline/gezel": "0.1.0"
53
+ "zod": "^4.4.3"
54
54
  },
55
55
  "devDependencies": {
56
56
  "esbuild": "^0.28.1",