@bongos/core 1.18.19 → 1.19.3

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 (259) hide show
  1. package/.bongos-core.json +547 -197
  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/bin/bongos.js +33 -7
  9. package/clients/bongos-client/README.md +1 -1
  10. package/clients/bongos-client/bongos-client.global.js +63 -41
  11. package/clients/bongos-client/index.cjs +63 -41
  12. package/clients/bongos-client/index.d.ts +78 -44
  13. package/clients/bongos-client/index.mjs +63 -41
  14. package/docs/adr/0020-security-model-public-stub.md +1 -1
  15. package/docs/adr/0097-one-active-claim-per-session-and-worktree-binding.md +2 -0
  16. package/docs/adr/0137-upstream-publish-policy-manual-owner-gated.md +1 -1
  17. package/docs/adr/0144-devbox-rehome-onto-cloudbongos-plane.md +1 -1
  18. package/docs/adr/0151-governance-permissions-as-atom-ranks-as-roles.md +2 -1
  19. package/docs/adr/0155-adopt-private-repo-widen-oauth-scope.md +51 -0
  20. package/docs/adr/0156-user-set-display-name-wins.md +62 -0
  21. package/docs/adr/0157-archon-is-rank-and-identity-only.md +93 -0
  22. package/docs/adr/0158-choke-point-verdict-taxonomy.md +174 -0
  23. package/docs/adr/0159-merge-gate-reconciliation.md +88 -0
  24. package/docs/adr/0160-main-audit-repo-verifiable-caller.md +77 -0
  25. package/docs/adr/0161-publish-on-merge.md +34 -0
  26. package/docs/adr/README.md +9 -0
  27. package/docs/api/openapi.json +1209 -233
  28. package/docs/api-reference.md +61 -46
  29. package/docs/architecture.md +1 -1
  30. package/docs/canonical-permissions.md +61 -16
  31. package/docs/design/vanilla-hall-ui-redesign-scope.md +1 -1
  32. package/docs/file-map.md +4 -1
  33. package/docs/onboarding/diagrams/assertions.json +3 -3
  34. package/docs/recipes/core-release-pipeline.md +181 -0
  35. package/docs/recipes/packaging-the-core.md +2 -0
  36. package/docs/recipes/parallel-goal-waves.md +1 -3
  37. package/docs/recipes/private-npm-distribution.md +6 -2
  38. package/docs/recipes/upgrading-the-core.md +2 -0
  39. package/migrations/core_197_display_name_source.sql +56 -0
  40. package/migrations/core_204_rekey_active_claim_per_session_worktree.sql +77 -0
  41. package/migrations/core_205_versions_track_default.sql +28 -0
  42. package/modules/autonomy/routes/autonomy.js +1 -1
  43. package/modules/builder-settings/db.js +7 -1
  44. package/modules/dev-box/app/src/vendor/bongos-client.cjs +63 -41
  45. package/modules/dev-box/routes/box.js +11 -9
  46. package/modules/discord/auth.js +3 -1
  47. package/modules/discord/routes/discord.js +8 -2
  48. package/modules/discord/ship-broadcast.js +48 -1
  49. package/modules/governance/catalog.js +70 -20
  50. package/modules/governance/db.js +102 -0
  51. package/modules/governance/migrations/governance_006_version_create.sql +38 -0
  52. package/modules/governance/migrations/governance_007_delegate_archon_ops_to_metic.sql +72 -0
  53. package/modules/governance/routes/governance.js +235 -6
  54. package/modules/grading/grader-workers/index.js +18 -9
  55. package/modules/hall-ui/public/gate.js +6 -2
  56. package/modules/hall-ui/public/goals-page.js +6 -2
  57. package/modules/hall-ui/public/governance.css +100 -0
  58. package/modules/hall-ui/public/governance.html +77 -0
  59. package/modules/hall-ui/public/governance.js +353 -0
  60. package/modules/hall-ui/public/harbor.js +14 -8
  61. package/modules/hall-ui/public/instances-panel.js +3 -1
  62. package/modules/hall-ui/public/new-project-wizard.js +6 -0
  63. package/modules/hall-ui/public/people.html +51 -0
  64. package/modules/hall-ui/public/people.js +100 -0
  65. package/modules/hall-ui/public/profile.html +2 -1
  66. package/modules/hall-ui/public/profile.js +9 -3
  67. package/modules/hall-ui/public/sessions.js +4 -2
  68. package/modules/hall-ui/public/shell.js +28 -7
  69. package/modules/hall-ui/public/task-detail.js +6 -3
  70. package/modules/hall-ui/public/watch.js +17 -9
  71. package/modules/ideas/blockers.js +44 -7
  72. package/modules/ideas/routes/blockers.js +12 -7
  73. package/modules/ideas/routes/inbox.js +2 -2
  74. package/modules/lifecycle/db.js +84 -17
  75. package/modules/lifecycle/github-push.js +37 -10
  76. package/modules/lifecycle/publish-reconciler.js +128 -31
  77. package/modules/lifecycle/routes/claims.js +10 -4
  78. package/modules/lifecycle/routes/dependencies.js +2 -2
  79. package/modules/lifecycle/routes/done-when.js +4 -4
  80. package/modules/lifecycle/routes/gate-approvals.js +9 -3
  81. package/modules/lifecycle/routes/goals.js +5 -5
  82. package/modules/lifecycle/routes/tasks.js +99 -69
  83. package/modules/lifecycle/routes/versions.js +13 -2
  84. package/modules/lifecycle/ship-card.js +38 -7
  85. package/modules/memory/routes/memory.js +2 -2
  86. package/modules/onboarding/routes/access-requests.js +3 -3
  87. package/modules/platform-identity/routes/projects.js +10 -6
  88. package/modules/platform-identity/routes/scouting.js +2 -2
  89. package/modules/provisioning/migrations/provisioning_004_onboard_mode.sql +30 -0
  90. package/modules/provisioning/provisioning.js +24 -6
  91. package/modules/provisioning/routes/provisioning.js +24 -6
  92. package/modules/security/artifact-scan/aggregate.js +133 -0
  93. package/modules/security/artifact-scan/detectors/capabilities.js +53 -0
  94. package/modules/security/artifact-scan/detectors/config-obfuscation.js +41 -0
  95. package/modules/security/artifact-scan/detectors/credentials.js +112 -0
  96. package/modules/security/artifact-scan/detectors/dependencies.js +115 -0
  97. package/modules/security/artifact-scan/detectors/hooks.js +116 -0
  98. package/modules/security/artifact-scan/detectors/injection.js +118 -0
  99. package/modules/security/artifact-scan/detectors/mcp.js +102 -0
  100. package/modules/security/artifact-scan/detectors/network.js +67 -0
  101. package/modules/security/artifact-scan/detectors/npm-lifecycle.js +67 -0
  102. package/modules/security/artifact-scan/detectors/permissions.js +91 -0
  103. package/modules/security/artifact-scan/detectors/shared.js +219 -0
  104. package/modules/security/artifact-scan/fence-local.js +99 -0
  105. package/modules/security/artifact-scan/fetch.js +330 -0
  106. package/modules/security/artifact-scan/floor.js +319 -0
  107. package/modules/security/artifact-scan/limits.js +66 -0
  108. package/modules/security/artifact-scan/manifest.js +203 -0
  109. package/modules/security/artifact-scan/mirror.js +158 -0
  110. package/modules/security/artifact-scan/quarantine.js +149 -0
  111. package/modules/security/artifact-scan/rebuild-spec.js +120 -0
  112. package/modules/security/artifact-scan/report.js +155 -0
  113. package/modules/security/artifact-scan/sanitize.js +317 -0
  114. package/modules/security/migrations/security_001_tool_scans.sql +145 -0
  115. package/modules/security/module.json +2 -2
  116. package/modules/security/routes/reports.js +11 -7
  117. package/modules/security/routes/scans.js +115 -0
  118. package/modules/security/scan-store.js +214 -0
  119. package/modules/security/tests/aggregate.mjs +283 -0
  120. package/modules/security/tests/artifact_scan.mjs +591 -0
  121. package/modules/security/tests/floor.mjs +549 -0
  122. package/modules/security/tests/mirror.mjs +350 -0
  123. package/modules/security/tests/sanitize_rebuild.mjs +499 -0
  124. package/modules/security/tests/scan_store.mjs +250 -0
  125. package/modules/security/tests/tool_scans_migration.mjs +116 -0
  126. package/modules/sessions/routes/sessions.js +6 -5
  127. package/package-lock.json +2 -2
  128. package/package.json +1 -1
  129. package/public-landing/create.html +13 -3
  130. package/scripts/gds/abandon.js +1 -1
  131. package/scripts/gds/audit-authorship.sh +6 -0
  132. package/scripts/gds/box.js +1 -1
  133. package/scripts/gds/bump-version.js +76 -0
  134. package/scripts/gds/claim.js +15 -0
  135. package/scripts/gds/cli-lib.js +16 -4
  136. package/scripts/gds/gating.js +28 -13
  137. package/scripts/gds/gen-api-docs.js +1 -1
  138. package/scripts/gds/goal.js +234 -0
  139. package/scripts/gds/init.js +77 -15
  140. package/scripts/gds/main-audit.js +80 -11
  141. package/scripts/gds/mirror-redact.js +6 -0
  142. package/scripts/gds/newcomer-floor.js +2 -2
  143. package/scripts/gds/provision.js +230 -94
  144. package/scripts/gds/run-unit-tests.js +9 -1
  145. package/scripts/gds/sandbox-stage.js +66 -9
  146. package/scripts/gds/search-ingest-md.js +1 -0
  147. package/scripts/gds/sequence.js +67 -8
  148. package/scripts/gds/ship.js +183 -50
  149. package/scripts/hall-preview/server.js +1 -1
  150. package/scripts/migrate.sh +5 -5
  151. package/src/bongos/auth.js +129 -27
  152. package/src/bongos/db-kernel.js +66 -5
  153. package/src/bongos/db.js +6 -7
  154. package/src/bongos/github-repos.js +19 -7
  155. package/src/bongos/goal-scope-check.js +1 -1
  156. package/src/bongos/module-scope-map.js +3 -1
  157. package/src/bongos/permission-path-check.js +1 -1
  158. package/src/bongos/route-rank-check.js +73 -30
  159. package/src/bongos/routes/audit-log.js +4 -2
  160. package/src/bongos/routes/auth.js +8 -4
  161. package/src/bongos/routes/backup.js +7 -4
  162. package/src/bongos/routes/builders.js +23 -11
  163. package/src/bongos/routes/github.js +15 -4
  164. package/src/bongos/routes/llm-cache.js +5 -2
  165. package/src/bongos/routes/modules.js +9 -5
  166. package/src/bongos/routes/security.js +21 -12
  167. package/src/bongos/serve-internal.js +22 -7
  168. package/src/module-api.js +96 -13
  169. package/src/platform-server.js +14 -0
  170. package/tests/api_client.mjs +18 -2
  171. package/tests/api_path_404.mjs +3 -0
  172. package/tests/art_stage.mjs +2 -1
  173. package/tests/atlas.mjs +32 -4
  174. package/tests/auth_admission_gate.mjs +17 -5
  175. package/tests/auth_error_brand.mjs +41 -21
  176. package/tests/auth_resolve_failure.mjs +155 -0
  177. package/tests/blocker_link.mjs +88 -0
  178. package/tests/bongos_cli.mjs +91 -0
  179. package/tests/bongos_downloads.mjs +2 -1
  180. package/tests/box_dns_repoint.mjs +2 -0
  181. package/tests/box_ship_permissions.mjs +2 -0
  182. package/tests/box_terminal_ssrf.mjs +23 -17
  183. package/tests/bump_version.mjs +71 -0
  184. package/tests/claim_error_surface.mjs +23 -0
  185. package/tests/claude_materialize.mjs +4 -0
  186. package/tests/cli_box_scope.mjs +40 -0
  187. package/tests/cloud_bongos_pack.mjs +34 -4
  188. package/tests/conductor.mjs +2 -1
  189. package/tests/criterion_authoring_gate.mjs +28 -5
  190. package/tests/currency_label.mjs +10 -1
  191. package/tests/deploy_instance.mjs +2 -0
  192. package/tests/devbox_downloads.mjs +2 -1
  193. package/tests/display_name.mjs +95 -6
  194. package/tests/eviction_policy.mjs +2 -1
  195. package/tests/file_map.mjs +10 -0
  196. package/tests/first_admin_bootstrap.mjs +10 -2
  197. package/tests/first_run_engine_check.mjs +2 -1
  198. package/tests/fitness.mjs +26 -6
  199. package/tests/gate_approvals.mjs +15 -2
  200. package/tests/github_push_land_proof.mjs +50 -4
  201. package/tests/github_repos_helpers.mjs +30 -5
  202. package/tests/github_token_store.mjs +23 -0
  203. package/tests/goal_abuse_matrix.mjs +13 -3
  204. package/tests/goal_cli.mjs +89 -0
  205. package/tests/governance_abuse_matrix.mjs +386 -0
  206. package/tests/governance_fold.mjs +156 -0
  207. package/tests/governance_fold_bench.mjs +50 -0
  208. package/tests/governance_live_proof.mjs +201 -0
  209. package/tests/governance_page_gates.mjs +21 -9
  210. package/tests/governance_parity.mjs +11 -2
  211. package/tests/governance_require_permission.mjs +125 -1
  212. package/tests/governance_routes.mjs +334 -0
  213. package/tests/grader.mjs +7 -3
  214. package/tests/hall_nav.mjs +14 -4
  215. package/tests/helpers.mjs +73 -0
  216. package/tests/hook_core_resolve.mjs +2 -1
  217. package/tests/host_topology_skips.mjs +97 -0
  218. package/tests/infra_exec_paths.mjs +14 -4
  219. package/tests/init.mjs +147 -0
  220. package/tests/known_failing_ratchet.mjs +89 -0
  221. package/tests/lifecycle-card.mjs +2 -1
  222. package/tests/main_audit.mjs +72 -1
  223. package/tests/memory_isolation.mjs +56 -9
  224. package/tests/migrate_root_resolution.mjs +1 -1
  225. package/tests/mirror_redact.mjs +19 -0
  226. package/tests/module_api.mjs +3 -1
  227. package/tests/module_loader.mjs +4 -0
  228. package/tests/modules.mjs +35 -7
  229. package/tests/modules_route.mjs +29 -5
  230. package/tests/onboarding_observability.mjs +49 -11
  231. package/tests/onboarding_route_signals.mjs +1 -0
  232. package/tests/one_active_claim_per_session.mjs +80 -0
  233. package/tests/patch_gate_ordering.mjs +102 -0
  234. package/tests/pre_compact.mjs +2 -1
  235. package/tests/preview_server.mjs +2 -1
  236. package/tests/profile_route.mjs +1 -0
  237. package/tests/provision.mjs +170 -0
  238. package/tests/provisioning_onboard_mode.mjs +180 -0
  239. package/tests/publish_manifest.mjs +16 -3
  240. package/tests/publish_reconciler.mjs +181 -10
  241. package/tests/rank_tier_single_source.mjs +205 -0
  242. package/tests/recall_hints.mjs +2 -1
  243. package/tests/repo_map.mjs +4 -0
  244. package/tests/route_permission_check.mjs +14 -5
  245. package/tests/rubric_fixtures.mjs +3 -0
  246. package/tests/run_routine_two_root.mjs +2 -0
  247. package/tests/sandbox_stage.mjs +69 -7
  248. package/tests/search_ingest.mjs +7 -0
  249. package/tests/security_docs.mjs +28 -6
  250. package/tests/sequence.mjs +64 -0
  251. package/tests/session-cards.mjs +2 -1
  252. package/tests/session_start_freshness.mjs +2 -1
  253. package/tests/ship_broadcast_server.mjs +63 -1
  254. package/tests/ship_card.mjs +66 -0
  255. package/tests/ship_ci_deploy.mjs +66 -1
  256. package/tests/ship_smoke_gate.mjs +76 -0
  257. package/tests/versions_route.mjs +15 -0
  258. package/tests/workflow_exec_paths.mjs +16 -4
  259. package/tests/worktree_guard.mjs +2 -1
@@ -103,7 +103,7 @@ function createClient(opts = {}) {
103
103
  getAnalyticsBuilderId: (args) => request("GET", "/analytics/builder/{id}", { hasBody: false }, args),
104
104
  },
105
105
  "auditLog": {
106
- // GET /audit-log — rank: archon — GET /audit-log
106
+ // GET /audit-log — rank: metic+archon — GET /audit-log
107
107
  getAuditLog: (args) => request("GET", "/audit-log", { hasBody: false }, args),
108
108
  },
109
109
  "auth": {
@@ -145,7 +145,7 @@ function createClient(opts = {}) {
145
145
  getAuthWebStart: (args) => request("GET", "/auth/web/start", { hasBody: false }, args),
146
146
  },
147
147
  "autonomy": {
148
- // GET /autonomy/precheck — rank: archon — GET /autonomy/precheck
148
+ // GET /autonomy/precheck — rank: metic+archon — GET /autonomy/precheck
149
149
  getAutonomyPrecheck: (args) => request("GET", "/autonomy/precheck", { hasBody: false }, args),
150
150
  },
151
151
  "backup": {
@@ -205,13 +205,13 @@ function createClient(opts = {}) {
205
205
  postBoxVersion: (args) => request("POST", "/box/version", { hasBody: true }, args),
206
206
  },
207
207
  "boxes": {
208
- // GET /boxes — rank: archon — GET /boxes
208
+ // GET /boxes — rank: metic+archon — GET /boxes
209
209
  getBoxes: (args) => request("GET", "/boxes", { hasBody: false }, args),
210
- // PATCH /boxes/{builderId}/block — rank: archon — PATCH /boxes/:builderId/block
210
+ // PATCH /boxes/{builderId}/block — rank: metic+archon — PATCH /boxes/:builderId/block
211
211
  patchBoxesBuilderIdBlock: (args) => request("PATCH", "/boxes/{builderId}/block", { hasBody: true }, args),
212
- // POST /boxes/{builderId}/close — rank: archon — POST /boxes/:builderId/close
212
+ // POST /boxes/{builderId}/close — rank: metic+archon — POST /boxes/:builderId/close
213
213
  postBoxesBuilderIdClose: (args) => request("POST", "/boxes/{builderId}/close", { hasBody: true }, args),
214
- // GET /boxes/cost-ledger — rank: archon — GET /boxes/cost-ledger
214
+ // GET /boxes/cost-ledger — rank: metic+archon — GET /boxes/cost-ledger
215
215
  getBoxesCostLedger: (args) => request("GET", "/boxes/cost-ledger", { hasBody: false }, args),
216
216
  },
217
217
  "bugAttachments": {
@@ -219,9 +219,9 @@ function createClient(opts = {}) {
219
219
  getBugAttachmentsName: (args) => request("GET", "/bug-attachments/{name}", { hasBody: false }, args),
220
220
  },
221
221
  "builders": {
222
- // GET /builders/{id}/active-claims — rank: archon — GET /builders/:id/active-claims
222
+ // GET /builders/{id}/active-claims — rank: metic+archon — GET /builders/:id/active-claims
223
223
  getBuildersIdActiveClaims: (args) => request("GET", "/builders/{id}/active-claims", { hasBody: false }, args),
224
- // PATCH /builders/{id}/budget — rank: archon — PATCH /builders/:id/budget
224
+ // PATCH /builders/{id}/budget — rank: metic+archon — PATCH /builders/:id/budget
225
225
  patchBuildersIdBudget: (args) => request("PATCH", "/builders/{id}/budget", { hasBody: true }, args),
226
226
  // GET /builders/{id}/onboarding — rank: public — GET /builders/:id/onboarding
227
227
  getBuildersIdOnboarding: (args) => request("GET", "/builders/{id}/onboarding", { hasBody: false }, args),
@@ -235,13 +235,13 @@ function createClient(opts = {}) {
235
235
  getBuildersDirectory: (args) => request("GET", "/builders/directory", { hasBody: false }, args),
236
236
  // GET /builders/me/pending-rank-change — rank: any-builder — GET /builders/me/pending-rank-change
237
237
  getBuildersMePendingRankChange: (args) => request("GET", "/builders/me/pending-rank-change", { hasBody: false }, args),
238
- // GET /builders/roster — rank: archon — GET /builders/roster
238
+ // GET /builders/roster — rank: metic+archon — GET /builders/roster
239
239
  getBuildersRoster: (args) => request("GET", "/builders/roster", { hasBody: false }, args),
240
240
  },
241
241
  "claims": {
242
242
  // POST /claims — rank: any-builder — POST /claims
243
243
  postClaims: (args) => request("POST", "/claims", { hasBody: true }, args),
244
- // POST /claims/{id}/release-on-behalf — rank: archon — POST /claims/:id/release-on-behalf
244
+ // POST /claims/{id}/release-on-behalf — rank: metic+archon — POST /claims/:id/release-on-behalf
245
245
  postClaimsIdReleaseOnBehalf: (args) => request("POST", "/claims/{id}/release-on-behalf", { hasBody: true }, args),
246
246
  // POST /claims/{id}/resolve — rank: any-builder — POST /claims/:id/resolve
247
247
  postClaimsIdResolve: (args) => request("POST", "/claims/{id}/resolve", { hasBody: true }, args),
@@ -263,21 +263,21 @@ function createClient(opts = {}) {
263
263
  postDependencies: (args) => request("POST", "/dependencies", { hasBody: true }, args),
264
264
  },
265
265
  "discord": {
266
- // GET /discord/channels/plan — rank: archon — GET /discord/channels/plan
266
+ // GET /discord/channels/plan — rank: metic+archon — GET /discord/channels/plan
267
267
  getDiscordChannelsPlan: (args) => request("GET", "/discord/channels/plan", { hasBody: false }, args),
268
- // POST /discord/channels/reconcile — rank: archon — POST /discord/channels/reconcile
268
+ // POST /discord/channels/reconcile — rank: metic+archon — POST /discord/channels/reconcile
269
269
  postDiscordChannelsReconcile: (args) => request("POST", "/discord/channels/reconcile", { hasBody: true }, args),
270
270
  },
271
271
  "doneWhen": {
272
272
  // POST /done-when/{criterionId}/satisfy — rank: metic+archon — POST /done-when/:criterionId/satisfy
273
273
  postDoneWhenCriterionIdSatisfy: (args) => request("POST", "/done-when/{criterionId}/satisfy", { hasBody: true }, args),
274
- // POST /done-when/{criterionId}/unsatisfy — rank: archon — POST /done-when/:criterionId/unsatisfy
274
+ // POST /done-when/{criterionId}/unsatisfy — rank: metic+archon — POST /done-when/:criterionId/unsatisfy
275
275
  postDoneWhenCriterionIdUnsatisfy: (args) => request("POST", "/done-when/{criterionId}/unsatisfy", { hasBody: true }, args),
276
276
  // GET /done-when/pending-review — rank: metic+archon — GET /done-when/pending-review
277
277
  getDoneWhenPendingReview: (args) => request("GET", "/done-when/pending-review", { hasBody: false }, args),
278
278
  },
279
279
  "gateApprovals": {
280
- // GET /gate-approvals — rank: archon — GET /gate-approvals
280
+ // GET /gate-approvals — rank: metic+archon — GET /gate-approvals
281
281
  getGateApprovals: (args) => request("GET", "/gate-approvals", { hasBody: false }, args),
282
282
  // POST /gate-approvals/{pr}/approve — rank: archon — POST /gate-approvals/:pr/approve
283
283
  postGateApprovalsPrApprove: (args) => request("POST", "/gate-approvals/{pr}/approve", { hasBody: true }, args),
@@ -335,11 +335,29 @@ function createClient(opts = {}) {
335
335
  patchGoalsIdVisibility: (args) => request("PATCH", "/goals/{id}/visibility", { hasBody: true }, args),
336
336
  // GET /goals/inbox — rank: any-builder — GET /goals/inbox
337
337
  getGoalsInbox: (args) => request("GET", "/goals/inbox", { hasBody: false }, args),
338
- // POST /goals/reorder — rank: archon — POST /goals/reorder
338
+ // POST /goals/reorder — rank: metic+archon — POST /goals/reorder
339
339
  postGoalsReorder: (args) => request("POST", "/goals/reorder", { hasBody: true }, args),
340
340
  },
341
+ "governance": {
342
+ // GET /governance/assignments — rank: archon — GET /governance/assignments
343
+ getGovernanceAssignments: (args) => request("GET", "/governance/assignments", { hasBody: false }, args),
344
+ // POST /governance/assignments — rank: archon — POST /governance/assignments
345
+ postGovernanceAssignments: (args) => request("POST", "/governance/assignments", { hasBody: true }, args),
346
+ // DELETE /governance/assignments/{builderId}/{roleKey} — rank: archon — DELETE /governance/assignments/:builderId/:roleKey
347
+ deleteGovernanceAssignmentsBuilderIdRoleKey: (args) => request("DELETE", "/governance/assignments/{builderId}/{roleKey}", { hasBody: false }, args),
348
+ // GET /governance/permissions — rank: archon — GET /governance/permissions
349
+ getGovernancePermissions: (args) => request("GET", "/governance/permissions", { hasBody: false }, args),
350
+ // GET /governance/roles — rank: archon — GET /governance/roles
351
+ getGovernanceRoles: (args) => request("GET", "/governance/roles", { hasBody: false }, args),
352
+ // POST /governance/roles — rank: archon — POST /governance/roles
353
+ postGovernanceRoles: (args) => request("POST", "/governance/roles", { hasBody: true }, args),
354
+ // DELETE /governance/roles/{roleKey}/permissions/{permissionKey} — rank: archon — DELETE /governance/roles/:roleKey/permissions/:permissionKey
355
+ deleteGovernanceRolesRoleKeyPermissionsPermissionKey: (args) => request("DELETE", "/governance/roles/{roleKey}/permissions/{permissionKey}", { hasBody: false }, args),
356
+ // PUT /governance/roles/{roleKey}/permissions/{permissionKey} — rank: archon — PUT /governance/roles/:roleKey/permissions/:permissionKey
357
+ putGovernanceRolesRoleKeyPermissionsPermissionKey: (args) => request("PUT", "/governance/roles/{roleKey}/permissions/{permissionKey}", { hasBody: true }, args),
358
+ },
341
359
  "grades": {
342
- // GET /grades/by-builder — rank: archon — GET /grades/by-builder
360
+ // GET /grades/by-builder — rank: metic+archon — GET /grades/by-builder
343
361
  getGradesByBuilder: (args) => request("GET", "/grades/by-builder", { hasBody: false }, args),
344
362
  },
345
363
  "healthz": {
@@ -355,7 +373,7 @@ function createClient(opts = {}) {
355
373
  getInboxId: (args) => request("GET", "/inbox/{id}", { hasBody: false }, args),
356
374
  // PATCH /inbox/{id} — rank: metic+archon — PATCH /inbox/:id
357
375
  patchInboxId: (args) => request("PATCH", "/inbox/{id}", { hasBody: true }, args),
358
- // POST /inbox/{id}/ratify — rank: archon — POST /inbox/:id/ratify
376
+ // POST /inbox/{id}/ratify — rank: metic+archon — POST /inbox/:id/ratify
359
377
  postInboxIdRatify: (args) => request("POST", "/inbox/{id}/ratify", { hasBody: true }, args),
360
378
  },
361
379
  "instance": {
@@ -433,9 +451,9 @@ function createClient(opts = {}) {
433
451
  getMemoryBfgBuildersBuilderIdFiles: (args) => request("GET", "/memory/bfg/builders/{builderId}/files", { hasBody: false }, args),
434
452
  // POST /memory/builders/{builderId}/bfg-write — rank: bfg-principal — POST /memory/builders/:builderId/bfg-write
435
453
  postMemoryBuildersBuilderIdBfgWrite: (args) => request("POST", "/memory/builders/{builderId}/bfg-write", { hasBody: true }, args),
436
- // GET /memory/builders/{builderId}/file — rank: archon — GET /memory/builders/:builderId/file
454
+ // GET /memory/builders/{builderId}/file — rank: metic+archon — GET /memory/builders/:builderId/file
437
455
  getMemoryBuildersBuilderIdFile: (args) => request("GET", "/memory/builders/{builderId}/file", { hasBody: false }, args),
438
- // GET /memory/builders/{builderId}/files — rank: archon — GET /memory/builders/:builderId/files
456
+ // GET /memory/builders/{builderId}/files — rank: metic+archon — GET /memory/builders/:builderId/files
439
457
  getMemoryBuildersBuilderIdFiles: (args) => request("GET", "/memory/builders/{builderId}/files", { hasBody: false }, args),
440
458
  // DELETE /memory/file — rank: any-builder — DELETE /memory/file
441
459
  deleteMemoryFile: (args) => request("DELETE", "/memory/file", { hasBody: true }, args),
@@ -471,27 +489,27 @@ function createClient(opts = {}) {
471
489
  postMyProjectsJoin: (args) => request("POST", "/my-projects/join", { hasBody: true }, args),
472
490
  },
473
491
  "overrideRequests": {
474
- // GET /override-requests — rank: archon — GET /override-requests
492
+ // GET /override-requests — rank: metic+archon — GET /override-requests
475
493
  getOverrideRequests: (args) => request("GET", "/override-requests", { hasBody: false }, args),
476
- // POST /override-requests/{id}/decide — rank: archon — POST /override-requests/:id/decide
494
+ // POST /override-requests/{id}/decide — rank: metic+archon — POST /override-requests/:id/decide
477
495
  postOverrideRequestsIdDecide: (args) => request("POST", "/override-requests/{id}/decide", { hasBody: true }, args),
478
496
  },
479
497
  "projects": {
480
- // GET /projects — rank: archon — GET /projects
498
+ // GET /projects — rank: metic+archon — GET /projects
481
499
  getProjects: (args) => request("GET", "/projects", { hasBody: false }, args),
482
- // POST /projects — rank: archon — POST /projects
500
+ // POST /projects — rank: metic+archon — POST /projects
483
501
  postProjects: (args) => request("POST", "/projects", { hasBody: true }, args),
484
- // PATCH /projects/{id}/featured — rank: archon — PATCH /projects/:id/featured
502
+ // PATCH /projects/{id}/featured — rank: metic+archon — PATCH /projects/:id/featured
485
503
  patchProjectsIdFeatured: (args) => request("PATCH", "/projects/{id}/featured", { hasBody: true }, args),
486
504
  // GET /projects/featured — rank: public — GET /projects/featured
487
505
  getProjectsFeatured: (args) => request("GET", "/projects/featured", { hasBody: false }, args),
488
- // POST /projects/invite — rank: archon — POST /projects/invite
506
+ // POST /projects/invite — rank: metic+archon — POST /projects/invite
489
507
  postProjectsInvite: (args) => request("POST", "/projects/invite", { hasBody: true }, args),
490
508
  },
491
509
  "provisioning": {
492
- // GET /provisioning/fleet — rank: archon — GET /provisioning/fleet
510
+ // GET /provisioning/fleet — rank: metic+archon — GET /provisioning/fleet
493
511
  getProvisioningFleet: (args) => request("GET", "/provisioning/fleet", { hasBody: false }, args),
494
- // GET /provisioning/fleet/cost-ledger — rank: archon — GET /provisioning/fleet/cost-ledger
512
+ // GET /provisioning/fleet/cost-ledger — rank: metic+archon — GET /provisioning/fleet/cost-ledger
495
513
  getProvisioningFleetCostLedger: (args) => request("GET", "/provisioning/fleet/cost-ledger", { hasBody: false }, args),
496
514
  // GET /provisioning/github-app/callback — rank: public — GET /provisioning/github-app/callback
497
515
  getProvisioningGithubAppCallback: (args) => request("GET", "/provisioning/github-app/callback", { hasBody: false }, args),
@@ -505,7 +523,7 @@ function createClient(opts = {}) {
505
523
  postProvisioningInstances: (args) => request("POST", "/provisioning/instances", { hasBody: true }, args),
506
524
  // GET /provisioning/instances/{id} — rank: any-builder — GET /provisioning/instances/:id
507
525
  getProvisioningInstancesId: (args) => request("GET", "/provisioning/instances/{id}", { hasBody: false }, args),
508
- // POST /provisioning/instances/{id}/force-teardown — rank: archon — POST /provisioning/instances/:id/force-teardown
526
+ // POST /provisioning/instances/{id}/force-teardown — rank: metic+archon — POST /provisioning/instances/:id/force-teardown
509
527
  postProvisioningInstancesIdForceTeardown: (args) => request("POST", "/provisioning/instances/{id}/force-teardown", { hasBody: true }, args),
510
528
  // POST /provisioning/instances/{id}/github-app — rank: any-builder — POST /provisioning/instances/:id/github-app
511
529
  postProvisioningInstancesIdGithubApp: (args) => request("POST", "/provisioning/instances/{id}/github-app", { hasBody: true }, args),
@@ -555,7 +573,7 @@ function createClient(opts = {}) {
555
573
  getPublicVersions: (args) => request("GET", "/public/versions", { hasBody: false }, args),
556
574
  },
557
575
  "scouting": {
558
- // GET /scouting — rank: archon — GET /scouting
576
+ // GET /scouting — rank: metic+archon — GET /scouting
559
577
  getScouting: (args) => request("GET", "/scouting", { hasBody: false }, args),
560
578
  },
561
579
  "search": {
@@ -567,24 +585,28 @@ function createClient(opts = {}) {
567
585
  "security": {
568
586
  // GET /security/adr — rank: metic+archon — GET /security/adr
569
587
  getSecurityAdr: (args) => request("GET", "/security/adr", { hasBody: false }, args),
570
- // GET /security/docs — rank: archon — GET /security/docs
588
+ // GET /security/docs — rank: metic+archon — GET /security/docs
571
589
  getSecurityDocs: (args) => request("GET", "/security/docs", { hasBody: false }, args),
572
- // POST /security/docs — rank: archon — POST /security/docs
590
+ // POST /security/docs — rank: metic+archon — POST /security/docs
573
591
  postSecurityDocs: (args) => request("POST", "/security/docs", { hasBody: true }, args),
574
- // GET /security/docs/{slug} — rank: archon — GET /security/docs/:slug
592
+ // GET /security/docs/{slug} — rank: metic+archon — GET /security/docs/:slug
575
593
  getSecurityDocsSlug: (args) => request("GET", "/security/docs/{slug}", { hasBody: false }, args),
576
- // GET /security/reports — rank: archon — GET /security/reports
594
+ // GET /security/reports — rank: metic+archon — GET /security/reports
577
595
  getSecurityReports: (args) => request("GET", "/security/reports", { hasBody: false }, args),
578
596
  // POST /security/reports — rank: metic+archon — POST /security/reports
579
597
  postSecurityReports: (args) => request("POST", "/security/reports", { hasBody: true }, args),
580
- // POST /security/reports/{id}/confirm — rank: archon — POST /security/reports/:id/confirm
598
+ // POST /security/reports/{id}/confirm — rank: metic+archon — POST /security/reports/:id/confirm
581
599
  postSecurityReportsIdConfirm: (args) => request("POST", "/security/reports/{id}/confirm", { hasBody: true }, args),
582
- // POST /security/reports/{id}/dispute — rank: archon — POST /security/reports/:id/dispute
600
+ // POST /security/reports/{id}/dispute — rank: metic+archon — POST /security/reports/:id/dispute
583
601
  postSecurityReportsIdDispute: (args) => request("POST", "/security/reports/{id}/dispute", { hasBody: true }, args),
584
- // POST /security/reports/{id}/fix — rank: archon — POST /security/reports/:id/fix
602
+ // POST /security/reports/{id}/fix — rank: metic+archon — POST /security/reports/:id/fix
585
603
  postSecurityReportsIdFix: (args) => request("POST", "/security/reports/{id}/fix", { hasBody: true }, args),
586
- // POST /security/reports/{id}/link-fix — rank: archon — POST /security/reports/:id/link-fix
604
+ // POST /security/reports/{id}/link-fix — rank: metic+archon — POST /security/reports/:id/link-fix
587
605
  postSecurityReportsIdLinkFix: (args) => request("POST", "/security/reports/{id}/link-fix", { hasBody: true }, args),
606
+ // GET /security/scans — rank: any-builder — GET /security/scans
607
+ getSecurityScans: (args) => request("GET", "/security/scans", { hasBody: false }, args),
608
+ // POST /security/scans — rank: metic+archon — POST /security/scans
609
+ postSecurityScans: (args) => request("POST", "/security/scans", { hasBody: true }, args),
588
610
  },
589
611
  "session": {
590
612
  // POST /session/optimize — rank: any-builder — POST /session/optimize
@@ -597,7 +619,7 @@ function createClient(opts = {}) {
597
619
  getSessionsId: (args) => request("GET", "/sessions/{id}", { hasBody: false }, args),
598
620
  // GET /sessions/mine — rank: any-builder — GET /sessions/mine
599
621
  getSessionsMine: (args) => request("GET", "/sessions/mine", { hasBody: false }, args),
600
- // GET /sessions/search — rank: archon — GET /sessions/search
622
+ // GET /sessions/search — rank: metic+archon — GET /sessions/search
601
623
  getSessionsSearch: (args) => request("GET", "/sessions/search", { hasBody: false }, args),
602
624
  },
603
625
  "sso": {
@@ -665,17 +687,17 @@ function createClient(opts = {}) {
665
687
  getTasksClaimable: (args) => request("GET", "/tasks/claimable", { hasBody: false }, args),
666
688
  // GET /tasks/newcomer-floor — rank: any-builder — GET /tasks/newcomer-floor
667
689
  getTasksNewcomerFloor: (args) => request("GET", "/tasks/newcomer-floor", { hasBody: false }, args),
668
- // POST /tasks/newcomer-restock — rank: archon — POST /tasks/newcomer-restock
690
+ // POST /tasks/newcomer-restock — rank: metic+archon — POST /tasks/newcomer-restock
669
691
  postTasksNewcomerRestock: (args) => request("POST", "/tasks/newcomer-restock", { hasBody: true }, args),
670
692
  // GET /tasks/peer-votes/feed — rank: any-builder — GET /tasks/peer-votes/feed
671
693
  getTasksPeerVotesFeed: (args) => request("GET", "/tasks/peer-votes/feed", { hasBody: false }, args),
672
- // POST /tasks/peer-votes/tally — rank: archon — POST /tasks/peer-votes/tally
694
+ // POST /tasks/peer-votes/tally — rank: metic+archon — POST /tasks/peer-votes/tally
673
695
  postTasksPeerVotesTally: (args) => request("POST", "/tasks/peer-votes/tally", { hasBody: true }, args),
674
696
  },
675
697
  "versions": {
676
698
  // GET /versions — rank: public — GET /versions
677
699
  getVersions: (args) => request("GET", "/versions", { hasBody: false }, args),
678
- // POST /versions — rank: archon — POST /versions
700
+ // POST /versions — rank: metic+archon — POST /versions
679
701
  postVersions: (args) => request("POST", "/versions", { hasBody: true }, args),
680
702
  // GET /versions/{id}/done-when — rank: public — GET /versions/:id/done-when
681
703
  getVersionsIdDoneWhen: (args) => request("GET", "/versions/{id}/done-when", { hasBody: false }, args),
@@ -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),