@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,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
|
+
}
|