@maycombhq/atticus 2.0.0-beta.18 → 2.0.0-beta.21

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 (270) hide show
  1. package/dist/bin.js +8 -4
  2. package/dist/{chunk-MUSJJ6CQ.js → chunk-265LWMOA.js} +16 -16
  3. package/dist/chunk-26WBY34Y.js +37 -0
  4. package/dist/{chunk-6H5JG5GL.js → chunk-26Z7OGQW.js} +63 -30
  5. package/dist/{chunk-4REDBQOZ.js → chunk-2D7PWSOK.js} +20 -20
  6. package/dist/{chunk-YPH6ZJ6R.js → chunk-2HH3UCZM.js} +4 -4
  7. package/dist/{chunk-RTUUX7PX.js → chunk-2HTEMYTB.js} +12 -26
  8. package/dist/{chunk-EHQUY26D.js → chunk-2UCRFXFZ.js} +11 -11
  9. package/dist/{chunk-ILDGIXNH.js → chunk-2V2ZPQQU.js} +81 -13
  10. package/dist/{chunk-YSEZQ6D3.js → chunk-36RY7ZXM.js} +107 -64
  11. package/dist/{chunk-QXFDM2FZ.js → chunk-37WE3LS2.js} +3 -3
  12. package/dist/{chunk-BAXM3JFQ.js → chunk-3AQ2R5NL.js} +1212 -754
  13. package/dist/chunk-3G6S7LAA.js +43 -0
  14. package/dist/{chunk-7TOAS7KI.js → chunk-3J5I7ZOU.js} +4 -4
  15. package/dist/{chunk-TAKAEJRD.js → chunk-3LZ6P5EP.js} +1 -1
  16. package/dist/chunk-3SSTNB4E.js +191 -0
  17. package/dist/chunk-3TD6S4TC.js +49 -0
  18. package/dist/{chunk-UUL6ZGMU.js → chunk-3UTYPHN3.js} +1 -1
  19. package/dist/{chunk-6AP2ZUUM.js → chunk-3WON4G3M.js} +2 -2
  20. package/dist/{chunk-AXY6LBW4.js → chunk-42EPP7OB.js} +12 -12
  21. package/dist/{chunk-QKMDT7VU.js → chunk-455SYIIE.js} +2 -2
  22. package/dist/{chunk-MFUFB3LN.js → chunk-4B6BT75O.js} +110 -20
  23. package/dist/{chunk-75MYLZSB.js → chunk-4CLK2RJO.js} +7 -7
  24. package/dist/chunk-4CYTJ5TZ.js +38 -0
  25. package/dist/{chunk-IH7RANGB.js → chunk-4D62IZII.js} +5 -5
  26. package/dist/{chunk-2QMZOCWN.js → chunk-4FOAYLI4.js} +14 -7
  27. package/dist/{chunk-V3UEPUHT.js → chunk-4KNOJC6J.js} +294 -215
  28. package/dist/{chunk-O6ILVBYB.js → chunk-4PYC2UGC.js} +1 -1
  29. package/dist/{chunk-EZBAS5BL.js → chunk-4SLBCEPD.js} +82 -50
  30. package/dist/{chunk-VIRTPODJ.js → chunk-4TKVU2I2.js} +6 -14
  31. package/dist/{chunk-IVCDU443.js → chunk-4WXRPQDE.js} +281 -51
  32. package/dist/{chunk-RMEEHH24.js → chunk-5CMPVC3N.js} +24 -24
  33. package/dist/chunk-5G7ILBUG.js +66 -0
  34. package/dist/{chunk-Z75XDWQR.js → chunk-5PV7S2ZP.js} +3 -3
  35. package/dist/{chunk-WWPC2AZ2.js → chunk-5QUOPNLN.js} +4 -4
  36. package/dist/{chunk-7OVH2L7L.js → chunk-5TDRBOAV.js} +5 -5
  37. package/dist/{chunk-YXUIUOQZ.js → chunk-5WERBKLE.js} +199 -63
  38. package/dist/{chunk-6WNNXEG6.js → chunk-62DLJSLV.js} +8 -8
  39. package/dist/{chunk-KCQS52TH.js → chunk-64AADMTW.js} +99 -25
  40. package/dist/{chunk-KLRUXRPN.js → chunk-67BP7HXL.js} +17 -17
  41. package/dist/chunk-6DQYZU2W.js +379 -0
  42. package/dist/{chunk-RONDYDMQ.js → chunk-6EXDI5GI.js} +51 -34
  43. package/dist/chunk-6FNAKCET.js +38 -0
  44. package/dist/{chunk-6SNEA73E.js → chunk-75ASLHBT.js} +21 -15
  45. package/dist/{chunk-EFT4KM6K.js → chunk-75ZOZFGH.js} +18 -18
  46. package/dist/{chunk-B3KW7EQW.js → chunk-77O633L5.js} +12 -12
  47. package/dist/{chunk-TLDL2ZZI.js → chunk-7AB6OWTV.js} +3 -3
  48. package/dist/{chunk-R5YXY6NT.js → chunk-7CZHUZBL.js} +25 -25
  49. package/dist/{chunk-F4D4G2A6.js → chunk-7FHNFCHK.js} +306 -125
  50. package/dist/{chunk-CC5RNYZF.js → chunk-7FUIVIBG.js} +19 -9
  51. package/dist/{chunk-UBTOSSNK.js → chunk-7QPCGTPS.js} +21 -21
  52. package/dist/{chunk-CDLTRJ4N.js → chunk-A2G72UI4.js} +7 -7
  53. package/dist/{chunk-YGSOQ5LX.js → chunk-AE4P57KK.js} +23 -17
  54. package/dist/{chunk-PGQL5YGH.js → chunk-AHW3RY3X.js} +7 -7
  55. package/dist/chunk-AM6FP6JW.js +43 -0
  56. package/dist/{chunk-DYNC6BAQ.js → chunk-AOCWFA7T.js} +93 -10
  57. package/dist/{chunk-CYX36GKZ.js → chunk-API5TOUB.js} +1 -1
  58. package/dist/{chunk-BJ5T3KDF.js → chunk-AZDITBCT.js} +3 -3
  59. package/dist/{chunk-U6GZSUMC.js → chunk-BA2HUMDN.js} +25 -3
  60. package/dist/chunk-BA3U7ALS.js +99 -0
  61. package/dist/{chunk-63565QTF.js → chunk-BC6KKZ67.js} +5 -5
  62. package/dist/{chunk-XO5RQKNM.js → chunk-BEPCKDCP.js} +1843 -577
  63. package/dist/{chunk-KUH62AQ3.js → chunk-BPPU3PW7.js} +4 -4
  64. package/dist/{chunk-52ULYRV4.js → chunk-BVWWPBKD.js} +18 -18
  65. package/dist/{chunk-R2FGEBIU.js → chunk-BXZ4PKIT.js} +13 -11
  66. package/dist/{chunk-4BU26GFB.js → chunk-C7CEK3KW.js} +4 -4
  67. package/dist/chunk-CFH3QH26.js +29 -0
  68. package/dist/chunk-CG6CULP6.js +170 -0
  69. package/dist/chunk-CLD4RVTA.js +45 -0
  70. package/dist/{chunk-BU543ZEC.js → chunk-CNPY4NTZ.js} +13 -13
  71. package/dist/{chunk-PLBIWEPV.js → chunk-CNU5Q2D5.js} +32 -31
  72. package/dist/{chunk-JTYYEYRR.js → chunk-COYN3UAN.js} +124 -21
  73. package/dist/{chunk-TNCROWPQ.js → chunk-CPK7QSBG.js} +10 -10
  74. package/dist/{chunk-43E6XX67.js → chunk-D2WSW4GU.js} +1 -1
  75. package/dist/{chunk-SHEUEHKC.js → chunk-D57MFJPP.js} +3 -3
  76. package/dist/chunk-D5KV5PSK.js +45 -0
  77. package/dist/chunk-D5MASS4I.js +48 -0
  78. package/dist/{chunk-TQYBXDVH.js → chunk-DCWN3HFV.js} +1 -1
  79. package/dist/{chunk-FF4IGX4Z.js → chunk-DDJPM5YX.js} +2 -2
  80. package/dist/chunk-DN4A2Q2O.js +57 -0
  81. package/dist/{chunk-4ZCFCIEL.js → chunk-DUPZPDCJ.js} +52 -16
  82. package/dist/{chunk-CUJ5TIEB.js → chunk-E2VXBSIR.js} +4 -4
  83. package/dist/{chunk-BX47X5DJ.js → chunk-E57AOFYN.js} +13 -13
  84. package/dist/{chunk-SSTI7GAV.js → chunk-ECLXZWAG.js} +12 -12
  85. package/dist/{chunk-KYK3TA4Q.js → chunk-EDZ45WIR.js} +14 -14
  86. package/dist/chunk-EFCQSMXB.js +37 -0
  87. package/dist/{chunk-YC2K3FJG.js → chunk-EZIN5E5B.js} +8 -8
  88. package/dist/{chunk-MIZNACDI.js → chunk-F6H2RJ3N.js} +1 -1
  89. package/dist/{chunk-EMZVHDJP.js → chunk-FAJDKNSD.js} +7 -3
  90. package/dist/chunk-FGAGWYZB.js +47 -0
  91. package/dist/{chunk-KBGQ3IAM.js → chunk-FLVZFTLQ.js} +18 -18
  92. package/dist/{chunk-2NNXLH53.js → chunk-FQ6WH6PB.js} +22 -7
  93. package/dist/{chunk-QWSLMVHI.js → chunk-FRHD22WM.js} +61 -23
  94. package/dist/{chunk-5MEN4SM5.js → chunk-FVMPFCDS.js} +4 -4
  95. package/dist/{chunk-KLRZKW7Y.js → chunk-FY3QIRTL.js} +3 -3
  96. package/dist/{chunk-B3SWPNJF.js → chunk-FYBF5MB2.js} +13 -11
  97. package/dist/{chunk-CVZCW3NI.js → chunk-G5YJBNDZ.js} +14 -5
  98. package/dist/{chunk-U6EPS5PF.js → chunk-G6IQYM25.js} +5 -5
  99. package/dist/chunk-G6X4YL4D.js +161 -0
  100. package/dist/{chunk-DOSX3MRW.js → chunk-GC2VK3JT.js} +25 -25
  101. package/dist/{chunk-EEWBTFRP.js → chunk-GCS3FZOB.js} +27 -3
  102. package/dist/{chunk-6H6OPNEP.js → chunk-GDZB57IU.js} +5 -5
  103. package/dist/chunk-GIFMBCTW.js +221 -0
  104. package/dist/{chunk-X5WYPIH3.js → chunk-GK4PYVEC.js} +18 -8
  105. package/dist/{chunk-VBSJ5NRB.js → chunk-GNWAOVFQ.js} +5 -5
  106. package/dist/{chunk-TXFDQRBL.js → chunk-GS76RXQE.js} +11 -11
  107. package/dist/{chunk-U3YC4RGC.js → chunk-GSGIZ2OO.js} +23 -23
  108. package/dist/chunk-GUYL7RMK.js +60 -0
  109. package/dist/{chunk-AZYBHPV4.js → chunk-GX74YWR7.js} +14 -13
  110. package/dist/{chunk-YY7VP7KW.js → chunk-HE3HRDNZ.js} +2 -2
  111. package/dist/{chunk-Z7HYYDZM.js → chunk-HGHRSF3E.js} +14 -13
  112. package/dist/{chunk-Q2X4IREC.js → chunk-HK3VOHIE.js} +106 -36
  113. package/dist/{chunk-P5JYMO7Y.js → chunk-HS4BGB4G.js} +22 -22
  114. package/dist/{chunk-IOW6BF3U.js → chunk-HSZMPH5T.js} +798 -141
  115. package/dist/{chunk-L3T33FA7.js → chunk-HWD4JPU7.js} +4 -2
  116. package/dist/{chunk-7NYCH5HY.js → chunk-HXXP2NTE.js} +6 -6
  117. package/dist/{chunk-7S7OFVIU.js → chunk-I2A3Z5AK.js} +4 -4
  118. package/dist/{chunk-WQSDKX7M.js → chunk-ICHDSWEY.js} +7 -7
  119. package/dist/chunk-IFFRGC3N.js +31 -0
  120. package/dist/{chunk-HMZQAIR5.js → chunk-IFHDV6KQ.js} +24 -17
  121. package/dist/chunk-J2O4LFVI.js +80 -0
  122. package/dist/chunk-J5AAZ6OJ.js +161 -0
  123. package/dist/{chunk-CVRWAG76.js → chunk-JAABT3DA.js} +3 -3
  124. package/dist/chunk-JITJP64K.js +34 -0
  125. package/dist/chunk-JKIGL3XQ.js +162 -0
  126. package/dist/chunk-JRVNXLZP.js +615 -0
  127. package/dist/chunk-JRXHON4E.js +41 -0
  128. package/dist/{chunk-XFCK5B27.js → chunk-JS6WMC3J.js} +8 -8
  129. package/dist/chunk-JU4QNJSR.js +62 -0
  130. package/dist/{chunk-IPSFMTK2.js → chunk-JYMIB5XY.js} +152 -42
  131. package/dist/{chunk-L336AJCZ.js → chunk-JYTIHTIK.js} +8 -6
  132. package/dist/{chunk-VEJYZEPC.js → chunk-K332XW7K.js} +135 -16
  133. package/dist/{chunk-KCF7TFOE.js → chunk-K6JB6XTX.js} +11 -11
  134. package/dist/{chunk-LFIIX4OV.js → chunk-KDAHXQIE.js} +46 -34
  135. package/dist/chunk-KYZMRSPS.js +93 -0
  136. package/dist/chunk-L4CESDPB.js +22 -0
  137. package/dist/{chunk-3LR4522O.js → chunk-LEBR5NHW.js} +14 -14
  138. package/dist/{chunk-US3QZU23.js → chunk-LIJJCBQI.js} +67 -7
  139. package/dist/{chunk-XLHL6WTI.js → chunk-LIRVU3HW.js} +16 -16
  140. package/dist/{chunk-BAT4CBB7.js → chunk-LN77DXBM.js} +19 -10
  141. package/dist/{chunk-E5FM44EJ.js → chunk-LNWEWYCM.js} +2474 -315
  142. package/dist/{chunk-TX4OGZKU.js → chunk-LO3BLMVG.js} +3 -3
  143. package/dist/{chunk-RUOGHYSK.js → chunk-LPV6T362.js} +5 -5
  144. package/dist/{chunk-2T5CQH4R.js → chunk-LQH4P45K.js} +1 -1
  145. package/dist/chunk-LU4MQVAL.js +41 -0
  146. package/dist/{chunk-HW4RRIJA.js → chunk-LWDNKE4X.js} +12 -10
  147. package/dist/chunk-M4H2UG4R.js +218 -0
  148. package/dist/{chunk-CANMOOE6.js → chunk-M6D2U3YM.js} +3 -3
  149. package/dist/{chunk-AB5E5HCN.js → chunk-MD7KUEJ3.js} +14 -272
  150. package/dist/{chunk-ENTAAEDK.js → chunk-MMZUN7ZO.js} +20 -20
  151. package/dist/{chunk-L4MHJG3I.js → chunk-MZGRDONP.js} +46 -36
  152. package/dist/{chunk-IYI2S6BB.js → chunk-N3RUGTGV.js} +18 -18
  153. package/dist/{chunk-WZRCGGXG.js → chunk-NCB6656Z.js} +7 -7
  154. package/dist/{chunk-SBE773JU.js → chunk-NRQ65LTQ.js} +5 -5
  155. package/dist/{chunk-NRPMPZWJ.js → chunk-NTAVOWYD.js} +117 -18
  156. package/dist/{chunk-UJBZS5I7.js → chunk-NYOABJNK.js} +36 -27
  157. package/dist/{chunk-LXAPJ3BL.js → chunk-O4IKAIZ2.js} +24 -20
  158. package/dist/{chunk-MMB2OHUY.js → chunk-ODMBPDDV.js} +48 -13
  159. package/dist/chunk-OKUB6RJA.js +533 -0
  160. package/dist/{chunk-MKFYQQ5Q.js → chunk-OMPENNWY.js} +4 -1
  161. package/dist/chunk-OPQZISG3.js +25 -0
  162. package/dist/{chunk-ROJMXG4E.js → chunk-OV57AHCG.js} +24 -24
  163. package/dist/{chunk-7KGXDIWV.js → chunk-OZJ3JLYI.js} +9 -8
  164. package/dist/{chunk-G5BYKJIM.js → chunk-P2VBXX7N.js} +11 -10
  165. package/dist/{chunk-YK6CSODO.js → chunk-PAINMSID.js} +4353 -1106
  166. package/dist/chunk-PKJAV25S.js +43 -0
  167. package/dist/{chunk-R5MNPIMD.js → chunk-PNQLCRSS.js} +4 -4
  168. package/dist/{chunk-3SMMFQED.js → chunk-PQH56YF6.js} +37 -5
  169. package/dist/chunk-PRTBPXYA.js +50 -0
  170. package/dist/{chunk-FF4ZMLSL.js → chunk-PRW3HXM3.js} +2 -2
  171. package/dist/chunk-PRZ7KMWL.js +42 -0
  172. package/dist/{chunk-IFV6MKYV.js → chunk-PTQ3ZALZ.js} +42 -4
  173. package/dist/{chunk-ELQSLAP6.js → chunk-PUEWDYGP.js} +2 -2
  174. package/dist/{chunk-F2ZCZYIK.js → chunk-Q26LDIUV.js} +12 -11
  175. package/dist/chunk-Q46QDDMF.js +277 -0
  176. package/dist/chunk-QBNWF5ZU.js +19 -0
  177. package/dist/{chunk-ANETFNTV.js → chunk-QE527XRY.js} +24 -21
  178. package/dist/{chunk-QNMLLYTN.js → chunk-QHJJMZLX.js} +397 -32
  179. package/dist/chunk-QJCJOMW3.js +425 -0
  180. package/dist/{chunk-3HOONZUE.js → chunk-QKMRFNMA.js} +15 -15
  181. package/dist/{chunk-7S6VJ643.js → chunk-QOOEYDNJ.js} +101 -13
  182. package/dist/{chunk-4YNKN4DF.js → chunk-QSIDVFB7.js} +20 -18
  183. package/dist/{chunk-2IT7SIJY.js → chunk-RA33EYS4.js} +19 -18
  184. package/dist/{chunk-P7NV3FEJ.js → chunk-RALY3E5U.js} +4 -4
  185. package/dist/{chunk-6NESNLVU.js → chunk-S2RY3BOD.js} +35 -21
  186. package/dist/chunk-SB5GRUFM.js +54 -0
  187. package/dist/{chunk-EUQHM2CH.js → chunk-SH27FYPF.js} +18 -18
  188. package/dist/chunk-T74WQQGS.js +40 -0
  189. package/dist/{chunk-LGDW4G73.js → chunk-TGVVUKTG.js} +2 -2
  190. package/dist/chunk-THN26IEF.js +48 -0
  191. package/dist/{chunk-ZV2VCBMQ.js → chunk-TJH2EUAZ.js} +18 -12
  192. package/dist/{chunk-NGT5LLSE.js → chunk-TQ4TG57V.js} +6 -6
  193. package/dist/{chunk-WEDXFJPG.js → chunk-TQTRWENN.js} +12 -12
  194. package/dist/{chunk-ZRWS54RI.js → chunk-TSM6T6GQ.js} +23 -23
  195. package/dist/{chunk-KET7KOVE.js → chunk-TW3KOSQK.js} +15 -7
  196. package/dist/{chunk-RBXDHCN7.js → chunk-TWQRPM76.js} +2 -2
  197. package/dist/{chunk-IO6DQCZX.js → chunk-TYD6I4CZ.js} +4 -4
  198. package/dist/{chunk-5NLJH6R4.js → chunk-U3NBK4EU.js} +56 -17
  199. package/dist/{chunk-U542BJME.js → chunk-UDXWIPCB.js} +7 -7
  200. package/dist/{chunk-OSB6AKF2.js → chunk-UEVZZZU2.js} +4 -4
  201. package/dist/{chunk-5ZV7BK22.js → chunk-UF4UHCIG.js} +2 -2
  202. package/dist/{chunk-PHJOOL6U.js → chunk-UFE36WJH.js} +4 -4
  203. package/dist/{chunk-IHRP4OYV.js → chunk-URIKUID7.js} +12 -12
  204. package/dist/chunk-UYLBRRFK.js +1106 -0
  205. package/dist/chunk-UZACEG2C.js +515 -0
  206. package/dist/{chunk-LR4XBH4L.js → chunk-VAMHOHUU.js} +12 -12
  207. package/dist/{chunk-S5PSGAQ2.js → chunk-VUVGX5L2.js} +1 -1
  208. package/dist/{chunk-2TG2QGKW.js → chunk-VYOCPTUB.js} +18 -16
  209. package/dist/{chunk-VTEDQ6GY.js → chunk-WAZEXEJH.js} +175 -3
  210. package/dist/{chunk-UTSFKZ72.js → chunk-WCEF7H6L.js} +3 -3
  211. package/dist/{chunk-DXPUYG5L.js → chunk-WEOMJHPV.js} +12 -12
  212. package/dist/{chunk-NFKBU2UH.js → chunk-WFU77T3A.js} +5 -5
  213. package/dist/chunk-WIWTJMMR.js +292 -0
  214. package/dist/{chunk-MRFSUAJH.js → chunk-WNTIOBOG.js} +18 -18
  215. package/dist/{chunk-UROTYIGJ.js → chunk-X2CUXTWU.js} +6 -6
  216. package/dist/chunk-X7EMBM5X.js +34 -0
  217. package/dist/{chunk-OO5TKEAG.js → chunk-XEQCQO66.js} +8 -8
  218. package/dist/{chunk-NBQO75XT.js → chunk-XG4WJHLQ.js} +17 -1
  219. package/dist/{chunk-ZQC7MNQB.js → chunk-XOL3GFW2.js} +101 -30
  220. package/dist/{chunk-GXDATVSY.js → chunk-XQ3YZ4QW.js} +22 -22
  221. package/dist/{chunk-GTW54D3D.js → chunk-Y6K3CJBU.js} +726 -88
  222. package/dist/{chunk-CQCAJI6G.js → chunk-YAH5IQAL.js} +5 -5
  223. package/dist/{chunk-U6TD7UOH.js → chunk-YBOVNMHC.js} +51 -14
  224. package/dist/{chunk-OJICVOZH.js → chunk-YF5DZCPN.js} +79 -39
  225. package/dist/chunk-YIGBJNH4.js +37 -0
  226. package/dist/{chunk-7C7OZARH.js → chunk-YJ3TBOTK.js} +25 -25
  227. package/dist/{chunk-HXFSM4LG.js → chunk-YKTE2RU3.js} +2 -2
  228. package/dist/{chunk-7IM4BVVH.js → chunk-YO2PKTXT.js} +268 -36
  229. package/dist/{chunk-Z3UU7XV6.js → chunk-YTTNTQOX.js} +15 -15
  230. package/dist/{chunk-2ZICHO3V.js → chunk-YWAKDNMH.js} +183 -33
  231. package/dist/{chunk-OXOSJXOI.js → chunk-YZDZOEV4.js} +4 -4
  232. package/dist/{chunk-MRCETHW5.js → chunk-Z3QFH7YG.js} +4 -4
  233. package/dist/{chunk-5KZTRD4V.js → chunk-Z6VLC5X4.js} +17 -17
  234. package/dist/{chunk-EDURU5DF.js → chunk-ZFQMMU5Y.js} +2 -2
  235. package/dist/{chunk-3GLDB4IT.js → chunk-ZKYRDV7A.js} +12 -12
  236. package/dist/{chunk-GBGJ6WSO.js → chunk-ZLS6PU2O.js} +3 -3
  237. package/dist/{chunk-JZOOX3PQ.js → chunk-ZOSD4FXV.js} +3 -3
  238. package/dist/chunk-ZPDDEVQX.js +47 -0
  239. package/dist/{chunk-2TTSX7NB.js → chunk-ZQLRCA2V.js} +7 -7
  240. package/dist/{chunk-ESP3RUUR.js → chunk-ZX7235KR.js} +128 -54
  241. package/dist/{chunk-MH4XG5XS.js → chunk-ZZFHLRQW.js} +18 -16
  242. package/dist/files.json +559 -439
  243. package/dist/packages/sdk/npm/index.js +4679 -2672
  244. package/dist/packages/ui/dist/assets/{elk-api-BuFBvNyV.js → elk-api-CowTnhEJ.js} +2 -2
  245. package/dist/packages/ui/dist/assets/index-Dw20IRhQ.css +1 -0
  246. package/dist/packages/ui/dist/assets/index-z2wv0d5d.js +47 -0
  247. package/dist/packages/ui/dist/index.html +2 -2
  248. package/package.json +3 -3
  249. package/dist/chunk-25TJC2CL.js +0 -48
  250. package/dist/chunk-3Q5RHGCA.js +0 -47
  251. package/dist/chunk-4W7FOGAB.js +0 -41
  252. package/dist/chunk-6AF3CVJT.js +0 -48
  253. package/dist/chunk-A3KEXFQS.js +0 -34
  254. package/dist/chunk-BAUINGGJ.js +0 -41
  255. package/dist/chunk-BOFUCRJX.js +0 -47
  256. package/dist/chunk-GGKGILIP.js +0 -54
  257. package/dist/chunk-IKN6C67W.js +0 -53
  258. package/dist/chunk-K7MYVIFK.js +0 -54
  259. package/dist/chunk-KHA5LVPE.js +0 -34
  260. package/dist/chunk-LSXGM6MB.js +0 -37
  261. package/dist/chunk-M54TDRM3.js +0 -29
  262. package/dist/chunk-M5GF4NAB.js +0 -45
  263. package/dist/chunk-UTZGBCXE.js +0 -38
  264. package/dist/chunk-UVTSMBM4.js +0 -43
  265. package/dist/chunk-XXE3S3OG.js +0 -44
  266. package/dist/chunk-YJRQCUVJ.js +0 -43
  267. package/dist/chunk-ZFTK4BDN.js +0 -41
  268. package/dist/chunk-ZMARAW37.js +0 -38
  269. package/dist/packages/ui/dist/assets/index-C5QnK82A.css +0 -1
  270. package/dist/packages/ui/dist/assets/index-CQ0a1cBg.js +0 -29
@@ -16,12 +16,12 @@ import {
16
16
  outsideSystemsOf,
17
17
  phaseGates,
18
18
  statePhase
19
- } from "./chunk-IOW6BF3U.js";
19
+ } from "./chunk-HSZMPH5T.js";
20
20
  import {
21
21
  daysBetween,
22
22
  knowledgeGaps,
23
23
  newestEvidence
24
- } from "./chunk-KCQS52TH.js";
24
+ } from "./chunk-64AADMTW.js";
25
25
  import {
26
26
  BREAKING_SPEC,
27
27
  INSTRUCTION_RULES,
@@ -33,8 +33,9 @@ import {
33
33
  screenText,
34
34
  settle,
35
35
  toRunSummary
36
- } from "./chunk-QNMLLYTN.js";
36
+ } from "./chunk-QHJJMZLX.js";
37
37
  import {
38
+ ASKED_GAP_STEP,
38
39
  AgentDefinition,
39
40
  ChecklistPack,
40
41
  ChecklistRule,
@@ -43,12 +44,17 @@ import {
43
44
  FindingAction,
44
45
  HOSTS_STEP,
45
46
  IsoDateTime,
47
+ JOINED_BY_AI,
46
48
  LEGACY_LENSES,
47
49
  Lens,
48
50
  PHASES,
51
+ QUESTION_SCHEMA_VERSION,
52
+ Question,
49
53
  RECORD_KINDS,
50
54
  RecordId,
55
+ answerByWords,
51
56
  answerWords,
57
+ askedGapQuestionId,
52
58
  assistantActor,
53
59
  callsOfQuestion,
54
60
  changesDirOf,
@@ -69,15 +75,17 @@ import {
69
75
  questionOfLens,
70
76
  questionsRelOf,
71
77
  quotedIn,
78
+ readQuestion,
72
79
  repoReadOf,
73
80
  require_dist,
74
81
  runsDirOf,
75
82
  stateDirOf,
76
- toCanonicalYaml
77
- } from "./chunk-YK6CSODO.js";
83
+ toCanonicalYaml,
84
+ writeQuestion
85
+ } from "./chunk-PAINMSID.js";
78
86
  import {
79
87
  writeFileAtomic
80
- } from "./chunk-MMB2OHUY.js";
88
+ } from "./chunk-ODMBPDDV.js";
81
89
  import {
82
90
  __toESM
83
91
  } from "./chunk-TV45EUGM.js";
@@ -618,7 +626,8 @@ function catalogEvidence(ctx, id) {
618
626
  recordEvidence(id),
619
627
  ...file ? [
620
628
  {
621
- source: file.source,
629
+ // ADR 0181: an AI evidence cites the call's own code line; a finding names it as code.
630
+ source: file.source === "ai" ? "code" : file.source,
622
631
  path: file.path,
623
632
  ...file.repo ? { repo: file.repo } : {},
624
633
  ...file.line ? { line: file.line } : {}
@@ -1290,6 +1299,8 @@ function patternProblems(ctx, o) {
1290
1299
  const doc = docOf(ctx.files, IFACES);
1291
1300
  if (!doc)
1292
1301
  return [];
1302
+ if (ctx.patterns.size === 0)
1303
+ return [];
1293
1304
  const hits = [];
1294
1305
  const codes = [...ctx.patterns.keys()].sort();
1295
1306
  for (const h of ctx.hops) {
@@ -1681,7 +1692,8 @@ var interfaceViaMatchesPattern = {
1681
1692
  evidence: [
1682
1693
  recordEvidence(rec.id),
1683
1694
  ...rec.evidence.filter((e) => e.path).slice(0, 1).map((e) => ({
1684
- source: e.source,
1695
+ source: e.source === "ai" ? "code" : e.source,
1696
+ // ADR 0181: the call's own line
1685
1697
  path: e.path,
1686
1698
  ...e.repo ? { repo: e.repo } : {},
1687
1699
  ...e.line ? { line: e.line } : {}
@@ -1789,6 +1801,28 @@ var changeLinksKnown = {
1789
1801
  subject: c.caller,
1790
1802
  key: `link-guess|${rec.id}`
1791
1803
  });
1804
+ if (rec && !flag && rec.flags?.includes(JOINED_BY_AI)) {
1805
+ const run = rec.evidence.find((e) => e.source === "ai")?.run;
1806
+ hits.push({
1807
+ kind: "knowledge-gap",
1808
+ ...place,
1809
+ summary: sentence(`The change rests on a link the AI decided: ${c.caller} to ${c.callee} (${c.operation}), detected by AI${run ? ` (run ${run})` : ""} and not confirmed by a person.`),
1810
+ why: `The AI paired this call with ${c.callee}, and Atticus applied it because its lines checked and its shape agreed; nobody has said it is right. If it is wrong, the design is built on a call that goes somewhere else.`,
1811
+ fix: {
1812
+ text: `Confirm or correct it: atticus questions decisions lists it; atticus questions correct (or Correct on the "Detected by AI" chip) makes it a person's word, then atticus verify ${ctx.get("Component", c.caller)?.repo ?? c.caller} --write.`
1813
+ },
1814
+ evidence: [
1815
+ ...place.evidence.filter((e) => e.source !== "catalog"),
1816
+ recordEvidence(rec.id)
1817
+ ],
1818
+ question: {
1819
+ text: `Does ${c.caller}'s ${c.operation} go to ${c.callee}? The AI decided so; nobody has confirmed it.`,
1820
+ owner: questionOwner(ctx, c.caller)
1821
+ },
1822
+ subject: c.caller,
1823
+ key: `link-ai|${rec.id}`
1824
+ });
1825
+ }
1792
1826
  const repo = ctx.get("Component", c.caller)?.repo;
1793
1827
  for (const q of ctx.estate?.questions ?? []) {
1794
1828
  if (!repo || q.question.repo !== repo || !q.calls.some((f) => sameCall(f, c)))
@@ -3231,7 +3265,8 @@ async function changeAnswers(root, change) {
3231
3265
  id: q.id,
3232
3266
  question: q.question.trim(),
3233
3267
  answer: (answerWords(q) ?? "").trim(),
3234
- by: q.answer.by,
3268
+ // ADR 0181: an AI answer reads as the AI's, never a person's word.
3269
+ by: answerByWords(q.answer.by),
3235
3270
  at: q.answer.at
3236
3271
  })).filter((a) => a.answer.length > 0);
3237
3272
  }
@@ -4205,6 +4240,33 @@ async function sinceReview(root, o) {
4205
4240
  }
4206
4241
 
4207
4242
  // packages/naysayer/dist/ai.js
4243
+ var LENS_BATCH_AGENT = "critic-lenses";
4244
+ var batchingOf = (rt) => typeof rt.prepareBatch === "function" && typeof rt.canBatch === "function" ? rt : void 0;
4245
+ async function batchLenses(ctx, runtime, runs) {
4246
+ const batching = batchingOf(runtime);
4247
+ const waiting = runs.filter((r) => r.state === "waiting" && r.runId);
4248
+ if (!batching || waiting.length < 2)
4249
+ return void 0;
4250
+ const tokens = waiting.reduce((n, r) => n + (r.context?.tokens ?? 0), 0);
4251
+ if (!batching.canBatch(waiting.length, tokens))
4252
+ return void 0;
4253
+ const first = lensAgent(ctx, waiting[0].lens);
4254
+ const batch = await batching.prepareBatch({
4255
+ change: ctx.change.id,
4256
+ agent: {
4257
+ ...first,
4258
+ id: LENS_BATCH_AGENT,
4259
+ description: `The critic's ${waiting.map((r) => r.lens).join(", ")} lenses on change ${ctx.change.id}, asked in one prompt: each lens is its own review, answered in its own section.`,
4260
+ allowedRuntimes: ["hand-off"]
4261
+ },
4262
+ parts: waiting.map((r) => ({ name: r.lens, runId: r.runId })),
4263
+ stepClass: "critic"
4264
+ });
4265
+ const run = await runtime.run(batch.runId);
4266
+ for (const r of waiting)
4267
+ r.batch = run.runId;
4268
+ return run.runId;
4269
+ }
4208
4270
  var ALL_INPUTS = [
4209
4271
  "brief",
4210
4272
  "proposal",
@@ -4949,7 +5011,8 @@ async function runLenses(ctx, rules, o) {
4949
5011
  runs.push({ ...base, state: "failed", reason: e.message });
4950
5012
  }
4951
5013
  }
4952
- return { hits, runs, discarded, skipped, reviewed };
5014
+ const batch = o.runtime && o.batch ? await batchLenses(ctx, o.runtime, runs).catch(() => void 0) : void 0;
5015
+ return { hits, runs, discarded, skipped, reviewed, ...batch ? { batch } : {} };
4953
5016
  }
4954
5017
 
4955
5018
  // packages/naysayer/dist/gates.js
@@ -4972,7 +5035,9 @@ async function gateStatusOf(root, lifecycle, change, gate) {
4972
5035
  return p && f.finding.state === "open" ? { ...f, proposal: p } : f;
4973
5036
  });
4974
5037
  const open = findings.filter((f) => f.finding.state === "open");
4975
- const blocking = (await checkFindings(root, change, [gate])).map((r) => r.message);
5038
+ const checked = await checkFindings(root, change, [gate]);
5039
+ const blocking = checked.map((r) => r.message);
5040
+ const onlyGaps = checked.length > 0 && checked.every((r) => r.code === "open-gap");
4976
5041
  const waiting = round ? ((await readRoundMeta(root, change.id, gate, round))?.lenses ?? []).filter((l) => l.state === "waiting" && l.runId).map((l) => ({ lens: l.lens, runId: l.runId })) : [];
4977
5042
  const proposed = findings.filter((f) => f.proposal && f.finding.severity === "blocking");
4978
5043
  const reasons = [
@@ -4994,7 +5059,7 @@ async function gateStatusOf(root, lifecycle, change, gate) {
4994
5059
  total: count(findings),
4995
5060
  mayProceed: reasons.length === 0,
4996
5061
  // An open gap with nothing blocking waits on its owner, not on a person's decision.
4997
- humanDecides: blocking.length > 0 && usedUp && !(count(open).blocking === 0 && count(open).gaps > 0 && waiting.length === 0),
5062
+ humanDecides: blocking.length > 0 && usedUp && !(count(open).blocking === 0 && onlyGaps && waiting.length === 0),
4998
5063
  checkRound: usedUp && (await checkRoundDue(root, change.id, gate)).length > 0,
4999
5064
  checkRoundsRun,
5000
5065
  waiting,
@@ -5315,6 +5380,7 @@ async function runCritic(root, changeId, opts = {}) {
5315
5380
  }) : void 0;
5316
5381
  const ai = await runLenses(ctx, applicable, {
5317
5382
  ...opts.runtime ? { runtime: opts.runtime } : {},
5383
+ ...opts.batchLenses ? { batch: true } : {},
5318
5384
  lenses,
5319
5385
  failed,
5320
5386
  ...opts.maxClassification ? { maxClassification: opts.maxClassification } : {},
@@ -5409,6 +5475,8 @@ async function runCritic(root, changeId, opts = {}) {
5409
5475
  artifacts: r.artifacts,
5410
5476
  ...r.promptSha256 ? { promptSha256: r.promptSha256 } : {},
5411
5477
  ...r.runId ? { runId: r.runId } : {},
5478
+ // ADR 0185: the one prompt it was asked in with the round's other waiting lenses.
5479
+ ...r.batch ? { batch: r.batch } : {},
5412
5480
  // What the lens was sent (ADR 0115 addendum, 2026-10-25): its size, what was cut to
5413
5481
  // need, and in a redraft the round it was diffed against and what wasn't sent.
5414
5482
  ...r.context ? { context: r.context } : {}
@@ -5428,6 +5496,7 @@ async function runCritic(root, changeId, opts = {}) {
5428
5496
  refused: layered.refused,
5429
5497
  problems,
5430
5498
  lenses: ai.runs,
5499
+ ...ai.batch ? { batch: ai.batch } : {},
5431
5500
  discarded: ai.discarded,
5432
5501
  failedLayer1: [...failed].sort(),
5433
5502
  model,
@@ -5570,6 +5639,19 @@ async function completeLensRun(root, run, opts = {}) {
5570
5639
  status: await gateStatusOf(root, lifecycle, change, gateId)
5571
5640
  };
5572
5641
  }
5642
+ async function completeLensBatch(root, batch, result, opts = {}) {
5643
+ const out = [];
5644
+ for (const p of batch.parts ?? []) {
5645
+ const run = await result(p.runId).catch(() => void 0);
5646
+ if (run?.state !== "validated" || !lensRunOf(run.request))
5647
+ continue;
5648
+ const found = await roundOf(root, run.request.change, run.runId);
5649
+ if (found?.entry.state !== "waiting")
5650
+ continue;
5651
+ out.push(await completeLensRun(root, run, opts));
5652
+ }
5653
+ return out;
5654
+ }
5573
5655
  async function failLens(root, change, gate, round, runId, reason) {
5574
5656
  const meta = await readRoundMeta(root, change, gate, round);
5575
5657
  if (!meta || !meta.lenses.some((l) => l.runId === runId && l.state === "waiting"))
@@ -5583,6 +5665,29 @@ import { createHash } from "node:crypto";
5583
5665
  import { readdir as readdir7, readFile as readFile8 } from "node:fs/promises";
5584
5666
  import { join as join12, normalize, sep as sep2 } from "node:path";
5585
5667
  var import_yaml8 = __toESM(require_dist(), 1);
5668
+ async function raiseAskedQuestion(root, f, askedOf, at) {
5669
+ const id = askedGapQuestionId(f.change, f);
5670
+ if (await readQuestion(root, id).catch(() => void 0))
5671
+ return id;
5672
+ const rel = `${changesRelOf(root)}/${f.change}`;
5673
+ const file = f.artifact === "catalog" ? "change.yaml" : f.artifact;
5674
+ const rerun = `atticus critic ${f.change} --gate ${f.gate}`;
5675
+ await writeQuestion(root, Question.parse({
5676
+ schemaVersion: QUESTION_SCHEMA_VERSION,
5677
+ id,
5678
+ askedBy: { step: ASKED_GAP_STEP, command: `atticus finding ${f.change} ${f.id} ask`, at },
5679
+ repo: f.change,
5680
+ question: f.question?.text ?? f.summary,
5681
+ options: [],
5682
+ evidence: [`${rel}/${file}:${f.artifact === "catalog" ? 1 : f.locator.line ?? 1}`],
5683
+ scope: { level: "repo", id: f.change },
5684
+ askedOf,
5685
+ finding: { change: f.change, gate: f.gate, round: f.round, id: f.id },
5686
+ state: "open",
5687
+ rerun
5688
+ }));
5689
+ return id;
5690
+ }
5586
5691
  async function locate(lifecycle, root, change, id, gate) {
5587
5692
  const gates = gate ? [gate] : await reviewedGates(root, change);
5588
5693
  const order = lifecycle.orgPack.gates.gates.map((g) => g.id);
@@ -5727,7 +5832,7 @@ async function act(root, changeId, findingId, action, o) {
5727
5832
  const said = o.reason?.trim().replace(/[.!?]+$/, "");
5728
5833
  message = edited.length ? `Recorded your edit to ${edited.join(", ")}.` : said ? `Recorded what you did: ${said}.` : `Recorded your edit to ${f.artifact}.`;
5729
5834
  } else if (act2 === "ask")
5730
- message = `Asked ${askedOf}. The gap stops blocking while the question is open.`;
5835
+ message = `Asked ${askedOf}.`;
5731
5836
  else if (act2 === "waive")
5732
5837
  message = `Waived ${f.id}. The waiver, its reason and your name are recorded on the finding; it reaches main with the ${f.gate} hand-off PR, where reviewers see it.`;
5733
5838
  else
@@ -5756,6 +5861,11 @@ async function act(root, changeId, findingId, action, o) {
5756
5861
  };
5757
5862
  }
5758
5863
  await writeFinding(root, next.data);
5864
+ let question;
5865
+ if (act2 === "ask" && gap) {
5866
+ question = await raiseAskedQuestion(root, next.data, askedOf, next.data.resolution.at);
5867
+ message = `Asked ${askedOf}: owner question ${question} is in Questions, Owner questions. The ${f.gate} gate waits for its answer.`;
5868
+ }
5759
5869
  if (waiting)
5760
5870
  await writeProposals(root, change.id, f.gate, f.round, proposals.filter((p) => p.finding !== f.id));
5761
5871
  const after = act2 === "ask" ? void 0 : await afterLimit(lifecycle, root, change.id, next.data);
@@ -5763,7 +5873,13 @@ async function act(root, changeId, findingId, action, o) {
5763
5873
  message = `${message} ${after}`;
5764
5874
  else if (act2 === "apply" || act2 === "edit-and-apply")
5765
5875
  message = patched || act2 === "edit-and-apply" ? `${message.replace(/\.$/, "")}; the next critic round checks it.` : `${message} The next critic round checks the fix.`;
5766
- return { finding: next.data, path: found.path, ...patched ? { patched } : {}, message };
5876
+ return {
5877
+ finding: next.data,
5878
+ path: found.path,
5879
+ ...patched ? { patched } : {},
5880
+ ...question ? { question } : {},
5881
+ message
5882
+ };
5767
5883
  }
5768
5884
  async function afterLimit(ctx, root, change, f) {
5769
5885
  const max = gateRoundLimit(ctx.orgPack.gates, f.gate);
@@ -5815,8 +5931,8 @@ async function editedByPerson(folder) {
5815
5931
  if (!written || typeof written !== "object")
5816
5932
  continue;
5817
5933
  for (const [file, hash] of Object.entries(written)) {
5818
- const now = await readFile8(join12(folder, ...file.split("/"))).catch(() => void 0);
5819
- const h = now ? createHash("sha256").update(now).digest("hex") : void 0;
5934
+ const now = await readFile8(join12(folder, ...file.split("/")), "utf8").catch(() => void 0);
5935
+ const h = now !== void 0 ? createHash("sha256").update(now.replace(/\r\n?/g, "\n"), "utf8").digest("hex") : void 0;
5820
5936
  if (h !== hash)
5821
5937
  out.add(file);
5822
5938
  }
@@ -6086,6 +6202,7 @@ export {
6086
6202
  focusTerms,
6087
6203
  trimSources,
6088
6204
  sinceReview,
6205
+ LENS_BATCH_AGENT,
6089
6206
  lensAgent,
6090
6207
  catalogSlice,
6091
6208
  lensAnswerProblem,
@@ -6109,7 +6226,9 @@ export {
6109
6226
  lensRunOf,
6110
6227
  waitingLenses,
6111
6228
  completeLensRun,
6229
+ completeLensBatch,
6112
6230
  failLens,
6113
6231
  act,
6232
+ editedByPerson,
6114
6233
  overrideStats
6115
6234
  };
@@ -5,10 +5,10 @@ var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
5
5
  var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
6
  import {
7
7
  loadCatalog
8
- } from "./chunk-WWPC2AZ2.js";
8
+ } from "./chunk-5QUOPNLN.js";
9
9
  import {
10
10
  repoFor
11
- } from "./chunk-LGDW4G73.js";
11
+ } from "./chunk-TGVVUKTG.js";
12
12
  import {
13
13
  checkDraft,
14
14
  checkFrameworkDraft,
@@ -22,25 +22,25 @@ import {
22
22
  proposalYaml,
23
23
  reviewRepo,
24
24
  surveyRepo
25
- } from "./chunk-G5BYKJIM.js";
25
+ } from "./chunk-P2VBXX7N.js";
26
+ import {
27
+ offerCodeDir
28
+ } from "./chunk-ZOSD4FXV.js";
26
29
  import {
27
30
  matchRepoType
28
- } from "./chunk-EZBAS5BL.js";
31
+ } from "./chunk-4SLBCEPD.js";
29
32
  import {
30
33
  modelCovers,
31
34
  repoImports,
32
35
  runDialectTests,
33
36
  runFrameworkTests
34
- } from "./chunk-RBXDHCN7.js";
35
- import {
36
- offerCodeDir
37
- } from "./chunk-JZOOX3PQ.js";
37
+ } from "./chunk-TWQRPM76.js";
38
38
  import {
39
39
  baseClonePath
40
- } from "./chunk-ZQC7MNQB.js";
40
+ } from "./chunk-XOL3GFW2.js";
41
41
  import {
42
42
  fsRepo
43
- } from "./chunk-TLDL2ZZI.js";
43
+ } from "./chunk-7AB6OWTV.js";
44
44
  import {
45
45
  Dialect,
46
46
  FrameworkModel,
@@ -52,7 +52,7 @@ import {
52
52
  raiseQuestions,
53
53
  require_dist,
54
54
  reusedLine
55
- } from "./chunk-YK6CSODO.js";
55
+ } from "./chunk-PAINMSID.js";
56
56
  import {
57
57
  __toESM
58
58
  } from "./chunk-TV45EUGM.js";
@@ -6,41 +6,46 @@ var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
6
  import {
7
7
  claimOf,
8
8
  factLabel
9
- } from "./chunk-7S6VJ643.js";
9
+ } from "./chunk-QOOEYDNJ.js";
10
+ import "./chunk-HK3VOHIE.js";
10
11
  import {
11
- verifyInputsOf
12
- } from "./chunk-BAT4CBB7.js";
13
- import "./chunk-5NLJH6R4.js";
14
- import "./chunk-QKMDT7VU.js";
15
- import "./chunk-4W7FOGAB.js";
16
- import "./chunk-Q2X4IREC.js";
12
+ safeMessage
13
+ } from "./chunk-THN26IEF.js";
17
14
  import {
18
- checkoutOf
19
- } from "./chunk-AB5E5HCN.js";
20
- import "./chunk-LGDW4G73.js";
15
+ verifyInputsOf
16
+ } from "./chunk-LN77DXBM.js";
17
+ import "./chunk-L4CESDPB.js";
18
+ import "./chunk-U3NBK4EU.js";
19
+ import "./chunk-455SYIIE.js";
21
20
  import {
22
21
  repoContractsOf
23
- } from "./chunk-RUOGHYSK.js";
24
- import "./chunk-BAXM3JFQ.js";
25
- import "./chunk-VEJYZEPC.js";
26
- import "./chunk-IOW6BF3U.js";
27
- import "./chunk-43E6XX67.js";
28
- import "./chunk-V3UEPUHT.js";
29
- import "./chunk-EZBAS5BL.js";
30
- import "./chunk-KCQS52TH.js";
22
+ } from "./chunk-LPV6T362.js";
23
+ import "./chunk-GIFMBCTW.js";
24
+ import "./chunk-MD7KUEJ3.js";
25
+ import {
26
+ checkoutOf
27
+ } from "./chunk-Q46QDDMF.js";
28
+ import "./chunk-TGVVUKTG.js";
29
+ import "./chunk-3AQ2R5NL.js";
30
+ import "./chunk-5WERBKLE.js";
31
+ import "./chunk-K332XW7K.js";
32
+ import "./chunk-HSZMPH5T.js";
33
+ import "./chunk-D2WSW4GU.js";
34
+ import "./chunk-4KNOJC6J.js";
35
+ import "./chunk-4SLBCEPD.js";
36
+ import "./chunk-64AADMTW.js";
31
37
  import {
32
38
  dirSource,
33
39
  repairFormSlips,
34
40
  verifyFacts
35
- } from "./chunk-IPSFMTK2.js";
36
- import "./chunk-TNCROWPQ.js";
37
- import "./chunk-7IM4BVVH.js";
38
- import "./chunk-RBXDHCN7.js";
39
- import "./chunk-YXUIUOQZ.js";
40
- import "./chunk-CYX36GKZ.js";
41
- import "./chunk-ZQC7MNQB.js";
42
- import "./chunk-TLDL2ZZI.js";
43
- import "./chunk-QNMLLYTN.js";
41
+ } from "./chunk-JYMIB5XY.js";
42
+ import "./chunk-CPK7QSBG.js";
43
+ import "./chunk-YO2PKTXT.js";
44
+ import "./chunk-TWQRPM76.js";
45
+ import "./chunk-API5TOUB.js";
46
+ import "./chunk-XOL3GFW2.js";
47
+ import "./chunk-QHJJMZLX.js";
48
+ import "./chunk-7AB6OWTV.js";
44
49
  import {
45
50
  factsDirOf,
46
51
  factsRelOf,
@@ -50,14 +55,15 @@ import {
50
55
  mapDirOf,
51
56
  mapRelOf,
52
57
  orgPackDirOf,
58
+ pairsFromCorrections,
53
59
  parseFactsLines,
54
60
  questionsRelOf,
55
61
  recordPath,
56
62
  require_dist,
57
63
  specRelOf,
58
64
  stackHelpersOff
59
- } from "./chunk-YK6CSODO.js";
60
- import "./chunk-MMB2OHUY.js";
65
+ } from "./chunk-PAINMSID.js";
66
+ import "./chunk-ODMBPDDV.js";
61
67
  import {
62
68
  __toESM
63
69
  } from "./chunk-TV45EUGM.js";
@@ -92,7 +98,7 @@ function editedFields(was, now) {
92
98
  }
93
99
  function stepsOf(root, repo, o) {
94
100
  const branch = `correct/${slugPart(repo)}${o.fact ? `-${slugPart(o.fact)}` : ""}`;
95
- const message = o.fact ? `${repo}: a person's correction of ${o.fact}, applied by atticus verify --write` : `${repo}: a person's corrections, applied by atticus verify --write`;
101
+ const message = safeMessage(o.fact ? `${repo}: a correction by a person of ${o.fact}, applied by atticus verify --write` : `${repo}: corrections by a person, applied by atticus verify --write`);
96
102
  const pr = prCommand(o.host, branch);
97
103
  return {
98
104
  branch,
@@ -129,7 +135,11 @@ async function verifyWritePreview(root, repo, o = {}) {
129
135
  const plain = (files2, unavailable) => ({
130
136
  repo,
131
137
  wrote,
132
- ...stepsOf(root, repo, { ...o, ...host ? { host } : {}, files: files2 }),
138
+ ...stepsOf(root, repo, {
139
+ ...o.fact ? { fact: o.fact } : {},
140
+ ...host ? { host } : {},
141
+ files: files2
142
+ }),
133
143
  ...unavailable ? { unavailable } : {}
134
144
  });
135
145
  const read = parseFactsLines(text);
@@ -150,11 +160,12 @@ async function verifyWritePreview(root, repo, o = {}) {
150
160
  ...off.has("derived-names") ? { derivedNames: false } : {},
151
161
  ...off.has("readers") ? { readers: false } : {},
152
162
  exclude: inputs.exclude,
153
- corrections: inputs.corrections.corrections,
163
+ corrections: [...inputs.corrections.corrections, ...o.extra ?? []],
154
164
  reviewed: inputs.reviewed.entries,
155
165
  ...inputs.estate ? { estate: inputs.estate } : {},
156
166
  conventions: inputs.conventions,
157
167
  notes: inputs.notes,
168
+ componentTypes: inputs.componentTypes,
158
169
  notReached: inputs.notReached
159
170
  });
160
171
  const kept = new Map(report.accepted.map((f) => [f.id, f]));
@@ -193,7 +204,7 @@ async function verifyWritePreview(root, repo, o = {}) {
193
204
  }
194
205
  };
195
206
  }
196
- const { projectFactsIntoCatalog } = await import("./chunk-L4MHJG3I.js");
207
+ const { projectFactsIntoCatalog } = await import("./chunk-MZGRDONP.js");
197
208
  const contracts = await repoContractsOf(root, repo, dir, report.accepted);
198
209
  const companion = join(factsDirOf(root), `${repo}.contracts.yaml`);
199
210
  const onDisk = await readFile(companion, "utf8").catch(() => void 0);
@@ -203,7 +214,8 @@ async function verifyWritePreview(root, repo, o = {}) {
203
214
  const p = await projectFactsIntoCatalog(root, repo, report.accepted, {
204
215
  ...op ? { op } : {},
205
216
  contracts,
206
- cache: false
217
+ cache: false,
218
+ ...o.extra?.length ? { extraPairs: pairsFromCorrections(report.accepted, o.extra) } : {}
207
219
  });
208
220
  const catalogRel = layoutOf(root).catalog.replace(/\/+$/, "");
209
221
  const recordFiles = [
@@ -0,0 +1,93 @@
1
+ import { createRequire as __atticusCreateRequire } from "node:module";
2
+ import { fileURLToPath as __atticusFileURLToPath } from "node:url";
3
+ var require = __atticusCreateRequire(import.meta.url);
4
+ var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
5
+ var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
+ import {
7
+ QUESTION_ROLES,
8
+ changesDirOf,
9
+ orgPackDirOf,
10
+ require_dist,
11
+ roleOfQuestion,
12
+ roleOfStep,
13
+ rolesOfPerson
14
+ } from "./chunk-PAINMSID.js";
15
+ import "./chunk-ODMBPDDV.js";
16
+ import {
17
+ __toESM
18
+ } from "./chunk-TV45EUGM.js";
19
+
20
+ // packages/cli/dist/change-roles.js
21
+ var import_yaml = __toESM(require_dist(), 1);
22
+ import { readdir, readFile } from "node:fs/promises";
23
+ import { join } from "node:path";
24
+ var STAGE_FILES = ["feature", "architecture", "stories", "small"];
25
+ var yamlOf = async (path) => {
26
+ const text = await readFile(path, "utf8").catch(() => void 0);
27
+ if (text === void 0)
28
+ return void 0;
29
+ try {
30
+ return (0, import_yaml.parse)(text);
31
+ } catch {
32
+ return void 0;
33
+ }
34
+ };
35
+ async function stageQuestions(root, only) {
36
+ const out = /* @__PURE__ */ new Map();
37
+ const changes = only ? [only] : await readdir(changesDirOf(root), { withFileTypes: true }).then((d) => d.filter((x) => x.isDirectory()).map((x) => x.name), () => []);
38
+ for (const change of changes.sort())
39
+ for (const stage of STAGE_FILES) {
40
+ const y = await yamlOf(join(changesDirOf(root), change, "stage", `${stage}.yaml`));
41
+ const ids = Array.isArray(y?.questions) ? y.questions : [];
42
+ for (const id of ids)
43
+ if (typeof id === "string" && !out.has(id))
44
+ out.set(id, { change, role: roleOfStep(`change-${stage}`) });
45
+ }
46
+ return out;
47
+ }
48
+ function roleWithStage(q, stages) {
49
+ return roleOfQuestion(q) ?? stages.get(q.id)?.role;
50
+ }
51
+ function isChangeQuestion(q, change, o) {
52
+ return q.repo === change || o.stages.get(q.id)?.change === change || !!o.restsOn?.includes(change);
53
+ }
54
+ async function customRoles(root) {
55
+ const y = await yamlOf(join(orgPackDirOf(root), "roles.yaml"));
56
+ if (!Array.isArray(y?.custom))
57
+ return [];
58
+ return y.custom.flatMap((c) => {
59
+ const x = c;
60
+ return typeof x?.id === "string" && typeof x.basedOn === "string" ? [{ id: x.id, basedOn: x.basedOn }] : [];
61
+ });
62
+ }
63
+ async function personsRoles(root, change, handle) {
64
+ if (!handle)
65
+ return [];
66
+ const y = await yamlOf(join(changesDirOf(root), change, "change.yaml"));
67
+ const owners = y?.owners;
68
+ if (!owners || typeof owners !== "object" || Array.isArray(owners))
69
+ return [];
70
+ const lists = {};
71
+ for (const [k, v] of Object.entries(owners))
72
+ if (Array.isArray(v))
73
+ lists[k] = v.filter((h) => typeof h === "string");
74
+ return rolesOfPerson(handle, lists, await customRoles(root));
75
+ }
76
+ function countByRole(questions, roleOf) {
77
+ const out = {};
78
+ for (const r of QUESTION_ROLES) {
79
+ const of = questions.filter((q) => roleOf(q) === r);
80
+ if (!of.length)
81
+ continue;
82
+ const k = (s) => of.filter((q) => q.state === s).length;
83
+ out[r] = { open: k("open"), answered: k("answered"), retired: k("retired"), total: of.length };
84
+ }
85
+ return out;
86
+ }
87
+ export {
88
+ countByRole,
89
+ isChangeQuestion,
90
+ personsRoles,
91
+ roleWithStage,
92
+ stageQuestions
93
+ };
@@ -0,0 +1,22 @@
1
+ import { createRequire as __atticusCreateRequire } from "node:module";
2
+ import { fileURLToPath as __atticusFileURLToPath } from "node:url";
3
+ var require = __atticusCreateRequire(import.meta.url);
4
+ var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
5
+ var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
+ import {
7
+ effectiveComponentTypes,
8
+ loadOrgPack,
9
+ orgPackDirOf
10
+ } from "./chunk-PAINMSID.js";
11
+
12
+ // packages/cli/dist/component-types.js
13
+ async function componentTypesAt(root, given) {
14
+ const op = given ?? await loadOrgPack(orgPackDirOf(root)).catch(() => void 0);
15
+ return effectiveComponentTypes(op?.componentTypes ?? []);
16
+ }
17
+ var componentTypeIds = (types) => new Set(types.map((t) => t.id));
18
+
19
+ export {
20
+ componentTypesAt,
21
+ componentTypeIds
22
+ };