@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
@@ -0,0 +1,62 @@
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
+ MatchAnswer,
8
+ checkMatchAnswer,
9
+ connectMatchCommand,
10
+ matchBrief,
11
+ matchDone,
12
+ matchFilesOf,
13
+ matchLines,
14
+ quotesOf,
15
+ readMatch,
16
+ runMatch
17
+ } from "./chunk-QJCJOMW3.js";
18
+ import "./chunk-3SSTNB4E.js";
19
+ import "./chunk-JRVNXLZP.js";
20
+ import "./chunk-LIJJCBQI.js";
21
+ import "./chunk-26Z7OGQW.js";
22
+ import "./chunk-OKUB6RJA.js";
23
+ import "./chunk-HK3VOHIE.js";
24
+ import "./chunk-THN26IEF.js";
25
+ import "./chunk-L4CESDPB.js";
26
+ import "./chunk-455SYIIE.js";
27
+ import "./chunk-3J5I7ZOU.js";
28
+ import "./chunk-GIFMBCTW.js";
29
+ import "./chunk-MD7KUEJ3.js";
30
+ import "./chunk-Q46QDDMF.js";
31
+ import "./chunk-TGVVUKTG.js";
32
+ import "./chunk-3AQ2R5NL.js";
33
+ import "./chunk-5WERBKLE.js";
34
+ import "./chunk-K332XW7K.js";
35
+ import "./chunk-HSZMPH5T.js";
36
+ import "./chunk-D2WSW4GU.js";
37
+ import "./chunk-4KNOJC6J.js";
38
+ import "./chunk-4SLBCEPD.js";
39
+ import "./chunk-64AADMTW.js";
40
+ import "./chunk-JYMIB5XY.js";
41
+ import "./chunk-CPK7QSBG.js";
42
+ import "./chunk-YO2PKTXT.js";
43
+ import "./chunk-TWQRPM76.js";
44
+ import "./chunk-VUVGX5L2.js";
45
+ import "./chunk-XOL3GFW2.js";
46
+ import "./chunk-QHJJMZLX.js";
47
+ import "./chunk-7AB6OWTV.js";
48
+ import "./chunk-PAINMSID.js";
49
+ import "./chunk-ODMBPDDV.js";
50
+ import "./chunk-TV45EUGM.js";
51
+ export {
52
+ MatchAnswer,
53
+ checkMatchAnswer,
54
+ connectMatchCommand,
55
+ matchBrief,
56
+ matchDone,
57
+ matchFilesOf,
58
+ matchLines,
59
+ quotesOf,
60
+ readMatch,
61
+ runMatch
62
+ };
@@ -5,15 +5,17 @@ var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
5
5
  var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
6
  import {
7
7
  readOpenApiDocument
8
- } from "./chunk-RBXDHCN7.js";
8
+ } from "./chunk-TWQRPM76.js";
9
9
  import {
10
10
  globToRegExp
11
- } from "./chunk-TLDL2ZZI.js";
11
+ } from "./chunk-7AB6OWTV.js";
12
12
  import {
13
13
  DECLARED_TOPIC,
14
14
  DEFAULT_CONVENTIONS,
15
15
  Fact,
16
16
  FactId,
17
+ JOINED_BY_AI,
18
+ JOINED_BY_PERSON,
17
19
  JOINED_TO_SHARED_MAP,
18
20
  JOIN_HOW_FLAGS,
19
21
  LINK_EVIDENCE_NOT_GAPS,
@@ -29,6 +31,7 @@ import {
29
31
  isPatternPath,
30
32
  isSecretPath,
31
33
  lineNamesClaim,
34
+ linksFor,
32
35
  normalizePath,
33
36
  noteProblem,
34
37
  partsBuildWord,
@@ -40,7 +43,7 @@ import {
40
43
  staleCite,
41
44
  toCanonicalYaml,
42
45
  underFolders
43
- } from "./chunk-YK6CSODO.js";
46
+ } from "./chunk-PAINMSID.js";
44
47
 
45
48
  // packages/verify/dist/source.js
46
49
  import { readdirSync, readFileSync, statSync } from "node:fs";
@@ -55,6 +58,13 @@ var SKIP_DIRS = /* @__PURE__ */ new Set([
55
58
  ".vscode",
56
59
  ".gradle",
57
60
  ".mvn",
61
+ "__pycache__",
62
+ ".venv",
63
+ "venv",
64
+ ".next",
65
+ ".nuxt"
66
+ ]);
67
+ var BUILD_OUTPUT = /* @__PURE__ */ new Set([
58
68
  "target",
59
69
  "build",
60
70
  "dist",
@@ -62,13 +72,32 @@ var SKIP_DIRS = /* @__PURE__ */ new Set([
62
72
  "bin",
63
73
  "obj",
64
74
  "vendor",
65
- "__pycache__",
66
- ".venv",
67
- "venv",
68
- ".next",
69
- ".nuxt",
70
75
  "coverage"
71
76
  ]);
77
+ var DOTNET = /\.(csproj|fsproj|vbproj|sln)$/i;
78
+ var NODE = /^package\.json$/;
79
+ var MADE_BESIDE = {
80
+ bin: DOTNET,
81
+ obj: DOTNET,
82
+ vendor: /^(go\.mod|composer\.json|Gemfile)$/,
83
+ target: /^(pom\.xml|build\.sbt|Cargo\.toml)$/,
84
+ build: /^(build\.gradle(\.kts)?|settings\.gradle(\.kts)?|package\.json|CMakeLists\.txt)$/,
85
+ dist: NODE,
86
+ coverage: NODE,
87
+ out: /^(tsconfig\.json|package\.json)$|\.iml$/
88
+ };
89
+ var ONLY_BESIDE = /* @__PURE__ */ new Set(["bin", "obj", "vendor"]);
90
+ function skippedFolder(above, name, siblings) {
91
+ if (SKIP_DIRS.has(name))
92
+ return true;
93
+ if (!BUILD_OUTPUT.has(name))
94
+ return false;
95
+ if (siblings.some((x) => MADE_BESIDE[name].test(x)))
96
+ return true;
97
+ if (above.some((a) => a.toLowerCase() === "src"))
98
+ return false;
99
+ return !ONLY_BESIDE.has(name);
100
+ }
72
101
  function insideRepo(path) {
73
102
  if (path === "" || isAbsolute(path) || /^[A-Za-z]:/.test(path))
74
103
  return false;
@@ -77,7 +106,7 @@ function insideRepo(path) {
77
106
  }
78
107
  function dirSource(root) {
79
108
  let cache;
80
- const walk = (dir, out) => {
109
+ const walk = (dir, above, out) => {
81
110
  let names;
82
111
  try {
83
112
  names = readdirSync(dir).sort();
@@ -93,8 +122,8 @@ function dirSource(root) {
93
122
  continue;
94
123
  }
95
124
  if (st.isDirectory()) {
96
- if (!SKIP_DIRS.has(name))
97
- walk(full, out);
125
+ if (!skippedFolder(above, name, names))
126
+ walk(full, [...above, name], out);
98
127
  } else if (st.isFile())
99
128
  out.push(relative(root, full).split(sep).join("/"));
100
129
  }
@@ -103,7 +132,7 @@ function dirSource(root) {
103
132
  list() {
104
133
  if (!cache) {
105
134
  cache = [];
106
- walk(root, cache);
135
+ walk(root, [], cache);
107
136
  }
108
137
  return cache;
109
138
  },
@@ -356,12 +385,26 @@ var isGlob = (path) => /[*?]/.test(path);
356
385
 
357
386
  // packages/verify/dist/conventions.js
358
387
  var SPEC_NAME = /(^|\/)[^/]*(openapi|swagger|asyncapi|api-docs)[^/]*\.(ya?ml|json|xml)$|\.oas\.(ya?ml|json)$/i;
388
+ function notReadTest(folders) {
389
+ const multi = folders.filter((f) => f.includes("/"));
390
+ const multiRe = underFolders(multi);
391
+ const names = new Set(folders.filter((f) => !f.includes("/")).map((f) => f.toLowerCase()));
392
+ return {
393
+ test(path) {
394
+ if (multiRe.test(path))
395
+ return true;
396
+ const parts = path.split("/").slice(0, -1).map((x) => x.toLowerCase());
397
+ const src = parts.indexOf("src");
398
+ return parts.some((x, j) => names.has(x) && !(src >= 0 && j > src && BUILD_OUTPUT.has(x)));
399
+ }
400
+ };
401
+ }
359
402
  function rulesOf(c) {
360
403
  const folders = underFolders(c.apiSpecFolders, { tail: "(.+/)?[^/]+\\.(ya?ml|json)$" });
361
404
  return {
362
405
  apiSpec: new RegExp(`${SPEC_NAME.source}|${folders.source}`, "i"),
363
406
  notProduct: underFolders(c.notProductFolders),
364
- notRead: underFolders(c.notReadFolders),
407
+ notRead: notReadTest(c.notReadFolders),
365
408
  gatewayBundle: gatewayBundleTest(c.gatewayBundleFolders),
366
409
  frameworks: c.frameworks
367
410
  };
@@ -494,7 +537,8 @@ function lineOfValue(lines, line, value) {
494
537
  }
495
538
 
496
539
  // packages/verify/dist/corrections.js
497
- function correctionFor(f, corrections) {
540
+ function correctionFor(f, all2) {
541
+ const corrections = all2.filter((c) => c.action !== "link" && c.action !== "unlink");
498
542
  const at = (c) => c.target.kind === f.kind && c.target.file === f.cite.file && c.target.line === f.cite.line;
499
543
  const byId = corrections.filter((c) => c.fact === f.id && at(c));
500
544
  const byCite = corrections.filter((c) => at(c) && c.target.value === f.cite.value);
@@ -502,6 +546,10 @@ function correctionFor(f, corrections) {
502
546
  const moved = edited.filter((c) => (c.line ?? c.target.line) === f.cite.line);
503
547
  return [...byId, ...byCite, ...moved].sort((a, b) => a.at < b.at ? 1 : a.at > b.at ? -1 : 0)[0];
504
548
  }
549
+ function outsidePairingFor(f, all2) {
550
+ const newest = linksFor(f, all2)[0];
551
+ return newest?.link?.system ? newest : void 0;
552
+ }
505
553
  function correctedFact(f, c) {
506
554
  const raw = JSON.parse(JSON.stringify(f));
507
555
  for (const [k, v] of Object.entries(c.set ?? {})) {
@@ -528,33 +576,64 @@ function applyCorrections(facts, corrections) {
528
576
  const applied = [];
529
577
  const used = /* @__PURE__ */ new Set();
530
578
  const stale = [];
531
- for (const f of facts) {
532
- const c = correctionFor(f, corrections);
533
- if (!c) {
534
- out.push(f);
579
+ const met = /* @__PURE__ */ new Set();
580
+ const withPairing = (f, as, over) => {
581
+ const p = outsidePairingFor(as, corrections);
582
+ if (!p)
583
+ return f;
584
+ if (over && over.at > p.at && over.set?.to !== void 0)
585
+ return f;
586
+ const fixed = correctedFact(f, { ...p, action: "edit", set: { to: p.link.system } });
587
+ if (typeof fixed === "string") {
588
+ stale.push({
589
+ correction: p,
590
+ why: "invalid",
591
+ message: `${p.by}'s pairing of ${f.kind} ${f.id} with ${p.link.system} doesn't make a fact (${fixed}); the call is kept as it was`
592
+ });
593
+ return f;
594
+ }
595
+ applied.push({ fact: f.id, action: "link", by: p.by });
596
+ return { ...fixed, conf: "inferred" };
597
+ };
598
+ for (const f0 of facts) {
599
+ for (const l of linksFor(f0, corrections))
600
+ met.add(l);
601
+ const c = correctionFor(f0, corrections);
602
+ if (c?.action === "wrong") {
603
+ used.add(c);
604
+ applied.push({ fact: f0.id, action: "wrong", by: c.by });
535
605
  continue;
536
606
  }
537
- used.add(c);
538
- if (c.action === "wrong") {
539
- applied.push({ fact: f.id, action: "wrong", by: c.by });
607
+ if (!c) {
608
+ out.push(withPairing(f0, f0));
540
609
  continue;
541
610
  }
542
- const fixed = correctedFact(f, c);
611
+ used.add(c);
612
+ const fixed = correctedFact(f0, c);
543
613
  if (typeof fixed === "string") {
544
614
  stale.push({
545
615
  correction: c,
546
616
  why: "invalid",
547
- message: `${c.by}'s correction of ${f.kind} ${f.id} doesn't make a fact (${fixed}); the fact is kept as it was`
617
+ message: `${c.by}'s correction of ${f0.kind} ${f0.id} doesn't make a fact (${fixed}); the fact is kept as it was`
548
618
  });
549
- out.push(f);
619
+ out.push(withPairing(f0, f0));
550
620
  continue;
551
621
  }
552
- applied.push({ fact: f.id, action: "edit", by: c.by });
553
- out.push(fixed);
622
+ applied.push({ fact: f0.id, action: "edit", by: c.by });
623
+ out.push(withPairing(fixed, f0, c));
554
624
  }
555
625
  for (const c of corrections) {
556
626
  if (used.has(c))
557
627
  continue;
628
+ if (c.action === "link" || c.action === "unlink") {
629
+ if (!met.has(c))
630
+ stale.push({
631
+ correction: c,
632
+ why: "none",
633
+ message: `${c.by}'s pairing of call ${c.fact} (${c.target.file}:${c.target.line}) with ${[c.link?.method, c.link?.path].filter(Boolean).join(" ")} on ${c.link?.repo ?? c.link?.system} meets no call in this read; it is kept in the file and applied when the call is read again`
634
+ });
635
+ continue;
636
+ }
558
637
  const replaced = [...used].some((u) => (u.fact === c.fact || u.target.value === c.target.value) && u.target.kind === c.target.kind && u.target.file === c.target.file && u.target.line === c.target.line);
559
638
  if (replaced || c.action === "wrong")
560
639
  continue;
@@ -1890,16 +1969,24 @@ function reviewedHoldsOf(r, skipped) {
1890
1969
  var FOLLOWED_TYPES = ["event-topic", "mq-queue", "rest", "grpc"];
1891
1970
  function entriesNoFlowFollows(facts, rules = DEFAULT_READ_RULES) {
1892
1971
  const started = new Set(facts.flatMap((f) => f.kind === "flow" ? [f.entry] : []));
1893
- return facts.flatMap((f) => f.kind === "entry" && FOLLOWED_TYPES.includes(f.entryType) && !started.has(f.id) && // An Apigee route forwards; its forwarding call is its flow (ADR 0124 addendum A-gateway).
1894
- !rules.gatewayBundle.test(f.cite.file) ? [
1895
- {
1896
- id: f.id,
1897
- entryType: f.entryType,
1898
- ...f.method ? { method: f.method } : {},
1899
- path: f.path,
1900
- cite: `${f.cite.file}:${f.cite.line}`
1901
- }
1902
- ] : []).sort((a, b) => a.id < b.id ? -1 : a.id > b.id ? 1 : 0);
1972
+ const forwarded = new Set(facts.flatMap((f) => f.kind === "call" && f.from ? [f.from] : []));
1973
+ return facts.flatMap((f) => {
1974
+ if (f.kind !== "entry" || !FOLLOWED_TYPES.includes(f.entryType))
1975
+ return [];
1976
+ const route = rules.gatewayBundle.test(f.cite.file);
1977
+ if (route ? forwarded.has(f.id) : started.has(f.id))
1978
+ return [];
1979
+ return [
1980
+ {
1981
+ id: f.id,
1982
+ entryType: f.entryType,
1983
+ ...f.method ? { method: f.method } : {},
1984
+ path: f.path,
1985
+ cite: `${f.cite.file}:${f.cite.line}`,
1986
+ ...route ? { route: true } : {}
1987
+ }
1988
+ ];
1989
+ }).sort((a, b) => a.id < b.id ? -1 : a.id > b.id ? 1 : 0);
1903
1990
  }
1904
1991
  var LINES_HELD = 64;
1905
1992
  var SOURCE_EXT = /\.(java|kt|kts|scala|groovy|cs|vb|fs|ts|tsx|js|jsx|mjs|cjs|py|rb|go|rs|php|swift|m|mm|c|cc|cpp|h|hpp|sql|graphql|gql|proto|ya?ml|json|xml|properties|toml|ini|conf|tf|tfvars|hcl|bicep|sh|ps1|bat|cmd|gradle|html?|vue|svelte|cshtml|razor|aspx|jsp|ftl|hbs|cob|cbl|cpy|jcl|avsc|wsdl|xsd|csproj|sln|config)$/i;
@@ -1976,6 +2063,9 @@ function claimsOf(f) {
1976
2063
  // ADR 0163: the value as written, on its line.
1977
2064
  case "term":
1978
2065
  return [{ kind: "word", value: f.value }];
2066
+ // ADR 0180: the signal the type rests on, as written on its line.
2067
+ case "component":
2068
+ return [{ kind: "word", value: f.cite.value }];
1979
2069
  }
1980
2070
  }
1981
2071
  var sameCommit = (a, b) => a.startsWith(b) || b.startsWith(a);
@@ -2242,6 +2332,14 @@ async function verifyFacts(o) {
2242
2332
  if (bad)
2243
2333
  problem(f, bad.code, `${label} ${bad.message}`);
2244
2334
  }
2335
+ if (f.kind === "component") {
2336
+ if (o.componentTypes && !o.componentTypes.has(f.type))
2337
+ problem(f, "component-type", `${label} says the component is a ${f.type}, which isn't one of the organisation's component types: add it (org-pack/component-types/${f.type}/type.yaml) or say one of ${[...o.componentTypes].join(", ")}`);
2338
+ const subject = factIdPart(f.component ?? f.repo);
2339
+ const first = facts.find((x) => x.kind === "component" && factIdPart(x.component ?? x.repo) === subject && (x === f || !found.has(x.id)));
2340
+ if (first && first !== f)
2341
+ problem(f, "component-type", `${label} says what ${subject} is a second time (${first.id} already does): one fact says what a component is`);
2342
+ }
2245
2343
  if (f.kind === "framework") {
2246
2344
  const bad = frameworkNameProblem(f, rules.frameworks);
2247
2345
  if (bad)
@@ -2803,10 +2901,10 @@ function buildModules(path, text) {
2803
2901
  return found.filter((m) => !m.startsWith("!")).map(clean).filter(Boolean).map((m) => dir ? `${dir}/${m}` : m);
2804
2902
  }
2805
2903
  var JAVA_LIKE = /\.(java|kt|kts|scala|groovy)$/i;
2806
- var DOTNET = /\.(cs|vb|fs)$/i;
2904
+ var DOTNET2 = /\.(cs|vb|fs)$/i;
2807
2905
  var rootOf = (name) => name.split(".").slice(0, 2).join(".").toLowerCase();
2808
2906
  function packageRoot(path, text) {
2809
- const re = JAVA_LIKE.test(path) ? /^\s*package\s+([A-Za-z_][\w.]*)/m : DOTNET.test(path) ? /^\s*namespace\s+([A-Za-z_][\w.]*)/m : void 0;
2907
+ const re = JAVA_LIKE.test(path) ? /^\s*package\s+([A-Za-z_][\w.]*)/m : DOTNET2.test(path) ? /^\s*namespace\s+([A-Za-z_][\w.]*)/m : void 0;
2810
2908
  const m = re?.exec(text);
2811
2909
  return m ? rootOf(m[1]) : void 0;
2812
2910
  }
@@ -2824,7 +2922,7 @@ function packageRoots(paths, inits, read) {
2824
2922
  }
2825
2923
  if (top)
2826
2924
  roots.add(nameOf(top).toLowerCase());
2827
- } else if ((JAVA_LIKE.test(p) || DOTNET.test(p)) && readCount < PACKAGE_SAMPLE) {
2925
+ } else if ((JAVA_LIKE.test(p) || DOTNET2.test(p)) && readCount < PACKAGE_SAMPLE) {
2828
2926
  readCount++;
2829
2927
  const r = packageRoot(p, read(p) ?? "");
2830
2928
  if (r)
@@ -3188,7 +3286,7 @@ function planGaps(from, size, room, o = {}) {
3188
3286
  for (const o2 of from.specOpsUncovered ?? [])
3189
3287
  note(o2.cite, `declares ${o2.method} ${quoted2(o2.path)}, which no entry covers: find the code that serves it`);
3190
3288
  for (const e of from.entriesNoFlowFollows ?? [])
3191
- note(e.cite, `is ${e.id} (${[e.entryType, e.method, quoted2(e.path)].filter(Boolean).join(" ")}), which no flow follows: write its flow`);
3289
+ note(e.cite, e.route ? `is ${e.id} (${[e.method, quoted2(e.path)].filter(Boolean).join(" ")}), a gateway route with no forwarding call: write the call it forwards to its RouteRule's target, \`from\` it, as the gateway rules say` : `is ${e.id} (${[e.entryType, e.method, quoted2(e.path)].filter(Boolean).join(" ")}), which no flow follows: write its flow`);
3192
3290
  const unlisted = Math.max(0, (from.skippedCount ?? 0) - (from.skipped?.length ?? 0)) + Math.max(0, (from.specOpsUncoveredCount ?? 0) - (from.specOpsUncovered?.length ?? 0));
3193
3291
  const gone = [];
3194
3292
  const reads = [];
@@ -4280,7 +4378,7 @@ var STATE = {
4280
4378
  };
4281
4379
  function recordGaps(r) {
4282
4380
  const g = [];
4283
- if (r.confidence === "inferred")
4381
+ if (r.confidence === "inferred" && !r.flags?.includes(JOINED_BY_PERSON))
4284
4382
  g.push("inferred");
4285
4383
  for (const f of r.flags ?? [])
4286
4384
  if (!JOIN_HOW_FLAGS.has(f) && !LINK_EVIDENCE_NOT_GAPS.has(f))
@@ -4295,6 +4393,10 @@ var HOW_OF_FLAG = {
4295
4393
  "joined-by-folder-name": "folder-name",
4296
4394
  "joined-despite-conflict": "conflict",
4297
4395
  "joined-by-service-name": "service-name",
4396
+ // G1 (ADR 0174): a person paired the call with the entry on the canvas.
4397
+ "joined-by-person": "person",
4398
+ // ADR 0181: the AI paired it, applied by Atticus from its run: the AI's word, not a person's.
4399
+ [JOINED_BY_AI]: "ai",
4298
4400
  "joined-by-answer": "answer",
4299
4401
  "joined-by-name": "named",
4300
4402
  "joined-by-repo": "repo",
@@ -4329,9 +4431,16 @@ function joinOf(i) {
4329
4431
  callee: side("callee"),
4330
4432
  hops: side("gateway"),
4331
4433
  other: evidenceOf(i.evidence.filter((e) => !e.side || !sided.has(e.side))),
4332
- ...sharedOf(i)
4434
+ ...sharedOf(i),
4435
+ ...aiRunOf(i)
4333
4436
  };
4334
4437
  }
4438
+ function aiRunOf(i) {
4439
+ if (!i.flags?.includes(JOINED_BY_AI))
4440
+ return {};
4441
+ const run = i.evidence.find((e) => e.source === "ai" && e.run)?.run;
4442
+ return run ? { run } : {};
4443
+ }
4335
4444
  function sharedOf(i) {
4336
4445
  if (!i.flags?.includes(JOINED_TO_SHARED_MAP))
4337
4446
  return {};
@@ -5863,6 +5972,7 @@ export {
5863
5972
  insideRepo,
5864
5973
  dirSource,
5865
5974
  correctionFor,
5975
+ outsidePairingFor,
5866
5976
  correctedFact,
5867
5977
  applyCorrections,
5868
5978
  frameworkFacts,
@@ -6,18 +6,18 @@ var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
6
  import {
7
7
  isCritic
8
8
  } from "./chunk-4Q3NN7VF.js";
9
- import {
10
- lensRunOf
11
- } from "./chunk-VEJYZEPC.js";
12
9
  import {
13
10
  CONTEXT_TOOLS
14
- } from "./chunk-YXUIUOQZ.js";
11
+ } from "./chunk-5WERBKLE.js";
12
+ import {
13
+ lensRunOf
14
+ } from "./chunk-K332XW7K.js";
15
15
  import {
16
16
  HandoffRuntime,
17
17
  TOOL_LIMITS,
18
18
  modelEnvOf,
19
19
  stepClassOf
20
- } from "./chunk-QNMLLYTN.js";
20
+ } from "./chunk-QHJJMZLX.js";
21
21
  import {
22
22
  changesRelOf,
23
23
  listQuestions,
@@ -26,7 +26,7 @@ import {
26
26
  runsDirOf,
27
27
  runsRelOf,
28
28
  stepModelsOf
29
- } from "./chunk-YK6CSODO.js";
29
+ } from "./chunk-PAINMSID.js";
30
30
 
31
31
  // packages/cli/dist/handoff-flag.js
32
32
  import { readdir, readFile } from "node:fs/promises";
@@ -173,6 +173,8 @@ async function printJson(root, argv, args, s, io) {
173
173
  runId: run.runId,
174
174
  // ADR 0115: one of the critic's AI lenses, reviewing what the step wrote.
175
175
  ...lens ? { lens } : {},
176
+ // ADR 0185: a batch asks these lenses together, each in its own section of one answer.
177
+ ...run.parts?.length ? { lenses: run.parts.map((p) => p.name) } : {},
176
178
  stepClass,
177
179
  ...orgModel ? { orgModel } : {},
178
180
  root,