@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,514 @@
1
+ // @bun
2
+ import {
3
+ candidateFromObservation,
4
+ createInstinct,
5
+ getSkillLearningConfig,
6
+ init_config,
7
+ init_instinctParser
8
+ } from "./chunk-w9ddp3yf.js";
9
+ import {
10
+ init_claude,
11
+ init_systemPromptType,
12
+ queryHaiku
13
+ } from "./chunk-gmdy2w3z.js";
14
+ import {
15
+ asSystemPrompt
16
+ } from "./chunk-nzxfj0gq.js";
17
+ import {
18
+ __esm,
19
+ __require
20
+ } from "./chunk-hhsxm2yr.js";
21
+
22
+ // src/services/skillLearning/observerBackend.ts
23
+ function registerObserverBackend(backend) {
24
+ registry.set(backend.name, backend);
25
+ if (!activeName)
26
+ activeName = backend.name;
27
+ }
28
+ function setActiveObserverBackend(name) {
29
+ if (!registry.has(name)) {
30
+ throw new Error(`Observer backend "${name}" is not registered`);
31
+ }
32
+ activeName = name;
33
+ }
34
+ function getActiveObserverBackend() {
35
+ const backend = activeName ? registry.get(activeName) : undefined;
36
+ if (!backend) {
37
+ throw new Error("No observer backend is active \u2014 register one before analyzing observations");
38
+ }
39
+ return backend;
40
+ }
41
+ function listObserverBackends() {
42
+ return Array.from(registry.keys());
43
+ }
44
+ function resetObserverBackendsForTest() {
45
+ registry.clear();
46
+ activeName = undefined;
47
+ }
48
+ async function analyzeWithActiveBackend(observations, ctx) {
49
+ return Promise.resolve(getActiveObserverBackend().analyze(observations, ctx));
50
+ }
51
+ function pickBackendFromEnv() {
52
+ const raw = process.env.SKILL_LEARNING_OBSERVER_BACKEND?.trim();
53
+ return raw && registry.has(raw) ? raw : undefined;
54
+ }
55
+ function resolveDefaultObserverBackend() {
56
+ const preferred = pickBackendFromEnv();
57
+ if (preferred)
58
+ setActiveObserverBackend(preferred);
59
+ return getActiveObserverBackend();
60
+ }
61
+ var registry, activeName;
62
+ var init_observerBackend = __esm(() => {
63
+ registry = new Map;
64
+ });
65
+
66
+ // src/services/skillLearning/types.ts
67
+ var INSTINCT_DOMAINS;
68
+ var init_types = __esm(() => {
69
+ INSTINCT_DOMAINS = [
70
+ "workflow",
71
+ "testing",
72
+ "debugging",
73
+ "code-style",
74
+ "security",
75
+ "git",
76
+ "project"
77
+ ];
78
+ });
79
+
80
+ // src/services/skillLearning/llmObserverBackend.ts
81
+ async function analyseWithHaiku(observations, ctx) {
82
+ if (observations.length === 0)
83
+ return [];
84
+ if (Date.now() < circuitOpenUntil) {
85
+ return runHeuristicFallback(observations, ctx);
86
+ }
87
+ const capped = observations.slice(-MAX_OBSERVATIONS_PER_CALL);
88
+ const userPrompt = buildUserPrompt(capped);
89
+ const signal = makeTimeoutSignal(getSkillLearningConfig().llm.timeoutMs);
90
+ let responseText;
91
+ try {
92
+ const response = await queryHaiku({
93
+ systemPrompt: asSystemPrompt([LLM_OBSERVER_SYSTEM_PROMPT]),
94
+ userPrompt,
95
+ signal,
96
+ options: {
97
+ querySource: "skill_learning_observer",
98
+ enablePromptCaching: true,
99
+ agents: [],
100
+ isNonInteractiveSession: true,
101
+ hasAppendSystemPrompt: false,
102
+ mcpTools: []
103
+ }
104
+ });
105
+ consecutiveFailures = 0;
106
+ responseText = extractResponseText(response.message?.content);
107
+ } catch {
108
+ consecutiveFailures++;
109
+ if (consecutiveFailures >= getSkillLearningConfig().llm.failureThreshold) {
110
+ circuitOpenUntil = Date.now() + getSkillLearningConfig().llm.circuitCooldownMs;
111
+ }
112
+ return runHeuristicFallback(observations, ctx);
113
+ }
114
+ const parsed = parseInstinctCandidates(responseText, ctx, capped);
115
+ if (parsed.length === 0) {
116
+ consecutiveFailures++;
117
+ if (consecutiveFailures >= getSkillLearningConfig().llm.failureThreshold) {
118
+ circuitOpenUntil = Date.now() + getSkillLearningConfig().llm.circuitCooldownMs;
119
+ }
120
+ return runHeuristicFallback(observations, ctx);
121
+ }
122
+ return parsed;
123
+ }
124
+ async function runHeuristicFallback(observations, ctx) {
125
+ try {
126
+ const { heuristicObserverBackend } = await import("./chunk-vrxb946v.js");
127
+ const result = heuristicObserverBackend.analyze(observations, ctx);
128
+ return Array.isArray(result) ? result : await result;
129
+ } catch {
130
+ return [];
131
+ }
132
+ }
133
+ function buildUserPrompt(observations) {
134
+ const rendered = observations.map((observation, index) => renderObservation(observation, index)).join(`
135
+ `);
136
+ return `Observations (chronological, newest last):
137
+ ${rendered}
138
+
139
+ Extract up to ${MAX_CANDIDATES_PER_CALL} atomic instincts. JSON array only.`;
140
+ }
141
+ function renderObservation(observation, index) {
142
+ const segments = [`#${index + 1}`, `event=${observation.event}`];
143
+ if (observation.toolName)
144
+ segments.push(`tool=${observation.toolName}`);
145
+ if (observation.outcome)
146
+ segments.push(`outcome=${observation.outcome}`);
147
+ if (observation.messageText) {
148
+ segments.push(`text=${JSON.stringify(truncate(observation.messageText, 200))}`);
149
+ }
150
+ if (observation.toolInput) {
151
+ segments.push(`in=${JSON.stringify(truncate(observation.toolInput, 120))}`);
152
+ }
153
+ if (observation.toolOutput) {
154
+ segments.push(`out=${JSON.stringify(truncate(observation.toolOutput, 120))}`);
155
+ }
156
+ return segments.join(" | ");
157
+ }
158
+ function truncate(value, max) {
159
+ if (value.length <= max)
160
+ return value;
161
+ return `${value.slice(0, max)}\u2026`;
162
+ }
163
+ function extractResponseText(content) {
164
+ if (!Array.isArray(content))
165
+ return "";
166
+ const parts = [];
167
+ for (const block of content) {
168
+ if (!block || typeof block !== "object")
169
+ continue;
170
+ const record = block;
171
+ if (record.type !== "text")
172
+ continue;
173
+ if (typeof record.text === "string")
174
+ parts.push(record.text);
175
+ }
176
+ return parts.join("").trim();
177
+ }
178
+ function parseInstinctCandidates(raw, ctx, observations) {
179
+ const json = extractJsonArray(raw);
180
+ if (!json)
181
+ return [];
182
+ let parsed;
183
+ try {
184
+ parsed = JSON.parse(json);
185
+ } catch {
186
+ return [];
187
+ }
188
+ if (!Array.isArray(parsed))
189
+ return [];
190
+ const observationIds = observations.map((observation) => observation.id);
191
+ const candidates = [];
192
+ for (const item of parsed.slice(0, MAX_CANDIDATES_PER_CALL)) {
193
+ const candidate = normaliseCandidate(item, ctx, observationIds);
194
+ if (candidate)
195
+ candidates.push(candidate);
196
+ }
197
+ return candidates;
198
+ }
199
+ function extractJsonArray(raw) {
200
+ if (!raw)
201
+ return;
202
+ const start = raw.indexOf("[");
203
+ const end = raw.lastIndexOf("]");
204
+ if (start < 0 || end <= start)
205
+ return;
206
+ return raw.slice(start, end + 1);
207
+ }
208
+ function normaliseCandidate(item, ctx, observationIds) {
209
+ if (!item || typeof item !== "object")
210
+ return;
211
+ const record = item;
212
+ const trigger = stringField(record.trigger, 80);
213
+ const action = stringField(record.action, 120);
214
+ if (!trigger || !action)
215
+ return;
216
+ const evidence = evidenceField(record.evidence);
217
+ if (evidence.length === 0)
218
+ return;
219
+ return {
220
+ trigger,
221
+ action,
222
+ confidence: clampUnitInterval(record.confidence),
223
+ domain: domainField(record.domain),
224
+ source: "session-observation",
225
+ scope: scopeField(record.scope),
226
+ projectId: ctx?.project?.projectId,
227
+ projectName: ctx?.project?.projectName,
228
+ evidence,
229
+ observationIds
230
+ };
231
+ }
232
+ function stringField(value, maxLength) {
233
+ if (typeof value !== "string")
234
+ return;
235
+ const trimmed = value.trim();
236
+ if (!trimmed)
237
+ return;
238
+ return trimmed.length > maxLength ? trimmed.slice(0, maxLength) : trimmed;
239
+ }
240
+ function clampUnitInterval(value) {
241
+ if (typeof value !== "number" || !Number.isFinite(value))
242
+ return 0.5;
243
+ if (value < 0)
244
+ return 0;
245
+ if (value > 1)
246
+ return 1;
247
+ return value;
248
+ }
249
+ function domainField(value) {
250
+ if (typeof value !== "string")
251
+ return "project";
252
+ return INSTINCT_DOMAINS.includes(value) ? value : "project";
253
+ }
254
+ function scopeField(value) {
255
+ return value === "global" ? "global" : "project";
256
+ }
257
+ function evidenceField(value) {
258
+ if (!Array.isArray(value))
259
+ return [];
260
+ const entries = [];
261
+ for (const entry of value) {
262
+ if (typeof entry !== "string")
263
+ continue;
264
+ const trimmed = entry.trim();
265
+ if (!trimmed)
266
+ continue;
267
+ entries.push(trimmed.length > 200 ? `${trimmed.slice(0, 200)}\u2026` : trimmed);
268
+ if (entries.length === 3)
269
+ break;
270
+ }
271
+ return entries;
272
+ }
273
+ function makeTimeoutSignal(ms) {
274
+ return AbortSignal.timeout(ms);
275
+ }
276
+ var MAX_OBSERVATIONS_PER_CALL = 30, MAX_CANDIDATES_PER_CALL = 3, consecutiveFailures = 0, circuitOpenUntil = 0, LLM_OBSERVER_SYSTEM_PROMPT = `You analyse a short sequence of observations from a coding-assistant session (user messages, tool invocations with outcomes, assistant messages) and extract atomic, reusable "instincts" \u2014 behavioural patterns that would help the assistant act correctly in future similar situations.
277
+
278
+ Respond with ONLY a JSON array (no prose, no code fences, no commentary). Each item must match this schema:
279
+
280
+ {
281
+ "trigger": string, // <= 80 chars, short phrase describing WHEN the instinct applies
282
+ "action": string, // <= 120 chars, short phrase describing WHAT to do
283
+ "confidence": number, // 0..1 \u2014 how strongly these observations support the pattern
284
+ "domain": "workflow"|"testing"|"debugging"|"code-style"|"security"|"git"|"project",
285
+ "scope": "project"|"global",
286
+ "evidence": string[] // 1..3 short excerpts copied/paraphrased from the observations
287
+ }
288
+
289
+ Rules:
290
+ - Return [] if nothing clearly reusable. No guessing.
291
+ - At most 3 items, highest confidence first.
292
+ - confidence > 0.7 only when observations show the pattern in action (a correction followed by a successful retry, a repeated sequence, an explicit rule).
293
+ - Never include secrets, tokens, full file contents, or personally-identifying data.
294
+ - Scope "global" only when the pattern is obviously project-agnostic (generic testing, git hygiene); default to "project".`, llmObserverBackend;
295
+ var init_llmObserverBackend = __esm(() => {
296
+ init_claude();
297
+ init_systemPromptType();
298
+ init_config();
299
+ init_types();
300
+ llmObserverBackend = {
301
+ name: "llm",
302
+ analyze(observations, ctx) {
303
+ return analyseWithHaiku(observations, ctx);
304
+ }
305
+ };
306
+ });
307
+
308
+ // src/services/skillLearning/sessionObserver.ts
309
+ function heuristicAnalyze(observations, options) {
310
+ return [
311
+ ...extractUserCorrections(observations),
312
+ ...extractToolErrorResolutions(observations),
313
+ ...extractRepeatedToolSequences(observations, options),
314
+ ...extractProjectConventions(observations)
315
+ ];
316
+ }
317
+ function analyzeObservations(observations, options) {
318
+ const backend = getActiveObserverBackend();
319
+ const candidates = backend.name === "heuristic" ? heuristicAnalyze(observations, options) : ensureSyncCandidates(backend.analyze(observations));
320
+ return candidates.map((candidate) => createInstinct(candidate));
321
+ }
322
+ async function analyzeObservationsAsync(observations, ctx) {
323
+ const candidates = await analyzeWithActiveBackend(observations, ctx);
324
+ return candidates.map((candidate) => createInstinct(candidate));
325
+ }
326
+ function ensureSyncCandidates(result) {
327
+ if (Array.isArray(result))
328
+ return result;
329
+ throw new Error("Active observer backend returned a Promise; use analyzeObservationsAsync instead");
330
+ }
331
+ function extractUserCorrections(observations) {
332
+ return observations.flatMap((observation, index) => {
333
+ if (observation.event !== "user_message" || !observation.messageText) {
334
+ return [];
335
+ }
336
+ const text = observation.messageText.trim();
337
+ const correction = parseCorrection(text);
338
+ if (!correction)
339
+ return [];
340
+ const base = candidateFromObservation(observation);
341
+ return [
342
+ {
343
+ ...base,
344
+ trigger: correction.trigger,
345
+ action: correction.action,
346
+ confidence: 0.7,
347
+ domain: inferDomain(text),
348
+ source: "session-observation",
349
+ scope: "project",
350
+ evidence: [text],
351
+ evidenceOutcome: recentOutcomeBefore(observations, index),
352
+ observationIds: [observation.id]
353
+ }
354
+ ];
355
+ });
356
+ }
357
+ function extractToolErrorResolutions(observations) {
358
+ const candidates = [];
359
+ for (let i = 0;i < observations.length; i++) {
360
+ const current = observations[i];
361
+ if (current.event !== "tool_complete" || current.outcome !== "failure") {
362
+ continue;
363
+ }
364
+ const laterSuccess = observations.slice(i + 1, i + 6).find((next) => {
365
+ return next.event === "tool_complete" && next.outcome === "success" && next.toolName === current.toolName;
366
+ });
367
+ if (!laterSuccess || !current.toolName)
368
+ continue;
369
+ candidates.push({
370
+ ...candidateFromObservation(current),
371
+ trigger: `When ${current.toolName} fails during this project`,
372
+ action: `Use the follow-up successful ${current.toolName} invocation as the resolution pattern before retrying blindly.`,
373
+ confidence: 0.5,
374
+ domain: "debugging",
375
+ source: "session-observation",
376
+ scope: "project",
377
+ evidence: [
378
+ current.toolOutput ?? `${current.toolName} failed`,
379
+ laterSuccess.toolOutput ?? `${laterSuccess.toolName} succeeded`
380
+ ],
381
+ evidenceOutcome: "success",
382
+ observationIds: [current.id, laterSuccess.id]
383
+ });
384
+ }
385
+ return candidates;
386
+ }
387
+ function extractRepeatedToolSequences(observations, options) {
388
+ const minCount = options?.minRepeatedSequenceCount ?? DEFAULT_MIN_REPEATED_SEQUENCE_COUNT;
389
+ const toolEvents = observations.filter((observation) => observation.event === "tool_start" || observation.event === "tool_complete");
390
+ const names = toolEvents.map((observation) => observation.toolName ?? "");
391
+ const sequence = ["Grep", "Read", "Edit"];
392
+ const matchedIds = [];
393
+ let count = 0;
394
+ for (let i = 0;i <= names.length - sequence.length; i++) {
395
+ if (sequence.every((name, offset) => names[i + offset] === name)) {
396
+ count++;
397
+ matchedIds.push(...toolEvents.slice(i, i + sequence.length).map((o) => o.id));
398
+ }
399
+ }
400
+ if (count < minCount)
401
+ return [];
402
+ const evidence = `Observed ${count} repeated Grep -> Read -> Edit workflow sequences.`;
403
+ const first = toolEvents.find((event) => matchedIds.includes(event.id));
404
+ const lastMatchedId = matchedIds[matchedIds.length - 1];
405
+ const lastEvent = toolEvents.find((event) => event.id === lastMatchedId);
406
+ const sequenceOutcome = lastEvent?.event === "tool_complete" ? lastEvent.outcome : undefined;
407
+ return [
408
+ {
409
+ ...candidateFromObservation(first ?? observations[0]),
410
+ trigger: "When changing code in this project",
411
+ action: "Prefer the Grep -> Read -> Edit workflow: locate symbols, inspect context, then apply the smallest edit.",
412
+ confidence: count >= 3 ? 0.65 : 0.5,
413
+ domain: "workflow",
414
+ source: "session-observation",
415
+ scope: "project",
416
+ evidence: [evidence],
417
+ evidenceOutcome: normalizeOutcome(sequenceOutcome),
418
+ observationIds: Array.from(new Set(matchedIds))
419
+ }
420
+ ];
421
+ }
422
+ function extractProjectConventions(observations) {
423
+ return observations.flatMap((observation, index) => {
424
+ if (observation.event !== "user_message" || !observation.messageText) {
425
+ return [];
426
+ }
427
+ const text = observation.messageText.trim();
428
+ if (!/(\u9879\u76EE\u7EA6\u5B9A|\u89C4\u8303|\u5FC5\u987B|convention|always|must)/i.test(text)) {
429
+ return [];
430
+ }
431
+ return [
432
+ {
433
+ ...candidateFromObservation(observation),
434
+ trigger: "When working in this project",
435
+ action: `Follow the project convention: ${text}`,
436
+ confidence: 0.4,
437
+ domain: "project",
438
+ source: "session-observation",
439
+ scope: "project",
440
+ evidence: [text],
441
+ evidenceOutcome: recentOutcomeBefore(observations, index),
442
+ observationIds: [observation.id]
443
+ }
444
+ ];
445
+ });
446
+ }
447
+ function recentOutcomeBefore(observations, index) {
448
+ for (let i = index - 1;i >= 0; i--) {
449
+ const prior = observations[i];
450
+ if (prior.event !== "tool_complete")
451
+ continue;
452
+ return normalizeOutcome(prior.outcome);
453
+ }
454
+ return;
455
+ }
456
+ function normalizeOutcome(outcome) {
457
+ if (outcome === "success" || outcome === "failure" || outcome === "unknown") {
458
+ return outcome;
459
+ }
460
+ return;
461
+ }
462
+ function parseCorrection(text) {
463
+ const noUsePattern = /(?:\u4E0D\u8981|\u522B|\u4E0D\u5E94(?:\u8BE5)?|\u4E0D\u8981\u518D)\s*(?<avoid>[^\uFF0C,\u3002.;\uFF1B]+)[\uFF0C,\s]*(?:\u7528|\u4F7F\u7528|\u6539\u7528|\u5E94\u8BE5\u7528|\u8981\u7528)\s*(?<prefer>[^\uFF0C,\u3002.;\uFF1B]+)/i;
464
+ const englishPattern = /(?:do not|don't|avoid)\s+(?<avoid>[^,.;]+)[,;\s]+(?:use|prefer)\s+(?<prefer>[^,.;]+)/i;
465
+ const shouldPattern = /(?:\u4F60\u5E94\u8BE5|\u5E94\u8BE5\u5148|must|should)\s*(?<prefer>[^\uFF0C,\u3002.;\uFF1B]+)/i;
466
+ const noUse = text.match(noUsePattern) ?? text.match(englishPattern);
467
+ if (noUse?.groups) {
468
+ const avoid = noUse.groups.avoid.trim();
469
+ const prefer = noUse.groups.prefer.trim();
470
+ return {
471
+ trigger: `When choosing between ${avoid} and ${prefer}`,
472
+ action: `Prefer ${prefer}; avoid ${avoid}.`
473
+ };
474
+ }
475
+ const should = text.match(shouldPattern);
476
+ if (should?.groups) {
477
+ const prefer = should.groups.prefer.trim();
478
+ return {
479
+ trigger: "When this user gives a corrective instruction",
480
+ action: `Prefer this corrected action: ${prefer}.`
481
+ };
482
+ }
483
+ return null;
484
+ }
485
+ function inferDomain(text) {
486
+ const lowered = text.toLowerCase();
487
+ if (/test|mock|testing-library|vitest|jest|bun test/.test(lowered)) {
488
+ return "testing";
489
+ }
490
+ if (/git|commit|branch/.test(lowered))
491
+ return "git";
492
+ if (/security|secret|token|password/.test(lowered))
493
+ return "security";
494
+ if (/style|format|lint|naming/.test(lowered))
495
+ return "code-style";
496
+ return "project";
497
+ }
498
+ var DEFAULT_MIN_REPEATED_SEQUENCE_COUNT = 2, heuristicObserverBackend, observeSession;
499
+ var init_sessionObserver = __esm(() => {
500
+ init_instinctParser();
501
+ init_observerBackend();
502
+ init_llmObserverBackend();
503
+ heuristicObserverBackend = {
504
+ name: "heuristic",
505
+ analyze(observations, _ctx) {
506
+ return heuristicAnalyze(observations);
507
+ }
508
+ };
509
+ registerObserverBackend(heuristicObserverBackend);
510
+ registerObserverBackend(llmObserverBackend);
511
+ observeSession = analyzeObservations;
512
+ });
513
+
514
+ export { registerObserverBackend, setActiveObserverBackend, getActiveObserverBackend, listObserverBackends, resetObserverBackendsForTest, analyzeWithActiveBackend, resolveDefaultObserverBackend, init_observerBackend, INSTINCT_DOMAINS, init_types, llmObserverBackend, init_llmObserverBackend, heuristicAnalyze, heuristicObserverBackend, analyzeObservations, analyzeObservationsAsync, observeSession, init_sessionObserver };
@@ -0,0 +1,13 @@
1
+ // @bun
2
+ import {
3
+ __esm
4
+ } from "./chunk-hhsxm2yr.js";
5
+
6
+ // src/utils/attributionTrailer.ts
7
+ var buildPRTrailers = () => [];
8
+ var init_attributionTrailer = () => {};
9
+ init_attributionTrailer();
10
+
11
+ export {
12
+ buildPRTrailers
13
+ };
@@ -0,0 +1,32 @@
1
+ // @bun
2
+ import {
3
+ __esm,
4
+ __require
5
+ } from "./chunk-hhsxm2yr.js";
6
+
7
+ // src/commands/job/job.tsx
8
+ async function call(onDone, _context, args) {
9
+ const parts = args ? args.trim().split(/\s+/) : [];
10
+ const sub = parts[0] || "list";
11
+ const lines = [];
12
+ const origLog = console.log;
13
+ const origError = console.error;
14
+ console.log = (...a) => lines.push(a.map(String).join(" "));
15
+ console.error = (...a) => lines.push(a.map(String).join(" "));
16
+ try {
17
+ const { templatesMain } = await import("./chunk-4tr60273.js");
18
+ await templatesMain([sub, ...parts.slice(1)]);
19
+ } finally {
20
+ console.log = origLog;
21
+ console.error = origError;
22
+ }
23
+ onDone(lines.join(`
24
+ `) || "Done.", { display: "system" });
25
+ return null;
26
+ }
27
+ var init_job = () => {};
28
+ init_job();
29
+
30
+ export {
31
+ call
32
+ };