@executioncontrolprotocol/runtime 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (193) hide show
  1. package/dist/engine/context-loader.d.ts +31 -0
  2. package/dist/engine/context-loader.d.ts.map +1 -0
  3. package/dist/engine/context-loader.js +90 -0
  4. package/dist/engine/context-loader.js.map +1 -0
  5. package/dist/engine/index.d.ts +6 -0
  6. package/dist/engine/index.d.ts.map +1 -0
  7. package/dist/engine/index.js +6 -0
  8. package/dist/engine/index.js.map +1 -0
  9. package/dist/engine/runner.d.ts +92 -0
  10. package/dist/engine/runner.d.ts.map +1 -0
  11. package/dist/engine/runner.js +852 -0
  12. package/dist/engine/runner.js.map +1 -0
  13. package/dist/engine/schema-validator.d.ts +32 -0
  14. package/dist/engine/schema-validator.d.ts.map +1 -0
  15. package/dist/engine/schema-validator.js +69 -0
  16. package/dist/engine/schema-validator.js.map +1 -0
  17. package/dist/engine/system-config-loader.d.ts +39 -0
  18. package/dist/engine/system-config-loader.d.ts.map +1 -0
  19. package/dist/engine/system-config-loader.js +80 -0
  20. package/dist/engine/system-config-loader.js.map +1 -0
  21. package/dist/engine/types.d.ts +324 -0
  22. package/dist/engine/types.d.ts.map +1 -0
  23. package/dist/engine/types.js +10 -0
  24. package/dist/engine/types.js.map +1 -0
  25. package/dist/evals/index.d.ts +3 -0
  26. package/dist/evals/index.d.ts.map +1 -0
  27. package/dist/evals/index.js +3 -0
  28. package/dist/evals/index.js.map +1 -0
  29. package/dist/evals/scorer.d.ts +23 -0
  30. package/dist/evals/scorer.d.ts.map +1 -0
  31. package/dist/evals/scorer.js +133 -0
  32. package/dist/evals/scorer.js.map +1 -0
  33. package/dist/evals/types.d.ts +128 -0
  34. package/dist/evals/types.d.ts.map +1 -0
  35. package/dist/evals/types.js +11 -0
  36. package/dist/evals/types.js.map +1 -0
  37. package/dist/extensions/builtin.d.ts +44 -0
  38. package/dist/extensions/builtin.d.ts.map +1 -0
  39. package/dist/extensions/builtin.js +66 -0
  40. package/dist/extensions/builtin.js.map +1 -0
  41. package/dist/extensions/index.d.ts +4 -0
  42. package/dist/extensions/index.d.ts.map +1 -0
  43. package/dist/extensions/index.js +4 -0
  44. package/dist/extensions/index.js.map +1 -0
  45. package/dist/extensions/progress-loggers/file-logger.d.ts +27 -0
  46. package/dist/extensions/progress-loggers/file-logger.d.ts.map +1 -0
  47. package/dist/extensions/progress-loggers/file-logger.js +54 -0
  48. package/dist/extensions/progress-loggers/file-logger.js.map +1 -0
  49. package/dist/extensions/registry.d.ts +74 -0
  50. package/dist/extensions/registry.d.ts.map +1 -0
  51. package/dist/extensions/registry.js +126 -0
  52. package/dist/extensions/registry.js.map +1 -0
  53. package/dist/extensions/types.d.ts +78 -0
  54. package/dist/extensions/types.d.ts.map +1 -0
  55. package/dist/extensions/types.js +7 -0
  56. package/dist/extensions/types.js.map +1 -0
  57. package/dist/index.d.ts +10 -0
  58. package/dist/index.d.ts.map +1 -0
  59. package/dist/index.js +10 -0
  60. package/dist/index.js.map +1 -0
  61. package/dist/mounts/hydrator.d.ts +46 -0
  62. package/dist/mounts/hydrator.d.ts.map +1 -0
  63. package/dist/mounts/hydrator.js +142 -0
  64. package/dist/mounts/hydrator.js.map +1 -0
  65. package/dist/mounts/index.d.ts +4 -0
  66. package/dist/mounts/index.d.ts.map +1 -0
  67. package/dist/mounts/index.js +4 -0
  68. package/dist/mounts/index.js.map +1 -0
  69. package/dist/mounts/interpolation.d.ts +33 -0
  70. package/dist/mounts/interpolation.d.ts.map +1 -0
  71. package/dist/mounts/interpolation.js +59 -0
  72. package/dist/mounts/interpolation.js.map +1 -0
  73. package/dist/mounts/types.d.ts +80 -0
  74. package/dist/mounts/types.d.ts.map +1 -0
  75. package/dist/mounts/types.js +10 -0
  76. package/dist/mounts/types.js.map +1 -0
  77. package/dist/policies/enforcer.d.ts +23 -0
  78. package/dist/policies/enforcer.d.ts.map +1 -0
  79. package/dist/policies/enforcer.js +111 -0
  80. package/dist/policies/enforcer.js.map +1 -0
  81. package/dist/policies/index.d.ts +3 -0
  82. package/dist/policies/index.d.ts.map +1 -0
  83. package/dist/policies/index.js +3 -0
  84. package/dist/policies/index.js.map +1 -0
  85. package/dist/policies/types.d.ts +87 -0
  86. package/dist/policies/types.d.ts.map +1 -0
  87. package/dist/policies/types.js +11 -0
  88. package/dist/policies/types.js.map +1 -0
  89. package/dist/protocols/a2a/a2a-transport.d.ts +40 -0
  90. package/dist/protocols/a2a/a2a-transport.d.ts.map +1 -0
  91. package/dist/protocols/a2a/a2a-transport.js +212 -0
  92. package/dist/protocols/a2a/a2a-transport.js.map +1 -0
  93. package/dist/protocols/a2a/index.d.ts +3 -0
  94. package/dist/protocols/a2a/index.d.ts.map +1 -0
  95. package/dist/protocols/a2a/index.js +2 -0
  96. package/dist/protocols/a2a/index.js.map +1 -0
  97. package/dist/protocols/agent-transport.d.ts +101 -0
  98. package/dist/protocols/agent-transport.d.ts.map +1 -0
  99. package/dist/protocols/agent-transport.js +11 -0
  100. package/dist/protocols/agent-transport.js.map +1 -0
  101. package/dist/protocols/index.d.ts +5 -0
  102. package/dist/protocols/index.d.ts.map +1 -0
  103. package/dist/protocols/index.js +5 -0
  104. package/dist/protocols/index.js.map +1 -0
  105. package/dist/protocols/mcp/index.d.ts +2 -0
  106. package/dist/protocols/mcp/index.d.ts.map +1 -0
  107. package/dist/protocols/mcp/index.js +2 -0
  108. package/dist/protocols/mcp/index.js.map +1 -0
  109. package/dist/protocols/mcp/mcp-tool-invoker.d.ts +30 -0
  110. package/dist/protocols/mcp/mcp-tool-invoker.d.ts.map +1 -0
  111. package/dist/protocols/mcp/mcp-tool-invoker.js +121 -0
  112. package/dist/protocols/mcp/mcp-tool-invoker.js.map +1 -0
  113. package/dist/protocols/tool-invoker.d.ts +91 -0
  114. package/dist/protocols/tool-invoker.d.ts.map +1 -0
  115. package/dist/protocols/tool-invoker.js +11 -0
  116. package/dist/protocols/tool-invoker.js.map +1 -0
  117. package/dist/providers/index.d.ts +4 -0
  118. package/dist/providers/index.d.ts.map +1 -0
  119. package/dist/providers/index.js +4 -0
  120. package/dist/providers/index.js.map +1 -0
  121. package/dist/providers/model-provider.d.ts +132 -0
  122. package/dist/providers/model-provider.d.ts.map +1 -0
  123. package/dist/providers/model-provider.js +10 -0
  124. package/dist/providers/model-provider.js.map +1 -0
  125. package/dist/providers/ollama/index.d.ts +3 -0
  126. package/dist/providers/ollama/index.d.ts.map +1 -0
  127. package/dist/providers/ollama/index.js +2 -0
  128. package/dist/providers/ollama/index.js.map +1 -0
  129. package/dist/providers/ollama/ollama-provider.d.ts +41 -0
  130. package/dist/providers/ollama/ollama-provider.d.ts.map +1 -0
  131. package/dist/providers/ollama/ollama-provider.js +113 -0
  132. package/dist/providers/ollama/ollama-provider.js.map +1 -0
  133. package/dist/providers/openai/index.d.ts +3 -0
  134. package/dist/providers/openai/index.d.ts.map +1 -0
  135. package/dist/providers/openai/index.js +2 -0
  136. package/dist/providers/openai/index.js.map +1 -0
  137. package/dist/providers/openai/openai-provider.d.ts +41 -0
  138. package/dist/providers/openai/openai-provider.d.ts.map +1 -0
  139. package/dist/providers/openai/openai-provider.js +150 -0
  140. package/dist/providers/openai/openai-provider.js.map +1 -0
  141. package/dist/testing/cassette.d.ts +88 -0
  142. package/dist/testing/cassette.d.ts.map +1 -0
  143. package/dist/testing/cassette.js +123 -0
  144. package/dist/testing/cassette.js.map +1 -0
  145. package/dist/testing/index.d.ts +5 -0
  146. package/dist/testing/index.d.ts.map +1 -0
  147. package/dist/testing/index.js +5 -0
  148. package/dist/testing/index.js.map +1 -0
  149. package/dist/testing/mock-agent-transport.d.ts +49 -0
  150. package/dist/testing/mock-agent-transport.d.ts.map +1 -0
  151. package/dist/testing/mock-agent-transport.js +71 -0
  152. package/dist/testing/mock-agent-transport.js.map +1 -0
  153. package/dist/testing/mock-model-provider.d.ts +69 -0
  154. package/dist/testing/mock-model-provider.d.ts.map +1 -0
  155. package/dist/testing/mock-model-provider.js +92 -0
  156. package/dist/testing/mock-model-provider.js.map +1 -0
  157. package/dist/testing/mock-tool-invoker.d.ts +65 -0
  158. package/dist/testing/mock-tool-invoker.d.ts.map +1 -0
  159. package/dist/testing/mock-tool-invoker.js +85 -0
  160. package/dist/testing/mock-tool-invoker.js.map +1 -0
  161. package/dist/tracing/collector.d.ts +75 -0
  162. package/dist/tracing/collector.d.ts.map +1 -0
  163. package/dist/tracing/collector.js +106 -0
  164. package/dist/tracing/collector.js.map +1 -0
  165. package/dist/tracing/exporters/console.d.ts +17 -0
  166. package/dist/tracing/exporters/console.d.ts.map +1 -0
  167. package/dist/tracing/exporters/console.js +76 -0
  168. package/dist/tracing/exporters/console.js.map +1 -0
  169. package/dist/tracing/exporters/index.d.ts +4 -0
  170. package/dist/tracing/exporters/index.d.ts.map +1 -0
  171. package/dist/tracing/exporters/index.js +3 -0
  172. package/dist/tracing/exporters/index.js.map +1 -0
  173. package/dist/tracing/exporters/json-file.d.ts +30 -0
  174. package/dist/tracing/exporters/json-file.d.ts.map +1 -0
  175. package/dist/tracing/exporters/json-file.js +28 -0
  176. package/dist/tracing/exporters/json-file.js.map +1 -0
  177. package/dist/tracing/formatter.d.ts +16 -0
  178. package/dist/tracing/formatter.d.ts.map +1 -0
  179. package/dist/tracing/formatter.js +81 -0
  180. package/dist/tracing/formatter.js.map +1 -0
  181. package/dist/tracing/graph.d.ts +17 -0
  182. package/dist/tracing/graph.d.ts.map +1 -0
  183. package/dist/tracing/graph.js +116 -0
  184. package/dist/tracing/graph.js.map +1 -0
  185. package/dist/tracing/index.d.ts +6 -0
  186. package/dist/tracing/index.d.ts.map +1 -0
  187. package/dist/tracing/index.js +6 -0
  188. package/dist/tracing/index.js.map +1 -0
  189. package/dist/tracing/types.d.ts +124 -0
  190. package/dist/tracing/types.d.ts.map +1 -0
  191. package/dist/tracing/types.js +11 -0
  192. package/dist/tracing/types.js.map +1 -0
  193. package/package.json +42 -0
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Context loader — reads and validates ECP Context manifests from
3
+ * YAML or JSON files.
4
+ *
5
+ * @category Engine
6
+ */
7
+ import type { ECPContext } from "@executioncontrolprotocol/spec";
8
+ /**
9
+ * Load an ECP Context manifest from a YAML or JSON file.
10
+ *
11
+ * @param filePath - Absolute or relative path to the manifest.
12
+ * @returns The parsed Context object.
13
+ * @throws If the file cannot be read or parsed.
14
+ *
15
+ * @category Engine
16
+ */
17
+ export declare function loadContext(filePath: string): ECPContext;
18
+ /**
19
+ * Resolve input values for a Context run. Applies defaults for
20
+ * missing optional inputs and validates that all required inputs
21
+ * are provided.
22
+ *
23
+ * @param context - The loaded Context.
24
+ * @param supplied - Input values supplied by the caller.
25
+ * @returns Fully resolved input values.
26
+ * @throws If a required input is missing.
27
+ *
28
+ * @category Engine
29
+ */
30
+ export declare function resolveInputs(context: ECPContext, supplied: Record<string, string | number | boolean>): Record<string, string | number | boolean>;
31
+ //# sourceMappingURL=context-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-loader.d.ts","sourceRoot":"","sources":["../../src/engine/context-loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAcjE;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAyCxD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,UAAU,EACnB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GAClD,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAe3C"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Context loader — reads and validates ECP Context manifests from
3
+ * YAML or JSON files.
4
+ *
5
+ * @category Engine
6
+ */
7
+ import { readFileSync } from "node:fs";
8
+ import { extname } from "node:path";
9
+ import yaml from "js-yaml";
10
+ function hasExecutionObjects(ctx) {
11
+ if (ctx.executors && ctx.executors.length > 0) {
12
+ return true;
13
+ }
14
+ if (ctx.orchestrator) {
15
+ return true;
16
+ }
17
+ return false;
18
+ }
19
+ /**
20
+ * Load an ECP Context manifest from a YAML or JSON file.
21
+ *
22
+ * @param filePath - Absolute or relative path to the manifest.
23
+ * @returns The parsed Context object.
24
+ * @throws If the file cannot be read or parsed.
25
+ *
26
+ * @category Engine
27
+ */
28
+ export function loadContext(filePath) {
29
+ const raw = readFileSync(filePath, "utf-8");
30
+ const ext = extname(filePath).toLowerCase();
31
+ let parsed;
32
+ if (ext === ".yaml" || ext === ".yml") {
33
+ parsed = yaml.load(raw);
34
+ }
35
+ else if (ext === ".json") {
36
+ parsed = JSON.parse(raw);
37
+ }
38
+ else {
39
+ parsed = yaml.load(raw);
40
+ }
41
+ const ctx = parsed;
42
+ if (!ctx || typeof ctx !== "object") {
43
+ throw new Error(`Failed to parse Context from ${filePath}: not an object`);
44
+ }
45
+ if (ctx.kind !== "Context") {
46
+ throw new Error(`Invalid Context: expected kind "Context", got "${ctx.kind}"`);
47
+ }
48
+ if (!ctx.metadata?.name) {
49
+ throw new Error("Invalid Context: missing metadata.name");
50
+ }
51
+ if (!ctx.orchestration?.entrypoint && !ctx.orchestrator?.name) {
52
+ throw new Error("Invalid Context: missing entrypoint (orchestrator.name or orchestration.entrypoint)");
53
+ }
54
+ if (!hasExecutionObjects(ctx)) {
55
+ throw new Error("Invalid Context: no execution objects defined");
56
+ }
57
+ if (!ctx.orchestration?.strategy && !ctx.orchestrator?.strategy) {
58
+ throw new Error("Invalid Context: missing strategy (orchestration.strategy or orchestrator.strategy)");
59
+ }
60
+ return ctx;
61
+ }
62
+ /**
63
+ * Resolve input values for a Context run. Applies defaults for
64
+ * missing optional inputs and validates that all required inputs
65
+ * are provided.
66
+ *
67
+ * @param context - The loaded Context.
68
+ * @param supplied - Input values supplied by the caller.
69
+ * @returns Fully resolved input values.
70
+ * @throws If a required input is missing.
71
+ *
72
+ * @category Engine
73
+ */
74
+ export function resolveInputs(context, supplied) {
75
+ const resolved = {};
76
+ const definitions = context.inputs ?? {};
77
+ for (const [name, def] of Object.entries(definitions)) {
78
+ if (name in supplied) {
79
+ resolved[name] = supplied[name];
80
+ }
81
+ else if (def.default !== undefined) {
82
+ resolved[name] = def.default;
83
+ }
84
+ else if (def.required) {
85
+ throw new Error(`Missing required input: "${name}"`);
86
+ }
87
+ }
88
+ return resolved;
89
+ }
90
+ //# sourceMappingURL=context-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-loader.js","sourceRoot":"","sources":["../../src/engine/context-loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,IAAI,MAAM,SAAS,CAAC;AAG3B,SAAS,mBAAmB,CAAC,GAAe;IAC1C,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CAAC,QAAgB;IAC1C,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IAE5C,IAAI,MAAe,CAAC;IACpB,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;QACtC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;SAAM,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;QAC3B,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM,GAAG,GAAG,MAAoB,CAAC;IAEjC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,gCAAgC,QAAQ,iBAAiB,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CACb,kDAAkD,GAAG,CAAC,IAAI,GAAG,CAC9D,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,UAAU,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC;QAC9D,MAAM,IAAI,KAAK,CACb,qFAAqF,CACtF,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,QAAQ,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CACb,qFAAqF,CACtF,CAAC;IACJ,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,aAAa,CAC3B,OAAmB,EACnB,QAAmD;IAEnD,MAAM,QAAQ,GAA8C,EAAE,CAAC;IAC/D,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;IAEzC,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACtD,IAAI,IAAI,IAAI,QAAQ,EAAE,CAAC;YACrB,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;aAAM,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACrC,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC;QAC/B,CAAC;aAAM,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,GAAG,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -0,0 +1,6 @@
1
+ export * from "./types.js";
2
+ export * from "./context-loader.js";
3
+ export * from "./system-config-loader.js";
4
+ export * from "./schema-validator.js";
5
+ export * from "./runner.js";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/engine/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC"}
@@ -0,0 +1,6 @@
1
+ export * from "./types.js";
2
+ export * from "./context-loader.js";
3
+ export * from "./system-config-loader.js";
4
+ export * from "./schema-validator.js";
5
+ export * from "./runner.js";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/engine/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * ECP Execution Engine — the core runner that orchestrates a Context
3
+ * execution from start to finish.
4
+ *
5
+ * Slice 1: Single executor, seed mounts, model generation, schema validation.
6
+ * Slice 2 (added in Milestone 7): Controller-specialist delegation.
7
+ *
8
+ * @category Engine
9
+ */
10
+ import type { ECPContext } from "@executioncontrolprotocol/spec";
11
+ import type { ModelProvider } from "../providers/model-provider.js";
12
+ import type { ToolInvoker } from "../protocols/tool-invoker.js";
13
+ import type { AgentTransport } from "../protocols/agent-transport.js";
14
+ import type { EngineConfig, ExecutionResult } from "./types.js";
15
+ import type { TraceCollector } from "../tracing/collector.js";
16
+ /**
17
+ * Options for a single Context execution.
18
+ *
19
+ * @category Engine
20
+ */
21
+ export interface RunOptions {
22
+ /** Path to the Context manifest (YAML or JSON). */
23
+ contextPath?: string;
24
+ /** Pre-loaded Context object (alternative to `contextPath`). */
25
+ context?: ECPContext;
26
+ /** Input values for the Context. */
27
+ inputs?: Record<string, string | number | boolean>;
28
+ /** Abort signal for cancellation. */
29
+ signal?: AbortSignal;
30
+ }
31
+ /**
32
+ * The ECP execution engine.
33
+ *
34
+ * Wires together the model provider, tool invoker, and agent transport
35
+ * to execute a Context manifest end-to-end.
36
+ *
37
+ * @category Engine
38
+ */
39
+ export declare class ECPEngine {
40
+ private readonly modelProvider;
41
+ private readonly extensionRegistry?;
42
+ private readonly modelProviderCache;
43
+ private readonly toolInvoker;
44
+ private readonly agentTransport;
45
+ private readonly config;
46
+ private readonly hydrator;
47
+ private traceCollector?;
48
+ constructor(modelProvider: ModelProvider, toolInvoker: ToolInvoker, agentTransport: AgentTransport, config?: EngineConfig);
49
+ /**
50
+ * Attach a trace collector to the engine.
51
+ * When attached, the engine emits structured trace spans during execution.
52
+ */
53
+ setTraceCollector(collector: TraceCollector): void;
54
+ /**
55
+ * Execute a Context manifest end-to-end.
56
+ *
57
+ * @param options - Run configuration.
58
+ * @returns The execution result.
59
+ */
60
+ run(options: RunOptions): Promise<ExecutionResult>;
61
+ private runSingleExecutor;
62
+ private runControllerSpecialist;
63
+ private delegateViaA2A;
64
+ private mergeOutputs;
65
+ private runExecutor;
66
+ private executeToolCalls;
67
+ private initRunState;
68
+ private emitProgress;
69
+ private nextStep;
70
+ /** Return the next completion step number (1, 2, 3...) for step_complete events. */
71
+ private nextCompleteStep;
72
+ /** Return the next executor step number (1, 2, 3...) for executor step_complete only. */
73
+ private nextExecutorStep;
74
+ private connectToolServers;
75
+ private hydrateMounts;
76
+ private buildMessages;
77
+ private getAvailableTools;
78
+ private getOutputSchema;
79
+ private schemaToJsonSchema;
80
+ private tryParseJson;
81
+ private parseToolName;
82
+ private log;
83
+ private buildResult;
84
+ private getEntrypointName;
85
+ private getStrategy;
86
+ private getExecutionObjects;
87
+ private resolveModelProvider;
88
+ private normalizeProviderSelector;
89
+ private assertModelProviderAllowed;
90
+ private getEffectiveExtensionSecurity;
91
+ }
92
+ //# sourceMappingURL=runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/engine/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,UAAU,EAOX,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,aAAa,EAAyC,MAAM,gCAAgC,CAAC;AAC3G,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAA2B,MAAM,iCAAiC,CAAC;AAC/F,OAAO,KAAK,EACV,YAAY,EACZ,eAAe,EAOhB,MAAM,YAAY,CAAC;AAMpB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAG9D;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,gEAAgE;IAChE,OAAO,CAAC,EAAE,UAAU,CAAC;IAErB,oCAAoC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;IAEnD,qCAAqC;IACrC,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;;;;;;GAOG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAoB;IACvD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoC;IACvE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IAChD,OAAO,CAAC,cAAc,CAAC,CAAiB;gBAGtC,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,cAAc,EAC9B,MAAM,GAAE,YAAiB;IAU3B;;;OAGG;IACH,iBAAiB,CAAC,SAAS,EAAE,cAAc,GAAG,IAAI;IAIlD;;;;;OAKG;IACG,GAAG,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC;YAsD1C,iBAAiB;YAyBjB,uBAAuB;YAiFvB,cAAc;YAoDd,YAAY;YAyCZ,WAAW;YAiMX,gBAAgB;YAyGhB,YAAY;YAoCZ,YAAY;IAe1B,OAAO,CAAC,QAAQ;IAKhB,oFAAoF;IACpF,OAAO,CAAC,gBAAgB;IAKxB,yFAAyF;IACzF,OAAO,CAAC,gBAAgB;YAKV,kBAAkB;YAclB,aAAa;IAkD3B,OAAO,CAAC,aAAa;YAqCP,iBAAiB;IAiC/B,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,GAAG;IAcX,OAAO,CAAC,WAAW;IA+CnB,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,mBAAmB;IA6B3B,OAAO,CAAC,oBAAoB;IAyC5B,OAAO,CAAC,yBAAyB;IAWjC,OAAO,CAAC,0BAA0B;IA4DlC,OAAO,CAAC,6BAA6B;CAqBtC"}