autohand-cli 0.8.2 → 0.9.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.
- package/README.md +173 -74
- package/dist/AgentRegistry-EGBDIUAK.cjs +10 -0
- package/dist/{AgentRegistry-7LDL5HJH.js → AgentRegistry-XPWSVO3Q.js} +3 -3
- package/dist/{AutomodeManager-MWLKGPZK.js → AutomodeManager-APLLPEYJ.js} +32 -18
- package/dist/{AutomodeManager-NYIZNODK.cjs → AutomodeManager-MPSXT2RH.cjs} +38 -24
- package/dist/CommunitySkillsCache-2OIUV227.cjs +8 -0
- package/dist/CommunitySkillsCache-ZEQWP6YM.js +8 -0
- package/dist/GitHubRegistryFetcher-CYJLF2XL.cjs +7 -0
- package/dist/{GitHubRegistryFetcher-6JQ5JEDZ.js → GitHubRegistryFetcher-J2BWPXJF.js} +2 -2
- package/dist/HookManager-CWLTFKWO.js +7 -0
- package/dist/HookManager-TMAJQU4S.cjs +7 -0
- package/dist/{ImportWizard-35YBJ4AM.cjs → ImportWizard-MQXEED2U.cjs} +41 -17
- package/dist/{ImportWizard-XH7CINCH.js → ImportWizard-QBKQEXDW.js} +35 -11
- package/dist/LearnAdvisor-46FG2XIP.js +9 -0
- package/dist/LearnAdvisor-XBRDNAGH.cjs +9 -0
- package/dist/McpClientManager-BNSKLHIN.cjs +8 -0
- package/dist/{McpClientManager-7RM6YT35.js → McpClientManager-SL35BR24.js} +2 -2
- package/dist/MemoryManager-34L4YOKA.cjs +8 -0
- package/dist/MemoryManager-WJMLPWGU.js +8 -0
- package/dist/NVIDIAProvider-2HR737UE.js +14 -0
- package/dist/NVIDIAProvider-MVTL62PR.cjs +14 -0
- package/dist/PermissionManager-5OOJ7FAT.cjs +11 -0
- package/dist/{PermissionManager-ATUV34LQ.js → PermissionManager-KMYILJ4Z.js} +4 -4
- package/dist/{ProjectProfiler-ZDWR2ODG.cjs → ProjectProfiler-CDAE7ECW.cjs} +2 -1
- package/dist/{ProjectProfiler-UMJJSOCE.js → ProjectProfiler-NZTJDRHD.js} +2 -1
- package/dist/ProviderFactory-C3YPXTDD.cjs +11 -0
- package/dist/ProviderFactory-HFPRVQ25.js +11 -0
- package/dist/SessionManager-PNBTJJTQ.js +10 -0
- package/dist/SessionManager-WAPTFMDO.cjs +10 -0
- package/dist/SkillsRegistry-4RRD5GMX.js +9 -0
- package/dist/SkillsRegistry-7AJP74GJ.cjs +9 -0
- package/dist/SubAgent-FDIH3DXB.js +11 -0
- package/dist/SubAgent-HVL2ICVZ.cjs +11 -0
- package/dist/{SyncApiClient-LVIO4C2S.js → SyncApiClient-LRPFNCKJ.js} +2 -2
- package/dist/SyncApiClient-VMBOLQ6H.cjs +11 -0
- package/dist/about-BW3PDZUU.js +14 -0
- package/dist/about-FCAX37YC.cjs +14 -0
- package/dist/acp-EOETGAHC.cjs +1517 -0
- package/dist/acp-VHEL7BOW.js +1517 -0
- package/dist/actionExecutor-33I47NZS.js +24 -0
- package/dist/actionExecutor-4YBMR3YH.cjs +24 -0
- package/dist/add-dir-7SS6KSH5.cjs +11 -0
- package/dist/add-dir-VFX7QT4E.js +11 -0
- package/dist/agent-DMRUFU4M.cjs +116 -0
- package/dist/agent-WCJEYQJT.js +116 -0
- package/dist/agents/builtin/code-cleaner.md +1 -1
- package/dist/agents/builtin/docs-writer.md +1 -1
- package/dist/agents/builtin/researcher.md +2 -2
- package/dist/agents/builtin/reviewer.md +1 -1
- package/dist/agents/builtin/tester.md +1 -1
- package/dist/agents/builtin/todo-resolver.md +1 -1
- package/dist/agents-CHROO3VU.cjs +17 -0
- package/dist/agents-UVDUL65K.js +17 -0
- package/dist/agents-new-AUBWSOXP.js +17 -0
- package/dist/agents-new-Y562WC47.cjs +17 -0
- package/dist/{autoSkill-6TGBTEQD.js → autoSkill-EFMK6WU6.js} +3 -3
- package/dist/autoSkill-YOLLFTP2.cjs +20 -0
- package/dist/automode-BMYSRM34.js +10 -0
- package/dist/automode-DBLKTTKD.cjs +10 -0
- package/dist/browserToolBridge-BXRQB4B4.cjs +58 -0
- package/dist/browserToolBridge-F5N66PE7.js +58 -0
- package/dist/{cc-7LEIJ3KF.js → cc-AYEP2CA3.js} +1 -1
- package/dist/{cc-Q5MM4AWC.cjs → cc-S2QLQFBR.cjs} +1 -1
- package/dist/chrome-ATC4OO5I.cjs +20 -0
- package/dist/chrome-NHJ44WUN.js +50 -0
- package/dist/chrome-O62WXV7F.js +20 -0
- package/dist/chrome-XHJLCO4M.cjs +50 -0
- package/dist/chromeSkill-53TH55PM.js +105 -0
- package/dist/chromeSkill-THW7N4IY.cjs +105 -0
- package/dist/{chunk-HOAHWIQ5.cjs → chunk-2CGE7ZV3.cjs} +26 -26
- package/dist/chunk-2H5O745H.js +63 -0
- package/dist/chunk-2HOLOHVK.js +2219 -0
- package/dist/{chunk-3PDTTAKJ.js → chunk-2QL6MNXG.js} +15 -8
- package/dist/{chunk-PGRH5Q77.cjs → chunk-2VHB43IX.cjs} +35 -6
- package/dist/{chunk-VG34MG2U.js → chunk-37M5UM6I.js} +9 -6
- package/dist/{chunk-6HYLHBQG.cjs → chunk-3DDL2E55.cjs} +20 -16
- package/dist/chunk-3EDDDZS2.cjs +5 -0
- package/dist/{chunk-6OYHF6MF.js → chunk-3GUEUCZK.js} +28 -4
- package/dist/{chunk-N254NRHT.cjs → chunk-3HT76LNN.cjs} +9 -2
- package/dist/{chunk-DVUHHH3B.cjs → chunk-3KLSNNRW.cjs} +4 -4
- package/dist/chunk-3LJJG5YY.cjs +387 -0
- package/dist/chunk-3OF56EMA.cjs +197 -0
- package/dist/chunk-3PXKRVCW.js +108 -0
- package/dist/{chunk-IKGWDOGU.cjs → chunk-3S563FNF.cjs} +160 -79
- package/dist/chunk-3UT7R3XV.js +663 -0
- package/dist/chunk-4256YRCO.cjs +80 -0
- package/dist/chunk-46C73ZKK.cjs +663 -0
- package/dist/chunk-46MTALKD.js +44 -0
- package/dist/{chunk-AEJH23FO.cjs → chunk-47PHDKNW.cjs} +6 -6
- package/dist/chunk-4LMUDS2K.js +124 -0
- package/dist/{chunk-HLHTG5ZU.cjs → chunk-5CMYEM3R.cjs} +14 -12
- package/dist/{chunk-MBBY4ZIK.js → chunk-5F6ZKSHO.js} +4 -1
- package/dist/chunk-5JFTY3VU.js +74 -0
- package/dist/chunk-5JTTM5SC.js +59 -0
- package/dist/{chunk-IETRBBMP.cjs → chunk-5K3CDSWZ.cjs} +108 -31
- package/dist/{chunk-GJH7XMSK.js → chunk-5VHP6HDQ.js} +8 -6
- package/dist/{chunk-6ZCULLCA.js → chunk-62RTC3XX.js} +1 -1
- package/dist/{chunk-MSED7RH2.cjs → chunk-6GUODJKM.cjs} +112 -41
- package/dist/{chunk-47CKWKEX.cjs → chunk-6HH236FV.cjs} +9 -4
- package/dist/{chunk-WHE2SWHU.js → chunk-6NVAK6CK.js} +2 -2
- package/dist/chunk-6R25D2H5.js +121 -0
- package/dist/{chunk-3PCTTUNW.cjs → chunk-6XVVIY54.cjs} +55 -25
- package/dist/{chunk-3L53OA4E.cjs → chunk-75EDROHL.cjs} +10 -10
- package/dist/{chunk-G4CAKI3V.js → chunk-7HPWMALN.js} +7 -2
- package/dist/chunk-7JLT2VNW.cjs +18963 -0
- package/dist/chunk-7LWQCE4Y.cjs +987 -0
- package/dist/{chunk-OLSBBZW6.cjs → chunk-7MU7LWF3.cjs} +5 -5
- package/dist/{chunk-HLQV64Y5.js → chunk-7RFJB75Y.js} +140 -59
- package/dist/{chunk-X2MSVKDV.js → chunk-A7HHCIDQ.js} +2 -2
- package/dist/{chunk-SKYG33B2.cjs → chunk-AC7DZ6SK.cjs} +3 -3
- package/dist/{chunk-XX2ZO7DS.js → chunk-ACDQGA4Z.js} +90 -16
- package/dist/{chunk-CZXGCVTR.cjs → chunk-AOKCI722.cjs} +2 -2
- package/dist/chunk-ARBEHFCG.js +715 -0
- package/dist/{chunk-OOKY3HPZ.js → chunk-AT7OWLY5.js} +50 -9
- package/dist/chunk-AU6JAGZJ.cjs +231 -0
- package/dist/chunk-AUFNACED.js +18963 -0
- package/dist/{chunk-CDBPBM2K.cjs → chunk-AUYSIEVV.cjs} +3 -3
- package/dist/chunk-B4HSNOIH.cjs +354 -0
- package/dist/{chunk-EGMZDTSL.js → chunk-B5CGDNMR.js} +10 -2
- package/dist/{chunk-34M3HWLR.js → chunk-BFQDQRDE.js} +2 -2
- package/dist/{chunk-2AA5MFES.js → chunk-BL2UC7HC.js} +8 -5
- package/dist/{chunk-LNMYK2F5.cjs → chunk-BQ22N3TX.cjs} +56 -41
- package/dist/chunk-BQU3HAE7.js +21 -0
- package/dist/chunk-BWF4VDYE.js +3897 -0
- package/dist/chunk-BYE7RQFZ.cjs +121 -0
- package/dist/{chunk-APIXPPMT.js → chunk-CBFH2J3O.js} +855 -33
- package/dist/chunk-CCVMREXI.js +420 -0
- package/dist/chunk-CFAWTLSC.js +13 -0
- package/dist/{chunk-G27PQQFD.js → chunk-CFFE4VA3.js} +1 -1
- package/dist/{chunk-ZYQMLKOK.cjs → chunk-CH2J4PVE.cjs} +212 -70
- package/dist/{chunk-7BTSG4ME.cjs → chunk-CHI52KFR.cjs} +855 -33
- package/dist/{chunk-DJDE4DTT.cjs → chunk-CWINVFRI.cjs} +25 -19
- package/dist/{chunk-HXGBSJL5.cjs → chunk-D2OSPLYC.cjs} +2 -2
- package/dist/{chunk-GBHDROGL.js → chunk-D6GZBSOX.js} +16 -4
- package/dist/{chunk-CNBKZEX5.cjs → chunk-DA7NBAJK.cjs} +49 -17
- package/dist/chunk-DEQVRSV5.cjs +866 -0
- package/dist/{chunk-RGR6ME5J.cjs → chunk-DI57A4BX.cjs} +25 -28
- package/dist/{chunk-WM5PAOTQ.cjs → chunk-DIZTWFVR.cjs} +1649 -484
- package/dist/{chunk-YZXUDM5X.js → chunk-DLP436GI.js} +204 -62
- package/dist/{chunk-OHUZKDGX.js → chunk-DMRXF5DU.js} +3 -3
- package/dist/{chunk-U46VYPLR.cjs → chunk-DPSIGY6L.cjs} +9 -9
- package/dist/{chunk-DN573ME7.cjs → chunk-DRWDEHE5.cjs} +4 -4
- package/dist/{chunk-SEKD5FH3.cjs → chunk-E26KKI46.cjs} +5 -2
- package/dist/{chunk-J4Q7XR3G.js → chunk-E46DJH5S.js} +3 -3
- package/dist/{chunk-Q7XSCYND.cjs → chunk-E6GFD7VR.cjs} +49 -26
- package/dist/chunk-ES2HJQ4N.js +37 -0
- package/dist/chunk-EZJHLOWP.js +80 -0
- package/dist/chunk-FFBDRUO5.cjs +59 -0
- package/dist/{chunk-AYSFIUFW.js → chunk-FGT6KK6T.js} +38 -15
- package/dist/{chunk-SAHBLB3E.js → chunk-FP46B4X3.js} +208 -3
- package/dist/{chunk-DSPQEHDT.js → chunk-FQAVGSPW.js} +2 -2
- package/dist/chunk-FQVG6ZHF.js +197 -0
- package/dist/chunk-GBMDFWJX.cjs +152 -0
- package/dist/{chunk-DRE2RXBZ.js → chunk-GGLKUENP.js} +1605 -440
- package/dist/{chunk-S52YW5ZQ.js → chunk-GNBBIAMD.js} +16 -19
- package/dist/{chunk-MYISNQH4.js → chunk-GWO66KBI.js} +1 -1
- package/dist/chunk-GWY26SUD.cjs +63 -0
- package/dist/{chunk-YGN4CQIP.js → chunk-GZ6DV2UG.js} +1 -1
- package/dist/{chunk-EZMINVLU.js → chunk-H4D2Q2AL.js} +5 -2
- package/dist/chunk-HDK2EHVH.cjs +570 -0
- package/dist/chunk-HJIXWGQZ.js +139 -0
- package/dist/{chunk-6RF7UKUS.js → chunk-HKYZSUQ5.js} +48 -47
- package/dist/{chunk-LQGVEP3E.js → chunk-HQUSEWT4.js} +45 -13
- package/dist/{chunk-HTLINWX6.cjs → chunk-HQWQZML5.cjs} +16 -13
- package/dist/{chunk-DVZOENQ7.cjs → chunk-HS4USDND.cjs} +9 -4
- package/dist/chunk-HSCUPEA4.cjs +3897 -0
- package/dist/{chunk-JCLYQ2JC.js → chunk-HXJEGMGB.js} +12 -6
- package/dist/{chunk-LJFUXC56.cjs → chunk-HXQREVTA.cjs} +9 -6
- package/dist/{chunk-SCXX4LW5.js → chunk-I24CWKKK.js} +15 -8
- package/dist/chunk-IAGCRVJ3.js +355 -0
- package/dist/chunk-IEXKKKOF.cjs +92 -0
- package/dist/{chunk-5IXII4HX.cjs → chunk-IGMPWJ2I.cjs} +19 -12
- package/dist/chunk-IKUMVBCW.cjs +33 -0
- package/dist/{chunk-XTB6VJVQ.cjs → chunk-J2K57QM7.cjs} +6 -6
- package/dist/{chunk-O4IF4NJT.cjs → chunk-J5ADZN6V.cjs} +57 -56
- package/dist/chunk-J5HE6CUM.cjs +124 -0
- package/dist/{chunk-JS7IPR7P.js → chunk-JAQO6XDB.js} +31 -2
- package/dist/chunk-JIMSII7R.js +987 -0
- package/dist/chunk-JJ4KA7HK.cjs +2219 -0
- package/dist/chunk-JMN3GZU6.js +570 -0
- package/dist/{chunk-X5VSP65C.cjs → chunk-JP3YHTQ2.cjs} +4 -4
- package/dist/{chunk-SKV2F3NM.js → chunk-JYKPWK5O.js} +1 -1
- package/dist/{chunk-NNPAM4HC.cjs → chunk-KNTUI4TZ.cjs} +12 -6
- package/dist/{chunk-HIVRCQS2.js → chunk-L4F7SUYL.js} +56 -25
- package/dist/{chunk-C5IJIM2V.cjs → chunk-LDJQ5QHG.cjs} +68 -37
- package/dist/{chunk-ULQ6MDSJ.cjs → chunk-LFDPTJYF.cjs} +43 -35
- package/dist/chunk-LJD7KR3L.cjs +44 -0
- package/dist/chunk-LN7D3EJZ.js +387 -0
- package/dist/{chunk-643VRA5S.cjs → chunk-LQBONA55.cjs} +32 -8
- package/dist/{chunk-NCC6ETZS.js → chunk-LUMV3DB2.js} +41 -33
- package/dist/chunk-M4KNC5BQ.js +78 -0
- package/dist/chunk-MO4KP6XS.cjs +229 -0
- package/dist/{chunk-BVKXEQVG.cjs → chunk-MOJ7ADW4.cjs} +22 -10
- package/dist/chunk-MPULXVC4.cjs +715 -0
- package/dist/{chunk-X5YJ34FZ.cjs → chunk-MQESBFBZ.cjs} +46 -23
- package/dist/chunk-MUNUUFU7.cjs +21 -0
- package/dist/{chunk-X3WS5LDG.js → chunk-MX75JYIY.js} +7 -5
- package/dist/chunk-MXVIDIC6.cjs +139 -0
- package/dist/{chunk-3K2ESU53.cjs → chunk-N6O3XUZ2.cjs} +2 -2
- package/dist/{chunk-IVM5F2AE.js → chunk-NBGOIFKP.js} +265 -18
- package/dist/{chunk-SLQAYV3W.js → chunk-NMQ47RCG.js} +8 -2
- package/dist/{chunk-JYTDYJVW.js → chunk-O64I2GYI.js} +1 -1
- package/dist/{chunk-IFFXSTOM.cjs → chunk-O6TQP7U7.cjs} +3 -3
- package/dist/{chunk-AYS2ASM7.js → chunk-OHWMWKJQ.js} +1 -1
- package/dist/{chunk-N23UAW4I.js → chunk-OM24WXEE.js} +7 -2
- package/dist/{chunk-MAKMSQMQ.cjs → chunk-OPNI6O7F.cjs} +8 -6
- package/dist/chunk-OR67YXQK.cjs +13 -0
- package/dist/{chunk-QOXPOR5D.js → chunk-OV3PVUYN.js} +115 -44
- package/dist/{chunk-TNZRZQ7Q.js → chunk-PB7W7R72.js} +3 -78
- package/dist/chunk-PCM3N3CL.cjs +37 -0
- package/dist/{chunk-A4IJHHV7.cjs → chunk-PDHT7LQS.cjs} +52 -11
- package/dist/{chunk-LA7H35XM.cjs → chunk-PHJO5YAL.cjs} +9 -9
- package/dist/{chunk-KPELYZ6L.js → chunk-PQLKJCIE.js} +2 -2
- package/dist/chunk-PUD76XQT.cjs +78 -0
- package/dist/chunk-Q2IL4DDI.cjs +355 -0
- package/dist/{chunk-WPVWQSL7.cjs → chunk-Q6AC3PHY.cjs} +16 -13
- package/dist/{chunk-XRZEUWKF.js → chunk-QCHIDZBA.js} +1 -1
- package/dist/{chunk-IQ5RXU6O.js → chunk-QEGOB6QV.js} +1 -1
- package/dist/{chunk-JSBRDJBE.js → chunk-QGM4M3NI.js} +8 -1
- package/dist/chunk-QKP772OZ.js +4291 -0
- package/dist/chunk-QQ7PANOP.js +59 -0
- package/dist/{chunk-YHD6TUIR.cjs → chunk-QW2RW2GY.cjs} +2 -0
- package/dist/chunk-RAKO7UN7.js +114 -0
- package/dist/chunk-RBHANOYY.js +33 -0
- package/dist/chunk-RBZ7AFX7.cjs +29 -0
- package/dist/{chunk-TXSDBGKX.cjs → chunk-REMGR23V.cjs} +46 -49
- package/dist/chunk-ROLA6EFO.cjs +85 -0
- package/dist/{chunk-TBEGGJNC.cjs → chunk-SOLBYSLY.cjs} +33 -16
- package/dist/{chunk-FKSDEWDH.js → chunk-SWCQM52V.js} +68 -25
- package/dist/{chunk-H5SWOLG6.js → chunk-TBOLJDUG.js} +39 -24
- package/dist/chunk-TH26BQJG.js +101 -0
- package/dist/{chunk-245KJE5Y.cjs → chunk-TJNBASFD.cjs} +14 -6
- package/dist/chunk-TKKN34TV.js +229 -0
- package/dist/chunk-TQ33WBY5.cjs +74 -0
- package/dist/{chunk-EGFT4PGW.js → chunk-TWQDAUZU.js} +5 -2
- package/dist/{chunk-OGV4WJ5L.cjs → chunk-TXPSTCG7.cjs} +74 -59
- package/dist/{chunk-CAMZTXV6.js → chunk-U4C3HW6P.js} +67 -52
- package/dist/{chunk-5P2NXKP3.js → chunk-UEIXJG45.js} +104 -76
- package/dist/{chunk-22D2CNTP.cjs → chunk-UGFVM77J.cjs} +5 -2
- package/dist/chunk-UOQECODR.js +34 -0
- package/dist/chunk-UR27UDTB.js +354 -0
- package/dist/chunk-UWFG2R2I.cjs +420 -0
- package/dist/{chunk-Y72HH2TF.cjs → chunk-UXLW45ZE.cjs} +102 -28
- package/dist/{chunk-FPHU2ES6.cjs → chunk-VBOFPU5M.cjs} +6 -0
- package/dist/{chunk-JX3DFKBI.js → chunk-VDWJMWDF.js} +54 -24
- package/dist/{chunk-LENHP55G.cjs → chunk-VGEV44V2.cjs} +1076 -158
- package/dist/{chunk-33RSHBDH.js → chunk-VKBIE6I6.js} +38 -7
- package/dist/{chunk-CWMZKFTT.js → chunk-VRMZO6TB.js} +31 -8
- package/dist/chunk-VUGOOGHB.js +400 -0
- package/dist/chunk-WBU4Q4GS.cjs +400 -0
- package/dist/chunk-WGLBC5AY.cjs +59 -0
- package/dist/{chunk-KWXVKLQ5.cjs → chunk-WGNMOVMT.cjs} +7 -82
- package/dist/{chunk-RKJTGGMU.cjs → chunk-WKRDBCP2.cjs} +221 -16
- package/dist/chunk-WRTXCQ3V.cjs +4291 -0
- package/dist/chunk-WTB7AFL6.cjs +101 -0
- package/dist/{chunk-NDMIPTV4.js → chunk-WZV6UVPY.js} +8 -3
- package/dist/chunk-XF2WIKHR.cjs +34 -0
- package/dist/{chunk-L3WAH3EM.cjs → chunk-XGMI6IYB.cjs} +46 -15
- package/dist/{chunk-FW774QXH.js → chunk-XIVFAD2L.js} +1048 -130
- package/dist/chunk-XV2HXRHX.js +85 -0
- package/dist/{chunk-72FKPBT5.js → chunk-Y3M2DABP.js} +16 -12
- package/dist/{chunk-QNGEW5TC.js → chunk-YV63VW4K.js} +1 -1
- package/dist/{chunk-UJ2JSM6H.js → chunk-YVQI26H4.js} +2 -0
- package/dist/{chunk-RD5XAJR2.cjs → chunk-YWTIXHU6.cjs} +266 -19
- package/dist/chunk-YZWE7XSM.js +5 -0
- package/dist/{chunk-I5IW3T2Y.js → chunk-Z3XSSF7B.js} +32 -15
- package/dist/{chunk-6UJMCWRY.js → chunk-Z4LIPMPM.js} +6 -0
- package/dist/chunk-ZASDSY7P.cjs +114 -0
- package/dist/{chunk-R33VKSH5.cjs → chunk-ZHJ7JGME.cjs} +11 -11
- package/dist/chunk-ZPD2AO3U.js +866 -0
- package/dist/{chunk-7UOUW76C.js → chunk-ZQAT5VT5.js} +101 -24
- package/dist/chunk-ZR46OJNZ.js +152 -0
- package/dist/{chunk-G3V4SFET.cjs → chunk-ZZ63NW7A.cjs} +78 -35
- package/dist/clear-33TWQ2ES.cjs +12 -0
- package/dist/clear-OFLFQ3MR.js +12 -0
- package/dist/{communityInstaller-6KCFN7YZ.js → communityInstaller-COB2KTOW.js} +9 -6
- package/dist/communityInstaller-TWMGPSYM.cjs +22 -0
- package/dist/completion-IIZMHXYP.cjs +17 -0
- package/dist/completion-PT4VM2H2.js +17 -0
- package/dist/config-KL6WU7R2.cjs +20 -0
- package/dist/{config-ZN66VXPS.js → config-R4O7GBTY.js} +7 -5
- package/dist/{constants-UFM5B232.js → constants-HVCHVQAF.js} +2 -2
- package/dist/constants-RLMJ5D5P.cjs +21 -0
- package/dist/{defaultHooks-RCXPHF4M.cjs → defaultHooks-2V2CQL63.cjs} +26 -11
- package/dist/{defaultHooks-RDRMER3Z.js → defaultHooks-TMHDU3FS.js} +26 -11
- package/dist/export-3PK3VFCE.js +15 -0
- package/dist/export-WLGNWEMJ.cjs +15 -0
- package/dist/{extractSessionMemories-V7K42ZHW.js → extractSessionMemories-A2JX5WJ2.js} +1 -1
- package/dist/{extractSessionMemories-SDW2MVBQ.cjs → extractSessionMemories-XL3MS37F.cjs} +1 -1
- package/dist/feedback-G635NCLJ.js +18 -0
- package/dist/feedback-LLMK3TZH.cjs +18 -0
- package/dist/fffSearchProvider-2YCNKOYD.js +412 -0
- package/dist/fffSearchProvider-W6627E2V.cjs +412 -0
- package/dist/filesystem-L6DQKGWK.js +11 -0
- package/dist/filesystem-PGUPCMVK.cjs +11 -0
- package/dist/{formatters-6K7QVWQL.cjs → formatters-53XTCNGQ.cjs} +1 -1
- package/dist/{formatters-DQHO5I36.js → formatters-T6KV4BPP.js} +1 -1
- package/dist/help-BAXLP2M2.cjs +12 -0
- package/dist/{help-2BLR7L43.js → help-X3OAZ3CY.js} +3 -3
- package/dist/history-6HOJSEMT.cjs +14 -0
- package/dist/{history-5FZ3M2AK.js → history-YKFPHBJN.js} +3 -3
- package/dist/hooks-7TA4PIIB.js +18 -0
- package/dist/hooks-XVFU67T2.cjs +18 -0
- package/dist/{i18n-K7QOWIBH.js → i18n-2KBUU7XL.js} +2 -2
- package/dist/i18n-MUJMKTFM.cjs +33 -0
- package/dist/ide-CCQ33PGC.cjs +15 -0
- package/dist/ide-VLVFBZ5F.js +15 -0
- package/dist/immediateCommandRouter-MTEHZXQX.js +15 -0
- package/dist/immediateCommandRouter-ROXU3MWT.cjs +15 -0
- package/dist/{import-UXM3VK7B.js → import-4CHYLS4K.js} +4 -4
- package/dist/{import-QEME3E4T.cjs → import-I7T4ZHYL.cjs} +4 -4
- package/dist/import-J46F54JY.cjs +10 -0
- package/dist/import-JWPYKXCZ.js +10 -0
- package/dist/index.cjs +747 -22356
- package/dist/index.d.cts +93 -0
- package/dist/index.d.ts +93 -0
- package/dist/index.js +786 -22395
- package/dist/init-262MWZV4.js +10 -0
- package/dist/init-EE5Y7RBL.cjs +10 -0
- package/dist/inkMode-VUE6ZDLD.cjs +7 -0
- package/dist/inkMode-WBNFOSAT.js +7 -0
- package/dist/inputPrompt-IIFKCX5Q.cjs +90 -0
- package/dist/inputPrompt-YGBHDUEP.js +90 -0
- package/dist/language-CVLPB7OV.js +21 -0
- package/dist/language-ZTWFHUSV.cjs +21 -0
- package/dist/learn-PON7I5QS.js +23 -0
- package/dist/learn-XLRSVNA3.cjs +23 -0
- package/dist/{lint-D5UOJWIK.cjs → lint-4NDGCSCL.cjs} +1 -1
- package/dist/{lint-NJPZWVN2.js → lint-FZ7ZJUB3.js} +1 -1
- package/dist/login-223QTGBG.cjs +26 -0
- package/dist/login-6IKTBUBY.js +26 -0
- package/dist/logout-RN2AG6SI.js +23 -0
- package/dist/logout-U3M4FFX7.cjs +23 -0
- package/dist/mcp-5O6PUL4G.js +20 -0
- package/dist/mcp-NUQ76QQB.cjs +20 -0
- package/dist/{mcp-install-VESN42PI.js → mcp-install-6XWXLFVY.js} +18 -11
- package/dist/{mcp-install-G27HSS3Z.cjs → mcp-install-P6DHES7V.cjs} +22 -15
- package/dist/memory-CYMDQ2YC.cjs +10 -0
- package/dist/memory-Q54CESNM.js +10 -0
- package/dist/{message-ZJ5AYAMT.cjs → message-4OKO775J.cjs} +1 -1
- package/dist/{message-JUBOK2VU.js → message-X3LOAAM7.js} +1 -1
- package/dist/model-6AJ77PJG.js +10 -0
- package/dist/model-IDRCKDML.cjs +10 -0
- package/dist/new-7LEWOUF2.cjs +12 -0
- package/dist/new-ZXHEWC2S.js +12 -0
- package/dist/onboarding-FXX7YHSJ.cjs +35 -0
- package/dist/onboarding-JYNMK6NI.js +35 -0
- package/dist/{patch-MOD7QC3D.cjs → patch-DJ2GPFST.cjs} +1 -1
- package/dist/{patch-5F6VBIT3.js → patch-NIJWIRHS.js} +1 -1
- package/dist/permissions-YBNSANIA.cjs +10 -0
- package/dist/permissions-YHJMVA6L.js +10 -0
- package/dist/plan-XEJMOT55.cjs +13 -0
- package/dist/plan-YYUAXPTL.js +13 -0
- package/dist/pr-review-CW6J7P62.cjs +9 -0
- package/dist/pr-review-YZSBQVT2.js +9 -0
- package/dist/quit-B43SJ6E4.cjs +10 -0
- package/dist/quit-GWTNHQSP.js +10 -0
- package/dist/rawMode-6W5AXAKI.cjs +7 -0
- package/dist/rawMode-GFNLXQPU.js +7 -0
- package/dist/{registry-KWZGYJC2.js → registry-34GL6BNJ.js} +30 -45
- package/dist/{registry-YN4FQPOO.cjs → registry-V24W7YK6.cjs} +66 -81
- package/dist/repeat-P4FAPE3Y.cjs +17 -0
- package/dist/repeat-RALE6AUO.js +17 -0
- package/dist/resume-DYVOQN5L.cjs +16 -0
- package/dist/resume-M25UQKOX.js +16 -0
- package/dist/review-QHP2KP4Q.js +9 -0
- package/dist/review-UWHWQHCB.cjs +9 -0
- package/dist/ripgrep-67SCU2BA.cjs +9 -0
- package/dist/ripgrep-VHJQQ55W.js +9 -0
- package/dist/rpc-NPS3PU4O.cjs +3730 -0
- package/dist/rpc-S3DGW6KV.js +3730 -0
- package/dist/search-CPX4PWHP.js +20 -0
- package/dist/search-VUF3M4N3.cjs +20 -0
- package/dist/{session-BSU2L5UI.cjs → session-LXKC4X5Q.cjs} +1 -1
- package/dist/{session-SZMRN5KG.js → session-NMMO4QOL.js} +1 -1
- package/dist/sessions-IYAXMK23.js +10 -0
- package/dist/sessions-JODKER5D.cjs +10 -0
- package/dist/settings-55BNW6BF.js +33 -0
- package/dist/settings-BKTS7OMC.cjs +33 -0
- package/dist/setup-IRC5HQG2.js +29 -0
- package/dist/setup-MMQ7TWOP.cjs +29 -0
- package/dist/share-6JRQECAH.cjs +17 -0
- package/dist/share-YM5MJKMO.js +17 -0
- package/dist/{skills-FYY6F2WV.cjs → skills-GGMZOVIE.cjs} +14 -11
- package/dist/skills-LWSOKOSH.cjs +29 -0
- package/dist/{skills-6OL4OSGA.js → skills-MVIZNHT4.js} +13 -10
- package/dist/skills-VWOMV3CR.js +29 -0
- package/dist/{skills-install-6CSWC24P.js → skills-install-QBA5RCV6.js} +22 -71
- package/dist/{skills-install-O3LZ2ETC.cjs → skills-install-VTAMCNNY.cjs} +35 -84
- package/dist/skills-new-GPL46YV2.js +18 -0
- package/dist/skills-new-L5BEZN5V.cjs +18 -0
- package/dist/slashCommands-FBPCIWM5.cjs +95 -0
- package/dist/slashCommands-FCWY5DXW.js +95 -0
- package/dist/status-3B5SDZPL.js +17 -0
- package/dist/status-TTGRF6NC.cjs +17 -0
- package/dist/summarizer-DGPHE5IQ.js +17 -0
- package/dist/summarizer-JNXLUAQG.cjs +17 -0
- package/dist/sync-77CXVVTK.cjs +21 -0
- package/dist/{sync-KWX67OUN.js → sync-7BILIQHP.js} +4 -4
- package/dist/sync-7OKF6636.js +21 -0
- package/dist/sync-EH4K5U3N.cjs +40 -0
- package/dist/{tasks-5FPBIFLC.js → tasks-R5MBGAQ6.js} +1 -1
- package/dist/{tasks-TXGKGNH6.cjs → tasks-V4WB3MFR.cjs} +1 -1
- package/dist/{team-5YXP3JGR.js → team-JESCHGWB.js} +1 -1
- package/dist/{team-IIWEZKNR.cjs → team-VQQKWGZB.cjs} +1 -1
- package/dist/{teammate-L6EZQ3I2.js → teammate-GZQSCIMS.js} +29 -8
- package/dist/{teammate-2KMKJXAM.cjs → teammate-J6PHGL23.cjs} +30 -9
- package/dist/theme-64BYGJ57.cjs +21 -0
- package/dist/theme-YJE6HEON.js +21 -0
- package/dist/tools-3PPTTKFV.js +9 -0
- package/dist/tools-THIQA7WC.cjs +9 -0
- package/dist/ui/questionModal.cjs +9 -6
- package/dist/ui/questionModal.js +8 -5
- package/dist/undo-PRTEGL2J.cjs +10 -0
- package/dist/undo-SZEHLX7X.js +10 -0
- package/dist/{update-TVAJMMBC.js → update-53WMKYVS.js} +1 -1
- package/dist/{update-Z6BIIQDC.cjs → update-NV6QRYY7.cjs} +1 -1
- package/dist/web-3BA2WV37.cjs +37 -0
- package/dist/web-6FYGBX5K.js +37 -0
- package/dist/workspaceSafety-MDJGHK6D.cjs +9 -0
- package/dist/workspaceSafety-XOUMUBVB.js +9 -0
- package/dist/yolo-GF2YD7ZI.js +9 -0
- package/dist/yolo-OGDA7HNC.cjs +9 -0
- package/dist/yoloMode-3DJDA75U.cjs +17 -0
- package/dist/yoloMode-4JOOSU26.js +17 -0
- package/package.json +46 -49
- package/dist/AgentRegistry-NQCLWABO.cjs +0 -10
- package/dist/CommunitySkillsCache-6QPRMTJO.js +0 -8
- package/dist/CommunitySkillsCache-GTQMOCCO.cjs +0 -8
- package/dist/GitHubRegistryFetcher-S7QFUEKV.cjs +0 -7
- package/dist/HookManager-Q2KYMCP4.cjs +0 -7
- package/dist/HookManager-TTP4Y6DC.js +0 -7
- package/dist/LearnAdvisor-A4Q5PPBI.js +0 -9
- package/dist/LearnAdvisor-GASQD7HT.cjs +0 -9
- package/dist/McpClientManager-RKD7C6OY.cjs +0 -8
- package/dist/MemoryManager-GUNLRP5S.js +0 -8
- package/dist/MemoryManager-TNSGKDKX.cjs +0 -8
- package/dist/PermissionManager-KMN53FJP.cjs +0 -11
- package/dist/ProviderFactory-MR5B23QJ.js +0 -9
- package/dist/ProviderFactory-VFGCJJX6.cjs +0 -9
- package/dist/SessionManager-FEUAU3ZJ.cjs +0 -10
- package/dist/SessionManager-IKWAK2PI.js +0 -10
- package/dist/SkillsRegistry-KPQFTRIT.cjs +0 -9
- package/dist/SkillsRegistry-XJSKPDF2.js +0 -9
- package/dist/SubAgent-NYH6GWQ3.js +0 -11
- package/dist/SubAgent-PZKBDUBA.cjs +0 -11
- package/dist/SyncApiClient-ZNYMT36M.cjs +0 -11
- package/dist/about-HHTF2YFL.js +0 -12
- package/dist/about-JGRVNNQC.cjs +0 -12
- package/dist/actionExecutor-U6IBN2TU.cjs +0 -19
- package/dist/actionExecutor-XT5FW3W6.js +0 -19
- package/dist/add-dir-247K3XRY.js +0 -10
- package/dist/add-dir-GS4DXKKH.cjs +0 -10
- package/dist/agents-R6ZEFTVR.cjs +0 -12
- package/dist/agents-WJPQWQF2.js +0 -12
- package/dist/agents-new-HKVEIBDJ.js +0 -14
- package/dist/agents-new-X6GTHIO6.cjs +0 -14
- package/dist/autoSkill-H4T6VVDA.cjs +0 -20
- package/dist/automode-BC6NVECO.js +0 -10
- package/dist/automode-WN2RSOGW.cjs +0 -10
- package/dist/chunk-33A755XB.cjs +0 -168
- package/dist/chunk-3OTU3RS3.cjs +0 -1607
- package/dist/chunk-4PKF7WPD.js +0 -100
- package/dist/chunk-ALYU6VTM.js +0 -105
- package/dist/chunk-AS6RTLN7.cjs +0 -203
- package/dist/chunk-BWN2CLLM.cjs +0 -298
- package/dist/chunk-HQ7YZKXE.js +0 -168
- package/dist/chunk-HVKOZ2VP.cjs +0 -115
- package/dist/chunk-J6QET7EF.cjs +0 -454
- package/dist/chunk-LWUJFGOZ.js +0 -115
- package/dist/chunk-P47WPOXN.js +0 -298
- package/dist/chunk-PRRCJFU3.cjs +0 -85
- package/dist/chunk-RO6WYEWH.js +0 -454
- package/dist/chunk-SYVYLZZF.cjs +0 -24
- package/dist/chunk-T73IDKDF.js +0 -111
- package/dist/chunk-YRLYSQEQ.cjs +0 -105
- package/dist/chunk-ZQE72E6W.cjs +0 -100
- package/dist/chunk-ZVY2XD6T.js +0 -1607
- package/dist/clear-UO4MNWZW.cjs +0 -12
- package/dist/clear-ZJ5NYP6E.js +0 -12
- package/dist/communityInstaller-PVSOFDZD.cjs +0 -19
- package/dist/completion-MMF2PN2H.js +0 -14
- package/dist/completion-UI5WKHXI.cjs +0 -14
- package/dist/config-E7RINK4R.cjs +0 -18
- package/dist/constants-6CPCJ3DY.cjs +0 -21
- package/dist/export-N4XIVDSL.cjs +0 -12
- package/dist/export-W22L4D5C.js +0 -12
- package/dist/feedback-DR6ADSNE.cjs +0 -15
- package/dist/feedback-FEEAP4QW.js +0 -15
- package/dist/filesystem-3SGCW2BF.js +0 -10
- package/dist/filesystem-MCFXJQ6R.cjs +0 -10
- package/dist/help-AQHGTS7P.cjs +0 -12
- package/dist/history-NIUDRMKA.cjs +0 -14
- package/dist/hooks-2EY4IPKV.js +0 -13
- package/dist/hooks-LJVORRIG.cjs +0 -13
- package/dist/i18n-ARDG2SMC.cjs +0 -33
- package/dist/ide-GFW6IJHD.js +0 -12
- package/dist/ide-N2ZNSSB3.cjs +0 -12
- package/dist/import-DFVN3KNZ.js +0 -10
- package/dist/import-ZS6DPGU5.cjs +0 -10
- package/dist/init-PY75HA3S.cjs +0 -10
- package/dist/init-QNMWLAVY.js +0 -10
- package/dist/language-5UE4G2BT.cjs +0 -18
- package/dist/language-UXMHEZUJ.js +0 -18
- package/dist/learn-HJ3FLNZC.cjs +0 -20
- package/dist/learn-MVYS3RU5.js +0 -20
- package/dist/localProjectPermissions-N77HA3XK.js +0 -18
- package/dist/localProjectPermissions-UFSMNTBJ.cjs +0 -18
- package/dist/login-DSE7H63A.js +0 -20
- package/dist/login-V3MEWPKN.cjs +0 -20
- package/dist/logout-BMVCLKKW.js +0 -18
- package/dist/logout-XEG7FHOZ.cjs +0 -18
- package/dist/mcp-PYUR4PHO.js +0 -18
- package/dist/mcp-SG6JFLGC.cjs +0 -18
- package/dist/memory-4ZMMEZ2Z.js +0 -10
- package/dist/memory-QSGMVVGH.cjs +0 -10
- package/dist/model-NANLBZ4Z.cjs +0 -10
- package/dist/model-ZXNV4AF7.js +0 -10
- package/dist/new-5QJY5JP2.js +0 -12
- package/dist/new-PMMG55UX.cjs +0 -12
- package/dist/permissions-LECTCJ4H.cjs +0 -13
- package/dist/permissions-VP5VGIBL.js +0 -13
- package/dist/plan-G5CEKJI4.js +0 -11
- package/dist/plan-QKOHE3LH.cjs +0 -11
- package/dist/quit-BKOOPHU5.cjs +0 -10
- package/dist/quit-FVFNYACP.js +0 -10
- package/dist/resume-EXFQSQPH.js +0 -13
- package/dist/resume-PP2IQM5S.cjs +0 -13
- package/dist/search-C56FBN67.cjs +0 -17
- package/dist/search-XGZDYBF4.js +0 -17
- package/dist/sessions-54KI3F2Q.js +0 -10
- package/dist/sessions-DDTSPNVW.cjs +0 -10
- package/dist/settings-BDO37TTO.cjs +0 -30
- package/dist/settings-FHRDFPLK.js +0 -30
- package/dist/share-IERCTBGN.cjs +0 -14
- package/dist/share-TGROUE6R.js +0 -14
- package/dist/skills-OM4IGBAA.cjs +0 -26
- package/dist/skills-S3GRN323.js +0 -26
- package/dist/skills-new-ALD2PTHN.js +0 -15
- package/dist/skills-new-PWLKK7GW.cjs +0 -15
- package/dist/slashCommands-L4ZD33LJ.js +0 -75
- package/dist/slashCommands-YY2VUUDF.cjs +0 -75
- package/dist/status-3PC5XWSS.cjs +0 -11
- package/dist/status-KCLVOYPD.js +0 -11
- package/dist/sync-6SDWG5RK.js +0 -18
- package/dist/sync-7JMZVEQD.cjs +0 -40
- package/dist/sync-WHURZL3U.cjs +0 -18
- package/dist/theme-BE5A4FPN.cjs +0 -18
- package/dist/theme-YMFCQP7J.js +0 -18
- package/dist/undo-KZHUUZTD.cjs +0 -10
- package/dist/undo-NEIEHQVX.js +0 -10
|
@@ -0,0 +1,420 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
var _chunk3OF56EMAcjs = require('./chunk-3OF56EMA.cjs');
|
|
5
|
+
|
|
6
|
+
// src/providers/NVIDIAClient.ts
|
|
7
|
+
function sanitizeMessages(messages) {
|
|
8
|
+
return messages.map((msg) => {
|
|
9
|
+
const sanitized = {
|
|
10
|
+
role: msg.role,
|
|
11
|
+
content: msg.content
|
|
12
|
+
};
|
|
13
|
+
if (msg.role === "tool" && msg.tool_call_id) {
|
|
14
|
+
sanitized.tool_call_id = msg.tool_call_id;
|
|
15
|
+
}
|
|
16
|
+
if (msg.role === "assistant" && _optionalChain([msg, 'access', _ => _.tool_calls, 'optionalAccess', _2 => _2.length])) {
|
|
17
|
+
sanitized.tool_calls = msg.tool_calls;
|
|
18
|
+
}
|
|
19
|
+
if (msg.name) {
|
|
20
|
+
sanitized.name = msg.name;
|
|
21
|
+
}
|
|
22
|
+
return sanitized;
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
var NVIDIA_DEFAULT_BASE_URL = "https://integrate.api.nvidia.com/v1";
|
|
26
|
+
var DEFAULT_MAX_RETRIES = 3;
|
|
27
|
+
var MAX_ALLOWED_RETRIES = 5;
|
|
28
|
+
var DEFAULT_RETRY_DELAY = 1e3;
|
|
29
|
+
var DEFAULT_TIMEOUT = 3e4;
|
|
30
|
+
var FRIENDLY_ERRORS = {
|
|
31
|
+
400: "The request was malformed. This often happens when the context is too long. Try /undo to remove recent turns or /new to start fresh.",
|
|
32
|
+
401: "Authentication failed. Please verify your NVIDIA API key in ~/.autohand/config.json.",
|
|
33
|
+
402: "Payment required. Please check your NVIDIA account balance or billing settings.",
|
|
34
|
+
403: "Access denied. Your API key may not have permission for this model.",
|
|
35
|
+
404: "The requested model was not found. Use /model to select a different one.",
|
|
36
|
+
429: "Rate limit exceeded. Please wait a moment and try again, or choose a different model.",
|
|
37
|
+
500: "The NVIDIA service encountered an internal error. Please try again later.",
|
|
38
|
+
502: "The NVIDIA service is temporarily unavailable. Please try again in a few moments.",
|
|
39
|
+
503: "The NVIDIA service is currently overloaded. Please try again later.",
|
|
40
|
+
504: "The request timed out. The service may be experiencing high load."
|
|
41
|
+
};
|
|
42
|
+
var NVIDIAClient = class {
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
constructor(settings, networkSettings) {
|
|
50
|
+
this.apiKey = _nullishCoalesce(settings.apiKey, () => ( ""));
|
|
51
|
+
this.baseUrl = _nullishCoalesce(settings.baseUrl, () => ( NVIDIA_DEFAULT_BASE_URL));
|
|
52
|
+
this.defaultModel = settings.model;
|
|
53
|
+
const configuredRetries = _nullishCoalesce(_optionalChain([networkSettings, 'optionalAccess', _3 => _3.maxRetries]), () => ( DEFAULT_MAX_RETRIES));
|
|
54
|
+
this.maxRetries = Math.min(Math.max(0, configuredRetries), MAX_ALLOWED_RETRIES);
|
|
55
|
+
this.retryDelay = _nullishCoalesce(_optionalChain([networkSettings, 'optionalAccess', _4 => _4.retryDelay]), () => ( DEFAULT_RETRY_DELAY));
|
|
56
|
+
this.timeout = _nullishCoalesce(_optionalChain([networkSettings, 'optionalAccess', _5 => _5.timeout]), () => ( DEFAULT_TIMEOUT));
|
|
57
|
+
}
|
|
58
|
+
setDefaultModel(model) {
|
|
59
|
+
this.defaultModel = model;
|
|
60
|
+
}
|
|
61
|
+
async complete(request) {
|
|
62
|
+
const payload = this.buildPayload(request);
|
|
63
|
+
if (request.tools && request.tools.length > 0) {
|
|
64
|
+
payload.tools = request.tools.map((tool) => ({
|
|
65
|
+
type: "function",
|
|
66
|
+
function: {
|
|
67
|
+
name: tool.name,
|
|
68
|
+
description: tool.description,
|
|
69
|
+
parameters: _nullishCoalesce(tool.parameters, () => ( { type: "object", properties: {} }))
|
|
70
|
+
}
|
|
71
|
+
}));
|
|
72
|
+
if (request.toolChoice) {
|
|
73
|
+
payload.tool_choice = request.toolChoice;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
if (request.chatTemplateKwargs) {
|
|
77
|
+
payload.extra_body = {
|
|
78
|
+
chat_template_kwargs: this.buildChatTemplateKwargs(request.chatTemplateKwargs)
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
const headers = {
|
|
82
|
+
"Content-Type": "application/json",
|
|
83
|
+
"x-source": "Autohand Code CLI"
|
|
84
|
+
};
|
|
85
|
+
if (this.apiKey) {
|
|
86
|
+
headers.Authorization = `Bearer ${this.apiKey}`;
|
|
87
|
+
}
|
|
88
|
+
const payloadJson = JSON.stringify(payload);
|
|
89
|
+
const payloadSizeBytes = payloadJson.length;
|
|
90
|
+
const maxPayloadSize = 5 * 1024 * 1024;
|
|
91
|
+
if (payloadSizeBytes > maxPayloadSize) {
|
|
92
|
+
const sizeMB = (payloadSizeBytes / (1024 * 1024)).toFixed(2);
|
|
93
|
+
throw new Error(
|
|
94
|
+
`Request payload too large (${sizeMB}MB). This usually happens when the conversation history grows too long. Try using /undo to remove recent turns or /new to start fresh.`
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
let lastError = null;
|
|
98
|
+
for (let attempt = 0; attempt <= this.maxRetries; attempt++) {
|
|
99
|
+
try {
|
|
100
|
+
const response = await this.makeRequest(
|
|
101
|
+
payload,
|
|
102
|
+
headers,
|
|
103
|
+
request.signal,
|
|
104
|
+
payloadJson,
|
|
105
|
+
_nullishCoalesce(request.stream, () => ( false))
|
|
106
|
+
);
|
|
107
|
+
return response;
|
|
108
|
+
} catch (error) {
|
|
109
|
+
lastError = error;
|
|
110
|
+
if (this.isNonRetryableError(error)) {
|
|
111
|
+
throw error;
|
|
112
|
+
}
|
|
113
|
+
if (attempt < this.maxRetries) {
|
|
114
|
+
const delay = this.retryDelay * Math.pow(2, attempt);
|
|
115
|
+
await this.sleep(delay);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
throw _nullishCoalesce(lastError, () => ( new Error("Failed to communicate with NVIDIA API. Please try again.")));
|
|
120
|
+
}
|
|
121
|
+
buildPayload(request) {
|
|
122
|
+
const payload = {
|
|
123
|
+
model: _nullishCoalesce(request.model, () => ( this.defaultModel)),
|
|
124
|
+
messages: sanitizeMessages(request.messages),
|
|
125
|
+
temperature: _nullishCoalesce(request.temperature, () => ( 0.2)),
|
|
126
|
+
max_tokens: _nullishCoalesce(request.maxTokens, () => ( 16e3)),
|
|
127
|
+
stream: _nullishCoalesce(request.stream, () => ( false))
|
|
128
|
+
};
|
|
129
|
+
return payload;
|
|
130
|
+
}
|
|
131
|
+
buildChatTemplateKwargs(kwargs) {
|
|
132
|
+
const result = {};
|
|
133
|
+
if (kwargs.thinking !== void 0) result.thinking = kwargs.thinking;
|
|
134
|
+
if (kwargs.enable_thinking !== void 0) result.enable_thinking = kwargs.enable_thinking;
|
|
135
|
+
if (kwargs.reasoning_effort !== void 0) result.reasoning_effort = kwargs.reasoning_effort;
|
|
136
|
+
if (kwargs.clear_thinking !== void 0) result.clear_thinking = kwargs.clear_thinking;
|
|
137
|
+
return result;
|
|
138
|
+
}
|
|
139
|
+
async makeRequest(payload, headers, signal, preSerializedBody, isStreaming = false) {
|
|
140
|
+
let response;
|
|
141
|
+
try {
|
|
142
|
+
const timeoutController = new AbortController();
|
|
143
|
+
const timeoutId = setTimeout(() => timeoutController.abort(), this.timeout);
|
|
144
|
+
const combinedSignal = signal ? this.combineSignals(signal, timeoutController.signal) : timeoutController.signal;
|
|
145
|
+
try {
|
|
146
|
+
response = await fetch(`${this.baseUrl}/chat/completions`, {
|
|
147
|
+
method: "POST",
|
|
148
|
+
headers,
|
|
149
|
+
body: _nullishCoalesce(preSerializedBody, () => ( JSON.stringify(payload))),
|
|
150
|
+
signal: combinedSignal
|
|
151
|
+
});
|
|
152
|
+
} finally {
|
|
153
|
+
clearTimeout(timeoutId);
|
|
154
|
+
}
|
|
155
|
+
} catch (error) {
|
|
156
|
+
const err = error;
|
|
157
|
+
if (err.name === "AbortError" && _optionalChain([signal, 'optionalAccess', _6 => _6.aborted])) {
|
|
158
|
+
throw new Error("Request cancelled.");
|
|
159
|
+
}
|
|
160
|
+
if (err.name === "AbortError") {
|
|
161
|
+
throw new Error("Request timed out. The NVIDIA service may be experiencing high load.");
|
|
162
|
+
}
|
|
163
|
+
throw new Error("Unable to connect to NVIDIA API. Please check your internet connection.");
|
|
164
|
+
}
|
|
165
|
+
if (!response.ok) {
|
|
166
|
+
throw await this.buildFriendlyError(response);
|
|
167
|
+
}
|
|
168
|
+
if (isStreaming) {
|
|
169
|
+
return this.handleStreamingResponse(response);
|
|
170
|
+
}
|
|
171
|
+
const json = await response.json();
|
|
172
|
+
const message = _optionalChain([json, 'optionalAccess', _7 => _7.choices, 'optionalAccess', _8 => _8[0], 'optionalAccess', _9 => _9.message]);
|
|
173
|
+
const text = _nullishCoalesce(_optionalChain([message, 'optionalAccess', _10 => _10.content]), () => ( ""));
|
|
174
|
+
const finishReason = _optionalChain([json, 'optionalAccess', _11 => _11.choices, 'optionalAccess', _12 => _12[0], 'optionalAccess', _13 => _13.finish_reason]);
|
|
175
|
+
let toolCalls;
|
|
176
|
+
if (_optionalChain([message, 'optionalAccess', _14 => _14.tool_calls]) && Array.isArray(message.tool_calls)) {
|
|
177
|
+
toolCalls = message.tool_calls.map((tc) => ({
|
|
178
|
+
id: tc.id,
|
|
179
|
+
type: "function",
|
|
180
|
+
function: {
|
|
181
|
+
name: _nullishCoalesce(_optionalChain([tc, 'access', _15 => _15.function, 'optionalAccess', _16 => _16.name]), () => ( "")),
|
|
182
|
+
arguments: _nullishCoalesce(_optionalChain([tc, 'access', _17 => _17.function, 'optionalAccess', _18 => _18.arguments]), () => ( "{}"))
|
|
183
|
+
}
|
|
184
|
+
}));
|
|
185
|
+
}
|
|
186
|
+
let usage;
|
|
187
|
+
if (_optionalChain([json, 'optionalAccess', _19 => _19.usage])) {
|
|
188
|
+
usage = {
|
|
189
|
+
promptTokens: _nullishCoalesce(json.usage.prompt_tokens, () => ( 0)),
|
|
190
|
+
completionTokens: _nullishCoalesce(json.usage.completion_tokens, () => ( 0)),
|
|
191
|
+
totalTokens: _nullishCoalesce(json.usage.total_tokens, () => ( 0))
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
return {
|
|
195
|
+
id: _nullishCoalesce(json.id, () => ( "nvidia-response")),
|
|
196
|
+
created: _nullishCoalesce(json.created, () => ( Date.now())),
|
|
197
|
+
content: text,
|
|
198
|
+
toolCalls,
|
|
199
|
+
finishReason,
|
|
200
|
+
usage,
|
|
201
|
+
raw: json
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
async handleStreamingResponse(response) {
|
|
205
|
+
const reader = _optionalChain([response, 'access', _20 => _20.body, 'optionalAccess', _21 => _21.getReader, 'call', _22 => _22()]);
|
|
206
|
+
if (!reader) {
|
|
207
|
+
throw new Error("No response body for streaming");
|
|
208
|
+
}
|
|
209
|
+
const decoder = new TextDecoder();
|
|
210
|
+
let fullContent = "";
|
|
211
|
+
let fullReasoning = "";
|
|
212
|
+
let lastChunk = null;
|
|
213
|
+
let finishReason = "stop";
|
|
214
|
+
try {
|
|
215
|
+
while (true) {
|
|
216
|
+
const { done, value } = await reader.read();
|
|
217
|
+
if (done) break;
|
|
218
|
+
const chunk = decoder.decode(value, { stream: true });
|
|
219
|
+
const lines = chunk.split("\n").filter((line) => line.trim());
|
|
220
|
+
for (const line of lines) {
|
|
221
|
+
if (line.startsWith("data: ")) {
|
|
222
|
+
const dataStr = line.slice(6).trim();
|
|
223
|
+
if (dataStr === "[DONE]") continue;
|
|
224
|
+
try {
|
|
225
|
+
const data = JSON.parse(dataStr);
|
|
226
|
+
lastChunk = data;
|
|
227
|
+
const delta = _optionalChain([data, 'access', _23 => _23.choices, 'optionalAccess', _24 => _24[0], 'optionalAccess', _25 => _25.delta]);
|
|
228
|
+
if (!delta) continue;
|
|
229
|
+
const reasoning = delta.reasoning || delta.reasoning_content;
|
|
230
|
+
if (reasoning) {
|
|
231
|
+
fullReasoning += reasoning;
|
|
232
|
+
}
|
|
233
|
+
if (delta.content) {
|
|
234
|
+
fullContent += delta.content;
|
|
235
|
+
}
|
|
236
|
+
if (_optionalChain([data, 'access', _26 => _26.choices, 'optionalAccess', _27 => _27[0], 'optionalAccess', _28 => _28.finish_reason])) {
|
|
237
|
+
finishReason = data.choices[0].finish_reason;
|
|
238
|
+
}
|
|
239
|
+
} catch (e) {
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
} finally {
|
|
245
|
+
reader.releaseLock();
|
|
246
|
+
}
|
|
247
|
+
const finalContent = fullReasoning ? `<thinking>${fullReasoning}</thinking>
|
|
248
|
+
|
|
249
|
+
${fullContent}` : fullContent;
|
|
250
|
+
return {
|
|
251
|
+
id: _nullishCoalesce(_optionalChain([lastChunk, 'optionalAccess', _29 => _29.id]), () => ( `nvidia-stream-${Date.now()}`)),
|
|
252
|
+
created: _nullishCoalesce(_optionalChain([lastChunk, 'optionalAccess', _30 => _30.created]), () => ( Math.floor(Date.now() / 1e3))),
|
|
253
|
+
content: finalContent,
|
|
254
|
+
finishReason,
|
|
255
|
+
raw: { content: fullContent, reasoning: fullReasoning, chunks: lastChunk }
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
async buildFriendlyError(response) {
|
|
259
|
+
const status = response.status;
|
|
260
|
+
let errorDetail = "";
|
|
261
|
+
try {
|
|
262
|
+
const body = await response.json();
|
|
263
|
+
errorDetail = _optionalChain([body, 'optionalAccess', _31 => _31.error, 'optionalAccess', _32 => _32.message]) || _optionalChain([body, 'optionalAccess', _33 => _33.error]) || _optionalChain([body, 'optionalAccess', _34 => _34.message]) || "";
|
|
264
|
+
if (typeof errorDetail === "object") {
|
|
265
|
+
errorDetail = JSON.stringify(errorDetail);
|
|
266
|
+
}
|
|
267
|
+
} catch (e2) {
|
|
268
|
+
try {
|
|
269
|
+
errorDetail = await response.text();
|
|
270
|
+
} catch (e3) {
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
const friendlyMessage = FRIENDLY_ERRORS[status];
|
|
274
|
+
const classified = _chunk3OF56EMAcjs.classifyApiError.call(void 0, status, errorDetail, response.headers);
|
|
275
|
+
if (friendlyMessage) {
|
|
276
|
+
return new (0, _chunk3OF56EMAcjs.ApiError)(
|
|
277
|
+
errorDetail ? `${friendlyMessage}
|
|
278
|
+
${errorDetail}` : friendlyMessage,
|
|
279
|
+
classified.code,
|
|
280
|
+
classified.httpStatus,
|
|
281
|
+
classified.retryable,
|
|
282
|
+
classified.retryAfterMs,
|
|
283
|
+
errorDetail
|
|
284
|
+
);
|
|
285
|
+
}
|
|
286
|
+
if (status >= 500) {
|
|
287
|
+
const base = "The NVIDIA service is temporarily unavailable. Please try again later.";
|
|
288
|
+
return new (0, _chunk3OF56EMAcjs.ApiError)(
|
|
289
|
+
errorDetail ? `${base}
|
|
290
|
+
(${status}: ${errorDetail})` : base,
|
|
291
|
+
classified.code,
|
|
292
|
+
classified.httpStatus,
|
|
293
|
+
classified.retryable,
|
|
294
|
+
classified.retryAfterMs,
|
|
295
|
+
errorDetail
|
|
296
|
+
);
|
|
297
|
+
}
|
|
298
|
+
if (status >= 400) {
|
|
299
|
+
const base = "The request could not be processed.";
|
|
300
|
+
const message2 = errorDetail ? `${base} (${status}: ${errorDetail})` : `${base} (HTTP ${status}) Please try again or adjust your prompt.`;
|
|
301
|
+
return new (0, _chunk3OF56EMAcjs.ApiError)(
|
|
302
|
+
message2,
|
|
303
|
+
classified.code,
|
|
304
|
+
classified.httpStatus,
|
|
305
|
+
classified.retryable,
|
|
306
|
+
classified.retryAfterMs,
|
|
307
|
+
errorDetail
|
|
308
|
+
);
|
|
309
|
+
}
|
|
310
|
+
const message = errorDetail ? `An unexpected error occurred: ${errorDetail}` : "An unexpected error occurred. Please try again.";
|
|
311
|
+
return new (0, _chunk3OF56EMAcjs.ApiError)(
|
|
312
|
+
message,
|
|
313
|
+
classified.code,
|
|
314
|
+
classified.httpStatus,
|
|
315
|
+
classified.retryable,
|
|
316
|
+
classified.retryAfterMs,
|
|
317
|
+
errorDetail
|
|
318
|
+
);
|
|
319
|
+
}
|
|
320
|
+
isNonRetryableError(error) {
|
|
321
|
+
if (error instanceof _chunk3OF56EMAcjs.ApiError) {
|
|
322
|
+
return !error.retryable;
|
|
323
|
+
}
|
|
324
|
+
const message = error.message.toLowerCase();
|
|
325
|
+
if (message.includes("cancelled") || message.includes("aborted")) {
|
|
326
|
+
return true;
|
|
327
|
+
}
|
|
328
|
+
if (message.includes("authentication") || message.includes("api key")) {
|
|
329
|
+
return true;
|
|
330
|
+
}
|
|
331
|
+
if (message.includes("payment") || message.includes("access denied")) {
|
|
332
|
+
return true;
|
|
333
|
+
}
|
|
334
|
+
if (message.includes("not found")) {
|
|
335
|
+
return true;
|
|
336
|
+
}
|
|
337
|
+
return false;
|
|
338
|
+
}
|
|
339
|
+
combineSignals(signal1, signal2) {
|
|
340
|
+
const controller = new AbortController();
|
|
341
|
+
const abort = () => controller.abort();
|
|
342
|
+
signal1.addEventListener("abort", abort);
|
|
343
|
+
signal2.addEventListener("abort", abort);
|
|
344
|
+
if (signal1.aborted || signal2.aborted) {
|
|
345
|
+
controller.abort();
|
|
346
|
+
}
|
|
347
|
+
return controller.signal;
|
|
348
|
+
}
|
|
349
|
+
sleep(ms) {
|
|
350
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
351
|
+
}
|
|
352
|
+
};
|
|
353
|
+
|
|
354
|
+
// src/providers/NVIDIAProvider.ts
|
|
355
|
+
var NVIDIA_DEFAULT_BASE_URL2 = "https://integrate.api.nvidia.com/v1";
|
|
356
|
+
var NVIDIA_MODELS = [
|
|
357
|
+
"deepseek-ai/deepseek-v4-pro",
|
|
358
|
+
"z-ai/glm-5.1",
|
|
359
|
+
"z-ai/glm-4.7",
|
|
360
|
+
"qwen/qwen3.5-122b-a10b",
|
|
361
|
+
"nvidia/usdcode",
|
|
362
|
+
"moonshotai/kimi-k2.5",
|
|
363
|
+
"minimaxai/minimax-m2.7",
|
|
364
|
+
"microsoft/phi-4-mini-instruct",
|
|
365
|
+
"mistralai/mistral-small-4-119b-2603",
|
|
366
|
+
"mistralai/mixtral-8x7b-instruct-v0.1",
|
|
367
|
+
"mistralai/mixtral-8x22b-instruct-v0.1",
|
|
368
|
+
"mistralai/mamba-codestral-7b-v0.1",
|
|
369
|
+
"nvidia/mistral-nemo-minitron-8b-base",
|
|
370
|
+
"google/gemma-4-31b-it",
|
|
371
|
+
"bigcode/starcoder2-7b"
|
|
372
|
+
];
|
|
373
|
+
var NVIDIA_DEFAULT_MODEL = "z-ai/glm-5.1";
|
|
374
|
+
var NVIDIAProvider = class {
|
|
375
|
+
|
|
376
|
+
|
|
377
|
+
|
|
378
|
+
|
|
379
|
+
constructor(config, networkSettings) {
|
|
380
|
+
this.client = new NVIDIAClient(config, networkSettings);
|
|
381
|
+
this.model = config.model;
|
|
382
|
+
this.chatTemplateKwargs = config.chatTemplateKwargs;
|
|
383
|
+
this.stream = _nullishCoalesce(config.stream, () => ( false));
|
|
384
|
+
}
|
|
385
|
+
getName() {
|
|
386
|
+
return "nvidia";
|
|
387
|
+
}
|
|
388
|
+
setModel(model) {
|
|
389
|
+
this.model = model;
|
|
390
|
+
this.client.setDefaultModel(model);
|
|
391
|
+
}
|
|
392
|
+
async listModels() {
|
|
393
|
+
return [...NVIDIA_MODELS];
|
|
394
|
+
}
|
|
395
|
+
async isAvailable() {
|
|
396
|
+
return true;
|
|
397
|
+
}
|
|
398
|
+
async complete(request) {
|
|
399
|
+
const enhancedRequest = {
|
|
400
|
+
...request,
|
|
401
|
+
// Use request stream if set, otherwise fall back to provider default
|
|
402
|
+
stream: _nullishCoalesce(request.stream, () => ( this.stream)),
|
|
403
|
+
// Merge chatTemplateKwargs: request-level takes precedence
|
|
404
|
+
chatTemplateKwargs: _nullishCoalesce(request.chatTemplateKwargs, () => ( this.chatTemplateKwargs))
|
|
405
|
+
};
|
|
406
|
+
return this.client.complete(enhancedRequest);
|
|
407
|
+
}
|
|
408
|
+
};
|
|
409
|
+
|
|
410
|
+
|
|
411
|
+
|
|
412
|
+
|
|
413
|
+
|
|
414
|
+
|
|
415
|
+
exports.NVIDIA_DEFAULT_BASE_URL = NVIDIA_DEFAULT_BASE_URL2; exports.NVIDIA_MODELS = NVIDIA_MODELS; exports.NVIDIA_DEFAULT_MODEL = NVIDIA_DEFAULT_MODEL; exports.NVIDIAProvider = NVIDIAProvider;
|
|
416
|
+
/**
|
|
417
|
+
* @license
|
|
418
|
+
* Copyright 2025 Autohand AI LLC
|
|
419
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
420
|
+
*/
|
|
@@ -1,20 +1,83 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkCH2J4PVEcjs = require('./chunk-CH2J4PVE.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunkE26KKI46cjs = require('./chunk-E26KKI46.cjs');
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
var
|
|
9
|
+
var _chunkCHI52KFRcjs = require('./chunk-CHI52KFR.cjs');
|
|
10
10
|
|
|
11
11
|
// src/commands/resume.ts
|
|
12
12
|
var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
|
|
13
13
|
var _fsextra = require('fs-extra'); var _fsextra2 = _interopRequireDefault(_fsextra);
|
|
14
14
|
var _path = require('path'); var _path2 = _interopRequireDefault(_path);
|
|
15
|
+
|
|
16
|
+
// src/session/chatLog.ts
|
|
17
|
+
function decodeJsonStringLiteral(value) {
|
|
18
|
+
try {
|
|
19
|
+
return JSON.parse(`"${value}"`);
|
|
20
|
+
} catch (e) {
|
|
21
|
+
return value;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
function extractJsonStringField(raw, field) {
|
|
25
|
+
const match = raw.match(new RegExp(`"${field}"\\s*:\\s*"((?:\\\\.|[^"\\\\])*)"`, "s"));
|
|
26
|
+
return _optionalChain([match, 'optionalAccess', _ => _[1]]) ? decodeJsonStringLiteral(match[1]) : null;
|
|
27
|
+
}
|
|
28
|
+
function getAssistantChatLogContent(content) {
|
|
29
|
+
const trimmed = content.trim();
|
|
30
|
+
if (!trimmed) {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
try {
|
|
34
|
+
const parsed = JSON.parse(trimmed);
|
|
35
|
+
for (const field of ["finalResponse", "response", "content", "message"]) {
|
|
36
|
+
const value = parsed[field];
|
|
37
|
+
if (typeof value === "string" && value.trim()) {
|
|
38
|
+
return value.trim();
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return null;
|
|
42
|
+
} catch (e2) {
|
|
43
|
+
const finalResponse = _nullishCoalesce(extractJsonStringField(trimmed, "finalResponse"), () => ( extractJsonStringField(trimmed, "response")));
|
|
44
|
+
if (_optionalChain([finalResponse, 'optionalAccess', _2 => _2.trim, 'call', _3 => _3()])) {
|
|
45
|
+
return finalResponse.trim();
|
|
46
|
+
}
|
|
47
|
+
if (trimmed.startsWith("{") || trimmed.includes('"thought"')) {
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
return trimmed;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
function buildSessionChatLog(messages) {
|
|
54
|
+
const chatMessages = [];
|
|
55
|
+
for (const message of messages) {
|
|
56
|
+
if (message.role === "user") {
|
|
57
|
+
const content = message.content.trim();
|
|
58
|
+
if (content) {
|
|
59
|
+
chatMessages.push({ role: "user", content });
|
|
60
|
+
}
|
|
61
|
+
continue;
|
|
62
|
+
}
|
|
63
|
+
if (message.role === "assistant") {
|
|
64
|
+
const content = getAssistantChatLogContent(message.content);
|
|
65
|
+
if (content) {
|
|
66
|
+
chatMessages.push({ role: "assistant", content });
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return chatMessages;
|
|
71
|
+
}
|
|
72
|
+
function formatChatLogPreview(content, maxLength = 100) {
|
|
73
|
+
const singleLine = content.replace(/\n/g, " ").replace(/\s+/g, " ").trim();
|
|
74
|
+
return singleLine.length > maxLength ? `${singleLine.slice(0, maxLength)}...` : singleLine;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// src/commands/resume.ts
|
|
15
78
|
var metadata = {
|
|
16
79
|
command: "/resume",
|
|
17
|
-
description:
|
|
80
|
+
description: _chunkCHI52KFRcjs.t.call(void 0, "commands.resume.description"),
|
|
18
81
|
implemented: true
|
|
19
82
|
};
|
|
20
83
|
async function getSessionTitle(sessionMeta) {
|
|
@@ -22,7 +85,7 @@ async function getSessionTitle(sessionMeta) {
|
|
|
22
85
|
return sessionMeta.summary.slice(0, 60);
|
|
23
86
|
}
|
|
24
87
|
try {
|
|
25
|
-
const conversationPath = _path2.default.join(
|
|
88
|
+
const conversationPath = _path2.default.join(_chunkE26KKI46cjs.AUTOHAND_PATHS.sessions, sessionMeta.sessionId, "conversation.jsonl");
|
|
26
89
|
if (await _fsextra2.default.pathExists(conversationPath)) {
|
|
27
90
|
const content = await _fsextra2.default.readFile(conversationPath, "utf-8");
|
|
28
91
|
const lines = content.trim().split("\n").filter((line) => line);
|
|
@@ -33,11 +96,11 @@ async function getSessionTitle(sessionMeta) {
|
|
|
33
96
|
const cleanContent = msg.content.replace(/\n/g, " ").replace(/\s+/g, " ").trim();
|
|
34
97
|
return cleanContent.slice(0, 60) + (cleanContent.length > 60 ? "..." : "");
|
|
35
98
|
}
|
|
36
|
-
} catch (
|
|
99
|
+
} catch (e3) {
|
|
37
100
|
}
|
|
38
101
|
}
|
|
39
102
|
}
|
|
40
|
-
} catch (
|
|
103
|
+
} catch (e4) {
|
|
41
104
|
}
|
|
42
105
|
return _chalk2.default.gray("(no title)");
|
|
43
106
|
}
|
|
@@ -66,7 +129,7 @@ function getTimeAgo(date) {
|
|
|
66
129
|
async function resume(ctx) {
|
|
67
130
|
const sessionId = ctx.args[0];
|
|
68
131
|
if (sessionId) {
|
|
69
|
-
return resumeSession(ctx.sessionManager, sessionId);
|
|
132
|
+
return resumeSession(ctx.sessionManager, sessionId, ctx.restoreSession);
|
|
70
133
|
}
|
|
71
134
|
try {
|
|
72
135
|
const projectFilter = ctx.workspaceRoot ? { project: ctx.workspaceRoot } : void 0;
|
|
@@ -79,13 +142,13 @@ No sessions found for project "${projectName}".`));
|
|
|
79
142
|
console.log(_chalk2.default.gray("Use /sessions to see all sessions across projects.\n"));
|
|
80
143
|
} else {
|
|
81
144
|
console.log(_chalk2.default.gray(`
|
|
82
|
-
${
|
|
145
|
+
${_chunkCHI52KFRcjs.t.call(void 0, "commands.sessions.noSessions")}`));
|
|
83
146
|
console.log(_chalk2.default.gray("Start a new conversation to create a session.\n"));
|
|
84
147
|
}
|
|
85
148
|
return null;
|
|
86
149
|
}
|
|
87
150
|
console.log(_chalk2.default.cyan(`
|
|
88
|
-
${
|
|
151
|
+
${_chunkCHI52KFRcjs.t.call(void 0, "commands.sessions.selectPrompt")}
|
|
89
152
|
`));
|
|
90
153
|
const choices = [];
|
|
91
154
|
const recentSessions = allSessions.slice(0, 20);
|
|
@@ -105,10 +168,17 @@ ${_chunk7BTSG4MEcjs.t.call(void 0, "commands.sessions.selectPrompt")}
|
|
|
105
168
|
value: choice.name,
|
|
106
169
|
description: choice.hint
|
|
107
170
|
}));
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
171
|
+
await _optionalChain([ctx, 'access', _4 => _4.onBeforeModal, 'optionalCall', _5 => _5()]);
|
|
172
|
+
const result = await (async () => {
|
|
173
|
+
try {
|
|
174
|
+
return await _chunkCH2J4PVEcjs.showModal.call(void 0, {
|
|
175
|
+
title: "Choose a session",
|
|
176
|
+
options
|
|
177
|
+
});
|
|
178
|
+
} finally {
|
|
179
|
+
await _optionalChain([ctx, 'access', _6 => _6.onAfterModal, 'optionalCall', _7 => _7()]);
|
|
180
|
+
}
|
|
181
|
+
})();
|
|
112
182
|
if (!result) {
|
|
113
183
|
console.log(_chalk2.default.gray("\nResume cancelled."));
|
|
114
184
|
return null;
|
|
@@ -117,20 +187,20 @@ ${_chunk7BTSG4MEcjs.t.call(void 0, "commands.sessions.selectPrompt")}
|
|
|
117
187
|
console.log(_chalk2.default.gray("\nUse /sessions to see all sessions, then /resume <id>"));
|
|
118
188
|
return null;
|
|
119
189
|
}
|
|
120
|
-
return resumeSession(ctx.sessionManager, result.value);
|
|
190
|
+
return resumeSession(ctx.sessionManager, result.value, ctx.restoreSession);
|
|
121
191
|
} catch (error) {
|
|
122
|
-
console.error(_chalk2.default.red(
|
|
192
|
+
console.error(_chalk2.default.red(_chunkCHI52KFRcjs.t.call(void 0, "commands.resume.failed", { error: error.message })));
|
|
123
193
|
return null;
|
|
124
194
|
}
|
|
125
195
|
}
|
|
126
|
-
async function resumeSession(sessionManager, sessionId) {
|
|
196
|
+
async function resumeSession(sessionManager, sessionId, restoreSession) {
|
|
127
197
|
try {
|
|
128
198
|
const session = await sessionManager.loadSession(sessionId);
|
|
129
199
|
const messages = session.getMessages();
|
|
130
200
|
const firstUserMessage = messages.find((m) => m.role === "user");
|
|
131
|
-
const title = session.metadata.summary || _optionalChain([firstUserMessage, 'optionalAccess',
|
|
201
|
+
const title = session.metadata.summary || _optionalChain([firstUserMessage, 'optionalAccess', _8 => _8.content, 'access', _9 => _9.slice, 'call', _10 => _10(0, 50)]) || "Untitled session";
|
|
132
202
|
console.log(_chalk2.default.cyan(`
|
|
133
|
-
${
|
|
203
|
+
${_chunkCHI52KFRcjs.t.call(void 0, "commands.resume.resuming", { id: title })}`));
|
|
134
204
|
console.log(_chalk2.default.gray(` Project: ${session.metadata.projectPath}`));
|
|
135
205
|
console.log(_chalk2.default.gray(` Started: ${new Date(session.metadata.createdAt).toLocaleString()}`));
|
|
136
206
|
console.log(_chalk2.default.gray(` Messages: ${messages.length}`));
|
|
@@ -138,21 +208,19 @@ ${_chunk7BTSG4MEcjs.t.call(void 0, "commands.resume.resuming", { id: title })}`)
|
|
|
138
208
|
if (messages.length > 0) {
|
|
139
209
|
console.log(_chalk2.default.cyan("Recent conversation:"));
|
|
140
210
|
console.log(_chalk2.default.gray("\u2500".repeat(60)));
|
|
141
|
-
const recentMessages = messages.slice(-5);
|
|
211
|
+
const recentMessages = buildSessionChatLog(messages).slice(-5);
|
|
142
212
|
for (const msg of recentMessages) {
|
|
143
|
-
const role = msg.role === "user" ? _chalk2.default.green("You") :
|
|
144
|
-
|
|
145
|
-
const preview = msg.content.replace(/\n/g, " ").replace(/\s+/g, " ").slice(0, 100);
|
|
146
|
-
const truncated = msg.content.length > 100 ? "..." : "";
|
|
147
|
-
console.log(`${role}: ${_chalk2.default.white(preview)}${truncated}`);
|
|
213
|
+
const role = msg.role === "user" ? _chalk2.default.green("You") : _chalk2.default.blue("Assistant");
|
|
214
|
+
console.log(`${role}: ${_chalk2.default.white(formatChatLogPreview(msg.content))}`);
|
|
148
215
|
}
|
|
149
216
|
console.log(_chalk2.default.gray("\u2500".repeat(60)));
|
|
150
217
|
console.log();
|
|
151
218
|
}
|
|
219
|
+
await _optionalChain([restoreSession, 'optionalCall', _11 => _11(sessionId)]);
|
|
152
220
|
console.log(_chalk2.default.green("Session resumed. Continue typing to chat.\n"));
|
|
153
221
|
return null;
|
|
154
222
|
} catch (error) {
|
|
155
|
-
console.error(_chalk2.default.red(
|
|
223
|
+
console.error(_chalk2.default.red(_chunkCHI52KFRcjs.t.call(void 0, "commands.resume.failed", { error: error.message })));
|
|
156
224
|
return null;
|
|
157
225
|
}
|
|
158
226
|
}
|
|
@@ -160,7 +228,13 @@ ${_chunk7BTSG4MEcjs.t.call(void 0, "commands.resume.resuming", { id: title })}`)
|
|
|
160
228
|
|
|
161
229
|
|
|
162
230
|
|
|
163
|
-
|
|
231
|
+
|
|
232
|
+
exports.buildSessionChatLog = buildSessionChatLog; exports.metadata = metadata; exports.resume = resume;
|
|
233
|
+
/**
|
|
234
|
+
* @license
|
|
235
|
+
* Copyright 2026 Autohand AI LLC
|
|
236
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
237
|
+
*/
|
|
164
238
|
/**
|
|
165
239
|
* @license
|
|
166
240
|
* Copyright 2025 Autohand AI LLC
|
|
@@ -7,6 +7,12 @@ var DEFAULT_MAX_RETRIES = 3;
|
|
|
7
7
|
var DEFAULT_RETRY_DELAY = 1e3;
|
|
8
8
|
var MAX_FILES_PER_REQUEST = 100;
|
|
9
9
|
var SyncApiClient = class {
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
10
16
|
constructor(config) {
|
|
11
17
|
this.baseUrl = _optionalChain([config, 'optionalAccess', _ => _.baseUrl]) || DEFAULT_BASE_URL;
|
|
12
18
|
this.timeout = _optionalChain([config, 'optionalAccess', _2 => _2.timeout]) || DEFAULT_TIMEOUT;
|