@mediaproc/core 1.4.0 → 1.5.1

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 (38) hide show
  1. package/dist/branding/branding.d.ts +9 -6
  2. package/dist/branding/branding.d.ts.map +1 -1
  3. package/dist/branding/branding.js +16 -13
  4. package/dist/branding/branding.js.map +1 -1
  5. package/dist/explain/explainFlag.d.ts.map +1 -1
  6. package/dist/explain/explainFlag.js +109 -45
  7. package/dist/explain/explainFlag.js.map +1 -1
  8. package/dist/explain/phrases.d.ts +15 -0
  9. package/dist/explain/phrases.d.ts.map +1 -0
  10. package/dist/explain/phrases.js +101 -0
  11. package/dist/explain/phrases.js.map +1 -0
  12. package/dist/explain/templates/explainDetailsTemplate.d.ts.map +1 -1
  13. package/dist/explain/templates/explainDetailsTemplate.js +97 -45
  14. package/dist/explain/templates/explainDetailsTemplate.js.map +1 -1
  15. package/dist/explain/templates/explainHumanTemplate.d.ts.map +1 -1
  16. package/dist/explain/templates/explainHumanTemplate.js +79 -27
  17. package/dist/explain/templates/explainHumanTemplate.js.map +1 -1
  18. package/dist/formatters/explainFormatter.d.ts.map +1 -1
  19. package/dist/formatters/explainFormatter.js +2 -1
  20. package/dist/formatters/explainFormatter.js.map +1 -1
  21. package/dist/handlers/globalErrorHandler.js +1 -1
  22. package/dist/handlers/globalErrorHandler.js.map +1 -1
  23. package/dist/types/explainTypes.d.ts +123 -0
  24. package/dist/types/explainTypes.d.ts.map +1 -1
  25. package/dist/types/explainTypes.js +0 -1
  26. package/dist/types/explainTypes.js.map +1 -1
  27. package/dist/utils/index.d.ts +1 -0
  28. package/dist/utils/index.d.ts.map +1 -1
  29. package/dist/utils/index.js +1 -0
  30. package/dist/utils/index.js.map +1 -1
  31. package/dist/utils/normalizeColor.d.ts +7 -0
  32. package/dist/utils/normalizeColor.d.ts.map +1 -0
  33. package/dist/utils/normalizeColor.js +82 -0
  34. package/dist/utils/normalizeColor.js.map +1 -0
  35. package/dist/validators/pathValidator.d.ts.map +1 -1
  36. package/dist/validators/pathValidator.js +42 -5
  37. package/dist/validators/pathValidator.js.map +1 -1
  38. package/package.json +1 -1
@@ -1,19 +1,22 @@
1
1
  /**
2
- * Get version from package.json
2
+ * Get plugin version from package.json
3
+ * @param packageJsonPath - Path to the package json file
3
4
  */
4
- export declare function getVersion(packagePath: string): string;
5
+ export declare function getVersion(packageJsonPath: string): string;
5
6
  /**
6
7
  * Get CLI version from root package.json
8
+ * @param packageJsonPath - Path to the package json file
7
9
  */
8
- export declare function getCliVersion(): string;
10
+ export declare function getCliVersion(packageJsonPath: string): string;
9
11
  /**
10
12
  * Show CLI branding footer with documentation and GitHub links
13
+ * @param packageJsonPath - Path to main cli's package json
11
14
  */
12
- export declare function showBranding(): void;
15
+ export declare function showBranding(packageJsonPath: string): void;
13
16
  /**
14
17
  * Show plugin branding footer with version
15
18
  * @param pluginName - Name of the plugin (e.g., 'image', 'video', 'audio')
16
- * @param pluginPath - Path to plugin's package.json
19
+ * @param pluginPackageJsonPath - Path to plugin's package.json
17
20
  */
18
- export declare function showPluginBranding(pluginName: string, pluginPath: string): void;
21
+ export declare function showPluginBranding(pluginName: string, pluginPackageJsonPath: string): void;
19
22
  //# sourceMappingURL=branding.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"branding.d.ts","sourceRoot":"","sources":["../../src/branding/branding.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAOtD;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CActC;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAOnC;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAO/E"}
1
+ {"version":3,"file":"branding.d.ts","sourceRoot":"","sources":["../../src/branding/branding.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,wBAAgB,UAAU,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAO1D;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAc7D;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAO1D;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAO1F"}
@@ -2,11 +2,12 @@ import { readFileSync } from 'fs';
2
2
  import { join, dirname } from 'path';
3
3
  import { fileURLToPath } from 'url';
4
4
  /**
5
- * Get version from package.json
5
+ * Get plugin version from package.json
6
+ * @param packageJsonPath - Path to the package json file
6
7
  */
7
- export function getVersion(packagePath) {
8
+ export function getVersion(packageJsonPath) {
8
9
  try {
9
- const packageJson = JSON.parse(readFileSync(packagePath, 'utf-8'));
10
+ const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
10
11
  return packageJson.version || '0.0.0';
11
12
  }
12
13
  catch {
@@ -15,17 +16,18 @@ export function getVersion(packagePath) {
15
16
  }
16
17
  /**
17
18
  * Get CLI version from root package.json
19
+ * @param packageJsonPath - Path to the package json file
18
20
  */
19
- export function getCliVersion() {
21
+ export function getCliVersion(packageJsonPath) {
20
22
  try {
21
23
  // For ES modules, use import.meta.url
22
24
  if (typeof import.meta.url !== 'undefined') {
23
25
  const currentDir = dirname(fileURLToPath(import.meta.url));
24
- const packagePath = join(currentDir, '../../package.json');
26
+ const packagePath = join(currentDir, packageJsonPath);
25
27
  return getVersion(packagePath);
26
28
  }
27
29
  // Fallback: try from process.cwd()
28
- const packagePath = join(process.cwd(), 'package.json');
30
+ const packagePath = join(process.cwd(), packageJsonPath);
29
31
  return getVersion(packagePath);
30
32
  }
31
33
  catch {
@@ -34,26 +36,27 @@ export function getCliVersion() {
34
36
  }
35
37
  /**
36
38
  * Show CLI branding footer with documentation and GitHub links
39
+ * @param packageJsonPath - Path to main cli's package json
37
40
  */
38
- export function showBranding() {
39
- const version = getCliVersion();
41
+ export function showBranding(packageJsonPath) {
42
+ const version = getCliVersion(packageJsonPath);
40
43
  console.log('\n' + '─'.repeat(60));
41
44
  console.log(` 💙 Powered by MediaProc CLI v${version}`);
42
45
  console.log(' 📚 Documentation: \x1b[36mhttps://docs-mediaproc.vercel.app/\x1b[0m');
43
- console.log(' ⭐ Star us: \x1b[36mhttps://github.com/0xshariq/mediaproc-cli\x1b[0m');
46
+ console.log(' ⭐ Star us: \x1b[36mhttps://github.com/0xshariq/mediaproc\x1b[0m');
44
47
  console.log('─'.repeat(60) + '\n');
45
48
  }
46
49
  /**
47
50
  * Show plugin branding footer with version
48
51
  * @param pluginName - Name of the plugin (e.g., 'image', 'video', 'audio')
49
- * @param pluginPath - Path to plugin's package.json
52
+ * @param pluginPackageJsonPath - Path to plugin's package.json
50
53
  */
51
- export function showPluginBranding(pluginName, pluginPath) {
52
- const version = getVersion(pluginPath);
54
+ export function showPluginBranding(pluginName, pluginPackageJsonPath) {
55
+ const version = getVersion(pluginPackageJsonPath);
53
56
  console.log('\n' + '─'.repeat(60));
54
57
  console.log(` 💙 ${pluginName.charAt(0).toUpperCase() + pluginName.slice(1)} Plugin v${version} · Powered by MediaProc`);
55
58
  console.log(' 📚 Documentation: \x1b[36mhttps://docs-mediaproc.vercel.app/\x1b[0m');
56
- console.log(' ⭐ Star us: \x1b[36mhttps://github.com/0xshariq/mediaproc-cli\x1b[0m');
59
+ console.log(' ⭐ Star us: \x1b[36mhttps://github.com/0xshariq/mediaproc\x1b[0m');
57
60
  console.log('─'.repeat(60) + '\n');
58
61
  }
59
62
  //# sourceMappingURL=branding.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"branding.js","sourceRoot":"","sources":["../../src/branding/branding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,WAAmB;IAC5C,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;QACnE,OAAO,WAAW,CAAC,OAAO,IAAI,OAAO,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,IAAI,CAAC;QACH,sCAAsC;QACtC,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,WAAW,EAAE,CAAC;YAC3C,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;YAC3D,OAAO,UAAU,CAAC,WAAW,CAAC,CAAC;QACjC,CAAC;QACD,mCAAmC;QACnC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC;QACxD,OAAO,UAAU,CAAC,WAAW,CAAC,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC,CAAC,mBAAmB;IACrC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,kCAAkC,OAAO,EAAE,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC;IACrF,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC;IACrF,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;AACrC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,UAAkB,EAAE,UAAkB;IACvE,MAAM,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,QAAQ,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,OAAO,yBAAyB,CAAC,CAAC;IAC1H,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC;IACrF,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC;IACrF,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;AACrC,CAAC"}
1
+ {"version":3,"file":"branding.js","sourceRoot":"","sources":["../../src/branding/branding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,eAAuB;IAChD,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;QACvE,OAAO,WAAW,CAAC,OAAO,IAAI,OAAO,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,eAAuB;IACnD,IAAI,CAAC;QACH,sCAAsC;QACtC,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,WAAW,EAAE,CAAC;YAC3C,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;YACtD,OAAO,UAAU,CAAC,WAAW,CAAC,CAAC;QACjC,CAAC;QACD,mCAAmC;QACnC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,eAAe,CAAC,CAAC;QACzD,OAAO,UAAU,CAAC,WAAW,CAAC,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC,CAAC,mBAAmB;IACrC,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,eAAuB;IAClD,MAAM,OAAO,GAAG,aAAa,CAAC,eAAe,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,kCAAkC,OAAO,EAAE,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC;IACrF,OAAO,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAC;IACjF,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;AACrC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,UAAkB,EAAE,qBAA6B;IAClF,MAAM,OAAO,GAAG,UAAU,CAAC,qBAAqB,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,QAAQ,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,OAAO,yBAAyB,CAAC,CAAC;IAC1H,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC;IACrF,OAAO,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAC;IACjF,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;AACrC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"explainFlag.d.ts","sourceRoot":"","sources":["../../src/explain/explainFlag.ts"],"names":[],"mappings":"AAIA,OAAO,EAAkB,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAMvE;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,IAAS,EACT,OAAY,EACZ,SAAkC,EAClC,UAA0C,EAC1C,IAAwB,GACzB,EAAE;IACD,OAAO,EAAE,GAAG,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB,QAoLA"}
1
+ {"version":3,"file":"explainFlag.d.ts","sourceRoot":"","sources":["../../src/explain/explainFlag.ts"],"names":[],"mappings":"AAIA,OAAO,EAAkB,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAOvE;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,IAAS,EACT,OAAY,EACZ,SAAkC,EAClC,UAA0C,EAC1C,IAAwB,GACzB,EAAE;IACD,OAAO,EAAE,GAAG,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB,QAsOA"}
@@ -5,6 +5,7 @@ import { ExplainMode } from '../types/explainTypes.js';
5
5
  import os from 'os';
6
6
  import fs from 'fs';
7
7
  import path from 'path';
8
+ import { getPhrase } from './phrases.js';
8
9
  /**
9
10
  * explainFlag - Automatically gathers command context, prints explanation, then runs the handler.
10
11
  * @param params - { commandName, args, options, handler }
@@ -12,6 +13,7 @@ import path from 'path';
12
13
  export function explainFlag({ command, args = {}, options = {}, inputKeys = ['input', 'inputPath'], outputKeys = ['output', 'outputPath', 'o'], mode = ExplainMode.Human, }) {
13
14
  // Auto-detect command name
14
15
  const commandName = command?.name?.() || command?._name || 'unknown';
16
+ // Must remove from human and details mode not from json mode
15
17
  const environment = {
16
18
  cwd: process.cwd(),
17
19
  os: `${os.type()} ${os.release()} (${os.platform()})`,
@@ -79,8 +81,24 @@ export function explainFlag({ command, args = {}, options = {}, inputKeys = ['in
79
81
  const omittedFlags = {};
80
82
  if (command && typeof command.options === 'object') {
81
83
  for (const opt of command.options) {
82
- const flagName = opt.attributeName || opt.long?.replace(/^--/, '') || opt.short?.replace(/^-/, '');
83
- if (!flagName)
84
+ let flagName;
85
+ if (typeof opt.attributeName === 'function') {
86
+ try {
87
+ const attr = opt.attributeName();
88
+ flagName = typeof attr === 'string' ? attr : undefined;
89
+ }
90
+ catch {
91
+ flagName = undefined;
92
+ }
93
+ }
94
+ else if (typeof opt.attributeName === 'string') {
95
+ flagName = opt.attributeName;
96
+ }
97
+ else {
98
+ flagName = opt.long?.replace(/^--/, '') || opt.short?.replace(/^-/, '');
99
+ }
100
+ // Only allow string flag names, skip if not a string
101
+ if (!flagName || typeof flagName !== 'string')
84
102
  continue;
85
103
  let userValue = options[flagName];
86
104
  // Handle boolean flags
@@ -122,33 +140,87 @@ export function explainFlag({ command, args = {}, options = {}, inputKeys = ['in
122
140
  // Get CLI and plugin version using branding utilities
123
141
  let cliVersion = undefined;
124
142
  let pluginVersion = undefined;
143
+ let plugin = undefined;
125
144
  try {
126
- cliVersion = getCliVersion();
145
+ cliVersion = getCliVersion('../../../cli/package.json');
127
146
  // Try to get plugin version from parent command's package.json if available
128
147
  if (command?.parent?.name?.()) {
129
148
  // Assume plugin package.json is at ../../plugins/<plugin>/package.json
130
- const pluginName = command.parent.name();
131
- const pluginPath = `../../plugins/${pluginName}/package.json`;
149
+ plugin = command.parent.name();
150
+ const pluginPath = `../../plugins/${plugin}/package.json`;
132
151
  pluginVersion = getVersion(pluginPath);
133
152
  }
134
153
  }
135
154
  catch (error) {
136
155
  console.error(chalk.red('Error retrieving version information:'), error);
137
156
  }
138
- const context = {
139
- schemaVersion: '1.0', // Tier 3 placeholder
157
+ // Step 1: Add effects/primitives to context (plugin-agnostic)
158
+ const effects = [];
159
+ if (inputPath)
160
+ effects.push('inputRead');
161
+ if (outputPath)
162
+ effects.push('outputWrite');
163
+ if (usedFlags['width'] || usedFlags['height'])
164
+ effects.push('dimensionsChange');
165
+ if (usedFlags['quality'])
166
+ effects.push('qualityChange');
167
+ if (usedFlags['format'])
168
+ effects.push('formatConversion');
169
+ if (usedFlags['metadata'])
170
+ effects.push('metadataPreserved');
171
+ if (usedFlags['tool'] || command?.parent?.name?.())
172
+ effects.push('externalTool');
173
+ if (usedFlags['noNetwork'])
174
+ effects.push('noNetwork');
175
+ // Add more effects for other plugin types as needed
176
+ // Dynamic summary using enhanced phrases
177
+ // Build ExplainContext with plugin/command info and version
178
+ // (moved summary logic after context is built)
179
+ // Dynamic outcome and flow using enhanced phrases
180
+ const sideEffects = [];
181
+ if (usedFlags['noNetwork'])
182
+ sideEffects.push(getPhrase('noNetwork', plugin)());
183
+ if (usedFlags['metadata'])
184
+ sideEffects.push(getPhrase('metadataPreserved', plugin)());
185
+ if (usedFlags['validation'])
186
+ sideEffects.push(getPhrase('validation', plugin)());
187
+ if (usedFlags['logging'])
188
+ sideEffects.push(getPhrase('logging', plugin)());
189
+ if (usedFlags['cleanup'])
190
+ sideEffects.push(getPhrase('cleanup', plugin)());
191
+ // Add more side effects as needed
192
+ // Dynamic explainFlow for any plugin
193
+ // Will Deprecate after v1 release in favor of more detailed plugin-specific flows
194
+ const explainFlow = [
195
+ getPhrase('validation', plugin)(),
196
+ 'Check input and output paths for validity and existence.',
197
+ 'Prepare configuration for processing (flags/options).',
198
+ 'Execute main processing logic for each input.',
199
+ getPhrase('logging', plugin)(),
200
+ getPhrase('cleanup', plugin)(),
201
+ 'Show summary and any errors encountered.'
202
+ ];
203
+ // Technical details (plugin-agnostic)
204
+ const technical = {
205
+ tool: command?.parent?.name?.() || 'unknown',
206
+ library: options.library || 'unknown',
207
+ performance: options.performance || 'optimized for batch processing',
208
+ fileFormats: options.fileFormats || [],
209
+ compressionRatio: options.compressionRatio || '',
210
+ estimatedTime: options.estimatedTime || '',
211
+ memoryUsage: options.memoryUsage || '',
212
+ };
213
+ let context = {
214
+ schemaVersion: '1.0',
140
215
  command: commandName,
141
- plugin: command?.parent?.name?.() || undefined,
216
+ plugin,
142
217
  cliVersion,
143
218
  pluginVersion,
144
- // Context enrichment
145
219
  timestamp: new Date().toISOString(),
146
220
  user: process.env.USER || process.env.USERNAME || 'unknown',
147
221
  platform: `${os.platform()} ${os.arch()}`,
148
222
  mode,
149
- summary: outputPath
150
- ? `Resize/Process file(s) and write result to ${outputPath}`
151
- : `Operation will complete (no output path specified)`,
223
+ summary: '', // will set below
152
224
  inputs: { inputPath, outputPath, ...allInputs },
153
225
  outputs: Object.keys(allOutputs).length > 0 ? allOutputs : undefined,
154
226
  usedFlags,
@@ -159,43 +231,35 @@ export function explainFlag({ command, args = {}, options = {}, inputKeys = ['in
159
231
  reason: v.source === 'user' ? 'user specified' : (v.source === 'default' ? 'default' : 'system'),
160
232
  provenance: v.source,
161
233
  })),
234
+ effects,
162
235
  outcome: {
163
- result: outputPath ? `A new file will be created at ${outputPath}` : 'Operation will complete',
164
- sideEffects: [
165
- 'Input validation is performed to ensure correct file types and dimensions.',
166
- 'Output paths are resolved and checked for conflicts.',
167
- 'Image processing is performed using the selected options and flags.',
168
- 'Results and logs are displayed after processing each file.'
169
- ],
170
- errors: [], // Placeholder for error reporting
171
- warnings: [], // Placeholder for warning reporting
172
- confidence: 'high', // Tier 4 placeholder
173
- whatWillNotHappen: [
174
- 'Original files will not be modified',
175
- 'No network requests will be made'
176
- ]
236
+ result: '', // will set below
237
+ sideEffects,
238
+ errors: [],
239
+ warnings: [],
240
+ confidence: 'high',
241
+ whatWillNotHappen: [getPhrase('noNetwork', plugin)()],
177
242
  },
178
- explainFlow: [
179
- '1. Parse and validate all user-provided flags and arguments.',
180
- '2. Check input and output paths for validity and existence.',
181
- '3. Prepare configuration for image processing (width, height, quality, etc.).',
182
- '4. For each input file, process and apply transformations.',
183
- '5. Save output files and display results.',
184
- '6. Show summary and any errors encountered.'
185
- ],
186
- environment,
243
+ explainFlow, // Will Deprecate after v1 release in favor of more detailed plugin-specific flows
244
+ environment, // Will Deprecate aftbeforeer v1 release
187
245
  explainOnly,
188
- technical: {
189
- library: 'sharp',
190
- tool: 'mediaproc',
191
- performance: 'optimized for batch image processing',
192
- fileFormats: ['jpg', 'png', 'webp'],
193
- compressionRatio: 'varies by format and quality',
194
- estimatedTime: 'depends on input size and options',
195
- memoryUsage: 'depends on batch size and image dimensions',
196
- },
197
- exitCode: 0, // Tier 3 placeholder
246
+ technical,
247
+ exitCode: 0,
198
248
  };
249
+ // Now set summary and result using the full context
250
+ if (inputPath && outputPath) {
251
+ context.summary = `${getPhrase('inputRead', plugin)({ context })} ${getPhrase('outputWrite', plugin)({ context })}`;
252
+ }
253
+ else if (inputPath) {
254
+ context.summary = getPhrase('inputRead', plugin)({ context });
255
+ }
256
+ else if (outputPath) {
257
+ context.summary = getPhrase('outputWrite', plugin)({ context });
258
+ }
259
+ else {
260
+ context.summary = getPhrase('summarySuccess', plugin);
261
+ }
262
+ context.outcome.result = outputPath ? getPhrase('outputWrite', plugin)({ context }) : 'Operation will complete';
199
263
  // Print explanation only
200
264
  const explanation = explainFormatter(context, mode);
201
265
  if (mode === ExplainMode.Json) {
@@ -1 +1 @@
1
- {"version":3,"file":"explainFlag.js","sourceRoot":"","sources":["../../src/explain/explainFlag.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAkB,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,EAC1B,OAAO,EACP,IAAI,GAAG,EAAE,EACT,OAAO,GAAG,EAAE,EACZ,SAAS,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,EAClC,UAAU,GAAG,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,CAAC,EAC1C,IAAI,GAAG,WAAW,CAAC,KAAK,GAQzB;IACC,2BAA2B;IAC3B,MAAM,WAAW,GAAG,OAAO,EAAE,IAAI,EAAE,EAAE,IAAI,OAAO,EAAE,KAAK,IAAI,SAAS,CAAC;IACrE,MAAM,WAAW,GAAG;QAClB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,GAAG;QACrD,WAAW,EAAE,OAAO,CAAC,OAAO;QAC5B,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,SAAS;KAC1D,CAAC;IACF,kEAAkE;IAClE,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,IAAI,SAAS,GAAwB,EAAE,CAAC;IACxC,IAAI,UAAU,GAAwB,EAAE,CAAC;IACzC,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC1B,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC;QAC7D,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAAC,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAAC,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC;IACxE,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC;QAC/D,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAAC,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAAC,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC;IAC1E,CAAC;IAED,oBAAoB;IACpB,IAAI,YAAY,GAAuB,SAAS,CAAC;IACjD,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACxC,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,YAAY,KAAK,MAAM;YAAE,WAAW,GAAG,IAAI,CAAC;IAClD,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtD,4CAA4C;QAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;QAC1D,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC;YAClC,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YAC/B,IAAI,YAAY,KAAK,MAAM;gBAAE,WAAW,GAAG,IAAI,CAAC;QAClD,CAAC;IACH,CAAC;IACD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC;IAC7B,CAAC;SAAM,IAAI,YAAY,KAAK,MAAM,EAAE,CAAC;QACnC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;IAC1B,CAAC;SAAM,IAAI,YAAY,KAAK,OAAO,EAAE,CAAC;QACpC,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC;IAC3B,CAAC;SAAM,IAAI,YAAY,EAAE,CAAC;QACxB,sCAAsC;QACtC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,+BAA+B,YAAY,4BAA4B,CAAC,CAAC,CAAC;QACpG,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC;IAC3B,CAAC;IACD,4DAA4D;IAC5D,MAAM,SAAS,GAA0E,EAAE,CAAC;IAC5F,MAAM,YAAY,GAA6D,EAAE,CAAC;IAClF,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACnD,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAClC,MAAM,QAAQ,GAAG,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACnG,IAAI,CAAC,QAAQ;gBAAE,SAAS;YACxB,IAAI,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;YAClC,uBAAuB;YACvB,IAAI,OAAO,SAAS,KAAK,SAAS;gBAAE,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;YACnF,qBAAqB;YACrB,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;gBAAE,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/D,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;YAC7D,CAAC;iBAAM,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,CAAC;gBACrE,IAAI,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC;gBAC9B,IAAI,OAAO,MAAM,KAAK,SAAS;oBAAE,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;gBAC1E,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;oBAAE,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtD,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;gBAC3D,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;YACvE,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;YAC/D,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACnD,IAAI,GAAG,KAAK,SAAS;gBAAE,SAAS;YAChC,IAAI,GAAG,GAAG,KAAK,CAAC;YAChB,IAAI,OAAO,GAAG,KAAK,SAAS;gBAAE,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;YACjE,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;gBAAE,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7C,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACjF,CAAC;IACH,CAAC;IAED,4DAA4D;IAC5D,sDAAsD;IACtD,IAAI,UAAU,GAAuB,SAAS,CAAC;IAC/C,IAAI,aAAa,GAAuB,SAAS,CAAC;IAClD,IAAI,CAAC;QACH,UAAU,GAAG,aAAa,EAAE,CAAC;QAC7B,4EAA4E;QAC5E,IAAI,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;YAC9B,uEAAuE;YACvE,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACzC,MAAM,UAAU,GAAG,iBAAiB,UAAU,eAAe,CAAC;YAC9D,aAAa,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,uCAAuC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,OAAO,GAAmB;QAC9B,aAAa,EAAE,KAAK,EAAE,qBAAqB;QAC3C,OAAO,EAAE,WAAW;QACpB,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,SAAS;QAC9C,UAAU;QACV,aAAa;QACb,qBAAqB;QACrB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,SAAS;QAC3D,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE;QACzC,IAAI;QACJ,OAAO,EAAE,UAAU;YACjB,CAAC,CAAC,8CAA8C,UAAU,EAAE;YAC5D,CAAC,CAAC,oDAAoD;QACxD,MAAM,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,SAAS,EAAE;QAC/C,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;QACpE,SAAS;QACT,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;QAC7E,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACtD,GAAG;YACH,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,MAAM,EAAE,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;YAChG,UAAU,EAAE,CAAC,CAAC,MAAM;SACrB,CAAC,CAAC;QACH,OAAO,EAAE;YACP,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,iCAAiC,UAAU,EAAE,CAAC,CAAC,CAAC,yBAAyB;YAC9F,WAAW,EAAE;gBACX,4EAA4E;gBAC5E,sDAAsD;gBACtD,qEAAqE;gBACrE,4DAA4D;aAC7D;YACD,MAAM,EAAE,EAAE,EAAE,kCAAkC;YAC9C,QAAQ,EAAE,EAAE,EAAE,oCAAoC;YAClD,UAAU,EAAE,MAAM,EAAE,qBAAqB;YACzC,iBAAiB,EAAE;gBACjB,qCAAqC;gBACrC,kCAAkC;aACnC;SACF;QACD,WAAW,EAAE;YACX,8DAA8D;YAC9D,6DAA6D;YAC7D,+EAA+E;YAC/E,4DAA4D;YAC5D,2CAA2C;YAC3C,6CAA6C;SAC9C;QACD,WAAW;QACX,WAAW;QACX,SAAS,EAAE;YACT,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,sCAAsC;YACnD,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC;YACnC,gBAAgB,EAAE,8BAA8B;YAChD,aAAa,EAAE,mCAAmC;YAClD,WAAW,EAAE,4CAA4C;SAC1D;QACD,QAAQ,EAAE,CAAC,EAAE,qBAAqB;KACnC,CAAC;IAEF,yBAAyB;IACzB,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACpD,IAAI,IAAI,KAAK,WAAW,CAAC,IAAI,EAAE,CAAC;QAC9B,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;QACnE,wCAAwC;QACxC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;QACpF,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QAChE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,SAAS,OAAO,CAAC,CAAC;QAC/D,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gCAAgC,OAAO,EAAE,CAAC,CAAC,CAAC;QACpE,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5D,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"explainFlag.js","sourceRoot":"","sources":["../../src/explain/explainFlag.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { CommonPhrases } from '../types/explainTypes.js';
2
+ /**
3
+ * Register or override phrases for a plugin.
4
+ * @param pluginName The plugin name (string)
5
+ * @param phrases An object of phrase overrides (same shape as COMMON_PHRASES)
6
+ */
7
+ export declare function registerPluginPhrases(pluginName: string, phrases: Partial<CommonPhrases>): void;
8
+ /**
9
+ * Lookup a phrase, checking plugin overrides first.
10
+ * @param key The phrase key (string)
11
+ * @param pluginName Optional plugin name for override lookup
12
+ */
13
+ export declare function getPhrase<K extends keyof CommonPhrases>(key: K, pluginName?: string): CommonPhrases[K];
14
+ export declare const COMMON_PHRASES: CommonPhrases;
15
+ //# sourceMappingURL=phrases.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phrases.d.ts","sourceRoot":"","sources":["../../src/explain/phrases.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAkB,MAAM,0BAA0B,CAAC;AAKzE;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,QAKxF;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,aAAa,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAKtG;AAED,eAAO,MAAM,cAAc,EAAE,aA0E5B,CAAC"}
@@ -0,0 +1,101 @@
1
+ // Plugin-specific phrase overrides
2
+ const PLUGIN_PHRASES = {};
3
+ /**
4
+ * Register or override phrases for a plugin.
5
+ * @param pluginName The plugin name (string)
6
+ * @param phrases An object of phrase overrides (same shape as COMMON_PHRASES)
7
+ */
8
+ export function registerPluginPhrases(pluginName, phrases) {
9
+ PLUGIN_PHRASES[pluginName] = {
10
+ ...(PLUGIN_PHRASES[pluginName] || {}),
11
+ ...phrases,
12
+ };
13
+ }
14
+ /**
15
+ * Lookup a phrase, checking plugin overrides first.
16
+ * @param key The phrase key (string)
17
+ * @param pluginName Optional plugin name for override lookup
18
+ */
19
+ export function getPhrase(key, pluginName) {
20
+ if (pluginName && PLUGIN_PHRASES[pluginName] && PLUGIN_PHRASES[pluginName][key]) {
21
+ return PLUGIN_PHRASES[pluginName][key];
22
+ }
23
+ return COMMON_PHRASES[key];
24
+ }
25
+ // Centralized reusable phrases for explain engine
26
+ export const COMMON_PHRASES = {
27
+ // Section headers and static text for templates
28
+ header: ' EXPLANATION ',
29
+ detailsHeader: ' EXPLANATION (DETAILS) ',
30
+ summaryHeader: ' Summary: ',
31
+ commandType: 'Command Type:',
32
+ commandCategory: 'Command Category:',
33
+ commandPurpose: 'Purpose:',
34
+ commandInputs: 'Inputs:',
35
+ commandOutputs: 'Outputs:',
36
+ commandFlags: 'Flags:',
37
+ commandOptions: 'Options:',
38
+ commandPerformance: 'Performance:',
39
+ commandSecurity: 'Security:',
40
+ commandDependencies: 'Dependencies:',
41
+ commandSideEffects: 'Side Effects:',
42
+ commandWarnings: 'Warnings:',
43
+ commandLimitations: 'Limitations:',
44
+ commandExamples: 'Examples:',
45
+ commandDocs: 'Documentation:',
46
+ commandAuthor: 'Author:',
47
+ commandVersion: 'Version:',
48
+ commandLastModified: 'Last Modified:',
49
+ commandRelated: 'Related Commands:',
50
+ explainOnly: ' [explain-only] No files were modified. ',
51
+ contextEnrichmentPrefix: ' Timestamp: ',
52
+ user: 'User:',
53
+ platform: 'Platform:',
54
+ mode: 'Mode:',
55
+ pluginInfoPrefix: ' This command uses the ',
56
+ pluginInfoSuffix: ' plugin. ',
57
+ whatWillHappenHeader: ' What will happen: ',
58
+ whyChoicesHeader: ' Why these choices were made: ',
59
+ resultHeader: ' Result: ',
60
+ schemaVersionPrefix: '[schemaVersion: ',
61
+ exitCodePrefix: '[exitCode: ',
62
+ confidencePrefix: '[confidence: ',
63
+ whatWillNotHappenHeader: ' What will NOT happen: ',
64
+ inputsOutputsHeader: ' Inputs & Outputs: ',
65
+ effectsHeader: ' Effects & Primitives: ',
66
+ technicalWorkflowHeader: ' Technical Workflow: ',
67
+ flagsUsedHeader: ' Flags Used: ',
68
+ errorsHeader: ' Errors: ',
69
+ warningsHeader: ' Warnings: ',
70
+ technicalDetailsHeader: ' Technical Details: ',
71
+ environmentHeader: ' Environment: ',
72
+ diagramPlaceholder: ' Diagram: (visual summary or workflow will appear here) ',
73
+ inputRead: ({ context }) => `The input file "${context?.inputs?.inputPath ?? context?.inputs?.input ?? 'unknown'}" will be read from disk, ensuring the correct format and accessibility.`,
74
+ outputWrite: ({ context }) => `A new file will be written to the output path "${context?.outputs?.outputPath ?? context?.outputs?.output ?? 'unknown'}", with all changes applied.`,
75
+ noNetwork: () => 'No network requests will be made, guaranteeing local-only processing.',
76
+ externalTool: ({ context }) => `Processing will be performed using the external tool: ${context?.technical?.tool ?? 'unknown'}.`,
77
+ dimensionsChange: ({ context }) => `The dimensions will be changed to width=${context?.usedFlags?.width?.value ?? '?'} and height=${context?.usedFlags?.height?.value ?? '?'}.`,
78
+ formatConversion: ({ context }) => `Format will be converted to ${context?.usedFlags?.format?.value ?? 'unknown'}, ensuring compatibility and optimal quality.`,
79
+ qualityChange: ({ context }) => `Quality will be set to ${context?.usedFlags?.quality?.value ?? '?'} for optimal output fidelity.`,
80
+ metadataPreserved: () => 'Metadata will be preserved in the output file, retaining important information.',
81
+ audioProcessing: ({ context }) => `Audio will be processed with effects: ${context?.usedFlags?.effects?.value ?? 'none'}.`,
82
+ videoProcessing: ({ context }) => `Video will be processed with codec: ${context?.usedFlags?.codec?.value ?? 'default'}.`,
83
+ documentProcessing: ({ context }) => `Document will be processed with format: ${context?.usedFlags?.format?.value ?? 'default'}.`,
84
+ streamProcessing: ({ context }) => `Stream will be processed in real-time with protocol: ${context?.usedFlags?.protocol?.value ?? 'default'}.`,
85
+ pipelineExecution: ({ context }) => `Pipeline will be executed with ${Array.isArray(context?.steps) ? context.steps.length : 0} steps, orchestrating multiple plugin actions for advanced workflows.`,
86
+ pluginAction: ({ context }) => `Action will be performed by plugin: ${context?.plugin ?? 'unknown'}, leveraging its specialized capabilities.`,
87
+ errorHandling: () => 'Errors will be handled gracefully, with clear reporting and recovery strategies.',
88
+ validation: () => 'Validation will be performed on all inputs, ensuring correctness and safety.',
89
+ outputPreview: () => 'A preview of the output will be generated for user review before finalization.',
90
+ logging: () => 'Detailed logs will be generated for this operation, aiding in troubleshooting and auditing.',
91
+ cleanup: () => 'Temporary files and resources will be cleaned up after processing to maintain system hygiene.',
92
+ summarySuccess: 'Operation completed successfully.',
93
+ summaryFailure: 'Operation failed. Please review the logs and errors.',
94
+ summaryPartial: 'Operation completed with some warnings or errors.',
95
+ warningDeprecated: (flag) => `Warning: The flag "${flag}" is deprecated and may be removed in future versions.`,
96
+ warningIgnored: (flag) => `Warning: The flag "${flag}" was ignored due to incompatibility or redundancy.`,
97
+ tipDetails: 'Tip: Use --explain=details for a technical breakdown of the operation.',
98
+ tipJson: 'Tip: Use --explain=json to get a machine-readable explanation.',
99
+ tipHuman: 'Tip: Use --explain=human for a user-friendly summary.'
100
+ };
101
+ //# sourceMappingURL=phrases.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phrases.js","sourceRoot":"","sources":["../../src/explain/phrases.ts"],"names":[],"mappings":"AAEA,mCAAmC;AACnC,MAAM,cAAc,GAA2C,EAAE,CAAC;AAElE;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,UAAkB,EAAE,OAA+B;IACrF,cAAc,CAAC,UAAU,CAAC,GAAG;QACzB,GAAG,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACrC,GAAG,OAAO;KACb,CAAC;AACN,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAgC,GAAM,EAAE,UAAmB;IAChF,IAAI,UAAU,IAAI,cAAc,CAAC,UAAU,CAAC,IAAI,cAAc,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9E,OAAO,cAAc,CAAC,UAAU,CAAC,CAAC,GAAG,CAAqB,CAAC;IAC/D,CAAC;IACD,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;AAC/B,CAAC;AACD,kDAAkD;AAClD,MAAM,CAAC,MAAM,cAAc,GAAkB;IACzC,gDAAgD;IAChD,MAAM,EAAE,iBAAiB;IACzB,aAAa,EAAE,2BAA2B;IAC1C,aAAa,EAAE,YAAY;IAC3B,WAAW,EAAE,eAAe;IAC5B,eAAe,EAAE,mBAAmB;IACpC,cAAc,EAAE,UAAU;IAC1B,aAAa,EAAE,SAAS;IACxB,cAAc,EAAE,UAAU;IAC1B,YAAY,EAAE,QAAQ;IACtB,cAAc,EAAE,UAAU;IAC1B,kBAAkB,EAAE,cAAc;IAClC,eAAe,EAAE,WAAW;IAC5B,mBAAmB,EAAE,eAAe;IACpC,kBAAkB,EAAE,eAAe;IACnC,eAAe,EAAE,WAAW;IAC5B,kBAAkB,EAAE,cAAc;IAClC,eAAe,EAAE,WAAW;IAC5B,WAAW,EAAE,gBAAgB;IAC7B,aAAa,EAAE,SAAS;IACxB,cAAc,EAAE,UAAU;IAC1B,mBAAmB,EAAE,gBAAgB;IACrC,cAAc,EAAE,mBAAmB;IACnC,WAAW,EAAE,0CAA0C;IACvD,uBAAuB,EAAE,cAAc;IACvC,IAAI,EAAE,OAAO;IACb,QAAQ,EAAE,WAAW;IACrB,IAAI,EAAE,OAAO;IACb,gBAAgB,EAAE,yBAAyB;IAC3C,gBAAgB,EAAE,WAAW;IAC7B,oBAAoB,EAAE,qBAAqB;IAC3C,gBAAgB,EAAE,gCAAgC;IAClD,YAAY,EAAE,WAAW;IACzB,mBAAmB,EAAE,kBAAkB;IACvC,cAAc,EAAE,aAAa;IAC7B,gBAAgB,EAAE,eAAe;IACjC,uBAAuB,EAAE,yBAAyB;IAClD,mBAAmB,EAAE,qBAAqB;IAC1C,aAAa,EAAE,yBAAyB;IACxC,uBAAuB,EAAE,uBAAuB;IAChD,eAAe,EAAE,eAAe;IAChC,YAAY,EAAE,WAAW;IACzB,cAAc,EAAE,aAAa;IAC7B,sBAAsB,EAAE,sBAAsB;IAC9C,iBAAiB,EAAE,gBAAgB;IACnC,kBAAkB,EAAE,0DAA0D;IAC9E,SAAS,EAAE,CAAC,EAAE,OAAO,EAA+B,EAAE,EAAE,CAAC,mBAAmB,OAAO,EAAE,MAAM,EAAE,SAAS,IAAI,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,SAAS,0EAA0E;IACvN,WAAW,EAAE,CAAC,EAAE,OAAO,EAA+B,EAAE,EAAE,CAAC,kDAAkD,OAAO,EAAE,OAAO,EAAE,UAAU,IAAI,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,SAAS,8BAA8B;IAChN,SAAS,EAAE,GAAG,EAAE,CAAC,uEAAuE;IACxF,YAAY,EAAE,CAAC,EAAE,OAAO,EAA+B,EAAE,EAAE,CAAC,yDAAyD,OAAO,EAAE,SAAS,EAAE,IAAI,IAAI,SAAS,GAAG;IAC7J,gBAAgB,EAAE,CAAC,EAAE,OAAO,EAA+B,EAAE,EAAE,CAAC,2CAA2C,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,IAAI,GAAG,eAAe,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,IAAI,GAAG,GAAG;IAC5M,gBAAgB,EAAE,CAAC,EAAE,OAAO,EAA+B,EAAE,EAAE,CAAC,+BAA+B,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,IAAI,SAAS,+CAA+C;IAC5L,aAAa,EAAE,CAAC,EAAE,OAAO,EAA+B,EAAE,EAAE,CAAC,0BAA0B,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,+BAA+B;IAC/J,iBAAiB,EAAE,GAAG,EAAE,CAAC,iFAAiF;IAC1G,eAAe,EAAE,CAAC,EAAE,OAAO,EAA+B,EAAE,EAAE,CAAC,yCAAyC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,IAAI,MAAM,GAAG;IACvJ,eAAe,EAAE,CAAC,EAAE,OAAO,EAA+B,EAAE,EAAE,CAAC,uCAAuC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,IAAI,SAAS,GAAG;IACtJ,kBAAkB,EAAE,CAAC,EAAE,OAAO,EAA+B,EAAE,EAAE,CAAC,2CAA2C,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,IAAI,SAAS,GAAG;IAC9J,gBAAgB,EAAE,CAAC,EAAE,OAAO,EAA+B,EAAE,EAAE,CAAC,wDAAwD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,IAAI,SAAS,GAAG;IAC3K,iBAAiB,EAAE,CAAC,EAAE,OAAO,EAA+B,EAAE,EAAE,CAAC,kCAAkC,KAAK,CAAC,OAAO,CAAE,OAAe,EAAE,KAAK,CAAC,CAAC,CAAC,CAAE,OAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,uEAAuE;IACpP,YAAY,EAAE,CAAC,EAAE,OAAO,EAA+B,EAAE,EAAE,CAAC,uCAAuC,OAAO,EAAE,MAAM,IAAI,SAAS,4CAA4C;IAC3K,aAAa,EAAE,GAAG,EAAE,CAAC,kFAAkF;IACvG,UAAU,EAAE,GAAG,EAAE,CAAC,8EAA8E;IAChG,aAAa,EAAE,GAAG,EAAE,CAAC,gFAAgF;IACrG,OAAO,EAAE,GAAG,EAAE,CAAC,6FAA6F;IAC5G,OAAO,EAAE,GAAG,EAAE,CAAC,+FAA+F;IAC9G,cAAc,EAAE,mCAAmC;IACnD,cAAc,EAAE,sDAAsD;IACtE,cAAc,EAAE,mDAAmD;IACnE,iBAAiB,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,sBAAsB,IAAI,wDAAwD;IACvH,cAAc,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,sBAAsB,IAAI,qDAAqD;IACjH,UAAU,EAAE,wEAAwE;IACpF,OAAO,EAAE,gEAAgE;IACzE,QAAQ,EAAE,uDAAuD;CACpE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"explainDetailsTemplate.d.ts","sourceRoot":"","sources":["../../../src/explain/templates/explainDetailsTemplate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAI7D,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CA6JtE"}
1
+ {"version":3,"file":"explainDetailsTemplate.d.ts","sourceRoot":"","sources":["../../../src/explain/templates/explainDetailsTemplate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAK7D,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAmMtE"}