@bongos/core 1.19.1061 → 1.19.1063

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 (39) hide show
  1. package/.bongos-core.json +94 -34
  2. package/clients/bongos-client/README.md +1 -1
  3. package/clients/bongos-client/bongos-client.global.js +6 -0
  4. package/clients/bongos-client/index.cjs +6 -0
  5. package/clients/bongos-client/index.d.ts +7 -0
  6. package/clients/bongos-client/index.mjs +6 -0
  7. package/docs/api/openapi.json +178 -4
  8. package/docs/api-reference.md +6 -3
  9. package/docs/copy-inventory.md +44 -7
  10. package/docs/copy-registry.json +393 -26
  11. package/docs/module-api-changelog.md +4 -0
  12. package/docs/page-inventory.json +36 -4
  13. package/docs/page-readings.json +34 -1
  14. package/modules/copy-desk/docx.js +818 -0
  15. package/modules/copy-desk/page-status.js +63 -0
  16. package/modules/copy-desk/pages.js +17 -0
  17. package/modules/copy-desk/routes/copy-desk.js +198 -9
  18. package/modules/copy-desk/tests/copy_docx.mjs +347 -0
  19. package/modules/copy-desk/tests/copy_no_cms.mjs +32 -3
  20. package/modules/copy-desk/tests/fixtures/word-docx.mjs +131 -0
  21. package/modules/hall-ui/public/tweak-editor-lib.js +137 -0
  22. package/modules/hall-ui/public/tweak-editor.css +437 -0
  23. package/modules/hall-ui/public/tweak-editor.html +111 -0
  24. package/modules/hall-ui/public/tweak-editor.js +447 -0
  25. package/modules/hall-ui/public/tweak-editor.states.json +99 -0
  26. package/modules/hall-ui/records/tweak-editor.md +32 -0
  27. package/package-lock.json +2 -2
  28. package/package.json +1 -1
  29. package/release-notes.json +12 -0
  30. package/scripts/gds/fitness-checks-write-validation.js +4 -0
  31. package/scripts/hall-preview/server.js +21 -0
  32. package/src/bongos/serve-internal.js +5 -1
  33. package/src/module-api.js +1 -1
  34. package/tests/copy_desk_page_docx.mjs +279 -0
  35. package/tests/copy_desk_page_editor.mjs +181 -0
  36. package/tests/fitness.mjs +7 -2
  37. package/tests/hall_audit.mjs +5 -0
  38. package/tests/hall_page_gate_map.mjs +3 -0
  39. package/tests/hall_tweak_editor.mjs +432 -0
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.1061",
6
- "core_contract": "1.19.1061",
7
- "source_commit": "1cc2c2cdca684d17445332667885541d1bd1abbc",
5
+ "core_version": "1.19.1063",
6
+ "core_contract": "1.19.1063",
7
+ "source_commit": "63e2f7bb716c0dc0961bb67e49922d15f2ed6c76",
8
8
  "source_ref": "HEAD",
9
- "built_at": "2026-09-28T12:38:11.098Z",
9
+ "built_at": "2026-09-28T14:25:56.766Z",
10
10
  "redaction": {
11
11
  "model": "docs-redacted+functional-verbatim",
12
- "docs_redacted": 543,
12
+ "docs_redacted": 544,
13
13
  "agent_docs_stubbed": 26,
14
- "functional_verbatim": 2531,
14
+ "functional_verbatim": 2542,
15
15
  "rules": 3,
16
16
  "gate_literals": 3,
17
17
  "gate": "passed"
18
18
  },
19
- "file_count": 3101,
20
- "tree_sha256": "22d7d908ffbc96ccc7866b4212aabb6062dfb4b6ffa915ddaa0153125d8aa4dd",
19
+ "file_count": 3113,
20
+ "tree_sha256": "5c8879d08015963d5d71b6092f41e0ec028b78673d0e79c0d92fb69c978309fe",
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": "a430ee71b5a2698346d4917245863dfc847cd31091dfa5de9a01ef7d21abd1f7"
320
+ "sha256": "ca931cbbd9382e0f899e5e7c2d4c2a1addb759f4457bf7cfb860c519d2e4bacd"
321
321
  },
322
322
  {
323
323
  "path": "clients/bongos-client/bongos-client.global.js",
324
324
  "mode": "0000644",
325
- "sha256": "86d62d8e000364d5c05ef0eced49f1fa165c923dc7892fe82d918c21864de616"
325
+ "sha256": "b98f7525d1849ee33ff9f634207e91d1121d637cab6d6498d832b5873197642b"
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": "e0e84783a89af88a81251931ae7702e0c0302001446bf5b33d7de30bd4c9e264"
335
+ "sha256": "110ea054c68274e4061a86551872c254297d42ec205de9b5962f485123070fa8"
336
336
  },
337
337
  {
338
338
  "path": "clients/bongos-client/index.d.ts",
339
339
  "mode": "0000644",
340
- "sha256": "9fdc897116e58b93d39b940c5ae20108825bc88d67dad1de11d980f943a021c0"
340
+ "sha256": "76ddcae95933b3bdd9ae458305082d8f332d6fdd11551bedd26e4854b624199c"
341
341
  },
342
342
  {
343
343
  "path": "clients/bongos-client/index.mjs",
344
344
  "mode": "0000644",
345
- "sha256": "102dae082b630a9d2613d1f5dab5b128748a005304f066ce3f36f8ff5166aa04"
345
+ "sha256": "35d5b13ab21b55308e20c02ca61d030176ec431d9159cb852cc82af4dfdcc0c0"
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": "66487b94a7ca2646daa4fbe24159396d48fbcf10f2adc9c14b9e43fc86233b56"
2180
+ "sha256": "9c2a01131f4eef126542aca1f664883af254edac3cc148f01e8486adecc1bacf"
2181
2181
  },
2182
2182
  {
2183
2183
  "path": "docs/api/openapi.json",
2184
2184
  "mode": "0000644",
2185
- "sha256": "258b4baf4671e59e66464c47193f54a91d34a3a678dcc9db0955053f7f86e48b"
2185
+ "sha256": "23089d5d26da4a14d98ea318d2efab582bc502b6d0ac43a1d5a2db1241a47694"
2186
2186
  },
2187
2187
  {
2188
2188
  "path": "docs/architecture.md",
@@ -2207,12 +2207,12 @@
2207
2207
  {
2208
2208
  "path": "docs/copy-inventory.md",
2209
2209
  "mode": "0000644",
2210
- "sha256": "331d32d43092d540eed68d3a5f69ca88e8b3f1caa478b78cef423710ec285763"
2210
+ "sha256": "0bfc5ea9c331d2797c45cbfaeec7e9b5e264c2feb692a2132ac3dd804d05ea15"
2211
2211
  },
2212
2212
  {
2213
2213
  "path": "docs/copy-registry.json",
2214
2214
  "mode": "0000644",
2215
- "sha256": "8721c56306ef590d8268e89e6db295ae1bed0a9025df274554714117ee727e63"
2215
+ "sha256": "2a35ebbece01958ac642faf2a3680d724b3aa7d3179d690fd9583aaf53cf9cb3"
2216
2216
  },
2217
2217
  {
2218
2218
  "path": "docs/design/apex-pass-2-direction.md",
@@ -2742,7 +2742,7 @@
2742
2742
  {
2743
2743
  "path": "docs/module-api-changelog.md",
2744
2744
  "mode": "0000644",
2745
- "sha256": "a47ac184c604897dd657f4995f4e278303d378747164bc9540b0937eab19186e"
2745
+ "sha256": "230ca05e2cd108f5648d76a776bfc3aeea2b9628a834e6655b16d9d5f60cb280"
2746
2746
  },
2747
2747
  {
2748
2748
  "path": "docs/modules-contract.md",
@@ -2832,12 +2832,12 @@
2832
2832
  {
2833
2833
  "path": "docs/page-inventory.json",
2834
2834
  "mode": "0000644",
2835
- "sha256": "02c21f9e962d73fc05655943340ce5ef01a2d1e17cd77a9ffd074ffb979445cd"
2835
+ "sha256": "27683df3ef3062442b5a2b3d0d814a2e0d4cfb0c666bf58b96af0f8f5c4bd97e"
2836
2836
  },
2837
2837
  {
2838
2838
  "path": "docs/page-readings.json",
2839
2839
  "mode": "0000644",
2840
- "sha256": "9d33140a6b9dc8820ef0283985f57dae888a1e7045be3f7ef5922a1d7b09e97b"
2840
+ "sha256": "d5f8ac454357067ac14cb3550c9d12b2b04143e1e796facce51f0510900f0795"
2841
2841
  },
2842
2842
  {
2843
2843
  "path": "docs/project-context.template.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",
@@ -4137,12 +4142,12 @@
4137
4142
  {
4138
4143
  "path": "modules/copy-desk/page-status.js",
4139
4144
  "mode": "0000644",
4140
- "sha256": "fe85e899abb8524b36ef7187a8a2b5b127ea87342c378a32b95a644d18a83021"
4145
+ "sha256": "e54fe2358641ab6bf157f3a434131a48eda175309480fa402290d8d4e6a431d1"
4141
4146
  },
4142
4147
  {
4143
4148
  "path": "modules/copy-desk/pages.js",
4144
4149
  "mode": "0000644",
4145
- "sha256": "ba89a35e225a41e94e20a21e716a3d83ab15081c2f9d6f6718394c25b37ea305"
4150
+ "sha256": "76141638d80c0f7ba2046fa84f4e1309e020f065ef39c893d77da04ff2a2da73"
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": "92170c36251df8a1606d87dcbd057bccc167f348f39d2705872934f24411c7d7"
4165
+ "sha256": "aab0b4221b092333ac6bc502d1bb45229410c270957025c8af20b4e33c776304"
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": "b04b745bfc010ed86d7187c22f067bb8ecaaa24a095420a01f2b37806f283d48"
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",
@@ -5604,6 +5619,31 @@
5604
5619
  "mode": "0000644",
5605
5620
  "sha256": "0d17be2800724ca4130197f222222fcdad167bde24c068739f5ad4bfb6d6ccd8"
5606
5621
  },
5622
+ {
5623
+ "path": "modules/hall-ui/public/tweak-editor-lib.js",
5624
+ "mode": "0000644",
5625
+ "sha256": "cb71d8aedb579c644b5043a838dedcc50a4c24623e281aa2e8db3fd36e7c0ecc"
5626
+ },
5627
+ {
5628
+ "path": "modules/hall-ui/public/tweak-editor.css",
5629
+ "mode": "0000644",
5630
+ "sha256": "a5685c2bada1eb56e4458c9cfca1da7d5035cc0d7bb4e18e8f83e78514346c97"
5631
+ },
5632
+ {
5633
+ "path": "modules/hall-ui/public/tweak-editor.html",
5634
+ "mode": "0000644",
5635
+ "sha256": "b4ad8e1525b4e5352b00b778d2f3e7666d38b96fa655d7959c9e55e77e067d90"
5636
+ },
5637
+ {
5638
+ "path": "modules/hall-ui/public/tweak-editor.js",
5639
+ "mode": "0000644",
5640
+ "sha256": "f8c2097f6c4fb782321f9238622097cd5642d8afacddd431b4a0d2f97e235562"
5641
+ },
5642
+ {
5643
+ "path": "modules/hall-ui/public/tweak-editor.states.json",
5644
+ "mode": "0000644",
5645
+ "sha256": "ced94f02c2c79cb1bdf030e0a86804acabec5bda30378f37f6cf313a6a1b14a0"
5646
+ },
5607
5647
  {
5608
5648
  "path": "modules/hall-ui/public/watch.css",
5609
5649
  "mode": "0000644",
@@ -5704,6 +5744,11 @@
5704
5744
  "mode": "0000644",
5705
5745
  "sha256": "01ea4e44ed380695fa90708fd388dfc3f48e65b17e22941e1542abcc979d1e0b"
5706
5746
  },
5747
+ {
5748
+ "path": "modules/hall-ui/records/tweak-editor.md",
5749
+ "mode": "0000644",
5750
+ "sha256": "21276ee938dac7204e11630eba569ba34a47d7096cdcc57d99157bc55bfd0a6f"
5751
+ },
5707
5752
  {
5708
5753
  "path": "modules/ideas/CLAUDE.md",
5709
5754
  "mode": "0000644",
@@ -8532,12 +8577,12 @@
8532
8577
  {
8533
8578
  "path": "package-lock.json",
8534
8579
  "mode": "0000644",
8535
- "sha256": "dd4068cbb235742769c4bda2d8d49dd955c266e5986844fc471ef12416166730"
8580
+ "sha256": "387505d96f16db9259bd3c62fd2420949eabc4b34795f2e2121c5244e39e4a15"
8536
8581
  },
8537
8582
  {
8538
8583
  "path": "package.json",
8539
8584
  "mode": "0000644",
8540
- "sha256": "c3abc1f3e3b321375820e92c627d7f7aeb13a87259f0783aea211386c68d8267"
8585
+ "sha256": "b86d5a9a682c2c94476f5f629e35ca12060cc5ec743b436dd558c061966632ac"
8541
8586
  },
8542
8587
  {
8543
8588
  "path": "public-docs/index.html",
@@ -8557,7 +8602,7 @@
8557
8602
  {
8558
8603
  "path": "release-notes.json",
8559
8604
  "mode": "0000644",
8560
- "sha256": "d77397164aba5ff244fe0ddbcd9a4d7e8e327b357a37e6cb48bdfbe1bbbba7a6"
8605
+ "sha256": "bf828c5a5c41c77a922c60057c989f08e668c7e166b5dc2add801094248862ec"
8561
8606
  },
8562
8607
  {
8563
8608
  "path": "scripts/bongos-mcp.js",
@@ -9112,7 +9157,7 @@
9112
9157
  {
9113
9158
  "path": "scripts/gds/fitness-checks-write-validation.js",
9114
9159
  "mode": "0000644",
9115
- "sha256": "7501680e8b657a1002c185750951f16af1b2e7e30c04c72a3f03a94d286e02c4"
9160
+ "sha256": "907b7ad50eb89059d17af5952ef5725b5009053da76ececd23f0d7e5dcdc6980"
9116
9161
  },
9117
9162
  {
9118
9163
  "path": "scripts/gds/fitness-lib.js",
@@ -10227,7 +10272,7 @@
10227
10272
  {
10228
10273
  "path": "scripts/hall-preview/server.js",
10229
10274
  "mode": "0000644",
10230
- "sha256": "5c2c480bea8acc9d74d17a27d60312ae8ef9dc2cb7bd18a776ea3bab8ca49ecc"
10275
+ "sha256": "1e1aa2e636b388c791eccd8c4bf8ad2b1365820594258579b945858fa1646831"
10231
10276
  },
10232
10277
  {
10233
10278
  "path": "scripts/hall-preview/task-visual.js",
@@ -10612,7 +10657,7 @@
10612
10657
  {
10613
10658
  "path": "src/bongos/serve-internal.js",
10614
10659
  "mode": "0000644",
10615
- "sha256": "cb840dc6bff2664c644770e7c2fcb004beb9dd48011635c1851e12161e7d9c3a"
10660
+ "sha256": "d55251183e8f0c6e210136be886c98c2adb6ea77f374fd375c2b7d44d7e59b48"
10616
10661
  },
10617
10662
  {
10618
10663
  "path": "src/bongos/software-update.js",
@@ -10642,7 +10687,7 @@
10642
10687
  {
10643
10688
  "path": "src/module-api.js",
10644
10689
  "mode": "0000644",
10645
- "sha256": "56850953ea4d6876e68096995c35e9b9eaa1b44f092715c4aba8677e89c889d3"
10690
+ "sha256": "3bb2c146ee72b0f97bf1c6fa9a02fe90bb7d32cbe5bc1e28d40d2998aff2f187"
10646
10691
  },
10647
10692
  {
10648
10693
  "path": "src/module-loader/catalog.js",
@@ -11599,6 +11644,16 @@
11599
11644
  "mode": "0000644",
11600
11645
  "sha256": "af6cdac77b90aad511a603757e12d7ffefaa7fdbcdd14aefd70ad49e3cd193fe"
11601
11646
  },
11647
+ {
11648
+ "path": "tests/copy_desk_page_docx.mjs",
11649
+ "mode": "0000644",
11650
+ "sha256": "e25485728f161b8610f57db11b387f5f7807afb41d0badd2f7a32776eaf97283"
11651
+ },
11652
+ {
11653
+ "path": "tests/copy_desk_page_editor.mjs",
11654
+ "mode": "0000644",
11655
+ "sha256": "25878366349548061763c31dd2e1c4a81642a033956d5ac8ec45596e49a17ccd"
11656
+ },
11602
11657
  {
11603
11658
  "path": "tests/copy_desk_page_next.mjs",
11604
11659
  "mode": "0000644",
@@ -12042,7 +12097,7 @@
12042
12097
  {
12043
12098
  "path": "tests/fitness.mjs",
12044
12099
  "mode": "0000644",
12045
- "sha256": "7252f8134ae29b16df7c136865acb110263cc862781d7ae26ee416398caa1f09"
12100
+ "sha256": "dfef0e15d8b062fe92a608579883f4780e277c61a0f66a302f1bbf339bac95f8"
12046
12101
  },
12047
12102
  {
12048
12103
  "path": "tests/fitness_gds_ratchet.mjs",
@@ -12697,7 +12752,7 @@
12697
12752
  {
12698
12753
  "path": "tests/hall_audit.mjs",
12699
12754
  "mode": "0000644",
12700
- "sha256": "a1fd70d0ffa56e95bf0e4a75a70563943850e3099894a6df178baf62a36aef8a"
12755
+ "sha256": "56a0822be45f279aa2be982ff17d405ac059a1db0199a3cf1febec20dd92c699"
12701
12756
  },
12702
12757
  {
12703
12758
  "path": "tests/hall_board_world.mjs",
@@ -12757,7 +12812,7 @@
12757
12812
  {
12758
12813
  "path": "tests/hall_page_gate_map.mjs",
12759
12814
  "mode": "0000644",
12760
- "sha256": "69298b95f35817cedd85d12e074bd673fcd06383499613b194a0c786983ef755"
12815
+ "sha256": "af1877acb1cbfaabea5bc59dd4992043a510f948f0617e0bedb1ac820fa6b65c"
12761
12816
  },
12762
12817
  {
12763
12818
  "path": "tests/hall_palette.mjs",
@@ -12844,6 +12899,11 @@
12844
12899
  "mode": "0000644",
12845
12900
  "sha256": "a1da5c5c009acd1286d1f0862c9c57c29b80e5dd6f2f1e3effb459f849b38740"
12846
12901
  },
12902
+ {
12903
+ "path": "tests/hall_tweak_editor.mjs",
12904
+ "mode": "0000644",
12905
+ "sha256": "516da07f8646ce2c0e3755db6cfc58a5c3799a051258b9fff8ce4cf03773c2b9"
12906
+ },
12847
12907
  {
12848
12908
  "path": "tests/handle_machinery.mjs",
12849
12909
  "mode": "0000644",
@@ -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
- - 451 operations across 68 resource groups
8
+ - 454 operations across 68 resource groups
9
9
 
10
10
  ## Use it from your project
11
11
 
@@ -353,8 +353,14 @@ 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
+ // GET /copy-desk/pages/{pageId}/draft — rank: any-builder — GET /copy-desk/pages/:pageId/draft
357
+ getCopyDeskPagesPageIdDraft: (args) => request("GET", "/copy-desk/pages/{pageId}/draft", { hasBody: false }, args),
356
358
  // PUT /copy-desk/pages/{pageId}/draft — rank: any-builder — PUT /copy-desk/pages/:pageId/draft
357
359
  putCopyDeskPagesPageIdDraft: (args) => request("PUT", "/copy-desk/pages/{pageId}/draft", { hasBody: true }, args),
360
+ // GET /copy-desk/pages/{pageId}/draft.docx — rank: any-builder — GET /copy-desk/pages/:pageId/draft.docx
361
+ getCopyDeskPagesPageIdDraftDocx: (args) => request("GET", "/copy-desk/pages/{pageId}/draft.docx", { hasBody: false }, args),
362
+ // POST /copy-desk/pages/{pageId}/draft.docx — rank: any-builder — POST /copy-desk/pages/:pageId/draft.docx
363
+ postCopyDeskPagesPageIdDraftDocx: (args) => request("POST", "/copy-desk/pages/{pageId}/draft.docx", { hasBody: true }, args),
358
364
  // POST /copy-desk/pages/{pageId}/submit — rank: any-builder — POST /copy-desk/pages/:pageId/submit
359
365
  postCopyDeskPagesPageIdSubmit: (args) => request("POST", "/copy-desk/pages/{pageId}/submit", { hasBody: true }, args),
360
366
  // POST /copy-desk/proposals — rank: any-builder — POST /copy-desk/proposals
@@ -352,8 +352,14 @@ 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
+ // GET /copy-desk/pages/{pageId}/draft — rank: any-builder — GET /copy-desk/pages/:pageId/draft
356
+ getCopyDeskPagesPageIdDraft: (args) => request("GET", "/copy-desk/pages/{pageId}/draft", { hasBody: false }, args),
355
357
  // PUT /copy-desk/pages/{pageId}/draft — rank: any-builder — PUT /copy-desk/pages/:pageId/draft
356
358
  putCopyDeskPagesPageIdDraft: (args) => request("PUT", "/copy-desk/pages/{pageId}/draft", { hasBody: true }, args),
359
+ // GET /copy-desk/pages/{pageId}/draft.docx — rank: any-builder — GET /copy-desk/pages/:pageId/draft.docx
360
+ getCopyDeskPagesPageIdDraftDocx: (args) => request("GET", "/copy-desk/pages/{pageId}/draft.docx", { hasBody: false }, args),
361
+ // POST /copy-desk/pages/{pageId}/draft.docx — rank: any-builder — POST /copy-desk/pages/:pageId/draft.docx
362
+ postCopyDeskPagesPageIdDraftDocx: (args) => request("POST", "/copy-desk/pages/{pageId}/draft.docx", { hasBody: true }, args),
357
363
  // POST /copy-desk/pages/{pageId}/submit — rank: any-builder — POST /copy-desk/pages/:pageId/submit
358
364
  postCopyDeskPagesPageIdSubmit: (args) => request("POST", "/copy-desk/pages/{pageId}/submit", { hasBody: true }, args),
359
365
  // 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 }
@@ -772,8 +773,14 @@ export interface BongosClient {
772
773
  postCopyDeskPagesPageIdAsks(args: RequestArgs & { body: PostCopyDeskPagesPageIdAsksRequest }): Promise<ApiResponse>;
773
774
  /** POST /copy-desk/pages/{pageId}/claim — rank: any-builder */
774
775
  postCopyDeskPagesPageIdClaim(args?: RequestArgs): Promise<ApiResponse>;
776
+ /** GET /copy-desk/pages/{pageId}/draft — rank: any-builder */
777
+ getCopyDeskPagesPageIdDraft(args?: RequestArgs): Promise<ApiResponse>;
775
778
  /** PUT /copy-desk/pages/{pageId}/draft — rank: any-builder */
776
779
  putCopyDeskPagesPageIdDraft(args: RequestArgs & { body: PutCopyDeskPagesPageIdDraftRequest }): Promise<PutCopyDeskPagesPageIdDraftResponse>;
780
+ /** GET /copy-desk/pages/{pageId}/draft.docx — rank: any-builder */
781
+ getCopyDeskPagesPageIdDraftDocx(args?: RequestArgs): Promise<ApiResponse>;
782
+ /** POST /copy-desk/pages/{pageId}/draft.docx — rank: any-builder */
783
+ postCopyDeskPagesPageIdDraftDocx(args?: RequestArgs): Promise<PostCopyDeskPagesPageIdDraftDocxResponse>;
777
784
  /** POST /copy-desk/pages/{pageId}/submit — rank: any-builder */
778
785
  postCopyDeskPagesPageIdSubmit(args?: RequestArgs): Promise<ApiResponse>;
779
786
  /** POST /copy-desk/proposals — rank: any-builder */
@@ -349,8 +349,14 @@ 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
+ // GET /copy-desk/pages/{pageId}/draft — rank: any-builder — GET /copy-desk/pages/:pageId/draft
353
+ getCopyDeskPagesPageIdDraft: (args) => request("GET", "/copy-desk/pages/{pageId}/draft", { hasBody: false }, args),
352
354
  // PUT /copy-desk/pages/{pageId}/draft — rank: any-builder — PUT /copy-desk/pages/:pageId/draft
353
355
  putCopyDeskPagesPageIdDraft: (args) => request("PUT", "/copy-desk/pages/{pageId}/draft", { hasBody: true }, args),
356
+ // GET /copy-desk/pages/{pageId}/draft.docx — rank: any-builder — GET /copy-desk/pages/:pageId/draft.docx
357
+ getCopyDeskPagesPageIdDraftDocx: (args) => request("GET", "/copy-desk/pages/{pageId}/draft.docx", { hasBody: false }, args),
358
+ // POST /copy-desk/pages/{pageId}/draft.docx — rank: any-builder — POST /copy-desk/pages/:pageId/draft.docx
359
+ postCopyDeskPagesPageIdDraftDocx: (args) => request("POST", "/copy-desk/pages/{pageId}/draft.docx", { hasBody: true }, args),
354
360
  // POST /copy-desk/pages/{pageId}/submit — rank: any-builder — POST /copy-desk/pages/:pageId/submit
355
361
  postCopyDeskPagesPageIdSubmit: (args) => request("POST", "/copy-desk/pages/{pageId}/submit", { hasBody: true }, args),
356
362
  // POST /copy-desk/proposals — rank: any-builder — POST /copy-desk/proposals
@@ -5312,6 +5312,49 @@
5312
5312
  }
5313
5313
  },
5314
5314
  "/copy-desk/pages/{pageId}/draft": {
5315
+ "get": {
5316
+ "operationId": "get_copy_desk_pages_pageId_draft",
5317
+ "tags": [
5318
+ "copy-desk"
5319
+ ],
5320
+ "summary": "GET /copy-desk/pages/:pageId/draft",
5321
+ "description": "------------------------------------------------------------------------- GET /copy-desk/pages/:pageId/draft — what the tweak editor opens on (task 1004321 / BV2.TW10, ADR 0341 D4): every line of the page reading in page order with its margin note, the open round and whether the caller holds it, and the saved draft (only on the current reading). The read the PUT below saves over, and the .docx download's own data as JSON. rank: any signed-in builder, as the download: the words are the page's own and the draft sits on a task every builder can read. -------------------------------------------------------------------------\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
+ "responses": {
5336
+ "200": {
5337
+ "description": "Success."
5338
+ },
5339
+ "400": {
5340
+ "$ref": "#/components/responses/BadRequest"
5341
+ },
5342
+ "401": {
5343
+ "$ref": "#/components/responses/Unauthorized"
5344
+ },
5345
+ "403": {
5346
+ "$ref": "#/components/responses/Forbidden"
5347
+ },
5348
+ "404": {
5349
+ "$ref": "#/components/responses/NotFound"
5350
+ }
5351
+ },
5352
+ "security": [
5353
+ {
5354
+ "builderSession": []
5355
+ }
5356
+ ]
5357
+ },
5315
5358
  "put": {
5316
5359
  "operationId": "put_copy_desk_pages_pageId_draft",
5317
5360
  "tags": [
@@ -5374,6 +5417,114 @@
5374
5417
  ]
5375
5418
  }
5376
5419
  },
5420
+ "/copy-desk/pages/{pageId}/draft.docx": {
5421
+ "get": {
5422
+ "operationId": "get_copy_desk_pages_pageId_draft_docx",
5423
+ "tags": [
5424
+ "copy-desk"
5425
+ ],
5426
+ "summary": "GET /copy-desk/pages/:pageId/draft.docx",
5427
+ "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).",
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
+ "responses": {
5442
+ "200": {
5443
+ "description": "Success."
5444
+ },
5445
+ "400": {
5446
+ "$ref": "#/components/responses/BadRequest"
5447
+ },
5448
+ "401": {
5449
+ "$ref": "#/components/responses/Unauthorized"
5450
+ },
5451
+ "403": {
5452
+ "$ref": "#/components/responses/Forbidden"
5453
+ },
5454
+ "404": {
5455
+ "$ref": "#/components/responses/NotFound"
5456
+ }
5457
+ },
5458
+ "security": [
5459
+ {
5460
+ "builderSession": []
5461
+ }
5462
+ ]
5463
+ },
5464
+ "post": {
5465
+ "operationId": "post_copy_desk_pages_pageId_draft_docx",
5466
+ "tags": [
5467
+ "copy-desk"
5468
+ ],
5469
+ "summary": "POST /copy-desk/pages/:pageId/draft.docx",
5470
+ "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).",
5471
+ "x-rank": "any-builder",
5472
+ "x-source": "modules/copy-desk/routes/copy-desk.js",
5473
+ "parameters": [
5474
+ {
5475
+ "name": "pageId",
5476
+ "in": "path",
5477
+ "required": true,
5478
+ "schema": {
5479
+ "type": "string"
5480
+ },
5481
+ "description": "Path parameter `pageId`."
5482
+ }
5483
+ ],
5484
+ "requestBody": {
5485
+ "required": false,
5486
+ "content": {
5487
+ "application/json": {
5488
+ "schema": {
5489
+ "type": "object",
5490
+ "additionalProperties": true
5491
+ }
5492
+ }
5493
+ },
5494
+ "x-validated": false,
5495
+ "x-body-undocumented": true
5496
+ },
5497
+ "responses": {
5498
+ "200": {
5499
+ "description": "Success.",
5500
+ "content": {
5501
+ "application/json": {
5502
+ "schema": {
5503
+ "$ref": "#/components/schemas/PostCopyDeskPagesPageIdDraftDocxResponse"
5504
+ }
5505
+ }
5506
+ }
5507
+ },
5508
+ "400": {
5509
+ "$ref": "#/components/responses/BadRequest"
5510
+ },
5511
+ "401": {
5512
+ "$ref": "#/components/responses/Unauthorized"
5513
+ },
5514
+ "403": {
5515
+ "$ref": "#/components/responses/Forbidden"
5516
+ },
5517
+ "404": {
5518
+ "$ref": "#/components/responses/NotFound"
5519
+ }
5520
+ },
5521
+ "security": [
5522
+ {
5523
+ "builderSession": []
5524
+ }
5525
+ ]
5526
+ }
5527
+ },
5377
5528
  "/copy-desk/pages/{pageId}/submit": {
5378
5529
  "post": {
5379
5530
  "operationId": "post_copy_desk_pages_pageId_submit",
@@ -25003,6 +25154,29 @@
25003
25154
  ],
25004
25155
  "additionalProperties": false
25005
25156
  },
25157
+ "PostCopyDeskPagesPageIdDraftDocxResponse": {
25158
+ "type": "object",
25159
+ "properties": {
25160
+ "ok": {
25161
+ "type": "boolean"
25162
+ },
25163
+ "outcome": {},
25164
+ "page_id": {},
25165
+ "round": {},
25166
+ "draft": {},
25167
+ "counter": {},
25168
+ "merge": {}
25169
+ },
25170
+ "required": [
25171
+ "ok",
25172
+ "outcome",
25173
+ "page_id",
25174
+ "round",
25175
+ "draft",
25176
+ "counter",
25177
+ "merge"
25178
+ ]
25179
+ },
25006
25180
  "PostCopyDeskProposalsRequest": {
25007
25181
  "type": "object",
25008
25182
  "properties": {
@@ -28544,9 +28718,9 @@
28544
28718
  "description": "A required dependency/feature is not configured or is temporarily down."
28545
28719
  }
28546
28720
  },
28547
- "x-endpoint-count": 451,
28548
- "x-schema-count": 486,
28549
- "x-undocumented-bodies": 9,
28550
- "x-response-schemas": 332,
28721
+ "x-endpoint-count": 454,
28722
+ "x-schema-count": 487,
28723
+ "x-undocumented-bodies": 10,
28724
+ "x-response-schemas": 333,
28551
28725
  "x-generated-by": "scripts/gds/gen-api-docs.js"
28552
28726
  }