@bongos/core 1.19.980 → 1.19.982

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 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.980",
6
- "core_contract": "1.19.980",
7
- "source_commit": "7e92e28e22b7fc66cf188d2f089c9824fc3c2c4f",
5
+ "core_version": "1.19.982",
6
+ "core_contract": "1.19.982",
7
+ "source_commit": "a5257c54873e65bbbc155ed297456b95d5fc6dba",
8
8
  "source_ref": "HEAD",
9
- "built_at": "2026-09-23T16:31:15.535Z",
9
+ "built_at": "2026-09-23T17:16:41.214Z",
10
10
  "redaction": {
11
11
  "model": "docs-redacted+functional-verbatim",
12
12
  "docs_redacted": 517,
13
13
  "agent_docs_stubbed": 26,
14
- "functional_verbatim": 2386,
14
+ "functional_verbatim": 2389,
15
15
  "rules": 3,
16
16
  "gate_literals": 3,
17
17
  "gate": "passed"
18
18
  },
19
- "file_count": 2929,
20
- "tree_sha256": "c520e6934b708166a12bcdce8eb65bec32d14c3141823739f4e11ca7a4ccf0e0",
19
+ "file_count": 2932,
20
+ "tree_sha256": "4fe68956083c075cc0d1a986e3f70788f301484ede1ca13cbea6736f8aa0207f",
21
21
  "files": [
22
22
  {
23
23
  "path": ".claude/skills/ask-for-help/SKILL.md",
@@ -347,12 +347,12 @@
347
347
  {
348
348
  "path": "clients/bongos-client/README.md",
349
349
  "mode": "0000644",
350
- "sha256": "d1f7b1bdb4daf98ee7e0c11fd8bd51d202413fb8c1d2cf684d9389d58974b24f"
350
+ "sha256": "11c3f5d462872cf65a44f18df3962f305f9ad74b26342240ae8905587964c82d"
351
351
  },
352
352
  {
353
353
  "path": "clients/bongos-client/bongos-client.global.js",
354
354
  "mode": "0000644",
355
- "sha256": "c3e0241775c4cad76f8bc17edcc131bfdf649b6280b1ae9559bccf863a8b2658"
355
+ "sha256": "f06b1cdeaecb450c800d108227c26755f311593f75a3d15d2023df217a87a310"
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": "7a788085abb4096f48136d5908affd272da6c0b4129ed4de073b0934451e3028"
365
+ "sha256": "9090588dea0d315cf37dd4333d2d8785989681b1380518fe831cfbd9b1545457"
366
366
  },
367
367
  {
368
368
  "path": "clients/bongos-client/index.d.ts",
369
369
  "mode": "0000644",
370
- "sha256": "692a295c1c9602f09da7f296b5e0550f7ae381a2f9fe34a060019cee6443287e"
370
+ "sha256": "01c1f524af646a8dfceb37f5c25748b05da851891dff06d66d7c42659531af78"
371
371
  },
372
372
  {
373
373
  "path": "clients/bongos-client/index.mjs",
374
374
  "mode": "0000644",
375
- "sha256": "d420a781a25d4d4b8f038894b7829a1e024aafbd51a6d32266ed120cbb7a50c9"
375
+ "sha256": "0ed448c51d0d65b288cd8c38cf8cbd480791abd10c198c0e15cd52d31f7021b2"
376
376
  },
377
377
  {
378
378
  "path": "clients/bongos-client/package.json",
@@ -1362,7 +1362,7 @@
1362
1362
  {
1363
1363
  "path": "docs/adr/0176-private-repo-deploy-keys.md",
1364
1364
  "mode": "0000644",
1365
- "sha256": "a397741f6fcbf88fe3a05fabe74c5fa0e6464d810e812ae7981700b13a0f1806"
1365
+ "sha256": "6a3e592b377ec23a9de965834f27234bd818956c05435c9e56258b54edc436d8"
1366
1366
  },
1367
1367
  {
1368
1368
  "path": "docs/adr/0177-goal-membership-kind.md",
@@ -2142,12 +2142,12 @@
2142
2142
  {
2143
2143
  "path": "docs/api-reference.md",
2144
2144
  "mode": "0000644",
2145
- "sha256": "8873738d997a6674e1e441d84ab099f50f771c4878cef4f179624269124d9617"
2145
+ "sha256": "84d9a8e9b4616bf051529a4788e30553716c576a8b6daf268e754fabe038a2ad"
2146
2146
  },
2147
2147
  {
2148
2148
  "path": "docs/api/openapi.json",
2149
2149
  "mode": "0000644",
2150
- "sha256": "4149767d635c42bbe1b4d4e44c18c017e188871cd3445887262ee1df1106061f"
2150
+ "sha256": "b227cab471090f0e961366e0299ad4ac7195c9123e46215f4af7b3bd7cf7713b"
2151
2151
  },
2152
2152
  {
2153
2153
  "path": "docs/architecture.md",
@@ -2172,12 +2172,12 @@
2172
2172
  {
2173
2173
  "path": "docs/copy-inventory.md",
2174
2174
  "mode": "0000644",
2175
- "sha256": "ba0cec7ca155cae33a729aeed1bc960396f62f24119b4189070ae0ed1720e7f6"
2175
+ "sha256": "f30f0e6d96320996a43c9dc1e86259cdee14017ffc382c520915e5e45bd2fbfc"
2176
2176
  },
2177
2177
  {
2178
2178
  "path": "docs/copy-registry.json",
2179
2179
  "mode": "0000644",
2180
- "sha256": "fa6b7f4460cd63dcd37fe69928707e6281a32a36a6a2ce1f18d430961ec51039"
2180
+ "sha256": "47d8ce9cf66304fa6e7fb6afd0066d639ee36a2224c7d14d58fbfb2c73682150"
2181
2181
  },
2182
2182
  {
2183
2183
  "path": "docs/design/apex-pass-2-direction.md",
@@ -2707,7 +2707,7 @@
2707
2707
  {
2708
2708
  "path": "docs/module-api-changelog.md",
2709
2709
  "mode": "0000644",
2710
- "sha256": "b0b20c2d38f39b2de54cdc173285f2e37b582a6e94bc4b46244eed8ec5eca1cc"
2710
+ "sha256": "5b812786a676f9c4d5a8a50dbaf9d9b6ef8fd836e8967f90ff4d29548637d0ee"
2711
2711
  },
2712
2712
  {
2713
2713
  "path": "docs/modules-contract.md",
@@ -4712,7 +4712,7 @@
4712
4712
  {
4713
4713
  "path": "modules/hall-ui/public/blockers-lib.js",
4714
4714
  "mode": "0000644",
4715
- "sha256": "3780d533a99f3418fe1f1c5486258ee105cdbe7320264bfbc08e3a88bb539150"
4715
+ "sha256": "c251924697bf5f1157f3660b4b236c21c73d6b30394d6a3385dc8a4426c64d59"
4716
4716
  },
4717
4717
  {
4718
4718
  "path": "modules/hall-ui/public/blockers.html",
@@ -4722,7 +4722,7 @@
4722
4722
  {
4723
4723
  "path": "modules/hall-ui/public/blockers.js",
4724
4724
  "mode": "0000644",
4725
- "sha256": "756983ad538385f5992d088d781bffadf495cc866ed3fca6df56ef734c53f50f"
4725
+ "sha256": "ad3e3ea63283c31a6602a06695a9248444bd7306fa3624b53f8687c4534e4171"
4726
4726
  },
4727
4727
  {
4728
4728
  "path": "modules/hall-ui/public/board-lib.js",
@@ -4927,7 +4927,7 @@
4927
4927
  {
4928
4928
  "path": "modules/hall-ui/public/goal-inbox.js",
4929
4929
  "mode": "0000644",
4930
- "sha256": "b64ea71dc70993e2d3f8e728a0c3ff6450ffb14d8bc84ea7fb6825f9758aa089"
4930
+ "sha256": "d5466b9d9717ed3bcb4919b1d05c338945d73ad185fdfc7efffea5db382a2f7e"
4931
4931
  },
4932
4932
  {
4933
4933
  "path": "modules/hall-ui/public/goal-map-lib.js",
@@ -6742,7 +6742,7 @@
6742
6742
  {
6743
6743
  "path": "modules/provisioning/module.json",
6744
6744
  "mode": "0000644",
6745
- "sha256": "7b8f3cd100c15c8aaf16bf8d0d173993f4215cb58590a6e2f517a57bc099d240"
6745
+ "sha256": "cfe235ec6835cc7fa101642dff2d0757806a45b27bdf0823059d3c3d11587c5e"
6746
6746
  },
6747
6747
  {
6748
6748
  "path": "modules/provisioning/onboard-plan.js",
@@ -6824,6 +6824,11 @@
6824
6824
  "mode": "0000644",
6825
6825
  "sha256": "a10d9ac50f6be584c33a6bb559ad9d0431c2ac7f4655c23fcdf47baedf540cd2"
6826
6826
  },
6827
+ {
6828
+ "path": "modules/provisioning/routes/repo-private.js",
6829
+ "mode": "0000644",
6830
+ "sha256": "d3e027abebdf6e799bf63bd18aa5958bbe212c8da73b20055b62f7250cd83927"
6831
+ },
6827
6832
  {
6828
6833
  "path": "modules/provisioning/seams.js",
6829
6834
  "mode": "0000644",
@@ -7347,7 +7352,7 @@
7347
7352
  {
7348
7353
  "path": "modules/public-landing/public/projects.html",
7349
7354
  "mode": "0000644",
7350
- "sha256": "a9c38198d1491112e83ae135ac59f1318e6beb076d551677e9a239ce0ed6a335"
7355
+ "sha256": "1f8f6bdbe6c4ef451acd357c1ad277132ec2bee4d688c2f700da2ed582d1e50b"
7351
7356
  },
7352
7357
  {
7353
7358
  "path": "modules/public-landing/public/projects.probes.json",
@@ -8147,12 +8152,12 @@
8147
8152
  {
8148
8153
  "path": "package-lock.json",
8149
8154
  "mode": "0000644",
8150
- "sha256": "d0620eae73bba11cd42473b163ad3eb1fc066cb17e4c9bbe8445517a57b20beb"
8155
+ "sha256": "eace0d80d6fa83b011c78c5fd079d1cae88ae901e67df3a33be0031b9e222d4f"
8151
8156
  },
8152
8157
  {
8153
8158
  "path": "package.json",
8154
8159
  "mode": "0000644",
8155
- "sha256": "fe13c610a08748c99ae43a611bddad1709f43163c8c107b85fb6d8690fddbb97"
8160
+ "sha256": "b41e008a0dadf8ab96c9801153e0075950bb415881784369df2c96b5963b68e5"
8156
8161
  },
8157
8162
  {
8158
8163
  "path": "public-docs/index.html",
@@ -10082,7 +10087,7 @@
10082
10087
  {
10083
10088
  "path": "src/bongos/routes/github.js",
10084
10089
  "mode": "0000644",
10085
- "sha256": "d8674cd2358b63f8463d91484495feaa38219fafdc0d925ad52ddb206a2cc84a"
10090
+ "sha256": "752056364c7a826bdd4d6da2f14a0ce48284c93621ccdf5bea10bac3bbb2941f"
10086
10091
  },
10087
10092
  {
10088
10093
  "path": "src/bongos/routes/healthz.js",
@@ -10177,7 +10182,7 @@
10177
10182
  {
10178
10183
  "path": "src/module-api.js",
10179
10184
  "mode": "0000644",
10180
- "sha256": "6c31da122ca01487eb9d0e70dc06fd77f36d60d2333d0b1f8f24c2660c86c7df"
10185
+ "sha256": "6eb9e78bf371f8206b07336bf485fefc822966b2e13200a3b0dd688f1aa8967a"
10181
10186
  },
10182
10187
  {
10183
10188
  "path": "src/module-loader/catalog.js",
@@ -10707,7 +10712,7 @@
10707
10712
  {
10708
10713
  "path": "tests/blockers_lib.mjs",
10709
10714
  "mode": "0000644",
10710
- "sha256": "2b35127281fd8a932386e406b4dd36c6d95575c2f71853bec02d65c4ff904d00"
10715
+ "sha256": "74ace2b06e545cf110094ad46e141e545dc00daff63292bdfeda9fa286e45c43"
10711
10716
  },
10712
10717
  {
10713
10718
  "path": "tests/blockers_page_ui.mjs",
@@ -11562,7 +11567,7 @@
11562
11567
  {
11563
11568
  "path": "tests/github_repo_visibility.mjs",
11564
11569
  "mode": "0000644",
11565
- "sha256": "c2c428ade3a7cf802dfc46415c1d3c1e09fe826e223df71101e81d014cb5d69e"
11570
+ "sha256": "18b0bcd5a8b9a91ae7301b13816d1ea05cf940669b9c6cb50ba5b3cf5d186533"
11566
11571
  },
11567
11572
  {
11568
11573
  "path": "tests/github_repos_helpers.mjs",
@@ -13247,7 +13252,7 @@
13247
13252
  {
13248
13253
  "path": "tests/projects_hub.mjs",
13249
13254
  "mode": "0000644",
13250
- "sha256": "8898b1a4458b0d76c071c901f89eacc21fb64cbfed37614afad5bdea16bef4b3"
13255
+ "sha256": "70f6f093aeec0c995cfa377511921c81a014ba6833751cd2ad661ce767e58c4e"
13251
13256
  },
13252
13257
  {
13253
13258
  "path": "tests/projects_hub_module_picker.mjs",
@@ -13257,7 +13262,12 @@
13257
13262
  {
13258
13263
  "path": "tests/projects_hub_pre_uat.mjs",
13259
13264
  "mode": "0000644",
13260
- "sha256": "b0aa7ed3cbc5a205942dbfb8a34344574a9a350c07dcda816ac70b8f36c5af38"
13265
+ "sha256": "5e85019ba86c519e01b2f58f18f8b7af7d8250c1a3319109f625df1fc989369c"
13266
+ },
13267
+ {
13268
+ "path": "tests/projects_hub_repo_private.mjs",
13269
+ "mode": "0000644",
13270
+ "sha256": "f4447800f87257cf6bb6c438293fee0762e693fdb97ea557af08b5928c1a27ce"
13261
13271
  },
13262
13272
  {
13263
13273
  "path": "tests/promote_deps_gate.mjs",
@@ -13409,6 +13419,11 @@
13409
13419
  "mode": "0000644",
13410
13420
  "sha256": "587c6e640493939be17f6f293ceba8d22d125c79e43c070793b0325458132c71"
13411
13421
  },
13422
+ {
13423
+ "path": "tests/provisioning_repo_private_route.mjs",
13424
+ "mode": "0000644",
13425
+ "sha256": "d7bdf82b4196f7037af476353ec562dc2e661bae0163526827413981ef61f438"
13426
+ },
13412
13427
  {
13413
13428
  "path": "tests/provisioning_restart.mjs",
13414
13429
  "mode": "0000644",
@@ -13462,7 +13477,7 @@
13462
13477
  {
13463
13478
  "path": "tests/public_landing_projects.mjs",
13464
13479
  "mode": "0000644",
13465
- "sha256": "d361a8616065d668363f6bd05f10e3e018a263595d12fb514f194c6d06667094"
13480
+ "sha256": "0e694ff6b1b2281fcc5a2d13a5099b9802f22589425d9cdb7b9a7f4cc08d696e"
13466
13481
  },
13467
13482
  {
13468
13483
  "path": "tests/public_mirror_export.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
- - 410 operations across 61 resource groups
8
+ - 411 operations across 61 resource groups
9
9
 
10
10
  ## Use it from your project
11
11
 
@@ -759,6 +759,8 @@ function createClient(opts = {}) {
759
759
  postProvisioningInstancesIdGithubApp: (args) => request("POST", "/provisioning/instances/{id}/github-app", { hasBody: true }, args),
760
760
  // GET /provisioning/instances/{id}/invite-suggestions — rank: any-builder — GET /provisioning/instances/:id/invite-suggestions
761
761
  getProvisioningInstancesIdInviteSuggestions: (args) => request("GET", "/provisioning/instances/{id}/invite-suggestions", { hasBody: false }, args),
762
+ // POST /provisioning/instances/{id}/repo-private — rank: any-builder — POST /provisioning/instances/:id/repo-private
763
+ postProvisioningInstancesIdRepoPrivate: (args) => request("POST", "/provisioning/instances/{id}/repo-private", { hasBody: true }, args),
762
764
  // POST /provisioning/instances/{id}/restart — rank: any-builder — POST /provisioning/instances/:id/restart
763
765
  postProvisioningInstancesIdRestart: (args) => request("POST", "/provisioning/instances/{id}/restart", { hasBody: true }, args),
764
766
  // GET /provisioning/instances/{id}/settings — rank: any-builder — GET /provisioning/instances/:id/settings
@@ -758,6 +758,8 @@ function createClient(opts = {}) {
758
758
  postProvisioningInstancesIdGithubApp: (args) => request("POST", "/provisioning/instances/{id}/github-app", { hasBody: true }, args),
759
759
  // GET /provisioning/instances/{id}/invite-suggestions — rank: any-builder — GET /provisioning/instances/:id/invite-suggestions
760
760
  getProvisioningInstancesIdInviteSuggestions: (args) => request("GET", "/provisioning/instances/{id}/invite-suggestions", { hasBody: false }, args),
761
+ // POST /provisioning/instances/{id}/repo-private — rank: any-builder — POST /provisioning/instances/:id/repo-private
762
+ postProvisioningInstancesIdRepoPrivate: (args) => request("POST", "/provisioning/instances/{id}/repo-private", { hasBody: true }, args),
761
763
  // POST /provisioning/instances/{id}/restart — rank: any-builder — POST /provisioning/instances/:id/restart
762
764
  postProvisioningInstancesIdRestart: (args) => request("POST", "/provisioning/instances/{id}/restart", { hasBody: true }, args),
763
765
  // GET /provisioning/instances/{id}/settings — rank: any-builder — GET /provisioning/instances/:id/settings
@@ -376,6 +376,7 @@ export interface PostProvisioningInstancesIdEnvManifestRequest { name: string; d
376
376
  export interface PostProvisioningInstancesIdForceTeardownResponse { ok: boolean; queued: unknown; action: unknown; status: unknown; superseded: unknown; message: unknown }
377
377
  export interface PostProvisioningInstancesIdGithubAppRequest { account?: string }
378
378
  export interface PostProvisioningInstancesIdGithubAppResponse { state: unknown; account: unknown; post_url: unknown; personal_url: unknown; org_url: unknown; org_login: unknown; manifest: unknown; redirect_url: unknown; expires_at: unknown }
379
+ export interface PostProvisioningInstancesIdRepoPrivateResponse { ok: boolean; queued: unknown; action: unknown; status: unknown; message: unknown }
379
380
  export interface PostProvisioningInstancesIdRestartResponse { ok: boolean; queued: unknown; action: unknown; status: unknown; message: unknown }
380
381
  export interface PostProvisioningInstancesIdTeardownResponse { ok: boolean; queued: unknown; action: unknown; status: unknown; superseded: unknown; message: unknown }
381
382
  export interface PostProvisioningInstancesRequest { slug: string; target_ref?: string; hosting_shape?: string; domain?: string; no_address?: boolean; tier?: string; onboard_mode?: string; type?: string; description?: string; detail?: Record<string, unknown>; modules?: string[] }
@@ -1140,6 +1141,8 @@ export interface BongosClient {
1140
1141
  postProvisioningInstancesIdGithubApp(args?: RequestArgs & { body?: PostProvisioningInstancesIdGithubAppRequest }): Promise<PostProvisioningInstancesIdGithubAppResponse>;
1141
1142
  /** GET /provisioning/instances/{id}/invite-suggestions — rank: any-builder */
1142
1143
  getProvisioningInstancesIdInviteSuggestions(args?: RequestArgs): Promise<GetProvisioningInstancesIdInviteSuggestionsResponse>;
1144
+ /** POST /provisioning/instances/{id}/repo-private — rank: any-builder */
1145
+ postProvisioningInstancesIdRepoPrivate(args?: RequestArgs): Promise<PostProvisioningInstancesIdRepoPrivateResponse>;
1143
1146
  /** POST /provisioning/instances/{id}/restart — rank: any-builder */
1144
1147
  postProvisioningInstancesIdRestart(args?: RequestArgs): Promise<PostProvisioningInstancesIdRestartResponse>;
1145
1148
  /** GET /provisioning/instances/{id}/settings — rank: any-builder */
@@ -755,6 +755,8 @@ export function createClient(opts = {}) {
755
755
  postProvisioningInstancesIdGithubApp: (args) => request("POST", "/provisioning/instances/{id}/github-app", { hasBody: true }, args),
756
756
  // GET /provisioning/instances/{id}/invite-suggestions — rank: any-builder — GET /provisioning/instances/:id/invite-suggestions
757
757
  getProvisioningInstancesIdInviteSuggestions: (args) => request("GET", "/provisioning/instances/{id}/invite-suggestions", { hasBody: false }, args),
758
+ // POST /provisioning/instances/{id}/repo-private — rank: any-builder — POST /provisioning/instances/:id/repo-private
759
+ postProvisioningInstancesIdRepoPrivate: (args) => request("POST", "/provisioning/instances/{id}/repo-private", { hasBody: true }, args),
758
760
  // POST /provisioning/instances/{id}/restart — rank: any-builder — POST /provisioning/instances/:id/restart
759
761
  postProvisioningInstancesIdRestart: (args) => request("POST", "/provisioning/instances/{id}/restart", { hasBody: true }, args),
760
762
  // GET /provisioning/instances/{id}/settings — rank: any-builder — GET /provisioning/instances/:id/settings
@@ -53,10 +53,11 @@ best-effort revokes the key by title. Pushes keep preferring the owner-token HTT
53
53
  origin still rides the shared alias.
54
54
  **Progress (2026-09-23):** the runner half has landed — task 1004167 let the wiring run
55
55
  before a flip (`intendedPrivate`), and task 1004193 added the `repo-private` intent whose
56
- runner leg wires the key and only then flips. The refusal stays until task 1003078 adds the
57
- route and the manage-page control that enqueue it. **That route is owner-only** (owner
58
- decision, task 1004194): the runner acts with the owner's stored GitHub token whoever
59
- queued the intent, so an archon override would act on another person's GitHub account.
56
+ runner leg wires the key and only then flips. Task 1003078 then added the route
57
+ (`POST /provisioning/instances/:id/repo-private`) and the manage-page control that enqueue it,
58
+ and the refusal is gone. **That route is owner-only** (owner decision, task 1004194): the
59
+ runner acts with the owner's stored GitHub token whoever queued the intent, so an archon
60
+ override would act on another person's GitHub account.
60
61
  - Builder **dev boxes** of a private-repo project were parked here as out of scope.
61
62
  **Answered on hardware 2026-08-25 (task 1003247): a box CAN read the private repo, and the
62
63
  auth design needed no change.** The GDS-backed credential helper (`otb-git-credential`,
@@ -5582,7 +5582,7 @@
5582
5582
  "github"
5583
5583
  ],
5584
5584
  "summary": "POST /github/repo/visibility",
5585
- "description": "flips one of the caller's repos PUBLIC, with their own credential. The private direction is REFUSED here, before GitHub is ever called: the deploy pull still runs as the shared deploy key that cannot read a private repo (walk finding N4), so flipping private would break the project's next deploy — the refusal is the honest leg task 1003045 ships.\n\n**Rank:** `any-builder` — Any authenticated builder (row-level ownership enforced in-handler).",
5585
+ "description": "flips one of the caller's repos PUBLIC, with their own credential. The private direction is REFUSED here, before GitHub is ever called: a project stood up public reads its code with the shared key, which cannot read a private repo (walk finding N4), so a bare flip would break its next deploy. Making it private is POST /provisioning/instances/:id/repo-private (task 1003078), which wires the project's own deploy key before it flips.\n\n**Rank:** `any-builder` — Any authenticated builder (row-level ownership enforced in-handler).",
5586
5586
  "x-rank": "any-builder",
5587
5587
  "x-source": "src/bongos/routes/github.js",
5588
5588
  "requestBody": {
@@ -13630,6 +13630,70 @@
13630
13630
  ]
13631
13631
  }
13632
13632
  },
13633
+ "/provisioning/instances/{id}/repo-private": {
13634
+ "post": {
13635
+ "operationId": "post_provisioning_instances_id_repo_private",
13636
+ "tags": [
13637
+ "provisioning"
13638
+ ],
13639
+ "summary": "POST /provisioning/instances/:id/repo-private",
13640
+ "description": "POST /provisioning/instances/:id/repo-private — rank: any authenticated builder, and OWNER ONLY: no archon override, because the runner flips with the owner's stored GitHub token whoever asked (owner decision, task 1004194). 404 for everyone else, so another owner's id is never confirmed. Takes no body. The reply is a receipt — the repository is still public when it is sent; the manage page re-reads GitHub once the intent settles.\n\n**Rank:** `any-builder` — Any authenticated builder (row-level ownership enforced in-handler).",
13641
+ "x-rank": "any-builder",
13642
+ "x-source": "modules/provisioning/routes/repo-private.js",
13643
+ "parameters": [
13644
+ {
13645
+ "name": "id",
13646
+ "in": "path",
13647
+ "required": true,
13648
+ "schema": {
13649
+ "type": "string"
13650
+ },
13651
+ "description": "Path parameter `id`."
13652
+ }
13653
+ ],
13654
+ "requestBody": {
13655
+ "required": false,
13656
+ "content": {
13657
+ "application/json": {
13658
+ "schema": {
13659
+ "type": "object",
13660
+ "additionalProperties": true
13661
+ }
13662
+ }
13663
+ },
13664
+ "x-validated": true
13665
+ },
13666
+ "responses": {
13667
+ "200": {
13668
+ "description": "Success.",
13669
+ "content": {
13670
+ "application/json": {
13671
+ "schema": {
13672
+ "$ref": "#/components/schemas/PostProvisioningInstancesIdRepoPrivateResponse"
13673
+ }
13674
+ }
13675
+ }
13676
+ },
13677
+ "400": {
13678
+ "$ref": "#/components/responses/ValidationFailed"
13679
+ },
13680
+ "401": {
13681
+ "$ref": "#/components/responses/Unauthorized"
13682
+ },
13683
+ "403": {
13684
+ "$ref": "#/components/responses/Forbidden"
13685
+ },
13686
+ "404": {
13687
+ "$ref": "#/components/responses/NotFound"
13688
+ }
13689
+ },
13690
+ "security": [
13691
+ {
13692
+ "builderSession": []
13693
+ }
13694
+ ]
13695
+ }
13696
+ },
13633
13697
  "/provisioning/instances/{id}/restart": {
13634
13698
  "post": {
13635
13699
  "operationId": "post_provisioning_instances_id_restart",
@@ -24519,6 +24583,25 @@
24519
24583
  "expires_at"
24520
24584
  ]
24521
24585
  },
24586
+ "PostProvisioningInstancesIdRepoPrivateResponse": {
24587
+ "type": "object",
24588
+ "properties": {
24589
+ "ok": {
24590
+ "type": "boolean"
24591
+ },
24592
+ "queued": {},
24593
+ "action": {},
24594
+ "status": {},
24595
+ "message": {}
24596
+ },
24597
+ "required": [
24598
+ "ok",
24599
+ "queued",
24600
+ "action",
24601
+ "status",
24602
+ "message"
24603
+ ]
24604
+ },
24522
24605
  "PostProvisioningInstancesIdRestartResponse": {
24523
24606
  "type": "object",
24524
24607
  "properties": {
@@ -26060,9 +26143,9 @@
26060
26143
  "description": "A required dependency/feature is not configured or is temporarily down."
26061
26144
  }
26062
26145
  },
26063
- "x-endpoint-count": 410,
26064
- "x-schema-count": 448,
26146
+ "x-endpoint-count": 411,
26147
+ "x-schema-count": 449,
26065
26148
  "x-undocumented-bodies": 9,
26066
- "x-response-schemas": 304,
26149
+ "x-response-schemas": 305,
26067
26150
  "x-generated-by": "scripts/gds/gen-api-docs.js"
26068
26151
  }
@@ -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. 410 endpoints across 67 route files.
5
+ > **Generated from the live route files** — the route file is authoritative. 411 endpoints across 68 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`.
@@ -507,7 +507,7 @@ Base path: `/api/bongos`. Ranks (enforced server-side, [ADR 0016](adr/0016-trust
507
507
  | GET | `/api/bongos/projects/featured` | `public` | — | the public map of projects; no auth by design. |
508
508
  | POST | `/api/bongos/projects/invite` | `metic+archon` | `client_id`, `github_login` | own-or-metic in effect: invite a builder into a project (ADR 0141 §5, task #1002115), called by a `project.curate` holder OR the project'… |
509
509
 
510
- ## `provisioning` (30)
510
+ ## `provisioning` (31)
511
511
 
512
512
  | Method | Path | Rank | Body | Description |
513
513
  |---|---|---|---|---|
@@ -532,6 +532,7 @@ Base path: `/api/bongos`. Ranks (enforced server-side, [ADR 0016](adr/0016-trust
532
532
  | POST | `/api/bongos/provisioning/instances/:id/force-teardown` | `metic+archon` | — | POST /provisioning/instances/:id/force-teardown — Archon tears down ANY instance. |
533
533
  | POST | `/api/bongos/provisioning/instances/:id/github-app` | `any-builder` | `account` | POST /provisioning/instances/:id/github-app — mint a GitHub-App-Manifest onboarding link for the caller's OWN instance (task 2080, ADR 01… |
534
534
  | GET | `/api/bongos/provisioning/instances/:id/invite-suggestions` | `any-builder` | — | ── Who is worth inviting (BV1.R28, task 1002347, goal 1000046 C6) ──────── GET /provisioning/instances/:id/invite-suggestions — turn the … |
535
+ | POST | `/api/bongos/provisioning/instances/:id/repo-private` | `any-builder` | validated | POST /provisioning/instances/:id/repo-private — rank: any authenticated builder, and OWNER ONLY: no archon override, because the runner f… |
535
536
  | POST | `/api/bongos/provisioning/instances/:id/restart` | `any-builder` | — | POST /provisioning/instances/:id/restart — restart an ACTIVE project the heartbeat cannot reach (task 1003238). |
536
537
  | GET | `/api/bongos/provisioning/instances/:id/settings` | `any-builder` | — | GET /provisioning/instances/:id/settings — read a project's effective settings + the allowed values (so a form can render its choices). |
537
538
  | PATCH | `/api/bongos/provisioning/instances/:id/settings` | `any-builder` | validated | PATCH /provisioning/instances/:id/settings — change a project's settings. |