Skip to content

Commit c69a5e6

Browse files
committed
refactor(v2): drop unused catalog configuration flag
1 parent 54e7884 commit c69a5e6

7 files changed

Lines changed: 2 additions & 18 deletions

File tree

v2/README.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -124,16 +124,14 @@ The closed `schemaVersion: 2` entry is a normalized listing and resolution
124124
projection. It contains package `name` and `version`; `displayName`, optional
125125
`description` and `publisher`, `category`, standard `keywords`, and `languages`;
126126
declared `runtimes`; a closed `source` and optional in-Store `icon`; the
127-
`sha256-tree-v1` `digest`;
128-
`hasConfiguration`; and a closed `components` summary. `components.skills`
127+
`sha256-tree-v1` `digest`; and a closed `components` summary. `components.skills`
129128
contains exact Skill names, while `components.mcpServers` maps exact server
130129
names to declared `stdio`, `streamable-http`, or `sse` transports. It contains
131130
no Skill bodies or descriptions and no MCP URLs, headers, commands, or
132131
configuration data. Catalog-facing human strings and array items cannot
133132
contain ASCII control characters or DEL.
134133

135-
`hasConfiguration` is retained for catalog schema compatibility and is always
136-
`false`. Packages cannot declare `extensions["ai.clawdi"].configuration`.
134+
Packages cannot declare `extensions["ai.clawdi"].configuration`.
137135

138136
For authored packages, `source.type: "store"` contains a path relative to the
139137
directory containing `v2/catalog.json`; consumers bind it to the resolved Store

v2/catalog.json

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
"description": "Cetus Protocol development guidance for swaps, CLMM, and DLMM on Sui.",
1414
"digest": "sha256-tree-v1:015fd5cb641dae43479e500e65f0582831f81051ccc7c26579137e38ee8ec721",
1515
"displayName": "Cetus Protocol",
16-
"hasConfiguration": false,
1716
"keywords": [
1817
"cetus",
1918
"sui",
@@ -70,7 +69,6 @@
7069
"description": "Official Sui development guidance and documentation access for coding agents.",
7170
"digest": "sha256-tree-v1:c4dda94ccbb861177ce8029221824b1e67dc71a5af33d9d9e14f84561257f269",
7271
"displayName": "Sui Development",
73-
"hasConfiguration": false,
7472
"keywords": [
7573
"sui",
7674
"move",

v2/scripts/catalog.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@
6060
"keywords",
6161
"languages",
6262
"runtimes",
63-
"hasConfiguration",
6463
"icon",
6564
"source",
6665
"digest",
@@ -74,7 +73,6 @@
7473
"keywords",
7574
"languages",
7675
"runtimes",
77-
"hasConfiguration",
7876
"source",
7977
"digest",
8078
"components",
@@ -104,7 +102,6 @@ def _catalog_entry(report: PluginReport) -> dict[str, Any]:
104102
"keywords": list(manifest["keywords"]),
105103
"languages": list(display["languages"]),
106104
"runtimes": list(compatibility.get("runtimes", [])),
107-
"hasConfiguration": False,
108105
"source": {"type": "store", "path": f"./plugins/{report.key}"},
109106
"digest": f"{DIGEST_PREFIX}{report.digest}",
110107
"components": {
@@ -323,8 +320,6 @@ def validate_catalog(catalog: Any) -> list[str]:
323320
f"{context}.runtimes contains unsupported values: "
324321
+ ", ".join(sorted(unknown_runtimes))
325322
)
326-
if entry.get("hasConfiguration") is not False:
327-
errors.append(f"{context}.hasConfiguration must equal false")
328323
components = entry.get("components")
329324
if not isinstance(components, dict):
330325
errors.append(f"{context}.components must be an object")

v2/scripts/source_package.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -483,7 +483,6 @@ def _catalog_projection(report: PluginReport) -> JsonObject:
483483
"keywords": list(manifest["keywords"]),
484484
"languages": list(display["languages"]),
485485
"runtimes": list(compatibility.get("runtimes", [])),
486-
"hasConfiguration": False,
487486
"components": {
488487
"skills": list(report.skills),
489488
"mcpServers": dict(report.mcp_servers),

v2/source-packages/cetus/release.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
},
1212
"description": "Cetus Protocol development guidance for swaps, CLMM, and DLMM on Sui.",
1313
"displayName": "Cetus Protocol",
14-
"hasConfiguration": false,
1514
"keywords": [
1615
"cetus",
1716
"sui",

v2/source-packages/sui/release.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131
},
3232
"description": "Official Sui development guidance and documentation access for coding agents.",
3333
"displayName": "Sui Development",
34-
"hasConfiguration": false,
3534
"keywords": [
3635
"sui",
3736
"move",

v2/tests/test_catalog.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,6 @@ def test_generation_is_deterministic_and_validation_rejects_drift(self) -> None:
5858

5959
self.assertEqual(["alpha", "zulu"], [entry["name"] for entry in catalog["plugins"]])
6060
self.assertEqual(render_catalog(catalog), render_catalog(generate_catalog([alpha, zulu])))
61-
self.assertEqual([False, False], [entry["hasConfiguration"] for entry in catalog["plugins"]])
6261
self.assertEqual(
6362
{"skills": ["alpha-skill"], "mcpServers": {"alpha-server": "stdio"}},
6463
catalog["plugins"][0]["components"],
@@ -76,9 +75,6 @@ def test_generation_is_deterministic_and_validation_rejects_drift(self) -> None:
7675
invalid["plugins"][0]["keywords"] = ["bad\x7fname"]
7776
self.assertIn("ASCII control characters", "\n".join(validate_catalog(invalid)))
7877
invalid["plugins"][0]["keywords"] = ["alpha"]
79-
invalid["plugins"][0]["hasConfiguration"] = True
80-
self.assertIn("plugins[0].hasConfiguration must equal false", validate_catalog(invalid))
81-
invalid["plugins"][0]["hasConfiguration"] = False
8278
invalid["plugins"][0]["components"]["details"] = {}
8379
self.assertIn("plugins[0].components has unknown field: details", validate_catalog(invalid))
8480
invalid["plugins"][0]["components"].pop("details")

0 commit comments

Comments
 (0)