@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,150 @@
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
+ SEED_MARK,
8
+ loadEstate,
9
+ openspecRootOf,
10
+ readExistingSpecs,
11
+ seedChangeId,
12
+ seedCollisionWords,
13
+ seedCollisions,
14
+ seedSpec,
15
+ writeSpecFiles
16
+ } from "./chunk-BEPCKDCP.js";
17
+ import "./chunk-HWD4JPU7.js";
18
+ import "./chunk-5WERBKLE.js";
19
+ import "./chunk-K332XW7K.js";
20
+ import {
21
+ changeFolder
22
+ } from "./chunk-HSZMPH5T.js";
23
+ import {
24
+ createOpenSpec
25
+ } from "./chunk-D2WSW4GU.js";
26
+ import "./chunk-4KNOJC6J.js";
27
+ import "./chunk-4SLBCEPD.js";
28
+ import "./chunk-64AADMTW.js";
29
+ import "./chunk-JYMIB5XY.js";
30
+ import "./chunk-CPK7QSBG.js";
31
+ import "./chunk-YO2PKTXT.js";
32
+ import "./chunk-TWQRPM76.js";
33
+ import "./chunk-XOL3GFW2.js";
34
+ import "./chunk-QHJJMZLX.js";
35
+ import "./chunk-7AB6OWTV.js";
36
+ import "./chunk-PAINMSID.js";
37
+ import {
38
+ writeFileAtomic
39
+ } from "./chunk-ODMBPDDV.js";
40
+ import "./chunk-TV45EUGM.js";
41
+
42
+ // packages/cli/dist/spec-seed-commands.js
43
+ import { existsSync } from "node:fs";
44
+ import { readFile } from "node:fs/promises";
45
+ import { join } from "node:path";
46
+ var NO_OPENSPEC = "This metarepo isn't set up with OpenSpec (no openspec/config.yaml). Set it up first: atticus openspec setup";
47
+ async function specSeed(root, repo, o, io) {
48
+ const osRoot = openspecRootOf(root);
49
+ if (!osRoot) {
50
+ io.err(NO_OPENSPEC);
51
+ return 2;
52
+ }
53
+ const estate = await loadEstate(root, []);
54
+ const flows = estate.flows.filter((f) => f.repo === repo).map((f) => f.flow);
55
+ if (!flows.length) {
56
+ io.err(`${repo} has no verified flows in specs/${repo}/. Read it first: atticus map ${repo}, then atticus verify ${repo} --write`);
57
+ return 2;
58
+ }
59
+ const os = createOpenSpec({ root: osRoot });
60
+ const existing = await readExistingSpecs(os);
61
+ const multiRepo = new Set(estate.flows.map((f) => f.repo)).size > 1;
62
+ const seed = seedSpec(repo, flows, { existing, multiRepo });
63
+ if (!seed.deltas.length) {
64
+ if (o.json)
65
+ io.out(JSON.stringify({ change: null, repo, skipped: seed.skipped }, null, 2));
66
+ else
67
+ io.out(`Nothing to seed: openspec/specs already has every flow of ${repo} that the code runs today. Each change keeps it current when it is archived.`);
68
+ return 0;
69
+ }
70
+ const dir = changeFolder(root, seed.change);
71
+ if (!existsSync(join(dir, ".openspec.yaml")))
72
+ await os.newChange(seed.change, { description: `Starting spec for ${repo}` });
73
+ const written = await writeSpecFiles(dir, seed.files, SEED_MARK);
74
+ const had = await readFile(join(dir, "proposal.md"), "utf8").catch(() => void 0);
75
+ const proposal = had === void 0 || had.startsWith(SEED_MARK);
76
+ if (proposal)
77
+ await writeFileAtomic(join(dir, "proposal.md"), seed.proposal);
78
+ const kept = Object.keys(seed.files).filter((f) => !written.includes(f));
79
+ const collisions = (await seedCollisions(root)).filter((c) => c.seed === seed.change);
80
+ if (o.json) {
81
+ io.out(JSON.stringify({
82
+ change: seed.change,
83
+ repo,
84
+ capabilities: seed.deltas.map((d) => ({ capability: d.capability, flow: d.flow })),
85
+ written,
86
+ kept,
87
+ skipped: seed.skipped,
88
+ collisions
89
+ }, null, 2));
90
+ return 0;
91
+ }
92
+ for (const c of collisions)
93
+ io.err(`Warning: ${seedCollisionWords(c)}`);
94
+ const rel = `openspec/changes/${seed.change}`;
95
+ io.out(`Wrote ${rel}/: a starting spec for ${repo}, ${seed.deltas.length} ${seed.deltas.length === 1 ? "capability" : "capabilities"}, one per verified flow, each scenario citing its lines.`);
96
+ for (const f of kept)
97
+ io.out(`Kept ${rel}/${f} as a person left it (no mark on its first line).`);
98
+ if (!proposal)
99
+ io.out(`Kept ${rel}/proposal.md as a person left it.`);
100
+ for (const s of seed.skipped)
101
+ io.out(`Not seeded: ${s.flow} (${s.why}).`);
102
+ io.out(`Read each spec under ${rel}/specs/ against the code it cites, then accept it: atticus spec accept ${repo}`);
103
+ return 0;
104
+ }
105
+ async function specAccept(root, repo, o, io) {
106
+ if (!o.by) {
107
+ io.err("Say who is accepting: set your Git user (git config user.name), or pass --by <you>.");
108
+ return 2;
109
+ }
110
+ const osRoot = openspecRootOf(root);
111
+ if (!osRoot) {
112
+ io.err(NO_OPENSPEC);
113
+ return 2;
114
+ }
115
+ const change = seedChangeId(repo);
116
+ const dir = changeFolder(root, change);
117
+ if (!existsSync(join(dir, ".openspec.yaml"))) {
118
+ io.err(`${repo} has no starting spec waiting. Write one first: atticus spec seed ${repo}`);
119
+ return 2;
120
+ }
121
+ const os = createOpenSpec({ root: osRoot });
122
+ const v = await os.validate({ item: change, type: "change", strict: true });
123
+ const issues = (v.items[0]?.issues ?? []).filter((i) => i.level !== "INFO");
124
+ if (issues.length || v.items[0]?.valid === false) {
125
+ io.err(`${change} doesn't pass openspec validate --strict; fix its specs and accept again:`);
126
+ for (const i of issues)
127
+ io.err(` ${i.path}: ${i.message}`);
128
+ return 1;
129
+ }
130
+ const date = (o.now ?? /* @__PURE__ */ new Date()).toISOString().slice(0, 10);
131
+ const p = join(dir, "proposal.md");
132
+ const text = await readFile(p, "utf8").catch(() => void 0);
133
+ if (text !== void 0 && !/\nAccepted by .+ on \d{4}-\d{2}-\d{2}\.\n?$/.test(text))
134
+ await writeFileAtomic(p, `${text.trimEnd()}
135
+
136
+ Accepted by ${o.by} on ${date}.
137
+ `);
138
+ try {
139
+ await os.archive(change);
140
+ } catch (e) {
141
+ io.err(`openspec archive ${change} failed: ${e.message}`);
142
+ return 1;
143
+ }
144
+ io.out(`Accepted ${repo}'s starting spec: openspec/specs/ has its capabilities, and ${change} is archived. Commit the metarepo and open its pull request; the next change to ${repo} modifies these requirements.`);
145
+ return 0;
146
+ }
147
+ export {
148
+ specAccept,
149
+ specSeed
150
+ };
@@ -0,0 +1,40 @@
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
+ SHOWN,
8
+ factsRepos,
9
+ verifyAllCommand,
10
+ verifyCommand,
11
+ verifyInputsOf
12
+ } from "./chunk-LN77DXBM.js";
13
+ import "./chunk-L4CESDPB.js";
14
+ import "./chunk-U3NBK4EU.js";
15
+ import "./chunk-455SYIIE.js";
16
+ import "./chunk-GIFMBCTW.js";
17
+ import "./chunk-MD7KUEJ3.js";
18
+ import "./chunk-Q46QDDMF.js";
19
+ import "./chunk-TGVVUKTG.js";
20
+ import "./chunk-3AQ2R5NL.js";
21
+ import "./chunk-4SLBCEPD.js";
22
+ import "./chunk-64AADMTW.js";
23
+ import "./chunk-JYMIB5XY.js";
24
+ import "./chunk-CPK7QSBG.js";
25
+ import "./chunk-YO2PKTXT.js";
26
+ import "./chunk-TWQRPM76.js";
27
+ import "./chunk-API5TOUB.js";
28
+ import "./chunk-XOL3GFW2.js";
29
+ import "./chunk-QHJJMZLX.js";
30
+ import "./chunk-7AB6OWTV.js";
31
+ import "./chunk-PAINMSID.js";
32
+ import "./chunk-ODMBPDDV.js";
33
+ import "./chunk-TV45EUGM.js";
34
+ export {
35
+ SHOWN,
36
+ factsRepos,
37
+ verifyAllCommand,
38
+ verifyCommand,
39
+ verifyInputsOf
40
+ };
@@ -5,11 +5,11 @@ var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
5
5
  var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
6
  import {
7
7
  baseClonePath
8
- } from "./chunk-EFHQ3TWP.js";
8
+ } from "./chunk-XOL3GFW2.js";
9
9
  import {
10
10
  loadOrgPack,
11
11
  orgPackDirOf
12
- } from "./chunk-S2A7YC3Q.js";
12
+ } from "./chunk-PAINMSID.js";
13
13
 
14
14
  // packages/cli/dist/repo-for.js
15
15
  import { stat } from "node:fs/promises";
@@ -0,0 +1,48 @@
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
+
7
+ // packages/cli/dist/file-lock.js
8
+ import { appendFile, readFile } from "node:fs/promises";
9
+ import { resolve } from "node:path";
10
+ var chains = /* @__PURE__ */ new Map();
11
+ function withFileLock(path, work) {
12
+ const key = resolve(path);
13
+ const before = chains.get(key) ?? Promise.resolve();
14
+ const next = before.then(work, work);
15
+ const tail = next.catch(() => void 0);
16
+ chains.set(key, tail);
17
+ void tail.then(() => {
18
+ if (chains.get(key) === tail)
19
+ chains.delete(key);
20
+ });
21
+ return next;
22
+ }
23
+ function appendLines(file, lines) {
24
+ return withFileLock(file, async () => {
25
+ const now = await readFile(file, "utf8").catch(() => "");
26
+ const eol = /\r\n/.test(now) ? "\r\n" : "\n";
27
+ const lead = now && !now.endsWith("\n") ? eol : "";
28
+ await appendFile(file, lead + lines.map((l) => `${l}${eol}`).join(""), "utf8");
29
+ });
30
+ }
31
+ var safeMessage = (m) => m.replace(/[^A-Za-z0-9 _.,:/@{}()#+-]/g, "").replace(/\s+/g, " ").trim().slice(0, 200);
32
+ async function originOf(dir, git) {
33
+ const url = await git(["-C", dir, "remote", "get-url", "origin"]).then((r) => r.stdout.trim()).catch(() => "");
34
+ const clean = url.replace(/^([a-z][a-z0-9+.-]*:\/\/)[^/]*@/i, "$1").replace(/[?#].*$/, "");
35
+ if (/^(https?|ssh|git):\/\/[^/]/i.test(clean))
36
+ return clean;
37
+ if (/^[\w.-]+@[\w.-]+:[^\\]/.test(clean) && !/^[a-z]:[\\/]/i.test(clean))
38
+ return clean;
39
+ return nameOf(url ? url.replace(/^file:\/*/i, "/").replace(/[?#].*$/, "") : dir);
40
+ }
41
+ var nameOf = (p) => p.replace(/[\\/]+$/, "").split(/[\\/]/).pop() || p;
42
+
43
+ export {
44
+ withFileLock,
45
+ appendLines,
46
+ safeMessage,
47
+ originOf
48
+ };
@@ -0,0 +1,47 @@
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
+ mapRules,
8
+ plannedTopUp,
9
+ recordRulesNow,
10
+ recordTopUpVerified,
11
+ ruleSetsOfFiles,
12
+ rulesPrompt,
13
+ rulesRelOf,
14
+ topUpFiles,
15
+ topUpOf,
16
+ topUpSessions
17
+ } from "./chunk-U3NBK4EU.js";
18
+ import "./chunk-455SYIIE.js";
19
+ import "./chunk-GIFMBCTW.js";
20
+ import "./chunk-MD7KUEJ3.js";
21
+ import "./chunk-Q46QDDMF.js";
22
+ import "./chunk-TGVVUKTG.js";
23
+ import "./chunk-3AQ2R5NL.js";
24
+ import "./chunk-4SLBCEPD.js";
25
+ import "./chunk-64AADMTW.js";
26
+ import "./chunk-JYMIB5XY.js";
27
+ import "./chunk-CPK7QSBG.js";
28
+ import "./chunk-YO2PKTXT.js";
29
+ import "./chunk-TWQRPM76.js";
30
+ import "./chunk-XOL3GFW2.js";
31
+ import "./chunk-QHJJMZLX.js";
32
+ import "./chunk-7AB6OWTV.js";
33
+ import "./chunk-PAINMSID.js";
34
+ import "./chunk-ODMBPDDV.js";
35
+ import "./chunk-TV45EUGM.js";
36
+ export {
37
+ mapRules,
38
+ plannedTopUp,
39
+ recordRulesNow,
40
+ recordTopUpVerified,
41
+ ruleSetsOfFiles,
42
+ rulesPrompt,
43
+ rulesRelOf,
44
+ topUpFiles,
45
+ topUpOf,
46
+ topUpSessions
47
+ };
@@ -8,24 +8,24 @@ import {
8
8
  } from "./chunk-VOGCSYOI.js";
9
9
  import {
10
10
  readCatalog
11
- } from "./chunk-27NKUS3X.js";
11
+ } from "./chunk-4SLBCEPD.js";
12
12
  import {
13
13
  TriageError,
14
14
  buildTriage,
15
15
  classify,
16
16
  scanInputs
17
- } from "./chunk-23W7VWKR.js";
17
+ } from "./chunk-CPK7QSBG.js";
18
18
  import {
19
19
  readDrawio,
20
20
  reconcile
21
- } from "./chunk-7EKXJZ2Y.js";
21
+ } from "./chunk-YO2PKTXT.js";
22
22
  import {
23
23
  inputsDirOf,
24
24
  loadOrgPack,
25
25
  orgPackDirOf,
26
26
  recordPath,
27
27
  serializeRecord
28
- } from "./chunk-S2A7YC3Q.js";
28
+ } from "./chunk-PAINMSID.js";
29
29
 
30
30
  // packages/cli/dist/intake-commands.js
31
31
  import { createHash } from "node:crypto";
@@ -81,9 +81,9 @@ async function addToInbox(root, files) {
81
81
  const dot = name.lastIndexOf(".");
82
82
  const [stem, ext] = dot > 0 ? [name.slice(0, dot), name.slice(dot)] : [name, ""];
83
83
  await mkdir(inbox, { recursive: true });
84
- const taken = new Set(await readdir(inbox));
84
+ const taken = new Set((await readdir(inbox)).map((n) => n.toLowerCase()));
85
85
  let target = name;
86
- for (let n = 2; taken.has(target); n++)
86
+ for (let n = 2; taken.has(target.toLowerCase()); n++)
87
87
  target = `${stem}-${n}${ext}`;
88
88
  await writeFile(join(inbox, target), bytes);
89
89
  const path = `${INBOX}/${target}`;
@@ -152,7 +152,8 @@ var STATUS_WORDS = [
152
152
  ["unresolved", (n) => `${n} waiting for a system name`],
153
153
  ["duplicate", (n) => `${n} duplicate${n === 1 ? "" : "s"}`],
154
154
  ["superseded", (n) => `${n} older version${n === 1 ? "" : "s"}`],
155
- ["failed", (n) => `${n} failed`]
155
+ ["failed", (n) => `${n} failed`],
156
+ ["unreadable", (n) => `${n} unreadable`]
156
157
  ];
157
158
  function chains(docs) {
158
159
  const byId = new Map(docs.filter((d) => d.id).map((d) => [d.id, d]));
@@ -186,7 +187,7 @@ async function intakeList(root, io, o) {
186
187
  for (const l of table(["PATH", "TYPE", "STATUS", "SYSTEMS"], documents.map((d) => [
187
188
  d.path,
188
189
  d.classification,
189
- d.duplicateOf ? `duplicate of ${d.duplicateOf}` : d.status,
190
+ d.duplicateOf ? `duplicate of ${d.duplicateOf}` : d.status === "unreadable" && d.reason ? `unreadable: ${d.reason}` : d.status,
190
191
  d.systems.join(", ")
191
192
  ])))
192
193
  io.out(l);
@@ -201,6 +202,9 @@ async function intakeList(root, io, o) {
201
202
  return n > 0 ? words(n) : "";
202
203
  }).filter(Boolean);
203
204
  io.out(`${documents.length} file${documents.length === 1 ? "" : "s"}: ${counts.join(", ")}.`);
205
+ for (const d of documents)
206
+ for (const n of d.notes ?? [])
207
+ io.out(` ~ ${d.path}: ${n}`);
204
208
  for (const p of problems)
205
209
  io.out(` ! ${p.path}: ${p.message}`);
206
210
  return problems.length > 0 ? 1 : 0;
@@ -5,22 +5,22 @@ 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-FITWGOJ2.js";
9
- import "./chunk-27NKUS3X.js";
8
+ } from "./chunk-5QUOPNLN.js";
9
+ import "./chunk-4SLBCEPD.js";
10
10
  import {
11
11
  domainProfile
12
- } from "./chunk-L24C55VN.js";
13
- import "./chunk-PAMPPUR6.js";
14
- import "./chunk-23W7VWKR.js";
15
- import "./chunk-7EKXJZ2Y.js";
16
- import "./chunk-MC3H7736.js";
17
- import "./chunk-EFHQ3TWP.js";
18
- import "./chunk-GQ4N4WKF.js";
19
- import "./chunk-CNUKCS2T.js";
12
+ } from "./chunk-64AADMTW.js";
13
+ import "./chunk-JYMIB5XY.js";
14
+ import "./chunk-CPK7QSBG.js";
15
+ import "./chunk-YO2PKTXT.js";
16
+ import "./chunk-TWQRPM76.js";
17
+ import "./chunk-XOL3GFW2.js";
18
+ import "./chunk-QHJJMZLX.js";
19
+ import "./chunk-7AB6OWTV.js";
20
20
  import {
21
21
  orgPackDirOf
22
- } from "./chunk-S2A7YC3Q.js";
23
- import "./chunk-D3PO4DOZ.js";
22
+ } from "./chunk-PAINMSID.js";
23
+ import "./chunk-ODMBPDDV.js";
24
24
  import "./chunk-TV45EUGM.js";
25
25
 
26
26
  // packages/cli/dist/domain-commands.js
@@ -5,41 +5,41 @@ var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
5
5
  var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
6
  import {
7
7
  matchedRepoType
8
- } from "./chunk-GLUX4EEP.js";
8
+ } from "./chunk-K6JB6XTX.js";
9
9
  import {
10
10
  loadCatalog
11
- } from "./chunk-FITWGOJ2.js";
11
+ } from "./chunk-5QUOPNLN.js";
12
12
  import {
13
13
  repoFor
14
- } from "./chunk-O3WI5KWW.js";
14
+ } from "./chunk-TGVVUKTG.js";
15
15
  import {
16
16
  draftSpec
17
- } from "./chunk-KEM4SDDP.js";
18
- import "./chunk-ZVM6AKKM.js";
17
+ } from "./chunk-P2VBXX7N.js";
18
+ import "./chunk-ZOSD4FXV.js";
19
19
  import {
20
20
  stepJudges
21
- } from "./chunk-CKSITVS4.js";
22
- import "./chunk-L6SGQIR3.js";
23
- import "./chunk-3HI6Z55Y.js";
24
- import "./chunk-XY3P7JW7.js";
25
- import "./chunk-4AK7IBVP.js";
26
- import "./chunk-7JUKDRSZ.js";
21
+ } from "./chunk-BEPCKDCP.js";
22
+ import "./chunk-HWD4JPU7.js";
23
+ import "./chunk-5WERBKLE.js";
24
+ import "./chunk-K332XW7K.js";
25
+ import "./chunk-HSZMPH5T.js";
26
+ import "./chunk-D2WSW4GU.js";
27
+ import "./chunk-4KNOJC6J.js";
27
28
  import {
28
29
  checkSpec,
29
30
  citedFileHashes,
30
31
  staleFlows
31
- } from "./chunk-27NKUS3X.js";
32
- import "./chunk-L24C55VN.js";
33
- import "./chunk-PAMPPUR6.js";
34
- import "./chunk-23W7VWKR.js";
35
- import "./chunk-7EKXJZ2Y.js";
36
- import "./chunk-MC3H7736.js";
37
- import "./chunk-T6AIP7H5.js";
38
- import "./chunk-EFHQ3TWP.js";
32
+ } from "./chunk-4SLBCEPD.js";
33
+ import "./chunk-64AADMTW.js";
34
+ import "./chunk-JYMIB5XY.js";
35
+ import "./chunk-CPK7QSBG.js";
36
+ import "./chunk-YO2PKTXT.js";
37
+ import "./chunk-TWQRPM76.js";
38
+ import "./chunk-XOL3GFW2.js";
39
+ import "./chunk-QHJJMZLX.js";
39
40
  import {
40
41
  fsRepo
41
- } from "./chunk-GQ4N4WKF.js";
42
- import "./chunk-CNUKCS2T.js";
42
+ } from "./chunk-7AB6OWTV.js";
43
43
  import {
44
44
  askedByStep,
45
45
  listQuestions,
@@ -58,8 +58,8 @@ import {
58
58
  writeFlow,
59
59
  writeSpecFindings,
60
60
  writeSpecHeader
61
- } from "./chunk-S2A7YC3Q.js";
62
- import "./chunk-D3PO4DOZ.js";
61
+ } from "./chunk-PAINMSID.js";
62
+ import "./chunk-ODMBPDDV.js";
63
63
  import "./chunk-TV45EUGM.js";
64
64
 
65
65
  // packages/cli/dist/spec-commands.js
@@ -3,10 +3,13 @@ import { fileURLToPath as __atticusFileURLToPath } from "node:url";
3
3
  var require = __atticusCreateRequire(import.meta.url);
4
4
  var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
5
5
  var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
+ import {
7
+ nearRepos
8
+ } from "./chunk-OMPENNWY.js";
6
9
  import {
7
10
  gitUser,
8
11
  loadRepos
9
- } from "./chunk-EFHQ3TWP.js";
12
+ } from "./chunk-XOL3GFW2.js";
10
13
  import {
11
14
  ManifestEditError,
12
15
  REPO_DESCRIPTION_MAX,
@@ -18,13 +21,15 @@ import {
18
21
  manifestFiles,
19
22
  parseFacts,
20
23
  setManifestDescription
21
- } from "./chunk-S2A7YC3Q.js";
22
- import "./chunk-D3PO4DOZ.js";
24
+ } from "./chunk-PAINMSID.js";
25
+ import {
26
+ FileChangedError
27
+ } from "./chunk-ODMBPDDV.js";
23
28
  import "./chunk-TV45EUGM.js";
24
29
 
25
30
  // packages/cli/dist/repo-commands.js
26
31
  import { readFile, stat } from "node:fs/promises";
27
- import { basename, join, resolve } from "node:path";
32
+ import { basename, dirname, join, resolve } from "node:path";
28
33
  import { createInterface } from "node:readline/promises";
29
34
  import { stdin, stdout } from "node:process";
30
35
  var askOnTerminal = async (prompt) => {
@@ -70,8 +75,8 @@ async function typeOf(url, description, frameworks = []) {
70
75
  if (!await stat(dir).then((s) => s.isDirectory(), () => false))
71
76
  return void 0;
72
77
  const [{ detectRepoType }, { fsRepo }] = await Promise.all([
73
- import("./chunk-R77KLRB3.js"),
74
- import("./chunk-HFQCFSJR.js")
78
+ import("./chunk-RA33EYS4.js"),
79
+ import("./chunk-5PV7S2ZP.js")
75
80
  ]);
76
81
  const d = await detectRepoType(fsRepo(basename(dir), dir, "0".repeat(40)), {
77
82
  ...description ? { description } : {},
@@ -79,6 +84,22 @@ async function typeOf(url, description, frameworks = []) {
79
84
  });
80
85
  return d.type === "unknown" ? void 0 : { type: d.type, signals: d.signals, confidence: d.confidence };
81
86
  }
87
+ async function cloneAt(url) {
88
+ if (/^[a-z][a-z0-9+.-]*:\/\//i.test(url) || /^[^/\\]+@/.test(url))
89
+ return void 0;
90
+ const dir = resolve(url);
91
+ if (!await stat(join(dir, ".git")).catch(() => void 0))
92
+ return void 0;
93
+ const { execFile } = await import("node:child_process");
94
+ const git = (...args) => new Promise((done) => execFile("git", args, { cwd: dir }, (e, out) => done(e ? "" : String(out).trim())));
95
+ const origin = await git("config", "--get", "remote.origin.url");
96
+ const branch = await git("rev-parse", "--abbrev-ref", "HEAD");
97
+ return {
98
+ dir,
99
+ ...origin ? { origin } : {},
100
+ ...branch && branch !== "HEAD" ? { branch } : {}
101
+ };
102
+ }
82
103
  async function whoFor(root, d) {
83
104
  if (d.by)
84
105
  return d.by;
@@ -93,6 +114,7 @@ async function repoAdd(root, url, o, io, deps = {}) {
93
114
  io.err('Usage: atticus repo add <clone URL or path> [--id id] [--type repo type] [--owner team] [--description "what it is"].');
94
115
  return 2;
95
116
  }
117
+ const clone = await cloneAt(url.trim());
96
118
  const id = o.id?.trim() || idFromUrl(url.trim());
97
119
  if (!RecordId.safeParse(id).success) {
98
120
  io.err(`${id} isn't a repo id: ids are lowercase slugs (a-z, 0-9, '.', '_' and '-'). Give one with --id.`);
@@ -113,18 +135,23 @@ async function repoAdd(root, url, o, io, deps = {}) {
113
135
  const by = await whoFor(root, deps);
114
136
  const description = text ? written(text, by, deps.now ?? /* @__PURE__ */ new Date()) : void 0;
115
137
  const detected = o.type?.trim() ? void 0 : await typeOf(url.trim(), text, await declaredFrameworks(root, id));
138
+ const listed = await loadRepos(root).catch(() => []);
139
+ const near = nearRepos({ id, url: clone?.origin ?? url.trim() }, listed);
116
140
  try {
117
141
  const file = await addManifestRepo(root, platform, {
118
142
  id,
119
- url: url.trim(),
143
+ url: clone?.origin ?? url.trim(),
144
+ ...clone?.branch ? { defaultBranch: clone.branch } : {},
120
145
  type: o.type?.trim() || detected?.type || "unknown",
121
146
  owner: o.owner?.trim() || "unassigned",
122
147
  ...o.system?.trim() ? { system: o.system.trim() } : {},
123
148
  ...o.component?.trim() ? { component: o.component.trim() } : {},
124
149
  ...description ? { description } : {}
125
150
  });
151
+ for (const n of near)
152
+ io.err(`Warning: ${id} looks like ${n.id}, already listed (${n.why}). If they are one repo, remove this entry from ${file.rel}, or keep one id: atticus repo rename <old> <new>.`);
126
153
  if (o.json) {
127
- io.out(JSON.stringify({ repo: id, platform, file: file.rel, description }, null, 2));
154
+ io.out(JSON.stringify({ repo: id, platform, file: file.rel, description, ...near.length ? { near } : {} }, null, 2));
128
155
  return 0;
129
156
  }
130
157
  io.out(`Added ${id} to ${file.rel}: commit it in a pull request.`);
@@ -134,7 +161,7 @@ async function repoAdd(root, url, o, io, deps = {}) {
134
161
  io.out(`What it is: ${description.text}`);
135
162
  else
136
163
  io.out(`${id} has no description yet${asked ? "" : " (--description, or atticus repo describe)"}: atticus repo describe ${id} --description "what it is". Until then its reading prompts, the join's questions and the views have only its id to go on.`);
137
- io.out(`Next: atticus workspace sync, then read it: /atticus-map ${id}.`);
164
+ io.out(clone?.origin ? `From your clone: ${clone.origin}, branch ${clone.branch ?? "main"}. Next: atticus workspace sync --from "${dirname(clone.dir)}" --repos ${id} (copied from it, no network), then read it: /atticus-map ${id}.` : `Next: atticus workspace sync, then read it: /atticus-map ${id}.`);
138
165
  return 0;
139
166
  } catch (e) {
140
167
  if (e instanceof ManifestEditError) {
@@ -272,7 +299,13 @@ async function keepDraftedDescription(root, repo, draft, now) {
272
299
  });
273
300
  if (!d.success)
274
301
  return { kept: false, why: d.error.issues[0]?.message ?? "the draft wasn't one line" };
275
- await setManifestDescription(root, repo, d.data);
302
+ try {
303
+ await setManifestDescription(root, repo, d.data);
304
+ } catch (e) {
305
+ if (e instanceof FileChangedError)
306
+ return { kept: false, why: e.message };
307
+ throw e;
308
+ }
276
309
  return { kept: true };
277
310
  }
278
311
  export {