@enactprotocol/shared 2.1.22 → 2.1.23

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.
@@ -3,6 +3,17 @@
3
3
  *
4
4
  * Handles ${parameter} substitution in command templates with proper escaping.
5
5
  *
6
+ * ## Parameter Recognition
7
+ *
8
+ * Only `${...}` patterns that match parameters defined in the tool's inputSchema
9
+ * are substituted. Other `${...}` patterns (like bash variables, arrays, etc.)
10
+ * are passed through unchanged to the shell.
11
+ *
12
+ * This allows natural use of shell syntax:
13
+ * - `${name}` - Substituted if "name" is in inputSchema
14
+ * - `${MY_VAR}` - Passed through to bash (not in inputSchema)
15
+ * - `${array[$i]}` - Passed through to bash (not in inputSchema)
16
+ *
6
17
  * ## Quoting Behavior
7
18
  *
8
19
  * Enact automatically applies shell-escaping (quoting) to parameter values
@@ -26,6 +37,17 @@
26
37
  * 3. Emit a warning to help tool authors fix their templates
27
38
  */
28
39
  import type { InterpolationOptions, ParsedCommand } from "./types";
40
+ /**
41
+ * Options for parsing a command template
42
+ */
43
+ export interface ParseCommandOptions {
44
+ /**
45
+ * Set of known parameter names from the inputSchema.
46
+ * Only ${...} patterns matching these names will be treated as parameters.
47
+ * If not provided, ALL ${...} patterns are treated as parameters (legacy behavior).
48
+ */
49
+ knownParameters?: Set<string>;
50
+ }
29
51
  /**
30
52
  * Parse a command template into tokens
31
53
  *
@@ -33,10 +55,15 @@ import type { InterpolationOptions, ParsedCommand } from "./types";
33
55
  * - Parameters with modifiers: ${param:raw}
34
56
  * - Parameters surrounded by quotes: '${param}' or "${param}"
35
57
  *
58
+ * When knownParameters is provided, only ${...} patterns matching known parameter
59
+ * names are treated as parameters. Other patterns are kept as literals, allowing
60
+ * natural shell syntax like ${MY_VAR} or ${array[$i]} to pass through.
61
+ *
36
62
  * @param command - Command template with ${parameter} placeholders
63
+ * @param options - Parse options including knownParameters
37
64
  * @returns Parsed command with tokens and parameter list
38
65
  */
39
- export declare function parseCommand(command: string): ParsedCommand;
66
+ export declare function parseCommand(command: string, options?: ParseCommandOptions): ParsedCommand;
40
67
  /**
41
68
  * Shell-escape a value for safe inclusion in a command
42
69
  *
@@ -70,6 +97,9 @@ export declare function valueToString(value: unknown, jsonifyObjects?: boolean):
70
97
  * - Raw parameters: `${param:raw}` - no quoting applied
71
98
  * - Quoted parameters: `'${param}'` - quotes stripped, warning emitted
72
99
  *
100
+ * When knownParameters is provided in options, only matching ${...} patterns
101
+ * are substituted. Other patterns pass through unchanged for shell processing.
102
+ *
73
103
  * @param command - Command template or parsed command
74
104
  * @param params - Parameter values
75
105
  * @param options - Interpolation options
@@ -108,10 +138,12 @@ export declare function needsShellWrap(command: string): boolean;
108
138
  * Prepare a command for execution
109
139
  *
110
140
  * Parses the command and determines if it needs shell wrapping.
141
+ * When knownParameters is provided, only matching ${...} patterns are
142
+ * substituted, allowing shell syntax to pass through unchanged.
111
143
  *
112
144
  * @param command - Command template
113
145
  * @param params - Parameter values for interpolation
114
- * @param options - Interpolation options
146
+ * @param options - Interpolation options (including knownParameters)
115
147
  * @returns Command ready for execution [program, ...args]
116
148
  */
117
149
  export declare function prepareCommand(command: string, params: Record<string, unknown>, options?: InterpolationOptions): string[];
@@ -120,14 +152,16 @@ export declare function prepareCommand(command: string, params: Record<string, u
120
152
  *
121
153
  * @param command - Parsed command
122
154
  * @param params - Provided parameters
155
+ * @param options - Parse options including knownParameters
123
156
  * @returns Array of missing parameter names
124
157
  */
125
- export declare function getMissingParams(command: string | ParsedCommand, params: Record<string, unknown>): string[];
158
+ export declare function getMissingParams(command: string | ParsedCommand, params: Record<string, unknown>, options?: ParseCommandOptions): string[];
126
159
  /**
127
160
  * Get all parameters in a command template
128
161
  *
129
162
  * @param command - Command template
163
+ * @param options - Parse options including knownParameters
130
164
  * @returns Array of parameter names
131
165
  */
132
- export declare function getCommandParams(command: string): string[];
166
+ export declare function getCommandParams(command: string, options?: ParseCommandOptions): string[];
133
167
  //# sourceMappingURL=command.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/execution/command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAgB,oBAAoB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAQjF;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAoF3D;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAejD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,UAAO,GAAG,MAAM,CAkB3E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,GAAG,aAAa,EAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,GAAE,oBAAyB,GACjC,MAAM,CAyDR;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAgD1D;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAEvD;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAGvD;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,GAAE,oBAAyB,GACjC,MAAM,EAAE,CAmBV;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,GAAG,aAAa,EAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,MAAM,EAAE,CAIV;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAE1D"}
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/execution/command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,KAAK,EAAgB,oBAAoB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAQjF;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC/B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,mBAAwB,GAAG,aAAa,CA+F9F;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAejD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,UAAO,GAAG,MAAM,CAkB3E;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,GAAG,aAAa,EAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,GAAE,oBAAyB,GACjC,MAAM,CA6DR;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAgD1D;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAEvD;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAGvD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,GAAE,oBAAyB,GACjC,MAAM,EAAE,CAmBV;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,GAAG,aAAa,EAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,GAAE,mBAAwB,GAChC,MAAM,EAAE,CAIV;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,mBAAwB,GAAG,MAAM,EAAE,CAE7F"}
@@ -3,6 +3,17 @@
3
3
  *
4
4
  * Handles ${parameter} substitution in command templates with proper escaping.
5
5
  *
6
+ * ## Parameter Recognition
7
+ *
8
+ * Only `${...}` patterns that match parameters defined in the tool's inputSchema
9
+ * are substituted. Other `${...}` patterns (like bash variables, arrays, etc.)
10
+ * are passed through unchanged to the shell.
11
+ *
12
+ * This allows natural use of shell syntax:
13
+ * - `${name}` - Substituted if "name" is in inputSchema
14
+ * - `${MY_VAR}` - Passed through to bash (not in inputSchema)
15
+ * - `${array[$i]}` - Passed through to bash (not in inputSchema)
16
+ *
6
17
  * ## Quoting Behavior
7
18
  *
8
19
  * Enact automatically applies shell-escaping (quoting) to parameter values
@@ -37,10 +48,16 @@ const PARAM_PATTERN = /\$\{([^}:]+)(?::([^}]+))?\}/g;
37
48
  * - Parameters with modifiers: ${param:raw}
38
49
  * - Parameters surrounded by quotes: '${param}' or "${param}"
39
50
  *
51
+ * When knownParameters is provided, only ${...} patterns matching known parameter
52
+ * names are treated as parameters. Other patterns are kept as literals, allowing
53
+ * natural shell syntax like ${MY_VAR} or ${array[$i]} to pass through.
54
+ *
40
55
  * @param command - Command template with ${parameter} placeholders
56
+ * @param options - Parse options including knownParameters
41
57
  * @returns Parsed command with tokens and parameter list
42
58
  */
43
- export function parseCommand(command) {
59
+ export function parseCommand(command, options = {}) {
60
+ const { knownParameters } = options;
44
61
  const tokens = [];
45
62
  const parameters = [];
46
63
  let lastIndex = 0;
@@ -52,6 +69,14 @@ export function parseCommand(command) {
52
69
  const paramName = match[1];
53
70
  const modifier = match[2]; // e.g., "raw"
54
71
  const isRaw = modifier === "raw";
72
+ // Check if this is a known parameter (or if we're in legacy mode with no filter)
73
+ const isKnownParameter = !knownParameters || (paramName && knownParameters.has(paramName));
74
+ if (!isKnownParameter) {
75
+ // Not a known parameter - skip and continue
76
+ // The text will be included in the next literal segment
77
+ match = PARAM_PATTERN.exec(command);
78
+ continue;
79
+ }
55
80
  // Check if preceded by a quote
56
81
  let startIndex = match.index;
57
82
  let surroundingQuotes;
@@ -171,6 +196,9 @@ export function valueToString(value, jsonifyObjects = true) {
171
196
  * - Raw parameters: `${param:raw}` - no quoting applied
172
197
  * - Quoted parameters: `'${param}'` - quotes stripped, warning emitted
173
198
  *
199
+ * When knownParameters is provided in options, only matching ${...} patterns
200
+ * are substituted. Other patterns pass through unchanged for shell processing.
201
+ *
174
202
  * @param command - Command template or parsed command
175
203
  * @param params - Parameter values
176
204
  * @param options - Interpolation options
@@ -178,8 +206,10 @@ export function valueToString(value, jsonifyObjects = true) {
178
206
  * @throws Error if required parameter is missing and onMissing is "error"
179
207
  */
180
208
  export function interpolateCommand(command, params, options = {}) {
181
- const { escape: shouldEscape = true, jsonifyObjects = true, onMissing = "error", onWarning, } = options;
182
- const parsed = typeof command === "string" ? parseCommand(command) : command;
209
+ const { escape: shouldEscape = true, jsonifyObjects = true, onMissing = "error", onWarning, knownParameters, } = options;
210
+ const parsed = typeof command === "string"
211
+ ? parseCommand(command, knownParameters ? { knownParameters } : {})
212
+ : command;
183
213
  const parts = [];
184
214
  for (const token of parsed.tokens) {
185
215
  if (token.type === "literal") {
@@ -299,10 +329,12 @@ export function needsShellWrap(command) {
299
329
  * Prepare a command for execution
300
330
  *
301
331
  * Parses the command and determines if it needs shell wrapping.
332
+ * When knownParameters is provided, only matching ${...} patterns are
333
+ * substituted, allowing shell syntax to pass through unchanged.
302
334
  *
303
335
  * @param command - Command template
304
336
  * @param params - Parameter values for interpolation
305
- * @param options - Interpolation options
337
+ * @param options - Interpolation options (including knownParameters)
306
338
  * @returns Command ready for execution [program, ...args]
307
339
  */
308
340
  export function prepareCommand(command, params, options = {}) {
@@ -327,19 +359,21 @@ export function prepareCommand(command, params, options = {}) {
327
359
  *
328
360
  * @param command - Parsed command
329
361
  * @param params - Provided parameters
362
+ * @param options - Parse options including knownParameters
330
363
  * @returns Array of missing parameter names
331
364
  */
332
- export function getMissingParams(command, params) {
333
- const parsed = typeof command === "string" ? parseCommand(command) : command;
365
+ export function getMissingParams(command, params, options = {}) {
366
+ const parsed = typeof command === "string" ? parseCommand(command, options) : command;
334
367
  return parsed.parameters.filter((param) => params[param] === undefined);
335
368
  }
336
369
  /**
337
370
  * Get all parameters in a command template
338
371
  *
339
372
  * @param command - Command template
373
+ * @param options - Parse options including knownParameters
340
374
  * @returns Array of parameter names
341
375
  */
342
- export function getCommandParams(command) {
343
- return parseCommand(command).parameters;
376
+ export function getCommandParams(command, options = {}) {
377
+ return parseCommand(command, options).parameters;
344
378
  }
345
379
  //# sourceMappingURL=command.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/execution/command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/execution/command.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,6 @@
7
7
  export type { ExecutionInput, FileInput, ExecutionOutput, ExecutionResult, ExecutionMetadata, ExecutionError, ExecutionErrorCode, ExecutionOptions, RetryConfig, ContainerRuntime, RuntimeDetection, RuntimeStatus, EngineHealth, EngineState, ExecutionProvider, ParsedCommand, CommandToken, InterpolationOptions, CommandWarning, CommandWarningCode, InputValidationResult, InputValidationError, DryRunResult, } from "./types.js";
8
8
  export { DEFAULT_RETRY_CONFIG } from "./types.js";
9
9
  export { detectRuntime, clearRuntimeCache, isRuntimeAvailable, getAvailableRuntimes, RuntimeStatusTracker, createRuntimeTracker, } from "./runtime.js";
10
- export { parseCommand, interpolateCommand, shellEscape, parseCommandArgs, prepareCommand, getMissingParams, } from "./command.js";
10
+ export { parseCommand, interpolateCommand, shellEscape, parseCommandArgs, prepareCommand, getMissingParams, type ParseCommandOptions, } from "./command.js";
11
11
  export { validateInputs, applyDefaults, getRequiredParams, getParamInfo, } from "./validation.js";
12
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/execution/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EAEV,cAAc,EACd,SAAS,EACT,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAElB,gBAAgB,EAChB,WAAW,EAEX,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EAEb,YAAY,EACZ,WAAW,EAEX,iBAAiB,EAEjB,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,cAAc,EACd,kBAAkB,EAElB,qBAAqB,EACrB,oBAAoB,EAEpB,YAAY,GACb,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAGlD,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,YAAY,GACb,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/execution/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EAEV,cAAc,EACd,SAAS,EACT,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAElB,gBAAgB,EAChB,WAAW,EAEX,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EAEb,YAAY,EACZ,WAAW,EAEX,iBAAiB,EAEjB,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,cAAc,EACd,kBAAkB,EAElB,qBAAqB,EACrB,oBAAoB,EAEpB,YAAY,GACb,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAGlD,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,KAAK,mBAAmB,GACzB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,YAAY,GACb,MAAM,iBAAiB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/execution/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAqCH,YAAY;AACZ,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAElD,oBAAoB;AACpB,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,cAAc,CAAC;AAEtB,wBAAwB;AACxB,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAEtB,mBAAmB;AACnB,OAAO,EACL,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,YAAY,GACb,MAAM,iBAAiB,CAAC;AAEzB,kEAAkE;AAClE,2EAA2E"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/execution/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAqCH,YAAY;AACZ,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAElD,oBAAoB;AACpB,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,cAAc,CAAC;AAEtB,wBAAwB;AACxB,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,gBAAgB,GAEjB,MAAM,cAAc,CAAC;AAEtB,mBAAmB;AACnB,OAAO,EACL,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,YAAY,GACb,MAAM,iBAAiB,CAAC;AAEzB,kEAAkE;AAClE,2EAA2E"}
@@ -258,6 +258,12 @@ export interface InterpolationOptions {
258
258
  onMissing?: "error" | "empty" | "keep";
259
259
  /** Callback for warnings (e.g., potential double-quoting) */
260
260
  onWarning?: (warning: CommandWarning) => void;
261
+ /**
262
+ * Set of known parameter names from the inputSchema.
263
+ * Only ${...} patterns matching these names will be substituted.
264
+ * If not provided, ALL ${...} patterns are treated as parameters (legacy behavior).
265
+ */
266
+ knownParameters?: Set<string>;
261
267
  }
262
268
  /**
263
269
  * Warning types for command processing
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/execution/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/execution/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@enactprotocol/shared",
3
- "version": "2.1.22",
3
+ "version": "2.1.23",
4
4
  "description": "Core business logic and utilities for Enact",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -18,7 +18,7 @@
18
18
  "typecheck": "tsc --noEmit"
19
19
  },
20
20
  "dependencies": {
21
- "@enactprotocol/trust": "2.1.22",
21
+ "@enactprotocol/trust": "2.1.23",
22
22
  "js-yaml": "^4.1.1",
23
23
  "zod": "^4.1.13"
24
24
  },
@@ -3,6 +3,17 @@
3
3
  *
4
4
  * Handles ${parameter} substitution in command templates with proper escaping.
5
5
  *
6
+ * ## Parameter Recognition
7
+ *
8
+ * Only `${...}` patterns that match parameters defined in the tool's inputSchema
9
+ * are substituted. Other `${...}` patterns (like bash variables, arrays, etc.)
10
+ * are passed through unchanged to the shell.
11
+ *
12
+ * This allows natural use of shell syntax:
13
+ * - `${name}` - Substituted if "name" is in inputSchema
14
+ * - `${MY_VAR}` - Passed through to bash (not in inputSchema)
15
+ * - `${array[$i]}` - Passed through to bash (not in inputSchema)
16
+ *
6
17
  * ## Quoting Behavior
7
18
  *
8
19
  * Enact automatically applies shell-escaping (quoting) to parameter values
@@ -34,6 +45,18 @@ import type { CommandToken, InterpolationOptions, ParsedCommand } from "./types"
34
45
  */
35
46
  const PARAM_PATTERN = /\$\{([^}:]+)(?::([^}]+))?\}/g;
36
47
 
48
+ /**
49
+ * Options for parsing a command template
50
+ */
51
+ export interface ParseCommandOptions {
52
+ /**
53
+ * Set of known parameter names from the inputSchema.
54
+ * Only ${...} patterns matching these names will be treated as parameters.
55
+ * If not provided, ALL ${...} patterns are treated as parameters (legacy behavior).
56
+ */
57
+ knownParameters?: Set<string>;
58
+ }
59
+
37
60
  /**
38
61
  * Parse a command template into tokens
39
62
  *
@@ -41,10 +64,16 @@ const PARAM_PATTERN = /\$\{([^}:]+)(?::([^}]+))?\}/g;
41
64
  * - Parameters with modifiers: ${param:raw}
42
65
  * - Parameters surrounded by quotes: '${param}' or "${param}"
43
66
  *
67
+ * When knownParameters is provided, only ${...} patterns matching known parameter
68
+ * names are treated as parameters. Other patterns are kept as literals, allowing
69
+ * natural shell syntax like ${MY_VAR} or ${array[$i]} to pass through.
70
+ *
44
71
  * @param command - Command template with ${parameter} placeholders
72
+ * @param options - Parse options including knownParameters
45
73
  * @returns Parsed command with tokens and parameter list
46
74
  */
47
- export function parseCommand(command: string): ParsedCommand {
75
+ export function parseCommand(command: string, options: ParseCommandOptions = {}): ParsedCommand {
76
+ const { knownParameters } = options;
48
77
  const tokens: CommandToken[] = [];
49
78
  const parameters: string[] = [];
50
79
 
@@ -60,6 +89,16 @@ export function parseCommand(command: string): ParsedCommand {
60
89
  const modifier = match[2]; // e.g., "raw"
61
90
  const isRaw = modifier === "raw";
62
91
 
92
+ // Check if this is a known parameter (or if we're in legacy mode with no filter)
93
+ const isKnownParameter = !knownParameters || (paramName && knownParameters.has(paramName));
94
+
95
+ if (!isKnownParameter) {
96
+ // Not a known parameter - skip and continue
97
+ // The text will be included in the next literal segment
98
+ match = PARAM_PATTERN.exec(command);
99
+ continue;
100
+ }
101
+
63
102
  // Check if preceded by a quote
64
103
  let startIndex = match.index;
65
104
  let surroundingQuotes: "single" | "double" | undefined;
@@ -198,6 +237,9 @@ export function valueToString(value: unknown, jsonifyObjects = true): string {
198
237
  * - Raw parameters: `${param:raw}` - no quoting applied
199
238
  * - Quoted parameters: `'${param}'` - quotes stripped, warning emitted
200
239
  *
240
+ * When knownParameters is provided in options, only matching ${...} patterns
241
+ * are substituted. Other patterns pass through unchanged for shell processing.
242
+ *
201
243
  * @param command - Command template or parsed command
202
244
  * @param params - Parameter values
203
245
  * @param options - Interpolation options
@@ -214,9 +256,13 @@ export function interpolateCommand(
214
256
  jsonifyObjects = true,
215
257
  onMissing = "error",
216
258
  onWarning,
259
+ knownParameters,
217
260
  } = options;
218
261
 
219
- const parsed = typeof command === "string" ? parseCommand(command) : command;
262
+ const parsed =
263
+ typeof command === "string"
264
+ ? parseCommand(command, knownParameters ? { knownParameters } : {})
265
+ : command;
220
266
 
221
267
  const parts: string[] = [];
222
268
 
@@ -354,10 +400,12 @@ export function needsShellWrap(command: string): boolean {
354
400
  * Prepare a command for execution
355
401
  *
356
402
  * Parses the command and determines if it needs shell wrapping.
403
+ * When knownParameters is provided, only matching ${...} patterns are
404
+ * substituted, allowing shell syntax to pass through unchanged.
357
405
  *
358
406
  * @param command - Command template
359
407
  * @param params - Parameter values for interpolation
360
- * @param options - Interpolation options
408
+ * @param options - Interpolation options (including knownParameters)
361
409
  * @returns Command ready for execution [program, ...args]
362
410
  */
363
411
  export function prepareCommand(
@@ -390,13 +438,15 @@ export function prepareCommand(
390
438
  *
391
439
  * @param command - Parsed command
392
440
  * @param params - Provided parameters
441
+ * @param options - Parse options including knownParameters
393
442
  * @returns Array of missing parameter names
394
443
  */
395
444
  export function getMissingParams(
396
445
  command: string | ParsedCommand,
397
- params: Record<string, unknown>
446
+ params: Record<string, unknown>,
447
+ options: ParseCommandOptions = {}
398
448
  ): string[] {
399
- const parsed = typeof command === "string" ? parseCommand(command) : command;
449
+ const parsed = typeof command === "string" ? parseCommand(command, options) : command;
400
450
 
401
451
  return parsed.parameters.filter((param) => params[param] === undefined);
402
452
  }
@@ -405,8 +455,9 @@ export function getMissingParams(
405
455
  * Get all parameters in a command template
406
456
  *
407
457
  * @param command - Command template
458
+ * @param options - Parse options including knownParameters
408
459
  * @returns Array of parameter names
409
460
  */
410
- export function getCommandParams(command: string): string[] {
411
- return parseCommand(command).parameters;
461
+ export function getCommandParams(command: string, options: ParseCommandOptions = {}): string[] {
462
+ return parseCommand(command, options).parameters;
412
463
  }
@@ -61,6 +61,7 @@ export {
61
61
  parseCommandArgs,
62
62
  prepareCommand,
63
63
  getMissingParams,
64
+ type ParseCommandOptions,
64
65
  } from "./command.js";
65
66
 
66
67
  // Input validation
@@ -324,6 +324,12 @@ export interface InterpolationOptions {
324
324
  onMissing?: "error" | "empty" | "keep";
325
325
  /** Callback for warnings (e.g., potential double-quoting) */
326
326
  onWarning?: (warning: CommandWarning) => void;
327
+ /**
328
+ * Set of known parameter names from the inputSchema.
329
+ * Only ${...} patterns matching these names will be substituted.
330
+ * If not provided, ALL ${...} patterns are treated as parameters (legacy behavior).
331
+ */
332
+ knownParameters?: Set<string>;
327
333
  }
328
334
 
329
335
  /**