@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.
Files changed (329) hide show
  1. package/ALL-test-results.json +1 -0
  2. package/CHANGELOG.md +8 -0
  3. package/LICENSE +21 -0
  4. package/ROADMAP.md +175 -0
  5. package/dist/AgentManifest-CB4xM-Ma.d.cts +704 -0
  6. package/dist/AgentManifest-CB4xM-Ma.d.ts +704 -0
  7. package/dist/BehaviorTree-BrBFECv5.d.cts +103 -0
  8. package/dist/BehaviorTree-BrBFECv5.d.ts +103 -0
  9. package/dist/InvisibleWallet-BB6tFvRA.d.cts +1732 -0
  10. package/dist/InvisibleWallet-rtRrBOA8.d.ts +1732 -0
  11. package/dist/OrchestratorAgent-BvWgf9uw.d.cts +798 -0
  12. package/dist/OrchestratorAgent-Q_CbVTmO.d.ts +798 -0
  13. package/dist/agents/index.cjs +4790 -0
  14. package/dist/agents/index.d.cts +1788 -0
  15. package/dist/agents/index.d.ts +1788 -0
  16. package/dist/agents/index.js +4695 -0
  17. package/dist/ai/index.cjs +5347 -0
  18. package/dist/ai/index.d.cts +1753 -0
  19. package/dist/ai/index.d.ts +1753 -0
  20. package/dist/ai/index.js +5244 -0
  21. package/dist/behavior.cjs +449 -0
  22. package/dist/behavior.d.cts +130 -0
  23. package/dist/behavior.d.ts +130 -0
  24. package/dist/behavior.js +407 -0
  25. package/dist/economy/index.cjs +3659 -0
  26. package/dist/economy/index.d.cts +747 -0
  27. package/dist/economy/index.d.ts +747 -0
  28. package/dist/economy/index.js +3617 -0
  29. package/dist/implementations-D9T3un9D.d.cts +236 -0
  30. package/dist/implementations-D9T3un9D.d.ts +236 -0
  31. package/dist/index.cjs +24550 -0
  32. package/dist/index.d.cts +1729 -0
  33. package/dist/index.d.ts +1729 -0
  34. package/dist/index.js +24277 -0
  35. package/dist/learning/index.cjs +219 -0
  36. package/dist/learning/index.d.cts +104 -0
  37. package/dist/learning/index.d.ts +104 -0
  38. package/dist/learning/index.js +189 -0
  39. package/dist/negotiation/index.cjs +970 -0
  40. package/dist/negotiation/index.d.cts +610 -0
  41. package/dist/negotiation/index.d.ts +610 -0
  42. package/dist/negotiation/index.js +931 -0
  43. package/dist/skills/index.cjs +1118 -0
  44. package/dist/skills/index.d.cts +289 -0
  45. package/dist/skills/index.d.ts +289 -0
  46. package/dist/skills/index.js +1079 -0
  47. package/dist/swarm/index.cjs +5268 -0
  48. package/dist/swarm/index.d.cts +2433 -0
  49. package/dist/swarm/index.d.ts +2433 -0
  50. package/dist/swarm/index.js +5221 -0
  51. package/dist/training/index.cjs +2745 -0
  52. package/dist/training/index.d.cts +1734 -0
  53. package/dist/training/index.d.ts +1734 -0
  54. package/dist/training/index.js +2687 -0
  55. package/extract-failures.js +10 -0
  56. package/package.json +82 -0
  57. package/src/__tests__/bounty-marketplace.test.ts +374 -0
  58. package/src/__tests__/delegation.test.ts +144 -0
  59. package/src/__tests__/distributed-claimer.test.ts +147 -0
  60. package/src/__tests__/done-log-audit.test.ts +342 -0
  61. package/src/__tests__/framework.test.ts +865 -0
  62. package/src/__tests__/goal-synthesizer.test.ts +236 -0
  63. package/src/__tests__/presence.test.ts +223 -0
  64. package/src/__tests__/protocol-agent.test.ts +254 -0
  65. package/src/__tests__/revenue-splitter.test.ts +114 -0
  66. package/src/__tests__/scenario-driven-todo.test.ts +197 -0
  67. package/src/__tests__/self-improve.test.ts +349 -0
  68. package/src/__tests__/service-lifecycle.test.ts +237 -0
  69. package/src/__tests__/skill-router.test.ts +121 -0
  70. package/src/agents/AgentManifest.ts +493 -0
  71. package/src/agents/AgentRegistry.ts +475 -0
  72. package/src/agents/AgentTypes.ts +585 -0
  73. package/src/agents/AgentWalletRegistry.ts +83 -0
  74. package/src/agents/AuthenticatedCRDT.ts +388 -0
  75. package/src/agents/CapabilityMatcher.ts +453 -0
  76. package/src/agents/CrossRealityHandoff.ts +305 -0
  77. package/src/agents/CulturalMemory.ts +454 -0
  78. package/src/agents/FederatedRegistryAdapter.ts +429 -0
  79. package/src/agents/NormEngine.ts +450 -0
  80. package/src/agents/OrchestratorAgent.ts +414 -0
  81. package/src/agents/SkillWorkflowEngine.ts +472 -0
  82. package/src/agents/TaskDelegationService.ts +551 -0
  83. package/src/agents/__tests__/AgentManifest.prod.test.ts +134 -0
  84. package/src/agents/__tests__/AgentManifest.test.ts +182 -0
  85. package/src/agents/__tests__/AgentModule.test.ts +864 -0
  86. package/src/agents/__tests__/AgentRegistry.prod.test.ts +125 -0
  87. package/src/agents/__tests__/AgentRegistry.test.ts +148 -0
  88. package/src/agents/__tests__/AgentTypes.test.ts +534 -0
  89. package/src/agents/__tests__/AgentWalletRegistry.test.ts +152 -0
  90. package/src/agents/__tests__/AuthenticatedCRDT.test.ts +558 -0
  91. package/src/agents/__tests__/CapabilityMatcher.prod.test.ts +117 -0
  92. package/src/agents/__tests__/CapabilityMatcher.test.ts +178 -0
  93. package/src/agents/__tests__/CrossRealityHandoff.test.ts +402 -0
  94. package/src/agents/__tests__/CulturalMemory.test.ts +200 -0
  95. package/src/agents/__tests__/FederatedRegistryAdapter.test.ts +409 -0
  96. package/src/agents/__tests__/NormEngine.test.ts +276 -0
  97. package/src/agents/__tests__/OrchestratorAgent.test.ts +182 -0
  98. package/src/agents/__tests__/SkillWorkflowEngine.test.ts +357 -0
  99. package/src/agents/__tests__/TaskDelegationService.test.ts +446 -0
  100. package/src/agents/index.ts +107 -0
  101. package/src/agents/spatial-comms/Layer1RealTime.ts +621 -0
  102. package/src/agents/spatial-comms/Layer2A2A.ts +661 -0
  103. package/src/agents/spatial-comms/Layer3MCP.ts +651 -0
  104. package/src/agents/spatial-comms/ProtocolTypes.ts +543 -0
  105. package/src/agents/spatial-comms/SpatialCommClient.ts +483 -0
  106. package/src/agents/spatial-comms/__tests__/performance-benchmark.test.ts +465 -0
  107. package/src/agents/spatial-comms/examples/multi-agent-world-creation.ts +409 -0
  108. package/src/agents/spatial-comms/index.ts +66 -0
  109. package/src/ai/AIAdapter.ts +313 -0
  110. package/src/ai/AICopilot.ts +331 -0
  111. package/src/ai/AIOutputValidator.ts +203 -0
  112. package/src/ai/BTNodes.ts +239 -0
  113. package/src/ai/BehaviorSelector.ts +135 -0
  114. package/src/ai/BehaviorTree.ts +153 -0
  115. package/src/ai/Blackboard.ts +165 -0
  116. package/src/ai/GenerationAnalytics.ts +461 -0
  117. package/src/ai/GenerationCache.ts +265 -0
  118. package/src/ai/GoalPlanner.ts +165 -0
  119. package/src/ai/HoloScriptGenerator.ts +580 -0
  120. package/src/ai/InfluenceMap.ts +180 -0
  121. package/src/ai/NavMesh.ts +168 -0
  122. package/src/ai/PerceptionSystem.ts +178 -0
  123. package/src/ai/PromptTemplates.ts +453 -0
  124. package/src/ai/SemanticSearchService.ts +80 -0
  125. package/src/ai/StateMachine.ts +196 -0
  126. package/src/ai/SteeringBehavior.ts +150 -0
  127. package/src/ai/SteeringBehaviors.ts +244 -0
  128. package/src/ai/TrainingDataGenerator.ts +1082 -0
  129. package/src/ai/UtilityAI.ts +145 -0
  130. package/src/ai/__tests__/AIAdapter.prod.test.ts +259 -0
  131. package/src/ai/__tests__/AIAdapter.test.ts +109 -0
  132. package/src/ai/__tests__/AICopilot.prod.test.ts +341 -0
  133. package/src/ai/__tests__/AICopilot.test.ts +178 -0
  134. package/src/ai/__tests__/AIOutputValidator.prod.test.ts +226 -0
  135. package/src/ai/__tests__/AIOutputValidator.test.ts +138 -0
  136. package/src/ai/__tests__/BTNodes.prod.test.ts +391 -0
  137. package/src/ai/__tests__/BTNodes.test.ts +263 -0
  138. package/src/ai/__tests__/BehaviorSelector.prod.test.ts +129 -0
  139. package/src/ai/__tests__/BehaviorSelector.test.ts +132 -0
  140. package/src/ai/__tests__/BehaviorTree.prod.test.ts +266 -0
  141. package/src/ai/__tests__/BehaviorTree.test.ts +216 -0
  142. package/src/ai/__tests__/Blackboard.prod.test.ts +339 -0
  143. package/src/ai/__tests__/Blackboard.test.ts +183 -0
  144. package/src/ai/__tests__/GenerationAnalytics.prod.test.ts +141 -0
  145. package/src/ai/__tests__/GenerationAnalytics.test.ts +165 -0
  146. package/src/ai/__tests__/GenerationCache.prod.test.ts +144 -0
  147. package/src/ai/__tests__/GenerationCache.test.ts +171 -0
  148. package/src/ai/__tests__/GoalPlanner.prod.test.ts +189 -0
  149. package/src/ai/__tests__/GoalPlanner.test.ts +137 -0
  150. package/src/ai/__tests__/GoalPlannerDepth.prod.test.ts +217 -0
  151. package/src/ai/__tests__/HoloScriptGenerator.test.ts +125 -0
  152. package/src/ai/__tests__/InfluenceMap.prod.test.ts +146 -0
  153. package/src/ai/__tests__/InfluenceMap.test.ts +149 -0
  154. package/src/ai/__tests__/NavMesh.prod.test.ts +141 -0
  155. package/src/ai/__tests__/NavMesh.test.ts +159 -0
  156. package/src/ai/__tests__/PerceptionSystem.prod.test.ts +135 -0
  157. package/src/ai/__tests__/PerceptionSystem.test.ts +250 -0
  158. package/src/ai/__tests__/PromptTemplates.prod.test.ts +313 -0
  159. package/src/ai/__tests__/PromptTemplates.test.ts +146 -0
  160. package/src/ai/__tests__/SemanticSearch.test.ts +37 -0
  161. package/src/ai/__tests__/StateMachine.prod.test.ts +162 -0
  162. package/src/ai/__tests__/StateMachine.test.ts +163 -0
  163. package/src/ai/__tests__/SteeringBehavior.prod.test.ts +251 -0
  164. package/src/ai/__tests__/SteeringBehavior.test.ts +135 -0
  165. package/src/ai/__tests__/SteeringBehaviors.prod.test.ts +133 -0
  166. package/src/ai/__tests__/SteeringBehaviors.test.ts +151 -0
  167. package/src/ai/__tests__/TrainingDataGenerator.prod.test.ts +286 -0
  168. package/src/ai/__tests__/TrainingDataGenerator.test.ts +286 -0
  169. package/src/ai/__tests__/UtilityAI.prod.test.ts +207 -0
  170. package/src/ai/__tests__/UtilityAI.test.ts +155 -0
  171. package/src/ai/__tests__/adapters.prod.test.ts +263 -0
  172. package/src/ai/__tests__/adapters.test.ts +320 -0
  173. package/src/ai/adapters.ts +1585 -0
  174. package/src/ai/index.ts +130 -0
  175. package/src/behavior/BehaviorPresets.ts +140 -0
  176. package/src/behavior/BehaviorTree.ts +236 -0
  177. package/src/behavior/StateMachine.ts +176 -0
  178. package/src/behavior/StateTrait.ts +67 -0
  179. package/src/behavior/index.ts +8 -0
  180. package/src/behavior.ts +8 -0
  181. package/src/board/audit.ts +284 -0
  182. package/src/board/board-ops.ts +336 -0
  183. package/src/board/board-types.ts +302 -0
  184. package/src/board/index.ts +69 -0
  185. package/src/define-agent.ts +46 -0
  186. package/src/define-team.ts +33 -0
  187. package/src/delegation.ts +265 -0
  188. package/src/distributed-claimer.ts +228 -0
  189. package/src/economy/AgentBudgetEnforcer.ts +464 -0
  190. package/src/economy/BountyManager.ts +185 -0
  191. package/src/economy/CreatorRevenueAggregator.ts +460 -0
  192. package/src/economy/InvisibleWallet.ts +82 -0
  193. package/src/economy/KnowledgeMarketplace.ts +193 -0
  194. package/src/economy/PaymentWebhookService.ts +512 -0
  195. package/src/economy/RevenueSplitter.ts +156 -0
  196. package/src/economy/SubscriptionManager.ts +546 -0
  197. package/src/economy/UnifiedBudgetOptimizer.ts +635 -0
  198. package/src/economy/UsageMeter.ts +440 -0
  199. package/src/economy/_core-stubs.ts +219 -0
  200. package/src/economy/index.ts +100 -0
  201. package/src/economy/x402-facilitator.ts +1978 -0
  202. package/src/index.ts +348 -0
  203. package/src/knowledge/__tests__/knowledge-consolidator.test.ts +444 -0
  204. package/src/knowledge/__tests__/knowledge-store-vector.test.ts +291 -0
  205. package/src/knowledge/brain.ts +167 -0
  206. package/src/knowledge/consolidation.ts +581 -0
  207. package/src/knowledge/knowledge-consolidator.ts +510 -0
  208. package/src/knowledge/knowledge-store.ts +616 -0
  209. package/src/learning/MemoryConsolidator.ts +102 -0
  210. package/src/learning/MemoryScorer.ts +69 -0
  211. package/src/learning/ProceduralCompiler.ts +45 -0
  212. package/src/learning/SemanticClusterer.ts +66 -0
  213. package/src/learning/index.ts +8 -0
  214. package/src/llm/llm-adapter.ts +159 -0
  215. package/src/mesh/index.ts +309 -0
  216. package/src/negotiation/NegotiationProtocol.ts +694 -0
  217. package/src/negotiation/NegotiationTypes.ts +473 -0
  218. package/src/negotiation/VotingMechanisms.ts +691 -0
  219. package/src/negotiation/index.ts +49 -0
  220. package/src/protocol/goal-synthesizer.ts +317 -0
  221. package/src/protocol/implementations.ts +474 -0
  222. package/src/protocol/micro-phase-decomposer.ts +299 -0
  223. package/src/protocol/micro-step-decomposer.test.ts +306 -0
  224. package/src/protocol-agent.test.ts +353 -0
  225. package/src/protocol-agent.ts +670 -0
  226. package/src/self-improve/absorb-scanner.ts +252 -0
  227. package/src/self-improve/evolution-engine.ts +149 -0
  228. package/src/self-improve/framework-absorber.ts +214 -0
  229. package/src/self-improve/index.ts +50 -0
  230. package/src/self-improve/prompt-optimizer.ts +212 -0
  231. package/src/self-improve/test-generator.ts +175 -0
  232. package/src/skill-router.ts +186 -0
  233. package/src/skills/index.ts +5 -0
  234. package/src/skills/skill-md-bridge.ts +1699 -0
  235. package/src/swarm/ACOEngine.ts +261 -0
  236. package/src/swarm/CollectiveIntelligence.ts +383 -0
  237. package/src/swarm/ContributionSynthesizer.ts +481 -0
  238. package/src/swarm/LeaderElection.ts +393 -0
  239. package/src/swarm/PSOEngine.ts +206 -0
  240. package/src/swarm/QuorumPolicy.ts +173 -0
  241. package/src/swarm/SwarmCoordinator.ts +335 -0
  242. package/src/swarm/SwarmManager.ts +442 -0
  243. package/src/swarm/SwarmMembership.ts +456 -0
  244. package/src/swarm/VotingRound.ts +255 -0
  245. package/src/swarm/__tests__/ACOEngine.prod.test.ts +164 -0
  246. package/src/swarm/__tests__/ACOEngine.test.ts +117 -0
  247. package/src/swarm/__tests__/CollectiveIntelligence.prod.test.ts +296 -0
  248. package/src/swarm/__tests__/CollectiveIntelligence.test.ts +457 -0
  249. package/src/swarm/__tests__/ContributionSynthesizer.prod.test.ts +269 -0
  250. package/src/swarm/__tests__/ContributionSynthesizer.test.ts +254 -0
  251. package/src/swarm/__tests__/LeaderElection.prod.test.ts +196 -0
  252. package/src/swarm/__tests__/LeaderElection.test.ts +151 -0
  253. package/src/swarm/__tests__/PSOEngine.prod.test.ts +162 -0
  254. package/src/swarm/__tests__/PSOEngine.test.ts +106 -0
  255. package/src/swarm/__tests__/QuorumPolicy.prod.test.ts +216 -0
  256. package/src/swarm/__tests__/QuorumPolicy.test.ts +177 -0
  257. package/src/swarm/__tests__/SwarmCoordinator.prod.test.ts +186 -0
  258. package/src/swarm/__tests__/SwarmCoordinator.test.ts +167 -0
  259. package/src/swarm/__tests__/SwarmManager.prod.test.ts +308 -0
  260. package/src/swarm/__tests__/SwarmManager.test.ts +373 -0
  261. package/src/swarm/__tests__/SwarmMembership.prod.test.ts +273 -0
  262. package/src/swarm/__tests__/SwarmMembership.test.ts +264 -0
  263. package/src/swarm/__tests__/VotingRound.prod.test.ts +233 -0
  264. package/src/swarm/__tests__/VotingRound.test.ts +174 -0
  265. package/src/swarm/analytics/SwarmInspector.ts +476 -0
  266. package/src/swarm/analytics/SwarmMetrics.ts +449 -0
  267. package/src/swarm/analytics/__tests__/SwarmInspector.prod.test.ts +366 -0
  268. package/src/swarm/analytics/__tests__/SwarmInspector.test.ts +454 -0
  269. package/src/swarm/analytics/__tests__/SwarmMetrics.prod.test.ts +254 -0
  270. package/src/swarm/analytics/__tests__/SwarmMetrics.test.ts +370 -0
  271. package/src/swarm/analytics/index.ts +7 -0
  272. package/src/swarm/index.ts +69 -0
  273. package/src/swarm/messaging/BroadcastChannel.ts +509 -0
  274. package/src/swarm/messaging/GossipProtocol.ts +565 -0
  275. package/src/swarm/messaging/SwarmEventBus.ts +443 -0
  276. package/src/swarm/messaging/__tests__/BroadcastChannel.prod.test.ts +331 -0
  277. package/src/swarm/messaging/__tests__/BroadcastChannel.test.ts +333 -0
  278. package/src/swarm/messaging/__tests__/GossipProtocol.prod.test.ts +356 -0
  279. package/src/swarm/messaging/__tests__/GossipProtocol.test.ts +437 -0
  280. package/src/swarm/messaging/__tests__/SwarmEventBus.prod.test.ts +191 -0
  281. package/src/swarm/messaging/__tests__/SwarmEventBus.test.ts +247 -0
  282. package/src/swarm/messaging/index.ts +8 -0
  283. package/src/swarm/spatial/FlockingBehavior.ts +462 -0
  284. package/src/swarm/spatial/FormationController.ts +500 -0
  285. package/src/swarm/spatial/Vector3.ts +170 -0
  286. package/src/swarm/spatial/ZoneClaiming.ts +509 -0
  287. package/src/swarm/spatial/__tests__/FlockingBehavior.prod.test.ts +239 -0
  288. package/src/swarm/spatial/__tests__/FlockingBehavior.test.ts +298 -0
  289. package/src/swarm/spatial/__tests__/FormationController.prod.test.ts +240 -0
  290. package/src/swarm/spatial/__tests__/FormationController.test.ts +297 -0
  291. package/src/swarm/spatial/__tests__/Vector3.prod.test.ts +283 -0
  292. package/src/swarm/spatial/__tests__/Vector3.test.ts +224 -0
  293. package/src/swarm/spatial/__tests__/ZoneClaiming.prod.test.ts +246 -0
  294. package/src/swarm/spatial/__tests__/ZoneClaiming.test.ts +374 -0
  295. package/src/swarm/spatial/index.ts +28 -0
  296. package/src/team.ts +1245 -0
  297. package/src/training/LRScheduler.ts +377 -0
  298. package/src/training/QualityScoringPipeline.ts +139 -0
  299. package/src/training/SoftDedup.ts +461 -0
  300. package/src/training/SparsityMonitor.ts +685 -0
  301. package/src/training/SparsityMonitorTypes.ts +209 -0
  302. package/src/training/SpatialTrainingDataGenerator.ts +1526 -0
  303. package/src/training/SpatialTrainingDataTypes.ts +216 -0
  304. package/src/training/TrainingPipelineConfig.ts +215 -0
  305. package/src/training/constants.ts +94 -0
  306. package/src/training/index.ts +138 -0
  307. package/src/training/schema.ts +147 -0
  308. package/src/training/scripts/generate-novel-use-cases-dataset.ts +272 -0
  309. package/src/training/scripts/generate-spatial-dataset.ts +521 -0
  310. package/src/training/training/data/novel-use-cases.jsonl +153 -0
  311. package/src/training/training/data/spatial-reasoning-10k.jsonl +9354 -0
  312. package/src/training/trainingmonkey/TrainingMonkeyIntegration.ts +477 -0
  313. package/src/training/trainingmonkey/TrainingMonkeyTypes.ts +230 -0
  314. package/src/training/trainingmonkey/index.ts +26 -0
  315. package/src/training/trait-mappings.ts +157 -0
  316. package/src/types/core-stubs.d.ts +113 -0
  317. package/src/types.ts +304 -0
  318. package/test-output.txt +0 -0
  319. package/test-result.json +1 -0
  320. package/tsc-errors.txt +4 -0
  321. package/tsc_output.txt +0 -0
  322. package/tsconfig.json +14 -0
  323. package/tsup-learning-esm.config.ts +12 -0
  324. package/tsup.config.ts +21 -0
  325. package/typescript-errors-2.txt +0 -0
  326. package/typescript-errors.txt +22 -0
  327. package/vitest-log-utf8.txt +268 -0
  328. package/vitest-log.txt +0 -0
  329. 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
+ }