@bongos/core 1.21.32 → 1.21.34
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 +68 -43
- package/clients/bongos-client/README.md +1 -1
- package/clients/bongos-client/bongos-client.global.js +2 -0
- package/clients/bongos-client/index.cjs +2 -0
- package/clients/bongos-client/index.d.ts +4 -0
- package/clients/bongos-client/index.mjs +2 -0
- package/docs/adr/0338-modules-travel-through-a-bongos-hosted-store.md +7 -0
- package/docs/api/openapi.json +96 -3
- package/docs/api-reference.md +3 -2
- package/docs/architecture.md +1 -0
- package/docs/copy-inventory.md +29 -25
- package/docs/copy-registry.json +65 -29
- package/docs/design/craft-mode-direction.md +69 -0
- package/docs/module-api-changelog.md +4 -0
- package/docs/page-inventory.json +5 -1
- package/docs/page-readings.json +270 -201
- package/modules/government/catalog.js +3 -0
- package/modules/government/migrations/government_025_module_delist.sql +36 -0
- package/modules/hall-ui/public/modules.js +8 -1
- package/modules/hall-ui/public/street-desk.js +285 -0
- package/modules/hall-ui/public/street-inside.js +8 -4
- package/modules/hall-ui/public/street.css +59 -0
- package/modules/hall-ui/public/street.html +9 -3
- package/modules/hall-ui/public/street.js +219 -17
- package/modules/hall-ui/public/street.states.json +83 -0
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/release-notes.json +16 -0
- package/scripts/gds/module.js +21 -5
- package/src/bongos/module-store.js +31 -0
- package/src/bongos/route-rank-check.js +3 -0
- package/src/bongos/routes/modules.js +35 -0
- package/src/module-api.js +1 -1
- package/tests/hall_catalog_world.mjs +1 -1
- package/tests/hall_matter_card.mjs +1 -1
- package/tests/hall_street.mjs +1 -1
- package/tests/hall_street_amend.mjs +1 -1
- package/tests/hall_street_desk.mjs +328 -0
- package/tests/hall_street_inside.mjs +1 -1
- package/tests/module_catalog.mjs +34 -6
- package/tests/module_store_delist.mjs +146 -0
package/.bongos-core.json
CHANGED
|
@@ -2,22 +2,22 @@
|
|
|
2
2
|
"artifact": "bongos-core",
|
|
3
3
|
"manifest_schema": 1,
|
|
4
4
|
"generator": "scripts/gds/package-core.js",
|
|
5
|
-
"core_version": "1.21.
|
|
6
|
-
"core_contract": "1.21.
|
|
7
|
-
"source_commit": "
|
|
5
|
+
"core_version": "1.21.34",
|
|
6
|
+
"core_contract": "1.21.34",
|
|
7
|
+
"source_commit": "d939d974306568b0ad522f60c604fbfcade76007",
|
|
8
8
|
"source_ref": "HEAD",
|
|
9
|
-
"built_at": "2026-10-
|
|
9
|
+
"built_at": "2026-10-03T21:33:14.512Z",
|
|
10
10
|
"redaction": {
|
|
11
11
|
"model": "docs-redacted+functional-verbatim",
|
|
12
|
-
"docs_redacted":
|
|
12
|
+
"docs_redacted": 582,
|
|
13
13
|
"agent_docs_stubbed": 27,
|
|
14
|
-
"functional_verbatim":
|
|
14
|
+
"functional_verbatim": 2908,
|
|
15
15
|
"rules": 3,
|
|
16
16
|
"gate_literals": 3,
|
|
17
17
|
"gate": "passed"
|
|
18
18
|
},
|
|
19
|
-
"file_count":
|
|
20
|
-
"tree_sha256": "
|
|
19
|
+
"file_count": 3518,
|
|
20
|
+
"tree_sha256": "04811e065d483036054f8d14fc95f12f28a8c4d07abac32b8fd41880b934f0ef",
|
|
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": "0ff95bf12579c65f3339ac4bf0cc282d7d0132a4872a159042954907b36abfa3"
|
|
321
321
|
},
|
|
322
322
|
{
|
|
323
323
|
"path": "clients/bongos-client/bongos-client.global.js",
|
|
324
324
|
"mode": "0000644",
|
|
325
|
-
"sha256": "
|
|
325
|
+
"sha256": "d7d4b4c0235d41edfa9348e2953c7f30e97d1c967f1c3d40d32b9a788981826f"
|
|
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": "4f3cba7f1b570870e2f407e2fbe4d407337a71c882b55e064e814bb653bd77be"
|
|
336
336
|
},
|
|
337
337
|
{
|
|
338
338
|
"path": "clients/bongos-client/index.d.ts",
|
|
339
339
|
"mode": "0000644",
|
|
340
|
-
"sha256": "
|
|
340
|
+
"sha256": "8daa0216a1a98d91c1c5430f04a1801d3a5f44159de38c707ae929633f6ec27b"
|
|
341
341
|
},
|
|
342
342
|
{
|
|
343
343
|
"path": "clients/bongos-client/index.mjs",
|
|
344
344
|
"mode": "0000644",
|
|
345
|
-
"sha256": "
|
|
345
|
+
"sha256": "1a0e9c95b879d23b2ed6035e27de9c8a4c830dcb2b8614cfdb6b887028684ca3"
|
|
346
346
|
},
|
|
347
347
|
{
|
|
348
348
|
"path": "clients/bongos-client/package.json",
|
|
@@ -2152,7 +2152,7 @@
|
|
|
2152
2152
|
{
|
|
2153
2153
|
"path": "docs/adr/0338-modules-travel-through-a-bongos-hosted-store.md",
|
|
2154
2154
|
"mode": "0000644",
|
|
2155
|
-
"sha256": "
|
|
2155
|
+
"sha256": "eadc3bb809b213bbd14dabeab23169c4b4f94393182362b840fef15a2aa59df1"
|
|
2156
2156
|
},
|
|
2157
2157
|
{
|
|
2158
2158
|
"path": "docs/adr/0339-a-projects-owner-upgrades-it-and-a-hosted-project-hands-off-to-the-hub-door.md",
|
|
@@ -2292,17 +2292,17 @@
|
|
|
2292
2292
|
{
|
|
2293
2293
|
"path": "docs/api-reference.md",
|
|
2294
2294
|
"mode": "0000644",
|
|
2295
|
-
"sha256": "
|
|
2295
|
+
"sha256": "12abe3c6207d5ea31ff769856aea0211f6285193a4fca9af56bb16214d05fd04"
|
|
2296
2296
|
},
|
|
2297
2297
|
{
|
|
2298
2298
|
"path": "docs/api/openapi.json",
|
|
2299
2299
|
"mode": "0000644",
|
|
2300
|
-
"sha256": "
|
|
2300
|
+
"sha256": "8d3ffd1391e96fcaef1009476a3068d3eca0520bd0237130981ea037743c0d3a"
|
|
2301
2301
|
},
|
|
2302
2302
|
{
|
|
2303
2303
|
"path": "docs/architecture.md",
|
|
2304
2304
|
"mode": "0000644",
|
|
2305
|
-
"sha256": "
|
|
2305
|
+
"sha256": "5236bf63df238c4b93e515a9982e76e0908382d049bf38035b5bda2a3ceda11b"
|
|
2306
2306
|
},
|
|
2307
2307
|
{
|
|
2308
2308
|
"path": "docs/branding-contract.md",
|
|
@@ -2322,18 +2322,23 @@
|
|
|
2322
2322
|
{
|
|
2323
2323
|
"path": "docs/copy-inventory.md",
|
|
2324
2324
|
"mode": "0000644",
|
|
2325
|
-
"sha256": "
|
|
2325
|
+
"sha256": "af2fcfa8af78417d14e7e3be9c7edec902ee1687a9dec3030973e4b4eec8e511"
|
|
2326
2326
|
},
|
|
2327
2327
|
{
|
|
2328
2328
|
"path": "docs/copy-registry.json",
|
|
2329
2329
|
"mode": "0000644",
|
|
2330
|
-
"sha256": "
|
|
2330
|
+
"sha256": "d320fed484e811c8ed76eb71f92967850cb4946ee531e3073a263d2b7f9172bc"
|
|
2331
2331
|
},
|
|
2332
2332
|
{
|
|
2333
2333
|
"path": "docs/design/apex-pass-2-direction.md",
|
|
2334
2334
|
"mode": "0000644",
|
|
2335
2335
|
"sha256": "b4f9fdf5a44373217d59acadcdb2d17fd44018a4d30647bc518bd401f2876756"
|
|
2336
2336
|
},
|
|
2337
|
+
{
|
|
2338
|
+
"path": "docs/design/craft-mode-direction.md",
|
|
2339
|
+
"mode": "0000644",
|
|
2340
|
+
"sha256": "083f40e17073b4c7a7d78205fa23299ecd1357fce13894d27c29365004a70f34"
|
|
2341
|
+
},
|
|
2337
2342
|
{
|
|
2338
2343
|
"path": "docs/design/demonolith-plan.md",
|
|
2339
2344
|
"mode": "0000644",
|
|
@@ -2832,7 +2837,7 @@
|
|
|
2832
2837
|
{
|
|
2833
2838
|
"path": "docs/module-api-changelog.md",
|
|
2834
2839
|
"mode": "0000644",
|
|
2835
|
-
"sha256": "
|
|
2840
|
+
"sha256": "42ef101bab692519c3f3b26ac5e5f72ad1392448c2d5dd3a52ec502539338522"
|
|
2836
2841
|
},
|
|
2837
2842
|
{
|
|
2838
2843
|
"path": "docs/modules-contract.md",
|
|
@@ -2917,12 +2922,12 @@
|
|
|
2917
2922
|
{
|
|
2918
2923
|
"path": "docs/page-inventory.json",
|
|
2919
2924
|
"mode": "0000644",
|
|
2920
|
-
"sha256": "
|
|
2925
|
+
"sha256": "b7466fc3fc72e057675f890bb65472f6e79fcb07d342aff486d1e7a2483db17d"
|
|
2921
2926
|
},
|
|
2922
2927
|
{
|
|
2923
2928
|
"path": "docs/page-readings.json",
|
|
2924
2929
|
"mode": "0000644",
|
|
2925
|
-
"sha256": "
|
|
2930
|
+
"sha256": "ce39c79473cd4362cdb2298426a87df6b20e212e80fec05f15f61ed4a830d72b"
|
|
2926
2931
|
},
|
|
2927
2932
|
{
|
|
2928
2933
|
"path": "docs/project-context.template.md",
|
|
@@ -4852,7 +4857,7 @@
|
|
|
4852
4857
|
{
|
|
4853
4858
|
"path": "modules/government/catalog.js",
|
|
4854
4859
|
"mode": "0000644",
|
|
4855
|
-
"sha256": "
|
|
4860
|
+
"sha256": "1592e5e388887cfffc79c69be88e31728d2a44a0c7db70f6b262d2df551aba44"
|
|
4856
4861
|
},
|
|
4857
4862
|
{
|
|
4858
4863
|
"path": "modules/government/charter.js",
|
|
@@ -5054,6 +5059,11 @@
|
|
|
5054
5059
|
"mode": "0000644",
|
|
5055
5060
|
"sha256": "e839988918bee95e0a5f11bbfe71bd6d3304ad6d8a00a6b78593a34c3e36a6c4"
|
|
5056
5061
|
},
|
|
5062
|
+
{
|
|
5063
|
+
"path": "modules/government/migrations/government_025_module_delist.sql",
|
|
5064
|
+
"mode": "0000644",
|
|
5065
|
+
"sha256": "5bcdd9defa3927adda5612d990d25dc8efaea8f2a0c159b5bd1b4154364512df"
|
|
5066
|
+
},
|
|
5057
5067
|
{
|
|
5058
5068
|
"path": "modules/government/module.json",
|
|
5059
5069
|
"mode": "0000644",
|
|
@@ -5862,7 +5872,7 @@
|
|
|
5862
5872
|
{
|
|
5863
5873
|
"path": "modules/hall-ui/public/modules.js",
|
|
5864
5874
|
"mode": "0000644",
|
|
5865
|
-
"sha256": "
|
|
5875
|
+
"sha256": "6f960241607ea3921cce5d40bf5fbb6d17595d26213601cbc6a7195448624b11"
|
|
5866
5876
|
},
|
|
5867
5877
|
{
|
|
5868
5878
|
"path": "modules/hall-ui/public/modules.states.json",
|
|
@@ -6184,6 +6194,11 @@
|
|
|
6184
6194
|
"mode": "0000644",
|
|
6185
6195
|
"sha256": "01d0c16945bb9735cae05fbf6584227d60708a6591dcb15a6338b6731f7a69d0"
|
|
6186
6196
|
},
|
|
6197
|
+
{
|
|
6198
|
+
"path": "modules/hall-ui/public/street-desk.js",
|
|
6199
|
+
"mode": "0000644",
|
|
6200
|
+
"sha256": "52180dc2730a83597836d1c44f58f660685f609fa921e202f11376b1850b290e"
|
|
6201
|
+
},
|
|
6187
6202
|
{
|
|
6188
6203
|
"path": "modules/hall-ui/public/street-draw.js",
|
|
6189
6204
|
"mode": "0000644",
|
|
@@ -6192,27 +6207,27 @@
|
|
|
6192
6207
|
{
|
|
6193
6208
|
"path": "modules/hall-ui/public/street-inside.js",
|
|
6194
6209
|
"mode": "0000644",
|
|
6195
|
-
"sha256": "
|
|
6210
|
+
"sha256": "958d265b46ec751cd7c82e828e5820c19784f4cd2683d620d28be8010407b478"
|
|
6196
6211
|
},
|
|
6197
6212
|
{
|
|
6198
6213
|
"path": "modules/hall-ui/public/street.css",
|
|
6199
6214
|
"mode": "0000644",
|
|
6200
|
-
"sha256": "
|
|
6215
|
+
"sha256": "274742582e70386c1dd875c63c8ae2f6856088b1952dfad4b99ef34cf885e940"
|
|
6201
6216
|
},
|
|
6202
6217
|
{
|
|
6203
6218
|
"path": "modules/hall-ui/public/street.html",
|
|
6204
6219
|
"mode": "0000644",
|
|
6205
|
-
"sha256": "
|
|
6220
|
+
"sha256": "40f1abd249ab974cfb6747217fd0161fd07f9d6162c307d59ef82bf02814b398"
|
|
6206
6221
|
},
|
|
6207
6222
|
{
|
|
6208
6223
|
"path": "modules/hall-ui/public/street.js",
|
|
6209
6224
|
"mode": "0000644",
|
|
6210
|
-
"sha256": "
|
|
6225
|
+
"sha256": "c9525c383a58e11d3b9151f24c70a212664ceefef32871933d2d3a9c49311e31"
|
|
6211
6226
|
},
|
|
6212
6227
|
{
|
|
6213
6228
|
"path": "modules/hall-ui/public/street.states.json",
|
|
6214
6229
|
"mode": "0000644",
|
|
6215
|
-
"sha256": "
|
|
6230
|
+
"sha256": "d46e639801c06de9846c2748280e8660c98a80499dc9bf3f01108f6c19eaa7c9"
|
|
6216
6231
|
},
|
|
6217
6232
|
{
|
|
6218
6233
|
"path": "modules/hall-ui/public/studio-lib.js",
|
|
@@ -9807,12 +9822,12 @@
|
|
|
9807
9822
|
{
|
|
9808
9823
|
"path": "package-lock.json",
|
|
9809
9824
|
"mode": "0000644",
|
|
9810
|
-
"sha256": "
|
|
9825
|
+
"sha256": "4f1f108f932da387171a2bacbb112a582e161c706f48e76a92b11c86a6ba074f"
|
|
9811
9826
|
},
|
|
9812
9827
|
{
|
|
9813
9828
|
"path": "package.json",
|
|
9814
9829
|
"mode": "0000644",
|
|
9815
|
-
"sha256": "
|
|
9830
|
+
"sha256": "456bd96e3f424bb2ade59c4acfe5484c49ad0f469e4626e7de5edea5bdca6000"
|
|
9816
9831
|
},
|
|
9817
9832
|
{
|
|
9818
9833
|
"path": "public-docs/index.html",
|
|
@@ -9832,7 +9847,7 @@
|
|
|
9832
9847
|
{
|
|
9833
9848
|
"path": "release-notes.json",
|
|
9834
9849
|
"mode": "0000644",
|
|
9835
|
-
"sha256": "
|
|
9850
|
+
"sha256": "d6a8a34007ddc0a18d7548d46548f6b8e1349eeeafd7ef5bac4319c455d3c57e"
|
|
9836
9851
|
},
|
|
9837
9852
|
{
|
|
9838
9853
|
"path": "scripts/bongos-mcp.js",
|
|
@@ -10712,7 +10727,7 @@
|
|
|
10712
10727
|
{
|
|
10713
10728
|
"path": "scripts/gds/module.js",
|
|
10714
10729
|
"mode": "0000644",
|
|
10715
|
-
"sha256": "
|
|
10730
|
+
"sha256": "eeabf40fafbfdd7e83eeaec6b3898ee913a3f9235b334c952d5d545fd42ad26c"
|
|
10716
10731
|
},
|
|
10717
10732
|
{
|
|
10718
10733
|
"path": "scripts/gds/move-escalation.js",
|
|
@@ -11832,7 +11847,7 @@
|
|
|
11832
11847
|
{
|
|
11833
11848
|
"path": "src/bongos/module-store.js",
|
|
11834
11849
|
"mode": "0000644",
|
|
11835
|
-
"sha256": "
|
|
11850
|
+
"sha256": "373a0ff03c6644ea622ff859edfe9003fcfa94ea7eb5ca937059865c3eeb317f"
|
|
11836
11851
|
},
|
|
11837
11852
|
{
|
|
11838
11853
|
"path": "src/bongos/module-submissions.js",
|
|
@@ -11897,7 +11912,7 @@
|
|
|
11897
11912
|
{
|
|
11898
11913
|
"path": "src/bongos/route-rank-check.js",
|
|
11899
11914
|
"mode": "0000644",
|
|
11900
|
-
"sha256": "
|
|
11915
|
+
"sha256": "a72e24f1cc5f4f27e7f8827de5b936e773d0e0e9ffe39e2de4da97e42b35e3af"
|
|
11901
11916
|
},
|
|
11902
11917
|
{
|
|
11903
11918
|
"path": "src/bongos/routes.js",
|
|
@@ -11982,7 +11997,7 @@
|
|
|
11982
11997
|
{
|
|
11983
11998
|
"path": "src/bongos/routes/modules.js",
|
|
11984
11999
|
"mode": "0000644",
|
|
11985
|
-
"sha256": "
|
|
12000
|
+
"sha256": "88fdc1c7d0904c8a7dcea9f87a61848982f9db73a1b66a0dba81ac2220c34bfa"
|
|
11986
12001
|
},
|
|
11987
12002
|
{
|
|
11988
12003
|
"path": "src/bongos/routes/my-sessions.js",
|
|
@@ -12057,7 +12072,7 @@
|
|
|
12057
12072
|
{
|
|
12058
12073
|
"path": "src/module-api.js",
|
|
12059
12074
|
"mode": "0000644",
|
|
12060
|
-
"sha256": "
|
|
12075
|
+
"sha256": "324317d722ad7ecf0ab94d6f14cbabc18aa8629fcec113eb85b72606d926afbd"
|
|
12061
12076
|
},
|
|
12062
12077
|
{
|
|
12063
12078
|
"path": "src/module-loader/catalog.js",
|
|
@@ -14292,7 +14307,7 @@
|
|
|
14292
14307
|
{
|
|
14293
14308
|
"path": "tests/hall_catalog_world.mjs",
|
|
14294
14309
|
"mode": "0000644",
|
|
14295
|
-
"sha256": "
|
|
14310
|
+
"sha256": "11f0ac50c5424a76371591b31275c796ded853db0cd35798b9adc878cdd88c88"
|
|
14296
14311
|
},
|
|
14297
14312
|
{
|
|
14298
14313
|
"path": "tests/hall_city.mjs",
|
|
@@ -14342,7 +14357,7 @@
|
|
|
14342
14357
|
{
|
|
14343
14358
|
"path": "tests/hall_matter_card.mjs",
|
|
14344
14359
|
"mode": "0000644",
|
|
14345
|
-
"sha256": "
|
|
14360
|
+
"sha256": "b6322560371fa21eac463b6360ec70af0d68c5256ff1979337cf77deeedf246c"
|
|
14346
14361
|
},
|
|
14347
14362
|
{
|
|
14348
14363
|
"path": "tests/hall_mine_lens.mjs",
|
|
@@ -14437,17 +14452,22 @@
|
|
|
14437
14452
|
{
|
|
14438
14453
|
"path": "tests/hall_street.mjs",
|
|
14439
14454
|
"mode": "0000644",
|
|
14440
|
-
"sha256": "
|
|
14455
|
+
"sha256": "a84e6cb75ffda77c7c583ff36b0bdc7b80fd29d811ee780def246486b0dcde80"
|
|
14441
14456
|
},
|
|
14442
14457
|
{
|
|
14443
14458
|
"path": "tests/hall_street_amend.mjs",
|
|
14444
14459
|
"mode": "0000644",
|
|
14445
|
-
"sha256": "
|
|
14460
|
+
"sha256": "01b9f3f6201e48cd4914fcdc519fe79c50860ca2decbd877cd5356170105521c"
|
|
14461
|
+
},
|
|
14462
|
+
{
|
|
14463
|
+
"path": "tests/hall_street_desk.mjs",
|
|
14464
|
+
"mode": "0000644",
|
|
14465
|
+
"sha256": "2044841cb78fdbcbbb701b1530f6bfa90e4130fce2e2a7ab5a375f51a2d09a97"
|
|
14446
14466
|
},
|
|
14447
14467
|
{
|
|
14448
14468
|
"path": "tests/hall_street_inside.mjs",
|
|
14449
14469
|
"mode": "0000644",
|
|
14450
|
-
"sha256": "
|
|
14470
|
+
"sha256": "27988066ed09c4b85a53a81be5ca8b3e5a7e60f80f27ddc0c451f0bd8f8e8235"
|
|
14451
14471
|
},
|
|
14452
14472
|
{
|
|
14453
14473
|
"path": "tests/hall_studio_home.mjs",
|
|
@@ -15252,7 +15272,7 @@
|
|
|
15252
15272
|
{
|
|
15253
15273
|
"path": "tests/module_catalog.mjs",
|
|
15254
15274
|
"mode": "0000644",
|
|
15255
|
-
"sha256": "
|
|
15275
|
+
"sha256": "4b2e3b067ddaed61f032f5a825402971e053326a65a75b969e0484f9b183fb7e"
|
|
15256
15276
|
},
|
|
15257
15277
|
{
|
|
15258
15278
|
"path": "tests/module_cli.mjs",
|
|
@@ -15309,6 +15329,11 @@
|
|
|
15309
15329
|
"mode": "0000644",
|
|
15310
15330
|
"sha256": "ba4233ed072c87df9dbc5c75af10655ad8eaaf9d8ccbe69df146052467a1279e"
|
|
15311
15331
|
},
|
|
15332
|
+
{
|
|
15333
|
+
"path": "tests/module_store_delist.mjs",
|
|
15334
|
+
"mode": "0000644",
|
|
15335
|
+
"sha256": "6689e5b56ba80fceff4981266886222a94d8a9fca24a8cbd07ab240ba3ff2037"
|
|
15336
|
+
},
|
|
15312
15337
|
{
|
|
15313
15338
|
"path": "tests/module_store_howto.mjs",
|
|
15314
15339
|
"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
|
+
- 502 operations across 73 resource groups
|
|
9
9
|
|
|
10
10
|
## Use it from your project
|
|
11
11
|
|
|
@@ -1103,6 +1103,8 @@ function createClient(opts = {}) {
|
|
|
1103
1103
|
postStoreModulesKeyAcquire: (args) => request("POST", "/store/modules/{key}/acquire", { hasBody: true }, args),
|
|
1104
1104
|
// POST /store/modules/{key}/acquired — rank: any-builder — POST /store/modules/:key/acquired
|
|
1105
1105
|
postStoreModulesKeyAcquired: (args) => request("POST", "/store/modules/{key}/acquired", { hasBody: true }, args),
|
|
1106
|
+
// POST /store/modules/{key}/delist — rank: metic+archon — POST /store/modules/:key/delist
|
|
1107
|
+
postStoreModulesKeyDelist: (args) => request("POST", "/store/modules/{key}/delist", { hasBody: true }, args),
|
|
1106
1108
|
// GET /store/modules/{key}/entitlement — rank: any-builder — GET /store/modules/:key/entitlement
|
|
1107
1109
|
getStoreModulesKeyEntitlement: (args) => request("GET", "/store/modules/{key}/entitlement", { hasBody: false }, args),
|
|
1108
1110
|
// POST /store/modules/{key}/versions — rank: metic+archon — POST /store/modules/:key/versions
|
|
@@ -1102,6 +1102,8 @@ function createClient(opts = {}) {
|
|
|
1102
1102
|
postStoreModulesKeyAcquire: (args) => request("POST", "/store/modules/{key}/acquire", { hasBody: true }, args),
|
|
1103
1103
|
// POST /store/modules/{key}/acquired — rank: any-builder — POST /store/modules/:key/acquired
|
|
1104
1104
|
postStoreModulesKeyAcquired: (args) => request("POST", "/store/modules/{key}/acquired", { hasBody: true }, args),
|
|
1105
|
+
// POST /store/modules/{key}/delist — rank: metic+archon — POST /store/modules/:key/delist
|
|
1106
|
+
postStoreModulesKeyDelist: (args) => request("POST", "/store/modules/{key}/delist", { hasBody: true }, args),
|
|
1105
1107
|
// GET /store/modules/{key}/entitlement — rank: any-builder — GET /store/modules/:key/entitlement
|
|
1106
1108
|
getStoreModulesKeyEntitlement: (args) => request("GET", "/store/modules/{key}/entitlement", { hasBody: false }, args),
|
|
1107
1109
|
// POST /store/modules/{key}/versions — rank: metic+archon — POST /store/modules/:key/versions
|
|
@@ -482,6 +482,8 @@ export interface PostStoreModulesKeyAcquireRequest { version?: string }
|
|
|
482
482
|
export interface PostStoreModulesKeyAcquireResponse { ok: boolean; module_key: unknown; version: unknown; core_version: unknown; tarball_sha256: unknown; tree_sha256: unknown; tarball_bytes: unknown; channel: unknown; entitlement: unknown }
|
|
483
483
|
export interface PostStoreModulesKeyAcquiredRequest { version: string }
|
|
484
484
|
export interface PostStoreModulesKeyAcquiredResponse { ok: boolean; entitlement: unknown }
|
|
485
|
+
export interface PostStoreModulesKeyDelistRequest { reason?: string }
|
|
486
|
+
export interface PostStoreModulesKeyDelistResponse { ok: boolean; module_key: unknown; status: unknown; delisted_at: unknown }
|
|
485
487
|
export interface PostStoreModulesKeyVersionsResponse { ok: boolean; created_module: unknown; version: unknown }
|
|
486
488
|
export interface PostStoreModulesKeyVersionsVersionReassessRequest { reason?: string }
|
|
487
489
|
export interface PostStoreModulesKeyVersionsVersionReassessResponse { ok: boolean; queued: boolean; module_key: unknown; version: unknown; version_id: unknown }
|
|
@@ -1570,6 +1572,8 @@ export interface BongosClient {
|
|
|
1570
1572
|
postStoreModulesKeyAcquire(args?: RequestArgs & { body?: PostStoreModulesKeyAcquireRequest }): Promise<PostStoreModulesKeyAcquireResponse>;
|
|
1571
1573
|
/** POST /store/modules/{key}/acquired — rank: any-builder */
|
|
1572
1574
|
postStoreModulesKeyAcquired(args: RequestArgs & { body: PostStoreModulesKeyAcquiredRequest }): Promise<PostStoreModulesKeyAcquiredResponse>;
|
|
1575
|
+
/** POST /store/modules/{key}/delist — rank: metic+archon */
|
|
1576
|
+
postStoreModulesKeyDelist(args?: RequestArgs & { body?: PostStoreModulesKeyDelistRequest }): Promise<PostStoreModulesKeyDelistResponse>;
|
|
1573
1577
|
/** GET /store/modules/{key}/entitlement — rank: any-builder */
|
|
1574
1578
|
getStoreModulesKeyEntitlement(args?: RequestArgs): Promise<ApiResponse>;
|
|
1575
1579
|
/** POST /store/modules/{key}/versions — rank: metic+archon */
|
|
@@ -1099,6 +1099,8 @@ export function createClient(opts = {}) {
|
|
|
1099
1099
|
postStoreModulesKeyAcquire: (args) => request("POST", "/store/modules/{key}/acquire", { hasBody: true }, args),
|
|
1100
1100
|
// POST /store/modules/{key}/acquired — rank: any-builder — POST /store/modules/:key/acquired
|
|
1101
1101
|
postStoreModulesKeyAcquired: (args) => request("POST", "/store/modules/{key}/acquired", { hasBody: true }, args),
|
|
1102
|
+
// POST /store/modules/{key}/delist — rank: metic+archon — POST /store/modules/:key/delist
|
|
1103
|
+
postStoreModulesKeyDelist: (args) => request("POST", "/store/modules/{key}/delist", { hasBody: true }, args),
|
|
1102
1104
|
// GET /store/modules/{key}/entitlement — rank: any-builder — GET /store/modules/:key/entitlement
|
|
1103
1105
|
getStoreModulesKeyEntitlement: (args) => request("GET", "/store/modules/{key}/entitlement", { hasBody: false }, args),
|
|
1104
1106
|
// POST /store/modules/{key}/versions — rank: metic+archon — POST /store/modules/:key/versions
|
|
@@ -87,6 +87,13 @@ store entry is otherwise deleted:
|
|
|
87
87
|
The artifact an instance acquired is already on that instance, so this costs the store nothing
|
|
88
88
|
to honour: it simply never deletes or disables what it has handed over.
|
|
89
89
|
|
|
90
|
+
*Implemented by task 1003797 (2026-10-01):* `POST /store/modules/:key/delist` with a required
|
|
91
|
+
reason, behind the `module.delist` atom (Metic floor). It flips `store_modules.status` and
|
|
92
|
+
nothing else — holders keep their entitlement and their working copy, the module loader never
|
|
93
|
+
asks the store, and a delist writes no score (ADR 0359). The holder is told by `bongos upgrade`,
|
|
94
|
+
`bongos module list` (DELISTED) and the hall's Modules tab ("delisted · no more updates").
|
|
95
|
+
A delist is one-way for now; relisting would be a separate task.
|
|
96
|
+
|
|
90
97
|
The refund path in task 1003789 is the one place an entitlement can end, and it is a separate,
|
|
91
98
|
buyer-initiated act — a delist is not a refund.
|
|
92
99
|
|
package/docs/api/openapi.json
CHANGED
|
@@ -20554,6 +20554,72 @@
|
|
|
20554
20554
|
]
|
|
20555
20555
|
}
|
|
20556
20556
|
},
|
|
20557
|
+
"/store/modules/{key}/delist": {
|
|
20558
|
+
"post": {
|
|
20559
|
+
"operationId": "post_store_modules_key_delist",
|
|
20560
|
+
"tags": [
|
|
20561
|
+
"store"
|
|
20562
|
+
],
|
|
20563
|
+
"summary": "POST /store/modules/:key/delist",
|
|
20564
|
+
"description": "POST /api/bongos/store/modules/:key/delist — a Metic+ person takes a module out of the store (task 1003797, ADR 0338 D2). It leaves the catalog, cannot be newly acquired, takes no new versions and serves no further downloads: every store read already refuses a delisted key, so this flips the one status. What it never does: revoke an entitlement, reach into an instance that already holds the module (that copy keeps working; `bongos upgrade` and the hall tell the holder no more versions will come), or touch a score (ADR 0359). A reason is required; the audit middleware records it with who asked. There is no relist route yet.\n\n**Rank:** `metic+archon` — Metic or Archon rank (review/triage powers).\n\n**Permissions:** `module.delist` (all required).",
|
|
20565
|
+
"x-rank": "metic+archon",
|
|
20566
|
+
"x-source": "src/bongos/routes/modules.js",
|
|
20567
|
+
"x-permissions": [
|
|
20568
|
+
"module.delist"
|
|
20569
|
+
],
|
|
20570
|
+
"parameters": [
|
|
20571
|
+
{
|
|
20572
|
+
"name": "key",
|
|
20573
|
+
"in": "path",
|
|
20574
|
+
"required": true,
|
|
20575
|
+
"schema": {
|
|
20576
|
+
"type": "string"
|
|
20577
|
+
},
|
|
20578
|
+
"description": "Path parameter `key`."
|
|
20579
|
+
}
|
|
20580
|
+
],
|
|
20581
|
+
"requestBody": {
|
|
20582
|
+
"required": false,
|
|
20583
|
+
"content": {
|
|
20584
|
+
"application/json": {
|
|
20585
|
+
"schema": {
|
|
20586
|
+
"$ref": "#/components/schemas/PostStoreModulesKeyDelistRequest"
|
|
20587
|
+
}
|
|
20588
|
+
}
|
|
20589
|
+
},
|
|
20590
|
+
"x-validated": true
|
|
20591
|
+
},
|
|
20592
|
+
"responses": {
|
|
20593
|
+
"200": {
|
|
20594
|
+
"description": "Success.",
|
|
20595
|
+
"content": {
|
|
20596
|
+
"application/json": {
|
|
20597
|
+
"schema": {
|
|
20598
|
+
"$ref": "#/components/schemas/PostStoreModulesKeyDelistResponse"
|
|
20599
|
+
}
|
|
20600
|
+
}
|
|
20601
|
+
}
|
|
20602
|
+
},
|
|
20603
|
+
"400": {
|
|
20604
|
+
"$ref": "#/components/responses/ValidationFailed"
|
|
20605
|
+
},
|
|
20606
|
+
"401": {
|
|
20607
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
20608
|
+
},
|
|
20609
|
+
"403": {
|
|
20610
|
+
"$ref": "#/components/responses/Forbidden"
|
|
20611
|
+
},
|
|
20612
|
+
"404": {
|
|
20613
|
+
"$ref": "#/components/responses/NotFound"
|
|
20614
|
+
}
|
|
20615
|
+
},
|
|
20616
|
+
"security": [
|
|
20617
|
+
{
|
|
20618
|
+
"builderSession": []
|
|
20619
|
+
}
|
|
20620
|
+
]
|
|
20621
|
+
}
|
|
20622
|
+
},
|
|
20557
20623
|
"/store/modules/{key}/entitlement": {
|
|
20558
20624
|
"get": {
|
|
20559
20625
|
"operationId": "get_store_modules_key_entitlement",
|
|
@@ -31003,6 +31069,33 @@
|
|
|
31003
31069
|
"entitlement"
|
|
31004
31070
|
]
|
|
31005
31071
|
},
|
|
31072
|
+
"PostStoreModulesKeyDelistRequest": {
|
|
31073
|
+
"type": "object",
|
|
31074
|
+
"properties": {
|
|
31075
|
+
"reason": {
|
|
31076
|
+
"type": "string",
|
|
31077
|
+
"maxLength": 2000
|
|
31078
|
+
}
|
|
31079
|
+
},
|
|
31080
|
+
"additionalProperties": false
|
|
31081
|
+
},
|
|
31082
|
+
"PostStoreModulesKeyDelistResponse": {
|
|
31083
|
+
"type": "object",
|
|
31084
|
+
"properties": {
|
|
31085
|
+
"ok": {
|
|
31086
|
+
"type": "boolean"
|
|
31087
|
+
},
|
|
31088
|
+
"module_key": {},
|
|
31089
|
+
"status": {},
|
|
31090
|
+
"delisted_at": {}
|
|
31091
|
+
},
|
|
31092
|
+
"required": [
|
|
31093
|
+
"ok",
|
|
31094
|
+
"module_key",
|
|
31095
|
+
"status",
|
|
31096
|
+
"delisted_at"
|
|
31097
|
+
]
|
|
31098
|
+
},
|
|
31006
31099
|
"PostStoreModulesKeyVersionsResponse": {
|
|
31007
31100
|
"type": "object",
|
|
31008
31101
|
"properties": {
|
|
@@ -32077,9 +32170,9 @@
|
|
|
32077
32170
|
"description": "A required dependency/feature is not configured or is temporarily down."
|
|
32078
32171
|
}
|
|
32079
32172
|
},
|
|
32080
|
-
"x-endpoint-count":
|
|
32081
|
-
"x-schema-count":
|
|
32173
|
+
"x-endpoint-count": 502,
|
|
32174
|
+
"x-schema-count": 536,
|
|
32082
32175
|
"x-undocumented-bodies": 12,
|
|
32083
|
-
"x-response-schemas":
|
|
32176
|
+
"x-response-schemas": 356,
|
|
32084
32177
|
"x-generated-by": "scripts/gds/gen-api-docs.js"
|
|
32085
32178
|
}
|
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. 502 endpoints across 92 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`.
|
|
@@ -781,13 +781,14 @@ Base path: `/api/bongos`. Ranks (enforced server-side, [ADR 0016](adr/0016-trust
|
|
|
781
781
|
| GET | `/api/bongos/sso/pubkey` | `public` | — | GET /sso/pubkey — the hub's Ed25519 assertion-verification key (public). |
|
|
782
782
|
| POST | `/api/bongos/sso/token` | `public` | `client_id`, `client_secret`, `code`, `redirect_uri` | POST /sso/token — server-to-server code redemption. |
|
|
783
783
|
|
|
784
|
-
## `store` (
|
|
784
|
+
## `store` (10)
|
|
785
785
|
|
|
786
786
|
| Method | Path | Rank | Body | Description |
|
|
787
787
|
|---|---|---|---|---|
|
|
788
788
|
| GET | `/api/bongos/store/entitlements` | `any-builder` | — | GET /api/bongos/store/entitlements and /store/modules/:key/entitlement — the read side of the entitlement record (task 1003813, ADR 0338 … |
|
|
789
789
|
| POST | `/api/bongos/store/modules/:key/acquire` | `any-builder` | `version` | ---- install: acquire → download → record (task 1003785, ADR 0338 D1) ---- The server end of `bongos module install`. |
|
|
790
790
|
| POST | `/api/bongos/store/modules/:key/acquired` | `any-builder` | `version` | |
|
|
791
|
+
| POST | `/api/bongos/store/modules/:key/delist` | `metic+archon` | `reason` | POST /api/bongos/store/modules/:key/delist — a Metic+ person takes a module out of the store (task 1003797, ADR 0338 D2). |
|
|
791
792
|
| GET | `/api/bongos/store/modules/:key/entitlement` | `any-builder` | — | |
|
|
792
793
|
| POST | `/api/bongos/store/modules/:key/versions` | `metic+archon` | _undocumented_ | POST /api/bongos/store/modules/:key/versions — publish one module version to the store (task 1004271, ADR 0338 D1). |
|
|
793
794
|
| GET | `/api/bongos/store/modules/:key/versions/:version/howto` | `any-builder` | — | GET /api/bongos/store/modules/:key/versions/:version/howto — the how-to a version shipped with (task 1004366, ADR 0347 D1/D3), read from … |
|
package/docs/architecture.md
CHANGED
|
@@ -293,6 +293,7 @@ Bongos views: `claimable_tasks` (rebuilt in 006 to use SELECT t.*; rebuilt again
|
|
|
293
293
|
- Criterion rollup + task↔criterion links ([ADR 0025](adr/0025-structured-criterion-task-link.md), [#435](https://example.com/builders#/task/435)/[#438](https://example.com/builders#/task/438)): `GET /versions/:id/progress` rolls up each done-when criterion → its gating tasks (via `task_criteria`) → live status counts + the not-yet-shipped `remaining[]` + `unattributed_tasks` (the read behind the `/status` skill, in `src/bongos/done-when.js criterionProgress`). The link CRUD mirrors the dependency endpoints: `GET /tasks/:id/criteria`, `POST /tasks/:id/criteria` (**metic+** — [ADR 0090](adr/0090-metic-task-authoring.md)) and `DELETE /tasks/:id/criteria/:criterionId` (**metic+**). A criterion ref is a numeric `done_when_criteria.id`, a positional `"Cn"` token, or a `criterion_id` slug, resolved against the task's version (`POST /tasks` links at create time so `/status` counts the task with no backfill).
|
|
294
294
|
- Module store publish (ADR 0338 D1, task 1004271): `POST /store/modules/:key/versions` (`requireBuilder` + `requirePermission('module.submit')`, Metic floor). The body is the raw gzip tarball `bongos module publish` builds (own `express.raw` parser, 5 MB cap; 16 MB / 2000 files unpacked). `scripts/gds/module-artifact.js` re-verifies every hash and the publish gate, then `src/bongos/module-store.js` keeps the file under `var/module-store/` and inserts the `store_module_versions` row in one transaction. The first publish makes the caller the author; later versions are author-only, newer than the last and never overwritten; a delisted key takes none.
|
|
295
295
|
- Module store install (ADR 0338 D1, task 1003785), all `requireBuilder` and own-scoped (the holder is the caller): `POST /store/modules/:key/acquire` (`{version?}`; grants a free entitlement — no price row, or a zero price, is free — or `402 payment_required` for a priced module; refuses a delisted one), `GET /store/modules/:key/versions/:version/tarball` (served only to a live entitlement holder; `X-Tarball-Sha256`), `POST /store/modules/:key/acquired` (`{version}` → `recordAcquired`). Read side in `src/bongos/module-store.js` (`resolveAcquirable`, `isFreePrice`, `versionArtifactFile`). No channel check yet (tasks 1003815, 1003805). `bongos module update` (task 1003786) reuses the same three calls; the acquire route reads price only for a caller with no entitlement, so a holder is never charged again.
|
|
296
|
+
- Module store delist (ADR 0338 D2, task 1003797): `POST /store/modules/:key/delist` (`requireBuilder` + `requirePermission('module.delist')`, Metic floor, granted by `government_022`; strict body `{reason}`, reason required, recorded by the audit middleware). Sets `store_modules.status='delisted'` and `delisted_at` — one-way, no relist route. Every store read already refuses a delisted key (acquire, tarball, acquired, publish), while `GET /store/modules/latest` still answers with the status so `bongos upgrade` warns the holder. `GET /modules` sets `store_delisted` on an instance-tree module the store delisted (hall pill "delisted · no more updates"), and `bongos module list` marks it DELISTED (fail-soft store check, instance modules only). Never revokes an entitlement, never reaches an installed copy, never writes a score (ADR 0359). 404 unknown key, 409 `already_delisted`.
|
|
296
297
|
- Server-mediated branch publish (ADR 0055 / [#1025](https://example.com/builders#/task/1025) — lets a checkout with no GitHub push credential ship). Owner-gated like ship: `POST /tasks/:id/publish-branch` (`requireBuilder` + `gateTaskOwnership`; own 32 MB json parser for the base64 thin-bundle body, 20 MB decoded cap; the server pushes the branch + opens the PR + auto-merges with a server-side push credential — a **GitHub App** installation token (short-lived, repo-scoped; preferred, [ADR 0055](adr/0055-server-mediated-branch-publish.md) update / task 1028) or the `GITHUB_PUSH_TOKEN` PAT fallback; `503 push_unconfigured` when neither is set; `400 tip_mismatch` if the bundle tip ≠ the claimed `head_sha`) and `GET /tasks/:id/publish-status?branch=…` (polls PR + deploy-prod state derived live from GitHub). `branch` is optional: without it the server finds the task's own PR by its `task <id>: …` title, and the answer names the `branch` it used and its `branch_source` (`query` / `task_pr`, or `null` with a `branch_hint` when there is no such PR) — never a `400` (task 1003764). When the PR is still open it also carries `merge_driver`, whose `reason` says why it has not merged; on a red PR `failing_tests` names the failing unit tests (read from the `unit-report` commit status the `unit` workflow posts) and `checks_unreadable: true` says the check list is blind because the App lacks `Checks: read` — so an empty `checks[]` is never read as "nothing failed" (task 1003988, ADR 0301). Because the server's credential is the PR's AUTHOR, publish also **assigns the PR to the task's claim holder** and names them in the body (`modules/lifecycle/pr-assign.js`, task 1003991) — best-effort: the 201 carries `pr_assignee` (the login, or `null` when GitHub would not assign it) and a failed assignment never fails the publish. `ship.js` uses these in `ci` mode only when `pushVia()` resolves to server (no authenticated `gh` on the machine, or `<PREFIX>_PUSH_VIA_SERVER=1`); a machine with `gh` keeps the local push path unchanged. Implementation in `src/bongos/github-push.js`.
|
|
297
298
|
- Archon monitoring reads backing the `/watch` page (ADR 0036): `GET /builders/roster`, `GET /grades/by-builder[?days=N]` (**archon-only**, [#726](https://example.com/builders#/task/726) — per-builder grade breakdown for the MARKS section; the project-wide aggregate stays public at `/public/grades`), `GET /audit-log`, `GET /override-requests`, `GET /access-requests`, `GET /security/reports`. Personal-prefs writes backing `/settings`: `GET/PATCH /me/skill-prefs`, `PATCH /me/disciplines`.
|
|
298
299
|
- Per-builder "needs" + own Gemini key ([ADR 0073](adr/0073-builder-needs-signal-and-byok-gemini-key.md), [#1013](https://example.com/builders#/task/1013)): `GET /me` now also carries `needs` ({items, action_needed_count} — the consistent "the system needs an input from you" signal; `modules/builder-settings/builder-needs.js` is the SSOT — carved out in BV1.R80, resolved by `GET /me` via the `builder-settings` kernel port — rendered by the hall Standing card + the CLI `printNeedsNudge`). The own-key (pragmatic BYOK) endpoints, all own-scoped: `GET /me/art-key/own` (masked meta — last4 only), `PUT /me/art-key/own` (validate-on-save via a Google list-models call → encrypt with `src/bongos/secret-box.js` → store; `503 storage_not_configured` until `BUILDER_SECRET_KEY` is set, `422 invalid_key` on a bad key), `DELETE /me/art-key/own`. The existing `GET /me/art-key` (shared-key delivery) is extended to also deliver the decrypted own key, which `scripts/gds/fetch-art-key.js` syncs into the local `gemini_api_key` slot (own key wins in the `gen_api.py` cascade).
|