autohand-cli 0.9.1 → 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 +103 -79
- package/dist/AgentRegistry-BBQRODQC.cjs +18 -0
- package/dist/AgentRegistry-JBXZUPML.js +18 -0
- package/dist/{CommunitySkillsCache-ZACDPD4J.js → CommunitySkillsCache-CI7UN2DX.js} +2 -2
- package/dist/CommunitySkillsCache-XTQ6RMTA.cjs +8 -0
- package/dist/{HookManager-2S6AHOC3.js → HookManager-BELBPQQI.js} +1 -1
- package/dist/{HookManager-TVEQI5ZU.cjs → HookManager-ZL2CLAJW.cjs} +2 -2
- package/dist/{ImportWizard-AF2XL6DS.cjs → ImportWizard-U6CIJREW.cjs} +12 -12
- package/dist/{ImportWizard-AEBMAKXE.js → ImportWizard-VJFSWSUQ.js} +3 -3
- 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-SJPY3ONR.js → NVIDIAProvider-AFNJNWJM.js} +1 -1
- package/dist/NVIDIAProvider-L5GTYRCQ.cjs +14 -0
- package/dist/{PermissionManager-MT7KBNNR.js → PermissionManager-N2LDSOYF.js} +3 -3
- package/dist/PermissionManager-ZNURIEYR.cjs +11 -0
- package/dist/ProviderFactory-3BFS65V7.cjs +13 -0
- package/dist/{ProviderFactory-RB4RVAF6.js → ProviderFactory-XUT6BSGB.js} +4 -3
- package/dist/SessionManager-LGPQIA57.cjs +10 -0
- package/dist/{SessionManager-554PHVPC.js → SessionManager-OR4KDDDS.js} +2 -2
- package/dist/{SkillsRegistry-NHHMIUYJ.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/{about-3USFSGOH.js → about-OYVGQMJJ.js} +3 -3
- package/dist/{about-QR52U5DD.cjs → about-U2BH7HDR.cjs} +4 -4
- package/dist/{acp-5Y2W6OZP.js → acp-JWHGXZL5.js} +169 -103
- package/dist/{acp-GSYE75OB.cjs → acp-S37JOBCS.cjs} +184 -118
- package/dist/{actionExecutor-KHUU3Z3Q.cjs → actionExecutor-2QEPMELQ.cjs} +13 -13
- package/dist/{actionExecutor-PLQJZLZV.js → actionExecutor-6NCCORRB.js} +12 -12
- package/dist/add-dir-KFUHSIR2.cjs +11 -0
- package/dist/{add-dir-HCERJDBR.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-7GAQ25EK.js → agents-new-EVTGPTA4.js} +6 -6
- package/dist/{autoSkill-66PKCYTW.js → autoSkill-HEWKJ5JV.js} +2 -2
- package/dist/autoSkill-YL6PN6AV.cjs +20 -0
- package/dist/automode-4BJ7FNPL.cjs +10 -0
- package/dist/{automode-BUF3VGXU.js → automode-S4U7A7Q2.js} +2 -2
- package/dist/chrome-45ZXHL5N.cjs +22 -0
- package/dist/{chrome-Y3T7EIHG.js → chrome-BBSRVG6S.js} +2 -2
- package/dist/chrome-IFVZRHAT.cjs +50 -0
- package/dist/chrome-MYE6DNA2.js +22 -0
- package/dist/{chunk-45CHNQM6.cjs → chunk-24CEJYEG.cjs} +93 -31
- package/dist/{chunk-6JWCGQJU.cjs → chunk-255GIVM2.cjs} +6 -6
- package/dist/{chunk-D546G7DA.cjs → chunk-2BDSR2OW.cjs} +98 -75
- package/dist/{chunk-PGFLPURU.js → chunk-2BPIR7LA.js} +121 -4
- package/dist/{chunk-AOKXYGBQ.cjs → chunk-2NY7OHBF.cjs} +41 -26
- package/dist/chunk-2WUNHTXL.js +303 -0
- package/dist/{chunk-PQBYFEBL.cjs → chunk-34B6ZO6W.cjs} +124 -7
- package/dist/{chunk-5JTTM5SC.js → chunk-3BJN7GAH.js} +1 -1
- package/dist/{chunk-3UC6DMFI.cjs → chunk-3CAXECWJ.cjs} +15 -15
- package/dist/{chunk-YWH55BWK.cjs → chunk-3CBYUBZC.cjs} +6 -9
- package/dist/chunk-3DF3GZQ7.js +277 -0
- package/dist/{chunk-KASXKDF2.cjs → chunk-3JURXAL6.cjs} +58 -7
- package/dist/{chunk-JV5HVCHU.cjs → chunk-3KWAP2Y3.cjs} +88 -9
- package/dist/{chunk-WPE2XHVX.js → chunk-3MCK6UBL.js} +1 -1
- package/dist/{chunk-U2QUMKCB.js → chunk-3TH7IK4M.js} +62 -9
- package/dist/{chunk-YXM6SA7P.js → chunk-3V77OB3W.js} +3 -3
- package/dist/{chunk-MZN6JBRZ.cjs → chunk-3Y5UEK7K.cjs} +4 -4
- package/dist/{chunk-BP37FVBM.js → chunk-4GPPSBEZ.js} +3 -3
- package/dist/{chunk-4XVLNOFA.js → chunk-5CMBAJ6K.js} +20 -3
- package/dist/{chunk-PNIAIOMZ.cjs → chunk-5YRXFBYZ.cjs} +35 -6
- package/dist/chunk-6AC2TT26.js +156 -0
- package/dist/{chunk-PSAH4ZQB.cjs → chunk-6EIQ6A6U.cjs} +2 -2
- package/dist/{chunk-YQDI753V.js → chunk-6HSEDXVF.js} +4 -4
- package/dist/{chunk-O5GI6SR3.js → chunk-6NUXK62F.js} +1 -1
- package/dist/{chunk-HVCIB4SW.cjs → chunk-6TGCAPYH.cjs} +62 -9
- package/dist/{chunk-HZWU6IO3.js → chunk-6W3SZCSP.js} +2 -5
- package/dist/{chunk-Q3BS6FPM.js → chunk-73LV3DDZ.js} +4 -4
- package/dist/{chunk-ZNGRLCFQ.js → chunk-7BGGLIQF.js} +83 -1
- package/dist/{chunk-ZNYZB7XY.cjs → chunk-7EEK7CRR.cjs} +83 -1
- package/dist/{chunk-HK5A54AV.cjs → chunk-7TO3PDMV.cjs} +48 -4
- package/dist/chunk-7UU22RSH.cjs +277 -0
- package/dist/{chunk-XNIMSVS6.cjs → chunk-A3GAM6FM.cjs} +11 -11
- package/dist/{chunk-W5QLA6WP.cjs → chunk-A7DJU75T.cjs} +8 -8
- package/dist/{chunk-7XTUL7ZD.cjs → chunk-AAAO4ERQ.cjs} +9 -9
- package/dist/{chunk-M5DK524Z.js → chunk-AAJLMP57.js} +2 -2
- package/dist/chunk-ABR756QN.js +529 -0
- package/dist/{chunk-OIGYWOL6.js → chunk-APFGDIPD.js} +3 -1
- package/dist/{chunk-PTTZI4QZ.js → chunk-APQYRMYL.js} +4 -4
- package/dist/{chunk-CO2AADYU.cjs → chunk-AZKOIF2G.cjs} +55 -17
- package/dist/{chunk-P6SLT2F4.cjs → chunk-AZLHUPNC.cjs} +2 -2
- package/dist/chunk-B55VCYSQ.cjs +30 -0
- package/dist/{chunk-JMJRFSNJ.js → chunk-BLQUMSM3.js} +1 -1
- package/dist/{chunk-MGNXABSU.cjs → chunk-BXKPX6K4.cjs} +9 -9
- package/dist/{chunk-MQQH4XQH.cjs → chunk-C66FN2LP.cjs} +4 -4
- package/dist/{chunk-CECH6QQP.js → chunk-CH7KUFAS.js} +10 -10
- package/dist/{chunk-PIXQ2AVM.cjs → chunk-CILSXOPI.cjs} +17 -17
- package/dist/{chunk-IEPLQ47J.js → chunk-CM24K6ZT.js} +89 -12
- package/dist/chunk-CMEZ42F2.cjs +303 -0
- package/dist/{chunk-X5P6QQOB.cjs → chunk-CNQKIWIS.cjs} +100 -23
- package/dist/{chunk-AQ5PVHOC.cjs → chunk-CSUGNNJY.cjs} +4 -3
- package/dist/{chunk-QRQF3556.js → chunk-D6HB3H3L.js} +25 -10
- package/dist/{chunk-XZVDYC5U.js → chunk-D7AYKVKW.js} +2 -2
- package/dist/{chunk-3UHRCHKB.cjs → chunk-DLCXWOWT.cjs} +23 -23
- package/dist/{chunk-CK4HAHVY.cjs → chunk-DMM2BKSV.cjs} +118 -25
- package/dist/{chunk-SPQ7QIQ6.js → chunk-DW3DPV77.js} +1 -1
- package/dist/chunk-ECQD2QC3.cjs +33 -0
- package/dist/{chunk-SNDDZG5H.js → chunk-EEYOS3UC.js} +90 -70
- package/dist/{chunk-DGBPWODD.js → chunk-EF2EN5CR.js} +2 -2
- package/dist/{chunk-M7B7RRBK.cjs → chunk-EFXFURDY.cjs} +138 -51
- package/dist/chunk-EK34UZPB.cjs +40 -0
- package/dist/{chunk-CRTCZ4WL.cjs → chunk-FJR6EZLO.cjs} +3834 -2337
- package/dist/{chunk-TYBPTKFT.js → chunk-FPO7YNPQ.js} +1 -1
- package/dist/{chunk-X3TI5TJJ.js → chunk-FS4I6BNR.js} +1 -1
- package/dist/{chunk-WNJXIACY.js → chunk-FSJ2MNOC.js} +3 -3
- package/dist/{chunk-44ZWOBTI.js → chunk-GEHZMC4G.js} +12 -9
- package/dist/{chunk-Y5BDE24P.cjs → chunk-GO6C2RAR.cjs} +3 -0
- package/dist/{chunk-XW3XCK4E.cjs → chunk-GSMR6V36.cjs} +4 -4
- package/dist/{chunk-H426KOGY.js → chunk-GSZWATME.js} +1 -1
- package/dist/{chunk-S5JNQIGL.cjs → chunk-GYLGCR6F.cjs} +5 -5
- package/dist/{chunk-ONVYXTUT.cjs → chunk-H3OOWNYQ.cjs} +3 -3
- package/dist/{chunk-V5ELP2XE.js → chunk-H65446XW.js} +110 -15
- package/dist/{chunk-LANGD5CO.js → chunk-H7HXRRHK.js} +45 -1
- package/dist/{chunk-RBXBH6EB.cjs → chunk-HN2JTDN5.cjs} +17 -17
- package/dist/{chunk-SOVR7S3T.cjs → chunk-HNXUZ5OY.cjs} +2 -2
- package/dist/{chunk-AZ47LKD5.cjs → chunk-HOYT3E65.cjs} +3 -3
- package/dist/{chunk-P4FUTSVK.js → chunk-HTPY5ESD.js} +3 -3
- package/dist/{chunk-5SFV2NCY.cjs → chunk-HVLWH2AF.cjs} +10 -10
- package/dist/{chunk-VQHSYAPZ.cjs → chunk-HZTEU4W5.cjs} +62 -93
- package/dist/{chunk-4XFHP2SN.cjs → chunk-I5T7LPFP.cjs} +7 -7
- package/dist/{chunk-ZPLCAXJW.js → chunk-IB5CJXE7.js} +7 -7
- package/dist/{chunk-KM7R5YPS.cjs → chunk-INNXFLDR.cjs} +9 -6
- package/dist/{chunk-2ESQR35E.cjs → chunk-JFLEP3T7.cjs} +10 -10
- package/dist/chunk-JJGDOBFL.js +40 -0
- package/dist/{chunk-5A7ZL64N.js → chunk-JSU46T6K.js} +1 -1
- package/dist/{chunk-NB6M6ESM.js → chunk-K6WN6BT4.js} +1 -1
- package/dist/{chunk-QQ64HEHP.cjs → chunk-KIQH3SMT.cjs} +34 -31
- package/dist/{chunk-MANJ67D3.js → chunk-KPRXHIE2.js} +52 -83
- package/dist/{chunk-6HF6XSCC.js → chunk-LIO3RX2Z.js} +2 -2
- package/dist/{chunk-NZ3ZWLUW.js → chunk-LOSXLH7P.js} +109 -16
- package/dist/{chunk-NZ7GCK7Y.cjs → chunk-LSOR72PB.cjs} +23 -23
- package/dist/{chunk-6AYJCDTA.js → chunk-MA3AVDCC.js} +47 -9
- package/dist/{chunk-PZZMIYII.js → chunk-ME3S2WIR.js} +3 -3
- package/dist/{chunk-2IW5YFJ4.js → chunk-NC2I2M4P.js} +4 -4
- package/dist/{chunk-AE2ILW25.cjs → chunk-NC4A4LVC.cjs} +13 -13
- package/dist/{chunk-EEHWALXA.js → chunk-NGEK5FCJ.js} +85 -3
- package/dist/{chunk-MMKZSJUN.js → chunk-NKW6CHXQ.js} +1 -1
- package/dist/{chunk-JB3JCYBJ.js → chunk-NOWCRKP2.js} +4 -3
- package/dist/{chunk-3ZOOH44N.js → chunk-NUB2LMB6.js} +2 -2
- package/dist/chunk-O246MKIW.cjs +267 -0
- package/dist/{chunk-SRMGWMQO.js → chunk-OGFWL2PS.js} +1 -1
- package/dist/{chunk-YISPVAXO.cjs → chunk-ONNGAR6W.cjs} +340 -597
- package/dist/{chunk-7WAUCLLQ.js → chunk-OOFR6A62.js} +33 -4
- package/dist/{chunk-4E7SHPNQ.js → chunk-OZ7FHO7J.js} +2 -2
- package/dist/{chunk-NV6LCD2I.cjs → chunk-P5EWGUI2.cjs} +109 -27
- package/dist/{chunk-YC5OBZQU.js → chunk-P6BQJPAI.js} +41 -18
- package/dist/{chunk-SHRLFX6F.js → chunk-PG2JIU5M.js} +57 -6
- package/dist/{chunk-6OECOAK5.cjs → chunk-PI27G2ED.cjs} +25 -8
- package/dist/{chunk-TR6NECEZ.js → chunk-PI7LRPL6.js} +1 -1
- package/dist/{chunk-GAOPJ5S3.cjs → chunk-PMPEC5HN.cjs} +18 -15
- package/dist/{chunk-5GCQ5UMV.cjs → chunk-PYUP7AKY.cjs} +14 -14
- package/dist/{chunk-S5QKRA2V.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-26G7YGOW.js → chunk-QVXMSQOG.js} +84 -21
- package/dist/{chunk-SVVP4UUZ.cjs → chunk-R4UKBKDY.cjs} +11 -11
- package/dist/{chunk-HG3ZASBH.cjs → chunk-R75AWII3.cjs} +112 -17
- package/dist/{chunk-TE4SYTWR.cjs → chunk-RD5PLUIX.cjs} +8 -8
- package/dist/{chunk-FFHSCM5M.js → chunk-RGB34CV5.js} +3 -3
- package/dist/{chunk-SY2P3Z5W.cjs → chunk-RJCZLFHE.cjs} +96 -32
- package/dist/{chunk-22SCR3EV.cjs → chunk-RKWNM2BJ.cjs} +2 -2
- package/dist/{chunk-FBQJZKFX.js → chunk-RMVONICR.js} +3 -3
- package/dist/{chunk-PY73W5MQ.cjs → chunk-RPSYRJL7.cjs} +10 -4
- package/dist/{chunk-HXHE2KAO.js → chunk-RWKU2X7O.js} +7 -4
- package/dist/{chunk-NQZH5CR2.cjs → chunk-RZLEGVMH.cjs} +102 -5
- package/dist/{chunk-KMP6Y3LJ.js → chunk-S2L3Y677.js} +1 -1
- package/dist/{chunk-GSDV75A5.js → chunk-S7KVUIOS.js} +1 -1
- package/dist/{chunk-7PT646AL.cjs → chunk-SACJJ6NO.cjs} +5 -3
- package/dist/{chunk-LEZEWKPA.js → chunk-SJQU2ZFR.js} +96 -32
- package/dist/{chunk-65LRPW5W.js → chunk-SKAQKQFF.js} +12 -2
- package/dist/chunk-T4DXP5OP.js +30 -0
- package/dist/{chunk-EYHKL4QC.js → chunk-T6FTB6K2.js} +1 -1
- package/dist/{chunk-DNSD7DVJ.js → chunk-T6N6GRFT.js} +13 -10
- package/dist/{chunk-575PXZX7.js → chunk-TJFKA6A7.js} +82 -3
- package/dist/{chunk-HSWWM6AM.js → chunk-TJZUPS4Z.js} +34 -291
- package/dist/{chunk-DHUQZ53B.cjs → chunk-TLKHZ425.cjs} +2 -2
- package/dist/{chunk-VLGGMQUN.cjs → chunk-TQ24NLXO.cjs} +6 -6
- package/dist/{chunk-LUMV3DB2.js → chunk-TWBAU46X.js} +1 -1
- package/dist/{chunk-EA2MS25U.cjs → chunk-TZB5XADL.cjs} +4 -4
- package/dist/{chunk-U6PLSPMD.cjs → chunk-UAYXZXWU.cjs} +4 -4
- package/dist/{chunk-OV3T5MUH.cjs → chunk-UKBFNBDO.cjs} +11 -11
- package/dist/{chunk-SZD45IDG.js → chunk-UMJYX5KD.js} +101 -4
- package/dist/{chunk-B76FJKEJ.cjs → chunk-USKYTHDL.cjs} +69 -18
- package/dist/{chunk-NZQFKXM3.cjs → chunk-VAJUSZMC.cjs} +15 -15
- package/dist/{chunk-SDLY4X3G.js → chunk-VGQG4NBJ.js} +2 -2
- package/dist/{chunk-KWXGDSYT.js → chunk-VLUIVJ3J.js} +58 -7
- package/dist/{chunk-KJ26T7GM.cjs → chunk-VOBINVMV.cjs} +105 -42
- package/dist/{chunk-C5QIQQ37.js → chunk-VSHKKCSH.js} +16 -5
- package/dist/{chunk-L46OUKW5.cjs → chunk-VSZU3MGA.cjs} +28 -17
- package/dist/{chunk-YFXTE422.cjs → chunk-VWHAUB77.cjs} +8 -3
- package/dist/{chunk-UWZ4G3SQ.js → chunk-VXGYFX45.js} +4 -4
- package/dist/{chunk-C46B72VK.js → chunk-WH6YUQDB.js} +141 -54
- package/dist/{chunk-SFFEKZGC.js → chunk-WQ6TD55V.js} +2 -2
- package/dist/{chunk-7PJKTSRN.js → chunk-WQWECXTY.js} +3 -3
- package/dist/{chunk-DSSCERHI.cjs → chunk-WVDJUJH6.cjs} +2 -2
- package/dist/{chunk-JPFRI4L4.js → chunk-X24VIVDZ.js} +210 -26
- package/dist/{chunk-7IRQ7JEH.js → chunk-X4NRTLXD.js} +7 -1
- package/dist/{chunk-7MY4JHER.js → chunk-X53SHYCG.js} +2 -2
- package/dist/{chunk-RFUKZIJF.cjs → chunk-XB2Z4ZAK.cjs} +5 -5
- package/dist/{chunk-WJYFLQ7G.cjs → chunk-Y47OJGLB.cjs} +3 -3
- package/dist/{chunk-HC2Q6A3E.cjs → chunk-Y4MN27V3.cjs} +361 -177
- package/dist/{chunk-ZK6HOR62.js → chunk-YEHFYZFU.js} +7 -2
- package/dist/{chunk-FFBDRUO5.cjs → chunk-YICIUY23.cjs} +1 -1
- package/dist/{chunk-63ANVAOJ.cjs → chunk-YMXYC777.cjs} +3 -3
- package/dist/{chunk-X7XMITIL.cjs → chunk-Z3GRWK6O.cjs} +8 -8
- package/dist/{chunk-3ICORF7M.cjs → chunk-Z5GG2KSL.cjs} +4 -4
- package/dist/{chunk-I2ZK3AOD.js → chunk-ZER7DYQK.js} +2 -2
- package/dist/{chunk-V3SZLWEQ.cjs → chunk-ZFDXZEZJ.cjs} +11 -11
- package/dist/{chunk-QBYGMMDD.js → chunk-ZFV4HJA6.js} +66 -4
- package/dist/chunk-ZHMYTI5D.cjs +529 -0
- package/dist/{chunk-4567QNRB.js → chunk-ZLR2TFBC.js} +3 -0
- package/dist/{chunk-OCATAKXV.cjs → chunk-ZTWNU5QZ.cjs} +20 -20
- package/dist/{chunk-CCIDL4SA.js → chunk-ZVLVLDYN.js} +2915 -1418
- package/dist/clear-AJGXD2BB.cjs +12 -0
- package/dist/{clear-Y5TO3RZA.js → clear-HAHDSWKW.js} +3 -3
- package/dist/communityInstaller-IRR6M3N6.cjs +22 -0
- package/dist/{communityInstaller-RVL4STPS.js → communityInstaller-OLKEUGMX.js} +5 -5
- package/dist/completion-G7Z436TF.cjs +17 -0
- package/dist/{completion-SE3XYG74.js → completion-ZS3AXJ6A.js} +4 -4
- package/dist/{config-7KPHKFTP.js → config-OWYAQPCX.js} +5 -4
- package/dist/config-W2BHT2QE.cjs +22 -0
- package/dist/{constants-EJFAWJQI.js → constants-AS6K67AA.js} +5 -3
- package/dist/constants-B4W5BT7F.cjs +23 -0
- package/dist/{export-BJVIDZC4.js → export-5HIU3KMD.js} +4 -4
- 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-V4JF5TNJ.js → feature-OPNVMB2E.js} +2 -2
- 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-MLIROWKM.js → help-TCWD2IRH.js} +2 -2
- package/dist/{history-GQJ6RZD6.js → history-ATOR5OQV.js} +2 -2
- package/dist/history-UUSGX2AL.cjs +14 -0
- package/dist/{hooks-PPFHCF7T.js → hooks-R3Z5QKUP.js} +5 -5
- package/dist/hooks-RWM5UY67.cjs +18 -0
- package/dist/{i18n-Q7UZJRPL.js → i18n-4QI4TD4I.js} +1 -1
- package/dist/i18n-MFAEU5RV.cjs +33 -0
- package/dist/{ide-BUSVE54P.js → ide-6PBTCCUQ.js} +4 -4
- package/dist/ide-UE3G7NMQ.cjs +15 -0
- package/dist/{import-C7S6UJMW.cjs → import-2IG76KAN.cjs} +6 -4
- package/dist/{import-U47DXCA7.js → import-E47QL4DW.js} +2 -2
- package/dist/import-NQDNBFUL.cjs +10 -0
- package/dist/{import-3VBKI6BN.js → import-VQIHGJWS.js} +6 -4
- package/dist/index.cjs +444 -334
- package/dist/index.d.cts +38 -0
- package/dist/index.d.ts +38 -0
- package/dist/index.js +324 -214
- package/dist/init-DX3RDGDT.cjs +10 -0
- package/dist/{init-Q2O4R42R.js → init-Q54OAAFZ.js} +2 -2
- package/dist/{inputPrompt-3CFZDUBH.js → inputPrompt-V2VBDRM7.js} +2 -2
- 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-AH3MMUBU.js → mcp-EN73YFGZ.js} +8 -7
- package/dist/mcp-TADZCPJQ.cjs +22 -0
- package/dist/{mcp-install-IA4ZS2SV.cjs → mcp-install-2GKWWBAS.cjs} +14 -13
- package/dist/{mcp-install-222PCKSW.js → mcp-install-3TBTVSHW.js} +9 -8
- package/dist/memory-GRXFTDIN.cjs +10 -0
- package/dist/{memory-VB46T5H3.js → memory-K2P3CDCH.js} +2 -2
- package/dist/{model-SJJG64AM.js → model-DEG22OWA.js} +2 -2
- package/dist/model-OSD74T7Z.cjs +10 -0
- package/dist/new-4NWBOATU.cjs +12 -0
- package/dist/{new-ERZ5C6CN.js → new-KJAP2MB6.js} +3 -3
- package/dist/{onboarding-ZQXMPSMJ.js → onboarding-2U5WE2OA.js} +17 -14
- package/dist/onboarding-5DZFCO5Q.cjs +39 -0
- package/dist/permissions-KY5I6YQ3.cjs +10 -0
- package/dist/{permissions-7ACNFK7A.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-4DXUDKJN.js → registry-EZ4V4TUQ.js} +1339 -1
- package/dist/{registry-UEO3ETZ7.cjs → registry-LCWYI4IB.cjs} +1378 -40
- package/dist/resume-4VWJXARX.cjs +17 -0
- package/dist/{resume-XSXZMDMD.js → resume-TLHWWWFN.js} +5 -5
- package/dist/{review-QHP2KP4Q.js → review-CSK4IYTO.js} +1 -1
- package/dist/review-XLJEUH5K.cjs +9 -0
- package/dist/{rpc-XH7QLN4H.js → rpc-3DLQBDWU.js} +151 -124
- package/dist/{rpc-YF54T7JU.cjs → rpc-O36WUU3L.cjs} +169 -142
- 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-NJYHJOEL.js → sessions-VWMDIPOS.js} +2 -2
- package/dist/{settings-ZXUQH3DO.js → settings-FT2LZZUV.js} +11 -8
- 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-WFAGZ5PY.js → share-CGB6MAVJ.js} +6 -6
- package/dist/skills/builtin/code-reviewer/SKILL.md +64 -0
- package/dist/skills/builtin/goal-writer/SKILL.md +124 -0
- package/dist/{skills-NBTNDVAY.js → skills-7DKR3HRZ.js} +7 -7
- package/dist/{skills-OB6RDW7D.js → skills-BBBENOEY.js} +9 -9
- package/dist/skills-OQM7IHAF.cjs +29 -0
- package/dist/{skills-ZROBG3RZ.cjs → skills-RA2PKL63.cjs} +9 -9
- package/dist/{skills-install-ILX6QVEF.cjs → skills-install-D7K476SL.cjs} +15 -15
- package/dist/{skills-install-BHTIEMKH.js → skills-install-T4SOKJSL.js} +8 -8
- package/dist/{skills-new-YMRP2HNO.js → skills-new-S33NGEU3.js} +6 -6
- 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-OCJN4ZSO.js → sync-J6I2ZUKQ.js} +5 -3
- package/dist/{sync-7C25MOT2.js → sync-Z3LVSEEV.js} +8 -6
- package/dist/{teammate-D77B6QRT.cjs → teammate-EXR76PEQ.cjs} +5 -5
- package/dist/{teammate-EZCMHOIL.js → teammate-K4DAOFEQ.js} +5 -5
- package/dist/theme-MVQDSU47.js +23 -0
- package/dist/theme-QAKEYWJG.cjs +23 -0
- package/dist/ui/questionModal.cjs +5 -5
- package/dist/ui/questionModal.js +4 -4
- package/dist/{undo-GNUTFXCW.js → undo-5AU47JHF.js} +2 -2
- package/dist/undo-ME6WKUXZ.cjs +10 -0
- package/dist/{usage-QSTNSDAO.js → usage-QTKO2YMD.js} +6 -5
- package/dist/usage-TYNJKVER.cjs +25 -0
- package/package.json +4 -3
- package/dist/AgentRegistry-GOV7FN2O.js +0 -10
- package/dist/AgentRegistry-J2C6JBZ3.cjs +0 -10
- package/dist/CommunitySkillsCache-22BB3J6H.cjs +0 -8
- package/dist/LearnAdvisor-KKEQ5QCV.js +0 -9
- package/dist/LearnAdvisor-Q7RAYLPF.cjs +0 -9
- package/dist/MemoryManager-PMNAEZMB.cjs +0 -8
- package/dist/MemoryManager-QZRLTUB5.js +0 -8
- package/dist/NVIDIAProvider-C3FWQOBZ.cjs +0 -14
- package/dist/PermissionManager-URCNP5EC.cjs +0 -11
- package/dist/ProviderFactory-56N3ECE4.cjs +0 -12
- package/dist/SessionManager-2IZGWASQ.cjs +0 -10
- package/dist/SkillsRegistry-GMRVONOQ.cjs +0 -9
- package/dist/SubAgent-4GOR2FIJ.js +0 -13
- package/dist/SubAgent-ZJMDH4FI.cjs +0 -13
- package/dist/add-dir-BTAD5OZS.cjs +0 -11
- package/dist/agent-B3EVT7NN.cjs +0 -126
- package/dist/agent-SATQ3WZ3.js +0 -126
- package/dist/agents-44CRJGM7.cjs +0 -18
- package/dist/agents-NN4ZAJ7R.js +0 -18
- package/dist/agents-new-6D6G4QS6.cjs +0 -17
- package/dist/autoSkill-VQLGBELN.cjs +0 -20
- package/dist/automode-45DWV4TN.cjs +0 -10
- package/dist/chrome-Q2U73HZB.cjs +0 -50
- package/dist/chrome-Q54OALOK.cjs +0 -21
- package/dist/chrome-ZNJ46OYW.js +0 -21
- package/dist/chunk-JCUHCH37.cjs +0 -247
- package/dist/chunk-VKOXFT4L.cjs +0 -23
- package/dist/clear-QJXU25IF.cjs +0 -12
- package/dist/communityInstaller-LXMVKVAV.cjs +0 -22
- package/dist/completion-JX4T2ONW.cjs +0 -17
- package/dist/config-3224PRW4.cjs +0 -21
- package/dist/constants-MCCGUU5F.cjs +0 -21
- package/dist/export-KU4557HK.cjs +0 -15
- package/dist/feature-K3LG5IJP.cjs +0 -14
- package/dist/features-5OJTLKS7.js +0 -23
- package/dist/features-VCBJQXCX.cjs +0 -23
- package/dist/feedback-D4437VE4.js +0 -18
- package/dist/feedback-VZPEHGFY.cjs +0 -18
- package/dist/go-X4E6BCD6.js +0 -12
- package/dist/go-XREVFS5I.cjs +0 -12
- package/dist/goal-4M3J6JS2.cjs +0 -16
- package/dist/goal-EI66BV7W.js +0 -16
- package/dist/help-GGFS7WHY.cjs +0 -12
- package/dist/history-J4LUIOSI.cjs +0 -14
- package/dist/hooks-FSRIUS6A.cjs +0 -18
- package/dist/i18n-CI6VFXL5.cjs +0 -33
- package/dist/ide-YR27BPGM.cjs +0 -15
- package/dist/import-DBK4OCDF.cjs +0 -10
- package/dist/init-OXTYS72D.cjs +0 -10
- package/dist/inputPrompt-JMACL4EB.cjs +0 -90
- package/dist/language-EK3M6UBV.cjs +0 -22
- package/dist/language-Q3RUGGOW.js +0 -22
- package/dist/learn-3DSX7DYG.cjs +0 -23
- package/dist/learn-OPOH5L43.js +0 -23
- package/dist/login-GST7MWXJ.cjs +0 -27
- package/dist/login-Q7DZKAX4.js +0 -27
- package/dist/logout-2G7OUK7I.cjs +0 -24
- package/dist/logout-FNBBL2UI.js +0 -24
- package/dist/mcp-DW7R63IB.cjs +0 -21
- package/dist/memory-6NX3DAIY.cjs +0 -10
- package/dist/model-64NAELFS.cjs +0 -10
- package/dist/new-DU5SOOOY.cjs +0 -12
- package/dist/onboarding-2U2BV2KE.cjs +0 -36
- package/dist/permissions-GSNNV7RJ.cjs +0 -10
- package/dist/plan-XEJMOT55.cjs +0 -13
- package/dist/quit-WY6T267G.js +0 -10
- package/dist/quit-XIRE2KRE.cjs +0 -10
- package/dist/resume-RQZ3WXBP.cjs +0 -17
- package/dist/review-UWHWQHCB.cjs +0 -9
- package/dist/search-VXXFGZWU.cjs +0 -21
- package/dist/search-YAWGX7P7.js +0 -21
- package/dist/sessions-OSG3UJEZ.cjs +0 -10
- package/dist/settings-SO2UIGWV.cjs +0 -42
- package/dist/setup-KG7EGKF5.js +0 -30
- package/dist/setup-RSOPCQ57.cjs +0 -30
- package/dist/share-ZU3SGACF.cjs +0 -17
- package/dist/skills-KBVAQAD2.cjs +0 -29
- package/dist/skills-new-B45VQ2PP.cjs +0 -18
- package/dist/slashCommands-53VYIBJU.js +0 -105
- package/dist/slashCommands-BG2RGGZ6.cjs +0 -105
- package/dist/status-CQ2IUOVK.cjs +0 -24
- package/dist/status-E7IGNVPC.js +0 -24
- package/dist/sync-XRP46IVG.cjs +0 -40
- package/dist/sync-ZMFVE7T4.cjs +0 -22
- package/dist/theme-KKRDE6P7.cjs +0 -22
- package/dist/theme-XF7XIWBQ.js +0 -22
- package/dist/undo-U4KN7QQM.cjs +0 -10
- package/dist/usage-YDEMQBNQ.cjs +0 -24
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkRJCZLFHEcjs = require('./chunk-RJCZLFHE.cjs');
|
|
4
4
|
|
|
5
5
|
// src/commands/history.ts
|
|
6
6
|
var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
|
|
7
7
|
var metadata = {
|
|
8
8
|
command: "/history",
|
|
9
|
-
description:
|
|
9
|
+
description: _chunkRJCZLFHEcjs.t.call(void 0, "commands.history.title"),
|
|
10
10
|
implemented: true
|
|
11
11
|
};
|
|
12
12
|
function formatHistoryEntry(entry) {
|
|
@@ -72,14 +72,14 @@ async function history(ctx) {
|
|
|
72
72
|
const allSessions = await ctx.sessionManager.listSessions();
|
|
73
73
|
if (allSessions.length === 0) {
|
|
74
74
|
console.log(_chalk2.default.gray(`
|
|
75
|
-
${
|
|
75
|
+
${_chunkRJCZLFHEcjs.t.call(void 0, "commands.history.empty")}
|
|
76
76
|
`));
|
|
77
77
|
return null;
|
|
78
78
|
}
|
|
79
79
|
const entries = allSessions.map(toHistoryEntry);
|
|
80
80
|
const paginated = paginateHistory(entries, page, pageSize);
|
|
81
81
|
console.log(_chalk2.default.cyan(`
|
|
82
|
-
${
|
|
82
|
+
${_chunkRJCZLFHEcjs.t.call(void 0, "commands.history.title")}
|
|
83
83
|
`));
|
|
84
84
|
console.log(
|
|
85
85
|
_chalk2.default.bold(
|
|
@@ -95,14 +95,14 @@ ${_chunkSY2P3Z5Wcjs.t.call(void 0, "commands.history.title")}
|
|
|
95
95
|
console.log(
|
|
96
96
|
_chalk2.default.gray(
|
|
97
97
|
`
|
|
98
|
-
${
|
|
98
|
+
${_chunkRJCZLFHEcjs.t.call(void 0, "commands.history.showing", { page: paginated.currentPage, total: paginated.totalPages, count: paginated.totalItems })}`
|
|
99
99
|
)
|
|
100
100
|
);
|
|
101
101
|
}
|
|
102
102
|
if (paginated.totalPages > 1 && paginated.currentPage < paginated.totalPages) {
|
|
103
103
|
console.log(_chalk2.default.gray(`Use /history ${paginated.currentPage + 1} for next page`));
|
|
104
104
|
}
|
|
105
|
-
console.log(_chalk2.default.gray(`${
|
|
105
|
+
console.log(_chalk2.default.gray(`${_chunkRJCZLFHEcjs.t.call(void 0, "commands.history.resumeHint")}
|
|
106
106
|
`));
|
|
107
107
|
return null;
|
|
108
108
|
} catch (error) {
|
|
@@ -219,7 +219,7 @@ var PlanModeManager = class extends EventEmitter {
|
|
|
219
219
|
// src/commands/plan.ts
|
|
220
220
|
var metadata = {
|
|
221
221
|
command: "/plan",
|
|
222
|
-
description: "
|
|
222
|
+
description: "plan and break down a complex task",
|
|
223
223
|
implemented: true
|
|
224
224
|
};
|
|
225
225
|
var planModeManager = null;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunk3JURXAL6cjs = require('./chunk-3JURXAL6.cjs');
|
|
4
4
|
|
|
5
5
|
// src/skills/autoSkill.ts
|
|
6
6
|
var _fsextra = require('fs-extra'); var _fsextra2 = _interopRequireDefault(_fsextra);
|
|
@@ -440,8 +440,8 @@ async function runAutoSkillGeneration(workspaceRoot, llm) {
|
|
|
440
440
|
console.log(_chalk2.default.gray(`Detected: ${detected}`));
|
|
441
441
|
console.log(_chalk2.default.gray(`Platform: ${analysis.platform}`));
|
|
442
442
|
console.log(_chalk2.default.cyan("Generating targeted skill via LearnAdvisor..."));
|
|
443
|
-
const { LearnAdvisor } = await Promise.resolve().then(() => _interopRequireWildcard(require("./LearnAdvisor-
|
|
444
|
-
const { computeProjectHash, injectGeneratedMetadata } = await Promise.resolve().then(() => _interopRequireWildcard(require("./communityInstaller-
|
|
443
|
+
const { LearnAdvisor } = await Promise.resolve().then(() => _interopRequireWildcard(require("./LearnAdvisor-LAURA3IB.cjs")));
|
|
444
|
+
const { computeProjectHash, injectGeneratedMetadata } = await Promise.resolve().then(() => _interopRequireWildcard(require("./communityInstaller-IRR6M3N6.cjs")));
|
|
445
445
|
const advisor = new LearnAdvisor(llm);
|
|
446
446
|
const generated = await advisor.generateSkill(analysis, null, []);
|
|
447
447
|
if (!generated) {
|
|
@@ -449,7 +449,7 @@ async function runAutoSkillGeneration(workspaceRoot, llm) {
|
|
|
449
449
|
result.error = "No skills generated";
|
|
450
450
|
return result;
|
|
451
451
|
}
|
|
452
|
-
const skillsDir = _path2.default.join(workspaceRoot,
|
|
452
|
+
const skillsDir = _path2.default.join(workspaceRoot, _chunk3JURXAL6cjs.PROJECT_DIR_NAME, "skills");
|
|
453
453
|
const projectHash = computeProjectHash(analysis);
|
|
454
454
|
let frontmatter = `---
|
|
455
455
|
name: ${generated.name}
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
var _chunkDA7NBAJKcjs = require('./chunk-DA7NBAJK.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunkVWHAUB77cjs = require('./chunk-VWHAUB77.cjs');
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
var
|
|
9
|
+
var _chunkRJCZLFHEcjs = require('./chunk-RJCZLFHE.cjs');
|
|
10
10
|
|
|
11
11
|
// src/commands/new.ts
|
|
12
12
|
var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
|
|
@@ -17,7 +17,7 @@ async function newConversation(ctx) {
|
|
|
17
17
|
});
|
|
18
18
|
}
|
|
19
19
|
const conversationHistory = _chunkDA7NBAJKcjs.ConversationManager.getInstance().history();
|
|
20
|
-
const saved = await
|
|
20
|
+
const saved = await _chunkVWHAUB77cjs.extractAndSaveSessionMemories.call(void 0, {
|
|
21
21
|
llm: ctx.llm,
|
|
22
22
|
memoryManager: ctx.memoryManager,
|
|
23
23
|
conversationHistory,
|
|
@@ -42,7 +42,7 @@ async function newConversation(ctx) {
|
|
|
42
42
|
)
|
|
43
43
|
);
|
|
44
44
|
} else {
|
|
45
|
-
console.log(_chalk2.default.cyan(
|
|
45
|
+
console.log(_chalk2.default.cyan(_chunkRJCZLFHEcjs.t.call(void 0, "commands.new.cleared")));
|
|
46
46
|
}
|
|
47
47
|
console.log();
|
|
48
48
|
return null;
|
|
@@ -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(); } } async function _asyncNullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return await 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/browser/chrome.ts
|
|
6
6
|
var _crypto = require('crypto'); var _crypto2 = _interopRequireDefault(_crypto);
|
|
@@ -15,13 +15,13 @@ var CHROME_NATIVE_HOST_NAME = "ai.autohand.rpc";
|
|
|
15
15
|
var DEFAULT_CHROME_INSTALL_URL = "https://autohand.ai/chrome/installed";
|
|
16
16
|
var DEFAULT_HANDOFF_TTL_MS = 10 * 60 * 1e3;
|
|
17
17
|
var ALL_BROWSERS = ["chrome", "chromium", "brave", "edge"];
|
|
18
|
-
function getChromeHome(homeDir =
|
|
18
|
+
function getChromeHome(homeDir = _chunk3JURXAL6cjs.AUTOHAND_HOME) {
|
|
19
19
|
return _path2.default.join(homeDir, "chrome");
|
|
20
20
|
}
|
|
21
|
-
function getBrowserDataRoot(homeDir =
|
|
21
|
+
function getBrowserDataRoot(homeDir = _chunk3JURXAL6cjs.AUTOHAND_HOME) {
|
|
22
22
|
return _path2.default.join(getChromeHome(homeDir), "native-host");
|
|
23
23
|
}
|
|
24
|
-
function getHandoffDir(homeDir =
|
|
24
|
+
function getHandoffDir(homeDir = _chunk3JURXAL6cjs.AUTOHAND_HOME) {
|
|
25
25
|
return _path2.default.join(getChromeHome(homeDir), "handoffs");
|
|
26
26
|
}
|
|
27
27
|
function jsString(value) {
|
|
@@ -213,7 +213,7 @@ function resolveCliLaunchSpec(cliPath) {
|
|
|
213
213
|
}
|
|
214
214
|
return { command: "autohand", args: [] };
|
|
215
215
|
}
|
|
216
|
-
function getManifestTarget(browser, platform = process.platform, homeDir =
|
|
216
|
+
function getManifestTarget(browser, platform = process.platform, homeDir = _chunk3JURXAL6cjs.AUTOHAND_HOME) {
|
|
217
217
|
const hostName = CHROME_NATIVE_HOST_NAME;
|
|
218
218
|
const manifestPath = _path2.default.join(getBrowserDataRoot(homeDir), `${browser}.json`);
|
|
219
219
|
if (platform === "darwin") {
|
|
@@ -452,7 +452,7 @@ function shutdown() {
|
|
|
452
452
|
`;
|
|
453
453
|
}
|
|
454
454
|
async function installNativeHost(options) {
|
|
455
|
-
const homeDir = _nullishCoalesce(options.homeDir, () => (
|
|
455
|
+
const homeDir = _nullishCoalesce(options.homeDir, () => ( _chunk3JURXAL6cjs.AUTOHAND_HOME));
|
|
456
456
|
const browsers = _optionalChain([options, 'access', _2 => _2.browsers, 'optionalAccess', _3 => _3.length]) ? options.browsers : [...ALL_BROWSERS];
|
|
457
457
|
const hostScriptPath = _path2.default.join(getBrowserDataRoot(homeDir), "host.js");
|
|
458
458
|
await ensureDir(_path2.default.dirname(hostScriptPath));
|
|
@@ -488,7 +488,7 @@ async function installNativeHost(options) {
|
|
|
488
488
|
return { hostScriptPath, targets };
|
|
489
489
|
}
|
|
490
490
|
async function ensureNativeHostInstalled(options) {
|
|
491
|
-
const homeDir =
|
|
491
|
+
const homeDir = _chunk3JURXAL6cjs.AUTOHAND_HOME;
|
|
492
492
|
const chromeManifest = getManifestTarget("chrome", process.platform, homeDir);
|
|
493
493
|
const expectedExtensionIds = [_optionalChain([options, 'optionalAccess', _7 => _7.extensionId])].filter((id) => Boolean(id));
|
|
494
494
|
const expectedAllowedOrigins = expectedExtensionIds.map((extensionId) => `chrome-extension://${extensionId}/`);
|
|
@@ -522,7 +522,7 @@ async function ensureNativeHostInstalled(options) {
|
|
|
522
522
|
});
|
|
523
523
|
}
|
|
524
524
|
async function createBrowserHandoff(options) {
|
|
525
|
-
const homeDir = _nullishCoalesce(options.homeDir, () => (
|
|
525
|
+
const homeDir = _nullishCoalesce(options.homeDir, () => ( _chunk3JURXAL6cjs.AUTOHAND_HOME));
|
|
526
526
|
const token = _crypto2.default.randomUUID();
|
|
527
527
|
const createdAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
528
528
|
const expiresAt = new Date(Date.now() + DEFAULT_HANDOFF_TTL_MS).toISOString();
|
|
@@ -546,7 +546,7 @@ async function createBrowserHandoff(options) {
|
|
|
546
546
|
})
|
|
547
547
|
};
|
|
548
548
|
}
|
|
549
|
-
async function hasActiveHandoff(homeDir =
|
|
549
|
+
async function hasActiveHandoff(homeDir = _chunk3JURXAL6cjs.AUTOHAND_HOME) {
|
|
550
550
|
const handoffDir = getHandoffDir(homeDir);
|
|
551
551
|
if (!await pathExists(handoffDir)) return false;
|
|
552
552
|
const entries = await _fsextra2.default.readdir(handoffDir);
|
|
@@ -560,7 +560,7 @@ async function hasActiveHandoff(homeDir = _chunkKASXKDF2cjs.AUTOHAND_HOME) {
|
|
|
560
560
|
}
|
|
561
561
|
return false;
|
|
562
562
|
}
|
|
563
|
-
async function attachBrowserHandoff(token, homeDir =
|
|
563
|
+
async function attachBrowserHandoff(token, homeDir = _chunk3JURXAL6cjs.AUTOHAND_HOME) {
|
|
564
564
|
const handoffPath = _path2.default.join(getHandoffDir(homeDir), `${token}.json`);
|
|
565
565
|
if (!await pathExists(handoffPath)) {
|
|
566
566
|
return null;
|
|
@@ -573,7 +573,7 @@ async function attachBrowserHandoff(token, homeDir = _chunkKASXKDF2cjs.AUTOHAND_
|
|
|
573
573
|
await remove(handoffPath);
|
|
574
574
|
return record;
|
|
575
575
|
}
|
|
576
|
-
async function attachLatestBrowserHandoff(homeDir =
|
|
576
|
+
async function attachLatestBrowserHandoff(homeDir = _chunk3JURXAL6cjs.AUTOHAND_HOME) {
|
|
577
577
|
const handoffDir = getHandoffDir(homeDir);
|
|
578
578
|
if (!await pathExists(handoffDir)) {
|
|
579
579
|
return null;
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
} from "./chunk-HTU4W3GB.js";
|
|
6
6
|
import {
|
|
7
7
|
PROJECT_DIR_NAME
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-PG2JIU5M.js";
|
|
9
9
|
|
|
10
10
|
// src/goals/GoalManager.ts
|
|
11
11
|
import crypto from "crypto";
|
|
@@ -86,6 +86,14 @@ var GoalManager = class {
|
|
|
86
86
|
await this.writeSnapshot(next);
|
|
87
87
|
return result(next, true, snapshot.goal?.status === "complete" ? "Goal created; replaced completed goal." : "Goal created.");
|
|
88
88
|
}
|
|
89
|
+
async createOrQueueGoal(input) {
|
|
90
|
+
const snapshot = await this.readSnapshot();
|
|
91
|
+
const current = snapshot.goal ? this.withLiveElapsed(snapshot.goal) : null;
|
|
92
|
+
if (current && current.status !== "complete" && current.status !== "budgetLimited") {
|
|
93
|
+
return this.enqueueGoal(input);
|
|
94
|
+
}
|
|
95
|
+
return this.createGoal(input);
|
|
96
|
+
}
|
|
89
97
|
async updateGoal(input) {
|
|
90
98
|
const snapshot = await this.readSnapshot();
|
|
91
99
|
const current = snapshot.goal ? this.withLiveElapsed(snapshot.goal) : null;
|
|
@@ -135,6 +143,38 @@ var GoalManager = class {
|
|
|
135
143
|
return result(snapshot, false, "Cannot resume: budget is exhausted. Raise the budget or clear the goal before resuming.");
|
|
136
144
|
}
|
|
137
145
|
if (changes.length === 0) return result(snapshot, false, "No goal updates were provided.");
|
|
146
|
+
if (next.status === "complete") {
|
|
147
|
+
if (current.status === "complete") return result({ ...snapshot, goal: current }, false, "Goal is already complete.");
|
|
148
|
+
const completedGoal = buildCompletedGoal(next, Date.now());
|
|
149
|
+
const completedRun = appendCompletedGoal(snapshot.completed, completedGoal);
|
|
150
|
+
const nextQueued = snapshot.queue[0];
|
|
151
|
+
if (nextQueued) {
|
|
152
|
+
const started = await this.startQueuedGoalFromSnapshot({
|
|
153
|
+
...snapshot,
|
|
154
|
+
goal: next,
|
|
155
|
+
completed: completedRun
|
|
156
|
+
}, nextQueued);
|
|
157
|
+
if (!started.ok) return started;
|
|
158
|
+
return {
|
|
159
|
+
...started,
|
|
160
|
+
message: "Goal completed. Started next queued goal.",
|
|
161
|
+
completed: completedGoal,
|
|
162
|
+
completedRun
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
next = { ...next, updatedAt: Date.now() };
|
|
166
|
+
const updated2 = {
|
|
167
|
+
...snapshot,
|
|
168
|
+
goal: next,
|
|
169
|
+
completed: completedRun,
|
|
170
|
+
updatedAt: next.updatedAt
|
|
171
|
+
};
|
|
172
|
+
await this.writeSnapshot(updated2);
|
|
173
|
+
return result(updated2, true, formatAllCompleteMessage(completedRun), {
|
|
174
|
+
completed: completedGoal,
|
|
175
|
+
completedRun
|
|
176
|
+
});
|
|
177
|
+
}
|
|
138
178
|
next = { ...next, updatedAt: Date.now() };
|
|
139
179
|
const updated = { ...snapshot, goal: next, updatedAt: next.updatedAt };
|
|
140
180
|
await this.writeSnapshot(updated);
|
|
@@ -199,6 +239,14 @@ var GoalManager = class {
|
|
|
199
239
|
}
|
|
200
240
|
const nextQueued = snapshot.queue[0];
|
|
201
241
|
if (!nextQueued) return result({ ...snapshot, goal: current }, false, "No queued goals.");
|
|
242
|
+
const snapshotWithTerminalHistory = current && (current.status === "complete" || current.status === "budgetLimited") ? {
|
|
243
|
+
...snapshot,
|
|
244
|
+
goal: current,
|
|
245
|
+
completed: appendCompletedGoal(snapshot.completed, buildCompletedGoal(current, Date.now()))
|
|
246
|
+
} : { ...snapshot, goal: current };
|
|
247
|
+
return this.startQueuedGoalFromSnapshot(snapshotWithTerminalHistory, nextQueued);
|
|
248
|
+
}
|
|
249
|
+
async startQueuedGoalFromSnapshot(snapshot, nextQueued) {
|
|
202
250
|
let objective = nextQueued.objective;
|
|
203
251
|
if (nextQueued.template) {
|
|
204
252
|
const resolved = await resolveGoalTemplateByName(this.workspaceRoot, nextQueued.template, nextQueued.templateFlags ?? {}, nextQueued.templateArgs ?? "");
|
|
@@ -281,6 +329,10 @@ var GoalManager = class {
|
|
|
281
329
|
lines.push(`${index + 1}. [${item.queueId}] ${truncate(item.objective, 120)}`);
|
|
282
330
|
});
|
|
283
331
|
}
|
|
332
|
+
if (snapshot.completed.length > 0) {
|
|
333
|
+
lines.push("");
|
|
334
|
+
lines.push(formatCompletedSummary(snapshot.completed));
|
|
335
|
+
}
|
|
284
336
|
return lines.join("\n");
|
|
285
337
|
}
|
|
286
338
|
async readSnapshot() {
|
|
@@ -309,13 +361,14 @@ var GoalManager = class {
|
|
|
309
361
|
}
|
|
310
362
|
};
|
|
311
363
|
function emptySnapshot() {
|
|
312
|
-
return { version: 1, goal: null, queue: [], updatedAt: Date.now() };
|
|
364
|
+
return { version: 1, goal: null, queue: [], completed: [], updatedAt: Date.now() };
|
|
313
365
|
}
|
|
314
366
|
function normalizeSnapshot(raw) {
|
|
315
367
|
return {
|
|
316
368
|
version: 1,
|
|
317
369
|
goal: normalizeGoal(raw.goal),
|
|
318
370
|
queue: Array.isArray(raw.queue) ? raw.queue.map(normalizeQueuedGoal).filter((item) => Boolean(item)) : [],
|
|
371
|
+
completed: Array.isArray(raw.completed) ? raw.completed.map(normalizeCompletedGoal).filter((item) => Boolean(item)) : [],
|
|
319
372
|
updatedAt: typeof raw.updatedAt === "number" ? raw.updatedAt : Date.now()
|
|
320
373
|
};
|
|
321
374
|
}
|
|
@@ -355,6 +408,21 @@ function normalizeQueuedGoal(value) {
|
|
|
355
408
|
createdAt: typeof raw.createdAt === "number" ? raw.createdAt : Date.now()
|
|
356
409
|
};
|
|
357
410
|
}
|
|
411
|
+
function normalizeCompletedGoal(value) {
|
|
412
|
+
if (!value || typeof value !== "object") return null;
|
|
413
|
+
const raw = value;
|
|
414
|
+
if (typeof raw.goalId !== "string" || typeof raw.objective !== "string") return null;
|
|
415
|
+
if (raw.status !== "complete" && raw.status !== "budgetLimited") return null;
|
|
416
|
+
return {
|
|
417
|
+
goalId: raw.goalId,
|
|
418
|
+
objective: raw.objective,
|
|
419
|
+
status: raw.status,
|
|
420
|
+
tokensUsed: positiveInteger(raw.tokensUsed) ?? 0,
|
|
421
|
+
timeUsedSeconds: positiveInteger(raw.timeUsedSeconds) ?? 0,
|
|
422
|
+
createdAt: typeof raw.createdAt === "number" ? raw.createdAt : Date.now(),
|
|
423
|
+
completedAt: typeof raw.completedAt === "number" ? raw.completedAt : Date.now()
|
|
424
|
+
};
|
|
425
|
+
}
|
|
358
426
|
function buildQueuedGoal(input) {
|
|
359
427
|
return {
|
|
360
428
|
queueId: `q-${Date.now()}-${crypto.randomUUID().slice(0, 8)}`,
|
|
@@ -370,6 +438,21 @@ function buildQueuedGoal(input) {
|
|
|
370
438
|
createdAt: Date.now()
|
|
371
439
|
};
|
|
372
440
|
}
|
|
441
|
+
function buildCompletedGoal(goal, completedAt) {
|
|
442
|
+
return {
|
|
443
|
+
goalId: goal.goalId,
|
|
444
|
+
objective: goal.objective,
|
|
445
|
+
status: goal.status === "budgetLimited" ? "budgetLimited" : "complete",
|
|
446
|
+
tokensUsed: goal.tokensUsed,
|
|
447
|
+
timeUsedSeconds: goal.timeUsedSeconds,
|
|
448
|
+
createdAt: goal.createdAt,
|
|
449
|
+
completedAt
|
|
450
|
+
};
|
|
451
|
+
}
|
|
452
|
+
function appendCompletedGoal(completed, goal) {
|
|
453
|
+
if (completed.some((item) => item.goalId === goal.goalId)) return completed;
|
|
454
|
+
return [...completed, goal];
|
|
455
|
+
}
|
|
373
456
|
function validateGoalInput(input) {
|
|
374
457
|
const objective = input.objective.trim();
|
|
375
458
|
if (!objective) return "objective must be non-empty.";
|
|
@@ -419,7 +502,7 @@ function applyOptionalPositiveInteger(value, apply) {
|
|
|
419
502
|
apply(value);
|
|
420
503
|
return null;
|
|
421
504
|
}
|
|
422
|
-
function result(snapshot, ok, message) {
|
|
505
|
+
function result(snapshot, ok, message, extras = {}) {
|
|
423
506
|
const goal = snapshot.goal;
|
|
424
507
|
return {
|
|
425
508
|
ok,
|
|
@@ -430,7 +513,8 @@ function result(snapshot, ok, message) {
|
|
|
430
513
|
timeRemainingSeconds: goal.timeBudgetSeconds !== void 0 ? Math.max(0, goal.timeBudgetSeconds - goal.timeUsedSeconds) : void 0,
|
|
431
514
|
tokensRemaining: goal.tokenBudget !== void 0 ? Math.max(0, goal.tokenBudget - goal.tokensUsed) : void 0,
|
|
432
515
|
completionFloorMet: floorMet(goal)
|
|
433
|
-
} : void 0
|
|
516
|
+
} : void 0,
|
|
517
|
+
...extras
|
|
434
518
|
};
|
|
435
519
|
}
|
|
436
520
|
function floorMet(goal) {
|
|
@@ -451,6 +535,19 @@ function isStringRecord(value) {
|
|
|
451
535
|
function truncate(value, max) {
|
|
452
536
|
return value.length > max ? `${value.slice(0, max - 3)}...` : value;
|
|
453
537
|
}
|
|
538
|
+
function formatAllCompleteMessage(completedRun) {
|
|
539
|
+
return [
|
|
540
|
+
"All queued goals are complete.",
|
|
541
|
+
"",
|
|
542
|
+
formatCompletedSummary(completedRun)
|
|
543
|
+
].join("\n");
|
|
544
|
+
}
|
|
545
|
+
function formatCompletedSummary(completedRun) {
|
|
546
|
+
return [
|
|
547
|
+
`Completed goals this session (${completedRun.length}):`,
|
|
548
|
+
...completedRun.map((item, index) => `${index + 1}. ${truncate(item.objective, 120)}`)
|
|
549
|
+
].join("\n");
|
|
550
|
+
}
|
|
454
551
|
function formatDuration(seconds) {
|
|
455
552
|
const whole = Math.max(0, Math.floor(seconds));
|
|
456
553
|
const minutes = Math.floor(whole / 60);
|
|
@@ -1,18 +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
|
|
3
|
+
var _chunkRZLEGVMHcjs = require('./chunk-RZLEGVMH.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
var
|
|
7
|
+
var _chunkY47OJGLBcjs = require('./chunk-Y47OJGLB.cjs');
|
|
8
8
|
|
|
9
9
|
// src/commands/goal.ts
|
|
10
10
|
var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
|
|
11
11
|
var metadata = {
|
|
12
12
|
command: "/goal",
|
|
13
|
-
description: "Create, inspect, pause, resume, complete, clear, and queue persistent goals",
|
|
13
|
+
description: "Create, inspect, refine, pause, resume, complete, clear, and queue persistent goals",
|
|
14
14
|
implemented: true,
|
|
15
15
|
subcommands: [
|
|
16
|
+
{ name: "writer", description: "Interview the user and draft a stronger goal before creating it" },
|
|
16
17
|
{ name: "queue", description: "List queued goals or enqueue a goal" },
|
|
17
18
|
{ name: "pause", description: "Pause the current goal" },
|
|
18
19
|
{ name: "resume", description: "Resume a paused or queued goal" },
|
|
@@ -22,18 +23,26 @@ var metadata = {
|
|
|
22
23
|
]
|
|
23
24
|
};
|
|
24
25
|
async function goal(ctx, args = []) {
|
|
25
|
-
if (!
|
|
26
|
-
return
|
|
26
|
+
if (!_chunkY47OJGLBcjs.resolveGoalFeatureEnabled.call(void 0, ctx.config, ctx.isFeatureEnabled)) {
|
|
27
|
+
return _chunkY47OJGLBcjs.GOAL_FEATURE_DISABLED_MESSAGE;
|
|
27
28
|
}
|
|
28
29
|
await _optionalChain([ctx, 'access', _ => _.trackFeatureActivation, 'optionalCall', _2 => _2("slash_goal", { surface: "slash_command" })]);
|
|
29
|
-
const manager = new (0,
|
|
30
|
+
const manager = new (0, _chunkRZLEGVMHcjs.GoalManager)(ctx.workspaceRoot);
|
|
30
31
|
const input = args.join(" ").trim();
|
|
31
32
|
if (!input) {
|
|
32
|
-
|
|
33
|
+
const snapshot = await manager.getSnapshot();
|
|
34
|
+
if (!snapshot.goal && snapshot.queue.length === 0) {
|
|
35
|
+
return startGoalWriter(ctx);
|
|
36
|
+
}
|
|
37
|
+
return formatSnapshot(snapshot);
|
|
33
38
|
}
|
|
34
39
|
const [subcommand, ...restArgs] = args;
|
|
35
40
|
const rest = restArgs.join(" ").trim();
|
|
36
41
|
switch (_optionalChain([subcommand, 'optionalAccess', _3 => _3.toLowerCase, 'call', _4 => _4()])) {
|
|
42
|
+
case "writer":
|
|
43
|
+
case "write":
|
|
44
|
+
case "refine":
|
|
45
|
+
return startGoalWriter(ctx, rest);
|
|
37
46
|
case "queue":
|
|
38
47
|
return handleQueue(manager, rest);
|
|
39
48
|
case "pause":
|
|
@@ -53,8 +62,13 @@ async function goal(ctx, args = []) {
|
|
|
53
62
|
}
|
|
54
63
|
return formatMutation(resumed);
|
|
55
64
|
}
|
|
56
|
-
case "complete":
|
|
57
|
-
|
|
65
|
+
case "complete": {
|
|
66
|
+
const completed = await manager.updateGoal({ status: "complete" });
|
|
67
|
+
if (completed.ok && completed.started && _optionalChain([completed, 'access', _5 => _5.goal, 'optionalAccess', _6 => _6.status]) === "active") {
|
|
68
|
+
queueGoalContinuation(ctx, completed.goal.objective);
|
|
69
|
+
}
|
|
70
|
+
return formatMutation(completed);
|
|
71
|
+
}
|
|
58
72
|
case "clear":
|
|
59
73
|
return formatMutation(await manager.clearGoal());
|
|
60
74
|
case "templates": {
|
|
@@ -73,6 +87,7 @@ async function goal(ctx, args = []) {
|
|
|
73
87
|
if (!resolved.ok) return _chalk2.default.yellow(resolved.message);
|
|
74
88
|
const created = await manager.createGoal(resolved.input, { replace: false });
|
|
75
89
|
if (created.ok && created.goal) {
|
|
90
|
+
await emitGoalWrittenCompleted(ctx, created.goal, "slash");
|
|
76
91
|
queueGoalContinuation(ctx, created.goal.objective);
|
|
77
92
|
}
|
|
78
93
|
return formatMutation(created);
|
|
@@ -80,15 +95,37 @@ async function goal(ctx, args = []) {
|
|
|
80
95
|
}
|
|
81
96
|
}
|
|
82
97
|
async function runGoalCli(workspaceRoot, rawInput, config) {
|
|
83
|
-
if (!
|
|
84
|
-
return
|
|
98
|
+
if (!_chunkY47OJGLBcjs.resolveGoalFeatureEnabled.call(void 0, config)) {
|
|
99
|
+
return _chunkY47OJGLBcjs.GOAL_FEATURE_DISABLED_MESSAGE;
|
|
85
100
|
}
|
|
86
|
-
const manager = new (0,
|
|
87
|
-
const input = _nullishCoalesce(_optionalChain([rawInput, 'optionalAccess',
|
|
101
|
+
const manager = new (0, _chunkRZLEGVMHcjs.GoalManager)(workspaceRoot);
|
|
102
|
+
const input = _nullishCoalesce(_optionalChain([rawInput, 'optionalAccess', _7 => _7.trim, 'call', _8 => _8()]), () => ( ""));
|
|
88
103
|
if (!input) return formatSnapshot(await manager.getSnapshot());
|
|
89
|
-
const args = _nullishCoalesce(_optionalChain([input, 'access',
|
|
104
|
+
const args = _nullishCoalesce(_optionalChain([input, 'access', _9 => _9.match, 'call', _10 => _10(/"[^"]*"|'[^']*'|\S+/g), 'optionalAccess', _11 => _11.map, 'call', _12 => _12(unquote)]), () => ( []));
|
|
90
105
|
return goal({ workspaceRoot }, args);
|
|
91
106
|
}
|
|
107
|
+
function startGoalWriter(ctx, roughGoal) {
|
|
108
|
+
const activated = _nullishCoalesce(_optionalChain([ctx, 'access', _13 => _13.skillsRegistry, 'optionalAccess', _14 => _14.activateSkill, 'call', _15 => _15("goal-writer")]), () => ( false));
|
|
109
|
+
const roughGoalText = _optionalChain([roughGoal, 'optionalAccess', _16 => _16.trim, 'call', _17 => _17()]) || "No rough goal was provided yet.";
|
|
110
|
+
_optionalChain([ctx, 'access', _18 => _18.queueInstruction, 'optionalCall', _19 => _19([
|
|
111
|
+
"Activate the built-in goal-writer skill and use it to help the user draft one or more stronger /goal objectives.",
|
|
112
|
+
"Interview the user with follow-up questions when the finish line, proof, boundaries, loop, or stop rule is unclear.",
|
|
113
|
+
"Show every full drafted objective and get explicit user approval before calling create_goal. If more than one goal is approved, call create_goal for each one in order so later goals are queued.",
|
|
114
|
+
`Rough goal request: ${roughGoalText}`
|
|
115
|
+
].join("\n"))]);
|
|
116
|
+
return [
|
|
117
|
+
"Goal writer started.",
|
|
118
|
+
activated ? "The built-in $goal-writer skill is active for the next turn." : "The next turn will use the built-in $goal-writer skill instructions if available.",
|
|
119
|
+
"Answer the follow-up questions to create a completion contract with proof, boundaries, and a stop rule."
|
|
120
|
+
].join("\n");
|
|
121
|
+
}
|
|
122
|
+
async function emitGoalWrittenCompleted(ctx, goalState, source) {
|
|
123
|
+
await _optionalChain([ctx, 'access', _20 => _20.hookManager, 'optionalAccess', _21 => _21.executeHooks, 'call', _22 => _22("goal-written:completed", {
|
|
124
|
+
goalId: goalState.goalId,
|
|
125
|
+
goalObjective: goalState.objective,
|
|
126
|
+
goalSource: source
|
|
127
|
+
})]);
|
|
128
|
+
}
|
|
92
129
|
async function handleQueue(manager, rest) {
|
|
93
130
|
if (!rest) {
|
|
94
131
|
const snapshot = await manager.getSnapshot();
|
|
@@ -98,7 +135,7 @@ async function handleQueue(manager, rest) {
|
|
|
98
135
|
return formatMutation(await manager.enqueueGoalBlock(rest, "command"));
|
|
99
136
|
}
|
|
100
137
|
function queueGoalContinuation(ctx, objective) {
|
|
101
|
-
_optionalChain([ctx, 'access',
|
|
138
|
+
_optionalChain([ctx, 'access', _23 => _23.queueInstruction, 'optionalCall', _24 => _24([
|
|
102
139
|
`Active goal: ${objective}`,
|
|
103
140
|
"Continue working toward this persistent goal until it is complete, blocked, paused, cleared, or budget-limited.",
|
|
104
141
|
"Use get_goal or update_goal when you need to inspect or modify the goal state."
|
|
@@ -110,7 +147,7 @@ function formatMutation(result) {
|
|
|
110
147
|
lines.push("");
|
|
111
148
|
lines.push(formatGoal(result.goal));
|
|
112
149
|
}
|
|
113
|
-
if (_optionalChain([result, 'access',
|
|
150
|
+
if (_optionalChain([result, 'access', _25 => _25.queued, 'optionalAccess', _26 => _26.length])) {
|
|
114
151
|
lines.push("");
|
|
115
152
|
lines.push(`Queued ${result.queued.length} goal${result.queued.length === 1 ? "" : "s"}:`);
|
|
116
153
|
for (const item of result.queued) {
|
|
@@ -120,14 +157,18 @@ function formatMutation(result) {
|
|
|
120
157
|
if (result.started) {
|
|
121
158
|
lines.push(`Started queue item: ${result.started.queueId}`);
|
|
122
159
|
}
|
|
123
|
-
if (
|
|
160
|
+
if (_optionalChain([result, 'access', _27 => _27.completedRun, 'optionalAccess', _28 => _28.length]) && result.queue.length === 0) {
|
|
161
|
+
lines.push("");
|
|
162
|
+
lines.push(formatCompletedRun(result.completedRun));
|
|
163
|
+
}
|
|
164
|
+
if (result.queue.length > 0 && !_optionalChain([result, 'access', _29 => _29.queued, 'optionalAccess', _30 => _30.length])) {
|
|
124
165
|
lines.push("");
|
|
125
166
|
lines.push(formatQueue({ queue: result.queue }));
|
|
126
167
|
}
|
|
127
168
|
return lines.join("\n");
|
|
128
169
|
}
|
|
129
170
|
function formatSnapshot(snapshot) {
|
|
130
|
-
if (!snapshot.goal && snapshot.queue.length === 0) {
|
|
171
|
+
if (!snapshot.goal && snapshot.queue.length === 0 && snapshot.completed.length === 0) {
|
|
131
172
|
return [
|
|
132
173
|
"No goal is currently set.",
|
|
133
174
|
"Use /goal <objective> to create one, or /goal queue <objective> to queue later work."
|
|
@@ -140,6 +181,10 @@ function formatSnapshot(snapshot) {
|
|
|
140
181
|
parts.push("");
|
|
141
182
|
parts.push(formatQueue(snapshot));
|
|
142
183
|
}
|
|
184
|
+
if (snapshot.completed.length > 0) {
|
|
185
|
+
parts.push("");
|
|
186
|
+
parts.push(formatCompletedRun(snapshot.completed));
|
|
187
|
+
}
|
|
143
188
|
return parts.join("\n");
|
|
144
189
|
}
|
|
145
190
|
function formatGoal(goalState) {
|
|
@@ -162,6 +207,12 @@ function formatQueue(snapshot) {
|
|
|
162
207
|
...snapshot.queue.map((item, index) => `${index + 1}. [${item.queueId}] ${item.objective}`)
|
|
163
208
|
].join("\n");
|
|
164
209
|
}
|
|
210
|
+
function formatCompletedRun(completed) {
|
|
211
|
+
return [
|
|
212
|
+
`Completed goals this session (${completed.length}):`,
|
|
213
|
+
...completed.map((item, index) => `${index + 1}. ${item.objective}`)
|
|
214
|
+
].join("\n");
|
|
215
|
+
}
|
|
165
216
|
function formatDuration(seconds) {
|
|
166
217
|
const whole = Math.max(0, Math.floor(seconds));
|
|
167
218
|
const minutes = Math.floor(whole / 60);
|