@maycombhq/atticus 2.0.0-beta.2 → 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 (273) hide show
  1. package/dist/bin.js +8 -4
  2. package/dist/chunk-265LWMOA.js +91 -0
  3. package/dist/chunk-26WBY34Y.js +37 -0
  4. package/dist/{chunk-UBBC2XSG.js → chunk-26Z7OGQW.js} +518 -93
  5. package/dist/chunk-2D7PWSOK.js +172 -0
  6. package/dist/{chunk-JCZIKA4C.js → chunk-2HH3UCZM.js} +4 -4
  7. package/dist/{chunk-GDLULHTC.js → chunk-2HTEMYTB.js} +12 -26
  8. package/dist/chunk-2UCRFXFZ.js +130 -0
  9. package/dist/{chunk-MVZVGYXH.js → chunk-2V2ZPQQU.js} +81 -13
  10. package/dist/{chunk-BOHJZTEQ.js → chunk-36RY7ZXM.js} +130 -71
  11. package/dist/{chunk-I3E7CX4H.js → chunk-37WE3LS2.js} +3 -3
  12. package/dist/{chunk-IPKHE5D6.js → chunk-3AQ2R5NL.js} +1520 -871
  13. package/dist/chunk-3G6S7LAA.js +43 -0
  14. package/dist/chunk-3J5I7ZOU.js +58 -0
  15. package/dist/{chunk-65NYPGRC.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-3C7EYRFZ.js → chunk-3UTYPHN3.js} +1 -1
  19. package/dist/{chunk-G2B4ZQGH.js → chunk-3WON4G3M.js} +2 -2
  20. package/dist/{chunk-S3QNRWYR.js → chunk-42EPP7OB.js} +12 -12
  21. package/dist/chunk-455SYIIE.js +113 -0
  22. package/dist/{chunk-YISXLPHN.js → chunk-4B6BT75O.js} +166 -23
  23. package/dist/{chunk-C6EKFH7J.js → chunk-4CLK2RJO.js} +7 -7
  24. package/dist/chunk-4CYTJ5TZ.js +38 -0
  25. package/dist/{chunk-EYWIDJFU.js → chunk-4D62IZII.js} +5 -5
  26. package/dist/chunk-4FOAYLI4.js +328 -0
  27. package/dist/{chunk-7JUKDRSZ.js → chunk-4KNOJC6J.js} +294 -215
  28. package/dist/{chunk-YMZ3TNYB.js → chunk-4PYC2UGC.js} +2 -2
  29. package/dist/{chunk-27NKUS3X.js → chunk-4SLBCEPD.js} +2104 -726
  30. package/dist/chunk-4TKVU2I2.js +122 -0
  31. package/dist/{chunk-RUVFXE2L.js → chunk-4WXRPQDE.js} +448 -47
  32. package/dist/{chunk-7ZUIMTOU.js → chunk-5CMPVC3N.js} +24 -24
  33. package/dist/chunk-5G7ILBUG.js +66 -0
  34. package/dist/{chunk-HFQCFSJR.js → chunk-5PV7S2ZP.js} +3 -3
  35. package/dist/{chunk-FITWGOJ2.js → chunk-5QUOPNLN.js} +4 -4
  36. package/dist/{chunk-Z6LF7HQN.js → chunk-5TDRBOAV.js} +5 -5
  37. package/dist/{chunk-T6AIP7H5.js → chunk-5WERBKLE.js} +199 -63
  38. package/dist/{chunk-XPCM366L.js → chunk-62DLJSLV.js} +8 -8
  39. package/dist/{chunk-L24C55VN.js → chunk-64AADMTW.js} +99 -25
  40. package/dist/{chunk-K65BJIMT.js → chunk-67BP7HXL.js} +17 -17
  41. package/dist/chunk-6DQYZU2W.js +379 -0
  42. package/dist/{chunk-EDS2L2LD.js → chunk-6EXDI5GI.js} +52 -26
  43. package/dist/chunk-6FNAKCET.js +38 -0
  44. package/dist/{chunk-6IU67AEK.js → chunk-75ASLHBT.js} +21 -15
  45. package/dist/{chunk-A3GY6SOA.js → chunk-75ZOZFGH.js} +18 -18
  46. package/dist/{chunk-MGYZM27B.js → chunk-77O633L5.js} +49 -23
  47. package/dist/{chunk-GQ4N4WKF.js → chunk-7AB6OWTV.js} +3 -3
  48. package/dist/{chunk-M766ZJ6W.js → chunk-7CZHUZBL.js} +25 -25
  49. package/dist/{chunk-A7UPUQFY.js → chunk-7FHNFCHK.js} +643 -124
  50. package/dist/chunk-7FUIVIBG.js +415 -0
  51. package/dist/{chunk-6QSERWXH.js → chunk-7QPCGTPS.js} +21 -21
  52. package/dist/{chunk-LR3R6Z2A.js → chunk-A2G72UI4.js} +7 -7
  53. package/dist/{chunk-I4JRCD6M.js → chunk-AE4P57KK.js} +23 -17
  54. package/dist/{chunk-AVJDSJ2F.js → chunk-AHW3RY3X.js} +7 -7
  55. package/dist/chunk-AM6FP6JW.js +43 -0
  56. package/dist/{chunk-CSZ4C5N6.js → chunk-AOCWFA7T.js} +93 -10
  57. package/dist/{chunk-EPTBZ3GP.js → chunk-API5TOUB.js} +1 -1
  58. package/dist/{chunk-652QWTLZ.js → chunk-AZDITBCT.js} +3 -3
  59. package/dist/{chunk-DPUYDDQG.js → chunk-BA2HUMDN.js} +25 -3
  60. package/dist/chunk-BA3U7ALS.js +99 -0
  61. package/dist/{chunk-HVUPKCGJ.js → chunk-BC6KKZ67.js} +5 -5
  62. package/dist/{chunk-CKSITVS4.js → chunk-BEPCKDCP.js} +2554 -722
  63. package/dist/{chunk-3ALD2W2A.js → chunk-BPPU3PW7.js} +4 -4
  64. package/dist/{chunk-QRAOANID.js → chunk-BVWWPBKD.js} +21 -21
  65. package/dist/{chunk-ZDPAS56H.js → chunk-BXBCMGIQ.js} +7 -1
  66. package/dist/chunk-BXZ4PKIT.js +233 -0
  67. package/dist/chunk-C7CEK3KW.js +247 -0
  68. package/dist/chunk-CFH3QH26.js +29 -0
  69. package/dist/chunk-CG6CULP6.js +170 -0
  70. package/dist/chunk-CLD4RVTA.js +45 -0
  71. package/dist/{chunk-DKJA76CJ.js → chunk-CNPY4NTZ.js} +13 -13
  72. package/dist/chunk-CNU5Q2D5.js +575 -0
  73. package/dist/{chunk-T2UYZSCQ.js → chunk-COYN3UAN.js} +126 -23
  74. package/dist/{chunk-23W7VWKR.js → chunk-CPK7QSBG.js} +1360 -113
  75. package/dist/{chunk-4AK7IBVP.js → chunk-D2WSW4GU.js} +1 -1
  76. package/dist/{chunk-ABWHYWNI.js → chunk-D57MFJPP.js} +3 -3
  77. package/dist/chunk-D5KV5PSK.js +45 -0
  78. package/dist/chunk-D5MASS4I.js +48 -0
  79. package/dist/{chunk-7EOBHUMC.js → chunk-DCWN3HFV.js} +2 -2
  80. package/dist/{chunk-QSXK2RGH.js → chunk-DDJPM5YX.js} +2 -2
  81. package/dist/chunk-DN4A2Q2O.js +57 -0
  82. package/dist/{chunk-IHMLFRVV.js → chunk-DUPZPDCJ.js} +58 -16
  83. package/dist/{chunk-PRPPGYZG.js → chunk-E2VXBSIR.js} +4 -4
  84. package/dist/chunk-E57AOFYN.js +32 -0
  85. package/dist/{chunk-UGLN7QHV.js → chunk-ECLXZWAG.js} +12 -12
  86. package/dist/{chunk-5WG5YP4T.js → chunk-EDZ45WIR.js} +14 -14
  87. package/dist/chunk-EFCQSMXB.js +37 -0
  88. package/dist/{chunk-2ANOROX3.js → chunk-EZIN5E5B.js} +8 -8
  89. package/dist/{chunk-BWZ77RQT.js → chunk-F6H2RJ3N.js} +1 -1
  90. package/dist/{chunk-OLQJTJJU.js → chunk-FAJDKNSD.js} +7 -3
  91. package/dist/chunk-FGAGWYZB.js +47 -0
  92. package/dist/{chunk-4WBVUHXN.js → chunk-FLVZFTLQ.js} +18 -18
  93. package/dist/chunk-FQ6WH6PB.js +140 -0
  94. package/dist/{chunk-T6XQL73F.js → chunk-FRHD22WM.js} +61 -23
  95. package/dist/{chunk-XAKWMCXI.js → chunk-FVMPFCDS.js} +4 -4
  96. package/dist/{chunk-B2WLAWNJ.js → chunk-FY3QIRTL.js} +3 -3
  97. package/dist/{chunk-CPA6HPVR.js → chunk-FYBF5MB2.js} +15 -11
  98. package/dist/{chunk-V2YTAIQO.js → chunk-G5YJBNDZ.js} +21 -6
  99. package/dist/chunk-G6IQYM25.js +339 -0
  100. package/dist/chunk-G6X4YL4D.js +161 -0
  101. package/dist/{chunk-SJRGMG6A.js → chunk-GC2VK3JT.js} +25 -25
  102. package/dist/{chunk-SP2I63OO.js → chunk-GCS3FZOB.js} +77 -3
  103. package/dist/{chunk-6TACQN3N.js → chunk-GDZB57IU.js} +5 -5
  104. package/dist/chunk-GIFMBCTW.js +221 -0
  105. package/dist/{chunk-YY6ZQQBP.js → chunk-GK4PYVEC.js} +18 -8
  106. package/dist/{chunk-TDD55CJH.js → chunk-GNWAOVFQ.js} +6 -5
  107. package/dist/chunk-GS76RXQE.js +226 -0
  108. package/dist/{chunk-YYQN46FY.js → chunk-GSGIZ2OO.js} +23 -23
  109. package/dist/chunk-GUYL7RMK.js +60 -0
  110. package/dist/chunk-GX74YWR7.js +321 -0
  111. package/dist/chunk-HE3HRDNZ.js +122 -0
  112. package/dist/{chunk-AIOQPLA5.js → chunk-HGHRSF3E.js} +30 -12
  113. package/dist/{chunk-2RMYG36Q.js → chunk-HK3VOHIE.js} +198 -336
  114. package/dist/{chunk-QZSX3F7C.js → chunk-HS4BGB4G.js} +24 -22
  115. package/dist/{chunk-XY3P7JW7.js → chunk-HSZMPH5T.js} +834 -149
  116. package/dist/{chunk-L6SGQIR3.js → chunk-HWD4JPU7.js} +4 -2
  117. package/dist/{chunk-PCVDV3UZ.js → chunk-HXXP2NTE.js} +6 -6
  118. package/dist/{chunk-AA6YULYB.js → chunk-I2A3Z5AK.js} +7 -7
  119. package/dist/{chunk-N7IXEHK3.js → chunk-ICHDSWEY.js} +7 -7
  120. package/dist/chunk-IFFRGC3N.js +31 -0
  121. package/dist/{chunk-4BN53TG3.js → chunk-IFHDV6KQ.js} +31 -23
  122. package/dist/chunk-J2O4LFVI.js +80 -0
  123. package/dist/chunk-J5AAZ6OJ.js +161 -0
  124. package/dist/{chunk-ZMFPW66A.js → chunk-JAABT3DA.js} +3 -3
  125. package/dist/chunk-JITJP64K.js +34 -0
  126. package/dist/chunk-JKIGL3XQ.js +162 -0
  127. package/dist/chunk-JRVNXLZP.js +615 -0
  128. package/dist/chunk-JRXHON4E.js +41 -0
  129. package/dist/{chunk-DHPACDG7.js → chunk-JS6WMC3J.js} +8 -8
  130. package/dist/chunk-JU4QNJSR.js +62 -0
  131. package/dist/{chunk-PAMPPUR6.js → chunk-JYMIB5XY.js} +1697 -172
  132. package/dist/{chunk-RRTKKSLQ.js → chunk-JYTIHTIK.js} +8 -6
  133. package/dist/{chunk-3HI6Z55Y.js → chunk-K332XW7K.js} +324 -39
  134. package/dist/{chunk-GLUX4EEP.js → chunk-K6JB6XTX.js} +9 -9
  135. package/dist/chunk-KDAHXQIE.js +294 -0
  136. package/dist/chunk-KYZMRSPS.js +93 -0
  137. package/dist/chunk-L4CESDPB.js +22 -0
  138. package/dist/{chunk-NXFPS2LR.js → chunk-LEBR5NHW.js} +14 -14
  139. package/dist/chunk-LIJJCBQI.js +223 -0
  140. package/dist/{chunk-DE76JROX.js → chunk-LIRVU3HW.js} +16 -16
  141. package/dist/{chunk-JMSCMUCA.js → chunk-LN77DXBM.js} +145 -21
  142. package/dist/{chunk-JIITQXFB.js → chunk-LNWEWYCM.js} +2969 -788
  143. package/dist/{chunk-TANFV3MZ.js → chunk-LO3BLMVG.js} +3 -3
  144. package/dist/chunk-LPV6T362.js +250 -0
  145. package/dist/{chunk-2VHF7OXM.js → chunk-LQH4P45K.js} +1 -1
  146. package/dist/chunk-LU4MQVAL.js +41 -0
  147. package/dist/chunk-LWDNKE4X.js +273 -0
  148. package/dist/chunk-M4H2UG4R.js +218 -0
  149. package/dist/{chunk-6BVONWJ7.js → chunk-M6D2U3YM.js} +3 -3
  150. package/dist/chunk-MD7KUEJ3.js +514 -0
  151. package/dist/{chunk-66YVAGGM.js → chunk-MMZUN7ZO.js} +20 -20
  152. package/dist/chunk-MZGRDONP.js +916 -0
  153. package/dist/chunk-N3RUGTGV.js +39 -0
  154. package/dist/{chunk-JGZCG5VM.js → chunk-NCB6656Z.js} +7 -7
  155. package/dist/{chunk-4NDAAFQT.js → chunk-NRQ65LTQ.js} +7 -5
  156. package/dist/{chunk-UNM6ZOKP.js → chunk-NTAVOWYD.js} +145 -18
  157. package/dist/{chunk-3USYZGRF.js → chunk-NYOABJNK.js} +36 -27
  158. package/dist/{chunk-WVPJSRRJ.js → chunk-O4IKAIZ2.js} +24 -20
  159. package/dist/{chunk-D3PO4DOZ.js → chunk-ODMBPDDV.js} +51 -14
  160. package/dist/chunk-OKUB6RJA.js +533 -0
  161. package/dist/chunk-OMPENNWY.js +39 -0
  162. package/dist/chunk-OPQZISG3.js +25 -0
  163. package/dist/{chunk-5GGOLAKC.js → chunk-OV57AHCG.js} +26 -26
  164. package/dist/chunk-OZJ3JLYI.js +58 -0
  165. package/dist/{chunk-KEM4SDDP.js → chunk-P2VBXX7N.js} +11 -10
  166. package/dist/{chunk-S2A7YC3Q.js → chunk-PAINMSID.js} +10150 -1720
  167. package/dist/chunk-PKJAV25S.js +43 -0
  168. package/dist/{chunk-EBEW3XXQ.js → chunk-PNQLCRSS.js} +4 -4
  169. package/dist/{chunk-WY6PP6AA.js → chunk-PQH56YF6.js} +37 -5
  170. package/dist/chunk-PRTBPXYA.js +50 -0
  171. package/dist/{chunk-YEDDOYSC.js → chunk-PRW3HXM3.js} +2 -2
  172. package/dist/chunk-PRZ7KMWL.js +42 -0
  173. package/dist/{chunk-6M5NK3K3.js → chunk-PTQ3ZALZ.js} +42 -4
  174. package/dist/{chunk-5GDRCDQB.js → chunk-PUEWDYGP.js} +2 -2
  175. package/dist/chunk-Q26LDIUV.js +236 -0
  176. package/dist/{chunk-CR3MTH32.js → chunk-Q46QDDMF.js} +77 -7
  177. package/dist/chunk-QBNWF5ZU.js +19 -0
  178. package/dist/chunk-QE527XRY.js +342 -0
  179. package/dist/{chunk-CNUKCS2T.js → chunk-QHJJMZLX.js} +1518 -54
  180. package/dist/chunk-QJCJOMW3.js +425 -0
  181. package/dist/{chunk-VYDBJ73M.js → chunk-QKMRFNMA.js} +15 -15
  182. package/dist/chunk-QOOEYDNJ.js +317 -0
  183. package/dist/chunk-QSIDVFB7.js +45 -0
  184. package/dist/{chunk-R77KLRB3.js → chunk-RA33EYS4.js} +19 -18
  185. package/dist/{chunk-DFBCSHVT.js → chunk-RALY3E5U.js} +4 -4
  186. package/dist/{chunk-ZCJDOK2S.js → chunk-S2RY3BOD.js} +35 -21
  187. package/dist/chunk-S5LSDXV4.js +40 -0
  188. package/dist/chunk-SB5GRUFM.js +54 -0
  189. package/dist/chunk-SH27FYPF.js +150 -0
  190. package/dist/chunk-T74WQQGS.js +40 -0
  191. package/dist/{chunk-O3WI5KWW.js → chunk-TGVVUKTG.js} +2 -2
  192. package/dist/chunk-THN26IEF.js +48 -0
  193. package/dist/chunk-TJH2EUAZ.js +47 -0
  194. package/dist/{chunk-ZNCEKR4J.js → chunk-TQ4TG57V.js} +12 -8
  195. package/dist/{chunk-7FBGJFEE.js → chunk-TQTRWENN.js} +12 -12
  196. package/dist/{chunk-TYAID7B7.js → chunk-TSM6T6GQ.js} +23 -23
  197. package/dist/{chunk-DPZHZQKE.js → chunk-TW3KOSQK.js} +43 -10
  198. package/dist/{chunk-MC3H7736.js → chunk-TWQRPM76.js} +37 -4
  199. package/dist/chunk-TYD6I4CZ.js +109 -0
  200. package/dist/chunk-U3NBK4EU.js +420 -0
  201. package/dist/{chunk-6JCPI55B.js → chunk-UDXWIPCB.js} +47 -7
  202. package/dist/{chunk-MMOSZPWJ.js → chunk-UEVZZZU2.js} +4 -4
  203. package/dist/{chunk-JBTK5OP2.js → chunk-UF4UHCIG.js} +2 -2
  204. package/dist/{chunk-6JUBZBMW.js → chunk-UFE36WJH.js} +4 -4
  205. package/dist/{chunk-ONLS5QA5.js → chunk-URIKUID7.js} +12 -12
  206. package/dist/chunk-UYLBRRFK.js +1106 -0
  207. package/dist/chunk-UZACEG2C.js +515 -0
  208. package/dist/{chunk-7SW2QWLU.js → chunk-VAMHOHUU.js} +12 -12
  209. package/dist/{chunk-RZPYKDWS.js → chunk-VUVGX5L2.js} +1 -1
  210. package/dist/{chunk-Q4D5X7QB.js → chunk-VYOCPTUB.js} +44 -24
  211. package/dist/{chunk-CAQZUNOH.js → chunk-WAZEXEJH.js} +567 -3
  212. package/dist/chunk-WCEF7H6L.js +221 -0
  213. package/dist/{chunk-2DIQQJCB.js → chunk-WEOMJHPV.js} +12 -12
  214. package/dist/{chunk-FHH4I4ZV.js → chunk-WFU77T3A.js} +12 -6
  215. package/dist/chunk-WIWTJMMR.js +292 -0
  216. package/dist/{chunk-2BFCZ3RK.js → chunk-WNTIOBOG.js} +18 -18
  217. package/dist/{chunk-7WD63HU2.js → chunk-X2CUXTWU.js} +6 -6
  218. package/dist/chunk-X7EMBM5X.js +34 -0
  219. package/dist/chunk-XEQCQO66.js +33 -0
  220. package/dist/{chunk-F7HYOUFF.js → chunk-XG4WJHLQ.js} +20 -4
  221. package/dist/{chunk-EFHQ3TWP.js → chunk-XOL3GFW2.js} +171 -31
  222. package/dist/{chunk-NE2W3OO7.js → chunk-XQ3YZ4QW.js} +22 -22
  223. package/dist/{chunk-CEXSU4S6.js → chunk-Y6K3CJBU.js} +723 -85
  224. package/dist/{chunk-4RS5KZQD.js → chunk-YAH5IQAL.js} +5 -5
  225. package/dist/{chunk-64EQYWCA.js → chunk-YBOVNMHC.js} +51 -14
  226. package/dist/chunk-YF5DZCPN.js +1212 -0
  227. package/dist/chunk-YIGBJNH4.js +37 -0
  228. package/dist/{chunk-BKVWTZ6A.js → chunk-YJ3TBOTK.js} +25 -25
  229. package/dist/{chunk-Q5AMFEWD.js → chunk-YKTE2RU3.js} +2 -2
  230. package/dist/{chunk-7EKXJZ2Y.js → chunk-YO2PKTXT.js} +296 -37
  231. package/dist/{chunk-6J5OKA4Y.js → chunk-YTTNTQOX.js} +15 -15
  232. package/dist/{chunk-OT2O76OS.js → chunk-YWAKDNMH.js} +183 -33
  233. package/dist/{chunk-R6XF6UR3.js → chunk-YZDZOEV4.js} +4 -4
  234. package/dist/chunk-Z3QFH7YG.js +17 -0
  235. package/dist/{chunk-W5BVQF44.js → chunk-Z6VLC5X4.js} +17 -17
  236. package/dist/{chunk-HLJAXMM4.js → chunk-ZFQMMU5Y.js} +2 -2
  237. package/dist/{chunk-W3BQAZ3Q.js → chunk-ZKYRDV7A.js} +12 -12
  238. package/dist/{chunk-ZMAINWBW.js → chunk-ZLS6PU2O.js} +3 -3
  239. package/dist/{chunk-ZVM6AKKM.js → chunk-ZOSD4FXV.js} +3 -3
  240. package/dist/chunk-ZPDDEVQX.js +47 -0
  241. package/dist/{chunk-TXLH6WHQ.js → chunk-ZQLRCA2V.js} +11 -11
  242. package/dist/{chunk-HITVBIJS.js → chunk-ZX7235KR.js} +128 -54
  243. package/dist/{chunk-GT4I4ZWM.js → chunk-ZZFHLRQW.js} +18 -16
  244. package/dist/files.json +636 -364
  245. package/dist/packages/naysayer/constitution/constitution.yaml +19 -0
  246. package/dist/packages/sdk/npm/index.js +5614 -2343
  247. package/dist/packages/ui/dist/assets/{elk-api-tma0MCuh.js → elk-api-CowTnhEJ.js} +2 -2
  248. package/dist/packages/ui/dist/assets/index-Dw20IRhQ.css +1 -0
  249. package/dist/packages/ui/dist/assets/index-z2wv0d5d.js +47 -0
  250. package/dist/packages/ui/dist/index.html +2 -2
  251. package/package.json +4 -4
  252. package/dist/chunk-2BF2EYJV.js +0 -174
  253. package/dist/chunk-42EVSKME.js +0 -37
  254. package/dist/chunk-4BKGMUIK.js +0 -53
  255. package/dist/chunk-5KLGBXG5.js +0 -48
  256. package/dist/chunk-6BNC6EQ4.js +0 -41
  257. package/dist/chunk-6D2CQ5II.js +0 -41
  258. package/dist/chunk-7AVHLZGD.js +0 -45
  259. package/dist/chunk-D46WUV3T.js +0 -33
  260. package/dist/chunk-E36QOJMD.js +0 -47
  261. package/dist/chunk-FQXYPF7E.js +0 -147
  262. package/dist/chunk-GBRFVT63.js +0 -45
  263. package/dist/chunk-ICY36XCH.js +0 -34
  264. package/dist/chunk-J4K3KVLD.js +0 -131
  265. package/dist/chunk-JZU3H6UQ.js +0 -54
  266. package/dist/chunk-NN2ZQEB4.js +0 -38
  267. package/dist/chunk-PCOCACY3.js +0 -385
  268. package/dist/chunk-RTEYOSJY.js +0 -29
  269. package/dist/chunk-RVH5SUW5.js +0 -69
  270. package/dist/chunk-VN3DP4LQ.js +0 -43
  271. package/dist/chunk-XPTOBS2D.js +0 -48
  272. package/dist/packages/ui/dist/assets/index-B54fm9FQ.js +0 -29
  273. package/dist/packages/ui/dist/assets/index-DD_hufQz.css +0 -1
@@ -0,0 +1,43 @@
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
+ effectiveRules,
8
+ exampleOf,
9
+ kindGlob,
10
+ orgRulesLacking,
11
+ readingRulesText,
12
+ ruleFromPairing,
13
+ ruleId,
14
+ ruleIds,
15
+ ruleMatches,
16
+ rulesDirOf,
17
+ rulesLackingAll
18
+ } from "./chunk-GIFMBCTW.js";
19
+ import "./chunk-4SLBCEPD.js";
20
+ import "./chunk-64AADMTW.js";
21
+ import "./chunk-JYMIB5XY.js";
22
+ import "./chunk-CPK7QSBG.js";
23
+ import "./chunk-YO2PKTXT.js";
24
+ import "./chunk-TWQRPM76.js";
25
+ import "./chunk-XOL3GFW2.js";
26
+ import "./chunk-QHJJMZLX.js";
27
+ import "./chunk-7AB6OWTV.js";
28
+ import "./chunk-PAINMSID.js";
29
+ import "./chunk-ODMBPDDV.js";
30
+ import "./chunk-TV45EUGM.js";
31
+ export {
32
+ effectiveRules,
33
+ exampleOf,
34
+ kindGlob,
35
+ orgRulesLacking,
36
+ readingRulesText,
37
+ ruleFromPairing,
38
+ ruleId,
39
+ ruleIds,
40
+ ruleMatches,
41
+ rulesDirOf,
42
+ rulesLackingAll
43
+ };
@@ -0,0 +1,58 @@
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
+ excludesOf
8
+ } from "./chunk-Q46QDDMF.js";
9
+ import {
10
+ dirSource,
11
+ houseImportsUntaught,
12
+ readRulesOf
13
+ } from "./chunk-JYMIB5XY.js";
14
+ import {
15
+ globToRegExp
16
+ } from "./chunk-7AB6OWTV.js";
17
+ import {
18
+ conventionsOf,
19
+ loadOrgPack,
20
+ orgPackDirOf
21
+ } from "./chunk-PAINMSID.js";
22
+
23
+ // packages/cli/dist/house-imports.js
24
+ async function houseUntaughtOf(root, repo, o) {
25
+ const op = o.op ?? await loadOrgPack(orgPackDirOf(root)).catch(() => void 0);
26
+ const conventions = conventionsOf(op);
27
+ if (!conventions.housePrefixes.length)
28
+ return [];
29
+ const exclude = o.exclude ?? await excludesOf(root, repo);
30
+ return houseImportsUntaught(o.source ?? dirSource(o.dir), {
31
+ prefixes: conventions.housePrefixes,
32
+ taught: (op?.frameworks ?? []).flatMap((m) => m.packages),
33
+ rules: readRulesOf(conventions),
34
+ exclude: exclude.map(globToRegExp)
35
+ });
36
+ }
37
+ function houseUntaughtLines(repo, found) {
38
+ if (!found.length)
39
+ return [];
40
+ const one = found.length === 1;
41
+ return [
42
+ `Teach first: ${repo} imports ${one ? "a house package" : `${found.length} house packages`} no framework taught to Atticus covers (the org pack's housePrefixes). Read without ${one ? "it" : "them"}, ${one ? "its" : "their"} annotations and wrapper calls are ordinary code to the reader; teach ${one ? "it" : "each"} before the first read, then run this again:`,
43
+ ...found.map((h) => ` - ${h.package} (${h.files} ${h.files === 1 ? "file" : "files"}, first at ${h.first}): ${h.command}`)
44
+ ];
45
+ }
46
+ function houseUntaughtWords(repo, found) {
47
+ if (!found.length)
48
+ return "";
49
+ const shown = found.slice(0, 3).map((h) => h.package);
50
+ const more = found.length > shown.length ? ` and ${found.length - shown.length} more` : "";
51
+ return ` Teach first: ${repo} imports ${shown.join(", ")}${more}, ${found.length === 1 ? "a house package" : "house packages"} no taught framework covers; run ${found[0].command}${found.length > 1 ? " (one per package; atticus map " + repo + " --estimate lists them)" : ""} before reading it.`;
52
+ }
53
+
54
+ export {
55
+ houseUntaughtOf,
56
+ houseUntaughtLines,
57
+ houseUntaughtWords
58
+ };
@@ -5,7 +5,7 @@ var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
5
5
  var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
6
  import {
7
7
  require_dist
8
- } from "./chunk-S2A7YC3Q.js";
8
+ } from "./chunk-PAINMSID.js";
9
9
  import {
10
10
  __toESM
11
11
  } from "./chunk-TV45EUGM.js";
@@ -0,0 +1,191 @@
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
+ makeRunId
8
+ } from "./chunk-QHJJMZLX.js";
9
+ import {
10
+ runsDirOf,
11
+ runsRelOf
12
+ } from "./chunk-PAINMSID.js";
13
+ import {
14
+ writeFileAtomic
15
+ } from "./chunk-ODMBPDDV.js";
16
+
17
+ // packages/cli/dist/decide-handoff.js
18
+ import { createHash } from "node:crypto";
19
+ import { mkdir, readdir, readFile, stat } from "node:fs/promises";
20
+ import { join } from "node:path";
21
+ var DECIDE_AGENTS = {
22
+ questions: "decide-propose",
23
+ links: "decide-match"
24
+ };
25
+ var PROPOSE_CHANGE = "questions-propose";
26
+ var matchChangeOf = (from) => `match-${from}`;
27
+ var sha256 = (text) => createHash("sha256").update(text).digest("hex");
28
+ var runDir = (root, change, runId) => join(runsDirOf(root), change, runId);
29
+ async function startDecideRun(root, o) {
30
+ const now = o.now ?? /* @__PURE__ */ new Date();
31
+ let runId = makeRunId(now);
32
+ while (await stat(runDir(root, o.change, runId)).catch(() => void 0))
33
+ runId = makeRunId(now);
34
+ const dir = runDir(root, o.change, runId);
35
+ await mkdir(dir, { recursive: true });
36
+ await writeFileAtomic(join(dir, "prompt.md"), o.prompt.endsWith("\n") ? o.prompt : `${o.prompt}
37
+ `);
38
+ const run = {
39
+ runId,
40
+ request: { change: o.change, agent: DECIDE_AGENTS[o.kind], outputPath: o.outputPath },
41
+ runtime: "hand-off",
42
+ state: "waiting",
43
+ attempt: 1,
44
+ startedAt: now.toISOString(),
45
+ errors: [],
46
+ decide: o.decide
47
+ };
48
+ await saveRun(root, run);
49
+ return { ...run, promptRel: `${runsRelOf(root)}/${o.change}/${runId}/prompt.md` };
50
+ }
51
+ async function saveRun(root, run) {
52
+ await writeFileAtomic(join(runDir(root, run.request.change, run.runId), "run.json"), JSON.stringify(run, null, 2) + "\n");
53
+ }
54
+ var isDecide = (x) => {
55
+ const r = x;
56
+ return r?.runtime === "hand-off" && !!r.decide && (r.request?.agent === DECIDE_AGENTS.questions || r.request?.agent === DECIDE_AGENTS.links);
57
+ };
58
+ async function readRun(file) {
59
+ const text = await readFile(file, "utf8").catch(() => void 0);
60
+ if (!text)
61
+ return void 0;
62
+ try {
63
+ const r = JSON.parse(text);
64
+ return isDecide(r) ? r : void 0;
65
+ } catch {
66
+ return void 0;
67
+ }
68
+ }
69
+ async function findDecideRun(root, runId) {
70
+ if (!/^run-[0-9a-z-]+$/.test(runId))
71
+ return void 0;
72
+ for (const change of await readdir(runsDirOf(root)).catch(() => [])) {
73
+ const r = await readRun(join(runsDirOf(root), change, runId, "run.json"));
74
+ if (r)
75
+ return r;
76
+ }
77
+ return void 0;
78
+ }
79
+ var open = (r) => r.state === "waiting" || r.state === "prepared" || r.state === "failed";
80
+ async function openDecideRun(root, change, pick = () => true) {
81
+ const ids = (await readdir(join(runsDirOf(root), change)).catch(() => [])).filter((n) => n.startsWith("run-")).sort().reverse();
82
+ for (const id of ids) {
83
+ const r = await readRun(join(runsDirOf(root), change, id, "run.json"));
84
+ if (r && open(r) && pick(r))
85
+ return r;
86
+ }
87
+ return void 0;
88
+ }
89
+ var openMatchRun = (root, from, to) => openDecideRun(root, matchChangeOf(from), (r) => r.decide.kind === "links" && r.decide.from === from && (r.decide.to.repo ?? "") === (to.repo ?? "") && (r.decide.to.system ?? "") === (to.system ?? ""));
90
+ async function finishDecideRun(root, run, o) {
91
+ const done = {
92
+ ...run,
93
+ state: o.state,
94
+ finishedAt: (o.now ?? /* @__PURE__ */ new Date()).toISOString(),
95
+ errors: o.errors ?? []
96
+ };
97
+ await saveRun(root, done);
98
+ return done;
99
+ }
100
+ async function decideRunDone(root, runId, io, o = {}) {
101
+ const run = await findDecideRun(root, runId);
102
+ if (!run) {
103
+ io.err(`There is no hand-off run ${runId} to decide from.`);
104
+ return 2;
105
+ }
106
+ if (!open(run)) {
107
+ io.err(`Run ${runId} is already ${run.state}.`);
108
+ return 2;
109
+ }
110
+ if (run.decide.kind === "questions")
111
+ return proposeDone(root, run, io, o);
112
+ const { candidatesOf } = await import("./chunk-PRZ7KMWL.js");
113
+ const { view, facts } = await candidatesOf(root, run.decide.from, run.decide.to);
114
+ const { matchDone, matchLines } = await import("./chunk-JU4QNJSR.js");
115
+ const m = await matchDone(root, { view, facts, run, ...o.now ? { now: o.now } : {} });
116
+ if (m.state !== "done") {
117
+ io.err(m.error ?? `The answer isn't written yet: ${m.answer ?? "the answer file"}.`);
118
+ return 1;
119
+ }
120
+ for (const l of matchLines(m, run.decide.from, view.toName, run.decide.to))
121
+ io.out(l);
122
+ return 0;
123
+ }
124
+ async function proposedSince(root, before) {
125
+ const { proposalsSnapshot } = await import("./chunk-LU4MQVAL.js");
126
+ const after = await proposalsSnapshot(root);
127
+ return new Set([...after].filter(([id, text]) => before[id] !== sha256(text)).map(([id]) => id));
128
+ }
129
+ async function proposeDone(root, run, io, o) {
130
+ if (run.decide.kind !== "questions")
131
+ return 2;
132
+ const { inAcpSession } = await import("./chunk-LU4MQVAL.js");
133
+ if (inAcpSession()) {
134
+ io.err(`Run ${run.runId} decides as the AI only on a person's Done: press Done in the app, or run atticus handoff done ${run.runId} outside the Copilot session.`);
135
+ return 1;
136
+ }
137
+ const ids = await proposedSince(root, run.decide.before);
138
+ if (!ids.size) {
139
+ const why = "No proposal was written or changed since this hand-off: run /atticus-propose in a new Copilot Chat (agent mode) or Claude Code session, then Done again.";
140
+ await finishDecideRun(root, run, {
141
+ state: "failed",
142
+ errors: [why],
143
+ ...o.now ? { now: o.now } : {}
144
+ });
145
+ io.err(why);
146
+ return 1;
147
+ }
148
+ const { decideAnswers } = await import("./chunk-LU4MQVAL.js");
149
+ const d = await decideAnswers(root, {
150
+ run: run.runId,
151
+ runtime: "hand-off",
152
+ ids,
153
+ ...o.now ? { now: o.now } : {}
154
+ });
155
+ await finishDecideRun(root, run, { state: "validated", ...o.now ? { now: o.now } : {} });
156
+ io.out(`Read ${ids.size} proposal${ids.size === 1 ? "" : "s"} from hand-off run ${run.runId}.`);
157
+ for (const l of decidedAnswerLines(d, run.runId))
158
+ io.out(l);
159
+ return 0;
160
+ }
161
+ function decidedAnswerLines(d, runId) {
162
+ const out = [];
163
+ if (!d)
164
+ out.push("runtime.yaml's decide.questions is propose: each proposal waits on its question for a person to accept or answer otherwise.");
165
+ if (d?.paused)
166
+ out.push(`Deciding is paused: ${d.paused}`);
167
+ if (d?.applied.length) {
168
+ out.push(`Detected by AI: ${d.applied.length} answer${d.applied.length === 1 ? "" : "s"} applied in batch ${d.batch} (by AI, run ${runId}):`);
169
+ for (const a of d.applied)
170
+ out.push(` ${a.id}: option ${a.option} (${a.bar})`);
171
+ out.push(`Correct one with atticus questions correct <id> --option <n> | --none; undo them all with atticus questions undo ${d.batch}.`);
172
+ }
173
+ for (const k of d?.kept ?? [])
174
+ out.push(` kept as a proposal: ${k.id} (${k.why})`);
175
+ return out;
176
+ }
177
+
178
+ export {
179
+ DECIDE_AGENTS,
180
+ PROPOSE_CHANGE,
181
+ matchChangeOf,
182
+ sha256,
183
+ startDecideRun,
184
+ findDecideRun,
185
+ openDecideRun,
186
+ openMatchRun,
187
+ finishDecideRun,
188
+ decideRunDone,
189
+ proposedSince,
190
+ decidedAnswerLines
191
+ };
@@ -0,0 +1,49 @@
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
+ AUDIT_WORDS,
8
+ answerAudit,
9
+ auditCommand,
10
+ auditLines,
11
+ defaultAuditSeed,
12
+ precisionOf,
13
+ prepareAudit,
14
+ tallyWords,
15
+ writeAudit
16
+ } from "./chunk-7FUIVIBG.js";
17
+ import "./chunk-LN77DXBM.js";
18
+ import "./chunk-L4CESDPB.js";
19
+ import "./chunk-U3NBK4EU.js";
20
+ import "./chunk-455SYIIE.js";
21
+ import "./chunk-GIFMBCTW.js";
22
+ import "./chunk-MD7KUEJ3.js";
23
+ import "./chunk-Q46QDDMF.js";
24
+ import "./chunk-TGVVUKTG.js";
25
+ import "./chunk-3AQ2R5NL.js";
26
+ import "./chunk-4SLBCEPD.js";
27
+ import "./chunk-64AADMTW.js";
28
+ import "./chunk-JYMIB5XY.js";
29
+ import "./chunk-CPK7QSBG.js";
30
+ import "./chunk-YO2PKTXT.js";
31
+ import "./chunk-TWQRPM76.js";
32
+ import "./chunk-API5TOUB.js";
33
+ import "./chunk-XOL3GFW2.js";
34
+ import "./chunk-QHJJMZLX.js";
35
+ import "./chunk-7AB6OWTV.js";
36
+ import "./chunk-PAINMSID.js";
37
+ import "./chunk-ODMBPDDV.js";
38
+ import "./chunk-TV45EUGM.js";
39
+ export {
40
+ AUDIT_WORDS,
41
+ answerAudit,
42
+ auditCommand,
43
+ auditLines,
44
+ defaultAuditSeed,
45
+ precisionOf,
46
+ prepareAudit,
47
+ tallyWords,
48
+ writeAudit
49
+ };
@@ -10,7 +10,7 @@ function draftCheckTool(root, request) {
10
10
  if (!request.selfCheck || !/^(feature|architecture|stories|small)-answer\.yaml$/.test(request.outputPath))
11
11
  return void 0;
12
12
  let box;
13
- const planner = () => box ??= import("./chunk-UNM6ZOKP.js").then((p) => p.draftCheckBox(root, request));
13
+ const planner = () => box ??= import("./chunk-NTAVOWYD.js").then((p) => p.draftCheckBox(root, request));
14
14
  return {
15
15
  definitions: [
16
16
  {
@@ -8,11 +8,11 @@ import {
8
8
  changesDirOf,
9
9
  orgPackDirOf,
10
10
  require_dist
11
- } from "./chunk-S2A7YC3Q.js";
11
+ } from "./chunk-PAINMSID.js";
12
12
  import {
13
13
  ensureLocalIgnore,
14
14
  redactText
15
- } from "./chunk-D3PO4DOZ.js";
15
+ } from "./chunk-ODMBPDDV.js";
16
16
  import {
17
17
  __toESM
18
18
  } from "./chunk-TV45EUGM.js";
@@ -6,18 +6,18 @@ var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
6
  import {
7
7
  aliasCommand,
8
8
  reconcileCommand
9
- } from "./chunk-R6XF6UR3.js";
10
- import "./chunk-27NKUS3X.js";
11
- import "./chunk-L24C55VN.js";
12
- import "./chunk-PAMPPUR6.js";
13
- import "./chunk-23W7VWKR.js";
14
- import "./chunk-7EKXJZ2Y.js";
15
- import "./chunk-MC3H7736.js";
16
- import "./chunk-EFHQ3TWP.js";
17
- import "./chunk-GQ4N4WKF.js";
18
- import "./chunk-CNUKCS2T.js";
19
- import "./chunk-S2A7YC3Q.js";
20
- import "./chunk-D3PO4DOZ.js";
9
+ } from "./chunk-YZDZOEV4.js";
10
+ import "./chunk-4SLBCEPD.js";
11
+ import "./chunk-64AADMTW.js";
12
+ import "./chunk-JYMIB5XY.js";
13
+ import "./chunk-CPK7QSBG.js";
14
+ import "./chunk-YO2PKTXT.js";
15
+ import "./chunk-TWQRPM76.js";
16
+ import "./chunk-XOL3GFW2.js";
17
+ import "./chunk-QHJJMZLX.js";
18
+ import "./chunk-7AB6OWTV.js";
19
+ import "./chunk-PAINMSID.js";
20
+ import "./chunk-ODMBPDDV.js";
21
21
  import "./chunk-TV45EUGM.js";
22
22
  export {
23
23
  aliasCommand,
@@ -0,0 +1,113 @@
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
+ NOT_REACHED_WHY,
8
+ isEntryPointFile,
9
+ planBatches,
10
+ reachableModels,
11
+ readingRank
12
+ } from "./chunk-JYMIB5XY.js";
13
+ import {
14
+ estimateTokens,
15
+ neutralise,
16
+ wrapData
17
+ } from "./chunk-QHJJMZLX.js";
18
+
19
+ // packages/cli/dist/map-reach.js
20
+ var CLIENT_ONLY_WHY = "reached only from an outbound client; --models reachable reads them";
21
+ var ENTRIES_WHY = "model classes the repo's own entry points don't reach (ADR 0170): left out of the read; those only an outbound client reaches are listed under clientOnly (atticus map <repo> --models reachable reads them), the rest no entry point, call or field fact reaches (--models all reads them)";
22
+ function readPathsOf(source, exclude, conventions) {
23
+ return planBatches(source, {
24
+ room: Number.MAX_SAFE_INTEGER,
25
+ exclude,
26
+ ...conventions ? { conventions } : {}
27
+ }).batches.flat().map((x) => x.path);
28
+ }
29
+ function reachPlanOf(o) {
30
+ const of = (from) => reachableModels({
31
+ paths: o.paths,
32
+ read: (p) => o.source.read(p),
33
+ ...o.facts?.length ? { facts: o.facts } : {},
34
+ ...from ? { from } : {}
35
+ });
36
+ const calls = of();
37
+ const entries = o.mode === "entries" ? of("entries") : void 0;
38
+ const reach = entries && entries.roots.length ? entries : calls;
39
+ const leaveOut = o.mode === "all" ? [] : reach.notReached;
40
+ const byCall = new Set(calls.reached.map((r) => r.path));
41
+ const clientOnly = reach === entries ? leaveOut.filter((p) => byCall.has(p)) : [];
42
+ const tokens = leaveOut.reduce((n, p) => n + estimateTokens(o.source.read(p) ?? ""), 0);
43
+ return {
44
+ mode: o.mode,
45
+ reach,
46
+ first: [...reach.roots, ...reach.reached.map((r) => r.path)],
47
+ leaveOut,
48
+ clientOnly,
49
+ ...leaveOut.length ? {
50
+ notReached: {
51
+ why: clientOnly.length ? ENTRIES_WHY : NOT_REACHED_WHY,
52
+ files: [...leaveOut],
53
+ tokens,
54
+ ...clientOnly.length ? { clientOnly: { why: CLIENT_ONLY_WHY, files: [...clientOnly] } } : {}
55
+ }
56
+ } : {}
57
+ };
58
+ }
59
+ var reachHeadOf = (paths, r) => {
60
+ const roots = new Set(r.reach.roots);
61
+ return paths.filter((p) => readingRank(p) <= 1 || roots.has(p));
62
+ };
63
+ var reachedByCalls = (r) => r.reach.roots.some((p) => !isEntryPointFile(p));
64
+ function modelsLine(repo, r) {
65
+ const { reach } = r;
66
+ if (!reach.models)
67
+ return void 0;
68
+ if (!reach.rooted)
69
+ return `Model classes (ADR 0169): ${reach.models}; no entry point, client or fact to reach them from, so every one is read.`;
70
+ const fromEntries = r.mode === "entries" && (r.clientOnly.length > 0 || !reachedByCalls(r));
71
+ const reached = `${reach.reached.length} reached from the entry points${fromEntries ? "" : " and calls"}, read after them`;
72
+ if (r.mode === "all")
73
+ return `Model classes (ADR 0169): ${reach.models}, every one read (--models all); ${reached}.`;
74
+ const rest = r.leaveOut.length - r.clientOnly.length;
75
+ return `Model classes (ADR 0169): ${reach.models}; ${reached}${r.clientOnly.length ? `; ${r.clientOnly.length} reached only from an outbound client, left out: atticus map ${repo} --models reachable reads them` : ""}${rest ? `; ${rest} no entry or call reaches, left out: atticus map ${repo} --models all reads them` : ""}.`;
76
+ }
77
+ function grouped(paths) {
78
+ const by = /* @__PURE__ */ new Map();
79
+ for (const p of paths) {
80
+ const i = p.lastIndexOf("/");
81
+ const d = i < 0 ? "" : p.slice(0, i + 1);
82
+ by.set(d, [...by.get(d) ?? [], p.slice(i + 1)]);
83
+ }
84
+ return [...by.entries()].map(([d, fs]) => `- ${d || "./"}: ${fs.join(", ")}`);
85
+ }
86
+ function modelsData(repo, r, o = {}) {
87
+ if (!r.reach.models || !r.reach.rooted)
88
+ return void 0;
89
+ const reached = r.reach.reached.filter((x) => !o.only || o.only.has(x.path));
90
+ if (!reached.length && (o.only || !r.leaveOut.length))
91
+ return void 0;
92
+ const lines = [
93
+ ...reached.length ? ["Reached (read these, and write their fields):"] : [],
94
+ ...reached.map((x) => `- ${x.path} (${x.types.join(", ")}), from ${x.from}`),
95
+ ...r.clientOnly.length && !o.only ? [
96
+ "Reached only from an outbound client (left out; don't read them):",
97
+ ...grouped(r.clientOnly)
98
+ ] : [],
99
+ ...r.leaveOut.length > r.clientOnly.length && !o.only ? [
100
+ "Not reached by any entry point or call (left out; don't read them):",
101
+ ...grouped(r.leaveOut.filter((p) => !r.clientOnly.includes(p)))
102
+ ] : []
103
+ ];
104
+ return wrapData({ id: `${repo}.models`, kind: "models", origin: o.origin ?? "atticus/reachable" }, neutralise(lines.join("\n"), void 0, { mark: true }).text);
105
+ }
106
+
107
+ export {
108
+ readPathsOf,
109
+ reachPlanOf,
110
+ reachHeadOf,
111
+ modelsLine,
112
+ modelsData
113
+ };