@maycombhq/atticus 2.0.0-beta.27 → 2.0.0-beta.27.1

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 (188) hide show
  1. package/dist/bin.js +2 -2
  2. package/dist/{chunk-NYT6QGZA.js → chunk-23OQZY5Z.js} +2 -2
  3. package/dist/{chunk-QSM4K6LI.js → chunk-2AIOOA3U.js} +1 -1
  4. package/dist/{chunk-YCBDNWX3.js → chunk-2FORECYK.js} +3 -3
  5. package/dist/{chunk-4PQ4KDOA.js → chunk-2J2GMERV.js} +3 -3
  6. package/dist/{chunk-FM3EEDS2.js → chunk-2WPUSHB6.js} +5 -5
  7. package/dist/{chunk-N3JGYAMD.js → chunk-3BQDBTQJ.js} +3 -3
  8. package/dist/{chunk-4EAT7HOX.js → chunk-3CMGSQIA.js} +1 -1
  9. package/dist/{chunk-QDGNDNBG.js → chunk-3NGHSBVS.js} +5 -5
  10. package/dist/{chunk-CLYV5MB6.js → chunk-3PG6QOQF.js} +4 -4
  11. package/dist/{chunk-ZSSR5GGB.js → chunk-3PN7KJBA.js} +8 -8
  12. package/dist/{chunk-HVPS2YCW.js → chunk-3TWERSTY.js} +3 -3
  13. package/dist/{chunk-QCRQNYGI.js → chunk-3XNE6XXF.js} +3 -3
  14. package/dist/{chunk-KRTSE73S.js → chunk-3YL2GZZH.js} +4 -4
  15. package/dist/{chunk-YJTBE6AJ.js → chunk-44XGOSUU.js} +1 -1
  16. package/dist/{chunk-YAPMGK7E.js → chunk-4BK5EJ2C.js} +3 -3
  17. package/dist/{chunk-VN2VJ6BV.js → chunk-4HMOOBIR.js} +5 -5
  18. package/dist/{chunk-UWBODTY7.js → chunk-4NPWOUI2.js} +1 -1
  19. package/dist/{chunk-DAZM2INZ.js → chunk-5A4FHGTI.js} +5 -5
  20. package/dist/{chunk-TRJO2I4S.js → chunk-5CIW5RMP.js} +2 -2
  21. package/dist/{chunk-RPVL3RTX.js → chunk-5KR2DHDW.js} +4 -4
  22. package/dist/{chunk-2HCW6HXK.js → chunk-5PAIR73N.js} +8 -8
  23. package/dist/{chunk-67Y2J55V.js → chunk-5YX7MJWW.js} +6 -6
  24. package/dist/{chunk-4POSAXNC.js → chunk-5ZFLP2IK.js} +1 -1
  25. package/dist/{chunk-3GURU22K.js → chunk-66CMRGI2.js} +6 -6
  26. package/dist/{chunk-4ODVHNA6.js → chunk-6DHGNY3O.js} +2 -2
  27. package/dist/{chunk-Q4PFF2ZE.js → chunk-6ESJWPR3.js} +1 -1
  28. package/dist/{chunk-Y2TVTI4P.js → chunk-6GX3OFEZ.js} +2 -2
  29. package/dist/{chunk-QC6GSNIK.js → chunk-6H62UHY5.js} +20 -10
  30. package/dist/{chunk-LCIIFAID.js → chunk-6MSACVCY.js} +5 -5
  31. package/dist/{chunk-EYINWNXL.js → chunk-6TXB2WR6.js} +1 -1
  32. package/dist/{chunk-6DSZ4CL7.js → chunk-6VFR3DYS.js} +3 -3
  33. package/dist/{chunk-7764GVJK.js → chunk-7GZ46N4V.js} +4 -4
  34. package/dist/{chunk-AS4CTARY.js → chunk-7HUCEHUK.js} +2 -2
  35. package/dist/{chunk-SHFY73RI.js → chunk-7LOXUBRB.js} +6 -6
  36. package/dist/{chunk-B56FCIEJ.js → chunk-7SO6CGJH.js} +7 -7
  37. package/dist/{chunk-OD6RNYMQ.js → chunk-A3QZZEJA.js} +8 -8
  38. package/dist/{chunk-A7ZJKLFC.js → chunk-AHAEHBH5.js} +1 -1
  39. package/dist/{chunk-IM435QAM.js → chunk-APYIIVBH.js} +17 -17
  40. package/dist/{chunk-AIQLTDC3.js → chunk-AQLDQK2M.js} +1 -1
  41. package/dist/{chunk-GT72FDER.js → chunk-AXJCABA5.js} +4 -4
  42. package/dist/{chunk-LJLYWILK.js → chunk-AZBP5DTU.js} +3 -3
  43. package/dist/{chunk-3W2QX6TT.js → chunk-B4WPO6FX.js} +3 -3
  44. package/dist/{chunk-LTHY7E2P.js → chunk-BSGOUHL6.js} +3 -3
  45. package/dist/{chunk-HPNYSY5M.js → chunk-BV7WB32T.js} +6 -6
  46. package/dist/{chunk-DF4BXBB2.js → chunk-C5DY4R7R.js} +1 -1
  47. package/dist/{chunk-OB2DAIJX.js → chunk-CBFQO2F2.js} +18 -18
  48. package/dist/{chunk-OFYBRMRG.js → chunk-CHS5BJ34.js} +1 -1
  49. package/dist/{chunk-RWYPLODE.js → chunk-CPB4XMFI.js} +1 -1
  50. package/dist/{chunk-TD5WWJLN.js → chunk-CWJDZ5VP.js} +3 -3
  51. package/dist/{chunk-NSQB24WR.js → chunk-CWKQRP6Y.js} +10 -10
  52. package/dist/{chunk-LFHBAWIM.js → chunk-D566V3T3.js} +8 -8
  53. package/dist/{chunk-IX2EOYOU.js → chunk-DDRTAEFZ.js} +4 -4
  54. package/dist/{chunk-FS4E7F6O.js → chunk-DGNTEKF6.js} +92 -92
  55. package/dist/{chunk-Z4GLFTEH.js → chunk-DNDIT3LD.js} +2 -2
  56. package/dist/{chunk-SHIARIEZ.js → chunk-DNKYWTVZ.js} +4 -4
  57. package/dist/{chunk-ZDG637ZT.js → chunk-DS2OZXBN.js} +5 -5
  58. package/dist/{chunk-JL2VOYSL.js → chunk-DTW37FJ6.js} +3 -3
  59. package/dist/{chunk-ALCSTVWQ.js → chunk-DVQCYF3V.js} +1 -1
  60. package/dist/{chunk-EMC46SU4.js → chunk-DX7WEXYG.js} +3 -3
  61. package/dist/{chunk-OGTELPDN.js → chunk-EHT2KP5A.js} +11 -11
  62. package/dist/{chunk-LZO3JABE.js → chunk-ELZGWEK4.js} +1 -1
  63. package/dist/{chunk-CIFR3DPV.js → chunk-FBG3QHOL.js} +1 -1
  64. package/dist/{chunk-FC3ZVD3O.js → chunk-FBNJZ3VH.js} +1 -1
  65. package/dist/{chunk-WTOVWEY3.js → chunk-FFIHRQ3O.js} +19 -19
  66. package/dist/{chunk-LIHEMWIT.js → chunk-FT55WYNB.js} +7 -7
  67. package/dist/{chunk-OQ7SBQ2Z.js → chunk-FVT6LUOC.js} +1 -1
  68. package/dist/{chunk-EYVYHYCA.js → chunk-FYRBBFIF.js} +1 -1
  69. package/dist/{chunk-SVZAAOHJ.js → chunk-FZ2K3IXP.js} +11 -11
  70. package/dist/{chunk-OWP5FCYM.js → chunk-G4TFQ4EG.js} +15 -15
  71. package/dist/{chunk-TFXNOQEU.js → chunk-GEHB2LMA.js} +10 -10
  72. package/dist/{chunk-LNJKDS5C.js → chunk-GLNSLQSV.js} +8 -8
  73. package/dist/{chunk-SCOP3J6X.js → chunk-HBHPOKL2.js} +1 -1
  74. package/dist/{chunk-ROI64BAI.js → chunk-HNU4AQXB.js} +5 -5
  75. package/dist/{chunk-ZJJMYPGZ.js → chunk-HOEZQRZU.js} +2 -2
  76. package/dist/{chunk-QGMD3PYL.js → chunk-HPCGQAYH.js} +10 -10
  77. package/dist/{chunk-UYYYQTPD.js → chunk-I2NGDERG.js} +4 -4
  78. package/dist/{chunk-IXNMGPF7.js → chunk-I4P72R2F.js} +5 -5
  79. package/dist/{chunk-FG65LXED.js → chunk-IDFUGYTS.js} +1 -1
  80. package/dist/{chunk-QNDMAKQS.js → chunk-J3ZUKQLV.js} +2 -2
  81. package/dist/{chunk-MQGQ3AWK.js → chunk-J4L64TUA.js} +11 -11
  82. package/dist/{chunk-IBJE2E2S.js → chunk-JA7AUBHU.js} +6 -6
  83. package/dist/{chunk-TNSAIISO.js → chunk-JD3QDLM2.js} +11 -11
  84. package/dist/{chunk-4D4DNTFE.js → chunk-JF2HM2IF.js} +1 -1
  85. package/dist/{chunk-SCP24MJX.js → chunk-JGR4X2UA.js} +7 -7
  86. package/dist/{chunk-YQ3IXQIH.js → chunk-JOG5O2ZH.js} +2 -2
  87. package/dist/{chunk-GM6GXO2A.js → chunk-JWIAVNEC.js} +5 -5
  88. package/dist/{chunk-IMBJ7WAO.js → chunk-KMBI6IQD.js} +1 -1
  89. package/dist/{chunk-JBLM6IUA.js → chunk-KOITA526.js} +7 -7
  90. package/dist/{chunk-QDF533AW.js → chunk-KZ5G3KEN.js} +1 -1
  91. package/dist/{chunk-YSSFS3YC.js → chunk-L3KSU4QU.js} +2 -2
  92. package/dist/{chunk-G3F4BYML.js → chunk-L4WFMAHI.js} +2 -2
  93. package/dist/{chunk-3Z7ATALI.js → chunk-LAPVW2F6.js} +1 -1
  94. package/dist/{chunk-X73WLHSN.js → chunk-LCWC6NDE.js} +1 -1
  95. package/dist/{chunk-F66542M6.js → chunk-LH52QGNY.js} +2 -2
  96. package/dist/{chunk-XRWUYOX3.js → chunk-LJEEVZIH.js} +9 -9
  97. package/dist/{chunk-KF7KVUNJ.js → chunk-LKLB5IJ7.js} +1 -1
  98. package/dist/{chunk-U3Z2QZE3.js → chunk-LP6BFBE5.js} +1 -1
  99. package/dist/{chunk-WC6DHBVG.js → chunk-LQEMCF43.js} +3 -3
  100. package/dist/{chunk-GLHOUT5E.js → chunk-M25UUEKC.js} +8 -8
  101. package/dist/{chunk-76DZJTU7.js → chunk-MA44TMTL.js} +1 -1
  102. package/dist/{chunk-6XLCMDIP.js → chunk-MA73J3E6.js} +5 -5
  103. package/dist/{chunk-JTOLBS7R.js → chunk-MBIJNU3D.js} +162 -162
  104. package/dist/{chunk-N2XCT5OX.js → chunk-MIKRDA2P.js} +12 -12
  105. package/dist/{chunk-2ISR6MWD.js → chunk-MNOZDE6W.js} +5 -5
  106. package/dist/{chunk-RUNHVUCW.js → chunk-MP7W6OKP.js} +3 -3
  107. package/dist/{chunk-MPNTEWNY.js → chunk-MSNEGKI3.js} +2 -2
  108. package/dist/{chunk-AMZ4XMES.js → chunk-NJ5IEZIG.js} +5 -5
  109. package/dist/{chunk-Y2U63JKE.js → chunk-NK6JCNJX.js} +5 -5
  110. package/dist/{chunk-XPDQ4T6G.js → chunk-NNRQZUVW.js} +8 -8
  111. package/dist/{chunk-GSJ2RXE7.js → chunk-NWAMUD7B.js} +10 -10
  112. package/dist/{chunk-KOAJPMU2.js → chunk-NWQ76YQ5.js} +5 -5
  113. package/dist/{chunk-NC3Q7RIB.js → chunk-O5BUMSB3.js} +2 -2
  114. package/dist/{chunk-46N5O5H7.js → chunk-O6UC7ASJ.js} +3 -3
  115. package/dist/{chunk-Y2U4CSCA.js → chunk-OBQL7GX4.js} +11 -11
  116. package/dist/{chunk-SZOU32VF.js → chunk-OILAH2C7.js} +5 -5
  117. package/dist/{chunk-XLTT5QCX.js → chunk-OOZKLLW7.js} +10 -10
  118. package/dist/{chunk-HG24EF5S.js → chunk-ORGB6645.js} +3 -3
  119. package/dist/{chunk-QS4VX3HZ.js → chunk-OUALZ5RA.js} +1 -1
  120. package/dist/{chunk-ALUHO7SE.js → chunk-OY2VC2IU.js} +9 -9
  121. package/dist/{chunk-WCA3WIGG.js → chunk-OY6H7JX6.js} +1 -1
  122. package/dist/{chunk-CRYIBCGP.js → chunk-P7H5WZH6.js} +4 -4
  123. package/dist/{chunk-7CVHKNAF.js → chunk-PCIENCB7.js} +3 -3
  124. package/dist/{chunk-KMYB2XO7.js → chunk-PGAXZLNF.js} +6 -6
  125. package/dist/{chunk-H25QNDKK.js → chunk-PT77IUYQ.js} +5 -5
  126. package/dist/{chunk-22A2K555.js → chunk-PVJZR4JB.js} +3 -3
  127. package/dist/{chunk-IF3X6FMO.js → chunk-Q7YDUGVZ.js} +1 -1
  128. package/dist/{chunk-T2MN24LZ.js → chunk-QK3UFHFC.js} +1 -1
  129. package/dist/{chunk-EW574EZI.js → chunk-QQUAEM3U.js} +6 -6
  130. package/dist/{chunk-H7M7ZH6H.js → chunk-QU3ENIJV.js} +9 -9
  131. package/dist/{chunk-3GNUHLAN.js → chunk-QXSYFB5L.js} +2 -2
  132. package/dist/{chunk-MWRRJDXQ.js → chunk-R6KZWNZM.js} +13 -13
  133. package/dist/{chunk-ARXZTHEI.js → chunk-R7NPDUBL.js} +3 -3
  134. package/dist/{chunk-FSYJPYLE.js → chunk-R7VX5BSP.js} +3 -3
  135. package/dist/{chunk-AANQC5QP.js → chunk-RCPWEZD7.js} +11 -11
  136. package/dist/{chunk-CDC6VECU.js → chunk-RDFRB26Z.js} +2 -2
  137. package/dist/{chunk-YXG2VQJJ.js → chunk-RTHQIGGY.js} +10 -10
  138. package/dist/{chunk-K73BHPTQ.js → chunk-RX2SMQV3.js} +4 -4
  139. package/dist/{chunk-2666BPJE.js → chunk-RZEYZOLW.js} +2 -2
  140. package/dist/{chunk-7YMAMNMT.js → chunk-S5O57P5P.js} +4 -4
  141. package/dist/{chunk-V6MLVGTP.js → chunk-SJ2Z3AWF.js} +1 -1
  142. package/dist/{chunk-2ALBHI4Q.js → chunk-SKVLJL2E.js} +11 -11
  143. package/dist/{chunk-V34N6JAN.js → chunk-SP5BWA5H.js} +13 -13
  144. package/dist/{chunk-CHEFUNZ4.js → chunk-SRIU7L4Z.js} +2 -2
  145. package/dist/{chunk-IJHJIL6T.js → chunk-SSYD4XIW.js} +4 -4
  146. package/dist/{chunk-62LD7CSY.js → chunk-TLSL7OII.js} +3 -3
  147. package/dist/{chunk-NN7K2LLN.js → chunk-TM2WY65Q.js} +7 -7
  148. package/dist/{chunk-KKUCBKJE.js → chunk-TMMGQBLO.js} +5 -5
  149. package/dist/{chunk-5XW6RUDV.js → chunk-TOSHT6NJ.js} +1 -1
  150. package/dist/{chunk-P6Y2J2QY.js → chunk-TPKDYSHO.js} +1 -1
  151. package/dist/{chunk-7GXM45T5.js → chunk-TQISA4VW.js} +15 -15
  152. package/dist/{chunk-U7L3ORPK.js → chunk-TUMHMISE.js} +4 -4
  153. package/dist/{chunk-6G67LSBG.js → chunk-U36V664P.js} +18 -18
  154. package/dist/{chunk-XMIS25ZJ.js → chunk-U4K34CXK.js} +5 -5
  155. package/dist/{chunk-F74OMLNU.js → chunk-UGJSKAZ2.js} +1 -1
  156. package/dist/{chunk-CLBVKD4P.js → chunk-UMIZYX3U.js} +3 -3
  157. package/dist/{chunk-BIOKDLLX.js → chunk-USYDJY63.js} +3 -3
  158. package/dist/{chunk-FKAUBC4Y.js → chunk-UXETN43F.js} +1 -1
  159. package/dist/{chunk-7FEIS3KV.js → chunk-V6BP4XHZ.js} +8 -8
  160. package/dist/{chunk-IAVVJ34R.js → chunk-V7DGFWDB.js} +6 -6
  161. package/dist/{chunk-UDTO3U6E.js → chunk-VGXE7XFO.js} +4 -4
  162. package/dist/{chunk-OC3OXDTG.js → chunk-VSED7FYC.js} +1 -1
  163. package/dist/{chunk-NCNLX4DL.js → chunk-VTQ55N4O.js} +4 -4
  164. package/dist/{chunk-V3Y5P7OS.js → chunk-VX5CORDG.js} +7 -7
  165. package/dist/{chunk-J6GO3K7G.js → chunk-W4SWXJZQ.js} +4 -4
  166. package/dist/{chunk-W2A4NHQD.js → chunk-W5UMEIYG.js} +5 -5
  167. package/dist/{chunk-KNYQUWFN.js → chunk-W7NNZFIL.js} +5 -5
  168. package/dist/{chunk-AVUPW23W.js → chunk-WNRIL6JQ.js} +3 -3
  169. package/dist/{chunk-6OEB4FTC.js → chunk-WPZCSFND.js} +7 -7
  170. package/dist/{chunk-H7NRWSMP.js → chunk-WTGQJXRJ.js} +13 -13
  171. package/dist/{chunk-GW6ZH77P.js → chunk-WTLFRINF.js} +18 -18
  172. package/dist/{chunk-VC2XHC7P.js → chunk-XKWPEY4B.js} +6 -6
  173. package/dist/{chunk-L3AM5YRP.js → chunk-XRNMQZFC.js} +6 -6
  174. package/dist/{chunk-H3RKW4RF.js → chunk-XRTECHVH.js} +3 -3
  175. package/dist/{chunk-SVOGRJO6.js → chunk-YBAJ5SAR.js} +1 -1
  176. package/dist/{chunk-P36PTWBM.js → chunk-YHS7TSQS.js} +2 -2
  177. package/dist/{chunk-PDJL2HO5.js → chunk-YPXBGNUV.js} +5 -5
  178. package/dist/{chunk-BABATPOZ.js → chunk-YTPND655.js} +3 -3
  179. package/dist/{chunk-KLFFHBWG.js → chunk-YZUOOTC3.js} +10 -10
  180. package/dist/{chunk-EQEDIWFQ.js → chunk-Z245SJ64.js} +8 -8
  181. package/dist/{chunk-Z65FWO6A.js → chunk-Z5CIRZNO.js} +17 -17
  182. package/dist/{chunk-7YWS47SE.js → chunk-ZCARJ77R.js} +13 -13
  183. package/dist/{chunk-ZIIBQHCX.js → chunk-ZNZYMUBK.js} +11 -11
  184. package/dist/{chunk-3PWXVBCB.js → chunk-ZQZRNVNS.js} +9 -9
  185. package/dist/{chunk-4LWA5VMJ.js → chunk-ZT6GPGZ4.js} +13 -13
  186. package/dist/{chunk-VCYE4MUD.js → chunk-ZW3OEHLT.js} +7 -7
  187. package/dist/files.json +491 -491
  188. package/package.json +6 -6
@@ -9,7 +9,7 @@ import {
9
9
  import {
10
10
  changeProblems,
11
11
  missingChangeWords
12
- } from "./chunk-V6MLVGTP.js";
12
+ } from "./chunk-SJ2Z3AWF.js";
13
13
  import {
14
14
  FORCE_STEPS,
15
15
  appLines,
@@ -26,8 +26,8 @@ import {
26
26
  } from "./chunk-EFDUC35B.js";
27
27
  import {
28
28
  uiCiteRoutes
29
- } from "./chunk-3GNUHLAN.js";
30
- import "./chunk-Q4PFF2ZE.js";
29
+ } from "./chunk-QXSYFB5L.js";
30
+ import "./chunk-6ESJWPR3.js";
31
31
  import {
32
32
  conformanceCommand
33
33
  } from "./chunk-UDM6HGF4.js";
@@ -39,7 +39,7 @@ import {
39
39
  releaseNotesCommand,
40
40
  releasePlanCommand,
41
41
  releaseSecurityCommand
42
- } from "./chunk-TRJO2I4S.js";
42
+ } from "./chunk-5CIW5RMP.js";
43
43
  import {
44
44
  historyEntry,
45
45
  listHistory
@@ -51,13 +51,13 @@ import {
51
51
  changeReleasePrs,
52
52
  changeSync,
53
53
  syncAfterManualStep
54
- } from "./chunk-7GXM45T5.js";
54
+ } from "./chunk-TQISA4VW.js";
55
55
  import {
56
56
  executorsCheck,
57
57
  todoDone,
58
58
  todoRun,
59
59
  todoShow
60
- } from "./chunk-QNDMAKQS.js";
60
+ } from "./chunk-J3ZUKQLV.js";
61
61
  import {
62
62
  inputsSha256,
63
63
  loadExecutors
@@ -69,45 +69,45 @@ import {
69
69
  lessonsFor,
70
70
  readProgress,
71
71
  sandboxCreate
72
- } from "./chunk-6DSZ4CL7.js";
72
+ } from "./chunk-6VFR3DYS.js";
73
73
  import {
74
74
  defencesScan,
75
75
  evalRun
76
- } from "./chunk-QSM4K6LI.js";
76
+ } from "./chunk-2AIOOA3U.js";
77
77
  import {
78
78
  listReports,
79
79
  readQuality
80
- } from "./chunk-6XLCMDIP.js";
80
+ } from "./chunk-MA73J3E6.js";
81
81
  import {
82
82
  estimateOf
83
- } from "./chunk-GT72FDER.js";
83
+ } from "./chunk-AXJCABA5.js";
84
84
  import {
85
85
  changeMapBody,
86
86
  changeMapOf,
87
87
  targetFlowsOf
88
- } from "./chunk-46N5O5H7.js";
89
- import "./chunk-EYINWNXL.js";
88
+ } from "./chunk-O6UC7ASJ.js";
89
+ import "./chunk-6TXB2WR6.js";
90
90
  import {
91
91
  readServiceRequests
92
- } from "./chunk-2ISR6MWD.js";
92
+ } from "./chunk-MNOZDE6W.js";
93
93
  import {
94
94
  runDone,
95
95
  taskRun,
96
96
  taskRunNotWaiting
97
- } from "./chunk-CLYV5MB6.js";
97
+ } from "./chunk-3PG6QOQF.js";
98
98
  import {
99
99
  changeNextStep
100
- } from "./chunk-YCBDNWX3.js";
100
+ } from "./chunk-2FORECYK.js";
101
101
  import {
102
102
  digestCommand
103
- } from "./chunk-H3RKW4RF.js";
103
+ } from "./chunk-XRTECHVH.js";
104
104
  import {
105
105
  reconcileCommand
106
- } from "./chunk-4D4DNTFE.js";
106
+ } from "./chunk-JF2HM2IF.js";
107
107
  import {
108
108
  sourcesAdd,
109
109
  sourcesSync
110
- } from "./chunk-5XW6RUDV.js";
110
+ } from "./chunk-TOSHT6NJ.js";
111
111
  import {
112
112
  INPUTS_SOURCE_ID
113
113
  } from "./chunk-EM6DKBTJ.js";
@@ -115,13 +115,13 @@ import {
115
115
  boxesOf,
116
116
  candidatesOf,
117
117
  uiLinkRoutes
118
- } from "./chunk-OD6RNYMQ.js";
118
+ } from "./chunk-A3QZZEJA.js";
119
119
  import {
120
120
  DecideError,
121
121
  correctDecision,
122
122
  decisionsView,
123
123
  undoBatch
124
- } from "./chunk-LFHBAWIM.js";
124
+ } from "./chunk-D566V3T3.js";
125
125
  import {
126
126
  answerAudit,
127
127
  auditLines,
@@ -129,28 +129,28 @@ import {
129
129
  precisionOf,
130
130
  prepareAudit,
131
131
  writeAudit
132
- } from "./chunk-CRYIBCGP.js";
132
+ } from "./chunk-P7H5WZH6.js";
133
133
  import {
134
134
  readNextState,
135
135
  uiOnboardingRoutes
136
- } from "./chunk-YXG2VQJJ.js";
137
- import "./chunk-ALCSTVWQ.js";
136
+ } from "./chunk-RTHQIGGY.js";
137
+ import "./chunk-DVQCYF3V.js";
138
138
  import {
139
139
  idFromUrl
140
- } from "./chunk-IMBJ7WAO.js";
140
+ } from "./chunk-KMBI6IQD.js";
141
141
  import "./chunk-X7XVMYIL.js";
142
142
  import {
143
143
  matchDone,
144
144
  quotesOf,
145
145
  readMatch,
146
146
  runMatch
147
- } from "./chunk-B56FCIEJ.js";
148
- import "./chunk-HVPS2YCW.js";
149
- import "./chunk-AMZ4XMES.js";
147
+ } from "./chunk-7SO6CGJH.js";
148
+ import "./chunk-3TWERSTY.js";
149
+ import "./chunk-NJ5IEZIG.js";
150
150
  import {
151
151
  copilotAcpAllowed
152
- } from "./chunk-KMYB2XO7.js";
153
- import "./chunk-IXNMGPF7.js";
152
+ } from "./chunk-PGAXZLNF.js";
153
+ import "./chunk-I4P72R2F.js";
154
154
  import "./chunk-CLM5Z3R5.js";
155
155
  import "./chunk-GZILYRGC.js";
156
156
  import {
@@ -159,38 +159,38 @@ import {
159
159
  keepAnswersWhileWatched,
160
160
  keptAnswer,
161
161
  uiTrustRoutes
162
- } from "./chunk-VN2VJ6BV.js";
162
+ } from "./chunk-4HMOOBIR.js";
163
163
  import {
164
164
  contractCheckOf,
165
165
  estateJoinOnFile,
166
166
  stampOf
167
- } from "./chunk-FM3EEDS2.js";
168
- import "./chunk-P36PTWBM.js";
167
+ } from "./chunk-2WPUSHB6.js";
168
+ import "./chunk-YHS7TSQS.js";
169
169
  import {
170
170
  readRepos
171
- } from "./chunk-FC3ZVD3O.js";
171
+ } from "./chunk-FBNJZ3VH.js";
172
172
  import {
173
173
  filesUnder,
174
174
  memoByFiles,
175
175
  recheckNow,
176
176
  uiFactsRoutes
177
- } from "./chunk-F66542M6.js";
177
+ } from "./chunk-LH52QGNY.js";
178
178
  import {
179
179
  safeMessage,
180
180
  withFileLock
181
181
  } from "./chunk-SFCFL7Y5.js";
182
- import "./chunk-UYYYQTPD.js";
182
+ import "./chunk-I2NGDERG.js";
183
183
  import {
184
184
  syncNextOf
185
185
  } from "./chunk-EHXDB3SA.js";
186
186
  import "./chunk-OUGTAOGA.js";
187
- import "./chunk-FG65LXED.js";
187
+ import "./chunk-IDFUGYTS.js";
188
188
  import "./chunk-YAPVAYZN.js";
189
189
  import {
190
190
  MACHINE_CHECKING,
191
191
  baselineCommand,
192
192
  setupSteps
193
- } from "./chunk-Z4GLFTEH.js";
193
+ } from "./chunk-DNDIT3LD.js";
194
194
  import {
195
195
  readMe,
196
196
  writeMe
@@ -208,8 +208,8 @@ import {
208
208
  settleTaskPr,
209
209
  stopAllBuilds,
210
210
  taskRunOfRun
211
- } from "./chunk-SHFY73RI.js";
212
- import "./chunk-FKAUBC4Y.js";
211
+ } from "./chunk-7LOXUBRB.js";
212
+ import "./chunk-UXETN43F.js";
213
213
  import "./chunk-VVLWEM2Y.js";
214
214
  import {
215
215
  checkoutOf
@@ -217,59 +217,59 @@ import {
217
217
  import "./chunk-FADIWOA5.js";
218
218
  import {
219
219
  intakeContext
220
- } from "./chunk-YJTBE6AJ.js";
221
- import "./chunk-LZO3JABE.js";
220
+ } from "./chunk-44XGOSUU.js";
221
+ import "./chunk-ELZGWEK4.js";
222
222
  import {
223
223
  scanCommand,
224
224
  scanSummaryLines
225
- } from "./chunk-VC2XHC7P.js";
226
- import "./chunk-OQ7SBQ2Z.js";
225
+ } from "./chunk-XKWPEY4B.js";
226
+ import "./chunk-FVT6LUOC.js";
227
227
  import {
228
228
  catalogRecords,
229
229
  openChanges,
230
230
  systemGuide
231
- } from "./chunk-CDC6VECU.js";
231
+ } from "./chunk-RDFRB26Z.js";
232
232
  import {
233
233
  doctorChecks
234
- } from "./chunk-2666BPJE.js";
234
+ } from "./chunk-RZEYZOLW.js";
235
235
  import {
236
236
  isMetarepo
237
237
  } from "./chunk-3G4YI4ZU.js";
238
238
  import {
239
239
  workspaceOpen,
240
240
  workspaceSync
241
- } from "./chunk-QGMD3PYL.js";
242
- import "./chunk-IF3X6FMO.js";
243
- import "./chunk-RWYPLODE.js";
241
+ } from "./chunk-HPCGQAYH.js";
242
+ import "./chunk-Q7YDUGVZ.js";
243
+ import "./chunk-CPB4XMFI.js";
244
244
  import {
245
245
  readChangeTasks,
246
246
  readStory,
247
247
  setTaskDone
248
- } from "./chunk-YSSFS3YC.js";
248
+ } from "./chunk-L3KSU4QU.js";
249
249
  import {
250
250
  planStories,
251
251
  snowDraft,
252
252
  snowSubmit
253
- } from "./chunk-OC3OXDTG.js";
253
+ } from "./chunk-VSED7FYC.js";
254
254
  import "./chunk-4UVTNHA6.js";
255
255
  import {
256
256
  ciArchiveGate
257
- } from "./chunk-IX2EOYOU.js";
257
+ } from "./chunk-DDRTAEFZ.js";
258
258
  import {
259
259
  traceMatrix
260
- } from "./chunk-YAPMGK7E.js";
260
+ } from "./chunk-4BK5EJ2C.js";
261
261
  import "./chunk-MUWDB4R4.js";
262
262
  import {
263
263
  archiveGate
264
- } from "./chunk-62LD7CSY.js";
265
- import "./chunk-QCRQNYGI.js";
266
- import "./chunk-XRWUYOX3.js";
267
- import "./chunk-N3JGYAMD.js";
268
- import "./chunk-ZJJMYPGZ.js";
264
+ } from "./chunk-TLSL7OII.js";
265
+ import "./chunk-3XNE6XXF.js";
266
+ import "./chunk-LJEEVZIH.js";
267
+ import "./chunk-3BQDBTQJ.js";
268
+ import "./chunk-HOEZQRZU.js";
269
269
  import {
270
270
  initiativeStatus,
271
271
  readView
272
- } from "./chunk-NYT6QGZA.js";
272
+ } from "./chunk-23OQZY5Z.js";
273
273
  import {
274
274
  CORRECTIONS_FILE,
275
275
  FEATURE_FILE,
@@ -319,7 +319,7 @@ import {
319
319
  syncWorkItems,
320
320
  threadReplies,
321
321
  writeSketch
322
- } from "./chunk-JL2VOYSL.js";
322
+ } from "./chunk-DTW37FJ6.js";
323
323
  import {
324
324
  FeaturePlacement,
325
325
  STAGES,
@@ -337,7 +337,7 @@ import {
337
337
  requireConfirmation,
338
338
  startServer,
339
339
  strParam
340
- } from "./chunk-Y2TVTI4P.js";
340
+ } from "./chunk-6GX3OFEZ.js";
341
341
  import {
342
342
  addressRefusal,
343
343
  asTheApp,
@@ -345,7 +345,7 @@ import {
345
345
  requireConfirmedModel,
346
346
  servingTheApp,
347
347
  whereKeyGoes
348
- } from "./chunk-WCA3WIGG.js";
348
+ } from "./chunk-OY6H7JX6.js";
349
349
  import "./chunk-4XK3HLOH.js";
350
350
  import {
351
351
  ASSISTANT_FORMATS,
@@ -356,8 +356,8 @@ import {
356
356
  critic,
357
357
  criticStats,
358
358
  findingAction
359
- } from "./chunk-TD5WWJLN.js";
360
- import "./chunk-NC3Q7RIB.js";
359
+ } from "./chunk-CWJDZ5VP.js";
360
+ import "./chunk-O5BUMSB3.js";
361
361
  import "./chunk-VOGCSYOI.js";
362
362
  import {
363
363
  layerRules,
@@ -371,7 +371,7 @@ import {
371
371
  readStoryIndex,
372
372
  reviewedGates,
373
373
  roundsOf
374
- } from "./chunk-U3Z2QZE3.js";
374
+ } from "./chunk-LP6BFBE5.js";
375
375
  import {
376
376
  ChangeOwnersError,
377
377
  artifactFiles,
@@ -393,7 +393,7 @@ import {
393
393
  setChangeOwners,
394
394
  unmergedTaskBranches,
395
395
  unmergedTaskWords
396
- } from "./chunk-SVOGRJO6.js";
396
+ } from "./chunk-YBAJ5SAR.js";
397
397
  import "./chunk-23TTURB2.js";
398
398
  import {
399
399
  componentRenames,
@@ -408,7 +408,7 @@ import {
408
408
  readCatalog,
409
409
  readCrossCheck,
410
410
  targetPicker
411
- } from "./chunk-QC6GSNIK.js";
411
+ } from "./chunk-6H62UHY5.js";
412
412
  import {
413
413
  NoSuchNode,
414
414
  buildEstate,
@@ -440,7 +440,7 @@ import {
440
440
  snapshotSources,
441
441
  writeReview
442
442
  } from "./chunk-N5DLB74D.js";
443
- import "./chunk-UWBODTY7.js";
443
+ import "./chunk-4NPWOUI2.js";
444
444
  import {
445
445
  fileStepStore,
446
446
  manualAdapter,
@@ -473,7 +473,7 @@ import {
473
473
  import "./chunk-ELJ5Q4J2.js";
474
474
  import "./chunk-XZY4GTCX.js";
475
475
  import "./chunk-3M3MDBOG.js";
476
- import "./chunk-T2MN24LZ.js";
476
+ import "./chunk-QK3UFHFC.js";
477
477
  import "./chunk-3PBIZBWN.js";
478
478
  import {
479
479
  ADAPTER_FIELDS,
@@ -1072,19 +1072,19 @@ async function changesWithWorktrees(root) {
1072
1072
  function uiStepRoutes(r, ctx, asJob) {
1073
1073
  const root = ctx.root;
1074
1074
  return r.add("POST", "/api/facts/apply-all", async () => {
1075
- const { verifyAllCommand } = await import("./chunk-QDGNDNBG.js");
1075
+ const { verifyAllCommand } = await import("./chunk-3NGHSBVS.js");
1076
1076
  return asJob("Applying to every repo", () => captured((io) => verifyAllCommand(root, { write: true, verbose: false, json: false }, io)));
1077
1077
  }).add("POST", "/api/estate/join", async () => {
1078
- const { estateJoin } = await import("./chunk-67Y2J55V.js");
1078
+ const { estateJoin } = await import("./chunk-5YX7MJWW.js");
1079
1079
  return asJob("Joining the estate's flows", () => captured((io) => estateJoin(root, { json: false }, io)));
1080
1080
  }).add("POST", "/api/knowledge/sources/sync", async () => {
1081
- const { sourcesSync: sourcesSync2 } = await import("./chunk-BABATPOZ.js");
1081
+ const { sourcesSync: sourcesSync2 } = await import("./chunk-YTPND655.js");
1082
1082
  return asJob("Syncing every wiki", () => captured((io) => sourcesSync2(root, io, { json: false })));
1083
1083
  }).add("POST", "/api/workspace/prune", async ({ body }) => {
1084
1084
  const change = body?.change;
1085
1085
  if (change !== void 0 && (typeof change !== "string" || !ID2.test(change)))
1086
1086
  throw badRequest("change is a change id, or left out for every change with worktrees.");
1087
- const { workspacePrune } = await import("./chunk-OWP5FCYM.js");
1087
+ const { workspacePrune } = await import("./chunk-G4TFQ4EG.js");
1088
1088
  return asJob(change ? `Cleaning up ${change}'s worktrees` : "Cleaning up worktrees", () => captured(async (io) => {
1089
1089
  const list = change ? [change] : await changesWithWorktrees(root);
1090
1090
  if (!list.length) {
@@ -1099,7 +1099,7 @@ function uiStepRoutes(r, ctx, asJob) {
1099
1099
  return code;
1100
1100
  }));
1101
1101
  }).add("GET", "/api/changes/{changeId}/tasks/{taskId}/context", async ({ params }) => {
1102
- const { taskContextCli } = await import("./chunk-ALUHO7SE.js");
1102
+ const { taskContextCli } = await import("./chunk-OY2VC2IU.js");
1103
1103
  const lines = [];
1104
1104
  const errs = [];
1105
1105
  const code = await taskContextCli(root, params.changeId, params.taskId, { markdown: true }, { out: (l) => lines.push(l), err: (l) => errs.push(l) });
@@ -1164,7 +1164,7 @@ function coalesced(work) {
1164
1164
  }
1165
1165
  function uiCatalogRoutes(r, ctx, asJob) {
1166
1166
  const root = ctx.root;
1167
- const buildViewNow = coalesced(async () => (await import("./chunk-3W2QX6TT.js")).catalogBuildView(root));
1167
+ const buildViewNow = coalesced(async () => (await import("./chunk-B4WPO6FX.js")).catalogBuildView(root));
1168
1168
  const repoOf2 = (params) => {
1169
1169
  const repo = params.repo ?? "";
1170
1170
  if (!REPO.test(repo))
@@ -1186,7 +1186,7 @@ function uiCatalogRoutes(r, ctx, asJob) {
1186
1186
  throw notFound(`${repo} isn't a repo the manifests list.`);
1187
1187
  const head = await headOf(root, repo);
1188
1188
  const promoted = await promotedStates(root, repo, one.items.filter((i) => i.state === "readers-only").map((i) => i.key));
1189
- const { readersValueSha } = await import("./chunk-YQ3IXQIH.js");
1189
+ const { readersValueSha } = await import("./chunk-JOG5O2ZH.js");
1190
1190
  const items = one.items.map((i) => {
1191
1191
  const p = i.state === "readers-only" ? promoted.get(i.key) : void 0;
1192
1192
  const sha5 = i.state === "readers-only" || i.state === "disagree" ? { readersSha256: readersValueSha(i.readers?.value) } : {};
@@ -1204,8 +1204,8 @@ function uiCatalogRoutes(r, ctx, asJob) {
1204
1204
  const v = await readCrossCheck(root, { repo });
1205
1205
  if (!v.repos[0])
1206
1206
  throw notFound(`${repo} isn't a repo the manifests list.`);
1207
- const { planPromote } = await import("./chunk-MPNTEWNY.js");
1208
- const { checkoutLineOf } = await import("./chunk-YQ3IXQIH.js");
1207
+ const { planPromote } = await import("./chunk-MSNEGKI3.js");
1208
+ const { checkoutLineOf } = await import("./chunk-JOG5O2ZH.js");
1209
1209
  const { next: _next, ...plan } = await planPromote(root, repo, key, {
1210
1210
  lineOf: checkoutLineOf(root, repo)
1211
1211
  });
@@ -1217,14 +1217,14 @@ function uiCatalogRoutes(r, ctx, asJob) {
1217
1217
  const v = await readCrossCheck(root, { repo });
1218
1218
  if (!v.repos[0])
1219
1219
  throw notFound(`${repo} isn't a repo the manifests list.`);
1220
- const { planPromote } = await import("./chunk-MPNTEWNY.js");
1221
- const { catalogCrossCheck, checkoutLineOf } = await import("./chunk-YQ3IXQIH.js");
1220
+ const { planPromote } = await import("./chunk-MSNEGKI3.js");
1221
+ const { catalogCrossCheck, checkoutLineOf } = await import("./chunk-JOG5O2ZH.js");
1222
1222
  const plan = await planPromote(root, repo, b.key, { lineOf: checkoutLineOf(root, repo) });
1223
1223
  if (!plan.can)
1224
1224
  throw conflict(`${b.key} can't be promoted now: ${plan.why}. Nothing written.`);
1225
1225
  if (plan.sha256 !== b.sha256)
1226
1226
  throw conflict(`The fact promoting ${b.key} writes isn't the one the page showed any more. Nothing written: look at it again.`);
1227
- const { verifyCommand } = await import("./chunk-QDGNDNBG.js");
1227
+ const { verifyCommand } = await import("./chunk-3NGHSBVS.js");
1228
1228
  return asJob(`Promote on ${repo}`, () => captured(async (io) => {
1229
1229
  const code = await catalogCrossCheck(root, { repo, promote: b.key, expect: b.sha256 }, io);
1230
1230
  if (code !== 0)
@@ -1238,7 +1238,7 @@ function uiCatalogRoutes(r, ctx, asJob) {
1238
1238
  const one = v.repos[0];
1239
1239
  if (!one)
1240
1240
  throw notFound(`${repo} isn't a repo the manifests list.`);
1241
- const { catalogCrossCheck, readersValueSha } = await import("./chunk-YQ3IXQIH.js");
1241
+ const { catalogCrossCheck, readersValueSha } = await import("./chunk-JOG5O2ZH.js");
1242
1242
  const item2 = one.items.find((i) => i.key === b.key);
1243
1243
  if (b.undo) {
1244
1244
  if (!item2?.dismissed)
@@ -1263,11 +1263,11 @@ function uiCatalogRoutes(r, ctx, asJob) {
1263
1263
  if (counted && b.plan === void 0)
1264
1264
  throw badRequest("plan is GET /api/build's pending.plan for the list being confirmed.");
1265
1265
  if (b.plan !== void 0) {
1266
- const { catalogBuildView } = await import("./chunk-3W2QX6TT.js");
1266
+ const { catalogBuildView } = await import("./chunk-B4WPO6FX.js");
1267
1267
  if ((await catalogBuildView(root)).pending.plan !== b.plan)
1268
1268
  throw conflict("What the build would remove or discard isn't what the page listed any more. Nothing written: look at the list again.");
1269
1269
  }
1270
- const { catalogBuild } = await import("./chunk-22A2K555.js");
1270
+ const { catalogBuild } = await import("./chunk-PVJZR4JB.js");
1271
1271
  const flags = [
1272
1272
  ...b.allowRemovals !== void 0 ? [`--allow-removals ${b.allowRemovals}`] : [],
1273
1273
  ...b.discardEdits !== void 0 ? [`--discard-edits ${b.discardEdits}`] : []
@@ -1279,27 +1279,27 @@ function uiCatalogRoutes(r, ctx, asJob) {
1279
1279
  }, io)));
1280
1280
  }).add("POST", "/api/build/edits/curate", async ({ body }) => {
1281
1281
  const b = parse(api_exports.CatalogEditsRequest, body);
1282
- const { catalogBuildView } = await import("./chunk-3W2QX6TT.js");
1282
+ const { catalogBuildView } = await import("./chunk-B4WPO6FX.js");
1283
1283
  const view3 = await catalogBuildView(root);
1284
1284
  const now = view3.pending.refused;
1285
1285
  const edits = now?.reasons.includes("hand-edits") ? now.edits ?? [] : [];
1286
1286
  if (edits.length !== b.count || view3.pending.plan !== b.plan)
1287
1287
  throw conflict(edits.length !== b.count ? `The page listed ${b.count} hand ${b.count === 1 ? "edit" : "edits"}; there ${edits.length === 1 ? "is" : "are"} ${edits.length} now. Nothing was made curated: look at the list again.` : "The hand edits aren't the ones the page listed any more. Nothing was made curated: look at the list again.");
1288
- const { catalogBuild, catalogEdits } = await import("./chunk-22A2K555.js");
1288
+ const { catalogBuild, catalogEdits } = await import("./chunk-PVJZR4JB.js");
1289
1289
  return asJob("Make the hand edits curated, then build", () => captured(async (io) => {
1290
1290
  const code = await catalogEdits(root, { curate: true, by: ctx.user, plan: b.plan }, io);
1291
1291
  return code === 0 ? catalogBuild(root, {}, io) : code;
1292
1292
  }));
1293
1293
  }).add("GET", "/api/build/undo", async ({ query }) => {
1294
1294
  const n = intParam(query, "n", 1, 1e6);
1295
- const { catalogUndoView } = await import("./chunk-3W2QX6TT.js");
1295
+ const { catalogUndoView } = await import("./chunk-B4WPO6FX.js");
1296
1296
  return {
1297
1297
  status: 200,
1298
1298
  body: api_exports.CatalogUndoView.parse(await catalogUndoView(root, n))
1299
1299
  };
1300
1300
  }).add("POST", "/api/build/undo", async ({ body }) => {
1301
1301
  const b = parse(api_exports.CatalogUndoRequest, body);
1302
- const { catalogUndoView } = await import("./chunk-3W2QX6TT.js");
1302
+ const { catalogUndoView } = await import("./chunk-B4WPO6FX.js");
1303
1303
  const v = await catalogUndoView(root, b.n);
1304
1304
  if (!v.plan)
1305
1305
  throw conflict(v.problem ?? `There are fewer than ${b.n} builds to undo here.`);
@@ -1307,30 +1307,30 @@ function uiCatalogRoutes(r, ctx, asJob) {
1307
1307
  throw conflict(`The page listed ${b.files} ${b.files === 1 ? "file" : "files"} to put back; taking back the ${b.n === 1 ? "latest build" : `${b.n} latest builds`} puts back ${v.plan.files.length} now. Nothing was undone: look at the list again.`);
1308
1308
  if (v.plan.hash !== b.plan)
1309
1309
  throw conflict("The builds to take back or their files aren't the ones the page listed any more. Nothing was undone: look at the list again.");
1310
- const { catalogUndo } = await import("./chunk-22A2K555.js");
1310
+ const { catalogUndo } = await import("./chunk-PVJZR4JB.js");
1311
1311
  return asJob(`atticus catalog undo ${b.n} --yes`, () => captured((io) => catalogUndo(root, { n: b.n, yes: true, plan: b.plan }, io)));
1312
1312
  }).add("GET", "/api/build/prune", async () => {
1313
- const { catalogPruneView } = await import("./chunk-3W2QX6TT.js");
1313
+ const { catalogPruneView } = await import("./chunk-B4WPO6FX.js");
1314
1314
  return {
1315
1315
  status: 200,
1316
1316
  body: api_exports.CatalogPruneView.parse(await catalogPruneView(root))
1317
1317
  };
1318
1318
  }).add("POST", "/api/build/prune", async ({ body }) => {
1319
1319
  const b = parse(api_exports.CatalogPruneRequest, body);
1320
- const { catalogPruneView } = await import("./chunk-3W2QX6TT.js");
1320
+ const { catalogPruneView } = await import("./chunk-B4WPO6FX.js");
1321
1321
  const v = await catalogPruneView(root);
1322
1322
  if (v.files.length !== b.count)
1323
1323
  throw conflict(`The page listed ${b.count} ${b.count === 1 ? "file" : "files"} to remove; there ${v.files.length === 1 ? "is" : "are"} ${v.files.length} now. Nothing was removed: look at the list again.`);
1324
1324
  if (v.plan !== b.plan)
1325
1325
  throw conflict("The files to remove aren't the ones the page listed any more. Nothing was removed: look at the list again.");
1326
- const { catalogPrune } = await import("./chunk-22A2K555.js");
1326
+ const { catalogPrune } = await import("./chunk-PVJZR4JB.js");
1327
1327
  return asJob("atticus catalog prune --yes", () => captured((io) => catalogPrune(root, { yes: true, plan: b.plan }, io)));
1328
1328
  }).add("GET", "/api/build/upgrade", async () => {
1329
- const { catalogUpgradeView } = await import("./chunk-3W2QX6TT.js");
1329
+ const { catalogUpgradeView } = await import("./chunk-B4WPO6FX.js");
1330
1330
  return { status: 200, body: api_exports.CatalogUpgradeView.parse(await catalogUpgradeView(root)) };
1331
1331
  }).add("POST", "/api/build/upgrade", async ({ body }) => {
1332
1332
  const b = parse(api_exports.CatalogUpgradeRequest, body);
1333
- const { catalogUpgradeView } = await import("./chunk-3W2QX6TT.js");
1333
+ const { catalogUpgradeView } = await import("./chunk-B4WPO6FX.js");
1334
1334
  const v = await catalogUpgradeView(root);
1335
1335
  if (!v.pending)
1336
1336
  throw conflict("Nothing to upgrade: catalog/sources is here already.");
@@ -1343,7 +1343,7 @@ function uiCatalogRoutes(r, ctx, asJob) {
1343
1343
  throw conflict("The first build changes nothing now, so there is nothing to accept. Nothing written: look at the list again.");
1344
1344
  if (v.writes.length !== b.count || v.plan !== b.plan)
1345
1345
  throw conflict(`The page listed ${b.count} ${b.count === 1 ? "file" : "files"} to write; the upgrade writes ${v.writes.length === b.count ? "other files" : `${v.writes.length}`} now. Nothing written: look at the list again.`);
1346
- const { upgradeCommand } = await import("./chunk-NSQB24WR.js");
1346
+ const { upgradeCommand } = await import("./chunk-CWKQRP6Y.js");
1347
1347
  return asJob(accept ? `atticus upgrade --yes --accept-changes ${accept}` : "atticus upgrade --yes", () => captured((io) => upgradeCommand(root, { by: ctx.user, yes: true, ...accept ? { acceptChanges: accept } : {} }, io)));
1348
1348
  });
1349
1349
  }
@@ -1667,7 +1667,7 @@ async function changeDetail(root, id) {
1667
1667
  state: c.state,
1668
1668
  // ADR 0191 (app-only audit): the repos it names and its target flows' ("Name its repos on its
1669
1669
  // brief" stayed after the stories named them; the brief has no repos).
1670
- repos: await (await import("./chunk-H25QNDKK.js")).changeRepos(root, c),
1670
+ repos: await (await import("./chunk-PT77IUYQ.js")).changeRepos(root, c),
1671
1671
  openFindings: open,
1672
1672
  updatedAt: c.history.at(-1)?.at ?? c.createdAt,
1673
1673
  ...fast ? { fastPath: true } : {},
@@ -1838,7 +1838,7 @@ function uiRoutes(r, ctx, deps = {}) {
1838
1838
  const { root, user, jobs } = ctx;
1839
1839
  const confirmed2 = (write, target, given) => requireConfirmation(ctx.confirmations, write, target, given);
1840
1840
  const readyView = async (change) => {
1841
- const { deployOrderOf } = await import("./chunk-GW6ZH77P.js");
1841
+ const { deployOrderOf } = await import("./chunk-WTLFRINF.js");
1842
1842
  const repoOrder = await deployOrderOf(root, change);
1843
1843
  const prStates = /* @__PURE__ */ new Map();
1844
1844
  for (const t of await taskViews(root, change, {
@@ -1866,7 +1866,7 @@ function uiRoutes(r, ctx, deps = {}) {
1866
1866
  throw badRequest("plan is the refusal's plan (its job's result's refused.plan) for the list being confirmed.");
1867
1867
  if (b.plan === void 0)
1868
1868
  return;
1869
- const { lastBuildOf } = await import("./chunk-3W2QX6TT.js");
1869
+ const { lastBuildOf } = await import("./chunk-B4WPO6FX.js");
1870
1870
  const last = await lastBuildOf(root);
1871
1871
  if (last?.outcome !== "refused" || !ofCommand(last.command) || last.refused?.plan !== b.plan)
1872
1872
  throw conflict("What the build would remove or discard isn't what the page listed any more. Nothing written: look at the list again.");
@@ -1939,7 +1939,7 @@ function uiRoutes(r, ctx, deps = {}) {
1939
1939
  if (res.code !== 0)
1940
1940
  throw refused({ ...res, out: appLines2(res.out), err: appLines2(res.err) });
1941
1941
  const stepRunner = deps.runStep ?? (async (args) => {
1942
- const { main } = await import("./chunk-FS4E7F6O.js");
1942
+ const { main } = await import("./chunk-DGNTEKF6.js");
1943
1943
  const out = [];
1944
1944
  const err = [];
1945
1945
  const code = await main([...args, "--root", root], { out: (l) => out.push(l), err: (l) => err.push(l) }, { quiet: true });
@@ -1965,7 +1965,7 @@ function uiRoutes(r, ctx, deps = {}) {
1965
1965
  };
1966
1966
  startAutoDone(ctx, (runId) => doneRun(runId, "app"), deps.autoDone ?? {});
1967
1967
  return r.add("POST", "/api/facts/{repo}/apply", async ({ params, body }) => {
1968
- const { verifyCommand } = await import("./chunk-QDGNDNBG.js");
1968
+ const { verifyCommand } = await import("./chunk-3NGHSBVS.js");
1969
1969
  const b = parseBody(api_exports.FactsApplyRequest, body);
1970
1970
  const repo = params.repo;
1971
1971
  if (!FACTS_REPO.test(repo))
@@ -1974,7 +1974,7 @@ function uiRoutes(r, ctx, deps = {}) {
1974
1974
  throw notFound(`There is no repo ${repo} in this workspace.`);
1975
1975
  await refusalStillListed(b, (c) => c === `atticus verify ${repo} --write`);
1976
1976
  return asJob(`Applying to ${repo}`, async () => {
1977
- const { lastBuildOf } = await import("./chunk-3W2QX6TT.js");
1977
+ const { lastBuildOf } = await import("./chunk-B4WPO6FX.js");
1978
1978
  const before = JSON.stringify(await lastBuildOf(root) ?? null);
1979
1979
  const ran = await run((io) => verifyCommand(root, repo, {
1980
1980
  write: true,
@@ -1991,7 +1991,7 @@ function uiRoutes(r, ctx, deps = {}) {
1991
1991
  });
1992
1992
  }).add("GET", "/api/upgrade", async () => {
1993
1993
  const r2 = await keptAnswer(root, "upgrade", async () => {
1994
- const { newerAtticusOf, upgradeCheck } = await import("./chunk-NSQB24WR.js");
1994
+ const { newerAtticusOf, upgradeCheck } = await import("./chunk-CWKQRP6Y.js");
1995
1995
  const c = await upgradeCheck(root);
1996
1996
  const stamp3 = c.stamp?.atticus ?? newerAtticusOf(c);
1997
1997
  const body = {
@@ -2002,11 +2002,11 @@ function uiRoutes(r, ctx, deps = {}) {
2002
2002
  };
2003
2003
  return { status: 200, body };
2004
2004
  });
2005
- const { upgradedPaths, UPGRADE_STAMP } = await import("./chunk-KNYQUWFN.js");
2005
+ const { upgradedPaths, UPGRADE_STAMP } = await import("./chunk-W7NNZFIL.js");
2006
2006
  const upgraded = upgradedPaths(root).filter((p) => p !== UPGRADE_STAMP);
2007
2007
  return { ...r2, body: { ...r2.body, upgraded } };
2008
2008
  }).add("POST", "/api/upgrade", async () => {
2009
- const { newerThan, newerWords, upgradeCheck, upgradeCommand } = await import("./chunk-NSQB24WR.js");
2009
+ const { newerThan, newerWords, upgradeCheck, upgradeCommand } = await import("./chunk-CWKQRP6Y.js");
2010
2010
  const c = await upgradeCheck(root);
2011
2011
  if (c.newer)
2012
2012
  throw conflict(newerWords(c));
@@ -2014,12 +2014,12 @@ function uiRoutes(r, ctx, deps = {}) {
2014
2014
  throw conflict(`Nothing to upgrade: up to date for Atticus ${c.atticus}.`);
2015
2015
  return asJob("Upgrading the metarepo", async () => {
2016
2016
  const ran = await run((io) => upgradeCommand(root, { by: user }, io));
2017
- const { upgradedPaths, UPGRADE_STAMP } = await import("./chunk-KNYQUWFN.js");
2017
+ const { upgradedPaths, UPGRADE_STAMP } = await import("./chunk-W7NNZFIL.js");
2018
2018
  const upgraded = upgradedPaths(root).filter((p) => p !== UPGRADE_STAMP);
2019
2019
  return { ...ran, extra: { upgraded } };
2020
2020
  });
2021
2021
  }).add("GET", "/api/propose", async ({ query }) => {
2022
- const { proposePlan, PROPOSE_SCOPES } = await import("./chunk-KNYQUWFN.js");
2022
+ const { proposePlan, PROPOSE_SCOPES } = await import("./chunk-W7NNZFIL.js");
2023
2023
  const scope = query.get("scope") ?? "";
2024
2024
  if (!PROPOSE_SCOPES.includes(scope))
2025
2025
  throw refused({
@@ -2042,7 +2042,7 @@ function uiRoutes(r, ctx, deps = {}) {
2042
2042
  }).add("POST", "/api/propose", async ({ body }) => {
2043
2043
  const b = parseBody(api_exports.ProposeRequest, body);
2044
2044
  confirmed2("propose", b.scope, b.confirmation);
2045
- const { proposeForReview } = await import("./chunk-KNYQUWFN.js");
2045
+ const { proposeForReview } = await import("./chunk-W7NNZFIL.js");
2046
2046
  return asJob("Proposing for review", () => run((io) => proposeForReview(root, {
2047
2047
  scope: b.scope,
2048
2048
  by: user,
@@ -2051,15 +2051,15 @@ function uiRoutes(r, ctx, deps = {}) {
2051
2051
  ...b.branch ? { branch: b.branch } : {}
2052
2052
  }, io)));
2053
2053
  }).add("POST", "/api/propose/bring-in", async () => {
2054
- const { bringInMerged } = await import("./chunk-KNYQUWFN.js");
2054
+ const { bringInMerged } = await import("./chunk-W7NNZFIL.js");
2055
2055
  return asJob("Bringing in what merged", () => run((io) => bringInMerged(root, io)));
2056
2056
  }).add("POST", "/api/propose/upstream", async ({ body }) => {
2057
2057
  const b = parseBody(api_exports.UpstreamRequest, body);
2058
- const { setUpstream } = await import("./chunk-KNYQUWFN.js");
2058
+ const { setUpstream } = await import("./chunk-W7NNZFIL.js");
2059
2059
  return asJob(`Setting the upstream to ${b.upstream}`, () => run((io) => setUpstream(root, b.upstream, io)));
2060
2060
  }).add("POST", "/api/changes/{changeId}/conformance", async ({ params }) => {
2061
2061
  await readChange(root, params.changeId);
2062
- const { changeConformCommand } = await import("./chunk-GLHOUT5E.js");
2062
+ const { changeConformCommand } = await import("./chunk-M25UUEKC.js");
2063
2063
  return asJob(`Checking ${params.changeId}'s code against its design`, () => run((io) => changeConformCommand(root, params.changeId, { findingsAnswer: true }, io)));
2064
2064
  }).add("GET", "/api/change-types", async () => {
2065
2065
  const op = await loadOrgPack(orgPackDirOf(root));
@@ -2218,7 +2218,7 @@ function uiRoutes(r, ctx, deps = {}) {
2218
2218
  throw conflict(`${rel} changed since you opened it. Reload it, then make your edit again.`);
2219
2219
  await mkdir(dirname3(file), { recursive: true });
2220
2220
  await writeFileIfUnchanged(file, was, b.content);
2221
- const { recordPersonSave: recordPersonSave2 } = await import("./chunk-PDJL2HO5.js");
2221
+ const { recordPersonSave: recordPersonSave2 } = await import("./chunk-YPXBGNUV.js");
2222
2222
  await recordPersonSave2(join4(changesDirOf(root), params.changeId), params.changeId, {
2223
2223
  file: rel,
2224
2224
  who: user,
@@ -2533,7 +2533,7 @@ function uiRoutes(r, ctx, deps = {}) {
2533
2533
  };
2534
2534
  }).add("GET", "/api/changes/{changeId}/prototypes", async ({ params }) => {
2535
2535
  const c = await readChange(root, params.changeId);
2536
- const { changePrototypes } = await import("./chunk-NCNLX4DL.js");
2536
+ const { changePrototypes } = await import("./chunk-VTQ55N4O.js");
2537
2537
  return {
2538
2538
  status: 200,
2539
2539
  body: api_exports.ChangePrototypeList.parse(await changePrototypes(root, c.id))
@@ -2541,7 +2541,7 @@ function uiRoutes(r, ctx, deps = {}) {
2541
2541
  }).add("POST", "/api/changes/{changeId}/prototypes", async ({ params, body }) => {
2542
2542
  const c = await readChange(root, params.changeId);
2543
2543
  const b = parseBody(api_exports.ComparePrototypeRequest, body);
2544
- const { attachPrototype, changePrototypes } = await import("./chunk-NCNLX4DL.js");
2544
+ const { attachPrototype, changePrototypes } = await import("./chunk-VTQ55N4O.js");
2545
2545
  const res = await run((io) => attachPrototype(root, c.id, b.repo, { by: user, ...deps.now ? { now: new Date(deps.now) } : {} }, io));
2546
2546
  if (res.code !== 0)
2547
2547
  throw refused(res);
@@ -2559,7 +2559,7 @@ function uiRoutes(r, ctx, deps = {}) {
2559
2559
  const bytes = new Uint8Array(Buffer.from(b.content, "base64"));
2560
2560
  if (bytes.length > MAX_ATTACH)
2561
2561
  throw new HttpError(413, "The file is too large", "Attach a file of 15 MB or less.");
2562
- const { attachFiles } = await import("./chunk-ALUHO7SE.js");
2562
+ const { attachFiles } = await import("./chunk-OY2VC2IU.js");
2563
2563
  const r2 = await attachFiles(root, c.id, [{ name: b.name, bytes }], user);
2564
2564
  if (!r2.added.length)
2565
2565
  throw new HttpError(422, "Atticus can't attach that", r2.refused[0]?.why ?? "", {
@@ -3870,7 +3870,7 @@ function uiKnowRoutes(r, ctx, o = {}) {
3870
3870
  const args = build(arg);
3871
3871
  if (!args)
3872
3872
  throw badRequest(`The ${name} view needs an id: /api/view/${name}/<id>.`);
3873
- const { main } = await import("./chunk-FS4E7F6O.js");
3873
+ const { main } = await import("./chunk-DGNTEKF6.js");
3874
3874
  const out = [];
3875
3875
  const err = [];
3876
3876
  const code = await main([...args, "--json", "--root", ctx.root], { out: (l) => out.push(l), err: (l) => err.push(l) }, { quiet: true });
@@ -3900,7 +3900,7 @@ function uiKnowRoutes(r, ctx, o = {}) {
3900
3900
  return { status: 200, body: { code, data: body, problems: err } };
3901
3901
  };
3902
3902
  const text = async (args) => {
3903
- const { main } = await import("./chunk-FS4E7F6O.js");
3903
+ const { main } = await import("./chunk-DGNTEKF6.js");
3904
3904
  const out = [];
3905
3905
  const err = [];
3906
3906
  const code = await main([...args, "--root", ctx.root], { out: (l) => out.push(l), err: (l) => err.push(l) }, { quiet: true });
@@ -3918,7 +3918,7 @@ function uiKnowRoutes(r, ctx, o = {}) {
3918
3918
  throw badRequest("Some fields aren't right.", {
3919
3919
  errors: b.error.issues.map((i) => ({ path: i.path.join("."), message: i.message }))
3920
3920
  });
3921
- const { triageDecide } = await import("./chunk-RUNHVUCW.js");
3921
+ const { triageDecide } = await import("./chunk-MP7W6OKP.js");
3922
3922
  const out = [];
3923
3923
  const err = [];
3924
3924
  const code = await triageDecide(ctx.root, params.itemId, b.data.option, { by: ctx.user, ...b.data.reason ? { reason: b.data.reason } : {} }, { out: (l) => out.push(l), err: (l) => err.push(l) });
@@ -4045,7 +4045,7 @@ function refused3(r) {
4045
4045
  return r.code === 2 ? badRequest(detail) : new HttpError(422, "Atticus refused", detail);
4046
4046
  }
4047
4047
  function uiInitiativeRoutes(r, ctx) {
4048
- const commands = () => import("./chunk-J6GO3K7G.js");
4048
+ const commands = () => import("./chunk-W4SWXJZQ.js");
4049
4049
  const changed = () => ctx.events.publish({ type: "file.changed", path: "catalog/curated" });
4050
4050
  return r.add("POST", "/api/initiatives", async ({ body }) => {
4051
4051
  const b = parseBody3(api_exports.NewInitiativeRequest, body);
@@ -4124,7 +4124,7 @@ function uiQuestionRoutes(r, ctx, deps = {}) {
4124
4124
  throw badRequest("role is product, architecture, analysis or delivery, or left out.");
4125
4125
  const onFile = await listQuestions(ctx.root);
4126
4126
  const every = { ...onFile, questions: onFile.questions.filter((q) => !q.finding) };
4127
- const { routeQuestions } = await import("./chunk-OFYBRMRG.js");
4127
+ const { routeQuestions } = await import("./chunk-CHS5BJ34.js");
4128
4128
  const routedAll = await routeQuestions(ctx.root, every.questions, mine ? { mine: ctx.user } : {});
4129
4129
  const { stageQuestions, roleWithStage, isChangeQuestion, countByRole, personsRoles } = await import("./chunk-HDWVR5KD.js");
4130
4130
  const stages = await stageQuestions(ctx.root);
@@ -4177,13 +4177,13 @@ function uiQuestionRoutes(r, ctx, deps = {}) {
4177
4177
  return { status: 200, body };
4178
4178
  };
4179
4179
  return r.add("GET", "/api/questions", async ({ query }) => keptAnswer(ctx.root, `questions?${query.toString()}&by=${ctx.user}`, () => questionsAnswer(query), () => checkoutsStamp(ctx.root))).add("GET", "/api/owner-questions", async () => keptAnswer(ctx.root, "owner-questions", async () => {
4180
- const { ownerQuestions } = await import("./chunk-IJHJIL6T.js");
4180
+ const { ownerQuestions } = await import("./chunk-SSYD4XIW.js");
4181
4181
  return { status: 200, body: await ownerQuestions(ctx.root, { now: now() }) };
4182
4182
  })).add("POST", "/api/owner-questions/{id}/answer", async ({ params, body }) => {
4183
4183
  const b = api_exports.OwnerAnswerRequest.safeParse(body ?? {});
4184
4184
  if (!b.success || !b.data.answer.trim())
4185
4185
  throw badRequest('Answer with { answer: "what the owner said" }.');
4186
- const { answerOwnerQuestion, OwnerQuestionError } = await import("./chunk-IJHJIL6T.js");
4186
+ const { answerOwnerQuestion, OwnerQuestionError } = await import("./chunk-SSYD4XIW.js");
4187
4187
  try {
4188
4188
  const r2 = await answerOwnerQuestion(ctx.root, params.id, b.data.answer, {
4189
4189
  by: ctx.user,
@@ -4208,7 +4208,7 @@ function uiQuestionRoutes(r, ctx, deps = {}) {
4208
4208
  throw notFound(`There is no question ${params.id}.`);
4209
4209
  if (q.askedBy.step !== TARGETS_STEP_ID && q.askedBy.step !== TOPICS_STEP_ID)
4210
4210
  throw new HttpError(422, "That question doesn't ask where a call goes or who owns a topic", `${q.id} isn't a targets or topics question, so it has no picker.`);
4211
- const { pickerOf } = await import("./chunk-FSYJPYLE.js");
4211
+ const { pickerOf } = await import("./chunk-R7VX5BSP.js");
4212
4212
  return { status: 200, body: { picks: await pickerOf(ctx.root) } };
4213
4213
  }).add("GET", "/api/questions/{id}/evidence", async ({ params }) => {
4214
4214
  const q = await readQuestion(ctx.root, params.id).catch(() => void 0);
@@ -4259,7 +4259,7 @@ function uiQuestionRoutes(r, ctx, deps = {}) {
4259
4259
  const q0 = await readQuestion(ctx.root, params.id).catch(() => void 0);
4260
4260
  if (!q0)
4261
4261
  throw notFound(`There is no question ${params.id}.`);
4262
- const { targetAnswerOf, offerLine } = await import("./chunk-FSYJPYLE.js");
4262
+ const { targetAnswerOf, offerLine } = await import("./chunk-R7VX5BSP.js");
4263
4263
  const t = await targetAnswerOf(ctx.root, q0, target, {
4264
4264
  ...addSystem ? { addSystem } : {},
4265
4265
  ...name ? { name } : {}
@@ -4892,7 +4892,7 @@ function uiSpecRoutes(r, ctx) {
4892
4892
  });
4893
4893
  r.add("GET", "/api/changes/{changeId}/conformance", async ({ params }) => {
4894
4894
  const change = idOf2(params.changeId, "change");
4895
- const { conformanceOf } = await import("./chunk-LNJKDS5C.js");
4895
+ const { conformanceOf } = await import("./chunk-GLNSLQSV.js");
4896
4896
  const c = await conformanceOf(root, change);
4897
4897
  if (!c)
4898
4898
  throw notFound(`There is no change ${change}.`);
@@ -4907,7 +4907,7 @@ function uiSpecRoutes(r, ctx) {
4907
4907
  });
4908
4908
  r.add("GET", "/api/changes/{changeId}/impact", async ({ params }) => {
4909
4909
  const change = idOf2(params.changeId, "change");
4910
- const { changeImpactOf } = await import("./chunk-SCP24MJX.js");
4910
+ const { changeImpactOf } = await import("./chunk-JGR4X2UA.js");
4911
4911
  const i = await changeImpactOf(root, change);
4912
4912
  if (!i)
4913
4913
  throw notFound(`There is no change ${change}.`);
@@ -5060,7 +5060,7 @@ function uiKnowledgeRoutes(r, ctx, deps = {}) {
5060
5060
  const slash = id.indexOf("/");
5061
5061
  return hash > 0 && slash > 0 && slash < hash ? { source: id.slice(0, slash), page: id.slice(slash + 1, hash) } : void 0;
5062
5062
  };
5063
- const { knowledgePages } = await import("./chunk-H25QNDKK.js");
5063
+ const { knowledgePages } = await import("./chunk-PT77IUYQ.js");
5064
5064
  const { sectionOf } = await import("./chunk-GF6GBHFN.js");
5065
5065
  const pages = doc?.items.some((i) => i.id.includes("#")) ? await knowledgePages(root) : [];
5066
5066
  const records = doc?.items.length ? new Map((await readKnowledge(root, { cacheRoot: root })).items.map((r2) => [r2.id, r2])) : /* @__PURE__ */ new Map();
@@ -5352,7 +5352,7 @@ function uiKnowledgeRoutes(r, ctx, deps = {}) {
5352
5352
  if (source !== void 0)
5353
5353
  idOf3(source, "source");
5354
5354
  const ids = await snapshotSources(root);
5355
- const { inputsPassagePages, pastableArg } = await import("./chunk-H25QNDKK.js");
5355
+ const { inputsPassagePages, pastableArg } = await import("./chunk-PT77IUYQ.js");
5356
5356
  const live = !ids.includes(INPUTS_SOURCE_ID) && (!source || source === INPUTS_SOURCE_ID) ? await inputsPassagePages(root) : [];
5357
5357
  if (source && !ids.includes(source) && !(source === INPUTS_SOURCE_ID && live.length))
5358
5358
  throw notFound(`${source} has no snapshot yet: atticus sources sync --source ${source}.`);
@@ -5567,7 +5567,7 @@ async function configuredModel(root) {
5567
5567
  function uiModelRunRoutes(r, ctx, deps = {}) {
5568
5568
  const root = ctx.root;
5569
5569
  const runStep = deps.runStep ?? (async (args) => {
5570
- const { main } = await import("./chunk-FS4E7F6O.js");
5570
+ const { main } = await import("./chunk-DGNTEKF6.js");
5571
5571
  const out = [];
5572
5572
  const err = [];
5573
5573
  const code = await main([...args, "--root", root], { out: (l) => out.push(l), err: (l) => err.push(l) }, { quiet: true });
@@ -5593,7 +5593,7 @@ function uiModelRunRoutes(r, ctx, deps = {}) {
5593
5593
  const busy = ctx.jobs.runningOf("step");
5594
5594
  if (busy)
5595
5595
  throw conflict(`An AI step is running on this server (${busy.id}): wait for it to finish, or cancel it.`);
5596
- const { commandTitleInputsOf } = await import("./chunk-FS4E7F6O.js");
5596
+ const { commandTitleInputsOf } = await import("./chunk-DGNTEKF6.js");
5597
5597
  const log = { command: commandTitleInputsOf([...words, "--mode", "model"]) };
5598
5598
  const job = ctx.jobs.start("step", async (c) => {
5599
5599
  c.progress(0, 1, `Running atticus ${words.join(" ")} with ${model}`);
@@ -5801,10 +5801,10 @@ var CopilotRun = class {
5801
5801
 
5802
5802
  // packages/cli/dist/ui-api-copilot-runs.js
5803
5803
  var defaultStarter = (root) => async (o, io, deps) => {
5804
- const { mapAllCommand } = await import("./chunk-6G67LSBG.js");
5804
+ const { mapAllCommand } = await import("./chunk-U36V664P.js");
5805
5805
  return mapAllCommand(root, o, io, {
5806
5806
  ...deps,
5807
- makeAcp: async () => (await import("./chunk-IAVVJ34R.js")).acpStepRunner(root)
5807
+ makeAcp: async () => (await import("./chunk-V7DGFWDB.js")).acpStepRunner(root)
5808
5808
  });
5809
5809
  };
5810
5810
  var TAIL = 200;
@@ -5820,7 +5820,7 @@ async function allowedHere(root, check) {
5820
5820
  const allowed = copilotAcpAllowed(op);
5821
5821
  if (!allowed)
5822
5822
  return { allowed, ...c.model ? { model: c.model } : {} };
5823
- const { assistantFilesState, limitFor, limitToOffer } = await import("./chunk-6G67LSBG.js");
5823
+ const { assistantFilesState, limitFor, limitToOffer } = await import("./chunk-U36V664P.js");
5824
5824
  const known = await limitFor(root, op, void 0).catch(() => void 0);
5825
5825
  const offer = known ? void 0 : await limitToOffer(root);
5826
5826
  const limit = known ? {
@@ -5936,13 +5936,13 @@ function uiCopilotRunRoutes(r, ctx, deps = {}) {
5936
5936
  throw new HttpError(400, "The model's limit is needed", "Atticus doesn't know your model's limit, and a part planned too big overflows the reader: give it in the dialog (Your model's limit, in tokens), the context window of the model Copilot uses. It is kept on this machine for the next run.", { code: "limit-unknown" });
5937
5937
  }
5938
5938
  if (a.assistantFiles?.edited.length) {
5939
- const { assistantFilesEditedWords } = await import("./chunk-6G67LSBG.js");
5939
+ const { assistantFilesEditedWords } = await import("./chunk-U36V664P.js");
5940
5940
  throw new HttpError(409, "Assistant files edited by hand", assistantFilesEditedWords(a.assistantFiles.edited), { code: "assistant-files-edited", files: a.assistantFiles.edited });
5941
5941
  }
5942
5942
  if (ctx.jobs.runningOf("step")?.state === "running")
5943
5943
  throw conflict("An AI step started on this server meanwhile: wait for it to finish.");
5944
5944
  if (b.data.maxTokens !== void 0) {
5945
- const { saveLastLimit } = await import("./chunk-6G67LSBG.js");
5945
+ const { saveLastLimit } = await import("./chunk-U36V664P.js");
5946
5946
  await saveLastLimit(ctx.root, b.data.maxTokens, now().getTime());
5947
5947
  allowed = void 0;
5948
5948
  }
@@ -6170,7 +6170,7 @@ function uiDecisionRoutes(r, ctx, deps = {}) {
6170
6170
  ctx.events.publish({ type: "file.changed", path });
6171
6171
  return { status: 200, body: out };
6172
6172
  }).add("GET", "/api/propose-answers", async () => {
6173
- const { openDecideRun, PROPOSE_CHANGE } = await import("./chunk-X73WLHSN.js");
6173
+ const { openDecideRun, PROPOSE_CHANGE } = await import("./chunk-LCWC6NDE.js");
6174
6174
  const run5 = await openDecideRun(ctx.root, PROPOSE_CHANGE);
6175
6175
  const body = run5 ? {
6176
6176
  state: "waiting",
@@ -6184,7 +6184,7 @@ function uiDecisionRoutes(r, ctx, deps = {}) {
6184
6184
  const op = await loadOrgPack(orgPackDirOf(ctx.root));
6185
6185
  if (op.runtime.ai === "off")
6186
6186
  throw conflict("runtime.yaml turns AI off here (ai: off): answer the questions yourself.");
6187
- const { startProposeHandoff } = await import("./chunk-IAVVJ34R.js");
6187
+ const { startProposeHandoff } = await import("./chunk-V7DGFWDB.js");
6188
6188
  const h = await startProposeHandoff(ctx.root, { now: now() });
6189
6189
  const body = {
6190
6190
  state: "waiting",
@@ -6841,7 +6841,7 @@ function uiDocumentRoutes(r, ctx) {
6841
6841
  const root = ctx.root;
6842
6842
  const changed = (path) => ctx.events.publish({ type: "file.changed", path });
6843
6843
  return r.add("GET", "/api/knowledge/documents", async () => {
6844
- const { listDocuments } = await import("./chunk-AS4CTARY.js");
6844
+ const { listDocuments } = await import("./chunk-7HUCEHUK.js");
6845
6845
  return { status: 200, body: api_exports.DocumentList.parse(await listDocuments(root)) };
6846
6846
  }).add("POST", "/api/knowledge/documents", async ({ body }) => {
6847
6847
  const b = api_exports.AttachFileRequest.safeParse(body ?? {});
@@ -6850,7 +6850,7 @@ function uiDocumentRoutes(r, ctx) {
6850
6850
  const bytes = new Uint8Array(Buffer.from(b.data.content, "base64"));
6851
6851
  if (bytes.length > MAX_FILE)
6852
6852
  throw new HttpError(413, "The file is too large", "Add a file of 15 MB or less.");
6853
- const { addToInbox } = await import("./chunk-RUNHVUCW.js");
6853
+ const { addToInbox } = await import("./chunk-MP7W6OKP.js");
6854
6854
  const res = await addToInbox(root, [{ name: b.data.name, bytes }]);
6855
6855
  if (!res.added.length)
6856
6856
  throw new HttpError(422, "Atticus can't add that", res.refused[0]?.why ?? "", {
@@ -6860,7 +6860,7 @@ function uiDocumentRoutes(r, ctx) {
6860
6860
  changed(a.path);
6861
6861
  return { status: 201, body: api_exports.AddDocumentResult.parse(res) };
6862
6862
  }, { maxBody: Math.ceil(MAX_FILE * 4 / 3) + 64 * 1024 }).add("POST", "/api/changes/{changeId}/inputs/{name}/promote", async ({ params }) => {
6863
- const { AttachError, promoteChangeInput } = await import("./chunk-ALUHO7SE.js");
6863
+ const { AttachError, promoteChangeInput } = await import("./chunk-OY2VC2IU.js");
6864
6864
  try {
6865
6865
  const res = await promoteChangeInput(root, params.changeId, params.name);
6866
6866
  changed(res.path);
@@ -6877,13 +6877,13 @@ function uiDocumentRoutes(r, ctx) {
6877
6877
  function uiRepoRoutes(r, ctx) {
6878
6878
  const root = ctx.root;
6879
6879
  return r.add("GET", "/api/repos/branches", async () => {
6880
- const { repoBranches } = await import("./chunk-WC6DHBVG.js");
6880
+ const { repoBranches } = await import("./chunk-LQEMCF43.js");
6881
6881
  return { status: 200, body: api_exports.RepoBranchesList.parse(await repoBranches(root)) };
6882
6882
  }).add("GET", "/api/repos/compare", async ({ query }) => {
6883
6883
  const branch = query.get("branch")?.trim() ?? "";
6884
6884
  if (!branch)
6885
6885
  throw badRequest("Say which branch: ?branch=<name>.");
6886
- const { compareBranch } = await import("./chunk-WC6DHBVG.js");
6886
+ const { compareBranch } = await import("./chunk-LQEMCF43.js");
6887
6887
  const c = await compareBranch(root, branch);
6888
6888
  if (!c)
6889
6889
  throw notFound(`${branch} hasn't been scanned beside the baseline yet.`);
@@ -6892,7 +6892,7 @@ function uiRepoRoutes(r, ctx) {
6892
6892
  const b = api_exports.EditRepoBranchesRequest.safeParse(body ?? {});
6893
6893
  if (!b.success)
6894
6894
  throw badRequest("Send defaultBranch and branches as branch names.");
6895
- const { editRepoBranches, RepoEditError } = await import("./chunk-WC6DHBVG.js");
6895
+ const { editRepoBranches, RepoEditError } = await import("./chunk-LQEMCF43.js");
6896
6896
  try {
6897
6897
  const file = await editRepoBranches(root, params.repoId, b.data);
6898
6898
  ctx.events.publish({ type: "file.changed", path: file });
@@ -6912,7 +6912,7 @@ function uiRepoRoutes(r, ctx) {
6912
6912
  const b = api_exports.EditRepoBuildRequest.safeParse(body ?? {});
6913
6913
  if (!b.success)
6914
6914
  throw badRequest('Send the build command as build ("" clears it), up to 500 characters.');
6915
- const { editRepoBuild, RepoEditError } = await import("./chunk-WC6DHBVG.js");
6915
+ const { editRepoBuild, RepoEditError } = await import("./chunk-LQEMCF43.js");
6916
6916
  try {
6917
6917
  const r2 = await editRepoBuild(root, params.repoId, b.data);
6918
6918
  ctx.events.publish({ type: "file.changed", path: r2.file });
@@ -6954,7 +6954,7 @@ function uiRepoRoutes(r, ctx) {
6954
6954
  const b = api_exports.EditRepoDescriptionRequest.safeParse(body ?? {});
6955
6955
  if (!b.success)
6956
6956
  throw badRequest("Send what the repo is as text, or accept: true to confirm the draft, or reject: true to drop it.");
6957
- const { editRepoDescription, RepoEditError } = await import("./chunk-WC6DHBVG.js");
6957
+ const { editRepoDescription, RepoEditError } = await import("./chunk-LQEMCF43.js");
6958
6958
  try {
6959
6959
  const r2 = await editRepoDescription(root, params.repoId, b.data);
6960
6960
  ctx.events.publish({ type: "file.changed", path: r2.file });
@@ -6983,7 +6983,7 @@ function changeIdOf(v) {
6983
6983
  function uiCockpitRoutes(r, ctx) {
6984
6984
  return r.add("GET", "/api/changes/{changeId}/cockpit", async ({ params }) => {
6985
6985
  const id = changeIdOf(params.changeId);
6986
- const { cockpit } = await import("./chunk-WTOVWEY3.js");
6986
+ const { cockpit } = await import("./chunk-FFIHRQ3O.js");
6987
6987
  try {
6988
6988
  return await keptAnswer(ctx.root, `cockpit:${id}:${ctx.user}`, async () => ({
6989
6989
  status: 200,
@@ -6991,13 +6991,13 @@ function uiCockpitRoutes(r, ctx) {
6991
6991
  }), () => checkoutsStamp(ctx.root));
6992
6992
  } catch (e) {
6993
6993
  if (e instanceof Error && e.name === "ChangeFileError") {
6994
- const { missingChangeWords: missingChangeWords2 } = await import("./chunk-UDTO3U6E.js");
6994
+ const { missingChangeWords: missingChangeWords2 } = await import("./chunk-VGXE7XFO.js");
6995
6995
  throw notFound(await missingChangeWords2(ctx.root, id));
6996
6996
  }
6997
6997
  throw e;
6998
6998
  }
6999
6999
  }).add("GET", "/api/past-changes", async ({ query }) => {
7000
- const { changeAboutText, similarChanges } = await import("./chunk-EYVYHYCA.js");
7000
+ const { changeAboutText, similarChanges } = await import("./chunk-FYRBBFIF.js");
7001
7001
  const given = query.get("change");
7002
7002
  const change = given ? changeIdOf(given) : void 0;
7003
7003
  const text = change ? await changeAboutText(ctx.root, change) : query.get("text")?.trim();
@@ -7016,11 +7016,11 @@ function uiCockpitRoutes(r, ctx) {
7016
7016
  const b = api_exports.AttachPastChangeRequest.safeParse(body ?? {});
7017
7017
  if (!b.success)
7018
7018
  throw badRequest("Say which archived change: { like: <its folder or id> }.");
7019
- const { attachPastChange, findPastChange } = await import("./chunk-EYVYHYCA.js");
7019
+ const { attachPastChange, findPastChange } = await import("./chunk-FYRBBFIF.js");
7020
7020
  const folder = await findPastChange(ctx.root, b.data.like);
7021
7021
  if (!folder)
7022
7022
  throw notFound(`There is no archived change ${b.data.like}.`);
7023
- const { AttachError } = await import("./chunk-ALUHO7SE.js");
7023
+ const { AttachError } = await import("./chunk-OY2VC2IU.js");
7024
7024
  try {
7025
7025
  const name = await attachPastChange(ctx.root, params.changeId, folder, ctx.user);
7026
7026
  ctx.events.publish({ type: "file.changed", path: `inputs/${name}` });
@@ -8248,7 +8248,7 @@ function uiSetupRoutes(r, ctx, deps = {}) {
8248
8248
  };
8249
8249
  return r.add("GET", "/api/setup/metarepo", async () => {
8250
8250
  const origin = await originOf(root);
8251
- const { metarepoIdFromUrl } = await import("./chunk-XMIS25ZJ.js");
8251
+ const { metarepoIdFromUrl } = await import("./chunk-U4K34CXK.js");
8252
8252
  const folder = basename2(root);
8253
8253
  const body = {
8254
8254
  metarepo: isMetarepo(root),
@@ -8266,7 +8266,7 @@ function uiSetupRoutes(r, ctx, deps = {}) {
8266
8266
  const b = parseBody4(api_exports.CreateMetarepoRequest, body);
8267
8267
  if (isMetarepo(root))
8268
8268
  throw conflict(`${root} is a metarepo already.`);
8269
- const { initCommand } = await import("./chunk-XLTT5QCX.js");
8269
+ const { initCommand } = await import("./chunk-OOZKLLW7.js");
8270
8270
  const res = await run4((io) => initCommand(root, {
8271
8271
  name: b.name,
8272
8272
  platform: b.platform,
@@ -8291,7 +8291,7 @@ function uiSetupRoutes(r, ctx, deps = {}) {
8291
8291
  if (!await stat9(dir).then((s) => s.isDirectory(), () => false))
8292
8292
  throw notFound(`There is no folder ${dir} on this machine.`);
8293
8293
  const open = deps.openFolder ?? (async (d) => {
8294
- const { startUi: startUi2 } = await import("./chunk-JTOLBS7R.js");
8294
+ const { startUi: startUi2 } = await import("./chunk-MBIJNU3D.js");
8295
8295
  const srv = await startUi2(d, {
8296
8296
  port: 0,
8297
8297
  user,
@@ -8324,7 +8324,7 @@ function uiSetupRoutes(r, ctx, deps = {}) {
8324
8324
  };
8325
8325
  return { status: 200, body: ask };
8326
8326
  }
8327
- const { reposDiscover, AdoptError } = await import("./chunk-XMIS25ZJ.js");
8327
+ const { reposDiscover, AdoptError } = await import("./chunk-U4K34CXK.js");
8328
8328
  const found = await reposDiscover(root, { dir }, { dryRun: true, ...b.platform ? { platform: b.platform } : {} }).catch((e) => {
8329
8329
  if (e instanceof AdoptError)
8330
8330
  throw unprocessable2(e.message.replace(/ with --platform\b/g, " (choose the platform)"));
@@ -8341,7 +8341,7 @@ function uiSetupRoutes(r, ctx, deps = {}) {
8341
8341
  detected: { signals: f.detection.signals, confidence: f.detection.confidence }
8342
8342
  }));
8343
8343
  } else {
8344
- const { cloneAt, typeOf } = await import("./chunk-F74OMLNU.js");
8344
+ const { cloneAt, typeOf } = await import("./chunk-UGJSKAZ2.js");
8345
8345
  for (const given of pastedUrls(b.urls ?? "").slice(0, 500)) {
8346
8346
  const c = candidateOf(given);
8347
8347
  const clone = await cloneAt(c.url);
@@ -8418,7 +8418,7 @@ function uiSetupRoutes(r, ctx, deps = {}) {
8418
8418
  throw conflict(`${id} isn't cloned here yet, so there are no files to read its type from: clone it first (Sync on Onboarding, or atticus workspace sync).`);
8419
8419
  const op = await loadOrgPack(orgPackDirOf(root));
8420
8420
  if (op.repoTypes.length) {
8421
- const { repoTypeDetect } = await import("./chunk-3GURU22K.js");
8421
+ const { repoTypeDetect } = await import("./chunk-66CMRGI2.js");
8422
8422
  const res = await run4((io) => repoTypeDetect(root, id, { json: true }, io));
8423
8423
  if (res.code !== 0)
8424
8424
  throw unprocessable2([...res.err, ...res.out].join("\n"));
@@ -8432,7 +8432,7 @@ function uiSetupRoutes(r, ctx, deps = {}) {
8432
8432
  };
8433
8433
  return { status: 200, body: body2 };
8434
8434
  }
8435
- const { typeOf } = await import("./chunk-F74OMLNU.js");
8435
+ const { typeOf } = await import("./chunk-UGJSKAZ2.js");
8436
8436
  const t = await typeOf(repo.dir, void 0);
8437
8437
  const body = {
8438
8438
  repo: id,
@@ -8573,7 +8573,7 @@ function uiSetupRoutes(r, ctx, deps = {}) {
8573
8573
  const b = parseBody4(api_exports.SourceRequest, body);
8574
8574
  const file = join17(orgPackDirOf(root), "sources.yaml");
8575
8575
  const before = await readFile13(file, "utf8").catch(() => "");
8576
- const { sourcesAdd: sourcesAdd2 } = await import("./chunk-BABATPOZ.js");
8576
+ const { sourcesAdd: sourcesAdd2 } = await import("./chunk-YTPND655.js");
8577
8577
  const res = await run4((io) => sourcesAdd2(root, b.type, b.location.trim(), io, {
8578
8578
  ...b.id ? { id: b.id } : {},
8579
8579
  ...b.path ? { path: b.path } : {},
@@ -8622,7 +8622,7 @@ function uiRolesRoutes(r, ctx, deps = {}) {
8622
8622
  const now = deps.now ?? (() => /* @__PURE__ */ new Date());
8623
8623
  const sending = /* @__PURE__ */ new Set();
8624
8624
  ctx.askKnowledge = async (q) => {
8625
- const { knowledgeAnswerOf } = await import("./chunk-H25QNDKK.js");
8625
+ const { knowledgeAnswerOf } = await import("./chunk-PT77IUYQ.js");
8626
8626
  return api_exports.KnowledgeAnswerView.parse(await knowledgeAnswerOf(root, q));
8627
8627
  };
8628
8628
  const exists4 = async (id) => {
@@ -8683,7 +8683,7 @@ function uiRolesRoutes(r, ctx, deps = {}) {
8683
8683
  const id = changeIdOf2(params.changeId);
8684
8684
  if (!await exists4(id))
8685
8685
  throw notFound(`There is no change ${id}.`);
8686
- const { ownerSuggestions } = await import("./chunk-H25QNDKK.js");
8686
+ const { ownerSuggestions } = await import("./chunk-PT77IUYQ.js");
8687
8687
  return {
8688
8688
  status: 200,
8689
8689
  body: api_exports.OwnerSuggestionList.parse(await ownerSuggestions(root, id))
@@ -8795,12 +8795,12 @@ function uiRolesRoutes(r, ctx, deps = {}) {
8795
8795
  const b = api_exports.SendOwnerAskRequest.safeParse(body ?? {});
8796
8796
  if (!b.success)
8797
8797
  throw badRequest("Send { confirmation? }.");
8798
- const { ownerQuestions } = await import("./chunk-IJHJIL6T.js");
8798
+ const { ownerQuestions } = await import("./chunk-SSYD4XIW.js");
8799
8799
  const list = await ownerQuestions(root, { now: now() });
8800
8800
  const q = list.questions.find((x) => x.id === params.id);
8801
8801
  if (!q)
8802
8802
  throw notFound(`There is no owner question ${params.id}.`);
8803
- const { fallbackWords, notifierFor } = await import("./chunk-H25QNDKK.js");
8803
+ const { fallbackWords, notifierFor } = await import("./chunk-PT77IUYQ.js");
8804
8804
  const n = await notifierFor(root, q.finding?.change, deps.notify, deps.adapterFactories ? { factories: deps.adapterFactories } : {});
8805
8805
  const to = q.owner;
8806
8806
  if (!n.notify || n.kind === "none")
@@ -8812,7 +8812,7 @@ function uiRolesRoutes(r, ctx, deps = {}) {
8812
8812
  why: "No notifications are set up here (runtime.yaml adapters.notify): copy the question and ask the owner, then record what they said."
8813
8813
  })
8814
8814
  };
8815
- const { ownerAskRef, recordedSendAt, recordOwnerSend } = await import("./chunk-IJHJIL6T.js");
8815
+ const { ownerAskRef, recordedSendAt, recordOwnerSend } = await import("./chunk-SSYD4XIW.js");
8816
8816
  if (sending.has(q.id))
8817
8817
  throw new HttpError(409, "Being sent", `${q.id} is being sent to ${to} now, from another tab or window: reload to see it sent.`, { code: "being-sent" });
8818
8818
  sending.add(q.id);
@@ -8886,7 +8886,7 @@ Answer it in Atticus (Questions \u203A Owner questions), or reply to ${ctx.user}
8886
8886
  const id = strParam(query, "id")?.trim();
8887
8887
  if (!id || id.length > 400 || /[\p{Cc}]/u.test(id))
8888
8888
  throw badRequest("Say which section: ?id=<source>/<page>#<heading>.");
8889
- const { passageOf } = await import("./chunk-H25QNDKK.js");
8889
+ const { passageOf } = await import("./chunk-PT77IUYQ.js");
8890
8890
  const p = await passageOf(root, id);
8891
8891
  if (!p)
8892
8892
  throw notFound(`No page or section ${id} is in a snapshot or in inputs/.`);