@bongos/core 1.23.4 → 1.23.5

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 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.4",
6
- "core_contract": "1.23.4",
7
- "source_commit": "b78c52677b921b7b2a6f25834c77b7d516810aa9",
5
+ "core_version": "1.23.5",
6
+ "core_contract": "1.23.5",
7
+ "source_commit": "ef90f2c64f5ccf45c2234df0071be94480b00ce3",
8
8
  "source_ref": "HEAD",
9
- "built_at": "2026-10-26T21:43:52.539Z",
9
+ "built_at": "2026-10-26T23:08:05.615Z",
10
10
  "redaction": {
11
11
  "model": "docs-redacted+functional-verbatim",
12
12
  "docs_redacted": 616,
13
13
  "agent_docs_stubbed": 29,
14
- "functional_verbatim": 3552,
14
+ "functional_verbatim": 3554,
15
15
  "rules": 3,
16
16
  "gate_literals": 3,
17
17
  "gate": "passed"
18
18
  },
19
- "file_count": 4198,
20
- "tree_sha256": "e5ed2ca130fbbb98e21c941d9c51e72760f74f72e2d48d6d91a4e789bdd6ce10",
19
+ "file_count": 4200,
20
+ "tree_sha256": "99ecba7bea108a791c4ce0f59605662920c26580844031a96841acdc4855cda4",
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": "8537c645efe282dc1ee9a620b555ac6bbd8919eaf8747c1be84df7c99007a48a"
320
+ "sha256": "869af14d8b121b4738dc05522c0c659b363b08f2e55b595e096063958562917c"
321
321
  },
322
322
  {
323
323
  "path": "clients/bongos-client/bongos-client.global.js",
324
324
  "mode": "0000644",
325
- "sha256": "8554475255239e0e2a5c84f1287c09e93d54c4dab513248c13f243f5d21fda1d"
325
+ "sha256": "66be8c0256cbc1e0dceedbe68b609b76b47caacbae1d709fb94afc7867a20753"
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": "34b88b9a4038b95a62f4528a83aa5bfe25f504ab545417c8edeea2a2afbfef69"
335
+ "sha256": "6fd5c25f0950eac9e1bdb0d8798dccc5718ef1d3cc1082607121b2d26ac97b90"
336
336
  },
337
337
  {
338
338
  "path": "clients/bongos-client/index.d.ts",
339
339
  "mode": "0000644",
340
- "sha256": "a30cb8c16c64fd7b3eba677268411c31b0c98df4a207d5a60745bca5235d8c15"
340
+ "sha256": "fb18d3d0dfa564c7fdaa7cc1d0e18c16d835665e37fb00a7ce0bb56e73c2fe1d"
341
341
  },
342
342
  {
343
343
  "path": "clients/bongos-client/index.mjs",
344
344
  "mode": "0000644",
345
- "sha256": "29badc2ef299498e66224b7ee031be479d10cfcacd8a752c3e06eb05f1d1e64e"
345
+ "sha256": "1a549fe8b3fb3f3377ae771c8d5b185d6db052063d655aa428e6457676e616f9"
346
346
  },
347
347
  {
348
348
  "path": "clients/bongos-client/package.json",
@@ -2392,12 +2392,12 @@
2392
2392
  {
2393
2393
  "path": "docs/api-reference.md",
2394
2394
  "mode": "0000644",
2395
- "sha256": "fbad9b37dd44c344ef532638550d666cf94de9813c0df8d4f2e004e0b7f62582"
2395
+ "sha256": "1fdb6d8a5788e30d6277c2b4ad8226688b06202892ddb22685987b1bd795609a"
2396
2396
  },
2397
2397
  {
2398
2398
  "path": "docs/api/openapi.json",
2399
2399
  "mode": "0000644",
2400
- "sha256": "10545c86dc834e1c0654ff6da45caecded2e547a00818b221e16c9e60c16b8b5"
2400
+ "sha256": "2939822457141134ad9b645095278bfd5026b35b42e49d1bd80791031022922c"
2401
2401
  },
2402
2402
  {
2403
2403
  "path": "docs/architecture.md",
@@ -2422,12 +2422,12 @@
2422
2422
  {
2423
2423
  "path": "docs/copy-inventory.md",
2424
2424
  "mode": "0000644",
2425
- "sha256": "fe7ddc06964ea4f6bf4515778376b3e02f19fff1047d2b3869cb25e8e03667f3"
2425
+ "sha256": "698489ed0ecdf125ef705bbcb953830453c22ae8632edb437d8f3ddd685d3561"
2426
2426
  },
2427
2427
  {
2428
2428
  "path": "docs/copy-registry.json",
2429
2429
  "mode": "0000644",
2430
- "sha256": "3bee89d2827b7e92f805aad5d6d296319c82700a4470024122797debb765c99a"
2430
+ "sha256": "aea042d0a416623e897295c7b959d0eeed8c4d2759d859e35e4715d5c18eb936"
2431
2431
  },
2432
2432
  {
2433
2433
  "path": "docs/design/apex-pass-2-direction.md",
@@ -2937,12 +2937,12 @@
2937
2937
  {
2938
2938
  "path": "docs/module-api-changelog.md",
2939
2939
  "mode": "0000644",
2940
- "sha256": "3907ee1e7036c99afa1790df344933c6652b4d9ffe972715551ad9bdb2bb12d9"
2940
+ "sha256": "0ca024400f00e16a1e03ffca04d90242e414de5f70e10c7466cd0eee842deebc"
2941
2941
  },
2942
2942
  {
2943
2943
  "path": "docs/modules-contract.md",
2944
2944
  "mode": "0000644",
2945
- "sha256": "ed7ab0d4799a935bb296457ebdba667c38dcfea5ebaec72e61968cd3ad91a6eb"
2945
+ "sha256": "4b622fadde0eb87d5b9b9b5117d2f895f443e036e164d208383e83ed0c17dab7"
2946
2946
  },
2947
2947
  {
2948
2948
  "path": "docs/onboarding/diagrams/01-task-lifecycle.mmd",
@@ -3027,7 +3027,7 @@
3027
3027
  {
3028
3028
  "path": "docs/page-readings.json",
3029
3029
  "mode": "0000644",
3030
- "sha256": "a7675f3e800076b5122d404884bb217f95120082d3720748b94422d8ece8d6d7"
3030
+ "sha256": "3fa8c79139ee97fb0bc2b7ab3ce5d194984797f294ba9cedb78e322e95d6fa8d"
3031
3031
  },
3032
3032
  {
3033
3033
  "path": "docs/project-context.template.md",
@@ -4194,6 +4194,11 @@
4194
4194
  "mode": "0000644",
4195
4195
  "sha256": "b795f6a5596ebd12a0fbcf8d98f40b24e12fb819ec5abe5d42ca592147db32bc"
4196
4196
  },
4197
+ {
4198
+ "path": "migrations/core_281_module_version_withdraw_note.sql",
4199
+ "mode": "0000644",
4200
+ "sha256": "ff4a3f2e7ba50bc891cfcfa146325f28731086ce4aeab4b1011dc0412f002c68"
4201
+ },
4197
4202
  {
4198
4203
  "path": "modules/agents/CLAUDE.md",
4199
4204
  "mode": "0000644",
@@ -5092,7 +5097,7 @@
5092
5097
  {
5093
5098
  "path": "modules/government/catalog.js",
5094
5099
  "mode": "0000644",
5095
- "sha256": "9a3d3fee34144d44b5af811fc8e81e7bec74559eae538cf1e6015a2d54321df3"
5100
+ "sha256": "fb54482dcb0771a3eb378fa27afb250c9f8f1f659862af05615c90d95b50d6d7"
5096
5101
  },
5097
5102
  {
5098
5103
  "path": "modules/government/charter.js",
@@ -6267,7 +6272,7 @@
6267
6272
  {
6268
6273
  "path": "modules/hall-ui/public/modules.js",
6269
6274
  "mode": "0000644",
6270
- "sha256": "6ca8722bbf65ad5aa275f8d26b6df5bff5ff25a5916df54139a365bf5b596d14"
6275
+ "sha256": "33841de9baea493a540f1b8361d8cb08c71ce599cb8da963930fc3d1d7ba5c13"
6271
6276
  },
6272
6277
  {
6273
6278
  "path": "modules/hall-ui/public/modules.states.json",
@@ -10832,12 +10837,12 @@
10832
10837
  {
10833
10838
  "path": "package-lock.json",
10834
10839
  "mode": "0000644",
10835
- "sha256": "793a3d85e023eafb3f0eb63e7a1c1b10f07a66e331adfb63d06a05921ad2f451"
10840
+ "sha256": "bdab863c7dbf290520a865fb25ca6bbb853a2b6581dc4e5f864188e5489abc0a"
10836
10841
  },
10837
10842
  {
10838
10843
  "path": "package.json",
10839
10844
  "mode": "0000644",
10840
- "sha256": "db95c78d828b9fd2117b5a7b4e12d741fb21856022a6830b6cd286017a065f6f"
10845
+ "sha256": "aad2cfe7215eeae48f25d3e5ff2b2ff75521951b796eefe1c0559e826df1e9d9"
10841
10846
  },
10842
10847
  {
10843
10848
  "path": "public-docs/index.html",
@@ -10857,7 +10862,7 @@
10857
10862
  {
10858
10863
  "path": "release-notes.json",
10859
10864
  "mode": "0000644",
10860
- "sha256": "a491785c22b68e414bdf9668ca809f671a8927d06560aabfbc04ce3d56dfc131"
10865
+ "sha256": "39dc035c346baea1e6712cf27eb0697dd387ec1644655740a0367b423ea7325f"
10861
10866
  },
10862
10867
  {
10863
10868
  "path": "scripts/bongos/CLAUDE.md",
@@ -11747,7 +11752,7 @@
11747
11752
  {
11748
11753
  "path": "scripts/bongos/module.js",
11749
11754
  "mode": "0000644",
11750
- "sha256": "6fc19f18daa947837ee09d9d06010380144022ee6f637f3fd444f56cf558bfab"
11755
+ "sha256": "cd383da37a1210e8581b04e9feda566c3958945a488b7187ba151fcc08566e97"
11751
11756
  },
11752
11757
  {
11753
11758
  "path": "scripts/bongos/move-escalation.js",
@@ -14452,7 +14457,7 @@
14452
14457
  {
14453
14458
  "path": "src/bongos/module-store.js",
14454
14459
  "mode": "0000644",
14455
- "sha256": "1f7fc7251a2b77c80da33b471fcb5ff180bbbd969407a0c636e9085b654dc525"
14460
+ "sha256": "a0a1eee5faf70e37a2ea9a5a20c1f12964bf6c1b08f4213925a3f66254cd7985"
14456
14461
  },
14457
14462
  {
14458
14463
  "path": "src/bongos/module-subcategories.js",
@@ -14537,7 +14542,7 @@
14537
14542
  {
14538
14543
  "path": "src/bongos/route-rank-check.js",
14539
14544
  "mode": "0000644",
14540
- "sha256": "249ff48a954c7e904d705e636766b92924203dae3a6c08f688cbc68d0734dcb4"
14545
+ "sha256": "05ea4b0fd219d2e03969a26c100556b18567c9b331c8c0fb69befacd46714e0d"
14541
14546
  },
14542
14547
  {
14543
14548
  "path": "src/bongos/routes.js",
@@ -14622,7 +14627,7 @@
14622
14627
  {
14623
14628
  "path": "src/bongos/routes/modules.js",
14624
14629
  "mode": "0000644",
14625
- "sha256": "4a210c0d6fe7e5f29612c4b7616ed34c1805f69c7618062ebcc50d0586a320dc"
14630
+ "sha256": "32d325edb4dc0720d608051974045d5cec8fe70e82856c7f77797315ba3b1e09"
14626
14631
  },
14627
14632
  {
14628
14633
  "path": "src/bongos/routes/my-passkeys.js",
@@ -14712,7 +14717,7 @@
14712
14717
  {
14713
14718
  "path": "src/module-api.js",
14714
14719
  "mode": "0000644",
14715
- "sha256": "e9850d0157caab4215194a5e69e04420b0d9e3b97a8d1867f8f84e9087b88930"
14720
+ "sha256": "67513cbbff215d18612fd9c8102f4163311c21b526daa4627343e269b5e9c111"
14716
14721
  },
14717
14722
  {
14718
14723
  "path": "src/module-loader/catalog.js",
@@ -17252,7 +17257,7 @@
17252
17257
  {
17253
17258
  "path": "tests/hall_catalog_world.mjs",
17254
17259
  "mode": "0000644",
17255
- "sha256": "843039f4e14492045c94c9ce803d22208d0e68d607330da6391e56d75d4c8186"
17260
+ "sha256": "201c7755757f250932472bec09cb36a1c036ac5762fe9f91db7554d8c4268df1"
17256
17261
  },
17257
17262
  {
17258
17263
  "path": "tests/hall_city.mjs",
@@ -18534,6 +18539,11 @@
18534
18539
  "mode": "0000644",
18535
18540
  "sha256": "ad29d45c767e14f0dcef7ccd44107545fa3ab54182ad8b0cf7b51bf00243eac5"
18536
18541
  },
18542
+ {
18543
+ "path": "tests/module_store_withdraw.mjs",
18544
+ "mode": "0000644",
18545
+ "sha256": "a1fdcee205b8b8686d915d34ccd0a26debdb5673d957eade23e56bf7686ae638"
18546
+ },
18537
18547
  {
18538
18548
  "path": "tests/module_submissions.mjs",
18539
18549
  "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
- - 582 operations across 76 resource groups
8
+ - 583 operations across 76 resource groups
9
9
 
10
10
  ## Use it from your project
11
11
 
@@ -1267,6 +1267,8 @@ function createClient(opts = {}) {
1267
1267
  postStoreModulesKeyVersionsVersionRelease: (args) => request("POST", "/store/modules/{key}/versions/{version}/release", { hasBody: true }, args),
1268
1268
  // GET /store/modules/{key}/versions/{version}/tarball — rank: any-builder — GET /store/modules/:key/versions/:version/tarball
1269
1269
  getStoreModulesKeyVersionsVersionTarball: (args) => request("GET", "/store/modules/{key}/versions/{version}/tarball", { hasBody: false }, args),
1270
+ // POST /store/modules/{key}/versions/{version}/withdraw — rank: metic+archon — POST /store/modules/:key/versions/:version/withdraw
1271
+ postStoreModulesKeyVersionsVersionWithdraw: (args) => request("POST", "/store/modules/{key}/versions/{version}/withdraw", { hasBody: true }, args),
1270
1272
  // GET /store/modules/latest — rank: any-builder — GET /store/modules/latest
1271
1273
  getStoreModulesLatest: (args) => request("GET", "/store/modules/latest", { hasBody: false }, args),
1272
1274
  // GET /store/subcategories — rank: any-builder — GET /store/subcategories
@@ -1266,6 +1266,8 @@ function createClient(opts = {}) {
1266
1266
  postStoreModulesKeyVersionsVersionRelease: (args) => request("POST", "/store/modules/{key}/versions/{version}/release", { hasBody: true }, args),
1267
1267
  // GET /store/modules/{key}/versions/{version}/tarball — rank: any-builder — GET /store/modules/:key/versions/:version/tarball
1268
1268
  getStoreModulesKeyVersionsVersionTarball: (args) => request("GET", "/store/modules/{key}/versions/{version}/tarball", { hasBody: false }, args),
1269
+ // POST /store/modules/{key}/versions/{version}/withdraw — rank: metic+archon — POST /store/modules/:key/versions/:version/withdraw
1270
+ postStoreModulesKeyVersionsVersionWithdraw: (args) => request("POST", "/store/modules/{key}/versions/{version}/withdraw", { hasBody: true }, args),
1269
1271
  // GET /store/modules/latest — rank: any-builder — GET /store/modules/latest
1270
1272
  getStoreModulesLatest: (args) => request("GET", "/store/modules/latest", { hasBody: false }, args),
1271
1273
  // GET /store/subcategories — rank: any-builder — GET /store/subcategories
@@ -184,7 +184,7 @@ export interface GetSpecialitiesResponse { specialities: unknown }
184
184
  export interface GetSsoPubkeyResponse { alg: unknown; format: unknown; public_key_b64: unknown }
185
185
  export interface GetStoreEntitlementsResponse { entitlements: unknown }
186
186
  export interface GetStoreModulesKeyVersionsVersionHowtoResponse { module_key: unknown; title: unknown; version: unknown; published_at: unknown; delisted: unknown; markdown: unknown; artifact_url: unknown }
187
- export interface GetStoreModulesLatestResponse { latest: unknown }
187
+ export interface GetStoreModulesLatestResponse { latest: unknown; withdrawn: unknown }
188
188
  export interface GetStoreUsageReportingResponse { enabled: unknown }
189
189
  export interface GetTaskRecommendationsForMeResponse { recommendations: unknown; count: unknown }
190
190
  export interface GetTaskRecommendationsMineResponse { recommendations: unknown; count: unknown }
@@ -569,6 +569,8 @@ export interface PostStoreModulesKeyVersionsVersionReassessRequest { reason?: st
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 PostStoreModulesKeyVersionsVersionWithdrawRequest { reason?: string }
573
+ export interface PostStoreModulesKeyVersionsVersionWithdrawResponse { ok: boolean; module_key: unknown; version: unknown; channel: unknown; reason: unknown }
572
574
  export interface PostStoreSubcategoriesIdApproveRequest { label?: string; sub_key?: string }
573
575
  export interface PostStoreSubcategoriesIdMergeRequest { into?: unknown }
574
576
  export interface PostStoreUsageReportingRequest { enabled: boolean }
@@ -1824,6 +1826,8 @@ export interface BongosClient {
1824
1826
  postStoreModulesKeyVersionsVersionRelease(args?: RequestArgs & { body?: PostStoreModulesKeyVersionsVersionReleaseRequest }): Promise<PostStoreModulesKeyVersionsVersionReleaseResponse>;
1825
1827
  /** GET /store/modules/{key}/versions/{version}/tarball — rank: any-builder */
1826
1828
  getStoreModulesKeyVersionsVersionTarball(args?: RequestArgs): Promise<ApiResponse>;
1829
+ /** POST /store/modules/{key}/versions/{version}/withdraw — rank: metic+archon */
1830
+ postStoreModulesKeyVersionsVersionWithdraw(args?: RequestArgs & { body?: PostStoreModulesKeyVersionsVersionWithdrawRequest }): Promise<PostStoreModulesKeyVersionsVersionWithdrawResponse>;
1827
1831
  /** GET /store/modules/latest — rank: any-builder */
1828
1832
  getStoreModulesLatest(args?: RequestArgs): Promise<GetStoreModulesLatestResponse>;
1829
1833
  /** GET /store/subcategories — rank: any-builder */
@@ -1263,6 +1263,8 @@ export function createClient(opts = {}) {
1263
1263
  postStoreModulesKeyVersionsVersionRelease: (args) => request("POST", "/store/modules/{key}/versions/{version}/release", { hasBody: true }, args),
1264
1264
  // GET /store/modules/{key}/versions/{version}/tarball — rank: any-builder — GET /store/modules/:key/versions/:version/tarball
1265
1265
  getStoreModulesKeyVersionsVersionTarball: (args) => request("GET", "/store/modules/{key}/versions/{version}/tarball", { hasBody: false }, args),
1266
+ // POST /store/modules/{key}/versions/{version}/withdraw — rank: metic+archon — POST /store/modules/:key/versions/:version/withdraw
1267
+ postStoreModulesKeyVersionsVersionWithdraw: (args) => request("POST", "/store/modules/{key}/versions/{version}/withdraw", { hasBody: true }, args),
1266
1268
  // GET /store/modules/latest — rank: any-builder — GET /store/modules/latest
1267
1269
  getStoreModulesLatest: (args) => request("GET", "/store/modules/latest", { hasBody: false }, args),
1268
1270
  // GET /store/subcategories — rank: any-builder — GET /store/subcategories
@@ -24344,6 +24344,81 @@
24344
24344
  ]
24345
24345
  }
24346
24346
  },
24347
+ "/store/modules/{key}/versions/{version}/withdraw": {
24348
+ "post": {
24349
+ "operationId": "post_store_modules_key_versions_version_withdraw",
24350
+ "tags": [
24351
+ "store"
24352
+ ],
24353
+ "summary": "POST /store/modules/:key/versions/:version/withdraw",
24354
+ "description": "POST /api/bongos/store/modules/:key/versions/:version/withdraw — a Metic+ person takes one version back (task 1004895, criterion wa5-staged-rollout). The store stops handing it out: acquire, install, update and the update check skip it, and the newest version still served is offered instead. A project that already runs it keeps it, and `bongos upgrade` and the hall's Modules tab tell it the version was withdrawn, with the reason. Withdrawing the only served version is allowed; acquire then says nothing can be handed out. A reason is required: it is kept on the channel row (core_281) and shown to holders, and the audit middleware also records it with who asked. The permission is module.delist, the one that already guards delist and release.\n\n**Rank:** `metic+archon` — Metic or Archon rank (review/triage powers).\n\n**Permissions:** `module.delist` (all required).",
24355
+ "x-rank": "metic+archon",
24356
+ "x-source": "src/bongos/routes/modules.js",
24357
+ "x-permissions": [
24358
+ "module.delist"
24359
+ ],
24360
+ "parameters": [
24361
+ {
24362
+ "name": "key",
24363
+ "in": "path",
24364
+ "required": true,
24365
+ "schema": {
24366
+ "type": "string"
24367
+ },
24368
+ "description": "Path parameter `key`."
24369
+ },
24370
+ {
24371
+ "name": "version",
24372
+ "in": "path",
24373
+ "required": true,
24374
+ "schema": {
24375
+ "type": "string"
24376
+ },
24377
+ "description": "Path parameter `version`."
24378
+ }
24379
+ ],
24380
+ "requestBody": {
24381
+ "required": false,
24382
+ "content": {
24383
+ "application/json": {
24384
+ "schema": {
24385
+ "$ref": "#/components/schemas/PostStoreModulesKeyVersionsVersionWithdrawRequest"
24386
+ }
24387
+ }
24388
+ },
24389
+ "x-validated": true
24390
+ },
24391
+ "responses": {
24392
+ "200": {
24393
+ "description": "Success.",
24394
+ "content": {
24395
+ "application/json": {
24396
+ "schema": {
24397
+ "$ref": "#/components/schemas/PostStoreModulesKeyVersionsVersionWithdrawResponse"
24398
+ }
24399
+ }
24400
+ }
24401
+ },
24402
+ "400": {
24403
+ "$ref": "#/components/responses/ValidationFailed"
24404
+ },
24405
+ "401": {
24406
+ "$ref": "#/components/responses/Unauthorized"
24407
+ },
24408
+ "403": {
24409
+ "$ref": "#/components/responses/Forbidden"
24410
+ },
24411
+ "404": {
24412
+ "$ref": "#/components/responses/NotFound"
24413
+ }
24414
+ },
24415
+ "security": [
24416
+ {
24417
+ "builderSession": []
24418
+ }
24419
+ ]
24420
+ }
24421
+ },
24347
24422
  "/store/subcategories": {
24348
24423
  "get": {
24349
24424
  "operationId": "get_store_subcategories",
@@ -29679,10 +29754,12 @@
29679
29754
  "GetStoreModulesLatestResponse": {
29680
29755
  "type": "object",
29681
29756
  "properties": {
29682
- "latest": {}
29757
+ "latest": {},
29758
+ "withdrawn": {}
29683
29759
  },
29684
29760
  "required": [
29685
- "latest"
29761
+ "latest",
29762
+ "withdrawn"
29686
29763
  ]
29687
29764
  },
29688
29765
  "GetStoreUsageReportingResponse": {
@@ -36090,6 +36167,35 @@
36090
36167
  "reason"
36091
36168
  ]
36092
36169
  },
36170
+ "PostStoreModulesKeyVersionsVersionWithdrawRequest": {
36171
+ "type": "object",
36172
+ "properties": {
36173
+ "reason": {
36174
+ "type": "string",
36175
+ "maxLength": 2000
36176
+ }
36177
+ },
36178
+ "additionalProperties": false
36179
+ },
36180
+ "PostStoreModulesKeyVersionsVersionWithdrawResponse": {
36181
+ "type": "object",
36182
+ "properties": {
36183
+ "ok": {
36184
+ "type": "boolean"
36185
+ },
36186
+ "module_key": {},
36187
+ "version": {},
36188
+ "channel": {},
36189
+ "reason": {}
36190
+ },
36191
+ "required": [
36192
+ "ok",
36193
+ "module_key",
36194
+ "version",
36195
+ "channel",
36196
+ "reason"
36197
+ ]
36198
+ },
36093
36199
  "PostStoreSubcategoriesIdApproveRequest": {
36094
36200
  "type": "object",
36095
36201
  "properties": {
@@ -37186,9 +37292,9 @@
37186
37292
  "description": "A required dependency/feature is not configured or is temporarily down."
37187
37293
  }
37188
37294
  },
37189
- "x-endpoint-count": 582,
37190
- "x-schema-count": 624,
37295
+ "x-endpoint-count": 583,
37296
+ "x-schema-count": 626,
37191
37297
  "x-undocumented-bodies": 12,
37192
- "x-response-schemas": 404,
37298
+ "x-response-schemas": 405,
37193
37299
  "x-generated-by": "scripts/bongos/gen-api-docs.js"
37194
37300
  }
@@ -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. 582 endpoints across 98 route files.
5
+ > **Generated from the live route files** — the route file is authoritative. 583 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` (22)
866
+ ## `store` (23)
867
867
 
868
868
  | Method | Path | Rank | Body | Description |
869
869
  |---|---|---|---|---|
@@ -882,6 +882,7 @@ Base path: `/api/bongos`. Ranks (enforced server-side, [ADR 0016](adr/0016-trust
882
882
  | POST | `/api/bongos/store/modules/:key/versions/:version/reassess` | `metic+archon` | `reason` | POST /api/bongos/store/modules/:key/versions/:version/reassess — a Metic+ person asks for a published version's assessment to run again: … |
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
+ | POST | `/api/bongos/store/modules/:key/versions/:version/withdraw` | `metic+archon` | `reason` | POST /api/bongos/store/modules/:key/versions/:version/withdraw — a Metic+ person takes one version back (task 1004895, criterion wa5-stag… |
885
886
  | 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
887
  | 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
888
  | 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. |