@bongos/core 1.24.8 → 1.24.10
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 +131 -86
- package/clients/bongos-client/README.md +1 -1
- package/clients/bongos-client/bongos-client.global.js +8 -0
- package/clients/bongos-client/index.cjs +8 -0
- package/clients/bongos-client/index.d.ts +11 -1
- package/clients/bongos-client/index.mjs +8 -0
- package/docs/adr/0385-money-lives-with-a-processor-credits-stay-a-project-meter.md +1 -1
- package/docs/api/openapi.json +185 -6
- package/docs/api-reference.md +7 -3
- package/docs/architecture.md +2 -2
- package/docs/copy-inventory.md +58 -28
- package/docs/copy-registry.json +333 -33
- package/docs/module-api-changelog.md +4 -0
- package/docs/modules-contract.md +3 -3
- package/docs/page-inventory.json +34 -4
- package/docs/page-readings.json +294 -237
- package/migrations/core_287_module_prices_cash_only.sql +24 -0
- package/modules/hall-ui/public/ai-studio.html +2 -2
- package/modules/hall-ui/public/atlas.html +2 -2
- package/modules/hall-ui/public/blockers.html +2 -2
- package/modules/hall-ui/public/board-room.html +2 -2
- package/modules/hall-ui/public/city.html +2 -2
- package/modules/hall-ui/public/collab.html +2 -2
- package/modules/hall-ui/public/commands.html +2 -2
- package/modules/hall-ui/public/copy-desk.html +2 -2
- package/modules/hall-ui/public/craft-mode.js +1 -1
- package/modules/hall-ui/public/deploy.html +2 -2
- package/modules/hall-ui/public/diagrams.html +2 -2
- package/modules/hall-ui/public/drachmae.html +2 -2
- package/modules/hall-ui/public/fleet.html +2 -2
- package/modules/hall-ui/public/gate.html +2 -2
- package/modules/hall-ui/public/goal-map.html +2 -2
- package/modules/hall-ui/public/goals.html +2 -2
- package/modules/hall-ui/public/government.html +2 -2
- package/modules/hall-ui/public/idea.html +2 -2
- package/modules/hall-ui/public/ideas.html +2 -2
- package/modules/hall-ui/public/index.html +2 -2
- package/modules/hall-ui/public/market-watch-rules.html +2 -2
- package/modules/hall-ui/public/market-watch-settings.css +217 -0
- package/modules/hall-ui/public/market-watch-settings.html +113 -0
- package/modules/hall-ui/public/market-watch-settings.js +230 -0
- package/modules/hall-ui/public/market-watch-settings.states.json +14 -0
- package/modules/hall-ui/public/modules.html +2 -2
- package/modules/hall-ui/public/modules.js +5 -0
- package/modules/hall-ui/public/my-agents.html +2 -2
- package/modules/hall-ui/public/primer.html +2 -2
- package/modules/hall-ui/public/profile.html +2 -2
- package/modules/hall-ui/public/project-settings.html +2 -2
- package/modules/hall-ui/public/ranks.html +2 -2
- package/modules/hall-ui/public/roadmap.html +2 -2
- package/modules/hall-ui/public/roster.html +2 -2
- package/modules/hall-ui/public/sessions.html +2 -2
- package/modules/hall-ui/public/settings.html +2 -2
- package/modules/hall-ui/public/shell.js +3 -0
- package/modules/hall-ui/public/street.html +2 -2
- package/modules/hall-ui/public/studio.html +2 -2
- package/modules/hall-ui/public/task.html +2 -2
- package/modules/hall-ui/public/thinking.html +2 -2
- package/modules/hall-ui/public/tweak-editor.html +2 -2
- package/modules/hall-ui/public/watch.html +2 -2
- package/modules/hall-ui/public/work.html +2 -2
- package/modules/hall-ui/records/market-watch-settings.md +11 -0
- package/modules/market-watch/module.json +3 -2
- package/modules/market-watch/routes/settings.js +128 -0
- package/modules/market-watch/settings.js +207 -0
- package/modules/provisioning/starter-bundles.js +11 -6
- package/modules/ui-design/kit/serve.js +1 -0
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/release-notes.json +12 -0
- package/scripts/bongos/module-store-cli.js +21 -21
- package/scripts/bongos/module.js +8 -8
- package/src/bongos/module-listing.js +47 -20
- package/src/bongos/module-scope-map.js +1 -0
- package/src/bongos/module-store.js +20 -12
- package/src/bongos/routes/modules.js +31 -21
- package/src/bongos/serve-internal.js +2 -2
- package/src/module-api.js +1 -1
- package/tests/hall_nav.mjs +4 -2
- package/tests/hall_page_gate_map.mjs +4 -0
- package/tests/market_watch_data_db.mjs +27 -0
- package/tests/market_watch_module.mjs +8 -4
- package/tests/market_watch_settings.mjs +392 -0
- package/tests/module_store_cli.mjs +14 -3
- package/tests/module_store_listing.mjs +65 -14
- package/tests/module_store_price.mjs +97 -26
- package/tests/module_store_registry_migration.mjs +11 -0
- package/tests/nav_permission_atoms.mjs +3 -2
|
@@ -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
|
+
- 647 operations across 80 resource groups
|
|
9
9
|
|
|
10
10
|
## Use it from your project
|
|
11
11
|
|
|
@@ -771,6 +771,14 @@ function createClient(opts = {}) {
|
|
|
771
771
|
getMarketWatchRules: (args) => request("GET", "/market-watch/rules", { hasBody: false }, args),
|
|
772
772
|
// POST /market-watch/rules/proposals — rank: any-builder — POST /market-watch/rules/proposals
|
|
773
773
|
postMarketWatchRulesProposals: (args) => request("POST", "/market-watch/rules/proposals", { hasBody: true }, args),
|
|
774
|
+
// GET /market-watch/settings — rank: metic+archon — GET /market-watch/settings
|
|
775
|
+
getMarketWatchSettings: (args) => request("GET", "/market-watch/settings", { hasBody: false }, args),
|
|
776
|
+
// PATCH /market-watch/settings — rank: metic+archon — PATCH /market-watch/settings
|
|
777
|
+
patchMarketWatchSettings: (args) => request("PATCH", "/market-watch/settings", { hasBody: true }, args),
|
|
778
|
+
// DELETE /market-watch/settings/key — rank: metic+archon — DELETE /market-watch/settings/key
|
|
779
|
+
deleteMarketWatchSettingsKey: (args) => request("DELETE", "/market-watch/settings/key", { hasBody: false }, args),
|
|
780
|
+
// PUT /market-watch/settings/key — rank: metic+archon — PUT /market-watch/settings/key
|
|
781
|
+
putMarketWatchSettingsKey: (args) => request("PUT", "/market-watch/settings/key", { hasBody: true }, args),
|
|
774
782
|
},
|
|
775
783
|
"me": {
|
|
776
784
|
// GET /me — rank: any-builder — GET /me
|
|
@@ -770,6 +770,14 @@ function createClient(opts = {}) {
|
|
|
770
770
|
getMarketWatchRules: (args) => request("GET", "/market-watch/rules", { hasBody: false }, args),
|
|
771
771
|
// POST /market-watch/rules/proposals — rank: any-builder — POST /market-watch/rules/proposals
|
|
772
772
|
postMarketWatchRulesProposals: (args) => request("POST", "/market-watch/rules/proposals", { hasBody: true }, args),
|
|
773
|
+
// GET /market-watch/settings — rank: metic+archon — GET /market-watch/settings
|
|
774
|
+
getMarketWatchSettings: (args) => request("GET", "/market-watch/settings", { hasBody: false }, args),
|
|
775
|
+
// PATCH /market-watch/settings — rank: metic+archon — PATCH /market-watch/settings
|
|
776
|
+
patchMarketWatchSettings: (args) => request("PATCH", "/market-watch/settings", { hasBody: true }, args),
|
|
777
|
+
// DELETE /market-watch/settings/key — rank: metic+archon — DELETE /market-watch/settings/key
|
|
778
|
+
deleteMarketWatchSettingsKey: (args) => request("DELETE", "/market-watch/settings/key", { hasBody: false }, args),
|
|
779
|
+
// PUT /market-watch/settings/key — rank: metic+archon — PUT /market-watch/settings/key
|
|
780
|
+
putMarketWatchSettingsKey: (args) => request("PUT", "/market-watch/settings/key", { hasBody: true }, args),
|
|
773
781
|
},
|
|
774
782
|
"me": {
|
|
775
783
|
// GET /me — rank: any-builder — GET /me
|
|
@@ -243,6 +243,7 @@ export interface PatchInboxIdBodyRequest { body_md: string }
|
|
|
243
243
|
export interface PatchInboxIdBodyResponse { ok: boolean; idea: unknown; delta: unknown; unchanged: unknown }
|
|
244
244
|
export interface PatchInboxIdRequest { status?: "open" | "promoted" | "discarded" | "merged"; kind?: string; promoted_to_task_id?: number; reviewed_at?: unknown; merged_into_idea_id?: number; triage_note?: string }
|
|
245
245
|
export interface PatchInboxIdResponse { idea: unknown }
|
|
246
|
+
export interface PatchMarketWatchSettingsRequest { enabled?: unknown; monthly_cap_usd?: unknown; cadence?: unknown }
|
|
246
247
|
export interface PatchMeCoreMoveSeenRequest { id: string }
|
|
247
248
|
export interface PatchMeCoreMoveSeenResponse { ok: boolean; seen: unknown }
|
|
248
249
|
export interface PatchMeCrossProjectRequest { hide_stats?: boolean; account_visibility?: string; recruiter_discoverable?: boolean }
|
|
@@ -623,7 +624,7 @@ export interface PostStoreModulesKeyAcquiredRequest { version: string }
|
|
|
623
624
|
export interface PostStoreModulesKeyAcquiredResponse { ok: boolean; entitlement: unknown }
|
|
624
625
|
export interface PostStoreModulesKeyDelistRequest { reason?: string }
|
|
625
626
|
export interface PostStoreModulesKeyDelistResponse { ok: boolean; module_key: unknown; status: unknown; delisted_at: unknown }
|
|
626
|
-
export interface PostStoreModulesKeyPriceRequest { cents?:
|
|
627
|
+
export interface PostStoreModulesKeyPriceRequest { cents?: number }
|
|
627
628
|
export interface PostStoreModulesKeyPriceResponse { ok: boolean; module_key: unknown; previous: unknown; price: unknown }
|
|
628
629
|
export interface PostStoreModulesKeyVersionsResponse { ok: boolean; created_module: unknown; version: unknown; channel: unknown; category: unknown }
|
|
629
630
|
export interface PostStoreModulesKeyVersionsVersionErrorCountRequest { day: string; count: number }
|
|
@@ -680,6 +681,7 @@ export interface PutDoneWhenCriterionIdBackendOnlyResponse { ok: boolean; criter
|
|
|
680
681
|
export interface PutGovernmentAsksMatterIdResponse { ok: boolean; matter_id: unknown; ask: unknown }
|
|
681
682
|
export interface PutGovernmentRanksRankKeyPermissionsPermissionKeyResponse { ok: boolean; rank_key: unknown; permission_key: unknown; granted: unknown }
|
|
682
683
|
export interface PutGovernmentTreasuryPotsGoalIdRequest { budget_usd?: unknown }
|
|
684
|
+
export interface PutMarketWatchSettingsKeyRequest { key: string }
|
|
683
685
|
export interface PutMingleOptInRequest { opted_in: boolean }
|
|
684
686
|
export interface PutMingleOptInResponse { opted_in: unknown; updated_at: unknown }
|
|
685
687
|
export interface PutMingleProjectRequest { enabled: boolean }
|
|
@@ -1395,6 +1397,14 @@ export interface BongosClient {
|
|
|
1395
1397
|
getMarketWatchRules(args?: RequestArgs): Promise<ApiResponse>;
|
|
1396
1398
|
/** POST /market-watch/rules/proposals — rank: any-builder */
|
|
1397
1399
|
postMarketWatchRulesProposals(args: RequestArgs & { body: PostMarketWatchRulesProposalsRequest }): Promise<PostMarketWatchRulesProposalsResponse>;
|
|
1400
|
+
/** GET /market-watch/settings — rank: metic+archon */
|
|
1401
|
+
getMarketWatchSettings(args?: RequestArgs): Promise<ApiResponse>;
|
|
1402
|
+
/** PATCH /market-watch/settings — rank: metic+archon */
|
|
1403
|
+
patchMarketWatchSettings(args?: RequestArgs & { body?: PatchMarketWatchSettingsRequest }): Promise<ApiResponse>;
|
|
1404
|
+
/** DELETE /market-watch/settings/key — rank: metic+archon */
|
|
1405
|
+
deleteMarketWatchSettingsKey(args?: RequestArgs): Promise<ApiResponse>;
|
|
1406
|
+
/** PUT /market-watch/settings/key — rank: metic+archon */
|
|
1407
|
+
putMarketWatchSettingsKey(args: RequestArgs & { body: PutMarketWatchSettingsKeyRequest }): Promise<ApiResponse>;
|
|
1398
1408
|
};
|
|
1399
1409
|
"me": {
|
|
1400
1410
|
/** GET /me — rank: any-builder */
|
|
@@ -767,6 +767,14 @@ export function createClient(opts = {}) {
|
|
|
767
767
|
getMarketWatchRules: (args) => request("GET", "/market-watch/rules", { hasBody: false }, args),
|
|
768
768
|
// POST /market-watch/rules/proposals — rank: any-builder — POST /market-watch/rules/proposals
|
|
769
769
|
postMarketWatchRulesProposals: (args) => request("POST", "/market-watch/rules/proposals", { hasBody: true }, args),
|
|
770
|
+
// GET /market-watch/settings — rank: metic+archon — GET /market-watch/settings
|
|
771
|
+
getMarketWatchSettings: (args) => request("GET", "/market-watch/settings", { hasBody: false }, args),
|
|
772
|
+
// PATCH /market-watch/settings — rank: metic+archon — PATCH /market-watch/settings
|
|
773
|
+
patchMarketWatchSettings: (args) => request("PATCH", "/market-watch/settings", { hasBody: true }, args),
|
|
774
|
+
// DELETE /market-watch/settings/key — rank: metic+archon — DELETE /market-watch/settings/key
|
|
775
|
+
deleteMarketWatchSettingsKey: (args) => request("DELETE", "/market-watch/settings/key", { hasBody: false }, args),
|
|
776
|
+
// PUT /market-watch/settings/key — rank: metic+archon — PUT /market-watch/settings/key
|
|
777
|
+
putMarketWatchSettingsKey: (args) => request("PUT", "/market-watch/settings/key", { hasBody: true }, args),
|
|
770
778
|
},
|
|
771
779
|
"me": {
|
|
772
780
|
// GET /me — rank: any-builder — GET /me
|
|
@@ -69,7 +69,7 @@ The owner answered the questions left open by the payments build plan ([task 100
|
|
|
69
69
|
- **Decision 2, "a project may change or replace it", is narrowed.** For now a project may change and tune the Bongos Standard Credit System's settings. It may not switch credits off, and there is no plug-in formula.
|
|
70
70
|
- **The credit reward stays required by default.** [ADR 0096](0096-require-reward-before-workable.md)'s rule stays on for every new project, not only for projects that pick the standard system.
|
|
71
71
|
- **Decision 3: a project's pay policy lives in the database.** It is changed on the project's settings page, and every change is kept in an audit trail (who, when, what). It does not live in the branding pack. [Task 1004990](https://cloudbongos.com/builders#/task/1004990) builds to this.
|
|
72
|
-
- **Modules already priced in credits are not hidden.** Each author is asked to set a cash price, and the listing stays up meanwhile. [Task 1004989](https://cloudbongos.com/builders#/task/1004989)
|
|
72
|
+
- **Modules already priced in credits are not hidden.** Each author is asked to set a cash price, and the listing stays up meanwhile. The owner answered the follow-up question on 2026-10-29: an interim credit-priced module stays **visible with a "price coming" note, and it can NOT be bought with credits**. Credits are never spent like money. [Task 1004989](https://cloudbongos.com/builders#/task/1004989) built this: new prices are cash only (the database refuses a credit price on a new row), and old credit prices show as "price coming".
|
|
73
73
|
- **"Verro" is Verro Labs**, the planned holding company of Cloud Bongos LLC and related entities, as now named in the EU labour row above.
|
|
74
74
|
- **ADR 0054's "credits are equity" framing is formally superseded**, as recorded in ADR 0054 itself ([task 1004967](https://cloudbongos.com/builders#/task/1004967)).
|
|
75
75
|
|
package/docs/api/openapi.json
CHANGED
|
@@ -14269,6 +14269,160 @@
|
|
|
14269
14269
|
]
|
|
14270
14270
|
}
|
|
14271
14271
|
},
|
|
14272
|
+
"/market-watch/settings": {
|
|
14273
|
+
"get": {
|
|
14274
|
+
"operationId": "get_market_watch_settings",
|
|
14275
|
+
"tags": [
|
|
14276
|
+
"market-watch"
|
|
14277
|
+
],
|
|
14278
|
+
"summary": "GET /market-watch/settings",
|
|
14279
|
+
"description": "**Rank:** `metic+archon` — Metic or Archon rank (review/triage powers).\n\n**Permissions:** `project.settings.manage` (all required).",
|
|
14280
|
+
"x-rank": "metic+archon",
|
|
14281
|
+
"x-source": "modules/market-watch/routes/settings.js",
|
|
14282
|
+
"x-permissions": [
|
|
14283
|
+
"project.settings.manage"
|
|
14284
|
+
],
|
|
14285
|
+
"responses": {
|
|
14286
|
+
"200": {
|
|
14287
|
+
"description": "Success."
|
|
14288
|
+
},
|
|
14289
|
+
"400": {
|
|
14290
|
+
"$ref": "#/components/responses/BadRequest"
|
|
14291
|
+
},
|
|
14292
|
+
"401": {
|
|
14293
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
14294
|
+
},
|
|
14295
|
+
"403": {
|
|
14296
|
+
"$ref": "#/components/responses/Forbidden"
|
|
14297
|
+
}
|
|
14298
|
+
},
|
|
14299
|
+
"security": [
|
|
14300
|
+
{
|
|
14301
|
+
"builderSession": []
|
|
14302
|
+
}
|
|
14303
|
+
]
|
|
14304
|
+
},
|
|
14305
|
+
"patch": {
|
|
14306
|
+
"operationId": "patch_market_watch_settings",
|
|
14307
|
+
"tags": [
|
|
14308
|
+
"market-watch"
|
|
14309
|
+
],
|
|
14310
|
+
"summary": "PATCH /market-watch/settings",
|
|
14311
|
+
"description": "**Rank:** `metic+archon` — Metic or Archon rank (review/triage powers).\n\n**Permissions:** `project.settings.manage` (all required).",
|
|
14312
|
+
"x-rank": "metic+archon",
|
|
14313
|
+
"x-source": "modules/market-watch/routes/settings.js",
|
|
14314
|
+
"x-permissions": [
|
|
14315
|
+
"project.settings.manage"
|
|
14316
|
+
],
|
|
14317
|
+
"requestBody": {
|
|
14318
|
+
"required": false,
|
|
14319
|
+
"content": {
|
|
14320
|
+
"application/json": {
|
|
14321
|
+
"schema": {
|
|
14322
|
+
"$ref": "#/components/schemas/PatchMarketWatchSettingsRequest"
|
|
14323
|
+
}
|
|
14324
|
+
}
|
|
14325
|
+
},
|
|
14326
|
+
"x-validated": true
|
|
14327
|
+
},
|
|
14328
|
+
"responses": {
|
|
14329
|
+
"200": {
|
|
14330
|
+
"description": "Success."
|
|
14331
|
+
},
|
|
14332
|
+
"400": {
|
|
14333
|
+
"$ref": "#/components/responses/ValidationFailed"
|
|
14334
|
+
},
|
|
14335
|
+
"401": {
|
|
14336
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
14337
|
+
},
|
|
14338
|
+
"403": {
|
|
14339
|
+
"$ref": "#/components/responses/Forbidden"
|
|
14340
|
+
}
|
|
14341
|
+
},
|
|
14342
|
+
"security": [
|
|
14343
|
+
{
|
|
14344
|
+
"builderSession": []
|
|
14345
|
+
}
|
|
14346
|
+
]
|
|
14347
|
+
}
|
|
14348
|
+
},
|
|
14349
|
+
"/market-watch/settings/key": {
|
|
14350
|
+
"put": {
|
|
14351
|
+
"operationId": "put_market_watch_settings_key",
|
|
14352
|
+
"tags": [
|
|
14353
|
+
"market-watch"
|
|
14354
|
+
],
|
|
14355
|
+
"summary": "PUT /market-watch/settings/key",
|
|
14356
|
+
"description": "**Rank:** `metic+archon` — Metic or Archon rank (review/triage powers).\n\n**Permissions:** `project.settings.manage` (all required).",
|
|
14357
|
+
"x-rank": "metic+archon",
|
|
14358
|
+
"x-source": "modules/market-watch/routes/settings.js",
|
|
14359
|
+
"x-permissions": [
|
|
14360
|
+
"project.settings.manage"
|
|
14361
|
+
],
|
|
14362
|
+
"requestBody": {
|
|
14363
|
+
"required": true,
|
|
14364
|
+
"content": {
|
|
14365
|
+
"application/json": {
|
|
14366
|
+
"schema": {
|
|
14367
|
+
"$ref": "#/components/schemas/PutMarketWatchSettingsKeyRequest"
|
|
14368
|
+
}
|
|
14369
|
+
}
|
|
14370
|
+
},
|
|
14371
|
+
"x-validated": true
|
|
14372
|
+
},
|
|
14373
|
+
"responses": {
|
|
14374
|
+
"200": {
|
|
14375
|
+
"description": "Success."
|
|
14376
|
+
},
|
|
14377
|
+
"400": {
|
|
14378
|
+
"$ref": "#/components/responses/ValidationFailed"
|
|
14379
|
+
},
|
|
14380
|
+
"401": {
|
|
14381
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
14382
|
+
},
|
|
14383
|
+
"403": {
|
|
14384
|
+
"$ref": "#/components/responses/Forbidden"
|
|
14385
|
+
}
|
|
14386
|
+
},
|
|
14387
|
+
"security": [
|
|
14388
|
+
{
|
|
14389
|
+
"builderSession": []
|
|
14390
|
+
}
|
|
14391
|
+
]
|
|
14392
|
+
},
|
|
14393
|
+
"delete": {
|
|
14394
|
+
"operationId": "delete_market_watch_settings_key",
|
|
14395
|
+
"tags": [
|
|
14396
|
+
"market-watch"
|
|
14397
|
+
],
|
|
14398
|
+
"summary": "DELETE /market-watch/settings/key",
|
|
14399
|
+
"description": "**Rank:** `metic+archon` — Metic or Archon rank (review/triage powers).\n\n**Permissions:** `project.settings.manage` (all required).",
|
|
14400
|
+
"x-rank": "metic+archon",
|
|
14401
|
+
"x-source": "modules/market-watch/routes/settings.js",
|
|
14402
|
+
"x-permissions": [
|
|
14403
|
+
"project.settings.manage"
|
|
14404
|
+
],
|
|
14405
|
+
"responses": {
|
|
14406
|
+
"200": {
|
|
14407
|
+
"description": "Success."
|
|
14408
|
+
},
|
|
14409
|
+
"400": {
|
|
14410
|
+
"$ref": "#/components/responses/BadRequest"
|
|
14411
|
+
},
|
|
14412
|
+
"401": {
|
|
14413
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
14414
|
+
},
|
|
14415
|
+
"403": {
|
|
14416
|
+
"$ref": "#/components/responses/Forbidden"
|
|
14417
|
+
}
|
|
14418
|
+
},
|
|
14419
|
+
"security": [
|
|
14420
|
+
{
|
|
14421
|
+
"builderSession": []
|
|
14422
|
+
}
|
|
14423
|
+
]
|
|
14424
|
+
}
|
|
14425
|
+
},
|
|
14272
14426
|
"/me": {
|
|
14273
14427
|
"get": {
|
|
14274
14428
|
"operationId": "get_me",
|
|
@@ -26132,7 +26286,7 @@
|
|
|
26132
26286
|
"store"
|
|
26133
26287
|
],
|
|
26134
26288
|
"summary": "GET /store/modules",
|
|
26135
|
-
"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. `?sort=<part>` orders the listed modules by the part a buyer cares about (task 1003800, sortByPart); the parts it accepts come back as sort_parts. Without it the listed modules are ranked quality first, price breaking ties (task 1003808, rankListed); `?max_cents=`
|
|
26289
|
+
"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. `?sort=<part>` orders the listed modules by the part a buyer cares about (task 1003800, sortByPart); the parts it accepts come back as sort_parts. Without it the listed modules are ranked quality first, price breaking ties (task 1003808, rankListed); `?max_cents=` leaves out modules that cost more. 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).",
|
|
26136
26290
|
"x-rank": "any-builder",
|
|
26137
26291
|
"x-source": "src/bongos/routes/modules.js",
|
|
26138
26292
|
"responses": {
|
|
@@ -26483,7 +26637,7 @@
|
|
|
26483
26637
|
"store"
|
|
26484
26638
|
],
|
|
26485
26639
|
"summary": "POST /store/modules/:key/price",
|
|
26486
|
-
"description": "POST /api/bongos/store/modules/:key/price — the module's author sets its price (task 1004894, criterion wa5-module-economy). Body: { cents
|
|
26640
|
+
"description": "POST /api/bongos/store/modules/:key/price — the module's author sets its price (task 1004894, criterion wa5-module-economy). Body: { cents }, a whole number of 0 or more; 0 is free. A credit price is refused (task 1004989, ADR 0385 decision 2: credits never price or buy a module). Appends a row to the price history; the newest is what the catalog shows and what acquire charges. A paid price may be set before buying exists (owner, 2026-10-26): the catalog marks it not yet buyable. Price never moves the score (ADR 0343 D6). The audit middleware records who changed it and to what. rank: metic+archon — the same gate as publishing (module.submit), plus the author check inside setPrice: only the person who published the module prices it.\n\n**Rank:** `metic+archon` — Metic or Archon rank (review/triage powers).\n\n**Permissions:** `module.submit` (all required).",
|
|
26487
26641
|
"x-rank": "metic+archon",
|
|
26488
26642
|
"x-source": "src/bongos/routes/modules.js",
|
|
26489
26643
|
"x-permissions": [
|
|
@@ -33196,6 +33350,15 @@
|
|
|
33196
33350
|
"idea"
|
|
33197
33351
|
]
|
|
33198
33352
|
},
|
|
33353
|
+
"PatchMarketWatchSettingsRequest": {
|
|
33354
|
+
"type": "object",
|
|
33355
|
+
"properties": {
|
|
33356
|
+
"enabled": {},
|
|
33357
|
+
"monthly_cap_usd": {},
|
|
33358
|
+
"cadence": {}
|
|
33359
|
+
},
|
|
33360
|
+
"additionalProperties": false
|
|
33361
|
+
},
|
|
33199
33362
|
"PatchMeCoreMoveSeenRequest": {
|
|
33200
33363
|
"type": "object",
|
|
33201
33364
|
"properties": {
|
|
@@ -39520,8 +39683,11 @@
|
|
|
39520
39683
|
"PostStoreModulesKeyPriceRequest": {
|
|
39521
39684
|
"type": "object",
|
|
39522
39685
|
"properties": {
|
|
39523
|
-
"cents": {
|
|
39524
|
-
|
|
39686
|
+
"cents": {
|
|
39687
|
+
"type": "integer",
|
|
39688
|
+
"minimum": 0,
|
|
39689
|
+
"maximum": 100000000
|
|
39690
|
+
}
|
|
39525
39691
|
},
|
|
39526
39692
|
"additionalProperties": false
|
|
39527
39693
|
},
|
|
@@ -40500,6 +40666,19 @@
|
|
|
40500
40666
|
},
|
|
40501
40667
|
"additionalProperties": false
|
|
40502
40668
|
},
|
|
40669
|
+
"PutMarketWatchSettingsKeyRequest": {
|
|
40670
|
+
"type": "object",
|
|
40671
|
+
"properties": {
|
|
40672
|
+
"key": {
|
|
40673
|
+
"type": "string",
|
|
40674
|
+
"maxLength": 512
|
|
40675
|
+
}
|
|
40676
|
+
},
|
|
40677
|
+
"required": [
|
|
40678
|
+
"key"
|
|
40679
|
+
],
|
|
40680
|
+
"additionalProperties": false
|
|
40681
|
+
},
|
|
40503
40682
|
"PutMingleOptInRequest": {
|
|
40504
40683
|
"type": "object",
|
|
40505
40684
|
"properties": {
|
|
@@ -40801,8 +40980,8 @@
|
|
|
40801
40980
|
"description": "A required dependency/feature is not configured or is temporarily down."
|
|
40802
40981
|
}
|
|
40803
40982
|
},
|
|
40804
|
-
"x-endpoint-count":
|
|
40805
|
-
"x-schema-count":
|
|
40983
|
+
"x-endpoint-count": 647,
|
|
40984
|
+
"x-schema-count": 693,
|
|
40806
40985
|
"x-undocumented-bodies": 12,
|
|
40807
40986
|
"x-response-schemas": 444,
|
|
40808
40987
|
"x-generated-by": "scripts/bongos/gen-api-docs.js"
|
package/docs/api-reference.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Bongos API reference
|
|
4
4
|
|
|
5
|
-
> **Generated from the live route files** — the route file is authoritative.
|
|
5
|
+
> **Generated from the live route files** — the route file is authoritative. 647 endpoints across 108 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`.
|
|
@@ -520,7 +520,7 @@ Base path: `/api/bongos`. Ranks (enforced server-side, [ADR 0016](adr/0016-trust
|
|
|
520
520
|
| POST | `/api/bongos/llm-cache/lookup` | `metic+archon` | `cache_key`, `tokens_saved_est` | POST /llm-cache/lookup — hit/miss + atomic hit_count bump. |
|
|
521
521
|
| POST | `/api/bongos/llm-cache/store` | `metic+archon` | `spec`, `result_stdout`, `result_cost_usd` | POST /llm-cache/store — upsert a freshly-produced result. |
|
|
522
522
|
|
|
523
|
-
## `market-watch` (
|
|
523
|
+
## `market-watch` (10)
|
|
524
524
|
|
|
525
525
|
| Method | Path | Rank | Body | Description |
|
|
526
526
|
|---|---|---|---|---|
|
|
@@ -530,6 +530,10 @@ Base path: `/api/bongos`. Ranks (enforced server-side, [ADR 0016](adr/0016-trust
|
|
|
530
530
|
| POST | `/api/bongos/market-watch/proposals/:id/vote` | `metic+archon` | — | PUT TO A VOTE. |
|
|
531
531
|
| GET | `/api/bongos/market-watch/rules` | `any-builder` | — | every member reads the rules (the task); the read grants nothing. |
|
|
532
532
|
| POST | `/api/bongos/market-watch/rules/proposals` | `any-builder` | `step`, `change`, `reason` | Any signed-in member may propose (the task: "every member can read the page and can propose"). |
|
|
533
|
+
| GET | `/api/bongos/market-watch/settings` | `metic+archon` | — | |
|
|
534
|
+
| PATCH | `/api/bongos/market-watch/settings` | `metic+archon` | `enabled`, `monthly_cap_usd`, `cadence` | |
|
|
535
|
+
| PUT | `/api/bongos/market-watch/settings/key` | `metic+archon` | `key` | |
|
|
536
|
+
| DELETE | `/api/bongos/market-watch/settings/key` | `metic+archon` | — | |
|
|
533
537
|
|
|
534
538
|
## `me` (55)
|
|
535
539
|
|
|
@@ -953,7 +957,7 @@ Base path: `/api/bongos`. Ranks (enforced server-side, [ADR 0016](adr/0016-trust
|
|
|
953
957
|
| 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). |
|
|
954
958
|
| GET | `/api/bongos/store/modules/:key/entitlement` | `any-builder` | — | |
|
|
955
959
|
| GET | `/api/bongos/store/modules/:key/listing` | `any-builder` | — | GET /api/bongos/store/modules/:key/listing — whether one module is in the catalog and why (task 1003810): the reason in a sentence, what … |
|
|
956
|
-
| POST | `/api/bongos/store/modules/:key/price` | `metic+archon` | `cents
|
|
960
|
+
| POST | `/api/bongos/store/modules/:key/price` | `metic+archon` | `cents` | POST /api/bongos/store/modules/:key/price — the module's author sets its price (task 1004894, criterion wa5-module-economy). |
|
|
957
961
|
| 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). |
|
|
958
962
|
| GET | `/api/bongos/store/modules/:key/versions/:version/channel` | `any-builder` | — | GET /api/bongos/store/modules/:key/versions/:version/channel — where a version stands on the promotion gate (task 1003804, ADR 0344 D3): … |
|
|
959
963
|
| POST | `/api/bongos/store/modules/:key/versions/:version/error-count` | `any-builder` | `day`, `count` | |
|
package/docs/architecture.md
CHANGED
|
@@ -253,8 +253,8 @@ store_module_versions(id, module_key, version exact X.Y.Z, core_version, manifes
|
|
|
253
253
|
tree_sha256, tarball_sha256, tarball_bytes, artifact_path, published_by,
|
|
254
254
|
published_at, UNIQUE(module_key, version)) -- immutable; a fix is a new version
|
|
255
255
|
store_module_prices(id, module_key, price_cents, price_credits, set_by, set_at)
|
|
256
|
-
-- history; newest row per module is current.
|
|
257
|
-
--
|
|
256
|
+
-- history; newest row per module is current. Cash only since core_287 (task 1004989):
|
|
257
|
+
-- price_credits is historical, a credit-only newest row reads "price coming". 0 cents = free.
|
|
258
258
|
```
|
|
259
259
|
|
|
260
260
|
Passkey foundation (migration `core_277`, task 1004750, [ADR 0382](adr/0382-a-hardware-card-is-a-passkey-step-up-an-archon-switches-on-per-builder.md) D1/D6 — storage only; the ceremonies and routes are their own tasks; code in `src/bongos/passkeys.js`):
|