@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 +16 -8
- package/dist/index.js +22 -9
- package/package.json +4 -4
package/dist/index.d.ts
CHANGED
|
@@ -79,10 +79,16 @@ interface BundledSourceOptions {
|
|
|
79
79
|
*/
|
|
80
80
|
noIndex?: boolean;
|
|
81
81
|
/**
|
|
82
|
-
* The
|
|
83
|
-
* floors. Defaults to `
|
|
84
|
-
* gating against a stamped
|
|
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
|
|
190
|
-
* content `minGezelVersion` floors. Defaults to
|
|
191
|
-
* inside each source
|
|
192
|
-
*
|
|
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
|
-
...
|
|
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
|
-
...
|
|
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
|
-
|
|
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 ??
|
|
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
|
-
...
|
|
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
|
|
1406
|
-
* content `minGezelVersion` floors. Defaults to
|
|
1407
|
-
* inside each source
|
|
1408
|
-
*
|
|
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": "
|
|
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/
|
|
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",
|