@bongos/core 1.23.1 → 1.23.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/.bongos-core.json +51 -31
- package/clients/bongos-client/README.md +1 -1
- package/clients/bongos-client/bongos-client.global.js +8 -0
- package/clients/bongos-client/index.cjs +8 -0
- package/clients/bongos-client/index.d.ts +11 -1
- package/clients/bongos-client/index.mjs +8 -0
- package/docs/adr/0342-module-categories-are-eight-parents-with-approved-sub-categories.md +4 -2
- package/docs/api/openapi.json +210 -4
- package/docs/api-reference.md +6 -2
- package/docs/architecture.md +11 -0
- package/docs/module-api-changelog.md +4 -0
- package/docs/modules-contract.md +3 -1
- package/migrations/core_280_store_subcategories.sql +58 -0
- package/modules/government/catalog.js +3 -0
- package/modules/government/migrations/government_034_module_subcategory_review.sql +35 -0
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/release-notes.json +12 -0
- package/src/bongos/module-listing.js +99 -27
- package/src/bongos/module-store.js +8 -3
- package/src/bongos/module-subcategories.js +316 -0
- package/src/bongos/route-rank-check.js +5 -0
- package/src/bongos/routes/modules.js +55 -1
- package/src/module-api.js +1 -1
- package/src/module-loader/manifest-schema.js +4 -3
- package/tests/deploy_divergence_line.mjs +4 -1
- package/tests/module_store_instance_root.mjs +2 -1
- package/tests/module_store_listing.mjs +132 -3
- package/tests/module_store_subcategories.mjs +364 -0
package/.bongos-core.json
CHANGED
|
@@ -2,22 +2,22 @@
|
|
|
2
2
|
"artifact": "bongos-core",
|
|
3
3
|
"manifest_schema": 1,
|
|
4
4
|
"generator": "scripts/bongos/package-core.js",
|
|
5
|
-
"core_version": "1.23.
|
|
6
|
-
"core_contract": "1.23.
|
|
7
|
-
"source_commit": "
|
|
5
|
+
"core_version": "1.23.3",
|
|
6
|
+
"core_contract": "1.23.3",
|
|
7
|
+
"source_commit": "a0b45cd71b45f91da068da6eb3e6afef687897c6",
|
|
8
8
|
"source_ref": "HEAD",
|
|
9
|
-
"built_at": "2026-10-
|
|
9
|
+
"built_at": "2026-10-26T21:16:36.258Z",
|
|
10
10
|
"redaction": {
|
|
11
11
|
"model": "docs-redacted+functional-verbatim",
|
|
12
12
|
"docs_redacted": 616,
|
|
13
13
|
"agent_docs_stubbed": 29,
|
|
14
|
-
"functional_verbatim":
|
|
14
|
+
"functional_verbatim": 3551,
|
|
15
15
|
"rules": 3,
|
|
16
16
|
"gate_literals": 3,
|
|
17
17
|
"gate": "passed"
|
|
18
18
|
},
|
|
19
|
-
"file_count":
|
|
20
|
-
"tree_sha256": "
|
|
19
|
+
"file_count": 4197,
|
|
20
|
+
"tree_sha256": "929094e8d49dd75a5e74b18f58a1b869fc50dbc5df600af9e861981227cdb40c",
|
|
21
21
|
"files": [
|
|
22
22
|
{
|
|
23
23
|
"path": ".claude/skills/ask-for-help/SKILL.md",
|
|
@@ -317,12 +317,12 @@
|
|
|
317
317
|
{
|
|
318
318
|
"path": "clients/bongos-client/README.md",
|
|
319
319
|
"mode": "0000644",
|
|
320
|
-
"sha256": "
|
|
320
|
+
"sha256": "8537c645efe282dc1ee9a620b555ac6bbd8919eaf8747c1be84df7c99007a48a"
|
|
321
321
|
},
|
|
322
322
|
{
|
|
323
323
|
"path": "clients/bongos-client/bongos-client.global.js",
|
|
324
324
|
"mode": "0000644",
|
|
325
|
-
"sha256": "
|
|
325
|
+
"sha256": "8554475255239e0e2a5c84f1287c09e93d54c4dab513248c13f243f5d21fda1d"
|
|
326
326
|
},
|
|
327
327
|
{
|
|
328
328
|
"path": "clients/bongos-client/examples/hello-world.mjs",
|
|
@@ -332,17 +332,17 @@
|
|
|
332
332
|
{
|
|
333
333
|
"path": "clients/bongos-client/index.cjs",
|
|
334
334
|
"mode": "0000644",
|
|
335
|
-
"sha256": "
|
|
335
|
+
"sha256": "34b88b9a4038b95a62f4528a83aa5bfe25f504ab545417c8edeea2a2afbfef69"
|
|
336
336
|
},
|
|
337
337
|
{
|
|
338
338
|
"path": "clients/bongos-client/index.d.ts",
|
|
339
339
|
"mode": "0000644",
|
|
340
|
-
"sha256": "
|
|
340
|
+
"sha256": "a30cb8c16c64fd7b3eba677268411c31b0c98df4a207d5a60745bca5235d8c15"
|
|
341
341
|
},
|
|
342
342
|
{
|
|
343
343
|
"path": "clients/bongos-client/index.mjs",
|
|
344
344
|
"mode": "0000644",
|
|
345
|
-
"sha256": "
|
|
345
|
+
"sha256": "29badc2ef299498e66224b7ee031be479d10cfcacd8a752c3e06eb05f1d1e64e"
|
|
346
346
|
},
|
|
347
347
|
{
|
|
348
348
|
"path": "clients/bongos-client/package.json",
|
|
@@ -2172,7 +2172,7 @@
|
|
|
2172
2172
|
{
|
|
2173
2173
|
"path": "docs/adr/0342-module-categories-are-eight-parents-with-approved-sub-categories.md",
|
|
2174
2174
|
"mode": "0000644",
|
|
2175
|
-
"sha256": "
|
|
2175
|
+
"sha256": "147fb9513dc05ad242c09162ac37ccd2cbb9457693170b3d0a4427d9d27bbb77"
|
|
2176
2176
|
},
|
|
2177
2177
|
{
|
|
2178
2178
|
"path": "docs/adr/0343-a-module-score-is-a-security-gate-then-an-average-of-visible-parts.md",
|
|
@@ -2392,17 +2392,17 @@
|
|
|
2392
2392
|
{
|
|
2393
2393
|
"path": "docs/api-reference.md",
|
|
2394
2394
|
"mode": "0000644",
|
|
2395
|
-
"sha256": "
|
|
2395
|
+
"sha256": "fbad9b37dd44c344ef532638550d666cf94de9813c0df8d4f2e004e0b7f62582"
|
|
2396
2396
|
},
|
|
2397
2397
|
{
|
|
2398
2398
|
"path": "docs/api/openapi.json",
|
|
2399
2399
|
"mode": "0000644",
|
|
2400
|
-
"sha256": "
|
|
2400
|
+
"sha256": "10545c86dc834e1c0654ff6da45caecded2e547a00818b221e16c9e60c16b8b5"
|
|
2401
2401
|
},
|
|
2402
2402
|
{
|
|
2403
2403
|
"path": "docs/architecture.md",
|
|
2404
2404
|
"mode": "0000644",
|
|
2405
|
-
"sha256": "
|
|
2405
|
+
"sha256": "02e9d3d3fe5b69494f4294ee716ac605ce6090b20d48bc4fb72ddead829d6701"
|
|
2406
2406
|
},
|
|
2407
2407
|
{
|
|
2408
2408
|
"path": "docs/branding-contract.md",
|
|
@@ -2937,12 +2937,12 @@
|
|
|
2937
2937
|
{
|
|
2938
2938
|
"path": "docs/module-api-changelog.md",
|
|
2939
2939
|
"mode": "0000644",
|
|
2940
|
-
"sha256": "
|
|
2940
|
+
"sha256": "298fea75cd1590bf6dbb3ad5baedf0ec6c81d2eb811cf59a3d138bd15144c021"
|
|
2941
2941
|
},
|
|
2942
2942
|
{
|
|
2943
2943
|
"path": "docs/modules-contract.md",
|
|
2944
2944
|
"mode": "0000644",
|
|
2945
|
-
"sha256": "
|
|
2945
|
+
"sha256": "28cbf7f3d10bd67ef74880112746d182fac27a7659c52694c315b17efe5cb325"
|
|
2946
2946
|
},
|
|
2947
2947
|
{
|
|
2948
2948
|
"path": "docs/onboarding/diagrams/01-task-lifecycle.mmd",
|
|
@@ -4189,6 +4189,11 @@
|
|
|
4189
4189
|
"mode": "0000644",
|
|
4190
4190
|
"sha256": "088b129b53a87454b574b2bc8b38c672e460fc618730a8bbf20a404aa970a682"
|
|
4191
4191
|
},
|
|
4192
|
+
{
|
|
4193
|
+
"path": "migrations/core_280_store_subcategories.sql",
|
|
4194
|
+
"mode": "0000644",
|
|
4195
|
+
"sha256": "b795f6a5596ebd12a0fbcf8d98f40b24e12fb819ec5abe5d42ca592147db32bc"
|
|
4196
|
+
},
|
|
4192
4197
|
{
|
|
4193
4198
|
"path": "modules/agents/CLAUDE.md",
|
|
4194
4199
|
"mode": "0000644",
|
|
@@ -5087,7 +5092,7 @@
|
|
|
5087
5092
|
{
|
|
5088
5093
|
"path": "modules/government/catalog.js",
|
|
5089
5094
|
"mode": "0000644",
|
|
5090
|
-
"sha256": "
|
|
5095
|
+
"sha256": "9a3d3fee34144d44b5af811fc8e81e7bec74559eae538cf1e6015a2d54321df3"
|
|
5091
5096
|
},
|
|
5092
5097
|
{
|
|
5093
5098
|
"path": "modules/government/charter.js",
|
|
@@ -5354,6 +5359,11 @@
|
|
|
5354
5359
|
"mode": "0000644",
|
|
5355
5360
|
"sha256": "e0c7dc39dabc43a32df40215c67f48acf25f2da0200ed7efe74242f652948dca"
|
|
5356
5361
|
},
|
|
5362
|
+
{
|
|
5363
|
+
"path": "modules/government/migrations/government_034_module_subcategory_review.sql",
|
|
5364
|
+
"mode": "0000644",
|
|
5365
|
+
"sha256": "9dac59401fbb83f74c9a0e6f1f594bff9f2be667dbc3516b70a542e33b677241"
|
|
5366
|
+
},
|
|
5357
5367
|
{
|
|
5358
5368
|
"path": "modules/government/module.json",
|
|
5359
5369
|
"mode": "0000644",
|
|
@@ -10822,12 +10832,12 @@
|
|
|
10822
10832
|
{
|
|
10823
10833
|
"path": "package-lock.json",
|
|
10824
10834
|
"mode": "0000644",
|
|
10825
|
-
"sha256": "
|
|
10835
|
+
"sha256": "4a12dc099ad30270a9f2144f9f243b7183b968c6f9761736c2a10a4471ca08ee"
|
|
10826
10836
|
},
|
|
10827
10837
|
{
|
|
10828
10838
|
"path": "package.json",
|
|
10829
10839
|
"mode": "0000644",
|
|
10830
|
-
"sha256": "
|
|
10840
|
+
"sha256": "975226f43368c946a43c0ae434ba6132e404175ba6b4960c45fb72b6d109e715"
|
|
10831
10841
|
},
|
|
10832
10842
|
{
|
|
10833
10843
|
"path": "public-docs/index.html",
|
|
@@ -10847,7 +10857,7 @@
|
|
|
10847
10857
|
{
|
|
10848
10858
|
"path": "release-notes.json",
|
|
10849
10859
|
"mode": "0000644",
|
|
10850
|
-
"sha256": "
|
|
10860
|
+
"sha256": "de9343583c3ac62144354a65b34a4a44bb4d9442c4abd1b77fafc16558c70f9c"
|
|
10851
10861
|
},
|
|
10852
10862
|
{
|
|
10853
10863
|
"path": "scripts/bongos/CLAUDE.md",
|
|
@@ -14417,7 +14427,7 @@
|
|
|
14417
14427
|
{
|
|
14418
14428
|
"path": "src/bongos/module-listing.js",
|
|
14419
14429
|
"mode": "0000644",
|
|
14420
|
-
"sha256": "
|
|
14430
|
+
"sha256": "3f7013b4e59f72fc89663461d6d5457e412624ae3d4c1df1d2a3b9a8d9168d02"
|
|
14421
14431
|
},
|
|
14422
14432
|
{
|
|
14423
14433
|
"path": "src/bongos/module-overrides.js",
|
|
@@ -14442,7 +14452,12 @@
|
|
|
14442
14452
|
{
|
|
14443
14453
|
"path": "src/bongos/module-store.js",
|
|
14444
14454
|
"mode": "0000644",
|
|
14445
|
-
"sha256": "
|
|
14455
|
+
"sha256": "1f7fc7251a2b77c80da33b471fcb5ff180bbbd969407a0c636e9085b654dc525"
|
|
14456
|
+
},
|
|
14457
|
+
{
|
|
14458
|
+
"path": "src/bongos/module-subcategories.js",
|
|
14459
|
+
"mode": "0000644",
|
|
14460
|
+
"sha256": "02c02d75c24c9cce5c724ff4af27b5de22edaf3df9dc99dc790fdd92133cee4b"
|
|
14446
14461
|
},
|
|
14447
14462
|
{
|
|
14448
14463
|
"path": "src/bongos/module-submissions.js",
|
|
@@ -14522,7 +14537,7 @@
|
|
|
14522
14537
|
{
|
|
14523
14538
|
"path": "src/bongos/route-rank-check.js",
|
|
14524
14539
|
"mode": "0000644",
|
|
14525
|
-
"sha256": "
|
|
14540
|
+
"sha256": "249ff48a954c7e904d705e636766b92924203dae3a6c08f688cbc68d0734dcb4"
|
|
14526
14541
|
},
|
|
14527
14542
|
{
|
|
14528
14543
|
"path": "src/bongos/routes.js",
|
|
@@ -14607,7 +14622,7 @@
|
|
|
14607
14622
|
{
|
|
14608
14623
|
"path": "src/bongos/routes/modules.js",
|
|
14609
14624
|
"mode": "0000644",
|
|
14610
|
-
"sha256": "
|
|
14625
|
+
"sha256": "4a210c0d6fe7e5f29612c4b7616ed34c1805f69c7618062ebcc50d0586a320dc"
|
|
14611
14626
|
},
|
|
14612
14627
|
{
|
|
14613
14628
|
"path": "src/bongos/routes/my-passkeys.js",
|
|
@@ -14697,7 +14712,7 @@
|
|
|
14697
14712
|
{
|
|
14698
14713
|
"path": "src/module-api.js",
|
|
14699
14714
|
"mode": "0000644",
|
|
14700
|
-
"sha256": "
|
|
14715
|
+
"sha256": "f87d7162b505fb241f2c33e6dfeaa86cb97d085c6f822384b2b7d923d4eadd1a"
|
|
14701
14716
|
},
|
|
14702
14717
|
{
|
|
14703
14718
|
"path": "src/module-loader/catalog.js",
|
|
@@ -14717,7 +14732,7 @@
|
|
|
14717
14732
|
{
|
|
14718
14733
|
"path": "src/module-loader/manifest-schema.js",
|
|
14719
14734
|
"mode": "0000644",
|
|
14720
|
-
"sha256": "
|
|
14735
|
+
"sha256": "8b5185ba1ac863232971a0241d925e21d1572e9dc2a1cff9bdc37025aa423835"
|
|
14721
14736
|
},
|
|
14722
14737
|
{
|
|
14723
14738
|
"path": "src/module-loader/provenance.js",
|
|
@@ -16007,7 +16022,7 @@
|
|
|
16007
16022
|
{
|
|
16008
16023
|
"path": "tests/deploy_divergence_line.mjs",
|
|
16009
16024
|
"mode": "0000644",
|
|
16010
|
-
"sha256": "
|
|
16025
|
+
"sha256": "ac3e754b29f10019b58f7b3995b9b145fd8ab25073c4dde3095793291fd72835"
|
|
16011
16026
|
},
|
|
16012
16027
|
{
|
|
16013
16028
|
"path": "tests/deploy_instance.mjs",
|
|
@@ -18482,12 +18497,12 @@
|
|
|
18482
18497
|
{
|
|
18483
18498
|
"path": "tests/module_store_instance_root.mjs",
|
|
18484
18499
|
"mode": "0000644",
|
|
18485
|
-
"sha256": "
|
|
18500
|
+
"sha256": "fea6bafeeb548ac1b928a2843325dcae60a126ac8614116610cb979b69159f36"
|
|
18486
18501
|
},
|
|
18487
18502
|
{
|
|
18488
18503
|
"path": "tests/module_store_listing.mjs",
|
|
18489
18504
|
"mode": "0000644",
|
|
18490
|
-
"sha256": "
|
|
18505
|
+
"sha256": "5f0cb9cb6e3faf90d342e1d9e1767699b677b8630d874f1c2af9cb7f713ef530"
|
|
18491
18506
|
},
|
|
18492
18507
|
{
|
|
18493
18508
|
"path": "tests/module_store_publish.mjs",
|
|
@@ -18509,6 +18524,11 @@
|
|
|
18509
18524
|
"mode": "0000644",
|
|
18510
18525
|
"sha256": "9ed254da26adabfa05a766d8e4dc7f69da9364ca477b19b88c3c76314b94937e"
|
|
18511
18526
|
},
|
|
18527
|
+
{
|
|
18528
|
+
"path": "tests/module_store_subcategories.mjs",
|
|
18529
|
+
"mode": "0000644",
|
|
18530
|
+
"sha256": "ad29d45c767e14f0dcef7ccd44107545fa3ab54182ad8b0cf7b51bf00243eac5"
|
|
18531
|
+
},
|
|
18512
18532
|
{
|
|
18513
18533
|
"path": "tests/module_submissions.mjs",
|
|
18514
18534
|
"mode": "0000644",
|
|
@@ -5,7 +5,7 @@ A **generated**, zero-dependency typed client for the Bongos API — produced fr
|
|
|
5
5
|
by hand; it regenerates when the spec changes, so it can never drift from the routes.
|
|
6
6
|
|
|
7
7
|
- API version: **v1** (served at `/api/bongos/v1`)
|
|
8
|
-
-
|
|
8
|
+
- 582 operations across 76 resource groups
|
|
9
9
|
|
|
10
10
|
## Use it from your project
|
|
11
11
|
|
|
@@ -1269,6 +1269,14 @@ function createClient(opts = {}) {
|
|
|
1269
1269
|
getStoreModulesKeyVersionsVersionTarball: (args) => request("GET", "/store/modules/{key}/versions/{version}/tarball", { hasBody: false }, args),
|
|
1270
1270
|
// GET /store/modules/latest — rank: any-builder — GET /store/modules/latest
|
|
1271
1271
|
getStoreModulesLatest: (args) => request("GET", "/store/modules/latest", { hasBody: false }, args),
|
|
1272
|
+
// GET /store/subcategories — rank: any-builder — GET /store/subcategories
|
|
1273
|
+
getStoreSubcategories: (args) => request("GET", "/store/subcategories", { hasBody: false }, args),
|
|
1274
|
+
// POST /store/subcategories/{id}/approve — rank: metic+archon — POST /store/subcategories/:id/approve
|
|
1275
|
+
postStoreSubcategoriesIdApprove: (args) => request("POST", "/store/subcategories/{id}/approve", { hasBody: true }, args),
|
|
1276
|
+
// POST /store/subcategories/{id}/merge — rank: metic+archon — POST /store/subcategories/:id/merge
|
|
1277
|
+
postStoreSubcategoriesIdMerge: (args) => request("POST", "/store/subcategories/{id}/merge", { hasBody: true }, args),
|
|
1278
|
+
// GET /store/subcategories/queue — rank: metic+archon — GET /store/subcategories/queue
|
|
1279
|
+
getStoreSubcategoriesQueue: (args) => request("GET", "/store/subcategories/queue", { hasBody: false }, args),
|
|
1272
1280
|
// GET /store/usage-reporting — rank: any-builder — GET /store/usage-reporting
|
|
1273
1281
|
getStoreUsageReporting: (args) => request("GET", "/store/usage-reporting", { hasBody: false }, args),
|
|
1274
1282
|
// POST /store/usage-reporting — rank: any-builder — POST /store/usage-reporting
|
|
@@ -1268,6 +1268,14 @@ function createClient(opts = {}) {
|
|
|
1268
1268
|
getStoreModulesKeyVersionsVersionTarball: (args) => request("GET", "/store/modules/{key}/versions/{version}/tarball", { hasBody: false }, args),
|
|
1269
1269
|
// GET /store/modules/latest — rank: any-builder — GET /store/modules/latest
|
|
1270
1270
|
getStoreModulesLatest: (args) => request("GET", "/store/modules/latest", { hasBody: false }, args),
|
|
1271
|
+
// GET /store/subcategories — rank: any-builder — GET /store/subcategories
|
|
1272
|
+
getStoreSubcategories: (args) => request("GET", "/store/subcategories", { hasBody: false }, args),
|
|
1273
|
+
// POST /store/subcategories/{id}/approve — rank: metic+archon — POST /store/subcategories/:id/approve
|
|
1274
|
+
postStoreSubcategoriesIdApprove: (args) => request("POST", "/store/subcategories/{id}/approve", { hasBody: true }, args),
|
|
1275
|
+
// POST /store/subcategories/{id}/merge — rank: metic+archon — POST /store/subcategories/:id/merge
|
|
1276
|
+
postStoreSubcategoriesIdMerge: (args) => request("POST", "/store/subcategories/{id}/merge", { hasBody: true }, args),
|
|
1277
|
+
// GET /store/subcategories/queue — rank: metic+archon — GET /store/subcategories/queue
|
|
1278
|
+
getStoreSubcategoriesQueue: (args) => request("GET", "/store/subcategories/queue", { hasBody: false }, args),
|
|
1271
1279
|
// GET /store/usage-reporting — rank: any-builder — GET /store/usage-reporting
|
|
1272
1280
|
getStoreUsageReporting: (args) => request("GET", "/store/usage-reporting", { hasBody: false }, args),
|
|
1273
1281
|
// POST /store/usage-reporting — rank: any-builder — POST /store/usage-reporting
|
|
@@ -562,13 +562,15 @@ export interface PostStoreModulesKeyAcquiredRequest { version: string }
|
|
|
562
562
|
export interface PostStoreModulesKeyAcquiredResponse { ok: boolean; entitlement: unknown }
|
|
563
563
|
export interface PostStoreModulesKeyDelistRequest { reason?: string }
|
|
564
564
|
export interface PostStoreModulesKeyDelistResponse { ok: boolean; module_key: unknown; status: unknown; delisted_at: unknown }
|
|
565
|
-
export interface PostStoreModulesKeyVersionsResponse { ok: boolean; created_module: unknown; version: unknown; channel: unknown }
|
|
565
|
+
export interface PostStoreModulesKeyVersionsResponse { ok: boolean; created_module: unknown; version: unknown; channel: unknown; category: unknown }
|
|
566
566
|
export interface PostStoreModulesKeyVersionsVersionErrorCountRequest { day: string; count: number }
|
|
567
567
|
export interface PostStoreModulesKeyVersionsVersionInstallReportRequest { ok: boolean; error_code?: string }
|
|
568
568
|
export interface PostStoreModulesKeyVersionsVersionReassessRequest { reason?: string }
|
|
569
569
|
export interface PostStoreModulesKeyVersionsVersionReassessResponse { ok: boolean; queued: boolean; module_key: unknown; version: unknown; version_id: unknown }
|
|
570
570
|
export interface PostStoreModulesKeyVersionsVersionReleaseRequest { reason?: string }
|
|
571
571
|
export interface PostStoreModulesKeyVersionsVersionReleaseResponse { ok: boolean; module_key: unknown; version: unknown; channel: unknown; reason: unknown }
|
|
572
|
+
export interface PostStoreSubcategoriesIdApproveRequest { label?: string; sub_key?: string }
|
|
573
|
+
export interface PostStoreSubcategoriesIdMergeRequest { into?: unknown }
|
|
572
574
|
export interface PostStoreUsageReportingRequest { enabled: boolean }
|
|
573
575
|
export interface PostStoreUsageReportingResponse { ok: boolean; enabled: unknown }
|
|
574
576
|
export interface PostTaskRecommendationsRequest { task_id: number; recommended_to: number; reason: string }
|
|
@@ -1824,6 +1826,14 @@ export interface BongosClient {
|
|
|
1824
1826
|
getStoreModulesKeyVersionsVersionTarball(args?: RequestArgs): Promise<ApiResponse>;
|
|
1825
1827
|
/** GET /store/modules/latest — rank: any-builder */
|
|
1826
1828
|
getStoreModulesLatest(args?: RequestArgs): Promise<GetStoreModulesLatestResponse>;
|
|
1829
|
+
/** GET /store/subcategories — rank: any-builder */
|
|
1830
|
+
getStoreSubcategories(args?: RequestArgs): Promise<ApiResponse>;
|
|
1831
|
+
/** POST /store/subcategories/{id}/approve — rank: metic+archon */
|
|
1832
|
+
postStoreSubcategoriesIdApprove(args?: RequestArgs & { body?: PostStoreSubcategoriesIdApproveRequest }): Promise<ApiResponse>;
|
|
1833
|
+
/** POST /store/subcategories/{id}/merge — rank: metic+archon */
|
|
1834
|
+
postStoreSubcategoriesIdMerge(args?: RequestArgs & { body?: PostStoreSubcategoriesIdMergeRequest }): Promise<ApiResponse>;
|
|
1835
|
+
/** GET /store/subcategories/queue — rank: metic+archon */
|
|
1836
|
+
getStoreSubcategoriesQueue(args?: RequestArgs): Promise<ApiResponse>;
|
|
1827
1837
|
/** GET /store/usage-reporting — rank: any-builder */
|
|
1828
1838
|
getStoreUsageReporting(args?: RequestArgs): Promise<GetStoreUsageReportingResponse>;
|
|
1829
1839
|
/** POST /store/usage-reporting — rank: any-builder */
|
|
@@ -1265,6 +1265,14 @@ export function createClient(opts = {}) {
|
|
|
1265
1265
|
getStoreModulesKeyVersionsVersionTarball: (args) => request("GET", "/store/modules/{key}/versions/{version}/tarball", { hasBody: false }, args),
|
|
1266
1266
|
// GET /store/modules/latest — rank: any-builder — GET /store/modules/latest
|
|
1267
1267
|
getStoreModulesLatest: (args) => request("GET", "/store/modules/latest", { hasBody: false }, args),
|
|
1268
|
+
// GET /store/subcategories — rank: any-builder — GET /store/subcategories
|
|
1269
|
+
getStoreSubcategories: (args) => request("GET", "/store/subcategories", { hasBody: false }, args),
|
|
1270
|
+
// POST /store/subcategories/{id}/approve — rank: metic+archon — POST /store/subcategories/:id/approve
|
|
1271
|
+
postStoreSubcategoriesIdApprove: (args) => request("POST", "/store/subcategories/{id}/approve", { hasBody: true }, args),
|
|
1272
|
+
// POST /store/subcategories/{id}/merge — rank: metic+archon — POST /store/subcategories/:id/merge
|
|
1273
|
+
postStoreSubcategoriesIdMerge: (args) => request("POST", "/store/subcategories/{id}/merge", { hasBody: true }, args),
|
|
1274
|
+
// GET /store/subcategories/queue — rank: metic+archon — GET /store/subcategories/queue
|
|
1275
|
+
getStoreSubcategoriesQueue: (args) => request("GET", "/store/subcategories/queue", { hasBody: false }, args),
|
|
1268
1276
|
// GET /store/usage-reporting — rank: any-builder — GET /store/usage-reporting
|
|
1269
1277
|
getStoreUsageReporting: (args) => request("GET", "/store/usage-reporting", { hasBody: false }, args),
|
|
1270
1278
|
// POST /store/usage-reporting — rank: any-builder — POST /store/usage-reporting
|
|
@@ -66,8 +66,10 @@ scarce.
|
|
|
66
66
|
- **Task 1003784** (nested category in the manifest and both catalog surfaces) builds to this:
|
|
67
67
|
`category: { parent, sub }`. `parent` is one of the eight keys, and `sub` is the key of an
|
|
68
68
|
approved sub-category or absent while a proposal is pending.
|
|
69
|
-
- **An approval queue** for proposed sub-categories
|
|
70
|
-
|
|
69
|
+
- **An approval queue** for proposed sub-categories — built in task 1004355: `core_278`'s
|
|
70
|
+
`store_subcategories` + `store_module_categories`, the Metic+ atom
|
|
71
|
+
`module.subcategory.review` (`government_033`), and `/store/subcategories/*` (see
|
|
72
|
+
docs/modules-contract.md, "Getting listed").
|
|
71
73
|
- **Core modules get categories too**, so the catalog is consistent. The table in D1 is their
|
|
72
74
|
starting assignment.
|
|
73
75
|
- **The cap (task 1003809)** counts listed modules per approved sub-category, never per parent.
|
package/docs/api/openapi.json
CHANGED
|
@@ -24344,6 +24344,189 @@
|
|
|
24344
24344
|
]
|
|
24345
24345
|
}
|
|
24346
24346
|
},
|
|
24347
|
+
"/store/subcategories": {
|
|
24348
|
+
"get": {
|
|
24349
|
+
"operationId": "get_store_subcategories",
|
|
24350
|
+
"tags": [
|
|
24351
|
+
"store"
|
|
24352
|
+
],
|
|
24353
|
+
"summary": "GET /store/subcategories",
|
|
24354
|
+
"description": "GET /api/bongos/store/subcategories — the approved sub-categories under each of the eight parents (task 1004355, ADR 0342 D3): what an author names in module.json's `category.sub`. A key not on this list is proposed at publish. rank: any-builder — public store metadata; nothing changed.\n\n**Rank:** `any-builder` — Any authenticated builder (row-level ownership enforced in-handler).",
|
|
24355
|
+
"x-rank": "any-builder",
|
|
24356
|
+
"x-source": "src/bongos/routes/modules.js",
|
|
24357
|
+
"responses": {
|
|
24358
|
+
"200": {
|
|
24359
|
+
"description": "Success."
|
|
24360
|
+
},
|
|
24361
|
+
"400": {
|
|
24362
|
+
"$ref": "#/components/responses/BadRequest"
|
|
24363
|
+
},
|
|
24364
|
+
"401": {
|
|
24365
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
24366
|
+
},
|
|
24367
|
+
"403": {
|
|
24368
|
+
"$ref": "#/components/responses/Forbidden"
|
|
24369
|
+
}
|
|
24370
|
+
},
|
|
24371
|
+
"security": [
|
|
24372
|
+
{
|
|
24373
|
+
"builderSession": []
|
|
24374
|
+
}
|
|
24375
|
+
]
|
|
24376
|
+
}
|
|
24377
|
+
},
|
|
24378
|
+
"/store/subcategories/queue": {
|
|
24379
|
+
"get": {
|
|
24380
|
+
"operationId": "get_store_subcategories_queue",
|
|
24381
|
+
"tags": [
|
|
24382
|
+
"store"
|
|
24383
|
+
],
|
|
24384
|
+
"summary": "GET /store/subcategories/queue",
|
|
24385
|
+
"description": "GET /api/bongos/store/subcategories/queue — the proposals waiting on a Metic+ decision, oldest first, each with the modules that named it and the near-duplicate names beside it (\"Stripe\" next to \"Stripe payments\"), since stopping near-duplicates is the point of the queue (ADR 0342 D3).\n\n**Rank:** `metic+archon` — Metic or Archon rank (review/triage powers).\n\n**Permissions:** `module.subcategory.review` (all required).",
|
|
24386
|
+
"x-rank": "metic+archon",
|
|
24387
|
+
"x-source": "src/bongos/routes/modules.js",
|
|
24388
|
+
"x-permissions": [
|
|
24389
|
+
"module.subcategory.review"
|
|
24390
|
+
],
|
|
24391
|
+
"responses": {
|
|
24392
|
+
"200": {
|
|
24393
|
+
"description": "Success."
|
|
24394
|
+
},
|
|
24395
|
+
"400": {
|
|
24396
|
+
"$ref": "#/components/responses/BadRequest"
|
|
24397
|
+
},
|
|
24398
|
+
"401": {
|
|
24399
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
24400
|
+
},
|
|
24401
|
+
"403": {
|
|
24402
|
+
"$ref": "#/components/responses/Forbidden"
|
|
24403
|
+
}
|
|
24404
|
+
},
|
|
24405
|
+
"security": [
|
|
24406
|
+
{
|
|
24407
|
+
"builderSession": []
|
|
24408
|
+
}
|
|
24409
|
+
]
|
|
24410
|
+
}
|
|
24411
|
+
},
|
|
24412
|
+
"/store/subcategories/{id}/approve": {
|
|
24413
|
+
"post": {
|
|
24414
|
+
"operationId": "post_store_subcategories_id_approve",
|
|
24415
|
+
"tags": [
|
|
24416
|
+
"store"
|
|
24417
|
+
],
|
|
24418
|
+
"summary": "POST /store/subcategories/:id/approve",
|
|
24419
|
+
"description": "POST /api/bongos/store/subcategories/:id/approve { label?, sub_key? } — make a proposal live, optionally renamed first. A rename onto a key that already exists under the parent is refused with the merge to run instead.\n\n**Rank:** `metic+archon` — Metic or Archon rank (review/triage powers).\n\n**Permissions:** `module.subcategory.review` (all required).",
|
|
24420
|
+
"x-rank": "metic+archon",
|
|
24421
|
+
"x-source": "src/bongos/routes/modules.js",
|
|
24422
|
+
"x-permissions": [
|
|
24423
|
+
"module.subcategory.review"
|
|
24424
|
+
],
|
|
24425
|
+
"parameters": [
|
|
24426
|
+
{
|
|
24427
|
+
"name": "id",
|
|
24428
|
+
"in": "path",
|
|
24429
|
+
"required": true,
|
|
24430
|
+
"schema": {
|
|
24431
|
+
"type": "string"
|
|
24432
|
+
},
|
|
24433
|
+
"description": "Path parameter `id`."
|
|
24434
|
+
}
|
|
24435
|
+
],
|
|
24436
|
+
"requestBody": {
|
|
24437
|
+
"required": false,
|
|
24438
|
+
"content": {
|
|
24439
|
+
"application/json": {
|
|
24440
|
+
"schema": {
|
|
24441
|
+
"$ref": "#/components/schemas/PostStoreSubcategoriesIdApproveRequest"
|
|
24442
|
+
}
|
|
24443
|
+
}
|
|
24444
|
+
},
|
|
24445
|
+
"x-validated": true
|
|
24446
|
+
},
|
|
24447
|
+
"responses": {
|
|
24448
|
+
"200": {
|
|
24449
|
+
"description": "Success."
|
|
24450
|
+
},
|
|
24451
|
+
"400": {
|
|
24452
|
+
"$ref": "#/components/responses/ValidationFailed"
|
|
24453
|
+
},
|
|
24454
|
+
"401": {
|
|
24455
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
24456
|
+
},
|
|
24457
|
+
"403": {
|
|
24458
|
+
"$ref": "#/components/responses/Forbidden"
|
|
24459
|
+
},
|
|
24460
|
+
"404": {
|
|
24461
|
+
"$ref": "#/components/responses/NotFound"
|
|
24462
|
+
}
|
|
24463
|
+
},
|
|
24464
|
+
"security": [
|
|
24465
|
+
{
|
|
24466
|
+
"builderSession": []
|
|
24467
|
+
}
|
|
24468
|
+
]
|
|
24469
|
+
}
|
|
24470
|
+
},
|
|
24471
|
+
"/store/subcategories/{id}/merge": {
|
|
24472
|
+
"post": {
|
|
24473
|
+
"operationId": "post_store_subcategories_id_merge",
|
|
24474
|
+
"tags": [
|
|
24475
|
+
"store"
|
|
24476
|
+
],
|
|
24477
|
+
"summary": "POST /store/subcategories/:id/merge",
|
|
24478
|
+
"description": "POST /api/bongos/store/subcategories/:id/merge { into } — fold a proposal (or an approved duplicate) into an approved sub-category. Every module under it moves to the target.\n\n**Rank:** `metic+archon` — Metic or Archon rank (review/triage powers).\n\n**Permissions:** `module.subcategory.review` (all required).",
|
|
24479
|
+
"x-rank": "metic+archon",
|
|
24480
|
+
"x-source": "src/bongos/routes/modules.js",
|
|
24481
|
+
"x-permissions": [
|
|
24482
|
+
"module.subcategory.review"
|
|
24483
|
+
],
|
|
24484
|
+
"parameters": [
|
|
24485
|
+
{
|
|
24486
|
+
"name": "id",
|
|
24487
|
+
"in": "path",
|
|
24488
|
+
"required": true,
|
|
24489
|
+
"schema": {
|
|
24490
|
+
"type": "string"
|
|
24491
|
+
},
|
|
24492
|
+
"description": "Path parameter `id`."
|
|
24493
|
+
}
|
|
24494
|
+
],
|
|
24495
|
+
"requestBody": {
|
|
24496
|
+
"required": false,
|
|
24497
|
+
"content": {
|
|
24498
|
+
"application/json": {
|
|
24499
|
+
"schema": {
|
|
24500
|
+
"$ref": "#/components/schemas/PostStoreSubcategoriesIdMergeRequest"
|
|
24501
|
+
}
|
|
24502
|
+
}
|
|
24503
|
+
},
|
|
24504
|
+
"x-validated": true
|
|
24505
|
+
},
|
|
24506
|
+
"responses": {
|
|
24507
|
+
"200": {
|
|
24508
|
+
"description": "Success."
|
|
24509
|
+
},
|
|
24510
|
+
"400": {
|
|
24511
|
+
"$ref": "#/components/responses/ValidationFailed"
|
|
24512
|
+
},
|
|
24513
|
+
"401": {
|
|
24514
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
24515
|
+
},
|
|
24516
|
+
"403": {
|
|
24517
|
+
"$ref": "#/components/responses/Forbidden"
|
|
24518
|
+
},
|
|
24519
|
+
"404": {
|
|
24520
|
+
"$ref": "#/components/responses/NotFound"
|
|
24521
|
+
}
|
|
24522
|
+
},
|
|
24523
|
+
"security": [
|
|
24524
|
+
{
|
|
24525
|
+
"builderSession": []
|
|
24526
|
+
}
|
|
24527
|
+
]
|
|
24528
|
+
}
|
|
24529
|
+
},
|
|
24347
24530
|
"/store/usage-reporting": {
|
|
24348
24531
|
"get": {
|
|
24349
24532
|
"operationId": "get_store_usage_reporting",
|
|
@@ -35803,13 +35986,15 @@
|
|
|
35803
35986
|
},
|
|
35804
35987
|
"created_module": {},
|
|
35805
35988
|
"version": {},
|
|
35806
|
-
"channel": {}
|
|
35989
|
+
"channel": {},
|
|
35990
|
+
"category": {}
|
|
35807
35991
|
},
|
|
35808
35992
|
"required": [
|
|
35809
35993
|
"ok",
|
|
35810
35994
|
"created_module",
|
|
35811
35995
|
"version",
|
|
35812
|
-
"channel"
|
|
35996
|
+
"channel",
|
|
35997
|
+
"category"
|
|
35813
35998
|
]
|
|
35814
35999
|
},
|
|
35815
36000
|
"PostStoreModulesKeyVersionsVersionErrorCountRequest": {
|
|
@@ -35905,6 +36090,27 @@
|
|
|
35905
36090
|
"reason"
|
|
35906
36091
|
]
|
|
35907
36092
|
},
|
|
36093
|
+
"PostStoreSubcategoriesIdApproveRequest": {
|
|
36094
|
+
"type": "object",
|
|
36095
|
+
"properties": {
|
|
36096
|
+
"label": {
|
|
36097
|
+
"type": "string",
|
|
36098
|
+
"maxLength": 80
|
|
36099
|
+
},
|
|
36100
|
+
"sub_key": {
|
|
36101
|
+
"type": "string",
|
|
36102
|
+
"maxLength": 80
|
|
36103
|
+
}
|
|
36104
|
+
},
|
|
36105
|
+
"additionalProperties": false
|
|
36106
|
+
},
|
|
36107
|
+
"PostStoreSubcategoriesIdMergeRequest": {
|
|
36108
|
+
"type": "object",
|
|
36109
|
+
"properties": {
|
|
36110
|
+
"into": {}
|
|
36111
|
+
},
|
|
36112
|
+
"additionalProperties": false
|
|
36113
|
+
},
|
|
35908
36114
|
"PostStoreUsageReportingRequest": {
|
|
35909
36115
|
"type": "object",
|
|
35910
36116
|
"properties": {
|
|
@@ -36980,8 +37186,8 @@
|
|
|
36980
37186
|
"description": "A required dependency/feature is not configured or is temporarily down."
|
|
36981
37187
|
}
|
|
36982
37188
|
},
|
|
36983
|
-
"x-endpoint-count":
|
|
36984
|
-
"x-schema-count":
|
|
37189
|
+
"x-endpoint-count": 582,
|
|
37190
|
+
"x-schema-count": 624,
|
|
36985
37191
|
"x-undocumented-bodies": 12,
|
|
36986
37192
|
"x-response-schemas": 404,
|
|
36987
37193
|
"x-generated-by": "scripts/bongos/gen-api-docs.js"
|
package/docs/api-reference.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Bongos API reference
|
|
4
4
|
|
|
5
|
-
> **Generated from the live route files** — the route file is authoritative.
|
|
5
|
+
> **Generated from the live route files** — the route file is authoritative. 582 endpoints across 98 route files.
|
|
6
6
|
> Machine-readable spec: [`docs/api/openapi.json`](api/openapi.json) (OpenAPI 3.1). Rendered docs site: **`/docs`** (e.g. `cloudbongos.com/docs`).
|
|
7
7
|
|
|
8
8
|
Base path: `/api/bongos`. Ranks (enforced server-side, [ADR 0016](adr/0016-trust-boundary-server-enforced-permissions.md)): `public` < `any-builder` < `metic+archon` < `archon`.
|
|
@@ -863,7 +863,7 @@ Base path: `/api/bongos`. Ranks (enforced server-side, [ADR 0016](adr/0016-trust
|
|
|
863
863
|
| GET | `/api/bongos/sso/pubkey` | `public` | — | GET /sso/pubkey — the hub's Ed25519 assertion-verification key (public). |
|
|
864
864
|
| POST | `/api/bongos/sso/token` | `public` | `client_id`, `client_secret`, `code`, `redirect_uri` | POST /sso/token — server-to-server code redemption. |
|
|
865
865
|
|
|
866
|
-
## `store` (
|
|
866
|
+
## `store` (22)
|
|
867
867
|
|
|
868
868
|
| Method | Path | Rank | Body | Description |
|
|
869
869
|
|---|---|---|---|---|
|
|
@@ -883,6 +883,10 @@ Base path: `/api/bongos`. Ranks (enforced server-side, [ADR 0016](adr/0016-trust
|
|
|
883
883
|
| POST | `/api/bongos/store/modules/:key/versions/:version/release` | `metic+archon` | `reason` | POST /api/bongos/store/modules/:key/versions/:version/release — a Metic+ person releases a version the promotion gate HELD on tester (a t… |
|
|
884
884
|
| GET | `/api/bongos/store/modules/:key/versions/:version/tarball` | `any-builder` | — | |
|
|
885
885
|
| GET | `/api/bongos/store/modules/latest` | `any-builder` | — | The newest published version of each named module — what `bongos upgrade` compares an instance's installed store modules against to repor… |
|
|
886
|
+
| GET | `/api/bongos/store/subcategories` | `any-builder` | — | GET /api/bongos/store/subcategories — the approved sub-categories under each of the eight parents (task 1004355, ADR 0342 D3): what an au… |
|
|
887
|
+
| POST | `/api/bongos/store/subcategories/:id/approve` | `metic+archon` | `label`, `sub_key` | POST /api/bongos/store/subcategories/:id/approve { label?, sub_key? } — make a proposal live, optionally renamed first. |
|
|
888
|
+
| POST | `/api/bongos/store/subcategories/:id/merge` | `metic+archon` | `into` | POST /api/bongos/store/subcategories/:id/merge { into } — fold a proposal (or an approved duplicate) into an approved sub-category. |
|
|
889
|
+
| GET | `/api/bongos/store/subcategories/queue` | `metic+archon` | — | GET /api/bongos/store/subcategories/queue — the proposals waiting on a Metic+ decision, oldest first, each with the modules that named it… |
|
|
886
890
|
| GET | `/api/bongos/store/usage-reporting` | `any-builder` | — | The caller's own reporting switch (Settings → Profile and privacy). |
|
|
887
891
|
| POST | `/api/bongos/store/usage-reporting` | `any-builder` | `enabled` | |
|
|
888
892
|
|