@bongos/core 1.18.18 → 1.19.2

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.
Files changed (251) hide show
  1. package/.bongos-core.json +515 -195
  2. package/.claude/skills/builder-box/SKILL.md +1 -1
  3. package/.claude/skills/builder-claim/SKILL.md +1 -1
  4. package/.claude/skills/goal-create/SKILL.md +1 -1
  5. package/.claude/skills/idea-triage/SKILL.md +1 -1
  6. package/.claude/skills/planning-session/SKILL.md +5 -5
  7. package/.claude/skills/scan-before-install/SKILL.md +165 -0
  8. package/clients/bongos-client/README.md +1 -1
  9. package/clients/bongos-client/bongos-client.global.js +63 -41
  10. package/clients/bongos-client/index.cjs +63 -41
  11. package/clients/bongos-client/index.d.ts +78 -44
  12. package/clients/bongos-client/index.mjs +63 -41
  13. package/docs/adr/0020-security-model-public-stub.md +1 -1
  14. package/docs/adr/0097-one-active-claim-per-session-and-worktree-binding.md +2 -0
  15. package/docs/adr/0144-devbox-rehome-onto-cloudbongos-plane.md +1 -1
  16. package/docs/adr/0151-governance-permissions-as-atom-ranks-as-roles.md +2 -1
  17. package/docs/adr/0155-adopt-private-repo-widen-oauth-scope.md +51 -0
  18. package/docs/adr/0156-user-set-display-name-wins.md +62 -0
  19. package/docs/adr/0157-archon-is-rank-and-identity-only.md +93 -0
  20. package/docs/adr/0158-choke-point-verdict-taxonomy.md +174 -0
  21. package/docs/adr/0159-merge-gate-reconciliation.md +88 -0
  22. package/docs/adr/0160-main-audit-repo-verifiable-caller.md +77 -0
  23. package/docs/adr/README.md +8 -0
  24. package/docs/api/openapi.json +1209 -233
  25. package/docs/api-reference.md +61 -46
  26. package/docs/architecture.md +1 -1
  27. package/docs/canonical-permissions.md +61 -16
  28. package/docs/design/vanilla-hall-ui-redesign-scope.md +1 -1
  29. package/docs/file-map.md +4 -1
  30. package/docs/onboarding/diagrams/assertions.json +3 -3
  31. package/docs/recipes/core-release-pipeline.md +179 -0
  32. package/docs/recipes/packaging-the-core.md +2 -0
  33. package/docs/recipes/parallel-goal-waves.md +1 -3
  34. package/docs/recipes/private-npm-distribution.md +2 -0
  35. package/docs/recipes/upgrading-the-core.md +2 -0
  36. package/migrations/core_197_display_name_source.sql +56 -0
  37. package/migrations/core_204_rekey_active_claim_per_session_worktree.sql +77 -0
  38. package/modules/autonomy/routes/autonomy.js +1 -1
  39. package/modules/builder-settings/db.js +7 -1
  40. package/modules/dev-box/app/src/vendor/bongos-client.cjs +63 -41
  41. package/modules/dev-box/routes/box.js +11 -9
  42. package/modules/discord/auth.js +3 -1
  43. package/modules/discord/routes/discord.js +8 -2
  44. package/modules/discord/ship-broadcast.js +48 -1
  45. package/modules/governance/catalog.js +70 -20
  46. package/modules/governance/db.js +102 -0
  47. package/modules/governance/migrations/governance_006_version_create.sql +38 -0
  48. package/modules/governance/migrations/governance_007_delegate_archon_ops_to_metic.sql +72 -0
  49. package/modules/governance/routes/governance.js +235 -6
  50. package/modules/grading/grader-workers/index.js +18 -9
  51. package/modules/hall-ui/public/gate.js +6 -2
  52. package/modules/hall-ui/public/goals-page.js +6 -2
  53. package/modules/hall-ui/public/governance.css +100 -0
  54. package/modules/hall-ui/public/governance.html +77 -0
  55. package/modules/hall-ui/public/governance.js +353 -0
  56. package/modules/hall-ui/public/harbor.js +14 -8
  57. package/modules/hall-ui/public/instances-panel.js +3 -1
  58. package/modules/hall-ui/public/new-project-wizard.js +6 -0
  59. package/modules/hall-ui/public/people.html +51 -0
  60. package/modules/hall-ui/public/people.js +100 -0
  61. package/modules/hall-ui/public/profile.html +2 -1
  62. package/modules/hall-ui/public/profile.js +9 -3
  63. package/modules/hall-ui/public/sessions.js +4 -2
  64. package/modules/hall-ui/public/shell.js +28 -7
  65. package/modules/hall-ui/public/task-detail.js +6 -3
  66. package/modules/hall-ui/public/watch.js +17 -9
  67. package/modules/ideas/blockers.js +44 -7
  68. package/modules/ideas/routes/blockers.js +12 -7
  69. package/modules/ideas/routes/inbox.js +2 -2
  70. package/modules/lifecycle/db.js +84 -17
  71. package/modules/lifecycle/github-push.js +37 -10
  72. package/modules/lifecycle/publish-reconciler.js +128 -31
  73. package/modules/lifecycle/routes/claims.js +10 -4
  74. package/modules/lifecycle/routes/dependencies.js +2 -2
  75. package/modules/lifecycle/routes/done-when.js +4 -4
  76. package/modules/lifecycle/routes/gate-approvals.js +9 -3
  77. package/modules/lifecycle/routes/goals.js +5 -5
  78. package/modules/lifecycle/routes/tasks.js +16 -16
  79. package/modules/lifecycle/routes/versions.js +13 -2
  80. package/modules/lifecycle/ship-card.js +38 -7
  81. package/modules/memory/routes/memory.js +2 -2
  82. package/modules/onboarding/routes/access-requests.js +3 -3
  83. package/modules/platform-identity/routes/projects.js +10 -6
  84. package/modules/platform-identity/routes/scouting.js +2 -2
  85. package/modules/provisioning/migrations/provisioning_004_onboard_mode.sql +30 -0
  86. package/modules/provisioning/provisioning.js +24 -6
  87. package/modules/provisioning/routes/provisioning.js +24 -6
  88. package/modules/security/artifact-scan/aggregate.js +133 -0
  89. package/modules/security/artifact-scan/detectors/capabilities.js +53 -0
  90. package/modules/security/artifact-scan/detectors/config-obfuscation.js +41 -0
  91. package/modules/security/artifact-scan/detectors/credentials.js +112 -0
  92. package/modules/security/artifact-scan/detectors/dependencies.js +115 -0
  93. package/modules/security/artifact-scan/detectors/hooks.js +116 -0
  94. package/modules/security/artifact-scan/detectors/injection.js +118 -0
  95. package/modules/security/artifact-scan/detectors/mcp.js +102 -0
  96. package/modules/security/artifact-scan/detectors/network.js +67 -0
  97. package/modules/security/artifact-scan/detectors/npm-lifecycle.js +67 -0
  98. package/modules/security/artifact-scan/detectors/permissions.js +91 -0
  99. package/modules/security/artifact-scan/detectors/shared.js +219 -0
  100. package/modules/security/artifact-scan/fence-local.js +99 -0
  101. package/modules/security/artifact-scan/fetch.js +330 -0
  102. package/modules/security/artifact-scan/floor.js +319 -0
  103. package/modules/security/artifact-scan/limits.js +66 -0
  104. package/modules/security/artifact-scan/manifest.js +203 -0
  105. package/modules/security/artifact-scan/mirror.js +158 -0
  106. package/modules/security/artifact-scan/quarantine.js +149 -0
  107. package/modules/security/artifact-scan/rebuild-spec.js +120 -0
  108. package/modules/security/artifact-scan/report.js +155 -0
  109. package/modules/security/artifact-scan/sanitize.js +317 -0
  110. package/modules/security/migrations/security_001_tool_scans.sql +145 -0
  111. package/modules/security/module.json +2 -2
  112. package/modules/security/routes/reports.js +11 -7
  113. package/modules/security/routes/scans.js +115 -0
  114. package/modules/security/scan-store.js +214 -0
  115. package/modules/security/tests/aggregate.mjs +283 -0
  116. package/modules/security/tests/artifact_scan.mjs +591 -0
  117. package/modules/security/tests/floor.mjs +549 -0
  118. package/modules/security/tests/mirror.mjs +350 -0
  119. package/modules/security/tests/sanitize_rebuild.mjs +499 -0
  120. package/modules/security/tests/scan_store.mjs +250 -0
  121. package/modules/security/tests/tool_scans_migration.mjs +116 -0
  122. package/modules/sessions/routes/sessions.js +6 -5
  123. package/package-lock.json +2 -2
  124. package/package.json +1 -1
  125. package/public-landing/create.html +13 -3
  126. package/scripts/gds/abandon.js +1 -1
  127. package/scripts/gds/audit-authorship.sh +6 -0
  128. package/scripts/gds/box.js +1 -1
  129. package/scripts/gds/claim.js +15 -0
  130. package/scripts/gds/cli-lib.js +16 -4
  131. package/scripts/gds/gating.js +28 -13
  132. package/scripts/gds/gen-api-docs.js +1 -1
  133. package/scripts/gds/goal.js +234 -0
  134. package/scripts/gds/init.js +70 -15
  135. package/scripts/gds/main-audit.js +80 -11
  136. package/scripts/gds/mirror-redact.js +6 -0
  137. package/scripts/gds/newcomer-floor.js +2 -2
  138. package/scripts/gds/provision.js +230 -94
  139. package/scripts/gds/run-unit-tests.js +9 -1
  140. package/scripts/gds/sandbox-stage.js +66 -9
  141. package/scripts/gds/search-ingest-md.js +1 -0
  142. package/scripts/gds/sequence.js +67 -8
  143. package/scripts/gds/ship.js +183 -50
  144. package/scripts/hall-preview/server.js +1 -1
  145. package/scripts/migrate.sh +99 -14
  146. package/src/bongos/auth.js +129 -27
  147. package/src/bongos/db-kernel.js +66 -5
  148. package/src/bongos/db.js +6 -7
  149. package/src/bongos/github-repos.js +19 -7
  150. package/src/bongos/goal-scope-check.js +1 -1
  151. package/src/bongos/module-scope-map.js +3 -1
  152. package/src/bongos/permission-path-check.js +1 -1
  153. package/src/bongos/route-rank-check.js +73 -30
  154. package/src/bongos/routes/audit-log.js +4 -2
  155. package/src/bongos/routes/auth.js +8 -4
  156. package/src/bongos/routes/backup.js +7 -4
  157. package/src/bongos/routes/builders.js +23 -11
  158. package/src/bongos/routes/github.js +15 -4
  159. package/src/bongos/routes/llm-cache.js +5 -2
  160. package/src/bongos/routes/modules.js +9 -5
  161. package/src/bongos/routes/security.js +21 -12
  162. package/src/bongos/serve-internal.js +22 -7
  163. package/src/module-api.js +86 -1
  164. package/src/platform-server.js +14 -0
  165. package/tests/api_client.mjs +18 -2
  166. package/tests/api_path_404.mjs +3 -0
  167. package/tests/art_stage.mjs +2 -1
  168. package/tests/atlas.mjs +32 -4
  169. package/tests/auth_admission_gate.mjs +17 -5
  170. package/tests/auth_error_brand.mjs +41 -21
  171. package/tests/auth_resolve_failure.mjs +155 -0
  172. package/tests/blocker_link.mjs +88 -0
  173. package/tests/bongos_downloads.mjs +2 -1
  174. package/tests/box_dns_repoint.mjs +2 -0
  175. package/tests/box_ship_permissions.mjs +2 -0
  176. package/tests/box_terminal_ssrf.mjs +23 -17
  177. package/tests/claim_error_surface.mjs +23 -0
  178. package/tests/claude_materialize.mjs +4 -0
  179. package/tests/cli_box_scope.mjs +40 -0
  180. package/tests/cloud_bongos_pack.mjs +34 -4
  181. package/tests/conductor.mjs +2 -1
  182. package/tests/criterion_authoring_gate.mjs +28 -5
  183. package/tests/currency_label.mjs +10 -1
  184. package/tests/deploy_instance.mjs +2 -0
  185. package/tests/devbox_downloads.mjs +2 -1
  186. package/tests/display_name.mjs +95 -6
  187. package/tests/eviction_policy.mjs +2 -1
  188. package/tests/file_map.mjs +10 -0
  189. package/tests/first_admin_bootstrap.mjs +10 -2
  190. package/tests/first_run_engine_check.mjs +2 -1
  191. package/tests/fitness.mjs +26 -6
  192. package/tests/gate_approvals.mjs +15 -2
  193. package/tests/github_push_land_proof.mjs +50 -4
  194. package/tests/github_repos_helpers.mjs +30 -5
  195. package/tests/github_token_store.mjs +23 -0
  196. package/tests/goal_abuse_matrix.mjs +13 -3
  197. package/tests/goal_cli.mjs +89 -0
  198. package/tests/governance_abuse_matrix.mjs +386 -0
  199. package/tests/governance_fold.mjs +156 -0
  200. package/tests/governance_fold_bench.mjs +50 -0
  201. package/tests/governance_live_proof.mjs +201 -0
  202. package/tests/governance_page_gates.mjs +21 -9
  203. package/tests/governance_parity.mjs +11 -2
  204. package/tests/governance_require_permission.mjs +125 -1
  205. package/tests/governance_routes.mjs +334 -0
  206. package/tests/grader.mjs +7 -3
  207. package/tests/hall_nav.mjs +14 -4
  208. package/tests/helpers.mjs +73 -0
  209. package/tests/hook_core_resolve.mjs +2 -1
  210. package/tests/host_topology_skips.mjs +97 -0
  211. package/tests/infra_exec_paths.mjs +14 -4
  212. package/tests/init.mjs +128 -0
  213. package/tests/known_failing_ratchet.mjs +89 -0
  214. package/tests/lifecycle-card.mjs +2 -1
  215. package/tests/main_audit.mjs +72 -1
  216. package/tests/memory_isolation.mjs +56 -9
  217. package/tests/migrate_root_resolution.mjs +124 -1
  218. package/tests/mirror_redact.mjs +19 -0
  219. package/tests/module_api.mjs +3 -1
  220. package/tests/module_loader.mjs +4 -0
  221. package/tests/modules.mjs +35 -7
  222. package/tests/modules_route.mjs +29 -5
  223. package/tests/onboarding_observability.mjs +49 -11
  224. package/tests/onboarding_route_signals.mjs +1 -0
  225. package/tests/one_active_claim_per_session.mjs +80 -0
  226. package/tests/pre_compact.mjs +2 -1
  227. package/tests/preview_server.mjs +2 -1
  228. package/tests/profile_route.mjs +1 -0
  229. package/tests/provision.mjs +170 -0
  230. package/tests/provisioning_onboard_mode.mjs +180 -0
  231. package/tests/publish_manifest.mjs +16 -3
  232. package/tests/publish_reconciler.mjs +181 -10
  233. package/tests/rank_tier_single_source.mjs +205 -0
  234. package/tests/recall_hints.mjs +2 -1
  235. package/tests/repo_map.mjs +4 -0
  236. package/tests/route_permission_check.mjs +14 -5
  237. package/tests/rubric_fixtures.mjs +3 -0
  238. package/tests/run_routine_two_root.mjs +2 -0
  239. package/tests/sandbox_stage.mjs +69 -7
  240. package/tests/search_ingest.mjs +7 -0
  241. package/tests/security_docs.mjs +28 -6
  242. package/tests/sequence.mjs +64 -0
  243. package/tests/session-cards.mjs +2 -1
  244. package/tests/session_start_freshness.mjs +2 -1
  245. package/tests/ship_broadcast_server.mjs +63 -1
  246. package/tests/ship_card.mjs +66 -0
  247. package/tests/ship_ci_deploy.mjs +66 -1
  248. package/tests/ship_smoke_gate.mjs +76 -0
  249. package/tests/versions_route.mjs +15 -0
  250. package/tests/workflow_exec_paths.mjs +16 -4
  251. package/tests/worktree_guard.mjs +2 -1
@@ -102,7 +102,7 @@ function createClient(opts = {}) {
102
102
  getAnalyticsBuilderId: (args) => request("GET", "/analytics/builder/{id}", { hasBody: false }, args),
103
103
  },
104
104
  "auditLog": {
105
- // GET /audit-log — rank: archon — GET /audit-log
105
+ // GET /audit-log — rank: metic+archon — GET /audit-log
106
106
  getAuditLog: (args) => request("GET", "/audit-log", { hasBody: false }, args),
107
107
  },
108
108
  "auth": {
@@ -144,7 +144,7 @@ function createClient(opts = {}) {
144
144
  getAuthWebStart: (args) => request("GET", "/auth/web/start", { hasBody: false }, args),
145
145
  },
146
146
  "autonomy": {
147
- // GET /autonomy/precheck — rank: archon — GET /autonomy/precheck
147
+ // GET /autonomy/precheck — rank: metic+archon — GET /autonomy/precheck
148
148
  getAutonomyPrecheck: (args) => request("GET", "/autonomy/precheck", { hasBody: false }, args),
149
149
  },
150
150
  "backup": {
@@ -204,13 +204,13 @@ function createClient(opts = {}) {
204
204
  postBoxVersion: (args) => request("POST", "/box/version", { hasBody: true }, args),
205
205
  },
206
206
  "boxes": {
207
- // GET /boxes — rank: archon — GET /boxes
207
+ // GET /boxes — rank: metic+archon — GET /boxes
208
208
  getBoxes: (args) => request("GET", "/boxes", { hasBody: false }, args),
209
- // PATCH /boxes/{builderId}/block — rank: archon — PATCH /boxes/:builderId/block
209
+ // PATCH /boxes/{builderId}/block — rank: metic+archon — PATCH /boxes/:builderId/block
210
210
  patchBoxesBuilderIdBlock: (args) => request("PATCH", "/boxes/{builderId}/block", { hasBody: true }, args),
211
- // POST /boxes/{builderId}/close — rank: archon — POST /boxes/:builderId/close
211
+ // POST /boxes/{builderId}/close — rank: metic+archon — POST /boxes/:builderId/close
212
212
  postBoxesBuilderIdClose: (args) => request("POST", "/boxes/{builderId}/close", { hasBody: true }, args),
213
- // GET /boxes/cost-ledger — rank: archon — GET /boxes/cost-ledger
213
+ // GET /boxes/cost-ledger — rank: metic+archon — GET /boxes/cost-ledger
214
214
  getBoxesCostLedger: (args) => request("GET", "/boxes/cost-ledger", { hasBody: false }, args),
215
215
  },
216
216
  "bugAttachments": {
@@ -218,9 +218,9 @@ function createClient(opts = {}) {
218
218
  getBugAttachmentsName: (args) => request("GET", "/bug-attachments/{name}", { hasBody: false }, args),
219
219
  },
220
220
  "builders": {
221
- // GET /builders/{id}/active-claims — rank: archon — GET /builders/:id/active-claims
221
+ // GET /builders/{id}/active-claims — rank: metic+archon — GET /builders/:id/active-claims
222
222
  getBuildersIdActiveClaims: (args) => request("GET", "/builders/{id}/active-claims", { hasBody: false }, args),
223
- // PATCH /builders/{id}/budget — rank: archon — PATCH /builders/:id/budget
223
+ // PATCH /builders/{id}/budget — rank: metic+archon — PATCH /builders/:id/budget
224
224
  patchBuildersIdBudget: (args) => request("PATCH", "/builders/{id}/budget", { hasBody: true }, args),
225
225
  // GET /builders/{id}/onboarding — rank: public — GET /builders/:id/onboarding
226
226
  getBuildersIdOnboarding: (args) => request("GET", "/builders/{id}/onboarding", { hasBody: false }, args),
@@ -234,13 +234,13 @@ function createClient(opts = {}) {
234
234
  getBuildersDirectory: (args) => request("GET", "/builders/directory", { hasBody: false }, args),
235
235
  // GET /builders/me/pending-rank-change — rank: any-builder — GET /builders/me/pending-rank-change
236
236
  getBuildersMePendingRankChange: (args) => request("GET", "/builders/me/pending-rank-change", { hasBody: false }, args),
237
- // GET /builders/roster — rank: archon — GET /builders/roster
237
+ // GET /builders/roster — rank: metic+archon — GET /builders/roster
238
238
  getBuildersRoster: (args) => request("GET", "/builders/roster", { hasBody: false }, args),
239
239
  },
240
240
  "claims": {
241
241
  // POST /claims — rank: any-builder — POST /claims
242
242
  postClaims: (args) => request("POST", "/claims", { hasBody: true }, args),
243
- // POST /claims/{id}/release-on-behalf — rank: archon — POST /claims/:id/release-on-behalf
243
+ // POST /claims/{id}/release-on-behalf — rank: metic+archon — POST /claims/:id/release-on-behalf
244
244
  postClaimsIdReleaseOnBehalf: (args) => request("POST", "/claims/{id}/release-on-behalf", { hasBody: true }, args),
245
245
  // POST /claims/{id}/resolve — rank: any-builder — POST /claims/:id/resolve
246
246
  postClaimsIdResolve: (args) => request("POST", "/claims/{id}/resolve", { hasBody: true }, args),
@@ -262,21 +262,21 @@ function createClient(opts = {}) {
262
262
  postDependencies: (args) => request("POST", "/dependencies", { hasBody: true }, args),
263
263
  },
264
264
  "discord": {
265
- // GET /discord/channels/plan — rank: archon — GET /discord/channels/plan
265
+ // GET /discord/channels/plan — rank: metic+archon — GET /discord/channels/plan
266
266
  getDiscordChannelsPlan: (args) => request("GET", "/discord/channels/plan", { hasBody: false }, args),
267
- // POST /discord/channels/reconcile — rank: archon — POST /discord/channels/reconcile
267
+ // POST /discord/channels/reconcile — rank: metic+archon — POST /discord/channels/reconcile
268
268
  postDiscordChannelsReconcile: (args) => request("POST", "/discord/channels/reconcile", { hasBody: true }, args),
269
269
  },
270
270
  "doneWhen": {
271
271
  // POST /done-when/{criterionId}/satisfy — rank: metic+archon — POST /done-when/:criterionId/satisfy
272
272
  postDoneWhenCriterionIdSatisfy: (args) => request("POST", "/done-when/{criterionId}/satisfy", { hasBody: true }, args),
273
- // POST /done-when/{criterionId}/unsatisfy — rank: archon — POST /done-when/:criterionId/unsatisfy
273
+ // POST /done-when/{criterionId}/unsatisfy — rank: metic+archon — POST /done-when/:criterionId/unsatisfy
274
274
  postDoneWhenCriterionIdUnsatisfy: (args) => request("POST", "/done-when/{criterionId}/unsatisfy", { hasBody: true }, args),
275
275
  // GET /done-when/pending-review — rank: metic+archon — GET /done-when/pending-review
276
276
  getDoneWhenPendingReview: (args) => request("GET", "/done-when/pending-review", { hasBody: false }, args),
277
277
  },
278
278
  "gateApprovals": {
279
- // GET /gate-approvals — rank: archon — GET /gate-approvals
279
+ // GET /gate-approvals — rank: metic+archon — GET /gate-approvals
280
280
  getGateApprovals: (args) => request("GET", "/gate-approvals", { hasBody: false }, args),
281
281
  // POST /gate-approvals/{pr}/approve — rank: archon — POST /gate-approvals/:pr/approve
282
282
  postGateApprovalsPrApprove: (args) => request("POST", "/gate-approvals/{pr}/approve", { hasBody: true }, args),
@@ -334,11 +334,29 @@ function createClient(opts = {}) {
334
334
  patchGoalsIdVisibility: (args) => request("PATCH", "/goals/{id}/visibility", { hasBody: true }, args),
335
335
  // GET /goals/inbox — rank: any-builder — GET /goals/inbox
336
336
  getGoalsInbox: (args) => request("GET", "/goals/inbox", { hasBody: false }, args),
337
- // POST /goals/reorder — rank: archon — POST /goals/reorder
337
+ // POST /goals/reorder — rank: metic+archon — POST /goals/reorder
338
338
  postGoalsReorder: (args) => request("POST", "/goals/reorder", { hasBody: true }, args),
339
339
  },
340
+ "governance": {
341
+ // GET /governance/assignments — rank: archon — GET /governance/assignments
342
+ getGovernanceAssignments: (args) => request("GET", "/governance/assignments", { hasBody: false }, args),
343
+ // POST /governance/assignments — rank: archon — POST /governance/assignments
344
+ postGovernanceAssignments: (args) => request("POST", "/governance/assignments", { hasBody: true }, args),
345
+ // DELETE /governance/assignments/{builderId}/{roleKey} — rank: archon — DELETE /governance/assignments/:builderId/:roleKey
346
+ deleteGovernanceAssignmentsBuilderIdRoleKey: (args) => request("DELETE", "/governance/assignments/{builderId}/{roleKey}", { hasBody: false }, args),
347
+ // GET /governance/permissions — rank: archon — GET /governance/permissions
348
+ getGovernancePermissions: (args) => request("GET", "/governance/permissions", { hasBody: false }, args),
349
+ // GET /governance/roles — rank: archon — GET /governance/roles
350
+ getGovernanceRoles: (args) => request("GET", "/governance/roles", { hasBody: false }, args),
351
+ // POST /governance/roles — rank: archon — POST /governance/roles
352
+ postGovernanceRoles: (args) => request("POST", "/governance/roles", { hasBody: true }, args),
353
+ // DELETE /governance/roles/{roleKey}/permissions/{permissionKey} — rank: archon — DELETE /governance/roles/:roleKey/permissions/:permissionKey
354
+ deleteGovernanceRolesRoleKeyPermissionsPermissionKey: (args) => request("DELETE", "/governance/roles/{roleKey}/permissions/{permissionKey}", { hasBody: false }, args),
355
+ // PUT /governance/roles/{roleKey}/permissions/{permissionKey} — rank: archon — PUT /governance/roles/:roleKey/permissions/:permissionKey
356
+ putGovernanceRolesRoleKeyPermissionsPermissionKey: (args) => request("PUT", "/governance/roles/{roleKey}/permissions/{permissionKey}", { hasBody: true }, args),
357
+ },
340
358
  "grades": {
341
- // GET /grades/by-builder — rank: archon — GET /grades/by-builder
359
+ // GET /grades/by-builder — rank: metic+archon — GET /grades/by-builder
342
360
  getGradesByBuilder: (args) => request("GET", "/grades/by-builder", { hasBody: false }, args),
343
361
  },
344
362
  "healthz": {
@@ -354,7 +372,7 @@ function createClient(opts = {}) {
354
372
  getInboxId: (args) => request("GET", "/inbox/{id}", { hasBody: false }, args),
355
373
  // PATCH /inbox/{id} — rank: metic+archon — PATCH /inbox/:id
356
374
  patchInboxId: (args) => request("PATCH", "/inbox/{id}", { hasBody: true }, args),
357
- // POST /inbox/{id}/ratify — rank: archon — POST /inbox/:id/ratify
375
+ // POST /inbox/{id}/ratify — rank: metic+archon — POST /inbox/:id/ratify
358
376
  postInboxIdRatify: (args) => request("POST", "/inbox/{id}/ratify", { hasBody: true }, args),
359
377
  },
360
378
  "instance": {
@@ -432,9 +450,9 @@ function createClient(opts = {}) {
432
450
  getMemoryBfgBuildersBuilderIdFiles: (args) => request("GET", "/memory/bfg/builders/{builderId}/files", { hasBody: false }, args),
433
451
  // POST /memory/builders/{builderId}/bfg-write — rank: bfg-principal — POST /memory/builders/:builderId/bfg-write
434
452
  postMemoryBuildersBuilderIdBfgWrite: (args) => request("POST", "/memory/builders/{builderId}/bfg-write", { hasBody: true }, args),
435
- // GET /memory/builders/{builderId}/file — rank: archon — GET /memory/builders/:builderId/file
453
+ // GET /memory/builders/{builderId}/file — rank: metic+archon — GET /memory/builders/:builderId/file
436
454
  getMemoryBuildersBuilderIdFile: (args) => request("GET", "/memory/builders/{builderId}/file", { hasBody: false }, args),
437
- // GET /memory/builders/{builderId}/files — rank: archon — GET /memory/builders/:builderId/files
455
+ // GET /memory/builders/{builderId}/files — rank: metic+archon — GET /memory/builders/:builderId/files
438
456
  getMemoryBuildersBuilderIdFiles: (args) => request("GET", "/memory/builders/{builderId}/files", { hasBody: false }, args),
439
457
  // DELETE /memory/file — rank: any-builder — DELETE /memory/file
440
458
  deleteMemoryFile: (args) => request("DELETE", "/memory/file", { hasBody: true }, args),
@@ -470,27 +488,27 @@ function createClient(opts = {}) {
470
488
  postMyProjectsJoin: (args) => request("POST", "/my-projects/join", { hasBody: true }, args),
471
489
  },
472
490
  "overrideRequests": {
473
- // GET /override-requests — rank: archon — GET /override-requests
491
+ // GET /override-requests — rank: metic+archon — GET /override-requests
474
492
  getOverrideRequests: (args) => request("GET", "/override-requests", { hasBody: false }, args),
475
- // POST /override-requests/{id}/decide — rank: archon — POST /override-requests/:id/decide
493
+ // POST /override-requests/{id}/decide — rank: metic+archon — POST /override-requests/:id/decide
476
494
  postOverrideRequestsIdDecide: (args) => request("POST", "/override-requests/{id}/decide", { hasBody: true }, args),
477
495
  },
478
496
  "projects": {
479
- // GET /projects — rank: archon — GET /projects
497
+ // GET /projects — rank: metic+archon — GET /projects
480
498
  getProjects: (args) => request("GET", "/projects", { hasBody: false }, args),
481
- // POST /projects — rank: archon — POST /projects
499
+ // POST /projects — rank: metic+archon — POST /projects
482
500
  postProjects: (args) => request("POST", "/projects", { hasBody: true }, args),
483
- // PATCH /projects/{id}/featured — rank: archon — PATCH /projects/:id/featured
501
+ // PATCH /projects/{id}/featured — rank: metic+archon — PATCH /projects/:id/featured
484
502
  patchProjectsIdFeatured: (args) => request("PATCH", "/projects/{id}/featured", { hasBody: true }, args),
485
503
  // GET /projects/featured — rank: public — GET /projects/featured
486
504
  getProjectsFeatured: (args) => request("GET", "/projects/featured", { hasBody: false }, args),
487
- // POST /projects/invite — rank: archon — POST /projects/invite
505
+ // POST /projects/invite — rank: metic+archon — POST /projects/invite
488
506
  postProjectsInvite: (args) => request("POST", "/projects/invite", { hasBody: true }, args),
489
507
  },
490
508
  "provisioning": {
491
- // GET /provisioning/fleet — rank: archon — GET /provisioning/fleet
509
+ // GET /provisioning/fleet — rank: metic+archon — GET /provisioning/fleet
492
510
  getProvisioningFleet: (args) => request("GET", "/provisioning/fleet", { hasBody: false }, args),
493
- // GET /provisioning/fleet/cost-ledger — rank: archon — GET /provisioning/fleet/cost-ledger
511
+ // GET /provisioning/fleet/cost-ledger — rank: metic+archon — GET /provisioning/fleet/cost-ledger
494
512
  getProvisioningFleetCostLedger: (args) => request("GET", "/provisioning/fleet/cost-ledger", { hasBody: false }, args),
495
513
  // GET /provisioning/github-app/callback — rank: public — GET /provisioning/github-app/callback
496
514
  getProvisioningGithubAppCallback: (args) => request("GET", "/provisioning/github-app/callback", { hasBody: false }, args),
@@ -504,7 +522,7 @@ function createClient(opts = {}) {
504
522
  postProvisioningInstances: (args) => request("POST", "/provisioning/instances", { hasBody: true }, args),
505
523
  // GET /provisioning/instances/{id} — rank: any-builder — GET /provisioning/instances/:id
506
524
  getProvisioningInstancesId: (args) => request("GET", "/provisioning/instances/{id}", { hasBody: false }, args),
507
- // POST /provisioning/instances/{id}/force-teardown — rank: archon — POST /provisioning/instances/:id/force-teardown
525
+ // POST /provisioning/instances/{id}/force-teardown — rank: metic+archon — POST /provisioning/instances/:id/force-teardown
508
526
  postProvisioningInstancesIdForceTeardown: (args) => request("POST", "/provisioning/instances/{id}/force-teardown", { hasBody: true }, args),
509
527
  // POST /provisioning/instances/{id}/github-app — rank: any-builder — POST /provisioning/instances/:id/github-app
510
528
  postProvisioningInstancesIdGithubApp: (args) => request("POST", "/provisioning/instances/{id}/github-app", { hasBody: true }, args),
@@ -554,7 +572,7 @@ function createClient(opts = {}) {
554
572
  getPublicVersions: (args) => request("GET", "/public/versions", { hasBody: false }, args),
555
573
  },
556
574
  "scouting": {
557
- // GET /scouting — rank: archon — GET /scouting
575
+ // GET /scouting — rank: metic+archon — GET /scouting
558
576
  getScouting: (args) => request("GET", "/scouting", { hasBody: false }, args),
559
577
  },
560
578
  "search": {
@@ -566,24 +584,28 @@ function createClient(opts = {}) {
566
584
  "security": {
567
585
  // GET /security/adr — rank: metic+archon — GET /security/adr
568
586
  getSecurityAdr: (args) => request("GET", "/security/adr", { hasBody: false }, args),
569
- // GET /security/docs — rank: archon — GET /security/docs
587
+ // GET /security/docs — rank: metic+archon — GET /security/docs
570
588
  getSecurityDocs: (args) => request("GET", "/security/docs", { hasBody: false }, args),
571
- // POST /security/docs — rank: archon — POST /security/docs
589
+ // POST /security/docs — rank: metic+archon — POST /security/docs
572
590
  postSecurityDocs: (args) => request("POST", "/security/docs", { hasBody: true }, args),
573
- // GET /security/docs/{slug} — rank: archon — GET /security/docs/:slug
591
+ // GET /security/docs/{slug} — rank: metic+archon — GET /security/docs/:slug
574
592
  getSecurityDocsSlug: (args) => request("GET", "/security/docs/{slug}", { hasBody: false }, args),
575
- // GET /security/reports — rank: archon — GET /security/reports
593
+ // GET /security/reports — rank: metic+archon — GET /security/reports
576
594
  getSecurityReports: (args) => request("GET", "/security/reports", { hasBody: false }, args),
577
595
  // POST /security/reports — rank: metic+archon — POST /security/reports
578
596
  postSecurityReports: (args) => request("POST", "/security/reports", { hasBody: true }, args),
579
- // POST /security/reports/{id}/confirm — rank: archon — POST /security/reports/:id/confirm
597
+ // POST /security/reports/{id}/confirm — rank: metic+archon — POST /security/reports/:id/confirm
580
598
  postSecurityReportsIdConfirm: (args) => request("POST", "/security/reports/{id}/confirm", { hasBody: true }, args),
581
- // POST /security/reports/{id}/dispute — rank: archon — POST /security/reports/:id/dispute
599
+ // POST /security/reports/{id}/dispute — rank: metic+archon — POST /security/reports/:id/dispute
582
600
  postSecurityReportsIdDispute: (args) => request("POST", "/security/reports/{id}/dispute", { hasBody: true }, args),
583
- // POST /security/reports/{id}/fix — rank: archon — POST /security/reports/:id/fix
601
+ // POST /security/reports/{id}/fix — rank: metic+archon — POST /security/reports/:id/fix
584
602
  postSecurityReportsIdFix: (args) => request("POST", "/security/reports/{id}/fix", { hasBody: true }, args),
585
- // POST /security/reports/{id}/link-fix — rank: archon — POST /security/reports/:id/link-fix
603
+ // POST /security/reports/{id}/link-fix — rank: metic+archon — POST /security/reports/:id/link-fix
586
604
  postSecurityReportsIdLinkFix: (args) => request("POST", "/security/reports/{id}/link-fix", { hasBody: true }, args),
605
+ // GET /security/scans — rank: any-builder — GET /security/scans
606
+ getSecurityScans: (args) => request("GET", "/security/scans", { hasBody: false }, args),
607
+ // POST /security/scans — rank: metic+archon — POST /security/scans
608
+ postSecurityScans: (args) => request("POST", "/security/scans", { hasBody: true }, args),
587
609
  },
588
610
  "session": {
589
611
  // POST /session/optimize — rank: any-builder — POST /session/optimize
@@ -596,7 +618,7 @@ function createClient(opts = {}) {
596
618
  getSessionsId: (args) => request("GET", "/sessions/{id}", { hasBody: false }, args),
597
619
  // GET /sessions/mine — rank: any-builder — GET /sessions/mine
598
620
  getSessionsMine: (args) => request("GET", "/sessions/mine", { hasBody: false }, args),
599
- // GET /sessions/search — rank: archon — GET /sessions/search
621
+ // GET /sessions/search — rank: metic+archon — GET /sessions/search
600
622
  getSessionsSearch: (args) => request("GET", "/sessions/search", { hasBody: false }, args),
601
623
  },
602
624
  "sso": {
@@ -664,17 +686,17 @@ function createClient(opts = {}) {
664
686
  getTasksClaimable: (args) => request("GET", "/tasks/claimable", { hasBody: false }, args),
665
687
  // GET /tasks/newcomer-floor — rank: any-builder — GET /tasks/newcomer-floor
666
688
  getTasksNewcomerFloor: (args) => request("GET", "/tasks/newcomer-floor", { hasBody: false }, args),
667
- // POST /tasks/newcomer-restock — rank: archon — POST /tasks/newcomer-restock
689
+ // POST /tasks/newcomer-restock — rank: metic+archon — POST /tasks/newcomer-restock
668
690
  postTasksNewcomerRestock: (args) => request("POST", "/tasks/newcomer-restock", { hasBody: true }, args),
669
691
  // GET /tasks/peer-votes/feed — rank: any-builder — GET /tasks/peer-votes/feed
670
692
  getTasksPeerVotesFeed: (args) => request("GET", "/tasks/peer-votes/feed", { hasBody: false }, args),
671
- // POST /tasks/peer-votes/tally — rank: archon — POST /tasks/peer-votes/tally
693
+ // POST /tasks/peer-votes/tally — rank: metic+archon — POST /tasks/peer-votes/tally
672
694
  postTasksPeerVotesTally: (args) => request("POST", "/tasks/peer-votes/tally", { hasBody: true }, args),
673
695
  },
674
696
  "versions": {
675
697
  // GET /versions — rank: public — GET /versions
676
698
  getVersions: (args) => request("GET", "/versions", { hasBody: false }, args),
677
- // POST /versions — rank: archon — POST /versions
699
+ // POST /versions — rank: metic+archon — POST /versions
678
700
  postVersions: (args) => request("POST", "/versions", { hasBody: true }, args),
679
701
  // GET /versions/{id}/done-when — rank: public — GET /versions/:id/done-when
680
702
  getVersionsIdDoneWhen: (args) => request("GET", "/versions/{id}/done-when", { hasBody: false }, args),
@@ -7,6 +7,8 @@ export declare const DEFAULT_BASE_URL: string;
7
7
  export interface ApiErrorObject { code: string; message: string; details?: unknown }
8
8
  export interface DeleteBoxSshKeyIdResponse { ok: boolean; deleted: unknown }
9
9
  export interface DeleteDependenciesResponse { ok: boolean }
10
+ export interface DeleteGovernanceAssignmentsBuilderIdRoleKeyResponse { ok: boolean; builder_id: unknown; role_key: unknown; removed: unknown }
11
+ export interface DeleteGovernanceRolesRoleKeyPermissionsPermissionKeyResponse { ok: boolean; role_key: unknown; permission_key: unknown; removed: unknown }
10
12
  export interface DeleteMemoryFileResponse { deleted: boolean; builder_id: unknown; path: unknown }
11
13
  export interface DeleteTasksIdCriteriaCriterionIdResponse { ok: boolean; removed: unknown }
12
14
  export interface DeleteTasksIdDependenciesDepIdResponse { ok: boolean; removed: unknown }
@@ -39,6 +41,9 @@ export interface GetGoalsIdRequestsResponse { requests: unknown }
39
41
  export interface GetGoalsIdResponse { goal: unknown; members: unknown; criteria: unknown; dependencies: unknown }
40
42
  export interface GetGoalsIdSuggestCriteriaResponse { goal_id: unknown; suggestions: unknown }
41
43
  export interface GetGoalsResponse { goals: unknown }
44
+ export interface GetGovernanceAssignmentsResponse { assignments: unknown }
45
+ export interface GetGovernancePermissionsResponse { permissions: unknown; principals: unknown }
46
+ export interface GetGovernanceRolesResponse { roles: unknown }
42
47
  export interface GetGradesByBuilderResponse { window_days: unknown; builders: unknown }
43
48
  export interface GetHealthzResponse { ok: boolean; auth_configured: unknown }
44
49
  export interface GetInboxIdResponse { idea: unknown }
@@ -87,6 +92,7 @@ export interface GetScoutingResponse { builders: unknown }
87
92
  export interface GetSecurityDocsResponse { docs: unknown }
88
93
  export interface GetSecurityDocsSlugResponse { doc: unknown }
89
94
  export interface GetSecurityReportsResponse { reports: unknown; bounty_table: unknown; statuses: unknown }
95
+ export interface GetSecurityScansResponse { scans: unknown }
90
96
  export interface GetSessionsIdResponse { session: unknown }
91
97
  export interface GetSessionsMineResponse { sessions: unknown; count: unknown }
92
98
  export interface GetSessionsSearchResponse { sessions: unknown; count: unknown; total: unknown; totals: unknown; limit: unknown; offset: unknown }
@@ -147,7 +153,7 @@ export interface PostAuthRevokeRequest { session_id?: StringifiableId }
147
153
  export interface PostAuthRevokeResponse { ok: boolean; revoked: unknown }
148
154
  export interface PostBackupTriggerResponse { ok: boolean; message: unknown; started_at: unknown }
149
155
  export interface PostBlockersIdLinkRequest { task_id: StringifiableId }
150
- export interface PostBlockersIdLinkResponse { ok: boolean }
156
+ export interface PostBlockersIdLinkResponse { ok: boolean; blocked: unknown }
151
157
  export interface PostBlockersIdResolveRequest { resolution_note?: string }
152
158
  export interface PostBlockersRequest { title: string; body_md?: string; source?: string; source_ref?: string }
153
159
  export interface PostBlockersResponse { skipped?: boolean; reason?: unknown; blocker?: unknown }
@@ -210,6 +216,9 @@ export interface PostGoalsReorderRequest { version_id: string; ordered_ids: numb
210
216
  export interface PostGoalsReorderResponse { ok: boolean; goals: unknown }
211
217
  export interface PostGoalsRequest { version_id: string; title: string; description?: string; scope_modules?: string[]; succeeds_goal_id?: number }
212
218
  export interface PostGoalsResponse { ok: boolean; goal: unknown; succeeds_goal_id: unknown }
219
+ export interface PostGovernanceAssignmentsRequest { builder_id: number; role_key: string }
220
+ export interface PostGovernanceRolesRequest { role_key: string; label: string; description?: string }
221
+ export interface PostGovernanceRolesResponse { role: unknown }
213
222
  export interface PostInboxIdRatifyRequest { notes_md?: string }
214
223
  export interface PostInboxRequest { title: string; body_md?: string; kind?: string; suggested_version?: string; suggested_priority?: number }
215
224
  export interface PostInboxResponse { idea: unknown; open_count: unknown; kind_auto: unknown }
@@ -241,7 +250,7 @@ export interface PostProvisioningInstancesIdForceTeardownResponse { ok: boolean;
241
250
  export interface PostProvisioningInstancesIdGithubAppRequest { account?: string }
242
251
  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 }
243
252
  export interface PostProvisioningInstancesIdTeardownResponse { ok: boolean; queued: unknown; action: unknown; status: unknown; message: unknown }
244
- export interface PostProvisioningInstancesRequest { slug: string; target_ref?: string; hosting_shape?: string; domain?: string; tier?: string }
253
+ export interface PostProvisioningInstancesRequest { slug: string; target_ref?: string; hosting_shape?: string; domain?: string; tier?: string; onboard_mode?: string }
245
254
  export interface PostSearchMarkRequest { chunk_id?: StringifiableId; useful?: unknown }
246
255
  export interface PostSearchRequest { expand?: unknown; q?: string; source_kind?: string; limit?: unknown }
247
256
  export interface PostSearchResponse { expand?: unknown; chunk?: unknown; query?: unknown; count?: unknown; total_full_tokens?: unknown; results?: unknown }
@@ -255,6 +264,8 @@ export interface PostSecurityReportsIdLinkFixRequest { task_id: StringifiableId
255
264
  export interface PostSecurityReportsIdLinkFixResponse { report: unknown }
256
265
  export interface PostSecurityReportsRequest { target: string; severity: string; title: string; description?: string; repro_steps_md?: string }
257
266
  export interface PostSecurityReportsResponse { ok: boolean; report: unknown; bounty_table: unknown }
267
+ export interface PostSecurityScansRequest { target_url: string; artifact_kind: string; resolved_sha?: string; content_hash?: string; file_count?: number; total_bytes?: number; tier: string; verdict?: string; completion: string; abort_code?: string; findings_critical?: number; findings_high?: number; findings_medium?: number; findings_low?: number; findings_summary?: unknown[]; action_taken?: string; engine_version: string }
268
+ export interface PostSecurityScansResponse { ok: boolean; scan: unknown }
258
269
  export interface PostSessionOptimizeRequest { mode?: string; time_budget_min?: unknown; max_parallel?: unknown }
259
270
  export interface PostSessionsRequest { session_id: string; task_ids?: number[]; total_tokens?: number; duration_seconds?: number; started_at?: string; ended_at?: string; detail?: unknown[]; metrics?: Record<string, unknown>; model_usage?: Record<string, unknown> }
260
271
  export interface PostSessionsResponse { skipped?: boolean; reason?: unknown; session?: unknown; token_reward?: unknown }
@@ -287,8 +298,9 @@ export interface PostTasksNewcomerRestockResponse { ok: boolean; stamped: unknow
287
298
  export interface PostTasksRequest { version_id: string; title: string; description?: string; status?: string; touches?: string[]; est_minutes?: number; est_cost_usd?: number; manual_degree?: number; priority?: number; automation_tag?: string; credits_reward?: number; source?: string; source_ref?: string; value_summary?: string; kind?: string; discipline?: string; parallel_safe?: unknown; newcomer_friendly?: boolean; security_sensitive?: boolean; requires_rank?: string; auto_detect_touches?: boolean; criterion_ids?: unknown[]; module_key?: string; goal_id?: number }
288
299
  export interface PostVersionsIdDoneWhenRequest { criterion_id: string; criterion_md: string; goal_id?: number; sort_order?: number }
289
300
  export interface PostVersionsIdDoneWhenResponse { ok: boolean; criterion: unknown }
290
- export interface PostVersionsRequest { id: string; name: string; status?: string; done_when?: string; scope_doc_path?: string; criteria?: unknown[] }
301
+ export interface PostVersionsRequest { id: string; name: string; status?: string; track?: string; done_when?: string; scope_doc_path?: string; criteria?: unknown[] }
291
302
  export interface PostVersionsResponse { version: unknown; criteria: unknown }
303
+ export interface PutGovernanceRolesRoleKeyPermissionsPermissionKeyResponse { ok: boolean; role_key: unknown; permission_key: unknown; granted: unknown }
292
304
  export interface PutTasksIdDependenciesRequest { depends_on_task_ids: unknown[] }
293
305
  export interface PutTasksIdDependenciesResponse { ok: boolean; written: unknown; dependencies: unknown }
294
306
  export type StringifiableId = number | string;
@@ -324,7 +336,7 @@ export interface BongosClient {
324
336
  getAnalyticsBuilderId(args?: RequestArgs): Promise<ApiResponse>;
325
337
  };
326
338
  "auditLog": {
327
- /** GET /audit-log — rank: archon */
339
+ /** GET /audit-log — rank: metic+archon */
328
340
  getAuditLog(args?: RequestArgs): Promise<GetAuditLogResponse>;
329
341
  };
330
342
  "auth": {
@@ -366,7 +378,7 @@ export interface BongosClient {
366
378
  getAuthWebStart(args?: RequestArgs): Promise<ApiResponse>;
367
379
  };
368
380
  "autonomy": {
369
- /** GET /autonomy/precheck — rank: archon */
381
+ /** GET /autonomy/precheck — rank: metic+archon */
370
382
  getAutonomyPrecheck(args?: RequestArgs): Promise<ApiResponse>;
371
383
  };
372
384
  "backup": {
@@ -426,13 +438,13 @@ export interface BongosClient {
426
438
  postBoxVersion(args: RequestArgs & { body: PostBoxVersionRequest }): Promise<PostBoxVersionResponse>;
427
439
  };
428
440
  "boxes": {
429
- /** GET /boxes — rank: archon */
441
+ /** GET /boxes — rank: metic+archon */
430
442
  getBoxes(args?: RequestArgs): Promise<GetBoxesResponse>;
431
- /** PATCH /boxes/{builderId}/block — rank: archon */
443
+ /** PATCH /boxes/{builderId}/block — rank: metic+archon */
432
444
  patchBoxesBuilderIdBlock(args: RequestArgs & { body: PatchBoxesBuilderIdBlockRequest }): Promise<PatchBoxesBuilderIdBlockResponse>;
433
- /** POST /boxes/{builderId}/close — rank: archon */
445
+ /** POST /boxes/{builderId}/close — rank: metic+archon */
434
446
  postBoxesBuilderIdClose(args?: RequestArgs): Promise<PostBoxesBuilderIdCloseResponse>;
435
- /** GET /boxes/cost-ledger — rank: archon */
447
+ /** GET /boxes/cost-ledger — rank: metic+archon */
436
448
  getBoxesCostLedger(args?: RequestArgs): Promise<ApiResponse>;
437
449
  };
438
450
  "bugAttachments": {
@@ -440,9 +452,9 @@ export interface BongosClient {
440
452
  getBugAttachmentsName(args?: RequestArgs): Promise<ApiResponse>;
441
453
  };
442
454
  "builders": {
443
- /** GET /builders/{id}/active-claims — rank: archon */
455
+ /** GET /builders/{id}/active-claims — rank: metic+archon */
444
456
  getBuildersIdActiveClaims(args?: RequestArgs): Promise<GetBuildersIdActiveClaimsResponse>;
445
- /** PATCH /builders/{id}/budget — rank: archon */
457
+ /** PATCH /builders/{id}/budget — rank: metic+archon */
446
458
  patchBuildersIdBudget(args?: RequestArgs & { body?: PatchBuildersIdBudgetRequest }): Promise<PatchBuildersIdBudgetResponse>;
447
459
  /** GET /builders/{id}/onboarding — rank: public */
448
460
  getBuildersIdOnboarding(args?: RequestArgs): Promise<GetBuildersIdOnboardingResponse>;
@@ -456,13 +468,13 @@ export interface BongosClient {
456
468
  getBuildersDirectory(args?: RequestArgs): Promise<GetBuildersDirectoryResponse>;
457
469
  /** GET /builders/me/pending-rank-change — rank: any-builder */
458
470
  getBuildersMePendingRankChange(args?: RequestArgs): Promise<GetBuildersMePendingRankChangeResponse>;
459
- /** GET /builders/roster — rank: archon */
471
+ /** GET /builders/roster — rank: metic+archon */
460
472
  getBuildersRoster(args?: RequestArgs): Promise<GetBuildersRosterResponse>;
461
473
  };
462
474
  "claims": {
463
475
  /** POST /claims — rank: any-builder */
464
476
  postClaims(args: RequestArgs & { body: PostClaimsRequest }): Promise<PostClaimsResponse>;
465
- /** POST /claims/{id}/release-on-behalf — rank: archon */
477
+ /** POST /claims/{id}/release-on-behalf — rank: metic+archon */
466
478
  postClaimsIdReleaseOnBehalf(args: RequestArgs & { body: PostClaimsIdReleaseOnBehalfRequest }): Promise<ApiResponse>;
467
479
  /** POST /claims/{id}/resolve — rank: any-builder */
468
480
  postClaimsIdResolve(args: RequestArgs & { body: PostClaimsIdResolveRequest }): Promise<ApiResponse>;
@@ -484,21 +496,21 @@ export interface BongosClient {
484
496
  postDependencies(args?: RequestArgs): Promise<PostDependenciesResponse>;
485
497
  };
486
498
  "discord": {
487
- /** GET /discord/channels/plan — rank: archon */
499
+ /** GET /discord/channels/plan — rank: metic+archon */
488
500
  getDiscordChannelsPlan(args?: RequestArgs): Promise<GetDiscordChannelsPlanResponse>;
489
- /** POST /discord/channels/reconcile — rank: archon */
501
+ /** POST /discord/channels/reconcile — rank: metic+archon */
490
502
  postDiscordChannelsReconcile(args?: RequestArgs): Promise<PostDiscordChannelsReconcileResponse>;
491
503
  };
492
504
  "doneWhen": {
493
505
  /** POST /done-when/{criterionId}/satisfy — rank: metic+archon */
494
506
  postDoneWhenCriterionIdSatisfy(args?: RequestArgs & { body?: PostDoneWhenCriterionIdSatisfyRequest }): Promise<PostDoneWhenCriterionIdSatisfyResponse>;
495
- /** POST /done-when/{criterionId}/unsatisfy — rank: archon */
507
+ /** POST /done-when/{criterionId}/unsatisfy — rank: metic+archon */
496
508
  postDoneWhenCriterionIdUnsatisfy(args?: RequestArgs): Promise<PostDoneWhenCriterionIdUnsatisfyResponse>;
497
509
  /** GET /done-when/pending-review — rank: metic+archon */
498
510
  getDoneWhenPendingReview(args?: RequestArgs): Promise<GetDoneWhenPendingReviewResponse>;
499
511
  };
500
512
  "gateApprovals": {
501
- /** GET /gate-approvals — rank: archon */
513
+ /** GET /gate-approvals — rank: metic+archon */
502
514
  getGateApprovals(args?: RequestArgs): Promise<ApiResponse>;
503
515
  /** POST /gate-approvals/{pr}/approve — rank: archon */
504
516
  postGateApprovalsPrApprove(args?: RequestArgs): Promise<PostGateApprovalsPrApproveResponse>;
@@ -556,11 +568,29 @@ export interface BongosClient {
556
568
  patchGoalsIdVisibility(args: RequestArgs & { body: PatchGoalsIdVisibilityRequest }): Promise<PatchGoalsIdVisibilityResponse>;
557
569
  /** GET /goals/inbox — rank: any-builder */
558
570
  getGoalsInbox(args?: RequestArgs): Promise<ApiResponse>;
559
- /** POST /goals/reorder — rank: archon */
571
+ /** POST /goals/reorder — rank: metic+archon */
560
572
  postGoalsReorder(args: RequestArgs & { body: PostGoalsReorderRequest }): Promise<PostGoalsReorderResponse>;
561
573
  };
574
+ "governance": {
575
+ /** GET /governance/assignments — rank: archon */
576
+ getGovernanceAssignments(args?: RequestArgs): Promise<GetGovernanceAssignmentsResponse>;
577
+ /** POST /governance/assignments — rank: archon */
578
+ postGovernanceAssignments(args: RequestArgs & { body: PostGovernanceAssignmentsRequest }): Promise<ApiResponse>;
579
+ /** DELETE /governance/assignments/{builderId}/{roleKey} — rank: archon */
580
+ deleteGovernanceAssignmentsBuilderIdRoleKey(args?: RequestArgs): Promise<DeleteGovernanceAssignmentsBuilderIdRoleKeyResponse>;
581
+ /** GET /governance/permissions — rank: archon */
582
+ getGovernancePermissions(args?: RequestArgs): Promise<GetGovernancePermissionsResponse>;
583
+ /** GET /governance/roles — rank: archon */
584
+ getGovernanceRoles(args?: RequestArgs): Promise<GetGovernanceRolesResponse>;
585
+ /** POST /governance/roles — rank: archon */
586
+ postGovernanceRoles(args: RequestArgs & { body: PostGovernanceRolesRequest }): Promise<PostGovernanceRolesResponse>;
587
+ /** DELETE /governance/roles/{roleKey}/permissions/{permissionKey} — rank: archon */
588
+ deleteGovernanceRolesRoleKeyPermissionsPermissionKey(args?: RequestArgs): Promise<DeleteGovernanceRolesRoleKeyPermissionsPermissionKeyResponse>;
589
+ /** PUT /governance/roles/{roleKey}/permissions/{permissionKey} — rank: archon */
590
+ putGovernanceRolesRoleKeyPermissionsPermissionKey(args?: RequestArgs): Promise<PutGovernanceRolesRoleKeyPermissionsPermissionKeyResponse>;
591
+ };
562
592
  "grades": {
563
- /** GET /grades/by-builder — rank: archon */
593
+ /** GET /grades/by-builder — rank: metic+archon */
564
594
  getGradesByBuilder(args?: RequestArgs): Promise<GetGradesByBuilderResponse>;
565
595
  };
566
596
  "healthz": {
@@ -576,7 +606,7 @@ export interface BongosClient {
576
606
  getInboxId(args?: RequestArgs): Promise<GetInboxIdResponse>;
577
607
  /** PATCH /inbox/{id} — rank: metic+archon */
578
608
  patchInboxId(args?: RequestArgs & { body?: PatchInboxIdRequest }): Promise<PatchInboxIdResponse>;
579
- /** POST /inbox/{id}/ratify — rank: archon */
609
+ /** POST /inbox/{id}/ratify — rank: metic+archon */
580
610
  postInboxIdRatify(args?: RequestArgs & { body?: PostInboxIdRatifyRequest }): Promise<ApiResponse>;
581
611
  };
582
612
  "instance": {
@@ -654,9 +684,9 @@ export interface BongosClient {
654
684
  getMemoryBfgBuildersBuilderIdFiles(args?: RequestArgs): Promise<GetMemoryBfgBuildersBuilderIdFilesResponse>;
655
685
  /** POST /memory/builders/{builderId}/bfg-write — rank: bfg-principal */
656
686
  postMemoryBuildersBuilderIdBfgWrite(args?: RequestArgs & { body?: PostMemoryBuildersBuilderIdBfgWriteRequest }): Promise<PostMemoryBuildersBuilderIdBfgWriteResponse>;
657
- /** GET /memory/builders/{builderId}/file — rank: archon */
687
+ /** GET /memory/builders/{builderId}/file — rank: metic+archon */
658
688
  getMemoryBuildersBuilderIdFile(args?: RequestArgs): Promise<GetMemoryBuildersBuilderIdFileResponse>;
659
- /** GET /memory/builders/{builderId}/files — rank: archon */
689
+ /** GET /memory/builders/{builderId}/files — rank: metic+archon */
660
690
  getMemoryBuildersBuilderIdFiles(args?: RequestArgs): Promise<GetMemoryBuildersBuilderIdFilesResponse>;
661
691
  /** DELETE /memory/file — rank: any-builder */
662
692
  deleteMemoryFile(args?: RequestArgs): Promise<DeleteMemoryFileResponse>;
@@ -692,27 +722,27 @@ export interface BongosClient {
692
722
  postMyProjectsJoin(args: RequestArgs & { body: PostMyProjectsJoinRequest }): Promise<PostMyProjectsJoinResponse>;
693
723
  };
694
724
  "overrideRequests": {
695
- /** GET /override-requests — rank: archon */
725
+ /** GET /override-requests — rank: metic+archon */
696
726
  getOverrideRequests(args?: RequestArgs): Promise<GetOverrideRequestsResponse>;
697
- /** POST /override-requests/{id}/decide — rank: archon */
727
+ /** POST /override-requests/{id}/decide — rank: metic+archon */
698
728
  postOverrideRequestsIdDecide(args: RequestArgs & { body: PostOverrideRequestsIdDecideRequest }): Promise<ApiResponse>;
699
729
  };
700
730
  "projects": {
701
- /** GET /projects — rank: archon */
731
+ /** GET /projects — rank: metic+archon */
702
732
  getProjects(args?: RequestArgs): Promise<GetProjectsResponse>;
703
- /** POST /projects — rank: archon */
733
+ /** POST /projects — rank: metic+archon */
704
734
  postProjects(args: RequestArgs & { body: PostProjectsRequest }): Promise<PostProjectsResponse>;
705
- /** PATCH /projects/{id}/featured — rank: archon */
735
+ /** PATCH /projects/{id}/featured — rank: metic+archon */
706
736
  patchProjectsIdFeatured(args: RequestArgs & { body: PatchProjectsIdFeaturedRequest }): Promise<PatchProjectsIdFeaturedResponse>;
707
737
  /** GET /projects/featured — rank: public */
708
738
  getProjectsFeatured(args?: RequestArgs): Promise<GetProjectsFeaturedResponse>;
709
- /** POST /projects/invite — rank: archon */
739
+ /** POST /projects/invite — rank: metic+archon */
710
740
  postProjectsInvite(args: RequestArgs & { body: PostProjectsInviteRequest }): Promise<ApiResponse>;
711
741
  };
712
742
  "provisioning": {
713
- /** GET /provisioning/fleet — rank: archon */
743
+ /** GET /provisioning/fleet — rank: metic+archon */
714
744
  getProvisioningFleet(args?: RequestArgs): Promise<GetProvisioningFleetResponse>;
715
- /** GET /provisioning/fleet/cost-ledger — rank: archon */
745
+ /** GET /provisioning/fleet/cost-ledger — rank: metic+archon */
716
746
  getProvisioningFleetCostLedger(args?: RequestArgs): Promise<ApiResponse>;
717
747
  /** GET /provisioning/github-app/callback — rank: public */
718
748
  getProvisioningGithubAppCallback(args?: RequestArgs): Promise<ApiResponse>;
@@ -726,7 +756,7 @@ export interface BongosClient {
726
756
  postProvisioningInstances(args: RequestArgs & { body: PostProvisioningInstancesRequest }): Promise<ApiResponse>;
727
757
  /** GET /provisioning/instances/{id} — rank: any-builder */
728
758
  getProvisioningInstancesId(args?: RequestArgs): Promise<GetProvisioningInstancesIdResponse>;
729
- /** POST /provisioning/instances/{id}/force-teardown — rank: archon */
759
+ /** POST /provisioning/instances/{id}/force-teardown — rank: metic+archon */
730
760
  postProvisioningInstancesIdForceTeardown(args?: RequestArgs): Promise<PostProvisioningInstancesIdForceTeardownResponse>;
731
761
  /** POST /provisioning/instances/{id}/github-app — rank: any-builder */
732
762
  postProvisioningInstancesIdGithubApp(args?: RequestArgs & { body?: PostProvisioningInstancesIdGithubAppRequest }): Promise<PostProvisioningInstancesIdGithubAppResponse>;
@@ -776,7 +806,7 @@ export interface BongosClient {
776
806
  getPublicVersions(args?: RequestArgs): Promise<GetPublicVersionsResponse>;
777
807
  };
778
808
  "scouting": {
779
- /** GET /scouting — rank: archon */
809
+ /** GET /scouting — rank: metic+archon */
780
810
  getScouting(args?: RequestArgs): Promise<GetScoutingResponse>;
781
811
  };
782
812
  "search": {
@@ -788,24 +818,28 @@ export interface BongosClient {
788
818
  "security": {
789
819
  /** GET /security/adr — rank: metic+archon */
790
820
  getSecurityAdr(args?: RequestArgs): Promise<ApiResponse>;
791
- /** GET /security/docs — rank: archon */
821
+ /** GET /security/docs — rank: metic+archon */
792
822
  getSecurityDocs(args?: RequestArgs): Promise<GetSecurityDocsResponse>;
793
- /** POST /security/docs — rank: archon */
823
+ /** POST /security/docs — rank: metic+archon */
794
824
  postSecurityDocs(args: RequestArgs & { body: PostSecurityDocsRequest }): Promise<PostSecurityDocsResponse>;
795
- /** GET /security/docs/{slug} — rank: archon */
825
+ /** GET /security/docs/{slug} — rank: metic+archon */
796
826
  getSecurityDocsSlug(args?: RequestArgs): Promise<GetSecurityDocsSlugResponse>;
797
- /** GET /security/reports — rank: archon */
827
+ /** GET /security/reports — rank: metic+archon */
798
828
  getSecurityReports(args?: RequestArgs): Promise<GetSecurityReportsResponse>;
799
829
  /** POST /security/reports — rank: metic+archon */
800
830
  postSecurityReports(args: RequestArgs & { body: PostSecurityReportsRequest }): Promise<PostSecurityReportsResponse>;
801
- /** POST /security/reports/{id}/confirm — rank: archon */
831
+ /** POST /security/reports/{id}/confirm — rank: metic+archon */
802
832
  postSecurityReportsIdConfirm(args?: RequestArgs & { body?: PostSecurityReportsIdConfirmRequest }): Promise<PostSecurityReportsIdConfirmResponse>;
803
- /** POST /security/reports/{id}/dispute — rank: archon */
833
+ /** POST /security/reports/{id}/dispute — rank: metic+archon */
804
834
  postSecurityReportsIdDispute(args?: RequestArgs): Promise<PostSecurityReportsIdDisputeResponse>;
805
- /** POST /security/reports/{id}/fix — rank: archon */
835
+ /** POST /security/reports/{id}/fix — rank: metic+archon */
806
836
  postSecurityReportsIdFix(args?: RequestArgs): Promise<PostSecurityReportsIdFixResponse>;
807
- /** POST /security/reports/{id}/link-fix — rank: archon */
837
+ /** POST /security/reports/{id}/link-fix — rank: metic+archon */
808
838
  postSecurityReportsIdLinkFix(args: RequestArgs & { body: PostSecurityReportsIdLinkFixRequest }): Promise<PostSecurityReportsIdLinkFixResponse>;
839
+ /** GET /security/scans — rank: any-builder */
840
+ getSecurityScans(args?: RequestArgs): Promise<GetSecurityScansResponse>;
841
+ /** POST /security/scans — rank: metic+archon */
842
+ postSecurityScans(args: RequestArgs & { body: PostSecurityScansRequest }): Promise<PostSecurityScansResponse>;
809
843
  };
810
844
  "session": {
811
845
  /** POST /session/optimize — rank: any-builder */
@@ -818,7 +852,7 @@ export interface BongosClient {
818
852
  getSessionsId(args?: RequestArgs): Promise<GetSessionsIdResponse>;
819
853
  /** GET /sessions/mine — rank: any-builder */
820
854
  getSessionsMine(args?: RequestArgs): Promise<GetSessionsMineResponse>;
821
- /** GET /sessions/search — rank: archon */
855
+ /** GET /sessions/search — rank: metic+archon */
822
856
  getSessionsSearch(args?: RequestArgs): Promise<GetSessionsSearchResponse>;
823
857
  };
824
858
  "sso": {
@@ -886,17 +920,17 @@ export interface BongosClient {
886
920
  getTasksClaimable(args?: RequestArgs): Promise<GetTasksClaimableResponse>;
887
921
  /** GET /tasks/newcomer-floor — rank: any-builder */
888
922
  getTasksNewcomerFloor(args?: RequestArgs): Promise<GetTasksNewcomerFloorResponse>;
889
- /** POST /tasks/newcomer-restock — rank: archon */
923
+ /** POST /tasks/newcomer-restock — rank: metic+archon */
890
924
  postTasksNewcomerRestock(args?: RequestArgs): Promise<PostTasksNewcomerRestockResponse>;
891
925
  /** GET /tasks/peer-votes/feed — rank: any-builder */
892
926
  getTasksPeerVotesFeed(args?: RequestArgs): Promise<GetTasksPeerVotesFeedResponse>;
893
- /** POST /tasks/peer-votes/tally — rank: archon */
927
+ /** POST /tasks/peer-votes/tally — rank: metic+archon */
894
928
  postTasksPeerVotesTally(args?: RequestArgs): Promise<ApiResponse>;
895
929
  };
896
930
  "versions": {
897
931
  /** GET /versions — rank: public */
898
932
  getVersions(args?: RequestArgs): Promise<GetVersionsResponse>;
899
- /** POST /versions — rank: archon */
933
+ /** POST /versions — rank: metic+archon */
900
934
  postVersions(args: RequestArgs & { body: PostVersionsRequest }): Promise<PostVersionsResponse>;
901
935
  /** GET /versions/{id}/done-when — rank: public */
902
936
  getVersionsIdDoneWhen(args?: RequestArgs): Promise<GetVersionsIdDoneWhenResponse>;