@bongos/core 1.19.409 → 1.19.410
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 +35 -30
- 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 +5 -0
- package/clients/bongos-client/index.mjs +4 -0
- package/docs/api/openapi.json +122 -3
- package/docs/api-reference.md +4 -2
- package/docs/copy-inventory.md +43 -36
- package/docs/copy-registry.json +122 -39
- package/migrations/core_229_goals_accepting_requests.sql +37 -0
- package/modules/dev-box/app/src/vendor/bongos-client.cjs +4 -0
- package/modules/hall-ui/public/goals-page.js +26 -2
- package/modules/hall-ui/public/goals-render.js +35 -0
- package/modules/lifecycle/db-goals.js +22 -1
- package/modules/lifecycle/db.js +4 -1
- package/modules/lifecycle/goal-edits.js +40 -0
- package/modules/lifecycle/routes/goal-route-authz.js +51 -1
- package/modules/lifecycle/routes/goals.js +46 -1
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/src/bongos/route-rank-check.js +6 -0
- package/src/module-api.js +3 -1
- package/tests/goal_membership_requests.mjs +154 -1
- package/tests/prose_edits.mjs +8 -4
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.410",
|
|
6
|
+
"core_contract": "1.19.410",
|
|
7
|
+
"source_commit": "0af744151717afb828e5870e8a17c7c52f5e2f77",
|
|
8
8
|
"source_ref": "HEAD",
|
|
9
|
-
"built_at": "2026-08-28T22:
|
|
9
|
+
"built_at": "2026-08-28T22:39:19.306Z",
|
|
10
10
|
"redaction": {
|
|
11
11
|
"model": "docs-redacted+functional-verbatim",
|
|
12
12
|
"docs_redacted": 352,
|
|
13
13
|
"agent_docs_stubbed": 23,
|
|
14
|
-
"functional_verbatim":
|
|
14
|
+
"functional_verbatim": 1667,
|
|
15
15
|
"rules": 3,
|
|
16
16
|
"gate_literals": 3,
|
|
17
17
|
"gate": "passed"
|
|
18
18
|
},
|
|
19
|
-
"file_count":
|
|
20
|
-
"tree_sha256": "
|
|
19
|
+
"file_count": 2042,
|
|
20
|
+
"tree_sha256": "c539332813cb188cef63c5f00a3633e3806b219150b0eae2c48ea5179f5a2c0c",
|
|
21
21
|
"files": [
|
|
22
22
|
{
|
|
23
23
|
"path": ".claude/skills/blocker-review/SKILL.md",
|
|
@@ -352,12 +352,12 @@
|
|
|
352
352
|
{
|
|
353
353
|
"path": "clients/bongos-client/README.md",
|
|
354
354
|
"mode": "0000644",
|
|
355
|
-
"sha256": "
|
|
355
|
+
"sha256": "80d3bb0a3dc011b0c2b16558b20c1ea2adc3e5345418a8d08f13a7cd2ac5eb9a"
|
|
356
356
|
},
|
|
357
357
|
{
|
|
358
358
|
"path": "clients/bongos-client/bongos-client.global.js",
|
|
359
359
|
"mode": "0000644",
|
|
360
|
-
"sha256": "
|
|
360
|
+
"sha256": "833fecb6824cb535eb990a8f3a516528c6d560eee856323f5d824afe5bcf7932"
|
|
361
361
|
},
|
|
362
362
|
{
|
|
363
363
|
"path": "clients/bongos-client/examples/hello-world.mjs",
|
|
@@ -367,17 +367,17 @@
|
|
|
367
367
|
{
|
|
368
368
|
"path": "clients/bongos-client/index.cjs",
|
|
369
369
|
"mode": "0000644",
|
|
370
|
-
"sha256": "
|
|
370
|
+
"sha256": "bf528220a1990c760111ef291e6d6d6543b62440ab62c3962a8772e897218c69"
|
|
371
371
|
},
|
|
372
372
|
{
|
|
373
373
|
"path": "clients/bongos-client/index.d.ts",
|
|
374
374
|
"mode": "0000644",
|
|
375
|
-
"sha256": "
|
|
375
|
+
"sha256": "dd6fa5d218cefbb27478836ce57a46eb3ca2b2d1639dbf7349240af75af5e65d"
|
|
376
376
|
},
|
|
377
377
|
{
|
|
378
378
|
"path": "clients/bongos-client/index.mjs",
|
|
379
379
|
"mode": "0000644",
|
|
380
|
-
"sha256": "
|
|
380
|
+
"sha256": "b07a09551c9af7e526aaf2416e5340b112f7b8b8ffc28c49afe252092a215f9c"
|
|
381
381
|
},
|
|
382
382
|
{
|
|
383
383
|
"path": "clients/bongos-client/package.json",
|
|
@@ -1522,12 +1522,12 @@
|
|
|
1522
1522
|
{
|
|
1523
1523
|
"path": "docs/api-reference.md",
|
|
1524
1524
|
"mode": "0000644",
|
|
1525
|
-
"sha256": "
|
|
1525
|
+
"sha256": "10be85740e8432f8a1979fc356981f3542aa622f4d001de508e7c7f1c129b832"
|
|
1526
1526
|
},
|
|
1527
1527
|
{
|
|
1528
1528
|
"path": "docs/api/openapi.json",
|
|
1529
1529
|
"mode": "0000644",
|
|
1530
|
-
"sha256": "
|
|
1530
|
+
"sha256": "cf98b9af848cd0afc56d713ff39e37840b63d4e1548aa184838514e5eec02a64"
|
|
1531
1531
|
},
|
|
1532
1532
|
{
|
|
1533
1533
|
"path": "docs/architecture.md",
|
|
@@ -1552,12 +1552,12 @@
|
|
|
1552
1552
|
{
|
|
1553
1553
|
"path": "docs/copy-inventory.md",
|
|
1554
1554
|
"mode": "0000644",
|
|
1555
|
-
"sha256": "
|
|
1555
|
+
"sha256": "9190ff246dbc8abad78c67e603417e0dc46016f32f45406ba5cdc7904d863658"
|
|
1556
1556
|
},
|
|
1557
1557
|
{
|
|
1558
1558
|
"path": "docs/copy-registry.json",
|
|
1559
1559
|
"mode": "0000644",
|
|
1560
|
-
"sha256": "
|
|
1560
|
+
"sha256": "9b85ab135b2fc5078dc5ec3d633d84a7700bfd45a6717844ee3475d3602a2282"
|
|
1561
1561
|
},
|
|
1562
1562
|
{
|
|
1563
1563
|
"path": "docs/design/apex-pass-2-direction.md",
|
|
@@ -2779,6 +2779,11 @@
|
|
|
2779
2779
|
"mode": "0000644",
|
|
2780
2780
|
"sha256": "031f739e4e22e2bf9fa3480147f4b0f280d4ed8610d71d8d8a828a83b9cabca2"
|
|
2781
2781
|
},
|
|
2782
|
+
{
|
|
2783
|
+
"path": "migrations/core_229_goals_accepting_requests.sql",
|
|
2784
|
+
"mode": "0000644",
|
|
2785
|
+
"sha256": "dd1f70a3414182ac1bfd6ff4a5bd4b18142d55e46d0e67eb708e334d5da6f393"
|
|
2786
|
+
},
|
|
2782
2787
|
{
|
|
2783
2788
|
"path": "modules/agents/migrations/agents_001_definitions.sql",
|
|
2784
2789
|
"mode": "0000644",
|
|
@@ -3162,7 +3167,7 @@
|
|
|
3162
3167
|
{
|
|
3163
3168
|
"path": "modules/dev-box/app/src/vendor/bongos-client.cjs",
|
|
3164
3169
|
"mode": "0000644",
|
|
3165
|
-
"sha256": "
|
|
3170
|
+
"sha256": "bf528220a1990c760111ef291e6d6d6543b62440ab62c3962a8772e897218c69"
|
|
3166
3171
|
},
|
|
3167
3172
|
{
|
|
3168
3173
|
"path": "modules/dev-box/app/test/unit.mjs",
|
|
@@ -3822,12 +3827,12 @@
|
|
|
3822
3827
|
{
|
|
3823
3828
|
"path": "modules/hall-ui/public/goals-page.js",
|
|
3824
3829
|
"mode": "0000644",
|
|
3825
|
-
"sha256": "
|
|
3830
|
+
"sha256": "3f401db6c8dbba4137f1c022e6abddacca6ccf20dfb3ba32eab590893b3e22e9"
|
|
3826
3831
|
},
|
|
3827
3832
|
{
|
|
3828
3833
|
"path": "modules/hall-ui/public/goals-render.js",
|
|
3829
3834
|
"mode": "0000644",
|
|
3830
|
-
"sha256": "
|
|
3835
|
+
"sha256": "709ce7ddbcd7b6964eefc251ef1941ed316002d22df7cba498cb47d187dd060f"
|
|
3831
3836
|
},
|
|
3832
3837
|
{
|
|
3833
3838
|
"path": "modules/hall-ui/public/goals.css",
|
|
@@ -4297,7 +4302,7 @@
|
|
|
4297
4302
|
{
|
|
4298
4303
|
"path": "modules/lifecycle/db-goals.js",
|
|
4299
4304
|
"mode": "0000644",
|
|
4300
|
-
"sha256": "
|
|
4305
|
+
"sha256": "3ad7f78cbad987307d2203facbc91cec879565f398f9893a0218bbf29fc061bb"
|
|
4301
4306
|
},
|
|
4302
4307
|
{
|
|
4303
4308
|
"path": "modules/lifecycle/db-grade.js",
|
|
@@ -4337,7 +4342,7 @@
|
|
|
4337
4342
|
{
|
|
4338
4343
|
"path": "modules/lifecycle/db.js",
|
|
4339
4344
|
"mode": "0000644",
|
|
4340
|
-
"sha256": "
|
|
4345
|
+
"sha256": "1bcdab1b402f5222b7e05824fee64f3fbab895f3bd4f8ab17c1c0a5438353c53"
|
|
4341
4346
|
},
|
|
4342
4347
|
{
|
|
4343
4348
|
"path": "modules/lifecycle/dead-deps.js",
|
|
@@ -4382,7 +4387,7 @@
|
|
|
4382
4387
|
{
|
|
4383
4388
|
"path": "modules/lifecycle/goal-edits.js",
|
|
4384
4389
|
"mode": "0000644",
|
|
4385
|
-
"sha256": "
|
|
4390
|
+
"sha256": "09ca2631bfa979f5948b6b669cfe478cc67db3d4e1fbacd4c6f2bbd5ce0ec618"
|
|
4386
4391
|
},
|
|
4387
4392
|
{
|
|
4388
4393
|
"path": "modules/lifecycle/goal-rollup.js",
|
|
@@ -4492,12 +4497,12 @@
|
|
|
4492
4497
|
{
|
|
4493
4498
|
"path": "modules/lifecycle/routes/goal-route-authz.js",
|
|
4494
4499
|
"mode": "0000644",
|
|
4495
|
-
"sha256": "
|
|
4500
|
+
"sha256": "be82985479547bd602dbad544b5e71a3c491cea3c7b0273394c136f1df675b37"
|
|
4496
4501
|
},
|
|
4497
4502
|
{
|
|
4498
4503
|
"path": "modules/lifecycle/routes/goals.js",
|
|
4499
4504
|
"mode": "0000644",
|
|
4500
|
-
"sha256": "
|
|
4505
|
+
"sha256": "4b24b165d99f165c8407ee403b7abc898c842afc48137695add01fff694ca17b"
|
|
4501
4506
|
},
|
|
4502
4507
|
{
|
|
4503
4508
|
"path": "modules/lifecycle/routes/help-requests.js",
|
|
@@ -5352,12 +5357,12 @@
|
|
|
5352
5357
|
{
|
|
5353
5358
|
"path": "package-lock.json",
|
|
5354
5359
|
"mode": "0000644",
|
|
5355
|
-
"sha256": "
|
|
5360
|
+
"sha256": "82095eda38d2b9f3c87a291abd6fd0f8fadec30d215b6745d396e546ebc82f87"
|
|
5356
5361
|
},
|
|
5357
5362
|
{
|
|
5358
5363
|
"path": "package.json",
|
|
5359
5364
|
"mode": "0000644",
|
|
5360
|
-
"sha256": "
|
|
5365
|
+
"sha256": "c210dfbd1a63b82e3b3f5ef826a029fe363b9bac63dfe428b13b851e6e6e44eb"
|
|
5361
5366
|
},
|
|
5362
5367
|
{
|
|
5363
5368
|
"path": "public-docs/index.html",
|
|
@@ -7237,7 +7242,7 @@
|
|
|
7237
7242
|
{
|
|
7238
7243
|
"path": "src/bongos/route-rank-check.js",
|
|
7239
7244
|
"mode": "0000644",
|
|
7240
|
-
"sha256": "
|
|
7245
|
+
"sha256": "ebdf0cb4cb521fbf5aa7809c39e89ad4f776e77b194c734042fae72226511674"
|
|
7241
7246
|
},
|
|
7242
7247
|
{
|
|
7243
7248
|
"path": "src/bongos/routes.js",
|
|
@@ -7372,7 +7377,7 @@
|
|
|
7372
7377
|
{
|
|
7373
7378
|
"path": "src/module-api.js",
|
|
7374
7379
|
"mode": "0000644",
|
|
7375
|
-
"sha256": "
|
|
7380
|
+
"sha256": "1f17103055d4b6493af1e3cc0ac40b6865a844dd3aac8736c45423400f7315b3"
|
|
7376
7381
|
},
|
|
7377
7382
|
{
|
|
7378
7383
|
"path": "src/module-loader/catalog.js",
|
|
@@ -8382,7 +8387,7 @@
|
|
|
8382
8387
|
{
|
|
8383
8388
|
"path": "tests/goal_membership_requests.mjs",
|
|
8384
8389
|
"mode": "0000644",
|
|
8385
|
-
"sha256": "
|
|
8390
|
+
"sha256": "bb1bc68167bc599082aaf2b582d4907461bdf62fd0d8cf0b6a80cdff75e51449"
|
|
8386
8391
|
},
|
|
8387
8392
|
{
|
|
8388
8393
|
"path": "tests/goal_names.mjs",
|
|
@@ -9402,7 +9407,7 @@
|
|
|
9402
9407
|
{
|
|
9403
9408
|
"path": "tests/prose_edits.mjs",
|
|
9404
9409
|
"mode": "0000644",
|
|
9405
|
-
"sha256": "
|
|
9410
|
+
"sha256": "a613b7cfa675db5231c44319146333d173d2dfa53da092654d5bd11a141483f4"
|
|
9406
9411
|
},
|
|
9407
9412
|
{
|
|
9408
9413
|
"path": "tests/provision.mjs",
|
|
@@ -5,7 +5,7 @@ A **generated**, zero-dependency typed client for the Bongos API — produced fr
|
|
|
5
5
|
by hand; it regenerates when the spec changes, so it can never drift from the routes.
|
|
6
6
|
|
|
7
7
|
- API version: **v1** (served at `/api/bongos/v1`)
|
|
8
|
-
-
|
|
8
|
+
- 327 operations across 52 resource groups
|
|
9
9
|
|
|
10
10
|
## Install
|
|
11
11
|
|
|
@@ -325,6 +325,8 @@ function createClient(opts = {}) {
|
|
|
325
325
|
getGoalsId: (args) => request("GET", "/goals/{id}", { hasBody: false }, args),
|
|
326
326
|
// PATCH /goals/{id} — rank: any-builder — PATCH /goals/:id
|
|
327
327
|
patchGoalsId: (args) => request("PATCH", "/goals/{id}", { hasBody: true }, args),
|
|
328
|
+
// PATCH /goals/{id}/accepting-requests — rank: any-builder — PATCH /goals/:id/accepting-requests
|
|
329
|
+
patchGoalsIdAcceptingRequests: (args) => request("PATCH", "/goals/{id}/accepting-requests", { hasBody: true }, args),
|
|
328
330
|
// POST /goals/{id}/archive — rank: metic+archon — POST /goals/:id/archive
|
|
329
331
|
postGoalsIdArchive: (args) => request("POST", "/goals/{id}/archive", { hasBody: true }, args),
|
|
330
332
|
// PATCH /goals/{id}/category — rank: any-builder — PATCH /goals/:id/category
|
|
@@ -335,6 +337,8 @@ function createClient(opts = {}) {
|
|
|
335
337
|
postGoalsIdConflictsResolve: (args) => request("POST", "/goals/{id}/conflicts/resolve", { hasBody: true }, args),
|
|
336
338
|
// POST /goals/{id}/invitations — rank: any-builder — POST /goals/:id/invitations
|
|
337
339
|
postGoalsIdInvitations: (args) => request("POST", "/goals/{id}/invitations", { hasBody: true }, args),
|
|
340
|
+
// POST /goals/{id}/invitations/{reqId}/rescind — rank: any-builder — POST /goals/:id/invitations/:reqId/rescind
|
|
341
|
+
postGoalsIdInvitationsReqIdRescind: (args) => request("POST", "/goals/{id}/invitations/{reqId}/rescind", { hasBody: true }, args),
|
|
338
342
|
// POST /goals/{id}/invitations/{reqId}/respond — rank: any-builder — POST /goals/:id/invitations/:reqId/respond
|
|
339
343
|
postGoalsIdInvitationsReqIdRespond: (args) => request("POST", "/goals/{id}/invitations/{reqId}/respond", { hasBody: true }, args),
|
|
340
344
|
// POST /goals/{id}/join — rank: any-builder — POST /goals/:id/join
|
|
@@ -324,6 +324,8 @@ function createClient(opts = {}) {
|
|
|
324
324
|
getGoalsId: (args) => request("GET", "/goals/{id}", { hasBody: false }, args),
|
|
325
325
|
// PATCH /goals/{id} — rank: any-builder — PATCH /goals/:id
|
|
326
326
|
patchGoalsId: (args) => request("PATCH", "/goals/{id}", { hasBody: true }, args),
|
|
327
|
+
// PATCH /goals/{id}/accepting-requests — rank: any-builder — PATCH /goals/:id/accepting-requests
|
|
328
|
+
patchGoalsIdAcceptingRequests: (args) => request("PATCH", "/goals/{id}/accepting-requests", { hasBody: true }, args),
|
|
327
329
|
// POST /goals/{id}/archive — rank: metic+archon — POST /goals/:id/archive
|
|
328
330
|
postGoalsIdArchive: (args) => request("POST", "/goals/{id}/archive", { hasBody: true }, args),
|
|
329
331
|
// PATCH /goals/{id}/category — rank: any-builder — PATCH /goals/:id/category
|
|
@@ -334,6 +336,8 @@ function createClient(opts = {}) {
|
|
|
334
336
|
postGoalsIdConflictsResolve: (args) => request("POST", "/goals/{id}/conflicts/resolve", { hasBody: true }, args),
|
|
335
337
|
// POST /goals/{id}/invitations — rank: any-builder — POST /goals/:id/invitations
|
|
336
338
|
postGoalsIdInvitations: (args) => request("POST", "/goals/{id}/invitations", { hasBody: true }, args),
|
|
339
|
+
// POST /goals/{id}/invitations/{reqId}/rescind — rank: any-builder — POST /goals/:id/invitations/:reqId/rescind
|
|
340
|
+
postGoalsIdInvitationsReqIdRescind: (args) => request("POST", "/goals/{id}/invitations/{reqId}/rescind", { hasBody: true }, args),
|
|
337
341
|
// POST /goals/{id}/invitations/{reqId}/respond — rank: any-builder — POST /goals/:id/invitations/:reqId/respond
|
|
338
342
|
postGoalsIdInvitationsReqIdRespond: (args) => request("POST", "/goals/{id}/invitations/{reqId}/respond", { hasBody: true }, args),
|
|
339
343
|
// POST /goals/{id}/join — rank: any-builder — POST /goals/:id/join
|
|
@@ -234,6 +234,7 @@ export interface PostGithubReposResponse { repo: unknown }
|
|
|
234
234
|
export interface PostGoalsIdArchiveResponse { ok: boolean; goal: unknown }
|
|
235
235
|
export interface PostGoalsIdConflictsResolveRequest { action: string; note?: string; touches?: string[]; first_task_id?: StringifiableId; then_task_id?: StringifiableId; task_id?: StringifiableId }
|
|
236
236
|
export interface PostGoalsIdConflictsResolveResponse { ok: boolean; action: unknown; first_task_id?: unknown; then_task_id?: unknown; dependencies?: unknown; claim?: unknown; task_id?: unknown; touches?: unknown; requires_rank?: unknown }
|
|
237
|
+
export interface PostGoalsIdInvitationsReqIdRescindResponse { ok: boolean; request: unknown }
|
|
237
238
|
export interface PostGoalsIdInvitationsReqIdRespondRequest { action: string }
|
|
238
239
|
export interface PostGoalsIdInvitationsReqIdRespondResponse { ok: boolean; action: unknown; request: unknown; member?: unknown }
|
|
239
240
|
export interface PostGoalsIdInvitationsRequest { note?: string; builder_id?: StringifiableId }
|
|
@@ -618,6 +619,8 @@ export interface BongosClient {
|
|
|
618
619
|
getGoalsId(args?: RequestArgs): Promise<GetGoalsIdResponse>;
|
|
619
620
|
/** PATCH /goals/{id} — rank: any-builder */
|
|
620
621
|
patchGoalsId(args?: RequestArgs): Promise<ApiResponse>;
|
|
622
|
+
/** PATCH /goals/{id}/accepting-requests — rank: any-builder */
|
|
623
|
+
patchGoalsIdAcceptingRequests(args?: RequestArgs): Promise<ApiResponse>;
|
|
621
624
|
/** POST /goals/{id}/archive — rank: metic+archon */
|
|
622
625
|
postGoalsIdArchive(args?: RequestArgs): Promise<PostGoalsIdArchiveResponse>;
|
|
623
626
|
/** PATCH /goals/{id}/category — rank: any-builder */
|
|
@@ -628,6 +631,8 @@ export interface BongosClient {
|
|
|
628
631
|
postGoalsIdConflictsResolve(args: RequestArgs & { body: PostGoalsIdConflictsResolveRequest }): Promise<PostGoalsIdConflictsResolveResponse>;
|
|
629
632
|
/** POST /goals/{id}/invitations — rank: any-builder */
|
|
630
633
|
postGoalsIdInvitations(args?: RequestArgs & { body?: PostGoalsIdInvitationsRequest }): Promise<PostGoalsIdInvitationsResponse>;
|
|
634
|
+
/** POST /goals/{id}/invitations/{reqId}/rescind — rank: any-builder */
|
|
635
|
+
postGoalsIdInvitationsReqIdRescind(args?: RequestArgs): Promise<PostGoalsIdInvitationsReqIdRescindResponse>;
|
|
631
636
|
/** POST /goals/{id}/invitations/{reqId}/respond — rank: any-builder */
|
|
632
637
|
postGoalsIdInvitationsReqIdRespond(args: RequestArgs & { body: PostGoalsIdInvitationsReqIdRespondRequest }): Promise<PostGoalsIdInvitationsReqIdRespondResponse>;
|
|
633
638
|
/** POST /goals/{id}/join — rank: any-builder */
|
|
@@ -321,6 +321,8 @@ export function createClient(opts = {}) {
|
|
|
321
321
|
getGoalsId: (args) => request("GET", "/goals/{id}", { hasBody: false }, args),
|
|
322
322
|
// PATCH /goals/{id} — rank: any-builder — PATCH /goals/:id
|
|
323
323
|
patchGoalsId: (args) => request("PATCH", "/goals/{id}", { hasBody: true }, args),
|
|
324
|
+
// PATCH /goals/{id}/accepting-requests — rank: any-builder — PATCH /goals/:id/accepting-requests
|
|
325
|
+
patchGoalsIdAcceptingRequests: (args) => request("PATCH", "/goals/{id}/accepting-requests", { hasBody: true }, args),
|
|
324
326
|
// POST /goals/{id}/archive — rank: metic+archon — POST /goals/:id/archive
|
|
325
327
|
postGoalsIdArchive: (args) => request("POST", "/goals/{id}/archive", { hasBody: true }, args),
|
|
326
328
|
// PATCH /goals/{id}/category — rank: any-builder — PATCH /goals/:id/category
|
|
@@ -331,6 +333,8 @@ export function createClient(opts = {}) {
|
|
|
331
333
|
postGoalsIdConflictsResolve: (args) => request("POST", "/goals/{id}/conflicts/resolve", { hasBody: true }, args),
|
|
332
334
|
// POST /goals/{id}/invitations — rank: any-builder — POST /goals/:id/invitations
|
|
333
335
|
postGoalsIdInvitations: (args) => request("POST", "/goals/{id}/invitations", { hasBody: true }, args),
|
|
336
|
+
// POST /goals/{id}/invitations/{reqId}/rescind — rank: any-builder — POST /goals/:id/invitations/:reqId/rescind
|
|
337
|
+
postGoalsIdInvitationsReqIdRescind: (args) => request("POST", "/goals/{id}/invitations/{reqId}/rescind", { hasBody: true }, args),
|
|
334
338
|
// POST /goals/{id}/invitations/{reqId}/respond — rank: any-builder — POST /goals/:id/invitations/:reqId/respond
|
|
335
339
|
postGoalsIdInvitationsReqIdRespond: (args) => request("POST", "/goals/{id}/invitations/{reqId}/respond", { hasBody: true }, args),
|
|
336
340
|
// POST /goals/{id}/join — rank: any-builder — POST /goals/:id/join
|
package/docs/api/openapi.json
CHANGED
|
@@ -4644,6 +4644,51 @@
|
|
|
4644
4644
|
]
|
|
4645
4645
|
}
|
|
4646
4646
|
},
|
|
4647
|
+
"/goals/{id}/accepting-requests": {
|
|
4648
|
+
"patch": {
|
|
4649
|
+
"operationId": "patch_goals_id_accepting_requests",
|
|
4650
|
+
"tags": [
|
|
4651
|
+
"goals"
|
|
4652
|
+
],
|
|
4653
|
+
"summary": "PATCH /goals/:id/accepting-requests",
|
|
4654
|
+
"description": "PATCH /goals/:id/accepting-requests { accepting_requests } — a private goal's lead closes or re-opens it to join-requests (task 1002971, spec D6). Closed refuses new asks with honest copy; INVITATIONS ARE UNAFFECTED, so a lead can still reach out. Handler in goal-edits.js beside the visibility toggle (the same gate, the same kind of write); only the registration lives here so route-rank-check still classifies it. rank: any-builder (requireBuilder) + the in-handler owner|manager|Archon gate.\n\n**Rank:** `any-builder` — Any authenticated builder (row-level ownership enforced in-handler).",
|
|
4655
|
+
"x-rank": "any-builder",
|
|
4656
|
+
"x-source": "modules/lifecycle/routes/goals.js",
|
|
4657
|
+
"parameters": [
|
|
4658
|
+
{
|
|
4659
|
+
"name": "id",
|
|
4660
|
+
"in": "path",
|
|
4661
|
+
"required": true,
|
|
4662
|
+
"schema": {
|
|
4663
|
+
"type": "string"
|
|
4664
|
+
},
|
|
4665
|
+
"description": "Path parameter `id`."
|
|
4666
|
+
}
|
|
4667
|
+
],
|
|
4668
|
+
"responses": {
|
|
4669
|
+
"200": {
|
|
4670
|
+
"description": "Success."
|
|
4671
|
+
},
|
|
4672
|
+
"400": {
|
|
4673
|
+
"$ref": "#/components/responses/BadRequest"
|
|
4674
|
+
},
|
|
4675
|
+
"401": {
|
|
4676
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
4677
|
+
},
|
|
4678
|
+
"403": {
|
|
4679
|
+
"$ref": "#/components/responses/Forbidden"
|
|
4680
|
+
},
|
|
4681
|
+
"404": {
|
|
4682
|
+
"$ref": "#/components/responses/NotFound"
|
|
4683
|
+
}
|
|
4684
|
+
},
|
|
4685
|
+
"security": [
|
|
4686
|
+
{
|
|
4687
|
+
"builderSession": []
|
|
4688
|
+
}
|
|
4689
|
+
]
|
|
4690
|
+
}
|
|
4691
|
+
},
|
|
4647
4692
|
"/goals/{id}/archive": {
|
|
4648
4693
|
"post": {
|
|
4649
4694
|
"operationId": "post_goals_id_archive",
|
|
@@ -4922,6 +4967,67 @@
|
|
|
4922
4967
|
]
|
|
4923
4968
|
}
|
|
4924
4969
|
},
|
|
4970
|
+
"/goals/{id}/invitations/{reqId}/rescind": {
|
|
4971
|
+
"post": {
|
|
4972
|
+
"operationId": "post_goals_id_invitations_reqId_rescind",
|
|
4973
|
+
"tags": [
|
|
4974
|
+
"goals"
|
|
4975
|
+
],
|
|
4976
|
+
"summary": "POST /goals/:id/invitations/:reqId/rescind",
|
|
4977
|
+
"description": "POST /goals/:id/invitations/:reqId/rescind — an owner|manager|Archon takes back a PENDING invitation the goal sent (task 1002971): the manager-side mirror of the requester's withdraw, and the missing half of core_188's 'cancelled' state (\"withdrawn/rescinded by the opener\" — only the requester half existed). Sets status='cancelled', kept as the audit trail like a deny's 'rejected'; never touches a join-request row. rank: any-builder (requireBuilder) + the in-handler authorizeRescindInvitation.\n\n**Rank:** `any-builder` — Any authenticated builder (row-level ownership enforced in-handler).",
|
|
4978
|
+
"x-rank": "any-builder",
|
|
4979
|
+
"x-source": "modules/lifecycle/routes/goals.js",
|
|
4980
|
+
"parameters": [
|
|
4981
|
+
{
|
|
4982
|
+
"name": "id",
|
|
4983
|
+
"in": "path",
|
|
4984
|
+
"required": true,
|
|
4985
|
+
"schema": {
|
|
4986
|
+
"type": "string"
|
|
4987
|
+
},
|
|
4988
|
+
"description": "Path parameter `id`."
|
|
4989
|
+
},
|
|
4990
|
+
{
|
|
4991
|
+
"name": "reqId",
|
|
4992
|
+
"in": "path",
|
|
4993
|
+
"required": true,
|
|
4994
|
+
"schema": {
|
|
4995
|
+
"type": "string"
|
|
4996
|
+
},
|
|
4997
|
+
"description": "Path parameter `reqId`."
|
|
4998
|
+
}
|
|
4999
|
+
],
|
|
5000
|
+
"responses": {
|
|
5001
|
+
"200": {
|
|
5002
|
+
"description": "Success.",
|
|
5003
|
+
"content": {
|
|
5004
|
+
"application/json": {
|
|
5005
|
+
"schema": {
|
|
5006
|
+
"$ref": "#/components/schemas/PostGoalsIdInvitationsReqIdRescindResponse"
|
|
5007
|
+
}
|
|
5008
|
+
}
|
|
5009
|
+
}
|
|
5010
|
+
},
|
|
5011
|
+
"400": {
|
|
5012
|
+
"$ref": "#/components/responses/BadRequest"
|
|
5013
|
+
},
|
|
5014
|
+
"401": {
|
|
5015
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
5016
|
+
},
|
|
5017
|
+
"403": {
|
|
5018
|
+
"$ref": "#/components/responses/Forbidden"
|
|
5019
|
+
},
|
|
5020
|
+
"404": {
|
|
5021
|
+
"$ref": "#/components/responses/NotFound"
|
|
5022
|
+
}
|
|
5023
|
+
},
|
|
5024
|
+
"security": [
|
|
5025
|
+
{
|
|
5026
|
+
"builderSession": []
|
|
5027
|
+
}
|
|
5028
|
+
]
|
|
5029
|
+
}
|
|
5030
|
+
},
|
|
4925
5031
|
"/goals/{id}/invitations/{reqId}/respond": {
|
|
4926
5032
|
"post": {
|
|
4927
5033
|
"operationId": "post_goals_id_invitations_reqId_respond",
|
|
@@ -18032,6 +18138,19 @@
|
|
|
18032
18138
|
"action"
|
|
18033
18139
|
]
|
|
18034
18140
|
},
|
|
18141
|
+
"PostGoalsIdInvitationsReqIdRescindResponse": {
|
|
18142
|
+
"type": "object",
|
|
18143
|
+
"properties": {
|
|
18144
|
+
"ok": {
|
|
18145
|
+
"type": "boolean"
|
|
18146
|
+
},
|
|
18147
|
+
"request": {}
|
|
18148
|
+
},
|
|
18149
|
+
"required": [
|
|
18150
|
+
"ok",
|
|
18151
|
+
"request"
|
|
18152
|
+
]
|
|
18153
|
+
},
|
|
18035
18154
|
"PostGoalsIdInvitationsReqIdRespondRequest": {
|
|
18036
18155
|
"type": "object",
|
|
18037
18156
|
"properties": {
|
|
@@ -20532,9 +20651,9 @@
|
|
|
20532
20651
|
"description": "A required dependency/feature is not configured or is temporarily down."
|
|
20533
20652
|
}
|
|
20534
20653
|
},
|
|
20535
|
-
"x-endpoint-count":
|
|
20536
|
-
"x-schema-count":
|
|
20654
|
+
"x-endpoint-count": 327,
|
|
20655
|
+
"x-schema-count": 361,
|
|
20537
20656
|
"x-undocumented-bodies": 9,
|
|
20538
|
-
"x-response-schemas":
|
|
20657
|
+
"x-response-schemas": 244,
|
|
20539
20658
|
"x-generated-by": "scripts/gds/gen-api-docs.js"
|
|
20540
20659
|
}
|
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. 327 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`.
|
|
@@ -207,7 +207,7 @@ Base path: `/api/bongos`. Ranks (enforced server-side, [ADR 0016](adr/<redacted>
|
|
|
207
207
|
| GET | `/api/bongos/github/repos` | `any-builder` | — | acts only on the caller's OWN GitHub identity (the token they granted). |
|
|
208
208
|
| POST | `/api/bongos/github/repos` | `any-builder` | `name` | creates a repo in the caller's OWN account. |
|
|
209
209
|
|
|
210
|
-
## `goals` (
|
|
210
|
+
## `goals` (30)
|
|
211
211
|
|
|
212
212
|
| Method | Path | Rank | Body | Description |
|
|
213
213
|
|---|---|---|---|---|
|
|
@@ -215,11 +215,13 @@ Base path: `/api/bongos`. Ranks (enforced server-side, [ADR 0016](adr/<redacted>
|
|
|
215
215
|
| POST | `/api/bongos/goals` | `metic+archon` | `version_id`, `title`, `subtitle`, `description`, `scope_modules`, `succeeds_goal_id`, `category_id` | POST /goals — create a goal. |
|
|
216
216
|
| GET | `/api/bongos/goals/:id` | `any-builder` | — | GET /goals/:id — one goal with its members + linked criteria (read). |
|
|
217
217
|
| PATCH | `/api/bongos/goals/:id` | `any-builder` | — | PATCH /goals/:id — correct a goal's own title/subtitle/description (tasks 1003102, 1003224). |
|
|
218
|
+
| PATCH | `/api/bongos/goals/:id/accepting-requests` | `any-builder` | — | PATCH /goals/:id/accepting-requests { accepting_requests } — a private goal's lead closes or re-opens it to join-requests (task 1002971, … |
|
|
218
219
|
| POST | `/api/bongos/goals/:id/archive` | `metic+archon` | — | POST /goals/:id/archive — retire a goal (open\|achieved → archived). |
|
|
219
220
|
| PATCH | `/api/bongos/goals/:id/category` | `any-builder` | — | PATCH /goals/:id/category — body { category_id } (null clears it). |
|
|
220
221
|
| GET | `/api/bongos/goals/:id/conflicts` | `any-builder` | — | GET /goals/:id/conflicts — the server-side task-conflict view (task 1736). |
|
|
221
222
|
| POST | `/api/bongos/goals/:id/conflicts/resolve` | `any-builder` | `action`, `note`, `touches`, `first_task_id`, `then_task_id`, `task_id` | POST /goals/:id/conflicts/resolve — the owner/manager resolution actions for a detected conflict (task 1736; authority model ADR 0106): s… |
|
|
222
223
|
| POST | `/api/bongos/goals/:id/invitations` | `any-builder` | `note`, `builder_id` | POST /goals/:id/invitations { builder_id, note? } — an owner\|manager\|Archon invites a builder (task 1952). |
|
|
224
|
+
| POST | `/api/bongos/goals/:id/invitations/:reqId/rescind` | `any-builder` | — | POST /goals/:id/invitations/:reqId/rescind — an owner\|manager\|Archon takes back a PENDING invitation the goal sent (task 1002971): the ma… |
|
|
223
225
|
| POST | `/api/bongos/goals/:id/invitations/:reqId/respond` | `any-builder` | `action` | POST /goals/:id/invitations/:reqId/respond { action: accept\|decline } — ONLY the invited builder resolves their OWN pending invite (task … |
|
|
224
226
|
| POST | `/api/bongos/goals/:id/join` | `any-builder` | — | POST /goals/:id/join — join an open goal. |
|
|
225
227
|
| POST | `/api/bongos/goals/:id/leave` | `any-builder` | — | POST /goals/:id/leave — leave a goal you're in. |
|