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

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 (325) hide show
  1. package/dist/bin.js +3 -3
  2. package/dist/chunk-22A2K555.js +653 -0
  3. package/dist/{chunk-UTZMF5CV.js → chunk-23TTURB2.js} +1 -1
  4. package/dist/{chunk-XIGVTH24.js → chunk-2666BPJE.js} +19 -19
  5. package/dist/{chunk-KFZ5IXEZ.js → chunk-2ALBHI4Q.js} +28 -27
  6. package/dist/chunk-2ANBMA74.js +107 -0
  7. package/dist/{chunk-UIYPX2BA.js → chunk-2HCW6HXK.js} +27 -26
  8. package/dist/{chunk-DJBXXYYA.js → chunk-2ISR6MWD.js} +15 -15
  9. package/dist/{chunk-ZDA72732.js → chunk-2MRYL45Z.js} +50 -9
  10. package/dist/{chunk-DB3NWAU3.js → chunk-3GNUHLAN.js} +4 -4
  11. package/dist/chunk-3GURU22K.js +44 -0
  12. package/dist/{chunk-UFIQ5FWY.js → chunk-3M3MDBOG.js} +1 -1
  13. package/dist/{chunk-DHQXCP2X.js → chunk-3PBIZBWN.js} +1 -1
  14. package/dist/{chunk-7IWMRZRI.js → chunk-3PWXVBCB.js} +83 -40
  15. package/dist/chunk-3W2QX6TT.js +58 -0
  16. package/dist/{chunk-H7CSCA73.js → chunk-3Z7ATALI.js} +5 -5
  17. package/dist/{chunk-ZGULQAPZ.js → chunk-44SWXDD7.js} +8 -5
  18. package/dist/{chunk-IEIHVMM6.js → chunk-46N5O5H7.js} +5 -5
  19. package/dist/{chunk-4DHYXODN.js → chunk-4D4DNTFE.js} +4 -4
  20. package/dist/{chunk-B3JHERXM.js → chunk-4EAT7HOX.js} +7 -5
  21. package/dist/{chunk-OH2OHNB5.js → chunk-4FLIW5PJ.js} +4 -4
  22. package/dist/{chunk-PGDVJWCI.js → chunk-4LWA5VMJ.js} +52 -37
  23. package/dist/{chunk-YWQZ7CCW.js → chunk-4ODVHNA6.js} +18 -17
  24. package/dist/{chunk-IH6BYFMH.js → chunk-4POSAXNC.js} +6 -6
  25. package/dist/{chunk-D5H3RZNE.js → chunk-4PQ4KDOA.js} +16 -15
  26. package/dist/{chunk-RQM5Y3HJ.js → chunk-4UVTNHA6.js} +1 -1
  27. package/dist/{chunk-KVVNAUIG.js → chunk-4XK3HLOH.js} +1 -0
  28. package/dist/{chunk-ZQGFZJH5.js → chunk-523NRKHF.js} +4 -4
  29. package/dist/{chunk-GJSLO2E2.js → chunk-5GCCG3GJ.js} +11 -5
  30. package/dist/{chunk-VGGSHDQU.js → chunk-5XW6RUDV.js} +8 -8
  31. package/dist/{chunk-K35VNKJH.js → chunk-5YEUAZZE.js} +8 -8
  32. package/dist/{chunk-YEHSJY6B.js → chunk-62LD7CSY.js} +13 -13
  33. package/dist/{chunk-DB6TDJ4T.js → chunk-67Y2J55V.js} +22 -21
  34. package/dist/{chunk-KL7UHAOR.js → chunk-6DSZ4CL7.js} +36 -21
  35. package/dist/{chunk-WM4EMP7T.js → chunk-6G67LSBG.js} +283 -61
  36. package/dist/{chunk-TLBPTUFU.js → chunk-6OEB4FTC.js} +20 -19
  37. package/dist/{chunk-GXJ2PSDW.js → chunk-6OTGCKYH.js} +9 -9
  38. package/dist/{chunk-EQMNMG6X.js → chunk-6XLCMDIP.js} +13 -13
  39. package/dist/chunk-76DZJTU7.js +190 -0
  40. package/dist/chunk-7764GVJK.js +37 -0
  41. package/dist/{chunk-KS2IQYTZ.js → chunk-7BOGXFZ3.js} +11 -11
  42. package/dist/{chunk-ZA2PWNR3.js → chunk-7CVHKNAF.js} +16 -15
  43. package/dist/{chunk-LBBI5P5G.js → chunk-7FEIS3KV.js} +25 -24
  44. package/dist/{chunk-OXCHO2QS.js → chunk-7GXM45T5.js} +26 -23
  45. package/dist/{chunk-YLXPJWNO.js → chunk-7YMAMNMT.js} +17 -16
  46. package/dist/chunk-7YWS47SE.js +56 -0
  47. package/dist/{chunk-LZFKJ2BR.js → chunk-A3LVMCA5.js} +1 -1
  48. package/dist/{chunk-PXDAGXQN.js → chunk-A7ZJKLFC.js} +11 -11
  49. package/dist/chunk-AANQC5QP.js +47 -0
  50. package/dist/{chunk-HV6PXXK7.js → chunk-AIQLTDC3.js} +3 -3
  51. package/dist/{chunk-PFWP624T.js → chunk-AKZTCZ6F.js} +4 -4
  52. package/dist/{chunk-KAWWXCPI.js → chunk-ALCSTVWQ.js} +3 -3
  53. package/dist/{chunk-7ZBYRMWK.js → chunk-ALUHO7SE.js} +26 -25
  54. package/dist/{chunk-3KP7OOJ4.js → chunk-AMZ4XMES.js} +8 -8
  55. package/dist/{chunk-V5ZKGBYL.js → chunk-AOQG37K4.js} +8 -6
  56. package/dist/{chunk-CNT6T2JM.js → chunk-ARXZTHEI.js} +16 -15
  57. package/dist/{chunk-KFJMQUSK.js → chunk-AS4CTARY.js} +16 -15
  58. package/dist/{chunk-MM7JSMLW.js → chunk-AVUPW23W.js} +18 -17
  59. package/dist/{chunk-NQDVD2YR.js → chunk-B56FCIEJ.js} +12 -12
  60. package/dist/{chunk-CPE7HLIK.js → chunk-BABATPOZ.js} +18 -17
  61. package/dist/{chunk-63572EFC.js → chunk-BIOKDLLX.js} +21 -19
  62. package/dist/{chunk-D4TW3PUO.js → chunk-BUBKKEUV.js} +5 -5
  63. package/dist/{chunk-FOOU5OJE.js → chunk-CDC6VECU.js} +3 -3
  64. package/dist/chunk-CHEFUNZ4.js +425 -0
  65. package/dist/{chunk-IL7PVMUO.js → chunk-CIFR3DPV.js} +6 -6
  66. package/dist/{chunk-DS5M2J2H.js → chunk-CLBVKD4P.js} +16 -15
  67. package/dist/{chunk-2FTHLB2H.js → chunk-CLM5Z3R5.js} +5 -5
  68. package/dist/{chunk-CFK6CFXM.js → chunk-CLYV5MB6.js} +9 -9
  69. package/dist/{chunk-KZ4I5M2X.js → chunk-CRYIBCGP.js} +37 -19
  70. package/dist/{chunk-PLSCWC2V.js → chunk-D3L5SO27.js} +5 -5
  71. package/dist/chunk-DAZM2INZ.js +34 -0
  72. package/dist/{chunk-I72PEROE.js → chunk-DF4BXBB2.js} +6 -6
  73. package/dist/{chunk-PZFZPHCT.js → chunk-E7Q52EOO.js} +11 -11
  74. package/dist/{chunk-R2FUFBHW.js → chunk-EFDUC35B.js} +3 -3
  75. package/dist/{chunk-43OWNS5N.js → chunk-EHXEJFHD.js} +5 -5
  76. package/dist/{chunk-HQMLY2R6.js → chunk-ELJ5Q4J2.js} +2 -2
  77. package/dist/{chunk-F4EGHECF.js → chunk-EM6DKBTJ.js} +3 -3
  78. package/dist/{chunk-UZBLVNW6.js → chunk-EMC46SU4.js} +38 -17
  79. package/dist/{chunk-F6GRBF5L.js → chunk-EQEDIWFQ.js} +25 -24
  80. package/dist/chunk-EW574EZI.js +57 -0
  81. package/dist/{chunk-HSJKYDHI.js → chunk-EYINWNXL.js} +5 -5
  82. package/dist/{chunk-KUEG2Y7M.js → chunk-EYVYHYCA.js} +8 -8
  83. package/dist/{chunk-ELR7DEQM.js → chunk-F66542M6.js} +34 -9
  84. package/dist/{chunk-RCLBIJRN.js → chunk-F74OMLNU.js} +6 -6
  85. package/dist/{chunk-PBDIVTFL.js → chunk-FADIWOA5.js} +3 -3
  86. package/dist/{chunk-LHN5UCXD.js → chunk-FC3ZVD3O.js} +3 -3
  87. package/dist/{chunk-DXLWZ3BJ.js → chunk-FG65LXED.js} +8 -8
  88. package/dist/{chunk-V5FT3MZG.js → chunk-FKAUBC4Y.js} +8 -8
  89. package/dist/{chunk-RBO4A7TC.js → chunk-FM3EEDS2.js} +15 -15
  90. package/dist/{chunk-TYN5SG5H.js → chunk-FS4E7F6O.js} +403 -148
  91. package/dist/{chunk-HVWPN2RY.js → chunk-FSYJPYLE.js} +16 -15
  92. package/dist/{chunk-IBIIKUC7.js → chunk-G33UIUG3.js} +46 -20
  93. package/dist/{chunk-4NWE2KY3.js → chunk-G3F4BYML.js} +15 -14
  94. package/dist/{chunk-2GT47PWU.js → chunk-GBJRFFDW.js} +5 -5
  95. package/dist/{chunk-NMURRF5F.js → chunk-GF6GBHFN.js} +13 -11
  96. package/dist/{chunk-C3TBDX7Y.js → chunk-GLHOUT5E.js} +26 -25
  97. package/dist/{chunk-ZWMHL346.js → chunk-GM6GXO2A.js} +20 -19
  98. package/dist/{chunk-MKUBDKE2.js → chunk-GSJ2RXE7.js} +29 -28
  99. package/dist/{chunk-YJBD5NDV.js → chunk-GT72FDER.js} +6 -6
  100. package/dist/{chunk-BEEHCL5O.js → chunk-GW6ZH77P.js} +37 -36
  101. package/dist/{chunk-BABRMZET.js → chunk-GZILYRGC.js} +3 -3
  102. package/dist/{chunk-5JGRF53S.js → chunk-GZSOZYEP.js} +3 -3
  103. package/dist/{chunk-IP6ARMZU.js → chunk-H25QNDKK.js} +58 -36
  104. package/dist/{chunk-BIAQ6NQS.js → chunk-H3RKW4RF.js} +7 -7
  105. package/dist/chunk-H7M7ZH6H.js +52 -0
  106. package/dist/chunk-H7NRWSMP.js +55 -0
  107. package/dist/{chunk-2JT4QV3Q.js → chunk-HDWVR5KD.js} +4 -4
  108. package/dist/{chunk-UAYU6K24.js → chunk-HG24EF5S.js} +16 -15
  109. package/dist/chunk-HPNYSY5M.js +1068 -0
  110. package/dist/{chunk-JJEXMHNZ.js → chunk-HUMM4S5I.js} +6 -6
  111. package/dist/{chunk-DARX3ATP.js → chunk-HVPS2YCW.js} +11 -11
  112. package/dist/{chunk-IGOE6KPG.js → chunk-I34CXV2C.js} +185 -11
  113. package/dist/{chunk-6U65YB54.js → chunk-I57IH5X6.js} +360 -271
  114. package/dist/{chunk-WYO4L4NU.js → chunk-I5X4WU7U.js} +6 -6
  115. package/dist/chunk-IAVVJ34R.js +55 -0
  116. package/dist/chunk-IBJE2E2S.js +51 -0
  117. package/dist/{chunk-HNNMT5L2.js → chunk-IF3X6FMO.js} +1 -1
  118. package/dist/{chunk-CUTMM4NY.js → chunk-IJHJIL6T.js} +154 -25
  119. package/dist/chunk-IM435QAM.js +72 -0
  120. package/dist/{chunk-MQ6HP2TU.js → chunk-IMBJ7WAO.js} +6 -6
  121. package/dist/{chunk-5A4RHEEL.js → chunk-INCFIDCB.js} +2 -2
  122. package/dist/{chunk-RTCZKKG7.js → chunk-IPMPLTEG.js} +3 -3
  123. package/dist/{chunk-QAFQLILX.js → chunk-IPSZDVLI.js} +12 -12
  124. package/dist/{chunk-JLTJAOO4.js → chunk-IX2EOYOU.js} +50 -13
  125. package/dist/{chunk-DOU52XFZ.js → chunk-IXNMGPF7.js} +61 -28
  126. package/dist/{chunk-XT3ZW7C7.js → chunk-J6GO3K7G.js} +19 -18
  127. package/dist/chunk-JBLM6IUA.js +42 -0
  128. package/dist/{chunk-CSHJZFOE.js → chunk-JL2VOYSL.js} +91 -93
  129. package/dist/{chunk-ACY3U2RD.js → chunk-JRXFZB6J.js} +8 -8
  130. package/dist/{chunk-P6EJNPFF.js → chunk-JTOLBS7R.js} +951 -409
  131. package/dist/{chunk-FYCN2Y5P.js → chunk-K73BHPTQ.js} +19 -18
  132. package/dist/{chunk-EVKDWJ5Y.js → chunk-KF7KVUNJ.js} +5 -5
  133. package/dist/{chunk-SRB54QGX.js → chunk-KKUCBKJE.js} +20 -19
  134. package/dist/{chunk-LTOBNBJ6.js → chunk-KLFFHBWG.js} +27 -26
  135. package/dist/{chunk-DXBXZNKV.js → chunk-KMYB2XO7.js} +21 -13
  136. package/dist/chunk-KNYQUWFN.js +52 -0
  137. package/dist/{chunk-6EMJ4XFC.js → chunk-KOAJPMU2.js} +31 -20
  138. package/dist/chunk-KRTSE73S.js +55 -0
  139. package/dist/{chunk-GAJBMPWC.js → chunk-L3AM5YRP.js} +28 -9
  140. package/dist/{chunk-YYV276DM.js → chunk-LCIIFAID.js} +22 -21
  141. package/dist/{chunk-SZDOBIWE.js → chunk-LCQIRCOT.js} +55 -10
  142. package/dist/{chunk-OI32KTDM.js → chunk-LFHBAWIM.js} +13 -13
  143. package/dist/chunk-LIHEMWIT.js +39 -0
  144. package/dist/{chunk-CG6MG7SE.js → chunk-LJLYWILK.js} +14 -14
  145. package/dist/{chunk-6SIGGA37.js → chunk-LNJKDS5C.js} +26 -25
  146. package/dist/{chunk-3GEAUW62.js → chunk-LTHY7E2P.js} +16 -15
  147. package/dist/{chunk-RO6BE7ZS.js → chunk-LTVOQJKT.js} +7 -7
  148. package/dist/{chunk-BD7HBZLP.js → chunk-LZO3JABE.js} +6 -6
  149. package/dist/{chunk-PXMV2LLY.js → chunk-M65AZ4ZE.js} +3 -5
  150. package/dist/chunk-MPNTEWNY.js +492 -0
  151. package/dist/chunk-MQGQ3AWK.js +58 -0
  152. package/dist/{chunk-ZNYSBQIA.js → chunk-MUXYUIBV.js} +6 -6
  153. package/dist/{chunk-CNEOKSTO.js → chunk-MWRRJDXQ.js} +34 -31
  154. package/dist/{chunk-VJO7M34N.js → chunk-MZDHFWTN.js} +2 -2
  155. package/dist/chunk-N2XCT5OX.js +68 -0
  156. package/dist/{chunk-2IO6XH37.js → chunk-N3JGYAMD.js} +15 -15
  157. package/dist/{chunk-K3QKOVZN.js → chunk-N5DLB74D.js} +367 -71
  158. package/dist/{chunk-H5BIVULF.js → chunk-NC3Q7RIB.js} +10 -10
  159. package/dist/{chunk-HVOE7ZW2.js → chunk-NCNLX4DL.js} +19 -18
  160. package/dist/{chunk-3D74UADA.js → chunk-NGSGJLKW.js} +2 -2
  161. package/dist/{chunk-B7KGNEFI.js → chunk-NN7K2LLN.js} +25 -24
  162. package/dist/{chunk-76AHTJVY.js → chunk-NNURP7VO.js} +15 -15
  163. package/dist/chunk-NSQB24WR.js +56 -0
  164. package/dist/{chunk-GFFTVQ7R.js → chunk-NV5S63YK.js} +7 -7
  165. package/dist/{chunk-CTJHEG6A.js → chunk-NWMFVPEP.js} +2 -0
  166. package/dist/{chunk-7JZONWAA.js → chunk-NYT6QGZA.js} +22 -18
  167. package/dist/chunk-OB2DAIJX.js +62 -0
  168. package/dist/{chunk-IZIGZ7KY.js → chunk-OC3OXDTG.js} +13 -8
  169. package/dist/{chunk-2XIIUXGX.js → chunk-OD6RNYMQ.js} +16 -16
  170. package/dist/{chunk-723OQZ3N.js → chunk-OFYBRMRG.js} +6 -6
  171. package/dist/chunk-OGTELPDN.js +43 -0
  172. package/dist/{chunk-E5NHFHGC.js → chunk-OQ7SBQ2Z.js} +7 -7
  173. package/dist/{chunk-6TZ4YRGJ.js → chunk-OUDGBJC2.js} +16 -9
  174. package/dist/{chunk-W4SMKUAK.js → chunk-OUGTAOGA.js} +2 -2
  175. package/dist/chunk-OWP5FCYM.js +60 -0
  176. package/dist/{chunk-ET7SPOBA.js → chunk-P36PTWBM.js} +8 -8
  177. package/dist/{chunk-64LSDT3D.js → chunk-P6Y2J2QY.js} +12 -12
  178. package/dist/{chunk-ANFBBJEV.js → chunk-PDJL2HO5.js} +24 -22
  179. package/dist/{chunk-UXVKFOMC.js → chunk-PPKH6ULR.js} +152 -20
  180. package/dist/{chunk-WLA2JZ2K.js → chunk-Q4PFF2ZE.js} +8 -8
  181. package/dist/chunk-Q7EUPQEG.js +5 -0
  182. package/dist/{chunk-2HDNOUJU.js → chunk-QC6GSNIK.js} +7055 -3456
  183. package/dist/chunk-QCRQNYGI.js +211 -0
  184. package/dist/chunk-QDF533AW.js +90 -0
  185. package/dist/chunk-QDGNDNBG.js +50 -0
  186. package/dist/{chunk-HWPX3T55.js → chunk-QGMD3PYL.js} +31 -24
  187. package/dist/{chunk-VCXFMXMX.js → chunk-QLT3WYTD.js} +6 -6
  188. package/dist/{chunk-ZFLBWL2G.js → chunk-QNDMAKQS.js} +11 -3
  189. package/dist/{chunk-UWBPC5XH.js → chunk-QNXMVJMA.js} +8 -8
  190. package/dist/{chunk-XDLMQL5A.js → chunk-QPAANKUR.js} +7 -7
  191. package/dist/{chunk-BGOAJFPB.js → chunk-QS4VX3HZ.js} +1 -1
  192. package/dist/{chunk-YIOYKA4V.js → chunk-QSM4K6LI.js} +7 -7
  193. package/dist/{chunk-TPKJD42W.js → chunk-QUFZDWPC.js} +8 -8
  194. package/dist/{chunk-QXCGRQGO.js → chunk-QXXEOH3A.js} +18 -6
  195. package/dist/{chunk-QA4O2GGC.js → chunk-R4TUWD4C.js} +17 -1
  196. package/dist/{chunk-UJ5ZJS4B.js → chunk-ROI64BAI.js} +22 -21
  197. package/dist/{chunk-LCRQPWTC.js → chunk-RPVL3RTX.js} +19 -18
  198. package/dist/{chunk-QQAWI5LD.js → chunk-RUNHVUCW.js} +16 -15
  199. package/dist/{chunk-7AEB74KW.js → chunk-RWYPLODE.js} +9 -9
  200. package/dist/{chunk-VTR4AC2U.js → chunk-RZYRUXSU.js} +4 -4
  201. package/dist/{chunk-CWLXVRFH.js → chunk-S6TLXRBR.js} +7 -7
  202. package/dist/{chunk-Z33UNTHI.js → chunk-SCOP3J6X.js} +7 -7
  203. package/dist/{chunk-XEWFVHOT.js → chunk-SCP24MJX.js} +24 -23
  204. package/dist/{chunk-MCORC2LG.js → chunk-SF3HXNXR.js} +6 -6
  205. package/dist/{chunk-BSZII65X.js → chunk-SFCFL7Y5.js} +1 -1
  206. package/dist/{chunk-LY7DOYX2.js → chunk-SHFY73RI.js} +53 -112
  207. package/dist/{chunk-IERXBWQU.js → chunk-SHIARIEZ.js} +20 -19
  208. package/dist/chunk-SMFFUFMN.js +1876 -0
  209. package/dist/{chunk-WH3ZFLXT.js → chunk-SVOGRJO6.js} +197 -124
  210. package/dist/chunk-SVZAAOHJ.js +46 -0
  211. package/dist/{chunk-NCZS2BN2.js → chunk-SZOU32VF.js} +21 -20
  212. package/dist/{chunk-MTIRNHRJ.js → chunk-T2MN24LZ.js} +1 -1
  213. package/dist/{chunk-KZH5YV6J.js → chunk-TD5WWJLN.js} +6 -6
  214. package/dist/{chunk-UBEFT3MQ.js → chunk-TFN2N227.js} +6 -6
  215. package/dist/{chunk-BIKMME4S.js → chunk-TFXNOQEU.js} +28 -27
  216. package/dist/{chunk-6P67IUET.js → chunk-TMETWJFO.js} +11 -11
  217. package/dist/chunk-TNSAIISO.js +50 -0
  218. package/dist/{chunk-SDHGFMES.js → chunk-TRJO2I4S.js} +3 -3
  219. package/dist/{chunk-NVVEVP5O.js → chunk-TRSNIJNM.js} +7 -7
  220. package/dist/{chunk-VIQHZA53.js → chunk-U3Z2QZE3.js} +6 -6
  221. package/dist/{chunk-TQG2DDWH.js → chunk-U7L3ORPK.js} +22 -21
  222. package/dist/{chunk-3KIMLBGZ.js → chunk-UDM6HGF4.js} +6 -6
  223. package/dist/{chunk-NMCPIYTF.js → chunk-UDM7LXNJ.js} +7 -7
  224. package/dist/chunk-UDTO3U6E.js +35 -0
  225. package/dist/{chunk-ZFEOIYK5.js → chunk-UEUPEUZX.js} +3 -3
  226. package/dist/chunk-UWBODTY7.js +514 -0
  227. package/dist/{chunk-BIWNRS5I.js → chunk-UYYYQTPD.js} +78 -47
  228. package/dist/{chunk-IDRCBMJF.js → chunk-V34N6JAN.js} +32 -31
  229. package/dist/{chunk-EY3OVHNC.js → chunk-V3Y5P7OS.js} +24 -23
  230. package/dist/chunk-V6MLVGTP.js +89 -0
  231. package/dist/{chunk-EECFUQP3.js → chunk-VC2XHC7P.js} +184 -46
  232. package/dist/{chunk-H26T2LQL.js → chunk-VCYE4MUD.js} +29 -28
  233. package/dist/{chunk-EUTZTJIO.js → chunk-VN2VJ6BV.js} +19 -15
  234. package/dist/{chunk-P6DM2EFI.js → chunk-VVLWEM2Y.js} +6 -6
  235. package/dist/{chunk-YXKCE5BA.js → chunk-VWCNMDMZ.js} +5 -5
  236. package/dist/{chunk-BV2BZIUF.js → chunk-W2A4NHQD.js} +25 -24
  237. package/dist/{chunk-VPQUFIE7.js → chunk-W6OY2PMB.js} +10 -10
  238. package/dist/{chunk-FIZ5LYL2.js → chunk-WC6DHBVG.js} +16 -15
  239. package/dist/{chunk-GHST3KAB.js → chunk-WCA3WIGG.js} +5 -5
  240. package/dist/{chunk-6ZDAEUKB.js → chunk-WJWSB65O.js} +1602 -452
  241. package/dist/{chunk-IFQJ3YQE.js → chunk-WNPGLGCJ.js} +5 -5
  242. package/dist/chunk-WTOVWEY3.js +67 -0
  243. package/dist/{chunk-XIJBQM45.js → chunk-X5B7KYPD.js} +507 -20
  244. package/dist/{chunk-ZLBUFK7L.js → chunk-X73WLHSN.js} +7 -7
  245. package/dist/{chunk-GNFZ227W.js → chunk-XIIT4PVT.js} +3 -3
  246. package/dist/{chunk-U3JXMY56.js → chunk-XLTT5QCX.js} +28 -25
  247. package/dist/{chunk-5UIGGXA5.js → chunk-XMIS25ZJ.js} +21 -20
  248. package/dist/{chunk-IYEET4VM.js → chunk-XPDQ4T6G.js} +27 -26
  249. package/dist/{chunk-WT6EXYEY.js → chunk-XRWUYOX3.js} +138 -22
  250. package/dist/{chunk-I2EWY3MG.js → chunk-XZY4GTCX.js} +14 -9
  251. package/dist/{chunk-2SCZZQNQ.js → chunk-Y2TVTI4P.js} +121 -15
  252. package/dist/{chunk-Q3RKXK5Z.js → chunk-Y2U4CSCA.js} +28 -27
  253. package/dist/chunk-Y2U63JKE.js +41 -0
  254. package/dist/{chunk-V3M4VFUB.js → chunk-Y6S7VCYN.js} +6 -6
  255. package/dist/{chunk-SAPX3PVK.js → chunk-YAPMGK7E.js} +11 -11
  256. package/dist/{chunk-MY3LDBMR.js → chunk-YAPVAYZN.js} +3 -3
  257. package/dist/{chunk-ZYLGEWTC.js → chunk-YCBDNWX3.js} +78 -57
  258. package/dist/{chunk-RK5P2DWD.js → chunk-YIGSUTW2.js} +1329 -92
  259. package/dist/{chunk-XI3GPYP4.js → chunk-YJTBE6AJ.js} +5 -5
  260. package/dist/chunk-YQ3IXQIH.js +185 -0
  261. package/dist/{chunk-MZXDSAKW.js → chunk-YRHKEXTP.js} +11 -11
  262. package/dist/{chunk-DPH4BS3F.js → chunk-YSSFS3YC.js} +17 -17
  263. package/dist/{chunk-ISCX25D7.js → chunk-YXG2VQJJ.js} +200 -56
  264. package/dist/{chunk-VUSYN4R4.js → chunk-Z4GLFTEH.js} +8 -8
  265. package/dist/{chunk-NP3PG6OI.js → chunk-Z65FWO6A.js} +157 -89
  266. package/dist/{chunk-KJD4DLRZ.js → chunk-ZDG637ZT.js} +22 -21
  267. package/dist/{chunk-DASVVML7.js → chunk-ZIAMPN7N.js} +6 -6
  268. package/dist/chunk-ZIIBQHCX.js +53 -0
  269. package/dist/{chunk-IJN5PSDU.js → chunk-ZJJMYPGZ.js} +57 -27
  270. package/dist/{chunk-NECDBPFP.js → chunk-ZOAX7W5S.js} +11 -11
  271. package/dist/chunk-ZSSR5GGB.js +48 -0
  272. package/dist/files.json +657 -553
  273. package/dist/fixtures/forge/expected/crosscheck.json +726 -0
  274. package/dist/fixtures/forge/slots/README.md +13 -0
  275. package/dist/fixtures/forge/slots/build.json +2686 -0
  276. package/dist/fixtures/forge/slots/crosscheck/forge-ledger.crosscheck.yaml +8 -0
  277. package/dist/fixtures/forge/slots/facts/forge-ledger.jsonl +17 -0
  278. package/dist/fixtures/forge/slots/facts/forge-ledger.meta.json +9 -0
  279. package/dist/fixtures/forge/slots/legacy/joins.json +113 -0
  280. package/dist/fixtures/forge/slots/readers/forge-events.json +306 -0
  281. package/dist/fixtures/forge/slots/readers/forge-gateway.json +238 -0
  282. package/dist/fixtures/forge/slots/readers/forge-infra.json +264 -0
  283. package/dist/fixtures/forge/slots/readers/forge-ledger.json +756 -0
  284. package/dist/fixtures/forge/slots/readers/forge-portal-bff.json +349 -0
  285. package/dist/fixtures/forge/slots/readers/forge-portal-ui.json +214 -0
  286. package/dist/fixtures/forge/slots/readers/forge-reports-job.json +258 -0
  287. package/dist/packages/sdk/npm/index.js +3788 -2939
  288. package/dist/packages/ui/dist/assets/{elk-api-BdXSPeBO.js → elk-api-CPE6PVL8.js} +2 -2
  289. package/dist/packages/ui/dist/assets/index-BYcVqj0l.js +65 -0
  290. package/dist/packages/ui/dist/assets/index-DF52Ejvz.css +1 -0
  291. package/dist/packages/ui/dist/index.html +2 -2
  292. package/package.json +4 -4
  293. package/dist/chunk-24OXGB3P.js +0 -82
  294. package/dist/chunk-3FFIDQQB.js +0 -42
  295. package/dist/chunk-4N5W7LYW.js +0 -41
  296. package/dist/chunk-7NVLGPER.js +0 -45
  297. package/dist/chunk-A6LGX56J.js +0 -52
  298. package/dist/chunk-AHACUPGL.js +0 -46
  299. package/dist/chunk-DG7KYZAL.js +0 -40
  300. package/dist/chunk-DWD6BKHG.js +0 -52
  301. package/dist/chunk-EEVSFGIU.js +0 -50
  302. package/dist/chunk-EN3N6LNU.js +0 -52
  303. package/dist/chunk-FWQDH5NK.js +0 -55
  304. package/dist/chunk-GHCFWIUW.js +0 -38
  305. package/dist/chunk-GSIJWDXH.js +0 -43
  306. package/dist/chunk-HCC5547C.js +0 -232
  307. package/dist/chunk-HLDUWEO7.js +0 -36
  308. package/dist/chunk-K2NQTROJ.js +0 -170
  309. package/dist/chunk-LH4WAJLC.js +0 -45
  310. package/dist/chunk-M5IQUWJR.js +0 -59
  311. package/dist/chunk-MEMEO7YO.js +0 -988
  312. package/dist/chunk-MGNO4Q6V.js +0 -51
  313. package/dist/chunk-MZ6GOFRF.js +0 -55
  314. package/dist/chunk-N2AW2DHF.js +0 -51
  315. package/dist/chunk-N35Y5HZO.js +0 -47
  316. package/dist/chunk-NHFMLMLN.js +0 -257
  317. package/dist/chunk-PR6Z5L7W.js +0 -67
  318. package/dist/chunk-STBJ6SVJ.js +0 -50
  319. package/dist/chunk-U3RGBYXE.js +0 -62
  320. package/dist/chunk-URZKIL37.js +0 -42
  321. package/dist/chunk-W7HNZDHB.js +0 -71
  322. package/dist/chunk-YYZWSVIS.js +0 -33
  323. package/dist/chunk-ZAMSF2DF.js +0 -54
  324. package/dist/packages/ui/dist/assets/index-DRSUhpFi.css +0 -1
  325. package/dist/packages/ui/dist/assets/index-RZe5iotJ.js +0 -63
@@ -17,7 +17,7 @@ import {
17
17
  parseNewFile,
18
18
  rerunOf,
19
19
  usesOf
20
- } from "./chunk-5A4RHEEL.js";
20
+ } from "./chunk-INCFIDCB.js";
21
21
  import {
22
22
  CriticError,
23
23
  MERGED_FLOWS,
@@ -49,8 +49,9 @@ import {
49
49
  triggerReason,
50
50
  waitingLenses,
51
51
  writeQuarantineItems
52
- } from "./chunk-VIQHZA53.js";
52
+ } from "./chunk-U3Z2QZE3.js";
53
53
  import {
54
+ GENERATED_MARK,
54
55
  changeFolder,
55
56
  changeFootprint,
56
57
  changeSize,
@@ -60,39 +61,27 @@ import {
60
61
  checkStage,
61
62
  editSha,
62
63
  isFilled,
64
+ isGenerated,
65
+ keepPersonWritten,
63
66
  loadChangeContext,
64
67
  pastCorrections,
68
+ personWritten,
69
+ personWrittenPlanning,
65
70
  phaseGates,
66
71
  scoreRisk,
67
72
  stageCommand,
68
73
  testPlanFor,
69
74
  wroteThis
70
- } from "./chunk-WH3ZFLXT.js";
75
+ } from "./chunk-SVOGRJO6.js";
71
76
  import {
72
77
  ARTIFACT_STAGE,
73
78
  archiveRefuses,
74
79
  artifactsOfStage,
75
80
  createOpenSpec
76
- } from "./chunk-UTZMF5CV.js";
77
- import {
78
- AdapterError,
79
- createAdapters,
80
- fileStepStore
81
- } from "./chunk-6U65YB54.js";
82
- import {
83
- GAP_STEP,
84
- candidateRef,
85
- contextToolBox,
86
- defaultCodeDir,
87
- gapNameOf,
88
- gapQuestion,
89
- namesInCode,
90
- nodesById,
91
- openIndex
92
- } from "./chunk-SZDOBIWE.js";
81
+ } from "./chunk-23TTURB2.js";
93
82
  import {
94
83
  readCatalog
95
- } from "./chunk-2HDNOUJU.js";
84
+ } from "./chunk-QC6GSNIK.js";
96
85
  import {
97
86
  CONFLICT_STEP,
98
87
  checkQuote,
@@ -111,17 +100,30 @@ import {
111
100
  snapshotPages,
112
101
  syncSources,
113
102
  workingDays
114
- } from "./chunk-K3QKOVZN.js";
103
+ } from "./chunk-N5DLB74D.js";
104
+ import {
105
+ AdapterError,
106
+ createAdapters,
107
+ fileStepStore
108
+ } from "./chunk-I57IH5X6.js";
109
+ import {
110
+ GAP_STEP,
111
+ candidateRef,
112
+ contextToolBox,
113
+ defaultCodeDir,
114
+ gapNameOf,
115
+ gapQuestion,
116
+ namesInCode,
117
+ nodesById,
118
+ openIndex
119
+ } from "./chunk-LCQIRCOT.js";
115
120
  import {
116
121
  changeInputSources,
117
122
  citedParts,
118
123
  heldOutInputs,
119
124
  readServiceRequestExports,
120
125
  readWorkItemExports
121
- } from "./chunk-QAFQLILX.js";
122
- import {
123
- readDocument
124
- } from "./chunk-HQMLY2R6.js";
126
+ } from "./chunk-IPSZDVLI.js";
125
127
  import {
126
128
  APPLIES_SPEC,
127
129
  ASKS_CHECK_SPEC,
@@ -144,7 +146,10 @@ import {
144
146
  toRunSummary,
145
147
  verdictOf,
146
148
  wrapData
147
- } from "./chunk-ZDA72732.js";
149
+ } from "./chunk-2MRYL45Z.js";
150
+ import {
151
+ readDocument
152
+ } from "./chunk-ELJ5Q4J2.js";
148
153
  import {
149
154
  JOINED_BY_AI,
150
155
  JOIN_GUESS_FLAGS,
@@ -158,7 +163,6 @@ import {
158
163
  fileJudgments,
159
164
  identifierWords,
160
165
  inputsDirOf,
161
- isSecretPath,
162
166
  judgmentKey,
163
167
  listQuestions,
164
168
  makeJudgment,
@@ -176,7 +180,6 @@ import {
176
180
  readPrototypeArchitecture,
177
181
  readQuestion,
178
182
  readRepoSpec,
179
- redactSecrets,
180
183
  retireQuestion,
181
184
  runsDirOf,
182
185
  runsRelOf,
@@ -186,12 +189,14 @@ import {
186
189
  taskBranch,
187
190
  toCanonicalYaml,
188
191
  writeQuestion
189
- } from "./chunk-6ZDAEUKB.js";
192
+ } from "./chunk-WJWSB65O.js";
190
193
  import {
191
194
  QUICK_WRITE_LOCK,
195
+ isSecretPath,
196
+ redactSecrets,
192
197
  withSharedFileLock,
193
198
  writeFileAtomic
194
- } from "./chunk-MEMEO7YO.js";
199
+ } from "./chunk-SMFFUFMN.js";
195
200
  import {
196
201
  AgentDefinition,
197
202
  KNOWLEDGE_KINDS,
@@ -214,7 +219,7 @@ import {
214
219
  normalizePath,
215
220
  retrievalOf,
216
221
  specTemplateFor
217
- } from "./chunk-LZFKJ2BR.js";
222
+ } from "./chunk-A3LVMCA5.js";
218
223
  import {
219
224
  require_dist
220
225
  } from "./chunk-BQGDB6ZL.js";
@@ -1059,7 +1064,6 @@ async function writeProse(ctx, skeleton, o) {
1059
1064
  }
1060
1065
 
1061
1066
  // packages/planner/dist/render.js
1062
- var GENERATED_MARK = "<!-- Generated by atticus plan";
1063
1067
  var sentence = (s) => /[.!?]$/.test(s) ? s : `${s}.`;
1064
1068
  var cell = (s) => s.replace(/\|/g, "\\|").replace(/\n/g, " ");
1065
1069
  var ENGINE_LINE = {
@@ -1395,25 +1399,20 @@ function fillSnowFields(text4, heading, values) {
1395
1399
 
1396
1400
  // packages/planner/dist/plan.js
1397
1401
  import { readdir, readFile, rm } from "node:fs/promises";
1398
- import { join } from "node:path";
1399
- async function exists(path) {
1400
- return readFile(path).then(() => true, () => false);
1401
- }
1402
+ import { join, relative, sep } from "node:path";
1402
1403
  async function guard(ctx, rels, force) {
1403
1404
  if (force)
1404
1405
  return;
1405
- const own = [];
1406
- for (const rel of rels) {
1407
- const p = join(ctx.dir, rel);
1408
- if (!await exists(p))
1409
- continue;
1410
- const text4 = await readFile(p, "utf8");
1411
- if (!text4.startsWith(GENERATED_MARK))
1412
- own.push(rel);
1413
- }
1406
+ const own = await personWritten(ctx.dir, rels);
1414
1407
  if (own.length)
1415
1408
  throw new PlannerError("refused", `${ctx.change.id} already has planning files a person wrote: ${own.join(", ")}. Re-run with --force to replace them.`);
1416
1409
  }
1410
+ async function keepForced(ctx, rels, force, stage) {
1411
+ if (!force)
1412
+ return void 0;
1413
+ const own = await personWritten(ctx.dir, rels);
1414
+ return keepPersonWritten(ctx.dir, relative(ctx.root, ctx.dir).split(sep).join("/"), stage, own);
1415
+ }
1417
1416
  function linkWaits(skeleton, needs) {
1418
1417
  const byNeed = /* @__PURE__ */ new Map();
1419
1418
  for (const n of needs) {
@@ -1473,19 +1472,28 @@ async function planStories(root, changeId, o = {}) {
1473
1472
  }
1474
1473
  }
1475
1474
  linkWaits(skeleton, snowNeeds(ctx));
1475
+ const stale = (await readdir(join(ctx.dir, "stories")).catch(() => [])).filter((f) => f.endsWith(".md")).map((f) => `stories/${f}`);
1476
+ const kept = await keepForced(ctx, [.../* @__PURE__ */ new Set([...rels, ...stale])], o.force, "stories");
1476
1477
  const keep = new Set(skeleton.stories.map((s) => `${s.id}.md`));
1477
1478
  for (const f of await readdir(join(ctx.dir, "stories")).catch(() => [])) {
1478
1479
  if (keep.has(f) || !f.endsWith(".md"))
1479
1480
  continue;
1480
1481
  const p = join(ctx.dir, "stories", f);
1481
- if ((await readFile(p, "utf8")).startsWith(GENERATED_MARK) || o.force)
1482
+ if (isGenerated(await readFile(p, "utf8")) || o.force)
1482
1483
  await rm(p);
1483
1484
  }
1484
1485
  for (const s of skeleton.stories)
1485
1486
  await writeFileAtomic(join(ctx.dir, "stories", `${s.id}.md`), renderStory(ctx, s, prose.get(s.id)));
1486
1487
  await writeFileAtomic(join(ctx.dir, "stories.md"), renderIndex(skeleton, prose));
1487
1488
  await writeFileAtomic(join(ctx.dir, "tasks.md"), renderTasks(skeleton, skeleton.tasks));
1488
- return { ...base, state: "written", prose, fallback, files: rels.sort() };
1489
+ return {
1490
+ ...base,
1491
+ state: "written",
1492
+ prose,
1493
+ fallback,
1494
+ files: rels.sort(),
1495
+ ...kept ? { kept } : {}
1496
+ };
1489
1497
  }
1490
1498
  async function snowDraft(root, changeId, o = {}) {
1491
1499
  const ctx = await loadPlanContext(root, changeId);
@@ -1494,8 +1502,9 @@ async function snowDraft(root, changeId, o = {}) {
1494
1502
  const drafts = needs.map((n) => draftFor(ctx, n));
1495
1503
  const skeleton = buildSkeleton(ctx);
1496
1504
  const waits = linkWaits(skeleton, needs);
1505
+ const kept = await keepForced(ctx, ["snow.md"], o.force, "snow");
1497
1506
  await writeFileAtomic(join(ctx.dir, "snow.md"), renderSnow(drafts, waits));
1498
- return { change: ctx.change.id, drafts, file: "snow.md" };
1507
+ return { change: ctx.change.id, drafts, file: "snow.md", ...kept ? { kept } : {} };
1499
1508
  }
1500
1509
 
1501
1510
  // packages/planner/dist/bar.js
@@ -2287,7 +2296,7 @@ async function submitRequests(root, changeId, o) {
2287
2296
  // packages/planner/dist/templates.js
2288
2297
  var import_yaml4 = __toESM(require_dist(), 1);
2289
2298
  import { readdir as readdir3, readFile as readFile4 } from "node:fs/promises";
2290
- import { join as join4, relative, sep } from "node:path";
2299
+ import { join as join4, relative as relative2, sep as sep2 } from "node:path";
2291
2300
  var PROPOSALS_DIR = "proposals/templates";
2292
2301
  var HOW_TO_TITLE = /^how to\s+(?:request|raise|ask for|get|open|submit|create|file)\s+(?:an?\s+|the\s+)?(.+?)\s*$/i;
2293
2302
  var ref = (h, n) => h.lineRefs ? `${h.path}:${n}` : h.path;
@@ -2779,7 +2788,7 @@ async function uploads(root, inputsDir, skip) {
2779
2788
  if (e.name.startsWith("."))
2780
2789
  continue;
2781
2790
  const full = join4(d, e.name);
2782
- if (skip.some((s) => full === s || full.startsWith(`${s}${sep}`)))
2791
+ if (skip.some((s) => full === s || full.startsWith(`${s}${sep2}`)))
2783
2792
  continue;
2784
2793
  if (e.isDirectory())
2785
2794
  await walk(full);
@@ -2790,7 +2799,7 @@ async function uploads(root, inputsDir, skip) {
2790
2799
  const plain2 = /\.(md|markdown|txt)$/i.test(e.name);
2791
2800
  const text4 = plain2 ? new TextDecoder().decode(bytes) : doc.text.sections.map((s) => [s.heading ? `# ${s.heading}` : "", s.text].filter(Boolean).join("\n")).join("\n");
2792
2801
  out.push({
2793
- path: relative(root, full).split(sep).join("/"),
2802
+ path: relative2(root, full).split(sep2).join("/"),
2794
2803
  title: doc.text.title,
2795
2804
  lines: linesOf(text4),
2796
2805
  kind: "upload",
@@ -3002,7 +3011,7 @@ async function metarepoAdapters(root, o = {}) {
3002
3011
 
3003
3012
  // packages/planner/dist/draft.js
3004
3013
  import { existsSync } from "node:fs";
3005
- import { mkdir as mkdir3, readdir as readdir7, readFile as readFile10 } from "node:fs/promises";
3014
+ import { mkdir as mkdir2, readdir as readdir7, readFile as readFile10 } from "node:fs/promises";
3006
3015
  import { dirname as dirname2, join as join12, posix } from "node:path";
3007
3016
 
3008
3017
  // packages/planner/dist/stages/thread.js
@@ -3013,7 +3022,7 @@ import { join as join11 } from "node:path";
3013
3022
  // packages/planner/dist/stages/loop.js
3014
3023
  var import_yaml10 = __toESM(require_dist(), 1);
3015
3024
  import { createHash as createHash4 } from "node:crypto";
3016
- import { copyFile, mkdir as mkdir2, readdir as readdir6, readFile as readFile8, rm as rm3, stat } from "node:fs/promises";
3025
+ import { readdir as readdir6, readFile as readFile8, rm as rm3, stat } from "node:fs/promises";
3017
3026
  import { join as join10 } from "node:path";
3018
3027
 
3019
3028
  // packages/planner/dist/stages/cite.js
@@ -4240,7 +4249,7 @@ async function gapsOf(root, change, unknown) {
4240
4249
  return out;
4241
4250
  }
4242
4251
  async function codeReaders() {
4243
- const x = await import("./chunk-UBEFT3MQ.js");
4252
+ const x = await import("./chunk-TFN2N227.js");
4244
4253
  return {
4245
4254
  outline: (path, text4) => x.declarationOutline(path, text4),
4246
4255
  outlines: (path) => x.syntaxLanguageOf(path) !== void 0
@@ -5720,14 +5729,7 @@ async function editedFiles(dir, loop, source) {
5720
5729
  return out;
5721
5730
  }
5722
5731
  async function keepFiles(dir, rel, stage, n, files) {
5723
- const to = `stage/${stage}-by-person/${n}`;
5724
- for (const f of files) {
5725
- const from = join10(dir, ...f.split("/"));
5726
- const dest = join10(dir, ...to.split("/"), ...f.split("/"));
5727
- await mkdir2(join10(dest, ".."), { recursive: true });
5728
- await copyFile(from, dest).catch(() => void 0);
5729
- }
5730
- return `${rel}/${to}/`;
5732
+ return await keepPersonWritten(dir, rel, stage, files, { atLeast: n }) ?? `${rel}/stage/${stage}-by-person/${n}/`;
5731
5733
  }
5732
5734
  async function draftText(dir, files) {
5733
5735
  const out = [];
@@ -6663,7 +6665,7 @@ async function draftChange(root, changeId, o) {
6663
6665
  const files = [];
6664
6666
  for (const [rel2, text4] of [...answer].sort(([a], [b]) => a.localeCompare(b))) {
6665
6667
  const path = join12(dir, rel2);
6666
- await mkdir3(dirname2(path), { recursive: true });
6668
+ await mkdir2(dirname2(path), { recursive: true });
6667
6669
  await writeFileAtomic(path, stamp2 + text4);
6668
6670
  files.push(rel2);
6669
6671
  }
@@ -7274,12 +7276,12 @@ function designGaps(d) {
7274
7276
 
7275
7277
  // packages/planner/dist/stages/feature.js
7276
7278
  var import_yaml14 = __toESM(require_dist(), 1);
7277
- import { copyFile as copyFile2, mkdir as mkdir6, readdir as readdir10, readFile as readFile14 } from "node:fs/promises";
7279
+ import { copyFile, mkdir as mkdir5, readdir as readdir10, readFile as readFile14 } from "node:fs/promises";
7278
7280
  import { basename as basename2, join as join16 } from "node:path";
7279
7281
 
7280
7282
  // packages/planner/dist/stages/knowledge-applies.js
7281
7283
  var import_yaml12 = __toESM(require_dist(), 1);
7282
- import { mkdir as mkdir4, readFile as readFile11, stat as stat2, writeFile as writeFile2 } from "node:fs/promises";
7284
+ import { mkdir as mkdir3, readFile as readFile11, stat as stat2, writeFile as writeFile2 } from "node:fs/promises";
7283
7285
  import { join as join13 } from "node:path";
7284
7286
  var KNOWLEDGE_INDEX_KINDS = [
7285
7287
  "Pattern",
@@ -7339,7 +7341,7 @@ async function write(root, doc) {
7339
7341
  const order2 = { confirmed: 0, suggested: 1, excluded: 2 };
7340
7342
  const items = [...doc.items].sort((a, b) => order2[a.status] - order2[b.status] || b.score - a.score || a.id.localeCompare(b.id));
7341
7343
  const nearMisses = [...doc.nearMisses].sort((a, b) => a.stage.localeCompare(b.stage) || b.score - a.score || a.id.localeCompare(b.id));
7342
- await mkdir4(changeFolder(root, doc.change), { recursive: true });
7344
+ await mkdir3(changeFolder(root, doc.change), { recursive: true });
7343
7345
  await writeFile2(pathOf(root, doc.change), toCanonicalYaml({ ...doc, items, nearMisses }, ["schemaVersion", "change"]), "utf8");
7344
7346
  }
7345
7347
  async function recordKnowledge(root, change, stage, report) {
@@ -7779,7 +7781,7 @@ function dropUncitedQuestions(d) {
7779
7781
  // packages/planner/dist/stages/openspec-files.js
7780
7782
  var import_yaml13 = __toESM(require_dist(), 1);
7781
7783
  import { existsSync as existsSync2 } from "node:fs";
7782
- import { cp, mkdir as mkdir5, mkdtemp, readdir as readdir9, readFile as readFile13, rm as rm4, writeFile as writeFile3 } from "node:fs/promises";
7784
+ import { cp, mkdir as mkdir4, mkdtemp, readdir as readdir9, readFile as readFile13, rm as rm4, writeFile as writeFile3 } from "node:fs/promises";
7783
7785
  import { tmpdir } from "node:os";
7784
7786
  import { basename, dirname as dirname3, join as join15 } from "node:path";
7785
7787
  var SPEC_MARK = "<!-- Generated by atticus plan stories from the stories' acceptance criteria. Edit the stories and run the stage again. -->";
@@ -7962,7 +7964,7 @@ async function writeSpecFiles(dir, files, mark = SPEC_MARK) {
7962
7964
  const had = await readFile13(f, "utf8").catch(() => void 0);
7963
7965
  if (had !== void 0 && !had.startsWith(mark))
7964
7966
  continue;
7965
- await mkdir5(dirname3(f), { recursive: true });
7967
+ await mkdir4(dirname3(f), { recursive: true });
7966
7968
  await writeFileAtomic(f, text4);
7967
7969
  written.push(rel);
7968
7970
  }
@@ -8142,7 +8144,7 @@ async function validateDraft(root, change, dir, files, o = {}) {
8142
8144
  const tmp = await mkdtemp(join15(tmpdir(), "atticus-validate-"));
8143
8145
  try {
8144
8146
  const os = join15(osRoot, "openspec");
8145
- await mkdir5(join15(tmp, "openspec", "changes", change), { recursive: true });
8147
+ await mkdir4(join15(tmp, "openspec", "changes", change), { recursive: true });
8146
8148
  for (const f of ["config.yaml", "schemas", "specs"])
8147
8149
  if (existsSync2(join15(os, f)))
8148
8150
  await cp(join15(os, f), join15(tmp, "openspec", f), { recursive: true });
@@ -8152,7 +8154,7 @@ async function validateDraft(root, change, dir, files, o = {}) {
8152
8154
  await cp(join15(dir, f), join15(target, f));
8153
8155
  for (const [rel, text4] of Object.entries(files)) {
8154
8156
  const f = join15(target, ...rel.split("/"));
8155
- await mkdir5(dirname3(f), { recursive: true });
8157
+ await mkdir4(dirname3(f), { recursive: true });
8156
8158
  await writeFile3(f, text4, "utf8");
8157
8159
  }
8158
8160
  await setSkipSpecs(target, !Object.keys(files).some((f) => f.startsWith("specs/")));
@@ -8319,7 +8321,7 @@ async function personStories(dir) {
8319
8321
  if (!f.endsWith(".md"))
8320
8322
  continue;
8321
8323
  const text4 = await readFile14(join16(dir, "stories", f), "utf8");
8322
- if (!text4.startsWith(GENERATED_MARK))
8324
+ if (!isGenerated(text4))
8323
8325
  out.push({ file: `stories/${f}`, text: text4 });
8324
8326
  }
8325
8327
  return out;
@@ -8453,8 +8455,8 @@ async function featureStage(root, changeId, o) {
8453
8455
  let designRel = (await readPlacement(dir))?.design?.file;
8454
8456
  if (o.fromFigma) {
8455
8457
  designRel = `design/${basename2(o.fromFigma).replace(/[^\w.-]+/g, "-")}`;
8456
- await mkdir6(join16(dir, "design"), { recursive: true });
8457
- await copyFile2(o.fromFigma, join16(dir, ...designRel.split("/")));
8458
+ await mkdir5(join16(dir, "design"), { recursive: true });
8459
+ await copyFile(o.fromFigma, join16(dir, ...designRel.split("/")));
8458
8460
  }
8459
8461
  let design;
8460
8462
  if (designRel) {
@@ -8789,7 +8791,7 @@ function mergeDelta(d, today) {
8789
8791
 
8790
8792
  // packages/planner/dist/stages/story-code.js
8791
8793
  import { readFile as readFile15, realpath, stat as stat3 } from "node:fs/promises";
8792
- import { isAbsolute, relative as relative2, resolve, sep as sep2 } from "node:path";
8794
+ import { isAbsolute, relative as relative3, resolve, sep as sep3 } from "node:path";
8793
8795
  var STORY_CODE_AROUND = 3;
8794
8796
  var STORY_CODE_SHARE = 0.2;
8795
8797
  var MAX_FILE_BYTES = 512 * 1024;
@@ -8802,13 +8804,13 @@ async function inside(base, path) {
8802
8804
  if (!path || path.includes("\0") || isAbsolute(path) || /^[a-zA-Z]:/.test(path))
8803
8805
  return void 0;
8804
8806
  const full = resolve(base, ...path.split(/[\\/]+/));
8805
- const rel = relative2(base, full);
8807
+ const rel = relative3(base, full);
8806
8808
  if (!rel || rel.startsWith("..") || isAbsolute(rel))
8807
8809
  return void 0;
8808
8810
  try {
8809
8811
  const [real, realBase] = await Promise.all([realpath(full), realpath(base)]);
8810
- const r = relative2(realBase, real);
8811
- if (!r || r.startsWith("..") || isAbsolute(r) || r.split(sep2).includes(".."))
8812
+ const r = relative3(realBase, real);
8813
+ if (!r || r.startsWith("..") || isAbsolute(r) || r.split(sep3).includes(".."))
8812
8814
  return void 0;
8813
8815
  if ((await stat3(real)).size > MAX_FILE_BYTES)
8814
8816
  return void 0;
@@ -11250,7 +11252,7 @@ var classificationLevels = (ctx) => ctx.orgPack.pack?.classification ?? ["public
11250
11252
 
11251
11253
  // packages/planner/dist/stages/stories.js
11252
11254
  var import_yaml21 = __toESM(require_dist(), 1);
11253
- import { mkdir as mkdir7, readdir as readdir15, readFile as readFile23, rm as rm6 } from "node:fs/promises";
11255
+ import { mkdir as mkdir6, readdir as readdir15, readFile as readFile23, rm as rm6 } from "node:fs/promises";
11254
11256
  import { join as join25 } from "node:path";
11255
11257
 
11256
11258
  // packages/planner/dist/needs.js
@@ -16251,7 +16253,7 @@ async function writeStories(root, change, stories, answer, requests, now, unjudg
16251
16253
  if (keep.has(f) || !f.endsWith(".md"))
16252
16254
  continue;
16253
16255
  const text4 = await readFile23(join25(dir, "stories", f), "utf8");
16254
- if (!text4.startsWith(GENERATED_MARK))
16256
+ if (!isGenerated(text4))
16255
16257
  continue;
16256
16258
  const h = wrote.get(`stories/${f}`);
16257
16259
  if (h && ![...h].some((x) => wroteThis(`stories/${f}`, text4, x))) {
@@ -16267,7 +16269,7 @@ async function writeStories(root, change, stories, answer, requests, now, unjudg
16267
16269
  ...extras.knowledge ? { selected: extras.knowledge } : {}
16268
16270
  });
16269
16271
  for (const p of await readdir15(join25(dir, "tasks")).catch(() => []))
16270
- if (p.endsWith(".prompt.md") && (await readFile23(join25(dir, "tasks", p), "utf8")).startsWith(GENERATED_MARK))
16272
+ if (p.endsWith(".prompt.md") && isGenerated(await readFile23(join25(dir, "tasks", p), "utf8")))
16271
16273
  await rm6(join25(dir, "tasks", p));
16272
16274
  const spec = await openspecFiles(root, change, stories, a, extras.estate);
16273
16275
  const files = [];
@@ -16290,7 +16292,7 @@ async function writeStories(root, change, stories, answer, requests, now, unjudg
16290
16292
  await writeFileAtomic(join25(dir, "stories", `${s.id}.md`), renderStoryFile(change, s, w, unjudged, x));
16291
16293
  files.push(`stories/${s.id}.md`);
16292
16294
  for (const [rel, text4] of Object.entries(taskPromptFiles(change, s, w, x))) {
16293
- await mkdir7(join25(dir, ...rel.split("/").slice(0, -1)), { recursive: true });
16295
+ await mkdir6(join25(dir, ...rel.split("/").slice(0, -1)), { recursive: true });
16294
16296
  await writeFileAtomic(join25(dir, ...rel.split("/")), text4);
16295
16297
  files.push(rel);
16296
16298
  }
@@ -16519,16 +16521,11 @@ async function storiesStage(root, changeId, o) {
16519
16521
  throw new PlannerError("refused", `${change.id}'s target flows change no step (${empty.map((d) => d.flow).join(", ")} only say modify): run atticus change architecture ${change.id} again.`);
16520
16522
  if (!deltas.length)
16521
16523
  throw new PlannerError("refused", `${change.id} has no target flows yet: run atticus change architecture ${change.id} first.`);
16522
- if (!o.force) {
16523
- const own = [];
16524
- for (const f of ["stories.md", "tasks.md", "requests.md"]) {
16525
- const t = await readFile23(join25(dir, f), "utf8").catch(() => void 0);
16526
- if (t !== void 0 && !t.startsWith(GENERATED_MARK))
16527
- own.push(f);
16528
- }
16529
- if (own.length)
16530
- throw new PlannerError("refused", `${change.id} already has planning files a person wrote: ${own.join(", ")}. Re-run with --force to replace them.`);
16531
- }
16524
+ const own = await personWrittenPlanning(dir);
16525
+ if (!o.force && own.length)
16526
+ throw new PlannerError("refused", `${change.id} already has planning files a person wrote: ${own.join(", ")}. Re-run with --force to replace them.`);
16527
+ const keptOwn = o.force ? await keepPersonWritten(dir, rel, "stories", own) : void 0;
16528
+ const ownNote = keptOwn ? `${own.join(", ")} ${own.length === 1 ? "was" : "were"} written by a person; a copy is in ${keptOwn}, and the stage writes ${own.length === 1 ? "it" : "them"} again (--force).` : void 0;
16532
16529
  const ctx = await loadChangeContext(root);
16533
16530
  const estate = await loadEstate(root, ctx.records);
16534
16531
  const items = (await readKnowledge(root, { cacheRoot: root })).items.filter((i) => i.kind === "ProcessDefinition");
@@ -16868,6 +16865,8 @@ Rules:
16868
16865
  await recordKnowledge(root, change.id, "stories", context);
16869
16866
  res.notes.unshift(...settled.notes);
16870
16867
  res.notes.push(...attached.notes, ...runNotes, ...writeNotes);
16868
+ if (ownNote)
16869
+ res.notes.unshift(ownNote);
16871
16870
  if (res.answer)
16872
16871
  for (const c of await seedCollisions(root, change.id))
16873
16872
  res.notes.push(seedCollisionWords(c));
@@ -18917,7 +18916,6 @@ export {
18917
18916
  parseProse,
18918
18917
  fallbackProse,
18919
18918
  writeProse,
18920
- GENERATED_MARK,
18921
18919
  renderStory,
18922
18920
  renderIndex,
18923
18921
  renderTasks,
@@ -5,24 +5,24 @@ var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
5
5
  var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
6
  import {
7
7
  listRuns
8
- } from "./chunk-R2FUFBHW.js";
9
- import {
10
- isHandoffStep
11
- } from "./chunk-4Q3NN7VF.js";
8
+ } from "./chunk-EFDUC35B.js";
12
9
  import {
13
10
  withFileLock
14
- } from "./chunk-BSZII65X.js";
11
+ } from "./chunk-SFCFL7Y5.js";
15
12
  import {
16
13
  forgetUserState,
17
14
  readUserState,
18
15
  writeUserState
19
- } from "./chunk-KVVNAUIG.js";
16
+ } from "./chunk-4XK3HLOH.js";
20
17
  import {
21
18
  runsDirOf
22
- } from "./chunk-6ZDAEUKB.js";
19
+ } from "./chunk-WJWSB65O.js";
23
20
  import {
24
21
  writeFileIfUnchanged
25
- } from "./chunk-MEMEO7YO.js";
22
+ } from "./chunk-SMFFUFMN.js";
23
+ import {
24
+ isHandoffStep
25
+ } from "./chunk-4Q3NN7VF.js";
26
26
 
27
27
  // packages/cli/dist/handoff-resume.js
28
28
  import { readFile } from "node:fs/promises";