autohand-cli 0.7.9 → 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-YWDFZBKP.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-WYP5JPCQ.js → PermissionManager-U5OMGR3L.js} +3 -3
- package/dist/SessionManager-BJ2G6VV4.cjs +9 -0
- package/dist/{SessionManager-SFBDIBGA.js → SessionManager-ENPGYK5J.js} +2 -2
- package/dist/SkillsRegistry-6ZFOCT25.cjs +8 -0
- package/dist/{SkillsRegistry-E437FFJV.js → SkillsRegistry-C2SHOZ5D.js} +2 -2
- 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/{chunk-A5KU3JZW.cjs → chunk-34OGUMRO.cjs} +9 -5
- package/dist/{chunk-NTFNUTY2.js → chunk-3652ROFD.js} +2 -2
- package/dist/{chunk-KNLBEUAV.cjs → chunk-3DQSBW4B.cjs} +10 -6
- package/dist/{chunk-32R47CAQ.cjs → chunk-3S4DEIJP.cjs} +2 -2
- package/dist/{chunk-DRXFJR7F.cjs → chunk-3UNX56GC.cjs} +17 -16
- package/dist/chunk-46WX5IO2.cjs +499 -0
- package/dist/{chunk-IYZBLUEJ.js → chunk-4ULBAYME.js} +8 -6
- package/dist/{chunk-JRV4SOJU.cjs → chunk-5BQ57AZC.cjs} +9 -9
- package/dist/{chunk-7WKEDH3E.cjs → chunk-5FZM7KLB.cjs} +13 -10
- package/dist/{chunk-FN5S5OE7.cjs → chunk-5NZA4UB4.cjs} +3 -3
- package/dist/{chunk-PFS5ZOCO.js → chunk-5Q3W4DEU.js} +18 -10
- package/dist/{chunk-VMMGT42E.cjs → chunk-65GTO4QM.cjs} +7 -3
- package/dist/{chunk-CXZEPTRI.js → chunk-6P3K4YUW.js} +6 -2
- package/dist/chunk-73XIKTZL.js +124 -0
- package/dist/{chunk-P6EGMTK4.js → chunk-7QNW24ZT.js} +8 -4
- package/dist/{chunk-XT4OSHSB.cjs → chunk-AEYOIPHD.cjs} +6 -2
- package/dist/{chunk-KXNAGJE6.cjs → chunk-ANUQFV43.cjs} +6 -6
- package/dist/chunk-ATR3RORT.js +499 -0
- package/dist/{chunk-XOSFZHSS.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-YDJA5ETO.js → chunk-BG4OQUKP.js} +1 -1
- package/dist/{chunk-3DVEGFBZ.js → chunk-BODVOW7B.js} +64 -13
- package/dist/{chunk-HUA44A35.cjs → chunk-BZ73ZQTE.cjs} +17 -11
- package/dist/{chunk-6DSJ7XST.cjs → chunk-C22G4UE4.cjs} +13 -10
- package/dist/{chunk-T7HQBZZB.cjs → chunk-C2E3GJEE.cjs} +12 -9
- package/dist/{chunk-UP6YRP44.js → chunk-C5SVIQG3.js} +10 -5
- package/dist/{chunk-7GJR65DQ.js → chunk-CUBYCLNL.js} +2 -1
- package/dist/{chunk-4YQ2OJAL.js → chunk-D2XFTCRP.js} +1 -1
- package/dist/{chunk-R5PZPF55.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-WT367RVU.js → chunk-E7YL3AHT.js} +15 -9
- package/dist/{chunk-5UC3VAJ2.cjs → chunk-EAOEAQGF.cjs} +2 -1
- package/dist/{chunk-CHVXUA3O.cjs → chunk-EV53SLSB.cjs} +4 -4
- package/dist/{chunk-PVSYZXS7.js → chunk-F3EIOVSQ.js} +11 -10
- package/dist/{chunk-VQDWNDP5.js → chunk-GD4AFYJ3.js} +1 -1
- package/dist/{chunk-AQNY2M6Q.cjs → chunk-GIZL57FE.cjs} +3 -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-RDGYHJ52.js → chunk-IPI3JXKP.js} +9 -6
- package/dist/{chunk-OO7EKEJH.cjs → chunk-IXFOH4OC.cjs} +17 -14
- package/dist/chunk-JS7IPR7P.js +249 -0
- package/dist/{chunk-CPO5KEQS.cjs → chunk-KC5FPUOF.cjs} +2 -2
- package/dist/{chunk-TUO5SZRD.cjs → chunk-L42HTMMR.cjs} +2 -2
- package/dist/chunk-LGGZQTLM.cjs +209 -0
- package/dist/chunk-LOXOD4IS.cjs +8630 -0
- package/dist/{chunk-LJCSSR5V.cjs → chunk-MNCWB5F7.cjs} +5 -5
- package/dist/{chunk-BTVNRLSE.js → chunk-MYNHJHDZ.js} +1 -1
- package/dist/{chunk-O3EX3SAD.cjs → chunk-N4ZSG6JJ.cjs} +2 -2
- package/dist/chunk-NF7RIHJK.js +45 -0
- package/dist/{chunk-KJAZ4YAR.cjs → chunk-NGBN2NGH.cjs} +76 -25
- package/dist/{chunk-MRDZHNCF.cjs → chunk-NRORJRD4.cjs} +4 -4
- package/dist/{chunk-OTS4YFSZ.cjs → chunk-OKABWSWA.cjs} +7 -3
- package/dist/{chunk-4BZ65NIH.js → chunk-OLG7LZBD.js} +1 -1
- package/dist/{chunk-KZ7VMQTC.js → chunk-OMEH2EVE.js} +5 -1
- package/dist/{chunk-LCBOOA7S.js → chunk-P5VDZ6PV.js} +1 -1
- package/dist/{chunk-V5MTBGM4.cjs → chunk-PA2H2263.cjs} +6 -2
- package/dist/chunk-PGRH5Q77.cjs +249 -0
- package/dist/{chunk-CMNQAF6C.js → chunk-PM62ZYXA.js} +12 -9
- package/dist/chunk-PNSRJT46.js +380 -0
- package/dist/{chunk-UL5T2XIY.cjs → chunk-PSED4Z4X.cjs} +13 -11
- package/dist/{chunk-PGH3MHPP.js → chunk-PWLLLJHU.js} +3 -1
- package/dist/{chunk-DOTAX65F.js → chunk-PYLR4J2D.js} +8 -4
- package/dist/{chunk-3SDEZTZD.js → chunk-QC6IUDDJ.js} +1 -1
- package/dist/{chunk-WJICM4SK.cjs → chunk-QM7HZCQW.cjs} +11 -6
- package/dist/chunk-QRQ5EX7I.cjs +380 -0
- package/dist/{chunk-RX4KPL6H.js → chunk-QU64XI5X.js} +9 -6
- package/dist/{chunk-FSTLJIR5.cjs → chunk-R7SDL3DJ.cjs} +16 -13
- package/dist/{chunk-LY5VN3B3.cjs → chunk-RJP3SZ7Q.cjs} +41 -253
- package/dist/{chunk-KS45GREN.js → chunk-RJXNNIFW.js} +7 -4
- package/dist/{chunk-LYMZDJX5.cjs → chunk-S5G7OEN2.cjs} +26 -18
- package/dist/{chunk-3DGR4GNN.cjs → chunk-SA4JOV4F.cjs} +10 -8
- package/dist/chunk-SAG6IY5Z.cjs +94 -0
- package/dist/{chunk-WCN5WDOI.cjs → chunk-TSY7JHIV.cjs} +2 -2
- package/dist/chunk-U23U52ZN.cjs +124 -0
- package/dist/chunk-UET7BDX2.js +8630 -0
- package/dist/{chunk-J7VV7JAB.js → chunk-UM4QEO36.js} +6 -4
- package/dist/{chunk-NCLCL7JK.js → chunk-WD5ZF6HE.js} +1 -1
- package/dist/{chunk-HF65HHDU.cjs → chunk-WH5RW7DV.cjs} +24 -22
- package/dist/{chunk-GSOEIEOU.js → chunk-WJ276BIP.js} +5 -1
- package/dist/{chunk-OXJCLU3X.js → chunk-WLTVF77A.js} +1 -1
- package/dist/{chunk-WGO4ACS7.cjs → chunk-WOGJXDBU.cjs} +3 -3
- package/dist/{chunk-QJ53OSGF.js → chunk-WRJLBHWB.js} +6 -2
- package/dist/{chunk-LKIKNRUP.js → chunk-WYLFLZ42.js} +8 -5
- package/dist/{chunk-HWDP4HQO.cjs → chunk-XL77XYI2.cjs} +4 -4
- package/dist/{chunk-QAJM6VG5.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-J2RUI7GJ.js → chunk-YVY27BJT.js} +5 -3
- package/dist/{chunk-K6CZ2AGI.js → chunk-ZBIBLOZL.js} +35 -247
- package/dist/completion-HVSWU5GR.cjs +13 -0
- package/dist/completion-WJ2MVNDH.js +13 -0
- package/dist/constants-RBQTR32A.cjs +20 -0
- package/dist/{constants-OFIAR4E5.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 +15320 -12906
- package/dist/index.js +15465 -13051
- 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-FD5AK5FB.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/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-PB4HXV4R.js → skills-ICEQ2TNC.js} +2 -1
- package/dist/skills-LFVNZOMF.cjs +13 -0
- package/dist/{skills-install-UBBNXWD5.js → skills-install-6RN7FVCP.js} +9 -8
- package/dist/{skills-install-7SFS24HY.cjs → skills-install-LU6GA2WF.cjs} +14 -13
- 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-LYKDHRFM.js → sync-EXYX7HXW.js} +2 -2
- 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 +2 -1
- package/dist/CommunitySkillsCache-N2RWBCY2.cjs +0 -7
- package/dist/MemoryManager-J7APSLZ7.js +0 -7
- package/dist/MemoryManager-RLLYVIDY.cjs +0 -7
- package/dist/PermissionManager-ISI5OAJK.cjs +0 -10
- package/dist/SessionManager-7MF76Q3Q.cjs +0 -9
- package/dist/SkillsRegistry-UTK2YT4M.cjs +0 -8
- package/dist/add-dir-OMK3Y4DM.cjs +0 -8
- package/dist/agents-N2ZB4O2A.cjs +0 -9
- package/dist/agents-ZMT7HBRT.js +0 -9
- package/dist/agents-new-3EWS2NR3.cjs +0 -11
- package/dist/agents-new-TCGUYK5I.js +0 -11
- package/dist/automode-BRHUHGXU.cjs +0 -8
- package/dist/chunk-6SM6N7DJ.js +0 -2828
- package/dist/chunk-BEIG7V7Q.cjs +0 -51
- package/dist/chunk-L5QWMGLV.cjs +0 -2828
- package/dist/chunk-Z3Q2AFDS.js +0 -51
- package/dist/completion-NCSTSKTL.cjs +0 -11
- package/dist/completion-NTZERPAZ.js +0 -11
- package/dist/constants-B2X7KDIH.cjs +0 -20
- package/dist/export-5AJNVX4O.cjs +0 -9
- package/dist/export-ZQHTLV4W.js +0 -9
- package/dist/feedback-F7BMGSV6.cjs +0 -12
- package/dist/feedback-NL7CWTRY.js +0 -12
- package/dist/help-PKC6QCNG.js +0 -10
- package/dist/help-UEELQRHP.cjs +0 -10
- package/dist/hooks-AX5VPCZ3.cjs +0 -10
- package/dist/hooks-V22HVLQT.js +0 -10
- package/dist/init-DML7AOII.js +0 -8
- package/dist/init-SLLSDDJN.cjs +0 -8
- package/dist/language-IEKARNQH.js +0 -13
- package/dist/language-ULQCKXAD.cjs +0 -13
- package/dist/localProjectPermissions-7FI3XF4K.cjs +0 -17
- package/dist/login-PD3DFJLM.js +0 -15
- package/dist/login-VHGT4YKT.cjs +0 -15
- package/dist/logout-2QXNFGDT.js +0 -13
- package/dist/logout-A4SMKEFO.cjs +0 -13
- package/dist/memory-CFNC7RJH.cjs +0 -8
- package/dist/model-TKVEJ5BC.cjs +0 -8
- package/dist/new-EB2MBQXA.cjs +0 -8
- package/dist/permissions-S7433NQJ.js +0 -10
- package/dist/permissions-YZ6WCDBL.cjs +0 -10
- package/dist/quit-2RYFGIJP.cjs +0 -8
- package/dist/quit-RSYIERO5.js +0 -8
- package/dist/resume-54ERVSFM.cjs +0 -10
- package/dist/resume-YJ5CVKAP.js +0 -10
- package/dist/search-4TEQMUPU.js +0 -11
- package/dist/search-QGLS4SV7.cjs +0 -11
- package/dist/sessions-7RTCPVNE.cjs +0 -8
- package/dist/share-2B2T3AUU.cjs +0 -11
- package/dist/share-SZMXZIA3.js +0 -11
- package/dist/skills-HVQNCTGK.cjs +0 -12
- package/dist/skills-new-5FSDAJWE.js +0 -12
- package/dist/skills-new-IOTZYE6F.cjs +0 -12
- package/dist/status-AGPSKXSW.js +0 -9
- package/dist/status-WOINF556.cjs +0 -9
- package/dist/sync-64MZDWGG.js +0 -14
- package/dist/sync-F5ECJW25.cjs +0 -39
- package/dist/sync-W5UR7BEP.cjs +0 -14
- package/dist/theme-CWG3ZLHB.cjs +0 -13
- package/dist/theme-HQKV7YAP.js +0 -13
- package/dist/undo-2WR2ZIEC.cjs +0 -8
- package/dist/undo-7QJBXARS.js +0 -8
|
@@ -1,13 +1,16 @@
|
|
|
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 _chunkEAOEAQGFcjs = require('./chunk-EAOEAQGF.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
var
|
|
7
|
+
var _chunkQRQ5EX7Icjs = require('./chunk-QRQ5EX7I.cjs');
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _chunkGIZL57FEcjs = require('./chunk-GIZL57FE.cjs');
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
var _chunkLOXOD4IScjs = require('./chunk-LOXOD4IS.cjs');
|
|
11
14
|
|
|
12
15
|
// src/commands/share.ts
|
|
13
16
|
var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
|
|
@@ -176,7 +179,7 @@ function serializeSession(session, options) {
|
|
|
176
179
|
const toolUsage = extractToolUsage(messages);
|
|
177
180
|
const gitDiff = options.gitDiff ? parseGitDiff(options.gitDiff) : void 0;
|
|
178
181
|
const client = {
|
|
179
|
-
cliVersion:
|
|
182
|
+
cliVersion: _chunkEAOEAQGFcjs.package_default.version,
|
|
180
183
|
platform: process.platform,
|
|
181
184
|
deviceId: options.deviceId
|
|
182
185
|
};
|
|
@@ -212,15 +215,15 @@ var DEFAULT_CONFIG = {
|
|
|
212
215
|
// 30s for large payloads
|
|
213
216
|
maxRetries: 3,
|
|
214
217
|
offlineQueue: true,
|
|
215
|
-
cliVersion:
|
|
218
|
+
cliVersion: _chunkEAOEAQGFcjs.package_default.version
|
|
216
219
|
};
|
|
217
220
|
var ShareApiClient = class {
|
|
218
221
|
constructor(configOverrides) {
|
|
219
222
|
this.deviceId = null;
|
|
220
223
|
this.config = { ...DEFAULT_CONFIG, ...configOverrides };
|
|
221
|
-
const dataDir = _path2.default.join(
|
|
224
|
+
const dataDir = _path2.default.join(_chunkGIZL57FEcjs.AUTOHAND_PATHS.config, "share");
|
|
222
225
|
this.queuePath = _path2.default.join(dataDir, "queue.json");
|
|
223
|
-
this.deviceIdPath = _path2.default.join(
|
|
226
|
+
this.deviceIdPath = _path2.default.join(_chunkGIZL57FEcjs.AUTOHAND_PATHS.feedback, ".device-id");
|
|
224
227
|
}
|
|
225
228
|
// ============ Device ID ============
|
|
226
229
|
/**
|
|
@@ -451,7 +454,7 @@ function terminalLink(url, text) {
|
|
|
451
454
|
}
|
|
452
455
|
var metadata = {
|
|
453
456
|
command: "/share",
|
|
454
|
-
description:
|
|
457
|
+
description: _chunkLOXOD4IScjs.t.call(void 0, "commands.share.description"),
|
|
455
458
|
implemented: true
|
|
456
459
|
};
|
|
457
460
|
async function execute(_args, context) {
|
|
@@ -495,7 +498,7 @@ async function execute(_args, context) {
|
|
|
495
498
|
{ label: "Public - Anyone with the link can view", value: "public" },
|
|
496
499
|
{ label: "Private - Requires one-time passcode", value: "private" }
|
|
497
500
|
];
|
|
498
|
-
const visibilityResult = await
|
|
501
|
+
const visibilityResult = await _chunkQRQ5EX7Icjs.showModal.call(void 0, {
|
|
499
502
|
title: "Share visibility:",
|
|
500
503
|
options: visibilityOptions
|
|
501
504
|
});
|
|
@@ -504,7 +507,7 @@ async function execute(_args, context) {
|
|
|
504
507
|
return;
|
|
505
508
|
}
|
|
506
509
|
const visibility = visibilityResult.value;
|
|
507
|
-
const confirmed = await
|
|
510
|
+
const confirmed = await _chunkQRQ5EX7Icjs.showConfirm.call(void 0, {
|
|
508
511
|
title: `Share this session as ${visibility}?`,
|
|
509
512
|
defaultValue: true
|
|
510
513
|
});
|
|
@@ -513,7 +516,7 @@ async function execute(_args, context) {
|
|
|
513
516
|
return;
|
|
514
517
|
}
|
|
515
518
|
console.log();
|
|
516
|
-
const spinner = _ora2.default.call(void 0,
|
|
519
|
+
const spinner = _ora2.default.call(void 0, _chunkLOXOD4IScjs.t.call(void 0, "commands.share.generating")).start();
|
|
517
520
|
try {
|
|
518
521
|
const payload = serializeSession(session, {
|
|
519
522
|
model: context.model,
|
|
@@ -526,9 +529,7 @@ async function execute(_args, context) {
|
|
|
526
529
|
spinner.stop();
|
|
527
530
|
if (response.success && response.url) {
|
|
528
531
|
console.log();
|
|
529
|
-
console.log(_chalk2.default.green.bold("
|
|
530
|
-
console.log();
|
|
531
|
-
console.log(`${_chalk2.default.bold("URL:")} ${terminalLink(response.url)}`);
|
|
532
|
+
console.log(_chalk2.default.green.bold(_chunkLOXOD4IScjs.t.call(void 0, "commands.share.success", { url: terminalLink(response.url) })));
|
|
532
533
|
if (visibility === "private" && response.passcode) {
|
|
533
534
|
console.log();
|
|
534
535
|
console.log(`${_chalk2.default.bold("Passcode:")} ${_chalk2.default.yellow.bold(response.passcode)}`);
|
|
@@ -542,14 +543,14 @@ async function execute(_args, context) {
|
|
|
542
543
|
} else {
|
|
543
544
|
console.log();
|
|
544
545
|
console.log(
|
|
545
|
-
_chalk2.default.red(
|
|
546
|
+
_chalk2.default.red(_chunkLOXOD4IScjs.t.call(void 0, "commands.share.failed", { error: response.error || "Unknown error" }))
|
|
546
547
|
);
|
|
547
548
|
console.log();
|
|
548
549
|
}
|
|
549
550
|
} catch (error) {
|
|
550
551
|
spinner.stop();
|
|
551
552
|
console.log();
|
|
552
|
-
console.log(_chalk2.default.red(
|
|
553
|
+
console.log(_chalk2.default.red(_chunkLOXOD4IScjs.t.call(void 0, "commands.share.failed", { error: error.message })));
|
|
553
554
|
console.log();
|
|
554
555
|
}
|
|
555
556
|
}
|
|
@@ -0,0 +1,499 @@
|
|
|
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
|
+
|
|
3
|
+
var _chunkQRQ5EX7Icjs = require('./chunk-QRQ5EX7I.cjs');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
var _chunkLOXOD4IScjs = require('./chunk-LOXOD4IS.cjs');
|
|
7
|
+
|
|
8
|
+
// src/commands/ide.ts
|
|
9
|
+
var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
|
|
10
|
+
var _terminallink = require('terminal-link'); var _terminallink2 = _interopRequireDefault(_terminallink);
|
|
11
|
+
|
|
12
|
+
// src/core/ide/ideDetector.ts
|
|
13
|
+
var _child_process = require('child_process');
|
|
14
|
+
var _os = require('os'); var _os2 = _interopRequireDefault(_os);
|
|
15
|
+
var _path = require('path'); var _path2 = _interopRequireDefault(_path);
|
|
16
|
+
|
|
17
|
+
// src/core/ide/ideTypes.ts
|
|
18
|
+
var IDE_REGISTRY = [
|
|
19
|
+
{
|
|
20
|
+
kind: "vscode",
|
|
21
|
+
displayName: "Visual Studio Code",
|
|
22
|
+
processPatterns: {
|
|
23
|
+
darwin: ["Visual Studio Code", "code "],
|
|
24
|
+
linux: ["code ", "/code"],
|
|
25
|
+
win32: ["Code.exe"]
|
|
26
|
+
},
|
|
27
|
+
extensionUrl: "https://marketplace.visualstudio.com/items?itemName=AutohandAI.vscode-autohand",
|
|
28
|
+
storage: {
|
|
29
|
+
type: "vscode-family",
|
|
30
|
+
darwin: "Code",
|
|
31
|
+
linux: "Code",
|
|
32
|
+
win32: "Code"
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
kind: "vscode-insiders",
|
|
37
|
+
displayName: "Visual Studio Code Insiders",
|
|
38
|
+
processPatterns: {
|
|
39
|
+
darwin: ["Code - Insiders", "code-insiders "],
|
|
40
|
+
linux: ["code-insiders ", "/code-insiders"],
|
|
41
|
+
win32: ["Code - Insiders.exe"]
|
|
42
|
+
},
|
|
43
|
+
extensionUrl: "https://marketplace.visualstudio.com/items?itemName=AutohandAI.vscode-autohand",
|
|
44
|
+
storage: {
|
|
45
|
+
type: "vscode-family",
|
|
46
|
+
darwin: "Code - Insiders",
|
|
47
|
+
linux: "Code - Insiders",
|
|
48
|
+
win32: "Code - Insiders"
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
kind: "cursor",
|
|
53
|
+
displayName: "Cursor",
|
|
54
|
+
processPatterns: {
|
|
55
|
+
darwin: ["Cursor.app", "cursor "],
|
|
56
|
+
linux: ["cursor ", "/cursor"],
|
|
57
|
+
win32: ["Cursor.exe"]
|
|
58
|
+
},
|
|
59
|
+
storage: {
|
|
60
|
+
type: "vscode-family",
|
|
61
|
+
darwin: "Cursor",
|
|
62
|
+
linux: "Cursor",
|
|
63
|
+
win32: "Cursor"
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
kind: "zed",
|
|
68
|
+
displayName: "Zed",
|
|
69
|
+
processPatterns: {
|
|
70
|
+
darwin: ["Zed.app", "/zed "],
|
|
71
|
+
linux: ["zed ", "/zed"],
|
|
72
|
+
win32: ["Zed.exe"]
|
|
73
|
+
},
|
|
74
|
+
extensionUrl: "https://zed.dev/extensions/autohand-acp",
|
|
75
|
+
storage: {
|
|
76
|
+
type: "zed",
|
|
77
|
+
darwin: "Zed",
|
|
78
|
+
linux: "zed",
|
|
79
|
+
win32: "Zed"
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
kind: "antigravity",
|
|
84
|
+
displayName: "Antigravity",
|
|
85
|
+
processPatterns: {
|
|
86
|
+
darwin: ["Antigravity.app", "antigravity "],
|
|
87
|
+
linux: [],
|
|
88
|
+
win32: []
|
|
89
|
+
},
|
|
90
|
+
storage: {
|
|
91
|
+
type: "vscode-family",
|
|
92
|
+
darwin: "Antigravity"
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
];
|
|
96
|
+
|
|
97
|
+
// src/core/ide/ideDetector.ts
|
|
98
|
+
async function detectRunningIDEs(cwd) {
|
|
99
|
+
const platform = getCurrentPlatform();
|
|
100
|
+
const normalizedCwd = _path2.default.resolve(cwd);
|
|
101
|
+
const processLines = await getProcessList(platform);
|
|
102
|
+
const detected = [];
|
|
103
|
+
for (const entry of IDE_REGISTRY) {
|
|
104
|
+
const patterns = _nullishCoalesce(entry.processPatterns[platform], () => ( []));
|
|
105
|
+
if (patterns.length === 0) continue;
|
|
106
|
+
const matchingLines = findProcessLines(processLines, patterns);
|
|
107
|
+
if (matchingLines.length === 0) continue;
|
|
108
|
+
const argPaths = extractWorkspacePaths(matchingLines, entry.kind, platform);
|
|
109
|
+
if (argPaths.length > 0) {
|
|
110
|
+
const seen = /* @__PURE__ */ new Set();
|
|
111
|
+
for (const wsPath of argPaths) {
|
|
112
|
+
const resolvedWs = _path2.default.resolve(wsPath);
|
|
113
|
+
if (seen.has(resolvedWs)) continue;
|
|
114
|
+
seen.add(resolvedWs);
|
|
115
|
+
detected.push({
|
|
116
|
+
kind: entry.kind,
|
|
117
|
+
displayName: entry.displayName,
|
|
118
|
+
workspacePath: resolvedWs,
|
|
119
|
+
matchesCwd: pathMatchesCwd(normalizedCwd, resolvedWs, platform),
|
|
120
|
+
extensionUrl: entry.extensionUrl
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
} else {
|
|
124
|
+
const cwdFoundInStorage = await checkCwdInStorage(entry, normalizedCwd, platform);
|
|
125
|
+
detected.push({
|
|
126
|
+
kind: entry.kind,
|
|
127
|
+
displayName: entry.displayName,
|
|
128
|
+
workspacePath: cwdFoundInStorage ? normalizedCwd : null,
|
|
129
|
+
matchesCwd: cwdFoundInStorage,
|
|
130
|
+
extensionUrl: entry.extensionUrl
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
detected.sort((a, b) => {
|
|
135
|
+
if (a.matchesCwd && !b.matchesCwd) return -1;
|
|
136
|
+
if (!a.matchesCwd && b.matchesCwd) return 1;
|
|
137
|
+
return a.displayName.localeCompare(b.displayName);
|
|
138
|
+
});
|
|
139
|
+
return detected;
|
|
140
|
+
}
|
|
141
|
+
function getCurrentPlatform() {
|
|
142
|
+
return process.platform;
|
|
143
|
+
}
|
|
144
|
+
function pathMatchesCwd(normalizedCwd, workspacePath, platform) {
|
|
145
|
+
if (platform === "linux") {
|
|
146
|
+
return normalizedCwd === workspacePath;
|
|
147
|
+
}
|
|
148
|
+
return normalizedCwd.toLowerCase() === workspacePath.toLowerCase();
|
|
149
|
+
}
|
|
150
|
+
async function getProcessList(platform) {
|
|
151
|
+
if (platform === "win32") {
|
|
152
|
+
return getWindowsProcessList();
|
|
153
|
+
}
|
|
154
|
+
return getUnixProcessList();
|
|
155
|
+
}
|
|
156
|
+
async function getUnixProcessList() {
|
|
157
|
+
return new Promise((resolve) => {
|
|
158
|
+
_child_process.exec.call(void 0, "ps aux", { encoding: "utf-8", timeout: 5e3 }, (error, stdout) => {
|
|
159
|
+
if (error) {
|
|
160
|
+
resolve([]);
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
resolve(stdout.split("\n"));
|
|
164
|
+
});
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
async function getWindowsProcessList() {
|
|
168
|
+
return new Promise((resolve) => {
|
|
169
|
+
const cmd = 'powershell -NoProfile -Command "Get-CimInstance Win32_Process | Select-Object Name,CommandLine | ConvertTo-Json"';
|
|
170
|
+
_child_process.exec.call(void 0, cmd, { encoding: "utf-8", timeout: 8e3 }, (error, stdout) => {
|
|
171
|
+
if (error) {
|
|
172
|
+
resolve([]);
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
try {
|
|
176
|
+
const processes = JSON.parse(stdout);
|
|
177
|
+
const lines = (Array.isArray(processes) ? processes : [processes]).map(
|
|
178
|
+
(p) => `${_nullishCoalesce(p.Name, () => ( ""))} ${_nullishCoalesce(p.CommandLine, () => ( ""))}`
|
|
179
|
+
);
|
|
180
|
+
resolve(lines);
|
|
181
|
+
} catch (e) {
|
|
182
|
+
resolve([]);
|
|
183
|
+
}
|
|
184
|
+
});
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
function findProcessLines(lines, patterns) {
|
|
188
|
+
return lines.filter(
|
|
189
|
+
(line) => patterns.some((pattern) => line.includes(pattern))
|
|
190
|
+
);
|
|
191
|
+
}
|
|
192
|
+
function extractWorkspacePaths(lines, kind, platform) {
|
|
193
|
+
const paths = /* @__PURE__ */ new Set();
|
|
194
|
+
for (const line of lines) {
|
|
195
|
+
const folderUriMatch = line.match(/--folder-uri\s+file:\/\/([^\s]+)/);
|
|
196
|
+
if (_optionalChain([folderUriMatch, 'optionalAccess', _ => _[1]])) {
|
|
197
|
+
try {
|
|
198
|
+
const decoded = decodeURIComponent(folderUriMatch[1]);
|
|
199
|
+
if (!isRuntimePath(decoded, platform)) {
|
|
200
|
+
paths.add(decoded);
|
|
201
|
+
}
|
|
202
|
+
continue;
|
|
203
|
+
} catch (e2) {
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
const extractedPaths = extractPathsFromArgs(line, kind, platform);
|
|
207
|
+
for (const p of extractedPaths) {
|
|
208
|
+
paths.add(p);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
return [...paths];
|
|
212
|
+
}
|
|
213
|
+
function extractPathsFromArgs(line, _kind, platform) {
|
|
214
|
+
const results = [];
|
|
215
|
+
let pathMatches;
|
|
216
|
+
if (platform === "win32") {
|
|
217
|
+
pathMatches = line.match(/\s([A-Za-z]:\\[^\s"]+)/g);
|
|
218
|
+
} else {
|
|
219
|
+
pathMatches = line.match(/\s(\/(?:Users|home|root)[^\s]+)/g);
|
|
220
|
+
}
|
|
221
|
+
if (!pathMatches) return results;
|
|
222
|
+
for (const match of pathMatches) {
|
|
223
|
+
const candidate = match.trim();
|
|
224
|
+
if (isRuntimePath(candidate, platform)) continue;
|
|
225
|
+
if (looksLikeWorkspace(candidate, platform)) {
|
|
226
|
+
results.push(candidate);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
return results;
|
|
230
|
+
}
|
|
231
|
+
function isRuntimePath(p, platform) {
|
|
232
|
+
const plat = _nullishCoalesce(platform, () => ( getCurrentPlatform()));
|
|
233
|
+
const commonPatterns = [
|
|
234
|
+
"node_modules",
|
|
235
|
+
".vscode",
|
|
236
|
+
".cursor",
|
|
237
|
+
"Frameworks/",
|
|
238
|
+
"Helper",
|
|
239
|
+
"Crashpad",
|
|
240
|
+
"chrome-sandbox",
|
|
241
|
+
".log",
|
|
242
|
+
".sock",
|
|
243
|
+
".pid"
|
|
244
|
+
];
|
|
245
|
+
const unixPatterns = [
|
|
246
|
+
"/Applications/",
|
|
247
|
+
"/Library/",
|
|
248
|
+
"/System/",
|
|
249
|
+
"/usr/",
|
|
250
|
+
"/opt/",
|
|
251
|
+
"/tmp/",
|
|
252
|
+
"/var/",
|
|
253
|
+
"/private/",
|
|
254
|
+
"/.local/share/",
|
|
255
|
+
"/.config/",
|
|
256
|
+
"/.cache/",
|
|
257
|
+
".app/",
|
|
258
|
+
"MacOS/",
|
|
259
|
+
"Resources/"
|
|
260
|
+
];
|
|
261
|
+
const windowsPatterns = [
|
|
262
|
+
"Program Files",
|
|
263
|
+
"Program Files (x86)",
|
|
264
|
+
"\\Windows\\",
|
|
265
|
+
"\\AppData\\",
|
|
266
|
+
"\\ProgramData\\"
|
|
267
|
+
];
|
|
268
|
+
const patterns = [
|
|
269
|
+
...commonPatterns,
|
|
270
|
+
...plat === "win32" ? windowsPatterns : unixPatterns
|
|
271
|
+
];
|
|
272
|
+
return patterns.some((pattern) => p.includes(pattern));
|
|
273
|
+
}
|
|
274
|
+
function looksLikeWorkspace(p, platform) {
|
|
275
|
+
const plat = _nullishCoalesce(platform, () => ( getCurrentPlatform()));
|
|
276
|
+
if (plat === "win32") {
|
|
277
|
+
return /^[A-Za-z]:\\Users\\[^\\]+\\.+/.test(p);
|
|
278
|
+
}
|
|
279
|
+
return /^\/(Users|home)\/[^/]+\/.+/.test(p) || /^\/root\/.+/.test(p);
|
|
280
|
+
}
|
|
281
|
+
function getStorageBasePath(type, platform) {
|
|
282
|
+
const home = _os2.default.homedir();
|
|
283
|
+
switch (platform) {
|
|
284
|
+
case "darwin":
|
|
285
|
+
return _path2.default.join(home, "Library", "Application Support");
|
|
286
|
+
case "linux":
|
|
287
|
+
if (type === "zed") {
|
|
288
|
+
return _nullishCoalesce(process.env["XDG_DATA_HOME"], () => ( _path2.default.join(home, ".local", "share")));
|
|
289
|
+
}
|
|
290
|
+
return _nullishCoalesce(process.env["XDG_CONFIG_HOME"], () => ( _path2.default.join(home, ".config")));
|
|
291
|
+
case "win32":
|
|
292
|
+
if (type === "zed") {
|
|
293
|
+
return _nullishCoalesce(process.env["LOCALAPPDATA"], () => ( _path2.default.join(home, "AppData", "Local")));
|
|
294
|
+
}
|
|
295
|
+
return _nullishCoalesce(process.env["APPDATA"], () => ( _path2.default.join(home, "AppData", "Roaming")));
|
|
296
|
+
default:
|
|
297
|
+
return _path2.default.join(home, ".config");
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
async function checkCwdInStorage(entry, normalizedCwd, platform) {
|
|
301
|
+
const storageName = _optionalChain([entry, 'access', _2 => _2.storage, 'optionalAccess', _3 => _3[platform]]);
|
|
302
|
+
if (!storageName || !entry.storage) return false;
|
|
303
|
+
try {
|
|
304
|
+
if (entry.storage.type === "zed") {
|
|
305
|
+
return await checkZedStorage(storageName, normalizedCwd, platform);
|
|
306
|
+
}
|
|
307
|
+
return await checkVSCodeFamilyStorage(storageName, normalizedCwd, platform);
|
|
308
|
+
} catch (e3) {
|
|
309
|
+
return false;
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
async function checkVSCodeFamilyStorage(storageName, normalizedCwd, platform) {
|
|
313
|
+
const basePath = getStorageBasePath("vscode-family", platform);
|
|
314
|
+
const dbPath = _path2.default.join(basePath, storageName, "User", "globalStorage", "state.vscdb");
|
|
315
|
+
const raw = await querySqlite(
|
|
316
|
+
dbPath,
|
|
317
|
+
"SELECT value FROM ItemTable WHERE key = 'history.recentlyOpenedPathsList'"
|
|
318
|
+
);
|
|
319
|
+
if (!raw) return false;
|
|
320
|
+
try {
|
|
321
|
+
const data = JSON.parse(raw);
|
|
322
|
+
for (const entry of _nullishCoalesce(data.entries, () => ( []))) {
|
|
323
|
+
if (!entry.folderUri) continue;
|
|
324
|
+
try {
|
|
325
|
+
const url = new URL(entry.folderUri);
|
|
326
|
+
if (url.protocol === "file:") {
|
|
327
|
+
const folder = _path2.default.resolve(decodeURIComponent(url.pathname));
|
|
328
|
+
if (pathMatchesCwd(normalizedCwd, folder, platform)) return true;
|
|
329
|
+
}
|
|
330
|
+
} catch (e4) {
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
return false;
|
|
334
|
+
} catch (e5) {
|
|
335
|
+
return false;
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
async function checkZedStorage(storageName, normalizedCwd, platform) {
|
|
339
|
+
const basePath = getStorageBasePath("zed", platform);
|
|
340
|
+
const dbPath = _path2.default.join(basePath, storageName, "db", "0-stable", "db.sqlite");
|
|
341
|
+
const escaped = normalizedCwd.replace(/'/g, "''");
|
|
342
|
+
const raw = await querySqlite(
|
|
343
|
+
dbPath,
|
|
344
|
+
`SELECT COUNT(*) FROM workspaces WHERE paths IS NOT NULL AND paths = '${escaped}'`
|
|
345
|
+
);
|
|
346
|
+
return raw !== null && raw.trim() !== "0";
|
|
347
|
+
}
|
|
348
|
+
async function querySqlite(dbPath, query) {
|
|
349
|
+
return new Promise((resolve) => {
|
|
350
|
+
_child_process.exec.call(void 0,
|
|
351
|
+
`sqlite3 -readonly "${dbPath}" "${query}"`,
|
|
352
|
+
{ encoding: "utf-8", timeout: 3e3 },
|
|
353
|
+
(error, stdout) => {
|
|
354
|
+
if (error) {
|
|
355
|
+
resolve(null);
|
|
356
|
+
return;
|
|
357
|
+
}
|
|
358
|
+
const trimmed = stdout.trim();
|
|
359
|
+
resolve(trimmed.length > 0 ? trimmed : null);
|
|
360
|
+
}
|
|
361
|
+
);
|
|
362
|
+
});
|
|
363
|
+
}
|
|
364
|
+
function getExtensionSuggestions(detected) {
|
|
365
|
+
const detectedKinds = new Set(detected.map((d) => d.kind));
|
|
366
|
+
const seen = /* @__PURE__ */ new Set();
|
|
367
|
+
const suggestions = [];
|
|
368
|
+
for (const entry of IDE_REGISTRY) {
|
|
369
|
+
if (!entry.extensionUrl) continue;
|
|
370
|
+
if (!detectedKinds.has(entry.kind)) continue;
|
|
371
|
+
if (seen.has(entry.extensionUrl)) continue;
|
|
372
|
+
seen.add(entry.extensionUrl);
|
|
373
|
+
suggestions.push({
|
|
374
|
+
displayName: entry.displayName,
|
|
375
|
+
url: entry.extensionUrl
|
|
376
|
+
});
|
|
377
|
+
}
|
|
378
|
+
return suggestions;
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
// src/commands/ide.ts
|
|
382
|
+
function groupByIDE(detected) {
|
|
383
|
+
const matching = [];
|
|
384
|
+
const matchedKinds = /* @__PURE__ */ new Set();
|
|
385
|
+
const nonMatching = /* @__PURE__ */ new Map();
|
|
386
|
+
for (const ide2 of detected) {
|
|
387
|
+
if (ide2.matchesCwd) {
|
|
388
|
+
matching.push(ide2);
|
|
389
|
+
matchedKinds.add(ide2.kind);
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
for (const ide2 of detected) {
|
|
393
|
+
if (matchedKinds.has(ide2.kind)) continue;
|
|
394
|
+
if (nonMatching.has(ide2.kind)) continue;
|
|
395
|
+
nonMatching.set(ide2.kind, ide2);
|
|
396
|
+
}
|
|
397
|
+
return { matching, nonMatching };
|
|
398
|
+
}
|
|
399
|
+
async function ide(ctx) {
|
|
400
|
+
console.log(_chalk2.default.bold.cyan(`
|
|
401
|
+
${_chunkLOXOD4IScjs.t.call(void 0, "commands.ide.title")}`));
|
|
402
|
+
console.log(_chalk2.default.gray(_chunkLOXOD4IScjs.t.call(void 0, "commands.ide.connectDescription")));
|
|
403
|
+
console.log();
|
|
404
|
+
const detected = await detectRunningIDEs(ctx.workspaceRoot);
|
|
405
|
+
const { matching, nonMatching } = groupByIDE(detected);
|
|
406
|
+
if (detected.length === 0) {
|
|
407
|
+
console.log(_chalk2.default.yellow(_chunkLOXOD4IScjs.t.call(void 0, "commands.ide.noIdesDetected")));
|
|
408
|
+
console.log();
|
|
409
|
+
printExtensionSuggestions(detected);
|
|
410
|
+
return null;
|
|
411
|
+
}
|
|
412
|
+
if (matching.length === 0) {
|
|
413
|
+
console.log(_chalk2.default.yellow(_chunkLOXOD4IScjs.t.call(void 0, "commands.ide.noMatchingIdes")));
|
|
414
|
+
console.log();
|
|
415
|
+
if (nonMatching.size > 0) {
|
|
416
|
+
console.log(
|
|
417
|
+
_chalk2.default.gray(
|
|
418
|
+
_chunkLOXOD4IScjs.t.call(void 0, "commands.ide.otherNotMatching", { count: String(nonMatching.size) })
|
|
419
|
+
)
|
|
420
|
+
);
|
|
421
|
+
console.log();
|
|
422
|
+
printNonMatchingIDEs([...nonMatching.values()]);
|
|
423
|
+
}
|
|
424
|
+
printExtensionSuggestions(detected);
|
|
425
|
+
return null;
|
|
426
|
+
}
|
|
427
|
+
console.log(
|
|
428
|
+
_chalk2.default.green(
|
|
429
|
+
_chunkLOXOD4IScjs.t.call(void 0, "commands.ide.foundMatching", { count: String(matching.length) })
|
|
430
|
+
)
|
|
431
|
+
);
|
|
432
|
+
console.log();
|
|
433
|
+
const options = matching.map((ide2) => ({
|
|
434
|
+
label: `${ide2.displayName}: ${_nullishCoalesce(ide2.workspacePath, () => ( _chunkLOXOD4IScjs.t.call(void 0, "common.unknown")))}`,
|
|
435
|
+
value: ide2.kind
|
|
436
|
+
}));
|
|
437
|
+
const result = await _chunkQRQ5EX7Icjs.showModal.call(void 0, {
|
|
438
|
+
title: _chunkLOXOD4IScjs.t.call(void 0, "commands.ide.selectPrompt"),
|
|
439
|
+
options
|
|
440
|
+
});
|
|
441
|
+
if (!result) {
|
|
442
|
+
console.log(_chalk2.default.gray(`
|
|
443
|
+
${_chunkLOXOD4IScjs.t.call(void 0, "common.cancelled")}`));
|
|
444
|
+
return null;
|
|
445
|
+
}
|
|
446
|
+
const selected = matching.find((d) => d.kind === result.value);
|
|
447
|
+
if (selected) {
|
|
448
|
+
console.log(
|
|
449
|
+
_chalk2.default.green(
|
|
450
|
+
`
|
|
451
|
+
\u2713 ${_chunkLOXOD4IScjs.t.call(void 0, "commands.ide.connected", { ide: selected.displayName })}`
|
|
452
|
+
)
|
|
453
|
+
);
|
|
454
|
+
}
|
|
455
|
+
if (nonMatching.size > 0) {
|
|
456
|
+
console.log();
|
|
457
|
+
console.log(
|
|
458
|
+
_chalk2.default.gray(
|
|
459
|
+
_chunkLOXOD4IScjs.t.call(void 0, "commands.ide.otherNotMatching", { count: String(nonMatching.size) })
|
|
460
|
+
)
|
|
461
|
+
);
|
|
462
|
+
console.log();
|
|
463
|
+
printNonMatchingIDEs([...nonMatching.values()]);
|
|
464
|
+
}
|
|
465
|
+
printExtensionSuggestions(detected);
|
|
466
|
+
return null;
|
|
467
|
+
}
|
|
468
|
+
function printNonMatchingIDEs(ides) {
|
|
469
|
+
for (const ide2 of ides) {
|
|
470
|
+
const wsPath = _nullishCoalesce(ide2.workspacePath, () => ( _chunkLOXOD4IScjs.t.call(void 0, "common.unknown")));
|
|
471
|
+
console.log(_chalk2.default.gray(` \u2022 ${ide2.displayName}: ${wsPath}`));
|
|
472
|
+
}
|
|
473
|
+
console.log();
|
|
474
|
+
}
|
|
475
|
+
function printExtensionSuggestions(detected) {
|
|
476
|
+
const suggestions = getExtensionSuggestions(detected);
|
|
477
|
+
if (suggestions.length === 0) return;
|
|
478
|
+
console.log(_chalk2.default.dim(`\u{1F4A1} ${_chunkLOXOD4IScjs.t.call(void 0, "commands.ide.extensionHint")}`));
|
|
479
|
+
for (const suggestion of suggestions) {
|
|
480
|
+
const link = _terminallink2.default.call(void 0, suggestion.url, suggestion.url);
|
|
481
|
+
console.log(_chalk2.default.dim(` \u2022 ${suggestion.displayName}: ${link}`));
|
|
482
|
+
}
|
|
483
|
+
console.log();
|
|
484
|
+
}
|
|
485
|
+
var metadata = {
|
|
486
|
+
command: "/ide",
|
|
487
|
+
description: _chunkLOXOD4IScjs.t.call(void 0, "commands.ide.description"),
|
|
488
|
+
implemented: true
|
|
489
|
+
};
|
|
490
|
+
|
|
491
|
+
|
|
492
|
+
|
|
493
|
+
|
|
494
|
+
exports.ide = ide; exports.metadata = metadata;
|
|
495
|
+
/**
|
|
496
|
+
* @license
|
|
497
|
+
* Copyright 2025 Autohand AI LLC
|
|
498
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
499
|
+
*/
|
|
@@ -2,7 +2,10 @@ import {
|
|
|
2
2
|
showConfirm,
|
|
3
3
|
showInput,
|
|
4
4
|
showModal
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-PNSRJT46.js";
|
|
6
|
+
import {
|
|
7
|
+
t
|
|
8
|
+
} from "./chunk-UET7BDX2.js";
|
|
6
9
|
|
|
7
10
|
// src/commands/export.ts
|
|
8
11
|
import chalk from "chalk";
|
|
@@ -79,7 +82,7 @@ function formatTimestamp(timestamp) {
|
|
|
79
82
|
minute: "2-digit"
|
|
80
83
|
});
|
|
81
84
|
}
|
|
82
|
-
function formatMessage(message, options,
|
|
85
|
+
function formatMessage(message, options, _index) {
|
|
83
86
|
const parts = [];
|
|
84
87
|
const roleEmoji = {
|
|
85
88
|
user: "\u{1F464}",
|
|
@@ -242,7 +245,7 @@ function getSuggestedFilename(metadata2, format) {
|
|
|
242
245
|
// src/commands/export.ts
|
|
243
246
|
var metadata = {
|
|
244
247
|
command: "/export",
|
|
245
|
-
description: "
|
|
248
|
+
description: t("commands.export.description"),
|
|
246
249
|
implemented: true
|
|
247
250
|
};
|
|
248
251
|
async function execute(args, context) {
|
|
@@ -328,12 +331,11 @@ async function execute(args, context) {
|
|
|
328
331
|
try {
|
|
329
332
|
await saveExport(content, filePath);
|
|
330
333
|
console.log();
|
|
331
|
-
console.log(chalk.green("
|
|
332
|
-
console.log(chalk.cyan(` ${filePath}`));
|
|
334
|
+
console.log(chalk.green(t("commands.export.success", { path: filePath })));
|
|
333
335
|
console.log(chalk.gray(` ${messages.length} messages, ${(Buffer.byteLength(content, "utf8") / 1024).toFixed(1)} KB`));
|
|
334
336
|
console.log();
|
|
335
337
|
} catch (error) {
|
|
336
|
-
console.log(chalk.red(
|
|
338
|
+
console.log(chalk.red(t("commands.export.failed", { error: error.message })));
|
|
337
339
|
}
|
|
338
340
|
}
|
|
339
341
|
|