@holoscript/framework 6.0.3
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/ALL-test-results.json +1 -0
- package/CHANGELOG.md +8 -0
- package/LICENSE +21 -0
- package/ROADMAP.md +175 -0
- package/dist/AgentManifest-CB4xM-Ma.d.cts +704 -0
- package/dist/AgentManifest-CB4xM-Ma.d.ts +704 -0
- package/dist/BehaviorTree-BrBFECv5.d.cts +103 -0
- package/dist/BehaviorTree-BrBFECv5.d.ts +103 -0
- package/dist/InvisibleWallet-BB6tFvRA.d.cts +1732 -0
- package/dist/InvisibleWallet-rtRrBOA8.d.ts +1732 -0
- package/dist/OrchestratorAgent-BvWgf9uw.d.cts +798 -0
- package/dist/OrchestratorAgent-Q_CbVTmO.d.ts +798 -0
- package/dist/agents/index.cjs +4790 -0
- package/dist/agents/index.d.cts +1788 -0
- package/dist/agents/index.d.ts +1788 -0
- package/dist/agents/index.js +4695 -0
- package/dist/ai/index.cjs +5347 -0
- package/dist/ai/index.d.cts +1753 -0
- package/dist/ai/index.d.ts +1753 -0
- package/dist/ai/index.js +5244 -0
- package/dist/behavior.cjs +449 -0
- package/dist/behavior.d.cts +130 -0
- package/dist/behavior.d.ts +130 -0
- package/dist/behavior.js +407 -0
- package/dist/economy/index.cjs +3659 -0
- package/dist/economy/index.d.cts +747 -0
- package/dist/economy/index.d.ts +747 -0
- package/dist/economy/index.js +3617 -0
- package/dist/implementations-D9T3un9D.d.cts +236 -0
- package/dist/implementations-D9T3un9D.d.ts +236 -0
- package/dist/index.cjs +24550 -0
- package/dist/index.d.cts +1729 -0
- package/dist/index.d.ts +1729 -0
- package/dist/index.js +24277 -0
- package/dist/learning/index.cjs +219 -0
- package/dist/learning/index.d.cts +104 -0
- package/dist/learning/index.d.ts +104 -0
- package/dist/learning/index.js +189 -0
- package/dist/negotiation/index.cjs +970 -0
- package/dist/negotiation/index.d.cts +610 -0
- package/dist/negotiation/index.d.ts +610 -0
- package/dist/negotiation/index.js +931 -0
- package/dist/skills/index.cjs +1118 -0
- package/dist/skills/index.d.cts +289 -0
- package/dist/skills/index.d.ts +289 -0
- package/dist/skills/index.js +1079 -0
- package/dist/swarm/index.cjs +5268 -0
- package/dist/swarm/index.d.cts +2433 -0
- package/dist/swarm/index.d.ts +2433 -0
- package/dist/swarm/index.js +5221 -0
- package/dist/training/index.cjs +2745 -0
- package/dist/training/index.d.cts +1734 -0
- package/dist/training/index.d.ts +1734 -0
- package/dist/training/index.js +2687 -0
- package/extract-failures.js +10 -0
- package/package.json +82 -0
- package/src/__tests__/bounty-marketplace.test.ts +374 -0
- package/src/__tests__/delegation.test.ts +144 -0
- package/src/__tests__/distributed-claimer.test.ts +147 -0
- package/src/__tests__/done-log-audit.test.ts +342 -0
- package/src/__tests__/framework.test.ts +865 -0
- package/src/__tests__/goal-synthesizer.test.ts +236 -0
- package/src/__tests__/presence.test.ts +223 -0
- package/src/__tests__/protocol-agent.test.ts +254 -0
- package/src/__tests__/revenue-splitter.test.ts +114 -0
- package/src/__tests__/scenario-driven-todo.test.ts +197 -0
- package/src/__tests__/self-improve.test.ts +349 -0
- package/src/__tests__/service-lifecycle.test.ts +237 -0
- package/src/__tests__/skill-router.test.ts +121 -0
- package/src/agents/AgentManifest.ts +493 -0
- package/src/agents/AgentRegistry.ts +475 -0
- package/src/agents/AgentTypes.ts +585 -0
- package/src/agents/AgentWalletRegistry.ts +83 -0
- package/src/agents/AuthenticatedCRDT.ts +388 -0
- package/src/agents/CapabilityMatcher.ts +453 -0
- package/src/agents/CrossRealityHandoff.ts +305 -0
- package/src/agents/CulturalMemory.ts +454 -0
- package/src/agents/FederatedRegistryAdapter.ts +429 -0
- package/src/agents/NormEngine.ts +450 -0
- package/src/agents/OrchestratorAgent.ts +414 -0
- package/src/agents/SkillWorkflowEngine.ts +472 -0
- package/src/agents/TaskDelegationService.ts +551 -0
- package/src/agents/__tests__/AgentManifest.prod.test.ts +134 -0
- package/src/agents/__tests__/AgentManifest.test.ts +182 -0
- package/src/agents/__tests__/AgentModule.test.ts +864 -0
- package/src/agents/__tests__/AgentRegistry.prod.test.ts +125 -0
- package/src/agents/__tests__/AgentRegistry.test.ts +148 -0
- package/src/agents/__tests__/AgentTypes.test.ts +534 -0
- package/src/agents/__tests__/AgentWalletRegistry.test.ts +152 -0
- package/src/agents/__tests__/AuthenticatedCRDT.test.ts +558 -0
- package/src/agents/__tests__/CapabilityMatcher.prod.test.ts +117 -0
- package/src/agents/__tests__/CapabilityMatcher.test.ts +178 -0
- package/src/agents/__tests__/CrossRealityHandoff.test.ts +402 -0
- package/src/agents/__tests__/CulturalMemory.test.ts +200 -0
- package/src/agents/__tests__/FederatedRegistryAdapter.test.ts +409 -0
- package/src/agents/__tests__/NormEngine.test.ts +276 -0
- package/src/agents/__tests__/OrchestratorAgent.test.ts +182 -0
- package/src/agents/__tests__/SkillWorkflowEngine.test.ts +357 -0
- package/src/agents/__tests__/TaskDelegationService.test.ts +446 -0
- package/src/agents/index.ts +107 -0
- package/src/agents/spatial-comms/Layer1RealTime.ts +621 -0
- package/src/agents/spatial-comms/Layer2A2A.ts +661 -0
- package/src/agents/spatial-comms/Layer3MCP.ts +651 -0
- package/src/agents/spatial-comms/ProtocolTypes.ts +543 -0
- package/src/agents/spatial-comms/SpatialCommClient.ts +483 -0
- package/src/agents/spatial-comms/__tests__/performance-benchmark.test.ts +465 -0
- package/src/agents/spatial-comms/examples/multi-agent-world-creation.ts +409 -0
- package/src/agents/spatial-comms/index.ts +66 -0
- package/src/ai/AIAdapter.ts +313 -0
- package/src/ai/AICopilot.ts +331 -0
- package/src/ai/AIOutputValidator.ts +203 -0
- package/src/ai/BTNodes.ts +239 -0
- package/src/ai/BehaviorSelector.ts +135 -0
- package/src/ai/BehaviorTree.ts +153 -0
- package/src/ai/Blackboard.ts +165 -0
- package/src/ai/GenerationAnalytics.ts +461 -0
- package/src/ai/GenerationCache.ts +265 -0
- package/src/ai/GoalPlanner.ts +165 -0
- package/src/ai/HoloScriptGenerator.ts +580 -0
- package/src/ai/InfluenceMap.ts +180 -0
- package/src/ai/NavMesh.ts +168 -0
- package/src/ai/PerceptionSystem.ts +178 -0
- package/src/ai/PromptTemplates.ts +453 -0
- package/src/ai/SemanticSearchService.ts +80 -0
- package/src/ai/StateMachine.ts +196 -0
- package/src/ai/SteeringBehavior.ts +150 -0
- package/src/ai/SteeringBehaviors.ts +244 -0
- package/src/ai/TrainingDataGenerator.ts +1082 -0
- package/src/ai/UtilityAI.ts +145 -0
- package/src/ai/__tests__/AIAdapter.prod.test.ts +259 -0
- package/src/ai/__tests__/AIAdapter.test.ts +109 -0
- package/src/ai/__tests__/AICopilot.prod.test.ts +341 -0
- package/src/ai/__tests__/AICopilot.test.ts +178 -0
- package/src/ai/__tests__/AIOutputValidator.prod.test.ts +226 -0
- package/src/ai/__tests__/AIOutputValidator.test.ts +138 -0
- package/src/ai/__tests__/BTNodes.prod.test.ts +391 -0
- package/src/ai/__tests__/BTNodes.test.ts +263 -0
- package/src/ai/__tests__/BehaviorSelector.prod.test.ts +129 -0
- package/src/ai/__tests__/BehaviorSelector.test.ts +132 -0
- package/src/ai/__tests__/BehaviorTree.prod.test.ts +266 -0
- package/src/ai/__tests__/BehaviorTree.test.ts +216 -0
- package/src/ai/__tests__/Blackboard.prod.test.ts +339 -0
- package/src/ai/__tests__/Blackboard.test.ts +183 -0
- package/src/ai/__tests__/GenerationAnalytics.prod.test.ts +141 -0
- package/src/ai/__tests__/GenerationAnalytics.test.ts +165 -0
- package/src/ai/__tests__/GenerationCache.prod.test.ts +144 -0
- package/src/ai/__tests__/GenerationCache.test.ts +171 -0
- package/src/ai/__tests__/GoalPlanner.prod.test.ts +189 -0
- package/src/ai/__tests__/GoalPlanner.test.ts +137 -0
- package/src/ai/__tests__/GoalPlannerDepth.prod.test.ts +217 -0
- package/src/ai/__tests__/HoloScriptGenerator.test.ts +125 -0
- package/src/ai/__tests__/InfluenceMap.prod.test.ts +146 -0
- package/src/ai/__tests__/InfluenceMap.test.ts +149 -0
- package/src/ai/__tests__/NavMesh.prod.test.ts +141 -0
- package/src/ai/__tests__/NavMesh.test.ts +159 -0
- package/src/ai/__tests__/PerceptionSystem.prod.test.ts +135 -0
- package/src/ai/__tests__/PerceptionSystem.test.ts +250 -0
- package/src/ai/__tests__/PromptTemplates.prod.test.ts +313 -0
- package/src/ai/__tests__/PromptTemplates.test.ts +146 -0
- package/src/ai/__tests__/SemanticSearch.test.ts +37 -0
- package/src/ai/__tests__/StateMachine.prod.test.ts +162 -0
- package/src/ai/__tests__/StateMachine.test.ts +163 -0
- package/src/ai/__tests__/SteeringBehavior.prod.test.ts +251 -0
- package/src/ai/__tests__/SteeringBehavior.test.ts +135 -0
- package/src/ai/__tests__/SteeringBehaviors.prod.test.ts +133 -0
- package/src/ai/__tests__/SteeringBehaviors.test.ts +151 -0
- package/src/ai/__tests__/TrainingDataGenerator.prod.test.ts +286 -0
- package/src/ai/__tests__/TrainingDataGenerator.test.ts +286 -0
- package/src/ai/__tests__/UtilityAI.prod.test.ts +207 -0
- package/src/ai/__tests__/UtilityAI.test.ts +155 -0
- package/src/ai/__tests__/adapters.prod.test.ts +263 -0
- package/src/ai/__tests__/adapters.test.ts +320 -0
- package/src/ai/adapters.ts +1585 -0
- package/src/ai/index.ts +130 -0
- package/src/behavior/BehaviorPresets.ts +140 -0
- package/src/behavior/BehaviorTree.ts +236 -0
- package/src/behavior/StateMachine.ts +176 -0
- package/src/behavior/StateTrait.ts +67 -0
- package/src/behavior/index.ts +8 -0
- package/src/behavior.ts +8 -0
- package/src/board/audit.ts +284 -0
- package/src/board/board-ops.ts +336 -0
- package/src/board/board-types.ts +302 -0
- package/src/board/index.ts +69 -0
- package/src/define-agent.ts +46 -0
- package/src/define-team.ts +33 -0
- package/src/delegation.ts +265 -0
- package/src/distributed-claimer.ts +228 -0
- package/src/economy/AgentBudgetEnforcer.ts +464 -0
- package/src/economy/BountyManager.ts +185 -0
- package/src/economy/CreatorRevenueAggregator.ts +460 -0
- package/src/economy/InvisibleWallet.ts +82 -0
- package/src/economy/KnowledgeMarketplace.ts +193 -0
- package/src/economy/PaymentWebhookService.ts +512 -0
- package/src/economy/RevenueSplitter.ts +156 -0
- package/src/economy/SubscriptionManager.ts +546 -0
- package/src/economy/UnifiedBudgetOptimizer.ts +635 -0
- package/src/economy/UsageMeter.ts +440 -0
- package/src/economy/_core-stubs.ts +219 -0
- package/src/economy/index.ts +100 -0
- package/src/economy/x402-facilitator.ts +1978 -0
- package/src/index.ts +348 -0
- package/src/knowledge/__tests__/knowledge-consolidator.test.ts +444 -0
- package/src/knowledge/__tests__/knowledge-store-vector.test.ts +291 -0
- package/src/knowledge/brain.ts +167 -0
- package/src/knowledge/consolidation.ts +581 -0
- package/src/knowledge/knowledge-consolidator.ts +510 -0
- package/src/knowledge/knowledge-store.ts +616 -0
- package/src/learning/MemoryConsolidator.ts +102 -0
- package/src/learning/MemoryScorer.ts +69 -0
- package/src/learning/ProceduralCompiler.ts +45 -0
- package/src/learning/SemanticClusterer.ts +66 -0
- package/src/learning/index.ts +8 -0
- package/src/llm/llm-adapter.ts +159 -0
- package/src/mesh/index.ts +309 -0
- package/src/negotiation/NegotiationProtocol.ts +694 -0
- package/src/negotiation/NegotiationTypes.ts +473 -0
- package/src/negotiation/VotingMechanisms.ts +691 -0
- package/src/negotiation/index.ts +49 -0
- package/src/protocol/goal-synthesizer.ts +317 -0
- package/src/protocol/implementations.ts +474 -0
- package/src/protocol/micro-phase-decomposer.ts +299 -0
- package/src/protocol/micro-step-decomposer.test.ts +306 -0
- package/src/protocol-agent.test.ts +353 -0
- package/src/protocol-agent.ts +670 -0
- package/src/self-improve/absorb-scanner.ts +252 -0
- package/src/self-improve/evolution-engine.ts +149 -0
- package/src/self-improve/framework-absorber.ts +214 -0
- package/src/self-improve/index.ts +50 -0
- package/src/self-improve/prompt-optimizer.ts +212 -0
- package/src/self-improve/test-generator.ts +175 -0
- package/src/skill-router.ts +186 -0
- package/src/skills/index.ts +5 -0
- package/src/skills/skill-md-bridge.ts +1699 -0
- package/src/swarm/ACOEngine.ts +261 -0
- package/src/swarm/CollectiveIntelligence.ts +383 -0
- package/src/swarm/ContributionSynthesizer.ts +481 -0
- package/src/swarm/LeaderElection.ts +393 -0
- package/src/swarm/PSOEngine.ts +206 -0
- package/src/swarm/QuorumPolicy.ts +173 -0
- package/src/swarm/SwarmCoordinator.ts +335 -0
- package/src/swarm/SwarmManager.ts +442 -0
- package/src/swarm/SwarmMembership.ts +456 -0
- package/src/swarm/VotingRound.ts +255 -0
- package/src/swarm/__tests__/ACOEngine.prod.test.ts +164 -0
- package/src/swarm/__tests__/ACOEngine.test.ts +117 -0
- package/src/swarm/__tests__/CollectiveIntelligence.prod.test.ts +296 -0
- package/src/swarm/__tests__/CollectiveIntelligence.test.ts +457 -0
- package/src/swarm/__tests__/ContributionSynthesizer.prod.test.ts +269 -0
- package/src/swarm/__tests__/ContributionSynthesizer.test.ts +254 -0
- package/src/swarm/__tests__/LeaderElection.prod.test.ts +196 -0
- package/src/swarm/__tests__/LeaderElection.test.ts +151 -0
- package/src/swarm/__tests__/PSOEngine.prod.test.ts +162 -0
- package/src/swarm/__tests__/PSOEngine.test.ts +106 -0
- package/src/swarm/__tests__/QuorumPolicy.prod.test.ts +216 -0
- package/src/swarm/__tests__/QuorumPolicy.test.ts +177 -0
- package/src/swarm/__tests__/SwarmCoordinator.prod.test.ts +186 -0
- package/src/swarm/__tests__/SwarmCoordinator.test.ts +167 -0
- package/src/swarm/__tests__/SwarmManager.prod.test.ts +308 -0
- package/src/swarm/__tests__/SwarmManager.test.ts +373 -0
- package/src/swarm/__tests__/SwarmMembership.prod.test.ts +273 -0
- package/src/swarm/__tests__/SwarmMembership.test.ts +264 -0
- package/src/swarm/__tests__/VotingRound.prod.test.ts +233 -0
- package/src/swarm/__tests__/VotingRound.test.ts +174 -0
- package/src/swarm/analytics/SwarmInspector.ts +476 -0
- package/src/swarm/analytics/SwarmMetrics.ts +449 -0
- package/src/swarm/analytics/__tests__/SwarmInspector.prod.test.ts +366 -0
- package/src/swarm/analytics/__tests__/SwarmInspector.test.ts +454 -0
- package/src/swarm/analytics/__tests__/SwarmMetrics.prod.test.ts +254 -0
- package/src/swarm/analytics/__tests__/SwarmMetrics.test.ts +370 -0
- package/src/swarm/analytics/index.ts +7 -0
- package/src/swarm/index.ts +69 -0
- package/src/swarm/messaging/BroadcastChannel.ts +509 -0
- package/src/swarm/messaging/GossipProtocol.ts +565 -0
- package/src/swarm/messaging/SwarmEventBus.ts +443 -0
- package/src/swarm/messaging/__tests__/BroadcastChannel.prod.test.ts +331 -0
- package/src/swarm/messaging/__tests__/BroadcastChannel.test.ts +333 -0
- package/src/swarm/messaging/__tests__/GossipProtocol.prod.test.ts +356 -0
- package/src/swarm/messaging/__tests__/GossipProtocol.test.ts +437 -0
- package/src/swarm/messaging/__tests__/SwarmEventBus.prod.test.ts +191 -0
- package/src/swarm/messaging/__tests__/SwarmEventBus.test.ts +247 -0
- package/src/swarm/messaging/index.ts +8 -0
- package/src/swarm/spatial/FlockingBehavior.ts +462 -0
- package/src/swarm/spatial/FormationController.ts +500 -0
- package/src/swarm/spatial/Vector3.ts +170 -0
- package/src/swarm/spatial/ZoneClaiming.ts +509 -0
- package/src/swarm/spatial/__tests__/FlockingBehavior.prod.test.ts +239 -0
- package/src/swarm/spatial/__tests__/FlockingBehavior.test.ts +298 -0
- package/src/swarm/spatial/__tests__/FormationController.prod.test.ts +240 -0
- package/src/swarm/spatial/__tests__/FormationController.test.ts +297 -0
- package/src/swarm/spatial/__tests__/Vector3.prod.test.ts +283 -0
- package/src/swarm/spatial/__tests__/Vector3.test.ts +224 -0
- package/src/swarm/spatial/__tests__/ZoneClaiming.prod.test.ts +246 -0
- package/src/swarm/spatial/__tests__/ZoneClaiming.test.ts +374 -0
- package/src/swarm/spatial/index.ts +28 -0
- package/src/team.ts +1245 -0
- package/src/training/LRScheduler.ts +377 -0
- package/src/training/QualityScoringPipeline.ts +139 -0
- package/src/training/SoftDedup.ts +461 -0
- package/src/training/SparsityMonitor.ts +685 -0
- package/src/training/SparsityMonitorTypes.ts +209 -0
- package/src/training/SpatialTrainingDataGenerator.ts +1526 -0
- package/src/training/SpatialTrainingDataTypes.ts +216 -0
- package/src/training/TrainingPipelineConfig.ts +215 -0
- package/src/training/constants.ts +94 -0
- package/src/training/index.ts +138 -0
- package/src/training/schema.ts +147 -0
- package/src/training/scripts/generate-novel-use-cases-dataset.ts +272 -0
- package/src/training/scripts/generate-spatial-dataset.ts +521 -0
- package/src/training/training/data/novel-use-cases.jsonl +153 -0
- package/src/training/training/data/spatial-reasoning-10k.jsonl +9354 -0
- package/src/training/trainingmonkey/TrainingMonkeyIntegration.ts +477 -0
- package/src/training/trainingmonkey/TrainingMonkeyTypes.ts +230 -0
- package/src/training/trainingmonkey/index.ts +26 -0
- package/src/training/trait-mappings.ts +157 -0
- package/src/types/core-stubs.d.ts +113 -0
- package/src/types.ts +304 -0
- package/test-output.txt +0 -0
- package/test-result.json +1 -0
- package/tsc-errors.txt +4 -0
- package/tsc_output.txt +0 -0
- package/tsconfig.json +14 -0
- package/tsup-learning-esm.config.ts +12 -0
- package/tsup.config.ts +21 -0
- package/typescript-errors-2.txt +0 -0
- package/typescript-errors.txt +22 -0
- package/vitest-log-utf8.txt +268 -0
- package/vitest-log.txt +0 -0
- package/vitest.config.ts +8 -0
|
@@ -0,0 +1,493 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @holoscript/core - Agent Manifest Definitions
|
|
3
|
+
*
|
|
4
|
+
* Defines the structure for agent registration and capability declaration.
|
|
5
|
+
* Part of HoloScript v3.1 Agentic Choreography.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import type { AgentCategory, AgentPosition, AgentSection } from './AgentTypes';
|
|
9
|
+
|
|
10
|
+
// ============================================================================
|
|
11
|
+
// RESOURCE & LATENCY PROFILES
|
|
12
|
+
// ============================================================================
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Resource cost for executing a capability
|
|
16
|
+
*/
|
|
17
|
+
export interface ResourceCost {
|
|
18
|
+
/** Estimated compute cost (0-100 scale) */
|
|
19
|
+
compute: number;
|
|
20
|
+
/** Estimated memory usage (0-100 scale) */
|
|
21
|
+
memory: number;
|
|
22
|
+
/** Estimated network usage (0-100 scale) */
|
|
23
|
+
network: number;
|
|
24
|
+
/** Token cost for LLM operations (if applicable) */
|
|
25
|
+
tokens?: number;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Latency profile for a capability
|
|
30
|
+
*/
|
|
31
|
+
export type LatencyProfile = 'instant' | 'fast' | 'medium' | 'slow' | 'background';
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Latency thresholds in milliseconds
|
|
35
|
+
*/
|
|
36
|
+
export const LATENCY_THRESHOLDS: Record<LatencyProfile, number> = {
|
|
37
|
+
instant: 10,
|
|
38
|
+
fast: 100,
|
|
39
|
+
medium: 1000,
|
|
40
|
+
slow: 10000,
|
|
41
|
+
background: Infinity,
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
// ============================================================================
|
|
45
|
+
// CAPABILITY DEFINITIONS
|
|
46
|
+
// ============================================================================
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Capability types that agents can provide
|
|
50
|
+
*/
|
|
51
|
+
export type CapabilityType =
|
|
52
|
+
| 'render' // Visual rendering / generation
|
|
53
|
+
| 'analyze' // Data analysis
|
|
54
|
+
| 'generate' // Content generation
|
|
55
|
+
| 'approve' // Human/AI approval workflow
|
|
56
|
+
| 'detect' // Detection / recognition
|
|
57
|
+
| 'transform' // Data transformation
|
|
58
|
+
| 'store' // Data storage
|
|
59
|
+
| 'retrieve' // Data retrieval
|
|
60
|
+
| 'communicate' // Messaging / notification
|
|
61
|
+
| 'orchestrate' // Workflow orchestration
|
|
62
|
+
| 'validate' // Validation / verification
|
|
63
|
+
| 'optimize' // Optimization / tuning
|
|
64
|
+
| 'custom'; // Custom capability
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Capability domains
|
|
68
|
+
*/
|
|
69
|
+
export type CapabilityDomain =
|
|
70
|
+
| 'vision' // Computer vision
|
|
71
|
+
| 'nlp' // Natural language processing
|
|
72
|
+
| 'spatial' // Spatial computing / 3D
|
|
73
|
+
| 'blockchain' // Web3 / blockchain
|
|
74
|
+
| 'audio' // Audio processing
|
|
75
|
+
| 'video' // Video processing
|
|
76
|
+
| 'physics' // Physics simulation
|
|
77
|
+
| 'networking' // Network operations
|
|
78
|
+
| 'storage' // Data storage
|
|
79
|
+
| 'security' // Security operations
|
|
80
|
+
| 'trading' // Trading / DeFi
|
|
81
|
+
| 'social' // Social interactions
|
|
82
|
+
| 'gaming' // Game mechanics
|
|
83
|
+
| 'general'; // General purpose
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Single agent capability
|
|
87
|
+
*/
|
|
88
|
+
export interface AgentCapability {
|
|
89
|
+
/** Capability type identifier */
|
|
90
|
+
type: CapabilityType | string;
|
|
91
|
+
/** Domain the capability operates in */
|
|
92
|
+
domain: CapabilityDomain | string;
|
|
93
|
+
/** Unique capability identifier */
|
|
94
|
+
id?: string;
|
|
95
|
+
/** Human-readable name */
|
|
96
|
+
name?: string;
|
|
97
|
+
/** Description of what this capability does */
|
|
98
|
+
description?: string;
|
|
99
|
+
/** Resource cost profile */
|
|
100
|
+
cost?: Partial<ResourceCost>;
|
|
101
|
+
/** Expected latency */
|
|
102
|
+
latency?: LatencyProfile;
|
|
103
|
+
/** Capability version */
|
|
104
|
+
version?: string;
|
|
105
|
+
/** Required input types */
|
|
106
|
+
inputs?: string[];
|
|
107
|
+
/** Output type */
|
|
108
|
+
output?: string;
|
|
109
|
+
/** Whether this capability is currently available */
|
|
110
|
+
available?: boolean;
|
|
111
|
+
/** Priority for conflict resolution (higher = preferred) */
|
|
112
|
+
priority?: number;
|
|
113
|
+
/** Custom metadata */
|
|
114
|
+
metadata?: Record<string, unknown>;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
// ============================================================================
|
|
118
|
+
// AGENT ENDPOINTS
|
|
119
|
+
// ============================================================================
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Endpoint protocol types
|
|
123
|
+
*/
|
|
124
|
+
export type EndpointProtocol =
|
|
125
|
+
| 'local' // In-process
|
|
126
|
+
| 'ipc' // Inter-process
|
|
127
|
+
| 'http' // HTTP REST
|
|
128
|
+
| 'https' // HTTPS REST
|
|
129
|
+
| 'ws' // WebSocket
|
|
130
|
+
| 'wss' // Secure WebSocket
|
|
131
|
+
| 'grpc' // gRPC
|
|
132
|
+
| 'mqtt' // MQTT
|
|
133
|
+
| 'custom'; // Custom protocol
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* Agent communication endpoint
|
|
137
|
+
*/
|
|
138
|
+
export interface AgentEndpoint {
|
|
139
|
+
/** Endpoint protocol */
|
|
140
|
+
protocol: EndpointProtocol;
|
|
141
|
+
/** Endpoint address (URL, IPC path, etc.) */
|
|
142
|
+
address: string;
|
|
143
|
+
/** Endpoint port (if applicable) */
|
|
144
|
+
port?: number;
|
|
145
|
+
/** Whether this is the primary endpoint */
|
|
146
|
+
primary?: boolean;
|
|
147
|
+
/** Health check path (if applicable) */
|
|
148
|
+
healthPath?: string;
|
|
149
|
+
/** Authentication required */
|
|
150
|
+
authRequired?: boolean;
|
|
151
|
+
/** Supported message formats */
|
|
152
|
+
formats?: Array<'json' | 'msgpack' | 'protobuf' | 'custom'>;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
// ============================================================================
|
|
156
|
+
// SPATIAL BOUNDS
|
|
157
|
+
// ============================================================================
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* 3D Vector for spatial definitions
|
|
161
|
+
*/
|
|
162
|
+
export interface Vector3 {
|
|
163
|
+
x: number;
|
|
164
|
+
y: number;
|
|
165
|
+
z: number;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* Bounding box for spatial agents
|
|
170
|
+
*/
|
|
171
|
+
export interface BoundingBox {
|
|
172
|
+
/** Minimum point (corner) */
|
|
173
|
+
min: Vector3;
|
|
174
|
+
/** Maximum point (opposite corner) */
|
|
175
|
+
max: Vector3;
|
|
176
|
+
/** Coordinate system reference */
|
|
177
|
+
coordinateSystem?: 'world' | 'local' | 'scene';
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* Spatial scope for agents
|
|
182
|
+
*/
|
|
183
|
+
export interface SpatialScope {
|
|
184
|
+
/** Bounding box if defined */
|
|
185
|
+
bounds?: BoundingBox;
|
|
186
|
+
/** Named scene/world */
|
|
187
|
+
scene?: string;
|
|
188
|
+
/** Specific node IDs this agent operates on */
|
|
189
|
+
nodes?: string[];
|
|
190
|
+
/** Radius from a center point */
|
|
191
|
+
radius?: { center: Vector3; distance: number };
|
|
192
|
+
/** Whether agent can operate outside its spatial scope */
|
|
193
|
+
global?: boolean;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
// ============================================================================
|
|
197
|
+
// TRUST & VERIFICATION
|
|
198
|
+
// ============================================================================
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* Trust level for agents
|
|
202
|
+
*/
|
|
203
|
+
export type TrustLevel =
|
|
204
|
+
| 'local' // Same process, fully trusted
|
|
205
|
+
| 'verified' // Cryptographically verified
|
|
206
|
+
| 'known' // Known agent, limited trust
|
|
207
|
+
| 'external' // External/unknown agent, minimal trust
|
|
208
|
+
| 'untrusted'; // Explicitly untrusted
|
|
209
|
+
|
|
210
|
+
/**
|
|
211
|
+
* Verification status
|
|
212
|
+
*/
|
|
213
|
+
export interface VerificationStatus {
|
|
214
|
+
/** Whether the agent is verified */
|
|
215
|
+
verified: boolean;
|
|
216
|
+
/** Verification method used */
|
|
217
|
+
method?: 'signature' | 'certificate' | 'oauth' | 'token' | 'manual';
|
|
218
|
+
/** When verification was performed */
|
|
219
|
+
verifiedAt?: number;
|
|
220
|
+
/** When verification expires */
|
|
221
|
+
expiresAt?: number;
|
|
222
|
+
/** Verifying authority */
|
|
223
|
+
authority?: string;
|
|
224
|
+
/** Verification signature/proof */
|
|
225
|
+
proof?: string;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
// ============================================================================
|
|
229
|
+
// AGENT MANIFEST
|
|
230
|
+
// ============================================================================
|
|
231
|
+
|
|
232
|
+
/**
|
|
233
|
+
* Complete agent manifest for registration
|
|
234
|
+
*/
|
|
235
|
+
export interface AgentManifest {
|
|
236
|
+
// === Identity ===
|
|
237
|
+
/** Unique agent identifier */
|
|
238
|
+
id: string;
|
|
239
|
+
/** Human-readable agent name */
|
|
240
|
+
name: string;
|
|
241
|
+
/** Agent version (semver) */
|
|
242
|
+
version: string;
|
|
243
|
+
/** Agent description */
|
|
244
|
+
description?: string;
|
|
245
|
+
|
|
246
|
+
// === Classification ===
|
|
247
|
+
/** Agent categories */
|
|
248
|
+
categories?: AgentCategory[];
|
|
249
|
+
/** Position in architecture */
|
|
250
|
+
position?: AgentPosition;
|
|
251
|
+
/** Orchestral section */
|
|
252
|
+
section?: AgentSection;
|
|
253
|
+
/** Custom tags for filtering */
|
|
254
|
+
tags?: string[];
|
|
255
|
+
|
|
256
|
+
// === Capabilities ===
|
|
257
|
+
/** List of capabilities this agent provides */
|
|
258
|
+
capabilities: AgentCapability[];
|
|
259
|
+
|
|
260
|
+
// === Communication ===
|
|
261
|
+
/** Available endpoints for communication */
|
|
262
|
+
endpoints: AgentEndpoint[];
|
|
263
|
+
|
|
264
|
+
// === Spatial ===
|
|
265
|
+
/** Spatial scope this agent operates in */
|
|
266
|
+
spatialScope?: SpatialScope;
|
|
267
|
+
|
|
268
|
+
// === Trust ===
|
|
269
|
+
/** Trust level */
|
|
270
|
+
trustLevel: TrustLevel;
|
|
271
|
+
/** Verification status */
|
|
272
|
+
verification?: VerificationStatus;
|
|
273
|
+
|
|
274
|
+
// === Health ===
|
|
275
|
+
/** Health check interval in ms */
|
|
276
|
+
healthCheckInterval?: number;
|
|
277
|
+
/** Last heartbeat timestamp */
|
|
278
|
+
lastHeartbeat?: number;
|
|
279
|
+
/** Current health status */
|
|
280
|
+
status?: 'online' | 'offline' | 'degraded' | 'unknown';
|
|
281
|
+
|
|
282
|
+
// === Metadata ===
|
|
283
|
+
/** Registration timestamp */
|
|
284
|
+
registeredAt?: number;
|
|
285
|
+
/** Last updated timestamp */
|
|
286
|
+
updatedAt?: number;
|
|
287
|
+
/** Owner/creator identifier */
|
|
288
|
+
owner?: string;
|
|
289
|
+
/** Source repository/package */
|
|
290
|
+
source?: string;
|
|
291
|
+
/** Custom metadata */
|
|
292
|
+
metadata?: Record<string, unknown>;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
// ============================================================================
|
|
296
|
+
// MANIFEST BUILDER
|
|
297
|
+
// ============================================================================
|
|
298
|
+
|
|
299
|
+
/**
|
|
300
|
+
* Fluent builder for creating agent manifests
|
|
301
|
+
*/
|
|
302
|
+
export class AgentManifestBuilder {
|
|
303
|
+
private manifest: Partial<AgentManifest> = {
|
|
304
|
+
capabilities: [],
|
|
305
|
+
endpoints: [],
|
|
306
|
+
trustLevel: 'local',
|
|
307
|
+
status: 'unknown',
|
|
308
|
+
};
|
|
309
|
+
|
|
310
|
+
/**
|
|
311
|
+
* Set agent identity
|
|
312
|
+
*/
|
|
313
|
+
identity(id: string, name: string, version: string): this {
|
|
314
|
+
this.manifest.id = id;
|
|
315
|
+
this.manifest.name = name;
|
|
316
|
+
this.manifest.version = version;
|
|
317
|
+
return this;
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
/**
|
|
321
|
+
* Set agent description
|
|
322
|
+
*/
|
|
323
|
+
description(desc: string): this {
|
|
324
|
+
this.manifest.description = desc;
|
|
325
|
+
return this;
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
/**
|
|
329
|
+
* Set classification
|
|
330
|
+
*/
|
|
331
|
+
classify(categories: AgentCategory[], position?: AgentPosition, section?: AgentSection): this {
|
|
332
|
+
this.manifest.categories = categories;
|
|
333
|
+
this.manifest.position = position;
|
|
334
|
+
this.manifest.section = section;
|
|
335
|
+
return this;
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
/**
|
|
339
|
+
* Add a capability
|
|
340
|
+
*/
|
|
341
|
+
addCapability(capability: AgentCapability): this {
|
|
342
|
+
this.manifest.capabilities!.push(capability);
|
|
343
|
+
return this;
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
/**
|
|
347
|
+
* Add multiple capabilities
|
|
348
|
+
*/
|
|
349
|
+
addCapabilities(capabilities: AgentCapability[]): this {
|
|
350
|
+
this.manifest.capabilities!.push(...capabilities);
|
|
351
|
+
return this;
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
/**
|
|
355
|
+
* Add an endpoint
|
|
356
|
+
*/
|
|
357
|
+
addEndpoint(endpoint: AgentEndpoint): this {
|
|
358
|
+
this.manifest.endpoints!.push(endpoint);
|
|
359
|
+
return this;
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
/**
|
|
363
|
+
* Set spatial scope
|
|
364
|
+
*/
|
|
365
|
+
spatial(scope: SpatialScope): this {
|
|
366
|
+
this.manifest.spatialScope = scope;
|
|
367
|
+
return this;
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
/**
|
|
371
|
+
* Set trust level
|
|
372
|
+
*/
|
|
373
|
+
trust(level: TrustLevel, verification?: VerificationStatus): this {
|
|
374
|
+
this.manifest.trustLevel = level;
|
|
375
|
+
this.manifest.verification = verification;
|
|
376
|
+
return this;
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
/**
|
|
380
|
+
* Set health check interval
|
|
381
|
+
*/
|
|
382
|
+
healthCheck(intervalMs: number): this {
|
|
383
|
+
this.manifest.healthCheckInterval = intervalMs;
|
|
384
|
+
return this;
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
/**
|
|
388
|
+
* Add custom tags
|
|
389
|
+
*/
|
|
390
|
+
tags(...tags: string[]): this {
|
|
391
|
+
this.manifest.tags = [...(this.manifest.tags || []), ...tags];
|
|
392
|
+
return this;
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
/**
|
|
396
|
+
* Set metadata
|
|
397
|
+
*/
|
|
398
|
+
metadata(data: Record<string, unknown>): this {
|
|
399
|
+
this.manifest.metadata = { ...this.manifest.metadata, ...data };
|
|
400
|
+
return this;
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
/**
|
|
404
|
+
* Build the manifest
|
|
405
|
+
*/
|
|
406
|
+
build(): AgentManifest {
|
|
407
|
+
if (!this.manifest.id || !this.manifest.name || !this.manifest.version) {
|
|
408
|
+
throw new Error('AgentManifest requires id, name, and version');
|
|
409
|
+
}
|
|
410
|
+
if (this.manifest.capabilities!.length === 0) {
|
|
411
|
+
throw new Error('AgentManifest requires at least one capability');
|
|
412
|
+
}
|
|
413
|
+
if (this.manifest.endpoints!.length === 0) {
|
|
414
|
+
throw new Error('AgentManifest requires at least one endpoint');
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
const now = Date.now();
|
|
418
|
+
return {
|
|
419
|
+
...this.manifest,
|
|
420
|
+
registeredAt: now,
|
|
421
|
+
updatedAt: now,
|
|
422
|
+
status: 'online',
|
|
423
|
+
} as AgentManifest;
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
/**
|
|
428
|
+
* Create a new manifest builder
|
|
429
|
+
*/
|
|
430
|
+
export function createManifest(): AgentManifestBuilder {
|
|
431
|
+
return new AgentManifestBuilder();
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
// ============================================================================
|
|
435
|
+
// VALIDATION
|
|
436
|
+
// ============================================================================
|
|
437
|
+
|
|
438
|
+
/**
|
|
439
|
+
* Validation result
|
|
440
|
+
*/
|
|
441
|
+
export interface ValidationResult {
|
|
442
|
+
valid: boolean;
|
|
443
|
+
errors: string[];
|
|
444
|
+
warnings: string[];
|
|
445
|
+
}
|
|
446
|
+
|
|
447
|
+
/**
|
|
448
|
+
* Validate an agent manifest
|
|
449
|
+
*/
|
|
450
|
+
export function validateManifest(manifest: Partial<AgentManifest>): ValidationResult {
|
|
451
|
+
const errors: string[] = [];
|
|
452
|
+
const warnings: string[] = [];
|
|
453
|
+
|
|
454
|
+
// Required fields
|
|
455
|
+
if (!manifest.id) errors.push('Missing required field: id');
|
|
456
|
+
if (!manifest.name) errors.push('Missing required field: name');
|
|
457
|
+
if (!manifest.version) errors.push('Missing required field: version');
|
|
458
|
+
if (!manifest.capabilities || manifest.capabilities.length === 0) {
|
|
459
|
+
errors.push('At least one capability is required');
|
|
460
|
+
}
|
|
461
|
+
if (!manifest.endpoints || manifest.endpoints.length === 0) {
|
|
462
|
+
errors.push('At least one endpoint is required');
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
// Validate capabilities
|
|
466
|
+
manifest.capabilities?.forEach((cap, i) => {
|
|
467
|
+
if (!cap.type) errors.push(`Capability ${i}: missing type`);
|
|
468
|
+
if (!cap.domain) errors.push(`Capability ${i}: missing domain`);
|
|
469
|
+
});
|
|
470
|
+
|
|
471
|
+
// Validate endpoints
|
|
472
|
+
manifest.endpoints?.forEach((ep, i) => {
|
|
473
|
+
if (!ep.protocol) errors.push(`Endpoint ${i}: missing protocol`);
|
|
474
|
+
if (!ep.address) errors.push(`Endpoint ${i}: missing address`);
|
|
475
|
+
});
|
|
476
|
+
|
|
477
|
+
// Warnings
|
|
478
|
+
if (!manifest.description) {
|
|
479
|
+
warnings.push('Consider adding a description for better discovery');
|
|
480
|
+
}
|
|
481
|
+
if (!manifest.healthCheckInterval) {
|
|
482
|
+
warnings.push('No health check interval set, agent health may not be tracked');
|
|
483
|
+
}
|
|
484
|
+
if (manifest.trustLevel === 'untrusted') {
|
|
485
|
+
warnings.push('Untrusted agents have limited capabilities');
|
|
486
|
+
}
|
|
487
|
+
|
|
488
|
+
return {
|
|
489
|
+
valid: errors.length === 0,
|
|
490
|
+
errors,
|
|
491
|
+
warnings,
|
|
492
|
+
};
|
|
493
|
+
}
|