@theihtisham/agent-shadow-brain 3.0.0 → 4.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.
- package/README.md +443 -602
- package/dist/brain/adversarial-defense.d.ts +57 -0
- package/dist/brain/adversarial-defense.d.ts.map +1 -0
- package/dist/brain/adversarial-defense.js +303 -0
- package/dist/brain/adversarial-defense.js.map +1 -0
- package/dist/brain/cognitive-load.d.ts +27 -0
- package/dist/brain/cognitive-load.d.ts.map +1 -0
- package/dist/brain/cognitive-load.js +304 -0
- package/dist/brain/cognitive-load.js.map +1 -0
- package/dist/brain/cross-agent-protocol.d.ts +48 -0
- package/dist/brain/cross-agent-protocol.d.ts.map +1 -0
- package/dist/brain/cross-agent-protocol.js +306 -0
- package/dist/brain/cross-agent-protocol.js.map +1 -0
- package/dist/brain/influence-map.d.ts +31 -0
- package/dist/brain/influence-map.d.ts.map +1 -0
- package/dist/brain/influence-map.js +375 -0
- package/dist/brain/influence-map.js.map +1 -0
- package/dist/brain/knowledge-graph.d.ts +56 -0
- package/dist/brain/knowledge-graph.d.ts.map +1 -0
- package/dist/brain/knowledge-graph.js +427 -0
- package/dist/brain/knowledge-graph.js.map +1 -0
- package/dist/brain/learning-engine.d.ts +11 -0
- package/dist/brain/learning-engine.d.ts.map +1 -1
- package/dist/brain/learning-engine.js +44 -1
- package/dist/brain/learning-engine.js.map +1 -1
- package/dist/brain/neural-mesh.d.ts +9 -1
- package/dist/brain/neural-mesh.d.ts.map +1 -1
- package/dist/brain/neural-mesh.js +75 -16
- package/dist/brain/neural-mesh.js.map +1 -1
- package/dist/brain/orchestrator.d.ts +24 -2
- package/dist/brain/orchestrator.d.ts.map +1 -1
- package/dist/brain/orchestrator.js +208 -4
- package/dist/brain/orchestrator.js.map +1 -1
- package/dist/brain/pattern-memory.d.ts +8 -3
- package/dist/brain/pattern-memory.d.ts.map +1 -1
- package/dist/brain/pattern-memory.js +71 -3
- package/dist/brain/pattern-memory.js.map +1 -1
- package/dist/brain/predictive-engine.d.ts +45 -0
- package/dist/brain/predictive-engine.d.ts.map +1 -0
- package/dist/brain/predictive-engine.js +238 -0
- package/dist/brain/predictive-engine.js.map +1 -0
- package/dist/brain/security-audit.d.ts +20 -0
- package/dist/brain/security-audit.d.ts.map +1 -0
- package/dist/brain/security-audit.js +340 -0
- package/dist/brain/security-audit.js.map +1 -0
- package/dist/brain/self-evolution.d.ts +53 -0
- package/dist/brain/self-evolution.d.ts.map +1 -0
- package/dist/brain/self-evolution.js +278 -0
- package/dist/brain/self-evolution.js.map +1 -0
- package/dist/brain/sssp-router.d.ts +58 -0
- package/dist/brain/sssp-router.d.ts.map +1 -0
- package/dist/brain/sssp-router.js +295 -0
- package/dist/brain/sssp-router.js.map +1 -0
- package/dist/brain/swarm-intelligence.d.ts +48 -0
- package/dist/brain/swarm-intelligence.d.ts.map +1 -0
- package/dist/brain/swarm-intelligence.js +215 -0
- package/dist/brain/swarm-intelligence.js.map +1 -0
- package/dist/brain/turbo-memory.d.ts +56 -0
- package/dist/brain/turbo-memory.d.ts.map +1 -0
- package/dist/brain/turbo-memory.js +388 -0
- package/dist/brain/turbo-memory.js.map +1 -0
- package/dist/cli.js +339 -3
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +9 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -1
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +272 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/ui/dashboard.d.ts.map +1 -1
- package/dist/ui/dashboard.js +20 -3
- package/dist/ui/dashboard.js.map +1 -1
- package/package.json +16 -7
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
// src/brain/cognitive-load.ts — Cognitive complexity analysis
|
|
2
|
+
// v3.1.0 — Measures function cognitive complexity: nesting, boolean ops, control flow
|
|
3
|
+
import * as fs from 'fs';
|
|
4
|
+
import * as path from 'path';
|
|
5
|
+
const IGNORE_DIRS = new Set([
|
|
6
|
+
'node_modules', '.git', 'dist', 'build', 'out', 'coverage', '.next', '.nuxt', '.cache',
|
|
7
|
+
]);
|
|
8
|
+
const CODE_EXTENSIONS = new Set(['.ts', '.tsx', '.js', '.jsx', '.py', '.rs', '.go', '.java']);
|
|
9
|
+
export class CognitiveLoadAnalyzer {
|
|
10
|
+
constructor(projectDir) {
|
|
11
|
+
this.projectDir = projectDir;
|
|
12
|
+
}
|
|
13
|
+
async analyzeProject(maxFiles = 300) {
|
|
14
|
+
const files = this.collectFiles(this.projectDir, maxFiles);
|
|
15
|
+
const insights = [];
|
|
16
|
+
const allFunctions = [];
|
|
17
|
+
for (const filePath of files) {
|
|
18
|
+
const functions = this.analyzeFile(filePath);
|
|
19
|
+
allFunctions.push(...functions);
|
|
20
|
+
}
|
|
21
|
+
// Sort by cognitive score descending
|
|
22
|
+
allFunctions.sort((a, b) => b.cognitiveScore - a.cognitiveScore);
|
|
23
|
+
// Generate insights for functions exceeding thresholds
|
|
24
|
+
for (const fn of allFunctions) {
|
|
25
|
+
if (fn.cognitiveScore > 15) {
|
|
26
|
+
insights.push(this.functionToInsight(fn));
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
// Summary insight for high-complexity hotspots
|
|
30
|
+
const highCount = allFunctions.filter(f => f.cognitiveScore > 25).length;
|
|
31
|
+
const mediumCount = allFunctions.filter(f => f.cognitiveScore > 15 && f.cognitiveScore <= 25).length;
|
|
32
|
+
const totalFunctions = allFunctions.length;
|
|
33
|
+
if ((highCount + mediumCount) > 0 && totalFunctions > 5) {
|
|
34
|
+
insights.push({
|
|
35
|
+
type: 'complexity',
|
|
36
|
+
priority: highCount > 5 ? 'high' : 'medium',
|
|
37
|
+
title: `[complexity] ${highCount + mediumCount} functions with high cognitive complexity`,
|
|
38
|
+
content: `Cognitive complexity analysis found ${highCount} high (>25) and ${mediumCount} medium (>15) complexity functions.\n` +
|
|
39
|
+
` Total functions analyzed: ${totalFunctions}\n` +
|
|
40
|
+
` High complexity makes code harder to understand, test, and maintain.\n` +
|
|
41
|
+
` Consider breaking complex functions into smaller, well-named helpers.\n` +
|
|
42
|
+
` Top offenders:\n` +
|
|
43
|
+
allFunctions.slice(0, 5).map(f => ` - ${f.name} in ${f.file}:${f.startLine} (score: ${f.cognitiveScore})`).join('\n'),
|
|
44
|
+
files: allFunctions.filter(f => f.cognitiveScore > 15).map(f => f.file).slice(0, 20),
|
|
45
|
+
timestamp: new Date(),
|
|
46
|
+
confidence: 0.8,
|
|
47
|
+
metadata: {
|
|
48
|
+
totalFunctions,
|
|
49
|
+
highComplexityCount: highCount,
|
|
50
|
+
mediumComplexityCount: mediumCount,
|
|
51
|
+
avgComplexity: totalFunctions > 0
|
|
52
|
+
? Math.round(allFunctions.reduce((s, f) => s + f.cognitiveScore, 0) / totalFunctions * 10) / 10
|
|
53
|
+
: 0,
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
return insights;
|
|
58
|
+
}
|
|
59
|
+
analyzeFile(filePath) {
|
|
60
|
+
let content;
|
|
61
|
+
try {
|
|
62
|
+
content = fs.readFileSync(filePath, 'utf-8');
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
return [];
|
|
66
|
+
}
|
|
67
|
+
const relPath = path.relative(this.projectDir, filePath);
|
|
68
|
+
const ext = path.extname(filePath);
|
|
69
|
+
const functions = [];
|
|
70
|
+
// Extract function boundaries using regex
|
|
71
|
+
const functionPattern = this.getFunctionPattern(ext);
|
|
72
|
+
let match;
|
|
73
|
+
functionPattern.lastIndex = 0;
|
|
74
|
+
while ((match = functionPattern.exec(content)) !== null) {
|
|
75
|
+
const name = match[1] || match[2] || '<anonymous>';
|
|
76
|
+
const startLine = content.substring(0, match.index).split('\n').length;
|
|
77
|
+
// Find the function body by matching braces
|
|
78
|
+
const bodyResult = this.extractFunctionBody(content, match.index);
|
|
79
|
+
if (!bodyResult)
|
|
80
|
+
continue;
|
|
81
|
+
const { body, endIndex } = bodyResult;
|
|
82
|
+
const endLine = content.substring(0, endIndex).split('\n').length;
|
|
83
|
+
// Calculate cognitive complexity
|
|
84
|
+
const score = this.calculateCognitiveComplexity(body, name);
|
|
85
|
+
functions.push({
|
|
86
|
+
name,
|
|
87
|
+
file: relPath,
|
|
88
|
+
startLine,
|
|
89
|
+
endLine,
|
|
90
|
+
cognitiveScore: score.total,
|
|
91
|
+
nestingContributions: score.nesting,
|
|
92
|
+
booleanContributions: score.booleanOps,
|
|
93
|
+
controlFlowContributions: score.controlFlow,
|
|
94
|
+
recursionContributions: score.recursion,
|
|
95
|
+
linesOfCode: body.split('\n').length,
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
return functions;
|
|
99
|
+
}
|
|
100
|
+
getFunctionPattern(ext) {
|
|
101
|
+
if (ext === '.py') {
|
|
102
|
+
return /def\s+(\w+)\s*\(/g;
|
|
103
|
+
}
|
|
104
|
+
if (ext === '.rs') {
|
|
105
|
+
return /(?:fn|pub\s+fn)\s+(\w+)\s*[<(]/g;
|
|
106
|
+
}
|
|
107
|
+
if (ext === '.go') {
|
|
108
|
+
return /func\s+(?:\([^)]*\)\s+)?(\w+)\s*\(/g;
|
|
109
|
+
}
|
|
110
|
+
if (ext === '.java') {
|
|
111
|
+
return /(?:public|private|protected|static)\s+\w+(?:<[^>]+>)?\s+(\w+)\s*\(/g;
|
|
112
|
+
}
|
|
113
|
+
// TypeScript / JavaScript
|
|
114
|
+
return /(?:function\s+(\w+)|(?:const|let|var)\s+(\w+)\s*=\s*(?:async\s+)?(?:\([^)]*\)|[^=])\s*=>)/g;
|
|
115
|
+
}
|
|
116
|
+
extractFunctionBody(content, startIndex) {
|
|
117
|
+
// Find the opening brace
|
|
118
|
+
let braceIndex = content.indexOf('{', startIndex);
|
|
119
|
+
if (braceIndex === -1)
|
|
120
|
+
return null;
|
|
121
|
+
// For arrow functions without braces, find the line end
|
|
122
|
+
const arrowMatch = content.substring(startIndex, braceIndex).match(/=>\s*[^{]/);
|
|
123
|
+
if (arrowMatch) {
|
|
124
|
+
// Arrow function with expression body (no braces)
|
|
125
|
+
const lineEnd = content.indexOf('\n', startIndex);
|
|
126
|
+
const body = content.substring(startIndex, lineEnd !== -1 ? lineEnd : content.length);
|
|
127
|
+
return { body, endIndex: lineEnd !== -1 ? lineEnd : content.length };
|
|
128
|
+
}
|
|
129
|
+
// Match braces to find the end of the function
|
|
130
|
+
let depth = 0;
|
|
131
|
+
let i = braceIndex;
|
|
132
|
+
while (i < content.length) {
|
|
133
|
+
if (content[i] === '{')
|
|
134
|
+
depth++;
|
|
135
|
+
else if (content[i] === '}') {
|
|
136
|
+
depth--;
|
|
137
|
+
if (depth === 0) {
|
|
138
|
+
const body = content.substring(startIndex, i + 1);
|
|
139
|
+
return { body, endIndex: i + 1 };
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
// Skip strings
|
|
143
|
+
if (content[i] === '"' || content[i] === "'" || content[i] === '`') {
|
|
144
|
+
i = this.skipString(content, i);
|
|
145
|
+
continue;
|
|
146
|
+
}
|
|
147
|
+
i++;
|
|
148
|
+
}
|
|
149
|
+
return null;
|
|
150
|
+
}
|
|
151
|
+
skipString(content, start) {
|
|
152
|
+
const quote = content[start];
|
|
153
|
+
let i = start + 1;
|
|
154
|
+
while (i < content.length) {
|
|
155
|
+
if (content[i] === '\\') {
|
|
156
|
+
i += 2;
|
|
157
|
+
continue;
|
|
158
|
+
}
|
|
159
|
+
if (content[i] === quote)
|
|
160
|
+
return i + 1;
|
|
161
|
+
if (quote !== '`' && content[i] === '\n')
|
|
162
|
+
return i;
|
|
163
|
+
i++;
|
|
164
|
+
}
|
|
165
|
+
return i;
|
|
166
|
+
}
|
|
167
|
+
calculateCognitiveComplexity(body, functionName) {
|
|
168
|
+
let nesting = 0;
|
|
169
|
+
let booleanOps = 0;
|
|
170
|
+
let controlFlow = 0;
|
|
171
|
+
let recursion = 0;
|
|
172
|
+
// Remove string literals and comments to avoid false positives
|
|
173
|
+
const cleaned = this.removeStringsAndComments(body);
|
|
174
|
+
const lines = cleaned.split('\n');
|
|
175
|
+
for (let i = 0; i < lines.length; i++) {
|
|
176
|
+
const line = lines[i].trim();
|
|
177
|
+
if (line === '' || line.startsWith('//') || line.startsWith('/*') || line.startsWith('*'))
|
|
178
|
+
continue;
|
|
179
|
+
// Nesting depth: count open braces minus close braces
|
|
180
|
+
const opens = (line.match(/\{/g) || []).length;
|
|
181
|
+
const closes = (line.match(/\}/g) || []).length;
|
|
182
|
+
const prevNesting = nesting;
|
|
183
|
+
// Count nesting contributions (only for lines that open blocks)
|
|
184
|
+
if (opens > closes) {
|
|
185
|
+
nesting += (opens - closes);
|
|
186
|
+
}
|
|
187
|
+
// Nesting complexity: +1 per nesting level for control flow
|
|
188
|
+
if (/\b(if|else|for|while|switch|try|catch|finally)\b/.test(line)) {
|
|
189
|
+
controlFlow += Math.max(0, nesting - 1);
|
|
190
|
+
}
|
|
191
|
+
// else / else if: +1 each
|
|
192
|
+
if (/\belse\s+(if\s*)?[\{(]/.test(line) || line === 'else {') {
|
|
193
|
+
controlFlow += 1;
|
|
194
|
+
}
|
|
195
|
+
// catch: +1
|
|
196
|
+
if (/\bcatch\s*\(/.test(line)) {
|
|
197
|
+
controlFlow += 1;
|
|
198
|
+
}
|
|
199
|
+
// break / continue in loops: +1
|
|
200
|
+
if (/\b(break|continue)\b/.test(line) && !line.startsWith('//')) {
|
|
201
|
+
controlFlow += 1;
|
|
202
|
+
}
|
|
203
|
+
// Boolean operators: && and || each +1
|
|
204
|
+
const andMatches = line.match(/&&/g);
|
|
205
|
+
const orMatches = line.match(/\|\|/g);
|
|
206
|
+
booleanOps += (andMatches ? andMatches.length : 0) + (orMatches ? orMatches.length : 0);
|
|
207
|
+
// Recursive calls: +2
|
|
208
|
+
const escapedName = functionName.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
209
|
+
if (functionName !== '<anonymous>' && new RegExp(`\\b${escapedName}\\s*\\(`).test(line)) {
|
|
210
|
+
// Make sure it's not just the function declaration
|
|
211
|
+
if (!line.includes(`function ${functionName}`) && !line.includes(`${functionName} =`)) {
|
|
212
|
+
recursion += 2;
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
return {
|
|
217
|
+
total: nesting + booleanOps + controlFlow + recursion,
|
|
218
|
+
nesting,
|
|
219
|
+
booleanOps,
|
|
220
|
+
controlFlow,
|
|
221
|
+
recursion,
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
removeStringsAndComments(code) {
|
|
225
|
+
// Remove single-line comments
|
|
226
|
+
let result = code.replace(/\/\/.*$/gm, '');
|
|
227
|
+
// Remove multi-line comments
|
|
228
|
+
result = result.replace(/\/\*[\s\S]*?\*\//g, '');
|
|
229
|
+
// Remove double-quoted strings
|
|
230
|
+
result = result.replace(/"(?:[^"\\]|\\.)*"/g, '""');
|
|
231
|
+
// Remove single-quoted strings
|
|
232
|
+
result = result.replace(/'(?:[^'\\]|\\.)*'/g, "''");
|
|
233
|
+
// Remove template literals
|
|
234
|
+
result = result.replace(/`(?:[^`\\]|\\.)*`/g, '``');
|
|
235
|
+
return result;
|
|
236
|
+
}
|
|
237
|
+
functionToInsight(fn) {
|
|
238
|
+
const priority = fn.cognitiveScore > 25 ? 'high' : 'medium';
|
|
239
|
+
const severity = fn.cognitiveScore > 25 ? 'HIGH' : 'MEDIUM';
|
|
240
|
+
return {
|
|
241
|
+
type: 'complexity',
|
|
242
|
+
priority,
|
|
243
|
+
title: `[complexity] ${severity} cognitive load in ${fn.name} (${fn.file}:${fn.startLine})`,
|
|
244
|
+
content: `Function \`${fn.name}\` in ${fn.file}:${fn.startLine}-${fn.endLine} has cognitive complexity of ${fn.cognitiveScore}.\n` +
|
|
245
|
+
` Score breakdown:\n` +
|
|
246
|
+
` - Nesting depth: ${fn.nestingContributions}\n` +
|
|
247
|
+
` - Boolean operators: ${fn.booleanContributions}\n` +
|
|
248
|
+
` - Control flow (else/catch/break): ${fn.controlFlowContributions}\n` +
|
|
249
|
+
` - Recursion: ${fn.recursionContributions}\n` +
|
|
250
|
+
` Lines of code: ${fn.linesOfCode}\n` +
|
|
251
|
+
` Thresholds: medium >15, high >25\n` +
|
|
252
|
+
` Suggestion: Break into smaller functions with single responsibilities. ` +
|
|
253
|
+
`Extract complex conditions into well-named variables.`,
|
|
254
|
+
files: [fn.file],
|
|
255
|
+
timestamp: new Date(),
|
|
256
|
+
confidence: 0.75,
|
|
257
|
+
metadata: {
|
|
258
|
+
functionName: fn.name,
|
|
259
|
+
cognitiveScore: fn.cognitiveScore,
|
|
260
|
+
startLine: fn.startLine,
|
|
261
|
+
endLine: fn.endLine,
|
|
262
|
+
linesOfCode: fn.linesOfCode,
|
|
263
|
+
breakdown: {
|
|
264
|
+
nesting: fn.nestingContributions,
|
|
265
|
+
booleanOps: fn.booleanContributions,
|
|
266
|
+
controlFlow: fn.controlFlowContributions,
|
|
267
|
+
recursion: fn.recursionContributions,
|
|
268
|
+
},
|
|
269
|
+
},
|
|
270
|
+
};
|
|
271
|
+
}
|
|
272
|
+
collectFiles(dir, maxFiles) {
|
|
273
|
+
const results = [];
|
|
274
|
+
const walk = (currentDir, depth) => {
|
|
275
|
+
if (results.length >= maxFiles || depth > 10)
|
|
276
|
+
return;
|
|
277
|
+
let entries;
|
|
278
|
+
try {
|
|
279
|
+
entries = fs.readdirSync(currentDir, { withFileTypes: true });
|
|
280
|
+
}
|
|
281
|
+
catch {
|
|
282
|
+
return;
|
|
283
|
+
}
|
|
284
|
+
for (const entry of entries) {
|
|
285
|
+
if (results.length >= maxFiles)
|
|
286
|
+
return;
|
|
287
|
+
if (entry.name.startsWith('.'))
|
|
288
|
+
continue;
|
|
289
|
+
const fullPath = path.join(currentDir, entry.name);
|
|
290
|
+
if (entry.isDirectory()) {
|
|
291
|
+
if (IGNORE_DIRS.has(entry.name))
|
|
292
|
+
continue;
|
|
293
|
+
walk(fullPath, depth + 1);
|
|
294
|
+
}
|
|
295
|
+
else if (entry.isFile() && CODE_EXTENSIONS.has(path.extname(entry.name))) {
|
|
296
|
+
results.push(fullPath);
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
};
|
|
300
|
+
walk(dir, 0);
|
|
301
|
+
return results;
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
//# sourceMappingURL=cognitive-load.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cognitive-load.js","sourceRoot":"","sources":["../../src/brain/cognitive-load.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { AgentTool, CAIPMessage, CAIPHandshake, CAIPChannel, AgentBoostPacket, CrossAgentBus } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Cross-Agent Intelligence Protocol — the hub that makes all coding agents talk to each other.
|
|
4
|
+
*
|
|
5
|
+
* Transport:
|
|
6
|
+
* Primary: WebSocket on port 7344 (CAIP bus)
|
|
7
|
+
* Fallback: Shared filesystem at ~/.shadow-brain-caip/ (polling every 2s)
|
|
8
|
+
*
|
|
9
|
+
* Protocol:
|
|
10
|
+
* 1. Handshake — each agent sends identity, version, capabilities
|
|
11
|
+
* 2. Channels — broadcast (all), pair (two agents), team (subset)
|
|
12
|
+
* 3. Boost Packet — high-value insight shared to all connected agents
|
|
13
|
+
* 4. Deduplication — message hash ring prevents infinite loops
|
|
14
|
+
*/
|
|
15
|
+
export declare class CrossAgentProtocol {
|
|
16
|
+
private wss;
|
|
17
|
+
private clients;
|
|
18
|
+
private bus;
|
|
19
|
+
private messageHashes;
|
|
20
|
+
private boostHandlers;
|
|
21
|
+
private filePollTimer;
|
|
22
|
+
private running;
|
|
23
|
+
constructor();
|
|
24
|
+
/** Start the CAIP WebSocket server + filesystem fallback */
|
|
25
|
+
start(): Promise<void>;
|
|
26
|
+
/** Stop the CAIP server */
|
|
27
|
+
stop(): Promise<void>;
|
|
28
|
+
/** Register an agent via handshake */
|
|
29
|
+
connect(handshake: CAIPHandshake): Promise<CAIPChannel>;
|
|
30
|
+
/** Broadcast a message to all connected agents */
|
|
31
|
+
broadcast(from: AgentTool, payload: unknown, priority?: CAIPMessage['priority']): Promise<void>;
|
|
32
|
+
/** Send a boost packet — high-value insights shared across agents */
|
|
33
|
+
sendBoostPacket(packet: AgentBoostPacket): Promise<void>;
|
|
34
|
+
/** Send targeted message to specific agent */
|
|
35
|
+
sendDirect(from: AgentTool, to: AgentTool, payload: unknown): Promise<void>;
|
|
36
|
+
/** Subscribe to boost packets from a specific agent */
|
|
37
|
+
subscribeToBoosts(agent: AgentTool, handler: (packet: AgentBoostPacket) => void): void;
|
|
38
|
+
/** Get all connected agents */
|
|
39
|
+
getConnectedAgents(): AgentTool[];
|
|
40
|
+
/** Get bus statistics */
|
|
41
|
+
getBusStats(): CrossAgentBus;
|
|
42
|
+
private handleMessage;
|
|
43
|
+
private deliverMessage;
|
|
44
|
+
private writeFileMessage;
|
|
45
|
+
private startFilePolling;
|
|
46
|
+
private hashMessage;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=cross-agent-protocol.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cross-agent-protocol.d.ts","sourceRoot":"","sources":["../../src/brain/cross-agent-protocol.ts"],"names":[],"mappings":"AASA,OAAO,EACL,SAAS,EACT,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,gBAAgB,EAAE,aAAa,EACzE,MAAM,aAAa,CAAC;AAOrB;;;;;;;;;;;;GAYG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,GAAG,CAAgC;IAC3C,OAAO,CAAC,OAAO,CAAwC;IACvD,OAAO,CAAC,GAAG,CAAgB;IAC3B,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,aAAa,CAAwE;IAC7F,OAAO,CAAC,aAAa,CAA+B;IACpD,OAAO,CAAC,OAAO,CAAS;;IAwBxB,4DAA4D;IACtD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAuC5B,2BAA2B;IACrB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAa3B,sCAAsC;IAChC,OAAO,CAAC,SAAS,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC;IAmC7D,kDAAkD;IAC5C,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,GAAE,WAAW,CAAC,UAAU,CAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAc/G,qEAAqE;IAC/D,eAAe,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB9D,8CAA8C;IACxC,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAajF,uDAAuD;IACvD,iBAAiB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,GAAG,IAAI;IAOtF,+BAA+B;IAC/B,kBAAkB,IAAI,SAAS,EAAE;IAIjC,yBAAyB;IACzB,WAAW,IAAI,aAAa;IAM5B,OAAO,CAAC,aAAa;IAwBrB,OAAO,CAAC,cAAc;IA2BtB,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,gBAAgB;IAgCxB,OAAO,CAAC,WAAW;CAIpB"}
|