@bongos/core 1.21.127 → 1.21.129
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 +66 -26
- package/bin/bongos.js +1 -0
- package/clients/bongos-client/README.md +1 -1
- package/clients/bongos-client/bongos-client.global.js +6 -0
- package/clients/bongos-client/index.cjs +6 -0
- package/clients/bongos-client/index.d.ts +8 -0
- package/clients/bongos-client/index.mjs +6 -0
- package/docs/api/openapi.json +147 -2
- package/docs/api-reference.md +5 -2
- package/docs/architecture.md +12 -0
- package/docs/file-map.md +2 -1
- package/docs/module-api-changelog.md +4 -0
- package/migrations/core_276_module_release_channels.sql +73 -0
- package/modules/onboarding/howto-moments.js +91 -0
- package/modules/onboarding/howto-state.js +108 -0
- package/modules/onboarding/migrations/onboarding_001_howto_reads.sql +33 -0
- package/modules/onboarding/module.json +1 -1
- package/modules/onboarding/routes/onboarding.js +48 -1
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/release-notes.json +16 -0
- package/scripts/gds/claude-md-template.js +1 -0
- package/scripts/gds/howto.js +65 -0
- package/src/module-api.js +1 -1
- package/tests/howto_moments.mjs +136 -0
- package/tests/howto_state.mjs +178 -0
- package/tests/module_release_channels.mjs +58 -0
- package/tests/own_scope_guard.mjs +6 -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.129",
|
|
6
|
+
"core_contract": "1.21.129",
|
|
7
|
+
"source_commit": "e1853bcff638c4af78b2c735629a68e92b323d41",
|
|
8
8
|
"source_ref": "HEAD",
|
|
9
|
-
"built_at": "2026-10-
|
|
9
|
+
"built_at": "2026-10-15T16:58:38.452Z",
|
|
10
10
|
"redaction": {
|
|
11
11
|
"model": "docs-redacted+functional-verbatim",
|
|
12
12
|
"docs_redacted": 606,
|
|
13
13
|
"agent_docs_stubbed": 28,
|
|
14
|
-
"functional_verbatim":
|
|
14
|
+
"functional_verbatim": 3146,
|
|
15
15
|
"rules": 3,
|
|
16
16
|
"gate_literals": 3,
|
|
17
17
|
"gate": "passed"
|
|
18
18
|
},
|
|
19
|
-
"file_count":
|
|
20
|
-
"tree_sha256": "
|
|
19
|
+
"file_count": 3781,
|
|
20
|
+
"tree_sha256": "86956dd5cf1f736d879fcefe1c8c370b4b62f58d3e0cb3876a00e8d4d0c25d0c",
|
|
21
21
|
"files": [
|
|
22
22
|
{
|
|
23
23
|
"path": ".claude/skills/ask-for-help/SKILL.md",
|
|
@@ -312,17 +312,17 @@
|
|
|
312
312
|
{
|
|
313
313
|
"path": "bin/bongos.js",
|
|
314
314
|
"mode": "0000755",
|
|
315
|
-
"sha256": "
|
|
315
|
+
"sha256": "656e91004fc2236dfd121dd3f46848ba5a51331c2eb17095398eb30a5255b7ef"
|
|
316
316
|
},
|
|
317
317
|
{
|
|
318
318
|
"path": "clients/bongos-client/README.md",
|
|
319
319
|
"mode": "0000644",
|
|
320
|
-
"sha256": "
|
|
320
|
+
"sha256": "9aea69205101517f33e85bd80593333deb8a015d6c98ae55d73ddc59c3067d12"
|
|
321
321
|
},
|
|
322
322
|
{
|
|
323
323
|
"path": "clients/bongos-client/bongos-client.global.js",
|
|
324
324
|
"mode": "0000644",
|
|
325
|
-
"sha256": "
|
|
325
|
+
"sha256": "23208de4f2aa8f0c1c5ec2f7939e637224280c3cf520958148549e2f79c02c9d"
|
|
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": "25dd808eae862cd02ed9a494f5e0ce2ee8d31bb664f78a23c151a95dc1f0c25f"
|
|
336
336
|
},
|
|
337
337
|
{
|
|
338
338
|
"path": "clients/bongos-client/index.d.ts",
|
|
339
339
|
"mode": "0000644",
|
|
340
|
-
"sha256": "
|
|
340
|
+
"sha256": "d98b7b69f7e2db071b9b10e5e039afdf95262b7196450ef56c73c0acac8717a7"
|
|
341
341
|
},
|
|
342
342
|
{
|
|
343
343
|
"path": "clients/bongos-client/index.mjs",
|
|
344
344
|
"mode": "0000644",
|
|
345
|
-
"sha256": "
|
|
345
|
+
"sha256": "c3a776cd09ddde2c4d1d3ed8b3f90daed304c6cc8d459a688585526360c2b5e5"
|
|
346
346
|
},
|
|
347
347
|
{
|
|
348
348
|
"path": "clients/bongos-client/package.json",
|
|
@@ -2377,17 +2377,17 @@
|
|
|
2377
2377
|
{
|
|
2378
2378
|
"path": "docs/api-reference.md",
|
|
2379
2379
|
"mode": "0000644",
|
|
2380
|
-
"sha256": "
|
|
2380
|
+
"sha256": "9ec7dd570500edd3705cd871886734d89780b92df6f185cdc86002288fe7aa7d"
|
|
2381
2381
|
},
|
|
2382
2382
|
{
|
|
2383
2383
|
"path": "docs/api/openapi.json",
|
|
2384
2384
|
"mode": "0000644",
|
|
2385
|
-
"sha256": "
|
|
2385
|
+
"sha256": "319fce626080497fdf50a50064f0faa56951b1aa021e97edd6ad481d8ee5c9b9"
|
|
2386
2386
|
},
|
|
2387
2387
|
{
|
|
2388
2388
|
"path": "docs/architecture.md",
|
|
2389
2389
|
"mode": "0000644",
|
|
2390
|
-
"sha256": "
|
|
2390
|
+
"sha256": "fca9878d8501b33c0258045f61365a90e60e148c2b730b00a83a6f4f89b79b8d"
|
|
2391
2391
|
},
|
|
2392
2392
|
{
|
|
2393
2393
|
"path": "docs/branding-contract.md",
|
|
@@ -2912,7 +2912,7 @@
|
|
|
2912
2912
|
{
|
|
2913
2913
|
"path": "docs/file-map.md",
|
|
2914
2914
|
"mode": "0000644",
|
|
2915
|
-
"sha256": "
|
|
2915
|
+
"sha256": "1735499acdd1ee22b83fc0be539e3371072b289b2b3c1d89e7996ec360190077"
|
|
2916
2916
|
},
|
|
2917
2917
|
{
|
|
2918
2918
|
"path": "docs/handoff-template.md",
|
|
@@ -2922,7 +2922,7 @@
|
|
|
2922
2922
|
{
|
|
2923
2923
|
"path": "docs/module-api-changelog.md",
|
|
2924
2924
|
"mode": "0000644",
|
|
2925
|
-
"sha256": "
|
|
2925
|
+
"sha256": "791b40816885c77100c1ff5ea9773f66a122d0bb6fc1dc2163fe43c5d89b0d1b"
|
|
2926
2926
|
},
|
|
2927
2927
|
{
|
|
2928
2928
|
"path": "docs/modules-contract.md",
|
|
@@ -4154,6 +4154,11 @@
|
|
|
4154
4154
|
"mode": "0000644",
|
|
4155
4155
|
"sha256": "75381af0ac96645f2f8fe254f609c75d2fa83bc2fc1f13887c23165fc8eed58e"
|
|
4156
4156
|
},
|
|
4157
|
+
{
|
|
4158
|
+
"path": "migrations/core_276_module_release_channels.sql",
|
|
4159
|
+
"mode": "0000644",
|
|
4160
|
+
"sha256": "550884fa117e707b65f5c56faca0e4e3850905db94d3f275cad5d520aa68db03"
|
|
4161
|
+
},
|
|
4157
4162
|
{
|
|
4158
4163
|
"path": "modules/agents/CLAUDE.md",
|
|
4159
4164
|
"mode": "0000644",
|
|
@@ -7934,10 +7939,25 @@
|
|
|
7934
7939
|
"mode": "0000644",
|
|
7935
7940
|
"sha256": "18984c946d746da66ff7678379e9f49c9cfdcdb8f70d2acd852ab29c820baad0"
|
|
7936
7941
|
},
|
|
7942
|
+
{
|
|
7943
|
+
"path": "modules/onboarding/howto-moments.js",
|
|
7944
|
+
"mode": "0000644",
|
|
7945
|
+
"sha256": "1f22e2c271c92c2e1e263fab265e73b88ba796b44e519ecd5f3266b10481bf17"
|
|
7946
|
+
},
|
|
7947
|
+
{
|
|
7948
|
+
"path": "modules/onboarding/howto-state.js",
|
|
7949
|
+
"mode": "0000644",
|
|
7950
|
+
"sha256": "9b6d361568feaa4f9a9f299bddcd4bc649861cf79a9a6045ea00389bd86cc01c"
|
|
7951
|
+
},
|
|
7952
|
+
{
|
|
7953
|
+
"path": "modules/onboarding/migrations/onboarding_001_howto_reads.sql",
|
|
7954
|
+
"mode": "0000644",
|
|
7955
|
+
"sha256": "cb5a3a58b4db75c028ccc53ea3316bb733fda650218b16b494d69de58c84e982"
|
|
7956
|
+
},
|
|
7937
7957
|
{
|
|
7938
7958
|
"path": "modules/onboarding/module.json",
|
|
7939
7959
|
"mode": "0000644",
|
|
7940
|
-
"sha256": "
|
|
7960
|
+
"sha256": "363a44b85c87bfbc2bb473656319099c39e7817e47294f3ceb4a33ee6bc85421"
|
|
7941
7961
|
},
|
|
7942
7962
|
{
|
|
7943
7963
|
"path": "modules/onboarding/newcomer-restock.js",
|
|
@@ -7967,7 +7987,7 @@
|
|
|
7967
7987
|
{
|
|
7968
7988
|
"path": "modules/onboarding/routes/onboarding.js",
|
|
7969
7989
|
"mode": "0000644",
|
|
7970
|
-
"sha256": "
|
|
7990
|
+
"sha256": "011dfc781cbe8c7a17956fa2020e0327cf0e46f537a9057cf2b4911752ba813a"
|
|
7971
7991
|
},
|
|
7972
7992
|
{
|
|
7973
7993
|
"path": "modules/page-notes/CLAUDE.md",
|
|
@@ -10482,12 +10502,12 @@
|
|
|
10482
10502
|
{
|
|
10483
10503
|
"path": "package-lock.json",
|
|
10484
10504
|
"mode": "0000644",
|
|
10485
|
-
"sha256": "
|
|
10505
|
+
"sha256": "fd49f31fc91c5005e4e306248e0745842d89df367cdb32fd03b04b5bc844bffb"
|
|
10486
10506
|
},
|
|
10487
10507
|
{
|
|
10488
10508
|
"path": "package.json",
|
|
10489
10509
|
"mode": "0000644",
|
|
10490
|
-
"sha256": "
|
|
10510
|
+
"sha256": "da9de77dd1ad1af7aa7a30243b2f0e12b9553e10a15a858cf3e899013769f58e"
|
|
10491
10511
|
},
|
|
10492
10512
|
{
|
|
10493
10513
|
"path": "public-docs/index.html",
|
|
@@ -10507,7 +10527,7 @@
|
|
|
10507
10527
|
{
|
|
10508
10528
|
"path": "release-notes.json",
|
|
10509
10529
|
"mode": "0000644",
|
|
10510
|
-
"sha256": "
|
|
10530
|
+
"sha256": "7211540da2e00897f888df0f4642fd0d286a04ed3433bb0683d1acb7843d8b77"
|
|
10511
10531
|
},
|
|
10512
10532
|
{
|
|
10513
10533
|
"path": "scripts/cron/style_guide_audit.sh",
|
|
@@ -10832,7 +10852,7 @@
|
|
|
10832
10852
|
{
|
|
10833
10853
|
"path": "scripts/gds/claude-md-template.js",
|
|
10834
10854
|
"mode": "0000644",
|
|
10835
|
-
"sha256": "
|
|
10855
|
+
"sha256": "e783238968b9c1dcac8e7d9e49f0f4520bde8369e95e111dcd086cb77ab28189"
|
|
10836
10856
|
},
|
|
10837
10857
|
{
|
|
10838
10858
|
"path": "scripts/gds/cleanup-orphans.js",
|
|
@@ -11239,6 +11259,11 @@
|
|
|
11239
11259
|
"mode": "0000644",
|
|
11240
11260
|
"sha256": "b7c61201d165b8c2b7e51b3a057153c3c7238bfc8bd55412acaf0ba87acd367d"
|
|
11241
11261
|
},
|
|
11262
|
+
{
|
|
11263
|
+
"path": "scripts/gds/howto.js",
|
|
11264
|
+
"mode": "0000644",
|
|
11265
|
+
"sha256": "febb8812a719ca76ef34b312b387953b723add58357441888183ba1e9577e45f"
|
|
11266
|
+
},
|
|
11242
11267
|
{
|
|
11243
11268
|
"path": "scripts/gds/http-api-client.js",
|
|
11244
11269
|
"mode": "0000644",
|
|
@@ -12857,7 +12882,7 @@
|
|
|
12857
12882
|
{
|
|
12858
12883
|
"path": "src/module-api.js",
|
|
12859
12884
|
"mode": "0000644",
|
|
12860
|
-
"sha256": "
|
|
12885
|
+
"sha256": "854a2036806028bf527d76593e2c9a5e5b57d7daa1183f18065889afe9f6d373"
|
|
12861
12886
|
},
|
|
12862
12887
|
{
|
|
12863
12888
|
"path": "src/module-loader/catalog.js",
|
|
@@ -15639,6 +15664,16 @@
|
|
|
15639
15664
|
"mode": "0000644",
|
|
15640
15665
|
"sha256": "8e9b206fdde738f289bc11e204852595e9128b523cfc20cd67e3e83fb60a2fac"
|
|
15641
15666
|
},
|
|
15667
|
+
{
|
|
15668
|
+
"path": "tests/howto_moments.mjs",
|
|
15669
|
+
"mode": "0000644",
|
|
15670
|
+
"sha256": "6fc5a865345c3db90336748eebd79425ee64496b73dd98f89c87d9da21174e54"
|
|
15671
|
+
},
|
|
15672
|
+
{
|
|
15673
|
+
"path": "tests/howto_state.mjs",
|
|
15674
|
+
"mode": "0000644",
|
|
15675
|
+
"sha256": "8b8d3eeeffd1bb7d0deaec51c91165b06302737b72b1a710547340c7ecadcec6"
|
|
15676
|
+
},
|
|
15642
15677
|
{
|
|
15643
15678
|
"path": "tests/html_comment_nesting.mjs",
|
|
15644
15679
|
"mode": "0000644",
|
|
@@ -16459,6 +16494,11 @@
|
|
|
16459
16494
|
"mode": "0000644",
|
|
16460
16495
|
"sha256": "4f5a0c6e24d3883a156798f17c485183cf73be2cf3a0e0c610d5014a142909e5"
|
|
16461
16496
|
},
|
|
16497
|
+
{
|
|
16498
|
+
"path": "tests/module_release_channels.mjs",
|
|
16499
|
+
"mode": "0000644",
|
|
16500
|
+
"sha256": "8607f9b60a6094296b005def559eb3cfa6861add5bfa473d9264a3dc4025bf44"
|
|
16501
|
+
},
|
|
16462
16502
|
{
|
|
16463
16503
|
"path": "tests/module_route_rank.mjs",
|
|
16464
16504
|
"mode": "0000644",
|
|
@@ -16722,7 +16762,7 @@
|
|
|
16722
16762
|
{
|
|
16723
16763
|
"path": "tests/own_scope_guard.mjs",
|
|
16724
16764
|
"mode": "0000644",
|
|
16725
|
-
"sha256": "
|
|
16765
|
+
"sha256": "cdd964e66b9ebe74c504a3916eb3a10b36497af4f5b94924534d2d73f136801a"
|
|
16726
16766
|
},
|
|
16727
16767
|
{
|
|
16728
16768
|
"path": "tests/own_session_revoke.mjs",
|
package/bin/bongos.js
CHANGED
|
@@ -82,6 +82,7 @@ const VERBS = {
|
|
|
82
82
|
status: { script: 'status.js', group: 'work', summary: 'Version / criterion progress (bongos status C8)', selfHelp: true },
|
|
83
83
|
recall: { script: 'recall.js', group: 'work', summary: 'Search the docs + project knowledge (bongos recall "x")' },
|
|
84
84
|
cost: { script: 'cost.js', group: 'work', summary: 'Log a cost entry' },
|
|
85
|
+
howto: { script: 'howto.js', group: 'work', summary: 'The how-to guide: show the unread steps for a moment (bongos howto moment first_open)' },
|
|
85
86
|
|
|
86
87
|
login: { script: 'login.js', group: 'account', summary: 'Sign in to an instance (bongos login <url> — browser click, no paste)' },
|
|
87
88
|
setup: { script: 'setup.js', group: 'account', summary: 'Full builder setup on this instance (art key, disciplines, consent)' },
|
|
@@ -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
|
+
- 558 operations across 76 resource groups
|
|
9
9
|
|
|
10
10
|
## Use it from your project
|
|
11
11
|
|
|
@@ -735,6 +735,12 @@ function createClient(opts = {}) {
|
|
|
735
735
|
getMeGuilds: (args) => request("GET", "/me/guilds", { hasBody: false }, args),
|
|
736
736
|
// PATCH /me/handle — rank: any-builder — PATCH /me/handle
|
|
737
737
|
patchMeHandle: (args) => request("PATCH", "/me/handle", { hasBody: true }, args),
|
|
738
|
+
// GET /me/howto — rank: any-builder — GET /me/howto
|
|
739
|
+
getMeHowto: (args) => request("GET", "/me/howto", { hasBody: false }, args),
|
|
740
|
+
// POST /me/howto/read — rank: any-builder — POST /me/howto/read
|
|
741
|
+
postMeHowtoRead: (args) => request("POST", "/me/howto/read", { hasBody: true }, args),
|
|
742
|
+
// POST /me/howto/reset — rank: any-builder — POST /me/howto/reset
|
|
743
|
+
postMeHowtoReset: (args) => request("POST", "/me/howto/reset", { hasBody: true }, args),
|
|
738
744
|
// GET /me/interaction — rank: any-builder — GET /me/interaction
|
|
739
745
|
getMeInteraction: (args) => request("GET", "/me/interaction", { hasBody: false }, args),
|
|
740
746
|
// PATCH /me/interaction — rank: any-builder — PATCH /me/interaction
|
|
@@ -734,6 +734,12 @@ function createClient(opts = {}) {
|
|
|
734
734
|
getMeGuilds: (args) => request("GET", "/me/guilds", { hasBody: false }, args),
|
|
735
735
|
// PATCH /me/handle — rank: any-builder — PATCH /me/handle
|
|
736
736
|
patchMeHandle: (args) => request("PATCH", "/me/handle", { hasBody: true }, args),
|
|
737
|
+
// GET /me/howto — rank: any-builder — GET /me/howto
|
|
738
|
+
getMeHowto: (args) => request("GET", "/me/howto", { hasBody: false }, args),
|
|
739
|
+
// POST /me/howto/read — rank: any-builder — POST /me/howto/read
|
|
740
|
+
postMeHowtoRead: (args) => request("POST", "/me/howto/read", { hasBody: true }, args),
|
|
741
|
+
// POST /me/howto/reset — rank: any-builder — POST /me/howto/reset
|
|
742
|
+
postMeHowtoReset: (args) => request("POST", "/me/howto/reset", { hasBody: true }, args),
|
|
737
743
|
// GET /me/interaction — rank: any-builder — GET /me/interaction
|
|
738
744
|
getMeInteraction: (args) => request("GET", "/me/interaction", { hasBody: false }, args),
|
|
739
745
|
// PATCH /me/interaction — rank: any-builder — PATCH /me/interaction
|
|
@@ -429,6 +429,8 @@ export interface PostMeAnthropicLinkRequest { anthropic_email: string; anthropic
|
|
|
429
429
|
export interface PostMeAnthropicLinkResponse { linked: unknown }
|
|
430
430
|
export interface PostMeFilterViewsRequest { page: string; name: string; values: Record<string, unknown>; is_default?: boolean }
|
|
431
431
|
export interface PostMeFilterViewsResponse { page: unknown; view: unknown; views: unknown }
|
|
432
|
+
export interface PostMeHowtoReadRequest { steps?: unknown[]; all?: boolean; how?: string }
|
|
433
|
+
export interface PostMeHowtoResetRequest { steps?: unknown[]; all?: boolean }
|
|
432
434
|
export interface PostMeSessionsRevokeAllResponse { ok: boolean; revoked: unknown }
|
|
433
435
|
export interface PostMeSessionsRevokeRequest { session_id?: StringifiableId }
|
|
434
436
|
export interface PostMeSessionsRevokeResponse { ok: boolean; revoked: unknown }
|
|
@@ -1260,6 +1262,12 @@ export interface BongosClient {
|
|
|
1260
1262
|
getMeGuilds(args?: RequestArgs): Promise<GetMeGuildsResponse>;
|
|
1261
1263
|
/** PATCH /me/handle — rank: any-builder */
|
|
1262
1264
|
patchMeHandle(args: RequestArgs & { body: PatchMeHandleRequest }): Promise<PatchMeHandleResponse>;
|
|
1265
|
+
/** GET /me/howto — rank: any-builder */
|
|
1266
|
+
getMeHowto(args?: RequestArgs): Promise<ApiResponse>;
|
|
1267
|
+
/** POST /me/howto/read — rank: any-builder */
|
|
1268
|
+
postMeHowtoRead(args?: RequestArgs & { body?: PostMeHowtoReadRequest }): Promise<ApiResponse>;
|
|
1269
|
+
/** POST /me/howto/reset — rank: any-builder */
|
|
1270
|
+
postMeHowtoReset(args?: RequestArgs & { body?: PostMeHowtoResetRequest }): Promise<ApiResponse>;
|
|
1263
1271
|
/** GET /me/interaction — rank: any-builder */
|
|
1264
1272
|
getMeInteraction(args?: RequestArgs): Promise<ApiResponse>;
|
|
1265
1273
|
/** PATCH /me/interaction — rank: any-builder */
|
|
@@ -731,6 +731,12 @@ export function createClient(opts = {}) {
|
|
|
731
731
|
getMeGuilds: (args) => request("GET", "/me/guilds", { hasBody: false }, args),
|
|
732
732
|
// PATCH /me/handle — rank: any-builder — PATCH /me/handle
|
|
733
733
|
patchMeHandle: (args) => request("PATCH", "/me/handle", { hasBody: true }, args),
|
|
734
|
+
// GET /me/howto — rank: any-builder — GET /me/howto
|
|
735
|
+
getMeHowto: (args) => request("GET", "/me/howto", { hasBody: false }, args),
|
|
736
|
+
// POST /me/howto/read — rank: any-builder — POST /me/howto/read
|
|
737
|
+
postMeHowtoRead: (args) => request("POST", "/me/howto/read", { hasBody: true }, args),
|
|
738
|
+
// POST /me/howto/reset — rank: any-builder — POST /me/howto/reset
|
|
739
|
+
postMeHowtoReset: (args) => request("POST", "/me/howto/reset", { hasBody: true }, args),
|
|
734
740
|
// GET /me/interaction — rank: any-builder — GET /me/interaction
|
|
735
741
|
getMeInteraction: (args) => request("GET", "/me/interaction", { hasBody: false }, args),
|
|
736
742
|
// PATCH /me/interaction — rank: any-builder — PATCH /me/interaction
|
package/docs/api/openapi.json
CHANGED
|
@@ -13518,6 +13518,121 @@
|
|
|
13518
13518
|
]
|
|
13519
13519
|
}
|
|
13520
13520
|
},
|
|
13521
|
+
"/me/howto": {
|
|
13522
|
+
"get": {
|
|
13523
|
+
"operationId": "get_me_howto",
|
|
13524
|
+
"tags": [
|
|
13525
|
+
"me"
|
|
13526
|
+
],
|
|
13527
|
+
"summary": "GET /me/howto",
|
|
13528
|
+
"description": "the caller's own read state.\n\n**Rank:** `any-builder` — Any authenticated builder (row-level ownership enforced in-handler).",
|
|
13529
|
+
"x-rank": "any-builder",
|
|
13530
|
+
"x-source": "modules/onboarding/routes/onboarding.js",
|
|
13531
|
+
"responses": {
|
|
13532
|
+
"200": {
|
|
13533
|
+
"description": "Success."
|
|
13534
|
+
},
|
|
13535
|
+
"400": {
|
|
13536
|
+
"$ref": "#/components/responses/BadRequest"
|
|
13537
|
+
},
|
|
13538
|
+
"401": {
|
|
13539
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
13540
|
+
},
|
|
13541
|
+
"403": {
|
|
13542
|
+
"$ref": "#/components/responses/Forbidden"
|
|
13543
|
+
}
|
|
13544
|
+
},
|
|
13545
|
+
"security": [
|
|
13546
|
+
{
|
|
13547
|
+
"builderSession": []
|
|
13548
|
+
}
|
|
13549
|
+
]
|
|
13550
|
+
}
|
|
13551
|
+
},
|
|
13552
|
+
"/me/howto/read": {
|
|
13553
|
+
"post": {
|
|
13554
|
+
"operationId": "post_me_howto_read",
|
|
13555
|
+
"tags": [
|
|
13556
|
+
"me"
|
|
13557
|
+
],
|
|
13558
|
+
"summary": "POST /me/howto/read",
|
|
13559
|
+
"description": "marks the caller's own steps read ({ steps }) or skips the guide ({ all: true, how: 'skipped' }).\n\n**Rank:** `any-builder` — Any authenticated builder (row-level ownership enforced in-handler).",
|
|
13560
|
+
"x-rank": "any-builder",
|
|
13561
|
+
"x-source": "modules/onboarding/routes/onboarding.js",
|
|
13562
|
+
"requestBody": {
|
|
13563
|
+
"required": false,
|
|
13564
|
+
"content": {
|
|
13565
|
+
"application/json": {
|
|
13566
|
+
"schema": {
|
|
13567
|
+
"$ref": "#/components/schemas/PostMeHowtoReadRequest"
|
|
13568
|
+
}
|
|
13569
|
+
}
|
|
13570
|
+
},
|
|
13571
|
+
"x-validated": true
|
|
13572
|
+
},
|
|
13573
|
+
"responses": {
|
|
13574
|
+
"200": {
|
|
13575
|
+
"description": "Success."
|
|
13576
|
+
},
|
|
13577
|
+
"400": {
|
|
13578
|
+
"$ref": "#/components/responses/ValidationFailed"
|
|
13579
|
+
},
|
|
13580
|
+
"401": {
|
|
13581
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
13582
|
+
},
|
|
13583
|
+
"403": {
|
|
13584
|
+
"$ref": "#/components/responses/Forbidden"
|
|
13585
|
+
}
|
|
13586
|
+
},
|
|
13587
|
+
"security": [
|
|
13588
|
+
{
|
|
13589
|
+
"builderSession": []
|
|
13590
|
+
}
|
|
13591
|
+
]
|
|
13592
|
+
}
|
|
13593
|
+
},
|
|
13594
|
+
"/me/howto/reset": {
|
|
13595
|
+
"post": {
|
|
13596
|
+
"operationId": "post_me_howto_reset",
|
|
13597
|
+
"tags": [
|
|
13598
|
+
"me"
|
|
13599
|
+
],
|
|
13600
|
+
"summary": "POST /me/howto/reset",
|
|
13601
|
+
"description": "forgets the caller's own marks ({ steps }, or everything when none are named).\n\n**Rank:** `any-builder` — Any authenticated builder (row-level ownership enforced in-handler).",
|
|
13602
|
+
"x-rank": "any-builder",
|
|
13603
|
+
"x-source": "modules/onboarding/routes/onboarding.js",
|
|
13604
|
+
"requestBody": {
|
|
13605
|
+
"required": false,
|
|
13606
|
+
"content": {
|
|
13607
|
+
"application/json": {
|
|
13608
|
+
"schema": {
|
|
13609
|
+
"$ref": "#/components/schemas/PostMeHowtoResetRequest"
|
|
13610
|
+
}
|
|
13611
|
+
}
|
|
13612
|
+
},
|
|
13613
|
+
"x-validated": true
|
|
13614
|
+
},
|
|
13615
|
+
"responses": {
|
|
13616
|
+
"200": {
|
|
13617
|
+
"description": "Success."
|
|
13618
|
+
},
|
|
13619
|
+
"400": {
|
|
13620
|
+
"$ref": "#/components/responses/ValidationFailed"
|
|
13621
|
+
},
|
|
13622
|
+
"401": {
|
|
13623
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
13624
|
+
},
|
|
13625
|
+
"403": {
|
|
13626
|
+
"$ref": "#/components/responses/Forbidden"
|
|
13627
|
+
}
|
|
13628
|
+
},
|
|
13629
|
+
"security": [
|
|
13630
|
+
{
|
|
13631
|
+
"builderSession": []
|
|
13632
|
+
}
|
|
13633
|
+
]
|
|
13634
|
+
}
|
|
13635
|
+
},
|
|
13521
13636
|
"/me/interaction": {
|
|
13522
13637
|
"get": {
|
|
13523
13638
|
"operationId": "get_me_interaction",
|
|
@@ -32403,6 +32518,36 @@
|
|
|
32403
32518
|
"views"
|
|
32404
32519
|
]
|
|
32405
32520
|
},
|
|
32521
|
+
"PostMeHowtoReadRequest": {
|
|
32522
|
+
"type": "object",
|
|
32523
|
+
"properties": {
|
|
32524
|
+
"steps": {
|
|
32525
|
+
"type": "array",
|
|
32526
|
+
"maxItems": 100
|
|
32527
|
+
},
|
|
32528
|
+
"all": {
|
|
32529
|
+
"type": "boolean"
|
|
32530
|
+
},
|
|
32531
|
+
"how": {
|
|
32532
|
+
"type": "string",
|
|
32533
|
+
"maxLength": 16
|
|
32534
|
+
}
|
|
32535
|
+
},
|
|
32536
|
+
"additionalProperties": false
|
|
32537
|
+
},
|
|
32538
|
+
"PostMeHowtoResetRequest": {
|
|
32539
|
+
"type": "object",
|
|
32540
|
+
"properties": {
|
|
32541
|
+
"steps": {
|
|
32542
|
+
"type": "array",
|
|
32543
|
+
"maxItems": 100
|
|
32544
|
+
},
|
|
32545
|
+
"all": {
|
|
32546
|
+
"type": "boolean"
|
|
32547
|
+
}
|
|
32548
|
+
},
|
|
32549
|
+
"additionalProperties": false
|
|
32550
|
+
},
|
|
32406
32551
|
"PostMeSessionsRevokeAllResponse": {
|
|
32407
32552
|
"type": "object",
|
|
32408
32553
|
"properties": {
|
|
@@ -35469,8 +35614,8 @@
|
|
|
35469
35614
|
"description": "A required dependency/feature is not configured or is temporarily down."
|
|
35470
35615
|
}
|
|
35471
35616
|
},
|
|
35472
|
-
"x-endpoint-count":
|
|
35473
|
-
"x-schema-count":
|
|
35617
|
+
"x-endpoint-count": 558,
|
|
35618
|
+
"x-schema-count": 594,
|
|
35474
35619
|
"x-undocumented-bodies": 12,
|
|
35475
35620
|
"x-response-schemas": 390,
|
|
35476
35621
|
"x-generated-by": "scripts/gds/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. 558 endpoints across 95 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`.
|
|
@@ -489,7 +489,7 @@ Base path: `/api/bongos`. Ranks (enforced server-side, [ADR 0016](adr/0016-trust
|
|
|
489
489
|
| POST | `/api/bongos/llm-cache/lookup` | `metic+archon` | `cache_key`, `tokens_saved_est` | POST /llm-cache/lookup — hit/miss + atomic hit_count bump. |
|
|
490
490
|
| POST | `/api/bongos/llm-cache/store` | `metic+archon` | `spec`, `result_stdout`, `result_cost_usd` | POST /llm-cache/store — upsert a freshly-produced result. |
|
|
491
491
|
|
|
492
|
-
## `me` (
|
|
492
|
+
## `me` (42)
|
|
493
493
|
|
|
494
494
|
| Method | Path | Rank | Body | Description |
|
|
495
495
|
|---|---|---|---|---|
|
|
@@ -512,6 +512,9 @@ Base path: `/api/bongos`. Ranks (enforced server-side, [ADR 0016](adr/0016-trust
|
|
|
512
512
|
| GET | `/api/bongos/me/guild-requests` | `any-builder` | — | MY queue: invites addressed to me, each carrying the card (the guild's current visibility, which an accept must echo back), the join requ… |
|
|
513
513
|
| GET | `/api/bongos/me/guilds` | `any-builder` | — | MY guilds, each with my own two switches. |
|
|
514
514
|
| PATCH | `/api/bongos/me/handle` | `any-builder` | `handle` | rename the caller's OWN handle (own data, keyed on the authenticated github_id). |
|
|
515
|
+
| GET | `/api/bongos/me/howto` | `any-builder` | — | the caller's own read state. |
|
|
516
|
+
| POST | `/api/bongos/me/howto/read` | `any-builder` | `steps`, `all`, `how` | marks the caller's own steps read ({ steps }) or skips the guide ({ all: true, how: 'skipped' }). |
|
|
517
|
+
| POST | `/api/bongos/me/howto/reset` | `any-builder` | `steps`, `all` | forgets the caller's own marks ({ steps }, or everything when none are named). |
|
|
515
518
|
| GET | `/api/bongos/me/interaction` | `any-builder` | — | Per-builder INTERACTION PROFILE (task 2010, shares the behavior_prefs jsonb / migration 119). |
|
|
516
519
|
| PATCH | `/api/bongos/me/interaction` | `any-builder` | _undocumented_ | PATCH the interaction profile. |
|
|
517
520
|
| GET | `/api/bongos/me/model-allocation` | `any-builder` | — | |
|
package/docs/architecture.md
CHANGED
|
@@ -251,6 +251,18 @@ store_module_prices(id, module_key, price_cents, price_credits, set_by, set_at)
|
|
|
251
251
|
-- in that currency, at least one must be set.
|
|
252
252
|
```
|
|
253
253
|
|
|
254
|
+
Module release channels (migration `core_276`, task 1003815, [ADR 0344](adr/0344-a-tester-is-a-project-that-opts-in-once.md) — which channel a published version is on; the data only, the tester-first publish, promotion gate and channel-aware install are their own tasks):
|
|
255
|
+
|
|
256
|
+
```
|
|
257
|
+
store_release_channels(channel PK, description, serves_installs, sort_order, created_at)
|
|
258
|
+
-- rows, not a CHECK: tester + general serve installs, withdrawn never does;
|
|
259
|
+
-- a new channel is an INSERT, not a schema change.
|
|
260
|
+
store_module_version_channels(id, version_id FK store_module_versions, channel FK,
|
|
261
|
+
reason short code, set_by builder | NULL (system), set_at)
|
|
262
|
+
-- history; newest row per version is current. Pre-existing versions were
|
|
263
|
+
-- backfilled to general ('predates_staged_rollout').
|
|
264
|
+
```
|
|
265
|
+
|
|
254
266
|
Module entitlements (migration `core_259`, task 1003813 — who holds which module, at which version; the record install, update and the telemetry signals consult; it records ownership, never payment — area 8 owns money):
|
|
255
267
|
|
|
256
268
|
```
|
package/docs/file-map.md
CHANGED
|
@@ -169,6 +169,7 @@
|
|
|
169
169
|
│ ├── linkify-refs.js ← rewrite bare `#NNN` task refs across ALL docs → status-dashboard permalinks (stops GitHub's PR/issue autolinker mis-linking them); conservative classifier, token-free id list via /public/ref-ids; --apply / --check (CI gate: tests/linkify_check.mjs, in the required `unit` check) / --dry-run default ([#604](https://example.com/builders#/task/604), [#653](https://example.com/builders#/task/653)).
|
|
170
170
|
│ ├── release.js ← resolve claim as abandoned (`/builder-release`)
|
|
171
171
|
│ ├── cost.js ← log a cost entry (`/builder-cost`)
|
|
172
|
+
│ ├── howto.js ← the how-to guide for AI tools without hooks: `bongos howto moment <id>` prints + marks read the person's unread steps for a moment (task 1004635)
|
|
172
173
|
│ ├── me.js ← current builder profile + leaderboard
|
|
173
174
|
│ ├── goal.js ← goal board CLI: `list` (rollup per goal) + `show <id>` (criteria, tasks, waits-on, next claimable)
|
|
174
175
|
│ ├── seed-v3-tasks.js ← V3 Planning Session #1: 80 net-new GDS-V3 tasks (V3.R01–V3.R89) + 10 idea_inbox promotions; idempotent on source_ref
|
|
@@ -472,7 +473,7 @@ To install on a new machine, symlink each routine's directory under `~/.claude/s
|
|
|
472
473
|
├── rank-change-greeting.js ← promotion/demotion greeting (V3.R28 #249); spawned by session-start.js, also runnable standalone
|
|
473
474
|
├── pull-memory.js ← memory pull-on-session-start (V3.R56 #275); spawned by session-start.js (kill-switches: OTB_MEMORY_PULL_OFF / OTB_SUBAGENT)
|
|
474
475
|
├── recall-hints.js ← SessionStart: when the session opens holding a claim, surface the top project-knowledge hits for that task via POST /api/bongos/search (#963/V4.R25, ADR 0060)
|
|
475
|
-
├── conductor.js ← UserPromptSubmit: MAS Conductor advisory + dispatch directive (#427/#439); self-gates on OTB_CONDUCTOR_OFF / OTB_SUBAGENT
|
|
476
|
+
├── conductor.js ← UserPromptSubmit: MAS Conductor advisory + dispatch directive (#427/#439); self-gates on OTB_CONDUCTOR_OFF / OTB_SUBAGENT; also delivers the how-to step for the moment and marks it read (task 1004635)
|
|
476
477
|
├── session-cards.js ← UserPromptSubmit: deterministic delivery of READ-ONLY in-session cards (builder-start, status) — pre-renders the card + injects a one-step render directive (task 1288)
|
|
477
478
|
├── lifecycle-card.js ← PostToolUse (Bash|PowerShell): deterministic delivery of MUTATING lifecycle cards (claim/ship/release) — the write-side mirror of session-cards.js (task 1288)
|
|
478
479
|
├── stuck-detector.js ← PostToolUse + PostToolUseFailure (Bash|PowerShell): the third time one session hits the same wall — the same `[otb-plain]` card for the same task id, or the same red check — it injects ONE instruction: stop retrying, diagnose (path named), or /ask-for-help. Never blocks; silent with no card; kill-switch BONGOS_STUCK_DETECTOR_OFF=1 (task 1003990)
|
|
@@ -3091,5 +3091,9 @@ is load-bearing: the script throws rather than guess if it is missing, and
|
|
|
3091
3091
|
landed since 1.21.125 with no explicit bump. run 38761052564. (task 1002620)
|
|
3092
3092
|
1.21.127 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
|
|
3093
3093
|
landed since 1.21.126 with no explicit bump. run 38764985266. (task 1002620)
|
|
3094
|
+
1.21.128 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
|
|
3095
|
+
landed since 1.21.127 with no explicit bump. run 38770118067. (task 1002620)
|
|
3096
|
+
1.21.129 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
|
|
3097
|
+
landed since 1.21.128 with no explicit bump. run 38773346540. (task 1002620)
|
|
3094
3098
|
---------------------------------------------------------------------------
|
|
3095
3099
|
```
|