@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,10 @@
1
+ /**
2
+ * Types for the staged mount hydration system.
3
+ *
4
+ * Mounts retrieve data from external tool servers in three stages
5
+ * (seed → focus → deep) to avoid blowing up the context window.
6
+ *
7
+ * @category Mounts
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/mounts/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Default policy enforcer implementation.
3
+ *
4
+ * Enforces tool access controls, budget limits, and write barriers
5
+ * as declared in an executor's {@link Policies} definition.
6
+ *
7
+ * @category Policies
8
+ */
9
+ import type { Policies } from "@executioncontrolprotocol/spec";
10
+ import type { PolicyEnforcer } from "./types.js";
11
+ /**
12
+ * Creates a {@link PolicyEnforcer} from an executor's declared policies.
13
+ *
14
+ * The enforcer is stateless — it evaluates each check against the
15
+ * executor's policy declaration and the current budget usage.
16
+ *
17
+ * @param policies - The executor's declared policies.
18
+ * @returns A policy enforcer bound to those policies.
19
+ *
20
+ * @category Policies
21
+ */
22
+ export declare function createPolicyEnforcer(policies: Policies): PolicyEnforcer;
23
+ //# sourceMappingURL=enforcer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enforcer.d.ts","sourceRoot":"","sources":["../../src/policies/enforcer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAE/D,OAAO,KAAK,EACV,cAAc,EAIf,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,GAAG,cAAc,CAEvE"}
@@ -0,0 +1,111 @@
1
+ /**
2
+ * Default policy enforcer implementation.
3
+ *
4
+ * Enforces tool access controls, budget limits, and write barriers
5
+ * as declared in an executor's {@link Policies} definition.
6
+ *
7
+ * @category Policies
8
+ */
9
+ /**
10
+ * Creates a {@link PolicyEnforcer} from an executor's declared policies.
11
+ *
12
+ * The enforcer is stateless — it evaluates each check against the
13
+ * executor's policy declaration and the current budget usage.
14
+ *
15
+ * @param policies - The executor's declared policies.
16
+ * @returns A policy enforcer bound to those policies.
17
+ *
18
+ * @category Policies
19
+ */
20
+ export function createPolicyEnforcer(policies) {
21
+ return new DefaultPolicyEnforcer(policies);
22
+ }
23
+ class DefaultPolicyEnforcer {
24
+ policies;
25
+ constructor(policies) {
26
+ this.policies = policies;
27
+ }
28
+ checkToolAccess(toolName) {
29
+ const access = this.policies.toolAccess;
30
+ if (!access) {
31
+ return { allowed: true };
32
+ }
33
+ if (access.default === "deny") {
34
+ const allowed = access.allow ?? [];
35
+ if (allowed.includes(toolName)) {
36
+ return { allowed: true };
37
+ }
38
+ return {
39
+ allowed: false,
40
+ reason: `Tool "${toolName}" is not in the allow list (default: deny).`,
41
+ };
42
+ }
43
+ if (access.default === "allow") {
44
+ const denied = access.deny ?? [];
45
+ if (denied.includes(toolName)) {
46
+ return {
47
+ allowed: false,
48
+ reason: `Tool "${toolName}" is explicitly denied.`,
49
+ };
50
+ }
51
+ return { allowed: true };
52
+ }
53
+ return { allowed: true };
54
+ }
55
+ checkBudget(usage) {
56
+ const budgets = this.policies.budgets;
57
+ if (!budgets) {
58
+ return { withinBudget: true };
59
+ }
60
+ if (budgets.maxToolCalls !== undefined && usage.toolCalls >= budgets.maxToolCalls) {
61
+ return {
62
+ withinBudget: false,
63
+ exceededLimit: "tool-calls",
64
+ message: `Tool call limit exceeded: ${usage.toolCalls} >= ${budgets.maxToolCalls}`,
65
+ };
66
+ }
67
+ if (budgets.maxRuntimeSeconds !== undefined &&
68
+ usage.runtimeSeconds >= budgets.maxRuntimeSeconds) {
69
+ return {
70
+ withinBudget: false,
71
+ exceededLimit: "runtime-seconds",
72
+ message: `Runtime limit exceeded: ${usage.runtimeSeconds}s >= ${budgets.maxRuntimeSeconds}s`,
73
+ };
74
+ }
75
+ return { withinBudget: true };
76
+ }
77
+ checkWrite(toolName) {
78
+ const controls = this.policies.writeControls;
79
+ if (!controls) {
80
+ return { allowed: true, requiresApproval: false };
81
+ }
82
+ switch (controls.mode) {
83
+ case "forbid":
84
+ return {
85
+ allowed: false,
86
+ requiresApproval: false,
87
+ reason: `Write operations are forbidden for this executor.`,
88
+ };
89
+ case "propose-only": {
90
+ const needsApproval = controls.requireApprovalFor ?? [];
91
+ if (needsApproval.includes(toolName)) {
92
+ return {
93
+ allowed: false,
94
+ requiresApproval: true,
95
+ reason: `Tool "${toolName}" requires approval before execution.`,
96
+ };
97
+ }
98
+ return {
99
+ allowed: false,
100
+ requiresApproval: true,
101
+ reason: `Write operations require approval (mode: propose-only).`,
102
+ };
103
+ }
104
+ case "execute-if-allowed":
105
+ return { allowed: true, requiresApproval: false };
106
+ default:
107
+ return { allowed: true, requiresApproval: false };
108
+ }
109
+ }
110
+ }
111
+ //# sourceMappingURL=enforcer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enforcer.js","sourceRoot":"","sources":["../../src/policies/enforcer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from "./types.js";
2
+ export * from "./enforcer.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/policies/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./types.js";
2
+ export * from "./enforcer.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/policies/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Types for the policy enforcement system.
3
+ *
4
+ * Policies are checked at the executor level before every tool call
5
+ * and throughout the executor's runtime to enforce budgets, tool
6
+ * access controls, and write barriers.
7
+ *
8
+ * @category Policies
9
+ */
10
+ import type { Policies } from "@executioncontrolprotocol/spec";
11
+ import type { BudgetUsage } from "../engine/types.js";
12
+ /**
13
+ * The result of checking whether a tool call is allowed.
14
+ *
15
+ * @category Policies
16
+ */
17
+ export interface ToolAccessDecision {
18
+ /** Whether the tool call is permitted. */
19
+ allowed: boolean;
20
+ /** If denied, the reason. */
21
+ reason?: string;
22
+ }
23
+ /**
24
+ * The result of checking whether budget limits have been exceeded.
25
+ *
26
+ * @category Policies
27
+ */
28
+ export interface BudgetCheckResult {
29
+ /** Whether the executor is still within budget. */
30
+ withinBudget: boolean;
31
+ /** Which limit was exceeded, if any. */
32
+ exceededLimit?: "tool-calls" | "runtime-seconds";
33
+ /** Human-readable message. */
34
+ message?: string;
35
+ }
36
+ /**
37
+ * The result of checking whether a write operation is allowed.
38
+ *
39
+ * @category Policies
40
+ */
41
+ export interface WriteDecision {
42
+ /** Whether the write is permitted. */
43
+ allowed: boolean;
44
+ /** Whether the write requires human approval. */
45
+ requiresApproval: boolean;
46
+ /** If denied or requiring approval, the reason. */
47
+ reason?: string;
48
+ }
49
+ /**
50
+ * Interface for the policy enforcement service.
51
+ *
52
+ * Created per-executor with the executor's declared policies.
53
+ *
54
+ * @category Policies
55
+ */
56
+ export interface PolicyEnforcer {
57
+ /**
58
+ * Check whether a specific tool call is allowed by the executor's
59
+ * tool access policy.
60
+ *
61
+ * @param toolName - The fully-qualified tool name (e.g. `"jira:issues.search"`).
62
+ * @returns The access decision.
63
+ */
64
+ checkToolAccess(toolName: string): ToolAccessDecision;
65
+ /**
66
+ * Check whether the executor is still within its budget limits.
67
+ *
68
+ * @param usage - The current budget consumption.
69
+ * @returns Whether the executor is within budget.
70
+ */
71
+ checkBudget(usage: BudgetUsage): BudgetCheckResult;
72
+ /**
73
+ * Check whether a write operation is allowed.
74
+ *
75
+ * @param toolName - The tool that would perform the write.
76
+ * @returns The write decision.
77
+ */
78
+ checkWrite(toolName: string): WriteDecision;
79
+ }
80
+ /**
81
+ * Factory function type for creating a {@link PolicyEnforcer} from
82
+ * an executor's declared policies.
83
+ *
84
+ * @category Policies
85
+ */
86
+ export type PolicyEnforcerFactory = (policies: Policies) => PolicyEnforcer;
87
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/policies/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,0CAA0C;IAC1C,OAAO,EAAE,OAAO,CAAC;IAEjB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,mDAAmD;IACnD,YAAY,EAAE,OAAO,CAAC;IAEtB,wCAAwC;IACxC,aAAa,CAAC,EAAE,YAAY,GAAG,iBAAiB,CAAC;IAEjD,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,sCAAsC;IACtC,OAAO,EAAE,OAAO,CAAC;IAEjB,iDAAiD;IACjD,gBAAgB,EAAE,OAAO,CAAC;IAE1B,mDAAmD;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;;OAMG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,CAAC;IAEtD;;;;;OAKG;IACH,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,iBAAiB,CAAC;IAEnD;;;;;OAKG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,CAAC;CAC7C;AAED;;;;;GAKG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,QAAQ,EAAE,QAAQ,KAAK,cAAc,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Types for the policy enforcement system.
3
+ *
4
+ * Policies are checked at the executor level before every tool call
5
+ * and throughout the executor's runtime to enforce budgets, tool
6
+ * access controls, and write barriers.
7
+ *
8
+ * @category Policies
9
+ */
10
+ export {};
11
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/policies/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * A2A implementation of the {@link AgentTransport} interface.
3
+ *
4
+ * Uses the official `@a2a-js/sdk` to communicate with remote
5
+ * A2A-compliant agents. Each specialist executor maps to a remote
6
+ * agent endpoint.
7
+ *
8
+ * @category Protocols
9
+ */
10
+ import type { AgentTransport, AgentRef, AgentCapabilities, DelegatedTask, DelegationResult } from "../agent-transport.js";
11
+ /**
12
+ * Options for the A2A agent transport.
13
+ *
14
+ * @category Protocols
15
+ */
16
+ export interface A2ATransportConfig {
17
+ /** Timeout in ms for sendMessage calls. Defaults to 60_000. */
18
+ timeoutMs?: number;
19
+ }
20
+ /**
21
+ * A2A-backed agent transport for delegating tasks to specialist executors.
22
+ *
23
+ * @category Protocols
24
+ */
25
+ export declare class A2AAgentTransport implements AgentTransport {
26
+ readonly name = "a2a";
27
+ private agents;
28
+ private factory;
29
+ private timeoutMs;
30
+ constructor(config?: A2ATransportConfig);
31
+ capabilities(agent: AgentRef): Promise<AgentCapabilities>;
32
+ delegate(agent: AgentRef, task: DelegatedTask): Promise<DelegationResult>;
33
+ close(): Promise<void>;
34
+ private ensureConnected;
35
+ private pollForCompletion;
36
+ private extractStatusMessage;
37
+ private extractOutput;
38
+ private extractPartsOutput;
39
+ }
40
+ //# sourceMappingURL=a2a-transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a2a-transport.d.ts","sourceRoot":"","sources":["../../../src/protocols/a2a/a2a-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,KAAK,EACV,cAAc,EACd,QAAQ,EACR,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAE/B;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAOD;;;;GAIG;AACH,qBAAa,iBAAkB,YAAW,cAAc;IACtD,QAAQ,CAAC,IAAI,SAAS;IAEtB,OAAO,CAAC,MAAM,CAAqC;IACnD,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,SAAS,CAAS;gBAEd,MAAM,GAAE,kBAAuB;IAIrC,YAAY,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAoBzD,QAAQ,CACZ,KAAK,EAAE,QAAQ,EACf,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,gBAAgB,CAAC;IAkFtB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAId,eAAe;YAUf,iBAAiB;IA4C/B,OAAO,CAAC,oBAAoB;IAY5B,OAAO,CAAC,aAAa;IAsBrB,OAAO,CAAC,kBAAkB;CAoB3B"}
@@ -0,0 +1,212 @@
1
+ /**
2
+ * A2A implementation of the {@link AgentTransport} interface.
3
+ *
4
+ * Uses the official `@a2a-js/sdk` to communicate with remote
5
+ * A2A-compliant agents. Each specialist executor maps to a remote
6
+ * agent endpoint.
7
+ *
8
+ * @category Protocols
9
+ */
10
+ import { ClientFactory, } from "@a2a-js/sdk/client";
11
+ /**
12
+ * A2A-backed agent transport for delegating tasks to specialist executors.
13
+ *
14
+ * @category Protocols
15
+ */
16
+ export class A2AAgentTransport {
17
+ name = "a2a";
18
+ agents = new Map();
19
+ factory = new ClientFactory();
20
+ timeoutMs;
21
+ constructor(config = {}) {
22
+ this.timeoutMs = config.timeoutMs ?? 60_000;
23
+ }
24
+ async capabilities(agent) {
25
+ const connected = await this.ensureConnected(agent);
26
+ const transport = connected.client.transport;
27
+ try {
28
+ const card = await transport.getExtendedAgentCard();
29
+ return {
30
+ name: card.name ?? agent.name,
31
+ skills: (card.skills ?? []).map((s) => s.name ?? s.id ?? "unknown"),
32
+ supportsStreaming: card.capabilities?.streaming ?? false,
33
+ };
34
+ }
35
+ catch {
36
+ return {
37
+ name: agent.name,
38
+ skills: [],
39
+ supportsStreaming: false,
40
+ };
41
+ }
42
+ }
43
+ async delegate(agent, task) {
44
+ const connected = await this.ensureConnected(agent);
45
+ const transport = connected.client.transport;
46
+ const messageContent = JSON.stringify({
47
+ executorName: task.executorName,
48
+ task: task.task,
49
+ context: task.context,
50
+ hints: task.hints,
51
+ });
52
+ try {
53
+ const result = await transport.sendMessage({
54
+ message: {
55
+ kind: "message",
56
+ role: "user",
57
+ parts: [{ kind: "text", text: messageContent }],
58
+ messageId: task.id,
59
+ },
60
+ configuration: {
61
+ blocking: true,
62
+ },
63
+ });
64
+ if ("status" in result && result.status) {
65
+ const taskResult = result;
66
+ if (taskResult.status.state === "completed") {
67
+ const output = this.extractOutput(taskResult);
68
+ return {
69
+ taskId: task.id,
70
+ executorName: task.executorName,
71
+ output,
72
+ success: true,
73
+ };
74
+ }
75
+ if (taskResult.status.state === "failed") {
76
+ return {
77
+ taskId: task.id,
78
+ executorName: task.executorName,
79
+ output: {},
80
+ success: false,
81
+ error: this.extractStatusMessage(taskResult.status) ?? "Task failed",
82
+ };
83
+ }
84
+ return await this.pollForCompletion(transport, taskResult.id ?? task.id, task);
85
+ }
86
+ if ("parts" in result) {
87
+ const output = this.extractPartsOutput(result.parts ?? []);
88
+ return {
89
+ taskId: task.id,
90
+ executorName: task.executorName,
91
+ output,
92
+ success: true,
93
+ };
94
+ }
95
+ return {
96
+ taskId: task.id,
97
+ executorName: task.executorName,
98
+ output: {},
99
+ success: false,
100
+ error: "Unexpected response format from A2A agent",
101
+ };
102
+ }
103
+ catch (err) {
104
+ return {
105
+ taskId: task.id,
106
+ executorName: task.executorName,
107
+ output: {},
108
+ success: false,
109
+ error: err instanceof Error ? err.message : String(err),
110
+ };
111
+ }
112
+ }
113
+ async close() {
114
+ this.agents.clear();
115
+ }
116
+ async ensureConnected(agent) {
117
+ const existing = this.agents.get(agent.name);
118
+ if (existing)
119
+ return existing;
120
+ const client = await this.factory.createFromUrl(agent.endpoint);
121
+ const connected = { client, ref: agent };
122
+ this.agents.set(agent.name, connected);
123
+ return connected;
124
+ }
125
+ async pollForCompletion(transport, taskId, task) {
126
+ const deadline = Date.now() + this.timeoutMs;
127
+ const pollInterval = 1000;
128
+ while (Date.now() < deadline) {
129
+ await new Promise((r) => setTimeout(r, pollInterval));
130
+ const taskState = await transport.getTask({ id: taskId });
131
+ if ("status" in taskState && taskState.status) {
132
+ if (taskState.status.state === "completed") {
133
+ return {
134
+ taskId: task.id,
135
+ executorName: task.executorName,
136
+ output: this.extractOutput(taskState),
137
+ success: true,
138
+ };
139
+ }
140
+ if (taskState.status.state === "failed") {
141
+ return {
142
+ taskId: task.id,
143
+ executorName: task.executorName,
144
+ output: {},
145
+ success: false,
146
+ error: this.extractStatusMessage(taskState.status) ?? "Task failed",
147
+ };
148
+ }
149
+ }
150
+ }
151
+ return {
152
+ taskId: task.id,
153
+ executorName: task.executorName,
154
+ output: {},
155
+ success: false,
156
+ error: `Task timed out after ${this.timeoutMs}ms`,
157
+ };
158
+ }
159
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
160
+ extractStatusMessage(status) {
161
+ if (!status?.message)
162
+ return undefined;
163
+ const msg = status.message;
164
+ if (typeof msg === "string")
165
+ return msg;
166
+ if (msg.parts) {
167
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
168
+ return msg.parts.filter((p) => p.kind === "text").map((p) => p.text).join(" ");
169
+ }
170
+ return String(msg);
171
+ }
172
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
173
+ extractOutput(taskResult) {
174
+ const artifacts = taskResult.artifacts ?? [];
175
+ if (artifacts.length > 0) {
176
+ const parts = artifacts.flatMap(
177
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
178
+ (a) => a.parts ?? []);
179
+ return this.extractPartsOutput(parts);
180
+ }
181
+ const history = taskResult.history ?? [];
182
+ if (history.length > 0) {
183
+ const lastMsg = history[history.length - 1];
184
+ if (lastMsg?.parts) {
185
+ return this.extractPartsOutput(lastMsg.parts);
186
+ }
187
+ }
188
+ return {};
189
+ }
190
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
191
+ extractPartsOutput(parts) {
192
+ const textParts = parts
193
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
194
+ .filter((p) => p.kind === "text" && p.text)
195
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
196
+ .map((p) => p.text);
197
+ if (textParts.length === 0)
198
+ return {};
199
+ const combined = textParts.join("\n");
200
+ try {
201
+ const parsed = JSON.parse(combined);
202
+ if (typeof parsed === "object" && parsed !== null) {
203
+ return parsed;
204
+ }
205
+ return { result: parsed };
206
+ }
207
+ catch {
208
+ return { result: combined };
209
+ }
210
+ }
211
+ }
212
+ //# sourceMappingURL=a2a-transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a2a-transport.js","sourceRoot":"","sources":["../../../src/protocols/a2a/a2a-transport.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { A2AAgentTransport } from "./a2a-transport.js";
2
+ export type { A2ATransportConfig } from "./a2a-transport.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/protocols/a2a/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { A2AAgentTransport } from "./a2a-transport.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/protocols/a2a/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC"}