@holoscript/framework 6.0.3 → 6.0.4
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/CHANGELOG.md +1 -2
- package/ROADMAP.md +68 -66
- package/dist/{InvisibleWallet-BB6tFvRA.d.cts → InvisibleWallet-EFiuaLn3.d.cts} +1 -1
- package/dist/{OrchestratorAgent-BvWgf9uw.d.cts → OrchestratorAgent-CrLDGNL6.d.cts} +1 -1
- package/dist/agents/index.cjs +11 -10
- package/dist/agents/index.d.cts +4 -16
- package/dist/ai/index.cjs +2 -2
- package/dist/behavior.cjs +10 -0
- package/dist/economy/index.cjs +4 -4
- package/dist/economy/index.d.cts +2 -2
- package/dist/index.cjs +33 -11
- package/dist/index.d.cts +3 -3
- package/dist/swarm/index.cjs +3 -0
- package/package.json +14 -9
- package/src/__tests__/bounty-marketplace.test.ts +53 -21
- package/src/__tests__/delegation.test.ts +1 -4
- package/src/__tests__/done-log-audit.test.ts +38 -46
- package/src/__tests__/framework.test.ts +172 -53
- package/src/__tests__/goal-synthesizer.test.ts +9 -6
- package/src/__tests__/presence.test.ts +1 -1
- package/src/__tests__/protocol-agent.test.ts +12 -11
- package/src/__tests__/revenue-splitter.test.ts +22 -15
- package/src/__tests__/scenario-driven-todo.test.ts +55 -35
- package/src/__tests__/self-improve.test.ts +28 -9
- package/src/__tests__/service-lifecycle.test.ts +9 -3
- package/src/__tests__/skill-router.test.ts +3 -3
- package/src/agents/CulturalMemory.ts +6 -6
- package/src/agents/DelegationTraceHooks.ts +560 -0
- package/src/agents/FederatedRegistryAdapter.ts +1 -1
- package/src/agents/NormEngine.ts +3 -8
- package/src/agents/OrchestratorAgent.ts +1 -1
- package/src/agents/TaskDelegationService.ts +5 -9
- package/src/agents/__tests__/AgentWalletRegistry.test.ts +5 -4
- package/src/agents/__tests__/CrossRealityHandoff.test.ts +9 -3
- package/src/agents/__tests__/DelegationTraceHooks.test.ts +390 -0
- package/src/agents/__tests__/TaskDelegationService.test.ts +4 -2
- package/src/agents/spatial-comms/Layer1RealTime.ts +36 -19
- package/src/agents/spatial-comms/Layer2A2A.ts +1 -3
- package/src/agents/spatial-comms/Layer3MCP.ts +13 -4
- package/src/agents/spatial-comms/ProtocolTypes.ts +5 -2
- package/src/agents/spatial-comms/examples/multi-agent-world-creation.ts +2 -2
- package/src/ai/HoloScriptGenerator.ts +2 -2
- package/src/ai/__tests__/PerceptionSystem.prod.test.ts +1 -1
- package/src/ai/__tests__/PerceptionSystem.test.ts +14 -14
- package/src/ai/__tests__/SteeringBehaviors.prod.test.ts +1 -1
- package/src/ai/index.ts +5 -1
- package/src/board/audit.ts +17 -6
- package/src/board/board-ops.ts +45 -15
- package/src/board/board-types.ts +94 -20
- package/src/delegation.ts +5 -3
- package/src/distributed-claimer.ts +13 -2
- package/src/economy/BountyManager.ts +40 -18
- package/src/economy/KnowledgeMarketplace.ts +27 -8
- package/src/economy/PaymentWebhookService.ts +0 -1
- package/src/economy/RevenueSplitter.ts +2 -4
- package/src/economy/UnifiedBudgetOptimizer.ts +8 -9
- package/src/economy/_core-stubs.ts +1 -1
- package/src/economy/x402-facilitator.ts +17 -8
- package/src/index.ts +16 -12
- package/src/knowledge/__tests__/knowledge-consolidator.test.ts +138 -89
- package/src/knowledge/__tests__/knowledge-store-vector.test.ts +59 -16
- package/src/knowledge/brain.ts +7 -7
- package/src/knowledge/consolidation.ts +16 -16
- package/src/knowledge/knowledge-consolidator.ts +60 -30
- package/src/knowledge/knowledge-store.ts +83 -45
- package/src/learning/ProceduralCompiler.ts +6 -1
- package/src/learning/learning/MemoryConsolidator.ts +102 -0
- package/src/learning/learning/MemoryScorer.ts +69 -0
- package/src/learning/learning/ProceduralCompiler.ts +45 -0
- package/src/learning/learning/SemanticClusterer.ts +66 -0
- package/src/llm/llm-adapter.ts +24 -10
- package/src/mesh/index.ts +37 -17
- package/src/protocol/goal-synthesizer.ts +24 -34
- package/src/protocol/implementations.ts +91 -22
- package/src/protocol/micro-phase-decomposer.ts +25 -17
- package/src/protocol/micro-step-decomposer.test.ts +104 -39
- package/src/protocol-agent.test.ts +17 -7
- package/src/protocol-agent.ts +45 -42
- package/src/self-improve/absorb-scanner.ts +9 -6
- package/src/self-improve/evolution-engine.ts +36 -18
- package/src/self-improve/framework-absorber.ts +21 -16
- package/src/self-improve/index.ts +2 -10
- package/src/self-improve/prompt-optimizer.ts +31 -19
- package/src/self-improve/test-generator.ts +16 -12
- package/src/skill-router.ts +7 -6
- package/src/swarm/messaging/GossipProtocol.ts +1 -1
- package/src/swarm/messaging/__tests__/BroadcastChannel.prod.test.ts +31 -9
- package/src/swarm/messaging/__tests__/GossipProtocol.prod.test.ts +21 -7
- package/src/swarm/messaging/__tests__/SwarmEventBus.prod.test.ts +24 -8
- package/src/swarm/messaging/__tests__/SwarmEventBus.test.ts +6 -2
- package/src/team.ts +277 -122
- package/src/training/scripts/generate-spatial-dataset.ts +1 -1
- package/src/training/training/LRScheduler.ts +377 -0
- package/src/training/training/QualityScoringPipeline.ts +139 -0
- package/src/training/training/SoftDedup.ts +461 -0
- package/src/training/training/SparsityMonitor.ts +685 -0
- package/src/training/training/SparsityMonitorTypes.ts +209 -0
- package/src/training/training/SpatialTrainingDataGenerator.ts +1526 -0
- package/src/training/training/SpatialTrainingDataTypes.ts +216 -0
- package/src/training/training/TrainingPipelineConfig.ts +215 -0
- package/src/training/training/__tests__/CorpusValidation.test.ts +87 -0
- package/src/training/training/__tests__/LRScheduler.test.ts +592 -0
- package/src/training/training/__tests__/SoftDedup.test.ts +415 -0
- package/src/training/training/__tests__/SparsityMonitor.test.ts +1623 -0
- package/src/training/training/__tests__/SpatialCorpusValidation.test.ts +72 -0
- package/src/training/training/__tests__/SpatialTrainingDataGenerator.test.ts +1244 -0
- package/src/training/training/__tests__/TrainingMonkeyIntegration.test.ts +897 -0
- package/src/training/training/__tests__/TrainingPipelineConfig.test.ts +202 -0
- package/src/training/training/__tests__/schema.test.ts +72 -0
- package/src/training/training/__tests__/training-constants.test.ts +106 -0
- package/src/training/training/__tests__/trait-mappings.test.ts +81 -0
- package/src/training/training/constants.ts +94 -0
- package/src/training/training/index.ts +17 -0
- package/src/training/training/schema.ts +147 -0
- package/src/training/training/scripts/generate-novel-use-cases-dataset.ts +272 -0
- package/src/training/training/scripts/generate-spatial-dataset.ts +521 -0
- package/src/training/training/trainingmonkey/TrainingMonkeyIntegration.ts +477 -0
- package/src/training/training/trainingmonkey/TrainingMonkeyTypes.ts +230 -0
- package/src/training/training/trainingmonkey/index.ts +26 -0
- package/src/training/training/trait-mappings.ts +157 -0
- package/src/types.ts +2 -7
- package/ALL-test-results.json +0 -1
- package/LICENSE +0 -21
- package/dist/AgentManifest-CB4xM-Ma.d.ts +0 -704
- package/dist/BehaviorTree-BrBFECv5.d.ts +0 -103
- package/dist/InvisibleWallet-rtRrBOA8.d.ts +0 -1732
- package/dist/OrchestratorAgent-Q_CbVTmO.d.ts +0 -798
- package/dist/agents/index.d.ts +0 -1788
- package/dist/agents/index.js +0 -4695
- package/dist/ai/index.d.ts +0 -1753
- package/dist/ai/index.js +0 -5244
- package/dist/behavior.d.ts +0 -130
- package/dist/behavior.js +0 -407
- package/dist/economy/index.d.ts +0 -747
- package/dist/economy/index.js +0 -3617
- package/dist/implementations-D9T3un9D.d.ts +0 -236
- package/dist/index.d.ts +0 -1729
- package/dist/index.js +0 -24277
- package/dist/learning/index.d.ts +0 -104
- package/dist/learning/index.js +0 -189
- package/dist/negotiation/index.d.ts +0 -610
- package/dist/negotiation/index.js +0 -931
- package/dist/skills/index.d.ts +0 -289
- package/dist/skills/index.js +0 -1079
- package/dist/swarm/index.d.ts +0 -2433
- package/dist/swarm/index.js +0 -5221
- package/dist/training/index.d.ts +0 -1734
- package/dist/training/index.js +0 -2687
- package/extract-failures.js +0 -10
- package/src/training/training/data/novel-use-cases.jsonl +0 -153
- package/src/training/training/data/spatial-reasoning-10k.jsonl +0 -9354
- package/src/types/core-stubs.d.ts +0 -113
- package/test-output.txt +0 -0
- package/test-result.json +0 -1
- package/tsc-errors.txt +0 -4
- package/tsc_output.txt +0 -0
- package/typescript-errors-2.txt +0 -0
- package/typescript-errors.txt +0 -22
- package/vitest-log-utf8.txt +0 -268
- package/vitest-log.txt +0 -0
|
@@ -1,610 +0,0 @@
|
|
|
1
|
-
import { A as AgentManifest } from '../AgentManifest-CB4xM-Ma.js';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* @holoscript/core - Negotiation Type Definitions
|
|
5
|
-
*
|
|
6
|
-
* Types for agent negotiation, voting, and conflict resolution.
|
|
7
|
-
* Part of HoloScript v3.1 Agentic Choreography.
|
|
8
|
-
*
|
|
9
|
-
* @version 3.1.0
|
|
10
|
-
* @Sprint v3.1 (March 2026)
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Status of a negotiation session
|
|
15
|
-
*/
|
|
16
|
-
type NegotiationStatus = 'draft' | 'open' | 'proposing' | 'voting' | 'resolving' | 'resolved' | 'deadlock' | 'deadlocked' | 'timeout' | 'escalated' | 'failed' | 'cancelled';
|
|
17
|
-
/**
|
|
18
|
-
* Voting mechanism type
|
|
19
|
-
*/
|
|
20
|
-
type VotingMechanism = 'majority' | 'supermajority' | 'weighted' | 'consensus' | 'ranked' | 'approval' | 'borda' | 'custom';
|
|
21
|
-
/**
|
|
22
|
-
* Proposal status
|
|
23
|
-
*/
|
|
24
|
-
type ProposalStatus = 'pending' | 'submitted' | 'under_review' | 'accepted' | 'rejected' | 'withdrawn';
|
|
25
|
-
/**
|
|
26
|
-
* Resolution outcome
|
|
27
|
-
*/
|
|
28
|
-
type ResolutionOutcome = 'winner_declared' | 'tie_broken' | 'consensus_reached' | 'deadlock' | 'timeout' | 'escalated' | 'quorum_not_met' | 'cancelled';
|
|
29
|
-
/**
|
|
30
|
-
* Tie-breaker strategy
|
|
31
|
-
*/
|
|
32
|
-
type TieBreaker = 'random' | 'seniority' | 'priority' | 'proposer' | 'escalate';
|
|
33
|
-
/**
|
|
34
|
-
* A proposal in a negotiation
|
|
35
|
-
*/
|
|
36
|
-
interface Proposal {
|
|
37
|
-
/** Unique proposal ID */
|
|
38
|
-
id: string;
|
|
39
|
-
/** Session this proposal belongs to */
|
|
40
|
-
sessionId?: string;
|
|
41
|
-
/** ID of the proposing agent */
|
|
42
|
-
proposerId?: string;
|
|
43
|
-
/** Proposal title */
|
|
44
|
-
title?: string;
|
|
45
|
-
/** Proposal description */
|
|
46
|
-
description?: string;
|
|
47
|
-
/** ID of the proposing agent (legacy) */
|
|
48
|
-
agentId: string;
|
|
49
|
-
/** Proposal content/value */
|
|
50
|
-
content: unknown;
|
|
51
|
-
/** Priority weight (higher = more important to proposer) */
|
|
52
|
-
priority: number;
|
|
53
|
-
/** Reasoning/justification */
|
|
54
|
-
reasoning?: string;
|
|
55
|
-
/** Resource requirements */
|
|
56
|
-
resources?: ResourceRequest[];
|
|
57
|
-
/** Time constraints */
|
|
58
|
-
timeline?: {
|
|
59
|
-
earliest?: number;
|
|
60
|
-
latest?: number;
|
|
61
|
-
duration?: number;
|
|
62
|
-
};
|
|
63
|
-
/** Proposal status */
|
|
64
|
-
status: ProposalStatus;
|
|
65
|
-
/** Submission timestamp */
|
|
66
|
-
submittedAt: number;
|
|
67
|
-
/** Last modified timestamp */
|
|
68
|
-
modifiedAt?: number;
|
|
69
|
-
/** Custom metadata */
|
|
70
|
-
metadata?: Record<string, unknown>;
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Input for creating a proposal
|
|
74
|
-
*/
|
|
75
|
-
interface ProposalInput {
|
|
76
|
-
/** ID of the proposing agent */
|
|
77
|
-
proposerId: string;
|
|
78
|
-
/** Proposal title */
|
|
79
|
-
title: string;
|
|
80
|
-
/** Proposal description */
|
|
81
|
-
description?: string;
|
|
82
|
-
/** Proposal content/value */
|
|
83
|
-
content: unknown;
|
|
84
|
-
/** Priority weight */
|
|
85
|
-
priority?: number;
|
|
86
|
-
/** Custom metadata */
|
|
87
|
-
metadata?: Record<string, unknown>;
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Resource request in a proposal
|
|
91
|
-
*/
|
|
92
|
-
interface ResourceRequest {
|
|
93
|
-
/** Resource type */
|
|
94
|
-
type: string;
|
|
95
|
-
/** Amount requested */
|
|
96
|
-
amount: number;
|
|
97
|
-
/** Unit of measurement */
|
|
98
|
-
unit?: string;
|
|
99
|
-
/** Whether exclusive access is needed */
|
|
100
|
-
exclusive?: boolean;
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* A vote cast by an agent
|
|
104
|
-
*/
|
|
105
|
-
interface Vote {
|
|
106
|
-
/** Unique vote ID */
|
|
107
|
-
id?: string;
|
|
108
|
-
/** Session ID */
|
|
109
|
-
sessionId?: string;
|
|
110
|
-
/** Voting agent ID */
|
|
111
|
-
agentId: string;
|
|
112
|
-
/** Ranked preferences (proposal IDs) */
|
|
113
|
-
ranking: string[];
|
|
114
|
-
/** Approval set (for approval voting) */
|
|
115
|
-
approvals?: string[];
|
|
116
|
-
/** Vote weight (determined by trust level) */
|
|
117
|
-
weight: number;
|
|
118
|
-
/** Optional vote reason/justification */
|
|
119
|
-
reason?: string;
|
|
120
|
-
/** Optional justification */
|
|
121
|
-
justification?: string;
|
|
122
|
-
/** Whether this is an abstention */
|
|
123
|
-
abstain?: boolean;
|
|
124
|
-
/** Vote timestamp */
|
|
125
|
-
timestamp: number;
|
|
126
|
-
/** If this vote was superseded by another */
|
|
127
|
-
supersededBy?: string;
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* Input for casting a vote
|
|
131
|
-
*/
|
|
132
|
-
interface VoteInput {
|
|
133
|
-
/** Voting agent ID */
|
|
134
|
-
agentId: string;
|
|
135
|
-
/** Ranked preferences */
|
|
136
|
-
ranking?: string[];
|
|
137
|
-
/** Approval set */
|
|
138
|
-
approvals?: string[];
|
|
139
|
-
/** Vote weight */
|
|
140
|
-
weight?: number;
|
|
141
|
-
/** Justification */
|
|
142
|
-
justification?: string;
|
|
143
|
-
/** Abstain from voting */
|
|
144
|
-
abstain?: boolean;
|
|
145
|
-
}
|
|
146
|
-
/**
|
|
147
|
-
* Vote tally result
|
|
148
|
-
*/
|
|
149
|
-
interface VoteTally {
|
|
150
|
-
/** Proposal ID */
|
|
151
|
-
proposalId: string;
|
|
152
|
-
/** Total votes received */
|
|
153
|
-
voteCount: number;
|
|
154
|
-
/** Weighted score */
|
|
155
|
-
weightedScore: number;
|
|
156
|
-
/** Approval count */
|
|
157
|
-
approvalCount?: number;
|
|
158
|
-
/** Borda points */
|
|
159
|
-
bordaPoints?: number;
|
|
160
|
-
/** Percentage of votes */
|
|
161
|
-
percentage: number;
|
|
162
|
-
}
|
|
163
|
-
/**
|
|
164
|
-
* Negotiation session configuration
|
|
165
|
-
*/
|
|
166
|
-
interface NegotiationConfig {
|
|
167
|
-
/** Voting mechanism */
|
|
168
|
-
mechanism: VotingMechanism;
|
|
169
|
-
/** Voting mechanism (alias) */
|
|
170
|
-
votingMechanism?: VotingMechanism;
|
|
171
|
-
/** Session timeout (ms) */
|
|
172
|
-
timeout?: number;
|
|
173
|
-
/** Proposal deadline (ms from start) */
|
|
174
|
-
proposalDeadline?: number;
|
|
175
|
-
/** Voting deadline (ms from start) */
|
|
176
|
-
votingDeadline?: number;
|
|
177
|
-
/** Maximum rounds before deadlock */
|
|
178
|
-
maxRounds?: number;
|
|
179
|
-
/** Tie-breaking strategy */
|
|
180
|
-
tieBreaker?: TieBreaker;
|
|
181
|
-
/** Minimum participation ratio */
|
|
182
|
-
quorum?: number;
|
|
183
|
-
/** Allow proposal amendments */
|
|
184
|
-
allowAmendments?: boolean;
|
|
185
|
-
/** Anonymous voting */
|
|
186
|
-
anonymousVoting?: boolean;
|
|
187
|
-
/** Allow delegation */
|
|
188
|
-
allowDelegation?: boolean;
|
|
189
|
-
/** Allow agents to abstain */
|
|
190
|
-
allowAbstain?: boolean;
|
|
191
|
-
/** Require justification for votes */
|
|
192
|
-
requireJustification?: boolean;
|
|
193
|
-
/** Auto-escalate on deadlock */
|
|
194
|
-
escalateOnDeadlock?: boolean;
|
|
195
|
-
/** Escalation target */
|
|
196
|
-
escalationTarget?: string;
|
|
197
|
-
/** Escalation path */
|
|
198
|
-
escalationPath?: string;
|
|
199
|
-
}
|
|
200
|
-
/**
|
|
201
|
-
* Negotiation session
|
|
202
|
-
*/
|
|
203
|
-
interface NegotiationSession {
|
|
204
|
-
/** Unique session ID */
|
|
205
|
-
id: string;
|
|
206
|
-
/** Negotiation topic */
|
|
207
|
-
topic: string;
|
|
208
|
-
/** Description */
|
|
209
|
-
description?: string;
|
|
210
|
-
/** Participating agent IDs (can be strings or full manifests) */
|
|
211
|
-
participants: (string | AgentManifest)[];
|
|
212
|
-
/** Session configuration */
|
|
213
|
-
config: NegotiationConfig;
|
|
214
|
-
/** Submitted proposals */
|
|
215
|
-
proposals: Proposal[];
|
|
216
|
-
/** Cast votes */
|
|
217
|
-
votes: Vote[];
|
|
218
|
-
/** Current status */
|
|
219
|
-
status: NegotiationStatus;
|
|
220
|
-
/** Current round number */
|
|
221
|
-
round: number;
|
|
222
|
-
/** Current round (alias) */
|
|
223
|
-
currentRound?: number;
|
|
224
|
-
/** Session creation time */
|
|
225
|
-
createdAt?: number;
|
|
226
|
-
/** Session start time */
|
|
227
|
-
startedAt: number;
|
|
228
|
-
/** Last activity timestamp */
|
|
229
|
-
lastActivityAt: number;
|
|
230
|
-
/** Deadline timestamp */
|
|
231
|
-
deadline?: number;
|
|
232
|
-
/** Resolution result */
|
|
233
|
-
resolution?: Resolution;
|
|
234
|
-
/** Session resolution timestamp */
|
|
235
|
-
resolvedAt?: number;
|
|
236
|
-
/** Session history/log */
|
|
237
|
-
history: NegotiationEvent[];
|
|
238
|
-
/** Custom metadata */
|
|
239
|
-
metadata?: Record<string, unknown>;
|
|
240
|
-
}
|
|
241
|
-
/**
|
|
242
|
-
* Negotiation event for history
|
|
243
|
-
*/
|
|
244
|
-
interface NegotiationEvent {
|
|
245
|
-
/** Event type */
|
|
246
|
-
type: 'session_created' | 'session_started' | 'proposal_submitted' | 'proposal_amended' | 'proposal_withdrawn' | 'voting_started' | 'vote_cast' | 'round_complete' | 'resolution_reached' | 'deadlock_detected' | 'escalation_triggered' | 'session_cancelled';
|
|
247
|
-
/** Event timestamp */
|
|
248
|
-
timestamp: number;
|
|
249
|
-
/** Related agent ID */
|
|
250
|
-
agentId?: string;
|
|
251
|
-
/** Related proposal ID */
|
|
252
|
-
proposalId?: string;
|
|
253
|
-
/** Event details */
|
|
254
|
-
details?: Record<string, unknown>;
|
|
255
|
-
}
|
|
256
|
-
/**
|
|
257
|
-
* Resolution of a negotiation
|
|
258
|
-
*/
|
|
259
|
-
interface Resolution {
|
|
260
|
-
/** Session ID */
|
|
261
|
-
sessionId?: string;
|
|
262
|
-
/** Winning proposal ID */
|
|
263
|
-
winnerId?: string;
|
|
264
|
-
/** Winning proposal */
|
|
265
|
-
winner?: Proposal;
|
|
266
|
-
/** Winning proposal (alias) */
|
|
267
|
-
winningProposal?: Proposal;
|
|
268
|
-
/** Final tallies */
|
|
269
|
-
tallies: VoteTally[];
|
|
270
|
-
/** Final tallies (alias) */
|
|
271
|
-
finalTallies?: VoteTally[];
|
|
272
|
-
/** Resolution outcome */
|
|
273
|
-
outcome: ResolutionOutcome;
|
|
274
|
-
/** Resolution mechanism used */
|
|
275
|
-
mechanism: VotingMechanism;
|
|
276
|
-
/** Number of rounds taken */
|
|
277
|
-
rounds: number;
|
|
278
|
-
/** Round (alias) */
|
|
279
|
-
round?: number;
|
|
280
|
-
/** Resolution timestamp */
|
|
281
|
-
resolvedAt: number;
|
|
282
|
-
/** Timestamp (alias) */
|
|
283
|
-
timestamp?: number;
|
|
284
|
-
/** Tie-breaker used (if any) */
|
|
285
|
-
tieBreakerUsed?: boolean;
|
|
286
|
-
/** Consensus level (0-1) */
|
|
287
|
-
consensusLevel?: number;
|
|
288
|
-
/** Dissenting agents */
|
|
289
|
-
dissenters?: string[];
|
|
290
|
-
/** Participation rate (0-1) */
|
|
291
|
-
participationRate?: number;
|
|
292
|
-
/** Escalation target */
|
|
293
|
-
escalatedTo?: string;
|
|
294
|
-
/** Notes */
|
|
295
|
-
notes?: string;
|
|
296
|
-
}
|
|
297
|
-
/**
|
|
298
|
-
* Events emitted by NegotiationProtocol
|
|
299
|
-
*/
|
|
300
|
-
interface NegotiationEvents {
|
|
301
|
-
'session:created': (session: NegotiationSession) => void;
|
|
302
|
-
'session:started': (session: NegotiationSession) => void;
|
|
303
|
-
'session:cancelled': (sessionId: string, reason: string) => void;
|
|
304
|
-
'proposal:submitted': (proposal: Proposal, session: NegotiationSession) => void;
|
|
305
|
-
'proposal:amended': (proposal: Proposal, session: NegotiationSession) => void;
|
|
306
|
-
'proposal:withdrawn': (proposalId: string, session: NegotiationSession) => void;
|
|
307
|
-
'voting:started': (session: NegotiationSession) => void;
|
|
308
|
-
'vote:cast': (vote: Vote, session: NegotiationSession) => void;
|
|
309
|
-
'round:complete': (round: number, session: NegotiationSession) => void;
|
|
310
|
-
'resolution:reached': (resolution: Resolution, session: NegotiationSession) => void;
|
|
311
|
-
'deadlock:detected': (session: NegotiationSession) => void;
|
|
312
|
-
'escalation:triggered': (session: NegotiationSession, target: string) => void;
|
|
313
|
-
sessionStarted: {
|
|
314
|
-
session: NegotiationSession;
|
|
315
|
-
};
|
|
316
|
-
proposalSubmitted: {
|
|
317
|
-
session: NegotiationSession;
|
|
318
|
-
proposal: Proposal;
|
|
319
|
-
};
|
|
320
|
-
voteReceived: {
|
|
321
|
-
session: NegotiationSession;
|
|
322
|
-
vote: Vote;
|
|
323
|
-
};
|
|
324
|
-
sessionResolved: {
|
|
325
|
-
session: NegotiationSession;
|
|
326
|
-
resolution: Resolution;
|
|
327
|
-
};
|
|
328
|
-
}
|
|
329
|
-
/**
|
|
330
|
-
* Options for initiating a negotiation session
|
|
331
|
-
*/
|
|
332
|
-
interface InitiateOptions {
|
|
333
|
-
/** Negotiation topic */
|
|
334
|
-
topic: string;
|
|
335
|
-
/** Description */
|
|
336
|
-
description?: string;
|
|
337
|
-
/** Participating agent IDs */
|
|
338
|
-
participants: string[];
|
|
339
|
-
/** Voting mechanism */
|
|
340
|
-
votingMechanism?: VotingMechanism;
|
|
341
|
-
/** Session timeout (ms) */
|
|
342
|
-
timeout?: number;
|
|
343
|
-
/** Quorum requirement (0-1) */
|
|
344
|
-
quorum?: number;
|
|
345
|
-
/** Maximum rounds */
|
|
346
|
-
maxRounds?: number;
|
|
347
|
-
/** Allow abstention */
|
|
348
|
-
allowAbstain?: boolean;
|
|
349
|
-
/** Require vote justification */
|
|
350
|
-
requireJustification?: boolean;
|
|
351
|
-
/** Tie-breaker strategy */
|
|
352
|
-
tieBreaker?: TieBreaker;
|
|
353
|
-
/** Escalation path */
|
|
354
|
-
escalationPath?: string;
|
|
355
|
-
/** Custom metadata */
|
|
356
|
-
metadata?: Record<string, unknown>;
|
|
357
|
-
}
|
|
358
|
-
|
|
359
|
-
/**
|
|
360
|
-
* @holoscript/core - Voting Mechanisms
|
|
361
|
-
*
|
|
362
|
-
* Implementations of various voting algorithms for agent negotiation.
|
|
363
|
-
* Part of HoloScript v3.1 Agentic Choreography.
|
|
364
|
-
*
|
|
365
|
-
* Supported mechanisms:
|
|
366
|
-
* - Majority: Simple majority wins
|
|
367
|
-
* - Supermajority: 2/3 threshold required
|
|
368
|
-
* - Weighted: Vote weight by trust level
|
|
369
|
-
* - Consensus: All must agree
|
|
370
|
-
* - Ranked Choice: Instant runoff voting
|
|
371
|
-
* - Approval: Multiple approval voting
|
|
372
|
-
* - Borda Count: Point-based ranking
|
|
373
|
-
*
|
|
374
|
-
* @version 3.1.0
|
|
375
|
-
* @Sprint v3.1 (March 2026)
|
|
376
|
-
*/
|
|
377
|
-
|
|
378
|
-
/**
|
|
379
|
-
* Result from a voting round
|
|
380
|
-
*/
|
|
381
|
-
interface VotingResult {
|
|
382
|
-
/** Final tallies */
|
|
383
|
-
tallies: VoteTally[];
|
|
384
|
-
/** Winner ID (if determined) */
|
|
385
|
-
winnerId?: string;
|
|
386
|
-
/** Whether resolution was reached */
|
|
387
|
-
resolved: boolean;
|
|
388
|
-
/** Outcome type */
|
|
389
|
-
outcome: ResolutionOutcome;
|
|
390
|
-
/** Tie detected */
|
|
391
|
-
tie?: boolean;
|
|
392
|
-
/** Eliminated proposals (for ranked choice) */
|
|
393
|
-
eliminated?: string[];
|
|
394
|
-
/** Consensus level (0-1) */
|
|
395
|
-
consensusLevel?: number;
|
|
396
|
-
/** Dissenters */
|
|
397
|
-
dissenters?: string[];
|
|
398
|
-
}
|
|
399
|
-
/**
|
|
400
|
-
* Voting mechanism handler interface
|
|
401
|
-
*/
|
|
402
|
-
interface VotingHandler {
|
|
403
|
-
/** Count votes and determine result */
|
|
404
|
-
count(votes: Vote[], proposals: Proposal[], config: NegotiationConfig, round: number): VotingResult;
|
|
405
|
-
/** Validate a vote for this mechanism */
|
|
406
|
-
validateVote(vote: Vote, proposals: Proposal[]): boolean;
|
|
407
|
-
/** Get required quorum for this mechanism */
|
|
408
|
-
getRequiredQuorum(config: NegotiationConfig): number;
|
|
409
|
-
}
|
|
410
|
-
/**
|
|
411
|
-
* Simple majority voting (>50% wins)
|
|
412
|
-
*/
|
|
413
|
-
declare const majorityHandler: VotingHandler;
|
|
414
|
-
/**
|
|
415
|
-
* Supermajority voting (≥66.67% wins)
|
|
416
|
-
*/
|
|
417
|
-
declare const supermajorityHandler: VotingHandler;
|
|
418
|
-
/**
|
|
419
|
-
* Weighted voting (trust-level based weights)
|
|
420
|
-
*/
|
|
421
|
-
declare const weightedHandler: VotingHandler;
|
|
422
|
-
/**
|
|
423
|
-
* Consensus voting (all must agree)
|
|
424
|
-
*/
|
|
425
|
-
declare const consensusHandler: VotingHandler;
|
|
426
|
-
/**
|
|
427
|
-
* Ranked choice voting with instant runoff
|
|
428
|
-
*/
|
|
429
|
-
declare const rankedHandler: VotingHandler;
|
|
430
|
-
/**
|
|
431
|
-
* Approval voting (vote for multiple acceptable options)
|
|
432
|
-
*/
|
|
433
|
-
declare const approvalHandler: VotingHandler;
|
|
434
|
-
/**
|
|
435
|
-
* Borda count voting (points by rank position)
|
|
436
|
-
*/
|
|
437
|
-
declare const bordaHandler: VotingHandler;
|
|
438
|
-
/**
|
|
439
|
-
* Get handler for a voting mechanism
|
|
440
|
-
*/
|
|
441
|
-
declare function getVotingHandler(mechanism: VotingMechanism): VotingHandler;
|
|
442
|
-
/**
|
|
443
|
-
* Check if quorum is met
|
|
444
|
-
*/
|
|
445
|
-
declare function checkQuorum(votes: Vote[], participants: number, config: NegotiationConfig, mechanism: VotingMechanism): boolean;
|
|
446
|
-
/**
|
|
447
|
-
* Get trust-based vote weight
|
|
448
|
-
*/
|
|
449
|
-
declare function getTrustWeight(trustLevel: 'local' | 'verified' | 'external'): number;
|
|
450
|
-
|
|
451
|
-
/**
|
|
452
|
-
* @holoscript/core - Negotiation Protocol
|
|
453
|
-
*
|
|
454
|
-
* Core protocol for multi-agent negotiation and consensus building.
|
|
455
|
-
* Manages negotiation sessions, proposals, voting, and resolution.
|
|
456
|
-
*
|
|
457
|
-
* Part of HoloScript v3.1 Agentic Choreography.
|
|
458
|
-
*
|
|
459
|
-
* @example
|
|
460
|
-
* ```typescript
|
|
461
|
-
* const protocol = new NegotiationProtocol();
|
|
462
|
-
*
|
|
463
|
-
* // Start a negotiation
|
|
464
|
-
* const session = await protocol.initiate({
|
|
465
|
-
* topic: 'task-assignment',
|
|
466
|
-
* participants: ['agent-1', 'agent-2', 'agent-3'],
|
|
467
|
-
* votingMechanism: 'majority',
|
|
468
|
-
* timeout: 60000,
|
|
469
|
-
* });
|
|
470
|
-
*
|
|
471
|
-
* // Submit proposals
|
|
472
|
-
* await protocol.propose(session.id, {
|
|
473
|
-
* proposerId: 'agent-1',
|
|
474
|
-
* title: 'Process sequentially',
|
|
475
|
-
* description: 'Handle tasks one at a time',
|
|
476
|
-
* content: { strategy: 'sequential' },
|
|
477
|
-
* });
|
|
478
|
-
*
|
|
479
|
-
* // Vote on proposals
|
|
480
|
-
* await protocol.vote(session.id, {
|
|
481
|
-
* agentId: 'agent-2',
|
|
482
|
-
* ranking: ['proposal-1'],
|
|
483
|
-
* });
|
|
484
|
-
*
|
|
485
|
-
* // Resolve when ready
|
|
486
|
-
* const resolution = await protocol.resolve(session.id);
|
|
487
|
-
* ```
|
|
488
|
-
*
|
|
489
|
-
* @version 3.1.0
|
|
490
|
-
* @Sprint v3.1 (March 2026)
|
|
491
|
-
*/
|
|
492
|
-
|
|
493
|
-
/**
|
|
494
|
-
* Audit log entry
|
|
495
|
-
*/
|
|
496
|
-
interface AuditEntry {
|
|
497
|
-
timestamp: number;
|
|
498
|
-
sessionId: string;
|
|
499
|
-
action: 'initiated' | 'proposal_submitted' | 'vote_cast' | 'resolved' | 'timeout' | 'escalated';
|
|
500
|
-
agentId?: string;
|
|
501
|
-
details: Record<string, unknown>;
|
|
502
|
-
}
|
|
503
|
-
/**
|
|
504
|
-
* Event handler type
|
|
505
|
-
*/
|
|
506
|
-
type EventHandler<T> = (data: T) => void | Promise<void>;
|
|
507
|
-
/**
|
|
508
|
-
* NegotiationProtocol manages multi-agent negotiation sessions.
|
|
509
|
-
*
|
|
510
|
-
* Features:
|
|
511
|
-
* - Multiple voting mechanisms (majority, consensus, ranked, etc.)
|
|
512
|
-
* - Proposal lifecycle management
|
|
513
|
-
* - Quorum and deadline enforcement
|
|
514
|
-
* - Deadlock detection and escalation
|
|
515
|
-
* - Full audit logging
|
|
516
|
-
*/
|
|
517
|
-
declare class NegotiationProtocol {
|
|
518
|
-
private sessions;
|
|
519
|
-
private auditLog;
|
|
520
|
-
private deadlines;
|
|
521
|
-
private eventHandlers;
|
|
522
|
-
private sessionCounter;
|
|
523
|
-
private proposalCounter;
|
|
524
|
-
private voteCounter;
|
|
525
|
-
/**
|
|
526
|
-
* Initiate a new negotiation session
|
|
527
|
-
*/
|
|
528
|
-
initiate(options: InitiateOptions): Promise<NegotiationSession>;
|
|
529
|
-
/**
|
|
530
|
-
* Submit a proposal to a session
|
|
531
|
-
*/
|
|
532
|
-
propose(sessionId: string, input: ProposalInput): Promise<Proposal>;
|
|
533
|
-
/**
|
|
534
|
-
* Cast a vote in a session
|
|
535
|
-
*/
|
|
536
|
-
vote(sessionId: string, input: VoteInput): Promise<Vote>;
|
|
537
|
-
/**
|
|
538
|
-
* Resolve a negotiation session
|
|
539
|
-
*/
|
|
540
|
-
resolve(sessionId: string, force?: boolean): Promise<Resolution>;
|
|
541
|
-
/**
|
|
542
|
-
* Get session by ID
|
|
543
|
-
*/
|
|
544
|
-
getSession(sessionId: string): NegotiationSession;
|
|
545
|
-
/**
|
|
546
|
-
* Get all active sessions
|
|
547
|
-
*/
|
|
548
|
-
getActiveSessions(): NegotiationSession[];
|
|
549
|
-
/**
|
|
550
|
-
* Get sessions for a specific agent
|
|
551
|
-
*/
|
|
552
|
-
getAgentSessions(agentId: string): NegotiationSession[];
|
|
553
|
-
/**
|
|
554
|
-
* Cancel a session
|
|
555
|
-
*/
|
|
556
|
-
cancel(sessionId: string, _reason?: string): Promise<void>;
|
|
557
|
-
/**
|
|
558
|
-
* Escalate a deadlocked session
|
|
559
|
-
*/
|
|
560
|
-
escalate(sessionId: string): Promise<Resolution>;
|
|
561
|
-
/**
|
|
562
|
-
* Add a participant to an open session
|
|
563
|
-
*/
|
|
564
|
-
addParticipant(sessionId: string, agentId: string): void;
|
|
565
|
-
/**
|
|
566
|
-
* Remove a participant from a session
|
|
567
|
-
*/
|
|
568
|
-
removeParticipant(sessionId: string, agentId: string): void;
|
|
569
|
-
/**
|
|
570
|
-
* Subscribe to negotiation events
|
|
571
|
-
*/
|
|
572
|
-
on<K extends keyof NegotiationEvents>(event: K, handler: EventHandler<NegotiationEvents[K]>): () => void;
|
|
573
|
-
/**
|
|
574
|
-
* Get audit log
|
|
575
|
-
*/
|
|
576
|
-
getAuditLog(sessionId?: string): AuditEntry[];
|
|
577
|
-
/**
|
|
578
|
-
* Clear completed sessions older than maxAge
|
|
579
|
-
*/
|
|
580
|
-
pruneOldSessions(maxAgeMs: number): number;
|
|
581
|
-
/**
|
|
582
|
-
* Reset protocol state (for testing)
|
|
583
|
-
*/
|
|
584
|
-
reset(): void;
|
|
585
|
-
private generateSessionId;
|
|
586
|
-
private generateProposalId;
|
|
587
|
-
private generateVoteId;
|
|
588
|
-
private validateSessionOpen;
|
|
589
|
-
private validateParticipant;
|
|
590
|
-
private validateNotDuplicate;
|
|
591
|
-
private allVotesCast;
|
|
592
|
-
private tryAutoResolve;
|
|
593
|
-
private buildResolution;
|
|
594
|
-
private createFailedResolution;
|
|
595
|
-
private startDeadlineTimer;
|
|
596
|
-
private handleTimeout;
|
|
597
|
-
private clearDeadline;
|
|
598
|
-
private audit;
|
|
599
|
-
private emit;
|
|
600
|
-
}
|
|
601
|
-
/**
|
|
602
|
-
* Get the default NegotiationProtocol instance
|
|
603
|
-
*/
|
|
604
|
-
declare function getNegotiationProtocol(): NegotiationProtocol;
|
|
605
|
-
/**
|
|
606
|
-
* Reset the default protocol instance (for testing)
|
|
607
|
-
*/
|
|
608
|
-
declare function resetNegotiationProtocol(): void;
|
|
609
|
-
|
|
610
|
-
export { type AuditEntry, type InitiateOptions, type NegotiationConfig, type NegotiationEvents, NegotiationProtocol, type NegotiationSession, type NegotiationStatus, type Proposal, type ProposalInput, type ProposalStatus, type Resolution, type ResolutionOutcome, type TieBreaker, type Vote, type VoteInput, type VoteTally, type VotingHandler, type VotingMechanism, type VotingResult, approvalHandler, bordaHandler, checkQuorum, consensusHandler, getNegotiationProtocol, getTrustWeight, getVotingHandler, majorityHandler, rankedHandler, resetNegotiationProtocol, supermajorityHandler, weightedHandler };
|