network-ai 5.10.2 → 5.12.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/INTEGRATION_GUIDE.md +2 -2
- package/QUICKSTART.md +10 -0
- package/README.md +32 -3
- package/SKILL.md +3 -3
- package/dist/esm/adapters/a2a-adapter.js +235 -0
- package/dist/esm/adapters/a2a-adapter.js.map +1 -0
- package/dist/esm/adapters/adapter-registry.js +613 -0
- package/dist/esm/adapters/adapter-registry.js.map +1 -0
- package/dist/esm/adapters/agno-adapter.js +140 -0
- package/dist/esm/adapters/agno-adapter.js.map +1 -0
- package/dist/esm/adapters/anthropic-computer-use-adapter.js +180 -0
- package/dist/esm/adapters/anthropic-computer-use-adapter.js.map +1 -0
- package/dist/esm/adapters/aps-adapter.js +289 -0
- package/dist/esm/adapters/aps-adapter.js.map +1 -0
- package/dist/esm/adapters/autogen-adapter.js +141 -0
- package/dist/esm/adapters/autogen-adapter.js.map +1 -0
- package/dist/esm/adapters/base-adapter.js +104 -0
- package/dist/esm/adapters/base-adapter.js.map +1 -0
- package/dist/esm/adapters/browser-agent-adapter.js +219 -0
- package/dist/esm/adapters/browser-agent-adapter.js.map +1 -0
- package/dist/esm/adapters/codex-adapter.js +318 -0
- package/dist/esm/adapters/codex-adapter.js.map +1 -0
- package/dist/esm/adapters/copilot-adapter.js +132 -0
- package/dist/esm/adapters/copilot-adapter.js.map +1 -0
- package/dist/esm/adapters/crewai-adapter.js +148 -0
- package/dist/esm/adapters/crewai-adapter.js.map +1 -0
- package/dist/esm/adapters/custom-adapter.js +142 -0
- package/dist/esm/adapters/custom-adapter.js.map +1 -0
- package/dist/esm/adapters/custom-streaming-adapter.js +181 -0
- package/dist/esm/adapters/custom-streaming-adapter.js.map +1 -0
- package/dist/esm/adapters/dspy-adapter.js +127 -0
- package/dist/esm/adapters/dspy-adapter.js.map +1 -0
- package/dist/esm/adapters/haystack-adapter.js +149 -0
- package/dist/esm/adapters/haystack-adapter.js.map +1 -0
- package/dist/esm/adapters/hermes-adapter.js +217 -0
- package/dist/esm/adapters/hermes-adapter.js.map +1 -0
- package/dist/esm/adapters/index.js +109 -0
- package/dist/esm/adapters/index.js.map +1 -0
- package/dist/esm/adapters/langchain-adapter.js +134 -0
- package/dist/esm/adapters/langchain-adapter.js.map +1 -0
- package/dist/esm/adapters/langchain-streaming-adapter.js +161 -0
- package/dist/esm/adapters/langchain-streaming-adapter.js.map +1 -0
- package/dist/esm/adapters/langgraph-adapter.js +119 -0
- package/dist/esm/adapters/langgraph-adapter.js.map +1 -0
- package/dist/esm/adapters/llamaindex-adapter.js +135 -0
- package/dist/esm/adapters/llamaindex-adapter.js.map +1 -0
- package/dist/esm/adapters/mcp-adapter.js +200 -0
- package/dist/esm/adapters/mcp-adapter.js.map +1 -0
- package/dist/esm/adapters/minimax-adapter.js +233 -0
- package/dist/esm/adapters/minimax-adapter.js.map +1 -0
- package/dist/esm/adapters/nemoclaw-adapter.js +465 -0
- package/dist/esm/adapters/nemoclaw-adapter.js.map +1 -0
- package/dist/esm/adapters/openai-agents-adapter.js +118 -0
- package/dist/esm/adapters/openai-agents-adapter.js.map +1 -0
- package/dist/esm/adapters/openai-assistants-adapter.js +130 -0
- package/dist/esm/adapters/openai-assistants-adapter.js.map +1 -0
- package/dist/esm/adapters/openclaw-adapter.js +107 -0
- package/dist/esm/adapters/openclaw-adapter.js.map +1 -0
- package/dist/esm/adapters/orchestrator-adapter.js +218 -0
- package/dist/esm/adapters/orchestrator-adapter.js.map +1 -0
- package/dist/esm/adapters/pydantic-ai-adapter.js +163 -0
- package/dist/esm/adapters/pydantic-ai-adapter.js.map +1 -0
- package/dist/esm/adapters/rlm-adapter.js +167 -0
- package/dist/esm/adapters/rlm-adapter.js.map +1 -0
- package/dist/esm/adapters/semantic-kernel-adapter.js +123 -0
- package/dist/esm/adapters/semantic-kernel-adapter.js.map +1 -0
- package/dist/esm/adapters/streaming-base-adapter.js +74 -0
- package/dist/esm/adapters/streaming-base-adapter.js.map +1 -0
- package/dist/esm/adapters/vertex-ai-adapter.js +166 -0
- package/dist/esm/adapters/vertex-ai-adapter.js.map +1 -0
- package/dist/esm/demo-control-plane.js +147 -0
- package/dist/esm/demo-control-plane.js.map +1 -0
- package/dist/esm/demo-worktree-dashboard.js +131 -0
- package/dist/esm/demo-worktree-dashboard.js.map +1 -0
- package/dist/esm/examples/01-hello-swarm.js +165 -0
- package/dist/esm/examples/01-hello-swarm.js.map +1 -0
- package/dist/esm/examples/02-fsm-pipeline.js +189 -0
- package/dist/esm/examples/02-fsm-pipeline.js.map +1 -0
- package/dist/esm/examples/03-parallel-agents.js +192 -0
- package/dist/esm/examples/03-parallel-agents.js.map +1 -0
- package/dist/esm/examples/05-code-review-swarm.js +1177 -0
- package/dist/esm/examples/05-code-review-swarm.js.map +1 -0
- package/dist/esm/examples/06-ai-pipeline-demo.js +263 -0
- package/dist/esm/examples/06-ai-pipeline-demo.js.map +1 -0
- package/dist/esm/examples/07-full-showcase.js +946 -0
- package/dist/esm/examples/07-full-showcase.js.map +1 -0
- package/dist/esm/examples/08-control-plane-stress-demo.js +186 -0
- package/dist/esm/examples/08-control-plane-stress-demo.js.map +1 -0
- package/dist/esm/examples/09-real-langchain.js +231 -0
- package/dist/esm/examples/09-real-langchain.js.map +1 -0
- package/dist/esm/examples/10-nemoclaw-sandbox-swarm.js +270 -0
- package/dist/esm/examples/10-nemoclaw-sandbox-swarm.js.map +1 -0
- package/dist/esm/examples/demo-runner.js +119 -0
- package/dist/esm/examples/demo-runner.js.map +1 -0
- package/dist/esm/index.js +1352 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/lib/adapter-hooks.js +216 -0
- package/dist/esm/lib/adapter-hooks.js.map +1 -0
- package/dist/esm/lib/adapter-test-harness.js +118 -0
- package/dist/esm/lib/adapter-test-harness.js.map +1 -0
- package/dist/esm/lib/agent-conversation.js +155 -0
- package/dist/esm/lib/agent-conversation.js.map +1 -0
- package/dist/esm/lib/agent-debate.js +146 -0
- package/dist/esm/lib/agent-debate.js.map +1 -0
- package/dist/esm/lib/agent-memory.js +336 -0
- package/dist/esm/lib/agent-memory.js.map +1 -0
- package/dist/esm/lib/agent-runtime.js +818 -0
- package/dist/esm/lib/agent-runtime.js.map +1 -0
- package/dist/esm/lib/agent-vcr.js +218 -0
- package/dist/esm/lib/agent-vcr.js.map +1 -0
- package/dist/esm/lib/anomaly-detector.js +178 -0
- package/dist/esm/lib/anomaly-detector.js.map +1 -0
- package/dist/esm/lib/approval-inbox.js +385 -0
- package/dist/esm/lib/approval-inbox.js.map +1 -0
- package/dist/esm/lib/auth-guardian.js +692 -0
- package/dist/esm/lib/auth-guardian.js.map +1 -0
- package/dist/esm/lib/auth-validator.js +32 -0
- package/dist/esm/lib/auth-validator.js.map +1 -0
- package/dist/esm/lib/blackboard-backend-crdt.js +251 -0
- package/dist/esm/lib/blackboard-backend-crdt.js.map +1 -0
- package/dist/esm/lib/blackboard-backend-redis.js +244 -0
- package/dist/esm/lib/blackboard-backend-redis.js.map +1 -0
- package/dist/esm/lib/blackboard-backend.js +141 -0
- package/dist/esm/lib/blackboard-backend.js.map +1 -0
- package/dist/esm/lib/blackboard-validator.js +985 -0
- package/dist/esm/lib/blackboard-validator.js.map +1 -0
- package/dist/esm/lib/circuit-breaker.js +164 -0
- package/dist/esm/lib/circuit-breaker.js.map +1 -0
- package/dist/esm/lib/claim-verifier.js +173 -0
- package/dist/esm/lib/claim-verifier.js.map +1 -0
- package/dist/esm/lib/comparison-runner.js +138 -0
- package/dist/esm/lib/comparison-runner.js.map +1 -0
- package/dist/esm/lib/compliance-monitor.js +261 -0
- package/dist/esm/lib/compliance-monitor.js.map +1 -0
- package/dist/esm/lib/confidence-filter.js +210 -0
- package/dist/esm/lib/confidence-filter.js.map +1 -0
- package/dist/esm/lib/config-watcher.js +215 -0
- package/dist/esm/lib/config-watcher.js.map +1 -0
- package/dist/esm/lib/consistency.js +274 -0
- package/dist/esm/lib/consistency.js.map +1 -0
- package/dist/esm/lib/console-ui.js +276 -0
- package/dist/esm/lib/console-ui.js.map +1 -0
- package/dist/esm/lib/context-throttler.js +171 -0
- package/dist/esm/lib/context-throttler.js.map +1 -0
- package/dist/esm/lib/control-plane.js +527 -0
- package/dist/esm/lib/control-plane.js.map +1 -0
- package/dist/esm/lib/cost-governor.js +128 -0
- package/dist/esm/lib/cost-governor.js.map +1 -0
- package/dist/esm/lib/cost-heatmap.js +161 -0
- package/dist/esm/lib/cost-heatmap.js.map +1 -0
- package/dist/esm/lib/coverage-gate.js +213 -0
- package/dist/esm/lib/coverage-gate.js.map +1 -0
- package/dist/esm/lib/coverage-reporter.js +177 -0
- package/dist/esm/lib/coverage-reporter.js.map +1 -0
- package/dist/esm/lib/crdt.js +141 -0
- package/dist/esm/lib/crdt.js.map +1 -0
- package/dist/esm/lib/dashboard-server.js +403 -0
- package/dist/esm/lib/dashboard-server.js.map +1 -0
- package/dist/esm/lib/dry-run.js +130 -0
- package/dist/esm/lib/dry-run.js.map +1 -0
- package/dist/esm/lib/env-manager.js +518 -0
- package/dist/esm/lib/env-manager.js.map +1 -0
- package/dist/esm/lib/errors.js +201 -0
- package/dist/esm/lib/errors.js.map +1 -0
- package/dist/esm/lib/event-bus.js +229 -0
- package/dist/esm/lib/event-bus.js.map +1 -0
- package/dist/esm/lib/explainability.js +102 -0
- package/dist/esm/lib/explainability.js.map +1 -0
- package/dist/esm/lib/fan-out.js +237 -0
- package/dist/esm/lib/fan-out.js.map +1 -0
- package/dist/esm/lib/federated-budget.js +322 -0
- package/dist/esm/lib/federated-budget.js.map +1 -0
- package/dist/esm/lib/fsm-journey.js +478 -0
- package/dist/esm/lib/fsm-journey.js.map +1 -0
- package/dist/esm/lib/goal-decomposer.js +698 -0
- package/dist/esm/lib/goal-decomposer.js.map +1 -0
- package/dist/esm/lib/goal-dsl.js +391 -0
- package/dist/esm/lib/goal-dsl.js.map +1 -0
- package/dist/esm/lib/job-queue.js +310 -0
- package/dist/esm/lib/job-queue.js.map +1 -0
- package/dist/esm/lib/landscape-agent.js +134 -0
- package/dist/esm/lib/landscape-agent.js.map +1 -0
- package/dist/esm/lib/learning-loop.js +181 -0
- package/dist/esm/lib/learning-loop.js.map +1 -0
- package/dist/esm/lib/lifecycle-hooks.js +148 -0
- package/dist/esm/lib/lifecycle-hooks.js.map +1 -0
- package/dist/esm/lib/locked-blackboard.js +1295 -0
- package/dist/esm/lib/locked-blackboard.js.map +1 -0
- package/dist/esm/lib/logger.js +150 -0
- package/dist/esm/lib/logger.js.map +1 -0
- package/dist/esm/lib/mcp-blackboard-tools.js +298 -0
- package/dist/esm/lib/mcp-blackboard-tools.js.map +1 -0
- package/dist/esm/lib/mcp-bridge.js +357 -0
- package/dist/esm/lib/mcp-bridge.js.map +1 -0
- package/dist/esm/lib/mcp-tool-consumer.js +287 -0
- package/dist/esm/lib/mcp-tool-consumer.js.map +1 -0
- package/dist/esm/lib/mcp-tools-control.js +392 -0
- package/dist/esm/lib/mcp-tools-control.js.map +1 -0
- package/dist/esm/lib/mcp-tools-extended.js +371 -0
- package/dist/esm/lib/mcp-tools-extended.js.map +1 -0
- package/dist/esm/lib/mcp-transport-http.js +528 -0
- package/dist/esm/lib/mcp-transport-http.js.map +1 -0
- package/dist/esm/lib/mcp-transport-sse.js +503 -0
- package/dist/esm/lib/mcp-transport-sse.js.map +1 -0
- package/dist/esm/lib/metrics.js +284 -0
- package/dist/esm/lib/metrics.js.map +1 -0
- package/dist/esm/lib/orchestrator-types.js +66 -0
- package/dist/esm/lib/orchestrator-types.js.map +1 -0
- package/dist/esm/lib/otel-bridge.js +167 -0
- package/dist/esm/lib/otel-bridge.js.map +1 -0
- package/dist/esm/lib/partition-planner.js +246 -0
- package/dist/esm/lib/partition-planner.js.map +1 -0
- package/dist/esm/lib/phase-pipeline.js +367 -0
- package/dist/esm/lib/phase-pipeline.js.map +1 -0
- package/dist/esm/lib/playground.js +224 -0
- package/dist/esm/lib/playground.js.map +1 -0
- package/dist/esm/lib/qa-orchestrator.js +296 -0
- package/dist/esm/lib/qa-orchestrator.js.map +1 -0
- package/dist/esm/lib/quadtree.js +259 -0
- package/dist/esm/lib/quadtree.js.map +1 -0
- package/dist/esm/lib/route-classifier.js +217 -0
- package/dist/esm/lib/route-classifier.js.map +1 -0
- package/dist/esm/lib/semantic-search.js +235 -0
- package/dist/esm/lib/semantic-search.js.map +1 -0
- package/dist/esm/lib/shared-blackboard.js +249 -0
- package/dist/esm/lib/shared-blackboard.js.map +1 -0
- package/dist/esm/lib/skill-composer.js +190 -0
- package/dist/esm/lib/skill-composer.js.map +1 -0
- package/dist/esm/lib/speculative-executor.js +107 -0
- package/dist/esm/lib/speculative-executor.js.map +1 -0
- package/dist/esm/lib/strategy-agent.js +626 -0
- package/dist/esm/lib/strategy-agent.js.map +1 -0
- package/dist/esm/lib/swarm-transport.js +307 -0
- package/dist/esm/lib/swarm-transport.js.map +1 -0
- package/dist/esm/lib/swarm-utils.js +510 -0
- package/dist/esm/lib/swarm-utils.js.map +1 -0
- package/dist/esm/lib/task-decomposer.js +272 -0
- package/dist/esm/lib/task-decomposer.js.map +1 -0
- package/dist/esm/lib/telemetry-provider.js +207 -0
- package/dist/esm/lib/telemetry-provider.js.map +1 -0
- package/dist/esm/lib/timeline-scrubber.js +173 -0
- package/dist/esm/lib/timeline-scrubber.js.map +1 -0
- package/dist/esm/lib/topology.js +591 -0
- package/dist/esm/lib/topology.js.map +1 -0
- package/dist/esm/lib/transport-agent.js +366 -0
- package/dist/esm/lib/transport-agent.js.map +1 -0
- package/dist/esm/lib/work-tree-dashboard.js +583 -0
- package/dist/esm/lib/work-tree-dashboard.js.map +1 -0
- package/dist/esm/lib/work-tree-ui.js +333 -0
- package/dist/esm/lib/work-tree-ui.js.map +1 -0
- package/dist/esm/lib/work-tree.js +480 -0
- package/dist/esm/lib/work-tree.js.map +1 -0
- package/dist/esm/run.js +144 -0
- package/dist/esm/run.js.map +1 -0
- package/dist/esm/security.js +1122 -0
- package/dist/esm/security.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/mcp-transport-http.d.ts +203 -0
- package/dist/lib/mcp-transport-http.d.ts.map +1 -0
- package/dist/lib/mcp-transport-http.js +528 -0
- package/dist/lib/mcp-transport-http.js.map +1 -0
- package/dist/lib/phase-pipeline.d.ts +31 -0
- package/dist/lib/phase-pipeline.d.ts.map +1 -1
- package/dist/lib/phase-pipeline.js +93 -1
- package/dist/lib/phase-pipeline.js.map +1 -1
- package/dist/lib/semantic-search.d.ts +42 -6
- package/dist/lib/semantic-search.d.ts.map +1 -1
- package/dist/lib/semantic-search.js +87 -6
- package/dist/lib/semantic-search.js.map +1 -1
- package/package.json +24 -4
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Agno Adapter (formerly Phidata)
|
|
4
|
+
*
|
|
5
|
+
* Integrates Agno agents and teams with the SwarmOrchestrator.
|
|
6
|
+
* Agno is a lightweight framework for building multi-agent systems with
|
|
7
|
+
* tool use, memory, knowledge bases, and structured outputs.
|
|
8
|
+
*
|
|
9
|
+
* Usage:
|
|
10
|
+
* const adapter = new AgnoAdapter();
|
|
11
|
+
* adapter.registerAgent("researcher", myAgnoAgent);
|
|
12
|
+
* adapter.registerTeam("dev-team", myAgnoTeam);
|
|
13
|
+
* await registry.addAdapter(adapter);
|
|
14
|
+
*
|
|
15
|
+
* Then in the orchestrator:
|
|
16
|
+
* delegateTask({ targetAgent: "agno:researcher", ... })
|
|
17
|
+
*
|
|
18
|
+
* @module AgnoAdapter
|
|
19
|
+
* @version 1.0.0
|
|
20
|
+
*/
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
exports.AgnoAdapter = void 0;
|
|
23
|
+
const base_adapter_1 = require("./base-adapter");
|
|
24
|
+
class AgnoAdapter extends base_adapter_1.BaseAdapter {
|
|
25
|
+
name = 'agno';
|
|
26
|
+
version = '1.0.0';
|
|
27
|
+
entries = new Map();
|
|
28
|
+
get capabilities() {
|
|
29
|
+
return {
|
|
30
|
+
streaming: true,
|
|
31
|
+
parallel: true,
|
|
32
|
+
bidirectional: true,
|
|
33
|
+
discovery: true,
|
|
34
|
+
authentication: false,
|
|
35
|
+
statefulSessions: true,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
// --- Registration ---
|
|
39
|
+
registerAgent(agentId, agent, metadata) {
|
|
40
|
+
this.entries.set(agentId, { type: 'agent', agent });
|
|
41
|
+
this.registerLocalAgent({
|
|
42
|
+
id: agentId,
|
|
43
|
+
name: agent.name || agentId,
|
|
44
|
+
description: metadata?.description ?? `Agno Agent: ${agent.name || agentId}`,
|
|
45
|
+
capabilities: metadata?.capabilities ?? ['agent', 'tools', 'memory'],
|
|
46
|
+
status: 'available',
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
registerTeam(agentId, team, metadata) {
|
|
50
|
+
this.entries.set(agentId, { type: 'team', team });
|
|
51
|
+
const memberNames = team.members?.map((m) => m.name).join(', ') || 'unknown';
|
|
52
|
+
this.registerLocalAgent({
|
|
53
|
+
id: agentId,
|
|
54
|
+
name: team.name || agentId,
|
|
55
|
+
description: metadata?.description ?? `Agno Team: ${team.name || agentId} (members: ${memberNames})`,
|
|
56
|
+
capabilities: metadata?.capabilities ?? ['team', 'multi-agent', 'collaboration'],
|
|
57
|
+
status: 'available',
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
registerFunction(agentId, fn, metadata) {
|
|
61
|
+
this.entries.set(agentId, { type: 'function', fn });
|
|
62
|
+
this.registerLocalAgent({
|
|
63
|
+
id: agentId,
|
|
64
|
+
name: agentId,
|
|
65
|
+
description: metadata?.description ?? `Agno Function: ${agentId}`,
|
|
66
|
+
capabilities: metadata?.capabilities ?? ['function'],
|
|
67
|
+
status: 'available',
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
// --- Execution ---
|
|
71
|
+
async executeAgent(agentId, payload, context) {
|
|
72
|
+
this.ensureReady();
|
|
73
|
+
const entry = this.entries.get(agentId);
|
|
74
|
+
if (!entry) {
|
|
75
|
+
return this.errorResult('AGENT_NOT_FOUND', `Agno entry "${agentId}" is not registered`, false);
|
|
76
|
+
}
|
|
77
|
+
const message = this.buildMessage(payload);
|
|
78
|
+
const startTime = Date.now();
|
|
79
|
+
try {
|
|
80
|
+
switch (entry.type) {
|
|
81
|
+
case 'agent':
|
|
82
|
+
return await this.executeAgnoAgent(entry.agent, message, payload, startTime);
|
|
83
|
+
case 'team':
|
|
84
|
+
return await this.executeAgnoTeam(entry.team, message, payload, startTime);
|
|
85
|
+
case 'function':
|
|
86
|
+
return await this.executeAgnoFunction(entry.fn, message, payload, startTime);
|
|
87
|
+
default:
|
|
88
|
+
return this.errorResult('UNKNOWN_TYPE', 'Unknown Agno entry type', false);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
return this.errorResult('AGNO_ERROR', error instanceof Error ? error.message : 'Agno execution failed', true, error);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
// --- Private helpers ---
|
|
96
|
+
buildMessage(payload) {
|
|
97
|
+
if (payload.handoff?.instruction) {
|
|
98
|
+
let msg = payload.handoff.instruction;
|
|
99
|
+
if (payload.handoff.constraints?.length) {
|
|
100
|
+
msg += `\n\nConstraints: ${payload.handoff.constraints.join(', ')}`;
|
|
101
|
+
}
|
|
102
|
+
return msg;
|
|
103
|
+
}
|
|
104
|
+
return payload.params?.message || JSON.stringify(payload.params);
|
|
105
|
+
}
|
|
106
|
+
async executeAgnoAgent(agent, message, payload, startTime) {
|
|
107
|
+
const response = await agent.run(message, {
|
|
108
|
+
context: payload.blackboardSnapshot,
|
|
109
|
+
});
|
|
110
|
+
return this.successResult(this.normalizeResponse(response), Date.now() - startTime);
|
|
111
|
+
}
|
|
112
|
+
async executeAgnoTeam(team, message, payload, startTime) {
|
|
113
|
+
const response = await team.run(message, {
|
|
114
|
+
context: payload.blackboardSnapshot,
|
|
115
|
+
});
|
|
116
|
+
return this.successResult({
|
|
117
|
+
...this.normalizeResponse(response),
|
|
118
|
+
team: team.name,
|
|
119
|
+
respondingAgent: response.respondingAgent,
|
|
120
|
+
}, Date.now() - startTime);
|
|
121
|
+
}
|
|
122
|
+
async executeAgnoFunction(fn, message, payload, startTime) {
|
|
123
|
+
const result = await fn(message, payload.blackboardSnapshot);
|
|
124
|
+
if (typeof result === 'string') {
|
|
125
|
+
return this.successResult({ response: result }, Date.now() - startTime);
|
|
126
|
+
}
|
|
127
|
+
return this.successResult(this.normalizeResponse(result), Date.now() - startTime);
|
|
128
|
+
}
|
|
129
|
+
normalizeResponse(response) {
|
|
130
|
+
return {
|
|
131
|
+
response: response.content ?? '',
|
|
132
|
+
messages: response.messages,
|
|
133
|
+
toolCalls: response.toolCalls,
|
|
134
|
+
structuredOutput: response.structuredOutput,
|
|
135
|
+
usage: response.usage,
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
exports.AgnoAdapter = AgnoAdapter;
|
|
140
|
+
//# sourceMappingURL=agno-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agno-adapter.js","sourceRoot":"","sources":["../../../adapters/agno-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Anthropic Computer Use Adapter
|
|
4
|
+
*
|
|
5
|
+
* Integrates Anthropic's Computer Use API (Claude with screen/keyboard/mouse
|
|
6
|
+
* tool use) with the SwarmOrchestrator.
|
|
7
|
+
*
|
|
8
|
+
* This adapter wraps the Anthropic Messages API with computer_use tool
|
|
9
|
+
* definitions, executing multi-step tool-use loops where Claude controls
|
|
10
|
+
* a virtual desktop via user-supplied action handlers.
|
|
11
|
+
*
|
|
12
|
+
* Usage:
|
|
13
|
+
* const adapter = new AnthropicComputerUseAdapter();
|
|
14
|
+
* adapter.registerAgent('browser-agent', {
|
|
15
|
+
* model: 'claude-sonnet-4-20250514',
|
|
16
|
+
* client: anthropicInstance,
|
|
17
|
+
* actionHandler: myScreenHandler,
|
|
18
|
+
* });
|
|
19
|
+
*
|
|
20
|
+
* @module AnthropicComputerUseAdapter
|
|
21
|
+
* @version 1.0.0
|
|
22
|
+
*/
|
|
23
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
+
exports.AnthropicComputerUseAdapter = void 0;
|
|
25
|
+
const base_adapter_1 = require("./base-adapter");
|
|
26
|
+
// ---------------------------------------------------------------------------
|
|
27
|
+
// Adapter
|
|
28
|
+
// ---------------------------------------------------------------------------
|
|
29
|
+
/**
|
|
30
|
+
* Adapter for Anthropic Computer Use (Claude controlling a virtual desktop).
|
|
31
|
+
*
|
|
32
|
+
* Runs a tool-use loop: send prompt → Claude returns tool calls →
|
|
33
|
+
* execute via actionHandler → send results back → repeat until done.
|
|
34
|
+
*/
|
|
35
|
+
class AnthropicComputerUseAdapter extends base_adapter_1.BaseAdapter {
|
|
36
|
+
name = 'anthropic-computer-use';
|
|
37
|
+
version = '1.0.0';
|
|
38
|
+
agents = new Map();
|
|
39
|
+
get capabilities() {
|
|
40
|
+
return {
|
|
41
|
+
streaming: false,
|
|
42
|
+
parallel: true,
|
|
43
|
+
bidirectional: false,
|
|
44
|
+
discovery: true,
|
|
45
|
+
authentication: true,
|
|
46
|
+
statefulSessions: false,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
// -----------------------------------------------------------------------
|
|
50
|
+
// Agent registration
|
|
51
|
+
// -----------------------------------------------------------------------
|
|
52
|
+
/**
|
|
53
|
+
* Register an agent that uses Anthropic Computer Use.
|
|
54
|
+
*/
|
|
55
|
+
registerComputerAgent(agentId, config) {
|
|
56
|
+
this.agents.set(agentId, config);
|
|
57
|
+
this.registerLocalAgent({
|
|
58
|
+
id: agentId,
|
|
59
|
+
name: agentId,
|
|
60
|
+
status: 'available',
|
|
61
|
+
capabilities: ['computer-use', 'tool-use', 'vision'],
|
|
62
|
+
metadata: {
|
|
63
|
+
adapter: 'anthropic-computer-use',
|
|
64
|
+
model: config.model ?? 'claude-sonnet-4-20250514',
|
|
65
|
+
},
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
// -----------------------------------------------------------------------
|
|
69
|
+
// Execution
|
|
70
|
+
// -----------------------------------------------------------------------
|
|
71
|
+
async executeAgent(agentId, payload, _context) {
|
|
72
|
+
this.ensureReady();
|
|
73
|
+
const config = this.agents.get(agentId);
|
|
74
|
+
if (!config) {
|
|
75
|
+
return this.errorResult('COMPUTER_USE_AGENT_NOT_FOUND', `No agent registered as '${agentId}'`);
|
|
76
|
+
}
|
|
77
|
+
const model = config.model ?? 'claude-sonnet-4-20250514';
|
|
78
|
+
const maxIterations = config.maxIterations ?? 20;
|
|
79
|
+
const maxTokens = config.maxTokens ?? 4096;
|
|
80
|
+
const screenSize = config.screenSize ?? { width: 1920, height: 1080 };
|
|
81
|
+
const instruction = payload.handoff?.instruction ?? payload.params?.instruction ?? payload.action;
|
|
82
|
+
const systemPrompt = config.systemPrompt ?? 'You are a computer-use agent. Complete the requested task using the available tools.';
|
|
83
|
+
// Computer use tool definition
|
|
84
|
+
const computerTool = {
|
|
85
|
+
type: 'computer_20250124',
|
|
86
|
+
name: 'computer',
|
|
87
|
+
display_width_px: screenSize.width,
|
|
88
|
+
display_height_px: screenSize.height,
|
|
89
|
+
};
|
|
90
|
+
const messages = [
|
|
91
|
+
{ role: 'user', content: instruction },
|
|
92
|
+
];
|
|
93
|
+
const start = Date.now();
|
|
94
|
+
let iterations = 0;
|
|
95
|
+
let totalInputTokens = 0;
|
|
96
|
+
let totalOutputTokens = 0;
|
|
97
|
+
try {
|
|
98
|
+
while (iterations < maxIterations) {
|
|
99
|
+
iterations++;
|
|
100
|
+
const response = await config.client.create({
|
|
101
|
+
model,
|
|
102
|
+
max_tokens: maxTokens,
|
|
103
|
+
system: systemPrompt,
|
|
104
|
+
messages,
|
|
105
|
+
tools: [computerTool],
|
|
106
|
+
});
|
|
107
|
+
if (response.usage) {
|
|
108
|
+
totalInputTokens += response.usage.input_tokens;
|
|
109
|
+
totalOutputTokens += response.usage.output_tokens;
|
|
110
|
+
}
|
|
111
|
+
// Check if Claude is done (no tool use)
|
|
112
|
+
const toolUseBlocks = response.content.filter((b) => b.type === 'tool_use');
|
|
113
|
+
if (toolUseBlocks.length === 0 || response.stop_reason === 'end_turn') {
|
|
114
|
+
const textBlocks = response.content.filter((b) => b.type === 'text');
|
|
115
|
+
const finalText = textBlocks.map((b) => b.text ?? '').join('\n');
|
|
116
|
+
const durationMs = Date.now() - start;
|
|
117
|
+
return this.successResult({
|
|
118
|
+
response: finalText,
|
|
119
|
+
iterations,
|
|
120
|
+
tokensUsed: { input: totalInputTokens, output: totalOutputTokens },
|
|
121
|
+
}, durationMs);
|
|
122
|
+
}
|
|
123
|
+
// Execute tool calls and build result messages
|
|
124
|
+
messages.push({ role: 'assistant', content: response.content });
|
|
125
|
+
const toolResults = [];
|
|
126
|
+
for (const block of toolUseBlocks) {
|
|
127
|
+
const input = block.input ?? {};
|
|
128
|
+
const call = {
|
|
129
|
+
toolUseId: block.id ?? '',
|
|
130
|
+
action: input['action'] ?? 'screenshot',
|
|
131
|
+
coordinate: input['coordinate'],
|
|
132
|
+
endCoordinate: input['end_coordinate'],
|
|
133
|
+
text: input['text'],
|
|
134
|
+
key: input['key'],
|
|
135
|
+
};
|
|
136
|
+
const result = await config.actionHandler(call);
|
|
137
|
+
const content = [];
|
|
138
|
+
if (result.screenshot) {
|
|
139
|
+
content.push({
|
|
140
|
+
type: 'image',
|
|
141
|
+
source: { type: 'base64', media_type: 'image/png', data: result.screenshot },
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
if (result.text) {
|
|
145
|
+
content.push({ type: 'text', text: result.text });
|
|
146
|
+
}
|
|
147
|
+
if (result.error) {
|
|
148
|
+
content.push({ type: 'text', text: `Error: ${result.error}` });
|
|
149
|
+
}
|
|
150
|
+
toolResults.push({
|
|
151
|
+
type: 'tool_result',
|
|
152
|
+
tool_use_id: call.toolUseId,
|
|
153
|
+
content: content.length > 0 ? content : [{ type: 'text', text: 'Done' }],
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
messages.push({ role: 'user', content: toolResults });
|
|
157
|
+
}
|
|
158
|
+
// Max iterations reached
|
|
159
|
+
const durationMs = Date.now() - start;
|
|
160
|
+
return this.successResult({
|
|
161
|
+
response: 'Max iterations reached',
|
|
162
|
+
iterations,
|
|
163
|
+
tokensUsed: { input: totalInputTokens, output: totalOutputTokens },
|
|
164
|
+
exhausted: true,
|
|
165
|
+
}, durationMs);
|
|
166
|
+
}
|
|
167
|
+
catch (err) {
|
|
168
|
+
return this.errorResult('COMPUTER_USE_EXECUTION_FAILED', err instanceof Error ? err.message : String(err));
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
// -----------------------------------------------------------------------
|
|
172
|
+
// Lifecycle
|
|
173
|
+
// -----------------------------------------------------------------------
|
|
174
|
+
async shutdown() {
|
|
175
|
+
this.agents.clear();
|
|
176
|
+
await super.shutdown();
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
exports.AnthropicComputerUseAdapter = AnthropicComputerUseAdapter;
|
|
180
|
+
//# sourceMappingURL=anthropic-computer-use-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anthropic-computer-use-adapter.js","sourceRoot":"","sources":["../../../adapters/anthropic-computer-use-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* APS Adapter — Agent Permission Service interop adapter.
|
|
4
|
+
*
|
|
5
|
+
* Maps APS delegation chains to AuthGuardian trust levels.
|
|
6
|
+
* This is the interop PoC proposed in crewAIInc/crewAI#4560:
|
|
7
|
+
* APS chain → MCP verify → trust mapping → registerAgentTrust().
|
|
8
|
+
*
|
|
9
|
+
* APS (Agent Permission Service) is a delegation-chain permission model
|
|
10
|
+
* proposed by aeoess et al. This adapter consumes APS delegation tokens,
|
|
11
|
+
* verifies them (locally or via MCP server), and translates the verified
|
|
12
|
+
* scope + depth into Network-AI's AgentTrustConfig.
|
|
13
|
+
*
|
|
14
|
+
* Usage:
|
|
15
|
+
*
|
|
16
|
+
* import { APSAdapter } from 'network-ai';
|
|
17
|
+
*
|
|
18
|
+
* const aps = new APSAdapter();
|
|
19
|
+
* await aps.initialize({});
|
|
20
|
+
*
|
|
21
|
+
* // Register an APS-verified agent by providing its delegation chain
|
|
22
|
+
* const trust = aps.apsDelegationToTrust({
|
|
23
|
+
* delegator: 'root-orchestrator',
|
|
24
|
+
* delegatee: 'sub-agent-7',
|
|
25
|
+
* scope: ['file:read', 'net:fetch'],
|
|
26
|
+
* currentDepth: 1,
|
|
27
|
+
* maxDepth: 3,
|
|
28
|
+
* signature: '<base64-token>',
|
|
29
|
+
* });
|
|
30
|
+
*
|
|
31
|
+
* // Wire into AuthGuardian
|
|
32
|
+
* guardian.registerAgentTrust(trust);
|
|
33
|
+
*
|
|
34
|
+
* Verification modes:
|
|
35
|
+
* - 'local' — checks signature + depth + scope locally (default)
|
|
36
|
+
* - 'mcp' — calls an APS MCP server to verify the full chain
|
|
37
|
+
*
|
|
38
|
+
* @module APSAdapter
|
|
39
|
+
* @version 1.0.0
|
|
40
|
+
*/
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.APSAdapter = void 0;
|
|
43
|
+
const base_adapter_1 = require("./base-adapter");
|
|
44
|
+
// ─── Scope → Resource type mapping ────────────────────────────────────────────
|
|
45
|
+
const SCOPE_TO_RESOURCE = {
|
|
46
|
+
'file:read': 'FILE_SYSTEM',
|
|
47
|
+
'file:write': 'FILE_SYSTEM',
|
|
48
|
+
'net:fetch': 'NETWORK',
|
|
49
|
+
'net:listen': 'NETWORK',
|
|
50
|
+
'shell:exec': 'SHELL_EXEC',
|
|
51
|
+
'git:read': 'GIT',
|
|
52
|
+
'git:write': 'GIT',
|
|
53
|
+
'db:read': 'DATABASE',
|
|
54
|
+
'db:write': 'DATABASE',
|
|
55
|
+
'pay:read': 'PAYMENTS',
|
|
56
|
+
'pay:write': 'PAYMENTS',
|
|
57
|
+
};
|
|
58
|
+
// ─── Adapter ──────────────────────────────────────────────────────────────────
|
|
59
|
+
/**
|
|
60
|
+
* APSAdapter translates APS delegation chains into AuthGuardian trust configs.
|
|
61
|
+
*
|
|
62
|
+
* This is not a traditional execution adapter — it's a trust-bridging adapter.
|
|
63
|
+
* Its primary method is `apsDelegationToTrust()`, which verifies an APS
|
|
64
|
+
* delegation and returns an `AgentTrustConfig`-compatible object.
|
|
65
|
+
*/
|
|
66
|
+
class APSAdapter extends base_adapter_1.BaseAdapter {
|
|
67
|
+
name = 'aps';
|
|
68
|
+
version = '1.0.0';
|
|
69
|
+
baseTrust = 0.8;
|
|
70
|
+
depthDecay = 0.4;
|
|
71
|
+
verificationMode = 'local';
|
|
72
|
+
mcpServerUrl;
|
|
73
|
+
verifySignatureFn;
|
|
74
|
+
get capabilities() {
|
|
75
|
+
return {
|
|
76
|
+
streaming: false,
|
|
77
|
+
parallel: true,
|
|
78
|
+
bidirectional: false,
|
|
79
|
+
discovery: false,
|
|
80
|
+
authentication: true,
|
|
81
|
+
statefulSessions: false,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
async initialize(config) {
|
|
85
|
+
await super.initialize(config);
|
|
86
|
+
if (config.baseTrust !== undefined) {
|
|
87
|
+
if (typeof config.baseTrust !== 'number' || config.baseTrust < 0 || config.baseTrust > 1) {
|
|
88
|
+
throw new Error('baseTrust must be a number between 0 and 1');
|
|
89
|
+
}
|
|
90
|
+
this.baseTrust = config.baseTrust;
|
|
91
|
+
}
|
|
92
|
+
if (config.depthDecay !== undefined) {
|
|
93
|
+
if (typeof config.depthDecay !== 'number' || config.depthDecay < 0 || config.depthDecay > 1) {
|
|
94
|
+
throw new Error('depthDecay must be a number between 0 and 1');
|
|
95
|
+
}
|
|
96
|
+
this.depthDecay = config.depthDecay;
|
|
97
|
+
}
|
|
98
|
+
if (config.verificationMode) {
|
|
99
|
+
this.verificationMode = config.verificationMode;
|
|
100
|
+
}
|
|
101
|
+
if (config.mcpServerUrl) {
|
|
102
|
+
this.mcpServerUrl = config.mcpServerUrl;
|
|
103
|
+
}
|
|
104
|
+
if (config.verifySignature) {
|
|
105
|
+
this.verifySignatureFn = config.verifySignature;
|
|
106
|
+
}
|
|
107
|
+
if (this.verificationMode === 'mcp' && !this.mcpServerUrl) {
|
|
108
|
+
throw new Error('mcpServerUrl is required when verificationMode is "mcp"');
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Core method: convert an APS delegation into an AuthGuardian trust mapping.
|
|
113
|
+
*
|
|
114
|
+
* Trust formula: baseTrust × (1 - (currentDepth / maxDepth × depthDecay))
|
|
115
|
+
* At depth 0 (root): full baseTrust.
|
|
116
|
+
* At maxDepth: baseTrust × (1 - depthDecay).
|
|
117
|
+
*
|
|
118
|
+
* Scopes are monotonically narrowing — a child delegation can only have
|
|
119
|
+
* a subset of the parent's scopes.
|
|
120
|
+
*/
|
|
121
|
+
async apsDelegationToTrust(delegation) {
|
|
122
|
+
// Validate input
|
|
123
|
+
if (!delegation || typeof delegation !== 'object') {
|
|
124
|
+
throw new Error('delegation must be a non-null object');
|
|
125
|
+
}
|
|
126
|
+
if (!delegation.delegatee || typeof delegation.delegatee !== 'string') {
|
|
127
|
+
throw new Error('delegation.delegatee must be a non-empty string');
|
|
128
|
+
}
|
|
129
|
+
if (!delegation.delegator || typeof delegation.delegator !== 'string') {
|
|
130
|
+
throw new Error('delegation.delegator must be a non-empty string');
|
|
131
|
+
}
|
|
132
|
+
if (!Array.isArray(delegation.scope) || delegation.scope.length === 0) {
|
|
133
|
+
throw new Error('delegation.scope must be a non-empty array');
|
|
134
|
+
}
|
|
135
|
+
if (typeof delegation.currentDepth !== 'number' || delegation.currentDepth < 0) {
|
|
136
|
+
throw new Error('delegation.currentDepth must be a non-negative number');
|
|
137
|
+
}
|
|
138
|
+
if (typeof delegation.maxDepth !== 'number' || delegation.maxDepth < 1) {
|
|
139
|
+
throw new Error('delegation.maxDepth must be a positive number');
|
|
140
|
+
}
|
|
141
|
+
if (delegation.currentDepth > delegation.maxDepth) {
|
|
142
|
+
throw new Error('delegation.currentDepth cannot exceed maxDepth');
|
|
143
|
+
}
|
|
144
|
+
// Verify the delegation
|
|
145
|
+
const verified = await this.verifyDelegation(delegation);
|
|
146
|
+
// Compute trust level with depth decay
|
|
147
|
+
const depthRatio = delegation.maxDepth > 0
|
|
148
|
+
? delegation.currentDepth / delegation.maxDepth
|
|
149
|
+
: 0;
|
|
150
|
+
const trustLevel = verified
|
|
151
|
+
? Math.max(0, this.baseTrust * (1 - depthRatio * this.depthDecay))
|
|
152
|
+
: 0;
|
|
153
|
+
// Map APS scopes to AuthGuardian resource types
|
|
154
|
+
const allowedResources = [...new Set(delegation.scope
|
|
155
|
+
.map(s => SCOPE_TO_RESOURCE[s])
|
|
156
|
+
.filter((r) => r !== undefined))];
|
|
157
|
+
// Derive namespace prefixes from scopes
|
|
158
|
+
const allowedNamespaces = delegation.scope
|
|
159
|
+
.map(s => s.split(':')[0] + ':')
|
|
160
|
+
.filter((v, i, a) => a.indexOf(v) === i);
|
|
161
|
+
return {
|
|
162
|
+
agentId: delegation.delegatee,
|
|
163
|
+
trustLevel: Math.round(trustLevel * 1000) / 1000,
|
|
164
|
+
allowedResources,
|
|
165
|
+
allowedNamespaces,
|
|
166
|
+
apsMetadata: {
|
|
167
|
+
delegator: delegation.delegator,
|
|
168
|
+
depth: delegation.currentDepth,
|
|
169
|
+
maxDepth: delegation.maxDepth,
|
|
170
|
+
scope: delegation.scope,
|
|
171
|
+
verified,
|
|
172
|
+
verificationMode: this.verificationMode,
|
|
173
|
+
},
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Verify an APS delegation — either locally or via MCP.
|
|
178
|
+
*/
|
|
179
|
+
async verifyDelegation(delegation) {
|
|
180
|
+
// Depth bounds check
|
|
181
|
+
if (delegation.currentDepth > delegation.maxDepth) {
|
|
182
|
+
return false;
|
|
183
|
+
}
|
|
184
|
+
if (!delegation.signature || typeof delegation.signature !== 'string') {
|
|
185
|
+
return false;
|
|
186
|
+
}
|
|
187
|
+
if (this.verificationMode === 'mcp' && this.mcpServerUrl) {
|
|
188
|
+
return this.verifyViaMCP(delegation);
|
|
189
|
+
}
|
|
190
|
+
// Local verification — use BYOC verifier or default signature check
|
|
191
|
+
if (this.verifySignatureFn) {
|
|
192
|
+
return this.verifySignatureFn(delegation);
|
|
193
|
+
}
|
|
194
|
+
// Default: non-empty signature + valid depth = trusted
|
|
195
|
+
// In production, replace with actual crypto verification
|
|
196
|
+
return delegation.signature.length > 0;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Verify delegation via an APS MCP server.
|
|
200
|
+
* Calls the server's `verifyDelegation` tool.
|
|
201
|
+
*/
|
|
202
|
+
async verifyViaMCP(delegation) {
|
|
203
|
+
if (!this.mcpServerUrl)
|
|
204
|
+
return false;
|
|
205
|
+
try {
|
|
206
|
+
const url = new URL('/sse', this.mcpServerUrl);
|
|
207
|
+
const response = await fetch(url.toString(), {
|
|
208
|
+
method: 'POST',
|
|
209
|
+
headers: { 'Content-Type': 'application/json' },
|
|
210
|
+
body: JSON.stringify({
|
|
211
|
+
jsonrpc: '2.0',
|
|
212
|
+
id: `aps-verify-${Date.now()}`,
|
|
213
|
+
method: 'tools/call',
|
|
214
|
+
params: {
|
|
215
|
+
name: 'verifyDelegation',
|
|
216
|
+
arguments: {
|
|
217
|
+
delegator: delegation.delegator,
|
|
218
|
+
delegatee: delegation.delegatee,
|
|
219
|
+
scope: delegation.scope,
|
|
220
|
+
currentDepth: delegation.currentDepth,
|
|
221
|
+
maxDepth: delegation.maxDepth,
|
|
222
|
+
signature: delegation.signature,
|
|
223
|
+
},
|
|
224
|
+
},
|
|
225
|
+
}),
|
|
226
|
+
});
|
|
227
|
+
if (!response.ok)
|
|
228
|
+
return false;
|
|
229
|
+
const result = await response.json();
|
|
230
|
+
const text = result?.result?.content?.[0]?.text;
|
|
231
|
+
if (!text)
|
|
232
|
+
return false;
|
|
233
|
+
const parsed = JSON.parse(text);
|
|
234
|
+
return parsed.verified === true;
|
|
235
|
+
}
|
|
236
|
+
catch {
|
|
237
|
+
// MCP verification failed — deny by default
|
|
238
|
+
return false;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Execute is a pass-through — APS adapter is a trust bridge, not an executor.
|
|
243
|
+
* When called, it verifies the delegation from the payload and returns the trust mapping.
|
|
244
|
+
*/
|
|
245
|
+
async executeAgent(agentName, payload, context) {
|
|
246
|
+
this.ensureReady();
|
|
247
|
+
const delegation = payload.params;
|
|
248
|
+
if (!delegation?.delegatee) {
|
|
249
|
+
return {
|
|
250
|
+
success: false,
|
|
251
|
+
error: {
|
|
252
|
+
code: 'INVALID_DELEGATION',
|
|
253
|
+
message: 'Payload must contain a valid APSDelegation in params',
|
|
254
|
+
recoverable: false,
|
|
255
|
+
},
|
|
256
|
+
metadata: { adapter: this.name },
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
try {
|
|
260
|
+
const trust = await this.apsDelegationToTrust(delegation);
|
|
261
|
+
return {
|
|
262
|
+
success: true,
|
|
263
|
+
data: trust,
|
|
264
|
+
metadata: {
|
|
265
|
+
adapter: this.name,
|
|
266
|
+
trace: {
|
|
267
|
+
agentName,
|
|
268
|
+
verified: trust.apsMetadata.verified,
|
|
269
|
+
trustLevel: trust.trustLevel,
|
|
270
|
+
},
|
|
271
|
+
},
|
|
272
|
+
};
|
|
273
|
+
}
|
|
274
|
+
catch (err) {
|
|
275
|
+
return {
|
|
276
|
+
success: false,
|
|
277
|
+
error: {
|
|
278
|
+
code: 'DELEGATION_FAILED',
|
|
279
|
+
message: err instanceof Error ? err.message : String(err),
|
|
280
|
+
recoverable: false,
|
|
281
|
+
nativeError: err,
|
|
282
|
+
},
|
|
283
|
+
metadata: { adapter: this.name },
|
|
284
|
+
};
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
exports.APSAdapter = APSAdapter;
|
|
289
|
+
//# sourceMappingURL=aps-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aps-adapter.js","sourceRoot":"","sources":["../../../adapters/aps-adapter.ts"],"names":[],"mappings":"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"}
|