swarm-engine 1.3.0 → 1.41.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.
- package/README.md +45 -7
- package/dist/cli/commands/memory.js +117 -0
- package/dist/cli/commands/memory.js.map +1 -1
- package/dist/core/patterns.d.ts +7 -1
- package/dist/core/patterns.d.ts.map +1 -1
- package/dist/core/patterns.js +23 -0
- package/dist/core/patterns.js.map +1 -1
- package/dist/core/types.d.ts +39 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/index.d.ts +55 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +40 -0
- package/dist/index.js.map +1 -1
- package/dist/memory/index.d.ts +37 -0
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/index.js +91 -0
- package/dist/memory/index.js.map +1 -1
- package/dist/runtime/adaptive.d.ts +1 -0
- package/dist/runtime/adaptive.d.ts.map +1 -1
- package/dist/runtime/adaptive.js +18 -4
- package/dist/runtime/adaptive.js.map +1 -1
- package/dist/runtime/agent-runner.d.ts +18 -0
- package/dist/runtime/agent-runner.d.ts.map +1 -1
- package/dist/runtime/agent-runner.js +147 -4
- package/dist/runtime/agent-runner.js.map +1 -1
- package/dist/runtime/backends/claude-session.d.ts +49 -0
- package/dist/runtime/backends/claude-session.d.ts.map +1 -0
- package/dist/runtime/backends/claude-session.js +237 -0
- package/dist/runtime/backends/claude-session.js.map +1 -0
- package/dist/runtime/backends/claude.d.ts.map +1 -1
- package/dist/runtime/backends/claude.js +90 -4
- package/dist/runtime/backends/claude.js.map +1 -1
- package/dist/runtime/backends/types.d.ts +31 -1
- package/dist/runtime/backends/types.d.ts.map +1 -1
- package/dist/runtime/compaction.d.ts +7 -1
- package/dist/runtime/compaction.d.ts.map +1 -1
- package/dist/runtime/compaction.js +12 -2
- package/dist/runtime/compaction.js.map +1 -1
- package/dist/runtime/distiller.d.ts +1 -0
- package/dist/runtime/distiller.d.ts.map +1 -1
- package/dist/runtime/distiller.js +8 -2
- package/dist/runtime/distiller.js.map +1 -1
- package/dist/runtime/engine.d.ts +48 -2
- package/dist/runtime/engine.d.ts.map +1 -1
- package/dist/runtime/engine.js +600 -8
- package/dist/runtime/engine.js.map +1 -1
- package/dist/runtime/execution-graph.d.ts +86 -0
- package/dist/runtime/execution-graph.d.ts.map +1 -0
- package/dist/runtime/execution-graph.js +441 -0
- package/dist/runtime/execution-graph.js.map +1 -0
- package/dist/runtime/executor.d.ts +7 -1
- package/dist/runtime/executor.d.ts.map +1 -1
- package/dist/runtime/executor.js +20 -0
- package/dist/runtime/executor.js.map +1 -1
- package/dist/runtime/graph-adversarial.d.ts +88 -0
- package/dist/runtime/graph-adversarial.d.ts.map +1 -0
- package/dist/runtime/graph-adversarial.js +378 -0
- package/dist/runtime/graph-adversarial.js.map +1 -0
- package/dist/runtime/graph-analyzer.d.ts +106 -0
- package/dist/runtime/graph-analyzer.d.ts.map +1 -0
- package/dist/runtime/graph-analyzer.js +321 -0
- package/dist/runtime/graph-analyzer.js.map +1 -0
- package/dist/runtime/graph-causal.d.ts +91 -0
- package/dist/runtime/graph-causal.d.ts.map +1 -0
- package/dist/runtime/graph-causal.js +292 -0
- package/dist/runtime/graph-causal.js.map +1 -0
- package/dist/runtime/graph-context-router.d.ts +73 -0
- package/dist/runtime/graph-context-router.d.ts.map +1 -0
- package/dist/runtime/graph-context-router.js +162 -0
- package/dist/runtime/graph-context-router.js.map +1 -0
- package/dist/runtime/graph-discovery.d.ts +71 -0
- package/dist/runtime/graph-discovery.d.ts.map +1 -0
- package/dist/runtime/graph-discovery.js +364 -0
- package/dist/runtime/graph-discovery.js.map +1 -0
- package/dist/runtime/graph-dropout.d.ts +59 -0
- package/dist/runtime/graph-dropout.d.ts.map +1 -0
- package/dist/runtime/graph-dropout.js +204 -0
- package/dist/runtime/graph-dropout.js.map +1 -0
- package/dist/runtime/graph-embeddings.d.ts +58 -0
- package/dist/runtime/graph-embeddings.d.ts.map +1 -0
- package/dist/runtime/graph-embeddings.js +299 -0
- package/dist/runtime/graph-embeddings.js.map +1 -0
- package/dist/runtime/graph-feedback.d.ts +30 -0
- package/dist/runtime/graph-feedback.d.ts.map +1 -0
- package/dist/runtime/graph-feedback.js +80 -0
- package/dist/runtime/graph-feedback.js.map +1 -0
- package/dist/runtime/graph-gnn.d.ts +120 -0
- package/dist/runtime/graph-gnn.d.ts.map +1 -0
- package/dist/runtime/graph-gnn.js +524 -0
- package/dist/runtime/graph-gnn.js.map +1 -0
- package/dist/runtime/graph-learner.d.ts +70 -0
- package/dist/runtime/graph-learner.d.ts.map +1 -0
- package/dist/runtime/graph-learner.js +265 -0
- package/dist/runtime/graph-learner.js.map +1 -0
- package/dist/runtime/graph-meta-adversarial.d.ts +113 -0
- package/dist/runtime/graph-meta-adversarial.d.ts.map +1 -0
- package/dist/runtime/graph-meta-adversarial.js +366 -0
- package/dist/runtime/graph-meta-adversarial.js.map +1 -0
- package/dist/runtime/graph-meta.d.ts +115 -0
- package/dist/runtime/graph-meta.d.ts.map +1 -0
- package/dist/runtime/graph-meta.js +465 -0
- package/dist/runtime/graph-meta.js.map +1 -0
- package/dist/runtime/graph-self-evolve.d.ts +92 -0
- package/dist/runtime/graph-self-evolve.d.ts.map +1 -0
- package/dist/runtime/graph-self-evolve.js +422 -0
- package/dist/runtime/graph-self-evolve.js.map +1 -0
- package/dist/runtime/graph-synthesis.d.ts +47 -0
- package/dist/runtime/graph-synthesis.d.ts.map +1 -0
- package/dist/runtime/graph-synthesis.js +232 -0
- package/dist/runtime/graph-synthesis.js.map +1 -0
- package/dist/runtime/graph-trajectory.d.ts +88 -0
- package/dist/runtime/graph-trajectory.d.ts.map +1 -0
- package/dist/runtime/graph-trajectory.js +334 -0
- package/dist/runtime/graph-trajectory.js.map +1 -0
- package/dist/runtime/learning-engine.d.ts +12 -0
- package/dist/runtime/learning-engine.d.ts.map +1 -1
- package/dist/runtime/learning-engine.js +70 -0
- package/dist/runtime/learning-engine.js.map +1 -1
- package/dist/runtime/prompt-compressor.d.ts +16 -0
- package/dist/runtime/prompt-compressor.d.ts.map +1 -0
- package/dist/runtime/prompt-compressor.js +68 -0
- package/dist/runtime/prompt-compressor.js.map +1 -0
- package/dist/runtime/repo-map.d.ts +40 -0
- package/dist/runtime/repo-map.d.ts.map +1 -0
- package/dist/runtime/repo-map.js +358 -0
- package/dist/runtime/repo-map.js.map +1 -0
- package/dist/runtime/sdk-mcp-server.d.ts +44 -0
- package/dist/runtime/sdk-mcp-server.d.ts.map +1 -0
- package/dist/runtime/sdk-mcp-server.js +133 -0
- package/dist/runtime/sdk-mcp-server.js.map +1 -0
- package/dist/runtime/structured-handoff.d.ts +41 -0
- package/dist/runtime/structured-handoff.d.ts.map +1 -0
- package/dist/runtime/structured-handoff.js +279 -0
- package/dist/runtime/structured-handoff.js.map +1 -0
- package/dist/runtime/token-analytics.d.ts +38 -0
- package/dist/runtime/token-analytics.d.ts.map +1 -0
- package/dist/runtime/token-analytics.js +59 -0
- package/dist/runtime/token-analytics.js.map +1 -0
- package/dist/runtime/verifier.d.ts +10 -0
- package/dist/runtime/verifier.d.ts.map +1 -1
- package/dist/runtime/verifier.js +97 -1
- package/dist/runtime/verifier.js.map +1 -1
- package/package.json +2 -2
- package/skills/swarm-output-style/SKILL.md +71 -33
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
// ─── Standalone Utilities ─────────────────────────────────────────
|
|
2
|
+
/**
|
|
3
|
+
* Extract file-like references from a text string.
|
|
4
|
+
* Matches patterns like "src/runtime/foo.ts", "test/bar.spec.js", "file.ext".
|
|
5
|
+
*/
|
|
6
|
+
export function extractFileReferences(text) {
|
|
7
|
+
const patterns = [
|
|
8
|
+
/[\w\-./]+\.\w{1,4}/g, // file.ext or path/to/file.ext
|
|
9
|
+
/src\/[\w\-./]+/g, // src/path/to/thing
|
|
10
|
+
/tests?\/[\w\-./]+/g, // test/path or tests/path
|
|
11
|
+
];
|
|
12
|
+
const refs = new Set();
|
|
13
|
+
for (const pattern of patterns) {
|
|
14
|
+
const matches = text.match(pattern);
|
|
15
|
+
if (matches) {
|
|
16
|
+
for (const m of matches)
|
|
17
|
+
refs.add(m);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return [...refs];
|
|
21
|
+
}
|
|
22
|
+
// ─── GraphLearner ─────────────────────────────────────────────────
|
|
23
|
+
/**
|
|
24
|
+
* Cross-run learning from the execution graph.
|
|
25
|
+
* Queries accumulated graph data across all past orchestrations to
|
|
26
|
+
* surface pattern success rates, file co-modifications, and agent
|
|
27
|
+
* performance by file context.
|
|
28
|
+
*/
|
|
29
|
+
export class GraphLearner {
|
|
30
|
+
graph;
|
|
31
|
+
constructor(graph) {
|
|
32
|
+
this.graph = graph;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Get success/failure stats for a pattern across all recorded runs.
|
|
36
|
+
* Pass a pattern name to filter, or omit for all patterns.
|
|
37
|
+
*/
|
|
38
|
+
getPatternStats(patternName) {
|
|
39
|
+
if (!this.graph)
|
|
40
|
+
return [];
|
|
41
|
+
const patternNodes = this.graph.getNodesByType('pattern');
|
|
42
|
+
const results = [];
|
|
43
|
+
for (const pNode of patternNodes) {
|
|
44
|
+
if (patternName && pNode.label !== patternName)
|
|
45
|
+
continue;
|
|
46
|
+
// used_pattern edges go orchestration → pattern, so look for incoming edges
|
|
47
|
+
const incomingEdges = this.graph.getEdges(pNode.id, 'incoming').filter((e) => e.type === 'used_pattern');
|
|
48
|
+
const orchNodes = incomingEdges
|
|
49
|
+
.map((e) => this.graph.getNode(e.source))
|
|
50
|
+
.filter((n) => n !== null);
|
|
51
|
+
if (orchNodes.length === 0 && !patternName)
|
|
52
|
+
continue;
|
|
53
|
+
const successes = orchNodes.filter((o) => o.properties.status === 'completed');
|
|
54
|
+
const failures = orchNodes.filter((o) => o.properties.status === 'failed');
|
|
55
|
+
const durations = orchNodes.map((o) => o.properties.durationMs || 0).filter((d) => d > 0);
|
|
56
|
+
const costs = orchNodes
|
|
57
|
+
.map((o) => {
|
|
58
|
+
const usage = o.properties.usage;
|
|
59
|
+
return usage?.costUsd || 0;
|
|
60
|
+
})
|
|
61
|
+
.filter((c) => c > 0);
|
|
62
|
+
results.push({
|
|
63
|
+
pattern: pNode.label,
|
|
64
|
+
totalRuns: orchNodes.length,
|
|
65
|
+
successCount: successes.length,
|
|
66
|
+
failCount: failures.length,
|
|
67
|
+
successRate: orchNodes.length > 0 ? successes.length / orchNodes.length : 0,
|
|
68
|
+
avgDurationMs: durations.length > 0 ? durations.reduce((a, b) => a + b, 0) / durations.length : 0,
|
|
69
|
+
avgCostUsd: costs.length > 0 ? costs.reduce((a, b) => a + b, 0) / costs.length : 0,
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
return results;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Find files that are frequently modified together across orchestrations.
|
|
76
|
+
* Returns pairs sorted by co-modification count (descending).
|
|
77
|
+
*/
|
|
78
|
+
getFileCoModifications(minCount = 2) {
|
|
79
|
+
if (!this.graph)
|
|
80
|
+
return [];
|
|
81
|
+
const fileNodes = this.graph.getNodesByType('file');
|
|
82
|
+
// Map each file to the set of orchestrations that touched it.
|
|
83
|
+
// Path: file ←touched_file← agent ←spawned← phase ←contains← orchestration
|
|
84
|
+
const fileToOrchs = new Map();
|
|
85
|
+
for (const file of fileNodes) {
|
|
86
|
+
const orchs = new Set();
|
|
87
|
+
// agents that touched this file
|
|
88
|
+
const touchEdges = this.graph.getEdges(file.id, 'incoming').filter((e) => e.type === 'touched_file');
|
|
89
|
+
for (const te of touchEdges) {
|
|
90
|
+
// phase that spawned this agent
|
|
91
|
+
const spawnEdges = this.graph.getEdges(te.source, 'incoming').filter((e) => e.type === 'spawned');
|
|
92
|
+
for (const se of spawnEdges) {
|
|
93
|
+
// orchestration that contains this phase
|
|
94
|
+
const containEdges = this.graph.getEdges(se.source, 'incoming').filter((e) => e.type === 'contains');
|
|
95
|
+
for (const ce of containEdges) {
|
|
96
|
+
orchs.add(ce.source);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
if (orchs.size > 0) {
|
|
101
|
+
fileToOrchs.set(file.id, orchs);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
// Find co-occurring file pairs
|
|
105
|
+
const pairs = [];
|
|
106
|
+
const fileIds = [...fileToOrchs.keys()];
|
|
107
|
+
for (let i = 0; i < fileIds.length; i++) {
|
|
108
|
+
const orchsA = fileToOrchs.get(fileIds[i]);
|
|
109
|
+
for (let j = i + 1; j < fileIds.length; j++) {
|
|
110
|
+
const orchsB = fileToOrchs.get(fileIds[j]);
|
|
111
|
+
let overlap = 0;
|
|
112
|
+
for (const o of orchsA) {
|
|
113
|
+
if (orchsB.has(o))
|
|
114
|
+
overlap++;
|
|
115
|
+
}
|
|
116
|
+
if (overlap >= minCount) {
|
|
117
|
+
pairs.push({
|
|
118
|
+
file1: this.graph.getNode(fileIds[i])?.label || fileIds[i],
|
|
119
|
+
file2: this.graph.getNode(fileIds[j])?.label || fileIds[j],
|
|
120
|
+
coModCount: overlap,
|
|
121
|
+
confidence: overlap >= 5 ? 'EXTRACTED' : overlap >= 3 ? 'INFERRED' : 'AMBIGUOUS',
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return pairs.sort((a, b) => b.coModCount - a.coModCount);
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Get agent performance stats segmented by file directory.
|
|
130
|
+
* Only returns buckets with sampleSize >= 2 to avoid noise.
|
|
131
|
+
*/
|
|
132
|
+
getAgentFilePerformance(agentType) {
|
|
133
|
+
if (!this.graph)
|
|
134
|
+
return [];
|
|
135
|
+
const agentNodes = this.graph
|
|
136
|
+
.getNodesByType('agent')
|
|
137
|
+
.filter((n) => !agentType || n.properties.agentType === agentType || n.label === agentType);
|
|
138
|
+
// Group by agentType + directory
|
|
139
|
+
const buckets = new Map();
|
|
140
|
+
for (const agent of agentNodes) {
|
|
141
|
+
const aType = agent.properties.agentType || agent.label;
|
|
142
|
+
const success = agent.properties.status === 'idle';
|
|
143
|
+
const files = this.graph.getEdges(agent.id, 'outgoing').filter((e) => e.type === 'touched_file');
|
|
144
|
+
for (const fileEdge of files) {
|
|
145
|
+
const fileNode = this.graph.getNode(fileEdge.target);
|
|
146
|
+
const dir = (fileNode?.label || '').split('/').slice(0, -1).join('/') || 'root';
|
|
147
|
+
const key = `${aType}::${dir}`;
|
|
148
|
+
const bucket = buckets.get(key) || { success: 0, total: 0 };
|
|
149
|
+
bucket.total++;
|
|
150
|
+
if (success)
|
|
151
|
+
bucket.success++;
|
|
152
|
+
buckets.set(key, bucket);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
return [...buckets.entries()]
|
|
156
|
+
.map(([key, { success, total }]) => {
|
|
157
|
+
const [at, fp] = key.split('::');
|
|
158
|
+
return {
|
|
159
|
+
agentType: at,
|
|
160
|
+
filePattern: fp,
|
|
161
|
+
successRate: total > 0 ? success / total : 0,
|
|
162
|
+
sampleSize: total,
|
|
163
|
+
};
|
|
164
|
+
})
|
|
165
|
+
.filter((r) => r.sampleSize >= 2)
|
|
166
|
+
.sort((a, b) => b.sampleSize - a.sampleSize);
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Record cross-run edges after an orchestration completes.
|
|
170
|
+
* Links files that were co-modified in this orchestration to files
|
|
171
|
+
* co-modified in other orchestrations via INFERRED co_modified edges.
|
|
172
|
+
*/
|
|
173
|
+
recordCrossRunEdges(orchestrationId) {
|
|
174
|
+
if (!this.graph)
|
|
175
|
+
return;
|
|
176
|
+
const orchNode = this.graph.getNode(orchestrationId);
|
|
177
|
+
if (!orchNode)
|
|
178
|
+
return;
|
|
179
|
+
// Collect all file node IDs touched in this orchestration (3-hop BFS covers orch→phase→agent→file)
|
|
180
|
+
const subgraph = this.graph.bfs(orchestrationId, 3);
|
|
181
|
+
const fileNodes = subgraph.nodes.filter((n) => n.type === 'file');
|
|
182
|
+
if (fileNodes.length < 2)
|
|
183
|
+
return;
|
|
184
|
+
// Add co_modified edges between all file pairs in this orchestration
|
|
185
|
+
for (let i = 0; i < fileNodes.length; i++) {
|
|
186
|
+
for (let j = i + 1; j < fileNodes.length; j++) {
|
|
187
|
+
this.graph.addEdge({
|
|
188
|
+
source: fileNodes[i].id,
|
|
189
|
+
target: fileNodes[j].id,
|
|
190
|
+
type: 'co_modified',
|
|
191
|
+
confidence: 'INFERRED',
|
|
192
|
+
properties: { orchestrationId },
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Given a list of files from an agent's task, find co-modified files
|
|
199
|
+
* and format as prompt hint text. Caps at top 5 suggestions.
|
|
200
|
+
* Skips AMBIGUOUS confidence entries (too noisy).
|
|
201
|
+
*/
|
|
202
|
+
getCoModHints(files, minCount) {
|
|
203
|
+
if (!this.graph || files.length === 0)
|
|
204
|
+
return '';
|
|
205
|
+
const coMods = this.getFileCoModifications(minCount ?? 2);
|
|
206
|
+
if (coMods.length === 0)
|
|
207
|
+
return '';
|
|
208
|
+
const fileSet = new Set(files);
|
|
209
|
+
const extracted = [];
|
|
210
|
+
const inferred = [];
|
|
211
|
+
for (const coMod of coMods) {
|
|
212
|
+
if (coMod.confidence === 'AMBIGUOUS')
|
|
213
|
+
continue;
|
|
214
|
+
let matchedFile = null;
|
|
215
|
+
let otherFile = null;
|
|
216
|
+
if (fileSet.has(coMod.file1) || files.some((f) => coMod.file1.includes(f) || f.includes(coMod.file1))) {
|
|
217
|
+
matchedFile = coMod.file1;
|
|
218
|
+
otherFile = coMod.file2;
|
|
219
|
+
}
|
|
220
|
+
else if (fileSet.has(coMod.file2) || files.some((f) => coMod.file2.includes(f) || f.includes(coMod.file2))) {
|
|
221
|
+
matchedFile = coMod.file2;
|
|
222
|
+
otherFile = coMod.file1;
|
|
223
|
+
}
|
|
224
|
+
if (!matchedFile || !otherFile)
|
|
225
|
+
continue;
|
|
226
|
+
// Don't suggest files already in the working set
|
|
227
|
+
if (fileSet.has(otherFile) || files.some((f) => otherFile.includes(f) || f.includes(otherFile)))
|
|
228
|
+
continue;
|
|
229
|
+
if (coMod.confidence === 'EXTRACTED') {
|
|
230
|
+
if (!extracted.includes(otherFile))
|
|
231
|
+
extracted.push(otherFile);
|
|
232
|
+
}
|
|
233
|
+
else if (coMod.confidence === 'INFERRED') {
|
|
234
|
+
if (!inferred.includes(otherFile))
|
|
235
|
+
inferred.push(otherFile);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
const parts = [];
|
|
239
|
+
if (extracted.length > 0) {
|
|
240
|
+
const capped = extracted.slice(0, 5);
|
|
241
|
+
parts.push(`\n\nNote: These files are typically modified together with the files you're working on: ${capped.join(', ')}`);
|
|
242
|
+
}
|
|
243
|
+
if (inferred.length > 0) {
|
|
244
|
+
const remaining = 5 - (extracted.length > 5 ? 5 : extracted.length);
|
|
245
|
+
if (remaining > 0) {
|
|
246
|
+
const capped = inferred.slice(0, remaining);
|
|
247
|
+
parts.push(`\n\nConsider also reviewing: ${capped.join(', ')}`);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
return parts.join('');
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Format pattern stats as context for agent prompts.
|
|
254
|
+
*/
|
|
255
|
+
formatPatternContext(stats) {
|
|
256
|
+
if (stats.length === 0)
|
|
257
|
+
return '';
|
|
258
|
+
const lines = stats.map((s) => `Pattern "${s.pattern}": ${s.totalRuns} runs, ` +
|
|
259
|
+
`${Math.round(s.successRate * 100)}% success rate` +
|
|
260
|
+
(s.avgDurationMs > 0 ? `, avg ${Math.round(s.avgDurationMs / 1000)}s` : '') +
|
|
261
|
+
(s.avgCostUsd > 0 ? `, avg $${s.avgCostUsd.toFixed(2)}` : ''));
|
|
262
|
+
return `[Graph Learning — Pattern History]\n${lines.join('\n')}`;
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
//# sourceMappingURL=graph-learner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-learner.js","sourceRoot":"","sources":["../../src/runtime/graph-learner.ts"],"names":[],"mappings":"AA6BA,qEAAqE;AAErE;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAChD,MAAM,QAAQ,GAAG;QACf,qBAAqB,EAAE,+BAA+B;QACtD,iBAAiB,EAAE,oBAAoB;QACvC,oBAAoB,EAAE,0BAA0B;KACjD,CAAC;IACF,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACpC,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,MAAM,CAAC,IAAI,OAAO;gBAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;AACnB,CAAC;AAED,qEAAqE;AAErE;;;;;GAKG;AACH,MAAM,OAAO,YAAY;IACH;IAApB,YAAoB,KAA4B;QAA5B,UAAK,GAAL,KAAK,CAAuB;IAAG,CAAC;IAEpD;;;OAGG;IACH,eAAe,CAAC,WAAoB;QAClC,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAC;QAE3B,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAC1D,MAAM,OAAO,GAAmB,EAAE,CAAC;QAEnC,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;YACjC,IAAI,WAAW,IAAI,KAAK,CAAC,KAAK,KAAK,WAAW;gBAAE,SAAS;YAEzD,4EAA4E;YAC5E,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;YAEzG,MAAM,SAAS,GAAG,aAAa;iBAC5B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;iBACzC,MAAM,CAAC,CAAC,CAAC,EAAkB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;YAE7C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,WAAW;gBAAE,SAAS;YAErD,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC;YAC/E,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;YAC3E,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,CAAC,CAAC,UAAU,CAAC,UAAqB,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACtG,MAAM,KAAK,GAAG,SAAS;iBACpB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACT,MAAM,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC,KAAyC,CAAC;gBACrE,OAAO,KAAK,EAAE,OAAO,IAAI,CAAC,CAAC;YAC7B,CAAC,CAAC;iBACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAExB,OAAO,CAAC,IAAI,CAAC;gBACX,OAAO,EAAE,KAAK,CAAC,KAAK;gBACpB,SAAS,EAAE,SAAS,CAAC,MAAM;gBAC3B,YAAY,EAAE,SAAS,CAAC,MAAM;gBAC9B,SAAS,EAAE,QAAQ,CAAC,MAAM;gBAC1B,WAAW,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC3E,aAAa,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACjG,UAAU,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;aACnF,CAAC,CAAC;QACL,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;OAGG;IACH,sBAAsB,CAAC,QAAQ,GAAG,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAC;QAE3B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAEpD,8DAA8D;QAC9D,2EAA2E;QAC3E,MAAM,WAAW,GAAG,IAAI,GAAG,EAAuB,CAAC;QAEnD,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;YAChC,gCAAgC;YAChC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;YAErG,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;gBAC5B,gCAAgC;gBAChC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;gBAElG,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;oBAC5B,yCAAyC;oBACzC,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;oBAErG,KAAK,MAAM,EAAE,IAAI,YAAY,EAAE,CAAC;wBAC9B,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;oBACvB,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBACnB,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QAED,+BAA+B;QAC/B,MAAM,KAAK,GAAyB,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,CAAC,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QAExC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAE,CAAC;YAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5C,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAE,CAAC;gBAC5C,IAAI,OAAO,GAAG,CAAC,CAAC;gBAChB,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;oBACvB,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;wBAAE,OAAO,EAAE,CAAC;gBAC/B,CAAC;gBACD,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;oBACxB,KAAK,CAAC,IAAI,CAAC;wBACT,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,OAAO,CAAC,CAAC,CAAC;wBAC1D,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,OAAO,CAAC,CAAC,CAAC;wBAC1D,UAAU,EAAE,OAAO;wBACnB,UAAU,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW;qBACjF,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;IAC3D,CAAC;IAED;;;OAGG;IACH,uBAAuB,CAAC,SAAkB;QACxC,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAC;QAE3B,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK;aAC1B,cAAc,CAAC,OAAO,CAAC;aACvB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,UAAU,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;QAE9F,iCAAiC;QACjC,MAAM,OAAO,GAAG,IAAI,GAAG,EAA8C,CAAC;QAEtE,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAI,KAAK,CAAC,UAAU,CAAC,SAAoB,IAAI,KAAK,CAAC,KAAK,CAAC;YACpE,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,KAAK,MAAM,CAAC;YAEnD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;YAEjG,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;gBAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACrD,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC;gBAChF,MAAM,GAAG,GAAG,GAAG,KAAK,KAAK,GAAG,EAAE,CAAC;gBAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;gBAC5D,MAAM,CAAC,KAAK,EAAE,CAAC;gBACf,IAAI,OAAO;oBAAE,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC9B,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;aAC1B,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;YACjC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACjC,OAAO;gBACL,SAAS,EAAE,EAAE;gBACb,WAAW,EAAE,EAAE;gBACf,WAAW,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC5C,UAAU,EAAE,KAAK;aAClB,CAAC;QACJ,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC;aAChC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;IACjD,CAAC;IAED;;;;OAIG;IACH,mBAAmB,CAAC,eAAuB;QACzC,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QAExB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACrD,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,mGAAmG;QACnG,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QAClE,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO;QAEjC,qEAAqE;QACrE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;oBACjB,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;oBACvB,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;oBACvB,IAAI,EAAE,aAAa;oBACnB,UAAU,EAAE,UAAU;oBACtB,UAAU,EAAE,EAAE,eAAe,EAAE;iBAChC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,aAAa,CAAC,KAAe,EAAE,QAAiB;QAC9C,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAEjD,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;QAC1D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAEnC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QAC/B,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAa,EAAE,CAAC;QAE9B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,KAAK,CAAC,UAAU,KAAK,WAAW;gBAAE,SAAS;YAE/C,IAAI,WAAW,GAAkB,IAAI,CAAC;YACtC,IAAI,SAAS,GAAkB,IAAI,CAAC;YAEpC,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBACtG,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC;gBAC1B,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC;YAC1B,CAAC;iBAAM,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC7G,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC;gBAC1B,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC;YAC1B,CAAC;YAED,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS;gBAAE,SAAS;YACzC,iDAAiD;YACjD,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAU,CAAC,CAAC;gBAAE,SAAS;YAE5G,IAAI,KAAK,CAAC,UAAU,KAAK,WAAW,EAAE,CAAC;gBACrC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC;oBAAE,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAChE,CAAC;iBAAM,IAAI,KAAK,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;gBAC3C,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;oBAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACrC,KAAK,CAAC,IAAI,CACR,2FAA2F,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC/G,CAAC;QACJ,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACpE,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;gBAClB,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;gBAC5C,KAAK,CAAC,IAAI,CAAC,gCAAgC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,KAAqB;QACxC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAElC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CACrB,CAAC,CAAC,EAAE,EAAE,CACJ,YAAY,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,SAAS,SAAS;YAC/C,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,GAAG,GAAG,CAAC,gBAAgB;YAClD,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3E,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAChE,CAAC;QAEF,OAAO,uCAAuC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACnE,CAAC;CACF"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import type { ExecutionGraph } from './execution-graph.js';
|
|
2
|
+
export interface Vulnerability {
|
|
3
|
+
system: 'patternSelector' | 'dropout' | 'causal' | 'heuristic';
|
|
4
|
+
severity: 'low' | 'medium' | 'high';
|
|
5
|
+
description: string;
|
|
6
|
+
perturbation: string;
|
|
7
|
+
originalOutput: string;
|
|
8
|
+
perturbedOutput: string;
|
|
9
|
+
sensitivityScore: number;
|
|
10
|
+
}
|
|
11
|
+
export interface SelfAuditReport {
|
|
12
|
+
vulnerabilities: Vulnerability[];
|
|
13
|
+
overallRisk: 'low' | 'medium' | 'high';
|
|
14
|
+
recommendations: string[];
|
|
15
|
+
systemsAudited: string[];
|
|
16
|
+
totalTrials: number;
|
|
17
|
+
}
|
|
18
|
+
type PerturbStrategy = 'noise' | 'swap' | 'truncate' | 'prefix';
|
|
19
|
+
/**
|
|
20
|
+
* Red-teams the orchestration engine's own decision-making subsystems
|
|
21
|
+
* by perturbing inputs and checking if outputs change dramatically
|
|
22
|
+
* (sensitivity analysis). This is a testing/auditing tool, not a
|
|
23
|
+
* runtime component.
|
|
24
|
+
*/
|
|
25
|
+
export declare class MetaAdversarialTester {
|
|
26
|
+
private graph;
|
|
27
|
+
constructor(graph: ExecutionGraph);
|
|
28
|
+
/**
|
|
29
|
+
* Test if a pattern selector is fragile to input perturbation.
|
|
30
|
+
* Generates perturbation pairs and checks if the recommendation changes.
|
|
31
|
+
*/
|
|
32
|
+
testPatternSelector(selector: {
|
|
33
|
+
selectPattern: (task: string, ctx?: any) => {
|
|
34
|
+
pattern: string;
|
|
35
|
+
confidence: number;
|
|
36
|
+
alternatives?: Array<{
|
|
37
|
+
pattern: string;
|
|
38
|
+
confidence: number;
|
|
39
|
+
}>;
|
|
40
|
+
};
|
|
41
|
+
}, numTrials?: number): Vulnerability[];
|
|
42
|
+
/**
|
|
43
|
+
* Test if a dropout predictor makes wrong decisions at boundaries.
|
|
44
|
+
* Varies agent type, phase kind, and file count to find flip points.
|
|
45
|
+
*/
|
|
46
|
+
testDropoutPredictor(dropout: {
|
|
47
|
+
predictRedundant: (agents: Array<{
|
|
48
|
+
id: string;
|
|
49
|
+
agentType: string;
|
|
50
|
+
}>, phaseKind: string, fileCount: number, pattern: string, threshold?: number) => Array<{
|
|
51
|
+
shouldDropOut: boolean;
|
|
52
|
+
predictedContribution: number;
|
|
53
|
+
}>;
|
|
54
|
+
}, numTrials?: number): Vulnerability[];
|
|
55
|
+
/**
|
|
56
|
+
* Test if a causal engine finds spurious correlations.
|
|
57
|
+
* Creates synthetic scenarios with known confounders and Simpson's paradox data.
|
|
58
|
+
*/
|
|
59
|
+
testCausalEngine(causal: {
|
|
60
|
+
estimateCausalEffect: (treatment: string, treatmentValue: string, controlValue: string) => {
|
|
61
|
+
effect: number;
|
|
62
|
+
confidence: string;
|
|
63
|
+
sampleCount: number;
|
|
64
|
+
};
|
|
65
|
+
}, numTrials?: number): Vulnerability[];
|
|
66
|
+
/**
|
|
67
|
+
* Run a comprehensive audit across all provided subsystems.
|
|
68
|
+
*/
|
|
69
|
+
runFullAudit(systems: {
|
|
70
|
+
patternSelector?: {
|
|
71
|
+
selectPattern: (task: string, ctx?: any) => {
|
|
72
|
+
pattern: string;
|
|
73
|
+
confidence: number;
|
|
74
|
+
alternatives?: Array<{
|
|
75
|
+
pattern: string;
|
|
76
|
+
confidence: number;
|
|
77
|
+
}>;
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
dropout?: {
|
|
81
|
+
predictRedundant: (agents: Array<{
|
|
82
|
+
id: string;
|
|
83
|
+
agentType: string;
|
|
84
|
+
}>, phaseKind: string, fileCount: number, pattern: string, threshold?: number) => Array<{
|
|
85
|
+
shouldDropOut: boolean;
|
|
86
|
+
predictedContribution: number;
|
|
87
|
+
}>;
|
|
88
|
+
};
|
|
89
|
+
causal?: {
|
|
90
|
+
estimateCausalEffect: (treatment: string, treatmentValue: string, controlValue: string) => {
|
|
91
|
+
effect: number;
|
|
92
|
+
confidence: string;
|
|
93
|
+
sampleCount: number;
|
|
94
|
+
};
|
|
95
|
+
};
|
|
96
|
+
}): SelfAuditReport;
|
|
97
|
+
private generateRecommendations;
|
|
98
|
+
/**
|
|
99
|
+
* Compute sensitivity between two pattern selection results.
|
|
100
|
+
* Uses 1 - cosine similarity of the confidence distributions.
|
|
101
|
+
*/
|
|
102
|
+
private computePatternSensitivity;
|
|
103
|
+
/**
|
|
104
|
+
* Deterministic text perturbation given a strategy and optional RNG.
|
|
105
|
+
* - noise: insert random words between existing words
|
|
106
|
+
* - swap: swap two adjacent words
|
|
107
|
+
* - truncate: remove last ~20% of text
|
|
108
|
+
* - prefix: add misleading prefix
|
|
109
|
+
*/
|
|
110
|
+
static perturbText(text: string, strategy: PerturbStrategy, rng?: () => number): string;
|
|
111
|
+
}
|
|
112
|
+
export {};
|
|
113
|
+
//# sourceMappingURL=graph-meta-adversarial.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-meta-adversarial.d.ts","sourceRoot":"","sources":["../../src/runtime/graph-meta-adversarial.ts"],"names":[],"mappings":"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"}
|