@bongos/core 1.19.381 → 1.19.383
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 +69 -29
- package/clients/bongos-client/README.md +1 -1
- package/clients/bongos-client/bongos-client.global.js +4 -0
- package/clients/bongos-client/index.cjs +4 -0
- package/clients/bongos-client/index.d.ts +6 -0
- package/clients/bongos-client/index.mjs +4 -0
- package/docs/api/openapi.json +141 -3
- package/docs/api-reference.md +5 -3
- package/docs/copy-inventory.md +14 -9
- package/docs/copy-registry.json +87 -42
- package/docs/design/landing-page-direction-v2.md +90 -0
- package/docs/design/mocks/landing/landing-sheet.html +131 -0
- package/docs/design/mocks/landing/v1.html +956 -0
- package/docs/design/mocks/landing/v2.html +708 -0
- package/docs/design/mocks/landing/v3.html +911 -0
- package/migrations/core_228_idea_inbox_captured_by_idx.sql +61 -0
- package/modules/dev-box/app/src/vendor/bongos-client.cjs +4 -0
- package/modules/hall-ui/public/hall-kit.js +67 -6
- package/modules/hall-ui/public/profile.html +34 -2
- package/modules/hall-ui/public/profile.js +279 -0
- package/modules/ideas/inbox.js +98 -0
- package/modules/ideas/routes/inbox.js +39 -0
- package/modules/lifecycle/activity.js +205 -0
- package/modules/lifecycle/lifecycle.js +7 -0
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/scripts/hall-preview/server.js +13 -3
- package/src/bongos/routes/builders.js +67 -0
- package/src/module-api.js +5 -1
- package/tests/profile_activity.mjs +625 -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.19.
|
|
6
|
-
"core_contract": "1.19.
|
|
7
|
-
"source_commit": "
|
|
5
|
+
"core_version": "1.19.383",
|
|
6
|
+
"core_contract": "1.19.383",
|
|
7
|
+
"source_commit": "f168cbd261a7c290f0bbdb8877d111f12cfa6918",
|
|
8
8
|
"source_ref": "HEAD",
|
|
9
|
-
"built_at": "2026-08-
|
|
9
|
+
"built_at": "2026-08-27T18:02:01.508Z",
|
|
10
10
|
"redaction": {
|
|
11
11
|
"model": "docs-redacted+functional-verbatim",
|
|
12
|
-
"docs_redacted":
|
|
12
|
+
"docs_redacted": 337,
|
|
13
13
|
"agent_docs_stubbed": 22,
|
|
14
|
-
"functional_verbatim":
|
|
14
|
+
"functional_verbatim": 1602,
|
|
15
15
|
"rules": 3,
|
|
16
16
|
"gate_literals": 3,
|
|
17
17
|
"gate": "passed"
|
|
18
18
|
},
|
|
19
|
-
"file_count":
|
|
20
|
-
"tree_sha256": "
|
|
19
|
+
"file_count": 1961,
|
|
20
|
+
"tree_sha256": "0ab207ced344bae7190af953ae3da3574356220f56737ae7bde90ca0ad27a00c",
|
|
21
21
|
"files": [
|
|
22
22
|
{
|
|
23
23
|
"path": ".claude/skills/blocker-review/SKILL.md",
|
|
@@ -347,12 +347,12 @@
|
|
|
347
347
|
{
|
|
348
348
|
"path": "clients/bongos-client/README.md",
|
|
349
349
|
"mode": "0000644",
|
|
350
|
-
"sha256": "
|
|
350
|
+
"sha256": "838e52897ec1b7642d7cc9d3955c0a8b123caa2bc17bf323422eed7b5f2c9322"
|
|
351
351
|
},
|
|
352
352
|
{
|
|
353
353
|
"path": "clients/bongos-client/bongos-client.global.js",
|
|
354
354
|
"mode": "0000644",
|
|
355
|
-
"sha256": "
|
|
355
|
+
"sha256": "c04c5b4959c3bd6ddf7247a5f9b2ff07078384af505ece4de7932b1108bafd50"
|
|
356
356
|
},
|
|
357
357
|
{
|
|
358
358
|
"path": "clients/bongos-client/examples/hello-world.mjs",
|
|
@@ -362,17 +362,17 @@
|
|
|
362
362
|
{
|
|
363
363
|
"path": "clients/bongos-client/index.cjs",
|
|
364
364
|
"mode": "0000644",
|
|
365
|
-
"sha256": "
|
|
365
|
+
"sha256": "0d92a14fe49b6d9b82aa8611c83d23c89dccdf22f68802c129624b924cb6daf6"
|
|
366
366
|
},
|
|
367
367
|
{
|
|
368
368
|
"path": "clients/bongos-client/index.d.ts",
|
|
369
369
|
"mode": "0000644",
|
|
370
|
-
"sha256": "
|
|
370
|
+
"sha256": "4b36b46a77832a0f4fb56f627691e396e519ba886addcb9624db2301d67d5006"
|
|
371
371
|
},
|
|
372
372
|
{
|
|
373
373
|
"path": "clients/bongos-client/index.mjs",
|
|
374
374
|
"mode": "0000644",
|
|
375
|
-
"sha256": "
|
|
375
|
+
"sha256": "d0cee5f3378977180a8b7de8ef657a5fd258f81e183074dbd02220f169d7cd49"
|
|
376
376
|
},
|
|
377
377
|
{
|
|
378
378
|
"path": "clients/bongos-client/package.json",
|
|
@@ -1477,12 +1477,12 @@
|
|
|
1477
1477
|
{
|
|
1478
1478
|
"path": "docs/api-reference.md",
|
|
1479
1479
|
"mode": "0000644",
|
|
1480
|
-
"sha256": "
|
|
1480
|
+
"sha256": "01f4d002d3ea1b02c204b48674125deae8e0ffabdd77384852cc51348ecbd18b"
|
|
1481
1481
|
},
|
|
1482
1482
|
{
|
|
1483
1483
|
"path": "docs/api/openapi.json",
|
|
1484
1484
|
"mode": "0000644",
|
|
1485
|
-
"sha256": "
|
|
1485
|
+
"sha256": "246192acc035ea58448701176e6f98f6d2f0a01cf27930efcbc58c019291cd3e"
|
|
1486
1486
|
},
|
|
1487
1487
|
{
|
|
1488
1488
|
"path": "docs/architecture.md",
|
|
@@ -1507,12 +1507,12 @@
|
|
|
1507
1507
|
{
|
|
1508
1508
|
"path": "docs/copy-inventory.md",
|
|
1509
1509
|
"mode": "0000644",
|
|
1510
|
-
"sha256": "
|
|
1510
|
+
"sha256": "80311a873183c3480b49014b5b7a2f6ae9383348941e529c9a9e61a21cf4d6e3"
|
|
1511
1511
|
},
|
|
1512
1512
|
{
|
|
1513
1513
|
"path": "docs/copy-registry.json",
|
|
1514
1514
|
"mode": "0000644",
|
|
1515
|
-
"sha256": "
|
|
1515
|
+
"sha256": "02d3c0b762c635d55febb7510d6aebdbb56213eb2841bd703b5eff1a044aa5e7"
|
|
1516
1516
|
},
|
|
1517
1517
|
{
|
|
1518
1518
|
"path": "docs/design-contract.md",
|
|
@@ -1539,6 +1539,11 @@
|
|
|
1539
1539
|
"mode": "0000644",
|
|
1540
1540
|
"sha256": "90bed9a9f3859f7cfc6dd8a0e23e70adeda5854be0b10f8208d60a96c83403b3"
|
|
1541
1541
|
},
|
|
1542
|
+
{
|
|
1543
|
+
"path": "docs/design/landing-page-direction-v2.md",
|
|
1544
|
+
"mode": "0000644",
|
|
1545
|
+
"sha256": "d3d921b7cbdbf929248f7c8e143241bf762d8a17c535ab0300eb1fd7ec432b0a"
|
|
1546
|
+
},
|
|
1542
1547
|
{
|
|
1543
1548
|
"path": "docs/design/landing-page-direction.md",
|
|
1544
1549
|
"mode": "0000644",
|
|
@@ -1564,6 +1569,26 @@
|
|
|
1564
1569
|
"mode": "0000644",
|
|
1565
1570
|
"sha256": "c277f432a0d3e23e481bae01355f5f11648ee9a6593f665a809d8f406ebbe033"
|
|
1566
1571
|
},
|
|
1572
|
+
{
|
|
1573
|
+
"path": "docs/design/mocks/landing/landing-sheet.html",
|
|
1574
|
+
"mode": "0000644",
|
|
1575
|
+
"sha256": "052d9a62f37d52bcab8f20d01bb67b6f83cdce00d64cca9aa794f212166c2f92"
|
|
1576
|
+
},
|
|
1577
|
+
{
|
|
1578
|
+
"path": "docs/design/mocks/landing/v1.html",
|
|
1579
|
+
"mode": "0000644",
|
|
1580
|
+
"sha256": "f016ed6900a72d05df49331b1a8436aba3b1ac53a65f52e7ad1c1895fb2f3a60"
|
|
1581
|
+
},
|
|
1582
|
+
{
|
|
1583
|
+
"path": "docs/design/mocks/landing/v2.html",
|
|
1584
|
+
"mode": "0000644",
|
|
1585
|
+
"sha256": "4de2026c96f95739213857c2c02bb53d41f8c15854a9f59240781288e21257b6"
|
|
1586
|
+
},
|
|
1587
|
+
{
|
|
1588
|
+
"path": "docs/design/mocks/landing/v3.html",
|
|
1589
|
+
"mode": "0000644",
|
|
1590
|
+
"sha256": "ad7a2cac824d592002a13cad7054bc5babfb4a3f80d5a43c325ff7a10db51b64"
|
|
1591
|
+
},
|
|
1567
1592
|
{
|
|
1568
1593
|
"path": "docs/design/mocks/projects-hub-mock.html",
|
|
1569
1594
|
"mode": "0000644",
|
|
@@ -2674,6 +2699,11 @@
|
|
|
2674
2699
|
"mode": "0000644",
|
|
2675
2700
|
"sha256": "b3fbc5d91adf6c6021859bdd8050015c0449360eb33d70c71fdeda0cc1276dd3"
|
|
2676
2701
|
},
|
|
2702
|
+
{
|
|
2703
|
+
"path": "migrations/core_228_idea_inbox_captured_by_idx.sql",
|
|
2704
|
+
"mode": "0000644",
|
|
2705
|
+
"sha256": "031f739e4e22e2bf9fa3480147f4b0f280d4ed8610d71d8d8a828a83b9cabca2"
|
|
2706
|
+
},
|
|
2677
2707
|
{
|
|
2678
2708
|
"path": "modules/agents/migrations/agents_001_definitions.sql",
|
|
2679
2709
|
"mode": "0000644",
|
|
@@ -3057,7 +3087,7 @@
|
|
|
3057
3087
|
{
|
|
3058
3088
|
"path": "modules/dev-box/app/src/vendor/bongos-client.cjs",
|
|
3059
3089
|
"mode": "0000644",
|
|
3060
|
-
"sha256": "
|
|
3090
|
+
"sha256": "0d92a14fe49b6d9b82aa8611c83d23c89dccdf22f68802c129624b924cb6daf6"
|
|
3061
3091
|
},
|
|
3062
3092
|
{
|
|
3063
3093
|
"path": "modules/dev-box/app/test/unit.mjs",
|
|
@@ -3757,7 +3787,7 @@
|
|
|
3757
3787
|
{
|
|
3758
3788
|
"path": "modules/hall-ui/public/hall-kit.js",
|
|
3759
3789
|
"mode": "0000644",
|
|
3760
|
-
"sha256": "
|
|
3790
|
+
"sha256": "e392af98c2d310bfe80ccc560895dc2729abbe416087fcc7609d22dd4593484c"
|
|
3761
3791
|
},
|
|
3762
3792
|
{
|
|
3763
3793
|
"path": "modules/hall-ui/public/hall-render.js",
|
|
@@ -3912,12 +3942,12 @@
|
|
|
3912
3942
|
{
|
|
3913
3943
|
"path": "modules/hall-ui/public/profile.html",
|
|
3914
3944
|
"mode": "0000644",
|
|
3915
|
-
"sha256": "
|
|
3945
|
+
"sha256": "437a1d29edb129f2c21aaa842a57e06058e4355c14c8b0deba6576c83672a90d"
|
|
3916
3946
|
},
|
|
3917
3947
|
{
|
|
3918
3948
|
"path": "modules/hall-ui/public/profile.js",
|
|
3919
3949
|
"mode": "0000644",
|
|
3920
|
-
"sha256": "
|
|
3950
|
+
"sha256": "d1e73a781b88743c5cfe21452d738989e631d30f12e38a2589a6519fc7b4b81e"
|
|
3921
3951
|
},
|
|
3922
3952
|
{
|
|
3923
3953
|
"path": "modules/hall-ui/public/ranks.html",
|
|
@@ -4072,7 +4102,7 @@
|
|
|
4072
4102
|
{
|
|
4073
4103
|
"path": "modules/ideas/inbox.js",
|
|
4074
4104
|
"mode": "0000644",
|
|
4075
|
-
"sha256": "
|
|
4105
|
+
"sha256": "72b69185c90131cc8004ad28f24e9d5bfb7eaf4cc01b8d13ad898019a6f58f39"
|
|
4076
4106
|
},
|
|
4077
4107
|
{
|
|
4078
4108
|
"path": "modules/ideas/migrations/ideas_001_grades.sql",
|
|
@@ -4112,7 +4142,7 @@
|
|
|
4112
4142
|
{
|
|
4113
4143
|
"path": "modules/ideas/routes/inbox.js",
|
|
4114
4144
|
"mode": "0000644",
|
|
4115
|
-
"sha256": "
|
|
4145
|
+
"sha256": "a092eea43d9030eb55a23b60bd1ad5673132b83a3a2649961413cd505fd685ef"
|
|
4116
4146
|
},
|
|
4117
4147
|
{
|
|
4118
4148
|
"path": "modules/ideas/routing.js",
|
|
@@ -4129,6 +4159,11 @@
|
|
|
4129
4159
|
"mode": "0000644",
|
|
4130
4160
|
"sha256": "7cb9dac9cb87b679e1ae50e4112b3a7928a38ebb9902c8947a74d17bec4d9009"
|
|
4131
4161
|
},
|
|
4162
|
+
{
|
|
4163
|
+
"path": "modules/lifecycle/activity.js",
|
|
4164
|
+
"mode": "0000644",
|
|
4165
|
+
"sha256": "38bbb1b0f0992c655cd48f95476fbbdac11381bb929999b6da0f68fbbf802b16"
|
|
4166
|
+
},
|
|
4132
4167
|
{
|
|
4133
4168
|
"path": "modules/lifecycle/claim-eligibility.js",
|
|
4134
4169
|
"mode": "0000644",
|
|
@@ -4302,7 +4337,7 @@
|
|
|
4302
4337
|
{
|
|
4303
4338
|
"path": "modules/lifecycle/lifecycle.js",
|
|
4304
4339
|
"mode": "0000644",
|
|
4305
|
-
"sha256": "
|
|
4340
|
+
"sha256": "2d683f62f6813d7894dd54657a70b027cf686dfa76879541adc84544f03d4b51"
|
|
4306
4341
|
},
|
|
4307
4342
|
{
|
|
4308
4343
|
"path": "modules/lifecycle/merge-lock.js",
|
|
@@ -5077,12 +5112,12 @@
|
|
|
5077
5112
|
{
|
|
5078
5113
|
"path": "package-lock.json",
|
|
5079
5114
|
"mode": "0000644",
|
|
5080
|
-
"sha256": "
|
|
5115
|
+
"sha256": "5ec288b35333dfb113e92535712c2d9ba8a10c6a50ca18f967ab66d2c00c0e9c"
|
|
5081
5116
|
},
|
|
5082
5117
|
{
|
|
5083
5118
|
"path": "package.json",
|
|
5084
5119
|
"mode": "0000644",
|
|
5085
|
-
"sha256": "
|
|
5120
|
+
"sha256": "196e6dcab90b3a4761fba39ebaa94c05bdba3cb3c963dd684d9fada3730ffff1"
|
|
5086
5121
|
},
|
|
5087
5122
|
{
|
|
5088
5123
|
"path": "public-docs/index.html",
|
|
@@ -6627,7 +6662,7 @@
|
|
|
6627
6662
|
{
|
|
6628
6663
|
"path": "scripts/hall-preview/server.js",
|
|
6629
6664
|
"mode": "0000644",
|
|
6630
|
-
"sha256": "
|
|
6665
|
+
"sha256": "eb2c9bde186fcd050c41d68697945f46b9d891e545cc65f81db71b647a7cb3d9"
|
|
6631
6666
|
},
|
|
6632
6667
|
{
|
|
6633
6668
|
"path": "scripts/migrate.sh",
|
|
@@ -6887,7 +6922,7 @@
|
|
|
6887
6922
|
{
|
|
6888
6923
|
"path": "src/bongos/routes/builders.js",
|
|
6889
6924
|
"mode": "0000644",
|
|
6890
|
-
"sha256": "
|
|
6925
|
+
"sha256": "a5250b0ff33a42087c2546ab74b68cc7decdd3a08fda7a2f0ad56bcbf51837cd"
|
|
6891
6926
|
},
|
|
6892
6927
|
{
|
|
6893
6928
|
"path": "src/bongos/routes/github.js",
|
|
@@ -6987,7 +7022,7 @@
|
|
|
6987
7022
|
{
|
|
6988
7023
|
"path": "src/module-api.js",
|
|
6989
7024
|
"mode": "0000644",
|
|
6990
|
-
"sha256": "
|
|
7025
|
+
"sha256": "b388ffe0abec635f957a2d9eb05863590873e963bc445879a27fbd723ca417db"
|
|
6991
7026
|
},
|
|
6992
7027
|
{
|
|
6993
7028
|
"path": "src/module-loader/catalog.js",
|
|
@@ -8944,6 +8979,11 @@
|
|
|
8944
8979
|
"mode": "0000644",
|
|
8945
8980
|
"sha256": "3c85d28ecc55e375988f3e55aee993c8c84220889678262d8207146c2772f3f5"
|
|
8946
8981
|
},
|
|
8982
|
+
{
|
|
8983
|
+
"path": "tests/profile_activity.mjs",
|
|
8984
|
+
"mode": "0000644",
|
|
8985
|
+
"sha256": "013df2528c4998588c1d3f89a9a25f8fa1e912b8abc2d8e95c26c250869a386f"
|
|
8986
|
+
},
|
|
8947
8987
|
{
|
|
8948
8988
|
"path": "tests/profile_fields.mjs",
|
|
8949
8989
|
"mode": "0000644",
|
|
@@ -5,7 +5,7 @@ A **generated**, zero-dependency typed client for the Bongos API — produced fr
|
|
|
5
5
|
by hand; it regenerates when the spec changes, so it can never drift from the routes.
|
|
6
6
|
|
|
7
7
|
- API version: **v1** (served at `/api/bongos/v1`)
|
|
8
|
-
-
|
|
8
|
+
- 324 operations across 52 resource groups
|
|
9
9
|
|
|
10
10
|
## Install
|
|
11
11
|
|
|
@@ -223,6 +223,8 @@ function createClient(opts = {}) {
|
|
|
223
223
|
"builders": {
|
|
224
224
|
// GET /builders/{id}/active-claims — rank: metic+archon — GET /builders/:id/active-claims
|
|
225
225
|
getBuildersIdActiveClaims: (args) => request("GET", "/builders/{id}/active-claims", { hasBody: false }, args),
|
|
226
|
+
// GET /builders/{id}/activity — rank: any-builder — GET /builders/:id/activity
|
|
227
|
+
getBuildersIdActivity: (args) => request("GET", "/builders/{id}/activity", { hasBody: false }, args),
|
|
226
228
|
// PATCH /builders/{id}/budget — rank: metic+archon — PATCH /builders/:id/budget
|
|
227
229
|
patchBuildersIdBudget: (args) => request("PATCH", "/builders/{id}/budget", { hasBody: true }, args),
|
|
228
230
|
// GET /builders/{id}/onboarding — rank: public — GET /builders/:id/onboarding
|
|
@@ -441,6 +443,8 @@ function createClient(opts = {}) {
|
|
|
441
443
|
postInboxIdSpark: (args) => request("POST", "/inbox/{id}/spark", { hasBody: true }, args),
|
|
442
444
|
// GET /inbox/awaiting-nod — rank: metic+archon — GET /inbox/awaiting-nod
|
|
443
445
|
getInboxAwaitingNod: (args) => request("GET", "/inbox/awaiting-nod", { hasBody: false }, args),
|
|
446
|
+
// GET /inbox/by-builder/{id} — rank: any-builder — GET /inbox/by-builder/:id
|
|
447
|
+
getInboxByBuilderId: (args) => request("GET", "/inbox/by-builder/{id}", { hasBody: false }, args),
|
|
444
448
|
// POST /inbox/score — rank: any-builder — POST /inbox/score
|
|
445
449
|
postInboxScore: (args) => request("POST", "/inbox/score", { hasBody: true }, args),
|
|
446
450
|
// GET /inbox/sparks — rank: any-builder — GET /inbox/sparks
|
|
@@ -222,6 +222,8 @@ function createClient(opts = {}) {
|
|
|
222
222
|
"builders": {
|
|
223
223
|
// GET /builders/{id}/active-claims — rank: metic+archon — GET /builders/:id/active-claims
|
|
224
224
|
getBuildersIdActiveClaims: (args) => request("GET", "/builders/{id}/active-claims", { hasBody: false }, args),
|
|
225
|
+
// GET /builders/{id}/activity — rank: any-builder — GET /builders/:id/activity
|
|
226
|
+
getBuildersIdActivity: (args) => request("GET", "/builders/{id}/activity", { hasBody: false }, args),
|
|
225
227
|
// PATCH /builders/{id}/budget — rank: metic+archon — PATCH /builders/:id/budget
|
|
226
228
|
patchBuildersIdBudget: (args) => request("PATCH", "/builders/{id}/budget", { hasBody: true }, args),
|
|
227
229
|
// GET /builders/{id}/onboarding — rank: public — GET /builders/:id/onboarding
|
|
@@ -440,6 +442,8 @@ function createClient(opts = {}) {
|
|
|
440
442
|
postInboxIdSpark: (args) => request("POST", "/inbox/{id}/spark", { hasBody: true }, args),
|
|
441
443
|
// GET /inbox/awaiting-nod — rank: metic+archon — GET /inbox/awaiting-nod
|
|
442
444
|
getInboxAwaitingNod: (args) => request("GET", "/inbox/awaiting-nod", { hasBody: false }, args),
|
|
445
|
+
// GET /inbox/by-builder/{id} — rank: any-builder — GET /inbox/by-builder/:id
|
|
446
|
+
getInboxByBuilderId: (args) => request("GET", "/inbox/by-builder/{id}", { hasBody: false }, args),
|
|
443
447
|
// POST /inbox/score — rank: any-builder — POST /inbox/score
|
|
444
448
|
postInboxScore: (args) => request("POST", "/inbox/score", { hasBody: true }, args),
|
|
445
449
|
// GET /inbox/sparks — rank: any-builder — GET /inbox/sparks
|
|
@@ -31,6 +31,7 @@ export interface GetBoxTerminalResponse { state: unknown; url: unknown; credenti
|
|
|
31
31
|
export interface GetBoxesResponse { boxes: unknown }
|
|
32
32
|
export interface GetBuildersDirectoryResponse { builders: unknown }
|
|
33
33
|
export interface GetBuildersIdActiveClaimsResponse { builder_id: unknown; claims: unknown; stale_hours: unknown }
|
|
34
|
+
export interface GetBuildersIdActivityResponse { builder_id: unknown; section: unknown; role: unknown; rows: unknown; total: unknown }
|
|
34
35
|
export interface GetBuildersIdOnboardingResponse { builder_id: unknown; onboarding: unknown }
|
|
35
36
|
export interface GetBuildersIdProfileResponse { builder: unknown; shipped_count: unknown; recent_ships: unknown; achievements: unknown; cross_project?: unknown }
|
|
36
37
|
export interface GetBuildersMePendingRankChangeResponse { change: unknown; greeting?: unknown }
|
|
@@ -55,6 +56,7 @@ export interface GetHealthzResponse { ok: boolean; auth_configured: unknown }
|
|
|
55
56
|
export interface GetHelpRequestsForMeResponse { help_requests: unknown; count: unknown; crafts: unknown }
|
|
56
57
|
export interface GetHelpRequestsMineResponse { help_requests: unknown; count: unknown }
|
|
57
58
|
export interface GetInboxAwaitingNodResponse { awaiting: unknown; count: unknown }
|
|
59
|
+
export interface GetInboxByBuilderIdResponse { builder_id: unknown; ideas: unknown; total: unknown; limit: unknown; offset: unknown }
|
|
58
60
|
export interface GetInboxIdResponse { idea: unknown }
|
|
59
61
|
export interface GetInboxResponse { ideas: unknown; open_count: unknown }
|
|
60
62
|
export interface GetInboxSparksResponse { sparks: unknown; count: unknown }
|
|
@@ -513,6 +515,8 @@ export interface BongosClient {
|
|
|
513
515
|
"builders": {
|
|
514
516
|
/** GET /builders/{id}/active-claims — rank: metic+archon */
|
|
515
517
|
getBuildersIdActiveClaims(args?: RequestArgs): Promise<GetBuildersIdActiveClaimsResponse>;
|
|
518
|
+
/** GET /builders/{id}/activity — rank: any-builder */
|
|
519
|
+
getBuildersIdActivity(args?: RequestArgs): Promise<GetBuildersIdActivityResponse>;
|
|
516
520
|
/** PATCH /builders/{id}/budget — rank: metic+archon */
|
|
517
521
|
patchBuildersIdBudget(args?: RequestArgs & { body?: PatchBuildersIdBudgetRequest }): Promise<PatchBuildersIdBudgetResponse>;
|
|
518
522
|
/** GET /builders/{id}/onboarding — rank: public */
|
|
@@ -731,6 +735,8 @@ export interface BongosClient {
|
|
|
731
735
|
postInboxIdSpark(args?: RequestArgs): Promise<PostInboxIdSparkResponse>;
|
|
732
736
|
/** GET /inbox/awaiting-nod — rank: metic+archon */
|
|
733
737
|
getInboxAwaitingNod(args?: RequestArgs): Promise<GetInboxAwaitingNodResponse>;
|
|
738
|
+
/** GET /inbox/by-builder/{id} — rank: any-builder */
|
|
739
|
+
getInboxByBuilderId(args?: RequestArgs): Promise<GetInboxByBuilderIdResponse>;
|
|
734
740
|
/** POST /inbox/score — rank: any-builder */
|
|
735
741
|
postInboxScore(args: RequestArgs & { body: PostInboxScoreRequest }): Promise<PostInboxScoreResponse>;
|
|
736
742
|
/** GET /inbox/sparks — rank: any-builder */
|
|
@@ -219,6 +219,8 @@ export function createClient(opts = {}) {
|
|
|
219
219
|
"builders": {
|
|
220
220
|
// GET /builders/{id}/active-claims — rank: metic+archon — GET /builders/:id/active-claims
|
|
221
221
|
getBuildersIdActiveClaims: (args) => request("GET", "/builders/{id}/active-claims", { hasBody: false }, args),
|
|
222
|
+
// GET /builders/{id}/activity — rank: any-builder — GET /builders/:id/activity
|
|
223
|
+
getBuildersIdActivity: (args) => request("GET", "/builders/{id}/activity", { hasBody: false }, args),
|
|
222
224
|
// PATCH /builders/{id}/budget — rank: metic+archon — PATCH /builders/:id/budget
|
|
223
225
|
patchBuildersIdBudget: (args) => request("PATCH", "/builders/{id}/budget", { hasBody: true }, args),
|
|
224
226
|
// GET /builders/{id}/onboarding — rank: public — GET /builders/:id/onboarding
|
|
@@ -437,6 +439,8 @@ export function createClient(opts = {}) {
|
|
|
437
439
|
postInboxIdSpark: (args) => request("POST", "/inbox/{id}/spark", { hasBody: true }, args),
|
|
438
440
|
// GET /inbox/awaiting-nod — rank: metic+archon — GET /inbox/awaiting-nod
|
|
439
441
|
getInboxAwaitingNod: (args) => request("GET", "/inbox/awaiting-nod", { hasBody: false }, args),
|
|
442
|
+
// GET /inbox/by-builder/{id} — rank: any-builder — GET /inbox/by-builder/:id
|
|
443
|
+
getInboxByBuilderId: (args) => request("GET", "/inbox/by-builder/{id}", { hasBody: false }, args),
|
|
440
444
|
// POST /inbox/score — rank: any-builder — POST /inbox/score
|
|
441
445
|
postInboxScore: (args) => request("POST", "/inbox/score", { hasBody: true }, args),
|
|
442
446
|
// GET /inbox/sparks — rank: any-builder — GET /inbox/sparks
|
package/docs/api/openapi.json
CHANGED
|
@@ -2676,6 +2676,58 @@
|
|
|
2676
2676
|
]
|
|
2677
2677
|
}
|
|
2678
2678
|
},
|
|
2679
|
+
"/builders/{id}/activity": {
|
|
2680
|
+
"get": {
|
|
2681
|
+
"operationId": "get_builders_id_activity",
|
|
2682
|
+
"tags": [
|
|
2683
|
+
"builders"
|
|
2684
|
+
],
|
|
2685
|
+
"summary": "GET /builders/:id/activity",
|
|
2686
|
+
"description": "GET /builders/:id/activity — the profile's PER-CRAFT activity log (task 1003281, goal 1000072, criterion legibility-activity-by-role). WHAT IT ADDS OVER /profile. The profile answers \"how much has this person shipped\" — one count and the last five works, craft-blind. A person's artist track record is a different question from their engineer one, so this route serves ONE section (`tasks` or `goals`) for ONE craft, paged. It EXTENDS the profile surface rather than forking it: the page is the same page, the identity band and the achievement shelf are unchanged, and this fills the ledger below them. The third section of that log — the IDEA TRAIL — is served by the ideas module's GET /inbox/by-builder/:id, because an idea is its domain's row, not a lifecycle one. ONE SECTION PER CALL, not all three in one payload: each ledger pages independently, and a single response carrying three page windows would need three limit/offset pairs on one query string to say anything at all. rank: any-builder, NOT owner-only — a track record is a thing other people read; that is what makes the profile a portfolio rather than a dashboard, and it is the same posture /profile, /builders/roster and the leaderboard already take toward the same rows. The per-viewer filtering that DOES matter is the private-goal wall below, and it is applied to the DATA, not to the caller. But, unlike /profile directly above, this read IS gated to a sign-in. The goals half is viewer-dependent: a private goal's title is exactly what ADR 0112 says a non-member must not learn, so the read needs to know who is asking. Serving it publicly would mean either leaking private goals or silently omitting the viewer's own — both worse than a sign-in. The tasks half is the same already-public shipped-work data /profile returns.\n\n**Rank:** `any-builder` — Any authenticated builder (row-level ownership enforced in-handler).",
|
|
2687
|
+
"x-rank": "any-builder",
|
|
2688
|
+
"x-source": "src/bongos/routes/builders.js",
|
|
2689
|
+
"parameters": [
|
|
2690
|
+
{
|
|
2691
|
+
"name": "id",
|
|
2692
|
+
"in": "path",
|
|
2693
|
+
"required": true,
|
|
2694
|
+
"schema": {
|
|
2695
|
+
"type": "string"
|
|
2696
|
+
},
|
|
2697
|
+
"description": "Path parameter `id`."
|
|
2698
|
+
}
|
|
2699
|
+
],
|
|
2700
|
+
"responses": {
|
|
2701
|
+
"200": {
|
|
2702
|
+
"description": "Success.",
|
|
2703
|
+
"content": {
|
|
2704
|
+
"application/json": {
|
|
2705
|
+
"schema": {
|
|
2706
|
+
"$ref": "#/components/schemas/GetBuildersIdActivityResponse"
|
|
2707
|
+
}
|
|
2708
|
+
}
|
|
2709
|
+
}
|
|
2710
|
+
},
|
|
2711
|
+
"400": {
|
|
2712
|
+
"$ref": "#/components/responses/BadRequest"
|
|
2713
|
+
},
|
|
2714
|
+
"401": {
|
|
2715
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
2716
|
+
},
|
|
2717
|
+
"403": {
|
|
2718
|
+
"$ref": "#/components/responses/Forbidden"
|
|
2719
|
+
},
|
|
2720
|
+
"404": {
|
|
2721
|
+
"$ref": "#/components/responses/NotFound"
|
|
2722
|
+
}
|
|
2723
|
+
},
|
|
2724
|
+
"security": [
|
|
2725
|
+
{
|
|
2726
|
+
"builderSession": []
|
|
2727
|
+
}
|
|
2728
|
+
]
|
|
2729
|
+
}
|
|
2730
|
+
},
|
|
2679
2731
|
"/builders/{id}/budget": {
|
|
2680
2732
|
"patch": {
|
|
2681
2733
|
"operationId": "patch_builders_id_budget",
|
|
@@ -6778,6 +6830,58 @@
|
|
|
6778
6830
|
]
|
|
6779
6831
|
}
|
|
6780
6832
|
},
|
|
6833
|
+
"/inbox/by-builder/{id}": {
|
|
6834
|
+
"get": {
|
|
6835
|
+
"operationId": "get_inbox_by_builder_id",
|
|
6836
|
+
"tags": [
|
|
6837
|
+
"inbox"
|
|
6838
|
+
],
|
|
6839
|
+
"summary": "GET /inbox/by-builder/:id",
|
|
6840
|
+
"description": "THE IDEA TRAIL: every idea one builder filed, newest first, with what became of each (task 1003281, goal 1000072, criterion legibility-activity-by-role). Backs the ideator view of the profile's activity log; the tasks and goals halves of that log are served by the core GET /builders/:id/activity, because they are lifecycle rows, not ideas. WHY IT IS A LIST ROUTE AND NOT A FIELD ON THE PROFILE: the trail is paged. A prolific filer's trail is long, and the criterion asks for \"every idea you submitted\", so it cannot be a top-N attached to another response. Gated to any signed-in builder, matching GET /inbox/:id directly below: idea TITLES and triage notes are builder-visible, not world-visible, and the public profile route deliberately carries none of them. The viewer's rank rides into the read so the skill-friction gate holds here as it does on every other idea list. DECLARED BEFORE `GET /inbox/:id` DELIBERATELY — the fourth route in this file to need that. `/inbox/by-builder/41` would otherwise bind `:id='by-builder'` and parseId would 400 the whole trail. tests/profile_activity.mjs pins the relative order.\n\n**Rank:** `any-builder` — Any authenticated builder (row-level ownership enforced in-handler).",
|
|
6841
|
+
"x-rank": "any-builder",
|
|
6842
|
+
"x-source": "modules/ideas/routes/inbox.js",
|
|
6843
|
+
"parameters": [
|
|
6844
|
+
{
|
|
6845
|
+
"name": "id",
|
|
6846
|
+
"in": "path",
|
|
6847
|
+
"required": true,
|
|
6848
|
+
"schema": {
|
|
6849
|
+
"type": "string"
|
|
6850
|
+
},
|
|
6851
|
+
"description": "Path parameter `id`."
|
|
6852
|
+
}
|
|
6853
|
+
],
|
|
6854
|
+
"responses": {
|
|
6855
|
+
"200": {
|
|
6856
|
+
"description": "Success.",
|
|
6857
|
+
"content": {
|
|
6858
|
+
"application/json": {
|
|
6859
|
+
"schema": {
|
|
6860
|
+
"$ref": "#/components/schemas/GetInboxByBuilderIdResponse"
|
|
6861
|
+
}
|
|
6862
|
+
}
|
|
6863
|
+
}
|
|
6864
|
+
},
|
|
6865
|
+
"400": {
|
|
6866
|
+
"$ref": "#/components/responses/BadRequest"
|
|
6867
|
+
},
|
|
6868
|
+
"401": {
|
|
6869
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
6870
|
+
},
|
|
6871
|
+
"403": {
|
|
6872
|
+
"$ref": "#/components/responses/Forbidden"
|
|
6873
|
+
},
|
|
6874
|
+
"404": {
|
|
6875
|
+
"$ref": "#/components/responses/NotFound"
|
|
6876
|
+
}
|
|
6877
|
+
},
|
|
6878
|
+
"security": [
|
|
6879
|
+
{
|
|
6880
|
+
"builderSession": []
|
|
6881
|
+
}
|
|
6882
|
+
]
|
|
6883
|
+
}
|
|
6884
|
+
},
|
|
6781
6885
|
"/inbox/score": {
|
|
6782
6886
|
"post": {
|
|
6783
6887
|
"operationId": "post_inbox_score",
|
|
@@ -14986,6 +15090,23 @@
|
|
|
14986
15090
|
"stale_hours"
|
|
14987
15091
|
]
|
|
14988
15092
|
},
|
|
15093
|
+
"GetBuildersIdActivityResponse": {
|
|
15094
|
+
"type": "object",
|
|
15095
|
+
"properties": {
|
|
15096
|
+
"builder_id": {},
|
|
15097
|
+
"section": {},
|
|
15098
|
+
"role": {},
|
|
15099
|
+
"rows": {},
|
|
15100
|
+
"total": {}
|
|
15101
|
+
},
|
|
15102
|
+
"required": [
|
|
15103
|
+
"builder_id",
|
|
15104
|
+
"section",
|
|
15105
|
+
"role",
|
|
15106
|
+
"rows",
|
|
15107
|
+
"total"
|
|
15108
|
+
]
|
|
15109
|
+
},
|
|
14989
15110
|
"GetBuildersIdOnboardingResponse": {
|
|
14990
15111
|
"type": "object",
|
|
14991
15112
|
"properties": {
|
|
@@ -15272,6 +15393,23 @@
|
|
|
15272
15393
|
"count"
|
|
15273
15394
|
]
|
|
15274
15395
|
},
|
|
15396
|
+
"GetInboxByBuilderIdResponse": {
|
|
15397
|
+
"type": "object",
|
|
15398
|
+
"properties": {
|
|
15399
|
+
"builder_id": {},
|
|
15400
|
+
"ideas": {},
|
|
15401
|
+
"total": {},
|
|
15402
|
+
"limit": {},
|
|
15403
|
+
"offset": {}
|
|
15404
|
+
},
|
|
15405
|
+
"required": [
|
|
15406
|
+
"builder_id",
|
|
15407
|
+
"ideas",
|
|
15408
|
+
"total",
|
|
15409
|
+
"limit",
|
|
15410
|
+
"offset"
|
|
15411
|
+
]
|
|
15412
|
+
},
|
|
15275
15413
|
"GetInboxIdResponse": {
|
|
15276
15414
|
"type": "object",
|
|
15277
15415
|
"properties": {
|
|
@@ -20310,9 +20448,9 @@
|
|
|
20310
20448
|
"description": "A required dependency/feature is not configured or is temporarily down."
|
|
20311
20449
|
}
|
|
20312
20450
|
},
|
|
20313
|
-
"x-endpoint-count":
|
|
20314
|
-
"x-schema-count":
|
|
20451
|
+
"x-endpoint-count": 324,
|
|
20452
|
+
"x-schema-count": 359,
|
|
20315
20453
|
"x-undocumented-bodies": 9,
|
|
20316
|
-
"x-response-schemas":
|
|
20454
|
+
"x-response-schemas": 242,
|
|
20317
20455
|
"x-generated-by": "scripts/gds/gen-api-docs.js"
|
|
20318
20456
|
}
|
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. 324 endpoints across 52 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/<redacted>.md)): `public` < `any-builder` < `metic+archon` < `archon`.
|
|
@@ -119,11 +119,12 @@ Base path: `/api/bongos`. Ranks (enforced server-side, [ADR 0016](adr/<redacted>
|
|
|
119
119
|
|---|---|---|---|---|
|
|
120
120
|
| GET | `/api/bongos/bug-attachments/:name` | `any-builder` | — | GET /api/bongos/bug-attachments/:name — stream one stored image. |
|
|
121
121
|
|
|
122
|
-
## `builders` (
|
|
122
|
+
## `builders` (10)
|
|
123
123
|
|
|
124
124
|
| Method | Path | Rank | Body | Description |
|
|
125
125
|
|---|---|---|---|---|
|
|
126
126
|
| GET | `/api/bongos/builders/:id/active-claims` | `metic+archon` | — | GET /builders/:id/active-claims — V3.R14 (task 238). |
|
|
127
|
+
| GET | `/api/bongos/builders/:id/activity` | `any-builder` | — | GET /builders/:id/activity — the profile's PER-CRAFT activity log (task 1003281, goal 1000072, criterion legibility-activity-by-role). |
|
|
127
128
|
| PATCH | `/api/bongos/builders/:id/budget` | `metic+archon` | `monthly_budget_usd` | PATCH /builders/:id/budget — set or clear a builder's monthly spend ceiling (V3.R84 task 302, criterion C3). |
|
|
128
129
|
| GET | `/api/bongos/builders/:id/onboarding` | `public` | — | GET /builders/:id/onboarding — V3.R75 (task 294) onboarding checklist read. |
|
|
129
130
|
| GET | `/api/bongos/builders/:id/profile` | `public` | — | GET /builders/:id/profile — the viewable builder profile page's read (task 1467, goal 25 "bx-identity"). |
|
|
@@ -278,7 +279,7 @@ Base path: `/api/bongos`. Ranks (enforced server-side, [ADR 0016](adr/<redacted>
|
|
|
278
279
|
| GET | `/api/bongos/help-requests/for-me` | `any-builder` | — | The addressed read — C01's answer to "and fires a notification". |
|
|
279
280
|
| GET | `/api/bongos/help-requests/mine` | `any-builder` | — | your own asks, so you can settle them. |
|
|
280
281
|
|
|
281
|
-
## `inbox` (
|
|
282
|
+
## `inbox` (15)
|
|
282
283
|
|
|
283
284
|
| Method | Path | Rank | Body | Description |
|
|
284
285
|
|---|---|---|---|---|
|
|
@@ -293,6 +294,7 @@ Base path: `/api/bongos`. Ranks (enforced server-side, [ADR 0016](adr/<redacted>
|
|
|
293
294
|
| POST | `/api/bongos/inbox/:id/spark` | `any-builder` | — | Mark a Quick Idea as a Big Idea Spark — "I have the spark but not the full picture, someone develop this". |
|
|
294
295
|
| DELETE | `/api/bongos/inbox/:id/spark` | `any-builder` | — | Withdraw the Big Idea Spark mark — the reversibility half of R144. |
|
|
295
296
|
| GET | `/api/bongos/inbox/awaiting-nod` | `metic+archon` | — | GET /inbox/awaiting-nod — the NOD QUEUE (task 1003066, BV1.R05). |
|
|
297
|
+
| GET | `/api/bongos/inbox/by-builder/:id` | `any-builder` | — | THE IDEA TRAIL: every idea one builder filed, newest first, with what became of each (task 1003281, goal 1000072, criterion legibility-ac… |
|
|
296
298
|
| POST | `/api/bongos/inbox/score` | `any-builder` | `field_values`, `template_key` | |
|
|
297
299
|
| GET | `/api/bongos/inbox/sparks` | `any-builder` | — | GET /inbox/sparks — THE SPARK QUEUE (task 1002921 / BV1.R145, goal 1000062). |
|
|
298
300
|
| GET | `/api/bongos/inbox/template` | `any-builder` | — | ----------------------------------------------------------------------- The two reads the hall's Full Idea composer is built from (task 1… |
|