@bongos/core 1.21.74 → 1.21.76

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.
Files changed (48) hide show
  1. package/.bongos-core.json +78 -48
  2. package/clients/bongos-client/README.md +1 -1
  3. package/clients/bongos-client/bongos-client.global.js +4 -0
  4. package/clients/bongos-client/index.cjs +4 -0
  5. package/clients/bongos-client/index.d.ts +5 -0
  6. package/clients/bongos-client/index.mjs +4 -0
  7. package/docs/adr/0343-a-module-score-is-a-security-gate-then-an-average-of-visible-parts.md +12 -0
  8. package/docs/api/openapi.json +81 -3
  9. package/docs/api-reference.md +5 -3
  10. package/docs/copy-inventory.md +45 -42
  11. package/docs/copy-registry.json +76 -49
  12. package/docs/module-api-changelog.md +4 -0
  13. package/docs/modules-contract.md +1 -0
  14. package/docs/page-inventory.json +16 -8
  15. package/docs/page-readings.json +1542 -1522
  16. package/modules/hall-ui/public/craft-mode.js +3 -1
  17. package/modules/hall-ui/public/page-notes.css +150 -0
  18. package/modules/hall-ui/public/page-notes.js +30 -5
  19. package/modules/hall-ui/public/studio.css +15 -0
  20. package/modules/hall-ui/public/studio.html +6 -0
  21. package/modules/hall-ui/public/studio.js +38 -4
  22. package/modules/hall-ui/public/style.css +1 -116
  23. package/modules/page-notes/db.js +19 -0
  24. package/modules/page-notes/migrations/page_notes_002_surface_index.sql +12 -0
  25. package/modules/page-notes/notes.js +25 -2
  26. package/modules/page-notes/routes/page-notes.js +9 -0
  27. package/modules/public-landing/public/account.html +2 -0
  28. package/modules/public-landing/public/assets/artist-review.js +107 -0
  29. package/modules/public-landing/public/contact.html +2 -0
  30. package/modules/public-landing/public/guild.html +2 -0
  31. package/modules/public-landing/public/index.html +2 -0
  32. package/modules/public-landing/public/invitations.html +2 -0
  33. package/modules/public-landing/public/privacy.html +2 -0
  34. package/modules/public-landing/public/projects.html +2 -0
  35. package/modules/public-landing/public/terms.html +2 -0
  36. package/modules/ui-design/kit/serve.js +32 -0
  37. package/package-lock.json +2 -2
  38. package/package.json +1 -1
  39. package/release-notes.json +12 -0
  40. package/src/bongos/module-listing.js +85 -0
  41. package/src/bongos/routes/modules.js +15 -0
  42. package/src/module-api.js +1 -1
  43. package/tests/artist_review.mjs +231 -0
  44. package/tests/hall_studio_home.mjs +39 -1
  45. package/tests/landing_legal_pages.mjs +2 -1
  46. package/tests/module_store_listing.mjs +156 -0
  47. package/tests/page_notes_db.mjs +28 -1
  48. package/tests/page_notes_panel.mjs +9 -3
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.74",
6
- "core_contract": "1.21.74",
7
- "source_commit": "e1a614cc89edf2e1f13bf098fe70e5d6909887f9",
5
+ "core_version": "1.21.76",
6
+ "core_contract": "1.21.76",
7
+ "source_commit": "9c4b1108bd7a24860a6930f12aca420b7ee9b0be",
8
8
  "source_ref": "HEAD",
9
- "built_at": "2026-10-08T17:20:42.399Z",
9
+ "built_at": "2026-10-08T18:10:15.254Z",
10
10
  "redaction": {
11
11
  "model": "docs-redacted+functional-verbatim",
12
12
  "docs_redacted": 589,
13
13
  "agent_docs_stubbed": 28,
14
- "functional_verbatim": 2980,
14
+ "functional_verbatim": 2986,
15
15
  "rules": 3,
16
16
  "gate_literals": 3,
17
17
  "gate": "passed"
18
18
  },
19
- "file_count": 3598,
20
- "tree_sha256": "a36fc59cee5bf88f0f473a9967f3a2a30e9ab3d59e59ef3d5b91df49789fc855",
19
+ "file_count": 3604,
20
+ "tree_sha256": "45682ea4dfeffad41faf22225f3a80e13b3c1c61ffea341e4c0d7751aafb5cf1",
21
21
  "files": [
22
22
  {
23
23
  "path": ".claude/skills/ask-for-help/SKILL.md",
@@ -312,12 +312,12 @@
312
312
  {
313
313
  "path": "clients/bongos-client/README.md",
314
314
  "mode": "0000644",
315
- "sha256": "92ec02892192cb3ec336b8feb68516981334c6c5e9951d6983855296b6d79dfc"
315
+ "sha256": "6c9fc5a5e89e3b196679ef4a9e96e33e79b3a384ee90ca8330aac23c76c6877f"
316
316
  },
317
317
  {
318
318
  "path": "clients/bongos-client/bongos-client.global.js",
319
319
  "mode": "0000644",
320
- "sha256": "16b666c57928d55b8c5b8b96f90e77e3d1702ea2b601d43a118853ae7d6f5f10"
320
+ "sha256": "7136899ccb015ba71580b5d53374fdb0016110a7c12dc2a6e22b8e0f92c71799"
321
321
  },
322
322
  {
323
323
  "path": "clients/bongos-client/examples/hello-world.mjs",
@@ -327,17 +327,17 @@
327
327
  {
328
328
  "path": "clients/bongos-client/index.cjs",
329
329
  "mode": "0000644",
330
- "sha256": "cac495a3acbe96e8036f79dd772cce00372bac4c3a162c7a050d572cabccb464"
330
+ "sha256": "c8ae05e328390f5673c04ac650e55ff4ae6f00384d46921765bb15337454c281"
331
331
  },
332
332
  {
333
333
  "path": "clients/bongos-client/index.d.ts",
334
334
  "mode": "0000644",
335
- "sha256": "4ecbd807e9ddbd35f4c076b6daa559fa4a6eeaab80e3f03065d61e4ca139f6dd"
335
+ "sha256": "70ff8de140a220d9ad31ad9b70f0c3e2f257b2eaded5b1ffdc6382c89e2f165d"
336
336
  },
337
337
  {
338
338
  "path": "clients/bongos-client/index.mjs",
339
339
  "mode": "0000644",
340
- "sha256": "6217699f613e7839e12aee3465717863397243daf741c022d43a704993c9023d"
340
+ "sha256": "547ece2f9152c8d50cc1f3df559a42272c73cae4dee82e1d109920962d9d6b75"
341
341
  },
342
342
  {
343
343
  "path": "clients/bongos-client/package.json",
@@ -2172,7 +2172,7 @@
2172
2172
  {
2173
2173
  "path": "docs/adr/0343-a-module-score-is-a-security-gate-then-an-average-of-visible-parts.md",
2174
2174
  "mode": "0000644",
2175
- "sha256": "668d76cffbfaeb9662fc84b4d2c185bc7cd0109a403e6b9bf3032ebe3b569457"
2175
+ "sha256": "db41e62093dd09e5ed3f9bb4628c98ea0255b487bb5b94191bbb4adc0651636b"
2176
2176
  },
2177
2177
  {
2178
2178
  "path": "docs/adr/0344-a-tester-is-a-project-that-opts-in-once.md",
@@ -2312,12 +2312,12 @@
2312
2312
  {
2313
2313
  "path": "docs/api-reference.md",
2314
2314
  "mode": "0000644",
2315
- "sha256": "7ee0c370728c049634024bb204f60667a3a975f7d42dc0a714d14a1feb24f7f5"
2315
+ "sha256": "73697d7500113c6523249a7157d22d6e4a4d87ecb5d225239db7172b51684ef0"
2316
2316
  },
2317
2317
  {
2318
2318
  "path": "docs/api/openapi.json",
2319
2319
  "mode": "0000644",
2320
- "sha256": "3e3bcaac1dbdd052ad5e7c44ec77bf057faf71c76202bb6d43bd7852b0b1999a"
2320
+ "sha256": "0c6a4e21c41043e582aa2e1b8a181568ced5d4b331f4e39173ea93cfa69770dc"
2321
2321
  },
2322
2322
  {
2323
2323
  "path": "docs/architecture.md",
@@ -2342,12 +2342,12 @@
2342
2342
  {
2343
2343
  "path": "docs/copy-inventory.md",
2344
2344
  "mode": "0000644",
2345
- "sha256": "6b9b8e7d611dd3a8785b752670304ce584bba798f45c905e76b220900bf88664"
2345
+ "sha256": "72f6603ffa1e26dc66ac6625f9e00dc8dea40add9b447e7cd83b4c60bdd53f2d"
2346
2346
  },
2347
2347
  {
2348
2348
  "path": "docs/copy-registry.json",
2349
2349
  "mode": "0000644",
2350
- "sha256": "259281afa0ea0362844df697c796adab5287a13caee6aa8e87c3a99850992d61"
2350
+ "sha256": "066f9c2905f62afbf25e892406aa20fe73d1fb9e122e4906cf58e65cb9904bab"
2351
2351
  },
2352
2352
  {
2353
2353
  "path": "docs/design/apex-pass-2-direction.md",
@@ -2857,12 +2857,12 @@
2857
2857
  {
2858
2858
  "path": "docs/module-api-changelog.md",
2859
2859
  "mode": "0000644",
2860
- "sha256": "6028080759e4c92a71ed09f4bbe67d8bfae0152377c4f3a635d02841b29fa2c7"
2860
+ "sha256": "acf2b1336d5f4699edc722ebf237bff53902b282de64bebf6498d5c64ebecd96"
2861
2861
  },
2862
2862
  {
2863
2863
  "path": "docs/modules-contract.md",
2864
2864
  "mode": "0000644",
2865
- "sha256": "33eb2665aea5cc00feb1de80b673f6063f98b2a8bd2caeb6fa4b09e41965c1df"
2865
+ "sha256": "55a964846d438df4265777244e046b5b86deaebda3a6081c6f10a4a5a7a0dbf3"
2866
2866
  },
2867
2867
  {
2868
2868
  "path": "docs/onboarding/diagrams/01-task-lifecycle.mmd",
@@ -2942,12 +2942,12 @@
2942
2942
  {
2943
2943
  "path": "docs/page-inventory.json",
2944
2944
  "mode": "0000644",
2945
- "sha256": "dab7f6dc5248e3be4e1c13d06eff8f430fa26b7932b4800733cbd4caa7bf4b61"
2945
+ "sha256": "b5acf06f82c96d161e637f4c40ee0c8546dc2f74da8ea30145447e8627789450"
2946
2946
  },
2947
2947
  {
2948
2948
  "path": "docs/page-readings.json",
2949
2949
  "mode": "0000644",
2950
- "sha256": "3850e40624d9840ed56e9572fe99210c0f864d6a176abb99b45244cd4a89b195"
2950
+ "sha256": "0019239e987680f5da515f40ba34c2f76cd937c0ac0e7afdd4fdcfd07276483c"
2951
2951
  },
2952
2952
  {
2953
2953
  "path": "docs/project-context.template.md",
@@ -5527,7 +5527,7 @@
5527
5527
  {
5528
5528
  "path": "modules/hall-ui/public/craft-mode.js",
5529
5529
  "mode": "0000644",
5530
- "sha256": "bc9939a029775431314b7992ebffacaf6141017f6e2af7ec1cd3015267692d14"
5530
+ "sha256": "f3fc9dee7175e0484c7864bf11b8c074296f0023369e583f91ed821c6e669a2f"
5531
5531
  },
5532
5532
  {
5533
5533
  "path": "modules/hall-ui/public/criterion-uat-ui.js",
@@ -5934,10 +5934,15 @@
5934
5934
  "mode": "0000644",
5935
5935
  "sha256": "582ab7d5151e8125537f7a2d969485a446ed7b69b4c4dba1e6b43168afaf1a0e"
5936
5936
  },
5937
+ {
5938
+ "path": "modules/hall-ui/public/page-notes.css",
5939
+ "mode": "0000644",
5940
+ "sha256": "9e79075c1f86fdd69d39465c8fa7a940e56a1a7f3eb7c67f00638db18a3e4b62"
5941
+ },
5937
5942
  {
5938
5943
  "path": "modules/hall-ui/public/page-notes.js",
5939
5944
  "mode": "0000644",
5940
- "sha256": "f41d7f3424b2f1a8c1b74274a47e53e06bb184f3cd2102616589cbd7fdc534c9"
5945
+ "sha256": "976ac3dadc7fab3e936c134bd53da01e834645ebb3cfb141925a1a778ef69cea"
5941
5946
  },
5942
5947
  {
5943
5948
  "path": "modules/hall-ui/public/paintbrush.js",
@@ -6292,17 +6297,17 @@
6292
6297
  {
6293
6298
  "path": "modules/hall-ui/public/studio.css",
6294
6299
  "mode": "0000644",
6295
- "sha256": "00e6407bb6109710424b34468edbbf697ef43ee56d7397a0150881f9c2aaafdd"
6300
+ "sha256": "65f5dea97cb00594b3158b9147456f973a744d36c2cc5bbc557e858d4398a810"
6296
6301
  },
6297
6302
  {
6298
6303
  "path": "modules/hall-ui/public/studio.html",
6299
6304
  "mode": "0000644",
6300
- "sha256": "1368664902744fe2cb83444f94820b44948372981126ed76d4959c7919d22f69"
6305
+ "sha256": "9cda6d75293d489c813385b2465869dd430ca240d8560e2b97d0af1b7ce582cd"
6301
6306
  },
6302
6307
  {
6303
6308
  "path": "modules/hall-ui/public/studio.js",
6304
6309
  "mode": "0000644",
6305
- "sha256": "286be76fa46b07f100defbdb3c8426201730aadb3a22fa549aa8b26d860e4dfb"
6310
+ "sha256": "5e94a4cd19f2e29bd4f7125473568887e3d9782e50221fb478825aef177d70d7"
6306
6311
  },
6307
6312
  {
6308
6313
  "path": "modules/hall-ui/public/studio.states.json",
@@ -6312,7 +6317,7 @@
6312
6317
  {
6313
6318
  "path": "modules/hall-ui/public/style.css",
6314
6319
  "mode": "0000644",
6315
- "sha256": "b290866a2b8b8b084b1f27889cc03a17f446c366e6a7a78f42511609646fd34f"
6320
+ "sha256": "04c84e355efce753015a734f1dace60402c72d1cdaea3796e4bde8d631a0fa65"
6316
6321
  },
6317
6322
  {
6318
6323
  "path": "modules/hall-ui/public/task-detail.js",
@@ -7667,13 +7672,18 @@
7667
7672
  {
7668
7673
  "path": "modules/page-notes/db.js",
7669
7674
  "mode": "0000644",
7670
- "sha256": "d8383ae6340c0d9a3276cb2ce66da5552aed8d4ed0cbae63102279355052160a"
7675
+ "sha256": "24733b20f6c97aeac9922f55a24df2b3640070d9d0b96164207b6c1db5c17c7d"
7671
7676
  },
7672
7677
  {
7673
7678
  "path": "modules/page-notes/migrations/page_notes_001_notes.sql",
7674
7679
  "mode": "0000644",
7675
7680
  "sha256": "78a7c8606abf1f489bad3627ccdf679741257ccac32361795eeae753eed1f218"
7676
7681
  },
7682
+ {
7683
+ "path": "modules/page-notes/migrations/page_notes_002_surface_index.sql",
7684
+ "mode": "0000644",
7685
+ "sha256": "b60db7954850ccf22d6403a3da6be47e9273c3903c1000a826b32477f4649c20"
7686
+ },
7677
7687
  {
7678
7688
  "path": "modules/page-notes/module.json",
7679
7689
  "mode": "0000644",
@@ -7682,12 +7692,12 @@
7682
7692
  {
7683
7693
  "path": "modules/page-notes/notes.js",
7684
7694
  "mode": "0000644",
7685
- "sha256": "5777e44b96b020eb65ae47baaa089116f5e4de44edff40072c478e2fc13f4c55"
7695
+ "sha256": "d3a8d4aa671a45c55389f81131f467227d93a29fd5bf06efd88cb11dfbc0387b"
7686
7696
  },
7687
7697
  {
7688
7698
  "path": "modules/page-notes/routes/page-notes.js",
7689
7699
  "mode": "0000644",
7690
- "sha256": "ac2c6438181aa093e6b059f9563a1592775458b5cfe5e90d8d40ba06b988227b"
7700
+ "sha256": "53076193efecd197a262ecd58c4ef4c0ad3ba1a89fc3631e25850d8d7b084d16"
7691
7701
  },
7692
7702
  {
7693
7703
  "path": "modules/page-notes/split.js",
@@ -8617,7 +8627,7 @@
8617
8627
  {
8618
8628
  "path": "modules/public-landing/public/account.html",
8619
8629
  "mode": "0000644",
8620
- "sha256": "165599120b503458ae3d315e6cf74dde9af3da0234f2661ed4bca9e215e3c0f0"
8630
+ "sha256": "cb827c07f00e5dbe88007a47ced82c766ab36faaa9d488383d638b005bb9a0ab"
8621
8631
  },
8622
8632
  {
8623
8633
  "path": "modules/public-landing/public/account.probes.json",
@@ -8849,6 +8859,11 @@
8849
8859
  "mode": "0000644",
8850
8860
  "sha256": "69d603ee6e73411d11716ee567d844aa4b467ab31168c1f7a6c106b397084e10"
8851
8861
  },
8862
+ {
8863
+ "path": "modules/public-landing/public/assets/artist-review.js",
8864
+ "mode": "0000644",
8865
+ "sha256": "a05437ac99c075645ba36770a079ddefd1d36956c4164e7214b7095d0a45158a"
8866
+ },
8852
8867
  {
8853
8868
  "path": "modules/public-landing/public/assets/cosmos.css",
8854
8869
  "mode": "0000644",
@@ -9182,12 +9197,12 @@
9182
9197
  {
9183
9198
  "path": "modules/public-landing/public/contact.html",
9184
9199
  "mode": "0000644",
9185
- "sha256": "8918c864d3a33de6b6bd6f133670ceaebde602ac63275ef60a1084b9f8b0e77a"
9200
+ "sha256": "a325d4c99a10614f864dcaff0b60fd5b5ed442707dacafe35b1a0a069177356e"
9186
9201
  },
9187
9202
  {
9188
9203
  "path": "modules/public-landing/public/guild.html",
9189
9204
  "mode": "0000644",
9190
- "sha256": "2911f496d2b843c0fb3afe59822e4c5c9c89a9ca6b34cd97ed4f2c2f03eddf1f"
9205
+ "sha256": "6919f10dc3d6115e13ef18daeda6eadc10ab8cfd4fdb8fd18e06498b4ec908c6"
9191
9206
  },
9192
9207
  {
9193
9208
  "path": "modules/public-landing/public/guild.probes.json",
@@ -9207,7 +9222,7 @@
9207
9222
  {
9208
9223
  "path": "modules/public-landing/public/index.html",
9209
9224
  "mode": "0000644",
9210
- "sha256": "8aff9c2ed0db538eba044720d11a4c52e8b4927aeab5f7a4ad5d39b1ed599029"
9225
+ "sha256": "9b6967276cbdb8b6c9ae5644308873241007cfd954ad479da4c02a7c1506205f"
9211
9226
  },
9212
9227
  {
9213
9228
  "path": "modules/public-landing/public/index.probes.json",
@@ -9232,7 +9247,7 @@
9232
9247
  {
9233
9248
  "path": "modules/public-landing/public/invitations.html",
9234
9249
  "mode": "0000644",
9235
- "sha256": "5b0b779c53f00f20d298c168e680b0f95334d6919869b4b4560e2dab534f4bdd"
9250
+ "sha256": "7506f0101eb8ad4354438266e7b2941093f1a11eb14d8fb11179c3ea0ec6ed6e"
9236
9251
  },
9237
9252
  {
9238
9253
  "path": "modules/public-landing/public/invitations.probes.json",
@@ -9247,7 +9262,7 @@
9247
9262
  {
9248
9263
  "path": "modules/public-landing/public/privacy.html",
9249
9264
  "mode": "0000644",
9250
- "sha256": "f5bf15fa5169796e847f5b4d9f3e078b9a57b8513990e72e4e61c9c335d43258"
9265
+ "sha256": "bff74e46096c052412a5266bbc2a9176f86fe9b9f917f171855c20df7afa4bac"
9251
9266
  },
9252
9267
  {
9253
9268
  "path": "modules/public-landing/public/projects-demo.states.json",
@@ -9277,7 +9292,7 @@
9277
9292
  {
9278
9293
  "path": "modules/public-landing/public/projects.html",
9279
9294
  "mode": "0000644",
9280
- "sha256": "de3345dd157fe180f0b5cf8ed36d448f2241620d30ec349ec0d3ff988f2ba8c1"
9295
+ "sha256": "4434728240fab851ae41cd0897f56f48212a8b3a9c7208641ad820a842d5049a"
9281
9296
  },
9282
9297
  {
9283
9298
  "path": "modules/public-landing/public/projects.probes.json",
@@ -9292,7 +9307,7 @@
9292
9307
  {
9293
9308
  "path": "modules/public-landing/public/terms.html",
9294
9309
  "mode": "0000644",
9295
- "sha256": "dec1c3ddceb0a9e4e7fb488ae601b6f822a6b0d49ea842414d5265df5f10e0d8"
9310
+ "sha256": "5efafcb91ee1a008d8869f85606e00f39e924b45d57939bf6598ddfe5ea77aea"
9296
9311
  },
9297
9312
  {
9298
9313
  "path": "modules/render-deploy/deploys.js",
@@ -9922,7 +9937,7 @@
9922
9937
  {
9923
9938
  "path": "modules/ui-design/kit/serve.js",
9924
9939
  "mode": "0000644",
9925
- "sha256": "a46336b4777bcfa78d560b3d72204ed54f6b422df4f0c918223d1b612d96aff0"
9940
+ "sha256": "389e7f9ccdf590b4c988c5742e3627f67b1e98e028c6c4fdfea16b1ec2f75402"
9926
9941
  },
9927
9942
  {
9928
9943
  "path": "modules/ui-design/kit/tells.js",
@@ -10057,12 +10072,12 @@
10057
10072
  {
10058
10073
  "path": "package-lock.json",
10059
10074
  "mode": "0000644",
10060
- "sha256": "ebda74c3eebe46d4e8a441c4b63a195fc9d6aa911edfffdca7d9a5189ce29014"
10075
+ "sha256": "dd170c1d4daa9970e96fec2d475b133cf29e67ed65313ee20fcc8de8f718c5ae"
10061
10076
  },
10062
10077
  {
10063
10078
  "path": "package.json",
10064
10079
  "mode": "0000644",
10065
- "sha256": "5c6a09991c3531cf64543c466ed124dc5f19825906c42e176c00e5cdae44c0d5"
10080
+ "sha256": "9503183ef90c89351c15f488a32a988471968d9d4a04174b5b6495b7d75a5682"
10066
10081
  },
10067
10082
  {
10068
10083
  "path": "public-docs/index.html",
@@ -10082,7 +10097,7 @@
10082
10097
  {
10083
10098
  "path": "release-notes.json",
10084
10099
  "mode": "0000644",
10085
- "sha256": "b64964b1e7abbaa7a3f508f4ae02c06928e4e59d61adf1c6402584a6e681e710"
10100
+ "sha256": "48793bfee9b2b0bdd9e6907d36aa3bac89fec594e6a80951e94032ba3fb8514b"
10086
10101
  },
10087
10102
  {
10088
10103
  "path": "scripts/cron/style_guide_audit.sh",
@@ -12069,6 +12084,11 @@
12069
12084
  "mode": "0000644",
12070
12085
  "sha256": "917f364b804f25437dea7fe507abe50e9b64cac79b6cc29ac786de0e24350d33"
12071
12086
  },
12087
+ {
12088
+ "path": "src/bongos/module-listing.js",
12089
+ "mode": "0000644",
12090
+ "sha256": "15047b229ce7c3633d74597fb8f971db00fac2ddae5fb0038666fa0896b25574"
12091
+ },
12072
12092
  {
12073
12093
  "path": "src/bongos/module-overrides.js",
12074
12094
  "mode": "0000644",
@@ -12237,7 +12257,7 @@
12237
12257
  {
12238
12258
  "path": "src/bongos/routes/modules.js",
12239
12259
  "mode": "0000644",
12240
- "sha256": "fb935713e6d817c5b3ea16edd620ad50c7c0ff5992c4b70de5ccf14eac73192d"
12260
+ "sha256": "6c20741df0b1395355abf58146ad6753197dcfde928e532b43f69ecf1ce7a325"
12241
12261
  },
12242
12262
  {
12243
12263
  "path": "src/bongos/routes/my-sessions.js",
@@ -12317,7 +12337,7 @@
12317
12337
  {
12318
12338
  "path": "src/module-api.js",
12319
12339
  "mode": "0000644",
12320
- "sha256": "f0769084872b98cacd871ea7e0b062dd1fcaad8c759e38acad6393f94084b418"
12340
+ "sha256": "03f964ccadfdd4676b59a970a32c05a182bd6d139d7739aae4091506b2500af1"
12321
12341
  },
12322
12342
  {
12323
12343
  "path": "src/module-loader/catalog.js",
@@ -12664,6 +12684,11 @@
12664
12684
  "mode": "0000644",
12665
12685
  "sha256": "df3266f78209e0ca45fa9cc6be2b52bc299bfb4bf93dd360196054812166e5cc"
12666
12686
  },
12687
+ {
12688
+ "path": "tests/artist_review.mjs",
12689
+ "mode": "0000644",
12690
+ "sha256": "370b54d4e323e144ef8f9e382b873a4ff803b7727844c0e2d6b9e5cdfeb0fbe1"
12691
+ },
12667
12692
  {
12668
12693
  "path": "tests/asset_version.mjs",
12669
12694
  "mode": "0000644",
@@ -14782,7 +14807,7 @@
14782
14807
  {
14783
14808
  "path": "tests/hall_studio_home.mjs",
14784
14809
  "mode": "0000644",
14785
- "sha256": "5a1d6b276d928a49f6182c08632b684786767d23a0e3919a80219db549cd5131"
14810
+ "sha256": "ff68748598091253bb643deb47ca73023e188a5320f21536489f62ac69cd2cbb"
14786
14811
  },
14787
14812
  {
14788
14813
  "path": "tests/hall_studio_world.mjs",
@@ -15292,7 +15317,7 @@
15292
15317
  {
15293
15318
  "path": "tests/landing_legal_pages.mjs",
15294
15319
  "mode": "0000644",
15295
- "sha256": "6d5cf3da83e23c457cb15daa3243463f3b5aa86acda06ea28df310798258c6c5"
15320
+ "sha256": "b236e043fec938152e9e4cc6f19895fab39c514a109189186fec921a95fb2924"
15296
15321
  },
15297
15322
  {
15298
15323
  "path": "tests/landing_page.mjs",
@@ -15674,6 +15699,11 @@
15674
15699
  "mode": "0000644",
15675
15700
  "sha256": "43828c1a95652180d558e7676cc2053d0599a61c0edf4cd1ab100820fc7de493"
15676
15701
  },
15702
+ {
15703
+ "path": "tests/module_store_listing.mjs",
15704
+ "mode": "0000644",
15705
+ "sha256": "289478dfc8666527e919a28db3127807aefe87c19849001f133780bb8a8ac816"
15706
+ },
15677
15707
  {
15678
15708
  "path": "tests/module_store_publish.mjs",
15679
15709
  "mode": "0000644",
@@ -15927,12 +15957,12 @@
15927
15957
  {
15928
15958
  "path": "tests/page_notes_db.mjs",
15929
15959
  "mode": "0000644",
15930
- "sha256": "e1e2ea0e604d289f488f6ae0df35261a09f3f1f69ac3d98220aa517ecbbd97dc"
15960
+ "sha256": "9c8e0bf1f3f8914738fb36b3181880b2dbf00403c2ef07a510bb37c88e5fbe58"
15931
15961
  },
15932
15962
  {
15933
15963
  "path": "tests/page_notes_panel.mjs",
15934
15964
  "mode": "0000644",
15935
- "sha256": "5833eaf30a7ace8a946ed51ec25aa2658ecfd1bd0b9d78aec02854c3c26a554e"
15965
+ "sha256": "0be8365d3f45e42d98817aef289ab95880fc4c0ff0101ed98ea4a0722d432426"
15936
15966
  },
15937
15967
  {
15938
15968
  "path": "tests/page_reader.mjs",
@@ -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
- - 525 operations across 75 resource groups
8
+ - 527 operations across 75 resource groups
9
9
 
10
10
  ## Use it from your project
11
11
 
@@ -841,6 +841,8 @@ function createClient(opts = {}) {
841
841
  postPageNotesIdeas: (args) => request("POST", "/page-notes/ideas", { hasBody: true }, args),
842
842
  // GET /page-notes/images/{id} — rank: any-builder — GET /page-notes/images/:id
843
843
  getPageNotesImagesId: (args) => request("GET", "/page-notes/images/{id}", { hasBody: false }, args),
844
+ // GET /page-notes/site — rank: any-builder — GET /page-notes/site
845
+ getPageNotesSite: (args) => request("GET", "/page-notes/site", { hasBody: false }, args),
844
846
  },
845
847
  "profiles": {
846
848
  // GET /profiles/{handle} — rank: public — GET /profiles/:handle
@@ -1149,6 +1151,8 @@ function createClient(opts = {}) {
1149
1151
  "store": {
1150
1152
  // GET /store/entitlements — rank: any-builder — GET /store/entitlements
1151
1153
  getStoreEntitlements: (args) => request("GET", "/store/entitlements", { hasBody: false }, args),
1154
+ // GET /store/modules — rank: any-builder — GET /store/modules
1155
+ getStoreModules: (args) => request("GET", "/store/modules", { hasBody: false }, args),
1152
1156
  // POST /store/modules/{key}/acquire — rank: any-builder — POST /store/modules/:key/acquire
1153
1157
  postStoreModulesKeyAcquire: (args) => request("POST", "/store/modules/{key}/acquire", { hasBody: true }, args),
1154
1158
  // POST /store/modules/{key}/acquired — rank: any-builder — POST /store/modules/:key/acquired
@@ -840,6 +840,8 @@ function createClient(opts = {}) {
840
840
  postPageNotesIdeas: (args) => request("POST", "/page-notes/ideas", { hasBody: true }, args),
841
841
  // GET /page-notes/images/{id} — rank: any-builder — GET /page-notes/images/:id
842
842
  getPageNotesImagesId: (args) => request("GET", "/page-notes/images/{id}", { hasBody: false }, args),
843
+ // GET /page-notes/site — rank: any-builder — GET /page-notes/site
844
+ getPageNotesSite: (args) => request("GET", "/page-notes/site", { hasBody: false }, args),
843
845
  },
844
846
  "profiles": {
845
847
  // GET /profiles/{handle} — rank: public — GET /profiles/:handle
@@ -1148,6 +1150,8 @@ function createClient(opts = {}) {
1148
1150
  "store": {
1149
1151
  // GET /store/entitlements — rank: any-builder — GET /store/entitlements
1150
1152
  getStoreEntitlements: (args) => request("GET", "/store/entitlements", { hasBody: false }, args),
1153
+ // GET /store/modules — rank: any-builder — GET /store/modules
1154
+ getStoreModules: (args) => request("GET", "/store/modules", { hasBody: false }, args),
1151
1155
  // POST /store/modules/{key}/acquire — rank: any-builder — POST /store/modules/:key/acquire
1152
1156
  postStoreModulesKeyAcquire: (args) => request("POST", "/store/modules/{key}/acquire", { hasBody: true }, args),
1153
1157
  // POST /store/modules/{key}/acquired — rank: any-builder — POST /store/modules/:key/acquired
@@ -123,6 +123,7 @@ export interface GetOverrideRequestsResponse { requests: unknown }
123
123
  export interface GetPageNotesIdResponse { note: unknown; images: unknown; ideas: unknown }
124
124
  export interface GetPageNotesIdeasResponse { page_path: unknown; ideas: unknown }
125
125
  export interface GetPageNotesResponse { page_id: unknown; notes: unknown }
126
+ export interface GetPageNotesSiteResponse { notes: unknown }
126
127
  export interface GetProfilesHandleResponse { account: unknown; cross_project: unknown }
127
128
  export interface GetProjectManageLinkResponse { ok: boolean; link: unknown }
128
129
  export interface GetProjectSettingsResponse { rows: unknown }
@@ -1341,6 +1342,8 @@ export interface BongosClient {
1341
1342
  postPageNotesIdeas(args: RequestArgs & { body: PostPageNotesIdeasRequest }): Promise<PostPageNotesIdeasResponse>;
1342
1343
  /** GET /page-notes/images/{id} — rank: any-builder */
1343
1344
  getPageNotesImagesId(args?: RequestArgs): Promise<ApiResponse>;
1345
+ /** GET /page-notes/site — rank: any-builder */
1346
+ getPageNotesSite(args?: RequestArgs): Promise<GetPageNotesSiteResponse>;
1344
1347
  };
1345
1348
  "profiles": {
1346
1349
  /** GET /profiles/{handle} — rank: public */
@@ -1649,6 +1652,8 @@ export interface BongosClient {
1649
1652
  "store": {
1650
1653
  /** GET /store/entitlements — rank: any-builder */
1651
1654
  getStoreEntitlements(args?: RequestArgs): Promise<GetStoreEntitlementsResponse>;
1655
+ /** GET /store/modules — rank: any-builder */
1656
+ getStoreModules(args?: RequestArgs): Promise<ApiResponse>;
1652
1657
  /** POST /store/modules/{key}/acquire — rank: any-builder */
1653
1658
  postStoreModulesKeyAcquire(args?: RequestArgs & { body?: PostStoreModulesKeyAcquireRequest }): Promise<PostStoreModulesKeyAcquireResponse>;
1654
1659
  /** POST /store/modules/{key}/acquired — rank: any-builder */
@@ -837,6 +837,8 @@ export function createClient(opts = {}) {
837
837
  postPageNotesIdeas: (args) => request("POST", "/page-notes/ideas", { hasBody: true }, args),
838
838
  // GET /page-notes/images/{id} — rank: any-builder — GET /page-notes/images/:id
839
839
  getPageNotesImagesId: (args) => request("GET", "/page-notes/images/{id}", { hasBody: false }, args),
840
+ // GET /page-notes/site — rank: any-builder — GET /page-notes/site
841
+ getPageNotesSite: (args) => request("GET", "/page-notes/site", { hasBody: false }, args),
840
842
  },
841
843
  "profiles": {
842
844
  // GET /profiles/{handle} — rank: public — GET /profiles/:handle
@@ -1145,6 +1147,8 @@ export function createClient(opts = {}) {
1145
1147
  "store": {
1146
1148
  // GET /store/entitlements — rank: any-builder — GET /store/entitlements
1147
1149
  getStoreEntitlements: (args) => request("GET", "/store/entitlements", { hasBody: false }, args),
1150
+ // GET /store/modules — rank: any-builder — GET /store/modules
1151
+ getStoreModules: (args) => request("GET", "/store/modules", { hasBody: false }, args),
1148
1152
  // POST /store/modules/{key}/acquire — rank: any-builder — POST /store/modules/:key/acquire
1149
1153
  postStoreModulesKeyAcquire: (args) => request("POST", "/store/modules/{key}/acquire", { hasBody: true }, args),
1150
1154
  // POST /store/modules/{key}/acquired — rank: any-builder — POST /store/modules/:key/acquired
@@ -66,6 +66,18 @@ couldn't have yet. The floor and the ranking decide how New modules are placed (
66
66
  Price is never an input. The Metic+ override (task 1003796) and delist (task 1003797) sit on
67
67
  top of the computed score and never replace how it is computed. Every override is recorded.
68
68
 
69
+ ## Implementation note — the floor (task 1003807, 2026-10-03)
70
+
71
+ The owner set the floor on 2026-10-01: **50 out of 100**, fixed in Bongos itself
72
+ (`QUALITY_FLOOR` in `src/bongos/module-listing.js`). It is not a live setting and no new
73
+ permission moves it; changing it is an owner-approved, reviewed task, so no author can
74
+ move it. `GET /store/modules` lists each listed module's newest version by its current
75
+ score: the Security gate must have passed (failed or not yet run means not listed); a
76
+ version still labelled New (D5) is listed under "new", never ranked, and the floor does
77
+ not apply to it until it has a real score; any other version is listed only at or above
78
+ the floor. Below the bar is not listed at all. Authors read the rule in
79
+ `docs/modules-contract.md` ("Getting listed").
80
+
69
81
  ## Consequences
70
82
 
71
83
  - **Day one, only Tests counts toward the overall score**, behind the Security gate. The number
@@ -15295,6 +15295,44 @@
15295
15295
  ]
15296
15296
  }
15297
15297
  },
15298
+ "/page-notes/site": {
15299
+ "get": {
15300
+ "operationId": "get_page_notes_site",
15301
+ "tags": [
15302
+ "page-notes"
15303
+ ],
15304
+ "summary": "GET /page-notes/site",
15305
+ "description": "The public site's reviews (task 1004499), for the Studio's list. Mounted before /page-notes/:id so 'site' is never read as a doc id.\n\n**Rank:** `any-builder` — Any authenticated builder (row-level ownership enforced in-handler).",
15306
+ "x-rank": "any-builder",
15307
+ "x-source": "modules/page-notes/routes/page-notes.js",
15308
+ "responses": {
15309
+ "200": {
15310
+ "description": "Success.",
15311
+ "content": {
15312
+ "application/json": {
15313
+ "schema": {
15314
+ "$ref": "#/components/schemas/GetPageNotesSiteResponse"
15315
+ }
15316
+ }
15317
+ }
15318
+ },
15319
+ "400": {
15320
+ "$ref": "#/components/responses/BadRequest"
15321
+ },
15322
+ "401": {
15323
+ "$ref": "#/components/responses/Unauthorized"
15324
+ },
15325
+ "403": {
15326
+ "$ref": "#/components/responses/Forbidden"
15327
+ }
15328
+ },
15329
+ "security": [
15330
+ {
15331
+ "builderSession": []
15332
+ }
15333
+ ]
15334
+ }
15335
+ },
15298
15336
  "/page-notes/{id}": {
15299
15337
  "get": {
15300
15338
  "operationId": "get_page_notes_id",
@@ -21492,6 +21530,37 @@
21492
21530
  ]
21493
21531
  }
21494
21532
  },
21533
+ "/store/modules": {
21534
+ "get": {
21535
+ "operationId": "get_store_modules",
21536
+ "tags": [
21537
+ "store"
21538
+ ],
21539
+ "summary": "GET /store/modules",
21540
+ "description": "The store catalog under the quality floor (task 1003807, ADR 0343 D2/D5): each listed module's newest version, if it passed the Security gate and scores at or above the floor, or under \"new\" if it has no real-world data yet. Below the bar is not listed at all. The floor is fixed in module-listing.js and returned here. rank: any-builder — a read of public store metadata, like /store/modules/latest: no entitlement taken, nothing changed.\n\n**Rank:** `any-builder` — Any authenticated builder (row-level ownership enforced in-handler).",
21541
+ "x-rank": "any-builder",
21542
+ "x-source": "src/bongos/routes/modules.js",
21543
+ "responses": {
21544
+ "200": {
21545
+ "description": "Success."
21546
+ },
21547
+ "400": {
21548
+ "$ref": "#/components/responses/BadRequest"
21549
+ },
21550
+ "401": {
21551
+ "$ref": "#/components/responses/Unauthorized"
21552
+ },
21553
+ "403": {
21554
+ "$ref": "#/components/responses/Forbidden"
21555
+ }
21556
+ },
21557
+ "security": [
21558
+ {
21559
+ "builderSession": []
21560
+ }
21561
+ ]
21562
+ }
21563
+ },
21495
21564
  "/store/modules/latest": {
21496
21565
  "get": {
21497
21566
  "operationId": "get_store_modules_latest",
@@ -26269,6 +26338,15 @@
26269
26338
  "notes"
26270
26339
  ]
26271
26340
  },
26341
+ "GetPageNotesSiteResponse": {
26342
+ "type": "object",
26343
+ "properties": {
26344
+ "notes": {}
26345
+ },
26346
+ "required": [
26347
+ "notes"
26348
+ ]
26349
+ },
26272
26350
  "GetProfilesHandleResponse": {
26273
26351
  "type": "object",
26274
26352
  "properties": {
@@ -33747,9 +33825,9 @@
33747
33825
  "description": "A required dependency/feature is not configured or is temporarily down."
33748
33826
  }
33749
33827
  },
33750
- "x-endpoint-count": 525,
33751
- "x-schema-count": 567,
33828
+ "x-endpoint-count": 527,
33829
+ "x-schema-count": 568,
33752
33830
  "x-undocumented-bodies": 12,
33753
- "x-response-schemas": 376,
33831
+ "x-response-schemas": 377,
33754
33832
  "x-generated-by": "scripts/gds/gen-api-docs.js"
33755
33833
  }