autohand-cli 0.7.8 → 0.7.10
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 +19 -0
- package/dist/{AutomodeManager-YVCJXOMQ.js → AutomodeManager-NGRAO2MH.js} +35 -8
- package/dist/{AutomodeManager-HV6M7EAX.cjs → AutomodeManager-ZKQMBM4T.cjs} +35 -8
- package/dist/{CommunitySkillsCache-Q22FUAR5.js → CommunitySkillsCache-ILWHWE5P.js} +2 -2
- package/dist/CommunitySkillsCache-KHC6RUJW.cjs +7 -0
- package/dist/MemoryManager-6ZT7IDO5.cjs +7 -0
- package/dist/MemoryManager-AJGS5AKB.js +7 -0
- package/dist/PermissionManager-HG6W2DGU.cjs +10 -0
- package/dist/{PermissionManager-HATZKTRC.js → PermissionManager-U5OMGR3L.js} +3 -3
- package/dist/SessionManager-BJ2G6VV4.cjs +9 -0
- package/dist/{SessionManager-S5R6O3NU.js → SessionManager-ENPGYK5J.js} +2 -2
- package/dist/SkillsRegistry-6ZFOCT25.cjs +8 -0
- package/dist/{SkillsRegistry-R5WDM6T3.js → SkillsRegistry-C2SHOZ5D.js} +2 -2
- package/dist/{SyncApiClient-FAOMIZAP.js → SyncApiClient-AYXYSOJM.js} +1 -1
- package/dist/SyncApiClient-ID3KXEMA.cjs +10 -0
- package/dist/about-RGUM5QQ4.cjs +11 -0
- package/dist/about-VDR3SIHS.js +11 -0
- package/dist/add-dir-3BMVJ5H3.cjs +9 -0
- package/dist/{add-dir-PNU7AGKO.js → add-dir-RP2BL3JW.js} +2 -1
- package/dist/agents-JQ2PHCQB.js +10 -0
- package/dist/agents-RGSZ2BM3.cjs +10 -0
- package/dist/agents-new-LSJN2L2T.cjs +13 -0
- package/dist/agents-new-MZUEVKSK.js +13 -0
- package/dist/automode-DP3BMYJB.cjs +9 -0
- package/dist/{automode-QCRJSBRT.js → automode-XOF3U3OB.js} +2 -1
- package/dist/cc-2W6M7J45.cjs +8 -0
- package/dist/cc-UTTLESTY.js +8 -0
- package/dist/{chunk-B4ZPNXZE.cjs → chunk-34OGUMRO.cjs} +9 -5
- package/dist/chunk-3652ROFD.js +589 -0
- package/dist/{chunk-KNLBEUAV.cjs → chunk-3DQSBW4B.cjs} +10 -6
- package/dist/{chunk-XFPITUFJ.cjs → chunk-3S4DEIJP.cjs} +50 -8
- package/dist/{chunk-5MDDOGTD.cjs → chunk-3UNX56GC.cjs} +30 -37
- package/dist/chunk-46WX5IO2.cjs +499 -0
- package/dist/{chunk-OC5YDNFC.js → chunk-4ULBAYME.js} +42 -57
- package/dist/{chunk-VEDIYPWY.cjs → chunk-5BQ57AZC.cjs} +9 -9
- package/dist/{chunk-B5N5UAMO.cjs → chunk-5FZM7KLB.cjs} +13 -10
- package/dist/{chunk-JBKP2CLA.cjs → chunk-5NZA4UB4.cjs} +47 -47
- package/dist/{chunk-VPAN5H7Q.js → chunk-5Q3W4DEU.js} +43 -36
- package/dist/{chunk-VMMGT42E.cjs → chunk-65GTO4QM.cjs} +7 -3
- package/dist/{chunk-CXZEPTRI.js → chunk-6P3K4YUW.js} +6 -2
- package/dist/{chunk-MDWULS57.js → chunk-6UJMCWRY.js} +56 -33
- package/dist/chunk-73XIKTZL.js +124 -0
- package/dist/{chunk-23JQSCTO.js → chunk-7QNW24ZT.js} +8 -4
- package/dist/{chunk-XT4OSHSB.cjs → chunk-AEYOIPHD.cjs} +6 -2
- package/dist/chunk-ANUQFV43.cjs +589 -0
- package/dist/chunk-ATR3RORT.js +499 -0
- package/dist/{chunk-A6QBABQ7.js → chunk-B72CC4O6.js} +2 -2
- package/dist/{chunk-TAZJSKFD.js → chunk-BBIKQW66.js} +9 -5
- package/dist/{chunk-FFA4LDAO.cjs → chunk-BDIZGBDA.cjs} +8 -3
- package/dist/{chunk-3YEDXG6S.js → chunk-BG4OQUKP.js} +1 -1
- package/dist/{chunk-WIUGUR5T.js → chunk-BODVOW7B.js} +67 -16
- package/dist/{chunk-A552JHUJ.cjs → chunk-BZ73ZQTE.cjs} +34 -25
- package/dist/{chunk-YDOR2OCA.cjs → chunk-C22G4UE4.cjs} +27 -19
- package/dist/{chunk-GFJ6AETU.cjs → chunk-C2E3GJEE.cjs} +12 -9
- package/dist/{chunk-UL7YPRCU.js → chunk-C5SVIQG3.js} +10 -5
- package/dist/{chunk-6KMAJTU3.js → chunk-CUBYCLNL.js} +3 -2
- package/dist/{chunk-52MLYK5P.js → chunk-D2XFTCRP.js} +1 -1
- package/dist/{chunk-OBV3UUIL.js → chunk-DEAEO7RI.js} +1 -1
- package/dist/chunk-DMPVI3YK.cjs +400 -0
- package/dist/{chunk-C26EN22G.cjs → chunk-DUDDZRCS.cjs} +9 -5
- package/dist/{chunk-4RWTUT2Z.js → chunk-E7YL3AHT.js} +32 -23
- package/dist/{chunk-54GVL2SE.cjs → chunk-EAOEAQGF.cjs} +3 -2
- package/dist/{chunk-PU534KPO.cjs → chunk-EV53SLSB.cjs} +4 -4
- package/dist/{chunk-EDGV5BNH.js → chunk-F3EIOVSQ.js} +26 -33
- package/dist/{chunk-SFGJQPGC.cjs → chunk-FPHU2ES6.cjs} +56 -33
- package/dist/{chunk-G77ZY4QG.js → chunk-GD4AFYJ3.js} +1 -1
- package/dist/{chunk-PMMSDR44.cjs → chunk-GIZL57FE.cjs} +5 -1
- package/dist/{chunk-I4HVBWYF.js → chunk-GLAE5K5W.js} +7 -2
- package/dist/{chunk-4AMTDSQ3.cjs → chunk-HDSEJMWI.cjs} +6 -3
- package/dist/chunk-HLFZPN65.js +94 -0
- package/dist/{chunk-ZWS3KSMK.js → chunk-HQQ4NKER.js} +5 -2
- package/dist/{chunk-WBDPILKI.cjs → chunk-HVOBMOZ2.cjs} +6 -2
- package/dist/{chunk-MJFBVQHB.js → chunk-IPI3JXKP.js} +10 -7
- package/dist/chunk-IXFOH4OC.cjs +222 -0
- package/dist/chunk-JS7IPR7P.js +249 -0
- package/dist/{chunk-7TOHYAUF.cjs → chunk-KC5FPUOF.cjs} +2 -2
- package/dist/{chunk-7VW3A7DO.cjs → chunk-L42HTMMR.cjs} +2 -2
- package/dist/chunk-LGGZQTLM.cjs +209 -0
- package/dist/chunk-LOXOD4IS.cjs +8630 -0
- package/dist/chunk-MNCWB5F7.cjs +63 -0
- package/dist/{chunk-AVL4DKQO.js → chunk-MYNHJHDZ.js} +1 -1
- package/dist/{chunk-GDTZQSJ6.cjs → chunk-N4ZSG6JJ.cjs} +2 -2
- package/dist/chunk-NCC6ETZS.js +362 -0
- package/dist/chunk-NF7RIHJK.js +45 -0
- package/dist/{chunk-SYJLMBLP.cjs → chunk-NGBN2NGH.cjs} +77 -26
- package/dist/{chunk-SLISYSP4.cjs → chunk-NRORJRD4.cjs} +4 -4
- package/dist/{chunk-OTS4YFSZ.cjs → chunk-OKABWSWA.cjs} +7 -3
- package/dist/{chunk-KH7BCZJN.js → chunk-OLG7LZBD.js} +1 -1
- package/dist/{chunk-KZ7VMQTC.js → chunk-OMEH2EVE.js} +5 -1
- package/dist/{chunk-U5WIP4HS.js → chunk-P5VDZ6PV.js} +47 -5
- package/dist/{chunk-V5MTBGM4.cjs → chunk-PA2H2263.cjs} +6 -2
- package/dist/chunk-PGRH5Q77.cjs +249 -0
- package/dist/{chunk-DPJ3IIBB.js → chunk-PM62ZYXA.js} +18 -10
- package/dist/chunk-PNSRJT46.js +380 -0
- package/dist/{chunk-C3IFF3EH.cjs → chunk-PSED4Z4X.cjs} +43 -58
- package/dist/{chunk-EKY5PKQI.js → chunk-PWLLLJHU.js} +5 -1
- package/dist/{chunk-DOTAX65F.js → chunk-PYLR4J2D.js} +8 -4
- package/dist/{chunk-YWKZF2SA.js → chunk-QC6IUDDJ.js} +46 -46
- package/dist/{chunk-4M2GX7RH.cjs → chunk-QM7HZCQW.cjs} +11 -6
- package/dist/chunk-QRQ5EX7I.cjs +380 -0
- package/dist/{chunk-YDH2BMEN.js → chunk-QU64XI5X.js} +9 -6
- package/dist/{chunk-3L76MLO5.cjs → chunk-R7SDL3DJ.cjs} +27 -31
- package/dist/{chunk-WQSWU2QA.cjs → chunk-RJP3SZ7Q.cjs} +46 -255
- package/dist/{chunk-BAFJQUWR.js → chunk-RJXNNIFW.js} +18 -22
- package/dist/{chunk-YAGD43KA.cjs → chunk-S5G7OEN2.cjs} +47 -40
- package/dist/{chunk-2JPUEN44.cjs → chunk-SA4JOV4F.cjs} +61 -86
- package/dist/chunk-SAG6IY5Z.cjs +94 -0
- package/dist/chunk-TSV4LVHK.js +35 -0
- package/dist/{chunk-JHFH3N4U.cjs → chunk-TSY7JHIV.cjs} +2 -2
- package/dist/chunk-U23U52ZN.cjs +124 -0
- package/dist/chunk-UET7BDX2.js +8630 -0
- package/dist/chunk-ULQ6MDSJ.cjs +362 -0
- package/dist/{chunk-WH3D42BQ.js → chunk-UM4QEO36.js} +59 -84
- package/dist/chunk-VXCMGBXY.cjs +35 -0
- package/dist/chunk-WD5ZF6HE.js +63 -0
- package/dist/chunk-WH5RW7DV.cjs +85 -0
- package/dist/{chunk-GSOEIEOU.js → chunk-WJ276BIP.js} +5 -1
- package/dist/{chunk-P2Z6GDEN.js → chunk-WLTVF77A.js} +1 -1
- package/dist/{chunk-53BR4MUW.cjs → chunk-WOGJXDBU.cjs} +3 -3
- package/dist/{chunk-QJ53OSGF.js → chunk-WRJLBHWB.js} +6 -2
- package/dist/chunk-WYLFLZ42.js +222 -0
- package/dist/{chunk-B7EUETGY.cjs → chunk-XL77XYI2.cjs} +4 -4
- package/dist/{chunk-NI3BQXKU.js → chunk-XLI7SHCH.js} +2 -2
- package/dist/chunk-Y27LG4BQ.cjs +45 -0
- package/dist/chunk-Y6OWFIUF.js +209 -0
- package/dist/chunk-YKSSNFDZ.js +400 -0
- package/dist/{chunk-VRI7EXV6.js → chunk-YMDLUTF2.js} +5 -1
- package/dist/chunk-YVY27BJT.js +85 -0
- package/dist/{chunk-GWIAMKKF.js → chunk-ZBIBLOZL.js} +40 -249
- package/dist/completion-HVSWU5GR.cjs +13 -0
- package/dist/completion-WJ2MVNDH.js +13 -0
- package/dist/constants-RBQTR32A.cjs +20 -0
- package/dist/{constants-ZLG6M5SI.js → constants-V6J54N3X.js} +1 -1
- package/dist/export-NN7F5ANA.js +11 -0
- package/dist/export-UPS3AK2P.cjs +11 -0
- package/dist/feedback-ARI7CLVQ.js +14 -0
- package/dist/feedback-OZTPYHKJ.cjs +14 -0
- package/dist/help-4674IV4D.cjs +58 -0
- package/dist/help-ENG5KV2M.js +58 -0
- package/dist/history-2KUM6GN4.cjs +13 -0
- package/dist/history-RZFT34Q7.js +13 -0
- package/dist/hooks-7QSUBHBM.cjs +12 -0
- package/dist/hooks-S4MD4QSR.js +12 -0
- package/dist/i18n-6NKENUIV.js +32 -0
- package/dist/i18n-MXQXQOVE.cjs +32 -0
- package/dist/ide-5STDV43A.cjs +11 -0
- package/dist/ide-W2NYXOWQ.js +11 -0
- package/dist/index.cjs +18002 -13864
- package/dist/index.js +18252 -14114
- package/dist/init-FG5KEJCZ.cjs +9 -0
- package/dist/init-TV4MJDYK.js +9 -0
- package/dist/language-52Q7CSAY.cjs +16 -0
- package/dist/language-FXFDGOBF.js +16 -0
- package/dist/localProjectPermissions-2EATUDZM.cjs +17 -0
- package/dist/{localProjectPermissions-YFFAKLUZ.js → localProjectPermissions-WQYMGI42.js} +2 -2
- package/dist/login-AN42IOBK.js +18 -0
- package/dist/login-I65V4TGU.cjs +18 -0
- package/dist/logout-KK5UWGNG.js +16 -0
- package/dist/logout-VYYNWBHZ.cjs +16 -0
- package/dist/mcp-4SKTDECJ.js +15 -0
- package/dist/mcp-AGWPTMAX.cjs +15 -0
- package/dist/mcp-install-3NN2HAYR.cjs +473 -0
- package/dist/mcp-install-KTV52DQK.js +473 -0
- package/dist/memory-LG4K6XV6.cjs +9 -0
- package/dist/{memory-4GSP7NKV.js → memory-LRDK2SYC.js} +2 -1
- package/dist/model-P5D7ATE7.cjs +9 -0
- package/dist/{model-HKEFSH5E.js → model-WBFJIGUN.js} +2 -1
- package/dist/{new-EEZC4XXV.js → new-5A7RQEKI.js} +2 -1
- package/dist/new-EAATWI2G.cjs +9 -0
- package/dist/permissions-5URK6C44.js +12 -0
- package/dist/permissions-CJUDVG63.cjs +12 -0
- package/dist/plan-B3CW5DXJ.cjs +10 -0
- package/dist/plan-JFGNRL2S.js +10 -0
- package/dist/quit-A33JHDG7.cjs +9 -0
- package/dist/quit-IYBLN3DB.js +9 -0
- package/dist/resume-OPSJTCH7.cjs +12 -0
- package/dist/resume-TOWEEN5D.js +12 -0
- package/dist/search-GOLIE5BA.js +14 -0
- package/dist/search-H42HGUK5.cjs +14 -0
- package/dist/{sessions-4KXIT76T.js → sessions-B5NENDKY.js} +2 -1
- package/dist/sessions-YHAVEMWY.cjs +9 -0
- package/dist/share-2JD2AKKX.cjs +13 -0
- package/dist/share-MYGDOTQE.js +13 -0
- package/dist/{skills-3YEEODHK.js → skills-ICEQ2TNC.js} +2 -1
- package/dist/skills-LFVNZOMF.cjs +13 -0
- package/dist/{skills-install-KAXAQSN6.js → skills-install-6RN7FVCP.js} +9 -7
- package/dist/{skills-install-FTGOHOZ4.cjs → skills-install-LU6GA2WF.cjs} +14 -12
- package/dist/skills-new-5BM5PDFX.cjs +14 -0
- package/dist/skills-new-KWBWOX74.js +14 -0
- package/dist/status-M3XHJELG.cjs +10 -0
- package/dist/status-ZQDUYMKQ.js +10 -0
- package/dist/sync-6M3WRKMH.cjs +39 -0
- package/dist/sync-73D2MP65.cjs +16 -0
- package/dist/{sync-H4UHHLKU.js → sync-EXYX7HXW.js} +3 -3
- package/dist/sync-LL6M67CN.js +16 -0
- package/dist/theme-IFEI2IBJ.cjs +16 -0
- package/dist/theme-U3SKEULY.js +16 -0
- package/dist/ui/questionModal.cjs +28 -0
- package/dist/ui/questionModal.d.cts +11 -0
- package/dist/ui/questionModal.d.ts +11 -0
- package/dist/ui/questionModal.js +28 -0
- package/dist/undo-4DS67OAW.cjs +9 -0
- package/dist/undo-YMALVAPN.js +9 -0
- package/package.json +3 -2
- package/dist/CommunitySkillsCache-2BITCEAA.cjs +0 -7
- package/dist/MemoryManager-2ATHG7BH.js +0 -7
- package/dist/MemoryManager-AENCGCEW.cjs +0 -7
- package/dist/PermissionManager-6HZGTK2N.cjs +0 -10
- package/dist/SessionManager-AG4WT3DP.cjs +0 -9
- package/dist/SkillsRegistry-ZXU6YDRP.cjs +0 -8
- package/dist/SyncApiClient-UOA4VLLD.cjs +0 -10
- package/dist/add-dir-OMK3Y4DM.cjs +0 -8
- package/dist/agents-ICAC3KD3.js +0 -9
- package/dist/agents-YONWPKFS.cjs +0 -9
- package/dist/agents-new-NV557UVG.cjs +0 -10
- package/dist/agents-new-QHM3CO4B.js +0 -10
- package/dist/automode-BRHUHGXU.cjs +0 -8
- package/dist/chunk-3HPUOQJN.cjs +0 -23
- package/dist/chunk-5DN5KNXU.js +0 -81
- package/dist/chunk-7BYSXAKS.js +0 -23
- package/dist/chunk-ARVFUZOB.js +0 -736
- package/dist/chunk-BEIG7V7Q.cjs +0 -51
- package/dist/chunk-GWXXFQ3F.cjs +0 -81
- package/dist/chunk-XFQS2VGT.cjs +0 -736
- package/dist/chunk-Z3Q2AFDS.js +0 -51
- package/dist/completion-WVFWX7XQ.cjs +0 -10
- package/dist/completion-Y42FKDT3.js +0 -10
- package/dist/constants-G2PLP5HH.cjs +0 -20
- package/dist/export-BKBJ7PB2.cjs +0 -8
- package/dist/export-WJ5P6E5Z.js +0 -8
- package/dist/feedback-HZBCTSFG.js +0 -10
- package/dist/feedback-JBQ3UPGZ.cjs +0 -10
- package/dist/help-PKC6QCNG.js +0 -10
- package/dist/help-UEELQRHP.cjs +0 -10
- package/dist/hooks-G4VLYMLX.cjs +0 -9
- package/dist/hooks-LN4A6NQL.js +0 -9
- package/dist/init-DML7AOII.js +0 -8
- package/dist/init-SLLSDDJN.cjs +0 -8
- package/dist/language-KODBDE5R.js +0 -12
- package/dist/language-SJT475NW.cjs +0 -12
- package/dist/localProjectPermissions-AYQYGTOE.cjs +0 -17
- package/dist/login-TC2KROQI.js +0 -14
- package/dist/login-TYMR2ZD3.cjs +0 -14
- package/dist/logout-2ECV365P.js +0 -12
- package/dist/logout-CO3CPYZJ.cjs +0 -12
- package/dist/memory-CFNC7RJH.cjs +0 -8
- package/dist/model-TKVEJ5BC.cjs +0 -8
- package/dist/new-EB2MBQXA.cjs +0 -8
- package/dist/permissions-5MTH22EF.js +0 -9
- package/dist/permissions-IP5SITPI.cjs +0 -9
- package/dist/quit-2RYFGIJP.cjs +0 -8
- package/dist/quit-RSYIERO5.js +0 -8
- package/dist/resume-EPOEF3WV.cjs +0 -9
- package/dist/resume-LOYD5MMP.js +0 -9
- package/dist/sessions-7RTCPVNE.cjs +0 -8
- package/dist/share-APR5S2CS.cjs +0 -10
- package/dist/share-VLJFDZKR.js +0 -10
- package/dist/skills-CRM55MKM.cjs +0 -12
- package/dist/skills-new-JF4FKNUT.cjs +0 -11
- package/dist/skills-new-JYX2GBKM.js +0 -11
- package/dist/status-DAEFE7ZC.cjs +0 -9
- package/dist/status-PBFFUC4Q.js +0 -9
- package/dist/sync-3B7SNBYC.js +0 -14
- package/dist/sync-4RARBQIH.cjs +0 -39
- package/dist/sync-YZ6YZ42H.cjs +0 -14
- package/dist/theme-3XV5BWUB.js +0 -12
- package/dist/theme-Z2WS5XWZ.cjs +0 -12
- package/dist/undo-2WR2ZIEC.cjs +0 -8
- package/dist/undo-7QJBXARS.js +0 -8
|
@@ -1,6 +1,9 @@
|
|
|
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 _chunkMNCWB5F7cjs = require('./chunk-MNCWB5F7.cjs');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
var _chunkLOXOD4IScjs = require('./chunk-LOXOD4IS.cjs');
|
|
4
7
|
|
|
5
8
|
// src/commands/hooks.ts
|
|
6
9
|
var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
|
|
@@ -116,11 +119,11 @@ function getShortCommand(command) {
|
|
|
116
119
|
}
|
|
117
120
|
function displayHooksList(allHooks) {
|
|
118
121
|
console.log();
|
|
119
|
-
console.log(_chalk2.default.bold.cyan(
|
|
122
|
+
console.log(_chalk2.default.bold.cyan(_chunkLOXOD4IScjs.t.call(void 0, "commands.hooks.title")));
|
|
120
123
|
console.log(_chalk2.default.gray(" Lifecycle hooks run shell commands on events"));
|
|
121
124
|
console.log();
|
|
122
125
|
if (allHooks.length === 0) {
|
|
123
|
-
console.log(_chalk2.default.gray(
|
|
126
|
+
console.log(_chalk2.default.gray(` ${_chunkLOXOD4IScjs.t.call(void 0, "commands.hooks.noHooks")}`));
|
|
124
127
|
console.log();
|
|
125
128
|
return;
|
|
126
129
|
}
|
|
@@ -194,7 +197,7 @@ async function hooks(ctx) {
|
|
|
194
197
|
const toggleLabel = settings.enabled !== false ? "\u25EF Disable all hooks" : "\u25CF Enable all hooks";
|
|
195
198
|
choices.push({ name: "toggle_global", message: toggleLabel });
|
|
196
199
|
}
|
|
197
|
-
const actionResult = await
|
|
200
|
+
const actionResult = await _chunkMNCWB5F7cjs.safePrompt.call(void 0, {
|
|
198
201
|
type: "select",
|
|
199
202
|
name: "action",
|
|
200
203
|
message: "Action",
|
|
@@ -230,29 +233,22 @@ async function toggleHooksMulti(manager, allHooks) {
|
|
|
230
233
|
enabled: h.enabled !== false
|
|
231
234
|
};
|
|
232
235
|
});
|
|
233
|
-
const result = await
|
|
234
|
-
type: "
|
|
236
|
+
const result = await _chunkMNCWB5F7cjs.safePrompt.call(void 0, {
|
|
237
|
+
type: "select",
|
|
235
238
|
name: "selected",
|
|
236
|
-
message: "Toggle hooks (
|
|
239
|
+
message: "Toggle hooks (select to enable/disable)",
|
|
237
240
|
choices,
|
|
238
|
-
initial:
|
|
241
|
+
initial: 0
|
|
239
242
|
});
|
|
240
243
|
if (!result) return;
|
|
241
|
-
const
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
const
|
|
245
|
-
const
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
const eventIndex = eventHooks.indexOf(hook);
|
|
250
|
-
await manager.toggleHook(hook.event, eventIndex);
|
|
251
|
-
changed++;
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
if (changed > 0) {
|
|
255
|
-
console.log(_chalk2.default.green(` \u2713 Updated ${changed} hook(s)`));
|
|
244
|
+
const selectedIndex = Number(result.selected);
|
|
245
|
+
const hook = allHooks[selectedIndex];
|
|
246
|
+
if (hook) {
|
|
247
|
+
const eventHooks = allHooks.filter((h) => h.event === hook.event);
|
|
248
|
+
const eventIndex = eventHooks.indexOf(hook);
|
|
249
|
+
await manager.toggleHook(hook.event, eventIndex);
|
|
250
|
+
const newState = hook.enabled === false ? "enabled" : "disabled";
|
|
251
|
+
console.log(_chalk2.default.green(` \u2713 Hook ${newState}: ${hook.event}`));
|
|
256
252
|
} else {
|
|
257
253
|
console.log(_chalk2.default.gray(" No changes made"));
|
|
258
254
|
}
|
|
@@ -263,26 +259,26 @@ async function addHook(manager) {
|
|
|
263
259
|
name: e,
|
|
264
260
|
message: `${e} ${_chalk2.default.dim(`- ${EVENT_DESCRIPTIONS[e]}`)}`
|
|
265
261
|
}));
|
|
266
|
-
const eventResult = await
|
|
262
|
+
const eventResult = await _chunkMNCWB5F7cjs.safePrompt.call(void 0, {
|
|
267
263
|
type: "select",
|
|
268
264
|
name: "event",
|
|
269
265
|
message: "Event to hook into",
|
|
270
266
|
choices: eventChoices
|
|
271
267
|
});
|
|
272
268
|
if (!eventResult) return;
|
|
273
|
-
const commandResult = await
|
|
269
|
+
const commandResult = await _chunkMNCWB5F7cjs.safePrompt.call(void 0, {
|
|
274
270
|
type: "input",
|
|
275
271
|
name: "command",
|
|
276
272
|
message: "Shell command to execute",
|
|
277
273
|
validate: (val) => typeof val === "string" && val.trim().length > 0 || "Command is required"
|
|
278
274
|
});
|
|
279
275
|
if (!commandResult || !commandResult.command) return;
|
|
280
|
-
const descResult = await
|
|
276
|
+
const descResult = await _chunkMNCWB5F7cjs.safePrompt.call(void 0, {
|
|
281
277
|
type: "input",
|
|
282
278
|
name: "description",
|
|
283
279
|
message: "Description (optional)"
|
|
284
280
|
});
|
|
285
|
-
const asyncResult = await
|
|
281
|
+
const asyncResult = await _chunkMNCWB5F7cjs.safePrompt.call(void 0, {
|
|
286
282
|
type: "confirm",
|
|
287
283
|
name: "async",
|
|
288
284
|
message: "Run asynchronously (non-blocking)?",
|
|
@@ -307,7 +303,7 @@ async function removeHook(manager, allHooks) {
|
|
|
307
303
|
message: `${eventTag} ${desc2}`
|
|
308
304
|
};
|
|
309
305
|
});
|
|
310
|
-
const selectResult = await
|
|
306
|
+
const selectResult = await _chunkMNCWB5F7cjs.safePrompt.call(void 0, {
|
|
311
307
|
type: "select",
|
|
312
308
|
name: "hookIndex",
|
|
313
309
|
message: "Select hook to remove",
|
|
@@ -319,7 +315,7 @@ async function removeHook(manager, allHooks) {
|
|
|
319
315
|
const eventHooks = allHooks.filter((h) => h.event === hook.event);
|
|
320
316
|
const eventIndex = eventHooks.indexOf(hook);
|
|
321
317
|
const desc = hook.description || getShortCommand(hook.command);
|
|
322
|
-
const confirmResult = await
|
|
318
|
+
const confirmResult = await _chunkMNCWB5F7cjs.safePrompt.call(void 0, {
|
|
323
319
|
type: "confirm",
|
|
324
320
|
name: "confirm",
|
|
325
321
|
message: `Remove "${desc}"?`,
|
|
@@ -342,7 +338,7 @@ async function testHook(manager, allHooks) {
|
|
|
342
338
|
message: `${eventTag} ${desc}`
|
|
343
339
|
};
|
|
344
340
|
});
|
|
345
|
-
const selectResult = await
|
|
341
|
+
const selectResult = await _chunkMNCWB5F7cjs.safePrompt.call(void 0, {
|
|
346
342
|
type: "select",
|
|
347
343
|
name: "hookIndex",
|
|
348
344
|
message: "Select hook to test",
|
|
@@ -373,7 +369,7 @@ async function testHook(manager, allHooks) {
|
|
|
373
369
|
}
|
|
374
370
|
var metadata = {
|
|
375
371
|
command: "/hooks",
|
|
376
|
-
description:
|
|
372
|
+
description: _chunkLOXOD4IScjs.t.call(void 0, "commands.hooks.description"),
|
|
377
373
|
implemented: true
|
|
378
374
|
};
|
|
379
375
|
|
|
@@ -1,242 +1,11 @@
|
|
|
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 _chunkPMMSDR44cjs = require('./chunk-PMMSDR44.cjs');
|
|
4
3
|
|
|
5
|
-
|
|
6
|
-
var
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
this.colors = colors;
|
|
11
|
-
this.colorMode = _nullishCoalesce(colorMode, () => ( detectColorMode()));
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Apply foreground color to text.
|
|
15
|
-
*/
|
|
16
|
-
fg(token, text) {
|
|
17
|
-
if (this.colorMode === "none") return text;
|
|
18
|
-
const color = this.colors[token];
|
|
19
|
-
if (!color) return text;
|
|
20
|
-
const ansi = this.getAnsiCode(color, "fg");
|
|
21
|
-
return `${ansi}${text}\x1B[39m`;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Apply background color to text.
|
|
25
|
-
*/
|
|
26
|
-
bg(token, text) {
|
|
27
|
-
if (this.colorMode === "none") return text;
|
|
28
|
-
const color = this.colors[token];
|
|
29
|
-
if (!color) return text;
|
|
30
|
-
const ansi = this.getAnsiCode(color, "bg");
|
|
31
|
-
return `${ansi}${text}\x1B[49m`;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Apply both foreground and background colors.
|
|
35
|
-
*/
|
|
36
|
-
fgBg(fgToken, bgToken, text) {
|
|
37
|
-
if (this.colorMode === "none") return text;
|
|
38
|
-
const fgColor = this.colors[fgToken];
|
|
39
|
-
const bgColor = this.colors[bgToken];
|
|
40
|
-
const fgAnsi = fgColor ? this.getAnsiCode(fgColor, "fg") : "";
|
|
41
|
-
const bgAnsi = bgColor ? this.getAnsiCode(bgColor, "bg") : "";
|
|
42
|
-
return `${fgAnsi}${bgAnsi}${text}\x1B[0m`;
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Apply bold style.
|
|
46
|
-
*/
|
|
47
|
-
bold(text) {
|
|
48
|
-
return `\x1B[1m${text}\x1B[22m`;
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Apply italic style.
|
|
52
|
-
*/
|
|
53
|
-
italic(text) {
|
|
54
|
-
return `\x1B[3m${text}\x1B[23m`;
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Apply underline style.
|
|
58
|
-
*/
|
|
59
|
-
underline(text) {
|
|
60
|
-
return `\x1B[4m${text}\x1B[24m`;
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Apply dim style.
|
|
64
|
-
*/
|
|
65
|
-
dimStyle(text) {
|
|
66
|
-
return `\x1B[2m${text}\x1B[22m`;
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Apply strikethrough style.
|
|
70
|
-
*/
|
|
71
|
-
strikethrough(text) {
|
|
72
|
-
return `\x1B[9m${text}\x1B[29m`;
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Reset all styles.
|
|
76
|
-
*/
|
|
77
|
-
reset(text) {
|
|
78
|
-
return `\x1B[0m${text}\x1B[0m`;
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* Get raw color value for a token.
|
|
82
|
-
*/
|
|
83
|
-
getColor(token) {
|
|
84
|
-
return this.colors[token] || "";
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Get current color mode.
|
|
88
|
-
*/
|
|
89
|
-
getColorMode() {
|
|
90
|
-
return this.colorMode;
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Convert color value to ANSI escape code.
|
|
94
|
-
*/
|
|
95
|
-
getAnsiCode(color, type) {
|
|
96
|
-
const cacheKey = `${color}:${type}`;
|
|
97
|
-
const cached = this.ansiCache.get(cacheKey);
|
|
98
|
-
if (cached) return cached;
|
|
99
|
-
const code = this.colorToAnsi(color, type);
|
|
100
|
-
this.ansiCache.set(cacheKey, code);
|
|
101
|
-
return code;
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Convert a color value to ANSI code based on color mode.
|
|
105
|
-
*/
|
|
106
|
-
colorToAnsi(color, type) {
|
|
107
|
-
if (!color) return "";
|
|
108
|
-
if (color.startsWith("#")) {
|
|
109
|
-
return this.hexToAnsi(color, type);
|
|
110
|
-
}
|
|
111
|
-
const numValue = parseInt(color, 10);
|
|
112
|
-
if (!isNaN(numValue) && numValue >= 0 && numValue <= 255) {
|
|
113
|
-
return this.index256ToAnsi(numValue, type);
|
|
114
|
-
}
|
|
115
|
-
return "";
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Convert hex color to ANSI code.
|
|
119
|
-
*/
|
|
120
|
-
hexToAnsi(hex, type) {
|
|
121
|
-
const rgb = hexToRgb(hex);
|
|
122
|
-
if (!rgb) return "";
|
|
123
|
-
const base = type === "fg" ? 38 : 48;
|
|
124
|
-
if (this.colorMode === "truecolor") {
|
|
125
|
-
return `\x1B[${base};2;${rgb.r};${rgb.g};${rgb.b}m`;
|
|
126
|
-
} else if (this.colorMode === "256") {
|
|
127
|
-
const index = rgbTo256(rgb.r, rgb.g, rgb.b);
|
|
128
|
-
return `\x1B[${base};5;${index}m`;
|
|
129
|
-
} else if (this.colorMode === "16") {
|
|
130
|
-
const index = rgbTo16(rgb.r, rgb.g, rgb.b);
|
|
131
|
-
const code = type === "fg" ? index < 8 ? 30 + index : 90 + index - 8 : index < 8 ? 40 + index : 100 + index - 8;
|
|
132
|
-
return `\x1B[${code}m`;
|
|
133
|
-
}
|
|
134
|
-
return "";
|
|
135
|
-
}
|
|
136
|
-
/**
|
|
137
|
-
* Convert 256-color index to ANSI code.
|
|
138
|
-
*/
|
|
139
|
-
index256ToAnsi(index, type) {
|
|
140
|
-
const base = type === "fg" ? 38 : 48;
|
|
141
|
-
if (this.colorMode === "truecolor" || this.colorMode === "256") {
|
|
142
|
-
return `\x1B[${base};5;${index}m`;
|
|
143
|
-
} else if (this.colorMode === "16") {
|
|
144
|
-
const basicIndex = index < 16 ? index : index256To16(index);
|
|
145
|
-
const code = type === "fg" ? basicIndex < 8 ? 30 + basicIndex : 90 + basicIndex - 8 : basicIndex < 8 ? 40 + basicIndex : 100 + basicIndex - 8;
|
|
146
|
-
return `\x1B[${code}m`;
|
|
147
|
-
}
|
|
148
|
-
return "";
|
|
149
|
-
}
|
|
150
|
-
};
|
|
151
|
-
function detectColorMode() {
|
|
152
|
-
if (process.env.NO_COLOR !== void 0) {
|
|
153
|
-
return "none";
|
|
154
|
-
}
|
|
155
|
-
if (process.env.FORCE_COLOR !== void 0) {
|
|
156
|
-
const level = parseInt(process.env.FORCE_COLOR, 10);
|
|
157
|
-
if (level === 0) return "none";
|
|
158
|
-
if (level === 1) return "16";
|
|
159
|
-
if (level === 2) return "256";
|
|
160
|
-
if (level >= 3) return "truecolor";
|
|
161
|
-
}
|
|
162
|
-
const colorterm = process.env.COLORTERM;
|
|
163
|
-
if (colorterm === "truecolor" || colorterm === "24bit") {
|
|
164
|
-
return "truecolor";
|
|
165
|
-
}
|
|
166
|
-
const term = process.env.TERM || "";
|
|
167
|
-
if (term.includes("256color") || term.includes("256-color")) {
|
|
168
|
-
return "256";
|
|
169
|
-
}
|
|
170
|
-
if (term.includes("color") || term.includes("ansi") || term === "xterm") {
|
|
171
|
-
return "16";
|
|
172
|
-
}
|
|
173
|
-
if (process.stdout.isTTY) {
|
|
174
|
-
return "256";
|
|
175
|
-
}
|
|
176
|
-
return "none";
|
|
177
|
-
}
|
|
178
|
-
function hexToRgb(hex) {
|
|
179
|
-
const match = hex.match(/^#?([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})$/);
|
|
180
|
-
if (match) {
|
|
181
|
-
return {
|
|
182
|
-
r: parseInt(match[1], 16),
|
|
183
|
-
g: parseInt(match[2], 16),
|
|
184
|
-
b: parseInt(match[3], 16)
|
|
185
|
-
};
|
|
186
|
-
}
|
|
187
|
-
const shortMatch = hex.match(/^#?([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])$/);
|
|
188
|
-
if (shortMatch) {
|
|
189
|
-
return {
|
|
190
|
-
r: parseInt(shortMatch[1] + shortMatch[1], 16),
|
|
191
|
-
g: parseInt(shortMatch[2] + shortMatch[2], 16),
|
|
192
|
-
b: parseInt(shortMatch[3] + shortMatch[3], 16)
|
|
193
|
-
};
|
|
194
|
-
}
|
|
195
|
-
return null;
|
|
196
|
-
}
|
|
197
|
-
function rgbTo256(r, g, b) {
|
|
198
|
-
if (r === g && g === b) {
|
|
199
|
-
if (r < 8) return 16;
|
|
200
|
-
if (r > 248) return 231;
|
|
201
|
-
return Math.round((r - 8) / 10) + 232;
|
|
202
|
-
}
|
|
203
|
-
const ri = Math.round(r / 51);
|
|
204
|
-
const gi = Math.round(g / 51);
|
|
205
|
-
const bi = Math.round(b / 51);
|
|
206
|
-
return 16 + 36 * ri + 6 * gi + bi;
|
|
207
|
-
}
|
|
208
|
-
function rgbTo16(r, g, b) {
|
|
209
|
-
const bright = (r + g + b) / 3 > 128 ? 8 : 0;
|
|
210
|
-
const ri = r > 128 ? 1 : 0;
|
|
211
|
-
const gi = g > 128 ? 2 : 0;
|
|
212
|
-
const bi = b > 128 ? 4 : 0;
|
|
213
|
-
return bright + ri + gi + bi;
|
|
214
|
-
}
|
|
215
|
-
function index256To16(index) {
|
|
216
|
-
if (index < 16) return index;
|
|
217
|
-
if (index >= 232) {
|
|
218
|
-
const gray = (index - 232) * 10 + 8;
|
|
219
|
-
return gray > 128 ? 15 : 0;
|
|
220
|
-
}
|
|
221
|
-
const adjusted = index - 16;
|
|
222
|
-
const r = Math.floor(adjusted / 36) * 51;
|
|
223
|
-
const g = Math.floor(adjusted % 36 / 6) * 51;
|
|
224
|
-
const b = adjusted % 6 * 51;
|
|
225
|
-
return rgbTo16(r, g, b);
|
|
226
|
-
}
|
|
227
|
-
var globalTheme = null;
|
|
228
|
-
function getTheme() {
|
|
229
|
-
if (!globalTheme) {
|
|
230
|
-
throw new Error("Theme not initialized. Call initTheme() first.");
|
|
231
|
-
}
|
|
232
|
-
return globalTheme;
|
|
233
|
-
}
|
|
234
|
-
function setTheme(theme) {
|
|
235
|
-
globalTheme = theme;
|
|
236
|
-
}
|
|
237
|
-
function isThemeInitialized() {
|
|
238
|
-
return globalTheme !== null;
|
|
239
|
-
}
|
|
4
|
+
|
|
5
|
+
var _chunkPGRH5Q77cjs = require('./chunk-PGRH5Q77.cjs');
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
var _chunkGIZL57FEcjs = require('./chunk-GIZL57FE.cjs');
|
|
240
9
|
|
|
241
10
|
// src/ui/theme/loader.ts
|
|
242
11
|
var _fs = require('fs');
|
|
@@ -335,7 +104,7 @@ var darkTheme = {
|
|
|
335
104
|
error: "red",
|
|
336
105
|
warning: "yellow",
|
|
337
106
|
muted: "gray500",
|
|
338
|
-
dim: "
|
|
107
|
+
dim: "gray200",
|
|
339
108
|
text: "gray200",
|
|
340
109
|
// Backgrounds & Content
|
|
341
110
|
userMessageBg: "bgMedium",
|
|
@@ -408,7 +177,7 @@ var draculaTheme = {
|
|
|
408
177
|
error: "red",
|
|
409
178
|
warning: "orange",
|
|
410
179
|
muted: "comment",
|
|
411
|
-
dim: "
|
|
180
|
+
dim: "foreground",
|
|
412
181
|
text: "foreground",
|
|
413
182
|
// Backgrounds & Content
|
|
414
183
|
userMessageBg: "currentLine",
|
|
@@ -481,7 +250,7 @@ var sandyTheme = {
|
|
|
481
250
|
error: "rust",
|
|
482
251
|
warning: "dune",
|
|
483
252
|
muted: "stone",
|
|
484
|
-
dim: "
|
|
253
|
+
dim: "gray100",
|
|
485
254
|
text: "gray100",
|
|
486
255
|
// Backgrounds & Content
|
|
487
256
|
userMessageBg: "gray700",
|
|
@@ -565,7 +334,7 @@ var tuiTheme = {
|
|
|
565
334
|
error: "pohutukawa",
|
|
566
335
|
warning: "kowhai",
|
|
567
336
|
muted: "gray400",
|
|
568
|
-
dim: "
|
|
337
|
+
dim: "snow",
|
|
569
338
|
text: "snow",
|
|
570
339
|
// Backgrounds & Content
|
|
571
340
|
userMessageBg: "gray700",
|
|
@@ -638,7 +407,7 @@ var lightTheme = {
|
|
|
638
407
|
error: "red",
|
|
639
408
|
warning: "yellow",
|
|
640
409
|
muted: "gray400",
|
|
641
|
-
dim: "
|
|
410
|
+
dim: "gray100",
|
|
642
411
|
text: "gray100",
|
|
643
412
|
// Backgrounds & Content
|
|
644
413
|
userMessageBg: "bgMedium",
|
|
@@ -699,18 +468,18 @@ var ThemeLoadError = class extends Error {
|
|
|
699
468
|
function loadTheme(themeName) {
|
|
700
469
|
const definition = getThemeDefinition(themeName);
|
|
701
470
|
const resolvedColors = resolveThemeColors(definition);
|
|
702
|
-
return new Theme(definition.name, resolvedColors, detectColorMode());
|
|
471
|
+
return new (0, _chunkPGRH5Q77cjs.Theme)(definition.name, resolvedColors, _chunkPGRH5Q77cjs.detectColorMode.call(void 0, ));
|
|
703
472
|
}
|
|
704
473
|
function initTheme(themeName) {
|
|
705
474
|
const name = themeName || getDefaultThemeName();
|
|
706
475
|
try {
|
|
707
476
|
const theme = loadTheme(name);
|
|
708
|
-
setTheme(theme);
|
|
477
|
+
_chunkPGRH5Q77cjs.setTheme.call(void 0, theme);
|
|
709
478
|
return theme;
|
|
710
479
|
} catch (error) {
|
|
711
480
|
console.warn(`Failed to load theme "${name}", falling back to dark theme:`, error instanceof Error ? error.message : error);
|
|
712
481
|
const theme = loadTheme("dark");
|
|
713
|
-
setTheme(theme);
|
|
482
|
+
_chunkPGRH5Q77cjs.setTheme.call(void 0, theme);
|
|
714
483
|
return theme;
|
|
715
484
|
}
|
|
716
485
|
}
|
|
@@ -881,14 +650,15 @@ var ThemeContext = _react.createContext.call(void 0, defaultContextValue);
|
|
|
881
650
|
var _fsextra = require('fs-extra'); var _fsextra2 = _interopRequireDefault(_fsextra);
|
|
882
651
|
|
|
883
652
|
var _yaml = require('yaml'); var _yaml2 = _interopRequireDefault(_yaml);
|
|
884
|
-
var DEFAULT_CONFIG_PATH =
|
|
885
|
-
var YAML_CONFIG_PATH =
|
|
886
|
-
var YML_CONFIG_PATH =
|
|
653
|
+
var DEFAULT_CONFIG_PATH = _chunkGIZL57FEcjs.AUTOHAND_FILES.configJson;
|
|
654
|
+
var YAML_CONFIG_PATH = _chunkGIZL57FEcjs.AUTOHAND_FILES.configYaml;
|
|
655
|
+
var YML_CONFIG_PATH = _chunkGIZL57FEcjs.AUTOHAND_FILES.configYml;
|
|
887
656
|
var DEFAULT_BASE_URL = "https://openrouter.ai/api/v1";
|
|
888
657
|
var DEFAULT_OLLAMA_URL = "http://localhost:11434";
|
|
889
658
|
var DEFAULT_LLAMACPP_URL = "http://localhost:8080";
|
|
890
659
|
var DEFAULT_OPENAI_URL = "https://api.openai.com/v1";
|
|
891
660
|
var DEFAULT_MLX_URL = "http://localhost:8080";
|
|
661
|
+
var DEFAULT_LLMGATEWAY_URL = "https://api.llmgateway.io/v1";
|
|
892
662
|
async function detectConfigPath(customPath) {
|
|
893
663
|
if (customPath) {
|
|
894
664
|
return _path2.default.resolve(customPath);
|
|
@@ -997,8 +767,6 @@ function isLegacyConfig(config) {
|
|
|
997
767
|
return typeof config.api_key === "string";
|
|
998
768
|
}
|
|
999
769
|
function validateConfig(config, configPath) {
|
|
1000
|
-
const provider = _nullishCoalesce(config.provider, () => ( "openrouter"));
|
|
1001
|
-
const providerConfig = getProviderConfig(config, provider);
|
|
1002
770
|
if (config.workspace) {
|
|
1003
771
|
if (config.workspace.defaultRoot && typeof config.workspace.defaultRoot !== "string") {
|
|
1004
772
|
throw new Error(`workspace.defaultRoot must be a string in ${configPath}`);
|
|
@@ -1018,6 +786,30 @@ function validateConfig(config, configPath) {
|
|
|
1018
786
|
throw new Error(`ui.autoConfirm must be boolean in ${configPath}`);
|
|
1019
787
|
}
|
|
1020
788
|
}
|
|
789
|
+
if (config.mcp) {
|
|
790
|
+
if (config.mcp.enabled !== void 0 && typeof config.mcp.enabled !== "boolean") {
|
|
791
|
+
throw new Error(`mcp.enabled must be boolean in ${configPath}`);
|
|
792
|
+
}
|
|
793
|
+
if (config.mcp.servers !== void 0) {
|
|
794
|
+
if (!Array.isArray(config.mcp.servers)) {
|
|
795
|
+
throw new Error(`mcp.servers must be an array in ${configPath}`);
|
|
796
|
+
}
|
|
797
|
+
for (const server of config.mcp.servers) {
|
|
798
|
+
if (!server.name || typeof server.name !== "string") {
|
|
799
|
+
throw new Error(`mcp.servers[].name must be a non-empty string in ${configPath}`);
|
|
800
|
+
}
|
|
801
|
+
if (!["stdio", "sse", "http"].includes(server.transport)) {
|
|
802
|
+
throw new Error(`mcp.servers[].transport must be 'stdio', 'sse', or 'http' in ${configPath}`);
|
|
803
|
+
}
|
|
804
|
+
if (server.transport === "stdio" && (!server.command || typeof server.command !== "string")) {
|
|
805
|
+
throw new Error(`mcp.servers[].command is required for stdio transport in ${configPath}`);
|
|
806
|
+
}
|
|
807
|
+
if ((server.transport === "sse" || server.transport === "http") && (!server.url || typeof server.url !== "string")) {
|
|
808
|
+
throw new Error(`mcp.servers[].url is required for ${server.transport} transport in ${configPath}`);
|
|
809
|
+
}
|
|
810
|
+
}
|
|
811
|
+
}
|
|
812
|
+
}
|
|
1021
813
|
if (config.externalAgents) {
|
|
1022
814
|
if (config.externalAgents.enabled !== void 0 && typeof config.externalAgents.enabled !== "boolean") {
|
|
1023
815
|
throw new Error(`externalAgents.enabled must be boolean in ${configPath}`);
|
|
@@ -1045,13 +837,14 @@ function getProviderConfig(config, provider) {
|
|
|
1045
837
|
ollama: config.ollama,
|
|
1046
838
|
llamacpp: config.llamacpp,
|
|
1047
839
|
openai: config.openai,
|
|
1048
|
-
mlx: config.mlx
|
|
840
|
+
mlx: config.mlx,
|
|
841
|
+
llmgateway: config.llmgateway
|
|
1049
842
|
};
|
|
1050
843
|
const entry = configByProvider[chosen];
|
|
1051
844
|
if (!entry) {
|
|
1052
845
|
return null;
|
|
1053
846
|
}
|
|
1054
|
-
if (chosen === "openrouter") {
|
|
847
|
+
if (chosen === "openrouter" || chosen === "llmgateway") {
|
|
1055
848
|
const { apiKey, model } = entry;
|
|
1056
849
|
if (!apiKey || apiKey === "replace-me" || !model) {
|
|
1057
850
|
return null;
|
|
@@ -1068,6 +861,7 @@ function getProviderConfig(config, provider) {
|
|
|
1068
861
|
}
|
|
1069
862
|
function defaultBaseUrlFor(provider, port) {
|
|
1070
863
|
if (provider === "openrouter") return DEFAULT_BASE_URL;
|
|
864
|
+
if (provider === "llmgateway") return DEFAULT_LLMGATEWAY_URL;
|
|
1071
865
|
const p = port ? port.toString() : void 0;
|
|
1072
866
|
switch (provider) {
|
|
1073
867
|
case "ollama":
|
|
@@ -1100,10 +894,7 @@ async function saveConfig(config) {
|
|
|
1100
894
|
|
|
1101
895
|
|
|
1102
896
|
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
exports.hexToRgb = hexToRgb; exports.getTheme = getTheme; exports.isThemeInitialized = isThemeInitialized; exports.CUSTOM_THEMES_DIR = CUSTOM_THEMES_DIR; exports.initTheme = initTheme; exports.listAvailableThemes = listAvailableThemes; exports.loadConfig = loadConfig; exports.resolveWorkspaceRoot = resolveWorkspaceRoot; exports.getProviderConfig = getProviderConfig; exports.saveConfig = saveConfig;
|
|
897
|
+
exports.CUSTOM_THEMES_DIR = CUSTOM_THEMES_DIR; exports.initTheme = initTheme; exports.listAvailableThemes = listAvailableThemes; exports.loadConfig = loadConfig; exports.resolveWorkspaceRoot = resolveWorkspaceRoot; exports.getProviderConfig = getProviderConfig; exports.saveConfig = saveConfig;
|
|
1107
898
|
/**
|
|
1108
899
|
* @license
|
|
1109
900
|
* Copyright 2025 Autohand AI LLC
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
safePrompt
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-WD5ZF6HE.js";
|
|
4
|
+
import {
|
|
5
|
+
t
|
|
6
|
+
} from "./chunk-UET7BDX2.js";
|
|
4
7
|
|
|
5
8
|
// src/commands/hooks.ts
|
|
6
9
|
import chalk from "chalk";
|
|
@@ -116,11 +119,11 @@ function getShortCommand(command) {
|
|
|
116
119
|
}
|
|
117
120
|
function displayHooksList(allHooks) {
|
|
118
121
|
console.log();
|
|
119
|
-
console.log(chalk.bold.cyan("
|
|
122
|
+
console.log(chalk.bold.cyan(t("commands.hooks.title")));
|
|
120
123
|
console.log(chalk.gray(" Lifecycle hooks run shell commands on events"));
|
|
121
124
|
console.log();
|
|
122
125
|
if (allHooks.length === 0) {
|
|
123
|
-
console.log(chalk.gray("
|
|
126
|
+
console.log(chalk.gray(` ${t("commands.hooks.noHooks")}`));
|
|
124
127
|
console.log();
|
|
125
128
|
return;
|
|
126
129
|
}
|
|
@@ -231,28 +234,21 @@ async function toggleHooksMulti(manager, allHooks) {
|
|
|
231
234
|
};
|
|
232
235
|
});
|
|
233
236
|
const result = await safePrompt({
|
|
234
|
-
type: "
|
|
237
|
+
type: "select",
|
|
235
238
|
name: "selected",
|
|
236
|
-
message: "Toggle hooks (
|
|
239
|
+
message: "Toggle hooks (select to enable/disable)",
|
|
237
240
|
choices,
|
|
238
|
-
initial:
|
|
241
|
+
initial: 0
|
|
239
242
|
});
|
|
240
243
|
if (!result) return;
|
|
241
|
-
const
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
const
|
|
245
|
-
const
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
const eventIndex = eventHooks.indexOf(hook);
|
|
250
|
-
await manager.toggleHook(hook.event, eventIndex);
|
|
251
|
-
changed++;
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
if (changed > 0) {
|
|
255
|
-
console.log(chalk.green(` \u2713 Updated ${changed} hook(s)`));
|
|
244
|
+
const selectedIndex = Number(result.selected);
|
|
245
|
+
const hook = allHooks[selectedIndex];
|
|
246
|
+
if (hook) {
|
|
247
|
+
const eventHooks = allHooks.filter((h) => h.event === hook.event);
|
|
248
|
+
const eventIndex = eventHooks.indexOf(hook);
|
|
249
|
+
await manager.toggleHook(hook.event, eventIndex);
|
|
250
|
+
const newState = hook.enabled === false ? "enabled" : "disabled";
|
|
251
|
+
console.log(chalk.green(` \u2713 Hook ${newState}: ${hook.event}`));
|
|
256
252
|
} else {
|
|
257
253
|
console.log(chalk.gray(" No changes made"));
|
|
258
254
|
}
|
|
@@ -373,7 +369,7 @@ async function testHook(manager, allHooks) {
|
|
|
373
369
|
}
|
|
374
370
|
var metadata = {
|
|
375
371
|
command: "/hooks",
|
|
376
|
-
description: "
|
|
372
|
+
description: t("commands.hooks.description"),
|
|
377
373
|
implemented: true
|
|
378
374
|
};
|
|
379
375
|
|