@redscope-ai/redscope 1.0.0

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 (619) hide show
  1. package/README.md +224 -0
  2. package/dist/chunk-090920rk.js +288 -0
  3. package/dist/chunk-0afb2r78.js +141 -0
  4. package/dist/chunk-0d4ekx1g.js +73 -0
  5. package/dist/chunk-0g6nwbhq.js +15 -0
  6. package/dist/chunk-0qj905nt.js +18 -0
  7. package/dist/chunk-0s5btnn1.js +186 -0
  8. package/dist/chunk-0s8fars0.js +91 -0
  9. package/dist/chunk-10ev3dvh.js +312 -0
  10. package/dist/chunk-10k5jfc5.js +1295 -0
  11. package/dist/chunk-12tspwqa.js +240 -0
  12. package/dist/chunk-13qesvnw.js +17 -0
  13. package/dist/chunk-143eh1e0.js +121 -0
  14. package/dist/chunk-14p6wvsq.js +39 -0
  15. package/dist/chunk-19f3zb1m.js +342 -0
  16. package/dist/chunk-1a5cep8h.js +145 -0
  17. package/dist/chunk-1abw9kkn.js +34 -0
  18. package/dist/chunk-1aer7c78.js +118 -0
  19. package/dist/chunk-1dazz4g6.js +154 -0
  20. package/dist/chunk-1fcf4ty1.js +142 -0
  21. package/dist/chunk-1gnxhyf8.js +62 -0
  22. package/dist/chunk-1he3944e.js +8124 -0
  23. package/dist/chunk-1jpayz7y.js +952 -0
  24. package/dist/chunk-1qd6f6vk.js +269 -0
  25. package/dist/chunk-1v0kpe62.js +2547 -0
  26. package/dist/chunk-1w20m7gw.js +445 -0
  27. package/dist/chunk-1y7kp51j.js +72 -0
  28. package/dist/chunk-1ycb5sxt.js +247 -0
  29. package/dist/chunk-1zbwhcbt.js +1124 -0
  30. package/dist/chunk-20psem54.js +116 -0
  31. package/dist/chunk-23h69r5b.js +30 -0
  32. package/dist/chunk-23x86ptv.js +473 -0
  33. package/dist/chunk-24fyv3jz.js +378 -0
  34. package/dist/chunk-24kv69g3.js +97 -0
  35. package/dist/chunk-2azx8zsc.js +125 -0
  36. package/dist/chunk-2d1gwzz9.js +524 -0
  37. package/dist/chunk-2g0ytd9d.js +29058 -0
  38. package/dist/chunk-2hfp9kat.js +21 -0
  39. package/dist/chunk-2j875eq6.js +37 -0
  40. package/dist/chunk-2kcgxnvp.js +39 -0
  41. package/dist/chunk-2kz09j2s.js +23 -0
  42. package/dist/chunk-2mwnwp0n.js +17 -0
  43. package/dist/chunk-2p1cqhcn.js +921 -0
  44. package/dist/chunk-2p369q9z.js +61 -0
  45. package/dist/chunk-2rf6asgf.js +151 -0
  46. package/dist/chunk-2vr7mqx1.js +384 -0
  47. package/dist/chunk-2xcg933e.js +205 -0
  48. package/dist/chunk-2ypwckbz.js +40310 -0
  49. package/dist/chunk-30wnahyg.js +626 -0
  50. package/dist/chunk-326zehp8.js +204 -0
  51. package/dist/chunk-32s6jzgw.js +183 -0
  52. package/dist/chunk-35yzt1a7.js +202 -0
  53. package/dist/chunk-38frkej6.js +62 -0
  54. package/dist/chunk-3abaq08g.js +34 -0
  55. package/dist/chunk-3h59ttr5.js +32 -0
  56. package/dist/chunk-3nk9q8dr.js +154 -0
  57. package/dist/chunk-3prrxevm.js +224 -0
  58. package/dist/chunk-3tv8p9xw.js +127 -0
  59. package/dist/chunk-3txyekes.js +19 -0
  60. package/dist/chunk-3vfxjn7g.js +19 -0
  61. package/dist/chunk-3w9sye8h.js +81 -0
  62. package/dist/chunk-3y69j7y8.js +24 -0
  63. package/dist/chunk-3zwjpkjh.js +1603 -0
  64. package/dist/chunk-40t1d75v.js +3442 -0
  65. package/dist/chunk-470kmby4.js +318 -0
  66. package/dist/chunk-47jc141z.js +335 -0
  67. package/dist/chunk-48rz50ct.js +868 -0
  68. package/dist/chunk-49wv03ts.js +232 -0
  69. package/dist/chunk-4a189mn2.js +103 -0
  70. package/dist/chunk-4c4fmh7a.js +15 -0
  71. package/dist/chunk-4ct8dsj5.js +49 -0
  72. package/dist/chunk-4kqt1pm1.js +100 -0
  73. package/dist/chunk-4ng0xy0e.js +802 -0
  74. package/dist/chunk-4spgkgr3.js +43 -0
  75. package/dist/chunk-4tjdwtyy.js +19 -0
  76. package/dist/chunk-4tr60273.js +370 -0
  77. package/dist/chunk-4vnaeng5.js +29 -0
  78. package/dist/chunk-4wbqpeaw.js +871 -0
  79. package/dist/chunk-4wgkv3fv.js +1140 -0
  80. package/dist/chunk-4yjskjb6.js +40 -0
  81. package/dist/chunk-50m3a23z.js +35 -0
  82. package/dist/chunk-511f79az.js +182 -0
  83. package/dist/chunk-51sgztvv.js +161 -0
  84. package/dist/chunk-563fcpv1.js +290 -0
  85. package/dist/chunk-564cnq6v.js +735 -0
  86. package/dist/chunk-569r8cxc.js +31 -0
  87. package/dist/chunk-570x55d4.js +12 -0
  88. package/dist/chunk-571556cm.js +80 -0
  89. package/dist/chunk-59t4c56e.js +63 -0
  90. package/dist/chunk-5axjhkma.js +36 -0
  91. package/dist/chunk-5b188q5e.js +157 -0
  92. package/dist/chunk-5dmn1865.js +439 -0
  93. package/dist/chunk-5ks4829r.js +267 -0
  94. package/dist/chunk-5mmhfbxb.js +1078 -0
  95. package/dist/chunk-5rdt14hy.js +742 -0
  96. package/dist/chunk-5ssryexj.js +121 -0
  97. package/dist/chunk-5v95pnq4.js +15 -0
  98. package/dist/chunk-5xvjt2t9.js +68 -0
  99. package/dist/chunk-5zyq6t1q.js +118 -0
  100. package/dist/chunk-60fkafk2.js +15 -0
  101. package/dist/chunk-62fjkf5q.js +46 -0
  102. package/dist/chunk-64gazrrb.js +8067 -0
  103. package/dist/chunk-65tq2yjx.js +126 -0
  104. package/dist/chunk-65zbgg1n.js +14 -0
  105. package/dist/chunk-66v8mty3.js +264 -0
  106. package/dist/chunk-6acx5heq.js +292 -0
  107. package/dist/chunk-6hr7742d.js +61 -0
  108. package/dist/chunk-6hygvrhn.js +143 -0
  109. package/dist/chunk-6kjh280m.js +128 -0
  110. package/dist/chunk-6s0q1s5r.js +66 -0
  111. package/dist/chunk-6x35ffpx.js +690 -0
  112. package/dist/chunk-71jfy1hh.js +570 -0
  113. package/dist/chunk-71sdcaq6.js +15 -0
  114. package/dist/chunk-754qdxs5.js +92 -0
  115. package/dist/chunk-79v5bkj4.js +1176 -0
  116. package/dist/chunk-7br0w7j5.js +151 -0
  117. package/dist/chunk-7cjgrzz1.js +298 -0
  118. package/dist/chunk-7d41ks0y.js +133 -0
  119. package/dist/chunk-7f40pmtr.js +71 -0
  120. package/dist/chunk-7g15x8hm.js +131 -0
  121. package/dist/chunk-7gtnzdet.js +120 -0
  122. package/dist/chunk-7h0z4aqx.js +702 -0
  123. package/dist/chunk-7h7e5a7d.js +25 -0
  124. package/dist/chunk-7m2cznwr.js +40 -0
  125. package/dist/chunk-7nvday0n.js +252 -0
  126. package/dist/chunk-7qey87th.js +145 -0
  127. package/dist/chunk-7qx3xhv3.js +9076 -0
  128. package/dist/chunk-7tfdhkpy.js +61 -0
  129. package/dist/chunk-80m511j6.js +121 -0
  130. package/dist/chunk-80ysxfe9.js +784 -0
  131. package/dist/chunk-8375zk8t.js +17200 -0
  132. package/dist/chunk-85bpkyy9.js +412 -0
  133. package/dist/chunk-85tcn547.js +876 -0
  134. package/dist/chunk-85vqgbc8.js +13 -0
  135. package/dist/chunk-86626jb4.js +49 -0
  136. package/dist/chunk-87ms17f6.js +444 -0
  137. package/dist/chunk-87mz239c.js +118 -0
  138. package/dist/chunk-89vdzt4e.js +254 -0
  139. package/dist/chunk-89z3e99z.js +159 -0
  140. package/dist/chunk-8cwrz1dd.js +1806 -0
  141. package/dist/chunk-8gv2pjby.js +21 -0
  142. package/dist/chunk-8hdevr3s.js +140 -0
  143. package/dist/chunk-8hdsk6qc.js +710 -0
  144. package/dist/chunk-8kct9arg.js +724 -0
  145. package/dist/chunk-8kf8h7xf.js +23 -0
  146. package/dist/chunk-8qed8ymj.js +605 -0
  147. package/dist/chunk-8sdgr592.js +101 -0
  148. package/dist/chunk-8we9w8pw.js +111 -0
  149. package/dist/chunk-8xnm5637.js +72 -0
  150. package/dist/chunk-8y3q0eqy.js +67 -0
  151. package/dist/chunk-8yvsnrkr.js +3449 -0
  152. package/dist/chunk-8zz4z1q3.js +42 -0
  153. package/dist/chunk-90eyff3k.js +119 -0
  154. package/dist/chunk-92bjkrf2.js +121 -0
  155. package/dist/chunk-92zrc7c6.js +327 -0
  156. package/dist/chunk-935nrvdb.js +13 -0
  157. package/dist/chunk-94pfyv6a.js +48 -0
  158. package/dist/chunk-9568p8se.js +115 -0
  159. package/dist/chunk-96km1ywr.js +37 -0
  160. package/dist/chunk-980bg4w4.js +163 -0
  161. package/dist/chunk-9a9g5hbj.js +205 -0
  162. package/dist/chunk-9cm4725d.js +4395 -0
  163. package/dist/chunk-9ds3vzq8.js +847 -0
  164. package/dist/chunk-9ffc9n60.js +618 -0
  165. package/dist/chunk-9fstrwv2.js +184 -0
  166. package/dist/chunk-9gt0g0qe.js +153 -0
  167. package/dist/chunk-9h9k5vz3.js +2761 -0
  168. package/dist/chunk-9he8bmhy.js +17 -0
  169. package/dist/chunk-9hn8e6h1.js +12 -0
  170. package/dist/chunk-9j0n3g8e.js +179 -0
  171. package/dist/chunk-9j6pa3ft.js +251 -0
  172. package/dist/chunk-9jpg9dn7.js +122 -0
  173. package/dist/chunk-9mycnwj5.js +46 -0
  174. package/dist/chunk-9npy2c17.js +517 -0
  175. package/dist/chunk-9p6sec8n.js +34 -0
  176. package/dist/chunk-9pnym83h.js +4584 -0
  177. package/dist/chunk-9skwrnd2.js +25 -0
  178. package/dist/chunk-9tsfaqr8.js +459 -0
  179. package/dist/chunk-9tsw3cqv.js +5924 -0
  180. package/dist/chunk-9w6ckyk4.js +49 -0
  181. package/dist/chunk-a15bwzv6.js +147 -0
  182. package/dist/chunk-a9t6cp69.js +28 -0
  183. package/dist/chunk-ad2yk19p.js +102 -0
  184. package/dist/chunk-ad4cw4nw.js +336 -0
  185. package/dist/chunk-ad69fbsk.js +347 -0
  186. package/dist/chunk-ae76ded0.js +30 -0
  187. package/dist/chunk-aeysytks.js +216 -0
  188. package/dist/chunk-ag81m9bq.js +61 -0
  189. package/dist/chunk-ahx7gp6r.js +4448 -0
  190. package/dist/chunk-aj4tk4tk.js +23 -0
  191. package/dist/chunk-an82t9jc.js +104 -0
  192. package/dist/chunk-apg95qd7.js +1393 -0
  193. package/dist/chunk-aq5n2adz.js +27 -0
  194. package/dist/chunk-aw4s3a99.js +208 -0
  195. package/dist/chunk-awgdfggg.js +14 -0
  196. package/dist/chunk-ayymxgn1.js +164 -0
  197. package/dist/chunk-azbab59e.js +637 -0
  198. package/dist/chunk-azdxq2a3.js +293 -0
  199. package/dist/chunk-b0tjx3k1.js +523 -0
  200. package/dist/chunk-b5pp4g2g.js +371 -0
  201. package/dist/chunk-b5zm8dt6.js +26 -0
  202. package/dist/chunk-bcnye5a0.js +109 -0
  203. package/dist/chunk-beqz3k49.js +190 -0
  204. package/dist/chunk-bf906wpw.js +147 -0
  205. package/dist/chunk-bgan4cpf.js +13 -0
  206. package/dist/chunk-bhzp13h7.js +1178 -0
  207. package/dist/chunk-bk403kpw.js +142 -0
  208. package/dist/chunk-bmq4c135.js +489 -0
  209. package/dist/chunk-bprbeda7.js +35 -0
  210. package/dist/chunk-bst7czdd.js +888 -0
  211. package/dist/chunk-bths4xgn.js +111 -0
  212. package/dist/chunk-btjn3qby.js +13 -0
  213. package/dist/chunk-bwb1vxnt.js +120 -0
  214. package/dist/chunk-bxa6tw4m.js +643 -0
  215. package/dist/chunk-bxfjr8qb.js +27 -0
  216. package/dist/chunk-bxpzhrej.js +73 -0
  217. package/dist/chunk-bzyzrq0k.js +51 -0
  218. package/dist/chunk-c0k7b0jw.js +4265 -0
  219. package/dist/chunk-c17f0h2s.js +16 -0
  220. package/dist/chunk-c1yc761e.js +6748 -0
  221. package/dist/chunk-c5g9shkw.js +298 -0
  222. package/dist/chunk-c696122m.js +69 -0
  223. package/dist/chunk-c92b3yxx.js +109 -0
  224. package/dist/chunk-c9aqz56y.js +143 -0
  225. package/dist/chunk-cba7c5w3.js +345 -0
  226. package/dist/chunk-cbcxbbe6.js +6543 -0
  227. package/dist/chunk-cdfjb87h.js +11 -0
  228. package/dist/chunk-ce8zjt1y.js +136 -0
  229. package/dist/chunk-cep7e37k.js +22740 -0
  230. package/dist/chunk-chs5qm8d.js +258 -0
  231. package/dist/chunk-ckydq33g.js +144 -0
  232. package/dist/chunk-cnge6wpj.js +514 -0
  233. package/dist/chunk-cpnsvqf1.js +13 -0
  234. package/dist/chunk-cqqebkv4.js +32 -0
  235. package/dist/chunk-cvqpp7dk.js +627 -0
  236. package/dist/chunk-cwc33j40.js +65 -0
  237. package/dist/chunk-cypvrq2a.js +155 -0
  238. package/dist/chunk-d1ha0swn.js +475 -0
  239. package/dist/chunk-d2an0138.js +35 -0
  240. package/dist/chunk-d2tt72ck.js +343 -0
  241. package/dist/chunk-d6wvcqrw.js +9507 -0
  242. package/dist/chunk-d7ys2kka.js +991 -0
  243. package/dist/chunk-dbts5q5p.js +122 -0
  244. package/dist/chunk-dct29ggs.js +295 -0
  245. package/dist/chunk-de0qnnf7.js +1059 -0
  246. package/dist/chunk-dep72ce4.js +513 -0
  247. package/dist/chunk-dgpvgy8x.js +47 -0
  248. package/dist/chunk-dhhd7dtc.js +20 -0
  249. package/dist/chunk-dhzpmxv6.js +594 -0
  250. package/dist/chunk-djes4da7.js +413 -0
  251. package/dist/chunk-dnhv3vx7.js +166 -0
  252. package/dist/chunk-dqtvafan.js +2365 -0
  253. package/dist/chunk-dr4a3tcp.js +60 -0
  254. package/dist/chunk-dz2xk9kb.js +100 -0
  255. package/dist/chunk-dz7nc6rf.js +15 -0
  256. package/dist/chunk-e3abfxpy.js +1486 -0
  257. package/dist/chunk-e3cq9z89.js +85 -0
  258. package/dist/chunk-e3j7m7k2.js +642 -0
  259. package/dist/chunk-e4dsy4g1.js +9951 -0
  260. package/dist/chunk-e5592pnn.js +197 -0
  261. package/dist/chunk-e55hdegh.js +129 -0
  262. package/dist/chunk-e5r5r04e.js +1030 -0
  263. package/dist/chunk-e60zztbt.js +442 -0
  264. package/dist/chunk-e7qq6vn0.js +372 -0
  265. package/dist/chunk-e9aat7xw.js +80 -0
  266. package/dist/chunk-e9d5v3zs.js +143 -0
  267. package/dist/chunk-eax32zk4.js +87 -0
  268. package/dist/chunk-ebfwmbx1.js +117 -0
  269. package/dist/chunk-ec71pb8t.js +971 -0
  270. package/dist/chunk-eemjb825.js +17252 -0
  271. package/dist/chunk-ees8xdhd.js +256 -0
  272. package/dist/chunk-eewg66y1.js +112 -0
  273. package/dist/chunk-eg22v12d.js +266 -0
  274. package/dist/chunk-enzzk67f.js +313 -0
  275. package/dist/chunk-eskhp70f.js +117 -0
  276. package/dist/chunk-ewx6z4g8.js +55 -0
  277. package/dist/chunk-eyvx461k.js +76 -0
  278. package/dist/chunk-eztq2b5f.js +94 -0
  279. package/dist/chunk-f0ffwzdd.js +321 -0
  280. package/dist/chunk-f80n68mf.js +119 -0
  281. package/dist/chunk-fae2hjxp.js +99 -0
  282. package/dist/chunk-fbtfp370.js +60 -0
  283. package/dist/chunk-fc6ndtgf.js +94 -0
  284. package/dist/chunk-fdwabr8p.js +13870 -0
  285. package/dist/chunk-fejeqe61.js +785 -0
  286. package/dist/chunk-fh0d6mvk.js +168 -0
  287. package/dist/chunk-fh19zcaf.js +304 -0
  288. package/dist/chunk-fh8bd39r.js +186 -0
  289. package/dist/chunk-fj2ebbpn.js +33 -0
  290. package/dist/chunk-fjn632v7.js +194 -0
  291. package/dist/chunk-fncpkzs5.js +1389 -0
  292. package/dist/chunk-fpd1gpt8.js +332 -0
  293. package/dist/chunk-fq9snrnh.js +295 -0
  294. package/dist/chunk-fqcfzg3j.js +207 -0
  295. package/dist/chunk-ftt3vqj2.js +1919 -0
  296. package/dist/chunk-g06pm4n9.js +395 -0
  297. package/dist/chunk-g4m5pf4g.js +8 -0
  298. package/dist/chunk-g72h52y6.js +36 -0
  299. package/dist/chunk-g79ej71s.js +1627 -0
  300. package/dist/chunk-g7fwk59d.js +19 -0
  301. package/dist/chunk-g9jnkrtm.js +663 -0
  302. package/dist/chunk-g9vg5d7t.js +38 -0
  303. package/dist/chunk-ga1jkyqy.js +1636 -0
  304. package/dist/chunk-gaaap2nk.js +676 -0
  305. package/dist/chunk-gc6erq5q.js +483 -0
  306. package/dist/chunk-gjrcmf0a.js +752 -0
  307. package/dist/chunk-gmdy2w3z.js +238999 -0
  308. package/dist/chunk-gsz4yrrk.js +81 -0
  309. package/dist/chunk-gy47rjy8.js +3830 -0
  310. package/dist/chunk-h12a4f4x.js +11 -0
  311. package/dist/chunk-h1yratmg.js +725 -0
  312. package/dist/chunk-h9y0jnsy.js +155 -0
  313. package/dist/chunk-hbhs3mwy.js +133 -0
  314. package/dist/chunk-hbs8cmb4.js +8 -0
  315. package/dist/chunk-hdk0t1ht.js +940 -0
  316. package/dist/chunk-hef8dx4s.js +178 -0
  317. package/dist/chunk-hgsca8mt.js +381 -0
  318. package/dist/chunk-hhsxm2yr.js +67 -0
  319. package/dist/chunk-hj5tzzpd.js +39 -0
  320. package/dist/chunk-hjxqmtg5.js +94 -0
  321. package/dist/chunk-hn4w9pkj.js +68 -0
  322. package/dist/chunk-hnprkjgp.js +25 -0
  323. package/dist/chunk-hq3n5ex7.js +183 -0
  324. package/dist/chunk-hqjspfma.js +158 -0
  325. package/dist/chunk-hqxp6b72.js +1198 -0
  326. package/dist/chunk-hs6nrmq6.js +94 -0
  327. package/dist/chunk-hwba5xdc.js +267 -0
  328. package/dist/chunk-hy566ev3.js +430 -0
  329. package/dist/chunk-hzmzwte2.js +153 -0
  330. package/dist/chunk-hzxzvzw8.js +274 -0
  331. package/dist/chunk-j139fzgs.js +114 -0
  332. package/dist/chunk-j1mep9ck.js +62 -0
  333. package/dist/chunk-j3xveeg4.js +273 -0
  334. package/dist/chunk-j5y1s11j.js +100 -0
  335. package/dist/chunk-j9475b46.js +26 -0
  336. package/dist/chunk-j9rgqs8m.js +1192 -0
  337. package/dist/chunk-jccjaddz.js +74 -0
  338. package/dist/chunk-jdkwfy9e.js +35 -0
  339. package/dist/chunk-jdqp0r4h.js +6157 -0
  340. package/dist/chunk-jdzk4zwn.js +587 -0
  341. package/dist/chunk-jfafmkte.js +49 -0
  342. package/dist/chunk-jg3r989b.js +16 -0
  343. package/dist/chunk-jhtccjc9.js +54 -0
  344. package/dist/chunk-jj2ff1pr.js +688 -0
  345. package/dist/chunk-jmv7k0jn.js +37 -0
  346. package/dist/chunk-jmxzmwpw.js +65 -0
  347. package/dist/chunk-jnjxdqyr.js +353 -0
  348. package/dist/chunk-jsbbez9j.js +138 -0
  349. package/dist/chunk-jvpt2dc0.js +424 -0
  350. package/dist/chunk-jwd7cka0.js +34 -0
  351. package/dist/chunk-jy5er3st.js +15 -0
  352. package/dist/chunk-jyby79z5.js +121 -0
  353. package/dist/chunk-jzyr6j5n.js +332 -0
  354. package/dist/chunk-k49xc781.js +63 -0
  355. package/dist/chunk-k7dt2g4a.js +41 -0
  356. package/dist/chunk-k7hexw3v.js +969 -0
  357. package/dist/chunk-k7wwkraa.js +117 -0
  358. package/dist/chunk-kb3758f7.js +51 -0
  359. package/dist/chunk-kc67kt75.js +3119 -0
  360. package/dist/chunk-kdhmfxmh.js +3149 -0
  361. package/dist/chunk-kejdd6zc.js +51 -0
  362. package/dist/chunk-kekrjeem.js +402 -0
  363. package/dist/chunk-kez5r0zz.js +280 -0
  364. package/dist/chunk-kfsvcs5t.js +75 -0
  365. package/dist/chunk-khtvffc4.js +285 -0
  366. package/dist/chunk-kkz4w1tv.js +64 -0
  367. package/dist/chunk-kmywng0j.js +272 -0
  368. package/dist/chunk-kq6vcpdr.js +224 -0
  369. package/dist/chunk-kqzdszcc.js +37 -0
  370. package/dist/chunk-ktxpp02w.js +435 -0
  371. package/dist/chunk-kwcvhbtz.js +26 -0
  372. package/dist/chunk-kx0cm9qr.js +128 -0
  373. package/dist/chunk-kxcmqz10.js +120 -0
  374. package/dist/chunk-kxwava1g.js +14 -0
  375. package/dist/chunk-kywtr3jg.js +825 -0
  376. package/dist/chunk-kzwg923p.js +8 -0
  377. package/dist/chunk-m1eq3sgv.js +255 -0
  378. package/dist/chunk-m21h5zb4.js +119 -0
  379. package/dist/chunk-m2c3bjv1.js +111 -0
  380. package/dist/chunk-m41e19ms.js +42 -0
  381. package/dist/chunk-m7ka36ex.js +97 -0
  382. package/dist/chunk-m81w8tbm.js +259 -0
  383. package/dist/chunk-m95ggkax.js +281 -0
  384. package/dist/chunk-manx26xa.js +145 -0
  385. package/dist/chunk-mdxh3pk2.js +298 -0
  386. package/dist/chunk-mhbfkcja.js +311 -0
  387. package/dist/chunk-mjnr5erm.js +173 -0
  388. package/dist/chunk-mngvnmwp.js +135 -0
  389. package/dist/chunk-mvfqanv5.js +63 -0
  390. package/dist/chunk-mw1nesq1.js +140 -0
  391. package/dist/chunk-mx168925.js +661 -0
  392. package/dist/chunk-mxwvj18g.js +795 -0
  393. package/dist/chunk-my7r5mba.js +257 -0
  394. package/dist/chunk-myaa1kkf.js +17 -0
  395. package/dist/chunk-myypc3tn.js +46 -0
  396. package/dist/chunk-mzcnmnpq.js +3379 -0
  397. package/dist/chunk-mznav6d1.js +194 -0
  398. package/dist/chunk-n0qxskpr.js +24 -0
  399. package/dist/chunk-n6a6hgtp.js +394 -0
  400. package/dist/chunk-n6d5fgx0.js +254 -0
  401. package/dist/chunk-n6ym3n03.js +120 -0
  402. package/dist/chunk-n9g24mwe.js +104 -0
  403. package/dist/chunk-naamqdf9.js +185 -0
  404. package/dist/chunk-nb2jk7zj.js +15 -0
  405. package/dist/chunk-nbkbq9en.js +67 -0
  406. package/dist/chunk-ndttd6es.js +38 -0
  407. package/dist/chunk-nfygaaxg.js +133 -0
  408. package/dist/chunk-ngdzpszd.js +454 -0
  409. package/dist/chunk-nmfwksa4.js +1297 -0
  410. package/dist/chunk-nt837qt9.js +21 -0
  411. package/dist/chunk-nwc3v0vp.js +691 -0
  412. package/dist/chunk-nz8ha95p.js +3610 -0
  413. package/dist/chunk-nzxfj0gq.js +2007 -0
  414. package/dist/chunk-p0r8887g.js +6932 -0
  415. package/dist/chunk-p1seyqdm.js +120 -0
  416. package/dist/chunk-p425zbgw.js +726 -0
  417. package/dist/chunk-p7hamd2c.js +146 -0
  418. package/dist/chunk-pdvg91cg.js +32 -0
  419. package/dist/chunk-pecy49yr.js +14649 -0
  420. package/dist/chunk-pfxrg89f.js +547 -0
  421. package/dist/chunk-pfyw3155.js +2750 -0
  422. package/dist/chunk-pr8m11pm.js +1192 -0
  423. package/dist/chunk-ptxteaeh.js +1591 -0
  424. package/dist/chunk-pv164mac.js +394 -0
  425. package/dist/chunk-pxxhtxf5.js +10154 -0
  426. package/dist/chunk-q0e485mg.js +61 -0
  427. package/dist/chunk-q1vrhh0q.js +458 -0
  428. package/dist/chunk-q2h79ncs.js +370 -0
  429. package/dist/chunk-q3b4n194.js +56 -0
  430. package/dist/chunk-q44zc68f.js +4301 -0
  431. package/dist/chunk-q8gknbdx.js +352 -0
  432. package/dist/chunk-q8xk3kdj.js +11 -0
  433. package/dist/chunk-qak46xtp.js +119 -0
  434. package/dist/chunk-qfq7absv.js +95 -0
  435. package/dist/chunk-qfsn720k.js +151 -0
  436. package/dist/chunk-qg4811f6.js +228 -0
  437. package/dist/chunk-qgzn3qps.js +90 -0
  438. package/dist/chunk-qhaggqkt.js +113 -0
  439. package/dist/chunk-qjjp27z8.js +195 -0
  440. package/dist/chunk-qxp0nye6.js +34 -0
  441. package/dist/chunk-qy3nagaq.js +4957 -0
  442. package/dist/chunk-qz2meav1.js +1452 -0
  443. package/dist/chunk-r50hne7m.js +63 -0
  444. package/dist/chunk-r6m0vgnv.js +80 -0
  445. package/dist/chunk-r7yw38vf.js +22864 -0
  446. package/dist/chunk-r8xc618w.js +42 -0
  447. package/dist/chunk-r961r5kj.js +87 -0
  448. package/dist/chunk-r9b5xrh0.js +66 -0
  449. package/dist/chunk-rcn2pd6q.js +477 -0
  450. package/dist/chunk-rdeh8p3y.js +148 -0
  451. package/dist/chunk-rg9x1742.js +542 -0
  452. package/dist/chunk-rgyzsbs3.js +39 -0
  453. package/dist/chunk-rk2fsxtz.js +16 -0
  454. package/dist/chunk-rkchkwv9.js +40 -0
  455. package/dist/chunk-rp8whpb3.js +478 -0
  456. package/dist/chunk-rpkxdtgr.js +68 -0
  457. package/dist/chunk-rpmntgyh.js +394 -0
  458. package/dist/chunk-rpshz4dy.js +614 -0
  459. package/dist/chunk-rqd60ay5.js +133 -0
  460. package/dist/chunk-rrsjf2ea.js +229 -0
  461. package/dist/chunk-rtjk8c8e.js +173 -0
  462. package/dist/chunk-rw0y2wdf.js +1017 -0
  463. package/dist/chunk-rx5w7ess.js +663 -0
  464. package/dist/chunk-rx8t9d35.js +1947 -0
  465. package/dist/chunk-rxcazxgf.js +195 -0
  466. package/dist/chunk-rxg6q3bp.js +1413 -0
  467. package/dist/chunk-rxrb7xnd.js +71 -0
  468. package/dist/chunk-rxrzxff3.js +118 -0
  469. package/dist/chunk-ryqjc943.js +71 -0
  470. package/dist/chunk-rzk9k2rf.js +81 -0
  471. package/dist/chunk-s2qv0nht.js +119 -0
  472. package/dist/chunk-s3hafnk3.js +2285 -0
  473. package/dist/chunk-s4a496tt.js +226 -0
  474. package/dist/chunk-s4d1h3ka.js +35 -0
  475. package/dist/chunk-sm3k3ze4.js +16525 -0
  476. package/dist/chunk-sn0bja82.js +385 -0
  477. package/dist/chunk-sngjggw1.js +4227 -0
  478. package/dist/chunk-sq047n34.js +364 -0
  479. package/dist/chunk-sttwe2tw.js +8584 -0
  480. package/dist/chunk-sw8qx1r0.js +86 -0
  481. package/dist/chunk-swstah6a.js +240 -0
  482. package/dist/chunk-syrkr0mf.js +63 -0
  483. package/dist/chunk-sz206bd9.js +26 -0
  484. package/dist/chunk-t09669cj.js +333 -0
  485. package/dist/chunk-t5f8e30k.js +602 -0
  486. package/dist/chunk-t5m78mc8.js +432 -0
  487. package/dist/chunk-t5x1dqwn.js +143 -0
  488. package/dist/chunk-t877ea0w.js +168 -0
  489. package/dist/chunk-t91hb71c.js +17 -0
  490. package/dist/chunk-tb636bcf.js +942 -0
  491. package/dist/chunk-tb8sykbr.js +426 -0
  492. package/dist/chunk-tbdkekz3.js +125 -0
  493. package/dist/chunk-td2gsz7s.js +225 -0
  494. package/dist/chunk-tenvxbyh.js +20 -0
  495. package/dist/chunk-texg4qqt.js +317 -0
  496. package/dist/chunk-teymzz80.js +266 -0
  497. package/dist/chunk-tj26qpf7.js +153 -0
  498. package/dist/chunk-tk85ec4p.js +395 -0
  499. package/dist/chunk-tq205h01.js +164 -0
  500. package/dist/chunk-tqzddjzg.js +61 -0
  501. package/dist/chunk-trqrj23e.js +134 -0
  502. package/dist/chunk-tw1hfsxv.js +2477 -0
  503. package/dist/chunk-txxdfq83.js +122 -0
  504. package/dist/chunk-v0yhe582.js +31 -0
  505. package/dist/chunk-v14184xm.js +15 -0
  506. package/dist/chunk-v1h9z4hw.js +138 -0
  507. package/dist/chunk-v3ey5j7f.js +329 -0
  508. package/dist/chunk-v3nh1sfn.js +208 -0
  509. package/dist/chunk-v3x8tcc0.js +45 -0
  510. package/dist/chunk-v4nqnvqq.js +3984 -0
  511. package/dist/chunk-v4ypszbb.js +15 -0
  512. package/dist/chunk-v7wbqcx9.js +63 -0
  513. package/dist/chunk-v8r5fev3.js +341 -0
  514. package/dist/chunk-v9zg5kzx.js +2810 -0
  515. package/dist/chunk-va1wh5ss.js +24 -0
  516. package/dist/chunk-vbfswhht.js +42 -0
  517. package/dist/chunk-ve7x2tfq.js +124 -0
  518. package/dist/chunk-vfz8k89y.js +485 -0
  519. package/dist/chunk-vgm5k14x.js +35678 -0
  520. package/dist/chunk-vh9pej3c.js +247 -0
  521. package/dist/chunk-vjxqyt6f.js +3820 -0
  522. package/dist/chunk-vpb1xstn.js +178 -0
  523. package/dist/chunk-vqt79tj8.js +110 -0
  524. package/dist/chunk-vr0n9pv9.js +152 -0
  525. package/dist/chunk-vrejmja5.js +90 -0
  526. package/dist/chunk-vrxasmdw.js +449 -0
  527. package/dist/chunk-vrxb946v.js +125 -0
  528. package/dist/chunk-vv4kj0q8.js +98 -0
  529. package/dist/chunk-vvpfng7w.js +8 -0
  530. package/dist/chunk-vw6ybyew.js +2007 -0
  531. package/dist/chunk-vwenx8ke.js +17 -0
  532. package/dist/chunk-vwfa0s5a.js +155 -0
  533. package/dist/chunk-vx71j8xe.js +63 -0
  534. package/dist/chunk-vxbjzggp.js +43 -0
  535. package/dist/chunk-vxjxtz8w.js +440 -0
  536. package/dist/chunk-vy0c1bwp.js +9 -0
  537. package/dist/chunk-w3zczyse.js +14 -0
  538. package/dist/chunk-w4p5t920.js +655 -0
  539. package/dist/chunk-w68wc625.js +287 -0
  540. package/dist/chunk-w9ddp3yf.js +96 -0
  541. package/dist/chunk-wcggm5ja.js +125 -0
  542. package/dist/chunk-wgnyph3q.js +1306 -0
  543. package/dist/chunk-wjm5pc1e.js +134 -0
  544. package/dist/chunk-wnve0drm.js +131 -0
  545. package/dist/chunk-wp27ev2k.js +135 -0
  546. package/dist/chunk-wyvy8a4x.js +131 -0
  547. package/dist/chunk-x671y4dk.js +129 -0
  548. package/dist/chunk-xbj5keyy.js +22 -0
  549. package/dist/chunk-xf4fzms8.js +39 -0
  550. package/dist/chunk-xf59k3zg.js +65 -0
  551. package/dist/chunk-xgzc4w49.js +204 -0
  552. package/dist/chunk-xhj7g13b.js +2149 -0
  553. package/dist/chunk-xjp0cd00.js +56 -0
  554. package/dist/chunk-xkhnmhqs.js +74 -0
  555. package/dist/chunk-xkrkqx61.js +55 -0
  556. package/dist/chunk-xmpgmeb8.js +114 -0
  557. package/dist/chunk-xrw80zgd.js +4249 -0
  558. package/dist/chunk-xrzc96g0.js +202 -0
  559. package/dist/chunk-xt76sm44.js +318 -0
  560. package/dist/chunk-xwet3awb.js +20 -0
  561. package/dist/chunk-xyg1sk2w.js +78 -0
  562. package/dist/chunk-y0jpkqb0.js +180 -0
  563. package/dist/chunk-y1q7rt9n.js +102 -0
  564. package/dist/chunk-y67ntyek.js +258 -0
  565. package/dist/chunk-ybk37qp9.js +37 -0
  566. package/dist/chunk-yc1stfve.js +5386 -0
  567. package/dist/chunk-ychjpjef.js +62 -0
  568. package/dist/chunk-yez8fa9g.js +276 -0
  569. package/dist/chunk-ygm7xszr.js +90 -0
  570. package/dist/chunk-ym11azkj.js +37 -0
  571. package/dist/chunk-ympz2h15.js +578 -0
  572. package/dist/chunk-yqx3az3n.js +129 -0
  573. package/dist/chunk-yt3nfhcc.js +152 -0
  574. package/dist/chunk-yy8q0n8s.js +120 -0
  575. package/dist/chunk-yzb92zxv.js +8 -0
  576. package/dist/chunk-yzet6xyr.js +119 -0
  577. package/dist/chunk-yzm97qp1.js +226 -0
  578. package/dist/chunk-z0jgeax8.js +35 -0
  579. package/dist/chunk-z1r3z6w6.js +29 -0
  580. package/dist/chunk-z2dp53wn.js +17 -0
  581. package/dist/chunk-z79355gz.js +308 -0
  582. package/dist/chunk-z7e94hxz.js +251 -0
  583. package/dist/chunk-z8cqdcec.js +173 -0
  584. package/dist/chunk-z99tbg45.js +148 -0
  585. package/dist/chunk-z9nsjcht.js +37 -0
  586. package/dist/chunk-za3k6h2h.js +470 -0
  587. package/dist/chunk-zacynq5p.js +265 -0
  588. package/dist/chunk-zb0x40az.js +1785 -0
  589. package/dist/chunk-zbxtzycc.js +274 -0
  590. package/dist/chunk-zga50181.js +342 -0
  591. package/dist/chunk-zhb2pns1.js +44 -0
  592. package/dist/chunk-zkch6trx.js +231 -0
  593. package/dist/chunk-znf3z4qt.js +954 -0
  594. package/dist/chunk-zp8zwdgq.js +72 -0
  595. package/dist/chunk-ztjd8pyf.js +120 -0
  596. package/dist/chunk-ztmb7geg.js +173 -0
  597. package/dist/chunk-zvr4snzv.js +887 -0
  598. package/dist/chunk-zw62m6n3.js +34858 -0
  599. package/dist/chunk-zwwdebd0.js +65 -0
  600. package/dist/chunk-zxc6x9w8.js +340 -0
  601. package/dist/chunk-zy2e7sz0.js +8 -0
  602. package/dist/chunk-zzf074w3.js +196 -0
  603. package/dist/chunk-zzz0nwb5.js +310 -0
  604. package/dist/cli-bun.js +2 -0
  605. package/dist/cli-node.js +2 -0
  606. package/dist/cli.js +218 -0
  607. package/dist/vendor/audio-capture/arm64-darwin/audio-capture.node +0 -0
  608. package/dist/vendor/audio-capture/arm64-linux/audio-capture.node +0 -0
  609. package/dist/vendor/audio-capture/arm64-win32/audio-capture.node +0 -0
  610. package/dist/vendor/audio-capture/x64-darwin/audio-capture.node +0 -0
  611. package/dist/vendor/audio-capture/x64-linux/audio-capture.node +0 -0
  612. package/dist/vendor/audio-capture/x64-win32/audio-capture.node +0 -0
  613. package/dist/vendor/ripgrep/x64-win32/rg.exe +0 -0
  614. package/package.json +243 -0
  615. package/scripts/chrome-mcp-bridge-resolver.mjs +43 -0
  616. package/scripts/chrome-mcp-env.mjs +19 -0
  617. package/scripts/postinstall.cjs +339 -0
  618. package/scripts/run-parallel.mjs +10 -0
  619. package/scripts/setup-chrome-mcp.mjs +69 -0
@@ -0,0 +1,342 @@
1
+ // @bun
2
+ import {
3
+ generateSkillDraft,
4
+ init_skillGenerator,
5
+ writeLearnedSkill
6
+ } from "./chunk-b0tjx3k1.js";
7
+ import {
8
+ getProjectStorageDir,
9
+ init_projectContext,
10
+ resolveProjectContext
11
+ } from "./chunk-fqcfzg3j.js";
12
+ import {
13
+ createInstinct,
14
+ init_instinctParser
15
+ } from "./chunk-w9ddp3yf.js";
16
+ import {
17
+ __esm,
18
+ __require
19
+ } from "./chunk-hhsxm2yr.js";
20
+
21
+ // src/services/skillLearning/skillGapStore.ts
22
+ import { existsSync } from "fs";
23
+ import { mkdir, readFile, rename, writeFile } from "fs/promises";
24
+ import { createHash } from "crypto";
25
+ import { dirname, join } from "path";
26
+ async function recordSkillGap(options) {
27
+ const prompt = options.prompt.trim();
28
+ if (!prompt) {
29
+ throw new Error("Cannot record an empty skill gap");
30
+ }
31
+ const project = options.project ?? resolveProjectContext(options.cwd);
32
+ const state = await readSkillGapState(project, options.rootDir);
33
+ const key = buildSkillGapKey(prompt);
34
+ const now = new Date().toISOString();
35
+ const existing = state.gaps[key];
36
+ const gap = {
37
+ key,
38
+ prompt,
39
+ count: (existing?.count ?? 0) + 1,
40
+ draftHits: existing?.draftHits ?? 0,
41
+ draftHitSessions: existing?.draftHitSessions ?? [],
42
+ status: existing?.status ?? "pending",
43
+ sessionId: options.sessionId ?? "unknown-session",
44
+ cwd: options.cwd ?? project.cwd,
45
+ projectId: project.projectId,
46
+ projectName: project.projectName,
47
+ recommendations: (options.recommendations ?? []).slice(0, 5).map((r) => ({
48
+ name: r.name,
49
+ description: r.description,
50
+ score: r.score
51
+ })),
52
+ createdAt: existing?.createdAt ?? now,
53
+ updatedAt: now,
54
+ draft: existing?.draft,
55
+ active: existing?.active
56
+ };
57
+ if (gap.status === "rejected") {
58
+ state.gaps[key] = gap;
59
+ await writeSkillGapState(project, state, options.rootDir);
60
+ return gap;
61
+ }
62
+ if (!gap.draft && shouldPromoteToDraft(gap)) {
63
+ gap.draft = await writeSkillGapDraft(gap, project);
64
+ gap.status = "draft";
65
+ await clearRuntimeSkillCaches();
66
+ }
67
+ if (gap.draft && !gap.active && shouldPromoteToActive(gap)) {
68
+ gap.active = await writeActiveSkillForGap(gap, project);
69
+ gap.status = "active";
70
+ await clearRuntimeSkillCaches();
71
+ }
72
+ state.gaps[key] = gap;
73
+ await writeSkillGapState(project, state, options.rootDir);
74
+ return gap;
75
+ }
76
+ async function readSkillGaps(project = resolveProjectContext(), rootDir) {
77
+ const state = await readSkillGapState(project, rootDir);
78
+ return Object.values(state.gaps).sort((a, b) => a.key.localeCompare(b.key));
79
+ }
80
+ async function findGapKeyByDraftPath(draftPath, project = resolveProjectContext(), rootDir) {
81
+ const state = await readSkillGapState(project, rootDir);
82
+ for (const gap of Object.values(state.gaps)) {
83
+ if (gap.draft?.skillPath === draftPath)
84
+ return gap.key;
85
+ }
86
+ return;
87
+ }
88
+ async function recordDraftHit(key, project = resolveProjectContext(), rootDir, sessionId = "unknown-session") {
89
+ const state = await readSkillGapState(project, rootDir);
90
+ const gap = state.gaps[key];
91
+ if (!gap || !gap.draft || gap.active)
92
+ return gap;
93
+ const existingSessions = gap.draftHitSessions ?? [];
94
+ if (existingSessions.includes(sessionId))
95
+ return gap;
96
+ const now = new Date().toISOString();
97
+ const updated = {
98
+ ...gap,
99
+ draftHits: gap.draftHits + 1,
100
+ draftHitSessions: [...existingSessions, sessionId],
101
+ updatedAt: now
102
+ };
103
+ if (shouldPromoteToActive(updated)) {
104
+ updated.active = await writeActiveSkillForGap(updated, project);
105
+ updated.status = "active";
106
+ await clearRuntimeSkillCaches();
107
+ }
108
+ state.gaps[key] = updated;
109
+ await writeSkillGapState(project, state, rootDir);
110
+ return updated;
111
+ }
112
+ async function promoteGapToDraft(key, project = resolveProjectContext(), rootDir) {
113
+ const state = await readSkillGapState(project, rootDir);
114
+ const gap = state.gaps[key];
115
+ if (!gap)
116
+ return;
117
+ if (gap.status === "rejected")
118
+ return gap;
119
+ if (gap.draft)
120
+ return gap;
121
+ const updated = {
122
+ ...gap,
123
+ draft: await writeSkillGapDraft(gap, project),
124
+ status: "draft",
125
+ updatedAt: new Date().toISOString()
126
+ };
127
+ state.gaps[key] = updated;
128
+ await writeSkillGapState(project, state, rootDir);
129
+ await clearRuntimeSkillCaches();
130
+ return updated;
131
+ }
132
+ async function rejectSkillGap(key, project = resolveProjectContext(), rootDir) {
133
+ const state = await readSkillGapState(project, rootDir);
134
+ const gap = state.gaps[key];
135
+ if (!gap)
136
+ return;
137
+ const updated = {
138
+ ...gap,
139
+ status: "rejected",
140
+ updatedAt: new Date().toISOString()
141
+ };
142
+ state.gaps[key] = updated;
143
+ await writeSkillGapState(project, state, rootDir);
144
+ return updated;
145
+ }
146
+ function shouldPromoteToDraft(gap) {
147
+ return gap.count >= DRAFT_PROMOTION_COUNT;
148
+ }
149
+ function shouldPromoteToActive(gap) {
150
+ if (!gap.draft)
151
+ return false;
152
+ return gap.count >= ACTIVE_PROMOTION_COUNT || gap.draftHits >= ACTIVE_PROMOTION_DRAFT_HITS;
153
+ }
154
+ async function writeSkillGapDraft(gap, project) {
155
+ const instinct = createGapInstinct(gap, "pending");
156
+ const draftsRoot = join(project.projectRoot ?? project.cwd, ".claude", "skills", ".drafts");
157
+ const draft = generateSkillDraft([instinct], {
158
+ cwd: project.projectRoot ?? project.cwd,
159
+ outputRoot: draftsRoot,
160
+ scope: "project",
161
+ name: `draft-${buildNameFragment(gap.prompt)}`,
162
+ description: "Draft learned skill candidate. Promote after repeated evidence or explicit user correction."
163
+ });
164
+ const skillFile = join(draft.outputPath, "SKILL.md");
165
+ if (!existsSync(skillFile)) {
166
+ await writeLearnedSkill({
167
+ ...draft,
168
+ content: draft.content + `
169
+ ## Promotion Rule
170
+
171
+ Do not move this draft into active skills until the same gap repeats or the user explicitly confirms this should become reusable.
172
+ `
173
+ });
174
+ }
175
+ return { type: "draft", name: draft.name, skillPath: skillFile };
176
+ }
177
+ async function writeActiveSkillForGap(gap, project) {
178
+ const instinct = createGapInstinct(gap, "active");
179
+ const draft = generateSkillDraft([instinct], {
180
+ cwd: project.projectRoot ?? project.cwd,
181
+ scope: "project",
182
+ name: buildNameFragment(gap.prompt),
183
+ description: buildGapAction(gap.prompt)
184
+ });
185
+ const skillFile = join(draft.outputPath, "SKILL.md");
186
+ if (!existsSync(skillFile)) {
187
+ await writeLearnedSkill(draft);
188
+ }
189
+ return { type: "active", name: draft.name, skillPath: skillFile };
190
+ }
191
+ function createGapInstinct(gap, status) {
192
+ return createInstinct({
193
+ trigger: `When the user asks for ${summarize(gap.prompt, 120)}`,
194
+ action: buildGapAction(gap.prompt),
195
+ confidence: status === "active" ? 0.82 : 0.55,
196
+ domain: inferDomain(gap.prompt),
197
+ source: "session-observation",
198
+ scope: "project",
199
+ projectId: gap.projectId,
200
+ projectName: gap.projectName,
201
+ evidence: [
202
+ `Skill gap prompt: ${summarize(gap.prompt, 180)}`,
203
+ `No high-confidence active skill was auto-loaded.`,
204
+ `Observed ${gap.count} time(s).`
205
+ ],
206
+ status
207
+ });
208
+ }
209
+ function buildGapAction(prompt) {
210
+ if (/feature\s*\(|feature flag|flag_name|stub|no-op|noop|\u6700\u5C0F\u5B9E\u73B0/i.test(prompt)) {
211
+ return "Audit feature flags by scanning feature() call sites, excluding generated/dependency noise, classifying each candidate as stub, shell, MVP, or thin-toggle, and writing an evidence-backed document.";
212
+ }
213
+ if (/skill|\u6280\u80FD|\u5B66\u4E60|\u8FDB\u5316|evolve|learning/i.test(prompt)) {
214
+ return "Run skill discovery first; auto-load only high-confidence matching skills; record a skill gap when none match; promote repeated or corrected gaps into learned skills.";
215
+ }
216
+ if (/test|\u6D4B\u8BD5|stub|\u8C03\u7528\u94FE|\u53C2\u6570/i.test(prompt)) {
217
+ return "Infer tests from existing files, parameters, exports, and call chains before simplifying mocks or inventing behavior.";
218
+ }
219
+ return `Reuse the workflow learned from this prompt: ${summarize(prompt, 180)}.`;
220
+ }
221
+ function inferDomain(prompt) {
222
+ const text = prompt.toLowerCase();
223
+ if (/test|\u6D4B\u8BD5|stub|fixture|\u65AD\u8A00/.test(text))
224
+ return "testing";
225
+ if (/error|bug|fix|\u5931\u8D25|\u9519\u8BEF|\u4FEE\u590D|debug/.test(text))
226
+ return "debugging";
227
+ if (/security|\u5B89\u5168|\u6F0F\u6D1E|secret|token/.test(text))
228
+ return "security";
229
+ if (/git|commit|branch|pr\b/.test(text))
230
+ return "git";
231
+ if (/style|lint|format|\u547D\u540D|\u89C4\u8303/.test(text))
232
+ return "code-style";
233
+ return "workflow";
234
+ }
235
+ async function readSkillGapState(project, rootDir) {
236
+ const path = getSkillGapStatePath(project, rootDir);
237
+ let raw;
238
+ try {
239
+ raw = await readFile(path, "utf8");
240
+ } catch (error) {
241
+ if (error.code === "ENOENT") {
242
+ return { version: 1, gaps: {} };
243
+ }
244
+ throw error;
245
+ }
246
+ try {
247
+ return migrateLegacyGapState(JSON.parse(raw));
248
+ } catch {
249
+ const backup = `${path}.corrupt-${Date.now()}`;
250
+ try {
251
+ await writeFile(backup, raw, "utf8");
252
+ } catch {}
253
+ return { version: 1, gaps: {} };
254
+ }
255
+ }
256
+ function migrateLegacyGapState(state) {
257
+ const migrated = {};
258
+ for (const [key, record] of Object.entries(state.gaps ?? {})) {
259
+ const legacy = record;
260
+ const draftHits = typeof legacy.draftHits === "number" && Number.isFinite(legacy.draftHits) ? legacy.draftHits : 0;
261
+ const count = typeof legacy.count === "number" ? legacy.count : 1;
262
+ const normalizedStatus = normalizeLegacyStatus(legacy.status);
263
+ const hasDraftFile = Boolean(legacy.draft);
264
+ const hasActiveFile = Boolean(legacy.active);
265
+ let status = normalizedStatus;
266
+ if (status === "draft" && count < DRAFT_PROMOTION_COUNT && !hasDraftFile) {
267
+ status = "pending";
268
+ }
269
+ if (status === "active" && !hasActiveFile) {
270
+ status = hasDraftFile ? "draft" : "pending";
271
+ }
272
+ const draftHitSessions = Array.isArray(legacy.draftHitSessions) ? legacy.draftHitSessions.filter((session) => typeof session === "string") : [];
273
+ migrated[key] = {
274
+ ...record,
275
+ count,
276
+ draftHits,
277
+ draftHitSessions,
278
+ status
279
+ };
280
+ }
281
+ return { version: 1, gaps: migrated };
282
+ }
283
+ function normalizeLegacyStatus(value) {
284
+ if (value === "pending" || value === "draft" || value === "active" || value === "rejected") {
285
+ return value;
286
+ }
287
+ return "pending";
288
+ }
289
+ async function writeSkillGapState(project, state, rootDir) {
290
+ const path = getSkillGapStatePath(project, rootDir);
291
+ await mkdir(dirname(path), { recursive: true });
292
+ const tmpPath = `${path}.tmp-${process.pid}-${Date.now()}`;
293
+ await writeFile(tmpPath, `${JSON.stringify(state, null, 2)}
294
+ `, "utf8");
295
+ await rename(tmpPath, path);
296
+ }
297
+ function getSkillGapStatePath(project, rootDir) {
298
+ const base = rootDir ? project.projectId === "global" ? join(rootDir, "global") : join(rootDir, "projects", project.projectId) : getProjectStorageDir(project.projectId);
299
+ return join(base, "skill-gaps.json");
300
+ }
301
+ function buildSkillGapKey(prompt) {
302
+ return `${buildNameFragment(prompt)}-${hash(prompt).slice(0, 8)}`;
303
+ }
304
+ function buildNameFragment(prompt) {
305
+ const mapped = prompt.replaceAll("\u6280\u80FD", " skill ").replaceAll("\u5B66\u4E60", " learning ").replaceAll("\u8FDB\u5316", " evolution ").replaceAll("\u6D4B\u8BD5", " testing ").replaceAll("\u6700\u5C0F\u5B9E\u73B0", " minimal implementation ").toLowerCase();
306
+ const stop = new Set([
307
+ "the",
308
+ "and",
309
+ "for",
310
+ "with",
311
+ "this",
312
+ "that",
313
+ "user",
314
+ "about",
315
+ "feature",
316
+ "flag",
317
+ "name"
318
+ ]);
319
+ const words = (mapped.match(/[a-z0-9][a-z0-9_-]{2,}/g) ?? []).filter((word) => !stop.has(word)).slice(0, 5);
320
+ const value = words.join("-") || "learned-gap";
321
+ return value.slice(0, 54).replace(/-+$/g, "");
322
+ }
323
+ function summarize(value, max) {
324
+ return value.replace(/\s+/g, " ").trim().slice(0, max);
325
+ }
326
+ function hash(value) {
327
+ return createHash("sha1").update(value).digest("hex");
328
+ }
329
+ async function clearRuntimeSkillCaches() {
330
+ try {
331
+ const { clearCommandsCache } = await import("./chunk-9gt0g0qe.js");
332
+ clearCommandsCache();
333
+ } catch {}
334
+ }
335
+ var DRAFT_PROMOTION_COUNT = 2, ACTIVE_PROMOTION_COUNT = 4, ACTIVE_PROMOTION_DRAFT_HITS = 2;
336
+ var init_skillGapStore = __esm(() => {
337
+ init_instinctParser();
338
+ init_projectContext();
339
+ init_skillGenerator();
340
+ });
341
+
342
+ export { recordSkillGap, readSkillGaps, findGapKeyByDraftPath, recordDraftHit, promoteGapToDraft, rejectSkillGap, shouldPromoteToDraft, shouldPromoteToActive, init_skillGapStore };
@@ -0,0 +1,145 @@
1
+ // @bun
2
+ import {
3
+ getProjectsDir,
4
+ getWorktreePathsPortable,
5
+ init_getWorktreePathsPortable,
6
+ init_sessionStoragePortable,
7
+ sanitizePath
8
+ } from "./chunk-za3k6h2h.js";
9
+ import {
10
+ init_lazySchema,
11
+ lazySchema
12
+ } from "./chunk-bgan4cpf.js";
13
+ import {
14
+ init_v4
15
+ } from "./chunk-j9475b46.js";
16
+ import {
17
+ exports_external
18
+ } from "./chunk-fdwabr8p.js";
19
+ import {
20
+ init_debug,
21
+ init_errors,
22
+ init_slowOperations,
23
+ isENOENT,
24
+ jsonParse,
25
+ jsonStringify,
26
+ logForDebugging
27
+ } from "./chunk-s3hafnk3.js";
28
+ import"./chunk-kb3758f7.js";
29
+ import"./chunk-9h9k5vz3.js";
30
+ import"./chunk-xmpgmeb8.js";
31
+ import"./chunk-2kz09j2s.js";
32
+ import"./chunk-c0k7b0jw.js";
33
+ import"./chunk-hhsxm2yr.js";
34
+
35
+ // src/bridge/bridgePointer.ts
36
+ init_v4();
37
+ init_debug();
38
+ init_errors();
39
+ init_getWorktreePathsPortable();
40
+ init_lazySchema();
41
+ init_sessionStoragePortable();
42
+ init_slowOperations();
43
+ import { mkdir, readFile, stat, unlink, writeFile } from "fs/promises";
44
+ import { dirname, join } from "path";
45
+ var MAX_WORKTREE_FANOUT = 50;
46
+ var BRIDGE_POINTER_TTL_MS = 4 * 60 * 60 * 1000;
47
+ var BridgePointerSchema = lazySchema(() => exports_external.object({
48
+ sessionId: exports_external.string(),
49
+ environmentId: exports_external.string(),
50
+ source: exports_external.enum(["standalone", "repl"])
51
+ }));
52
+ function getBridgePointerPath(dir) {
53
+ return join(getProjectsDir(), sanitizePath(dir), "bridge-pointer.json");
54
+ }
55
+ async function writeBridgePointer(dir, pointer) {
56
+ const path = getBridgePointerPath(dir);
57
+ try {
58
+ await mkdir(dirname(path), { recursive: true });
59
+ await writeFile(path, jsonStringify(pointer), "utf8");
60
+ logForDebugging(`[bridge:pointer] wrote ${path}`);
61
+ } catch (err) {
62
+ logForDebugging(`[bridge:pointer] write failed: ${err}`, { level: "warn" });
63
+ }
64
+ }
65
+ async function readBridgePointer(dir) {
66
+ const path = getBridgePointerPath(dir);
67
+ let raw;
68
+ let mtimeMs;
69
+ try {
70
+ mtimeMs = (await stat(path)).mtimeMs;
71
+ raw = await readFile(path, "utf8");
72
+ } catch {
73
+ return null;
74
+ }
75
+ const parsed = BridgePointerSchema().safeParse(safeJsonParse(raw));
76
+ if (!parsed.success) {
77
+ logForDebugging(`[bridge:pointer] invalid schema, clearing: ${path}`);
78
+ await clearBridgePointer(dir);
79
+ return null;
80
+ }
81
+ const ageMs = Math.max(0, Date.now() - mtimeMs);
82
+ if (ageMs > BRIDGE_POINTER_TTL_MS) {
83
+ logForDebugging(`[bridge:pointer] stale (>4h mtime), clearing: ${path}`);
84
+ await clearBridgePointer(dir);
85
+ return null;
86
+ }
87
+ return { ...parsed.data, ageMs };
88
+ }
89
+ async function readBridgePointerAcrossWorktrees(dir) {
90
+ const here = await readBridgePointer(dir);
91
+ if (here) {
92
+ return { pointer: here, dir };
93
+ }
94
+ const worktrees = await getWorktreePathsPortable(dir);
95
+ if (worktrees.length <= 1)
96
+ return null;
97
+ if (worktrees.length > MAX_WORKTREE_FANOUT) {
98
+ logForDebugging(`[bridge:pointer] ${worktrees.length} worktrees exceeds fanout cap ${MAX_WORKTREE_FANOUT}, skipping`);
99
+ return null;
100
+ }
101
+ const dirKey = sanitizePath(dir);
102
+ const candidates = worktrees.filter((wt) => sanitizePath(wt) !== dirKey);
103
+ const results = await Promise.all(candidates.map(async (wt) => {
104
+ const p = await readBridgePointer(wt);
105
+ return p ? { pointer: p, dir: wt } : null;
106
+ }));
107
+ let freshest = null;
108
+ for (const r of results) {
109
+ if (r && (!freshest || r.pointer.ageMs < freshest.pointer.ageMs)) {
110
+ freshest = r;
111
+ }
112
+ }
113
+ if (freshest) {
114
+ logForDebugging(`[bridge:pointer] fanout found pointer in worktree ${freshest.dir} (ageMs=${freshest.pointer.ageMs})`);
115
+ }
116
+ return freshest;
117
+ }
118
+ async function clearBridgePointer(dir) {
119
+ const path = getBridgePointerPath(dir);
120
+ try {
121
+ await unlink(path);
122
+ logForDebugging(`[bridge:pointer] cleared ${path}`);
123
+ } catch (err) {
124
+ if (!isENOENT(err)) {
125
+ logForDebugging(`[bridge:pointer] clear failed: ${err}`, {
126
+ level: "warn"
127
+ });
128
+ }
129
+ }
130
+ }
131
+ function safeJsonParse(raw) {
132
+ try {
133
+ return jsonParse(raw);
134
+ } catch {
135
+ return null;
136
+ }
137
+ }
138
+ export {
139
+ writeBridgePointer,
140
+ readBridgePointerAcrossWorktrees,
141
+ readBridgePointer,
142
+ getBridgePointerPath,
143
+ clearBridgePointer,
144
+ BRIDGE_POINTER_TTL_MS
145
+ };
@@ -0,0 +1,34 @@
1
+ // @bun
2
+ import {
3
+ CLI_CU_CAPABILITIES,
4
+ CLI_HOST_BUNDLE_ID,
5
+ COMPUTER_USE_MCP_SERVER_NAME,
6
+ getTerminalBundleId,
7
+ init_common,
8
+ isComputerUseMCPServer
9
+ } from "./chunk-bzyzrq0k.js";
10
+ import"./chunk-vwenx8ke.js";
11
+ import"./chunk-q2h79ncs.js";
12
+ import"./chunk-v4ypszbb.js";
13
+ import"./chunk-qfsn720k.js";
14
+ import"./chunk-c696122m.js";
15
+ import"./chunk-xbj5keyy.js";
16
+ import"./chunk-c1yc761e.js";
17
+ import"./chunk-c5g9shkw.js";
18
+ import"./chunk-aeysytks.js";
19
+ import"./chunk-s3hafnk3.js";
20
+ import"./chunk-kb3758f7.js";
21
+ import"./chunk-9h9k5vz3.js";
22
+ import"./chunk-xmpgmeb8.js";
23
+ import"./chunk-2kz09j2s.js";
24
+ import"./chunk-c0k7b0jw.js";
25
+ import"./chunk-hhsxm2yr.js";
26
+ init_common();
27
+
28
+ export {
29
+ isComputerUseMCPServer,
30
+ getTerminalBundleId,
31
+ COMPUTER_USE_MCP_SERVER_NAME,
32
+ CLI_HOST_BUNDLE_ID,
33
+ CLI_CU_CAPABILITIES
34
+ };
@@ -0,0 +1,118 @@
1
+ // @bun
2
+ import {
3
+ __commonJS
4
+ } from "./chunk-hhsxm2yr.js";
5
+
6
+ // node_modules/.bun/@smithy+property-provider@4.2.14/node_modules/@smithy/property-provider/dist-cjs/index.js
7
+ var require_dist_cjs = __commonJS((exports) => {
8
+ class ProviderError extends Error {
9
+ name = "ProviderError";
10
+ tryNextLink;
11
+ constructor(message, options = true) {
12
+ let logger;
13
+ let tryNextLink = true;
14
+ if (typeof options === "boolean") {
15
+ logger = undefined;
16
+ tryNextLink = options;
17
+ } else if (options != null && typeof options === "object") {
18
+ logger = options.logger;
19
+ tryNextLink = options.tryNextLink ?? true;
20
+ }
21
+ super(message);
22
+ this.tryNextLink = tryNextLink;
23
+ Object.setPrototypeOf(this, ProviderError.prototype);
24
+ logger?.debug?.(`@smithy/property-provider ${tryNextLink ? "->" : "(!)"} ${message}`);
25
+ }
26
+ static from(error, options = true) {
27
+ return Object.assign(new this(error.message, options), error);
28
+ }
29
+ }
30
+
31
+ class CredentialsProviderError extends ProviderError {
32
+ name = "CredentialsProviderError";
33
+ constructor(message, options = true) {
34
+ super(message, options);
35
+ Object.setPrototypeOf(this, CredentialsProviderError.prototype);
36
+ }
37
+ }
38
+
39
+ class TokenProviderError extends ProviderError {
40
+ name = "TokenProviderError";
41
+ constructor(message, options = true) {
42
+ super(message, options);
43
+ Object.setPrototypeOf(this, TokenProviderError.prototype);
44
+ }
45
+ }
46
+ var chain = (...providers) => async () => {
47
+ if (providers.length === 0) {
48
+ throw new ProviderError("No providers in chain");
49
+ }
50
+ let lastProviderError;
51
+ for (const provider of providers) {
52
+ try {
53
+ const credentials = await provider();
54
+ return credentials;
55
+ } catch (err) {
56
+ lastProviderError = err;
57
+ if (err?.tryNextLink) {
58
+ continue;
59
+ }
60
+ throw err;
61
+ }
62
+ }
63
+ throw lastProviderError;
64
+ };
65
+ var fromStatic = (staticValue) => () => Promise.resolve(staticValue);
66
+ var memoize = (provider, isExpired, requiresRefresh) => {
67
+ let resolved;
68
+ let pending;
69
+ let hasResult;
70
+ let isConstant = false;
71
+ const coalesceProvider = async () => {
72
+ if (!pending) {
73
+ pending = provider();
74
+ }
75
+ try {
76
+ resolved = await pending;
77
+ hasResult = true;
78
+ isConstant = false;
79
+ } finally {
80
+ pending = undefined;
81
+ }
82
+ return resolved;
83
+ };
84
+ if (isExpired === undefined) {
85
+ return async (options) => {
86
+ if (!hasResult || options?.forceRefresh) {
87
+ resolved = await coalesceProvider();
88
+ }
89
+ return resolved;
90
+ };
91
+ }
92
+ return async (options) => {
93
+ if (!hasResult || options?.forceRefresh) {
94
+ resolved = await coalesceProvider();
95
+ }
96
+ if (isConstant) {
97
+ return resolved;
98
+ }
99
+ if (requiresRefresh && !requiresRefresh(resolved)) {
100
+ isConstant = true;
101
+ return resolved;
102
+ }
103
+ if (isExpired(resolved)) {
104
+ await coalesceProvider();
105
+ return resolved;
106
+ }
107
+ return resolved;
108
+ };
109
+ };
110
+ exports.CredentialsProviderError = CredentialsProviderError;
111
+ exports.ProviderError = ProviderError;
112
+ exports.TokenProviderError = TokenProviderError;
113
+ exports.chain = chain;
114
+ exports.fromStatic = fromStatic;
115
+ exports.memoize = memoize;
116
+ });
117
+
118
+ export { require_dist_cjs };