autohand-cli 0.7.7 → 0.7.9

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.
Files changed (175) hide show
  1. package/dist/CommunitySkillsCache-N2RWBCY2.cjs +7 -0
  2. package/dist/{CommunitySkillsCache-Q22FUAR5.js → CommunitySkillsCache-YWDFZBKP.js} +2 -2
  3. package/dist/MemoryManager-J7APSLZ7.js +7 -0
  4. package/dist/MemoryManager-RLLYVIDY.cjs +7 -0
  5. package/dist/PermissionManager-ISI5OAJK.cjs +10 -0
  6. package/dist/{PermissionManager-HATZKTRC.js → PermissionManager-WYP5JPCQ.js} +3 -3
  7. package/dist/SessionManager-7MF76Q3Q.cjs +9 -0
  8. package/dist/{SessionManager-S5R6O3NU.js → SessionManager-SFBDIBGA.js} +2 -2
  9. package/dist/{SkillsRegistry-R5WDM6T3.js → SkillsRegistry-E437FFJV.js} +2 -2
  10. package/dist/SkillsRegistry-UTK2YT4M.cjs +8 -0
  11. package/dist/{SyncApiClient-FAOMIZAP.js → SyncApiClient-AYXYSOJM.js} +1 -1
  12. package/dist/SyncApiClient-ID3KXEMA.cjs +10 -0
  13. package/dist/agents-N2ZB4O2A.cjs +9 -0
  14. package/dist/{agents-ICAC3KD3.js → agents-ZMT7HBRT.js} +2 -2
  15. package/dist/agents-new-3EWS2NR3.cjs +11 -0
  16. package/dist/agents-new-TCGUYK5I.js +11 -0
  17. package/dist/cc-2W6M7J45.cjs +8 -0
  18. package/dist/cc-UTTLESTY.js +8 -0
  19. package/dist/{chunk-XFPITUFJ.cjs → chunk-32R47CAQ.cjs} +50 -8
  20. package/dist/{chunk-2JPUEN44.cjs → chunk-3DGR4GNN.cjs} +57 -84
  21. package/dist/{chunk-WIUGUR5T.js → chunk-3DVEGFBZ.js} +8 -8
  22. package/dist/{chunk-YWKZF2SA.js → chunk-3SDEZTZD.js} +46 -46
  23. package/dist/{chunk-KH7BCZJN.js → chunk-4BZ65NIH.js} +1 -1
  24. package/dist/{chunk-52MLYK5P.js → chunk-4YQ2OJAL.js} +1 -1
  25. package/dist/{chunk-VDZJ3W4M.cjs → chunk-5UC3VAJ2.cjs} +2 -2
  26. package/dist/{chunk-NYQVQYIF.cjs → chunk-6DSJ7XST.cjs} +16 -11
  27. package/dist/chunk-6SM6N7DJ.js +2828 -0
  28. package/dist/{chunk-MDWULS57.js → chunk-6UJMCWRY.js} +56 -33
  29. package/dist/{chunk-Q3WCMY3Z.js → chunk-7GJR65DQ.js} +2 -2
  30. package/dist/{chunk-B5N5UAMO.cjs → chunk-7WKEDH3E.cjs} +5 -5
  31. package/dist/{chunk-B4ZPNXZE.cjs → chunk-A5KU3JZW.cjs} +1 -1
  32. package/dist/{chunk-PMMSDR44.cjs → chunk-AQNY2M6Q.cjs} +3 -1
  33. package/dist/{chunk-AVL4DKQO.js → chunk-BTVNRLSE.js} +1 -1
  34. package/dist/{chunk-PU534KPO.cjs → chunk-CHVXUA3O.cjs} +4 -4
  35. package/dist/{chunk-QXAPHGEW.js → chunk-CMNQAF6C.js} +7 -2
  36. package/dist/{chunk-7TOHYAUF.cjs → chunk-CPO5KEQS.cjs} +2 -2
  37. package/dist/{chunk-PR53E47T.cjs → chunk-DRXFJR7F.cjs} +22 -30
  38. package/dist/{chunk-JBKP2CLA.cjs → chunk-FN5S5OE7.cjs} +47 -47
  39. package/dist/{chunk-SFGJQPGC.cjs → chunk-FPHU2ES6.cjs} +56 -33
  40. package/dist/{chunk-3L76MLO5.cjs → chunk-FSTLJIR5.cjs} +21 -28
  41. package/dist/chunk-HF65HHDU.cjs +83 -0
  42. package/dist/{chunk-A552JHUJ.cjs → chunk-HUA44A35.cjs} +21 -18
  43. package/dist/{chunk-B7EUETGY.cjs → chunk-HWDP4HQO.cjs} +4 -4
  44. package/dist/{chunk-OC5YDNFC.js → chunk-IYZBLUEJ.js} +35 -52
  45. package/dist/chunk-J2RUI7GJ.js +83 -0
  46. package/dist/{chunk-WH3D42BQ.js → chunk-J7VV7JAB.js} +55 -82
  47. package/dist/{chunk-VEDIYPWY.cjs → chunk-JRV4SOJU.cjs} +9 -9
  48. package/dist/{chunk-GWIAMKKF.js → chunk-K6CZ2AGI.js} +6 -3
  49. package/dist/{chunk-SYJLMBLP.cjs → chunk-KJAZ4YAR.cjs} +17 -17
  50. package/dist/{chunk-BAFJQUWR.js → chunk-KS45GREN.js} +12 -19
  51. package/dist/chunk-KXNAGJE6.cjs +589 -0
  52. package/dist/chunk-L5QWMGLV.cjs +2828 -0
  53. package/dist/{chunk-U5WIP4HS.js → chunk-LCBOOA7S.js} +47 -5
  54. package/dist/chunk-LJCSSR5V.cjs +63 -0
  55. package/dist/chunk-LKIKNRUP.js +219 -0
  56. package/dist/{chunk-WQSWU2QA.cjs → chunk-LY5VN3B3.cjs} +9 -6
  57. package/dist/{chunk-YAGD43KA.cjs → chunk-LYMZDJX5.cjs} +36 -37
  58. package/dist/{chunk-SLISYSP4.cjs → chunk-MRDZHNCF.cjs} +4 -4
  59. package/dist/chunk-NCC6ETZS.js +362 -0
  60. package/dist/chunk-NCLCL7JK.js +63 -0
  61. package/dist/chunk-NTFNUTY2.js +589 -0
  62. package/dist/{chunk-GDTZQSJ6.cjs → chunk-O3EX3SAD.cjs} +2 -2
  63. package/dist/chunk-OO7EKEJH.cjs +219 -0
  64. package/dist/{chunk-P2Z6GDEN.js → chunk-OXJCLU3X.js} +1 -1
  65. package/dist/{chunk-23JQSCTO.js → chunk-P6EGMTK4.js} +1 -1
  66. package/dist/{chunk-VPAN5H7Q.js → chunk-PFS5ZOCO.js} +30 -31
  67. package/dist/{chunk-EKY5PKQI.js → chunk-PGH3MHPP.js} +3 -1
  68. package/dist/{chunk-GR7VWN63.js → chunk-PVSYZXS7.js} +18 -26
  69. package/dist/{chunk-NI3BQXKU.js → chunk-QAJM6VG5.js} +2 -2
  70. package/dist/{chunk-OBV3UUIL.js → chunk-R5PZPF55.js} +1 -1
  71. package/dist/{chunk-MJFBVQHB.js → chunk-RDGYHJ52.js} +5 -5
  72. package/dist/{chunk-YDH2BMEN.js → chunk-RX4KPL6H.js} +1 -1
  73. package/dist/{chunk-GFJ6AETU.cjs → chunk-T7HQBZZB.cjs} +6 -6
  74. package/dist/chunk-TSV4LVHK.js +35 -0
  75. package/dist/{chunk-7VW3A7DO.cjs → chunk-TUO5SZRD.cjs} +2 -2
  76. package/dist/{chunk-C3IFF3EH.cjs → chunk-UL5T2XIY.cjs} +36 -53
  77. package/dist/chunk-ULQ6MDSJ.cjs +362 -0
  78. package/dist/{chunk-UL7YPRCU.js → chunk-UP6YRP44.js} +1 -1
  79. package/dist/{chunk-G77ZY4QG.js → chunk-VQDWNDP5.js} +1 -1
  80. package/dist/chunk-VXCMGBXY.cjs +35 -0
  81. package/dist/{chunk-JHFH3N4U.cjs → chunk-WCN5WDOI.cjs} +2 -2
  82. package/dist/{chunk-53BR4MUW.cjs → chunk-WGO4ACS7.cjs} +3 -3
  83. package/dist/{chunk-4M2GX7RH.cjs → chunk-WJICM4SK.cjs} +2 -2
  84. package/dist/{chunk-4RWTUT2Z.js → chunk-WT367RVU.js} +19 -16
  85. package/dist/{chunk-A6QBABQ7.js → chunk-XOSFZHSS.js} +2 -2
  86. package/dist/{chunk-3YEDXG6S.js → chunk-YDJA5ETO.js} +1 -1
  87. package/dist/completion-NCSTSKTL.cjs +11 -0
  88. package/dist/{completion-Y42FKDT3.js → completion-NTZERPAZ.js} +2 -1
  89. package/dist/constants-B2X7KDIH.cjs +20 -0
  90. package/dist/{constants-ZLG6M5SI.js → constants-OFIAR4E5.js} +1 -1
  91. package/dist/export-5AJNVX4O.cjs +9 -0
  92. package/dist/{export-WJ5P6E5Z.js → export-ZQHTLV4W.js} +2 -1
  93. package/dist/feedback-F7BMGSV6.cjs +12 -0
  94. package/dist/feedback-NL7CWTRY.js +12 -0
  95. package/dist/hooks-AX5VPCZ3.cjs +10 -0
  96. package/dist/hooks-V22HVLQT.js +10 -0
  97. package/dist/index.cjs +5306 -3582
  98. package/dist/index.js +3780 -2056
  99. package/dist/language-IEKARNQH.js +13 -0
  100. package/dist/language-ULQCKXAD.cjs +13 -0
  101. package/dist/localProjectPermissions-7FI3XF4K.cjs +17 -0
  102. package/dist/{localProjectPermissions-YFFAKLUZ.js → localProjectPermissions-FD5AK5FB.js} +2 -2
  103. package/dist/login-PD3DFJLM.js +15 -0
  104. package/dist/login-VHGT4YKT.cjs +15 -0
  105. package/dist/logout-2QXNFGDT.js +13 -0
  106. package/dist/logout-A4SMKEFO.cjs +13 -0
  107. package/dist/permissions-S7433NQJ.js +10 -0
  108. package/dist/permissions-YZ6WCDBL.cjs +10 -0
  109. package/dist/plan-B3CW5DXJ.cjs +10 -0
  110. package/dist/plan-JFGNRL2S.js +10 -0
  111. package/dist/resume-54ERVSFM.cjs +10 -0
  112. package/dist/resume-YJ5CVKAP.js +10 -0
  113. package/dist/search-4TEQMUPU.js +11 -0
  114. package/dist/search-QGLS4SV7.cjs +11 -0
  115. package/dist/share-2B2T3AUU.cjs +11 -0
  116. package/dist/share-SZMXZIA3.js +11 -0
  117. package/dist/skills-HVQNCTGK.cjs +12 -0
  118. package/dist/{skills-3YEEODHK.js → skills-PB4HXV4R.js} +1 -1
  119. package/dist/{skills-install-FTGOHOZ4.cjs → skills-install-7SFS24HY.cjs} +10 -9
  120. package/dist/{skills-install-KAXAQSN6.js → skills-install-UBBNXWD5.js} +4 -3
  121. package/dist/skills-new-5FSDAJWE.js +12 -0
  122. package/dist/skills-new-IOTZYE6F.cjs +12 -0
  123. package/dist/{status-7LCXYYY4.js → status-AGPSKXSW.js} +2 -2
  124. package/dist/status-WOINF556.cjs +9 -0
  125. package/dist/{sync-3B7SNBYC.js → sync-64MZDWGG.js} +3 -3
  126. package/dist/sync-F5ECJW25.cjs +39 -0
  127. package/dist/{sync-H4UHHLKU.js → sync-LYKDHRFM.js} +3 -3
  128. package/dist/sync-W5UR7BEP.cjs +14 -0
  129. package/dist/theme-CWG3ZLHB.cjs +13 -0
  130. package/dist/theme-HQKV7YAP.js +13 -0
  131. package/package.json +2 -2
  132. package/dist/CommunitySkillsCache-2BITCEAA.cjs +0 -7
  133. package/dist/MemoryManager-2ATHG7BH.js +0 -7
  134. package/dist/MemoryManager-AENCGCEW.cjs +0 -7
  135. package/dist/PermissionManager-6HZGTK2N.cjs +0 -10
  136. package/dist/SessionManager-AG4WT3DP.cjs +0 -9
  137. package/dist/SkillsRegistry-ZXU6YDRP.cjs +0 -8
  138. package/dist/SyncApiClient-UOA4VLLD.cjs +0 -10
  139. package/dist/agents-YONWPKFS.cjs +0 -9
  140. package/dist/agents-new-NV557UVG.cjs +0 -10
  141. package/dist/agents-new-QHM3CO4B.js +0 -10
  142. package/dist/chunk-3HPUOQJN.cjs +0 -23
  143. package/dist/chunk-5DN5KNXU.js +0 -81
  144. package/dist/chunk-7BYSXAKS.js +0 -23
  145. package/dist/chunk-ARVFUZOB.js +0 -736
  146. package/dist/chunk-GWXXFQ3F.cjs +0 -81
  147. package/dist/chunk-XFQS2VGT.cjs +0 -736
  148. package/dist/completion-WVFWX7XQ.cjs +0 -10
  149. package/dist/constants-G2PLP5HH.cjs +0 -20
  150. package/dist/export-BKBJ7PB2.cjs +0 -8
  151. package/dist/feedback-HZBCTSFG.js +0 -10
  152. package/dist/feedback-JBQ3UPGZ.cjs +0 -10
  153. package/dist/hooks-G4VLYMLX.cjs +0 -9
  154. package/dist/hooks-LN4A6NQL.js +0 -9
  155. package/dist/language-KODBDE5R.js +0 -12
  156. package/dist/language-SJT475NW.cjs +0 -12
  157. package/dist/localProjectPermissions-AYQYGTOE.cjs +0 -17
  158. package/dist/login-TC2KROQI.js +0 -14
  159. package/dist/login-TYMR2ZD3.cjs +0 -14
  160. package/dist/logout-2ECV365P.js +0 -12
  161. package/dist/logout-CO3CPYZJ.cjs +0 -12
  162. package/dist/permissions-5MTH22EF.js +0 -9
  163. package/dist/permissions-IP5SITPI.cjs +0 -9
  164. package/dist/resume-EPOEF3WV.cjs +0 -9
  165. package/dist/resume-LOYD5MMP.js +0 -9
  166. package/dist/share-544SIZOY.js +0 -10
  167. package/dist/share-OETK2GUF.cjs +0 -10
  168. package/dist/skills-CRM55MKM.cjs +0 -12
  169. package/dist/skills-new-JF4FKNUT.cjs +0 -11
  170. package/dist/skills-new-JYX2GBKM.js +0 -11
  171. package/dist/status-E7MZEQ26.cjs +0 -9
  172. package/dist/sync-4RARBQIH.cjs +0 -39
  173. package/dist/sync-YZ6YZ42H.cjs +0 -14
  174. package/dist/theme-3XV5BWUB.js +0 -12
  175. package/dist/theme-Z2WS5XWZ.cjs +0 -12
@@ -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 _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 _chunk3HPUOQJNcjs = require('./chunk-3HPUOQJN.cjs');
3
+ var _chunkLJCSSR5Vcjs = require('./chunk-LJCSSR5V.cjs');
4
4
 
5
5
  // src/commands/hooks.ts
6
6
  var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
@@ -194,7 +194,7 @@ async function hooks(ctx) {
194
194
  const toggleLabel = settings.enabled !== false ? "\u25EF Disable all hooks" : "\u25CF Enable all hooks";
195
195
  choices.push({ name: "toggle_global", message: toggleLabel });
196
196
  }
197
- const actionResult = await _chunk3HPUOQJNcjs.safePrompt.call(void 0, {
197
+ const actionResult = await _chunkLJCSSR5Vcjs.safePrompt.call(void 0, {
198
198
  type: "select",
199
199
  name: "action",
200
200
  message: "Action",
@@ -230,29 +230,22 @@ async function toggleHooksMulti(manager, allHooks) {
230
230
  enabled: h.enabled !== false
231
231
  };
232
232
  });
233
- const result = await _chunk3HPUOQJNcjs.safePrompt.call(void 0, {
234
- type: "multiselect",
233
+ const result = await _chunkLJCSSR5Vcjs.safePrompt.call(void 0, {
234
+ type: "select",
235
235
  name: "selected",
236
- message: "Toggle hooks (space to select, enter to confirm)",
236
+ message: "Toggle hooks (select to enable/disable)",
237
237
  choices,
238
- initial: choices.filter((c) => c.enabled).map((c) => c.name)
238
+ initial: 0
239
239
  });
240
240
  if (!result) return;
241
- const selectedSet = new Set(result.selected);
242
- let changed = 0;
243
- for (let i = 0; i < allHooks.length; i++) {
244
- const hook = allHooks[i];
245
- const shouldBeEnabled = selectedSet.has(String(i));
246
- const currentlyEnabled = hook.enabled !== false;
247
- if (shouldBeEnabled !== currentlyEnabled) {
248
- const eventHooks = allHooks.filter((h) => h.event === hook.event);
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)`));
241
+ const selectedIndex = Number(result.selected);
242
+ const hook = allHooks[selectedIndex];
243
+ if (hook) {
244
+ const eventHooks = allHooks.filter((h) => h.event === hook.event);
245
+ const eventIndex = eventHooks.indexOf(hook);
246
+ await manager.toggleHook(hook.event, eventIndex);
247
+ const newState = hook.enabled === false ? "enabled" : "disabled";
248
+ console.log(_chalk2.default.green(` \u2713 Hook ${newState}: ${hook.event}`));
256
249
  } else {
257
250
  console.log(_chalk2.default.gray(" No changes made"));
258
251
  }
@@ -263,26 +256,26 @@ async function addHook(manager) {
263
256
  name: e,
264
257
  message: `${e} ${_chalk2.default.dim(`- ${EVENT_DESCRIPTIONS[e]}`)}`
265
258
  }));
266
- const eventResult = await _chunk3HPUOQJNcjs.safePrompt.call(void 0, {
259
+ const eventResult = await _chunkLJCSSR5Vcjs.safePrompt.call(void 0, {
267
260
  type: "select",
268
261
  name: "event",
269
262
  message: "Event to hook into",
270
263
  choices: eventChoices
271
264
  });
272
265
  if (!eventResult) return;
273
- const commandResult = await _chunk3HPUOQJNcjs.safePrompt.call(void 0, {
266
+ const commandResult = await _chunkLJCSSR5Vcjs.safePrompt.call(void 0, {
274
267
  type: "input",
275
268
  name: "command",
276
269
  message: "Shell command to execute",
277
270
  validate: (val) => typeof val === "string" && val.trim().length > 0 || "Command is required"
278
271
  });
279
272
  if (!commandResult || !commandResult.command) return;
280
- const descResult = await _chunk3HPUOQJNcjs.safePrompt.call(void 0, {
273
+ const descResult = await _chunkLJCSSR5Vcjs.safePrompt.call(void 0, {
281
274
  type: "input",
282
275
  name: "description",
283
276
  message: "Description (optional)"
284
277
  });
285
- const asyncResult = await _chunk3HPUOQJNcjs.safePrompt.call(void 0, {
278
+ const asyncResult = await _chunkLJCSSR5Vcjs.safePrompt.call(void 0, {
286
279
  type: "confirm",
287
280
  name: "async",
288
281
  message: "Run asynchronously (non-blocking)?",
@@ -307,7 +300,7 @@ async function removeHook(manager, allHooks) {
307
300
  message: `${eventTag} ${desc2}`
308
301
  };
309
302
  });
310
- const selectResult = await _chunk3HPUOQJNcjs.safePrompt.call(void 0, {
303
+ const selectResult = await _chunkLJCSSR5Vcjs.safePrompt.call(void 0, {
311
304
  type: "select",
312
305
  name: "hookIndex",
313
306
  message: "Select hook to remove",
@@ -319,7 +312,7 @@ async function removeHook(manager, allHooks) {
319
312
  const eventHooks = allHooks.filter((h) => h.event === hook.event);
320
313
  const eventIndex = eventHooks.indexOf(hook);
321
314
  const desc = hook.description || getShortCommand(hook.command);
322
- const confirmResult = await _chunk3HPUOQJNcjs.safePrompt.call(void 0, {
315
+ const confirmResult = await _chunkLJCSSR5Vcjs.safePrompt.call(void 0, {
323
316
  type: "confirm",
324
317
  name: "confirm",
325
318
  message: `Remove "${desc}"?`,
@@ -342,7 +335,7 @@ async function testHook(manager, allHooks) {
342
335
  message: `${eventTag} ${desc}`
343
336
  };
344
337
  });
345
- const selectResult = await _chunk3HPUOQJNcjs.safePrompt.call(void 0, {
338
+ const selectResult = await _chunkLJCSSR5Vcjs.safePrompt.call(void 0, {
346
339
  type: "select",
347
340
  name: "hookIndex",
348
341
  message: "Select hook to test",
@@ -0,0 +1,83 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2
+
3
+ var _chunkLY5VN3B3cjs = require('./chunk-LY5VN3B3.cjs');
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+ var _chunkL5QWMGLVcjs = require('./chunk-L5QWMGLV.cjs');
12
+
13
+ // src/commands/language.ts
14
+ var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
15
+ async function language(ctx) {
16
+ const currentLocale = _chunkL5QWMGLVcjs.getCurrentLocale.call(void 0, );
17
+ const currentDisplayName = _chunkL5QWMGLVcjs.LANGUAGE_DISPLAY_NAMES[currentLocale];
18
+ console.log(_chalk2.default.cyan(`
19
+ \u{1F310} ${_chunkL5QWMGLVcjs.t.call(void 0, "commands.language.title")}
20
+ `));
21
+ console.log(_chalk2.default.gray(`${_chunkL5QWMGLVcjs.t.call(void 0, "commands.language.currentLanguage", { language: currentDisplayName })}`));
22
+ console.log();
23
+ const options = _chunkL5QWMGLVcjs.SUPPORTED_LOCALES.map((locale) => ({
24
+ label: locale === currentLocale ? `${_chunkL5QWMGLVcjs.LANGUAGE_DISPLAY_NAMES[locale]} (${_chunkL5QWMGLVcjs.t.call(void 0, "common.current")})` : _chunkL5QWMGLVcjs.LANGUAGE_DISPLAY_NAMES[locale],
25
+ value: locale
26
+ }));
27
+ const result = await _chunkL5QWMGLVcjs.showModal.call(void 0, {
28
+ title: _chunkL5QWMGLVcjs.t.call(void 0, "commands.language.selectPrompt"),
29
+ options,
30
+ initialIndex: _chunkL5QWMGLVcjs.SUPPORTED_LOCALES.indexOf(currentLocale)
31
+ });
32
+ if (!result) {
33
+ console.log(_chalk2.default.gray("\nLanguage selection cancelled."));
34
+ return null;
35
+ }
36
+ const selected = result.value;
37
+ if (selected === currentLocale) {
38
+ console.log(_chalk2.default.gray(`
39
+ ${_chunkL5QWMGLVcjs.t.call(void 0, "commands.language.noChange")}`));
40
+ return null;
41
+ }
42
+ await _chunkL5QWMGLVcjs.changeLanguage.call(void 0, selected);
43
+ ctx.config.ui = { ...ctx.config.ui, locale: selected };
44
+ await _chunkLY5VN3B3cjs.saveConfig.call(void 0, ctx.config);
45
+ const newDisplayName = _chunkL5QWMGLVcjs.LANGUAGE_DISPLAY_NAMES[selected];
46
+ console.log(_chalk2.default.green(`
47
+ \u2713 ${_chunkL5QWMGLVcjs.t.call(void 0, "commands.language.changed", { language: newDisplayName })}`));
48
+ console.log();
49
+ return null;
50
+ }
51
+ async function languageInfo() {
52
+ const currentLocale = _chunkL5QWMGLVcjs.getCurrentLocale.call(void 0, );
53
+ const currentDisplayName = _chunkL5QWMGLVcjs.LANGUAGE_DISPLAY_NAMES[currentLocale];
54
+ console.log(_chalk2.default.cyan(`
55
+ \u{1F310} ${_chunkL5QWMGLVcjs.t.call(void 0, "commands.language.title")}
56
+ `));
57
+ console.log(_chalk2.default.gray(`${_chunkL5QWMGLVcjs.t.call(void 0, "commands.language.currentLanguage", { language: currentDisplayName })}`));
58
+ console.log(_chalk2.default.gray(`Locale code: ${_chalk2.default.white(currentLocale)}`));
59
+ console.log();
60
+ console.log(_chalk2.default.gray("Supported languages:"));
61
+ for (const locale of _chunkL5QWMGLVcjs.SUPPORTED_LOCALES) {
62
+ const marker = locale === currentLocale ? _chalk2.default.green("\u25CF") : _chalk2.default.gray("\u25CB");
63
+ console.log(` ${marker} ${_chunkL5QWMGLVcjs.LANGUAGE_DISPLAY_NAMES[locale]}`);
64
+ }
65
+ console.log();
66
+ return null;
67
+ }
68
+ var metadata = {
69
+ command: "/language",
70
+ description: "change display language",
71
+ implemented: true
72
+ };
73
+
74
+
75
+
76
+
77
+
78
+ exports.language = language; exports.languageInfo = languageInfo; exports.metadata = metadata;
79
+ /**
80
+ * @license
81
+ * Copyright 2025 Autohand AI LLC
82
+ * SPDX-License-Identifier: Apache-2.0
83
+ */
@@ -1,10 +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 _chunkPMMSDR44cjs = require('./chunk-PMMSDR44.cjs');
3
+ var _chunkL5QWMGLVcjs = require('./chunk-L5QWMGLV.cjs');
4
+
5
+
6
+ var _chunkAQNY2M6Qcjs = require('./chunk-AQNY2M6Q.cjs');
4
7
 
5
8
  // src/commands/resume.ts
6
9
  var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
7
- var _enquirer = require('enquirer'); var _enquirer2 = _interopRequireDefault(_enquirer);
8
10
  var _fsextra = require('fs-extra'); var _fsextra2 = _interopRequireDefault(_fsextra);
9
11
  var _path = require('path'); var _path2 = _interopRequireDefault(_path);
10
12
  var metadata = {
@@ -17,7 +19,7 @@ async function getSessionTitle(sessionMeta) {
17
19
  return sessionMeta.summary.slice(0, 60);
18
20
  }
19
21
  try {
20
- const conversationPath = _path2.default.join(_chunkPMMSDR44cjs.AUTOHAND_PATHS.sessions, sessionMeta.sessionId, "conversation.jsonl");
22
+ const conversationPath = _path2.default.join(_chunkAQNY2M6Qcjs.AUTOHAND_PATHS.sessions, sessionMeta.sessionId, "conversation.jsonl");
21
23
  if (await _fsextra2.default.pathExists(conversationPath)) {
22
24
  const content = await _fsextra2.default.readFile(conversationPath, "utf-8");
23
25
  const lines = content.trim().split("\n").filter((line) => line);
@@ -84,24 +86,25 @@ async function resume(ctx) {
84
86
  hint: "Use /sessions to see all"
85
87
  });
86
88
  }
87
- const { selected } = await _enquirer2.default.prompt([
88
- {
89
- type: "select",
90
- name: "selected",
91
- message: "Choose a session",
92
- choices
93
- }
94
- ]);
95
- if (selected === "__more__") {
96
- console.log(_chalk2.default.gray("\nUse /sessions to see all sessions, then /resume <id>"));
89
+ const options = choices.map((choice) => ({
90
+ label: choice.message,
91
+ value: choice.name,
92
+ description: choice.hint
93
+ }));
94
+ const result = await _chunkL5QWMGLVcjs.showModal.call(void 0, {
95
+ title: "Choose a session",
96
+ options
97
+ });
98
+ if (!result) {
99
+ console.log(_chalk2.default.gray("\nResume cancelled."));
97
100
  return null;
98
101
  }
99
- return resumeSession(ctx.sessionManager, selected);
100
- } catch (error) {
101
- if (error.name === "ExitPromptError" || _optionalChain([error, 'access', _ => _.message, 'optionalAccess', _2 => _2.includes, 'call', _3 => _3("canceled")])) {
102
- console.log(_chalk2.default.gray("\nResume cancelled."));
102
+ if (result.value === "__more__") {
103
+ console.log(_chalk2.default.gray("\nUse /sessions to see all sessions, then /resume <id>"));
103
104
  return null;
104
105
  }
106
+ return resumeSession(ctx.sessionManager, result.value);
107
+ } catch (error) {
105
108
  console.error(_chalk2.default.red(`Failed to list sessions: ${error.message}`));
106
109
  return null;
107
110
  }
@@ -111,7 +114,7 @@ async function resumeSession(sessionManager, sessionId) {
111
114
  const session = await sessionManager.loadSession(sessionId);
112
115
  const messages = session.getMessages();
113
116
  const firstUserMessage = messages.find((m) => m.role === "user");
114
- const title = session.metadata.summary || _optionalChain([firstUserMessage, 'optionalAccess', _4 => _4.content, 'access', _5 => _5.slice, 'call', _6 => _6(0, 50)]) || "Untitled session";
117
+ const title = session.metadata.summary || _optionalChain([firstUserMessage, 'optionalAccess', _ => _.content, 'access', _2 => _2.slice, 'call', _3 => _3(0, 50)]) || "Untitled session";
115
118
  console.log(_chalk2.default.cyan(`
116
119
  Resuming: ${title}`));
117
120
  console.log(_chalk2.default.gray(` Project: ${session.metadata.projectPath}`));
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- var _chunk7TOHYAUFcjs = require('./chunk-7TOHYAUF.cjs');
5
+ var _chunkCPO5KEQScjs = require('./chunk-CPO5KEQS.cjs');
6
6
 
7
7
  // src/permissions/PermissionManager.ts
8
8
  var DEFAULT_SECURITY_BLACKLIST = [
@@ -121,7 +121,7 @@ var PermissionManager = class {
121
121
  async initLocalSettings() {
122
122
  if (!this.workspaceRoot || this.localSettingsLoaded) return;
123
123
  try {
124
- const localSettings = await _chunk7TOHYAUFcjs.loadLocalProjectSettings.call(void 0, this.workspaceRoot);
124
+ const localSettings = await _chunkCPO5KEQScjs.loadLocalProjectSettings.call(void 0, this.workspaceRoot);
125
125
  if (_optionalChain([localSettings, 'optionalAccess', _ => _.permissions])) {
126
126
  this.localSettings = localSettings.permissions;
127
127
  }
@@ -133,7 +133,7 @@ var PermissionManager = class {
133
133
  * Get merged settings (global + local)
134
134
  */
135
135
  getMergedSettings() {
136
- return _chunk7TOHYAUFcjs.mergePermissions.call(void 0, this.settings, this.localSettings);
136
+ return _chunkCPO5KEQScjs.mergePermissions.call(void 0, this.settings, this.localSettings);
137
137
  }
138
138
  /**
139
139
  * Set permission mode (can be overridden by CLI flags)
@@ -193,7 +193,7 @@ var PermissionManager = class {
193
193
  const pattern = this.contextToPattern(context);
194
194
  if (allowed && this.workspaceRoot) {
195
195
  try {
196
- await _chunk7TOHYAUFcjs.addToLocalWhitelist.call(void 0, this.workspaceRoot, pattern);
196
+ await _chunkCPO5KEQScjs.addToLocalWhitelist.call(void 0, this.workspaceRoot, pattern);
197
197
  if (!this.localSettings) {
198
198
  this.localSettings = { whitelist: [] };
199
199
  }
@@ -1,7 +1,12 @@
1
+ import {
2
+ showConfirm,
3
+ showInput,
4
+ showModal
5
+ } from "./chunk-6SM6N7DJ.js";
6
+
1
7
  // src/commands/export.ts
2
8
  import chalk from "chalk";
3
9
  import path2 from "path";
4
- import enquirer from "enquirer";
5
10
 
6
11
  // src/session/exportSession.ts
7
12
  import fs from "fs-extra";
@@ -253,22 +258,19 @@ async function execute(args, context) {
253
258
  console.log(chalk.yellow("No sessions found to export."));
254
259
  return;
255
260
  }
256
- const { Select: Select2 } = enquirer;
257
- const sessionPrompt = new Select2({
258
- name: "session",
259
- message: "Select a session to export:",
260
- choices: sessions.slice(0, 10).map((s) => ({
261
- name: s.sessionId,
262
- message: `${s.projectName} - ${new Date(s.createdAt).toLocaleString()} (${s.messageCount} messages)`
263
- }))
261
+ const sessionOptions = sessions.slice(0, 10).map((s) => ({
262
+ label: `${s.projectName} - ${new Date(s.createdAt).toLocaleString()} (${s.messageCount} messages)`,
263
+ value: s.sessionId
264
+ }));
265
+ const sessionResult = await showModal({
266
+ title: "Select a session to export:",
267
+ options: sessionOptions
264
268
  });
265
- try {
266
- const selectedId = await sessionPrompt.run();
267
- session = await sessionManager.loadSession(selectedId);
268
- } catch {
269
+ if (!sessionResult) {
269
270
  console.log(chalk.gray("Cancelled."));
270
271
  return;
271
272
  }
273
+ session = await sessionManager.loadSession(sessionResult.value);
272
274
  }
273
275
  const metadata2 = session.metadata;
274
276
  const messages = session.getMessages();
@@ -276,56 +278,37 @@ async function execute(args, context) {
276
278
  console.log(chalk.yellow("No messages in session to export."));
277
279
  return;
278
280
  }
279
- const { Select, Confirm, Input } = enquirer;
280
- const formatPrompt = new Select({
281
- name: "format",
282
- message: "Export format:",
283
- choices: [
284
- { name: "md", message: "Markdown (.md)" },
285
- { name: "json", message: "JSON (.json)" },
286
- { name: "html", message: "HTML (.html)" }
287
- ]
281
+ const formatOptions = [
282
+ { label: "Markdown (.md)", value: "md" },
283
+ { label: "JSON (.json)", value: "json" },
284
+ { label: "HTML (.html)", value: "html" }
285
+ ];
286
+ const formatResult = await showModal({
287
+ title: "Export format:",
288
+ options: formatOptions
288
289
  });
289
- let format;
290
- try {
291
- format = await formatPrompt.run();
292
- } catch {
290
+ if (!formatResult) {
293
291
  console.log(chalk.gray("Cancelled."));
294
292
  return;
295
293
  }
294
+ const format = formatResult.value;
296
295
  const options = {};
297
296
  if (format === "md" || format === "html") {
298
- const includeToolsPrompt = new Confirm({
299
- name: "includeTools",
300
- message: "Include tool outputs?",
301
- initial: true
297
+ options.includeToolOutputs = await showConfirm({
298
+ title: "Include tool outputs?",
299
+ defaultValue: true
302
300
  });
303
- try {
304
- options.includeToolOutputs = await includeToolsPrompt.run();
305
- } catch {
306
- options.includeToolOutputs = true;
307
- }
308
- const includeTocPrompt = new Confirm({
309
- name: "includeToc",
310
- message: "Include table of contents?",
311
- initial: false
301
+ options.includeToc = await showConfirm({
302
+ title: "Include table of contents?",
303
+ defaultValue: false
312
304
  });
313
- try {
314
- options.includeToc = await includeTocPrompt.run();
315
- } catch {
316
- options.includeToc = false;
317
- }
318
305
  }
319
306
  const suggestedFilename = getSuggestedFilename(metadata2, format);
320
- const filenamePrompt = new Input({
321
- name: "filename",
322
- message: "Save as:",
323
- initial: suggestedFilename
307
+ const filename = await showInput({
308
+ title: "Save as:",
309
+ defaultValue: suggestedFilename
324
310
  });
325
- let filename;
326
- try {
327
- filename = await filenamePrompt.run();
328
- } catch {
311
+ if (!filename) {
329
312
  console.log(chalk.gray("Cancelled."));
330
313
  return;
331
314
  }
@@ -0,0 +1,83 @@
1
+ import {
2
+ saveConfig
3
+ } from "./chunk-K6CZ2AGI.js";
4
+ import {
5
+ LANGUAGE_DISPLAY_NAMES,
6
+ SUPPORTED_LOCALES,
7
+ changeLanguage,
8
+ getCurrentLocale,
9
+ showModal,
10
+ t
11
+ } from "./chunk-6SM6N7DJ.js";
12
+
13
+ // src/commands/language.ts
14
+ import chalk from "chalk";
15
+ async function language(ctx) {
16
+ const currentLocale = getCurrentLocale();
17
+ const currentDisplayName = LANGUAGE_DISPLAY_NAMES[currentLocale];
18
+ console.log(chalk.cyan(`
19
+ \u{1F310} ${t("commands.language.title")}
20
+ `));
21
+ console.log(chalk.gray(`${t("commands.language.currentLanguage", { language: currentDisplayName })}`));
22
+ console.log();
23
+ const options = SUPPORTED_LOCALES.map((locale) => ({
24
+ label: locale === currentLocale ? `${LANGUAGE_DISPLAY_NAMES[locale]} (${t("common.current")})` : LANGUAGE_DISPLAY_NAMES[locale],
25
+ value: locale
26
+ }));
27
+ const result = await showModal({
28
+ title: t("commands.language.selectPrompt"),
29
+ options,
30
+ initialIndex: SUPPORTED_LOCALES.indexOf(currentLocale)
31
+ });
32
+ if (!result) {
33
+ console.log(chalk.gray("\nLanguage selection cancelled."));
34
+ return null;
35
+ }
36
+ const selected = result.value;
37
+ if (selected === currentLocale) {
38
+ console.log(chalk.gray(`
39
+ ${t("commands.language.noChange")}`));
40
+ return null;
41
+ }
42
+ await changeLanguage(selected);
43
+ ctx.config.ui = { ...ctx.config.ui, locale: selected };
44
+ await saveConfig(ctx.config);
45
+ const newDisplayName = LANGUAGE_DISPLAY_NAMES[selected];
46
+ console.log(chalk.green(`
47
+ \u2713 ${t("commands.language.changed", { language: newDisplayName })}`));
48
+ console.log();
49
+ return null;
50
+ }
51
+ async function languageInfo() {
52
+ const currentLocale = getCurrentLocale();
53
+ const currentDisplayName = LANGUAGE_DISPLAY_NAMES[currentLocale];
54
+ console.log(chalk.cyan(`
55
+ \u{1F310} ${t("commands.language.title")}
56
+ `));
57
+ console.log(chalk.gray(`${t("commands.language.currentLanguage", { language: currentDisplayName })}`));
58
+ console.log(chalk.gray(`Locale code: ${chalk.white(currentLocale)}`));
59
+ console.log();
60
+ console.log(chalk.gray("Supported languages:"));
61
+ for (const locale of SUPPORTED_LOCALES) {
62
+ const marker = locale === currentLocale ? chalk.green("\u25CF") : chalk.gray("\u25CB");
63
+ console.log(` ${marker} ${LANGUAGE_DISPLAY_NAMES[locale]}`);
64
+ }
65
+ console.log();
66
+ return null;
67
+ }
68
+ var metadata = {
69
+ command: "/language",
70
+ description: "change display language",
71
+ implemented: true
72
+ };
73
+
74
+ export {
75
+ language,
76
+ languageInfo,
77
+ metadata
78
+ };
79
+ /**
80
+ * @license
81
+ * Copyright 2025 Autohand AI LLC
82
+ * SPDX-License-Identifier: Apache-2.0
83
+ */