network-ai 4.15.2 → 5.0.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 (204) hide show
  1. package/INTEGRATION_GUIDE.md +11 -4
  2. package/QUICKSTART.md +31 -4
  3. package/README.md +37 -15
  4. package/bin/dashboard.ts +146 -0
  5. package/bin/mcp-server.ts +3 -2
  6. package/dist/adapters/adapter-registry.d.ts +33 -1
  7. package/dist/adapters/adapter-registry.d.ts.map +1 -1
  8. package/dist/adapters/adapter-registry.js +49 -0
  9. package/dist/adapters/adapter-registry.js.map +1 -1
  10. package/dist/adapters/anthropic-computer-use-adapter.d.ts +132 -0
  11. package/dist/adapters/anthropic-computer-use-adapter.d.ts.map +1 -0
  12. package/dist/adapters/anthropic-computer-use-adapter.js +180 -0
  13. package/dist/adapters/anthropic-computer-use-adapter.js.map +1 -0
  14. package/dist/adapters/browser-agent-adapter.d.ts +121 -0
  15. package/dist/adapters/browser-agent-adapter.d.ts.map +1 -0
  16. package/dist/adapters/browser-agent-adapter.js +219 -0
  17. package/dist/adapters/browser-agent-adapter.js.map +1 -0
  18. package/dist/adapters/copilot-adapter.d.ts +59 -0
  19. package/dist/adapters/copilot-adapter.d.ts.map +1 -0
  20. package/dist/adapters/copilot-adapter.js +132 -0
  21. package/dist/adapters/copilot-adapter.js.map +1 -0
  22. package/dist/adapters/index.d.ts +15 -1
  23. package/dist/adapters/index.d.ts.map +1 -1
  24. package/dist/adapters/index.js +22 -1
  25. package/dist/adapters/index.js.map +1 -1
  26. package/dist/adapters/langgraph-adapter.d.ts +70 -0
  27. package/dist/adapters/langgraph-adapter.d.ts.map +1 -0
  28. package/dist/adapters/langgraph-adapter.js +119 -0
  29. package/dist/adapters/langgraph-adapter.js.map +1 -0
  30. package/dist/adapters/openai-agents-adapter.d.ts +100 -0
  31. package/dist/adapters/openai-agents-adapter.d.ts.map +1 -0
  32. package/dist/adapters/openai-agents-adapter.js +118 -0
  33. package/dist/adapters/openai-agents-adapter.js.map +1 -0
  34. package/dist/adapters/pydantic-ai-adapter.d.ts +104 -0
  35. package/dist/adapters/pydantic-ai-adapter.d.ts.map +1 -0
  36. package/dist/adapters/pydantic-ai-adapter.js +163 -0
  37. package/dist/adapters/pydantic-ai-adapter.js.map +1 -0
  38. package/dist/adapters/vertex-ai-adapter.d.ts +122 -0
  39. package/dist/adapters/vertex-ai-adapter.d.ts.map +1 -0
  40. package/dist/adapters/vertex-ai-adapter.js +166 -0
  41. package/dist/adapters/vertex-ai-adapter.js.map +1 -0
  42. package/dist/bin/dashboard.d.ts +11 -0
  43. package/dist/bin/dashboard.d.ts.map +1 -0
  44. package/dist/bin/dashboard.js +135 -0
  45. package/dist/bin/dashboard.js.map +1 -0
  46. package/dist/bin/mcp-server.js +3 -2
  47. package/dist/bin/mcp-server.js.map +1 -1
  48. package/dist/index.d.ts +103 -559
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +295 -1074
  51. package/dist/index.js.map +1 -1
  52. package/dist/lib/adapter-test-harness.d.ts +88 -0
  53. package/dist/lib/adapter-test-harness.d.ts.map +1 -0
  54. package/dist/lib/adapter-test-harness.js +118 -0
  55. package/dist/lib/adapter-test-harness.js.map +1 -0
  56. package/dist/lib/agent-conversation.d.ts +115 -0
  57. package/dist/lib/agent-conversation.d.ts.map +1 -0
  58. package/dist/lib/agent-conversation.js +155 -0
  59. package/dist/lib/agent-conversation.js.map +1 -0
  60. package/dist/lib/agent-debate.d.ts +115 -0
  61. package/dist/lib/agent-debate.d.ts.map +1 -0
  62. package/dist/lib/agent-debate.js +146 -0
  63. package/dist/lib/agent-debate.js.map +1 -0
  64. package/dist/lib/agent-memory.d.ts +157 -0
  65. package/dist/lib/agent-memory.d.ts.map +1 -0
  66. package/dist/lib/agent-memory.js +336 -0
  67. package/dist/lib/agent-memory.js.map +1 -0
  68. package/dist/lib/agent-vcr.d.ts +133 -0
  69. package/dist/lib/agent-vcr.d.ts.map +1 -0
  70. package/dist/lib/agent-vcr.js +218 -0
  71. package/dist/lib/agent-vcr.js.map +1 -0
  72. package/dist/lib/anomaly-detector.d.ts +112 -0
  73. package/dist/lib/anomaly-detector.d.ts.map +1 -0
  74. package/dist/lib/anomaly-detector.js +178 -0
  75. package/dist/lib/anomaly-detector.js.map +1 -0
  76. package/dist/lib/approval-inbox.d.ts +147 -0
  77. package/dist/lib/approval-inbox.d.ts.map +1 -0
  78. package/dist/lib/approval-inbox.js +385 -0
  79. package/dist/lib/approval-inbox.js.map +1 -0
  80. package/dist/lib/auth-guardian.d.ts +170 -0
  81. package/dist/lib/auth-guardian.d.ts.map +1 -0
  82. package/dist/lib/auth-guardian.js +604 -0
  83. package/dist/lib/auth-guardian.js.map +1 -0
  84. package/dist/lib/auth-validator.d.ts +70 -0
  85. package/dist/lib/auth-validator.d.ts.map +1 -0
  86. package/dist/lib/auth-validator.js +32 -0
  87. package/dist/lib/auth-validator.js.map +1 -0
  88. package/dist/lib/blackboard-validator.d.ts +56 -0
  89. package/dist/lib/blackboard-validator.d.ts.map +1 -1
  90. package/dist/lib/blackboard-validator.js +181 -4
  91. package/dist/lib/blackboard-validator.js.map +1 -1
  92. package/dist/lib/comparison-runner.d.ts +99 -0
  93. package/dist/lib/comparison-runner.d.ts.map +1 -0
  94. package/dist/lib/comparison-runner.js +138 -0
  95. package/dist/lib/comparison-runner.js.map +1 -0
  96. package/dist/lib/config-watcher.d.ts +109 -0
  97. package/dist/lib/config-watcher.d.ts.map +1 -0
  98. package/dist/lib/config-watcher.js +215 -0
  99. package/dist/lib/config-watcher.js.map +1 -0
  100. package/dist/lib/cost-governor.d.ts +105 -0
  101. package/dist/lib/cost-governor.d.ts.map +1 -0
  102. package/dist/lib/cost-governor.js +128 -0
  103. package/dist/lib/cost-governor.js.map +1 -0
  104. package/dist/lib/cost-heatmap.d.ts +104 -0
  105. package/dist/lib/cost-heatmap.d.ts.map +1 -0
  106. package/dist/lib/cost-heatmap.js +161 -0
  107. package/dist/lib/cost-heatmap.js.map +1 -0
  108. package/dist/lib/coverage-reporter.d.ts +92 -0
  109. package/dist/lib/coverage-reporter.d.ts.map +1 -0
  110. package/dist/lib/coverage-reporter.js +177 -0
  111. package/dist/lib/coverage-reporter.js.map +1 -0
  112. package/dist/lib/dashboard-server.d.ts +71 -0
  113. package/dist/lib/dashboard-server.d.ts.map +1 -0
  114. package/dist/lib/dashboard-server.js +403 -0
  115. package/dist/lib/dashboard-server.js.map +1 -0
  116. package/dist/lib/dry-run.d.ts +73 -0
  117. package/dist/lib/dry-run.d.ts.map +1 -0
  118. package/dist/lib/dry-run.js +130 -0
  119. package/dist/lib/dry-run.js.map +1 -0
  120. package/dist/lib/errors.d.ts +15 -0
  121. package/dist/lib/errors.d.ts.map +1 -1
  122. package/dist/lib/errors.js +38 -0
  123. package/dist/lib/errors.js.map +1 -1
  124. package/dist/lib/event-bus.d.ts +167 -0
  125. package/dist/lib/event-bus.d.ts.map +1 -0
  126. package/dist/lib/event-bus.js +229 -0
  127. package/dist/lib/event-bus.js.map +1 -0
  128. package/dist/lib/explainability.d.ts +85 -0
  129. package/dist/lib/explainability.d.ts.map +1 -0
  130. package/dist/lib/explainability.js +102 -0
  131. package/dist/lib/explainability.js.map +1 -0
  132. package/dist/lib/goal-dsl.d.ts +157 -0
  133. package/dist/lib/goal-dsl.d.ts.map +1 -0
  134. package/dist/lib/goal-dsl.js +392 -0
  135. package/dist/lib/goal-dsl.js.map +1 -0
  136. package/dist/lib/job-queue.d.ts +183 -0
  137. package/dist/lib/job-queue.d.ts.map +1 -0
  138. package/dist/lib/job-queue.js +310 -0
  139. package/dist/lib/job-queue.js.map +1 -0
  140. package/dist/lib/learning-loop.d.ts +113 -0
  141. package/dist/lib/learning-loop.d.ts.map +1 -0
  142. package/dist/lib/learning-loop.js +181 -0
  143. package/dist/lib/learning-loop.js.map +1 -0
  144. package/dist/lib/lifecycle-hooks.d.ts +116 -0
  145. package/dist/lib/lifecycle-hooks.d.ts.map +1 -0
  146. package/dist/lib/lifecycle-hooks.js +148 -0
  147. package/dist/lib/lifecycle-hooks.js.map +1 -0
  148. package/dist/lib/locked-blackboard.d.ts.map +1 -1
  149. package/dist/lib/locked-blackboard.js +9 -5
  150. package/dist/lib/locked-blackboard.js.map +1 -1
  151. package/dist/lib/mcp-tool-consumer.d.ts +153 -0
  152. package/dist/lib/mcp-tool-consumer.d.ts.map +1 -0
  153. package/dist/lib/mcp-tool-consumer.js +320 -0
  154. package/dist/lib/mcp-tool-consumer.js.map +1 -0
  155. package/dist/lib/metrics.d.ts +119 -0
  156. package/dist/lib/metrics.d.ts.map +1 -0
  157. package/dist/lib/metrics.js +284 -0
  158. package/dist/lib/metrics.js.map +1 -0
  159. package/dist/lib/orchestrator-types.d.ts +309 -0
  160. package/dist/lib/orchestrator-types.d.ts.map +1 -0
  161. package/dist/lib/orchestrator-types.js +61 -0
  162. package/dist/lib/orchestrator-types.js.map +1 -0
  163. package/dist/lib/otel-bridge.d.ts +74 -0
  164. package/dist/lib/otel-bridge.d.ts.map +1 -0
  165. package/dist/lib/otel-bridge.js +167 -0
  166. package/dist/lib/otel-bridge.js.map +1 -0
  167. package/dist/lib/playground.d.ts +76 -0
  168. package/dist/lib/playground.d.ts.map +1 -0
  169. package/dist/lib/playground.js +224 -0
  170. package/dist/lib/playground.js.map +1 -0
  171. package/dist/lib/quadtree.d.ts +114 -0
  172. package/dist/lib/quadtree.d.ts.map +1 -0
  173. package/dist/lib/quadtree.js +259 -0
  174. package/dist/lib/quadtree.js.map +1 -0
  175. package/dist/lib/shared-blackboard.d.ts +101 -0
  176. package/dist/lib/shared-blackboard.d.ts.map +1 -0
  177. package/dist/lib/shared-blackboard.js +249 -0
  178. package/dist/lib/shared-blackboard.js.map +1 -0
  179. package/dist/lib/speculative-executor.d.ts +89 -0
  180. package/dist/lib/speculative-executor.d.ts.map +1 -0
  181. package/dist/lib/speculative-executor.js +107 -0
  182. package/dist/lib/speculative-executor.js.map +1 -0
  183. package/dist/lib/swarm-transport.d.ts +150 -0
  184. package/dist/lib/swarm-transport.d.ts.map +1 -0
  185. package/dist/lib/swarm-transport.js +307 -0
  186. package/dist/lib/swarm-transport.js.map +1 -0
  187. package/dist/lib/task-decomposer.d.ts +41 -0
  188. package/dist/lib/task-decomposer.d.ts.map +1 -0
  189. package/dist/lib/task-decomposer.js +272 -0
  190. package/dist/lib/task-decomposer.js.map +1 -0
  191. package/dist/lib/timeline-scrubber.d.ts +84 -0
  192. package/dist/lib/timeline-scrubber.d.ts.map +1 -0
  193. package/dist/lib/timeline-scrubber.js +173 -0
  194. package/dist/lib/timeline-scrubber.js.map +1 -0
  195. package/dist/lib/topology.d.ts +361 -0
  196. package/dist/lib/topology.d.ts.map +1 -0
  197. package/dist/lib/topology.js +591 -0
  198. package/dist/lib/topology.js.map +1 -0
  199. package/dist/security.d.ts +95 -0
  200. package/dist/security.d.ts.map +1 -1
  201. package/dist/security.js +267 -5
  202. package/dist/security.js.map +1 -1
  203. package/package.json +7 -5
  204. package/types/agent-adapter.d.ts +5 -0
@@ -0,0 +1,284 @@
1
+ "use strict";
2
+ /**
3
+ * MetricsRegistry — Zero-dependency Prometheus-compatible metrics.
4
+ *
5
+ * Provides Counter, Gauge, and Histogram metric types with label support.
6
+ * Exports metrics in Prometheus text exposition format for scraping.
7
+ *
8
+ * No runtime dependencies — drop-in for any HTTP server or the MCP endpoint.
9
+ *
10
+ * @module Metrics
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.MetricsRegistry = exports.Histogram = exports.Gauge = exports.Counter = void 0;
14
+ exports.createOrchestratorMetrics = createOrchestratorMetrics;
15
+ /** Default latency buckets (ms) */
16
+ const DEFAULT_BUCKETS = [5, 10, 25, 50, 100, 250, 500, 1000, 2500, 5000, 10000];
17
+ // ============================================================================
18
+ // METRIC PRIMITIVES
19
+ // ============================================================================
20
+ /** Serialise labels into the Prometheus `{k="v",k2="v2"}` format */
21
+ function labelsToString(labels) {
22
+ const entries = Object.entries(labels);
23
+ if (entries.length === 0)
24
+ return '';
25
+ return '{' + entries.map(([k, v]) => `${k}="${escapeLabel(v)}"`).join(',') + '}';
26
+ }
27
+ function escapeLabel(v) {
28
+ return v.replace(/\\/g, '\\\\').replace(/"/g, '\\"').replace(/\n/g, '\\n');
29
+ }
30
+ function labelKey(labels) {
31
+ return Object.entries(labels).sort(([a], [b]) => a.localeCompare(b)).map(([k, v]) => `${k}=${v}`).join(',');
32
+ }
33
+ // ============================================================================
34
+ // METRIC CLASSES
35
+ // ============================================================================
36
+ /** Monotonically increasing counter */
37
+ class Counter {
38
+ name;
39
+ help;
40
+ series = new Map();
41
+ labelMap = new Map();
42
+ constructor(name, help) {
43
+ this.name = name;
44
+ this.help = help;
45
+ }
46
+ inc(labels = {}, amount = 1) {
47
+ if (amount < 0)
48
+ throw new Error('Counter can only be incremented');
49
+ const key = labelKey(labels);
50
+ const s = this.series.get(key);
51
+ if (s) {
52
+ s.value += amount;
53
+ }
54
+ else {
55
+ this.series.set(key, { value: amount });
56
+ this.labelMap.set(key, labels);
57
+ }
58
+ }
59
+ get(labels = {}) {
60
+ return this.series.get(labelKey(labels))?.value ?? 0;
61
+ }
62
+ /** Prometheus text lines */
63
+ expose() {
64
+ const lines = [`# HELP ${this.name} ${this.help}`, `# TYPE ${this.name} counter`];
65
+ for (const [key, s] of this.series) {
66
+ lines.push(`${this.name}${labelsToString(this.labelMap.get(key))} ${s.value}`);
67
+ }
68
+ return lines.join('\n');
69
+ }
70
+ }
71
+ exports.Counter = Counter;
72
+ /** Gauge — can go up or down */
73
+ class Gauge {
74
+ name;
75
+ help;
76
+ series = new Map();
77
+ labelMap = new Map();
78
+ constructor(name, help) {
79
+ this.name = name;
80
+ this.help = help;
81
+ }
82
+ set(labelsOrValue, value) {
83
+ if (typeof labelsOrValue === 'number') {
84
+ const key = labelKey({});
85
+ const s = this.series.get(key);
86
+ if (s) {
87
+ s.value = labelsOrValue;
88
+ }
89
+ else {
90
+ this.series.set(key, { value: labelsOrValue });
91
+ this.labelMap.set(key, {});
92
+ }
93
+ }
94
+ else {
95
+ const key = labelKey(labelsOrValue);
96
+ const s = this.series.get(key);
97
+ if (s) {
98
+ s.value = value;
99
+ }
100
+ else {
101
+ this.series.set(key, { value: value });
102
+ this.labelMap.set(key, labelsOrValue);
103
+ }
104
+ }
105
+ }
106
+ inc(labels = {}, amount = 1) {
107
+ const key = labelKey(labels);
108
+ const s = this.series.get(key);
109
+ if (s) {
110
+ s.value += amount;
111
+ }
112
+ else {
113
+ this.series.set(key, { value: amount });
114
+ this.labelMap.set(key, labels);
115
+ }
116
+ }
117
+ dec(labels = {}, amount = 1) {
118
+ this.inc(labels, -amount);
119
+ }
120
+ get(labels = {}) {
121
+ return this.series.get(labelKey(labels))?.value ?? 0;
122
+ }
123
+ expose() {
124
+ const lines = [`# HELP ${this.name} ${this.help}`, `# TYPE ${this.name} gauge`];
125
+ for (const [key, s] of this.series) {
126
+ lines.push(`${this.name}${labelsToString(this.labelMap.get(key))} ${s.value}`);
127
+ }
128
+ return lines.join('\n');
129
+ }
130
+ }
131
+ exports.Gauge = Gauge;
132
+ /** Histogram with configurable buckets */
133
+ class Histogram {
134
+ name;
135
+ help;
136
+ boundaries;
137
+ series = new Map();
138
+ labelMap = new Map();
139
+ constructor(name, help, buckets) {
140
+ this.name = name;
141
+ this.help = help;
142
+ this.boundaries = buckets?.boundaries ?? DEFAULT_BUCKETS;
143
+ }
144
+ observe(labelsOrValue, value) {
145
+ const labels = typeof labelsOrValue === 'number' ? {} : labelsOrValue;
146
+ const v = typeof labelsOrValue === 'number' ? labelsOrValue : value;
147
+ const key = labelKey(labels);
148
+ let s = this.series.get(key);
149
+ if (!s) {
150
+ s = { bucketCounts: new Array(this.boundaries.length + 1).fill(0), sum: 0, count: 0 };
151
+ this.series.set(key, s);
152
+ this.labelMap.set(key, labels);
153
+ }
154
+ s.sum += v;
155
+ s.count++;
156
+ for (let i = 0; i < this.boundaries.length; i++) {
157
+ if (v <= this.boundaries[i]) {
158
+ s.bucketCounts[i]++;
159
+ }
160
+ }
161
+ s.bucketCounts[this.boundaries.length]++; // +Inf bucket
162
+ }
163
+ expose() {
164
+ const lines = [`# HELP ${this.name} ${this.help}`, `# TYPE ${this.name} histogram`];
165
+ for (const [key, s] of this.series) {
166
+ const lbl = this.labelMap.get(key);
167
+ const base = labelsToString(lbl);
168
+ const comma = Object.keys(lbl).length > 0 ? ',' : '';
169
+ for (let i = 0; i < this.boundaries.length; i++) {
170
+ const le = this.boundaries[i];
171
+ lines.push(`${this.name}_bucket{${comma ? base.slice(1, -1) + ',' : ''}le="${le}"} ${s.bucketCounts[i]}`);
172
+ }
173
+ lines.push(`${this.name}_bucket{${comma ? base.slice(1, -1) + ',' : ''}le="+Inf"} ${s.bucketCounts[this.boundaries.length]}`);
174
+ lines.push(`${this.name}_sum${base} ${s.sum}`);
175
+ lines.push(`${this.name}_count${base} ${s.count}`);
176
+ }
177
+ return lines.join('\n');
178
+ }
179
+ }
180
+ exports.Histogram = Histogram;
181
+ // ============================================================================
182
+ // REGISTRY
183
+ // ============================================================================
184
+ /**
185
+ * Central metrics registry. Collects all metrics and exposes them in
186
+ * Prometheus text format.
187
+ *
188
+ * @example
189
+ * ```ts
190
+ * const registry = new MetricsRegistry();
191
+ * const delegations = registry.counter('nai_delegations_total', 'Total delegations');
192
+ * const activeAgents = registry.gauge('nai_active_agents', 'Currently active agents');
193
+ * const latency = registry.histogram('nai_delegation_duration_ms', 'Delegation latency');
194
+ *
195
+ * delegations.inc({ agent: 'planner' });
196
+ * activeAgents.set(5);
197
+ * latency.observe({ agent: 'planner' }, 142);
198
+ *
199
+ * const text = registry.expose(); // Prometheus text exposition format
200
+ * ```
201
+ */
202
+ class MetricsRegistry {
203
+ counters = new Map();
204
+ gauges = new Map();
205
+ histograms = new Map();
206
+ /** Create or retrieve a counter */
207
+ counter(name, help) {
208
+ let c = this.counters.get(name);
209
+ if (!c) {
210
+ c = new Counter(name, help);
211
+ this.counters.set(name, c);
212
+ }
213
+ return c;
214
+ }
215
+ /** Create or retrieve a gauge */
216
+ gauge(name, help) {
217
+ let g = this.gauges.get(name);
218
+ if (!g) {
219
+ g = new Gauge(name, help);
220
+ this.gauges.set(name, g);
221
+ }
222
+ return g;
223
+ }
224
+ /** Create or retrieve a histogram */
225
+ histogram(name, help, buckets) {
226
+ let h = this.histograms.get(name);
227
+ if (!h) {
228
+ h = new Histogram(name, help, buckets);
229
+ this.histograms.set(name, h);
230
+ }
231
+ return h;
232
+ }
233
+ /**
234
+ * Export all registered metrics in Prometheus text exposition format.
235
+ */
236
+ expose() {
237
+ const parts = [];
238
+ for (const c of this.counters.values())
239
+ parts.push(c.expose());
240
+ for (const g of this.gauges.values())
241
+ parts.push(g.expose());
242
+ for (const h of this.histograms.values())
243
+ parts.push(h.expose());
244
+ return parts.join('\n\n') + '\n';
245
+ }
246
+ /** Get a specific counter by name */
247
+ getCounter(name) { return this.counters.get(name); }
248
+ /** Get a specific gauge by name */
249
+ getGauge(name) { return this.gauges.get(name); }
250
+ /** Get a specific histogram by name */
251
+ getHistogram(name) { return this.histograms.get(name); }
252
+ /** Total number of registered metrics */
253
+ get size() {
254
+ return this.counters.size + this.gauges.size + this.histograms.size;
255
+ }
256
+ }
257
+ exports.MetricsRegistry = MetricsRegistry;
258
+ // ============================================================================
259
+ // PRE-BUILT ORCHESTRATOR METRICS
260
+ // ============================================================================
261
+ /**
262
+ * Create a pre-configured MetricsRegistry with standard orchestrator metrics.
263
+ *
264
+ * Returns the registry and named handles to the individual metrics.
265
+ */
266
+ function createOrchestratorMetrics() {
267
+ const registry = new MetricsRegistry();
268
+ return {
269
+ registry,
270
+ delegationsTotal: registry.counter('nai_delegations_total', 'Total task delegations'),
271
+ delegationErrors: registry.counter('nai_delegation_errors_total', 'Delegation failures'),
272
+ permissionChecks: registry.counter('nai_permission_checks_total', 'Permission check requests'),
273
+ permissionDenials: registry.counter('nai_permission_denials_total', 'Permission denials'),
274
+ injectionBlocks: registry.counter('nai_injection_blocks_total', 'Prompt injection blocks'),
275
+ qualityRejections: registry.counter('nai_quality_rejections_total', 'Quality gate rejections'),
276
+ blackboardWrites: registry.counter('nai_blackboard_writes_total', 'Blackboard write operations'),
277
+ activeAgents: registry.gauge('nai_active_agents', 'Currently active agents'),
278
+ blackboardSize: registry.gauge('nai_blackboard_size', 'Blackboard entry count'),
279
+ budgetUsedPercent: registry.gauge('nai_budget_used_percent', 'Budget utilization percentage'),
280
+ delegationDurationMs: registry.histogram('nai_delegation_duration_ms', 'Delegation latency in milliseconds'),
281
+ adapterDurationMs: registry.histogram('nai_adapter_duration_ms', 'Adapter execution latency in milliseconds'),
282
+ };
283
+ }
284
+ //# sourceMappingURL=metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../lib/metrics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,309 @@
1
+ /**
2
+ * Shared type definitions, configuration, and default profiles for the
3
+ * SwarmOrchestrator engine.
4
+ *
5
+ * Extracted from index.ts to break the god-file pattern. All types are
6
+ * re-exported from the main index.ts barrel.
7
+ *
8
+ * @module OrchestratorTypes
9
+ */
10
+ import type { BlackboardBackend } from './blackboard-backend';
11
+ import type { ConsistencyLevel } from './consistency';
12
+ import type { ValidationConfig } from './blackboard-validator';
13
+ /**
14
+ * Backward-compatible OpenClaw skill interface.
15
+ * The system works without openclaw-core — this keeps the contract.
16
+ */
17
+ export type OpenClawSkill = {
18
+ name: string;
19
+ version: string;
20
+ execute(action: string, params: Record<string, unknown>, context: SkillContext): Promise<SkillResult>;
21
+ };
22
+ /**
23
+ * Execution context passed to every skill invocation.
24
+ * Identifies the calling agent and associates the call with a task/session.
25
+ */
26
+ export interface SkillContext {
27
+ /** The agent initiating the request */
28
+ agentId: string;
29
+ /** Unique task identifier (optional) */
30
+ taskId?: string;
31
+ /** Session identifier for multi-turn interactions */
32
+ sessionId?: string;
33
+ /** Arbitrary metadata from the host system */
34
+ metadata?: Record<string, unknown>;
35
+ }
36
+ /**
37
+ * Unified result shape returned by every skill action.
38
+ * Includes structured error information with recovery hints.
39
+ */
40
+ export interface SkillResult {
41
+ /** Whether the action completed successfully */
42
+ success: boolean;
43
+ /** Result data (shape varies by action) */
44
+ data?: unknown;
45
+ /** Structured error when `success` is false */
46
+ error?: {
47
+ /** Machine-readable error code (e.g., `'AUTH_DENIED'`, `'GATEWAY_DENIED'`) */
48
+ code: string;
49
+ /** Human-readable error description */
50
+ message: string;
51
+ /** Whether the caller can retry or adjust and succeed */
52
+ recoverable: boolean;
53
+ /** Suggested remediation step */
54
+ suggestedAction?: string;
55
+ /** Trace metadata for debugging */
56
+ trace?: Record<string, unknown>;
57
+ };
58
+ }
59
+ /**
60
+ * A task to be delegated to an agent.
61
+ *
62
+ * @example
63
+ * ```typescript
64
+ * const payload: TaskPayload = {
65
+ * instruction: 'Analyze Q4 revenue trends',
66
+ * context: { department: 'finance' },
67
+ * constraints: ['read_only', 'no_pii'],
68
+ * expectedOutput: 'JSON summary with top-line metrics',
69
+ * };
70
+ * ```
71
+ */
72
+ export interface TaskPayload {
73
+ /** Natural-language instruction for the agent */
74
+ instruction: string;
75
+ /** Additional context data relevant to the task */
76
+ context?: Record<string, unknown>;
77
+ /** Restrictions or guardrails the agent must respect */
78
+ constraints?: string[];
79
+ /** Description of the expected output format */
80
+ expectedOutput?: string;
81
+ }
82
+ /**
83
+ * Internal message structure for agent-to-agent task handoffs.
84
+ * The orchestrator creates these when delegating work between agents.
85
+ */
86
+ export interface HandoffMessage {
87
+ /** Unique handoff identifier */
88
+ handoffId: string;
89
+ /** Agent initiating the handoff */
90
+ sourceAgent: string;
91
+ /** Agent receiving the task */
92
+ targetAgent: string;
93
+ /** How the target agent should process the task */
94
+ taskType: 'delegate' | 'collaborate' | 'validate';
95
+ /** The task to execute */
96
+ payload: TaskPayload;
97
+ /** Scheduling and priority metadata */
98
+ metadata: {
99
+ /** Priority level (0=low, 3=critical) */
100
+ priority: number;
101
+ /** Unix timestamp deadline */
102
+ deadline: number;
103
+ /** Parent task for sub-task tracking */
104
+ parentTaskId: string | null;
105
+ };
106
+ }
107
+ /**
108
+ * Result of a permission request through the AuthGuardian.
109
+ * Contains the grant token (if approved) and any restrictions.
110
+ */
111
+ export interface PermissionGrant {
112
+ /** Whether permission was granted */
113
+ granted: boolean;
114
+ /** Opaque token to present when using the granted resource */
115
+ grantToken: string | null;
116
+ /** ISO 8601 expiration timestamp */
117
+ expiresAt: string | null;
118
+ /** Restrictions applied to this grant (e.g., `'read_only'`, `'max_records:100'`) */
119
+ restrictions: string[];
120
+ /** Human-readable denial reason (when `granted` is false) */
121
+ reason?: string;
122
+ }
123
+ /** Full snapshot of the swarm's runtime state. */
124
+ export interface SwarmState {
125
+ /** ISO 8601 timestamp when the snapshot was taken */
126
+ timestamp: string;
127
+ /** All registered agents and their current status */
128
+ activeAgents: AgentStatus[];
129
+ /** Tasks currently pending or in progress */
130
+ pendingTasks: TaskRecord[];
131
+ /** Namespace-scoped blackboard entries visible to the querying agent */
132
+ blackboardSnapshot: Record<string, BlackboardEntry>;
133
+ /** Active permission grants */
134
+ permissionGrants: ActiveGrant[];
135
+ }
136
+ /** Runtime status of a registered agent. */
137
+ export interface AgentStatus {
138
+ /** Unique agent identifier */
139
+ agentId: string;
140
+ /** Current operational state */
141
+ status: 'available' | 'busy' | 'waiting_auth' | 'offline';
142
+ /** ID of the task currently being executed, or null */
143
+ currentTask: string | null;
144
+ /** ISO 8601 timestamp of the last heartbeat */
145
+ lastHeartbeat: string;
146
+ }
147
+ export interface TaskRecord {
148
+ taskId: string;
149
+ agentId: string;
150
+ status: 'pending' | 'in_progress' | 'completed' | 'failed';
151
+ startedAt: string;
152
+ description: string;
153
+ }
154
+ /** A single entry stored on the shared blackboard. */
155
+ export interface BlackboardEntry {
156
+ /** Entry key (namespace-prefixed, e.g., `'task:analyze'`) */
157
+ key: string;
158
+ /** Stored value (any serializable data) */
159
+ value: unknown;
160
+ /** Agent that wrote this entry */
161
+ sourceAgent: string;
162
+ /** ISO 8601 timestamp of the write */
163
+ timestamp: string;
164
+ /** Time-to-live in seconds, or null for no expiry */
165
+ ttl: number | null;
166
+ }
167
+ /** An active permission grant held by an agent. */
168
+ export interface ActiveGrant {
169
+ /** Opaque grant token */
170
+ grantToken: string;
171
+ /** Resource type this grant covers (e.g., `'FILE_SYSTEM'`, `'DATABASE'`) */
172
+ resourceType: string;
173
+ /** Agent holding the grant */
174
+ agentId: string;
175
+ /** ISO 8601 expiration timestamp */
176
+ expiresAt: string;
177
+ /** Restrictions bound to this grant */
178
+ restrictions: string[];
179
+ /** Optional scope narrowing (e.g., `'read'`, `'staging_only'`) */
180
+ scope?: string;
181
+ }
182
+ /**
183
+ * Configurable resource profile -- makes the system domain-agnostic.
184
+ * Users can define any resource type (coding, finance, devops, etc.)
185
+ */
186
+ export interface ResourceProfile {
187
+ /** Base risk score 0-1 */
188
+ baseRisk: number;
189
+ /** Default restrictions applied when access is granted */
190
+ defaultRestrictions: string[];
191
+ /** Human-readable description */
192
+ description?: string;
193
+ }
194
+ /**
195
+ * Configuration for agent trust levels.
196
+ * Pass your own agents with their trust scores.
197
+ */
198
+ export interface AgentTrustConfig {
199
+ agentId: string;
200
+ trustLevel: number;
201
+ /** Namespace prefixes this agent can read from the blackboard */
202
+ allowedNamespaces?: string[];
203
+ /** Resource types this agent can request */
204
+ allowedResources?: string[];
205
+ }
206
+ /**
207
+ * Options for creating a named blackboard via `orchestrator.getBlackboard(name)`.
208
+ * All fields are optional -- sensible defaults are applied automatically.
209
+ */
210
+ export interface NamedBlackboardOptions {
211
+ /**
212
+ * Namespace prefixes the orchestrator agent is allowed to use on this board.
213
+ * Defaults to `['*']` (full access). Pass e.g. `['analysis:', 'result:']` to
214
+ * restrict the board to specific key prefixes.
215
+ */
216
+ allowedNamespaces?: string[];
217
+ /**
218
+ * Custom validation config applied to writes on this board.
219
+ * Falls back to the orchestrator's global config when omitted.
220
+ */
221
+ validationConfig?: Partial<ValidationConfig>;
222
+ /**
223
+ * Pluggable storage backend for this board.
224
+ *
225
+ * - Omit (default): `FileBackend` — persisted to disk at `<workspacePath>/boards/<name>/`
226
+ * - `new MemoryBackend()`: pure in-memory, no disk writes
227
+ * - Custom class implementing `BlackboardBackend`: Redis, CRDT, cloud KV, etc.
228
+ *
229
+ * @example
230
+ * ```typescript
231
+ * // Ephemeral board (testing / short-lived tasks)
232
+ * const board = orchestrator.getBlackboard('tmp', { backend: new MemoryBackend() });
233
+ *
234
+ * // Custom Redis backend
235
+ * const board = orchestrator.getBlackboard('prod', { backend: new RedisBackend(client) });
236
+ * ```
237
+ */
238
+ backend?: BlackboardBackend;
239
+ /**
240
+ * Consistency level applied to this board's backend.
241
+ *
242
+ * When provided, the backend is automatically wrapped in a `ConsistentBackend`
243
+ * with the specified level. Omitting this (or passing `'eventual'`) leaves the
244
+ * backend unwrapped for maximum performance.
245
+ *
246
+ * - `'eventual'` (default): no wrapping — highest throughput
247
+ * - `'session'`: read-your-writes guarantee via a local session cache
248
+ * - `'strong'`: use `board.writeAsync()` to await `backend.flush()` confirmation
249
+ *
250
+ * @example
251
+ * ```typescript
252
+ * const board = orchestrator.getBlackboard('live', {
253
+ * backend: new RedisBackend(client),
254
+ * consistency: 'strong',
255
+ * });
256
+ * ```
257
+ */
258
+ consistency?: ConsistencyLevel;
259
+ }
260
+ /** A single task within a parallel execution batch. */
261
+ export interface ParallelTask {
262
+ /** Agent type or adapter-prefixed ID to route the task to */
263
+ agentType: string;
264
+ /** The task payload to execute */
265
+ taskPayload: TaskPayload;
266
+ }
267
+ /** Result of a parallel execution batch, including synthesis and metrics. */
268
+ export interface ParallelExecutionResult {
269
+ /** Combined result produced by the synthesis strategy */
270
+ synthesizedResult: unknown;
271
+ /** Per-agent results with timing */
272
+ individualResults: Array<{
273
+ agentType: string;
274
+ success: boolean;
275
+ result: unknown;
276
+ /** Wall-clock execution time in milliseconds */
277
+ executionTime: number;
278
+ }>;
279
+ /** Aggregate execution metrics */
280
+ executionMetrics: {
281
+ /** Total wall-clock time in milliseconds */
282
+ totalTime: number;
283
+ /** Fraction of tasks that succeeded (0-1) */
284
+ successRate: number;
285
+ /** Strategy used to combine results */
286
+ synthesisStrategy: string;
287
+ };
288
+ }
289
+ /**
290
+ * Strategy for combining results from parallel agent executions.
291
+ * - `'merge'` — Combine all successful results into one object
292
+ * - `'vote'` — Pick the result with the highest confidence/size
293
+ * - `'chain'` — Use the final result in sequence
294
+ * - `'first-success'` — Return the first successful result
295
+ */
296
+ export type SynthesisStrategy = 'merge' | 'vote' | 'chain' | 'first-success';
297
+ export declare const CONFIG: {
298
+ blackboardPath: string;
299
+ maxParallelAgents: number;
300
+ defaultTimeout: number;
301
+ enableTracing: boolean;
302
+ grantTokenTTL: number;
303
+ maxBlackboardValueSize: number;
304
+ auditLogPath: string;
305
+ trustConfigPath: string;
306
+ };
307
+ export declare const DEFAULT_RESOURCE_PROFILES: Record<string, ResourceProfile>;
308
+ export declare const DEFAULT_AGENT_TRUST: AgentTrustConfig[];
309
+ //# sourceMappingURL=orchestrator-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestrator-types.d.ts","sourceRoot":"","sources":["../../lib/orchestrator-types.ts"],"names":[],"mappings":"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"}