autohand-cli 0.8.3 → 0.9.1

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 (546) hide show
  1. package/README.md +191 -74
  2. package/dist/{AgentRegistry-ODDXPAFR.js → AgentRegistry-GOV7FN2O.js} +2 -2
  3. package/dist/AgentRegistry-J2C6JBZ3.cjs +10 -0
  4. package/dist/{AutomodeManager-EOVHGRPP.js → AutomodeManager-APLLPEYJ.js} +31 -17
  5. package/dist/{AutomodeManager-6ATBE7Q5.cjs → AutomodeManager-MPSXT2RH.cjs} +38 -24
  6. package/dist/CommunitySkillsCache-22BB3J6H.cjs +8 -0
  7. package/dist/{CommunitySkillsCache-QLE57BN5.js → CommunitySkillsCache-ZACDPD4J.js} +2 -2
  8. package/dist/GitHubRegistryFetcher-CYJLF2XL.cjs +7 -0
  9. package/dist/{GitHubRegistryFetcher-NT5GFZXS.js → GitHubRegistryFetcher-J2BWPXJF.js} +1 -1
  10. package/dist/{HookManager-B2F35M27.js → HookManager-2S6AHOC3.js} +1 -1
  11. package/dist/{HookManager-PFAFE3FK.cjs → HookManager-TVEQI5ZU.cjs} +2 -2
  12. package/dist/{ImportWizard-OHRKBANZ.js → ImportWizard-AEBMAKXE.js} +33 -9
  13. package/dist/{ImportWizard-CJRZPPHL.cjs → ImportWizard-AF2XL6DS.cjs} +37 -13
  14. package/dist/LearnAdvisor-KKEQ5QCV.js +9 -0
  15. package/dist/LearnAdvisor-Q7RAYLPF.cjs +9 -0
  16. package/dist/{McpClientManager-NQ3EW2IF.cjs → McpClientManager-BNSKLHIN.cjs} +2 -2
  17. package/dist/{McpClientManager-VBIMGKXU.js → McpClientManager-SL35BR24.js} +1 -1
  18. package/dist/MemoryManager-PMNAEZMB.cjs +8 -0
  19. package/dist/{MemoryManager-2LAT7IHS.js → MemoryManager-QZRLTUB5.js} +2 -2
  20. package/dist/NVIDIAProvider-C3FWQOBZ.cjs +14 -0
  21. package/dist/NVIDIAProvider-SJPY3ONR.js +14 -0
  22. package/dist/{PermissionManager-7NQHRCHY.js → PermissionManager-MT7KBNNR.js} +3 -3
  23. package/dist/PermissionManager-URCNP5EC.cjs +11 -0
  24. package/dist/{ProjectProfiler-UG42W6WD.cjs → ProjectProfiler-CDAE7ECW.cjs} +1 -0
  25. package/dist/{ProjectProfiler-P4QJQWWA.js → ProjectProfiler-NZTJDRHD.js} +1 -0
  26. package/dist/ProviderFactory-56N3ECE4.cjs +12 -0
  27. package/dist/{ProviderFactory-2IYJ5OPW.js → ProviderFactory-RB4RVAF6.js} +4 -1
  28. package/dist/SessionManager-2IZGWASQ.cjs +10 -0
  29. package/dist/{SessionManager-4U4JFQ3C.js → SessionManager-554PHVPC.js} +2 -2
  30. package/dist/SkillsRegistry-GMRVONOQ.cjs +9 -0
  31. package/dist/{SkillsRegistry-RFEINXRT.js → SkillsRegistry-NHHMIUYJ.js} +2 -2
  32. package/dist/SubAgent-4GOR2FIJ.js +13 -0
  33. package/dist/SubAgent-ZJMDH4FI.cjs +13 -0
  34. package/dist/{SyncApiClient-B5RT2ECG.js → SyncApiClient-G3FM65IV.js} +1 -1
  35. package/dist/SyncApiClient-ODBDECOG.cjs +11 -0
  36. package/dist/about-3USFSGOH.js +15 -0
  37. package/dist/about-QR52U5DD.cjs +15 -0
  38. package/dist/acp-5Y2W6OZP.js +1556 -0
  39. package/dist/acp-GSYE75OB.cjs +1556 -0
  40. package/dist/actionExecutor-KHUU3Z3Q.cjs +28 -0
  41. package/dist/actionExecutor-PLQJZLZV.js +28 -0
  42. package/dist/add-dir-BTAD5OZS.cjs +11 -0
  43. package/dist/{add-dir-TUJM3PG5.js → add-dir-HCERJDBR.js} +3 -2
  44. package/dist/agent-B3EVT7NN.cjs +126 -0
  45. package/dist/agent-SATQ3WZ3.js +126 -0
  46. package/dist/agents/builtin/code-cleaner.md +1 -1
  47. package/dist/agents/builtin/docs-writer.md +1 -1
  48. package/dist/agents/builtin/researcher.md +2 -2
  49. package/dist/agents/builtin/reviewer.md +1 -1
  50. package/dist/agents/builtin/tester.md +1 -1
  51. package/dist/agents/builtin/todo-resolver.md +1 -1
  52. package/dist/agents-44CRJGM7.cjs +18 -0
  53. package/dist/agents-NN4ZAJ7R.js +18 -0
  54. package/dist/agents-new-6D6G4QS6.cjs +17 -0
  55. package/dist/agents-new-7GAQ25EK.js +17 -0
  56. package/dist/{autoSkill-LQEVQFIH.js → autoSkill-66PKCYTW.js} +2 -2
  57. package/dist/autoSkill-VQLGBELN.cjs +20 -0
  58. package/dist/automode-45DWV4TN.cjs +10 -0
  59. package/dist/{automode-R6P3VHLS.js → automode-BUF3VGXU.js} +2 -2
  60. package/dist/browserToolBridge-BXRQB4B4.cjs +58 -0
  61. package/dist/browserToolBridge-F5N66PE7.js +58 -0
  62. package/dist/chrome-Q2U73HZB.cjs +50 -0
  63. package/dist/chrome-Q54OALOK.cjs +21 -0
  64. package/dist/chrome-Y3T7EIHG.js +50 -0
  65. package/dist/chrome-ZNJ46OYW.js +21 -0
  66. package/dist/chromeSkill-53TH55PM.js +105 -0
  67. package/dist/chromeSkill-THW7N4IY.cjs +105 -0
  68. package/dist/{chunk-HXGBSJL5.cjs → chunk-22SCR3EV.cjs} +2 -2
  69. package/dist/chunk-26G7YGOW.js +367 -0
  70. package/dist/{chunk-3L53OA4E.cjs → chunk-2ESQR35E.cjs} +10 -10
  71. package/dist/chunk-2H5O745H.js +63 -0
  72. package/dist/{chunk-ULDM2SNB.js → chunk-2IW5YFJ4.js} +48 -47
  73. package/dist/{chunk-U55TWFJI.cjs → chunk-2VHB43IX.cjs} +24 -6
  74. package/dist/chunk-3EDDDZS2.cjs +5 -0
  75. package/dist/{chunk-X5VSP65C.cjs → chunk-3ICORF7M.cjs} +4 -4
  76. package/dist/chunk-3OF56EMA.cjs +197 -0
  77. package/dist/chunk-3UC6DMFI.cjs +93 -0
  78. package/dist/{chunk-64H4FRM3.cjs → chunk-3UHRCHKB.cjs} +32 -34
  79. package/dist/{chunk-JCLYQ2JC.js → chunk-3ZOOH44N.js} +12 -6
  80. package/dist/{chunk-TUD3Z3BD.js → chunk-44ZWOBTI.js} +136 -55
  81. package/dist/chunk-4567QNRB.js +444 -0
  82. package/dist/chunk-45CHNQM6.cjs +517 -0
  83. package/dist/chunk-46MTALKD.js +44 -0
  84. package/dist/{chunk-WHE2SWHU.js → chunk-4E7SHPNQ.js} +2 -2
  85. package/dist/chunk-4LMUDS2K.js +124 -0
  86. package/dist/{chunk-W7RYQJLO.cjs → chunk-4XFHP2SN.cjs} +46 -15
  87. package/dist/chunk-4XVLNOFA.js +360 -0
  88. package/dist/{chunk-GBHDROGL.js → chunk-575PXZX7.js} +16 -4
  89. package/dist/chunk-5A7ZL64N.js +139 -0
  90. package/dist/chunk-5GCQ5UMV.cjs +85 -0
  91. package/dist/chunk-5JTTM5SC.js +59 -0
  92. package/dist/{chunk-IETRBBMP.cjs → chunk-5K3CDSWZ.cjs} +108 -31
  93. package/dist/{chunk-KLWJIPU2.cjs → chunk-5SFV2NCY.cjs} +20 -16
  94. package/dist/chunk-5ZNYX4VH.cjs +71 -0
  95. package/dist/{chunk-A4IJHHV7.cjs → chunk-63ANVAOJ.cjs} +52 -11
  96. package/dist/{chunk-MYISNQH4.js → chunk-65LRPW5W.js} +1 -1
  97. package/dist/chunk-6AYJCDTA.js +360 -0
  98. package/dist/{chunk-X2MSVKDV.js → chunk-6HF6XSCC.js} +2 -2
  99. package/dist/{chunk-AEJH23FO.cjs → chunk-6JWCGQJU.cjs} +6 -6
  100. package/dist/chunk-6OECOAK5.cjs +360 -0
  101. package/dist/chunk-6R25D2H5.js +121 -0
  102. package/dist/chunk-7DJJGKM6.js +77 -0
  103. package/dist/{chunk-VG34MG2U.js → chunk-7IRQ7JEH.js} +9 -6
  104. package/dist/chunk-7MY4JHER.js +27 -0
  105. package/dist/chunk-7PJKTSRN.js +152 -0
  106. package/dist/{chunk-SKYG33B2.cjs → chunk-7PT646AL.cjs} +3 -3
  107. package/dist/chunk-7WAUCLLQ.js +229 -0
  108. package/dist/{chunk-U46VYPLR.cjs → chunk-7XTUL7ZD.cjs} +9 -9
  109. package/dist/chunk-AE2ILW25.cjs +152 -0
  110. package/dist/{chunk-T2M64VHA.cjs → chunk-AOKXYGBQ.cjs} +61 -41
  111. package/dist/chunk-AQ5PVHOC.cjs +113 -0
  112. package/dist/{chunk-N2BLVUPM.cjs → chunk-AZ47LKD5.cjs} +3 -3
  113. package/dist/chunk-B4HSNOIH.cjs +354 -0
  114. package/dist/chunk-B76FJKEJ.cjs +184 -0
  115. package/dist/chunk-BP37FVBM.js +85 -0
  116. package/dist/chunk-BQU3HAE7.js +21 -0
  117. package/dist/chunk-BYE7RQFZ.cjs +121 -0
  118. package/dist/chunk-C46B72VK.js +1034 -0
  119. package/dist/{chunk-HIVRCQS2.js → chunk-C5QIQQ37.js} +56 -25
  120. package/dist/chunk-CCIDL4SA.js +19931 -0
  121. package/dist/{chunk-XVUHNWMX.js → chunk-CECH6QQP.js} +17 -19
  122. package/dist/chunk-CFAWTLSC.js +13 -0
  123. package/dist/{chunk-ZYQMLKOK.cjs → chunk-CK4HAHVY.cjs} +212 -70
  124. package/dist/chunk-CO2AADYU.cjs +360 -0
  125. package/dist/chunk-CRTCZ4WL.cjs +19931 -0
  126. package/dist/chunk-CSTUTDTH.js +75 -0
  127. package/dist/{chunk-K2C56QGS.cjs → chunk-D546G7DA.cjs} +1650 -479
  128. package/dist/{chunk-CNBKZEX5.cjs → chunk-DA7NBAJK.cjs} +49 -17
  129. package/dist/{chunk-G4CAKI3V.js → chunk-DGBPWODD.js} +7 -2
  130. package/dist/chunk-DHUQZ53B.cjs +29 -0
  131. package/dist/{chunk-RGR6ME5J.cjs → chunk-DI57A4BX.cjs} +25 -28
  132. package/dist/{chunk-5K6NGAVM.js → chunk-DNSD7DVJ.js} +67 -52
  133. package/dist/{chunk-RDF37HKB.cjs → chunk-DSSCERHI.cjs} +3 -2
  134. package/dist/{chunk-NAJ4IZKD.cjs → chunk-EA2MS25U.cjs} +8 -6
  135. package/dist/{chunk-SJAVBCOA.js → chunk-EEHWALXA.js} +94 -3
  136. package/dist/chunk-ES2HJQ4N.js +37 -0
  137. package/dist/{chunk-G27PQQFD.js → chunk-EYHKL4QC.js} +1 -1
  138. package/dist/{chunk-SV2WA57F.js → chunk-FBQJZKFX.js} +38 -15
  139. package/dist/chunk-FFBDRUO5.cjs +59 -0
  140. package/dist/{chunk-N7LI55V4.js → chunk-FFHSCM5M.js} +15 -8
  141. package/dist/{chunk-SAHBLB3E.js → chunk-FP46B4X3.js} +208 -3
  142. package/dist/chunk-FQVG6ZHF.js +197 -0
  143. package/dist/{chunk-J2GSFVUV.cjs → chunk-GAOPJ5S3.cjs} +74 -59
  144. package/dist/{chunk-S52YW5ZQ.js → chunk-GNBBIAMD.js} +16 -19
  145. package/dist/chunk-GSDV75A5.js +715 -0
  146. package/dist/chunk-GWY26SUD.cjs +63 -0
  147. package/dist/{chunk-TUAITHWL.js → chunk-H426KOGY.js} +2 -1
  148. package/dist/{chunk-EZMINVLU.js → chunk-H4D2Q2AL.js} +5 -2
  149. package/dist/chunk-HC2Q6A3E.cjs +4967 -0
  150. package/dist/{chunk-3WVJEL7K.cjs → chunk-HDK2EHVH.cjs} +3 -1
  151. package/dist/{chunk-5IXII4HX.cjs → chunk-HG3ZASBH.cjs} +23 -16
  152. package/dist/chunk-HK5A54AV.cjs +280 -0
  153. package/dist/{chunk-LQGVEP3E.js → chunk-HQUSEWT4.js} +45 -13
  154. package/dist/chunk-HSWWM6AM.js +2340 -0
  155. package/dist/chunk-HTU4W3GB.js +183 -0
  156. package/dist/{chunk-HLHTG5ZU.cjs → chunk-HVCIB4SW.cjs} +14 -12
  157. package/dist/chunk-HXHE2KAO.js +385 -0
  158. package/dist/{chunk-LJFUXC56.cjs → chunk-HXQREVTA.cjs} +9 -6
  159. package/dist/{chunk-SLQAYV3W.js → chunk-HZWU6IO3.js} +11 -2
  160. package/dist/chunk-I2ZK3AOD.js +866 -0
  161. package/dist/chunk-IEPLQ47J.js +719 -0
  162. package/dist/chunk-J5HE6CUM.cjs +124 -0
  163. package/dist/{chunk-LIEXWM2M.js → chunk-JAQO6XDB.js} +19 -1
  164. package/dist/chunk-JB3JCYBJ.js +113 -0
  165. package/dist/chunk-JCUHCH37.cjs +247 -0
  166. package/dist/{chunk-FPHU2ES6.cjs → chunk-JM3ZTQUK.cjs} +19 -9
  167. package/dist/{chunk-NDMIPTV4.js → chunk-JMJRFSNJ.js} +8 -3
  168. package/dist/{chunk-ZLSGXMGQ.js → chunk-JMN3GZU6.js} +2 -0
  169. package/dist/chunk-JPFRI4L4.js +4967 -0
  170. package/dist/{chunk-BVKXEQVG.cjs → chunk-JV5HVCHU.cjs} +22 -10
  171. package/dist/chunk-KA2U6MY2.js +388 -0
  172. package/dist/{chunk-SEKD5FH3.cjs → chunk-KASXKDF2.cjs} +8 -3
  173. package/dist/chunk-KJ26T7GM.cjs +367 -0
  174. package/dist/chunk-KM7R5YPS.cjs +385 -0
  175. package/dist/{chunk-MBBY4ZIK.js → chunk-KMP6Y3LJ.js} +4 -1
  176. package/dist/chunk-KWXGDSYT.js +184 -0
  177. package/dist/{chunk-C5IJIM2V.cjs → chunk-L46OUKW5.cjs} +68 -37
  178. package/dist/{chunk-6UJMCWRY.js → chunk-L6OH44HL.js} +19 -9
  179. package/dist/chunk-LANGD5CO.js +280 -0
  180. package/dist/{chunk-APIXPPMT.js → chunk-LEZEWKPA.js} +1004 -39
  181. package/dist/{chunk-ULQ6MDSJ.cjs → chunk-LFDPTJYF.cjs} +43 -35
  182. package/dist/chunk-LJD7KR3L.cjs +44 -0
  183. package/dist/{chunk-NCC6ETZS.js → chunk-LUMV3DB2.js} +41 -33
  184. package/dist/{chunk-QXH5RCFI.js → chunk-M5DK524Z.js} +2 -2
  185. package/dist/chunk-M7B7RRBK.cjs +1034 -0
  186. package/dist/chunk-MANJ67D3.js +3897 -0
  187. package/dist/{chunk-HPHJ73GU.cjs → chunk-MGNXABSU.cjs} +9 -9
  188. package/dist/{chunk-6ZCULLCA.js → chunk-MMKZSJUN.js} +1 -1
  189. package/dist/{chunk-DVUHHH3B.cjs → chunk-MQQH4XQH.cjs} +4 -4
  190. package/dist/chunk-MUNUUFU7.cjs +21 -0
  191. package/dist/{chunk-DVZOENQ7.cjs → chunk-MZN6JBRZ.cjs} +9 -4
  192. package/dist/{chunk-OOKY3HPZ.js → chunk-NB6M6ESM.js} +50 -9
  193. package/dist/{chunk-BYONM7UM.js → chunk-NBGOIFKP.js} +265 -18
  194. package/dist/chunk-NHWHEW7M.cjs +75 -0
  195. package/dist/chunk-NQZH5CR2.cjs +468 -0
  196. package/dist/{chunk-EGPXJERY.cjs → chunk-NV6LCD2I.cjs} +119 -28
  197. package/dist/chunk-NVATU4V6.cjs +44 -0
  198. package/dist/{chunk-YZXUDM5X.js → chunk-NZ3ZWLUW.js} +204 -62
  199. package/dist/chunk-NZ7GCK7Y.cjs +92 -0
  200. package/dist/{chunk-VEKDGU2Q.cjs → chunk-NZQFKXM3.cjs} +49 -25
  201. package/dist/chunk-O5GI6SR3.js +59 -0
  202. package/dist/{chunk-56SWIDEL.cjs → chunk-OCATAKXV.cjs} +57 -56
  203. package/dist/{chunk-SKV2F3NM.js → chunk-OIGYWOL6.js} +1 -1
  204. package/dist/{chunk-IFFXSTOM.cjs → chunk-ONVYXTUT.cjs} +3 -3
  205. package/dist/chunk-OR67YXQK.cjs +13 -0
  206. package/dist/chunk-OV3T5MUH.cjs +715 -0
  207. package/dist/{chunk-OHUZKDGX.js → chunk-P4FUTSVK.js} +3 -3
  208. package/dist/chunk-P6SLT2F4.cjs +139 -0
  209. package/dist/{chunk-TNZRZQ7Q.js → chunk-PB7W7R72.js} +3 -78
  210. package/dist/chunk-PCM3N3CL.cjs +37 -0
  211. package/dist/{chunk-2AA5MFES.js → chunk-PGFLPURU.js} +8 -5
  212. package/dist/{chunk-DJDE4DTT.cjs → chunk-PIXQ2AVM.cjs} +25 -19
  213. package/dist/chunk-PNIAIOMZ.cjs +229 -0
  214. package/dist/{chunk-HTLINWX6.cjs → chunk-PQBYFEBL.cjs} +16 -13
  215. package/dist/{chunk-22D2CNTP.cjs → chunk-PSAH4ZQB.cjs} +5 -2
  216. package/dist/{chunk-3VTAFAL2.js → chunk-PTTZI4QZ.js} +16 -12
  217. package/dist/{chunk-WPVWQSL7.cjs → chunk-PY73W5MQ.cjs} +16 -13
  218. package/dist/{chunk-EGMZDTSL.js → chunk-PZZMIYII.js} +10 -2
  219. package/dist/{chunk-HBZU3RBZ.js → chunk-Q3BS6FPM.js} +34 -10
  220. package/dist/chunk-QBYGMMDD.js +517 -0
  221. package/dist/chunk-QLZOMZO5.cjs +388 -0
  222. package/dist/{chunk-ADUFCS4Q.cjs → chunk-QQ64HEHP.cjs} +160 -79
  223. package/dist/{chunk-L3TWPROA.js → chunk-QRQF3556.js} +44 -24
  224. package/dist/{chunk-YHD6TUIR.cjs → chunk-QW2RW2GY.cjs} +2 -0
  225. package/dist/chunk-RAKO7UN7.js +114 -0
  226. package/dist/{chunk-7TQH3CL4.cjs → chunk-RBXBH6EB.cjs} +78 -35
  227. package/dist/chunk-RFUKZIJF.cjs +78 -0
  228. package/dist/chunk-RS2E32YB.js +71 -0
  229. package/dist/{chunk-OLSBBZW6.cjs → chunk-S5JNQIGL.cjs} +5 -5
  230. package/dist/{chunk-FTYY5JJD.js → chunk-S5QKRA2V.js} +2 -2
  231. package/dist/chunk-SD3NTC7D.cjs +77 -0
  232. package/dist/{chunk-KPELYZ6L.js → chunk-SDLY4X3G.js} +2 -2
  233. package/dist/{chunk-IDFF5J2E.js → chunk-SFFEKZGC.js} +38 -7
  234. package/dist/{chunk-EGFT4PGW.js → chunk-SHRLFX6F.js} +8 -3
  235. package/dist/{chunk-3WICOC33.js → chunk-SNDDZG5H.js} +124 -84
  236. package/dist/{chunk-CZXGCVTR.cjs → chunk-SOVR7S3T.cjs} +2 -2
  237. package/dist/chunk-SPQ7QIQ6.js +78 -0
  238. package/dist/{chunk-XRZEUWKF.js → chunk-SRMGWMQO.js} +1 -1
  239. package/dist/{chunk-R33VKSH5.cjs → chunk-SVVP4UUZ.cjs} +11 -11
  240. package/dist/{chunk-7BTSG4ME.cjs → chunk-SY2P3Z5W.cjs} +1004 -39
  241. package/dist/chunk-SZD45IDG.js +468 -0
  242. package/dist/{chunk-3O3MOK5C.cjs → chunk-TE4SYTWR.cjs} +1114 -142
  243. package/dist/chunk-TH26BQJG.js +101 -0
  244. package/dist/{chunk-QNGEW5TC.js → chunk-TR6NECEZ.js} +1 -1
  245. package/dist/{chunk-YGN4CQIP.js → chunk-TYBPTKFT.js} +1 -1
  246. package/dist/{chunk-GJH7XMSK.js → chunk-U2QUMKCB.js} +8 -6
  247. package/dist/{chunk-47CKWKEX.cjs → chunk-U6PLSPMD.cjs} +9 -4
  248. package/dist/chunk-UOQECODR.js +34 -0
  249. package/dist/chunk-UR27UDTB.js +354 -0
  250. package/dist/chunk-UWZ4G3SQ.js +93 -0
  251. package/dist/{chunk-Y72HH2TF.cjs → chunk-V3SZLWEQ.cjs} +33 -24
  252. package/dist/chunk-V4HGZSKQ.cjs +183 -0
  253. package/dist/{chunk-3PDTTAKJ.js → chunk-V5ELP2XE.js} +19 -12
  254. package/dist/{chunk-3K2ESU53.cjs → chunk-VKOXFT4L.cjs} +2 -2
  255. package/dist/{chunk-XTB6VJVQ.cjs → chunk-VLGGMQUN.cjs} +6 -6
  256. package/dist/chunk-VQHSYAPZ.cjs +3897 -0
  257. package/dist/chunk-VUGOOGHB.js +400 -0
  258. package/dist/chunk-W5QLA6WP.cjs +866 -0
  259. package/dist/chunk-WBU4Q4GS.cjs +400 -0
  260. package/dist/{chunk-KWXVKLQ5.cjs → chunk-WGNMOVMT.cjs} +7 -82
  261. package/dist/chunk-WJYFLQ7G.cjs +27 -0
  262. package/dist/{chunk-RKJTGGMU.cjs → chunk-WKRDBCP2.cjs} +221 -16
  263. package/dist/{chunk-ZSPXQYG2.js → chunk-WNJXIACY.js} +7 -5
  264. package/dist/{chunk-AYS2ASM7.js → chunk-WPE2XHVX.js} +1 -1
  265. package/dist/chunk-WTB7AFL6.cjs +101 -0
  266. package/dist/{chunk-JYTDYJVW.js → chunk-X3TI5TJJ.js} +1 -1
  267. package/dist/chunk-X5P6QQOB.cjs +719 -0
  268. package/dist/{chunk-245KJE5Y.cjs → chunk-X7XMITIL.cjs} +14 -6
  269. package/dist/chunk-XF2WIKHR.cjs +34 -0
  270. package/dist/{chunk-DV2ZHK7B.cjs → chunk-XNIMSVS6.cjs} +49 -26
  271. package/dist/chunk-XW3XCK4E.cjs +59 -0
  272. package/dist/{chunk-N23UAW4I.js → chunk-XZVDYC5U.js} +7 -2
  273. package/dist/chunk-Y5BDE24P.cjs +444 -0
  274. package/dist/{chunk-NAGQ2PDC.js → chunk-YC5OBZQU.js} +1604 -433
  275. package/dist/chunk-YISPVAXO.cjs +2340 -0
  276. package/dist/{chunk-KQGPTCQJ.js → chunk-YQDI753V.js} +68 -25
  277. package/dist/{chunk-UJ2JSM6H.js → chunk-YVQI26H4.js} +2 -0
  278. package/dist/{chunk-NNPAM4HC.cjs → chunk-YWH55BWK.cjs} +15 -6
  279. package/dist/{chunk-X2YOZQIP.cjs → chunk-YWTIXHU6.cjs} +266 -19
  280. package/dist/{chunk-XX2ZO7DS.js → chunk-YXM6SA7P.js} +25 -16
  281. package/dist/chunk-YZWE7XSM.js +5 -0
  282. package/dist/chunk-ZASDSY7P.cjs +114 -0
  283. package/dist/{chunk-2UC22DJU.js → chunk-ZNGRLCFQ.js} +30 -4
  284. package/dist/{chunk-KANW6OYC.cjs → chunk-ZNYZB7XY.cjs} +34 -8
  285. package/dist/{chunk-NA6WQDYW.js → chunk-ZPLCAXJW.js} +1088 -116
  286. package/dist/{chunk-7UOUW76C.js → chunk-ZQAT5VT5.js} +101 -24
  287. package/dist/chunk-ZUYYHKQA.js +44 -0
  288. package/dist/clear-QJXU25IF.cjs +12 -0
  289. package/dist/{clear-A3N4GK2S.js → clear-Y5TO3RZA.js} +3 -3
  290. package/dist/communityInstaller-LXMVKVAV.cjs +22 -0
  291. package/dist/{communityInstaller-LOP2EDH5.js → communityInstaller-RVL4STPS.js} +8 -5
  292. package/dist/completion-JX4T2ONW.cjs +17 -0
  293. package/dist/completion-SE3XYG74.js +17 -0
  294. package/dist/config-3224PRW4.cjs +21 -0
  295. package/dist/{config-HPJPKTO6.js → config-7KPHKFTP.js} +7 -4
  296. package/dist/{constants-LISJW3DD.js → constants-EJFAWJQI.js} +1 -1
  297. package/dist/constants-MCCGUU5F.cjs +21 -0
  298. package/dist/{defaultHooks-IHSJR2AX.cjs → defaultHooks-2V2CQL63.cjs} +25 -10
  299. package/dist/{defaultHooks-KUKHK3AG.js → defaultHooks-TMHDU3FS.js} +25 -10
  300. package/dist/export-BJVIDZC4.js +15 -0
  301. package/dist/export-KU4557HK.cjs +15 -0
  302. package/dist/feature-K3LG5IJP.cjs +14 -0
  303. package/dist/feature-V4JF5TNJ.js +14 -0
  304. package/dist/features-5OJTLKS7.js +23 -0
  305. package/dist/features-VCBJQXCX.cjs +23 -0
  306. package/dist/feedback-D4437VE4.js +18 -0
  307. package/dist/feedback-VZPEHGFY.cjs +18 -0
  308. package/dist/fffSearchProvider-2YCNKOYD.js +412 -0
  309. package/dist/fffSearchProvider-W6627E2V.cjs +412 -0
  310. package/dist/{filesystem-Z7BWAWMZ.js → filesystem-L6DQKGWK.js} +3 -2
  311. package/dist/filesystem-PGUPCMVK.cjs +11 -0
  312. package/dist/go-X4E6BCD6.js +12 -0
  313. package/dist/go-XREVFS5I.cjs +12 -0
  314. package/dist/goal-4M3J6JS2.cjs +16 -0
  315. package/dist/goal-EI66BV7W.js +16 -0
  316. package/dist/help-GGFS7WHY.cjs +12 -0
  317. package/dist/{help-GFQXNZOK.js → help-MLIROWKM.js} +2 -2
  318. package/dist/{history-E3N6BJP7.js → history-GQJ6RZD6.js} +2 -2
  319. package/dist/history-J4LUIOSI.cjs +14 -0
  320. package/dist/hooks-FSRIUS6A.cjs +18 -0
  321. package/dist/hooks-PPFHCF7T.js +18 -0
  322. package/dist/i18n-CI6VFXL5.cjs +33 -0
  323. package/dist/{i18n-SY7QRM22.js → i18n-Q7UZJRPL.js} +1 -1
  324. package/dist/ide-BUSVE54P.js +15 -0
  325. package/dist/ide-YR27BPGM.cjs +15 -0
  326. package/dist/immediateCommandRouter-MTEHZXQX.js +15 -0
  327. package/dist/immediateCommandRouter-ROXU3MWT.cjs +15 -0
  328. package/dist/{import-W7SVLSTC.js → import-3VBKI6BN.js} +3 -3
  329. package/dist/{import-ADI37ZUR.cjs → import-C7S6UJMW.cjs} +3 -3
  330. package/dist/import-DBK4OCDF.cjs +10 -0
  331. package/dist/{import-KGKKZ3B7.js → import-U47DXCA7.js} +2 -2
  332. package/dist/index.cjs +837 -23011
  333. package/dist/index.d.cts +95 -0
  334. package/dist/index.d.ts +95 -0
  335. package/dist/index.js +864 -23038
  336. package/dist/init-OXTYS72D.cjs +10 -0
  337. package/dist/{init-7MFK626E.js → init-Q2O4R42R.js} +2 -2
  338. package/dist/inkMode-VUE6ZDLD.cjs +7 -0
  339. package/dist/inkMode-WBNFOSAT.js +7 -0
  340. package/dist/inputPrompt-3CFZDUBH.js +90 -0
  341. package/dist/inputPrompt-JMACL4EB.cjs +90 -0
  342. package/dist/language-EK3M6UBV.cjs +22 -0
  343. package/dist/language-Q3RUGGOW.js +22 -0
  344. package/dist/learn-3DSX7DYG.cjs +23 -0
  345. package/dist/learn-OPOH5L43.js +23 -0
  346. package/dist/login-GST7MWXJ.cjs +27 -0
  347. package/dist/login-Q7DZKAX4.js +27 -0
  348. package/dist/logout-2G7OUK7I.cjs +24 -0
  349. package/dist/logout-FNBBL2UI.js +24 -0
  350. package/dist/mcp-AH3MMUBU.js +21 -0
  351. package/dist/mcp-DW7R63IB.cjs +21 -0
  352. package/dist/{mcp-install-2FEROZTL.js → mcp-install-222PCKSW.js} +18 -10
  353. package/dist/{mcp-install-WM6BQRI5.cjs → mcp-install-IA4ZS2SV.cjs} +22 -14
  354. package/dist/memory-6NX3DAIY.cjs +10 -0
  355. package/dist/{memory-J73WZH2I.js → memory-VB46T5H3.js} +2 -2
  356. package/dist/model-64NAELFS.cjs +10 -0
  357. package/dist/{model-AES267IN.js → model-SJJG64AM.js} +2 -2
  358. package/dist/new-DU5SOOOY.cjs +12 -0
  359. package/dist/{new-5CLF3MKH.js → new-ERZ5C6CN.js} +3 -3
  360. package/dist/onboarding-2U2BV2KE.cjs +36 -0
  361. package/dist/onboarding-ZQXMPSMJ.js +36 -0
  362. package/dist/permissions-7ACNFK7A.js +10 -0
  363. package/dist/permissions-GSNNV7RJ.cjs +10 -0
  364. package/dist/plan-XEJMOT55.cjs +13 -0
  365. package/dist/{plan-65HMS5HQ.js → plan-YYUAXPTL.js} +3 -1
  366. package/dist/pr-review-CW6J7P62.cjs +9 -0
  367. package/dist/pr-review-YZSBQVT2.js +9 -0
  368. package/dist/{quit-XDZYRSPU.js → quit-WY6T267G.js} +2 -2
  369. package/dist/quit-XIRE2KRE.cjs +10 -0
  370. package/dist/rawMode-6W5AXAKI.cjs +7 -0
  371. package/dist/rawMode-GFNLXQPU.js +7 -0
  372. package/dist/{registry-PTHWERKC.js → registry-4DXUDKJN.js} +29 -44
  373. package/dist/{registry-IVT4G2RT.cjs → registry-UEO3ETZ7.cjs} +65 -80
  374. package/dist/repeat-P4FAPE3Y.cjs +17 -0
  375. package/dist/{repeat-EVCWUL6Z.js → repeat-RALE6AUO.js} +7 -3
  376. package/dist/resume-RQZ3WXBP.cjs +17 -0
  377. package/dist/resume-XSXZMDMD.js +17 -0
  378. package/dist/review-QHP2KP4Q.js +9 -0
  379. package/dist/review-UWHWQHCB.cjs +9 -0
  380. package/dist/ripgrep-67SCU2BA.cjs +9 -0
  381. package/dist/ripgrep-VHJQQ55W.js +9 -0
  382. package/dist/rpc-XH7QLN4H.js +3874 -0
  383. package/dist/rpc-YF54T7JU.cjs +3874 -0
  384. package/dist/search-VXXFGZWU.cjs +21 -0
  385. package/dist/search-YAWGX7P7.js +21 -0
  386. package/dist/{sessions-6GWEBMKS.js → sessions-NJYHJOEL.js} +2 -2
  387. package/dist/sessions-OSG3UJEZ.cjs +10 -0
  388. package/dist/settings-SO2UIGWV.cjs +42 -0
  389. package/dist/settings-ZXUQH3DO.js +42 -0
  390. package/dist/setup-KG7EGKF5.js +30 -0
  391. package/dist/setup-RSOPCQ57.cjs +30 -0
  392. package/dist/share-WFAGZ5PY.js +17 -0
  393. package/dist/share-ZU3SGACF.cjs +17 -0
  394. package/dist/skills-KBVAQAD2.cjs +29 -0
  395. package/dist/skills-NBTNDVAY.js +29 -0
  396. package/dist/{skills-ZZCIAS7C.js → skills-OB6RDW7D.js} +10 -7
  397. package/dist/{skills-PG542VEB.cjs → skills-ZROBG3RZ.cjs} +13 -10
  398. package/dist/{skills-install-SRC3Z2MS.js → skills-install-BHTIEMKH.js} +21 -70
  399. package/dist/{skills-install-67DOBPJC.cjs → skills-install-ILX6QVEF.cjs} +34 -83
  400. package/dist/skills-new-B45VQ2PP.cjs +18 -0
  401. package/dist/skills-new-YMRP2HNO.js +18 -0
  402. package/dist/slashCommands-53VYIBJU.js +105 -0
  403. package/dist/slashCommands-BG2RGGZ6.cjs +105 -0
  404. package/dist/status-CQ2IUOVK.cjs +24 -0
  405. package/dist/status-E7IGNVPC.js +24 -0
  406. package/dist/summarizer-DGPHE5IQ.js +17 -0
  407. package/dist/summarizer-JNXLUAQG.cjs +17 -0
  408. package/dist/sync-7C25MOT2.js +22 -0
  409. package/dist/{sync-VU2NSJ4O.js → sync-OCJN4ZSO.js} +3 -3
  410. package/dist/sync-XRP46IVG.cjs +40 -0
  411. package/dist/sync-ZMFVE7T4.cjs +22 -0
  412. package/dist/{teammate-SXRVXNQV.cjs → teammate-D77B6QRT.cjs} +31 -9
  413. package/dist/{teammate-SD26GR37.js → teammate-EZCMHOIL.js} +30 -8
  414. package/dist/templates-ARG2VRWW.cjs +11 -0
  415. package/dist/templates-UGVZV3KJ.js +11 -0
  416. package/dist/theme-KKRDE6P7.cjs +22 -0
  417. package/dist/theme-XF7XIWBQ.js +22 -0
  418. package/dist/tools-3PPTTKFV.js +9 -0
  419. package/dist/tools-THIQA7WC.cjs +9 -0
  420. package/dist/ui/questionModal.cjs +8 -5
  421. package/dist/ui/questionModal.js +7 -4
  422. package/dist/{undo-OL2EDBRY.js → undo-GNUTFXCW.js} +2 -2
  423. package/dist/undo-U4KN7QQM.cjs +10 -0
  424. package/dist/usage-QSTNSDAO.js +24 -0
  425. package/dist/usage-YDEMQBNQ.cjs +24 -0
  426. package/dist/web-3BA2WV37.cjs +37 -0
  427. package/dist/web-6FYGBX5K.js +37 -0
  428. package/dist/workspaceSafety-MDJGHK6D.cjs +9 -0
  429. package/dist/workspaceSafety-XOUMUBVB.js +9 -0
  430. package/dist/yolo-GF2YD7ZI.js +9 -0
  431. package/dist/yolo-OGDA7HNC.cjs +9 -0
  432. package/dist/yoloMode-3DJDA75U.cjs +17 -0
  433. package/dist/yoloMode-4JOOSU26.js +17 -0
  434. package/package.json +51 -49
  435. package/dist/AgentRegistry-HRPN6ZOF.cjs +0 -10
  436. package/dist/CommunitySkillsCache-KE435RAR.cjs +0 -8
  437. package/dist/GitHubRegistryFetcher-I45SESIL.cjs +0 -7
  438. package/dist/LearnAdvisor-FLBA6FDD.js +0 -9
  439. package/dist/LearnAdvisor-GG3CXQF3.cjs +0 -9
  440. package/dist/MemoryManager-2LQPIYVE.cjs +0 -8
  441. package/dist/PermissionManager-X57BXHJ6.cjs +0 -11
  442. package/dist/ProviderFactory-KPJOGQWF.cjs +0 -9
  443. package/dist/SessionManager-YBJAZXNO.cjs +0 -10
  444. package/dist/SkillsRegistry-7O72A6TZ.cjs +0 -9
  445. package/dist/SubAgent-JT4HZHN7.js +0 -11
  446. package/dist/SubAgent-VPNYDWAU.cjs +0 -11
  447. package/dist/SyncApiClient-HQXJL5BT.cjs +0 -11
  448. package/dist/about-4DB5KTHW.js +0 -12
  449. package/dist/about-LXAOXZFT.cjs +0 -12
  450. package/dist/actionExecutor-23JB2WUC.js +0 -19
  451. package/dist/actionExecutor-X5UEZSKH.cjs +0 -19
  452. package/dist/add-dir-YC37DMSF.cjs +0 -10
  453. package/dist/agents-YF3BSUU5.js +0 -12
  454. package/dist/agents-ZOUHPMYR.cjs +0 -12
  455. package/dist/agents-new-HSH4GQPG.js +0 -14
  456. package/dist/agents-new-VYUDOCE7.cjs +0 -14
  457. package/dist/autoSkill-X5W52WOE.cjs +0 -20
  458. package/dist/automode-SJGM7VEI.cjs +0 -10
  459. package/dist/chunk-ALYU6VTM.js +0 -105
  460. package/dist/chunk-B53A2NM2.js +0 -2030
  461. package/dist/chunk-BJXSNT46.js +0 -100
  462. package/dist/chunk-CB4E2T5N.cjs +0 -312
  463. package/dist/chunk-DNUOXBHL.js +0 -539
  464. package/dist/chunk-EFX2QSZX.cjs +0 -33
  465. package/dist/chunk-GCXYXLRA.cjs +0 -111
  466. package/dist/chunk-H2ZRHQQV.js +0 -33
  467. package/dist/chunk-HNRPK5MY.cjs +0 -85
  468. package/dist/chunk-HVKOZ2VP.cjs +0 -115
  469. package/dist/chunk-JJLYWH5Y.cjs +0 -100
  470. package/dist/chunk-LWUJFGOZ.js +0 -115
  471. package/dist/chunk-MERYP6AM.cjs +0 -539
  472. package/dist/chunk-MZAPWNAC.cjs +0 -207
  473. package/dist/chunk-NTSDP2WB.js +0 -226
  474. package/dist/chunk-OUZQXMHL.cjs +0 -226
  475. package/dist/chunk-PGESAU2W.cjs +0 -2030
  476. package/dist/chunk-SYVYLZZF.cjs +0 -24
  477. package/dist/chunk-SZOLA6FR.js +0 -111
  478. package/dist/chunk-VWDHR4HV.js +0 -168
  479. package/dist/chunk-Y45G6ZO5.cjs +0 -168
  480. package/dist/chunk-YRLYSQEQ.cjs +0 -105
  481. package/dist/chunk-ZYVS43MU.js +0 -312
  482. package/dist/clear-GK4IEUUS.cjs +0 -12
  483. package/dist/communityInstaller-XXC7RLE4.cjs +0 -19
  484. package/dist/completion-HWABSAEL.js +0 -14
  485. package/dist/completion-IUUVQG4D.cjs +0 -14
  486. package/dist/config-HF7WOLZF.cjs +0 -18
  487. package/dist/constants-PEO3P2SJ.cjs +0 -21
  488. package/dist/export-QJAV2FCZ.js +0 -12
  489. package/dist/export-XSRFXGWU.cjs +0 -12
  490. package/dist/feedback-4TCIL3ML.cjs +0 -15
  491. package/dist/feedback-SJ6VVEY3.js +0 -15
  492. package/dist/filesystem-W56QZUJF.cjs +0 -10
  493. package/dist/help-ISBVQL3S.cjs +0 -12
  494. package/dist/history-XQ4GTSFU.cjs +0 -14
  495. package/dist/hooks-CJNKJ5PF.js +0 -13
  496. package/dist/hooks-UTMBTAXT.cjs +0 -13
  497. package/dist/i18n-N7QQ7A5M.cjs +0 -33
  498. package/dist/ide-RTA4UJV4.js +0 -12
  499. package/dist/ide-VWVOLIFF.cjs +0 -12
  500. package/dist/immediateCommandRouter-BW34JNXL.js +0 -9
  501. package/dist/immediateCommandRouter-SHOVNB5X.cjs +0 -9
  502. package/dist/import-ZLJVONXH.cjs +0 -10
  503. package/dist/init-TBKAB4LZ.cjs +0 -10
  504. package/dist/language-MDSHEXHB.cjs +0 -18
  505. package/dist/language-PXTQSHIG.js +0 -18
  506. package/dist/learn-623TW5EK.cjs +0 -20
  507. package/dist/learn-BCPV7GM2.js +0 -20
  508. package/dist/localProjectPermissions-BHQXEWZJ.cjs +0 -18
  509. package/dist/localProjectPermissions-GMOUYQM6.js +0 -18
  510. package/dist/login-QMVEETWJ.js +0 -20
  511. package/dist/login-QYMXAL3K.cjs +0 -20
  512. package/dist/logout-2CMTDAOJ.js +0 -18
  513. package/dist/logout-ZOHVZAUK.cjs +0 -18
  514. package/dist/mcp-IUVKK65S.js +0 -18
  515. package/dist/mcp-TXC7PYG3.cjs +0 -18
  516. package/dist/memory-WRIHDEPK.cjs +0 -10
  517. package/dist/model-RLP75SF5.cjs +0 -10
  518. package/dist/new-HLSFL6A4.cjs +0 -12
  519. package/dist/permissions-GP6FTGZ2.js +0 -13
  520. package/dist/permissions-O6EKKPOG.cjs +0 -13
  521. package/dist/plan-MCAXDIM2.cjs +0 -11
  522. package/dist/quit-TQX6GXA5.cjs +0 -10
  523. package/dist/repeat-BSPS5TWD.cjs +0 -13
  524. package/dist/resume-2GOPDLL4.cjs +0 -13
  525. package/dist/resume-37IUVDA6.js +0 -13
  526. package/dist/search-7KUSHIBL.cjs +0 -17
  527. package/dist/search-OJGDRIMA.js +0 -17
  528. package/dist/sessions-CYYCHSQG.cjs +0 -10
  529. package/dist/settings-2D7CAO66.cjs +0 -30
  530. package/dist/settings-BXR6SBJP.js +0 -30
  531. package/dist/share-BXQY5IQU.js +0 -14
  532. package/dist/share-OSFXZBGS.cjs +0 -14
  533. package/dist/skills-FL6O6AOM.cjs +0 -26
  534. package/dist/skills-PNKQZRNK.js +0 -26
  535. package/dist/skills-new-XFMEHHIF.cjs +0 -15
  536. package/dist/skills-new-ZNZPHUKS.js +0 -15
  537. package/dist/slashCommands-LLCNPK3X.js +0 -76
  538. package/dist/slashCommands-RXZZS6RE.cjs +0 -76
  539. package/dist/status-BCECUJXT.cjs +0 -11
  540. package/dist/status-EFO7MQU3.js +0 -11
  541. package/dist/sync-IJYJ6KKM.js +0 -18
  542. package/dist/sync-LFT6SBPF.cjs +0 -18
  543. package/dist/sync-U7SDPBNZ.cjs +0 -40
  544. package/dist/theme-AWBHSG7J.cjs +0 -18
  545. package/dist/theme-TQLBPJ2E.js +0 -18
  546. package/dist/undo-IBBGP7A2.cjs +0 -10
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  showConfirm
3
- } from "./chunk-YZXUDM5X.js";
3
+ } from "./chunk-NZ3ZWLUW.js";
4
4
  import {
5
5
  AUTOHAND_PATHS,
6
6
  PROJECT_DIR_NAME
7
- } from "./chunk-EGFT4PGW.js";
7
+ } from "./chunk-SHRLFX6F.js";
8
8
  import {
9
9
  t
10
- } from "./chunk-APIXPPMT.js";
10
+ } from "./chunk-LEZEWKPA.js";
11
11
 
12
12
  // src/skills/communityInstaller.ts
13
13
  import crypto from "crypto";
@@ -0,0 +1,139 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }
2
+
3
+ var _chunkKASXKDF2cjs = require('./chunk-KASXKDF2.cjs');
4
+
5
+ // src/permissions/localProjectPermissions.ts
6
+ var _fsextra = require('fs-extra'); var _fsextra2 = _interopRequireDefault(_fsextra);
7
+ var _path = require('path'); var _path2 = _interopRequireDefault(_path);
8
+ var LOCAL_SETTINGS_FILE = "settings.local.json";
9
+ function normalizePermissionSettings(settings) {
10
+ if (!settings) {
11
+ return settings;
12
+ }
13
+ const allowList = _nullishCoalesce(_nullishCoalesce(settings.allowList, () => ( settings.whitelist)), () => ( []));
14
+ const denyList = _nullishCoalesce(_nullishCoalesce(settings.denyList, () => ( settings.blacklist)), () => ( []));
15
+ return {
16
+ ...settings,
17
+ allowList,
18
+ denyList,
19
+ whitelist: void 0,
20
+ blacklist: void 0
21
+ };
22
+ }
23
+ function getLocalSettingsPath(workspaceRoot) {
24
+ return _path2.default.join(workspaceRoot, _chunkKASXKDF2cjs.PROJECT_DIR_NAME, LOCAL_SETTINGS_FILE);
25
+ }
26
+ async function loadLocalProjectSettings(workspaceRoot) {
27
+ const settingsPath = getLocalSettingsPath(workspaceRoot);
28
+ try {
29
+ if (await _fsextra2.default.pathExists(settingsPath)) {
30
+ const content = await _fsextra2.default.readFile(settingsPath, "utf8");
31
+ const parsed = JSON.parse(content);
32
+ return {
33
+ ...parsed,
34
+ permissions: normalizePermissionSettings(parsed.permissions)
35
+ };
36
+ }
37
+ } catch (error) {
38
+ console.error(`Warning: Failed to parse local settings at ${settingsPath}:`, error.message);
39
+ }
40
+ return null;
41
+ }
42
+ async function saveLocalProjectSettings(workspaceRoot, settings) {
43
+ const settingsPath = getLocalSettingsPath(workspaceRoot);
44
+ const dir = _path2.default.dirname(settingsPath);
45
+ await _fsextra2.default.ensureDir(dir);
46
+ const toSave = {
47
+ ...settings,
48
+ version: 1
49
+ };
50
+ await _fsextra2.default.writeJson(settingsPath, toSave, { spaces: 2 });
51
+ }
52
+ async function addToLocalAllowList(workspaceRoot, pattern) {
53
+ const current = await loadLocalProjectSettings(workspaceRoot) || {};
54
+ const permissions = normalizePermissionSettings(current.permissions) || {};
55
+ const allowList = permissions.allowList || [];
56
+ if (!allowList.includes(pattern)) {
57
+ allowList.push(pattern);
58
+ await saveLocalProjectSettings(workspaceRoot, {
59
+ ...current,
60
+ permissions: {
61
+ ...permissions,
62
+ allowList
63
+ }
64
+ });
65
+ }
66
+ }
67
+ async function addToLocalDenyList(workspaceRoot, pattern) {
68
+ const current = await loadLocalProjectSettings(workspaceRoot) || {};
69
+ const permissions = normalizePermissionSettings(current.permissions) || {};
70
+ const denyList = permissions.denyList || [];
71
+ if (!denyList.includes(pattern)) {
72
+ denyList.push(pattern);
73
+ await saveLocalProjectSettings(workspaceRoot, {
74
+ ...current,
75
+ permissions: {
76
+ ...permissions,
77
+ denyList
78
+ }
79
+ });
80
+ }
81
+ }
82
+ function mergePermissions(globalSettings, localSettings) {
83
+ const normalizedGlobal = _nullishCoalesce(normalizePermissionSettings(globalSettings), () => ( {}));
84
+ const normalizedLocal = normalizePermissionSettings(localSettings);
85
+ if (!normalizedLocal) {
86
+ return normalizedGlobal;
87
+ }
88
+ return {
89
+ // Global settings as base
90
+ ...normalizedGlobal,
91
+ // Local mode overrides global if set
92
+ mode: normalizedLocal.mode || normalizedGlobal.mode,
93
+ allowList: [
94
+ ...normalizedGlobal.allowList || [],
95
+ ...normalizedLocal.allowList || []
96
+ ].filter((v, i, a) => a.indexOf(v) === i),
97
+ denyList: [
98
+ ...normalizedGlobal.denyList || [],
99
+ ...normalizedLocal.denyList || []
100
+ ].filter((v, i, a) => a.indexOf(v) === i),
101
+ // Merge rules (local rules checked first)
102
+ rules: [
103
+ ...normalizedLocal.rules || [],
104
+ ...normalizedGlobal.rules || []
105
+ ],
106
+ // Use local rememberSession if set, otherwise global
107
+ rememberSession: _nullishCoalesce(normalizedLocal.rememberSession, () => ( normalizedGlobal.rememberSession)),
108
+ allowPatterns: [
109
+ ...normalizedGlobal.allowPatterns || [],
110
+ ...normalizedLocal.allowPatterns || []
111
+ ],
112
+ denyPatterns: [
113
+ ...normalizedGlobal.denyPatterns || [],
114
+ ...normalizedLocal.denyPatterns || []
115
+ ],
116
+ availableTools: [
117
+ ...normalizedGlobal.availableTools || [],
118
+ ...normalizedLocal.availableTools || []
119
+ ],
120
+ excludedTools: [
121
+ ...normalizedGlobal.excludedTools || [],
122
+ ...normalizedLocal.excludedTools || []
123
+ ],
124
+ allPathsAllowed: _nullishCoalesce(normalizedLocal.allPathsAllowed, () => ( normalizedGlobal.allPathsAllowed)),
125
+ allUrlsAllowed: _nullishCoalesce(normalizedLocal.allUrlsAllowed, () => ( normalizedGlobal.allUrlsAllowed))
126
+ };
127
+ }
128
+
129
+
130
+
131
+
132
+
133
+
134
+ exports.loadLocalProjectSettings = loadLocalProjectSettings; exports.addToLocalAllowList = addToLocalAllowList; exports.addToLocalDenyList = addToLocalDenyList; exports.mergePermissions = mergePermissions;
135
+ /**
136
+ * Local Project Permissions
137
+ * Handles per-project permission settings stored in .autohand/settings.local.json
138
+ * @license Apache-2.0
139
+ */
@@ -1,12 +1,3 @@
1
- import {
2
- t
3
- } from "./chunk-APIXPPMT.js";
4
-
5
- // src/commands/add-dir.ts
6
- import chalk2 from "chalk";
7
- import fs2 from "fs-extra";
8
- import path2 from "path";
9
-
10
1
  // src/startup/workspaceSafety.ts
11
2
  import os from "os";
12
3
  import path from "path";
@@ -65,9 +56,9 @@ function normalizePath(inputPath) {
65
56
  }
66
57
  return normalized;
67
58
  }
68
- function pathsEqual(path1, path22) {
59
+ function pathsEqual(path1, path2) {
69
60
  const normalized1 = normalizePath(path1);
70
- const normalized2 = normalizePath(path22);
61
+ const normalized2 = normalizePath(path2);
71
62
  if (process.platform === "darwin" || process.platform === "win32") {
72
63
  return normalized1.toLowerCase() === normalized2.toLowerCase();
73
64
  }
@@ -260,73 +251,7 @@ function printDangerousWorkspaceWarning(workspacePath, result) {
260
251
  console.log();
261
252
  }
262
253
 
263
- // src/commands/add-dir.ts
264
- async function addDir(ctx, args) {
265
- const dirPath = args.join(" ").trim();
266
- if (!dirPath) {
267
- console.log();
268
- console.log(chalk2.bold.cyan("Workspace Directories"));
269
- console.log(chalk2.gray("\u2500".repeat(50)));
270
- console.log();
271
- console.log(chalk2.bold("Primary Workspace:"));
272
- console.log(chalk2.cyan(` ${ctx.workspaceRoot}`));
273
- console.log();
274
- if (ctx.additionalDirs.length > 0) {
275
- console.log(chalk2.bold("Additional Directories:"));
276
- ctx.additionalDirs.forEach((dir, index) => {
277
- console.log(chalk2.green(` ${index + 1}. ${dir}`));
278
- });
279
- } else {
280
- console.log(chalk2.gray("No additional directories configured."));
281
- }
282
- console.log();
283
- console.log(chalk2.gray("Usage: /add-dir <path> to add a new directory"));
284
- console.log();
285
- return null;
286
- }
287
- const resolvedPath = path2.resolve(dirPath);
288
- if (!await fs2.pathExists(resolvedPath)) {
289
- console.log(chalk2.red(t("commands.addDir.notFound", { path: dirPath })));
290
- return null;
291
- }
292
- const stats = await fs2.stat(resolvedPath);
293
- if (!stats.isDirectory()) {
294
- console.log(chalk2.red(`Error: Path is not a directory: ${dirPath}`));
295
- return null;
296
- }
297
- const safetyResult = checkWorkspaceSafety(resolvedPath);
298
- if (!safetyResult.safe) {
299
- console.log(chalk2.red(`Error: Unsafe directory: ${dirPath}`));
300
- console.log(chalk2.yellow(` ${safetyResult.reason}`));
301
- return null;
302
- }
303
- if (resolvedPath === ctx.workspaceRoot) {
304
- console.log(chalk2.yellow(`Directory is already the primary workspace: ${resolvedPath}`));
305
- return null;
306
- }
307
- if (ctx.additionalDirs.includes(resolvedPath)) {
308
- console.log(chalk2.yellow(t("commands.addDir.alreadyAdded", { path: resolvedPath })));
309
- return null;
310
- }
311
- ctx.addAdditionalDir(resolvedPath);
312
- console.log(chalk2.green(t("commands.addDir.added", { path: resolvedPath })));
313
- console.log(chalk2.gray("You can now read, write, and modify files in this directory."));
314
- return null;
315
- }
316
- var metadata = {
317
- command: "/add-dir",
318
- description: t("commands.addDir.description"),
319
- implemented: true
320
- };
321
-
322
254
  export {
323
255
  checkWorkspaceSafety,
324
- printDangerousWorkspaceWarning,
325
- addDir,
326
- metadata
256
+ printDangerousWorkspaceWarning
327
257
  };
328
- /**
329
- * @license
330
- * Copyright 2025 Autohand AI LLC
331
- * SPDX-License-Identifier: Apache-2.0
332
- */
@@ -0,0 +1,37 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }// src/commands/yolo.ts
2
+ var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
3
+ async function toggleYolo(ctx) {
4
+ if (!ctx.setYoloMode) {
5
+ return "YOLO mode toggle not available in this context.";
6
+ }
7
+ const isActive = ctx.permissionManager.getMode() === "unrestricted";
8
+ if (isActive) {
9
+ ctx.setYoloMode(void 0);
10
+ console.log();
11
+ console.log(_chalk2.default.cyan("YOLO mode deactivated. Returning to interactive approval."));
12
+ console.log();
13
+ } else {
14
+ ctx.setYoloMode("allow:*");
15
+ console.log();
16
+ console.log(_chalk2.default.yellow.bold("\u{1F680} YOLO MODE ACTIVATED"));
17
+ console.log(_chalk2.default.gray("You only live once! All actions will be auto-approved."));
18
+ console.log(_chalk2.default.gray("Security blacklist still applies for sensitive files."));
19
+ console.log();
20
+ }
21
+ return null;
22
+ }
23
+ var metadata = {
24
+ command: "/yolo",
25
+ description: "Toggle YOLO mode \u2014 auto-approve all actions",
26
+ implemented: true
27
+ };
28
+
29
+
30
+
31
+
32
+ exports.toggleYolo = toggleYolo; exports.metadata = metadata;
33
+ /**
34
+ * @license
35
+ * Copyright 2025 Autohand AI LLC
36
+ * SPDX-License-Identifier: Apache-2.0
37
+ */
@@ -1,15 +1,16 @@
1
1
  import {
2
2
  AUTOHAND_PATHS
3
- } from "./chunk-EGFT4PGW.js";
3
+ } from "./chunk-SHRLFX6F.js";
4
4
 
5
5
  // src/session/SessionManager.ts
6
6
  import fs from "fs-extra";
7
7
  import path from "path";
8
8
  import crypto from "crypto";
9
9
  var SessionManager = class {
10
+ sessionsDir;
11
+ currentSession = null;
12
+ index = null;
10
13
  constructor(baseDir) {
11
- this.currentSession = null;
12
- this.index = null;
13
14
  this.sessionsDir = baseDir ?? AUTOHAND_PATHS.sessions;
14
15
  }
15
16
  async initialize() {
@@ -138,9 +139,11 @@ var SessionManager = class {
138
139
  }
139
140
  };
140
141
  var Session = class {
142
+ sessionDir;
143
+ metadata;
144
+ messages = [];
145
+ state = null;
141
146
  constructor(sessionDir, metadata) {
142
- this.messages = [];
143
- this.state = null;
144
147
  this.sessionDir = sessionDir;
145
148
  this.metadata = metadata;
146
149
  }
@@ -1,9 +1,9 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
- var _chunkZYQMLKOKcjs = require('./chunk-ZYQMLKOK.cjs');
3
+ var _chunkCK4HAHVYcjs = require('./chunk-CK4HAHVY.cjs');
4
4
 
5
5
 
6
- var _chunk7BTSG4MEcjs = require('./chunk-7BTSG4ME.cjs');
6
+ var _chunkSY2P3Z5Wcjs = require('./chunk-SY2P3Z5W.cjs');
7
7
 
8
8
  // src/commands/ide.ts
9
9
  var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
@@ -398,24 +398,24 @@ function groupByIDE(detected) {
398
398
  }
399
399
  async function ide(ctx) {
400
400
  console.log(_chalk2.default.bold.cyan(`
401
- ${_chunk7BTSG4MEcjs.t.call(void 0, "commands.ide.title")}`));
402
- console.log(_chalk2.default.gray(_chunk7BTSG4MEcjs.t.call(void 0, "commands.ide.connectDescription")));
401
+ ${_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.ide.title")}`));
402
+ console.log(_chalk2.default.gray(_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.ide.connectDescription")));
403
403
  console.log();
404
404
  const detected = await detectRunningIDEs(ctx.workspaceRoot);
405
405
  const { matching, nonMatching } = groupByIDE(detected);
406
406
  if (detected.length === 0) {
407
- console.log(_chalk2.default.yellow(_chunk7BTSG4MEcjs.t.call(void 0, "commands.ide.noIdesDetected")));
407
+ console.log(_chalk2.default.yellow(_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.ide.noIdesDetected")));
408
408
  console.log();
409
409
  printExtensionSuggestions(detected);
410
410
  return null;
411
411
  }
412
412
  if (matching.length === 0) {
413
- console.log(_chalk2.default.yellow(_chunk7BTSG4MEcjs.t.call(void 0, "commands.ide.noMatchingIdes")));
413
+ console.log(_chalk2.default.yellow(_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.ide.noMatchingIdes")));
414
414
  console.log();
415
415
  if (nonMatching.size > 0) {
416
416
  console.log(
417
417
  _chalk2.default.gray(
418
- _chunk7BTSG4MEcjs.t.call(void 0, "commands.ide.otherNotMatching", { count: String(nonMatching.size) })
418
+ _chunkSY2P3Z5Wcjs.t.call(void 0, "commands.ide.otherNotMatching", { count: String(nonMatching.size) })
419
419
  )
420
420
  );
421
421
  console.log();
@@ -426,21 +426,27 @@ ${_chunk7BTSG4MEcjs.t.call(void 0, "commands.ide.title")}`));
426
426
  }
427
427
  console.log(
428
428
  _chalk2.default.green(
429
- _chunk7BTSG4MEcjs.t.call(void 0, "commands.ide.foundMatching", { count: String(matching.length) })
429
+ _chunkSY2P3Z5Wcjs.t.call(void 0, "commands.ide.foundMatching", { count: String(matching.length) })
430
430
  )
431
431
  );
432
432
  console.log();
433
433
  const options = matching.map((ide2) => ({
434
- label: `${ide2.displayName}: ${_nullishCoalesce(ide2.workspacePath, () => ( _chunk7BTSG4MEcjs.t.call(void 0, "common.unknown")))}`,
434
+ label: `${ide2.displayName}: ${_nullishCoalesce(ide2.workspacePath, () => ( _chunkSY2P3Z5Wcjs.t.call(void 0, "common.unknown")))}`,
435
435
  value: ide2.kind
436
436
  }));
437
- const result = await _chunkZYQMLKOKcjs.showModal.call(void 0, {
438
- title: _chunk7BTSG4MEcjs.t.call(void 0, "commands.ide.selectPrompt"),
439
- options
440
- });
437
+ await _optionalChain([ctx, 'access', _4 => _4.onBeforeModal, 'optionalCall', _5 => _5()]);
438
+ let result;
439
+ try {
440
+ result = await _chunkCK4HAHVYcjs.showModal.call(void 0, {
441
+ title: _chunkSY2P3Z5Wcjs.t.call(void 0, "commands.ide.selectPrompt"),
442
+ options
443
+ });
444
+ } finally {
445
+ await _optionalChain([ctx, 'access', _6 => _6.onAfterModal, 'optionalCall', _7 => _7()]);
446
+ }
441
447
  if (!result) {
442
448
  console.log(_chalk2.default.gray(`
443
- ${_chunk7BTSG4MEcjs.t.call(void 0, "common.cancelled")}`));
449
+ ${_chunkSY2P3Z5Wcjs.t.call(void 0, "common.cancelled")}`));
444
450
  return null;
445
451
  }
446
452
  const selected = matching.find((d) => d.kind === result.value);
@@ -448,7 +454,7 @@ ${_chunk7BTSG4MEcjs.t.call(void 0, "common.cancelled")}`));
448
454
  console.log(
449
455
  _chalk2.default.green(
450
456
  `
451
- \u2713 ${_chunk7BTSG4MEcjs.t.call(void 0, "commands.ide.connected", { ide: selected.displayName })}`
457
+ \u2713 ${_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.ide.connected", { ide: selected.displayName })}`
452
458
  )
453
459
  );
454
460
  }
@@ -456,7 +462,7 @@ ${_chunk7BTSG4MEcjs.t.call(void 0, "common.cancelled")}`));
456
462
  console.log();
457
463
  console.log(
458
464
  _chalk2.default.gray(
459
- _chunk7BTSG4MEcjs.t.call(void 0, "commands.ide.otherNotMatching", { count: String(nonMatching.size) })
465
+ _chunkSY2P3Z5Wcjs.t.call(void 0, "commands.ide.otherNotMatching", { count: String(nonMatching.size) })
460
466
  )
461
467
  );
462
468
  console.log();
@@ -467,7 +473,7 @@ ${_chunk7BTSG4MEcjs.t.call(void 0, "common.cancelled")}`));
467
473
  }
468
474
  function printNonMatchingIDEs(ides) {
469
475
  for (const ide2 of ides) {
470
- const wsPath = _nullishCoalesce(ide2.workspacePath, () => ( _chunk7BTSG4MEcjs.t.call(void 0, "common.unknown")));
476
+ const wsPath = _nullishCoalesce(ide2.workspacePath, () => ( _chunkSY2P3Z5Wcjs.t.call(void 0, "common.unknown")));
471
477
  console.log(_chalk2.default.gray(` \u2022 ${ide2.displayName}: ${wsPath}`));
472
478
  }
473
479
  console.log();
@@ -475,7 +481,7 @@ function printNonMatchingIDEs(ides) {
475
481
  function printExtensionSuggestions(detected) {
476
482
  const suggestions = getExtensionSuggestions(detected);
477
483
  if (suggestions.length === 0) return;
478
- console.log(_chalk2.default.dim(`\u{1F4A1} ${_chunk7BTSG4MEcjs.t.call(void 0, "commands.ide.extensionHint")}`));
484
+ console.log(_chalk2.default.dim(`\u{1F4A1} ${_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.ide.extensionHint")}`));
479
485
  for (const suggestion of suggestions) {
480
486
  const link = _terminallink2.default.call(void 0, suggestion.url, suggestion.url);
481
487
  console.log(_chalk2.default.dim(` \u2022 ${suggestion.displayName}: ${link}`));
@@ -484,7 +490,7 @@ function printExtensionSuggestions(detected) {
484
490
  }
485
491
  var metadata = {
486
492
  command: "/ide",
487
- description: _chunk7BTSG4MEcjs.t.call(void 0, "commands.ide.description"),
493
+ description: _chunkSY2P3Z5Wcjs.t.call(void 0, "commands.ide.description"),
488
494
  implemented: true
489
495
  };
490
496
 
@@ -0,0 +1,229 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }
2
+
3
+ var _chunkM7B7RRBKcjs = require('./chunk-M7B7RRBK.cjs');
4
+
5
+
6
+ var _chunkAQ5PVHOCcjs = require('./chunk-AQ5PVHOC.cjs');
7
+
8
+
9
+ var _chunkX5P6QQOBcjs = require('./chunk-X5P6QQOB.cjs');
10
+
11
+ // src/reporting/processErrorReporting.ts
12
+ var DEFAULT_API_BASE_URL = "https://api.autohand.ai";
13
+ var DEFAULT_REPORT_TIMEOUT_MS = 6500;
14
+ var installedProcesses = /* @__PURE__ */ new WeakSet();
15
+ var managerCache = /* @__PURE__ */ new Map();
16
+ function getArgValue(argv, flag) {
17
+ if (!argv) {
18
+ return void 0;
19
+ }
20
+ for (let i = 0; i < argv.length; i++) {
21
+ const token = argv[i];
22
+ if (token === flag) {
23
+ return argv[i + 1];
24
+ }
25
+ if (token.startsWith(`${flag}=`)) {
26
+ return token.slice(flag.length + 1);
27
+ }
28
+ }
29
+ return void 0;
30
+ }
31
+ function resolveConfigPath(processRef, explicitPath) {
32
+ return _nullishCoalesce(_nullishCoalesce(explicitPath, () => ( getArgValue(processRef.argv, "--config"))), () => ( processRef.env.AUTOHAND_CONFIG));
33
+ }
34
+ function detectClientName(processRef) {
35
+ const envClientName = processRef.env.AUTOHAND_CLIENT_NAME;
36
+ if (envClientName) {
37
+ return envClientName;
38
+ }
39
+ const mode = getArgValue(processRef.argv, "--mode");
40
+ if (mode === "acp" || mode === "rpc") {
41
+ return mode;
42
+ }
43
+ return "cli";
44
+ }
45
+ function getLogPrefix(processRef) {
46
+ return detectClientName(processRef) === "acp" ? "[ACP]" : "[DEBUG]";
47
+ }
48
+ function captureLastError(reason) {
49
+ globalThis.__autohandLastError = reason;
50
+ }
51
+ function sleep(ms) {
52
+ return new Promise((resolve) => setTimeout(resolve, ms));
53
+ }
54
+ function buildFallbackConfig(configPath, processRef) {
55
+ return {
56
+ provider: "openrouter",
57
+ api: {
58
+ baseUrl: processRef.env.AUTOHAND_API_URL || DEFAULT_API_BASE_URL,
59
+ companySecret: processRef.env.AUTOHAND_SECRET || ""
60
+ },
61
+ autoReport: {
62
+ enabled: true
63
+ },
64
+ telemetry: {
65
+ enabled: false
66
+ },
67
+ configPath: _nullishCoalesce(configPath, () => ( "process-error-fallback")),
68
+ isNewConfig: false
69
+ };
70
+ }
71
+ async function getAutoReportManager(processRef, explicitConfigPath) {
72
+ const configPath = resolveConfigPath(processRef, explicitConfigPath);
73
+ const cacheKey = _nullishCoalesce(configPath, () => ( "__default__"));
74
+ const cached = managerCache.get(cacheKey);
75
+ if (cached) {
76
+ return cached;
77
+ }
78
+ const managerPromise = (async () => {
79
+ let config;
80
+ try {
81
+ config = await _chunkX5P6QQOBcjs.loadConfig.call(void 0, configPath);
82
+ } catch (e) {
83
+ config = buildFallbackConfig(configPath, processRef);
84
+ }
85
+ return new (0, _chunkM7B7RRBKcjs.AutoReportManager)(config, _chunkAQ5PVHOCcjs.package_default.version);
86
+ })();
87
+ managerCache.set(cacheKey, managerPromise);
88
+ return managerPromise;
89
+ }
90
+ function isIgnorableStdinReadError(err, _processRef) {
91
+ if (!err || typeof err !== "object") {
92
+ return false;
93
+ }
94
+ const maybeError = err;
95
+ return maybeError.code === "EIO" && maybeError.syscall === "read";
96
+ }
97
+ function isIgnorableFilesystemError(err) {
98
+ if (!err || typeof err !== "object") return false;
99
+ const maybeError = err;
100
+ if (maybeError.syscall !== "mkdir") return false;
101
+ return maybeError.code === "EACCES" || maybeError.code === "EEXIST";
102
+ }
103
+ function isIgnorableTerminalOrRuntimeError(err) {
104
+ if (!err || typeof err !== "object") return false;
105
+ const message = _nullishCoalesce(err.message, () => ( ""));
106
+ if (/setRawMode.*errno/i.test(message)) return true;
107
+ if (message === "Generator is executing") return true;
108
+ if (message.includes("node:sqlite")) return true;
109
+ return false;
110
+ }
111
+ function isIgnorableUnhandledRejection(reason, processRef) {
112
+ if (reason && typeof reason === "object" && reason.code === "ERR_USE_AFTER_CLOSE") {
113
+ return true;
114
+ }
115
+ if (isIgnorableStdinReadError(reason, processRef)) return true;
116
+ if (isIgnorableFilesystemError(reason)) return true;
117
+ if (isIgnorableTerminalOrRuntimeError(reason)) return true;
118
+ return false;
119
+ }
120
+ function toReportableError(reason) {
121
+ if (reason instanceof Error) {
122
+ return reason;
123
+ }
124
+ const fallbackName = "NonErrorProcessFault";
125
+ if (reason && typeof reason === "object") {
126
+ const maybeErrorLike = reason;
127
+ const message = typeof maybeErrorLike.message === "string" ? maybeErrorLike.message : safeSerialize(reason);
128
+ const error2 = new Error(message);
129
+ error2.name = typeof maybeErrorLike.name === "string" ? maybeErrorLike.name : fallbackName;
130
+ return error2;
131
+ }
132
+ const error = new Error(typeof reason === "string" ? reason : String(reason));
133
+ error.name = fallbackName;
134
+ return error;
135
+ }
136
+ function safeSerialize(value) {
137
+ try {
138
+ return JSON.stringify(value);
139
+ } catch (e2) {
140
+ return String(value);
141
+ }
142
+ }
143
+ function describeReasonType(reason) {
144
+ if (reason === null) {
145
+ return "null";
146
+ }
147
+ if (Array.isArray(reason)) {
148
+ return "array";
149
+ }
150
+ return typeof reason;
151
+ }
152
+ async function reportProcessError(reason, options) {
153
+ const processRef = _nullishCoalesce(options.processRef, () => ( process));
154
+ if (options.handler === "unhandledRejection" && isIgnorableUnhandledRejection(reason, processRef)) {
155
+ return;
156
+ }
157
+ if (options.handler === "uncaughtException" && (isIgnorableStdinReadError(reason, processRef) || isIgnorableTerminalOrRuntimeError(reason))) {
158
+ return;
159
+ }
160
+ captureLastError(reason);
161
+ const error = toReportableError(reason);
162
+ const manager = await getAutoReportManager(processRef, options.configPath);
163
+ const reportPromise = manager.reportError(error, {
164
+ context: {
165
+ source: "process",
166
+ handler: options.handler,
167
+ clientName: detectClientName(processRef),
168
+ fatal: options.handler === "uncaughtException",
169
+ rawType: describeReasonType(reason),
170
+ ..._nullishCoalesce(options.extraContext, () => ( {}))
171
+ }
172
+ });
173
+ await Promise.race([
174
+ reportPromise,
175
+ sleep(_nullishCoalesce(options.reportTimeoutMs, () => ( DEFAULT_REPORT_TIMEOUT_MS)))
176
+ ]);
177
+ }
178
+ function installProcessErrorHandlers(options = {}) {
179
+ const processRef = _nullishCoalesce(options.processRef, () => ( process));
180
+ if (installedProcesses.has(processRef)) {
181
+ return;
182
+ }
183
+ installedProcesses.add(processRef);
184
+ const logError = _nullishCoalesce(options.logError, () => ( console.error.bind(console)));
185
+ const exit = _nullishCoalesce(options.exit, () => ( ((code) => {
186
+ processRef.exit(code);
187
+ })));
188
+ processRef.on("uncaughtException", (error) => {
189
+ if (isIgnorableStdinReadError(error, processRef)) {
190
+ return;
191
+ }
192
+ if (isIgnorableTerminalOrRuntimeError(error)) {
193
+ return;
194
+ }
195
+ captureLastError(error);
196
+ logError(`${getLogPrefix(processRef)} Uncaught Exception:`, error);
197
+ void (async () => {
198
+ await reportProcessError(error, {
199
+ handler: "uncaughtException",
200
+ processRef,
201
+ configPath: options.configPath,
202
+ reportTimeoutMs: options.reportTimeoutMs
203
+ });
204
+ exit(1);
205
+ })();
206
+ });
207
+ processRef.on("unhandledRejection", (reason, promise) => {
208
+ if (isIgnorableUnhandledRejection(reason, processRef)) {
209
+ return;
210
+ }
211
+ captureLastError(reason);
212
+ logError(`${getLogPrefix(processRef)} Unhandled Rejection at:`, promise, "reason:", reason);
213
+ void reportProcessError(reason, {
214
+ handler: "unhandledRejection",
215
+ processRef,
216
+ configPath: options.configPath,
217
+ reportTimeoutMs: options.reportTimeoutMs
218
+ });
219
+ });
220
+ }
221
+
222
+
223
+
224
+ exports.installProcessErrorHandlers = installProcessErrorHandlers;
225
+ /**
226
+ * @license
227
+ * Copyright 2025 Autohand AI LLC
228
+ * SPDX-License-Identifier: Apache-2.0
229
+ */