@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,473 @@
1
+ /**
2
+ * @holoscript/core - Negotiation Type Definitions
3
+ *
4
+ * Types for agent negotiation, voting, and conflict resolution.
5
+ * Part of HoloScript v3.1 Agentic Choreography.
6
+ *
7
+ * @version 3.1.0
8
+ * @Sprint v3.1 (March 2026)
9
+ */
10
+
11
+ import type { AgentManifest } from '../agents/AgentManifest';
12
+
13
+ // =============================================================================
14
+ // NEGOTIATION STATUS
15
+ // =============================================================================
16
+
17
+ /**
18
+ * Status of a negotiation session
19
+ */
20
+ export type NegotiationStatus =
21
+ | 'draft'
22
+ | 'open'
23
+ | 'proposing'
24
+ | 'voting'
25
+ | 'resolving'
26
+ | 'resolved'
27
+ | 'deadlock'
28
+ | 'deadlocked'
29
+ | 'timeout'
30
+ | 'escalated'
31
+ | 'failed'
32
+ | 'cancelled';
33
+
34
+ /**
35
+ * Voting mechanism type
36
+ */
37
+ export type VotingMechanism =
38
+ | 'majority' // Simple majority wins
39
+ | 'supermajority' // 2/3 majority required
40
+ | 'weighted' // Weight by trust level
41
+ | 'consensus' // All must agree
42
+ | 'ranked' // Ranked choice / instant runoff
43
+ | 'approval' // Multiple approval voting
44
+ | 'borda' // Borda count
45
+ | 'custom'; // Custom mechanism
46
+
47
+ /**
48
+ * Proposal status
49
+ */
50
+ export type ProposalStatus =
51
+ | 'pending'
52
+ | 'submitted'
53
+ | 'under_review'
54
+ | 'accepted'
55
+ | 'rejected'
56
+ | 'withdrawn';
57
+
58
+ /**
59
+ * Resolution outcome
60
+ */
61
+ export type ResolutionOutcome =
62
+ | 'winner_declared'
63
+ | 'tie_broken'
64
+ | 'consensus_reached'
65
+ | 'deadlock'
66
+ | 'timeout'
67
+ | 'escalated'
68
+ | 'quorum_not_met'
69
+ | 'cancelled';
70
+
71
+ /**
72
+ * Tie-breaker strategy
73
+ */
74
+ export type TieBreaker = 'random' | 'seniority' | 'priority' | 'proposer' | 'escalate';
75
+
76
+ // =============================================================================
77
+ // PROPOSALS
78
+ // =============================================================================
79
+
80
+ /**
81
+ * A proposal in a negotiation
82
+ */
83
+ export interface Proposal {
84
+ /** Unique proposal ID */
85
+ id: string;
86
+ /** Session this proposal belongs to */
87
+ sessionId?: string;
88
+ /** ID of the proposing agent */
89
+ proposerId?: string;
90
+ /** Proposal title */
91
+ title?: string;
92
+ /** Proposal description */
93
+ description?: string;
94
+ /** ID of the proposing agent (legacy) */
95
+ agentId: string;
96
+ /** Proposal content/value */
97
+ content: unknown;
98
+ /** Priority weight (higher = more important to proposer) */
99
+ priority: number;
100
+ /** Reasoning/justification */
101
+ reasoning?: string;
102
+ /** Resource requirements */
103
+ resources?: ResourceRequest[];
104
+ /** Time constraints */
105
+ timeline?: {
106
+ earliest?: number;
107
+ latest?: number;
108
+ duration?: number;
109
+ };
110
+ /** Proposal status */
111
+ status: ProposalStatus;
112
+ /** Submission timestamp */
113
+ submittedAt: number;
114
+ /** Last modified timestamp */
115
+ modifiedAt?: number;
116
+ /** Custom metadata */
117
+ metadata?: Record<string, unknown>;
118
+ }
119
+
120
+ /**
121
+ * Input for creating a proposal
122
+ */
123
+ export interface ProposalInput {
124
+ /** ID of the proposing agent */
125
+ proposerId: string;
126
+ /** Proposal title */
127
+ title: string;
128
+ /** Proposal description */
129
+ description?: string;
130
+ /** Proposal content/value */
131
+ content: unknown;
132
+ /** Priority weight */
133
+ priority?: number;
134
+ /** Custom metadata */
135
+ metadata?: Record<string, unknown>;
136
+ }
137
+
138
+ /**
139
+ * Resource request in a proposal
140
+ */
141
+ export interface ResourceRequest {
142
+ /** Resource type */
143
+ type: string;
144
+ /** Amount requested */
145
+ amount: number;
146
+ /** Unit of measurement */
147
+ unit?: string;
148
+ /** Whether exclusive access is needed */
149
+ exclusive?: boolean;
150
+ }
151
+
152
+ // =============================================================================
153
+ // VOTES
154
+ // =============================================================================
155
+
156
+ /**
157
+ * A vote cast by an agent
158
+ */
159
+ export interface Vote {
160
+ /** Unique vote ID */
161
+ id?: string;
162
+ /** Session ID */
163
+ sessionId?: string;
164
+ /** Voting agent ID */
165
+ agentId: string;
166
+ /** Ranked preferences (proposal IDs) */
167
+ ranking: string[];
168
+ /** Approval set (for approval voting) */
169
+ approvals?: string[];
170
+ /** Vote weight (determined by trust level) */
171
+ weight: number;
172
+ /** Optional vote reason/justification */
173
+ reason?: string;
174
+ /** Optional justification */
175
+ justification?: string;
176
+ /** Whether this is an abstention */
177
+ abstain?: boolean;
178
+ /** Vote timestamp */
179
+ timestamp: number;
180
+ /** If this vote was superseded by another */
181
+ supersededBy?: string;
182
+ }
183
+
184
+ /**
185
+ * Input for casting a vote
186
+ */
187
+ export interface VoteInput {
188
+ /** Voting agent ID */
189
+ agentId: string;
190
+ /** Ranked preferences */
191
+ ranking?: string[];
192
+ /** Approval set */
193
+ approvals?: string[];
194
+ /** Vote weight */
195
+ weight?: number;
196
+ /** Justification */
197
+ justification?: string;
198
+ /** Abstain from voting */
199
+ abstain?: boolean;
200
+ }
201
+
202
+ /**
203
+ * Vote tally result
204
+ */
205
+ export interface VoteTally {
206
+ /** Proposal ID */
207
+ proposalId: string;
208
+ /** Total votes received */
209
+ voteCount: number;
210
+ /** Weighted score */
211
+ weightedScore: number;
212
+ /** Approval count */
213
+ approvalCount?: number;
214
+ /** Borda points */
215
+ bordaPoints?: number;
216
+ /** Percentage of votes */
217
+ percentage: number;
218
+ }
219
+
220
+ // =============================================================================
221
+ // NEGOTIATION SESSION
222
+ // =============================================================================
223
+
224
+ /**
225
+ * Negotiation session configuration
226
+ */
227
+ export interface NegotiationConfig {
228
+ /** Voting mechanism */
229
+ mechanism: VotingMechanism;
230
+ /** Voting mechanism (alias) */
231
+ votingMechanism?: VotingMechanism;
232
+ /** Session timeout (ms) */
233
+ timeout?: number;
234
+ /** Proposal deadline (ms from start) */
235
+ proposalDeadline?: number;
236
+ /** Voting deadline (ms from start) */
237
+ votingDeadline?: number;
238
+ /** Maximum rounds before deadlock */
239
+ maxRounds?: number;
240
+ /** Tie-breaking strategy */
241
+ tieBreaker?: TieBreaker;
242
+ /** Minimum participation ratio */
243
+ quorum?: number;
244
+ /** Allow proposal amendments */
245
+ allowAmendments?: boolean;
246
+ /** Anonymous voting */
247
+ anonymousVoting?: boolean;
248
+ /** Allow delegation */
249
+ allowDelegation?: boolean;
250
+ /** Allow agents to abstain */
251
+ allowAbstain?: boolean;
252
+ /** Require justification for votes */
253
+ requireJustification?: boolean;
254
+ /** Auto-escalate on deadlock */
255
+ escalateOnDeadlock?: boolean;
256
+ /** Escalation target */
257
+ escalationTarget?: string;
258
+ /** Escalation path */
259
+ escalationPath?: string;
260
+ }
261
+
262
+ /**
263
+ * Default negotiation configuration
264
+ */
265
+ export const DEFAULT_NEGOTIATION_CONFIG: NegotiationConfig = {
266
+ mechanism: 'majority',
267
+ proposalDeadline: 30000, // 30s
268
+ votingDeadline: 30000, // 30s
269
+ maxRounds: 3,
270
+ tieBreaker: 'priority',
271
+ quorum: 0.5,
272
+ allowAmendments: true,
273
+ anonymousVoting: false,
274
+ allowDelegation: false,
275
+ escalateOnDeadlock: true,
276
+ };
277
+
278
+ /**
279
+ * Negotiation session
280
+ */
281
+ export interface NegotiationSession {
282
+ /** Unique session ID */
283
+ id: string;
284
+ /** Negotiation topic */
285
+ topic: string;
286
+ /** Description */
287
+ description?: string;
288
+ /** Participating agent IDs (can be strings or full manifests) */
289
+ participants: (string | AgentManifest)[];
290
+ /** Session configuration */
291
+ config: NegotiationConfig;
292
+ /** Submitted proposals */
293
+ proposals: Proposal[];
294
+ /** Cast votes */
295
+ votes: Vote[];
296
+ /** Current status */
297
+ status: NegotiationStatus;
298
+ /** Current round number */
299
+ round: number;
300
+ /** Current round (alias) */
301
+ currentRound?: number;
302
+ /** Session creation time */
303
+ createdAt?: number;
304
+ /** Session start time */
305
+ startedAt: number;
306
+ /** Last activity timestamp */
307
+ lastActivityAt: number;
308
+ /** Deadline timestamp */
309
+ deadline?: number;
310
+ /** Resolution result */
311
+ resolution?: Resolution;
312
+ /** Session resolution timestamp */
313
+ resolvedAt?: number;
314
+ /** Session history/log */
315
+ history: NegotiationEvent[];
316
+ /** Custom metadata */
317
+ metadata?: Record<string, unknown>;
318
+ }
319
+
320
+ /**
321
+ * Negotiation event for history
322
+ */
323
+ export interface NegotiationEvent {
324
+ /** Event type */
325
+ type:
326
+ | 'session_created'
327
+ | 'session_started'
328
+ | 'proposal_submitted'
329
+ | 'proposal_amended'
330
+ | 'proposal_withdrawn'
331
+ | 'voting_started'
332
+ | 'vote_cast'
333
+ | 'round_complete'
334
+ | 'resolution_reached'
335
+ | 'deadlock_detected'
336
+ | 'escalation_triggered'
337
+ | 'session_cancelled';
338
+ /** Event timestamp */
339
+ timestamp: number;
340
+ /** Related agent ID */
341
+ agentId?: string;
342
+ /** Related proposal ID */
343
+ proposalId?: string;
344
+ /** Event details */
345
+ details?: Record<string, unknown>;
346
+ }
347
+
348
+ // =============================================================================
349
+ // RESOLUTION
350
+ // =============================================================================
351
+
352
+ /**
353
+ * Resolution of a negotiation
354
+ */
355
+ export interface Resolution {
356
+ /** Session ID */
357
+ sessionId?: string;
358
+ /** Winning proposal ID */
359
+ winnerId?: string;
360
+ /** Winning proposal */
361
+ winner?: Proposal;
362
+ /** Winning proposal (alias) */
363
+ winningProposal?: Proposal;
364
+ /** Final tallies */
365
+ tallies: VoteTally[];
366
+ /** Final tallies (alias) */
367
+ finalTallies?: VoteTally[];
368
+ /** Resolution outcome */
369
+ outcome: ResolutionOutcome;
370
+ /** Resolution mechanism used */
371
+ mechanism: VotingMechanism;
372
+ /** Number of rounds taken */
373
+ rounds: number;
374
+ /** Round (alias) */
375
+ round?: number;
376
+ /** Resolution timestamp */
377
+ resolvedAt: number;
378
+ /** Timestamp (alias) */
379
+ timestamp?: number;
380
+ /** Tie-breaker used (if any) */
381
+ tieBreakerUsed?: boolean;
382
+ /** Consensus level (0-1) */
383
+ consensusLevel?: number;
384
+ /** Dissenting agents */
385
+ dissenters?: string[];
386
+ /** Participation rate (0-1) */
387
+ participationRate?: number;
388
+ /** Escalation target */
389
+ escalatedTo?: string;
390
+ /** Notes */
391
+ notes?: string;
392
+ }
393
+
394
+ // =============================================================================
395
+ // DELEGATION
396
+ // =============================================================================
397
+
398
+ /**
399
+ * Vote delegation
400
+ */
401
+ export interface Delegation {
402
+ /** Delegating agent ID */
403
+ fromAgentId: string;
404
+ /** Delegatee agent ID */
405
+ toAgentId: string;
406
+ /** Session ID */
407
+ sessionId: string;
408
+ /** Created timestamp */
409
+ createdAt: number;
410
+ /** Revoked timestamp */
411
+ revokedAt?: number;
412
+ }
413
+
414
+ // =============================================================================
415
+ // NEGOTIATION EVENTS (for EventEmitter)
416
+ // =============================================================================
417
+
418
+ /**
419
+ * Events emitted by NegotiationProtocol
420
+ */
421
+ export interface NegotiationEvents {
422
+ 'session:created': (session: NegotiationSession) => void;
423
+ 'session:started': (session: NegotiationSession) => void;
424
+ 'session:cancelled': (sessionId: string, reason: string) => void;
425
+ 'proposal:submitted': (proposal: Proposal, session: NegotiationSession) => void;
426
+ 'proposal:amended': (proposal: Proposal, session: NegotiationSession) => void;
427
+ 'proposal:withdrawn': (proposalId: string, session: NegotiationSession) => void;
428
+ 'voting:started': (session: NegotiationSession) => void;
429
+ 'vote:cast': (vote: Vote, session: NegotiationSession) => void;
430
+ 'round:complete': (round: number, session: NegotiationSession) => void;
431
+ 'resolution:reached': (resolution: Resolution, session: NegotiationSession) => void;
432
+ 'deadlock:detected': (session: NegotiationSession) => void;
433
+ 'escalation:triggered': (session: NegotiationSession, target: string) => void;
434
+ // Simple event names for protocol
435
+ sessionStarted: { session: NegotiationSession };
436
+ proposalSubmitted: { session: NegotiationSession; proposal: Proposal };
437
+ voteReceived: { session: NegotiationSession; vote: Vote };
438
+ sessionResolved: { session: NegotiationSession; resolution: Resolution };
439
+ }
440
+
441
+ // =============================================================================
442
+ // INITIATE OPTIONS
443
+ // =============================================================================
444
+
445
+ /**
446
+ * Options for initiating a negotiation session
447
+ */
448
+ export interface InitiateOptions {
449
+ /** Negotiation topic */
450
+ topic: string;
451
+ /** Description */
452
+ description?: string;
453
+ /** Participating agent IDs */
454
+ participants: string[];
455
+ /** Voting mechanism */
456
+ votingMechanism?: VotingMechanism;
457
+ /** Session timeout (ms) */
458
+ timeout?: number;
459
+ /** Quorum requirement (0-1) */
460
+ quorum?: number;
461
+ /** Maximum rounds */
462
+ maxRounds?: number;
463
+ /** Allow abstention */
464
+ allowAbstain?: boolean;
465
+ /** Require vote justification */
466
+ requireJustification?: boolean;
467
+ /** Tie-breaker strategy */
468
+ tieBreaker?: TieBreaker;
469
+ /** Escalation path */
470
+ escalationPath?: string;
471
+ /** Custom metadata */
472
+ metadata?: Record<string, unknown>;
473
+ }