aliasmate 2.3.0 → 2.4.0

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 (74) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +56 -1
  3. package/dist/cli/completion.js +4 -4
  4. package/dist/cli/completion.js.map +1 -1
  5. package/dist/cli/extras.d.ts +5 -0
  6. package/dist/cli/extras.d.ts.map +1 -0
  7. package/dist/cli/extras.js +73 -0
  8. package/dist/cli/extras.js.map +1 -0
  9. package/dist/cli/init.d.ts +2 -0
  10. package/dist/cli/init.d.ts.map +1 -0
  11. package/dist/cli/init.js +140 -0
  12. package/dist/cli/init.js.map +1 -0
  13. package/dist/cli/manage.d.ts.map +1 -1
  14. package/dist/cli/manage.js +5 -3
  15. package/dist/cli/manage.js.map +1 -1
  16. package/dist/cli/project.d.ts +2 -0
  17. package/dist/cli/project.d.ts.map +1 -0
  18. package/dist/cli/project.js +105 -0
  19. package/dist/cli/project.js.map +1 -0
  20. package/dist/cli/run.d.ts +2 -0
  21. package/dist/cli/run.d.ts.map +1 -1
  22. package/dist/cli/run.js +80 -8
  23. package/dist/cli/run.js.map +1 -1
  24. package/dist/cli/sync.d.ts +2 -0
  25. package/dist/cli/sync.d.ts.map +1 -0
  26. package/dist/cli/sync.js +122 -0
  27. package/dist/cli/sync.js.map +1 -0
  28. package/dist/core/clipboard.d.ts +3 -0
  29. package/dist/core/clipboard.d.ts.map +1 -0
  30. package/dist/core/clipboard.js +57 -0
  31. package/dist/core/clipboard.js.map +1 -0
  32. package/dist/core/commands.d.ts +6 -1
  33. package/dist/core/commands.d.ts.map +1 -1
  34. package/dist/core/commands.js +19 -2
  35. package/dist/core/commands.js.map +1 -1
  36. package/dist/core/project.d.ts +21 -0
  37. package/dist/core/project.d.ts.map +1 -0
  38. package/dist/core/project.js +130 -0
  39. package/dist/core/project.js.map +1 -0
  40. package/dist/core/recent.d.ts +6 -1
  41. package/dist/core/recent.d.ts.map +1 -1
  42. package/dist/core/recent.js +11 -2
  43. package/dist/core/recent.js.map +1 -1
  44. package/dist/core/runner.d.ts +22 -4
  45. package/dist/core/runner.d.ts.map +1 -1
  46. package/dist/core/runner.js +72 -8
  47. package/dist/core/runner.js.map +1 -1
  48. package/dist/core/suggest.d.ts +12 -0
  49. package/dist/core/suggest.d.ts.map +1 -0
  50. package/dist/core/suggest.js +109 -0
  51. package/dist/core/suggest.js.map +1 -0
  52. package/dist/core/transfer.d.ts.map +1 -1
  53. package/dist/core/transfer.js +6 -1
  54. package/dist/core/transfer.js.map +1 -1
  55. package/dist/core/types.d.ts +8 -0
  56. package/dist/core/types.d.ts.map +1 -1
  57. package/dist/core/undo.d.ts +7 -0
  58. package/dist/core/undo.d.ts.map +1 -0
  59. package/dist/core/undo.js +34 -0
  60. package/dist/core/undo.js.map +1 -0
  61. package/dist/index.js +39 -4
  62. package/dist/index.js.map +1 -1
  63. package/dist/ui/format.d.ts +2 -0
  64. package/dist/ui/format.d.ts.map +1 -1
  65. package/dist/ui/format.js +5 -2
  66. package/dist/ui/format.js.map +1 -1
  67. package/dist/ui/interactive.d.ts +5 -1
  68. package/dist/ui/interactive.d.ts.map +1 -1
  69. package/dist/ui/interactive.js +122 -26
  70. package/dist/ui/interactive.js.map +1 -1
  71. package/dist/ui/onboarding.d.ts.map +1 -1
  72. package/dist/ui/onboarding.js +20 -0
  73. package/dist/ui/onboarding.js.map +1 -1
  74. package/package.json +1 -1
@@ -1,6 +1,11 @@
1
1
  import { ExecutionEntry } from './types';
2
2
  export declare function getExecutionHistory(): ExecutionEntry[];
3
- export declare function recordExecution(commandName: string): void;
3
+ export declare function recordExecution(commandName: string, outcome?: {
4
+ exitCode: number;
5
+ durationMs: number;
6
+ }): void;
7
+ /** Most recent execution entry for a command, if any. */
8
+ export declare function getLastExecution(commandName: string): ExecutionEntry | undefined;
4
9
  export declare function clearExecutionHistory(): void;
5
10
  /** Unique command names, most recently run first. Powers @N references. */
6
11
  export declare function getRecentNames(limit?: number): string[];
@@ -1 +1 @@
1
- {"version":3,"file":"recent.d.ts","sourceRoot":"","sources":["../../src/core/recent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAKzC,wBAAgB,mBAAmB,IAAI,cAAc,EAAE,CAEtD;AAED,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAIzD;AAED,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAED,2EAA2E;AAC3E,wBAAgB,cAAc,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAUvD;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,gDAAgD;AAChD,wBAAgB,aAAa,IAAI,YAAY,EAAE,CAe9C"}
1
+ {"version":3,"file":"recent.d.ts","sourceRoot":"","sources":["../../src/core/recent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAKzC,wBAAgB,mBAAmB,IAAI,cAAc,EAAE,CAEtD;AAED,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GACjD,IAAI,CAQN;AAED,yDAAyD;AACzD,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAEhF;AAED,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAED,2EAA2E;AAC3E,wBAAgB,cAAc,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAUvD;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,gDAAgD;AAChD,wBAAgB,aAAa,IAAI,YAAY,EAAE,CAe9C"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getExecutionHistory = getExecutionHistory;
4
4
  exports.recordExecution = recordExecution;
5
+ exports.getLastExecution = getLastExecution;
5
6
  exports.clearExecutionHistory = clearExecutionHistory;
6
7
  exports.getRecentNames = getRecentNames;
7
8
  exports.getUsageStats = getUsageStats;
@@ -11,11 +12,19 @@ const MAX_ENTRIES = 200;
11
12
  function getExecutionHistory() {
12
13
  return (0, store_1.getMetadata)(HISTORY_KEY) ?? [];
13
14
  }
14
- function recordExecution(commandName) {
15
+ function recordExecution(commandName, outcome) {
15
16
  const history = getExecutionHistory();
16
- history.unshift({ commandName, executedAt: new Date().toISOString() });
17
+ history.unshift({
18
+ commandName,
19
+ executedAt: new Date().toISOString(),
20
+ ...(outcome ? { exitCode: outcome.exitCode, durationMs: outcome.durationMs } : {}),
21
+ });
17
22
  (0, store_1.setMetadata)(HISTORY_KEY, history.slice(0, MAX_ENTRIES));
18
23
  }
24
+ /** Most recent execution entry for a command, if any. */
25
+ function getLastExecution(commandName) {
26
+ return getExecutionHistory().find((e) => e.commandName === commandName);
27
+ }
19
28
  function clearExecutionHistory() {
20
29
  (0, store_1.setMetadata)(HISTORY_KEY, []);
21
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"recent.js","sourceRoot":"","sources":["../../src/core/recent.ts"],"names":[],"mappings":";;AAMA,kDAEC;AAED,0CAIC;AAED,sDAEC;AAGD,wCAUC;AASD,sCAeC;AAvDD,mCAAmD;AAGnD,MAAM,WAAW,GAAG,mBAAmB,CAAC;AACxC,MAAM,WAAW,GAAG,GAAG,CAAC;AAExB,SAAgB,mBAAmB;IACjC,OAAO,IAAA,mBAAW,EAAmB,WAAW,CAAC,IAAI,EAAE,CAAC;AAC1D,CAAC;AAED,SAAgB,eAAe,CAAC,WAAmB;IACjD,MAAM,OAAO,GAAG,mBAAmB,EAAE,CAAC;IACtC,OAAO,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACvE,IAAA,mBAAW,EAAC,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,SAAgB,qBAAqB;IACnC,IAAA,mBAAW,EAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAC/B,CAAC;AAED,2EAA2E;AAC3E,SAAgB,cAAc,CAAC,KAAc;IAC3C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,KAAK,IAAI,mBAAmB,EAAE,EAAE,CAAC;QAC1C,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC;YAAE,SAAS;QAC1C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC/B,IAAI,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,IAAI,KAAK;YAAE,MAAM;IAC3D,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAQD,gDAAgD;AAChD,SAAgB,aAAa;IAC3B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAwB,CAAC;IAC9C,KAAK,MAAM,KAAK,IAAI,mBAAmB,EAAE,EAAE,CAAC;QAC1C,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC9C,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,QAAQ,IAAI,CAAC,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE;gBAC3B,IAAI,EAAE,KAAK,CAAC,WAAW;gBACvB,QAAQ,EAAE,CAAC;gBACX,SAAS,EAAE,KAAK,CAAC,UAAU;aAC5B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;AACrE,CAAC"}
1
+ {"version":3,"file":"recent.js","sourceRoot":"","sources":["../../src/core/recent.ts"],"names":[],"mappings":";;AAMA,kDAEC;AAED,0CAWC;AAGD,4CAEC;AAED,sDAEC;AAGD,wCAUC;AASD,sCAeC;AAnED,mCAAmD;AAGnD,MAAM,WAAW,GAAG,mBAAmB,CAAC;AACxC,MAAM,WAAW,GAAG,GAAG,CAAC;AAExB,SAAgB,mBAAmB;IACjC,OAAO,IAAA,mBAAW,EAAmB,WAAW,CAAC,IAAI,EAAE,CAAC;AAC1D,CAAC;AAED,SAAgB,eAAe,CAC7B,WAAmB,EACnB,OAAkD;IAElD,MAAM,OAAO,GAAG,mBAAmB,EAAE,CAAC;IACtC,OAAO,CAAC,OAAO,CAAC;QACd,WAAW;QACX,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACpC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACnF,CAAC,CAAC;IACH,IAAA,mBAAW,EAAC,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,yDAAyD;AACzD,SAAgB,gBAAgB,CAAC,WAAmB;IAClD,OAAO,mBAAmB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,WAAW,CAAC,CAAC;AAC1E,CAAC;AAED,SAAgB,qBAAqB;IACnC,IAAA,mBAAW,EAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAC/B,CAAC;AAED,2EAA2E;AAC3E,SAAgB,cAAc,CAAC,KAAc;IAC3C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,KAAK,IAAI,mBAAmB,EAAE,EAAE,CAAC;QAC1C,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC;YAAE,SAAS;QAC1C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC/B,IAAI,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,IAAI,KAAK;YAAE,MAAM;IAC3D,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAQD,gDAAgD;AAChD,SAAgB,aAAa;IAC3B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAwB,CAAC;IAC9C,KAAK,MAAM,KAAK,IAAI,mBAAmB,EAAE,EAAE,CAAC;QAC1C,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC9C,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,QAAQ,IAAI,CAAC,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE;gBAC3B,IAAI,EAAE,KAAK,CAAC,WAAW;gBACvB,QAAQ,EAAE,CAAC;gBACX,SAAS,EAAE,KAAK,CAAC,UAAU;aAC5B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;AACrE,CAAC"}
@@ -1,13 +1,31 @@
1
- import { SavedCommand } from './types';
1
+ import { ExecutionResult, SavedCommand } from './types';
2
2
  export interface RunPlan {
3
3
  name: string;
4
4
  saved: SavedCommand;
5
5
  cwd: string;
6
6
  cwdSource: 'saved' | 'current' | 'override';
7
7
  dangers: string[];
8
+ /** Extra CLI args (after --) appended to the command line. */
9
+ extraArgs: string[];
10
+ /** Distinct {{placeholder}} names found in the command text. */
11
+ placeholders: string[];
8
12
  }
13
+ export declare function findPlaceholders(command: string): string[];
14
+ export declare function fillPlaceholders(command: string, values: Record<string, string>): string;
9
15
  /** Resolve a name (or alias or @N) into a concrete execution plan. */
10
- export declare function planRun(nameInput: string, pathOverride?: string): RunPlan;
11
- /** Execute a plan, recording it in the usage history. */
12
- export declare function executePlan(plan: RunPlan): Promise<import("./types").ExecutionResult>;
16
+ export declare function planRun(nameInput: string, pathOverride?: string, extraArgs?: string[]): RunPlan;
17
+ /** Compose the final command line from plan + placeholder values + extra args. */
18
+ export declare function finalCommand(plan: RunPlan, values?: Record<string, string>): string;
19
+ export interface StepOutcome {
20
+ step: string;
21
+ result: ExecutionResult;
22
+ }
23
+ /**
24
+ * Execute a plan, recording it in the usage history.
25
+ * Chains (saved.steps) run each referenced command sequentially in its own
26
+ * directory/env, stopping at the first failure.
27
+ */
28
+ export declare function executePlan(plan: RunPlan, values?: Record<string, string>, onStep?: (step: string, index: number, total: number) => void): Promise<ExecutionResult & {
29
+ steps?: StepOutcome[];
30
+ }>;
13
31
  //# sourceMappingURL=runner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/core/runner.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,YAAY,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC;IAC5C,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,sEAAsE;AACtE,wBAAgB,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CA0BzE;AAED,yDAAyD;AACzD,wBAAsB,WAAW,CAAC,IAAI,EAAE,OAAO,8CAW9C"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/core/runner.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAExD,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,YAAY,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC;IAC5C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,8DAA8D;IAC9D,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,gEAAgE;IAChE,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAID,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAI1D;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAExF;AAED,sEAAsE;AACtE,wBAAgB,OAAO,CACrB,SAAS,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,MAAM,EACrB,SAAS,GAAE,MAAM,EAAO,GACvB,OAAO,CAmCT;AAED,kFAAkF;AAClF,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GAAG,MAAM,CAOvF;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,eAAe,CAAC;CACzB;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,OAAO,EACb,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EACnC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GAC5D,OAAO,CAAC,eAAe,GAAG;IAAE,KAAK,CAAC,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC,CA4BtD"}
@@ -33,22 +33,37 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.findPlaceholders = findPlaceholders;
37
+ exports.fillPlaceholders = fillPlaceholders;
36
38
  exports.planRun = planRun;
39
+ exports.finalCommand = finalCommand;
37
40
  exports.executePlan = executePlan;
38
41
  const path = __importStar(require("path"));
39
42
  const commands_1 = require("./commands");
43
+ const project_1 = require("./project");
40
44
  const recent_1 = require("./recent");
41
45
  const executor_1 = require("./executor");
42
46
  const validate_1 = require("./validate");
47
+ const PLACEHOLDER = /\{\{\s*([A-Za-z_][A-Za-z0-9_-]*)\s*\}\}/g;
48
+ function findPlaceholders(command) {
49
+ const names = new Set();
50
+ for (const match of command.matchAll(PLACEHOLDER))
51
+ names.add(match[1]);
52
+ return [...names];
53
+ }
54
+ function fillPlaceholders(command, values) {
55
+ return command.replace(PLACEHOLDER, (_, name) => values[name] ?? '');
56
+ }
43
57
  /** Resolve a name (or alias or @N) into a concrete execution plan. */
44
- function planRun(nameInput, pathOverride) {
45
- const name = (0, commands_1.resolveName)(nameInput, (0, recent_1.getRecentNames)());
58
+ function planRun(nameInput, pathOverride, extraArgs = []) {
59
+ const effective = (0, project_1.listEffectiveCommands)();
60
+ const name = effective.commands[nameInput] ? nameInput : (0, commands_1.resolveName)(nameInput, (0, recent_1.getRecentNames)());
46
61
  if (!name) {
47
62
  throw new Error(nameInput.startsWith('@')
48
63
  ? `No recent command at ${nameInput}. Run "aliasmate recent" to see history.`
49
64
  : `Command "${nameInput}" not found. Run "aliasmate list" to see saved commands.`);
50
65
  }
51
- const saved = (0, commands_1.getCommand)(name);
66
+ const saved = effective.commands[name];
52
67
  if (!saved)
53
68
  throw new Error(`Command "${name}" not found`);
54
69
  let cwd;
@@ -65,19 +80,68 @@ function planRun(nameInput, pathOverride) {
65
80
  cwd = saved.directory;
66
81
  cwdSource = 'saved';
67
82
  }
68
- return { name, saved, cwd, cwdSource, dangers: (0, validate_1.getDangerWarnings)(saved.command) };
83
+ return {
84
+ name,
85
+ saved,
86
+ cwd,
87
+ cwdSource,
88
+ dangers: (0, validate_1.getDangerWarnings)(saved.command),
89
+ extraArgs,
90
+ placeholders: saved.steps?.length ? [] : findPlaceholders(saved.command),
91
+ };
92
+ }
93
+ /** Compose the final command line from plan + placeholder values + extra args. */
94
+ function finalCommand(plan, values = {}) {
95
+ let cmd = plan.placeholders.length > 0
96
+ ? fillPlaceholders(plan.saved.command, values)
97
+ : plan.saved.command;
98
+ if (plan.extraArgs.length > 0)
99
+ cmd = `${cmd} ${plan.extraArgs.join(' ')}`;
100
+ return cmd;
101
+ }
102
+ /**
103
+ * Execute a plan, recording it in the usage history.
104
+ * Chains (saved.steps) run each referenced command sequentially in its own
105
+ * directory/env, stopping at the first failure.
106
+ */
107
+ async function executePlan(plan, values = {}, onStep) {
108
+ if (plan.saved.steps?.length) {
109
+ const outcomes = [];
110
+ const started = Date.now();
111
+ for (let i = 0; i < plan.saved.steps.length; i++) {
112
+ const stepName = plan.saved.steps[i];
113
+ const stepPlan = planRun(stepName);
114
+ onStep?.(stepName, i, plan.saved.steps.length);
115
+ const result = await runSingle(stepPlan, stepPlan.saved.command);
116
+ outcomes.push({ step: stepName, result });
117
+ if (!result.success) {
118
+ const total = {
119
+ success: false,
120
+ exitCode: result.exitCode,
121
+ durationMs: Date.now() - started,
122
+ };
123
+ (0, recent_1.recordExecution)(plan.name, total);
124
+ return { ...total, steps: outcomes };
125
+ }
126
+ }
127
+ const total = { success: true, exitCode: 0, durationMs: Date.now() - started };
128
+ (0, recent_1.recordExecution)(plan.name, total);
129
+ return { ...total, steps: outcomes };
130
+ }
131
+ const result = await runSingle(plan, finalCommand(plan, values));
132
+ (0, recent_1.recordExecution)(plan.name, { exitCode: result.exitCode, durationMs: result.durationMs });
133
+ return result;
69
134
  }
70
- /** Execute a plan, recording it in the usage history. */
71
- async function executePlan(plan) {
135
+ async function runSingle(plan, command) {
72
136
  const errors = (0, validate_1.validateSavedCommand)({
73
137
  ...plan.saved,
138
+ command,
74
139
  directory: plan.cwd,
75
140
  pathMode: 'saved',
76
141
  }).filter((issue) => issue.level === 'error');
77
142
  if (errors.length > 0) {
78
143
  throw new Error(errors.map((e) => e.message).join('; '));
79
144
  }
80
- (0, recent_1.recordExecution)(plan.name);
81
- return (0, executor_1.executeCommand)(plan.saved.command, plan.cwd, plan.saved.env);
145
+ return (0, executor_1.executeCommand)(command, plan.cwd, plan.saved.env);
82
146
  }
83
147
  //# sourceMappingURL=runner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/core/runner.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA,0BA0BC;AAGD,kCAWC;AAxDD,2CAA6B;AAC7B,yCAAqD;AACrD,qCAA2D;AAC3D,yCAA4C;AAC5C,yCAAqE;AAWrE,sEAAsE;AACtE,SAAgB,OAAO,CAAC,SAAiB,EAAE,YAAqB;IAC9D,MAAM,IAAI,GAAG,IAAA,sBAAW,EAAC,SAAS,EAAE,IAAA,uBAAc,GAAE,CAAC,CAAC;IACtD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CACb,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC;YACvB,CAAC,CAAC,wBAAwB,SAAS,0CAA0C;YAC7E,CAAC,CAAC,YAAY,SAAS,0DAA0D,CACpF,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,IAAA,qBAAU,EAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,aAAa,CAAC,CAAC;IAE3D,IAAI,GAAW,CAAC;IAChB,IAAI,SAA+B,CAAC;IACpC,IAAI,YAAY,EAAE,CAAC;QACjB,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACjC,SAAS,GAAG,UAAU,CAAC;IACzB,CAAC;SAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,OAAO,CAAC,KAAK,SAAS,EAAE,CAAC;QACrD,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QACpB,SAAS,GAAG,SAAS,CAAC;IACxB,CAAC;SAAM,CAAC;QACN,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC;QACtB,SAAS,GAAG,OAAO,CAAC;IACtB,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,IAAA,4BAAiB,EAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;AACpF,CAAC;AAED,yDAAyD;AAClD,KAAK,UAAU,WAAW,CAAC,IAAa;IAC7C,MAAM,MAAM,GAAG,IAAA,+BAAoB,EAAC;QAClC,GAAG,IAAI,CAAC,KAAK;QACb,SAAS,EAAE,IAAI,CAAC,GAAG;QACnB,QAAQ,EAAE,OAAO;KAClB,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC;IAC9C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3D,CAAC;IACD,IAAA,wBAAe,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,OAAO,IAAA,yBAAc,EAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACtE,CAAC"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/core/runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export interface Suggestion {
2
+ command: string;
3
+ count: number;
4
+ }
5
+ /**
6
+ * Find the command the user keeps typing but hasn't saved.
7
+ * Reads the raw log written by the shell hook (aliasmate init).
8
+ */
9
+ export declare function getSuggestion(): Suggestion | null;
10
+ /** Drop a command from future suggestions (called after it gets saved). */
11
+ export declare function clearFromRawLog(command: string): void;
12
+ //# sourceMappingURL=suggest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"suggest.d.ts","sourceRoot":"","sources":["../../src/core/suggest.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAgBD;;;GAGG;AACH,wBAAgB,aAAa,IAAI,UAAU,GAAG,IAAI,CAkCjD;AAED,2EAA2E;AAC3E,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CASrD"}
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.getSuggestion = getSuggestion;
37
+ exports.clearFromRawLog = clearFromRawLog;
38
+ const fs = __importStar(require("fs"));
39
+ const path = __importStar(require("path"));
40
+ const store_1 = require("./store");
41
+ const commands_1 = require("./commands");
42
+ const RAW_LOG = 'raw.log';
43
+ const SCAN_WINDOW = 300;
44
+ const ROTATE_AT = 2000;
45
+ const MIN_REPEATS = 3;
46
+ function rawLogPath() {
47
+ return path.join((0, store_1.getConfigDir)(), RAW_LOG);
48
+ }
49
+ function isSuggestible(cmd) {
50
+ return (cmd.length > 4 &&
51
+ cmd.length < 200 &&
52
+ !cmd.startsWith('aliasmate') &&
53
+ !cmd.startsWith('am ') &&
54
+ !/^(cd|ls|ll|la|pwd|clear|exit|history|man|which|cat|echo|top|htop)(\s|$)/.test(cmd));
55
+ }
56
+ /**
57
+ * Find the command the user keeps typing but hasn't saved.
58
+ * Reads the raw log written by the shell hook (aliasmate init).
59
+ */
60
+ function getSuggestion() {
61
+ const file = rawLogPath();
62
+ if (!fs.existsSync(file))
63
+ return null;
64
+ let lines;
65
+ try {
66
+ lines = fs.readFileSync(file, 'utf8').split('\n');
67
+ }
68
+ catch {
69
+ return null;
70
+ }
71
+ // Keep the log from growing forever.
72
+ if (lines.length > ROTATE_AT) {
73
+ lines = lines.slice(-SCAN_WINDOW);
74
+ try {
75
+ fs.writeFileSync(file, lines.join('\n'), 'utf8');
76
+ }
77
+ catch {
78
+ // Best effort.
79
+ }
80
+ }
81
+ const savedCommands = new Set(Object.values((0, commands_1.listCommands)()).map((c) => c.command));
82
+ const counts = new Map();
83
+ for (const raw of lines.slice(-SCAN_WINDOW)) {
84
+ const cmd = raw.trim();
85
+ if (!isSuggestible(cmd) || savedCommands.has(cmd))
86
+ continue;
87
+ counts.set(cmd, (counts.get(cmd) ?? 0) + 1);
88
+ }
89
+ let best = null;
90
+ for (const [command, count] of counts) {
91
+ if (count >= MIN_REPEATS && (!best || count > best.count))
92
+ best = { command, count };
93
+ }
94
+ return best;
95
+ }
96
+ /** Drop a command from future suggestions (called after it gets saved). */
97
+ function clearFromRawLog(command) {
98
+ const file = rawLogPath();
99
+ if (!fs.existsSync(file))
100
+ return;
101
+ try {
102
+ const lines = fs.readFileSync(file, 'utf8').split('\n');
103
+ fs.writeFileSync(file, lines.filter((l) => l.trim() !== command).join('\n'), 'utf8');
104
+ }
105
+ catch {
106
+ // Best effort.
107
+ }
108
+ }
109
+ //# sourceMappingURL=suggest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"suggest.js","sourceRoot":"","sources":["../../src/core/suggest.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"transfer.d.ts","sourceRoot":"","sources":["../../src/core/transfer.ts"],"names":[],"mappings":"AAQA,0DAA0D;AAC1D,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG/C;AAED,yEAAyE;AACzE,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,MAAM,CAUnF;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAWD;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAA;CAAO,GACtD,YAAY,CAsCd"}
1
+ {"version":3,"file":"transfer.d.ts","sourceRoot":"","sources":["../../src/core/transfer.ts"],"names":[],"mappings":"AASA,0DAA0D;AAC1D,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG/C;AAED,yEAAyE;AACzE,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,MAAM,CAUnF;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAWD;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAA;CAAO,GACtD,YAAY,CA6Cd"}
@@ -42,6 +42,7 @@ const path = __importStar(require("path"));
42
42
  const commands_1 = require("./commands");
43
43
  const env_1 = require("./env");
44
44
  const store_1 = require("./store");
45
+ const undo_1 = require("./undo");
45
46
  /** Expand a leading ~ and resolve to an absolute path. */
46
47
  function expandPath(file) {
47
48
  const expanded = file.startsWith('~') ? path.join(os.homedir(), file.slice(1)) : file;
@@ -82,6 +83,7 @@ function importFromFile(file, options = {}) {
82
83
  throw new Error('Could not parse the import file (JSON expected)');
83
84
  }
84
85
  const result = { imported: 0, skipped: [], invalid: [] };
86
+ (0, undo_1.pushUndo)(`import ${path.basename(resolved)}`);
85
87
  const existing = (0, commands_1.listCommands)();
86
88
  if (Object.keys(existing).length > 0) {
87
89
  result.backup = path.join((0, store_1.getConfigDir)(), `backup-${Date.now()}.json`);
@@ -102,7 +104,10 @@ function importFromFile(file, options = {}) {
102
104
  directory: entry.directory,
103
105
  pathMode: entry.pathMode,
104
106
  env: entry.env,
105
- });
107
+ description: entry.description,
108
+ tags: entry.tags,
109
+ steps: entry.steps,
110
+ }, { undo: false });
106
111
  result.imported++;
107
112
  }
108
113
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../src/core/transfer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../src/core/transfer.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,12 @@ export interface SavedCommand {
6
6
  directory: string;
7
7
  pathMode?: PathMode;
8
8
  env?: Record<string, string>;
9
+ /** One-line human note: why/when to use this command. */
10
+ description?: string;
11
+ /** Free-form labels for filtering. */
12
+ tags?: string[];
13
+ /** Chain: names of saved commands to run sequentially (stops on failure). */
14
+ steps?: string[];
9
15
  createdAt: string;
10
16
  updatedAt: string;
11
17
  }
@@ -15,6 +21,8 @@ export type AliasMap = Record<string, string>;
15
21
  export interface ExecutionEntry {
16
22
  commandName: string;
17
23
  executedAt: string;
24
+ exitCode?: number;
25
+ durationMs?: number;
18
26
  }
19
27
  export interface ValidationIssue {
20
28
  level: 'error' | 'warning';
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;AAE3C,yFAAyF;AACzF,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAEtD,iDAAiD;AACjD,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE9C,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;AAE3C,yFAAyF;AACzF,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sCAAsC;IACtC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,6EAA6E;IAC7E,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAEtD,iDAAiD;AACjD,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE9C,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC"}
@@ -0,0 +1,7 @@
1
+ /** Snapshot the current commands before a destructive mutation. */
2
+ export declare function pushUndo(label: string): void;
3
+ /** Restore the most recent snapshot. Returns its label, or null if empty. */
4
+ export declare function undoLast(): string | null;
5
+ /** Peek at what undo would revert. */
6
+ export declare function peekUndo(): string | null;
7
+ //# sourceMappingURL=undo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"undo.d.ts","sourceRoot":"","sources":["../../src/core/undo.ts"],"names":[],"mappings":"AAYA,mEAAmE;AACnE,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAQ5C;AAED,6EAA6E;AAC7E,wBAAgB,QAAQ,IAAI,MAAM,GAAG,IAAI,CAOxC;AAED,sCAAsC;AACtC,wBAAgB,QAAQ,IAAI,MAAM,GAAG,IAAI,CAGxC"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.pushUndo = pushUndo;
4
+ exports.undoLast = undoLast;
5
+ exports.peekUndo = peekUndo;
6
+ const store_1 = require("./store");
7
+ const UNDO_KEY = 'undo_stack';
8
+ const MAX_UNDO = 10;
9
+ /** Snapshot the current commands before a destructive mutation. */
10
+ function pushUndo(label) {
11
+ const stack = (0, store_1.getMetadata)(UNDO_KEY) ?? [];
12
+ stack.unshift({
13
+ label,
14
+ at: new Date().toISOString(),
15
+ commands: JSON.parse(JSON.stringify(store_1.configFile.read())),
16
+ });
17
+ (0, store_1.setMetadata)(UNDO_KEY, stack.slice(0, MAX_UNDO));
18
+ }
19
+ /** Restore the most recent snapshot. Returns its label, or null if empty. */
20
+ function undoLast() {
21
+ const stack = (0, store_1.getMetadata)(UNDO_KEY) ?? [];
22
+ const entry = stack.shift();
23
+ if (!entry)
24
+ return null;
25
+ store_1.configFile.write(entry.commands);
26
+ (0, store_1.setMetadata)(UNDO_KEY, stack);
27
+ return entry.label;
28
+ }
29
+ /** Peek at what undo would revert. */
30
+ function peekUndo() {
31
+ const stack = (0, store_1.getMetadata)(UNDO_KEY) ?? [];
32
+ return stack[0]?.label ?? null;
33
+ }
34
+ //# sourceMappingURL=undo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"undo.js","sourceRoot":"","sources":["../../src/core/undo.ts"],"names":[],"mappings":";;AAaA,4BAQC;AAGD,4BAOC;AAGD,4BAGC;AArCD,mCAA+D;AAG/D,MAAM,QAAQ,GAAG,YAAY,CAAC;AAC9B,MAAM,QAAQ,GAAG,EAAE,CAAC;AAQpB,mEAAmE;AACnE,SAAgB,QAAQ,CAAC,KAAa;IACpC,MAAM,KAAK,GAAG,IAAA,mBAAW,EAAc,QAAQ,CAAC,IAAI,EAAE,CAAC;IACvD,KAAK,CAAC,OAAO,CAAC;QACZ,KAAK;QACL,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QAC5B,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAU,CAAC,IAAI,EAAE,CAAC,CAAe;KACtE,CAAC,CAAC;IACH,IAAA,mBAAW,EAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,6EAA6E;AAC7E,SAAgB,QAAQ;IACtB,MAAM,KAAK,GAAG,IAAA,mBAAW,EAAc,QAAQ,CAAC,IAAI,EAAE,CAAC;IACvD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAC5B,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,kBAAU,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACjC,IAAA,mBAAW,EAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC7B,OAAO,KAAK,CAAC,KAAK,CAAC;AACrB,CAAC;AAED,sCAAsC;AACtC,SAAgB,QAAQ;IACtB,MAAM,KAAK,GAAG,IAAA,mBAAW,EAAc,QAAQ,CAAC,IAAI,EAAE,CAAC;IACvD,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC;AACjC,CAAC"}
package/dist/index.js CHANGED
@@ -61,10 +61,41 @@ program
61
61
  .version(APP_VERSION);
62
62
  program
63
63
  .command('run <name> [path]')
64
- .description('Run a saved command (name, alias, or @N recent reference)')
64
+ .description('Run a saved command (name, alias, or @N; append args after --)')
65
65
  .option('--dry-run', 'Preview what would execute without running it')
66
66
  .option('--verbose', 'Show full details in dry-run output')
67
- .action((name, pathOverride, options) => wrap(async () => (await Promise.resolve().then(() => __importStar(require('./cli/run')))).runHandler(name, pathOverride, options)));
67
+ .action((name, pathOverride, options) => wrap(async () => (await Promise.resolve().then(() => __importStar(require('./cli/run')))).runHandler(name, pathOverride, {
68
+ ...options,
69
+ extraArgs: passthroughArgs,
70
+ })));
71
+ program
72
+ .command('copy <name>')
73
+ .description('Copy a saved command to the clipboard')
74
+ .action((name) => wrap(async () => (await Promise.resolve().then(() => __importStar(require('./cli/extras')))).copyHandler(name)));
75
+ program
76
+ .command('undo')
77
+ .description('Revert the last save/edit/rename/delete/import')
78
+ .action(() => wrap(async () => (await Promise.resolve().then(() => __importStar(require('./cli/extras')))).undoHandler()));
79
+ program
80
+ .command('chain <name> <steps...>')
81
+ .description('Save a chain that runs saved commands in sequence (stops on failure)')
82
+ .action((name, steps) => wrap(async () => (await Promise.resolve().then(() => __importStar(require('./cli/extras')))).chainHandler(name, steps)));
83
+ program
84
+ .command('tag <name> [tags...]')
85
+ .description('Set tags on a command (no tags: show, "-" clears)')
86
+ .action((name, tags) => wrap(async () => (await Promise.resolve().then(() => __importStar(require('./cli/extras')))).tagHandler(name, tags)));
87
+ program
88
+ .command('init [shell]')
89
+ .description('Print the shell hook for reliable capture (bash, zsh, fish) — or "install" it')
90
+ .action((shell) => wrap(async () => (await Promise.resolve().then(() => __importStar(require('./cli/init')))).initHandler(shell)));
91
+ program
92
+ .command('project [action] [name]')
93
+ .description('Project commands in .aliasmate.json: status | init | add <name> | remove <name>')
94
+ .action((action, name) => wrap(async () => (await Promise.resolve().then(() => __importStar(require('./cli/project')))).projectHandler(action, name)));
95
+ program
96
+ .command('sync <direction> [id]')
97
+ .description('Sync commands via a private GitHub gist: push | pull | set <gist-id> (needs gh CLI)')
98
+ .action((direction, id) => wrap(async () => (await Promise.resolve().then(() => __importStar(require('./cli/sync')))).syncHandler(direction, id)));
68
99
  program
69
100
  .command('save')
70
101
  .description('Open the TUI with a blank new-command form')
@@ -152,7 +183,11 @@ program
152
183
  console.log(`Saved commands: ${Object.keys(listCommands()).length}`);
153
184
  }));
154
185
  program.showSuggestionAfterError(true);
155
- const args = process.argv.slice(2);
186
+ // Everything after a bare -- is passed through to `run` verbatim.
187
+ const ddIndex = process.argv.indexOf('--');
188
+ const passthroughArgs = ddIndex >= 0 ? process.argv.slice(ddIndex + 1) : [];
189
+ const argv = ddIndex >= 0 ? process.argv.slice(0, ddIndex) : process.argv;
190
+ const args = argv.slice(2);
156
191
  if (args.length === 0) {
157
192
  // Zero-args: interactive home screen (with first-run welcome).
158
193
  wrap(async () => {
@@ -167,6 +202,6 @@ if (args.length === 0) {
167
202
  });
168
203
  }
169
204
  else {
170
- program.parse(process.argv);
205
+ program.parse(argv);
171
206
  }
172
207
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,8 @@ export declare function toCompact(commands: CommandMap): string;
8
8
  export interface TableOptions {
9
9
  runCounts?: Map<string, number>;
10
10
  lastRuns?: Map<string, string>;
11
+ /** Names sourced from the project file (marked in the table). */
12
+ projectNames?: Set<string>;
11
13
  }
12
14
  /** Shorten a path for display: home becomes ~. */
13
15
  export declare function prettyPath(dir: string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/ui/format.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAKrE,2CAA2C;AAC3C,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,GAAE,IAAiB,GAAG,MAAM,CAcnE;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAE1D;AAUD,wBAAgB,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,UAAO,GAAG,MAAM,CAEhE;AAMD,wBAAgB,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,UAAO,GAAG,MAAM,CAgBhE;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,CAItD;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED,kDAAkD;AAClD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG9C;AAED,gDAAgD;AAChD,wBAAgB,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,GAAE,YAAiB,GAAG,MAAM,CAiChF;AAED,wBAAgB,MAAM,CACpB,QAAQ,EAAE,UAAU,EACpB,MAAM,EAAE,UAAU,EAClB,OAAO,GAAE,YAAiB,GACzB,MAAM,CAWR;AAED,iEAAiE;AACjE,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,MAAM,CAEjE"}
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/ui/format.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAKrE,2CAA2C;AAC3C,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,GAAE,IAAiB,GAAG,MAAM,CAcnE;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAE1D;AAUD,wBAAgB,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,UAAO,GAAG,MAAM,CAEhE;AAMD,wBAAgB,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,UAAO,GAAG,MAAM,CAgBhE;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,CAItD;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,iEAAiE;IACjE,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC5B;AAED,kDAAkD;AAClD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG9C;AAED,gDAAgD;AAChD,wBAAgB,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,GAAE,YAAiB,GAAG,MAAM,CAoChF;AAED,wBAAgB,MAAM,CACpB,QAAQ,EAAE,UAAU,EACpB,MAAM,EAAE,UAAU,EAClB,OAAO,GAAE,YAAiB,GACzB,MAAM,CAWR;AAED,iEAAiE;AACjE,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,MAAM,CAEjE"}