@enactprotocol/shared 2.2.4 → 2.3.4

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 (111) hide show
  1. package/README.md +1 -18
  2. package/dist/config.d.ts +12 -0
  3. package/dist/config.d.ts.map +1 -1
  4. package/dist/config.js +32 -6
  5. package/dist/config.js.map +1 -1
  6. package/dist/execution/action-command.d.ts +131 -0
  7. package/dist/execution/action-command.d.ts.map +1 -0
  8. package/dist/execution/action-command.js +300 -0
  9. package/dist/execution/action-command.js.map +1 -0
  10. package/dist/execution/command.d.ts +8 -8
  11. package/dist/execution/command.js +6 -6
  12. package/dist/execution/index.d.ts +1 -0
  13. package/dist/execution/index.d.ts.map +1 -1
  14. package/dist/execution/index.js +2 -0
  15. package/dist/execution/index.js.map +1 -1
  16. package/dist/execution/types.d.ts +5 -2
  17. package/dist/execution/types.d.ts.map +1 -1
  18. package/dist/execution/types.js.map +1 -1
  19. package/dist/index.d.ts +8 -6
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +11 -4
  22. package/dist/index.js.map +1 -1
  23. package/dist/manifest/actions-loader.d.ts +29 -0
  24. package/dist/manifest/actions-loader.d.ts.map +1 -0
  25. package/dist/manifest/actions-loader.js +34 -0
  26. package/dist/manifest/actions-loader.js.map +1 -0
  27. package/dist/manifest/actions-parser.d.ts +69 -0
  28. package/dist/manifest/actions-parser.d.ts.map +1 -0
  29. package/dist/manifest/actions-parser.js +265 -0
  30. package/dist/manifest/actions-parser.js.map +1 -0
  31. package/dist/manifest/index.d.ts +2 -0
  32. package/dist/manifest/index.d.ts.map +1 -1
  33. package/dist/manifest/index.js +4 -0
  34. package/dist/manifest/index.js.map +1 -1
  35. package/dist/manifest/loader.d.ts +7 -2
  36. package/dist/manifest/loader.d.ts.map +1 -1
  37. package/dist/manifest/loader.js +71 -4
  38. package/dist/manifest/loader.js.map +1 -1
  39. package/dist/manifest/parser.d.ts +1 -0
  40. package/dist/manifest/parser.d.ts.map +1 -1
  41. package/dist/manifest/parser.js +1 -0
  42. package/dist/manifest/parser.js.map +1 -1
  43. package/dist/manifest/scripts.d.ts +19 -0
  44. package/dist/manifest/scripts.d.ts.map +1 -0
  45. package/dist/manifest/scripts.js +102 -0
  46. package/dist/manifest/scripts.js.map +1 -0
  47. package/dist/manifest/validator.d.ts +1 -8
  48. package/dist/manifest/validator.d.ts.map +1 -1
  49. package/dist/manifest/validator.js +14 -13
  50. package/dist/manifest/validator.js.map +1 -1
  51. package/dist/mcp-registry.js +5 -5
  52. package/dist/mcp-registry.js.map +1 -1
  53. package/dist/paths.d.ts +9 -2
  54. package/dist/paths.d.ts.map +1 -1
  55. package/dist/paths.js +12 -3
  56. package/dist/paths.js.map +1 -1
  57. package/dist/registry.d.ts +3 -2
  58. package/dist/registry.d.ts.map +1 -1
  59. package/dist/registry.js +5 -5
  60. package/dist/registry.js.map +1 -1
  61. package/dist/resolver.d.ts +55 -4
  62. package/dist/resolver.d.ts.map +1 -1
  63. package/dist/resolver.js +133 -75
  64. package/dist/resolver.js.map +1 -1
  65. package/dist/types/actions.d.ts +194 -0
  66. package/dist/types/actions.d.ts.map +1 -0
  67. package/dist/types/actions.js +32 -0
  68. package/dist/types/actions.js.map +1 -0
  69. package/dist/types/index.d.ts +3 -1
  70. package/dist/types/index.d.ts.map +1 -1
  71. package/dist/types/index.js +1 -0
  72. package/dist/types/index.js.map +1 -1
  73. package/dist/types/manifest.d.ts +50 -5
  74. package/dist/types/manifest.d.ts.map +1 -1
  75. package/dist/types/manifest.js +10 -2
  76. package/dist/types/manifest.js.map +1 -1
  77. package/package.json +2 -2
  78. package/src/config.ts +48 -6
  79. package/src/execution/action-command.ts +417 -0
  80. package/src/execution/command.ts +8 -8
  81. package/src/execution/index.ts +17 -0
  82. package/src/execution/types.ts +13 -2
  83. package/src/index.ts +37 -0
  84. package/src/manifest/actions-loader.ts +49 -0
  85. package/src/manifest/index.ts +12 -0
  86. package/src/manifest/loader.ts +77 -4
  87. package/src/manifest/parser.ts +1 -0
  88. package/src/manifest/scripts.ts +116 -0
  89. package/src/manifest/validator.ts +15 -14
  90. package/src/mcp-registry.ts +5 -5
  91. package/src/paths.ts +13 -3
  92. package/src/registry.ts +5 -5
  93. package/src/resolver.ts +172 -77
  94. package/src/types/actions.ts +223 -0
  95. package/src/types/index.ts +11 -0
  96. package/src/types/manifest.ts +67 -6
  97. package/tests/action-command.test.ts +249 -0
  98. package/tests/config-normalization.test.ts +279 -0
  99. package/tests/config.test.ts +4 -1
  100. package/tests/effective-input-schema.test.ts +86 -0
  101. package/tests/fixtures/valid-tool.md +5 -12
  102. package/tests/fixtures/valid-tool.yaml +3 -10
  103. package/tests/hooks.test.ts +177 -0
  104. package/tests/manifest/loader.test.ts +34 -20
  105. package/tests/manifest/parser.test.ts +11 -15
  106. package/tests/manifest/validator.test.ts +7 -17
  107. package/tests/manifest-types.test.ts +9 -11
  108. package/tests/paths.test.ts +11 -4
  109. package/tests/registry.test.ts +12 -11
  110. package/tests/resolver.test.ts +11 -7
  111. package/tsconfig.tsbuildinfo +1 -1
package/README.md CHANGED
@@ -5,7 +5,7 @@ Core business logic and utilities for Enact.
5
5
  ## Overview
6
6
 
7
7
  This package provides:
8
- - Manifest parsing (enact.yaml and enact.md)
8
+ - Manifest parsing (skill.yaml, SKILL.md, and legacy enact.yaml/enact.md)
9
9
  - Configuration management (~/.enact/config.yaml)
10
10
  - Environment variable management (package-scoped)
11
11
  - Tool resolution (local, user-level, registry)
@@ -13,14 +13,6 @@ This package provides:
13
13
  - Execution engine interfaces
14
14
  - Registry client
15
15
 
16
- ## Status
17
-
18
- Currently in Phase 1 (scaffolding). Full implementation will be completed in Phase 3.
19
-
20
- ## Dependencies
21
-
22
- - `@enactprotocol/security` - For cryptographic operations
23
-
24
16
  ## Development
25
17
 
26
18
  ```bash
@@ -33,12 +25,3 @@ bun test
33
25
  # Type check
34
26
  bun run typecheck
35
27
  ```
36
-
37
- ## Planned Features (Phase 3)
38
-
39
- - [ ] Configuration system (paths, config, env, trust)
40
- - [ ] Manifest parser with YAML/Markdown support
41
- - [ ] Tool resolution with caching strategy
42
- - [ ] Execution providers (Dagger and Direct)
43
- - [ ] Registry HTTP client
44
- - [ ] Comprehensive utilities (logger, tarball, version, fs)
package/dist/config.d.ts CHANGED
@@ -20,6 +20,10 @@ export interface TrustConfig {
20
20
  policy?: "require_attestation" | "prompt" | "allow";
21
21
  /** Minimum number of trusted attestations required */
22
22
  minimum_attestations?: number;
23
+ /** Alias: when true, sets policy to 'require_attestation'; when false, sets policy to 'allow' */
24
+ require_signatures?: boolean;
25
+ /** Alias: merged into auditors list */
26
+ trusted_publishers?: string[];
23
27
  }
24
28
  /**
25
29
  * Cache configuration
@@ -33,11 +37,19 @@ export interface CacheConfig {
33
37
  /**
34
38
  * Execution configuration
35
39
  */
40
+ /** Execution backend type */
41
+ export type ExecutionBackend = "local" | "docker" | "dagger" | "container" | "remote";
36
42
  export interface ExecutionConfig {
37
43
  /** Default timeout for tool execution (e.g., "30s", "5m") */
38
44
  defaultTimeout?: string;
39
45
  /** Whether to run in verbose mode */
40
46
  verbose?: boolean;
47
+ /** Default execution backend */
48
+ default?: ExecutionBackend;
49
+ /** Fallback backend if default is unavailable */
50
+ fallback?: ExecutionBackend;
51
+ /** Package scopes that bypass container isolation and run locally (e.g., ["@my-org/*"]) */
52
+ trusted_scopes?: string[];
41
53
  }
42
54
  /**
43
55
  * Registry configuration
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,4GAA4G;IAC5G,MAAM,CAAC,EAAE,qBAAqB,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpD,sDAAsD;IACtD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,iGAAiG;IACjG,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,uCAAuC;IACvC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,6BAA6B;AAC7B,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;AAEtF,MAAM,WAAW,eAAe;IAC9B,6DAA6D;IAC7D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qCAAqC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gCAAgC;IAChC,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,iDAAiD;IACjD,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,2FAA2F;IAC3F,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,2BAA2B;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sCAAsC;IACtC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,qBAAqB;IACrB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,yBAAyB;IACzB,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,wBAAwB;IACxB,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,WAqB5B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,EAAE,MAAM,EAA8C,CAAC;AA+D5F;;;;GAIG;AACH,wBAAgB,UAAU,IAAI,WAAW,CAuBxC;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAsBpD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC,CAajE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAuB7D;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAElC;AAED;;;GAGG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CA0B3C;AAMD;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,EAAE,CAG/C;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAoB5D;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAoB/D;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CA2B3D;AAGD,mDAAmD;AACnD,eAAO,MAAM,kBAAkB,6BAAuB,CAAC;AACvD,iDAAiD;AACjD,eAAO,MAAM,iBAAiB,2BAAqB,CAAC;AACpD,oDAAoD;AACpD,eAAO,MAAM,oBAAoB,8BAAwB,CAAC;AAC1D,gDAAgD;AAChD,eAAO,MAAM,gBAAgB,0BAAoB,CAAC;AAElD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CA8DjG;AAaD;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAG/C;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI,qBAAqB,GAAG,QAAQ,GAAG,OAAO,CAS3E"}
package/dist/config.js CHANGED
@@ -3,9 +3,9 @@
3
3
  * Handles reading and writing ~/.enact/config.yaml
4
4
  */
5
5
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
6
- import { dirname, join } from "node:path";
6
+ import { dirname } from "node:path";
7
7
  import yaml from "js-yaml";
8
- import { getConfigPath, getEnactHome } from "./paths";
8
+ import { getConfigPath, getEnactHome, getSkillsDir } from "./paths";
9
9
  /**
10
10
  * Default configuration values
11
11
  */
@@ -63,6 +63,30 @@ function deepMerge(target, source) {
63
63
  }
64
64
  return result;
65
65
  }
66
+ /**
67
+ * Normalize config by resolving alias fields into their canonical counterparts.
68
+ * - trust.require_signatures → trust.policy
69
+ * - trust.trusted_publishers → merged into trust.auditors
70
+ */
71
+ function normalizeConfig(config) {
72
+ if (config.trust) {
73
+ // require_signatures is an alias for policy
74
+ if (config.trust.require_signatures !== undefined && config.trust.policy === undefined) {
75
+ config.trust.policy = config.trust.require_signatures ? "require_attestation" : "allow";
76
+ }
77
+ // trusted_publishers merges into auditors
78
+ if (config.trust.trusted_publishers?.length) {
79
+ const auditors = config.trust.auditors ?? [];
80
+ for (const publisher of config.trust.trusted_publishers) {
81
+ if (!auditors.includes(publisher)) {
82
+ auditors.push(publisher);
83
+ }
84
+ }
85
+ config.trust.auditors = auditors;
86
+ }
87
+ }
88
+ return config;
89
+ }
66
90
  /**
67
91
  * Load configuration from ~/.enact/config.yaml
68
92
  * Returns default config if file doesn't exist or is invalid
@@ -79,8 +103,10 @@ export function loadConfig() {
79
103
  if (!parsed || typeof parsed !== "object") {
80
104
  return { ...DEFAULT_CONFIG };
81
105
  }
82
- // Merge with defaults to ensure all fields exist
83
- return deepMerge(DEFAULT_CONFIG, parsed);
106
+ // Normalize aliases in user config BEFORE merging with defaults,
107
+ // so require_signatures → policy conversion isn't blocked by default policy
108
+ const normalized = normalizeConfig(parsed);
109
+ return deepMerge(DEFAULT_CONFIG, normalized);
84
110
  }
85
111
  catch {
86
112
  // Return defaults on any error (parse error, read error, etc.)
@@ -177,14 +203,14 @@ export function configExists() {
177
203
  export function ensureGlobalSetup() {
178
204
  const enactHome = getEnactHome();
179
205
  const configPath = getConfigPath();
180
- const cacheDir = join(enactHome, "cache");
206
+ const cacheDir = getSkillsDir();
181
207
  let performedSetup = false;
182
208
  // Ensure ~/.enact/ directory exists
183
209
  if (!existsSync(enactHome)) {
184
210
  mkdirSync(enactHome, { recursive: true });
185
211
  performedSetup = true;
186
212
  }
187
- // Ensure ~/.enact/cache/ directory exists
213
+ // Ensure ~/.agent/skills/ directory exists
188
214
  if (!existsSync(cacheDir)) {
189
215
  mkdirSync(cacheDir, { recursive: true });
190
216
  performedSetup = true;
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAmFpE;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAgB;IACzC,OAAO,EAAE,OAAO;IAChB,KAAK,EAAE;QACL,QAAQ,EAAE;YACR,6DAA6D;YAC7D,uCAAuC;SACxC;QACD,MAAM,EAAE,QAAQ;QAChB,oBAAoB,EAAE,CAAC;KACxB;IACD,KAAK,EAAE;QACL,SAAS,EAAE,IAAI,EAAE,MAAM;QACvB,UAAU,EAAE,KAAK,GAAG,CAAC,EAAE,SAAS;KACjC;IACD,SAAS,EAAE;QACT,cAAc,EAAE,KAAK;QACrB,OAAO,EAAE,KAAK;KACf;IACD,QAAQ,EAAE;QACR,GAAG,EAAE,uDAAuD;KAC7D;CACF,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAa,CAAC,uCAAuC,CAAC,CAAC;AAE5F;;GAEG;AACH,SAAS,SAAS,CAAC,MAAmB,EAAE,MAA4B;IAClE,MAAM,MAAM,GAAgB,EAAE,GAAG,MAAM,EAAE,CAAC;IAE1C,qBAAqB;IACrB,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,CAAC,KAAK,GAAG,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;IACtD,CAAC;IAED,qBAAqB;IACrB,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,CAAC,KAAK,GAAG,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;IACtD,CAAC;IAED,yBAAyB;IACzB,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACnC,MAAM,CAAC,SAAS,GAAG,EAAE,GAAG,MAAM,CAAC,SAAS,EAAE,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;IAClE,CAAC;IAED,wBAAwB;IACxB,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAClC,MAAM,CAAC,QAAQ,GAAG,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC/D,CAAC;IAED,4BAA4B;IAC5B,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAClC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CAAC,MAAmB;IAC1C,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,4CAA4C;QAC5C,IAAI,MAAM,CAAC,KAAK,CAAC,kBAAkB,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACvF,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,OAAO,CAAC;QAC1F,CAAC;QAED,0CAA0C;QAC1C,IAAI,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE,MAAM,EAAE,CAAC;YAC5C,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;YAC7C,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC;gBACxD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;oBAClC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACnC,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU;IACxB,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IAEnC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,GAAG,cAAc,EAAE,CAAC;IAC/B,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAgC,CAAC;QAEjE,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC1C,OAAO,EAAE,GAAG,cAAc,EAAE,CAAC;QAC/B,CAAC;QAED,iEAAiE;QACjE,4EAA4E;QAC5E,MAAM,UAAU,GAAG,eAAe,CAAC,MAAqB,CAAC,CAAC;QAC1D,OAAO,SAAS,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,+DAA+D;QAC/D,OAAO,EAAE,GAAG,cAAc,EAAE,CAAC;IAC/B,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,MAAmB;IAC5C,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IACnC,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IAEjC,oCAAoC;IACpC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,mEAAmE;IACnE,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACtC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;QACpC,MAAM,EAAE,CAAC;QACT,SAAS,EAAE,GAAG;QACd,MAAM,EAAE,IAAI;KACb,CAAC,CAAC;IAEH,aAAa,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;AAClD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAI,GAAW,EAAE,YAAe;IAC5D,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAE5B,IAAI,OAAO,GAAY,MAAM,CAAC;IAC9B,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC7E,OAAO,YAAY,CAAC;QACtB,CAAC;QACD,OAAO,GAAI,OAAmC,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAE,OAAa,CAAC;AAC/D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAI,GAAW,EAAE,KAAQ;IACrD,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE3B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IAED,qEAAqE;IACrE,IAAI,OAAO,GAA4B,MAAiC,CAAC;IACzE,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,OAAO,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;YACtF,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QAClB,CAAC;QACD,OAAO,GAAG,OAAO,CAAC,CAAC,CAA4B,CAAC;IAClD,CAAC;IAED,gBAAgB;IAChB,OAAO,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;IAEzB,UAAU;IACV,UAAU,CAAC,MAAM,CAAC,CAAC;AACrB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW;IACzB,UAAU,CAAC,EAAE,GAAG,cAAc,EAAE,CAAC,CAAC;AACpC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC;AACrC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IACnC,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;IAEhC,IAAI,cAAc,GAAG,KAAK,CAAC;IAE3B,oCAAoC;IACpC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,cAAc,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,2CAA2C;IAC3C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACzC,cAAc,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,4CAA4C;IAC5C,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,UAAU,CAAC,EAAE,GAAG,cAAc,EAAE,CAAC,CAAC;QAClC,cAAc,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,gFAAgF;AAChF,yBAAyB;AACzB,gFAAgF;AAEhF;;;GAGG;AACH,MAAM,UAAU,oBAAoB;IAClC,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,OAAO,MAAM,CAAC,KAAK,EAAE,QAAQ,IAAI,EAAE,CAAC;AACtC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IACjD,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,EAAE,QAAQ,IAAI,EAAE,CAAC;IAE9C,0BAA0B;IAC1B,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,cAAc;IACd,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAExB,gBAAgB;IAChB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,CAAC,KAAK,GAAG,EAAE,GAAG,cAAc,CAAC,KAAK,EAAE,CAAC;IAC7C,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAEjC,UAAU,CAAC,MAAM,CAAC,CAAC;IACnB,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAgB;IACpD,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,EAAE,QAAQ,IAAI,EAAE,CAAC;IAE9C,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QACjB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,mBAAmB;IACnB,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAE1B,gBAAgB;IAChB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,CAAC,KAAK,GAAG,EAAE,GAAG,cAAc,CAAC,KAAK,EAAE,CAAC;IAC7C,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAEjC,UAAU,CAAC,MAAM,CAAC,CAAC;IACnB,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAgB;IAChD,MAAM,iBAAiB,GAAG,oBAAoB,EAAE,CAAC;IAEjD,0BAA0B;IAC1B,IAAI,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,6EAA6E;IAC7E,KAAK,MAAM,OAAO,IAAI,iBAAiB,EAAE,CAAC;QACxC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY;YACjD,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtC,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,8CAA8C;QAC9C,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1C,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,UAAU,EAAE,CAAC,EAAE,CAAC;gBACxC,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,4CAA4C;AAC5C,mDAAmD;AACnD,MAAM,CAAC,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AACvD,iDAAiD;AACjD,MAAM,CAAC,MAAM,iBAAiB,GAAG,kBAAkB,CAAC;AACpD,oDAAoD;AACpD,MAAM,CAAC,MAAM,oBAAoB,GAAG,qBAAqB,CAAC;AAC1D,gDAAgD;AAChD,MAAM,CAAC,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;AAElD;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAa,EAAE,MAAe,EAAE,QAAiB;IACvF,iEAAiE;IACjE,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,GAAG,QAAQ,IAAI,QAAQ,EAAE,CAAC;QACnC,CAAC;IACH,CAAC;IAED,kDAAkD;IAClD,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,QAAQ,EAAE,CAAC;YACb,gDAAgD;YAChD,IAAI,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,2BAA2B,CAAC,EAAE,CAAC;gBACzE,oEAAoE;gBACpE,8CAA8C;gBAC9C,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC;gBACjE,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACzC,MAAM,iBAAiB,GAAG,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBACtF,OAAO,UAAU,iBAAiB,EAAE,CAAC;YACvC,CAAC;YACD,yDAAyD;YACzD,OAAO,GAAG,QAAQ,IAAI,KAAK,EAAE,CAAC;QAChC,CAAC;IACH,CAAC;IAED,2DAA2D;IAC3D,MAAM,WAAW,GAA2B;QAC1C,2BAA2B,EAAE,QAAQ;QACrC,aAAa,EAAE,QAAQ;QACvB,YAAY,EAAE,QAAQ;QACtB,iBAAiB,EAAE,QAAQ;QAC3B,cAAc,EAAE,WAAW;QAC3B,cAAc,EAAE,WAAW;QAC3B,WAAW,EAAE,WAAW;KACzB,CAAC;IAEF,wCAAwC;IACxC,KAAK,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7D,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,IAAI,iBAAiB,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YACzE,2EAA2E;YAC3E,IAAI,QAAQ,KAAK,QAAQ,IAAI,MAAM,KAAK,2BAA2B,EAAE,CAAC;gBACpE,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACjD,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;oBACnB,iBAAiB,GAAG,iBAAiB,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;gBAC7D,CAAC;YACH,CAAC;YACD,OAAO,GAAG,QAAQ,IAAI,iBAAiB,EAAE,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,kDAAkD;IAClD,8CAA8C;IAC9C,IAAI,KAAK,CAAC,UAAU,CAAC,qBAAqB,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;QACtD,OAAO,UAAU,IAAI,EAAE,CAAC;IAC1B,CAAC;IAED,2BAA2B;IAC3B,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,MAAc;IACtC,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC;QAAE,OAAO,QAAQ,CAAC;IACnD,IAAI,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC5D,IAAI,MAAM,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QAAE,OAAO,WAAW,CAAC;IACrE,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC;QAAE,OAAO,QAAQ,CAAC;IACnD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB;IACpC,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,OAAO,MAAM,CAAC,KAAK,EAAE,oBAAoB,IAAI,CAAC,CAAC;AACjD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc;IAC5B,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,sEAAsE;IACtE,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,MAA4B,CAAC;IAC1D,IAAI,MAAM,KAAK,eAAe,EAAE,CAAC;QAC/B,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IACD,0DAA0D;IAC1D,OAAQ,MAAqD,IAAI,qBAAqB,CAAC;AACzF,CAAC"}
@@ -0,0 +1,131 @@
1
+ /**
2
+ * Action command interpolation for Agent Actions
3
+ *
4
+ * Implements the {{param}} template syntax specified in RFC-001-AGENT-ACTIONS.
5
+ *
6
+ * ## Key Differences from ${param} (command.ts)
7
+ *
8
+ * 1. **No shell escaping**: Values are passed directly as arguments to execve()
9
+ * 2. **Array form only**: Templates only work in array-form commands
10
+ * 3. **Argument omission**: Optional params without values are omitted entirely
11
+ * 4. **Single argument substitution**: Each {{var}} becomes exactly one argument
12
+ *
13
+ * ## Security
14
+ *
15
+ * This template system is designed to prevent command injection:
16
+ * - Values are never passed through a shell interpreter
17
+ * - No argument splitting on whitespace or metacharacters
18
+ * - Each template becomes a single argument regardless of content
19
+ *
20
+ * @see RFC-001-AGENT-ACTIONS.md
21
+ */
22
+ import type { JSONSchema7 } from "json-schema";
23
+ /**
24
+ * Token types for action command parsing
25
+ */
26
+ export interface ActionCommandLiteralToken {
27
+ type: "literal";
28
+ value: string;
29
+ }
30
+ export interface ActionCommandParamToken {
31
+ type: "parameter";
32
+ name: string;
33
+ }
34
+ export type ActionCommandToken = ActionCommandLiteralToken | ActionCommandParamToken;
35
+ /**
36
+ * Parsed representation of a single command argument
37
+ */
38
+ export interface ParsedArgument {
39
+ /** The tokens that make up this argument */
40
+ tokens: ActionCommandToken[];
41
+ /** Parameter names referenced in this argument */
42
+ parameters: string[];
43
+ }
44
+ /**
45
+ * Result of parsing an action command
46
+ */
47
+ export interface ParsedActionCommand {
48
+ /** Original command (array form) */
49
+ original: string[];
50
+ /** Parsed arguments with tokens */
51
+ arguments: ParsedArgument[];
52
+ /** All unique parameter names across all arguments */
53
+ allParameters: string[];
54
+ }
55
+ /**
56
+ * Check if a string contains {{param}} templates
57
+ */
58
+ export declare function hasActionTemplates(str: string): boolean;
59
+ /**
60
+ * Parse a single argument string into tokens
61
+ *
62
+ * @param arg - The argument string to parse
63
+ * @returns ParsedArgument with tokens and parameter names
64
+ */
65
+ export declare function parseActionArgument(arg: string): ParsedArgument;
66
+ /**
67
+ * Parse an action command (array form) into tokens
68
+ *
69
+ * @param command - The command array to parse
70
+ * @returns ParsedActionCommand with all arguments parsed
71
+ */
72
+ export declare function parseActionCommand(command: string[]): ParsedActionCommand;
73
+ /**
74
+ * Options for action command interpolation
75
+ */
76
+ export interface ActionInterpolationOptions {
77
+ /**
78
+ * JSON Schema for input validation
79
+ * Used to determine which parameters are optional and have defaults
80
+ */
81
+ inputSchema?: JSONSchema7;
82
+ /**
83
+ * Whether to omit arguments for optional params with no value
84
+ * Default: true (as per RFC-001)
85
+ */
86
+ omitMissingOptional?: boolean;
87
+ }
88
+ /**
89
+ * Interpolate an action command with parameter values
90
+ *
91
+ * Implements RFC-001 template substitution rules:
92
+ * 1. Each {{var}} is replaced with the literal value as a single argument
93
+ * 2. Optional parameters without values cause the argument to be omitted
94
+ * 3. No shell interpolation - values passed directly to execve()
95
+ *
96
+ * @param command - Array-form command with {{param}} templates
97
+ * @param params - Parameter values
98
+ * @param options - Interpolation options
99
+ * @returns Array of command arguments ready for execve()
100
+ */
101
+ export declare function interpolateActionCommand(command: string[], params: Record<string, unknown>, options?: ActionInterpolationOptions): string[];
102
+ /**
103
+ * Validate that all required parameters are provided
104
+ *
105
+ * @param command - Array-form command
106
+ * @param params - Provided parameter values
107
+ * @param inputSchema - JSON Schema for required field info
108
+ * @returns Array of missing required parameter names
109
+ */
110
+ export declare function getMissingRequiredParams(command: string[], params: Record<string, unknown>, inputSchema?: JSONSchema7): string[];
111
+ /**
112
+ * Get all parameters referenced in a command
113
+ *
114
+ * @param command - Array-form command
115
+ * @returns Array of parameter names
116
+ */
117
+ export declare function getActionCommandParams(command: string[]): string[];
118
+ /**
119
+ * Prepare an action command for execution
120
+ *
121
+ * This is the main entry point for preparing action commands.
122
+ * It validates required parameters and interpolates the command.
123
+ *
124
+ * @param command - Array-form command with {{param}} templates
125
+ * @param params - Parameter values
126
+ * @param inputSchema - JSON Schema for validation
127
+ * @returns Array of command arguments ready for execve()
128
+ * @throws Error if required parameters are missing
129
+ */
130
+ export declare function prepareActionCommand(command: string[], params: Record<string, unknown>, inputSchema?: JSONSchema7): string[];
131
+ //# sourceMappingURL=action-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action-command.d.ts","sourceRoot":"","sources":["../../src/execution/action-command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,kBAAkB,GAAG,yBAAyB,GAAG,uBAAuB,CAAC;AAErF;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,4CAA4C;IAC5C,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC7B,kDAAkD;IAClD,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,oCAAoC;IACpC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,mCAAmC;IACnC,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,sDAAsD;IACtD,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAOD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAIvD;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAmD/D;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,mBAAmB,CAqBzE;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC;;;OAGG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAE1B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAwHD;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,EAAE,EACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,GAAE,0BAA+B,GACvC,MAAM,EAAE,CA+BV;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,EAAE,EACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,WAAW,CAAC,EAAE,WAAW,GACxB,MAAM,EAAE,CAeV;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAElE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EAAE,EACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,WAAW,CAAC,EAAE,WAAW,GACxB,MAAM,EAAE,CAaV"}
@@ -0,0 +1,300 @@
1
+ /**
2
+ * Action command interpolation for Agent Actions
3
+ *
4
+ * Implements the {{param}} template syntax specified in RFC-001-AGENT-ACTIONS.
5
+ *
6
+ * ## Key Differences from ${param} (command.ts)
7
+ *
8
+ * 1. **No shell escaping**: Values are passed directly as arguments to execve()
9
+ * 2. **Array form only**: Templates only work in array-form commands
10
+ * 3. **Argument omission**: Optional params without values are omitted entirely
11
+ * 4. **Single argument substitution**: Each {{var}} becomes exactly one argument
12
+ *
13
+ * ## Security
14
+ *
15
+ * This template system is designed to prevent command injection:
16
+ * - Values are never passed through a shell interpreter
17
+ * - No argument splitting on whitespace or metacharacters
18
+ * - Each template becomes a single argument regardless of content
19
+ *
20
+ * @see RFC-001-AGENT-ACTIONS.md
21
+ */
22
+ /**
23
+ * Regex to match {{param}} template syntax
24
+ */
25
+ const ACTION_TEMPLATE_REGEX = /\{\{([^}]+)\}\}/g;
26
+ /**
27
+ * Check if a string contains {{param}} templates
28
+ */
29
+ export function hasActionTemplates(str) {
30
+ // Reset regex state and test
31
+ ACTION_TEMPLATE_REGEX.lastIndex = 0;
32
+ return ACTION_TEMPLATE_REGEX.test(str);
33
+ }
34
+ /**
35
+ * Parse a single argument string into tokens
36
+ *
37
+ * @param arg - The argument string to parse
38
+ * @returns ParsedArgument with tokens and parameter names
39
+ */
40
+ export function parseActionArgument(arg) {
41
+ const tokens = [];
42
+ const parameters = [];
43
+ let lastIndex = 0;
44
+ const regex = /\{\{([^}]+)\}\}/g;
45
+ let match = regex.exec(arg);
46
+ while (match !== null) {
47
+ // Add literal text before this match
48
+ if (match.index > lastIndex) {
49
+ tokens.push({
50
+ type: "literal",
51
+ value: arg.slice(lastIndex, match.index),
52
+ });
53
+ }
54
+ // Add the parameter token
55
+ const paramName = match[1]?.trim();
56
+ if (paramName) {
57
+ tokens.push({
58
+ type: "parameter",
59
+ name: paramName,
60
+ });
61
+ if (!parameters.includes(paramName)) {
62
+ parameters.push(paramName);
63
+ }
64
+ }
65
+ lastIndex = match.index + match[0].length;
66
+ match = regex.exec(arg);
67
+ }
68
+ // Add any remaining literal text
69
+ if (lastIndex < arg.length) {
70
+ tokens.push({
71
+ type: "literal",
72
+ value: arg.slice(lastIndex),
73
+ });
74
+ }
75
+ // If no tokens were created, the whole arg is a literal
76
+ if (tokens.length === 0) {
77
+ tokens.push({
78
+ type: "literal",
79
+ value: arg,
80
+ });
81
+ }
82
+ return { tokens, parameters };
83
+ }
84
+ /**
85
+ * Parse an action command (array form) into tokens
86
+ *
87
+ * @param command - The command array to parse
88
+ * @returns ParsedActionCommand with all arguments parsed
89
+ */
90
+ export function parseActionCommand(command) {
91
+ const parsedArgs = [];
92
+ const allParameters = [];
93
+ for (const arg of command) {
94
+ const parsed = parseActionArgument(arg);
95
+ parsedArgs.push(parsed);
96
+ // Collect unique parameters
97
+ for (const param of parsed.parameters) {
98
+ if (!allParameters.includes(param)) {
99
+ allParameters.push(param);
100
+ }
101
+ }
102
+ }
103
+ return {
104
+ original: command,
105
+ arguments: parsedArgs,
106
+ allParameters,
107
+ };
108
+ }
109
+ /**
110
+ * Get the default value for a parameter from the input schema
111
+ */
112
+ function getDefaultValue(paramName, inputSchema) {
113
+ if (!inputSchema || inputSchema.type !== "object") {
114
+ return undefined;
115
+ }
116
+ const properties = inputSchema.properties;
117
+ if (!properties) {
118
+ return undefined;
119
+ }
120
+ const propSchema = properties[paramName];
121
+ if (!propSchema || typeof propSchema === "boolean") {
122
+ return undefined;
123
+ }
124
+ return propSchema.default;
125
+ }
126
+ /**
127
+ * Check if a parameter is required according to the input schema
128
+ */
129
+ function isRequired(paramName, inputSchema) {
130
+ if (!inputSchema) {
131
+ return true; // Conservative default
132
+ }
133
+ const required = inputSchema.required;
134
+ return required?.includes(paramName) ?? false;
135
+ }
136
+ /**
137
+ * Convert a value to string for command argument
138
+ *
139
+ * Unlike command.ts, we don't shell-escape here because values
140
+ * are passed directly to execve(), not through a shell.
141
+ */
142
+ function valueToArgString(value) {
143
+ if (value === null || value === undefined) {
144
+ return "";
145
+ }
146
+ if (typeof value === "string") {
147
+ return value;
148
+ }
149
+ if (typeof value === "number" || typeof value === "boolean") {
150
+ return String(value);
151
+ }
152
+ if (typeof value === "object") {
153
+ return JSON.stringify(value);
154
+ }
155
+ return String(value);
156
+ }
157
+ /**
158
+ * Interpolate a single argument with parameter values
159
+ *
160
+ * @param parsed - Parsed argument with tokens
161
+ * @param params - Parameter values
162
+ * @param inputSchema - JSON Schema for defaults and required checks
163
+ * @returns Interpolated string, or undefined if argument should be omitted
164
+ */
165
+ function interpolateArgument(parsed, params, inputSchema) {
166
+ // Check if any parameter in this argument should cause omission
167
+ for (const paramName of parsed.parameters) {
168
+ const value = params[paramName];
169
+ const defaultValue = getDefaultValue(paramName, inputSchema);
170
+ const required = isRequired(paramName, inputSchema);
171
+ // If parameter is not provided
172
+ if (value === undefined) {
173
+ // Use default if available
174
+ if (defaultValue !== undefined) {
175
+ // Continue with default value (handled below in token processing)
176
+ continue;
177
+ }
178
+ // If optional (not required) and no default, omit entire argument
179
+ if (!required) {
180
+ return undefined;
181
+ }
182
+ // If required and no value, this is an error
183
+ throw new Error(`Missing required parameter: ${paramName}`);
184
+ }
185
+ }
186
+ // Build the interpolated string
187
+ const parts = [];
188
+ for (const token of parsed.tokens) {
189
+ if (token.type === "literal") {
190
+ parts.push(token.value);
191
+ }
192
+ else {
193
+ const paramName = token.name;
194
+ let value = params[paramName];
195
+ // Apply default if value not provided
196
+ if (value === undefined) {
197
+ value = getDefaultValue(paramName, inputSchema);
198
+ }
199
+ parts.push(valueToArgString(value));
200
+ }
201
+ }
202
+ return parts.join("");
203
+ }
204
+ /**
205
+ * Interpolate an action command with parameter values
206
+ *
207
+ * Implements RFC-001 template substitution rules:
208
+ * 1. Each {{var}} is replaced with the literal value as a single argument
209
+ * 2. Optional parameters without values cause the argument to be omitted
210
+ * 3. No shell interpolation - values passed directly to execve()
211
+ *
212
+ * @param command - Array-form command with {{param}} templates
213
+ * @param params - Parameter values
214
+ * @param options - Interpolation options
215
+ * @returns Array of command arguments ready for execve()
216
+ */
217
+ export function interpolateActionCommand(command, params, options = {}) {
218
+ const { inputSchema, omitMissingOptional = true } = options;
219
+ const parsed = parseActionCommand(command);
220
+ const result = [];
221
+ for (const arg of parsed.arguments) {
222
+ // If argument has no parameters, include it as-is
223
+ if (arg.parameters.length === 0) {
224
+ // It's just a literal
225
+ const literal = arg.tokens[0];
226
+ if (literal && literal.type === "literal") {
227
+ result.push(literal.value);
228
+ }
229
+ continue;
230
+ }
231
+ const interpolated = interpolateArgument(arg, params, inputSchema);
232
+ // undefined means omit this argument
233
+ if (interpolated === undefined) {
234
+ if (!omitMissingOptional) {
235
+ // If not omitting, use empty string
236
+ result.push("");
237
+ }
238
+ // Otherwise skip this argument entirely
239
+ continue;
240
+ }
241
+ result.push(interpolated);
242
+ }
243
+ return result;
244
+ }
245
+ /**
246
+ * Validate that all required parameters are provided
247
+ *
248
+ * @param command - Array-form command
249
+ * @param params - Provided parameter values
250
+ * @param inputSchema - JSON Schema for required field info
251
+ * @returns Array of missing required parameter names
252
+ */
253
+ export function getMissingRequiredParams(command, params, inputSchema) {
254
+ const parsed = parseActionCommand(command);
255
+ const missing = [];
256
+ for (const paramName of parsed.allParameters) {
257
+ const value = params[paramName];
258
+ const defaultValue = getDefaultValue(paramName, inputSchema);
259
+ const required = isRequired(paramName, inputSchema);
260
+ if (required && value === undefined && defaultValue === undefined) {
261
+ missing.push(paramName);
262
+ }
263
+ }
264
+ return missing;
265
+ }
266
+ /**
267
+ * Get all parameters referenced in a command
268
+ *
269
+ * @param command - Array-form command
270
+ * @returns Array of parameter names
271
+ */
272
+ export function getActionCommandParams(command) {
273
+ return parseActionCommand(command).allParameters;
274
+ }
275
+ /**
276
+ * Prepare an action command for execution
277
+ *
278
+ * This is the main entry point for preparing action commands.
279
+ * It validates required parameters and interpolates the command.
280
+ *
281
+ * @param command - Array-form command with {{param}} templates
282
+ * @param params - Parameter values
283
+ * @param inputSchema - JSON Schema for validation
284
+ * @returns Array of command arguments ready for execve()
285
+ * @throws Error if required parameters are missing
286
+ */
287
+ export function prepareActionCommand(command, params, inputSchema) {
288
+ // Validate required parameters
289
+ const missing = getMissingRequiredParams(command, params, inputSchema);
290
+ if (missing.length > 0) {
291
+ throw new Error(`Missing required parameters: ${missing.join(", ")}`);
292
+ }
293
+ // Interpolate and return
294
+ const options = {};
295
+ if (inputSchema !== undefined) {
296
+ options.inputSchema = inputSchema;
297
+ }
298
+ return interpolateActionCommand(command, params, options);
299
+ }
300
+ //# sourceMappingURL=action-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action-command.js","sourceRoot":"","sources":["../../src/execution/action-command.ts"],"names":[],"mappings":"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"}