@bongos/core 1.19.1060 → 1.19.1061
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 +40 -25
- 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 +6 -0
- package/clients/bongos-client/index.mjs +4 -0
- package/docs/api/openapi.json +162 -3
- package/docs/api-reference.md +4 -2
- package/docs/module-api-changelog.md +2 -0
- package/modules/copy-desk/pages.js +200 -0
- package/modules/copy-desk/routes/copy-desk.js +308 -0
- package/modules/copy-desk/tests/copy_no_cms.mjs +36 -1
- package/modules/copy-desk/tests/copy_page_draft.mjs +202 -0
- package/modules/lifecycle/lifecycle.js +8 -0
- package/modules/lifecycle/page-tweak-reads.js +11 -2
- package/modules/lifecycle/page-tweak-write.js +192 -0
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/release-notes.json +6 -0
- package/src/module-api.js +1 -1
- package/tests/copy_desk_page_submit.mjs +289 -0
- package/tests/fixtures/page-ledger.mjs +33 -2
package/.bongos-core.json
CHANGED
|
@@ -2,22 +2,22 @@
|
|
|
2
2
|
"artifact": "bongos-core",
|
|
3
3
|
"manifest_schema": 1,
|
|
4
4
|
"generator": "scripts/gds/package-core.js",
|
|
5
|
-
"core_version": "1.19.
|
|
6
|
-
"core_contract": "1.19.
|
|
7
|
-
"source_commit": "
|
|
5
|
+
"core_version": "1.19.1061",
|
|
6
|
+
"core_contract": "1.19.1061",
|
|
7
|
+
"source_commit": "1cc2c2cdca684d17445332667885541d1bd1abbc",
|
|
8
8
|
"source_ref": "HEAD",
|
|
9
|
-
"built_at": "2026-09-
|
|
9
|
+
"built_at": "2026-09-28T12:38:11.098Z",
|
|
10
10
|
"redaction": {
|
|
11
11
|
"model": "docs-redacted+functional-verbatim",
|
|
12
12
|
"docs_redacted": 543,
|
|
13
13
|
"agent_docs_stubbed": 26,
|
|
14
|
-
"functional_verbatim":
|
|
14
|
+
"functional_verbatim": 2531,
|
|
15
15
|
"rules": 3,
|
|
16
16
|
"gate_literals": 3,
|
|
17
17
|
"gate": "passed"
|
|
18
18
|
},
|
|
19
|
-
"file_count":
|
|
20
|
-
"tree_sha256": "
|
|
19
|
+
"file_count": 3101,
|
|
20
|
+
"tree_sha256": "22d7d908ffbc96ccc7866b4212aabb6062dfb4b6ffa915ddaa0153125d8aa4dd",
|
|
21
21
|
"files": [
|
|
22
22
|
{
|
|
23
23
|
"path": ".claude/skills/ask-for-help/SKILL.md",
|
|
@@ -317,12 +317,12 @@
|
|
|
317
317
|
{
|
|
318
318
|
"path": "clients/bongos-client/README.md",
|
|
319
319
|
"mode": "0000644",
|
|
320
|
-
"sha256": "
|
|
320
|
+
"sha256": "a430ee71b5a2698346d4917245863dfc847cd31091dfa5de9a01ef7d21abd1f7"
|
|
321
321
|
},
|
|
322
322
|
{
|
|
323
323
|
"path": "clients/bongos-client/bongos-client.global.js",
|
|
324
324
|
"mode": "0000644",
|
|
325
|
-
"sha256": "
|
|
325
|
+
"sha256": "86d62d8e000364d5c05ef0eced49f1fa165c923dc7892fe82d918c21864de616"
|
|
326
326
|
},
|
|
327
327
|
{
|
|
328
328
|
"path": "clients/bongos-client/examples/hello-world.mjs",
|
|
@@ -332,17 +332,17 @@
|
|
|
332
332
|
{
|
|
333
333
|
"path": "clients/bongos-client/index.cjs",
|
|
334
334
|
"mode": "0000644",
|
|
335
|
-
"sha256": "
|
|
335
|
+
"sha256": "e0e84783a89af88a81251931ae7702e0c0302001446bf5b33d7de30bd4c9e264"
|
|
336
336
|
},
|
|
337
337
|
{
|
|
338
338
|
"path": "clients/bongos-client/index.d.ts",
|
|
339
339
|
"mode": "0000644",
|
|
340
|
-
"sha256": "
|
|
340
|
+
"sha256": "9fdc897116e58b93d39b940c5ae20108825bc88d67dad1de11d980f943a021c0"
|
|
341
341
|
},
|
|
342
342
|
{
|
|
343
343
|
"path": "clients/bongos-client/index.mjs",
|
|
344
344
|
"mode": "0000644",
|
|
345
|
-
"sha256": "
|
|
345
|
+
"sha256": "102dae082b630a9d2613d1f5dab5b128748a005304f066ce3f36f8ff5166aa04"
|
|
346
346
|
},
|
|
347
347
|
{
|
|
348
348
|
"path": "clients/bongos-client/package.json",
|
|
@@ -2177,12 +2177,12 @@
|
|
|
2177
2177
|
{
|
|
2178
2178
|
"path": "docs/api-reference.md",
|
|
2179
2179
|
"mode": "0000644",
|
|
2180
|
-
"sha256": "
|
|
2180
|
+
"sha256": "66487b94a7ca2646daa4fbe24159396d48fbcf10f2adc9c14b9e43fc86233b56"
|
|
2181
2181
|
},
|
|
2182
2182
|
{
|
|
2183
2183
|
"path": "docs/api/openapi.json",
|
|
2184
2184
|
"mode": "0000644",
|
|
2185
|
-
"sha256": "
|
|
2185
|
+
"sha256": "258b4baf4671e59e66464c47193f54a91d34a3a678dcc9db0955053f7f86e48b"
|
|
2186
2186
|
},
|
|
2187
2187
|
{
|
|
2188
2188
|
"path": "docs/architecture.md",
|
|
@@ -2742,7 +2742,7 @@
|
|
|
2742
2742
|
{
|
|
2743
2743
|
"path": "docs/module-api-changelog.md",
|
|
2744
2744
|
"mode": "0000644",
|
|
2745
|
-
"sha256": "
|
|
2745
|
+
"sha256": "a47ac184c604897dd657f4995f4e278303d378747164bc9540b0937eab19186e"
|
|
2746
2746
|
},
|
|
2747
2747
|
{
|
|
2748
2748
|
"path": "docs/modules-contract.md",
|
|
@@ -4142,7 +4142,7 @@
|
|
|
4142
4142
|
{
|
|
4143
4143
|
"path": "modules/copy-desk/pages.js",
|
|
4144
4144
|
"mode": "0000644",
|
|
4145
|
-
"sha256": "
|
|
4145
|
+
"sha256": "ba89a35e225a41e94e20a21e716a3d83ab15081c2f9d6f6718394c25b37ea305"
|
|
4146
4146
|
},
|
|
4147
4147
|
{
|
|
4148
4148
|
"path": "modules/copy-desk/proposals.js",
|
|
@@ -4157,7 +4157,7 @@
|
|
|
4157
4157
|
{
|
|
4158
4158
|
"path": "modules/copy-desk/routes/copy-desk.js",
|
|
4159
4159
|
"mode": "0000644",
|
|
4160
|
-
"sha256": "
|
|
4160
|
+
"sha256": "92170c36251df8a1606d87dcbd057bccc167f348f39d2705872934f24411c7d7"
|
|
4161
4161
|
},
|
|
4162
4162
|
{
|
|
4163
4163
|
"path": "modules/copy-desk/tests/copy_flags.mjs",
|
|
@@ -4167,7 +4167,12 @@
|
|
|
4167
4167
|
{
|
|
4168
4168
|
"path": "modules/copy-desk/tests/copy_no_cms.mjs",
|
|
4169
4169
|
"mode": "0000644",
|
|
4170
|
-
"sha256": "
|
|
4170
|
+
"sha256": "b04b745bfc010ed86d7187c22f067bb8ecaaa24a095420a01f2b37806f283d48"
|
|
4171
|
+
},
|
|
4172
|
+
{
|
|
4173
|
+
"path": "modules/copy-desk/tests/copy_page_draft.mjs",
|
|
4174
|
+
"mode": "0000644",
|
|
4175
|
+
"sha256": "7bae773b6f8e3c4d5dced4d689237f59d421fc34f9d6c809d50e81f610e9eafb"
|
|
4171
4176
|
},
|
|
4172
4177
|
{
|
|
4173
4178
|
"path": "modules/copy-desk/tests/copy_page_next.mjs",
|
|
@@ -6132,7 +6137,7 @@
|
|
|
6132
6137
|
{
|
|
6133
6138
|
"path": "modules/lifecycle/lifecycle.js",
|
|
6134
6139
|
"mode": "0000644",
|
|
6135
|
-
"sha256": "
|
|
6140
|
+
"sha256": "8ed95b63975ec4aceb34ddeb31fa147194b38c26242530c83a5ed144214b5150"
|
|
6136
6141
|
},
|
|
6137
6142
|
{
|
|
6138
6143
|
"path": "modules/lifecycle/merge-lock.js",
|
|
@@ -6217,7 +6222,12 @@
|
|
|
6217
6222
|
{
|
|
6218
6223
|
"path": "modules/lifecycle/page-tweak-reads.js",
|
|
6219
6224
|
"mode": "0000644",
|
|
6220
|
-
"sha256": "
|
|
6225
|
+
"sha256": "016329bc9dadda1e1b1dce86aa02aa7c7f259cc56708ca12030ea601ea63e7a0"
|
|
6226
|
+
},
|
|
6227
|
+
{
|
|
6228
|
+
"path": "modules/lifecycle/page-tweak-write.js",
|
|
6229
|
+
"mode": "0000644",
|
|
6230
|
+
"sha256": "a13c01e96c5ae09837b9d599a66b23765f6d6f16cc29b11ca897da4f497d0b0d"
|
|
6221
6231
|
},
|
|
6222
6232
|
{
|
|
6223
6233
|
"path": "modules/lifecycle/pg-constraint-fail.js",
|
|
@@ -8522,12 +8532,12 @@
|
|
|
8522
8532
|
{
|
|
8523
8533
|
"path": "package-lock.json",
|
|
8524
8534
|
"mode": "0000644",
|
|
8525
|
-
"sha256": "
|
|
8535
|
+
"sha256": "dd4068cbb235742769c4bda2d8d49dd955c266e5986844fc471ef12416166730"
|
|
8526
8536
|
},
|
|
8527
8537
|
{
|
|
8528
8538
|
"path": "package.json",
|
|
8529
8539
|
"mode": "0000644",
|
|
8530
|
-
"sha256": "
|
|
8540
|
+
"sha256": "c3abc1f3e3b321375820e92c627d7f7aeb13a87259f0783aea211386c68d8267"
|
|
8531
8541
|
},
|
|
8532
8542
|
{
|
|
8533
8543
|
"path": "public-docs/index.html",
|
|
@@ -8547,7 +8557,7 @@
|
|
|
8547
8557
|
{
|
|
8548
8558
|
"path": "release-notes.json",
|
|
8549
8559
|
"mode": "0000644",
|
|
8550
|
-
"sha256": "
|
|
8560
|
+
"sha256": "d77397164aba5ff244fe0ddbcd9a4d7e8e327b357a37e6cb48bdfbe1bbbba7a6"
|
|
8551
8561
|
},
|
|
8552
8562
|
{
|
|
8553
8563
|
"path": "scripts/bongos-mcp.js",
|
|
@@ -10632,7 +10642,7 @@
|
|
|
10632
10642
|
{
|
|
10633
10643
|
"path": "src/module-api.js",
|
|
10634
10644
|
"mode": "0000644",
|
|
10635
|
-
"sha256": "
|
|
10645
|
+
"sha256": "56850953ea4d6876e68096995c35e9b9eaa1b44f092715c4aba8677e89c889d3"
|
|
10636
10646
|
},
|
|
10637
10647
|
{
|
|
10638
10648
|
"path": "src/module-loader/catalog.js",
|
|
@@ -11599,6 +11609,11 @@
|
|
|
11599
11609
|
"mode": "0000644",
|
|
11600
11610
|
"sha256": "29c591eb22b17fb86a3bff894d362f1372e41d1d0e06e3751f36da90184a425a"
|
|
11601
11611
|
},
|
|
11612
|
+
{
|
|
11613
|
+
"path": "tests/copy_desk_page_submit.mjs",
|
|
11614
|
+
"mode": "0000644",
|
|
11615
|
+
"sha256": "c77d8c60449bad805d048ec78e43169b5ec87283a3f91e29edba9e88352f4c51"
|
|
11616
|
+
},
|
|
11602
11617
|
{
|
|
11603
11618
|
"path": "tests/copy_inventory.mjs",
|
|
11604
11619
|
"mode": "0000644",
|
|
@@ -12082,7 +12097,7 @@
|
|
|
12082
12097
|
{
|
|
12083
12098
|
"path": "tests/fixtures/page-ledger.mjs",
|
|
12084
12099
|
"mode": "0000644",
|
|
12085
|
-
"sha256": "
|
|
12100
|
+
"sha256": "9087b5a76ddc3d11e5b7a8bf23ac56c824e763e63d302ac457d9515707f0c7a5"
|
|
12086
12101
|
},
|
|
12087
12102
|
{
|
|
12088
12103
|
"path": "tests/fixtures/session-506-digest.json",
|
|
@@ -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
|
+
- 451 operations across 68 resource groups
|
|
9
9
|
|
|
10
10
|
## Use it from your project
|
|
11
11
|
|
|
@@ -353,6 +353,10 @@ function createClient(opts = {}) {
|
|
|
353
353
|
postCopyDeskPagesPageIdAsks: (args) => request("POST", "/copy-desk/pages/{pageId}/asks", { hasBody: true }, args),
|
|
354
354
|
// POST /copy-desk/pages/{pageId}/claim — rank: any-builder — POST /copy-desk/pages/:pageId/claim
|
|
355
355
|
postCopyDeskPagesPageIdClaim: (args) => request("POST", "/copy-desk/pages/{pageId}/claim", { hasBody: true }, args),
|
|
356
|
+
// PUT /copy-desk/pages/{pageId}/draft — rank: any-builder — PUT /copy-desk/pages/:pageId/draft
|
|
357
|
+
putCopyDeskPagesPageIdDraft: (args) => request("PUT", "/copy-desk/pages/{pageId}/draft", { hasBody: true }, args),
|
|
358
|
+
// POST /copy-desk/pages/{pageId}/submit — rank: any-builder — POST /copy-desk/pages/:pageId/submit
|
|
359
|
+
postCopyDeskPagesPageIdSubmit: (args) => request("POST", "/copy-desk/pages/{pageId}/submit", { hasBody: true }, args),
|
|
356
360
|
// POST /copy-desk/proposals — rank: any-builder — POST /copy-desk/proposals
|
|
357
361
|
postCopyDeskProposals: (args) => request("POST", "/copy-desk/proposals", { hasBody: true }, args),
|
|
358
362
|
// GET /copy-desk/queue — rank: any-builder — GET /copy-desk/queue
|
|
@@ -352,6 +352,10 @@ function createClient(opts = {}) {
|
|
|
352
352
|
postCopyDeskPagesPageIdAsks: (args) => request("POST", "/copy-desk/pages/{pageId}/asks", { hasBody: true }, args),
|
|
353
353
|
// POST /copy-desk/pages/{pageId}/claim — rank: any-builder — POST /copy-desk/pages/:pageId/claim
|
|
354
354
|
postCopyDeskPagesPageIdClaim: (args) => request("POST", "/copy-desk/pages/{pageId}/claim", { hasBody: true }, args),
|
|
355
|
+
// PUT /copy-desk/pages/{pageId}/draft — rank: any-builder — PUT /copy-desk/pages/:pageId/draft
|
|
356
|
+
putCopyDeskPagesPageIdDraft: (args) => request("PUT", "/copy-desk/pages/{pageId}/draft", { hasBody: true }, args),
|
|
357
|
+
// POST /copy-desk/pages/{pageId}/submit — rank: any-builder — POST /copy-desk/pages/:pageId/submit
|
|
358
|
+
postCopyDeskPagesPageIdSubmit: (args) => request("POST", "/copy-desk/pages/{pageId}/submit", { hasBody: true }, args),
|
|
355
359
|
// POST /copy-desk/proposals — rank: any-builder — POST /copy-desk/proposals
|
|
356
360
|
postCopyDeskProposals: (args) => request("POST", "/copy-desk/proposals", { hasBody: true }, args),
|
|
357
361
|
// GET /copy-desk/queue — rank: any-builder — GET /copy-desk/queue
|
|
@@ -481,6 +481,8 @@ export interface PostVersionsIdDoneWhenRequest { criterion_id: string; criterion
|
|
|
481
481
|
export interface PostVersionsIdDoneWhenResponse { ok: boolean; criterion: unknown }
|
|
482
482
|
export interface PostVersionsRequest { id: string; name: string; status?: string; done_when?: string; scope_doc_path?: string; criteria?: unknown[]; first_goal?: Record<string, unknown> }
|
|
483
483
|
export interface PostVersionsResponse { version: unknown; goal: unknown; criteria: unknown }
|
|
484
|
+
export interface PutCopyDeskPagesPageIdDraftRequest { reading_hash: string; lines: unknown[] }
|
|
485
|
+
export interface PutCopyDeskPagesPageIdDraftResponse { ok: boolean; outcome: unknown; page_id: unknown; round: unknown; draft: unknown; counter: unknown }
|
|
484
486
|
export interface PutGovernmentRanksRankKeyPermissionsPermissionKeyResponse { ok: boolean; rank_key: unknown; permission_key: unknown; granted: unknown }
|
|
485
487
|
export interface PutMingleOptInRequest { opted_in: boolean }
|
|
486
488
|
export interface PutMingleOptInResponse { opted_in: unknown; updated_at: unknown }
|
|
@@ -770,6 +772,10 @@ export interface BongosClient {
|
|
|
770
772
|
postCopyDeskPagesPageIdAsks(args: RequestArgs & { body: PostCopyDeskPagesPageIdAsksRequest }): Promise<ApiResponse>;
|
|
771
773
|
/** POST /copy-desk/pages/{pageId}/claim — rank: any-builder */
|
|
772
774
|
postCopyDeskPagesPageIdClaim(args?: RequestArgs): Promise<ApiResponse>;
|
|
775
|
+
/** PUT /copy-desk/pages/{pageId}/draft — rank: any-builder */
|
|
776
|
+
putCopyDeskPagesPageIdDraft(args: RequestArgs & { body: PutCopyDeskPagesPageIdDraftRequest }): Promise<PutCopyDeskPagesPageIdDraftResponse>;
|
|
777
|
+
/** POST /copy-desk/pages/{pageId}/submit — rank: any-builder */
|
|
778
|
+
postCopyDeskPagesPageIdSubmit(args?: RequestArgs): Promise<ApiResponse>;
|
|
773
779
|
/** POST /copy-desk/proposals — rank: any-builder */
|
|
774
780
|
postCopyDeskProposals(args: RequestArgs & { body: PostCopyDeskProposalsRequest }): Promise<PostCopyDeskProposalsResponse>;
|
|
775
781
|
/** GET /copy-desk/queue — rank: any-builder */
|
|
@@ -349,6 +349,10 @@ export function createClient(opts = {}) {
|
|
|
349
349
|
postCopyDeskPagesPageIdAsks: (args) => request("POST", "/copy-desk/pages/{pageId}/asks", { hasBody: true }, args),
|
|
350
350
|
// POST /copy-desk/pages/{pageId}/claim — rank: any-builder — POST /copy-desk/pages/:pageId/claim
|
|
351
351
|
postCopyDeskPagesPageIdClaim: (args) => request("POST", "/copy-desk/pages/{pageId}/claim", { hasBody: true }, args),
|
|
352
|
+
// PUT /copy-desk/pages/{pageId}/draft — rank: any-builder — PUT /copy-desk/pages/:pageId/draft
|
|
353
|
+
putCopyDeskPagesPageIdDraft: (args) => request("PUT", "/copy-desk/pages/{pageId}/draft", { hasBody: true }, args),
|
|
354
|
+
// POST /copy-desk/pages/{pageId}/submit — rank: any-builder — POST /copy-desk/pages/:pageId/submit
|
|
355
|
+
postCopyDeskPagesPageIdSubmit: (args) => request("POST", "/copy-desk/pages/{pageId}/submit", { hasBody: true }, args),
|
|
352
356
|
// POST /copy-desk/proposals — rank: any-builder — POST /copy-desk/proposals
|
|
353
357
|
postCopyDeskProposals: (args) => request("POST", "/copy-desk/proposals", { hasBody: true }, args),
|
|
354
358
|
// GET /copy-desk/queue — rank: any-builder — GET /copy-desk/queue
|
package/docs/api/openapi.json
CHANGED
|
@@ -5311,6 +5311,126 @@
|
|
|
5311
5311
|
]
|
|
5312
5312
|
}
|
|
5313
5313
|
},
|
|
5314
|
+
"/copy-desk/pages/{pageId}/draft": {
|
|
5315
|
+
"put": {
|
|
5316
|
+
"operationId": "put_copy_desk_pages_pageId_draft",
|
|
5317
|
+
"tags": [
|
|
5318
|
+
"copy-desk"
|
|
5319
|
+
],
|
|
5320
|
+
"summary": "PUT /copy-desk/pages/:pageId/draft",
|
|
5321
|
+
"description": "------------------------------------------------------------------------- PUT /copy-desk/pages/:pageId/draft — autosave the artist's draft (task 1004319 / BV2.TW08, ADR 0341 D4). Body: { reading_hash, lines: [{ key, after }] }, the WHOLE draft: every line the artist has changed. The saved draft becomes exactly that (a line sent back at its current text is dropped, so only changed lines are stored). rank: any signed-in builder; only the HOLDER of the page's writing claim (the web claim the page claim took) may save, checked in the lifecycle transaction. Every target is resolved from the page reading by key: section, current text (`before`) and placement are the reading's, never the body's. A body built on an older reading is refused `reading_moved`, whole, since its keys may now mean other lines. Cheap and idempotent: a save that resolves to the draft already stored writes nothing (200 `unchanged`; `updated_at` does not move). The editor debounces; the server only has to make a repeated save free. 200 saved | unchanged with the draft and \"N of M rewritten\" 409 page_not_held the caller does not hold the page (holder named) 409 no_open_round the page has no round: claim it first 409 reading_moved · 400 unknown_line / line_empty / line_too_long -------------------------------------------------------------------------\n\n**Rank:** `any-builder` — Any authenticated builder (row-level ownership enforced in-handler).",
|
|
5322
|
+
"x-rank": "any-builder",
|
|
5323
|
+
"x-source": "modules/copy-desk/routes/copy-desk.js",
|
|
5324
|
+
"parameters": [
|
|
5325
|
+
{
|
|
5326
|
+
"name": "pageId",
|
|
5327
|
+
"in": "path",
|
|
5328
|
+
"required": true,
|
|
5329
|
+
"schema": {
|
|
5330
|
+
"type": "string"
|
|
5331
|
+
},
|
|
5332
|
+
"description": "Path parameter `pageId`."
|
|
5333
|
+
}
|
|
5334
|
+
],
|
|
5335
|
+
"requestBody": {
|
|
5336
|
+
"required": true,
|
|
5337
|
+
"content": {
|
|
5338
|
+
"application/json": {
|
|
5339
|
+
"schema": {
|
|
5340
|
+
"$ref": "#/components/schemas/PutCopyDeskPagesPageIdDraftRequest"
|
|
5341
|
+
}
|
|
5342
|
+
}
|
|
5343
|
+
},
|
|
5344
|
+
"x-validated": true
|
|
5345
|
+
},
|
|
5346
|
+
"responses": {
|
|
5347
|
+
"200": {
|
|
5348
|
+
"description": "Success.",
|
|
5349
|
+
"content": {
|
|
5350
|
+
"application/json": {
|
|
5351
|
+
"schema": {
|
|
5352
|
+
"$ref": "#/components/schemas/PutCopyDeskPagesPageIdDraftResponse"
|
|
5353
|
+
}
|
|
5354
|
+
}
|
|
5355
|
+
}
|
|
5356
|
+
},
|
|
5357
|
+
"400": {
|
|
5358
|
+
"$ref": "#/components/responses/ValidationFailed"
|
|
5359
|
+
},
|
|
5360
|
+
"401": {
|
|
5361
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
5362
|
+
},
|
|
5363
|
+
"403": {
|
|
5364
|
+
"$ref": "#/components/responses/Forbidden"
|
|
5365
|
+
},
|
|
5366
|
+
"404": {
|
|
5367
|
+
"$ref": "#/components/responses/NotFound"
|
|
5368
|
+
}
|
|
5369
|
+
},
|
|
5370
|
+
"security": [
|
|
5371
|
+
{
|
|
5372
|
+
"builderSession": []
|
|
5373
|
+
}
|
|
5374
|
+
]
|
|
5375
|
+
}
|
|
5376
|
+
},
|
|
5377
|
+
"/copy-desk/pages/{pageId}/submit": {
|
|
5378
|
+
"post": {
|
|
5379
|
+
"operationId": "post_copy_desk_pages_pageId_submit",
|
|
5380
|
+
"tags": [
|
|
5381
|
+
"copy-desk"
|
|
5382
|
+
],
|
|
5383
|
+
"summary": "POST /copy-desk/pages/:pageId/submit",
|
|
5384
|
+
"description": "------------------------------------------------------------------------- POST /copy-desk/pages/:pageId/submit — freeze the draft and queue the page for /tweak (task 1004319 / BV2.TW08, ADR 0341 D4, D7). Body: {} (it freezes the draft already on the task; nothing is taken from the request). rank: any signed-in builder; the holder only. One lifecycle transaction: * every draft line is re-resolved on the CURRENT page reading; a line the page no longer shows is refused by name (target_gone), as are an ambiguous one and a {…} hole added or dropped. Any refusal refuses the submit, listing the lines, and nothing is frozen; * a rewrite of an UNPLACED line (and of shared shell text with no registry row) leaves the batch and files its own engineer task (source page-tweak-unplaced, backlog), carrying the page, the line and the wording. The page does not wait for it; * the rest is frozen into the `page-tweak` block with each line's file, line and string id from the reading, naming the engineer tasks; * the artist's web claim is released and the task goes back to `ready`: the round reads `submitted`, the /tweak queue. 200 submitted with the batch, the engineer tasks, and where \"next up\" reads (GET /copy-desk/next) 200 already_submitted a repeated submit by the round's artist 409 lines_refused · nothing_to_submit · page_not_held · no_open_round -------------------------------------------------------------------------\n\n**Rank:** `any-builder` — Any authenticated builder (row-level ownership enforced in-handler).",
|
|
5385
|
+
"x-rank": "any-builder",
|
|
5386
|
+
"x-source": "modules/copy-desk/routes/copy-desk.js",
|
|
5387
|
+
"parameters": [
|
|
5388
|
+
{
|
|
5389
|
+
"name": "pageId",
|
|
5390
|
+
"in": "path",
|
|
5391
|
+
"required": true,
|
|
5392
|
+
"schema": {
|
|
5393
|
+
"type": "string"
|
|
5394
|
+
},
|
|
5395
|
+
"description": "Path parameter `pageId`."
|
|
5396
|
+
}
|
|
5397
|
+
],
|
|
5398
|
+
"requestBody": {
|
|
5399
|
+
"required": false,
|
|
5400
|
+
"content": {
|
|
5401
|
+
"application/json": {
|
|
5402
|
+
"schema": {
|
|
5403
|
+
"type": "object",
|
|
5404
|
+
"additionalProperties": true
|
|
5405
|
+
}
|
|
5406
|
+
}
|
|
5407
|
+
},
|
|
5408
|
+
"x-validated": true
|
|
5409
|
+
},
|
|
5410
|
+
"responses": {
|
|
5411
|
+
"200": {
|
|
5412
|
+
"description": "Success."
|
|
5413
|
+
},
|
|
5414
|
+
"400": {
|
|
5415
|
+
"$ref": "#/components/responses/ValidationFailed"
|
|
5416
|
+
},
|
|
5417
|
+
"401": {
|
|
5418
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
5419
|
+
},
|
|
5420
|
+
"403": {
|
|
5421
|
+
"$ref": "#/components/responses/Forbidden"
|
|
5422
|
+
},
|
|
5423
|
+
"404": {
|
|
5424
|
+
"$ref": "#/components/responses/NotFound"
|
|
5425
|
+
}
|
|
5426
|
+
},
|
|
5427
|
+
"security": [
|
|
5428
|
+
{
|
|
5429
|
+
"builderSession": []
|
|
5430
|
+
}
|
|
5431
|
+
]
|
|
5432
|
+
}
|
|
5433
|
+
},
|
|
5314
5434
|
"/copy-desk/proposals": {
|
|
5315
5435
|
"post": {
|
|
5316
5436
|
"operationId": "post_copy_desk_proposals",
|
|
@@ -28182,6 +28302,45 @@
|
|
|
28182
28302
|
"criteria"
|
|
28183
28303
|
]
|
|
28184
28304
|
},
|
|
28305
|
+
"PutCopyDeskPagesPageIdDraftRequest": {
|
|
28306
|
+
"type": "object",
|
|
28307
|
+
"properties": {
|
|
28308
|
+
"reading_hash": {
|
|
28309
|
+
"type": "string",
|
|
28310
|
+
"minLength": 1,
|
|
28311
|
+
"maxLength": 64
|
|
28312
|
+
},
|
|
28313
|
+
"lines": {
|
|
28314
|
+
"type": "array"
|
|
28315
|
+
}
|
|
28316
|
+
},
|
|
28317
|
+
"required": [
|
|
28318
|
+
"reading_hash",
|
|
28319
|
+
"lines"
|
|
28320
|
+
],
|
|
28321
|
+
"additionalProperties": false
|
|
28322
|
+
},
|
|
28323
|
+
"PutCopyDeskPagesPageIdDraftResponse": {
|
|
28324
|
+
"type": "object",
|
|
28325
|
+
"properties": {
|
|
28326
|
+
"ok": {
|
|
28327
|
+
"type": "boolean"
|
|
28328
|
+
},
|
|
28329
|
+
"outcome": {},
|
|
28330
|
+
"page_id": {},
|
|
28331
|
+
"round": {},
|
|
28332
|
+
"draft": {},
|
|
28333
|
+
"counter": {}
|
|
28334
|
+
},
|
|
28335
|
+
"required": [
|
|
28336
|
+
"ok",
|
|
28337
|
+
"outcome",
|
|
28338
|
+
"page_id",
|
|
28339
|
+
"round",
|
|
28340
|
+
"draft",
|
|
28341
|
+
"counter"
|
|
28342
|
+
]
|
|
28343
|
+
},
|
|
28185
28344
|
"PutGovernmentRanksRankKeyPermissionsPermissionKeyResponse": {
|
|
28186
28345
|
"type": "object",
|
|
28187
28346
|
"properties": {
|
|
@@ -28385,9 +28544,9 @@
|
|
|
28385
28544
|
"description": "A required dependency/feature is not configured or is temporarily down."
|
|
28386
28545
|
}
|
|
28387
28546
|
},
|
|
28388
|
-
"x-endpoint-count":
|
|
28389
|
-
"x-schema-count":
|
|
28547
|
+
"x-endpoint-count": 451,
|
|
28548
|
+
"x-schema-count": 486,
|
|
28390
28549
|
"x-undocumented-bodies": 9,
|
|
28391
|
-
"x-response-schemas":
|
|
28550
|
+
"x-response-schemas": 332,
|
|
28392
28551
|
"x-generated-by": "scripts/gds/gen-api-docs.js"
|
|
28393
28552
|
}
|
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. 451 endpoints across 76 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`.
|
|
@@ -210,7 +210,7 @@ Base path: `/api/bongos`. Ranks (enforced server-side, [ADR 0016](adr/0016-trust
|
|
|
210
210
|
| GET | `/api/bongos/connections/requests` | `any-builder` | — | MY pending requests, both directions (own data). |
|
|
211
211
|
| GET | `/api/bongos/connections/suggestions` | `any-builder` | — | "builders you may know" (R21, task 1002297; ADR 0202 D5). |
|
|
212
212
|
|
|
213
|
-
## `copy-desk` (
|
|
213
|
+
## `copy-desk` (13)
|
|
214
214
|
|
|
215
215
|
| Method | Path | Rank | Body | Description |
|
|
216
216
|
|---|---|---|---|---|
|
|
@@ -221,6 +221,8 @@ Base path: `/api/bongos`. Ranks (enforced server-side, [ADR 0016](adr/0016-trust
|
|
|
221
221
|
| GET | `/api/bongos/copy-desk/pages/:pageId` | `any-builder` | — | ------------------------------------------------------------------------- GET /copy-desk/pages/:pageId — one page: status, changelog, the… |
|
|
222
222
|
| POST | `/api/bongos/copy-desk/pages/:pageId/asks` | `any-builder` | `reason` | ------------------------------------------------------------------------- POST /copy-desk/pages/:pageId/asks — ask for a page (task 10043… |
|
|
223
223
|
| POST | `/api/bongos/copy-desk/pages/:pageId/claim` | `any-builder` | validated | ------------------------------------------------------------------------- POST /copy-desk/pages/:pageId/claim — claim a page's tweak (tas… |
|
|
224
|
+
| PUT | `/api/bongos/copy-desk/pages/:pageId/draft` | `any-builder` | `reading_hash`, `lines` | ------------------------------------------------------------------------- PUT /copy-desk/pages/:pageId/draft — autosave the artist's draf… |
|
|
225
|
+
| POST | `/api/bongos/copy-desk/pages/:pageId/submit` | `any-builder` | validated | ------------------------------------------------------------------------- POST /copy-desk/pages/:pageId/submit — freeze the draft and que… |
|
|
224
226
|
| POST | `/api/bongos/copy-desk/proposals` | `any-builder` | `string_id`, `proposed_text`, `why`, `file`, `line`, `flag_id` | ------------------------------------------------------------------------- POST /copy-desk/proposals — an artist proposes new wording, and… |
|
|
225
227
|
| GET | `/api/bongos/copy-desk/queue` | `any-builder` | — | ------------------------------------------------------------------------- GET /copy-desk/queue — the artist's working list. |
|
|
226
228
|
| GET | `/api/bongos/copy-desk/strings` | `any-builder` | — | ------------------------------------------------------------------------- GET /copy-desk/strings — search the inventory, to find somethin… |
|
|
@@ -2607,5 +2607,7 @@ is load-bearing: the script throws rather than guess if it is missing, and
|
|
|
2607
2607
|
landed since 1.19.1058 with no explicit bump. run 36415558760. (task 1002620)
|
|
2608
2608
|
1.19.1060 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
|
|
2609
2609
|
landed since 1.19.1059 with no explicit bump. run 36418832327. (task 1002620)
|
|
2610
|
+
1.19.1061 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
|
|
2611
|
+
landed since 1.19.1060 with no explicit bump. run 36423029975. (task 1002620)
|
|
2610
2612
|
---------------------------------------------------------------------------
|
|
2611
2613
|
```
|