@caspian2026/agent-sdk 0.0.2
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.
- package/dist/chunk-018smjq7.js +26 -0
- package/dist/chunk-055q0a2m.js +146 -0
- package/dist/chunk-07069jq1.js +30 -0
- package/dist/chunk-0731m51q.js +8 -0
- package/dist/chunk-0awwmrwr.js +46 -0
- package/dist/chunk-0htx82k2.js +64 -0
- package/dist/chunk-0jmt5sx1.js +104 -0
- package/dist/chunk-0kj8bq80.js +252 -0
- package/dist/chunk-0kxcq8h9.js +86 -0
- package/dist/chunk-0paqc2yw.js +15 -0
- package/dist/chunk-0vkfrmqm.js +690 -0
- package/dist/chunk-0xjaqda8.js +1124 -0
- package/dist/chunk-10qhq6f8.js +458 -0
- package/dist/chunk-15m49c67.js +121 -0
- package/dist/chunk-15sfg4bs.js +65 -0
- package/dist/chunk-162ewhvy.js +869 -0
- package/dist/chunk-177s15bv.js +120 -0
- package/dist/chunk-19e603rv.js +284 -0
- package/dist/chunk-1ax1znzj.js +537 -0
- package/dist/chunk-1c4j7qn2.js +319 -0
- package/dist/chunk-1gx78081.js +66 -0
- package/dist/chunk-1h2famwb.js +49 -0
- package/dist/chunk-1nk93fqz.js +357 -0
- package/dist/chunk-1xct96nd.js +2520 -0
- package/dist/chunk-1xvcvdef.js +90 -0
- package/dist/chunk-1yrcnrs7.js +261 -0
- package/dist/chunk-21bcvwr7.js +660 -0
- package/dist/chunk-2352ts05.js +667 -0
- package/dist/chunk-23jzrwsw.js +43 -0
- package/dist/chunk-26hg7303.js +62 -0
- package/dist/chunk-2f21meep.js +122 -0
- package/dist/chunk-2fwze72g.js +24 -0
- package/dist/chunk-2gzv8nrw.js +205 -0
- package/dist/chunk-2h05vtpv.js +83 -0
- package/dist/chunk-2h0y6m16.js +465 -0
- package/dist/chunk-2n7bbxm6.js +168 -0
- package/dist/chunk-2nv3d0he.js +108 -0
- package/dist/chunk-2vqrdwx9.js +1811 -0
- package/dist/chunk-3389cj3w.js +120 -0
- package/dist/chunk-35sgv3er.js +231 -0
- package/dist/chunk-3c25bcsw.js +17 -0
- package/dist/chunk-3e20cj49.js +443 -0
- package/dist/chunk-3mr5ryx4.js +122 -0
- package/dist/chunk-3nk79af8.js +8 -0
- package/dist/chunk-3qbdzsvm.js +120 -0
- package/dist/chunk-3yprydpw.js +213 -0
- package/dist/chunk-430yrtmk.js +492 -0
- package/dist/chunk-46hd1gyd.js +140 -0
- package/dist/chunk-46hdszda.js +63 -0
- package/dist/chunk-46n7byh8.js +102 -0
- package/dist/chunk-4cp6193g.js +9076 -0
- package/dist/chunk-4dn3n459.js +409 -0
- package/dist/chunk-4hv90qcz.js +8 -0
- package/dist/chunk-4jm600zv.js +13 -0
- package/dist/chunk-4nspekjp.js +69 -0
- package/dist/chunk-505mxxa9.js +19 -0
- package/dist/chunk-50bay5qy.js +224 -0
- package/dist/chunk-537qfvn5.js +345 -0
- package/dist/chunk-55raexh7.js +14358 -0
- package/dist/chunk-572vjq78.js +56 -0
- package/dist/chunk-5apfzkpy.js +87 -0
- package/dist/chunk-5ccdsxgy.js +74 -0
- package/dist/chunk-5dmhsqap.js +32 -0
- package/dist/chunk-5fs6nkjr.js +98 -0
- package/dist/chunk-5nchekqe.js +87 -0
- package/dist/chunk-5pp28k2r.js +120 -0
- package/dist/chunk-5rt4b8q9.js +116 -0
- package/dist/chunk-5rv9c8yd.js +1072 -0
- package/dist/chunk-5z28bqne.js +6748 -0
- package/dist/chunk-64c1avct.js +13 -0
- package/dist/chunk-66zry909.js +11 -0
- package/dist/chunk-682qgta2.js +102 -0
- package/dist/chunk-68ffk5qa.js +14 -0
- package/dist/chunk-68w91pzt.js +79 -0
- package/dist/chunk-69fgaak0.js +654 -0
- package/dist/chunk-69n11zng.js +436 -0
- package/dist/chunk-6dj5t602.js +341 -0
- package/dist/chunk-6gh20s05.js +146 -0
- package/dist/chunk-6maej1hh.js +502 -0
- package/dist/chunk-6nsd9606.js +790 -0
- package/dist/chunk-6p4cyhb3.js +16 -0
- package/dist/chunk-6t4a9cgj.js +877 -0
- package/dist/chunk-6t8yqfks.js +227 -0
- package/dist/chunk-6vthy0fj.js +213 -0
- package/dist/chunk-70cw4cg9.js +1026 -0
- package/dist/chunk-70eey1nh.js +164 -0
- package/dist/chunk-76j2e9vy.js +68 -0
- package/dist/chunk-7acgdm7x.js +93 -0
- package/dist/chunk-7aw745vx.js +40175 -0
- package/dist/chunk-7gvwg1v9.js +122 -0
- package/dist/chunk-7h2ybnf3.js +636 -0
- package/dist/chunk-7kcm5hn2.js +155 -0
- package/dist/chunk-7m2hp89m.js +73 -0
- package/dist/chunk-7mqab3z7.js +31 -0
- package/dist/chunk-7sgtxrsc.js +1059 -0
- package/dist/chunk-7wm5s02e.js +216 -0
- package/dist/chunk-7xyswgjh.js +8 -0
- package/dist/chunk-7yxvpj5j.js +1452 -0
- package/dist/chunk-80a8vabn.js +93 -0
- package/dist/chunk-83e71kz6.js +180 -0
- package/dist/chunk-83hfzbx3.js +10 -0
- package/dist/chunk-8g5pe1gr.js +37 -0
- package/dist/chunk-8g747a8x.js +26 -0
- package/dist/chunk-8hj8ms5q.js +111 -0
- package/dist/chunk-8mkwsdk1.js +61 -0
- package/dist/chunk-8n42zyfx.js +40 -0
- package/dist/chunk-8qhxyqj9.js +1155 -0
- package/dist/chunk-8y30k9pz.js +38 -0
- package/dist/chunk-960ze3jj.js +124 -0
- package/dist/chunk-97wgdsab.js +35 -0
- package/dist/chunk-9grztvcg.js +93 -0
- package/dist/chunk-9x5zgy22.js +12 -0
- package/dist/chunk-a8792r1c.js +620 -0
- package/dist/chunk-ahr1r7c6.js +4275 -0
- package/dist/chunk-ase86y73.js +15 -0
- package/dist/chunk-b0kf00ff.js +637 -0
- package/dist/chunk-b0qptb1k.js +640 -0
- package/dist/chunk-b1kcd3ss.js +27 -0
- package/dist/chunk-b2fd462a.js +54 -0
- package/dist/chunk-bdrjvs5k.js +157 -0
- package/dist/chunk-beg7bdyz.js +90 -0
- package/dist/chunk-bg4x9ex0.js +21 -0
- package/dist/chunk-bktfq0ns.js +95 -0
- package/dist/chunk-bmbq6nt1.js +145 -0
- package/dist/chunk-bvf2z3g6.js +1003 -0
- package/dist/chunk-bxcfz5gy.js +56 -0
- package/dist/chunk-c11swzas.js +5368 -0
- package/dist/chunk-c37j5zxe.js +57 -0
- package/dist/chunk-c5mz5vw2.js +117 -0
- package/dist/chunk-c6sjhj89.js +1284 -0
- package/dist/chunk-c7jwbe76.js +29030 -0
- package/dist/chunk-cc2tg4q8.js +311 -0
- package/dist/chunk-cdhmrbj4.js +6353 -0
- package/dist/chunk-cdz5yb0r.js +57 -0
- package/dist/chunk-cfv996bs.js +22 -0
- package/dist/chunk-cgfdkzhb.js +12 -0
- package/dist/chunk-chakj069.js +310 -0
- package/dist/chunk-chsyvavm.js +3435 -0
- package/dist/chunk-cnsj3vq2.js +35 -0
- package/dist/chunk-ctdg0qxh.js +1386 -0
- package/dist/chunk-cxq7gc42.js +386 -0
- package/dist/chunk-d1pyf9as.js +8586 -0
- package/dist/chunk-d4kwjqjy.js +308 -0
- package/dist/chunk-d4mdda98.js +94 -0
- package/dist/chunk-d7886r6a.js +13870 -0
- package/dist/chunk-d7f1pzkq.js +95 -0
- package/dist/chunk-ddsjkqs4.js +39 -0
- package/dist/chunk-dm3n2qgd.js +24 -0
- package/dist/chunk-e2mv8ts8.js +115 -0
- package/dist/chunk-e4bhfc6d.js +2720 -0
- package/dist/chunk-e4p1jbs4.js +58 -0
- package/dist/chunk-e7h4qxgw.js +21 -0
- package/dist/chunk-e8p3fy6v.js +202 -0
- package/dist/chunk-e97mp86b.js +111 -0
- package/dist/chunk-ebqwkhyf.js +145 -0
- package/dist/chunk-eenq3avg.js +69 -0
- package/dist/chunk-efgjfast.js +61 -0
- package/dist/chunk-ehtwnxpg.js +1591 -0
- package/dist/chunk-en8wkxh7.js +173 -0
- package/dist/chunk-enkdxqas.js +33 -0
- package/dist/chunk-eqp1rfft.js +17 -0
- package/dist/chunk-ercvcek8.js +266 -0
- package/dist/chunk-etgh9xvt.js +369 -0
- package/dist/chunk-ev3qkf76.js +106 -0
- package/dist/chunk-evp5pb9x.js +3567 -0
- package/dist/chunk-ewadzrm8.js +103 -0
- package/dist/chunk-exah13mz.js +94 -0
- package/dist/chunk-f0rzvqmq.js +87 -0
- package/dist/chunk-f1m9pect.js +258 -0
- package/dist/chunk-fajg8x36.js +8158 -0
- package/dist/chunk-fbv4apne.js +51 -0
- package/dist/chunk-fbvw6wq9.js +116 -0
- package/dist/chunk-feyzykye.js +10 -0
- package/dist/chunk-fn1vvj8k.js +894 -0
- package/dist/chunk-fshfxw2q.js +183 -0
- package/dist/chunk-fyc5fepv.js +10 -0
- package/dist/chunk-g9f19ttm.js +15 -0
- package/dist/chunk-gcpfxk0c.js +644 -0
- package/dist/chunk-gdg6411p.js +106 -0
- package/dist/chunk-gkyzz8er.js +849 -0
- package/dist/chunk-gxahdggv.js +71 -0
- package/dist/chunk-h6fsks9j.js +220 -0
- package/dist/chunk-h9n54swm.js +27 -0
- package/dist/chunk-hakdhagh.js +16606 -0
- package/dist/chunk-hchy0hq6.js +159 -0
- package/dist/chunk-hh3k5s1s.js +180 -0
- package/dist/chunk-hqqkj5pg.js +202 -0
- package/dist/chunk-htpehq9t.js +251 -0
- package/dist/chunk-hwfknpxv.js +39 -0
- package/dist/chunk-hwn8vetn.js +394 -0
- package/dist/chunk-hx3j6n92.js +178 -0
- package/dist/chunk-hyb749hd.js +194 -0
- package/dist/chunk-hzgnejb1.js +90 -0
- package/dist/chunk-hzknr99c.js +477 -0
- package/dist/chunk-j3zhb8vv.js +152 -0
- package/dist/chunk-j5bth84e.js +97 -0
- package/dist/chunk-j64ga6ta.js +8035 -0
- package/dist/chunk-jaaxk89e.js +113 -0
- package/dist/chunk-jd32zbps.js +15 -0
- package/dist/chunk-jfja8q7w.js +91 -0
- package/dist/chunk-jgjqa49s.js +27 -0
- package/dist/chunk-jgpmpgx6.js +19 -0
- package/dist/chunk-jgwd85hp.js +91 -0
- package/dist/chunk-jk69qtzx.js +277 -0
- package/dist/chunk-jr1xm1dd.js +147 -0
- package/dist/chunk-jss0azv7.js +2337 -0
- package/dist/chunk-jxpmkae9.js +108 -0
- package/dist/chunk-jy9rxxqe.js +102 -0
- package/dist/chunk-jyw3np47.js +264 -0
- package/dist/chunk-jzthz1bx.js +15 -0
- package/dist/chunk-k0p9w03v.js +4957 -0
- package/dist/chunk-k2rybwww.js +92 -0
- package/dist/chunk-k3939ggz.js +168 -0
- package/dist/chunk-k591cwbg.js +345 -0
- package/dist/chunk-k5ez1h65.js +108 -0
- package/dist/chunk-k8vp0atq.js +2331 -0
- package/dist/chunk-kajf3jgq.js +694 -0
- package/dist/chunk-kbm69rtz.js +276 -0
- package/dist/chunk-kjh11txh.js +419 -0
- package/dist/chunk-kqggbte3.js +326 -0
- package/dist/chunk-kr6qfwq0.js +95 -0
- package/dist/chunk-kvfg8eeg.js +150 -0
- package/dist/chunk-kwekc97v.js +18 -0
- package/dist/chunk-m1cehfta.js +861 -0
- package/dist/chunk-m87bhhqv.js +61 -0
- package/dist/chunk-mg7pbk0r.js +151 -0
- package/dist/chunk-mpbfkp8j.js +418 -0
- package/dist/chunk-mpk1sjyk.js +117 -0
- package/dist/chunk-msecaxyj.js +74 -0
- package/dist/chunk-mswx2nma.js +103 -0
- package/dist/chunk-mw1kpeg9.js +6895 -0
- package/dist/chunk-mxr2s6d1.js +89 -0
- package/dist/chunk-my40g5hp.js +560 -0
- package/dist/chunk-n0kmh4ra.js +338 -0
- package/dist/chunk-n18q5yqs.js +397 -0
- package/dist/chunk-n7pnyq43.js +131 -0
- package/dist/chunk-naybw0p0.js +32 -0
- package/dist/chunk-nb6abcch.js +83 -0
- package/dist/chunk-ne5r3k03.js +350 -0
- package/dist/chunk-nebezy1d.js +997 -0
- package/dist/chunk-netzwgv1.js +154 -0
- package/dist/chunk-nhapyawz.js +32994 -0
- package/dist/chunk-npnvheft.js +156 -0
- package/dist/chunk-nrtksr2p.js +51 -0
- package/dist/chunk-nw9t5pq9.js +132 -0
- package/dist/chunk-nxgsnh2y.js +735 -0
- package/dist/chunk-p11xp4xp.js +266 -0
- package/dist/chunk-p1hwrf72.js +74 -0
- package/dist/chunk-p1zj9mg9.js +567 -0
- package/dist/chunk-p39a677r.js +115 -0
- package/dist/chunk-p7vkh4wx.js +15 -0
- package/dist/chunk-p8na2wwp.js +14 -0
- package/dist/chunk-pcb7fbyg.js +259 -0
- package/dist/chunk-pckwmrzd.js +409 -0
- package/dist/chunk-ped973jn.js +111 -0
- package/dist/chunk-phd1qfpc.js +5971 -0
- package/dist/chunk-pkkngdv0.js +524 -0
- package/dist/chunk-ppwjyveh.js +8 -0
- package/dist/chunk-pqvr8jq7.js +324 -0
- package/dist/chunk-prcah3ys.js +106 -0
- package/dist/chunk-ps49ymvj.js +43 -0
- package/dist/chunk-pwwa7s62.js +11 -0
- package/dist/chunk-pxdzy0jh.js +134 -0
- package/dist/chunk-q3jr5t07.js +62 -0
- package/dist/chunk-q6cfkntd.js +675 -0
- package/dist/chunk-q6m26rc8.js +88 -0
- package/dist/chunk-q6xs51jj.js +332 -0
- package/dist/chunk-q7jnesv8.js +74 -0
- package/dist/chunk-q7zpf4r2.js +440 -0
- package/dist/chunk-q8c88vjm.js +24 -0
- package/dist/chunk-qajrkk97.js +298 -0
- package/dist/chunk-qatfdxvd.js +34 -0
- package/dist/chunk-qb6k2afy.js +153 -0
- package/dist/chunk-qfk94vcn.js +329 -0
- package/dist/chunk-qj2e1apf.js +471 -0
- package/dist/chunk-qj2mk79w.js +111 -0
- package/dist/chunk-qk7dfae6.js +267 -0
- package/dist/chunk-qnfx3qtx.js +617 -0
- package/dist/chunk-qp2qdcda.js +100 -0
- package/dist/chunk-qq0phwn8.js +458 -0
- package/dist/chunk-qwqjesx7.js +258 -0
- package/dist/chunk-qygmcg7w.js +60 -0
- package/dist/chunk-qz2x630m.js +49145 -0
- package/dist/chunk-qzj4e8fn.js +357 -0
- package/dist/chunk-ratvcbmn.js +255 -0
- package/dist/chunk-rkg741k3.js +37 -0
- package/dist/chunk-rn0v1hk8.js +34 -0
- package/dist/chunk-rsq0h0rz.js +91 -0
- package/dist/chunk-rvnb2gn6.js +1053 -0
- package/dist/chunk-rx278zpa.js +75 -0
- package/dist/chunk-s3hsqf80.js +473 -0
- package/dist/chunk-s4cb0bcb.js +655 -0
- package/dist/chunk-s8kj6ajy.js +32 -0
- package/dist/chunk-sd36yzx8.js +954 -0
- package/dist/chunk-sfcpjh4r.js +98 -0
- package/dist/chunk-spybh2dy.js +175 -0
- package/dist/chunk-sw9ax3ym.js +92 -0
- package/dist/chunk-szj5wvdy.js +28 -0
- package/dist/chunk-t29a6zb5.js +45 -0
- package/dist/chunk-t9p85zff.js +24 -0
- package/dist/chunk-tc1aazk4.js +131 -0
- package/dist/chunk-tdbz9gbm.js +1030 -0
- package/dist/chunk-tjcfpk38.js +208 -0
- package/dist/chunk-tp2jxmcx.js +8427 -0
- package/dist/chunk-tqmtkm0k.js +92 -0
- package/dist/chunk-tvgvt220.js +22820 -0
- package/dist/chunk-v0qraze5.js +291 -0
- package/dist/chunk-v1kzp02e.js +785 -0
- package/dist/chunk-v78fj8by.js +145 -0
- package/dist/chunk-v8g3kad0.js +101 -0
- package/dist/chunk-v9smspw2.js +4301 -0
- package/dist/chunk-vawgyev5.js +157 -0
- package/dist/chunk-vb3x3cxe.js +375 -0
- package/dist/chunk-vf612n57.js +472 -0
- package/dist/chunk-vjn8mbcw.js +198 -0
- package/dist/chunk-vmbfv1y5.js +295 -0
- package/dist/chunk-vrf54kmt.js +321 -0
- package/dist/chunk-vyjeh50y.js +2149 -0
- package/dist/chunk-vzgkedm9.js +159745 -0
- package/dist/chunk-w004kfw0.js +245 -0
- package/dist/chunk-w0yhbmxn.js +132 -0
- package/dist/chunk-w4yn8cq7.js +123 -0
- package/dist/chunk-waqwgprq.js +1164 -0
- package/dist/chunk-wayfjcwt.js +447 -0
- package/dist/chunk-wby6yd4m.js +91 -0
- package/dist/chunk-wha6v7za.js +705 -0
- package/dist/chunk-wjcq2vkf.js +641 -0
- package/dist/chunk-wtjt9qyk.js +2670 -0
- package/dist/chunk-x2pvw7xw.js +42 -0
- package/dist/chunk-x6r4v44b.js +8 -0
- package/dist/chunk-x8d2ehd7.js +19 -0
- package/dist/chunk-xd6kmmb1.js +95 -0
- package/dist/chunk-xp61y5ba.js +125 -0
- package/dist/chunk-xv3era3s.js +8 -0
- package/dist/chunk-xxw9a0bq.js +58 -0
- package/dist/chunk-xzhaa7gd.js +112 -0
- package/dist/chunk-y1784krc.js +19 -0
- package/dist/chunk-y4ca9kqz.js +3830 -0
- package/dist/chunk-yff68ex1.js +113 -0
- package/dist/chunk-yg4vgpxs.js +436 -0
- package/dist/chunk-yk62vxj2.js +2964 -0
- package/dist/chunk-ym5r3jnk.js +2007 -0
- package/dist/chunk-ysanv95x.js +225 -0
- package/dist/chunk-yvtzznds.js +63 -0
- package/dist/chunk-yyex5gsf.js +269 -0
- package/dist/chunk-yyf72f78.js +456 -0
- package/dist/chunk-z19sd3bt.js +1648 -0
- package/dist/chunk-z2dp53wn.js +17 -0
- package/dist/chunk-z9n0183s.js +39 -0
- package/dist/chunk-zb8f6h5g.js +9174 -0
- package/dist/chunk-zctfbr1v.js +594 -0
- package/dist/chunk-zesnmkg3.js +2840 -0
- package/dist/chunk-zf47r1b7.js +94 -0
- package/dist/chunk-zghtdbat.js +253 -0
- package/dist/chunk-zpmwvd09.js +275 -0
- package/dist/chunk-zqncgyf6.js +127 -0
- package/dist/chunk-zr6mz36s.js +281 -0
- package/dist/chunk-zshzdw1n.js +141 -0
- package/dist/chunk-zx5kw7z4.js +40 -0
- package/dist/chunk-zzm33q8x.js +8 -0
- package/dist/cli.js +91 -0
- package/dist/download-ripgrep.js +24821 -0
- package/dist/vendor/audio-capture/arm64-darwin/audio-capture.node +0 -0
- package/dist/vendor/audio-capture/arm64-linux/audio-capture.node +0 -0
- package/dist/vendor/audio-capture/arm64-win32/audio-capture.node +0 -0
- package/dist/vendor/audio-capture/x64-darwin/audio-capture.node +0 -0
- package/dist/vendor/audio-capture/x64-linux/audio-capture.node +0 -0
- package/dist/vendor/audio-capture/x64-win32/audio-capture.node +0 -0
- package/dist/vendor/ripgrep/x64-win32/rg.exe +0 -0
- package/package.json +122 -0
- package/scripts/postinstall.cjs +319 -0
|
@@ -0,0 +1,458 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import {
|
|
3
|
+
renameRecordingForSession
|
|
4
|
+
} from "./chunk-hh3k5s1s.js";
|
|
5
|
+
import {
|
|
6
|
+
TODO_WRITE_TOOL_NAME,
|
|
7
|
+
TodoListSchema,
|
|
8
|
+
adoptResumedSessionFile,
|
|
9
|
+
asSessionId,
|
|
10
|
+
clearCommandMemoizationCaches,
|
|
11
|
+
clearCommandsCache,
|
|
12
|
+
clearMemoryFileCaches,
|
|
13
|
+
clearSkillCaches,
|
|
14
|
+
executeConfigChangeHooks,
|
|
15
|
+
fileHistoryRestoreStateFromLog,
|
|
16
|
+
getActiveAgentsFromList,
|
|
17
|
+
getAgentDefinitionsWithOverrides,
|
|
18
|
+
getCurrentWorktreeSession,
|
|
19
|
+
getPlansDirectory,
|
|
20
|
+
getSkillsPath,
|
|
21
|
+
hasBlockingResult,
|
|
22
|
+
init_Shell,
|
|
23
|
+
init_attachments,
|
|
24
|
+
init_claudemd,
|
|
25
|
+
init_commands1 as init_commands,
|
|
26
|
+
init_concurrentSessions,
|
|
27
|
+
init_constants4 as init_constants,
|
|
28
|
+
init_cost_tracker,
|
|
29
|
+
init_fileHistory,
|
|
30
|
+
init_hooks1 as init_hooks,
|
|
31
|
+
init_ids,
|
|
32
|
+
init_loadAgentsDir,
|
|
33
|
+
init_loadSkillsDir,
|
|
34
|
+
init_messages1 as init_messages,
|
|
35
|
+
init_plans,
|
|
36
|
+
init_sessionStorage,
|
|
37
|
+
init_types3 as init_types,
|
|
38
|
+
init_worktree,
|
|
39
|
+
onDynamicSkillsLoaded,
|
|
40
|
+
recordContentReplacement,
|
|
41
|
+
resetSentSkillNames,
|
|
42
|
+
resetSessionFilePointer,
|
|
43
|
+
restoreCostStateForSession,
|
|
44
|
+
restoreSessionMetadata,
|
|
45
|
+
restoreWorktreeSession,
|
|
46
|
+
saveWorktreeState,
|
|
47
|
+
setCwd,
|
|
48
|
+
updateSessionName
|
|
49
|
+
} from "./chunk-vzgkedm9.js";
|
|
50
|
+
import {
|
|
51
|
+
clearSystemPromptSections,
|
|
52
|
+
init_systemPromptSections
|
|
53
|
+
} from "./chunk-hwfknpxv.js";
|
|
54
|
+
import {
|
|
55
|
+
chokidar_default,
|
|
56
|
+
init_chokidar
|
|
57
|
+
} from "./chunk-ehtwnxpg.js";
|
|
58
|
+
import {
|
|
59
|
+
init_commitAttribution
|
|
60
|
+
} from "./chunk-s4cb0bcb.js";
|
|
61
|
+
import {
|
|
62
|
+
init_tasks,
|
|
63
|
+
isTodoV2Enabled
|
|
64
|
+
} from "./chunk-nebezy1d.js";
|
|
65
|
+
import {
|
|
66
|
+
init_model,
|
|
67
|
+
parseUserSpecifiedModel
|
|
68
|
+
} from "./chunk-tp2jxmcx.js";
|
|
69
|
+
import {
|
|
70
|
+
init_analytics,
|
|
71
|
+
logEvent
|
|
72
|
+
} from "./chunk-x8d2ehd7.js";
|
|
73
|
+
import {
|
|
74
|
+
getCwd,
|
|
75
|
+
init_cwd
|
|
76
|
+
} from "./chunk-s8kj6ajy.js";
|
|
77
|
+
import {
|
|
78
|
+
getFsImplementation,
|
|
79
|
+
init_cleanupRegistry,
|
|
80
|
+
init_debug,
|
|
81
|
+
init_fsOperations,
|
|
82
|
+
logForDebugging,
|
|
83
|
+
registerCleanup
|
|
84
|
+
} from "./chunk-phd1qfpc.js";
|
|
85
|
+
import {
|
|
86
|
+
createSignal,
|
|
87
|
+
getAdditionalDirectoriesForClaudeMd,
|
|
88
|
+
getMainLoopModelOverride,
|
|
89
|
+
getSessionId,
|
|
90
|
+
init_signal,
|
|
91
|
+
init_state,
|
|
92
|
+
setMainLoopModelOverride,
|
|
93
|
+
setMainThreadAgentType,
|
|
94
|
+
setOriginalCwd,
|
|
95
|
+
switchSession
|
|
96
|
+
} from "./chunk-k8vp0atq.js";
|
|
97
|
+
|
|
98
|
+
// src/utils/skills/skillChangeDetector.ts
|
|
99
|
+
init_chokidar();
|
|
100
|
+
init_state();
|
|
101
|
+
init_commands();
|
|
102
|
+
init_analytics();
|
|
103
|
+
init_loadSkillsDir();
|
|
104
|
+
init_attachments();
|
|
105
|
+
init_cleanupRegistry();
|
|
106
|
+
init_debug();
|
|
107
|
+
init_fsOperations();
|
|
108
|
+
init_hooks();
|
|
109
|
+
init_signal();
|
|
110
|
+
import * as platformPath from "path";
|
|
111
|
+
var FILE_STABILITY_THRESHOLD_MS = 1000;
|
|
112
|
+
var FILE_STABILITY_POLL_INTERVAL_MS = 500;
|
|
113
|
+
var RELOAD_DEBOUNCE_MS = 300;
|
|
114
|
+
var POLLING_INTERVAL_MS = 2000;
|
|
115
|
+
var USE_POLLING = typeof Bun !== "undefined";
|
|
116
|
+
var watcher = null;
|
|
117
|
+
var reloadTimer = null;
|
|
118
|
+
var pendingChangedPaths = new Set;
|
|
119
|
+
var initialized = false;
|
|
120
|
+
var disposed = false;
|
|
121
|
+
var dynamicSkillsCallbackRegistered = false;
|
|
122
|
+
var unregisterCleanup = null;
|
|
123
|
+
var skillsChanged = createSignal();
|
|
124
|
+
var testOverrides = null;
|
|
125
|
+
async function initialize() {
|
|
126
|
+
if (initialized || disposed)
|
|
127
|
+
return;
|
|
128
|
+
initialized = true;
|
|
129
|
+
if (!dynamicSkillsCallbackRegistered) {
|
|
130
|
+
dynamicSkillsCallbackRegistered = true;
|
|
131
|
+
onDynamicSkillsLoaded(() => {
|
|
132
|
+
clearCommandMemoizationCaches();
|
|
133
|
+
skillsChanged.emit();
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
const paths = await getWatchablePaths();
|
|
137
|
+
if (paths.length === 0)
|
|
138
|
+
return;
|
|
139
|
+
logForDebugging(`Watching for changes in skill/command directories: ${paths.join(", ")}...`);
|
|
140
|
+
watcher = chokidar_default.watch(paths, {
|
|
141
|
+
persistent: true,
|
|
142
|
+
ignoreInitial: true,
|
|
143
|
+
depth: 2,
|
|
144
|
+
awaitWriteFinish: {
|
|
145
|
+
stabilityThreshold: testOverrides?.stabilityThreshold ?? FILE_STABILITY_THRESHOLD_MS,
|
|
146
|
+
pollInterval: testOverrides?.pollInterval ?? FILE_STABILITY_POLL_INTERVAL_MS
|
|
147
|
+
},
|
|
148
|
+
ignored: (path, stats) => {
|
|
149
|
+
if (stats && !stats.isFile() && !stats.isDirectory())
|
|
150
|
+
return true;
|
|
151
|
+
return path.split(platformPath.sep).some((dir) => dir === ".git");
|
|
152
|
+
},
|
|
153
|
+
ignorePermissionErrors: true,
|
|
154
|
+
usePolling: USE_POLLING,
|
|
155
|
+
interval: testOverrides?.chokidarInterval ?? POLLING_INTERVAL_MS,
|
|
156
|
+
atomic: true
|
|
157
|
+
});
|
|
158
|
+
watcher.on("add", handleChange);
|
|
159
|
+
watcher.on("change", handleChange);
|
|
160
|
+
watcher.on("unlink", handleChange);
|
|
161
|
+
unregisterCleanup = registerCleanup(async () => {
|
|
162
|
+
await dispose();
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
function dispose() {
|
|
166
|
+
disposed = true;
|
|
167
|
+
if (unregisterCleanup) {
|
|
168
|
+
unregisterCleanup();
|
|
169
|
+
unregisterCleanup = null;
|
|
170
|
+
}
|
|
171
|
+
let closePromise = Promise.resolve();
|
|
172
|
+
if (watcher) {
|
|
173
|
+
closePromise = watcher.close();
|
|
174
|
+
watcher = null;
|
|
175
|
+
}
|
|
176
|
+
if (reloadTimer) {
|
|
177
|
+
clearTimeout(reloadTimer);
|
|
178
|
+
reloadTimer = null;
|
|
179
|
+
}
|
|
180
|
+
pendingChangedPaths.clear();
|
|
181
|
+
skillsChanged.clear();
|
|
182
|
+
return closePromise;
|
|
183
|
+
}
|
|
184
|
+
var subscribe = skillsChanged.subscribe;
|
|
185
|
+
async function getWatchablePaths() {
|
|
186
|
+
const fs = getFsImplementation();
|
|
187
|
+
const paths = [];
|
|
188
|
+
const userSkillsPath = getSkillsPath("userSettings", "skills");
|
|
189
|
+
if (userSkillsPath) {
|
|
190
|
+
try {
|
|
191
|
+
await fs.stat(userSkillsPath);
|
|
192
|
+
paths.push(userSkillsPath);
|
|
193
|
+
} catch {}
|
|
194
|
+
}
|
|
195
|
+
const userCommandsPath = getSkillsPath("userSettings", "commands");
|
|
196
|
+
if (userCommandsPath) {
|
|
197
|
+
try {
|
|
198
|
+
await fs.stat(userCommandsPath);
|
|
199
|
+
paths.push(userCommandsPath);
|
|
200
|
+
} catch {}
|
|
201
|
+
}
|
|
202
|
+
const projectSkillsPath = getSkillsPath("projectSettings", "skills");
|
|
203
|
+
if (projectSkillsPath) {
|
|
204
|
+
try {
|
|
205
|
+
const absolutePath = platformPath.resolve(projectSkillsPath);
|
|
206
|
+
await fs.stat(absolutePath);
|
|
207
|
+
paths.push(absolutePath);
|
|
208
|
+
} catch {}
|
|
209
|
+
}
|
|
210
|
+
const projectCommandsPath = getSkillsPath("projectSettings", "commands");
|
|
211
|
+
if (projectCommandsPath) {
|
|
212
|
+
try {
|
|
213
|
+
const absolutePath = platformPath.resolve(projectCommandsPath);
|
|
214
|
+
await fs.stat(absolutePath);
|
|
215
|
+
paths.push(absolutePath);
|
|
216
|
+
} catch {}
|
|
217
|
+
}
|
|
218
|
+
for (const dir of getAdditionalDirectoriesForClaudeMd()) {
|
|
219
|
+
const additionalSkillsPath = platformPath.join(dir, ".claude", "skills");
|
|
220
|
+
try {
|
|
221
|
+
await fs.stat(additionalSkillsPath);
|
|
222
|
+
paths.push(additionalSkillsPath);
|
|
223
|
+
} catch {}
|
|
224
|
+
}
|
|
225
|
+
return paths;
|
|
226
|
+
}
|
|
227
|
+
function handleChange(path) {
|
|
228
|
+
logForDebugging(`Detected skill change: ${path}`);
|
|
229
|
+
logEvent("tengu_skill_file_changed", {
|
|
230
|
+
source: "chokidar"
|
|
231
|
+
});
|
|
232
|
+
scheduleReload(path);
|
|
233
|
+
}
|
|
234
|
+
function scheduleReload(changedPath) {
|
|
235
|
+
pendingChangedPaths.add(changedPath);
|
|
236
|
+
if (reloadTimer)
|
|
237
|
+
clearTimeout(reloadTimer);
|
|
238
|
+
reloadTimer = setTimeout(async () => {
|
|
239
|
+
reloadTimer = null;
|
|
240
|
+
const paths = [...pendingChangedPaths];
|
|
241
|
+
pendingChangedPaths.clear();
|
|
242
|
+
const results = await executeConfigChangeHooks("skills", paths[0]);
|
|
243
|
+
if (hasBlockingResult(results)) {
|
|
244
|
+
logForDebugging(`ConfigChange hook blocked skill reload (${paths.length} paths)`);
|
|
245
|
+
return;
|
|
246
|
+
}
|
|
247
|
+
clearSkillCaches();
|
|
248
|
+
clearCommandsCache();
|
|
249
|
+
resetSentSkillNames();
|
|
250
|
+
skillsChanged.emit();
|
|
251
|
+
}, testOverrides?.reloadDebounce ?? RELOAD_DEBOUNCE_MS);
|
|
252
|
+
}
|
|
253
|
+
async function resetForTesting(overrides) {
|
|
254
|
+
if (watcher) {
|
|
255
|
+
await watcher.close();
|
|
256
|
+
watcher = null;
|
|
257
|
+
}
|
|
258
|
+
if (reloadTimer) {
|
|
259
|
+
clearTimeout(reloadTimer);
|
|
260
|
+
reloadTimer = null;
|
|
261
|
+
}
|
|
262
|
+
pendingChangedPaths.clear();
|
|
263
|
+
skillsChanged.clear();
|
|
264
|
+
initialized = false;
|
|
265
|
+
disposed = false;
|
|
266
|
+
testOverrides = overrides ?? null;
|
|
267
|
+
}
|
|
268
|
+
var skillChangeDetector = {
|
|
269
|
+
initialize,
|
|
270
|
+
dispose,
|
|
271
|
+
subscribe,
|
|
272
|
+
resetForTesting
|
|
273
|
+
};
|
|
274
|
+
|
|
275
|
+
// src/utils/sessionRestore.ts
|
|
276
|
+
init_state();
|
|
277
|
+
init_systemPromptSections();
|
|
278
|
+
init_cost_tracker();
|
|
279
|
+
init_loadAgentsDir();
|
|
280
|
+
init_constants();
|
|
281
|
+
init_ids();
|
|
282
|
+
import { dirname } from "path";
|
|
283
|
+
init_claudemd();
|
|
284
|
+
init_commitAttribution();
|
|
285
|
+
init_concurrentSessions();
|
|
286
|
+
init_cwd();
|
|
287
|
+
init_debug();
|
|
288
|
+
init_fileHistory();
|
|
289
|
+
init_messages();
|
|
290
|
+
init_model();
|
|
291
|
+
init_plans();
|
|
292
|
+
init_Shell();
|
|
293
|
+
init_sessionStorage();
|
|
294
|
+
init_tasks();
|
|
295
|
+
init_types();
|
|
296
|
+
init_worktree();
|
|
297
|
+
function extractTodosFromTranscript(messages) {
|
|
298
|
+
for (let i = messages.length - 1;i >= 0; i--) {
|
|
299
|
+
const msg = messages[i];
|
|
300
|
+
if (msg?.type !== "assistant")
|
|
301
|
+
continue;
|
|
302
|
+
const toolUse = msg.message.content.find((block) => block.type === "tool_use" && block.name === TODO_WRITE_TOOL_NAME);
|
|
303
|
+
if (!toolUse || toolUse.type !== "tool_use")
|
|
304
|
+
continue;
|
|
305
|
+
const input = toolUse.input;
|
|
306
|
+
if (input === null || typeof input !== "object")
|
|
307
|
+
return [];
|
|
308
|
+
const parsed = TodoListSchema().safeParse(input.todos);
|
|
309
|
+
return parsed.success ? parsed.data : [];
|
|
310
|
+
}
|
|
311
|
+
return [];
|
|
312
|
+
}
|
|
313
|
+
function restoreSessionStateFromLog(result, setAppState) {
|
|
314
|
+
if (result.fileHistorySnapshots && result.fileHistorySnapshots.length > 0) {
|
|
315
|
+
fileHistoryRestoreStateFromLog(result.fileHistorySnapshots, (newState) => {
|
|
316
|
+
setAppState((prev) => ({ ...prev, fileHistory: newState }));
|
|
317
|
+
});
|
|
318
|
+
}
|
|
319
|
+
if (false) {}
|
|
320
|
+
if (false) {}
|
|
321
|
+
if (!isTodoV2Enabled() && result.messages && result.messages.length > 0) {
|
|
322
|
+
const todos = extractTodosFromTranscript(result.messages);
|
|
323
|
+
if (todos.length > 0) {
|
|
324
|
+
const agentId = getSessionId();
|
|
325
|
+
setAppState((prev) => ({
|
|
326
|
+
...prev,
|
|
327
|
+
todos: { ...prev.todos, [agentId]: todos }
|
|
328
|
+
}));
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
function computeRestoredAttributionState(result) {
|
|
333
|
+
if (false) {}
|
|
334
|
+
return;
|
|
335
|
+
}
|
|
336
|
+
function computeStandaloneAgentContext(agentName, agentColor) {
|
|
337
|
+
if (!agentName && !agentColor) {
|
|
338
|
+
return;
|
|
339
|
+
}
|
|
340
|
+
return {
|
|
341
|
+
name: agentName ?? "",
|
|
342
|
+
color: agentColor === "default" ? undefined : agentColor
|
|
343
|
+
};
|
|
344
|
+
}
|
|
345
|
+
function restoreAgentFromSession(agentSetting, currentAgentDefinition, agentDefinitions) {
|
|
346
|
+
if (currentAgentDefinition) {
|
|
347
|
+
return { agentDefinition: currentAgentDefinition, agentType: undefined };
|
|
348
|
+
}
|
|
349
|
+
if (!agentSetting) {
|
|
350
|
+
setMainThreadAgentType(undefined);
|
|
351
|
+
return { agentDefinition: undefined, agentType: undefined };
|
|
352
|
+
}
|
|
353
|
+
const resumedAgent = agentDefinitions.activeAgents.find((agent) => agent.agentType === agentSetting);
|
|
354
|
+
if (!resumedAgent) {
|
|
355
|
+
logForDebugging(`Resumed session had agent "${agentSetting}" but it is no longer available. Using default behavior.`);
|
|
356
|
+
setMainThreadAgentType(undefined);
|
|
357
|
+
return { agentDefinition: undefined, agentType: undefined };
|
|
358
|
+
}
|
|
359
|
+
setMainThreadAgentType(resumedAgent.agentType);
|
|
360
|
+
if (!getMainLoopModelOverride() && resumedAgent.model && resumedAgent.model !== "inherit") {
|
|
361
|
+
setMainLoopModelOverride(parseUserSpecifiedModel(resumedAgent.model));
|
|
362
|
+
}
|
|
363
|
+
return { agentDefinition: resumedAgent, agentType: resumedAgent.agentType };
|
|
364
|
+
}
|
|
365
|
+
async function refreshAgentDefinitionsForModeSwitch(modeWasSwitched, currentCwd, cliAgents, currentAgentDefinitions) {
|
|
366
|
+
if (true) {
|
|
367
|
+
return currentAgentDefinitions;
|
|
368
|
+
}
|
|
369
|
+
getAgentDefinitionsWithOverrides.cache.clear?.();
|
|
370
|
+
const freshAgentDefs = await getAgentDefinitionsWithOverrides(currentCwd);
|
|
371
|
+
const freshAllAgents = [...freshAgentDefs.allAgents, ...cliAgents];
|
|
372
|
+
return {
|
|
373
|
+
...freshAgentDefs,
|
|
374
|
+
allAgents: freshAllAgents,
|
|
375
|
+
activeAgents: getActiveAgentsFromList(freshAllAgents)
|
|
376
|
+
};
|
|
377
|
+
}
|
|
378
|
+
function restoreWorktreeForResume(worktreeSession) {
|
|
379
|
+
const fresh = getCurrentWorktreeSession();
|
|
380
|
+
if (fresh) {
|
|
381
|
+
saveWorktreeState(fresh);
|
|
382
|
+
return;
|
|
383
|
+
}
|
|
384
|
+
if (!worktreeSession)
|
|
385
|
+
return;
|
|
386
|
+
try {
|
|
387
|
+
process.chdir(worktreeSession.worktreePath);
|
|
388
|
+
} catch {
|
|
389
|
+
saveWorktreeState(null);
|
|
390
|
+
return;
|
|
391
|
+
}
|
|
392
|
+
setCwd(worktreeSession.worktreePath);
|
|
393
|
+
setOriginalCwd(getCwd());
|
|
394
|
+
restoreWorktreeSession(worktreeSession);
|
|
395
|
+
clearMemoryFileCaches();
|
|
396
|
+
clearSystemPromptSections();
|
|
397
|
+
getPlansDirectory.cache.clear?.();
|
|
398
|
+
}
|
|
399
|
+
function exitRestoredWorktree() {
|
|
400
|
+
const current = getCurrentWorktreeSession();
|
|
401
|
+
if (!current)
|
|
402
|
+
return;
|
|
403
|
+
restoreWorktreeSession(null);
|
|
404
|
+
clearMemoryFileCaches();
|
|
405
|
+
clearSystemPromptSections();
|
|
406
|
+
getPlansDirectory.cache.clear?.();
|
|
407
|
+
try {
|
|
408
|
+
process.chdir(current.originalCwd);
|
|
409
|
+
} catch {
|
|
410
|
+
return;
|
|
411
|
+
}
|
|
412
|
+
setCwd(current.originalCwd);
|
|
413
|
+
setOriginalCwd(getCwd());
|
|
414
|
+
}
|
|
415
|
+
async function processResumedConversation(result, opts, context) {
|
|
416
|
+
let modeWarning;
|
|
417
|
+
if (false) {}
|
|
418
|
+
if (!opts.forkSession) {
|
|
419
|
+
const sid = opts.sessionIdOverride ?? result.sessionId;
|
|
420
|
+
if (sid) {
|
|
421
|
+
switchSession(asSessionId(sid), opts.transcriptPath ? dirname(opts.transcriptPath) : null);
|
|
422
|
+
await renameRecordingForSession();
|
|
423
|
+
await resetSessionFilePointer();
|
|
424
|
+
restoreCostStateForSession(sid);
|
|
425
|
+
}
|
|
426
|
+
} else if (result.contentReplacements?.length) {
|
|
427
|
+
await recordContentReplacement(result.contentReplacements);
|
|
428
|
+
}
|
|
429
|
+
restoreSessionMetadata(opts.forkSession ? { ...result, worktreeSession: undefined } : result);
|
|
430
|
+
if (!opts.forkSession) {
|
|
431
|
+
restoreWorktreeForResume(result.worktreeSession);
|
|
432
|
+
adoptResumedSessionFile();
|
|
433
|
+
}
|
|
434
|
+
if (false) {}
|
|
435
|
+
const { agentDefinition: restoredAgent, agentType: resumedAgentType } = restoreAgentFromSession(result.agentSetting, context.mainThreadAgentDefinition, context.agentDefinitions);
|
|
436
|
+
if (false) {}
|
|
437
|
+
const restoredAttribution = opts.includeAttribution ? computeRestoredAttributionState(result) : undefined;
|
|
438
|
+
const standaloneAgentContext = computeStandaloneAgentContext(result.agentName, result.agentColor);
|
|
439
|
+
updateSessionName(result.agentName);
|
|
440
|
+
const refreshedAgentDefs = await refreshAgentDefinitionsForModeSwitch(!!modeWarning, context.currentCwd, context.cliAgents, context.agentDefinitions);
|
|
441
|
+
return {
|
|
442
|
+
messages: result.messages,
|
|
443
|
+
fileHistorySnapshots: result.fileHistorySnapshots,
|
|
444
|
+
contentReplacements: result.contentReplacements,
|
|
445
|
+
agentName: result.agentName,
|
|
446
|
+
agentColor: result.agentColor === "default" ? undefined : result.agentColor,
|
|
447
|
+
restoredAgentDef: restoredAgent,
|
|
448
|
+
initialState: {
|
|
449
|
+
...context.initialState,
|
|
450
|
+
...resumedAgentType && { agent: resumedAgentType },
|
|
451
|
+
...restoredAttribution && { attribution: restoredAttribution },
|
|
452
|
+
...standaloneAgentContext && { standaloneAgentContext },
|
|
453
|
+
agentDefinitions: refreshedAgentDefs
|
|
454
|
+
}
|
|
455
|
+
};
|
|
456
|
+
}
|
|
457
|
+
|
|
458
|
+
export { skillChangeDetector, restoreSessionStateFromLog, computeStandaloneAgentContext, restoreAgentFromSession, restoreWorktreeForResume, exitRestoredWorktree, processResumedConversation };
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import {
|
|
3
|
+
getRemoteUrl,
|
|
4
|
+
init_git
|
|
5
|
+
} from "./chunk-tdbz9gbm.js";
|
|
6
|
+
import {
|
|
7
|
+
getCwd,
|
|
8
|
+
init_cwd
|
|
9
|
+
} from "./chunk-s8kj6ajy.js";
|
|
10
|
+
import {
|
|
11
|
+
init_debug,
|
|
12
|
+
logForDebugging
|
|
13
|
+
} from "./chunk-phd1qfpc.js";
|
|
14
|
+
import {
|
|
15
|
+
__esm
|
|
16
|
+
} from "./chunk-qp2qdcda.js";
|
|
17
|
+
|
|
18
|
+
// src/utils/detectRepository.ts
|
|
19
|
+
function clearRepositoryCaches() {
|
|
20
|
+
repositoryWithHostCache.clear();
|
|
21
|
+
}
|
|
22
|
+
async function detectCurrentRepository() {
|
|
23
|
+
const result = await detectCurrentRepositoryWithHost();
|
|
24
|
+
if (!result)
|
|
25
|
+
return null;
|
|
26
|
+
if (result.host !== "github.com")
|
|
27
|
+
return null;
|
|
28
|
+
return `${result.owner}/${result.name}`;
|
|
29
|
+
}
|
|
30
|
+
async function detectCurrentRepositoryWithHost() {
|
|
31
|
+
const cwd = getCwd();
|
|
32
|
+
if (repositoryWithHostCache.has(cwd)) {
|
|
33
|
+
return repositoryWithHostCache.get(cwd) ?? null;
|
|
34
|
+
}
|
|
35
|
+
try {
|
|
36
|
+
const remoteUrl = await getRemoteUrl();
|
|
37
|
+
logForDebugging(`Git remote URL: ${remoteUrl}`);
|
|
38
|
+
if (!remoteUrl) {
|
|
39
|
+
logForDebugging("No git remote URL found");
|
|
40
|
+
repositoryWithHostCache.set(cwd, null);
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
const parsed = parseGitRemote(remoteUrl);
|
|
44
|
+
logForDebugging(`Parsed repository: ${parsed ? `${parsed.host}/${parsed.owner}/${parsed.name}` : null} from URL: ${remoteUrl}`);
|
|
45
|
+
repositoryWithHostCache.set(cwd, parsed);
|
|
46
|
+
return parsed;
|
|
47
|
+
} catch (error) {
|
|
48
|
+
logForDebugging(`Error detecting repository: ${error}`);
|
|
49
|
+
repositoryWithHostCache.set(cwd, null);
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
function getCachedRepository() {
|
|
54
|
+
const parsed = repositoryWithHostCache.get(getCwd());
|
|
55
|
+
if (!parsed || parsed.host !== "github.com")
|
|
56
|
+
return null;
|
|
57
|
+
return `${parsed.owner}/${parsed.name}`;
|
|
58
|
+
}
|
|
59
|
+
function parseGitRemote(input) {
|
|
60
|
+
const trimmed = input.trim();
|
|
61
|
+
const sshMatch = trimmed.match(/^git@([^:]+):([^/]+)\/([^/]+?)(?:\.git)?$/);
|
|
62
|
+
if (sshMatch?.[1] && sshMatch[2] && sshMatch[3]) {
|
|
63
|
+
if (!looksLikeRealHostname(sshMatch[1]))
|
|
64
|
+
return null;
|
|
65
|
+
return {
|
|
66
|
+
host: sshMatch[1],
|
|
67
|
+
owner: sshMatch[2],
|
|
68
|
+
name: sshMatch[3]
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
const urlMatch = trimmed.match(/^(https?|ssh|git):\/\/(?:[^@]+@)?([^/:]+(?::\d+)?)\/([^/]+)\/([^/]+?)(?:\.git)?$/);
|
|
72
|
+
if (urlMatch?.[1] && urlMatch[2] && urlMatch[3] && urlMatch[4]) {
|
|
73
|
+
const protocol = urlMatch[1];
|
|
74
|
+
const hostWithPort = urlMatch[2];
|
|
75
|
+
const hostWithoutPort = hostWithPort.split(":")[0] ?? "";
|
|
76
|
+
if (!looksLikeRealHostname(hostWithoutPort))
|
|
77
|
+
return null;
|
|
78
|
+
const host = protocol === "https" || protocol === "http" ? hostWithPort : hostWithoutPort;
|
|
79
|
+
return {
|
|
80
|
+
host,
|
|
81
|
+
owner: urlMatch[3],
|
|
82
|
+
name: urlMatch[4]
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
function parseGitHubRepository(input) {
|
|
88
|
+
const trimmed = input.trim();
|
|
89
|
+
const parsed = parseGitRemote(trimmed);
|
|
90
|
+
if (parsed) {
|
|
91
|
+
if (parsed.host !== "github.com")
|
|
92
|
+
return null;
|
|
93
|
+
return `${parsed.owner}/${parsed.name}`;
|
|
94
|
+
}
|
|
95
|
+
if (!trimmed.includes("://") && !trimmed.includes("@") && trimmed.includes("/")) {
|
|
96
|
+
const parts = trimmed.split("/");
|
|
97
|
+
if (parts.length === 2 && parts[0] && parts[1]) {
|
|
98
|
+
const repo = parts[1].replace(/\.git$/, "");
|
|
99
|
+
return `${parts[0]}/${repo}`;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
logForDebugging(`Could not parse repository from: ${trimmed}`);
|
|
103
|
+
return null;
|
|
104
|
+
}
|
|
105
|
+
function looksLikeRealHostname(host) {
|
|
106
|
+
if (!host.includes("."))
|
|
107
|
+
return false;
|
|
108
|
+
const lastSegment = host.split(".").pop();
|
|
109
|
+
if (!lastSegment)
|
|
110
|
+
return false;
|
|
111
|
+
return /^[a-zA-Z]+$/.test(lastSegment);
|
|
112
|
+
}
|
|
113
|
+
var repositoryWithHostCache;
|
|
114
|
+
var init_detectRepository = __esm(() => {
|
|
115
|
+
init_cwd();
|
|
116
|
+
init_debug();
|
|
117
|
+
init_git();
|
|
118
|
+
repositoryWithHostCache = new Map;
|
|
119
|
+
});
|
|
120
|
+
|
|
121
|
+
export { clearRepositoryCaches, detectCurrentRepository, detectCurrentRepositoryWithHost, getCachedRepository, parseGitRemote, parseGitHubRepository, init_detectRepository };
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import {
|
|
3
|
+
exports_prompt,
|
|
4
|
+
getFeatureValue_CACHED_MAY_BE_STALE,
|
|
5
|
+
init_constants1 as init_constants,
|
|
6
|
+
init_growthbook,
|
|
7
|
+
init_prompt1 as init_prompt
|
|
8
|
+
} from "./chunk-tp2jxmcx.js";
|
|
9
|
+
import {
|
|
10
|
+
init_state
|
|
11
|
+
} from "./chunk-k8vp0atq.js";
|
|
12
|
+
import {
|
|
13
|
+
__esm,
|
|
14
|
+
__toCommonJS
|
|
15
|
+
} from "./chunk-qp2qdcda.js";
|
|
16
|
+
|
|
17
|
+
// src/tools/ToolSearchTool/constants.ts
|
|
18
|
+
var TOOL_SEARCH_TOOL_NAME = "ToolSearch";
|
|
19
|
+
var init_constants2 = () => {};
|
|
20
|
+
|
|
21
|
+
// src/tools/ToolSearchTool/prompt.ts
|
|
22
|
+
function getToolLocationHint() {
|
|
23
|
+
const deltaEnabled = process.env.USER_TYPE === "ant" || getFeatureValue_CACHED_MAY_BE_STALE("tengu_glacier_2xr", false);
|
|
24
|
+
return deltaEnabled ? "Deferred tools appear by name in <system-reminder> messages." : "Deferred tools appear by name in <available-deferred-tools> messages.";
|
|
25
|
+
}
|
|
26
|
+
function isDeferredTool(tool) {
|
|
27
|
+
if (tool.alwaysLoad === true)
|
|
28
|
+
return false;
|
|
29
|
+
if (tool.isMcp === true)
|
|
30
|
+
return true;
|
|
31
|
+
if (tool.name === TOOL_SEARCH_TOOL_NAME)
|
|
32
|
+
return false;
|
|
33
|
+
if (false) {}
|
|
34
|
+
if (BRIEF_TOOL_NAME && tool.name === BRIEF_TOOL_NAME) {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
if (false) {}
|
|
38
|
+
return tool.shouldDefer === true;
|
|
39
|
+
}
|
|
40
|
+
function formatDeferredToolLine(tool) {
|
|
41
|
+
return tool.name;
|
|
42
|
+
}
|
|
43
|
+
function getPrompt() {
|
|
44
|
+
return PROMPT_HEAD + getToolLocationHint() + PROMPT_TAIL;
|
|
45
|
+
}
|
|
46
|
+
var BRIEF_TOOL_NAME, PROMPT_HEAD = `Fetches full schema definitions for deferred tools so they can be called.
|
|
47
|
+
|
|
48
|
+
`, PROMPT_TAIL = ` Until fetched, only the name is known \u2014 there is no parameter schema, so the tool cannot be invoked. This tool takes a query, matches it against the deferred tool list, and returns the matched tools' complete JSONSchema definitions inside a <functions> block. Once a tool's schema appears in that result, it is callable exactly like any tool defined at the top of the prompt.
|
|
49
|
+
|
|
50
|
+
Result format: each matched tool appears as one <function>{"description": "...", "name": "...", "parameters": {...}}</function> line inside the <functions> block \u2014 the same encoding as the tool list at the top of this prompt.
|
|
51
|
+
|
|
52
|
+
Query forms:
|
|
53
|
+
- "select:Read,Edit,Grep" \u2014 fetch these exact tools by name
|
|
54
|
+
- "notebook jupyter" \u2014 keyword search, up to max_results best matches
|
|
55
|
+
- "+slack send" \u2014 require "slack" in the name, rank by remaining terms`;
|
|
56
|
+
var init_prompt2 = __esm(() => {
|
|
57
|
+
init_state();
|
|
58
|
+
init_growthbook();
|
|
59
|
+
init_constants();
|
|
60
|
+
init_constants2();
|
|
61
|
+
init_constants2();
|
|
62
|
+
BRIEF_TOOL_NAME = (init_prompt(), __toCommonJS(exports_prompt)).BRIEF_TOOL_NAME;
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
export { TOOL_SEARCH_TOOL_NAME, isDeferredTool, formatDeferredToolLine, getPrompt, init_prompt2 as init_prompt };
|