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,303 @@
|
|
|
1
|
+
// src/onboarding/agentsGenerator.ts
|
|
2
|
+
var AgentsGenerator = class {
|
|
3
|
+
/**
|
|
4
|
+
* Generate AGENTS.md content
|
|
5
|
+
*/
|
|
6
|
+
generateContent(info, options) {
|
|
7
|
+
const sections = [];
|
|
8
|
+
sections.push("# AGENTS.md");
|
|
9
|
+
sections.push("");
|
|
10
|
+
sections.push("This file helps Autohand understand how to work with this project.");
|
|
11
|
+
sections.push("");
|
|
12
|
+
sections.push(this.generateProjectOverview(info));
|
|
13
|
+
if (info.packageManager) {
|
|
14
|
+
sections.push(this.generateCommandsSection(info));
|
|
15
|
+
}
|
|
16
|
+
if (info.testFramework) {
|
|
17
|
+
sections.push(this.generateTestingSection(info));
|
|
18
|
+
}
|
|
19
|
+
if (info.framework) {
|
|
20
|
+
const frameworkSection = this.generateFrameworkSection(info);
|
|
21
|
+
if (frameworkSection) {
|
|
22
|
+
sections.push(frameworkSection);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
sections.push(this.generateInstructionSourcesSection());
|
|
26
|
+
sections.push(this.generateCodeStyleSection(info));
|
|
27
|
+
sections.push(this.generateConstraintsSection());
|
|
28
|
+
if (options?.customSections) {
|
|
29
|
+
for (const section of options.customSections) {
|
|
30
|
+
sections.push(`## ${section.title}`);
|
|
31
|
+
sections.push("");
|
|
32
|
+
sections.push(section.content);
|
|
33
|
+
sections.push("");
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return sections.join("\n");
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Generate project overview section
|
|
40
|
+
*/
|
|
41
|
+
generateProjectOverview(info) {
|
|
42
|
+
const lines = [];
|
|
43
|
+
lines.push("## Project Overview");
|
|
44
|
+
lines.push("");
|
|
45
|
+
if (info.language) {
|
|
46
|
+
lines.push(`- **Language**: ${info.language}`);
|
|
47
|
+
}
|
|
48
|
+
if (info.framework) {
|
|
49
|
+
lines.push(`- **Framework**: ${info.framework}`);
|
|
50
|
+
}
|
|
51
|
+
if (info.packageManager) {
|
|
52
|
+
lines.push(`- **Package Manager**: ${info.packageManager}`);
|
|
53
|
+
}
|
|
54
|
+
if (info.testFramework) {
|
|
55
|
+
lines.push(`- **Test Framework**: ${info.testFramework}`);
|
|
56
|
+
}
|
|
57
|
+
if (info.buildTool) {
|
|
58
|
+
lines.push(`- **Build Tool**: ${info.buildTool}`);
|
|
59
|
+
}
|
|
60
|
+
lines.push("");
|
|
61
|
+
return lines.join("\n");
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Generate commands section based on package manager
|
|
65
|
+
*/
|
|
66
|
+
generateCommandsSection(info) {
|
|
67
|
+
const lines = [];
|
|
68
|
+
lines.push("## Commands");
|
|
69
|
+
lines.push("");
|
|
70
|
+
const pm = info.packageManager;
|
|
71
|
+
if (info.language === "Rust") {
|
|
72
|
+
lines.push("- **Build**: `cargo build`");
|
|
73
|
+
lines.push("- **Build (release)**: `cargo build --release`");
|
|
74
|
+
lines.push("- **Run**: `cargo run`");
|
|
75
|
+
lines.push("- **Test**: `cargo test`");
|
|
76
|
+
lines.push("- **Check**: `cargo check`");
|
|
77
|
+
lines.push("- **Format**: `cargo fmt`");
|
|
78
|
+
lines.push("- **Lint**: `cargo clippy`");
|
|
79
|
+
} else if (info.language === "Go") {
|
|
80
|
+
lines.push("- **Build**: `go build`");
|
|
81
|
+
lines.push("- **Run**: `go run .`");
|
|
82
|
+
lines.push("- **Test**: `go test ./...`");
|
|
83
|
+
lines.push("- **Format**: `go fmt ./...`");
|
|
84
|
+
lines.push("- **Vet**: `go vet ./...`");
|
|
85
|
+
} else if (info.language === "Python") {
|
|
86
|
+
if (pm === "poetry") {
|
|
87
|
+
lines.push("- **Install**: `poetry install`");
|
|
88
|
+
lines.push("- **Run**: `poetry run python main.py`");
|
|
89
|
+
lines.push("- **Add dependency**: `poetry add <package>`");
|
|
90
|
+
if (info.testFramework) {
|
|
91
|
+
lines.push(`- **Test**: \`poetry run pytest\``);
|
|
92
|
+
}
|
|
93
|
+
} else if (pm === "pipenv") {
|
|
94
|
+
lines.push("- **Install**: `pipenv install`");
|
|
95
|
+
lines.push("- **Run**: `pipenv run python main.py`");
|
|
96
|
+
if (info.testFramework) {
|
|
97
|
+
lines.push(`- **Test**: \`pipenv run pytest\``);
|
|
98
|
+
}
|
|
99
|
+
} else {
|
|
100
|
+
lines.push("- **Install**: `pip install -r requirements.txt`");
|
|
101
|
+
lines.push("- **Run**: `python main.py`");
|
|
102
|
+
if (info.testFramework) {
|
|
103
|
+
lines.push(`- **Test**: \`pytest\``);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
} else {
|
|
107
|
+
const run = pm === "npm" ? "npm run" : pm;
|
|
108
|
+
const install = pm === "npm" ? "npm install" : `${pm} install`;
|
|
109
|
+
lines.push(`- **Install**: \`${install}\``);
|
|
110
|
+
lines.push(`- **Dev**: \`${run} dev\``);
|
|
111
|
+
lines.push(`- **Build**: \`${run} build\``);
|
|
112
|
+
if (info.testFramework) {
|
|
113
|
+
lines.push(`- **Test**: \`${run} test\``);
|
|
114
|
+
}
|
|
115
|
+
if (info.linter) {
|
|
116
|
+
lines.push(`- **Lint**: \`${run} lint\``);
|
|
117
|
+
}
|
|
118
|
+
if (info.formatter) {
|
|
119
|
+
lines.push(`- **Format**: \`${run} format\``);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
lines.push("");
|
|
123
|
+
return lines.join("\n");
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Generate testing section
|
|
127
|
+
*/
|
|
128
|
+
generateTestingSection(info) {
|
|
129
|
+
const lines = [];
|
|
130
|
+
lines.push("## Testing");
|
|
131
|
+
lines.push("");
|
|
132
|
+
lines.push(`This project uses **${info.testFramework}** for testing.`);
|
|
133
|
+
lines.push("");
|
|
134
|
+
lines.push("- Write tests for new features before implementation");
|
|
135
|
+
lines.push("- Run tests before committing changes");
|
|
136
|
+
lines.push("- Aim for good test coverage on critical paths");
|
|
137
|
+
if (info.testFramework === "Vitest" || info.testFramework === "Jest") {
|
|
138
|
+
lines.push("- Use `describe` and `it` blocks to organize tests");
|
|
139
|
+
lines.push("- Mock external dependencies when appropriate");
|
|
140
|
+
} else if (info.testFramework === "pytest") {
|
|
141
|
+
lines.push("- Use fixtures for shared test setup");
|
|
142
|
+
lines.push("- Use `pytest.mark` for test categorization");
|
|
143
|
+
} else if (info.testFramework === "Playwright" || info.testFramework === "Cypress") {
|
|
144
|
+
lines.push("- Write E2E tests for critical user flows");
|
|
145
|
+
lines.push("- Keep selectors stable and meaningful");
|
|
146
|
+
}
|
|
147
|
+
lines.push("");
|
|
148
|
+
return lines.join("\n");
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Generate framework-specific section
|
|
152
|
+
*/
|
|
153
|
+
generateFrameworkSection(info) {
|
|
154
|
+
const lines = [];
|
|
155
|
+
switch (info.framework) {
|
|
156
|
+
case "Next.js":
|
|
157
|
+
lines.push("## Next.js Guidelines");
|
|
158
|
+
lines.push("");
|
|
159
|
+
lines.push("- Use the App Router for new pages (`app/` directory)");
|
|
160
|
+
lines.push("- Prefer Server Components by default");
|
|
161
|
+
lines.push('- Use `"use client"` only when needed for interactivity');
|
|
162
|
+
lines.push("- Keep API routes in `app/api/`");
|
|
163
|
+
lines.push("- Use `next/image` for optimized images");
|
|
164
|
+
lines.push("- Use `next/link` for client-side navigation");
|
|
165
|
+
break;
|
|
166
|
+
case "React":
|
|
167
|
+
lines.push("## React Guidelines");
|
|
168
|
+
lines.push("");
|
|
169
|
+
lines.push("- Use functional components with hooks");
|
|
170
|
+
lines.push("- Keep components small and focused");
|
|
171
|
+
lines.push("- Use custom hooks to share logic");
|
|
172
|
+
lines.push("- Prefer composition over inheritance");
|
|
173
|
+
lines.push("- Use TypeScript interfaces for props");
|
|
174
|
+
break;
|
|
175
|
+
case "Vue":
|
|
176
|
+
lines.push("## Vue Guidelines");
|
|
177
|
+
lines.push("");
|
|
178
|
+
lines.push("- Use Composition API for new components");
|
|
179
|
+
lines.push("- Keep components in single-file format (.vue)");
|
|
180
|
+
lines.push("- Use composables to share logic");
|
|
181
|
+
break;
|
|
182
|
+
case "Express":
|
|
183
|
+
lines.push("## Express Guidelines");
|
|
184
|
+
lines.push("");
|
|
185
|
+
lines.push("- Use middleware for cross-cutting concerns");
|
|
186
|
+
lines.push("- Keep route handlers thin, delegate to services");
|
|
187
|
+
lines.push("- Use async/await with proper error handling");
|
|
188
|
+
lines.push("- Validate request input before processing");
|
|
189
|
+
break;
|
|
190
|
+
case "FastAPI":
|
|
191
|
+
lines.push("## FastAPI Guidelines");
|
|
192
|
+
lines.push("");
|
|
193
|
+
lines.push("- Use Pydantic models for request/response validation");
|
|
194
|
+
lines.push("- Use dependency injection for shared resources");
|
|
195
|
+
lines.push("- Keep endpoints in organized routers");
|
|
196
|
+
lines.push("- Use async functions for I/O operations");
|
|
197
|
+
break;
|
|
198
|
+
case "Django":
|
|
199
|
+
lines.push("## Django Guidelines");
|
|
200
|
+
lines.push("");
|
|
201
|
+
lines.push("- Follow Django project structure conventions");
|
|
202
|
+
lines.push("- Use class-based views where appropriate");
|
|
203
|
+
lines.push("- Keep business logic in models or services");
|
|
204
|
+
lines.push("- Use Django ORM for database operations");
|
|
205
|
+
break;
|
|
206
|
+
case "Flask":
|
|
207
|
+
lines.push("## Flask Guidelines");
|
|
208
|
+
lines.push("");
|
|
209
|
+
lines.push("- Use blueprints to organize routes");
|
|
210
|
+
lines.push("- Keep route handlers focused");
|
|
211
|
+
lines.push("- Use Flask extensions for common functionality");
|
|
212
|
+
break;
|
|
213
|
+
case "NestJS":
|
|
214
|
+
lines.push("## NestJS Guidelines");
|
|
215
|
+
lines.push("");
|
|
216
|
+
lines.push("- Follow module-based architecture");
|
|
217
|
+
lines.push("- Use dependency injection");
|
|
218
|
+
lines.push("- Use decorators for metadata");
|
|
219
|
+
lines.push("- Keep controllers thin, services fat");
|
|
220
|
+
break;
|
|
221
|
+
default:
|
|
222
|
+
return null;
|
|
223
|
+
}
|
|
224
|
+
lines.push("");
|
|
225
|
+
return lines.join("\n");
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Generate instruction sources section
|
|
229
|
+
*/
|
|
230
|
+
generateInstructionSourcesSection() {
|
|
231
|
+
const lines = [];
|
|
232
|
+
lines.push("## Instruction Sources");
|
|
233
|
+
lines.push("");
|
|
234
|
+
lines.push("- Check saved memories and preferences before implementation work.");
|
|
235
|
+
lines.push("- Follow this AGENTS.md file for repository-specific guidance.");
|
|
236
|
+
lines.push("- AGENTS.md takes precedence over CLAUDE.md when both files provide instructions.");
|
|
237
|
+
lines.push("");
|
|
238
|
+
return lines.join("\n");
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Generate code style section
|
|
242
|
+
*/
|
|
243
|
+
generateCodeStyleSection(info) {
|
|
244
|
+
const lines = [];
|
|
245
|
+
lines.push("## Code Style");
|
|
246
|
+
lines.push("");
|
|
247
|
+
if (info.language === "TypeScript") {
|
|
248
|
+
lines.push("- Use strict TypeScript settings");
|
|
249
|
+
lines.push("- Define types/interfaces for data structures");
|
|
250
|
+
lines.push("- Avoid `any` type - use `unknown` if type is truly unknown");
|
|
251
|
+
lines.push("- Use type inference where obvious");
|
|
252
|
+
} else if (info.language === "Python") {
|
|
253
|
+
lines.push("- Follow PEP 8 style guidelines");
|
|
254
|
+
lines.push("- Use type hints for function signatures");
|
|
255
|
+
lines.push("- Use docstrings for public functions");
|
|
256
|
+
} else if (info.language === "Rust") {
|
|
257
|
+
lines.push("- Follow Rust naming conventions (snake_case for functions)");
|
|
258
|
+
lines.push("- Use descriptive error types");
|
|
259
|
+
lines.push("- Prefer `Result` over panicking");
|
|
260
|
+
} else if (info.language === "Go") {
|
|
261
|
+
lines.push("- Follow Go idioms and conventions");
|
|
262
|
+
lines.push("- Use short variable names in small scopes");
|
|
263
|
+
lines.push("- Handle errors explicitly");
|
|
264
|
+
}
|
|
265
|
+
lines.push("- Follow existing patterns in the codebase");
|
|
266
|
+
lines.push("- Use meaningful variable and function names");
|
|
267
|
+
lines.push("- Add comments for complex logic");
|
|
268
|
+
lines.push("- Keep functions focused and small");
|
|
269
|
+
if (info.linter) {
|
|
270
|
+
lines.push(`- Run **${info.linter}** before committing`);
|
|
271
|
+
}
|
|
272
|
+
if (info.formatter) {
|
|
273
|
+
lines.push(`- Format code with **${info.formatter}**`);
|
|
274
|
+
}
|
|
275
|
+
lines.push("");
|
|
276
|
+
return lines.join("\n");
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Generate constraints section
|
|
280
|
+
*/
|
|
281
|
+
generateConstraintsSection() {
|
|
282
|
+
const lines = [];
|
|
283
|
+
lines.push("## Constraints");
|
|
284
|
+
lines.push("");
|
|
285
|
+
lines.push("- Do not modify files outside the project directory");
|
|
286
|
+
lines.push("- Ask before making breaking changes");
|
|
287
|
+
lines.push("- Prefer editing existing files over creating new ones");
|
|
288
|
+
lines.push("- Do not delete files without confirmation");
|
|
289
|
+
lines.push("- Keep dependencies minimal - avoid adding new ones without good reason");
|
|
290
|
+
lines.push("- Do not commit sensitive data (API keys, secrets, credentials)");
|
|
291
|
+
lines.push("");
|
|
292
|
+
return lines.join("\n");
|
|
293
|
+
}
|
|
294
|
+
};
|
|
295
|
+
|
|
296
|
+
export {
|
|
297
|
+
AgentsGenerator
|
|
298
|
+
};
|
|
299
|
+
/**
|
|
300
|
+
* @license
|
|
301
|
+
* Copyright 2025 Autohand AI LLC
|
|
302
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
303
|
+
*/
|
|
@@ -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; } var _class; var _class2;
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunk3JURXAL6cjs = require('./chunk-3JURXAL6.cjs');
|
|
4
4
|
|
|
5
5
|
// src/session/SessionManager.ts
|
|
6
6
|
var _fsextra = require('fs-extra'); var _fsextra2 = _interopRequireDefault(_fsextra);
|
|
@@ -11,7 +11,7 @@ var SessionManager = (_class = class {
|
|
|
11
11
|
__init() {this.currentSession = null}
|
|
12
12
|
__init2() {this.index = null}
|
|
13
13
|
constructor(baseDir) {;_class.prototype.__init.call(this);_class.prototype.__init2.call(this);
|
|
14
|
-
this.sessionsDir = _nullishCoalesce(baseDir, () => (
|
|
14
|
+
this.sessionsDir = _nullishCoalesce(baseDir, () => ( _chunk3JURXAL6cjs.AUTOHAND_PATHS.sessions));
|
|
15
15
|
}
|
|
16
16
|
async initialize() {
|
|
17
17
|
await _fsextra2.default.ensureDir(this.sessionsDir);
|
|
@@ -42,7 +42,8 @@ var SessionManager = (_class = class {
|
|
|
42
42
|
return session;
|
|
43
43
|
}
|
|
44
44
|
async loadSession(sessionId) {
|
|
45
|
-
const
|
|
45
|
+
const resolvedSessionId = await this.resolveSessionReference(sessionId);
|
|
46
|
+
const sessionDir = _path2.default.join(this.sessionsDir, resolvedSessionId);
|
|
46
47
|
if (!await _fsextra2.default.pathExists(sessionDir)) {
|
|
47
48
|
throw new Error(`Session not found: ${sessionId}`);
|
|
48
49
|
}
|
|
@@ -53,16 +54,82 @@ var SessionManager = (_class = class {
|
|
|
53
54
|
this.currentSession = session;
|
|
54
55
|
return session;
|
|
55
56
|
}
|
|
57
|
+
async resolveSessionReference(reference) {
|
|
58
|
+
const trimmed = reference.trim();
|
|
59
|
+
if (!trimmed) {
|
|
60
|
+
throw new Error("Session reference is required");
|
|
61
|
+
}
|
|
62
|
+
const asPath = _path2.default.resolve(trimmed);
|
|
63
|
+
if (await _fsextra2.default.pathExists(asPath)) {
|
|
64
|
+
const stat = await _fsextra2.default.stat(asPath);
|
|
65
|
+
const sessionDir = stat.isDirectory() ? asPath : _path2.default.dirname(asPath);
|
|
66
|
+
const metadataPath = _path2.default.join(sessionDir, "metadata.json");
|
|
67
|
+
if (await _fsextra2.default.pathExists(metadataPath)) {
|
|
68
|
+
const metadata = await _fsextra2.default.readJson(metadataPath);
|
|
69
|
+
return metadata.sessionId;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
const directDir = _path2.default.join(this.sessionsDir, trimmed);
|
|
73
|
+
if (await _fsextra2.default.pathExists(_path2.default.join(directDir, "metadata.json"))) {
|
|
74
|
+
return trimmed;
|
|
75
|
+
}
|
|
76
|
+
await this.loadIndex();
|
|
77
|
+
const candidates = _nullishCoalesce(_optionalChain([this, 'access', _ => _.index, 'optionalAccess', _2 => _2.sessions, 'access', _3 => _3.filter, 'call', _4 => _4((session) => session.id.startsWith(trimmed))]), () => ( []));
|
|
78
|
+
if (candidates.length === 1) {
|
|
79
|
+
return candidates[0].id;
|
|
80
|
+
}
|
|
81
|
+
if (candidates.length > 1) {
|
|
82
|
+
throw new Error(`Ambiguous session reference: ${reference}`);
|
|
83
|
+
}
|
|
84
|
+
throw new Error(`Session not found: ${reference}`);
|
|
85
|
+
}
|
|
86
|
+
async branchSession(sourceReference, options) {
|
|
87
|
+
const sourceSessionId = await this.resolveSessionReference(sourceReference);
|
|
88
|
+
const sourceSession = await this.loadSession(sourceSessionId);
|
|
89
|
+
const sourceMessages = sourceSession.getMessages();
|
|
90
|
+
const copiedMessages = selectBranchMessages(sourceMessages, options);
|
|
91
|
+
const createdAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
92
|
+
const sessionId = this.generateSessionId();
|
|
93
|
+
const sessionDir = _path2.default.join(this.sessionsDir, sessionId);
|
|
94
|
+
await _fsextra2.default.ensureDir(sessionDir);
|
|
95
|
+
const metadata = {
|
|
96
|
+
...sourceSession.metadata,
|
|
97
|
+
sessionId,
|
|
98
|
+
createdAt,
|
|
99
|
+
lastActiveAt: createdAt,
|
|
100
|
+
closedAt: void 0,
|
|
101
|
+
messageCount: copiedMessages.length,
|
|
102
|
+
status: "active",
|
|
103
|
+
exitCode: void 0,
|
|
104
|
+
branch: {
|
|
105
|
+
type: options.type,
|
|
106
|
+
sourceSessionId,
|
|
107
|
+
sourceMessageIndex: options.type === "fork" && copiedMessages.length > 0 ? copiedMessages.length - 1 : void 0,
|
|
108
|
+
sourceUserMessageOrdinal: options.type === "fork" ? options.userMessageOrdinal : void 0,
|
|
109
|
+
createdAt
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
const session = new Session(sessionDir, metadata);
|
|
113
|
+
await session.replaceMessages(copiedMessages);
|
|
114
|
+
const sourceState = sourceSession.getState();
|
|
115
|
+
if (sourceState) {
|
|
116
|
+
await session.updateState(sourceState);
|
|
117
|
+
}
|
|
118
|
+
await session.save();
|
|
119
|
+
this.currentSession = session;
|
|
120
|
+
await this.addToIndex(session.metadata);
|
|
121
|
+
return session;
|
|
122
|
+
}
|
|
56
123
|
async listSessions(filter) {
|
|
57
124
|
await this.loadIndex();
|
|
58
125
|
if (!this.index) return [];
|
|
59
126
|
let sessions = this.index.sessions;
|
|
60
|
-
if (_optionalChain([filter, 'optionalAccess',
|
|
127
|
+
if (_optionalChain([filter, 'optionalAccess', _5 => _5.project])) {
|
|
61
128
|
const projectPath = _path2.default.resolve(filter.project);
|
|
62
129
|
const sessionIds = this.index.byProject[projectPath] || [];
|
|
63
130
|
sessions = sessions.filter((s) => sessionIds.includes(s.id));
|
|
64
131
|
}
|
|
65
|
-
if (_optionalChain([filter, 'optionalAccess',
|
|
132
|
+
if (_optionalChain([filter, 'optionalAccess', _6 => _6.since])) {
|
|
66
133
|
sessions = sessions.filter((s) => new Date(s.createdAt) >= filter.since);
|
|
67
134
|
}
|
|
68
135
|
const fullMetadata = [];
|
|
@@ -105,7 +172,16 @@ var SessionManager = (_class = class {
|
|
|
105
172
|
async loadIndex() {
|
|
106
173
|
const indexPath = _path2.default.join(this.sessionsDir, "index.json");
|
|
107
174
|
if (await _fsextra2.default.pathExists(indexPath)) {
|
|
108
|
-
|
|
175
|
+
try {
|
|
176
|
+
this.index = await _fsextra2.default.readJson(indexPath);
|
|
177
|
+
} catch (error) {
|
|
178
|
+
const backupPath = `${indexPath}.corrupt-${Date.now()}`;
|
|
179
|
+
await _fsextra2.default.move(indexPath, backupPath, { overwrite: true });
|
|
180
|
+
const reason = error instanceof Error ? error.message : String(error);
|
|
181
|
+
console.warn(`Session index was corrupt and has been reset: ${reason}. Backup saved to ${backupPath}`);
|
|
182
|
+
this.index = { sessions: [], byProject: {} };
|
|
183
|
+
await this.saveIndex();
|
|
184
|
+
}
|
|
109
185
|
} else {
|
|
110
186
|
this.index = { sessions: [], byProject: {} };
|
|
111
187
|
}
|
|
@@ -121,7 +197,12 @@ var SessionManager = (_class = class {
|
|
|
121
197
|
id: metadata.sessionId,
|
|
122
198
|
projectPath: metadata.projectPath,
|
|
123
199
|
createdAt: metadata.createdAt,
|
|
124
|
-
summary: metadata.summary
|
|
200
|
+
summary: metadata.summary,
|
|
201
|
+
importedFrom: metadata.importedFrom ? {
|
|
202
|
+
source: metadata.importedFrom.source,
|
|
203
|
+
originalId: metadata.importedFrom.originalId
|
|
204
|
+
} : void 0,
|
|
205
|
+
branch: metadata.branch
|
|
125
206
|
});
|
|
126
207
|
if (!this.index.byProject[metadata.projectPath]) {
|
|
127
208
|
this.index.byProject[metadata.projectPath] = [];
|
|
@@ -134,10 +215,31 @@ var SessionManager = (_class = class {
|
|
|
134
215
|
const session = this.index.sessions.find((s) => s.id === metadata.sessionId);
|
|
135
216
|
if (session) {
|
|
136
217
|
session.summary = metadata.summary;
|
|
218
|
+
session.branch = metadata.branch;
|
|
137
219
|
}
|
|
138
220
|
await this.saveIndex();
|
|
139
221
|
}
|
|
140
222
|
}, _class);
|
|
223
|
+
function selectBranchMessages(messages, options) {
|
|
224
|
+
if (options.type === "clone" || options.userMessageOrdinal === void 0) {
|
|
225
|
+
return [...messages];
|
|
226
|
+
}
|
|
227
|
+
if (!Number.isInteger(options.userMessageOrdinal) || options.userMessageOrdinal < 1) {
|
|
228
|
+
throw new Error("Fork message must be a positive user-message number");
|
|
229
|
+
}
|
|
230
|
+
let seenUserMessages = 0;
|
|
231
|
+
const selected = [];
|
|
232
|
+
for (const message of messages) {
|
|
233
|
+
selected.push(message);
|
|
234
|
+
if (message.role === "user") {
|
|
235
|
+
seenUserMessages += 1;
|
|
236
|
+
if (seenUserMessages === options.userMessageOrdinal) {
|
|
237
|
+
return selected;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
throw new Error(`User message ${options.userMessageOrdinal} not found`);
|
|
242
|
+
}
|
|
141
243
|
var Session = (_class2 = class {
|
|
142
244
|
|
|
143
245
|
|
|
@@ -147,24 +249,39 @@ var Session = (_class2 = class {
|
|
|
147
249
|
this.sessionDir = sessionDir;
|
|
148
250
|
this.metadata = metadata;
|
|
149
251
|
}
|
|
252
|
+
async ensureSessionDir() {
|
|
253
|
+
await _fsextra2.default.ensureDir(this.sessionDir);
|
|
254
|
+
}
|
|
150
255
|
async append(message) {
|
|
151
256
|
this.messages.push(message);
|
|
152
257
|
this.metadata.messageCount = this.messages.length;
|
|
153
258
|
this.metadata.lastActiveAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
259
|
+
await this.ensureSessionDir();
|
|
154
260
|
const conversationPath = _path2.default.join(this.sessionDir, "conversation.jsonl");
|
|
155
261
|
await _fsextra2.default.appendFile(conversationPath, JSON.stringify(message) + "\n");
|
|
156
262
|
await this.save();
|
|
157
263
|
}
|
|
158
264
|
async appendTransient(message) {
|
|
265
|
+
await this.ensureSessionDir();
|
|
159
266
|
const conversationPath = _path2.default.join(this.sessionDir, "conversation.jsonl");
|
|
160
267
|
await _fsextra2.default.appendFile(conversationPath, JSON.stringify(message) + "\n");
|
|
161
268
|
}
|
|
269
|
+
async replaceMessages(messages) {
|
|
270
|
+
this.messages = [...messages];
|
|
271
|
+
this.metadata.messageCount = this.messages.length;
|
|
272
|
+
const conversationPath = _path2.default.join(this.sessionDir, "conversation.jsonl");
|
|
273
|
+
const content = this.messages.map((message) => JSON.stringify(message)).join("\n");
|
|
274
|
+
await _fsextra2.default.writeFile(conversationPath, content ? `${content}
|
|
275
|
+
` : "");
|
|
276
|
+
}
|
|
162
277
|
async updateState(state) {
|
|
163
278
|
this.state = state;
|
|
279
|
+
await this.ensureSessionDir();
|
|
164
280
|
const statePath = _path2.default.join(this.sessionDir, "state.json");
|
|
165
281
|
await _fsextra2.default.writeJson(statePath, state, { spaces: 2 });
|
|
166
282
|
}
|
|
167
283
|
async save() {
|
|
284
|
+
await this.ensureSessionDir();
|
|
168
285
|
const metadataPath = _path2.default.join(this.sessionDir, "metadata.json");
|
|
169
286
|
await _fsextra2.default.writeJson(metadataPath, this.metadata, { spaces: 2 });
|
|
170
287
|
}
|
|
@@ -4,7 +4,7 @@ import path from "path";
|
|
|
4
4
|
import fse from "fs-extra";
|
|
5
5
|
var metadata = {
|
|
6
6
|
command: "/review",
|
|
7
|
-
description: "
|
|
7
|
+
description: "review your current changes and find issues",
|
|
8
8
|
implemented: true
|
|
9
9
|
};
|
|
10
10
|
async function review(ctx, args = []) {
|
|
@@ -1,15 +1,19 @@
|
|
|
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 _chunkNVATU4V6cjs = require('./chunk-NVATU4V6.cjs');
|
|
4
|
+
|
|
5
|
+
|
|
3
6
|
var _chunkLJD7KR3Lcjs = require('./chunk-LJD7KR3L.cjs');
|
|
4
7
|
|
|
5
8
|
|
|
6
|
-
var _chunkIKUMVBCWcjs = require('./chunk-IKUMVBCW.cjs');
|
|
7
9
|
|
|
10
|
+
var _chunkSD3NTC7Dcjs = require('./chunk-SD3NTC7D.cjs');
|
|
8
11
|
|
|
9
|
-
var _chunkREMGR23Vcjs = require('./chunk-REMGR23V.cjs');
|
|
10
12
|
|
|
13
|
+
var _chunkCSUGNNJYcjs = require('./chunk-CSUGNNJY.cjs');
|
|
11
14
|
|
|
12
|
-
|
|
15
|
+
|
|
16
|
+
var _chunkRJCZLFHEcjs = require('./chunk-RJCZLFHE.cjs');
|
|
13
17
|
|
|
14
18
|
// src/commands/about.ts
|
|
15
19
|
var _child_process = require('child_process');
|
|
@@ -20,9 +24,9 @@ function getCommitFromAlphaVersion(version) {
|
|
|
20
24
|
}
|
|
21
25
|
function getGitCommit() {
|
|
22
26
|
if (true) {
|
|
23
|
-
return "
|
|
27
|
+
return "1d7b7b1";
|
|
24
28
|
}
|
|
25
|
-
const alphaCommit = getCommitFromAlphaVersion(
|
|
29
|
+
const alphaCommit = getCommitFromAlphaVersion(_chunkCSUGNNJYcjs.package_default.version);
|
|
26
30
|
if (alphaCommit) {
|
|
27
31
|
return alphaCommit;
|
|
28
32
|
}
|
|
@@ -34,33 +38,42 @@ function getGitCommit() {
|
|
|
34
38
|
}
|
|
35
39
|
function getVersionString() {
|
|
36
40
|
const commit = getGitCommit();
|
|
37
|
-
return commit !== "unknown" ? `${
|
|
41
|
+
return commit !== "unknown" ? `${_chunkCSUGNNJYcjs.package_default.version} (${commit})` : _chunkCSUGNNJYcjs.package_default.version;
|
|
38
42
|
}
|
|
39
|
-
async function about() {
|
|
43
|
+
async function about(ctx = {}) {
|
|
40
44
|
const theme = _chunkLJD7KR3Lcjs.createCommandTheme.call(void 0, );
|
|
45
|
+
const greetingName = _chunkNVATU4V6cjs.getUserGreetingName.call(void 0, ctx.config);
|
|
46
|
+
const terminalColumns = _nullishCoalesce(ctx.terminalColumns, () => ( _chunkSD3NTC7Dcjs.getTerminalColumns.call(void 0, process.stdout)));
|
|
41
47
|
const lines = [
|
|
42
|
-
theme.muted(
|
|
48
|
+
theme.muted(_chunkSD3NTC7Dcjs.renderAutohandLogo.call(void 0, { columns: terminalColumns })),
|
|
43
49
|
"",
|
|
44
|
-
theme.accent(`${
|
|
45
|
-
theme.muted(
|
|
50
|
+
theme.accent(`${_chunkRJCZLFHEcjs.t.call(void 0, "commands.about.title")} v${getVersionString()}`),
|
|
51
|
+
theme.muted(_chunkRJCZLFHEcjs.t.call(void 0, "commands.about.subtitle")),
|
|
46
52
|
""
|
|
47
53
|
];
|
|
54
|
+
if (greetingName) {
|
|
55
|
+
lines.push(theme.text(`Hey ${greetingName}, here are a few suggestions for what you could do next:`));
|
|
56
|
+
lines.push(theme.text(` \u2022 Review model, context, and account usage: ${theme.accent("/usage")}`));
|
|
57
|
+
lines.push(theme.text(` \u2022 Check current session and runtime status: ${theme.accent("/status")}`));
|
|
58
|
+
lines.push(theme.text(` \u2022 Discover experiments available to you: ${theme.accent("/experiments")}`));
|
|
59
|
+
lines.push("");
|
|
60
|
+
}
|
|
48
61
|
const websiteUrl = "https://autohand.ai";
|
|
49
62
|
const githubUrl = "https://github.com/autohandai/";
|
|
50
63
|
const docsUrl = "https://docs.autohand.ai";
|
|
51
64
|
const websiteLink = _terminallink2.default.call(void 0, theme.link("autohand.ai"), websiteUrl);
|
|
52
65
|
const githubLink = _terminallink2.default.call(void 0, theme.link("github.com/autohandai/"), githubUrl);
|
|
53
66
|
const docsLink = _terminallink2.default.call(void 0, theme.link("docs.autohand.ai"), docsUrl);
|
|
54
|
-
lines.push(`${theme.text("\u{1F310}")} ${theme.text(
|
|
55
|
-
lines.push(`${theme.text("\u{1F4E6}")} ${theme.text(
|
|
56
|
-
lines.push(`${theme.text("\u{1F4DA}")} ${theme.text(
|
|
67
|
+
lines.push(`${theme.text("\u{1F310}")} ${theme.text(_chunkRJCZLFHEcjs.t.call(void 0, "commands.about.website") + ":")} ${websiteLink}`);
|
|
68
|
+
lines.push(`${theme.text("\u{1F4E6}")} ${theme.text(_chunkRJCZLFHEcjs.t.call(void 0, "commands.about.github") + ":")} ${githubLink}`);
|
|
69
|
+
lines.push(`${theme.text("\u{1F4DA}")} ${theme.text(_chunkRJCZLFHEcjs.t.call(void 0, "commands.about.docs") + ":")} ${docsLink}`);
|
|
57
70
|
lines.push("");
|
|
58
|
-
lines.push(theme.text(`\u{1F4A1} ${
|
|
59
|
-
lines.push(theme.text(` \u2022 ${
|
|
60
|
-
lines.push(theme.text(` \u2022 ${
|
|
71
|
+
lines.push(theme.text(`\u{1F4A1} ${_chunkRJCZLFHEcjs.t.call(void 0, "commands.about.contribute")}`));
|
|
72
|
+
lines.push(theme.text(` \u2022 ${_chunkRJCZLFHEcjs.t.call(void 0, "commands.about.feedback")}: ${theme.accent("/feedback")}`));
|
|
73
|
+
lines.push(theme.text(` \u2022 ${_chunkRJCZLFHEcjs.t.call(void 0, "commands.about.submitPR")}: ${theme.accent("gh pr create")}`));
|
|
61
74
|
const issuesUrl = "https://github.com/autohandai/code-cli/issues";
|
|
62
75
|
const issuesLink = _terminallink2.default.call(void 0, theme.link("github.com/autohandai/code-cli/issues"), issuesUrl);
|
|
63
|
-
lines.push(theme.text(` \u2022 ${
|
|
76
|
+
lines.push(theme.text(` \u2022 ${_chunkRJCZLFHEcjs.t.call(void 0, "commands.about.reportIssues")}: ${issuesLink}`));
|
|
64
77
|
return lines.join("\n");
|
|
65
78
|
}
|
|
66
79
|
var metadata = {
|
|
@@ -2,27 +2,27 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var _chunkRJCZLFHEcjs = require('./chunk-RJCZLFHE.cjs');
|
|
6
6
|
|
|
7
7
|
// src/ui/i18n/I18nContext.tsx
|
|
8
8
|
var _react = require('react');
|
|
9
9
|
var _jsxruntime = require('react/jsx-runtime');
|
|
10
10
|
var defaultContextValue = {
|
|
11
|
-
t:
|
|
11
|
+
t: _chunkRJCZLFHEcjs.t,
|
|
12
12
|
locale: "en"
|
|
13
13
|
};
|
|
14
14
|
var I18nContext = _react.createContext.call(void 0, defaultContextValue);
|
|
15
15
|
var I18nProvider = ({ children }) => {
|
|
16
|
-
const [locale, setLocale] = _react.useState.call(void 0,
|
|
16
|
+
const [locale, setLocale] = _react.useState.call(void 0, _chunkRJCZLFHEcjs.getCurrentLocale.call(void 0, ));
|
|
17
17
|
_react.useEffect.call(void 0, () => {
|
|
18
|
-
const unsubscribe =
|
|
18
|
+
const unsubscribe = _chunkRJCZLFHEcjs.onLanguageChange.call(void 0, (newLocale) => {
|
|
19
19
|
setLocale(newLocale);
|
|
20
20
|
});
|
|
21
21
|
return unsubscribe;
|
|
22
22
|
}, []);
|
|
23
23
|
const value = _react.useMemo.call(void 0,
|
|
24
24
|
() => ({
|
|
25
|
-
t:
|
|
25
|
+
t: _chunkRJCZLFHEcjs.t,
|
|
26
26
|
locale
|
|
27
27
|
}),
|
|
28
28
|
[locale]
|