autohand-cli 0.9.0 → 0.9.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/README.md +118 -76
- package/dist/AgentRegistry-BBQRODQC.cjs +18 -0
- package/dist/AgentRegistry-JBXZUPML.js +18 -0
- package/dist/{CommunitySkillsCache-ZEQWP6YM.js → CommunitySkillsCache-CI7UN2DX.js} +2 -2
- package/dist/CommunitySkillsCache-XTQ6RMTA.cjs +8 -0
- package/dist/{HookManager-CWLTFKWO.js → HookManager-BELBPQQI.js} +1 -1
- package/dist/{HookManager-TMAJQU4S.cjs → HookManager-ZL2CLAJW.cjs} +2 -2
- package/dist/{ImportWizard-MQXEED2U.cjs → ImportWizard-U6CIJREW.cjs} +13 -13
- package/dist/{ImportWizard-QBKQEXDW.js → ImportWizard-VJFSWSUQ.js} +4 -4
- package/dist/LearnAdvisor-LAURA3IB.cjs +9 -0
- package/dist/LearnAdvisor-RFOBXFG7.js +9 -0
- package/dist/MemoryManager-3A2VRPF2.js +9 -0
- package/dist/MemoryManager-UOEQZIDC.cjs +9 -0
- package/dist/{NVIDIAProvider-2HR737UE.js → NVIDIAProvider-AFNJNWJM.js} +1 -1
- package/dist/NVIDIAProvider-L5GTYRCQ.cjs +14 -0
- package/dist/{PermissionManager-KMYILJ4Z.js → PermissionManager-N2LDSOYF.js} +3 -3
- package/dist/PermissionManager-ZNURIEYR.cjs +11 -0
- package/dist/ProviderFactory-3BFS65V7.cjs +13 -0
- package/dist/{ProviderFactory-HFPRVQ25.js → ProviderFactory-XUT6BSGB.js} +4 -2
- package/dist/SessionManager-LGPQIA57.cjs +10 -0
- package/dist/{SessionManager-PNBTJJTQ.js → SessionManager-OR4KDDDS.js} +2 -2
- package/dist/{SkillsRegistry-4RRD5GMX.js → SkillsRegistry-IL3GWROU.js} +2 -2
- package/dist/SkillsRegistry-PM34DQNA.cjs +9 -0
- package/dist/SubAgent-2WG4QQB5.cjs +13 -0
- package/dist/SubAgent-ICGN23TQ.js +13 -0
- package/dist/{SyncApiClient-LRPFNCKJ.js → SyncApiClient-G3FM65IV.js} +1 -1
- package/dist/SyncApiClient-ODBDECOG.cjs +11 -0
- package/dist/{about-BW3PDZUU.js → about-OYVGQMJJ.js} +5 -4
- package/dist/about-U2BH7HDR.cjs +15 -0
- package/dist/{acp-VHEL7BOW.js → acp-JWHGXZL5.js} +207 -102
- package/dist/{acp-EOETGAHC.cjs → acp-S37JOBCS.cjs} +226 -121
- package/dist/actionExecutor-2QEPMELQ.cjs +28 -0
- package/dist/actionExecutor-6NCCORRB.js +28 -0
- package/dist/add-dir-KFUHSIR2.cjs +11 -0
- package/dist/{add-dir-VFX7QT4E.js → add-dir-MM2BM2Z2.js} +2 -2
- package/dist/agent-DUIYLIVN.js +132 -0
- package/dist/agent-YYEHGDAK.cjs +132 -0
- package/dist/agents-GBGG4CW7.cjs +19 -0
- package/dist/agents-ZH34C72F.js +19 -0
- package/dist/agents-new-ERXLS7SB.cjs +17 -0
- package/dist/agents-new-EVTGPTA4.js +17 -0
- package/dist/{autoSkill-EFMK6WU6.js → autoSkill-HEWKJ5JV.js} +2 -2
- package/dist/autoSkill-YL6PN6AV.cjs +20 -0
- package/dist/automode-4BJ7FNPL.cjs +10 -0
- package/dist/{automode-BMYSRM34.js → automode-S4U7A7Q2.js} +2 -2
- package/dist/chrome-45ZXHL5N.cjs +22 -0
- package/dist/{chrome-NHJ44WUN.js → chrome-BBSRVG6S.js} +2 -2
- package/dist/chrome-IFVZRHAT.cjs +50 -0
- package/dist/chrome-MYE6DNA2.js +22 -0
- package/dist/chunk-24CEJYEG.cjs +579 -0
- package/dist/{chunk-47PHDKNW.cjs → chunk-255GIVM2.cjs} +6 -6
- package/dist/{chunk-DIZTWFVR.cjs → chunk-2BDSR2OW.cjs} +238 -61
- package/dist/{chunk-BL2UC7HC.js → chunk-2BPIR7LA.js} +121 -4
- package/dist/{chunk-BQ22N3TX.cjs → chunk-2NY7OHBF.cjs} +47 -27
- package/dist/chunk-2WUNHTXL.js +303 -0
- package/dist/{chunk-HQWQZML5.cjs → chunk-34B6ZO6W.cjs} +124 -7
- package/dist/{chunk-5JTTM5SC.js → chunk-3BJN7GAH.js} +1 -1
- package/dist/{chunk-4256YRCO.cjs → chunk-3CAXECWJ.cjs} +30 -17
- package/dist/{chunk-KNTUI4TZ.cjs → chunk-3CBYUBZC.cjs} +5 -5
- package/dist/chunk-3DF3GZQ7.js +277 -0
- package/dist/{chunk-E26KKI46.cjs → chunk-3JURXAL6.cjs} +61 -8
- package/dist/{chunk-MOJ7ADW4.cjs → chunk-3KWAP2Y3.cjs} +88 -9
- package/dist/{chunk-OHWMWKJQ.js → chunk-3MCK6UBL.js} +1 -1
- package/dist/{chunk-5VHP6HDQ.js → chunk-3TH7IK4M.js} +62 -9
- package/dist/{chunk-ACDQGA4Z.js → chunk-3V77OB3W.js} +7 -72
- package/dist/{chunk-HS4USDND.cjs → chunk-3Y5UEK7K.cjs} +4 -4
- package/dist/{chunk-XV2HXRHX.js → chunk-4GPPSBEZ.js} +3 -3
- package/dist/chunk-5CMBAJ6K.js +377 -0
- package/dist/{chunk-MO4KP6XS.cjs → chunk-5YRXFBYZ.cjs} +35 -6
- package/dist/chunk-5ZNYX4VH.cjs +71 -0
- package/dist/chunk-6AC2TT26.js +156 -0
- package/dist/{chunk-UGFVM77J.cjs → chunk-6EIQ6A6U.cjs} +2 -2
- package/dist/{chunk-SWCQM52V.js → chunk-6HSEDXVF.js} +4 -4
- package/dist/{chunk-QQ7PANOP.js → chunk-6NUXK62F.js} +1 -1
- package/dist/{chunk-5CMYEM3R.cjs → chunk-6TGCAPYH.cjs} +62 -9
- package/dist/{chunk-NMQ47RCG.js → chunk-6W3SZCSP.js} +1 -1
- package/dist/{chunk-VRMZO6TB.js → chunk-73LV3DDZ.js} +7 -6
- package/dist/{chunk-3GUEUCZK.js → chunk-7BGGLIQF.js} +85 -1
- package/dist/{chunk-RBHANOYY.js → chunk-7DJJGKM6.js} +47 -3
- package/dist/{chunk-LQBONA55.cjs → chunk-7EEK7CRR.cjs} +85 -1
- package/dist/chunk-7TO3PDMV.cjs +324 -0
- package/dist/chunk-7UU22RSH.cjs +277 -0
- package/dist/{chunk-E6GFD7VR.cjs → chunk-A3GAM6FM.cjs} +11 -11
- package/dist/{chunk-DEQVRSV5.cjs → chunk-A7DJU75T.cjs} +8 -8
- package/dist/{chunk-DPSIGY6L.cjs → chunk-AAAO4ERQ.cjs} +9 -9
- package/dist/{chunk-FQAVGSPW.js → chunk-AAJLMP57.js} +2 -2
- package/dist/chunk-ABR756QN.js +529 -0
- package/dist/{chunk-JYKPWK5O.js → chunk-APFGDIPD.js} +3 -1
- package/dist/{chunk-Y3M2DABP.js → chunk-APQYRMYL.js} +4 -4
- package/dist/{chunk-Q2IL4DDI.cjs → chunk-AZKOIF2G.cjs} +62 -19
- package/dist/{chunk-MXVIDIC6.cjs → chunk-AZLHUPNC.cjs} +2 -2
- package/dist/chunk-B55VCYSQ.cjs +30 -0
- package/dist/{chunk-WZV6UVPY.js → chunk-BLQUMSM3.js} +1 -1
- package/dist/{chunk-PHJO5YAL.cjs → chunk-BXKPX6K4.cjs} +9 -9
- package/dist/{chunk-3KLSNNRW.cjs → chunk-C66FN2LP.cjs} +4 -4
- package/dist/{chunk-OV3PVUYN.js → chunk-CH7KUFAS.js} +9 -9
- package/dist/{chunk-CWINVFRI.cjs → chunk-CILSXOPI.cjs} +17 -17
- package/dist/{chunk-3UT7R3XV.js → chunk-CM24K6ZT.js} +145 -12
- package/dist/chunk-CMEZ42F2.cjs +303 -0
- package/dist/{chunk-46C73ZKK.cjs → chunk-CNQKIWIS.cjs} +152 -19
- package/dist/{chunk-5JFTY3VU.js → chunk-CSTUTDTH.js} +2 -1
- package/dist/{chunk-REMGR23V.cjs → chunk-CSUGNNJY.cjs} +10 -4
- package/dist/{chunk-TBOLJDUG.js → chunk-D6HB3H3L.js} +31 -11
- package/dist/{chunk-OM24WXEE.js → chunk-D7AYKVKW.js} +2 -2
- package/dist/{chunk-6GUODJKM.cjs → chunk-DLCXWOWT.cjs} +23 -23
- package/dist/{chunk-CH2J4PVE.cjs → chunk-DMM2BKSV.cjs} +121 -28
- package/dist/{chunk-M4KNC5BQ.js → chunk-DW3DPV77.js} +1 -1
- package/dist/chunk-ECQD2QC3.cjs +33 -0
- package/dist/{chunk-UEIXJG45.js → chunk-EEYOS3UC.js} +116 -80
- package/dist/{chunk-7HPWMALN.js → chunk-EF2EN5CR.js} +2 -2
- package/dist/{chunk-7LWQCE4Y.cjs → chunk-EFXFURDY.cjs} +192 -58
- package/dist/chunk-EK34UZPB.cjs +40 -0
- package/dist/{chunk-7JLT2VNW.cjs → chunk-FJR6EZLO.cjs} +9666 -7201
- package/dist/{chunk-GZ6DV2UG.js → chunk-FPO7YNPQ.js} +1 -1
- package/dist/{chunk-O64I2GYI.js → chunk-FS4I6BNR.js} +1 -1
- package/dist/{chunk-MX75JYIY.js → chunk-FSJ2MNOC.js} +3 -3
- package/dist/{chunk-7RFJB75Y.js → chunk-GEHZMC4G.js} +11 -8
- package/dist/{chunk-UWFG2R2I.cjs → chunk-GO6C2RAR.cjs} +36 -9
- package/dist/{chunk-WGLBC5AY.cjs → chunk-GSMR6V36.cjs} +4 -4
- package/dist/{chunk-Z3XSSF7B.js → chunk-GSZWATME.js} +1 -1
- package/dist/{chunk-7MU7LWF3.cjs → chunk-GYLGCR6F.cjs} +5 -5
- package/dist/{chunk-O6TQP7U7.cjs → chunk-H3OOWNYQ.cjs} +3 -3
- package/dist/{chunk-2QL6MNXG.js → chunk-H65446XW.js} +115 -20
- package/dist/chunk-H7HXRRHK.js +324 -0
- package/dist/{chunk-ZZ63NW7A.cjs → chunk-HN2JTDN5.cjs} +17 -17
- package/dist/{chunk-AOKCI722.cjs → chunk-HNXUZ5OY.cjs} +2 -2
- package/dist/{chunk-AUYSIEVV.cjs → chunk-HOYT3E65.cjs} +3 -3
- package/dist/{chunk-DMRXF5DU.js → chunk-HTPY5ESD.js} +3 -3
- package/dist/chunk-HTU4W3GB.js +183 -0
- package/dist/{chunk-3DDL2E55.cjs → chunk-HVLWH2AF.cjs} +10 -10
- package/dist/{chunk-HSCUPEA4.cjs → chunk-HZTEU4W5.cjs} +74 -105
- package/dist/{chunk-XGMI6IYB.cjs → chunk-I5T7LPFP.cjs} +7 -7
- package/dist/{chunk-XIVFAD2L.js → chunk-IB5CJXE7.js} +173 -12
- package/dist/chunk-INNXFLDR.cjs +388 -0
- package/dist/{chunk-75EDROHL.cjs → chunk-JFLEP3T7.cjs} +10 -10
- package/dist/chunk-JJGDOBFL.js +40 -0
- package/dist/{chunk-VBOFPU5M.cjs → chunk-JM3ZTQUK.cjs} +13 -9
- package/dist/{chunk-HJIXWGQZ.js → chunk-JSU46T6K.js} +1 -1
- package/dist/{chunk-AT7OWLY5.js → chunk-K6WN6BT4.js} +1 -1
- package/dist/{chunk-LN7D3EJZ.js → chunk-KA2U6MY2.js} +4 -3
- package/dist/{chunk-3S563FNF.cjs → chunk-KIQH3SMT.cjs} +34 -31
- package/dist/{chunk-BWF4VDYE.js → chunk-KPRXHIE2.js} +54 -85
- package/dist/{chunk-Z4LIPMPM.js → chunk-L6OH44HL.js} +13 -9
- package/dist/{chunk-A7HHCIDQ.js → chunk-LIO3RX2Z.js} +2 -2
- package/dist/{chunk-DLP436GI.js → chunk-LOSXLH7P.js} +110 -17
- package/dist/{chunk-IEXKKKOF.cjs → chunk-LSOR72PB.cjs} +23 -23
- package/dist/{chunk-IAGCRVJ3.js → chunk-MA3AVDCC.js} +55 -12
- package/dist/{chunk-B5CGDNMR.js → chunk-ME3S2WIR.js} +3 -3
- package/dist/{chunk-HKYZSUQ5.js → chunk-NC2I2M4P.js} +4 -4
- package/dist/{chunk-GBMDFWJX.cjs → chunk-NC4A4LVC.cjs} +13 -13
- package/dist/{chunk-E46DJH5S.js → chunk-NGEK5FCJ.js} +176 -3
- package/dist/{chunk-TQ33WBY5.cjs → chunk-NHWHEW7M.cjs} +2 -1
- package/dist/{chunk-62RTC3XX.js → chunk-NKW6CHXQ.js} +1 -1
- package/dist/{chunk-3PXKRVCW.js → chunk-NOWCRKP2.js} +10 -4
- package/dist/{chunk-HXJEGMGB.js → chunk-NUB2LMB6.js} +2 -2
- package/dist/chunk-NVATU4V6.cjs +44 -0
- package/dist/chunk-O246MKIW.cjs +267 -0
- package/dist/{chunk-QCHIDZBA.js → chunk-OGFWL2PS.js} +1 -1
- package/dist/{chunk-JJ4KA7HK.cjs → chunk-ONNGAR6W.cjs} +415 -551
- package/dist/{chunk-TKKN34TV.js → chunk-OOFR6A62.js} +33 -4
- package/dist/{chunk-6NVAK6CK.js → chunk-OZ7FHO7J.js} +2 -2
- package/dist/{chunk-2CGE7ZV3.cjs → chunk-P5EWGUI2.cjs} +201 -28
- package/dist/{chunk-GGLKUENP.js → chunk-P6BQJPAI.js} +191 -14
- package/dist/{chunk-TWQDAUZU.js → chunk-PG2JIU5M.js} +60 -7
- package/dist/chunk-PI27G2ED.cjs +377 -0
- package/dist/{chunk-YV63VW4K.js → chunk-PI7LRPL6.js} +1 -1
- package/dist/{chunk-TXPSTCG7.cjs → chunk-PMPEC5HN.cjs} +18 -15
- package/dist/{chunk-ROLA6EFO.cjs → chunk-PYUP7AKY.cjs} +14 -14
- package/dist/{chunk-BFQDQRDE.js → chunk-QC5Z3ZT5.js} +2 -2
- package/dist/chunk-QDO4L2A7.cjs +156 -0
- package/dist/{chunk-LFDPTJYF.cjs → chunk-QDXRI5AM.cjs} +1 -1
- package/dist/{chunk-3LJJG5YY.cjs → chunk-QLZOMZO5.cjs} +4 -3
- package/dist/chunk-QVXMSQOG.js +430 -0
- package/dist/{chunk-ZHJ7JGME.cjs → chunk-R4UKBKDY.cjs} +11 -11
- package/dist/{chunk-IGMPWJ2I.cjs → chunk-R75AWII3.cjs} +118 -23
- package/dist/{chunk-VGEV44V2.cjs → chunk-RD5PLUIX.cjs} +191 -30
- package/dist/{chunk-I24CWKKK.js → chunk-RGB34CV5.js} +3 -3
- package/dist/{chunk-CHI52KFR.cjs → chunk-RJCZLFHE.cjs} +246 -39
- package/dist/{chunk-D2OSPLYC.cjs → chunk-RKWNM2BJ.cjs} +2 -2
- package/dist/{chunk-FGT6KK6T.js → chunk-RMVONICR.js} +3 -3
- package/dist/{chunk-Q6AC3PHY.cjs → chunk-RPSYRJL7.cjs} +10 -4
- package/dist/chunk-RS2E32YB.js +71 -0
- package/dist/chunk-RWKU2X7O.js +388 -0
- package/dist/chunk-RZLEGVMH.cjs +565 -0
- package/dist/{chunk-5F6ZKSHO.js → chunk-S2L3Y677.js} +1 -1
- package/dist/{chunk-ARBEHFCG.js → chunk-S7KVUIOS.js} +1 -1
- package/dist/{chunk-AC7DZ6SK.cjs → chunk-SACJJ6NO.cjs} +5 -3
- package/dist/{chunk-IKUMVBCW.cjs → chunk-SD3NTC7D.cjs} +48 -4
- package/dist/{chunk-CBFH2J3O.js → chunk-SJQU2ZFR.js} +246 -39
- package/dist/{chunk-GWO66KBI.js → chunk-SKAQKQFF.js} +12 -2
- package/dist/chunk-T4DXP5OP.js +30 -0
- package/dist/{chunk-CFFE4VA3.js → chunk-T6FTB6K2.js} +1 -1
- package/dist/{chunk-U4C3HW6P.js → chunk-T6N6GRFT.js} +13 -10
- package/dist/{chunk-D6GZBSOX.js → chunk-TJFKA6A7.js} +82 -3
- package/dist/{chunk-2HOLOHVK.js → chunk-TJZUPS4Z.js} +163 -299
- package/dist/{chunk-RBZ7AFX7.cjs → chunk-TLKHZ425.cjs} +2 -2
- package/dist/{chunk-J2K57QM7.cjs → chunk-TQ24NLXO.cjs} +6 -6
- package/dist/{chunk-LUMV3DB2.js → chunk-TWBAU46X.js} +1 -1
- package/dist/{chunk-OPNI6O7F.cjs → chunk-TZB5XADL.cjs} +4 -4
- package/dist/{chunk-6HH236FV.cjs → chunk-UAYXZXWU.cjs} +4 -4
- package/dist/{chunk-MPULXVC4.cjs → chunk-UKBFNBDO.cjs} +11 -11
- package/dist/chunk-UMJYX5KD.js +565 -0
- package/dist/chunk-USKYTHDL.cjs +235 -0
- package/dist/chunk-V4HGZSKQ.cjs +183 -0
- package/dist/{chunk-MQESBFBZ.cjs → chunk-VAJUSZMC.cjs} +21 -20
- package/dist/{chunk-PQLKJCIE.js → chunk-VGQG4NBJ.js} +2 -2
- package/dist/chunk-VLUIVJ3J.js +235 -0
- package/dist/chunk-VOBINVMV.cjs +430 -0
- package/dist/{chunk-L4F7SUYL.js → chunk-VSHKKCSH.js} +16 -5
- package/dist/{chunk-LDJQ5QHG.cjs → chunk-VSZU3MGA.cjs} +28 -17
- package/dist/{chunk-YFXTE422.cjs → chunk-VWHAUB77.cjs} +8 -3
- package/dist/{chunk-EZJHLOWP.js → chunk-VXGYFX45.js} +20 -7
- package/dist/{chunk-JIMSII7R.js → chunk-WH6YUQDB.js} +193 -59
- package/dist/{chunk-VKBIE6I6.js → chunk-WQ6TD55V.js} +2 -2
- package/dist/{chunk-ZR46OJNZ.js → chunk-WQWECXTY.js} +3 -3
- package/dist/{chunk-SOLBYSLY.cjs → chunk-WVDJUJH6.cjs} +2 -2
- package/dist/{chunk-QKP772OZ.js → chunk-X24VIVDZ.js} +963 -103
- package/dist/{chunk-37M5UM6I.js → chunk-X4NRTLXD.js} +7 -1
- package/dist/chunk-X53SHYCG.js +27 -0
- package/dist/{chunk-PUD76XQT.cjs → chunk-XB2Z4ZAK.cjs} +5 -5
- package/dist/chunk-Y47OJGLB.cjs +27 -0
- package/dist/{chunk-WRTXCQ3V.cjs → chunk-Y4MN27V3.cjs} +1080 -220
- package/dist/{chunk-ZK6HOR62.js → chunk-YEHFYZFU.js} +7 -2
- package/dist/{chunk-FFBDRUO5.cjs → chunk-YICIUY23.cjs} +1 -1
- package/dist/{chunk-PDHT7LQS.cjs → chunk-YMXYC777.cjs} +3 -3
- package/dist/{chunk-TJNBASFD.cjs → chunk-Z3GRWK6O.cjs} +8 -8
- package/dist/{chunk-JP3YHTQ2.cjs → chunk-Z5GG2KSL.cjs} +4 -4
- package/dist/{chunk-ZPD2AO3U.js → chunk-ZER7DYQK.js} +2 -2
- package/dist/{chunk-UXLW45ZE.cjs → chunk-ZFDXZEZJ.cjs} +25 -90
- package/dist/chunk-ZFV4HJA6.js +579 -0
- package/dist/chunk-ZHMYTI5D.cjs +529 -0
- package/dist/{chunk-CCVMREXI.js → chunk-ZLR2TFBC.js} +35 -8
- package/dist/{chunk-J5ADZN6V.cjs → chunk-ZTWNU5QZ.cjs} +20 -20
- package/dist/chunk-ZUYYHKQA.js +44 -0
- package/dist/{chunk-AUFNACED.js → chunk-ZVLVLDYN.js} +9086 -6621
- package/dist/clear-AJGXD2BB.cjs +12 -0
- package/dist/{clear-OFLFQ3MR.js → clear-HAHDSWKW.js} +3 -3
- package/dist/communityInstaller-IRR6M3N6.cjs +22 -0
- package/dist/{communityInstaller-COB2KTOW.js → communityInstaller-OLKEUGMX.js} +6 -6
- package/dist/completion-G7Z436TF.cjs +17 -0
- package/dist/{completion-PT4VM2H2.js → completion-ZS3AXJ6A.js} +5 -5
- package/dist/{config-R4O7GBTY.js → config-OWYAQPCX.js} +5 -3
- package/dist/config-W2BHT2QE.cjs +22 -0
- package/dist/{constants-HVCHVQAF.js → constants-AS6K67AA.js} +5 -3
- package/dist/constants-B4W5BT7F.cjs +23 -0
- package/dist/{export-3PK3VFCE.js → export-5HIU3KMD.js} +5 -5
- package/dist/export-GFD32UY2.cjs +15 -0
- package/dist/{extractSessionMemories-A2JX5WJ2.js → extractSessionMemories-K6ZVAW2F.js} +1 -1
- package/dist/{extractSessionMemories-XL3MS37F.cjs → extractSessionMemories-LLOIJR5U.cjs} +2 -2
- package/dist/feature-KP74CZ3F.cjs +14 -0
- package/dist/feature-OPNVMB2E.js +14 -0
- package/dist/features-LT55MURX.cjs +24 -0
- package/dist/features-ZDIU26WX.js +24 -0
- package/dist/feedback-7WTJFQ6S.js +18 -0
- package/dist/feedback-CEOJ3453.cjs +18 -0
- package/dist/go-2CY5SZNR.js +16 -0
- package/dist/go-O2CSQON4.cjs +16 -0
- package/dist/goal-DL2N2AWT.cjs +16 -0
- package/dist/goal-IJS7VZSG.js +16 -0
- package/dist/help-RNOGDEBA.cjs +12 -0
- package/dist/{help-X3OAZ3CY.js → help-TCWD2IRH.js} +2 -2
- package/dist/{history-YKFPHBJN.js → history-ATOR5OQV.js} +2 -2
- package/dist/history-UUSGX2AL.cjs +14 -0
- package/dist/{hooks-7TA4PIIB.js → hooks-R3Z5QKUP.js} +6 -6
- package/dist/hooks-RWM5UY67.cjs +18 -0
- package/dist/{i18n-2KBUU7XL.js → i18n-4QI4TD4I.js} +1 -1
- package/dist/i18n-MFAEU5RV.cjs +33 -0
- package/dist/ide-6PBTCCUQ.js +15 -0
- package/dist/ide-UE3G7NMQ.cjs +15 -0
- package/dist/{import-I7T4ZHYL.cjs → import-2IG76KAN.cjs} +6 -4
- package/dist/{import-JWPYKXCZ.js → import-E47QL4DW.js} +2 -2
- package/dist/import-NQDNBFUL.cjs +10 -0
- package/dist/{import-4CHYLS4K.js → import-VQIHGJWS.js} +6 -4
- package/dist/index.cjs +512 -305
- package/dist/index.d.cts +40 -0
- package/dist/index.d.ts +40 -0
- package/dist/index.js +402 -195
- package/dist/init-DX3RDGDT.cjs +10 -0
- package/dist/{init-262MWZV4.js → init-Q54OAAFZ.js} +2 -2
- package/dist/{inputPrompt-YGBHDUEP.js → inputPrompt-V2VBDRM7.js} +3 -3
- package/dist/inputPrompt-WVGVWAHS.cjs +90 -0
- package/dist/language-I6KXAOXD.js +23 -0
- package/dist/language-XMIVOH5E.cjs +23 -0
- package/dist/learn-JPVVGTKU.js +23 -0
- package/dist/learn-NLSHI2MZ.cjs +23 -0
- package/dist/login-NABQYLYC.cjs +28 -0
- package/dist/login-XPOVFSWN.js +28 -0
- package/dist/logout-HNHCGB4Q.js +25 -0
- package/dist/logout-SKGDXJSW.cjs +25 -0
- package/dist/{mcp-5O6PUL4G.js → mcp-EN73YFGZ.js} +8 -6
- package/dist/mcp-TADZCPJQ.cjs +22 -0
- package/dist/{mcp-install-P6DHES7V.cjs → mcp-install-2GKWWBAS.cjs} +15 -13
- package/dist/{mcp-install-6XWXLFVY.js → mcp-install-3TBTVSHW.js} +10 -8
- package/dist/memory-GRXFTDIN.cjs +10 -0
- package/dist/{memory-Q54CESNM.js → memory-K2P3CDCH.js} +2 -2
- package/dist/{model-6AJ77PJG.js → model-DEG22OWA.js} +2 -2
- package/dist/model-OSD74T7Z.cjs +10 -0
- package/dist/new-4NWBOATU.cjs +12 -0
- package/dist/{new-ZXHEWC2S.js → new-KJAP2MB6.js} +3 -3
- package/dist/onboarding-2U5WE2OA.js +39 -0
- package/dist/onboarding-5DZFCO5Q.cjs +39 -0
- package/dist/permissions-KY5I6YQ3.cjs +10 -0
- package/dist/{permissions-YHJMVA6L.js → permissions-TKYON7PP.js} +2 -2
- package/dist/{plan-YYUAXPTL.js → plan-DYHHLZSS.js} +1 -1
- package/dist/plan-PYKP652W.cjs +13 -0
- package/dist/quit-GSKJL42O.js +14 -0
- package/dist/quit-TQSRTBUT.cjs +14 -0
- package/dist/{registry-34GL6BNJ.js → registry-EZ4V4TUQ.js} +1339 -1
- package/dist/{registry-V24W7YK6.cjs → registry-LCWYI4IB.cjs} +1378 -40
- package/dist/resume-4VWJXARX.cjs +17 -0
- package/dist/resume-TLHWWWFN.js +17 -0
- package/dist/{review-QHP2KP4Q.js → review-CSK4IYTO.js} +1 -1
- package/dist/review-XLJEUH5K.cjs +9 -0
- package/dist/{rpc-S3DGW6KV.js → rpc-3DLQBDWU.js} +301 -130
- package/dist/{rpc-NPS3PU4O.cjs → rpc-O36WUU3L.cjs} +399 -228
- package/dist/search-DSX2CY4A.cjs +22 -0
- package/dist/search-I3QUDUQL.js +22 -0
- package/dist/sessionBranching-DVNOUWJT.cjs +19 -0
- package/dist/sessionBranching-FKV4CR36.js +19 -0
- package/dist/sessions-3JUOT3ED.cjs +10 -0
- package/dist/{sessions-IYAXMK23.js → sessions-VWMDIPOS.js} +2 -2
- package/dist/settings-FT2LZZUV.js +45 -0
- package/dist/settings-RL4KNWHB.cjs +45 -0
- package/dist/setup-HQEJVOYT.js +32 -0
- package/dist/setup-MN54LKOL.cjs +32 -0
- package/dist/share-BUAFZNBX.cjs +17 -0
- package/dist/share-CGB6MAVJ.js +17 -0
- package/dist/skills/builtin/code-reviewer/SKILL.md +64 -0
- package/dist/skills/builtin/goal-writer/SKILL.md +124 -0
- package/dist/{skills-VWOMV3CR.js → skills-7DKR3HRZ.js} +8 -8
- package/dist/{skills-MVIZNHT4.js → skills-BBBENOEY.js} +9 -9
- package/dist/skills-OQM7IHAF.cjs +29 -0
- package/dist/{skills-GGMZOVIE.cjs → skills-RA2PKL63.cjs} +10 -10
- package/dist/{skills-install-VTAMCNNY.cjs → skills-install-D7K476SL.cjs} +16 -16
- package/dist/{skills-install-QBA5RCV6.js → skills-install-T4SOKJSL.js} +9 -9
- package/dist/skills-new-S33NGEU3.js +18 -0
- package/dist/skills-new-UVYH53MD.cjs +18 -0
- package/dist/slashCommands-MWOUDSQP.js +111 -0
- package/dist/slashCommands-XASURUTV.cjs +111 -0
- package/dist/squad-PIIYDFVH.cjs +15 -0
- package/dist/squad-VHYOVEJP.js +15 -0
- package/dist/status-GHFTXQBL.js +25 -0
- package/dist/status-WXMIJIU3.cjs +25 -0
- package/dist/statusline-2K7AC6ZQ.js +21 -0
- package/dist/statusline-GROI4HOC.cjs +21 -0
- package/dist/sync-254WF6JI.cjs +42 -0
- package/dist/sync-2DIZN4EH.cjs +24 -0
- package/dist/{sync-7BILIQHP.js → sync-J6I2ZUKQ.js} +6 -4
- package/dist/{sync-7OKF6636.js → sync-Z3LVSEEV.js} +8 -5
- package/dist/{teammate-J6PHGL23.cjs → teammate-EXR76PEQ.cjs} +9 -8
- package/dist/{teammate-GZQSCIMS.js → teammate-K4DAOFEQ.js} +8 -7
- package/dist/templates-ARG2VRWW.cjs +11 -0
- package/dist/templates-UGVZV3KJ.js +11 -0
- package/dist/theme-MVQDSU47.js +23 -0
- package/dist/theme-QAKEYWJG.cjs +23 -0
- package/dist/ui/questionModal.cjs +6 -6
- package/dist/ui/questionModal.js +5 -5
- package/dist/{undo-SZEHLX7X.js → undo-5AU47JHF.js} +2 -2
- package/dist/undo-ME6WKUXZ.cjs +10 -0
- package/dist/usage-QTKO2YMD.js +25 -0
- package/dist/usage-TYNJKVER.cjs +25 -0
- package/package.json +10 -4
- package/dist/AgentRegistry-EGBDIUAK.cjs +0 -10
- package/dist/AgentRegistry-XPWSVO3Q.js +0 -10
- package/dist/CommunitySkillsCache-2OIUV227.cjs +0 -8
- package/dist/LearnAdvisor-46FG2XIP.js +0 -9
- package/dist/LearnAdvisor-XBRDNAGH.cjs +0 -9
- package/dist/MemoryManager-34L4YOKA.cjs +0 -8
- package/dist/MemoryManager-WJMLPWGU.js +0 -8
- package/dist/NVIDIAProvider-MVTL62PR.cjs +0 -14
- package/dist/PermissionManager-5OOJ7FAT.cjs +0 -11
- package/dist/ProviderFactory-C3YPXTDD.cjs +0 -11
- package/dist/SessionManager-WAPTFMDO.cjs +0 -10
- package/dist/SkillsRegistry-7AJP74GJ.cjs +0 -9
- package/dist/SubAgent-FDIH3DXB.js +0 -11
- package/dist/SubAgent-HVL2ICVZ.cjs +0 -11
- package/dist/SyncApiClient-VMBOLQ6H.cjs +0 -11
- package/dist/about-FCAX37YC.cjs +0 -14
- package/dist/actionExecutor-33I47NZS.js +0 -24
- package/dist/actionExecutor-4YBMR3YH.cjs +0 -24
- package/dist/add-dir-7SS6KSH5.cjs +0 -11
- package/dist/agent-DMRUFU4M.cjs +0 -116
- package/dist/agent-WCJEYQJT.js +0 -116
- package/dist/agents-CHROO3VU.cjs +0 -17
- package/dist/agents-UVDUL65K.js +0 -17
- package/dist/agents-new-AUBWSOXP.js +0 -17
- package/dist/agents-new-Y562WC47.cjs +0 -17
- package/dist/autoSkill-YOLLFTP2.cjs +0 -20
- package/dist/automode-DBLKTTKD.cjs +0 -10
- package/dist/chrome-ATC4OO5I.cjs +0 -20
- package/dist/chrome-O62WXV7F.js +0 -20
- package/dist/chrome-XHJLCO4M.cjs +0 -50
- package/dist/chunk-6XVVIY54.cjs +0 -256
- package/dist/chunk-AU6JAGZJ.cjs +0 -231
- package/dist/chunk-N6O3XUZ2.cjs +0 -23
- package/dist/chunk-VDWJMWDF.js +0 -256
- package/dist/clear-33TWQ2ES.cjs +0 -12
- package/dist/communityInstaller-TWMGPSYM.cjs +0 -22
- package/dist/completion-IIZMHXYP.cjs +0 -17
- package/dist/config-KL6WU7R2.cjs +0 -20
- package/dist/constants-RLMJ5D5P.cjs +0 -21
- package/dist/export-WLGNWEMJ.cjs +0 -15
- package/dist/feedback-G635NCLJ.js +0 -18
- package/dist/feedback-LLMK3TZH.cjs +0 -18
- package/dist/help-BAXLP2M2.cjs +0 -12
- package/dist/history-6HOJSEMT.cjs +0 -14
- package/dist/hooks-XVFU67T2.cjs +0 -18
- package/dist/i18n-MUJMKTFM.cjs +0 -33
- package/dist/ide-CCQ33PGC.cjs +0 -15
- package/dist/ide-VLVFBZ5F.js +0 -15
- package/dist/import-J46F54JY.cjs +0 -10
- package/dist/init-EE5Y7RBL.cjs +0 -10
- package/dist/inputPrompt-IIFKCX5Q.cjs +0 -90
- package/dist/language-CVLPB7OV.js +0 -21
- package/dist/language-ZTWFHUSV.cjs +0 -21
- package/dist/learn-PON7I5QS.js +0 -23
- package/dist/learn-XLRSVNA3.cjs +0 -23
- package/dist/login-223QTGBG.cjs +0 -26
- package/dist/login-6IKTBUBY.js +0 -26
- package/dist/logout-RN2AG6SI.js +0 -23
- package/dist/logout-U3M4FFX7.cjs +0 -23
- package/dist/mcp-NUQ76QQB.cjs +0 -20
- package/dist/memory-CYMDQ2YC.cjs +0 -10
- package/dist/model-IDRCKDML.cjs +0 -10
- package/dist/new-7LEWOUF2.cjs +0 -12
- package/dist/onboarding-FXX7YHSJ.cjs +0 -35
- package/dist/onboarding-JYNMK6NI.js +0 -35
- package/dist/permissions-YBNSANIA.cjs +0 -10
- package/dist/plan-XEJMOT55.cjs +0 -13
- package/dist/quit-B43SJ6E4.cjs +0 -10
- package/dist/quit-GWTNHQSP.js +0 -10
- package/dist/resume-DYVOQN5L.cjs +0 -16
- package/dist/resume-M25UQKOX.js +0 -16
- package/dist/review-UWHWQHCB.cjs +0 -9
- package/dist/search-CPX4PWHP.js +0 -20
- package/dist/search-VUF3M4N3.cjs +0 -20
- package/dist/sessions-JODKER5D.cjs +0 -10
- package/dist/settings-55BNW6BF.js +0 -33
- package/dist/settings-BKTS7OMC.cjs +0 -33
- package/dist/setup-IRC5HQG2.js +0 -29
- package/dist/setup-MMQ7TWOP.cjs +0 -29
- package/dist/share-6JRQECAH.cjs +0 -17
- package/dist/share-YM5MJKMO.js +0 -17
- package/dist/skills-LWSOKOSH.cjs +0 -29
- package/dist/skills-new-GPL46YV2.js +0 -18
- package/dist/skills-new-L5BEZN5V.cjs +0 -18
- package/dist/slashCommands-FBPCIWM5.cjs +0 -95
- package/dist/slashCommands-FCWY5DXW.js +0 -95
- package/dist/status-3B5SDZPL.js +0 -17
- package/dist/status-TTGRF6NC.cjs +0 -17
- package/dist/sync-77CXVVTK.cjs +0 -21
- package/dist/sync-EH4K5U3N.cjs +0 -40
- package/dist/theme-64BYGJ57.cjs +0 -21
- package/dist/theme-YJE6HEON.js +0 -21
- package/dist/undo-PRTEGL2J.cjs +0 -10
|
@@ -0,0 +1,71 @@
|
|
|
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; }// src/session/chatLog.ts
|
|
2
|
+
function decodeJsonStringLiteral(value) {
|
|
3
|
+
try {
|
|
4
|
+
return JSON.parse(`"${value}"`);
|
|
5
|
+
} catch (e) {
|
|
6
|
+
return value;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
function extractJsonStringField(raw, field) {
|
|
10
|
+
const match = raw.match(new RegExp(`"${field}"\\s*:\\s*"((?:\\\\.|[^"\\\\])*)"`, "s"));
|
|
11
|
+
return _optionalChain([match, 'optionalAccess', _ => _[1]]) ? decodeJsonStringLiteral(match[1]) : null;
|
|
12
|
+
}
|
|
13
|
+
function getAssistantChatLogContent(content) {
|
|
14
|
+
const trimmed = content.trim();
|
|
15
|
+
if (!trimmed) {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
try {
|
|
19
|
+
const parsed = JSON.parse(trimmed);
|
|
20
|
+
for (const field of ["finalResponse", "response", "content", "message"]) {
|
|
21
|
+
const value = parsed[field];
|
|
22
|
+
if (typeof value === "string" && value.trim()) {
|
|
23
|
+
return value.trim();
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return null;
|
|
27
|
+
} catch (e2) {
|
|
28
|
+
const finalResponse = _nullishCoalesce(extractJsonStringField(trimmed, "finalResponse"), () => ( extractJsonStringField(trimmed, "response")));
|
|
29
|
+
if (_optionalChain([finalResponse, 'optionalAccess', _2 => _2.trim, 'call', _3 => _3()])) {
|
|
30
|
+
return finalResponse.trim();
|
|
31
|
+
}
|
|
32
|
+
if (trimmed.startsWith("{") || trimmed.includes('"thought"')) {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
return trimmed;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
function buildSessionChatLog(messages) {
|
|
39
|
+
const chatMessages = [];
|
|
40
|
+
for (const message of messages) {
|
|
41
|
+
if (message.role === "user") {
|
|
42
|
+
const content = message.content.trim();
|
|
43
|
+
if (content) {
|
|
44
|
+
chatMessages.push({ role: "user", content });
|
|
45
|
+
}
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
if (message.role === "assistant") {
|
|
49
|
+
const content = getAssistantChatLogContent(message.content);
|
|
50
|
+
if (content) {
|
|
51
|
+
chatMessages.push({ role: "assistant", content });
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return chatMessages;
|
|
56
|
+
}
|
|
57
|
+
function formatChatLogPreview(content, maxLength = 100) {
|
|
58
|
+
const singleLine = content.replace(/\n/g, " ").replace(/\s+/g, " ").trim();
|
|
59
|
+
return singleLine.length > maxLength ? `${singleLine.slice(0, maxLength)}...` : singleLine;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
exports.getAssistantChatLogContent = getAssistantChatLogContent; exports.buildSessionChatLog = buildSessionChatLog; exports.formatChatLogPreview = formatChatLogPreview;
|
|
67
|
+
/**
|
|
68
|
+
* @license
|
|
69
|
+
* Copyright 2026 Autohand AI LLC
|
|
70
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
71
|
+
*/
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
// src/commands/sessionBranching.ts
|
|
2
|
+
import chalk from "chalk";
|
|
3
|
+
var FORK_FLAG = "experimental_fork";
|
|
4
|
+
var CLONE_FLAG = "experimental_clone";
|
|
5
|
+
var forkMetadata = {
|
|
6
|
+
command: "/fork",
|
|
7
|
+
description: "branch a new session from the active session or an earlier user message",
|
|
8
|
+
implemented: true
|
|
9
|
+
};
|
|
10
|
+
var cloneMetadata = {
|
|
11
|
+
command: "/clone",
|
|
12
|
+
description: "duplicate the active session branch into a new session",
|
|
13
|
+
implemented: true
|
|
14
|
+
};
|
|
15
|
+
var treeMetadata = {
|
|
16
|
+
command: "/tree",
|
|
17
|
+
description: "show the fork and clone tree for this project",
|
|
18
|
+
implemented: true
|
|
19
|
+
};
|
|
20
|
+
async function forkSession(ctx, args = []) {
|
|
21
|
+
if (!isEnabled(ctx, FORK_FLAG)) {
|
|
22
|
+
return `The /fork command is behind ${FORK_FLAG}. Run /features enable ${FORK_FLAG}, then /fork again. No restart required.`;
|
|
23
|
+
}
|
|
24
|
+
await ctx.trackFeatureActivation?.(FORK_FLAG, { surface: "slash_command" });
|
|
25
|
+
const target = parseForkArgs(args);
|
|
26
|
+
const sourceSessionId = target.sourceReference ? await ctx.sessionManager.resolveSessionReference(target.sourceReference) : requireCurrentSessionId(ctx, "/fork");
|
|
27
|
+
const forked = await ctx.sessionManager.branchSession(sourceSessionId, {
|
|
28
|
+
type: "fork",
|
|
29
|
+
userMessageOrdinal: target.userMessageOrdinal
|
|
30
|
+
});
|
|
31
|
+
await ctx.restoreSession?.(forked.metadata.sessionId);
|
|
32
|
+
const point = target.userMessageOrdinal ? ` at user message ${target.userMessageOrdinal}` : "";
|
|
33
|
+
return chalk.green(`Forked session ${forked.metadata.sessionId}${point}. Continue typing to explore this branch.`);
|
|
34
|
+
}
|
|
35
|
+
async function cloneSession(ctx, args = []) {
|
|
36
|
+
if (!isEnabled(ctx, CLONE_FLAG)) {
|
|
37
|
+
return `The /clone command is behind ${CLONE_FLAG}. Run /features enable ${CLONE_FLAG}, then /clone again. No restart required.`;
|
|
38
|
+
}
|
|
39
|
+
await ctx.trackFeatureActivation?.(CLONE_FLAG, { surface: "slash_command" });
|
|
40
|
+
const sourceReference = args[0] ? await ctx.sessionManager.resolveSessionReference(args[0]) : requireCurrentSessionId(ctx, "/clone");
|
|
41
|
+
const cloned = await ctx.sessionManager.branchSession(sourceReference, { type: "clone" });
|
|
42
|
+
await ctx.restoreSession?.(cloned.metadata.sessionId);
|
|
43
|
+
return chalk.green(`Cloned session ${cloned.metadata.sessionId}. Continue typing in the duplicate branch.`);
|
|
44
|
+
}
|
|
45
|
+
async function sessionTree(ctx) {
|
|
46
|
+
if (!isEnabled(ctx, FORK_FLAG) && !isEnabled(ctx, CLONE_FLAG)) {
|
|
47
|
+
return `The /tree command is behind ${FORK_FLAG} or ${CLONE_FLAG}. Enable one of those features first.`;
|
|
48
|
+
}
|
|
49
|
+
const sessions = await ctx.sessionManager.listSessions(
|
|
50
|
+
ctx.workspaceRoot ? { project: ctx.workspaceRoot } : void 0
|
|
51
|
+
);
|
|
52
|
+
if (sessions.length === 0) {
|
|
53
|
+
return "No sessions found for this project.";
|
|
54
|
+
}
|
|
55
|
+
return formatSessionTree(sessions, ctx.currentSession?.metadata.sessionId);
|
|
56
|
+
}
|
|
57
|
+
async function forkSessionReference(ctx, sourceReference) {
|
|
58
|
+
if (!isEnabled(ctx, FORK_FLAG)) {
|
|
59
|
+
return `The --fork flag is behind ${FORK_FLAG}. Run /features enable ${FORK_FLAG}, then try again.`;
|
|
60
|
+
}
|
|
61
|
+
await ctx.trackFeatureActivation?.(FORK_FLAG, { surface: "cli_flag" });
|
|
62
|
+
const sourceSessionId = await ctx.sessionManager.resolveSessionReference(sourceReference);
|
|
63
|
+
const forked = await ctx.sessionManager.branchSession(sourceSessionId, { type: "fork" });
|
|
64
|
+
await ctx.restoreSession?.(forked.metadata.sessionId);
|
|
65
|
+
return forked.metadata.sessionId;
|
|
66
|
+
}
|
|
67
|
+
function isEnabled(ctx, flag) {
|
|
68
|
+
const localDefault = flag === FORK_FLAG ? ctx.config?.features?.experimentalFork === true : ctx.config?.features?.experimentalClone === true;
|
|
69
|
+
return ctx.isFeatureEnabled?.(flag, localDefault) ?? localDefault;
|
|
70
|
+
}
|
|
71
|
+
function requireCurrentSessionId(ctx, command) {
|
|
72
|
+
const sessionId = ctx.currentSession?.metadata.sessionId ?? ctx.sessionManager.getCurrentSession()?.metadata.sessionId;
|
|
73
|
+
if (!sessionId) {
|
|
74
|
+
throw new Error(`${command} requires an active session.`);
|
|
75
|
+
}
|
|
76
|
+
return sessionId;
|
|
77
|
+
}
|
|
78
|
+
function parseForkArgs(args) {
|
|
79
|
+
const rest = [...args];
|
|
80
|
+
let userMessageOrdinal;
|
|
81
|
+
const messageFlagIndex = rest.findIndex((arg) => arg === "--message" || arg === "-m");
|
|
82
|
+
if (messageFlagIndex >= 0) {
|
|
83
|
+
const rawValue = rest[messageFlagIndex + 1];
|
|
84
|
+
if (!rawValue) {
|
|
85
|
+
throw new Error("Missing message number after --message.");
|
|
86
|
+
}
|
|
87
|
+
userMessageOrdinal = parseUserMessageOrdinal(rawValue);
|
|
88
|
+
rest.splice(messageFlagIndex, 2);
|
|
89
|
+
}
|
|
90
|
+
if (rest.length === 1 && /^\d+$/.test(rest[0])) {
|
|
91
|
+
userMessageOrdinal = parseUserMessageOrdinal(rest[0]);
|
|
92
|
+
rest.length = 0;
|
|
93
|
+
}
|
|
94
|
+
return {
|
|
95
|
+
sourceReference: rest[0],
|
|
96
|
+
userMessageOrdinal
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
function parseUserMessageOrdinal(rawValue) {
|
|
100
|
+
const parsed = Number.parseInt(rawValue, 10);
|
|
101
|
+
if (!Number.isInteger(parsed) || parsed < 1) {
|
|
102
|
+
throw new Error("Fork message must be a positive user-message number.");
|
|
103
|
+
}
|
|
104
|
+
return parsed;
|
|
105
|
+
}
|
|
106
|
+
function formatSessionTree(sessions, currentSessionId) {
|
|
107
|
+
const byParent = /* @__PURE__ */ new Map();
|
|
108
|
+
const roots = [];
|
|
109
|
+
const ids = new Set(sessions.map((session) => session.sessionId));
|
|
110
|
+
for (const session of sessions) {
|
|
111
|
+
const parentId = session.branch?.sourceSessionId;
|
|
112
|
+
if (parentId && ids.has(parentId)) {
|
|
113
|
+
const siblings = byParent.get(parentId) ?? [];
|
|
114
|
+
siblings.push(session);
|
|
115
|
+
byParent.set(parentId, siblings);
|
|
116
|
+
} else {
|
|
117
|
+
roots.push(session);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
const sortByCreated = (items) => [...items].sort((a, b) => new Date(a.createdAt).getTime() - new Date(b.createdAt).getTime());
|
|
121
|
+
const lines = ["Session tree:"];
|
|
122
|
+
const visit = (session, depth) => {
|
|
123
|
+
const marker = session.sessionId === currentSessionId ? " *" : "";
|
|
124
|
+
const branch = formatBranchLabel(session);
|
|
125
|
+
lines.push(`${" ".repeat(depth)}- ${session.sessionId}${marker}${branch}`);
|
|
126
|
+
for (const child of sortByCreated(byParent.get(session.sessionId) ?? [])) {
|
|
127
|
+
visit(child, depth + 1);
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
for (const root of sortByCreated(roots)) {
|
|
131
|
+
visit(root, 0);
|
|
132
|
+
}
|
|
133
|
+
return lines.join("\n");
|
|
134
|
+
}
|
|
135
|
+
function formatBranchLabel(session) {
|
|
136
|
+
if (!session.branch) return "";
|
|
137
|
+
if (session.branch.type === "fork" && session.branch.sourceUserMessageOrdinal) {
|
|
138
|
+
return ` (${session.branch.type} at user message ${session.branch.sourceUserMessageOrdinal})`;
|
|
139
|
+
}
|
|
140
|
+
return ` (${session.branch.type})`;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
export {
|
|
144
|
+
forkMetadata,
|
|
145
|
+
cloneMetadata,
|
|
146
|
+
treeMetadata,
|
|
147
|
+
forkSession,
|
|
148
|
+
cloneSession,
|
|
149
|
+
sessionTree,
|
|
150
|
+
forkSessionReference
|
|
151
|
+
};
|
|
152
|
+
/**
|
|
153
|
+
* @license
|
|
154
|
+
* Copyright 2026 Autohand AI LLC
|
|
155
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
156
|
+
*/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunk3JURXAL6cjs = require('./chunk-3JURXAL6.cjs');
|
|
4
4
|
|
|
5
5
|
// src/skills/CommunitySkillsCache.ts
|
|
6
6
|
var _fsextra = require('fs-extra'); var _fsextra2 = _interopRequireDefault(_fsextra);
|
|
@@ -12,7 +12,7 @@ var CommunitySkillsCache = class {
|
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
constructor(config = {}) {
|
|
15
|
-
this.cacheDir = config.cacheDir || _path2.default.join(
|
|
15
|
+
this.cacheDir = config.cacheDir || _path2.default.join(_chunk3JURXAL6cjs.AUTOHAND_HOME, "community-skills", "cache");
|
|
16
16
|
this.ttlMs = _nullishCoalesce(config.ttlMs, () => ( DEFAULT_TTL_MS));
|
|
17
17
|
this.maxSkillsCache = _nullishCoalesce(config.maxSkillsCache, () => ( DEFAULT_MAX_SKILLS_CACHE));
|
|
18
18
|
}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
safePrompt
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-NKW6CHXQ.js";
|
|
4
4
|
import {
|
|
5
5
|
package_default
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-NOWCRKP2.js";
|
|
7
7
|
import {
|
|
8
8
|
AUTOHAND_FILES,
|
|
9
9
|
AUTOHAND_PATHS
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-PG2JIU5M.js";
|
|
11
11
|
import {
|
|
12
12
|
t
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-SJQU2ZFR.js";
|
|
14
14
|
|
|
15
15
|
// src/commands/feedback.ts
|
|
16
16
|
import fs from "fs-extra";
|
|
@@ -3,7 +3,10 @@
|
|
|
3
3
|
var _chunkJHGIWNHLcjs = require('./chunk-JHGIWNHL.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
var _chunk3JURXAL6cjs = require('./chunk-3JURXAL6.cjs');
|
|
7
10
|
|
|
8
11
|
// src/skills/SkillsRegistry.ts
|
|
9
12
|
var _fsextra = require('fs-extra'); var _fsextra2 = _interopRequireDefault(_fsextra);
|
|
@@ -94,13 +97,31 @@ var SkillParser = class {
|
|
|
94
97
|
|
|
95
98
|
// src/skills/SkillsRegistry.ts
|
|
96
99
|
var SIMILARITY_THRESHOLD = 0.3;
|
|
97
|
-
var
|
|
100
|
+
var BUILTIN_SKILLS_DIR = "builtin";
|
|
101
|
+
function sameResolvedPath(a, b) {
|
|
102
|
+
return _path2.default.resolve(a) === _path2.default.resolve(b);
|
|
103
|
+
}
|
|
104
|
+
function createDefaultUserSkillLocations(userSkillsDir, defaultSource, homeDir) {
|
|
105
|
+
return _chunk3JURXAL6cjs.getUserSkillLocations.call(void 0, homeDir, userSkillsDir).map(
|
|
106
|
+
(location) => sameResolvedPath(location.basePath, userSkillsDir) ? { ...location, source: defaultSource } : location
|
|
107
|
+
);
|
|
108
|
+
}
|
|
109
|
+
var VENDOR_SOURCES = [
|
|
110
|
+
"codex-user",
|
|
111
|
+
"claude-user",
|
|
112
|
+
"codex-project",
|
|
113
|
+
"claude-project",
|
|
114
|
+
"agent-user",
|
|
115
|
+
"agent-project"
|
|
116
|
+
];
|
|
98
117
|
var SkillsRegistry = (_class = class {
|
|
99
|
-
constructor(userSkillsDir, defaultSource = "autohand-user") {;_class.prototype.__init.call(this);_class.prototype.__init2.call(this);_class.prototype.__init3.call(this);_class.prototype.__init4.call(this);_class.prototype.__init5.call(this);
|
|
118
|
+
constructor(userSkillsDir, defaultSource = "autohand-user", options = {}) {;_class.prototype.__init.call(this);_class.prototype.__init2.call(this);_class.prototype.__init3.call(this);_class.prototype.__init4.call(this);_class.prototype.__init5.call(this);
|
|
100
119
|
this.userSkillsDir = userSkillsDir;
|
|
120
|
+
this.options = options;
|
|
101
121
|
this.defaultSource = defaultSource;
|
|
102
122
|
}
|
|
103
123
|
|
|
124
|
+
|
|
104
125
|
__init() {this.skills = /* @__PURE__ */ new Map()}
|
|
105
126
|
__init2() {this.parser = new SkillParser()}
|
|
106
127
|
__init3() {this.workspaceRoot = null}
|
|
@@ -225,17 +246,49 @@ var SkillsRegistry = (_class = class {
|
|
|
225
246
|
* Initialize the registry by loading skills from the user directory
|
|
226
247
|
*/
|
|
227
248
|
async initialize() {
|
|
228
|
-
await this.
|
|
249
|
+
await this.loadBuiltins();
|
|
250
|
+
for (const location of this.getUserSkillLocations()) {
|
|
251
|
+
await this.loadFromDirectory(location.basePath, location.source, location.recursive);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
async loadBuiltins() {
|
|
255
|
+
for (const directory of this.getBuiltinSkillDirectories()) {
|
|
256
|
+
if (await _fsextra2.default.pathExists(directory)) {
|
|
257
|
+
await this.loadFromDirectory(directory, "builtin", true);
|
|
258
|
+
return;
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
getBuiltinSkillDirectories() {
|
|
263
|
+
const moduleDir = _path2.default.dirname(new URL(import.meta.url).pathname);
|
|
264
|
+
return [
|
|
265
|
+
_path2.default.join(moduleDir, BUILTIN_SKILLS_DIR),
|
|
266
|
+
_path2.default.join(moduleDir, "skills", BUILTIN_SKILLS_DIR),
|
|
267
|
+
_path2.default.join(moduleDir, "..", "skills", BUILTIN_SKILLS_DIR)
|
|
268
|
+
];
|
|
269
|
+
}
|
|
270
|
+
getUserSkillLocations() {
|
|
271
|
+
if (this.options.userSkillLocations) {
|
|
272
|
+
return this.options.userSkillLocations;
|
|
273
|
+
}
|
|
274
|
+
const includeDefaultLocations = _nullishCoalesce(this.options.includeDefaultUserSkillLocations, () => ( sameResolvedPath(this.userSkillsDir, _chunk3JURXAL6cjs.AUTOHAND_PATHS.skills)));
|
|
275
|
+
if (!includeDefaultLocations) {
|
|
276
|
+
return [{ basePath: this.userSkillsDir, source: this.defaultSource, recursive: true }];
|
|
277
|
+
}
|
|
278
|
+
return createDefaultUserSkillLocations(
|
|
279
|
+
this.userSkillsDir,
|
|
280
|
+
this.defaultSource,
|
|
281
|
+
this.options.homeDir
|
|
282
|
+
);
|
|
229
283
|
}
|
|
230
284
|
/**
|
|
231
285
|
* Set the workspace root and load project-level skills
|
|
232
286
|
*/
|
|
233
287
|
async setWorkspace(workspaceRoot) {
|
|
234
288
|
this.workspaceRoot = workspaceRoot;
|
|
235
|
-
const
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
await this.loadFromDirectory(autohandProjectSkillsDir, "autohand-project", true);
|
|
289
|
+
for (const location of _chunk3JURXAL6cjs.getProjectSkillLocations.call(void 0, workspaceRoot)) {
|
|
290
|
+
await this.loadFromDirectory(location.basePath, location.source, location.recursive);
|
|
291
|
+
}
|
|
239
292
|
}
|
|
240
293
|
/**
|
|
241
294
|
* Add an additional skill location to search
|
|
@@ -293,7 +346,7 @@ var SkillsRegistry = (_class = class {
|
|
|
293
346
|
async setWorkspaceWithAutoCopy(workspaceRoot) {
|
|
294
347
|
this.workspaceRoot = workspaceRoot;
|
|
295
348
|
const claudeProjectSkillsDir = _path2.default.join(workspaceRoot, ".claude", "skills");
|
|
296
|
-
const autohandProjectSkillsDir = _path2.default.join(workspaceRoot,
|
|
349
|
+
const autohandProjectSkillsDir = _path2.default.join(workspaceRoot, _chunk3JURXAL6cjs.PROJECT_DIR_NAME, "skills");
|
|
297
350
|
await this.addLocationWithAutoCopy(
|
|
298
351
|
claudeProjectSkillsDir,
|
|
299
352
|
"claude-project",
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
package_default
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-NOWCRKP2.js";
|
|
4
4
|
import {
|
|
5
5
|
showConfirm,
|
|
6
6
|
showModal
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-LOSXLH7P.js";
|
|
8
8
|
import {
|
|
9
9
|
AUTOHAND_PATHS
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-PG2JIU5M.js";
|
|
11
11
|
import {
|
|
12
12
|
t
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-SJQU2ZFR.js";
|
|
14
14
|
|
|
15
15
|
// src/commands/share.ts
|
|
16
16
|
import chalk from "chalk";
|
|
@@ -485,6 +485,7 @@ async function execute(_args, context) {
|
|
|
485
485
|
const client = getShareApiClient();
|
|
486
486
|
const deviceId = await client.getDeviceId();
|
|
487
487
|
const totalTokens = context.getTotalTokensUsed?.() ?? 0;
|
|
488
|
+
const tokenUsageStatus = context.getTokenUsageStatus?.() ?? "actual";
|
|
488
489
|
const duration = calculateDuration2(session.metadata.createdAt);
|
|
489
490
|
console.log();
|
|
490
491
|
console.log(chalk.bold("Session Summary"));
|
|
@@ -492,9 +493,9 @@ async function execute(_args, context) {
|
|
|
492
493
|
console.log(` Project: ${chalk.cyan(session.metadata.projectName)}`);
|
|
493
494
|
console.log(` Model: ${chalk.cyan(context.model)}`);
|
|
494
495
|
console.log(` Messages: ${chalk.cyan(messages.length)}`);
|
|
495
|
-
console.log(` Tokens: ${chalk.cyan(formatTokens(totalTokens))}`);
|
|
496
|
+
console.log(` Tokens: ${chalk.cyan(tokenUsageStatus === "actual" ? formatTokens(totalTokens) : "unavailable")}`);
|
|
496
497
|
console.log(
|
|
497
|
-
` Est. Cost: ${chalk.green(formatCost(totalTokens / 1e3 * 3e-3))}`
|
|
498
|
+
` Est. Cost: ${chalk.green(tokenUsageStatus === "actual" ? formatCost(totalTokens / 1e3 * 3e-3) : "unavailable")}`
|
|
498
499
|
);
|
|
499
500
|
console.log(` Duration: ${chalk.cyan(formatDuration(duration))}`);
|
|
500
501
|
console.log();
|
|
@@ -229,6 +229,48 @@ var HookManager = class {
|
|
|
229
229
|
case "subagent-stop":
|
|
230
230
|
value = context.subagentType ?? "";
|
|
231
231
|
break;
|
|
232
|
+
case "automode:start":
|
|
233
|
+
case "automode:iteration":
|
|
234
|
+
case "automode:checkpoint":
|
|
235
|
+
case "automode:pause":
|
|
236
|
+
case "automode:resume":
|
|
237
|
+
case "automode:cancel":
|
|
238
|
+
case "automode:complete":
|
|
239
|
+
case "automode:error":
|
|
240
|
+
value = [
|
|
241
|
+
context.automodePrompt,
|
|
242
|
+
context.automodeCancelReason,
|
|
243
|
+
context.automodeCheckpointCommit,
|
|
244
|
+
context.automodeIteration
|
|
245
|
+
].filter((part) => part !== void 0 && part !== null).join(" ");
|
|
246
|
+
break;
|
|
247
|
+
case "review:start":
|
|
248
|
+
case "review:end":
|
|
249
|
+
case "review:paused":
|
|
250
|
+
case "review:failed":
|
|
251
|
+
case "review:completed":
|
|
252
|
+
value = [
|
|
253
|
+
context.reviewPath,
|
|
254
|
+
context.reviewScope,
|
|
255
|
+
context.reviewInstructions,
|
|
256
|
+
context.reviewError
|
|
257
|
+
].filter((part) => part !== void 0 && part !== null).join(" ");
|
|
258
|
+
break;
|
|
259
|
+
case "goal-written:completed":
|
|
260
|
+
value = [context.goalObjective, context.goalSource].filter((part) => part !== void 0 && part !== null).join(" ");
|
|
261
|
+
break;
|
|
262
|
+
case "team-created":
|
|
263
|
+
case "team-shutdown":
|
|
264
|
+
value = context.teamName ?? "";
|
|
265
|
+
break;
|
|
266
|
+
case "teammate-spawned":
|
|
267
|
+
case "teammate-idle":
|
|
268
|
+
value = [context.teamName, context.teammateName, context.teammateAgentName].filter((part) => part !== void 0 && part !== null).join(" ");
|
|
269
|
+
break;
|
|
270
|
+
case "task-assigned":
|
|
271
|
+
case "task-completed":
|
|
272
|
+
value = [context.teamTaskId, context.teamTaskOwner, context.teamTaskResult].filter((part) => part !== void 0 && part !== null).join(" ");
|
|
273
|
+
break;
|
|
232
274
|
default:
|
|
233
275
|
return true;
|
|
234
276
|
}
|
|
@@ -259,6 +301,7 @@ var HookManager = class {
|
|
|
259
301
|
if (context.instruction) env.HOOK_INSTRUCTION = context.instruction;
|
|
260
302
|
if (context.mentionedFiles) env.HOOK_MENTIONED_FILES = JSON.stringify(context.mentionedFiles);
|
|
261
303
|
if (context.tokensUsed !== void 0) env.HOOK_TOKENS = String(context.tokensUsed);
|
|
304
|
+
if (context.tokensUsageStatus !== void 0) env.HOOK_TOKENS_USAGE_STATUS = context.tokensUsageStatus;
|
|
262
305
|
if (context.toolCallsCount !== void 0) env.HOOK_TOOL_CALLS_COUNT = String(context.toolCallsCount);
|
|
263
306
|
if (context.toolCallsInTurn !== void 0) env.HOOK_TURN_TOOL_CALLS = String(context.toolCallsInTurn);
|
|
264
307
|
if (context.turnDuration !== void 0) env.HOOK_TURN_DURATION = String(context.turnDuration);
|
|
@@ -287,6 +330,19 @@ var HookManager = class {
|
|
|
287
330
|
if (context.reviewError) env.HOOK_REVIEW_ERROR = context.reviewError;
|
|
288
331
|
if (context.reviewInstructions) env.HOOK_REVIEW_INSTRUCTIONS = context.reviewInstructions;
|
|
289
332
|
}
|
|
333
|
+
if (context.goalId) env.HOOK_GOAL_ID = context.goalId;
|
|
334
|
+
if (context.goalObjective) env.HOOK_GOAL_OBJECTIVE = context.goalObjective;
|
|
335
|
+
if (context.goalSource) env.HOOK_GOAL_SOURCE = context.goalSource;
|
|
336
|
+
if (context.teamName) env.HOOK_TEAM_NAME = context.teamName;
|
|
337
|
+
if (context.teammateName) env.HOOK_TEAMMATE_NAME = context.teammateName;
|
|
338
|
+
if (context.teammateAgentName) env.HOOK_TEAMMATE_AGENT = context.teammateAgentName;
|
|
339
|
+
if (context.teammatePid !== void 0) env.HOOK_TEAMMATE_PID = String(context.teammatePid);
|
|
340
|
+
if (context.teamTaskId) env.HOOK_TEAM_TASK_ID = context.teamTaskId;
|
|
341
|
+
if (context.teamTaskOwner) env.HOOK_TEAM_TASK_OWNER = context.teamTaskOwner;
|
|
342
|
+
if (context.teamTaskResult) env.HOOK_TEAM_TASK_RESULT = context.teamTaskResult;
|
|
343
|
+
if (context.teamMemberCount !== void 0) env.HOOK_TEAM_MEMBER_COUNT = String(context.teamMemberCount);
|
|
344
|
+
if (context.teamTasksCompleted !== void 0) env.HOOK_TEAM_TASKS_COMPLETED = String(context.teamTasksCompleted);
|
|
345
|
+
if (context.teamTasksTotal !== void 0) env.HOOK_TEAM_TASKS_TOTAL = String(context.teamTasksTotal);
|
|
290
346
|
if (context.additionalWorkspaces && context.additionalWorkspaces.length > 0) {
|
|
291
347
|
env.HOOK_ADDITIONAL_WORKSPACES = JSON.stringify(context.additionalWorkspaces);
|
|
292
348
|
}
|
|
@@ -314,6 +370,7 @@ var HookManager = class {
|
|
|
314
370
|
mentioned_files: context.mentionedFiles,
|
|
315
371
|
// Stop/response context
|
|
316
372
|
tokens_used: context.tokensUsed,
|
|
373
|
+
tokens_usage_status: context.tokensUsageStatus,
|
|
317
374
|
tool_calls_count: context.toolCallsCount,
|
|
318
375
|
turn_tool_calls: context.toolCallsInTurn,
|
|
319
376
|
turn_duration: context.turnDuration,
|
|
@@ -352,6 +409,21 @@ var HookManager = class {
|
|
|
352
409
|
review_scope: context.reviewScope,
|
|
353
410
|
review_instructions: context.reviewInstructions,
|
|
354
411
|
review_error: context.reviewError,
|
|
412
|
+
// Goal context
|
|
413
|
+
goal_id: context.goalId,
|
|
414
|
+
goal_objective: context.goalObjective,
|
|
415
|
+
goal_source: context.goalSource,
|
|
416
|
+
// Team context
|
|
417
|
+
team_name: context.teamName,
|
|
418
|
+
teammate_name: context.teammateName,
|
|
419
|
+
teammate_agent_name: context.teammateAgentName,
|
|
420
|
+
teammate_pid: context.teammatePid,
|
|
421
|
+
team_task_id: context.teamTaskId,
|
|
422
|
+
team_task_owner: context.teamTaskOwner,
|
|
423
|
+
team_task_result: context.teamTaskResult,
|
|
424
|
+
team_member_count: context.teamMemberCount,
|
|
425
|
+
team_tasks_completed: context.teamTasksCompleted,
|
|
426
|
+
team_tasks_total: context.teamTasksTotal,
|
|
355
427
|
// Multi-directory support
|
|
356
428
|
additional_workspaces: context.additionalWorkspaces
|
|
357
429
|
});
|
|
@@ -542,6 +614,11 @@ var HookManager = class {
|
|
|
542
614
|
"automode:cancel",
|
|
543
615
|
"automode:complete",
|
|
544
616
|
"automode:error",
|
|
617
|
+
// Learn events
|
|
618
|
+
"pre-learn",
|
|
619
|
+
"post-learn",
|
|
620
|
+
// Goal authoring events
|
|
621
|
+
"goal-written:completed",
|
|
545
622
|
// Review events
|
|
546
623
|
"review:start",
|
|
547
624
|
"review:end",
|
|
@@ -554,7 +631,14 @@ var HookManager = class {
|
|
|
554
631
|
"teammate-idle",
|
|
555
632
|
"task-assigned",
|
|
556
633
|
"task-completed",
|
|
557
|
-
"team-shutdown"
|
|
634
|
+
"team-shutdown",
|
|
635
|
+
// Mode events
|
|
636
|
+
"mode-change",
|
|
637
|
+
// Context lifecycle events
|
|
638
|
+
"context:compact",
|
|
639
|
+
"context:overflow",
|
|
640
|
+
"context:warning",
|
|
641
|
+
"context:critical"
|
|
558
642
|
];
|
|
559
643
|
const summary = {};
|
|
560
644
|
for (const event of events) {
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
// src/utils/asciiArt.ts
|
|
2
|
-
|
|
2
|
+
import stringWidth from "string-width";
|
|
3
|
+
var DEFAULT_TERMINAL_COLUMNS = 80;
|
|
4
|
+
var DETAILED_LOGO_LINES = [
|
|
3
5
|
"\u2880\u2874\u281B\u281B\u283B\u28F7\u2844\u2800\u28E0\u2876\u281F\u281B\u283B\u28F6\u2844\u2880\u28F4\u287E\u281B\u281B\u28BF\u28E6\u2800\u2880\u28F4\u281E\u281B\u281B\u2836\u2840",
|
|
4
6
|
"\u284E\u2800\u28B0\u28F6\u2846\u2808\u28FF\u28F4\u28FF\u2801\u28F4\u28F6\u2844\u2818\u28FF\u28FE\u284F\u2880\u28F6\u28E6\u2800\u28BB\u2847\u28FF\u2803\u28A0\u28F6\u2846\u2800\u28B9",
|
|
5
7
|
"\u28A7\u2800\u2818\u281B\u2803\u28A0\u287F\u2819\u28FF\u2840\u2819\u281B\u2803\u28F0\u287F\u28BB\u28E7\u2808\u281B\u281B\u2880\u28FE\u2807\u28BB\u28C6\u2808\u281B\u280B\u2800\u287C",
|
|
@@ -8,7 +10,19 @@ var ASCII_FRIEND = [
|
|
|
8
10
|
"\u287E\u2803\u28A0\u28E4\u2844\u2818\u28FF\u28E0\u28FF\u2801\u28E0\u28E4\u2844\u2839\u28F7\u28FC\u284F\u2880\u28E4\u28E4\u2808\u28BF\u2846\u28FE\u280F\u2880\u28E4\u28C4\u2808\u28BF",
|
|
9
11
|
"\u28A7\u2840\u2838\u283F\u2807\u2880\u28FF\u283A\u28FF\u2840\u283B\u283F\u2803\u28B0\u28FF\u28BF\u28C7\u2808\u283F\u283F\u2800\u28FC\u2847\u28BF\u28C7\u2818\u283F\u2807\u2800\u28F8",
|
|
10
12
|
"\u2808\u28BF\u28E6\u28E4\u28F4\u287F\u2803\u2800\u2819\u28B7\u28E6\u28E4\u28F6\u287F\u2801\u2808\u283B\u28F7\u28E4\u28E4\u287E\u281B\u2800\u2808\u28BF\u28E6\u28E4\u28E4\u2834\u2801"
|
|
11
|
-
]
|
|
13
|
+
];
|
|
14
|
+
var COMPACT_LOGO_LINES = [
|
|
15
|
+
" .--. .--. .--. .--.",
|
|
16
|
+
"(() ) (() ) (() ) (() )",
|
|
17
|
+
" '--' '--' '--' '--'",
|
|
18
|
+
" .--. .--. .--. .--.",
|
|
19
|
+
"(() ) (() ) (() ) (() )",
|
|
20
|
+
" '--' '--' '--' '--'"
|
|
21
|
+
];
|
|
22
|
+
var TINY_LOGO_LINES = [
|
|
23
|
+
"o o o o",
|
|
24
|
+
"o o o o"
|
|
25
|
+
];
|
|
12
26
|
var LOGO_LINES = [
|
|
13
27
|
"\u2880\u2874\u281B\u281B\u283B\u28F7\u2844\u2800\u28E0\u2876\u281F\u281B\u283B\u28F6\u2844\u2880\u28F4\u287E\u281B\u281B\u28BF\u28E6\u2800\u2880\u28F4\u281E\u281B\u281B\u2836\u2840 \u2588\u2588\u2588\u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588",
|
|
14
28
|
"\u284E\u2800\u28B0\u28F6\u2846\u2808\u28FF\u28F4\u28FF\u2801\u28F4\u28F6\u2844\u2818\u28FF\u28FE\u284F\u2880\u28F6\u28E6\u2800\u28BB\u2847\u28FF\u2803\u28A0\u28F6\u2846\u2800\u28B9 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588\u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588",
|
|
@@ -19,10 +33,40 @@ var LOGO_LINES = [
|
|
|
19
33
|
"\u28A7\u2840\u2838\u283F\u2807\u2880\u28FF\u283A\u28FF\u2840\u283B\u283F\u2803\u28B0\u28FF\u28BF\u28C7\u2808\u283F\u283F\u2800\u28FC\u2847\u28BF\u28C7\u2818\u283F\u2807\u2800\u28F8",
|
|
20
34
|
"\u2808\u28BF\u28E6\u28E4\u28F4\u287F\u2803\u2800\u2819\u28B7\u28E6\u28E4\u28F6\u287F\u2801\u2808\u283B\u28F7\u28E4\u28E4\u287E\u281B\u2800\u2808\u28BF\u28E6\u28E4\u28E4\u2834\u2801"
|
|
21
35
|
];
|
|
36
|
+
var ASCII_FRIEND = DETAILED_LOGO_LINES.join("\n");
|
|
37
|
+
function maxLineWidth(lines) {
|
|
38
|
+
return Math.max(...lines.map((line) => stringWidth(line)));
|
|
39
|
+
}
|
|
40
|
+
function normalizeColumns(columns) {
|
|
41
|
+
if (typeof columns !== "number" || !Number.isFinite(columns)) {
|
|
42
|
+
return DEFAULT_TERMINAL_COLUMNS;
|
|
43
|
+
}
|
|
44
|
+
return Math.max(1, Math.floor(columns));
|
|
45
|
+
}
|
|
46
|
+
function getTerminalColumns(output = process.stdout) {
|
|
47
|
+
return normalizeColumns(output.columns);
|
|
48
|
+
}
|
|
49
|
+
function renderAutohandLogo(options = {}) {
|
|
50
|
+
const columns = normalizeColumns(options.columns);
|
|
51
|
+
const candidates = [
|
|
52
|
+
...options.includeWordmark ? [{ lines: LOGO_LINES, minColumns: 120 }] : [],
|
|
53
|
+
{ lines: DETAILED_LOGO_LINES, minColumns: 64 },
|
|
54
|
+
{ lines: COMPACT_LOGO_LINES, minColumns: 24 },
|
|
55
|
+
{ lines: TINY_LOGO_LINES, minColumns: 7 }
|
|
56
|
+
];
|
|
57
|
+
const match = candidates.find(
|
|
58
|
+
(candidate) => columns >= candidate.minColumns && maxLineWidth(candidate.lines) <= columns
|
|
59
|
+
);
|
|
60
|
+
if (match) {
|
|
61
|
+
return match.lines.join("\n");
|
|
62
|
+
}
|
|
63
|
+
return columns >= "autohand".length ? "autohand" : "ah";
|
|
64
|
+
}
|
|
22
65
|
|
|
23
66
|
export {
|
|
24
67
|
ASCII_FRIEND,
|
|
25
|
-
|
|
68
|
+
getTerminalColumns,
|
|
69
|
+
renderAutohandLogo
|
|
26
70
|
};
|
|
27
71
|
/**
|
|
28
72
|
* @license
|