@bongos/core 1.24.44 → 1.24.46
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.bongos-core.json +179 -144
- package/clients/bongos-client/README.md +1 -1
- package/clients/bongos-client/bongos-client.global.js +4 -0
- package/clients/bongos-client/index.cjs +4 -0
- package/clients/bongos-client/index.d.ts +8 -0
- package/clients/bongos-client/index.mjs +4 -0
- package/docs/adr/0307-autobongos-a-deterministic-supervisor-and-agentic-workers.md +15 -0
- package/docs/api/openapi.json +152 -3
- package/docs/api-reference.md +4 -2
- package/docs/copy-inventory.md +1111 -1111
- package/docs/copy-registry.json +1547 -1547
- package/docs/module-api-changelog.md +4 -0
- package/docs/onboarding/diagrams/assertions.json +2 -2
- package/docs/page-inventory.json +11 -0
- package/docs/page-readings.json +823 -823
- package/migrations/core_295_runner_logins.sql +50 -0
- package/modules/government/session-scopes.json +5 -0
- package/modules/hall-ui/public/ai-studio.html +1 -1
- package/modules/hall-ui/public/ai-studio.states.json +2 -0
- package/modules/hall-ui/public/atlas.html +1 -1
- package/modules/hall-ui/public/atlas.states.json +2 -0
- package/modules/hall-ui/public/blockers.html +1 -1
- package/modules/hall-ui/public/board-room.html +1 -1
- package/modules/hall-ui/public/board-room.states.json +2 -0
- package/modules/hall-ui/public/city.html +1 -1
- package/modules/hall-ui/public/city.states.json +2 -0
- package/modules/hall-ui/public/collab.html +1 -1
- package/modules/hall-ui/public/collab.states.json +2 -0
- package/modules/hall-ui/public/commands.html +1 -1
- package/modules/hall-ui/public/commands.states.json +2 -0
- package/modules/hall-ui/public/copy-desk.html +1 -1
- package/modules/hall-ui/public/copy-desk.states.json +2 -0
- package/modules/hall-ui/public/craft-mode.js +4 -1
- package/modules/hall-ui/public/deploy.html +1 -1
- package/modules/hall-ui/public/deploy.states.json +2 -0
- package/modules/hall-ui/public/goal-map.html +1 -1
- package/modules/hall-ui/public/goal-map.states.json +2 -0
- package/modules/hall-ui/public/goals.css +1 -0
- package/modules/hall-ui/public/goals.html +1 -1
- package/modules/hall-ui/public/goals.states.json +2 -0
- package/modules/hall-ui/public/government.html +1 -1
- package/modules/hall-ui/public/government.states.json +2 -0
- package/modules/hall-ui/public/idea.html +1 -1
- package/modules/hall-ui/public/idea.states.json +2 -0
- package/modules/hall-ui/public/ideas.html +1 -1
- package/modules/hall-ui/public/ideas.states.json +2 -0
- package/modules/hall-ui/public/index-founding.states.json +2 -0
- package/modules/hall-ui/public/index-genesis-decide.states.json +2 -0
- package/modules/hall-ui/public/index-genesis-demo.states.json +2 -0
- package/modules/hall-ui/public/index-genesis.states.json +2 -0
- package/modules/hall-ui/public/index.html +1 -1
- package/modules/hall-ui/public/index.states.json +5 -0
- package/modules/hall-ui/public/market-watch-item.html +1 -1
- package/modules/hall-ui/public/market-watch-item.states.json +2 -0
- package/modules/hall-ui/public/market-watch-rules.html +1 -1
- package/modules/hall-ui/public/market-watch-rules.states.json +2 -0
- package/modules/hall-ui/public/market-watch.html +1 -1
- package/modules/hall-ui/public/market-watch.states.json +2 -0
- package/modules/hall-ui/public/modules.html +1 -1
- package/modules/hall-ui/public/modules.states.json +2 -0
- package/modules/hall-ui/public/money.html +1 -1
- package/modules/hall-ui/public/money.states.json +2 -0
- package/modules/hall-ui/public/my-agents.html +1 -1
- package/modules/hall-ui/public/my-agents.states.json +2 -0
- package/modules/hall-ui/public/notes-panel.css +1 -1
- package/modules/hall-ui/public/primer.html +1 -1
- package/modules/hall-ui/public/primer.states.json +2 -0
- package/modules/hall-ui/public/profile.html +1 -1
- package/modules/hall-ui/public/profile.states.json +2 -0
- package/modules/hall-ui/public/project-settings.html +1 -1
- package/modules/hall-ui/public/roster.html +1 -1
- package/modules/hall-ui/public/roster.states.json +2 -0
- package/modules/hall-ui/public/settings.html +1 -1
- package/modules/hall-ui/public/settings.states.json +2 -0
- package/modules/hall-ui/public/shell.js +21 -1
- package/modules/hall-ui/public/street-card.states.json +2 -0
- package/modules/hall-ui/public/street.html +1 -1
- package/modules/hall-ui/public/street.states.json +2 -0
- package/modules/hall-ui/public/studio.html +1 -1
- package/modules/hall-ui/public/studio.states.json +2 -0
- package/modules/hall-ui/public/style.css +27 -24
- package/modules/hall-ui/public/task.html +1 -1
- package/modules/hall-ui/public/task.states.json +2 -0
- package/modules/hall-ui/public/thinking.html +1 -1
- package/modules/hall-ui/public/thinking.states.json +2 -0
- package/modules/hall-ui/public/tweak-editor.html +1 -1
- package/modules/hall-ui/public/tweak-editor.states.json +2 -0
- package/modules/hall-ui/public/watch.html +1 -1
- package/modules/hall-ui/public/watch.states.json +2 -0
- package/modules/hall-ui/public/welcome-boot.js +6 -2
- package/modules/hall-ui/public/work-founding.states.json +2 -0
- package/modules/hall-ui/public/work.html +1 -1
- package/modules/hall-ui/public/work.states.json +3 -1
- package/modules/hall-ui/records/hall-navigation.md +5 -0
- package/modules/lifecycle/db-claims.js +6 -3
- package/modules/lifecycle/routes/claims.js +10 -0
- package/modules/lifecycle/routes/tasks.js +1 -1
- package/modules/lifecycle/runner-self-guard.js +19 -10
- package/modules/platform-identity/platform-identity.js +1 -1
- package/modules/platform-identity/tests/platform-identity.mjs +13 -2
- package/modules/provisioning/core-upgrade-authz.js +8 -0
- package/modules/public-landing/public/account.html +1 -0
- package/modules/public-landing/public/community.html +1 -0
- package/modules/public-landing/public/connections.html +1 -0
- package/modules/public-landing/public/contact.html +1 -0
- package/modules/public-landing/public/guild.html +1 -0
- package/modules/public-landing/public/index.html +1 -0
- package/modules/public-landing/public/invitations.html +1 -0
- package/modules/public-landing/public/privacy.html +1 -0
- package/modules/public-landing/public/projects.html +1 -0
- package/modules/public-landing/public/terms.html +1 -0
- package/modules/raise/views/gate.html +1 -0
- package/modules/raise/views/nda.html +1 -0
- package/modules/raise/views/page.html +1 -0
- package/modules/status-ui/public/index.html +1 -0
- package/modules/ui-design/kit/README.md +1 -1
- package/modules/ui-design/kit/fixtures/versions.json +1 -0
- package/modules/ui-design/kit/lib.js +48 -3
- package/modules/ui-design/kit/probe.js +1 -0
- package/modules/ui-design/kit/render.js +2 -0
- package/modules/ui-design/kit/serve.js +1 -0
- package/modules/ui-design/module.json +1 -1
- package/modules/ui-design/public/tokens.css +125 -0
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/release-notes.json +20 -0
- package/scripts/bongos/fitness.js +1 -1
- package/scripts/bongos/gen-hall-sitemap.js +3 -1
- package/scripts/bongos/run-unit-tests.js +3 -0
- package/src/bongos/auth.js +25 -4
- package/src/bongos/route-rank-check.js +5 -0
- package/src/bongos/routes/auth.js +48 -0
- package/src/bongos/runner-login.js +151 -0
- package/src/bongos/serve-internal.js +6 -1
- package/src/module-api.js +1 -1
- package/tests/autobongos_runner_login.mjs +296 -0
- package/tests/autobongos_runner_login_db.mjs +105 -0
- package/tests/craft_mode_nav.mjs +51 -3
- package/tests/design_tokens_shared.mjs +183 -0
- package/tests/government_session_scope.mjs +2 -1
- package/tests/hall_reading_world.mjs +5 -1
- package/tests/hall_tokens.mjs +22 -3
- package/tests/nav_permission_atoms.mjs +2 -1
- package/tests/ui_design_kit.mjs +30 -0
- package/tests/welcome_boot_browser.mjs +4 -0
|
@@ -5,7 +5,7 @@ A **generated**, zero-dependency typed client for the Bongos API — produced fr
|
|
|
5
5
|
by hand; it regenerates when the spec changes, so it can never drift from the routes.
|
|
6
6
|
|
|
7
7
|
- API version: **v1** (served at `/api/bongos/v1`)
|
|
8
|
-
-
|
|
8
|
+
- 686 operations across 85 resource groups
|
|
9
9
|
|
|
10
10
|
## Use it from your project
|
|
11
11
|
|
|
@@ -195,6 +195,10 @@ function createClient(opts = {}) {
|
|
|
195
195
|
postAuthRevoke: (args) => request("POST", "/auth/revoke", { hasBody: true }, args),
|
|
196
196
|
// POST /auth/revoke-all — rank: archon — POST /auth/revoke-all
|
|
197
197
|
postAuthRevokeAll: (args) => request("POST", "/auth/revoke-all", { hasBody: true }, args),
|
|
198
|
+
// POST /auth/runner-code/exchange — rank: public — POST /auth/runner-code/exchange
|
|
199
|
+
postAuthRunnerCodeExchange: (args) => request("POST", "/auth/runner-code/exchange", { hasBody: true }, args),
|
|
200
|
+
// POST /auth/runner-code/issue — rank: metic+archon — POST /auth/runner-code/issue
|
|
201
|
+
postAuthRunnerCodeIssue: (args) => request("POST", "/auth/runner-code/issue", { hasBody: true }, args),
|
|
198
202
|
// GET /auth/web/admission-status — rank: public — GET /auth/web/admission-status
|
|
199
203
|
getAuthWebAdmissionStatus: (args) => request("GET", "/auth/web/admission-status", { hasBody: false }, args),
|
|
200
204
|
// GET /auth/web/callback — rank: public — GET /auth/web/callback
|
|
@@ -194,6 +194,10 @@ function createClient(opts = {}) {
|
|
|
194
194
|
postAuthRevoke: (args) => request("POST", "/auth/revoke", { hasBody: true }, args),
|
|
195
195
|
// POST /auth/revoke-all — rank: archon — POST /auth/revoke-all
|
|
196
196
|
postAuthRevokeAll: (args) => request("POST", "/auth/revoke-all", { hasBody: true }, args),
|
|
197
|
+
// POST /auth/runner-code/exchange — rank: public — POST /auth/runner-code/exchange
|
|
198
|
+
postAuthRunnerCodeExchange: (args) => request("POST", "/auth/runner-code/exchange", { hasBody: true }, args),
|
|
199
|
+
// POST /auth/runner-code/issue — rank: metic+archon — POST /auth/runner-code/issue
|
|
200
|
+
postAuthRunnerCodeIssue: (args) => request("POST", "/auth/runner-code/issue", { hasBody: true }, args),
|
|
197
201
|
// GET /auth/web/admission-status — rank: public — GET /auth/web/admission-status
|
|
198
202
|
getAuthWebAdmissionStatus: (args) => request("GET", "/auth/web/admission-status", { hasBody: false }, args),
|
|
199
203
|
// GET /auth/web/callback — rank: public — GET /auth/web/callback
|
|
@@ -326,6 +326,10 @@ export interface PostAuthRevokeAllRequest { builder_id?: StringifiableId }
|
|
|
326
326
|
export interface PostAuthRevokeAllResponse { ok: boolean; revoked: unknown }
|
|
327
327
|
export interface PostAuthRevokeRequest { session_id?: StringifiableId }
|
|
328
328
|
export interface PostAuthRevokeResponse { ok: boolean; revoked: unknown }
|
|
329
|
+
export interface PostAuthRunnerCodeExchangeRequest { code: string }
|
|
330
|
+
export interface PostAuthRunnerCodeExchangeResponse { ok: boolean; token: unknown; session_id: unknown; builder_login: unknown; label: unknown; api_base: unknown }
|
|
331
|
+
export interface PostAuthRunnerCodeIssueRequest { label?: string }
|
|
332
|
+
export interface PostAuthRunnerCodeIssueResponse { ok: boolean; code: unknown; expires_at: unknown; api_base: unknown }
|
|
329
333
|
export interface PostAutonomyBuildersBuilderIdPauseRequest { paused: boolean; reason?: string }
|
|
330
334
|
export interface PostAutonomyFenceGoalsRequest { goal_id: StringifiableId; note?: string }
|
|
331
335
|
export interface PostAutonomyFenceGoalsResponse { goal: unknown }
|
|
@@ -847,6 +851,10 @@ export interface BongosClient {
|
|
|
847
851
|
postAuthRevoke(args?: RequestArgs & { body?: PostAuthRevokeRequest }): Promise<PostAuthRevokeResponse>;
|
|
848
852
|
/** POST /auth/revoke-all — rank: archon */
|
|
849
853
|
postAuthRevokeAll(args?: RequestArgs & { body?: PostAuthRevokeAllRequest }): Promise<PostAuthRevokeAllResponse>;
|
|
854
|
+
/** POST /auth/runner-code/exchange — rank: public */
|
|
855
|
+
postAuthRunnerCodeExchange(args: RequestArgs & { body: PostAuthRunnerCodeExchangeRequest }): Promise<PostAuthRunnerCodeExchangeResponse>;
|
|
856
|
+
/** POST /auth/runner-code/issue — rank: metic+archon */
|
|
857
|
+
postAuthRunnerCodeIssue(args?: RequestArgs & { body?: PostAuthRunnerCodeIssueRequest }): Promise<PostAuthRunnerCodeIssueResponse>;
|
|
850
858
|
/** GET /auth/web/admission-status — rank: public */
|
|
851
859
|
getAuthWebAdmissionStatus(args?: RequestArgs): Promise<GetAuthWebAdmissionStatusResponse>;
|
|
852
860
|
/** GET /auth/web/callback — rank: public */
|
|
@@ -191,6 +191,10 @@ export function createClient(opts = {}) {
|
|
|
191
191
|
postAuthRevoke: (args) => request("POST", "/auth/revoke", { hasBody: true }, args),
|
|
192
192
|
// POST /auth/revoke-all — rank: archon — POST /auth/revoke-all
|
|
193
193
|
postAuthRevokeAll: (args) => request("POST", "/auth/revoke-all", { hasBody: true }, args),
|
|
194
|
+
// POST /auth/runner-code/exchange — rank: public — POST /auth/runner-code/exchange
|
|
195
|
+
postAuthRunnerCodeExchange: (args) => request("POST", "/auth/runner-code/exchange", { hasBody: true }, args),
|
|
196
|
+
// POST /auth/runner-code/issue — rank: metic+archon — POST /auth/runner-code/issue
|
|
197
|
+
postAuthRunnerCodeIssue: (args) => request("POST", "/auth/runner-code/issue", { hasBody: true }, args),
|
|
194
198
|
// GET /auth/web/admission-status — rank: public — GET /auth/web/admission-status
|
|
195
199
|
getAuthWebAdmissionStatus: (args) => request("GET", "/auth/web/admission-status", { hasBody: false }, args),
|
|
196
200
|
// GET /auth/web/callback — rank: public — GET /auth/web/callback
|
|
@@ -156,6 +156,21 @@ the declared-touches gate above leaves. The list covers the files that implement
|
|
|
156
156
|
those checks; the one route line that calls the server check sits in a protected
|
|
157
157
|
file, and a test on the list drives that route.
|
|
158
158
|
|
|
159
|
+
**The runner signs in with its own login** (task 1004547, goal 1000139; owner
|
|
160
|
+
decisions 2026-11-06). Until then a worker ran under its builder's CLI session, so
|
|
161
|
+
the server knew a runner's claim only by the worktree name the runner chose, and a
|
|
162
|
+
worker carried its installer's full authority, enough to move a live core pin (found
|
|
163
|
+
by task 1004974). Now a Metic+ builder issues a one-time code from the hall (a
|
|
164
|
+
browser cookie only, so no token can mint a login; single use; 15 minutes), and the
|
|
165
|
+
PC trades it for a session of source `runner` (`src/bongos/runner-login.js`). Three
|
|
166
|
+
things follow, all server-side. Every claim that login makes carries
|
|
167
|
+
`claims.autonomous`, set from the session and never the body, and the publish guard
|
|
168
|
+
reads it, so a renamed worktree no longer hides a runner. The login **acts at Metic
|
|
169
|
+
at most** and **holds no system permission**, so the kill switch, rank changes and
|
|
170
|
+
core moves are out of its reach, and the project-owner door to a core move is shut to
|
|
171
|
+
it. Removing the PC is the ordinary own-session revoke. The worktree-name check is
|
|
172
|
+
kept for runners not yet moved to their own login.
|
|
173
|
+
|
|
159
174
|
### 7. Workers run with blanket `bypassPermissions`
|
|
160
175
|
|
|
161
176
|
`--permission-prompt-tool` exists and is print-mode only, so routing every
|
package/docs/api/openapi.json
CHANGED
|
@@ -2356,6 +2356,94 @@
|
|
|
2356
2356
|
]
|
|
2357
2357
|
}
|
|
2358
2358
|
},
|
|
2359
|
+
"/auth/runner-code/exchange": {
|
|
2360
|
+
"post": {
|
|
2361
|
+
"operationId": "post_auth_runner_code_exchange",
|
|
2362
|
+
"tags": [
|
|
2363
|
+
"auth"
|
|
2364
|
+
],
|
|
2365
|
+
"summary": "POST /auth/runner-code/exchange",
|
|
2366
|
+
"description": "POST /auth/runner-code/exchange — task 1004547. The PC sends the one-time code and gets back its own login (a 'runner' session). Body: { code }. rank: public — auth establishment; the one-time code is the bearer. A wrong, used or expired code all answer the same 401, so nothing is learned from which. The router's per-IP write limit (rateLimitMiddleware) is its abuse ceiling; the code is 256 bits, so guessing one is not a race worth a limiter of its own.\n\n**Rank:** `public` — No authentication — any caller.",
|
|
2367
|
+
"x-rank": "public",
|
|
2368
|
+
"x-source": "src/bongos/routes/auth.js",
|
|
2369
|
+
"requestBody": {
|
|
2370
|
+
"required": true,
|
|
2371
|
+
"content": {
|
|
2372
|
+
"application/json": {
|
|
2373
|
+
"schema": {
|
|
2374
|
+
"$ref": "#/components/schemas/PostAuthRunnerCodeExchangeRequest"
|
|
2375
|
+
}
|
|
2376
|
+
}
|
|
2377
|
+
},
|
|
2378
|
+
"x-validated": true
|
|
2379
|
+
},
|
|
2380
|
+
"responses": {
|
|
2381
|
+
"200": {
|
|
2382
|
+
"description": "Success.",
|
|
2383
|
+
"content": {
|
|
2384
|
+
"application/json": {
|
|
2385
|
+
"schema": {
|
|
2386
|
+
"$ref": "#/components/schemas/PostAuthRunnerCodeExchangeResponse"
|
|
2387
|
+
}
|
|
2388
|
+
}
|
|
2389
|
+
}
|
|
2390
|
+
},
|
|
2391
|
+
"400": {
|
|
2392
|
+
"$ref": "#/components/responses/ValidationFailed"
|
|
2393
|
+
}
|
|
2394
|
+
},
|
|
2395
|
+
"security": []
|
|
2396
|
+
}
|
|
2397
|
+
},
|
|
2398
|
+
"/auth/runner-code/issue": {
|
|
2399
|
+
"post": {
|
|
2400
|
+
"operationId": "post_auth_runner_code_issue",
|
|
2401
|
+
"tags": [
|
|
2402
|
+
"auth"
|
|
2403
|
+
],
|
|
2404
|
+
"summary": "POST /auth/runner-code/issue",
|
|
2405
|
+
"description": "POST /auth/runner-code/issue — task 1004547 (goal 1000139). A ONE-TIME CODE an Autobongos PC trades for its own login (src/bongos/runner-login.js). Body: { label? } — the PC's name, shown later in the builder's sessions list. rank: metic+archon — running a runner is Metic+ today (owner, 2026-11-06). Cookie ONLY, like /auth/cli-token/issue: a bearer — a CLI token or a runner's own login — must never be able to mint another login. The code is returned once; only its hash is stored. It works once and expires in 15 minutes.\n\n**Rank:** `metic+archon` — Metic or Archon rank (review/triage powers).",
|
|
2406
|
+
"x-rank": "metic+archon",
|
|
2407
|
+
"x-source": "src/bongos/routes/auth.js",
|
|
2408
|
+
"requestBody": {
|
|
2409
|
+
"required": false,
|
|
2410
|
+
"content": {
|
|
2411
|
+
"application/json": {
|
|
2412
|
+
"schema": {
|
|
2413
|
+
"$ref": "#/components/schemas/PostAuthRunnerCodeIssueRequest"
|
|
2414
|
+
}
|
|
2415
|
+
}
|
|
2416
|
+
},
|
|
2417
|
+
"x-validated": true
|
|
2418
|
+
},
|
|
2419
|
+
"responses": {
|
|
2420
|
+
"200": {
|
|
2421
|
+
"description": "Success.",
|
|
2422
|
+
"content": {
|
|
2423
|
+
"application/json": {
|
|
2424
|
+
"schema": {
|
|
2425
|
+
"$ref": "#/components/schemas/PostAuthRunnerCodeIssueResponse"
|
|
2426
|
+
}
|
|
2427
|
+
}
|
|
2428
|
+
}
|
|
2429
|
+
},
|
|
2430
|
+
"400": {
|
|
2431
|
+
"$ref": "#/components/responses/ValidationFailed"
|
|
2432
|
+
},
|
|
2433
|
+
"401": {
|
|
2434
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
2435
|
+
},
|
|
2436
|
+
"403": {
|
|
2437
|
+
"$ref": "#/components/responses/Forbidden"
|
|
2438
|
+
}
|
|
2439
|
+
},
|
|
2440
|
+
"security": [
|
|
2441
|
+
{
|
|
2442
|
+
"builderSession": []
|
|
2443
|
+
}
|
|
2444
|
+
]
|
|
2445
|
+
}
|
|
2446
|
+
},
|
|
2359
2447
|
"/auth/web/admission-status": {
|
|
2360
2448
|
"get": {
|
|
2361
2449
|
"operationId": "get_auth_web_admission_status",
|
|
@@ -36146,6 +36234,67 @@
|
|
|
36146
36234
|
"revoked"
|
|
36147
36235
|
]
|
|
36148
36236
|
},
|
|
36237
|
+
"PostAuthRunnerCodeExchangeRequest": {
|
|
36238
|
+
"type": "object",
|
|
36239
|
+
"properties": {
|
|
36240
|
+
"code": {
|
|
36241
|
+
"type": "string",
|
|
36242
|
+
"maxLength": 200
|
|
36243
|
+
}
|
|
36244
|
+
},
|
|
36245
|
+
"required": [
|
|
36246
|
+
"code"
|
|
36247
|
+
],
|
|
36248
|
+
"additionalProperties": false
|
|
36249
|
+
},
|
|
36250
|
+
"PostAuthRunnerCodeExchangeResponse": {
|
|
36251
|
+
"type": "object",
|
|
36252
|
+
"properties": {
|
|
36253
|
+
"ok": {
|
|
36254
|
+
"type": "boolean"
|
|
36255
|
+
},
|
|
36256
|
+
"token": {},
|
|
36257
|
+
"session_id": {},
|
|
36258
|
+
"builder_login": {},
|
|
36259
|
+
"label": {},
|
|
36260
|
+
"api_base": {}
|
|
36261
|
+
},
|
|
36262
|
+
"required": [
|
|
36263
|
+
"ok",
|
|
36264
|
+
"token",
|
|
36265
|
+
"session_id",
|
|
36266
|
+
"builder_login",
|
|
36267
|
+
"label",
|
|
36268
|
+
"api_base"
|
|
36269
|
+
]
|
|
36270
|
+
},
|
|
36271
|
+
"PostAuthRunnerCodeIssueRequest": {
|
|
36272
|
+
"type": "object",
|
|
36273
|
+
"properties": {
|
|
36274
|
+
"label": {
|
|
36275
|
+
"type": "string",
|
|
36276
|
+
"maxLength": 200
|
|
36277
|
+
}
|
|
36278
|
+
},
|
|
36279
|
+
"additionalProperties": false
|
|
36280
|
+
},
|
|
36281
|
+
"PostAuthRunnerCodeIssueResponse": {
|
|
36282
|
+
"type": "object",
|
|
36283
|
+
"properties": {
|
|
36284
|
+
"ok": {
|
|
36285
|
+
"type": "boolean"
|
|
36286
|
+
},
|
|
36287
|
+
"code": {},
|
|
36288
|
+
"expires_at": {},
|
|
36289
|
+
"api_base": {}
|
|
36290
|
+
},
|
|
36291
|
+
"required": [
|
|
36292
|
+
"ok",
|
|
36293
|
+
"code",
|
|
36294
|
+
"expires_at",
|
|
36295
|
+
"api_base"
|
|
36296
|
+
]
|
|
36297
|
+
},
|
|
36149
36298
|
"PostAutonomyBuildersBuilderIdPauseRequest": {
|
|
36150
36299
|
"type": "object",
|
|
36151
36300
|
"properties": {
|
|
@@ -42907,9 +43056,9 @@
|
|
|
42907
43056
|
"description": "A required dependency/feature is not configured or is temporarily down."
|
|
42908
43057
|
}
|
|
42909
43058
|
},
|
|
42910
|
-
"x-endpoint-count":
|
|
42911
|
-
"x-schema-count":
|
|
43059
|
+
"x-endpoint-count": 686,
|
|
43060
|
+
"x-schema-count": 723,
|
|
42912
43061
|
"x-undocumented-bodies": 12,
|
|
42913
|
-
"x-response-schemas":
|
|
43062
|
+
"x-response-schemas": 459,
|
|
42914
43063
|
"x-generated-by": "scripts/bongos/gen-api-docs.js"
|
|
42915
43064
|
}
|
package/docs/api-reference.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Bongos API reference
|
|
4
4
|
|
|
5
|
-
> **Generated from the live route files** — the route file is authoritative.
|
|
5
|
+
> **Generated from the live route files** — the route file is authoritative. 686 endpoints across 117 route files.
|
|
6
6
|
> Machine-readable spec: [`docs/api/openapi.json`](api/openapi.json) (OpenAPI 3.1). Rendered docs site: **`/docs`** (e.g. `cloudbongos.com/docs`).
|
|
7
7
|
|
|
8
8
|
Base path: `/api/bongos`. Ranks (enforced server-side, [ADR 0016](adr/0016-trust-boundary-server-enforced-permissions.md)): `public` < `any-builder` < `metic+archon` < `archon`.
|
|
@@ -78,7 +78,7 @@ Base path: `/api/bongos`. Ranks (enforced server-side, [ADR 0016](adr/0016-trust
|
|
|
78
78
|
|---|---|---|---|---|
|
|
79
79
|
| GET | `/api/bongos/audit-log` | `metic+archon` | — | GET /api/bongos/audit-log?limit=&offset=&builder_id=&method= Paginated, newest-first. |
|
|
80
80
|
|
|
81
|
-
## `auth` (
|
|
81
|
+
## `auth` (23)
|
|
82
82
|
|
|
83
83
|
| Method | Path | Rank | Body | Description |
|
|
84
84
|
|---|---|---|---|---|
|
|
@@ -98,6 +98,8 @@ Base path: `/api/bongos`. Ranks (enforced server-side, [ADR 0016](adr/0016-trust
|
|
|
98
98
|
| POST | `/api/bongos/auth/logout` | `any-builder` | — | own session, no rank gate (a Xenos can log themselves out). |
|
|
99
99
|
| POST | `/api/bongos/auth/revoke` | `archon` | `session_id` | POST /auth/revoke — V3.R38 / task 259. |
|
|
100
100
|
| POST | `/api/bongos/auth/revoke-all` | `archon` | `builder_id` | POST /auth/revoke-all — V3.R38 / task 259. |
|
|
101
|
+
| POST | `/api/bongos/auth/runner-code/exchange` | `public` | `code` | POST /auth/runner-code/exchange — task 1004547. |
|
|
102
|
+
| POST | `/api/bongos/auth/runner-code/issue` | `metic+archon` | `label` | POST /auth/runner-code/issue — task 1004547 (goal 1000139). |
|
|
101
103
|
| GET | `/api/bongos/auth/web/admission-status` | `public` | — | GET /auth/web/admission-status?login=X — the probe renderAccessPendingPage polls (task 1002097). |
|
|
102
104
|
| GET | `/api/bongos/auth/web/callback` | `public` | — | OAuth callback; the state cookie + code are the bearer. |
|
|
103
105
|
| GET | `/api/bongos/auth/web/callback/link` | `public` | — | the OAuth callback for linking; the state cookie + code are the bearer, and the live session cookie names the person (no session: <redacted> |
|