@bongos/core 1.19.1061 → 1.19.1062
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 +44 -24
- 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 +5 -0
- package/clients/bongos-client/index.mjs +4 -0
- package/docs/api/openapi.json +135 -4
- package/docs/api-reference.md +5 -3
- package/docs/module-api-changelog.md +2 -0
- package/modules/copy-desk/docx.js +818 -0
- package/modules/copy-desk/pages.js +16 -0
- package/modules/copy-desk/routes/copy-desk.js +168 -9
- package/modules/copy-desk/tests/copy_docx.mjs +347 -0
- package/modules/copy-desk/tests/copy_no_cms.mjs +32 -3
- package/modules/copy-desk/tests/fixtures/word-docx.mjs +131 -0
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/release-notes.json +6 -0
- package/scripts/gds/fitness-checks-write-validation.js +4 -0
- package/src/module-api.js +1 -1
- package/tests/copy_desk_page_docx.mjs +279 -0
- package/tests/fitness.mjs +7 -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.1062",
|
|
6
|
+
"core_contract": "1.19.1062",
|
|
7
|
+
"source_commit": "50e8dd0c7f634e2a9b63dd35707e1a0e6bb9e224",
|
|
8
8
|
"source_ref": "HEAD",
|
|
9
|
-
"built_at": "2026-09-
|
|
9
|
+
"built_at": "2026-09-28T13:24:10.829Z",
|
|
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": 2535,
|
|
15
15
|
"rules": 3,
|
|
16
16
|
"gate_literals": 3,
|
|
17
17
|
"gate": "passed"
|
|
18
18
|
},
|
|
19
|
-
"file_count":
|
|
20
|
-
"tree_sha256": "
|
|
19
|
+
"file_count": 3105,
|
|
20
|
+
"tree_sha256": "6fb489b83e1cdeaf974f95a1adfb0bd25dd83ade9748de12f98b9bf3d9d95baa",
|
|
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": "9459ee392b1a2db1a960411c0a41be2f9421cc398392a311cdedb57df41310c4"
|
|
321
321
|
},
|
|
322
322
|
{
|
|
323
323
|
"path": "clients/bongos-client/bongos-client.global.js",
|
|
324
324
|
"mode": "0000644",
|
|
325
|
-
"sha256": "
|
|
325
|
+
"sha256": "6aaec85ca6a98a25d863b37da5785e3232cb42775a759de992cf2eb0759bc968"
|
|
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": "6c46904bcf4ae17449d693b18166ed600b922a4de7198baccbdc8c96f622619a"
|
|
336
336
|
},
|
|
337
337
|
{
|
|
338
338
|
"path": "clients/bongos-client/index.d.ts",
|
|
339
339
|
"mode": "0000644",
|
|
340
|
-
"sha256": "
|
|
340
|
+
"sha256": "ddfd0be094fb577bc4ec56a698a7b2745d3f9aa8b88537a8726f730a853895c7"
|
|
341
341
|
},
|
|
342
342
|
{
|
|
343
343
|
"path": "clients/bongos-client/index.mjs",
|
|
344
344
|
"mode": "0000644",
|
|
345
|
-
"sha256": "
|
|
345
|
+
"sha256": "3126818319137ce283ceb4cc6252b3de1fdb12f9f25feaa7f20ea6b2e9ef28be"
|
|
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": "f297f09132092126cac8e6471ce3ba0cd2a1a1550d48f6f64dd0e20f1d38f806"
|
|
2181
2181
|
},
|
|
2182
2182
|
{
|
|
2183
2183
|
"path": "docs/api/openapi.json",
|
|
2184
2184
|
"mode": "0000644",
|
|
2185
|
-
"sha256": "
|
|
2185
|
+
"sha256": "c8fb1b6f7e3f67a81f5eaba74e7b0fab5439c7e52dd9a9a959f15a99791ce1ec"
|
|
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": "9acd9af3c17ae8a44161edb0b037e8fff138a4059e5d7ec2affda4b0ed12b735"
|
|
2746
2746
|
},
|
|
2747
2747
|
{
|
|
2748
2748
|
"path": "docs/modules-contract.md",
|
|
@@ -4109,6 +4109,11 @@
|
|
|
4109
4109
|
"mode": "0000644",
|
|
4110
4110
|
"sha256": "7cb9dac9cb87b679e1ae50e4112b3a7928a38ebb9902c8947a74d17bec4d9009"
|
|
4111
4111
|
},
|
|
4112
|
+
{
|
|
4113
|
+
"path": "modules/copy-desk/docx.js",
|
|
4114
|
+
"mode": "0000644",
|
|
4115
|
+
"sha256": "3c59a29bbd97016909222bb6fc09e8fe0de505fae33536acf7aae2816edfbff6"
|
|
4116
|
+
},
|
|
4112
4117
|
{
|
|
4113
4118
|
"path": "modules/copy-desk/flags.js",
|
|
4114
4119
|
"mode": "0000644",
|
|
@@ -4142,7 +4147,7 @@
|
|
|
4142
4147
|
{
|
|
4143
4148
|
"path": "modules/copy-desk/pages.js",
|
|
4144
4149
|
"mode": "0000644",
|
|
4145
|
-
"sha256": "
|
|
4150
|
+
"sha256": "7cb248a536b49794409bb74c8bed19109b842195c9fb97093250218c3a58f101"
|
|
4146
4151
|
},
|
|
4147
4152
|
{
|
|
4148
4153
|
"path": "modules/copy-desk/proposals.js",
|
|
@@ -4157,7 +4162,12 @@
|
|
|
4157
4162
|
{
|
|
4158
4163
|
"path": "modules/copy-desk/routes/copy-desk.js",
|
|
4159
4164
|
"mode": "0000644",
|
|
4160
|
-
"sha256": "
|
|
4165
|
+
"sha256": "4aaa64c6ec0cc6b63353659007cd3ed1b2daf1f0df77c8e7c98ba63217a1c719"
|
|
4166
|
+
},
|
|
4167
|
+
{
|
|
4168
|
+
"path": "modules/copy-desk/tests/copy_docx.mjs",
|
|
4169
|
+
"mode": "0000644",
|
|
4170
|
+
"sha256": "f2cc7cdd4e729f73aa832f217da1f057160a5ac6951803798effa5df6aac4c09"
|
|
4161
4171
|
},
|
|
4162
4172
|
{
|
|
4163
4173
|
"path": "modules/copy-desk/tests/copy_flags.mjs",
|
|
@@ -4167,7 +4177,7 @@
|
|
|
4167
4177
|
{
|
|
4168
4178
|
"path": "modules/copy-desk/tests/copy_no_cms.mjs",
|
|
4169
4179
|
"mode": "0000644",
|
|
4170
|
-
"sha256": "
|
|
4180
|
+
"sha256": "7d4354fea2dc435e1783cdfbcb07024b40f732d700cbaf7764a79ef2d9f53456"
|
|
4171
4181
|
},
|
|
4172
4182
|
{
|
|
4173
4183
|
"path": "modules/copy-desk/tests/copy_page_draft.mjs",
|
|
@@ -4199,6 +4209,11 @@
|
|
|
4199
4209
|
"mode": "0000644",
|
|
4200
4210
|
"sha256": "2797ec9f49688f7a1a2475777749671a248e03f40b023a0d6e4f9ee19f6a5fe1"
|
|
4201
4211
|
},
|
|
4212
|
+
{
|
|
4213
|
+
"path": "modules/copy-desk/tests/fixtures/word-docx.mjs",
|
|
4214
|
+
"mode": "0000644",
|
|
4215
|
+
"sha256": "0a4b82cf5d28898f88b41f3710870b240fa458fd19979a598d81eb2a0a1fdbc9"
|
|
4216
|
+
},
|
|
4202
4217
|
{
|
|
4203
4218
|
"path": "modules/dev-box/CLAUDE.md",
|
|
4204
4219
|
"mode": "0000644",
|
|
@@ -8532,12 +8547,12 @@
|
|
|
8532
8547
|
{
|
|
8533
8548
|
"path": "package-lock.json",
|
|
8534
8549
|
"mode": "0000644",
|
|
8535
|
-
"sha256": "
|
|
8550
|
+
"sha256": "e7d5ed448c2fa5c6fb22742c4be710109c9fbe6755dd57d6fffd286b7a194cb3"
|
|
8536
8551
|
},
|
|
8537
8552
|
{
|
|
8538
8553
|
"path": "package.json",
|
|
8539
8554
|
"mode": "0000644",
|
|
8540
|
-
"sha256": "
|
|
8555
|
+
"sha256": "ac4e84c9db583e987e75010a264f325a9ff10f4c1440aad5bfe6b22048e81688"
|
|
8541
8556
|
},
|
|
8542
8557
|
{
|
|
8543
8558
|
"path": "public-docs/index.html",
|
|
@@ -8557,7 +8572,7 @@
|
|
|
8557
8572
|
{
|
|
8558
8573
|
"path": "release-notes.json",
|
|
8559
8574
|
"mode": "0000644",
|
|
8560
|
-
"sha256": "
|
|
8575
|
+
"sha256": "5b76f8faa6dc8215c2720ca937015f3968689700b842c1bb7e103fc66f17ddc8"
|
|
8561
8576
|
},
|
|
8562
8577
|
{
|
|
8563
8578
|
"path": "scripts/bongos-mcp.js",
|
|
@@ -9112,7 +9127,7 @@
|
|
|
9112
9127
|
{
|
|
9113
9128
|
"path": "scripts/gds/fitness-checks-write-validation.js",
|
|
9114
9129
|
"mode": "0000644",
|
|
9115
|
-
"sha256": "
|
|
9130
|
+
"sha256": "907b7ad50eb89059d17af5952ef5725b5009053da76ececd23f0d7e5dcdc6980"
|
|
9116
9131
|
},
|
|
9117
9132
|
{
|
|
9118
9133
|
"path": "scripts/gds/fitness-lib.js",
|
|
@@ -10642,7 +10657,7 @@
|
|
|
10642
10657
|
{
|
|
10643
10658
|
"path": "src/module-api.js",
|
|
10644
10659
|
"mode": "0000644",
|
|
10645
|
-
"sha256": "
|
|
10660
|
+
"sha256": "5d2d121a71ed87875920963e2dd09b8116a7657e47d76429e921509089919e0c"
|
|
10646
10661
|
},
|
|
10647
10662
|
{
|
|
10648
10663
|
"path": "src/module-loader/catalog.js",
|
|
@@ -11599,6 +11614,11 @@
|
|
|
11599
11614
|
"mode": "0000644",
|
|
11600
11615
|
"sha256": "af6cdac77b90aad511a603757e12d7ffefaa7fdbcdd14aefd70ad49e3cd193fe"
|
|
11601
11616
|
},
|
|
11617
|
+
{
|
|
11618
|
+
"path": "tests/copy_desk_page_docx.mjs",
|
|
11619
|
+
"mode": "0000644",
|
|
11620
|
+
"sha256": "e25485728f161b8610f57db11b387f5f7807afb41d0badd2f7a32776eaf97283"
|
|
11621
|
+
},
|
|
11602
11622
|
{
|
|
11603
11623
|
"path": "tests/copy_desk_page_next.mjs",
|
|
11604
11624
|
"mode": "0000644",
|
|
@@ -12042,7 +12062,7 @@
|
|
|
12042
12062
|
{
|
|
12043
12063
|
"path": "tests/fitness.mjs",
|
|
12044
12064
|
"mode": "0000644",
|
|
12045
|
-
"sha256": "
|
|
12065
|
+
"sha256": "dfef0e15d8b062fe92a608579883f4780e277c61a0f66a302f1bbf339bac95f8"
|
|
12046
12066
|
},
|
|
12047
12067
|
{
|
|
12048
12068
|
"path": "tests/fitness_gds_ratchet.mjs",
|
|
@@ -5,7 +5,7 @@ A **generated**, zero-dependency typed client for the Bongos API — produced fr
|
|
|
5
5
|
by hand; it regenerates when the spec changes, so it can never drift from the routes.
|
|
6
6
|
|
|
7
7
|
- API version: **v1** (served at `/api/bongos/v1`)
|
|
8
|
-
-
|
|
8
|
+
- 453 operations across 68 resource groups
|
|
9
9
|
|
|
10
10
|
## Use it from your project
|
|
11
11
|
|
|
@@ -355,6 +355,10 @@ function createClient(opts = {}) {
|
|
|
355
355
|
postCopyDeskPagesPageIdClaim: (args) => request("POST", "/copy-desk/pages/{pageId}/claim", { hasBody: true }, args),
|
|
356
356
|
// PUT /copy-desk/pages/{pageId}/draft — rank: any-builder — PUT /copy-desk/pages/:pageId/draft
|
|
357
357
|
putCopyDeskPagesPageIdDraft: (args) => request("PUT", "/copy-desk/pages/{pageId}/draft", { hasBody: true }, args),
|
|
358
|
+
// GET /copy-desk/pages/{pageId}/draft.docx — rank: any-builder — GET /copy-desk/pages/:pageId/draft.docx
|
|
359
|
+
getCopyDeskPagesPageIdDraftDocx: (args) => request("GET", "/copy-desk/pages/{pageId}/draft.docx", { hasBody: false }, args),
|
|
360
|
+
// POST /copy-desk/pages/{pageId}/draft.docx — rank: any-builder — POST /copy-desk/pages/:pageId/draft.docx
|
|
361
|
+
postCopyDeskPagesPageIdDraftDocx: (args) => request("POST", "/copy-desk/pages/{pageId}/draft.docx", { hasBody: true }, args),
|
|
358
362
|
// POST /copy-desk/pages/{pageId}/submit — rank: any-builder — POST /copy-desk/pages/:pageId/submit
|
|
359
363
|
postCopyDeskPagesPageIdSubmit: (args) => request("POST", "/copy-desk/pages/{pageId}/submit", { hasBody: true }, args),
|
|
360
364
|
// POST /copy-desk/proposals — rank: any-builder — POST /copy-desk/proposals
|
|
@@ -354,6 +354,10 @@ function createClient(opts = {}) {
|
|
|
354
354
|
postCopyDeskPagesPageIdClaim: (args) => request("POST", "/copy-desk/pages/{pageId}/claim", { hasBody: true }, args),
|
|
355
355
|
// PUT /copy-desk/pages/{pageId}/draft — rank: any-builder — PUT /copy-desk/pages/:pageId/draft
|
|
356
356
|
putCopyDeskPagesPageIdDraft: (args) => request("PUT", "/copy-desk/pages/{pageId}/draft", { hasBody: true }, args),
|
|
357
|
+
// GET /copy-desk/pages/{pageId}/draft.docx — rank: any-builder — GET /copy-desk/pages/:pageId/draft.docx
|
|
358
|
+
getCopyDeskPagesPageIdDraftDocx: (args) => request("GET", "/copy-desk/pages/{pageId}/draft.docx", { hasBody: false }, args),
|
|
359
|
+
// POST /copy-desk/pages/{pageId}/draft.docx — rank: any-builder — POST /copy-desk/pages/:pageId/draft.docx
|
|
360
|
+
postCopyDeskPagesPageIdDraftDocx: (args) => request("POST", "/copy-desk/pages/{pageId}/draft.docx", { hasBody: true }, args),
|
|
357
361
|
// POST /copy-desk/pages/{pageId}/submit — rank: any-builder — POST /copy-desk/pages/:pageId/submit
|
|
358
362
|
postCopyDeskPagesPageIdSubmit: (args) => request("POST", "/copy-desk/pages/{pageId}/submit", { hasBody: true }, args),
|
|
359
363
|
// POST /copy-desk/proposals — rank: any-builder — POST /copy-desk/proposals
|
|
@@ -298,6 +298,7 @@ export interface PostCopyDeskFlagsIdCloseResponse { ok: boolean; flag: unknown }
|
|
|
298
298
|
export interface PostCopyDeskFlagsRequest { scope?: string; surface: string; string_id?: string; reason: string; kind?: string }
|
|
299
299
|
export interface PostCopyDeskFlagsResponse { ok: boolean; flag: unknown }
|
|
300
300
|
export interface PostCopyDeskPagesPageIdAsksRequest { reason: string }
|
|
301
|
+
export interface PostCopyDeskPagesPageIdDraftDocxResponse { ok: boolean; outcome: unknown; page_id: unknown; round: unknown; draft: unknown; counter: unknown; merge: unknown }
|
|
301
302
|
export interface PostCopyDeskProposalsRequest { string_id: string; proposed_text: string; why: string; file?: string; line?: number; flag_id?: number }
|
|
302
303
|
export interface PostCopyDeskProposalsResponse { ok: boolean; task: unknown; created: boolean; patch?: unknown }
|
|
303
304
|
export interface PostCostRequest { task_id?: number; amount_usd: number; category: string; description?: string; source?: string; source_ref?: string; recorded_at?: string; fresh_input_usd?: number; cache_read_usd?: number; cache_write_usd?: number; output_usd?: number; builder_id?: number; skill_name?: string }
|
|
@@ -774,6 +775,10 @@ export interface BongosClient {
|
|
|
774
775
|
postCopyDeskPagesPageIdClaim(args?: RequestArgs): Promise<ApiResponse>;
|
|
775
776
|
/** PUT /copy-desk/pages/{pageId}/draft — rank: any-builder */
|
|
776
777
|
putCopyDeskPagesPageIdDraft(args: RequestArgs & { body: PutCopyDeskPagesPageIdDraftRequest }): Promise<PutCopyDeskPagesPageIdDraftResponse>;
|
|
778
|
+
/** GET /copy-desk/pages/{pageId}/draft.docx — rank: any-builder */
|
|
779
|
+
getCopyDeskPagesPageIdDraftDocx(args?: RequestArgs): Promise<ApiResponse>;
|
|
780
|
+
/** POST /copy-desk/pages/{pageId}/draft.docx — rank: any-builder */
|
|
781
|
+
postCopyDeskPagesPageIdDraftDocx(args?: RequestArgs): Promise<PostCopyDeskPagesPageIdDraftDocxResponse>;
|
|
777
782
|
/** POST /copy-desk/pages/{pageId}/submit — rank: any-builder */
|
|
778
783
|
postCopyDeskPagesPageIdSubmit(args?: RequestArgs): Promise<ApiResponse>;
|
|
779
784
|
/** POST /copy-desk/proposals — rank: any-builder */
|
|
@@ -351,6 +351,10 @@ export function createClient(opts = {}) {
|
|
|
351
351
|
postCopyDeskPagesPageIdClaim: (args) => request("POST", "/copy-desk/pages/{pageId}/claim", { hasBody: true }, args),
|
|
352
352
|
// PUT /copy-desk/pages/{pageId}/draft — rank: any-builder — PUT /copy-desk/pages/:pageId/draft
|
|
353
353
|
putCopyDeskPagesPageIdDraft: (args) => request("PUT", "/copy-desk/pages/{pageId}/draft", { hasBody: true }, args),
|
|
354
|
+
// GET /copy-desk/pages/{pageId}/draft.docx — rank: any-builder — GET /copy-desk/pages/:pageId/draft.docx
|
|
355
|
+
getCopyDeskPagesPageIdDraftDocx: (args) => request("GET", "/copy-desk/pages/{pageId}/draft.docx", { hasBody: false }, args),
|
|
356
|
+
// POST /copy-desk/pages/{pageId}/draft.docx — rank: any-builder — POST /copy-desk/pages/:pageId/draft.docx
|
|
357
|
+
postCopyDeskPagesPageIdDraftDocx: (args) => request("POST", "/copy-desk/pages/{pageId}/draft.docx", { hasBody: true }, args),
|
|
354
358
|
// POST /copy-desk/pages/{pageId}/submit — rank: any-builder — POST /copy-desk/pages/:pageId/submit
|
|
355
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
|
package/docs/api/openapi.json
CHANGED
|
@@ -5374,6 +5374,114 @@
|
|
|
5374
5374
|
]
|
|
5375
5375
|
}
|
|
5376
5376
|
},
|
|
5377
|
+
"/copy-desk/pages/{pageId}/draft.docx": {
|
|
5378
|
+
"get": {
|
|
5379
|
+
"operationId": "get_copy_desk_pages_pageId_draft_docx",
|
|
5380
|
+
"tags": [
|
|
5381
|
+
"copy-desk"
|
|
5382
|
+
],
|
|
5383
|
+
"summary": "GET /copy-desk/pages/:pageId/draft.docx",
|
|
5384
|
+
"description": "------------------------------------------------------------------------- GET /copy-desk/pages/:pageId/draft.docx — download the page's words as a Word document, to work on offline (task 1004320 / BV2.TW09, ADR 0341 D12). The file is built from the page reading plus the open round's draft (a line the artist has rewritten shows its rewrite). A draft saved on an older reading is not shown, since its keys may now name other lines. rank: any signed-in builder. The words are the page's own, and the draft is on a task description every builder can already read; only the upload is the holder's. -------------------------------------------------------------------------\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
|
+
"responses": {
|
|
5399
|
+
"200": {
|
|
5400
|
+
"description": "Success."
|
|
5401
|
+
},
|
|
5402
|
+
"400": {
|
|
5403
|
+
"$ref": "#/components/responses/BadRequest"
|
|
5404
|
+
},
|
|
5405
|
+
"401": {
|
|
5406
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
5407
|
+
},
|
|
5408
|
+
"403": {
|
|
5409
|
+
"$ref": "#/components/responses/Forbidden"
|
|
5410
|
+
},
|
|
5411
|
+
"404": {
|
|
5412
|
+
"$ref": "#/components/responses/NotFound"
|
|
5413
|
+
}
|
|
5414
|
+
},
|
|
5415
|
+
"security": [
|
|
5416
|
+
{
|
|
5417
|
+
"builderSession": []
|
|
5418
|
+
}
|
|
5419
|
+
]
|
|
5420
|
+
},
|
|
5421
|
+
"post": {
|
|
5422
|
+
"operationId": "post_copy_desk_pages_pageId_draft_docx",
|
|
5423
|
+
"tags": [
|
|
5424
|
+
"copy-desk"
|
|
5425
|
+
],
|
|
5426
|
+
"summary": "POST /copy-desk/pages/:pageId/draft.docx",
|
|
5427
|
+
"description": "------------------------------------------------------------------------- POST /copy-desk/pages/:pageId/draft.docx — upload the Word file back into the DRAFT (task 1004320 / BV2.TW09, ADR 0341 D12). Never to the site: the words land in the round's draft block, exactly where the autosave puts them, through the same port call (holder only) and the same resolver (every target from the page reading by key, never from the file). Body: the .docx bytes (Content-Type: the Word type, application/zip or application/octet-stream), at most docx.MAX_UPLOAD_BYTES. rank: any signed-in builder; only the HOLDER of the page's writing claim. A MERGE, not a replace: a line is taken from the file only when the artist changed it in Word (against the text the download showed), so a line they rewrote in the studio after downloading keeps that rewrite. 200 saved | unchanged the draft, the counter, and `merge` (which lines came from the file, and how they were matched) 409 structure_changed a line added, dropped or reordered, or a heading changed; each is named (section, first words) 409 wrong_page · reading_moved · page_not_held · no_open_round 413 upload_too_large · 415 not_a_docx -------------------------------------------------------------------------\n\n**Rank:** `any-builder` — Any authenticated builder (row-level ownership enforced in-handler).",
|
|
5428
|
+
"x-rank": "any-builder",
|
|
5429
|
+
"x-source": "modules/copy-desk/routes/copy-desk.js",
|
|
5430
|
+
"parameters": [
|
|
5431
|
+
{
|
|
5432
|
+
"name": "pageId",
|
|
5433
|
+
"in": "path",
|
|
5434
|
+
"required": true,
|
|
5435
|
+
"schema": {
|
|
5436
|
+
"type": "string"
|
|
5437
|
+
},
|
|
5438
|
+
"description": "Path parameter `pageId`."
|
|
5439
|
+
}
|
|
5440
|
+
],
|
|
5441
|
+
"requestBody": {
|
|
5442
|
+
"required": false,
|
|
5443
|
+
"content": {
|
|
5444
|
+
"application/json": {
|
|
5445
|
+
"schema": {
|
|
5446
|
+
"type": "object",
|
|
5447
|
+
"additionalProperties": true
|
|
5448
|
+
}
|
|
5449
|
+
}
|
|
5450
|
+
},
|
|
5451
|
+
"x-validated": false,
|
|
5452
|
+
"x-body-undocumented": true
|
|
5453
|
+
},
|
|
5454
|
+
"responses": {
|
|
5455
|
+
"200": {
|
|
5456
|
+
"description": "Success.",
|
|
5457
|
+
"content": {
|
|
5458
|
+
"application/json": {
|
|
5459
|
+
"schema": {
|
|
5460
|
+
"$ref": "#/components/schemas/PostCopyDeskPagesPageIdDraftDocxResponse"
|
|
5461
|
+
}
|
|
5462
|
+
}
|
|
5463
|
+
}
|
|
5464
|
+
},
|
|
5465
|
+
"400": {
|
|
5466
|
+
"$ref": "#/components/responses/BadRequest"
|
|
5467
|
+
},
|
|
5468
|
+
"401": {
|
|
5469
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
5470
|
+
},
|
|
5471
|
+
"403": {
|
|
5472
|
+
"$ref": "#/components/responses/Forbidden"
|
|
5473
|
+
},
|
|
5474
|
+
"404": {
|
|
5475
|
+
"$ref": "#/components/responses/NotFound"
|
|
5476
|
+
}
|
|
5477
|
+
},
|
|
5478
|
+
"security": [
|
|
5479
|
+
{
|
|
5480
|
+
"builderSession": []
|
|
5481
|
+
}
|
|
5482
|
+
]
|
|
5483
|
+
}
|
|
5484
|
+
},
|
|
5377
5485
|
"/copy-desk/pages/{pageId}/submit": {
|
|
5378
5486
|
"post": {
|
|
5379
5487
|
"operationId": "post_copy_desk_pages_pageId_submit",
|
|
@@ -25003,6 +25111,29 @@
|
|
|
25003
25111
|
],
|
|
25004
25112
|
"additionalProperties": false
|
|
25005
25113
|
},
|
|
25114
|
+
"PostCopyDeskPagesPageIdDraftDocxResponse": {
|
|
25115
|
+
"type": "object",
|
|
25116
|
+
"properties": {
|
|
25117
|
+
"ok": {
|
|
25118
|
+
"type": "boolean"
|
|
25119
|
+
},
|
|
25120
|
+
"outcome": {},
|
|
25121
|
+
"page_id": {},
|
|
25122
|
+
"round": {},
|
|
25123
|
+
"draft": {},
|
|
25124
|
+
"counter": {},
|
|
25125
|
+
"merge": {}
|
|
25126
|
+
},
|
|
25127
|
+
"required": [
|
|
25128
|
+
"ok",
|
|
25129
|
+
"outcome",
|
|
25130
|
+
"page_id",
|
|
25131
|
+
"round",
|
|
25132
|
+
"draft",
|
|
25133
|
+
"counter",
|
|
25134
|
+
"merge"
|
|
25135
|
+
]
|
|
25136
|
+
},
|
|
25006
25137
|
"PostCopyDeskProposalsRequest": {
|
|
25007
25138
|
"type": "object",
|
|
25008
25139
|
"properties": {
|
|
@@ -28544,9 +28675,9 @@
|
|
|
28544
28675
|
"description": "A required dependency/feature is not configured or is temporarily down."
|
|
28545
28676
|
}
|
|
28546
28677
|
},
|
|
28547
|
-
"x-endpoint-count":
|
|
28548
|
-
"x-schema-count":
|
|
28549
|
-
"x-undocumented-bodies":
|
|
28550
|
-
"x-response-schemas":
|
|
28678
|
+
"x-endpoint-count": 453,
|
|
28679
|
+
"x-schema-count": 487,
|
|
28680
|
+
"x-undocumented-bodies": 10,
|
|
28681
|
+
"x-response-schemas": 333,
|
|
28551
28682
|
"x-generated-by": "scripts/gds/gen-api-docs.js"
|
|
28552
28683
|
}
|
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. 453 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` (15)
|
|
214
214
|
|
|
215
215
|
| Method | Path | Rank | Body | Description |
|
|
216
216
|
|---|---|---|---|---|
|
|
@@ -222,6 +222,8 @@ Base path: `/api/bongos`. Ranks (enforced server-side, [ADR 0016](adr/0016-trust
|
|
|
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
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
|
+
| GET | `/api/bongos/copy-desk/pages/:pageId/draft.docx` | `any-builder` | — | ------------------------------------------------------------------------- GET /copy-desk/pages/:pageId/draft.docx — download the page's w… |
|
|
226
|
+
| POST | `/api/bongos/copy-desk/pages/:pageId/draft.docx` | `any-builder` | _undocumented_ | ------------------------------------------------------------------------- POST /copy-desk/pages/:pageId/draft.docx — upload the Word file… |
|
|
225
227
|
| POST | `/api/bongos/copy-desk/pages/:pageId/submit` | `any-builder` | validated | ------------------------------------------------------------------------- POST /copy-desk/pages/:pageId/submit — freeze the draft and que… |
|
|
226
228
|
| 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… |
|
|
227
229
|
| GET | `/api/bongos/copy-desk/queue` | `any-builder` | — | ------------------------------------------------------------------------- GET /copy-desk/queue — the artist's working list. |
|
|
@@ -800,5 +802,5 @@ Base path: `/api/bongos`. Ranks (enforced server-side, [ADR 0016](adr/0016-trust
|
|
|
800
802
|
|
|
801
803
|
---
|
|
802
804
|
|
|
803
|
-
>
|
|
805
|
+
> 10 write endpoint(s) take a JSON body with no declared validator schema — their fields are not yet machine-documented. Adding a `validateOrRespond` schema (`src/bongos/routes/_helpers.js`) surfaces them here automatically.
|
|
804
806
|
|
|
@@ -2609,5 +2609,7 @@ is load-bearing: the script throws rather than guess if it is missing, and
|
|
|
2609
2609
|
landed since 1.19.1059 with no explicit bump. run 36418832327. (task 1002620)
|
|
2610
2610
|
1.19.1061 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
|
|
2611
2611
|
landed since 1.19.1060 with no explicit bump. run 36423029975. (task 1002620)
|
|
2612
|
+
1.19.1062 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
|
|
2613
|
+
landed since 1.19.1061 with no explicit bump. run 36428277106. (task 1002620)
|
|
2612
2614
|
---------------------------------------------------------------------------
|
|
2613
2615
|
```
|