nexus-prime 0.2.0

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 (134) hide show
  1. package/README.md +253 -0
  2. package/dist/agents/adapters/mcp.d.ts +21 -0
  3. package/dist/agents/adapters/mcp.d.ts.map +1 -0
  4. package/dist/agents/adapters/mcp.js +447 -0
  5. package/dist/agents/adapters/mcp.js.map +1 -0
  6. package/dist/agents/adapters.d.ts +57 -0
  7. package/dist/agents/adapters.d.ts.map +1 -0
  8. package/dist/agents/adapters.js +151 -0
  9. package/dist/agents/adapters.js.map +1 -0
  10. package/dist/agents/coordinator.d.ts +75 -0
  11. package/dist/agents/coordinator.d.ts.map +1 -0
  12. package/dist/agents/coordinator.js +339 -0
  13. package/dist/agents/coordinator.js.map +1 -0
  14. package/dist/agents/core/types.d.ts +157 -0
  15. package/dist/agents/core/types.d.ts.map +1 -0
  16. package/dist/agents/core/types.js +5 -0
  17. package/dist/agents/core/types.js.map +1 -0
  18. package/dist/agents/learner.d.ts +25 -0
  19. package/dist/agents/learner.d.ts.map +1 -0
  20. package/dist/agents/learner.js +88 -0
  21. package/dist/agents/learner.js.map +1 -0
  22. package/dist/cli.d.ts +6 -0
  23. package/dist/cli.d.ts.map +1 -0
  24. package/dist/cli.js +237 -0
  25. package/dist/cli.js.map +1 -0
  26. package/dist/config.d.ts +74 -0
  27. package/dist/config.d.ts.map +1 -0
  28. package/dist/config.js +73 -0
  29. package/dist/config.js.map +1 -0
  30. package/dist/core/evolution.d.ts +122 -0
  31. package/dist/core/evolution.d.ts.map +1 -0
  32. package/dist/core/evolution.js +319 -0
  33. package/dist/core/evolution.js.map +1 -0
  34. package/dist/core/memory.d.ts +96 -0
  35. package/dist/core/memory.d.ts.map +1 -0
  36. package/dist/core/memory.js +304 -0
  37. package/dist/core/memory.js.map +1 -0
  38. package/dist/core/optimize.d.ts +100 -0
  39. package/dist/core/optimize.d.ts.map +1 -0
  40. package/dist/core/optimize.js +263 -0
  41. package/dist/core/optimize.js.map +1 -0
  42. package/dist/core/types.d.ts +155 -0
  43. package/dist/core/types.d.ts.map +1 -0
  44. package/dist/core/types.js +5 -0
  45. package/dist/core/types.js.map +1 -0
  46. package/dist/core/wave.d.ts +55 -0
  47. package/dist/core/wave.d.ts.map +1 -0
  48. package/dist/core/wave.js +119 -0
  49. package/dist/core/wave.js.map +1 -0
  50. package/dist/engines/benchmark.d.ts +76 -0
  51. package/dist/engines/benchmark.d.ts.map +1 -0
  52. package/dist/engines/benchmark.js +167 -0
  53. package/dist/engines/benchmark.js.map +1 -0
  54. package/dist/engines/cache-manager.d.ts +75 -0
  55. package/dist/engines/cache-manager.d.ts.map +1 -0
  56. package/dist/engines/cache-manager.js +200 -0
  57. package/dist/engines/cache-manager.js.map +1 -0
  58. package/dist/engines/context.d.ts +50 -0
  59. package/dist/engines/context.d.ts.map +1 -0
  60. package/dist/engines/context.js +99 -0
  61. package/dist/engines/context.js.map +1 -0
  62. package/dist/engines/embedder.d.ts +55 -0
  63. package/dist/engines/embedder.d.ts.map +1 -0
  64. package/dist/engines/embedder.js +223 -0
  65. package/dist/engines/embedder.js.map +1 -0
  66. package/dist/engines/guardrails-bridge.d.ts +64 -0
  67. package/dist/engines/guardrails-bridge.d.ts.map +1 -0
  68. package/dist/engines/guardrails-bridge.js +251 -0
  69. package/dist/engines/guardrails-bridge.js.map +1 -0
  70. package/dist/engines/index.d.ts +14 -0
  71. package/dist/engines/index.d.ts.map +1 -0
  72. package/dist/engines/index.js +14 -0
  73. package/dist/engines/index.js.map +1 -0
  74. package/dist/engines/memory.d.ts +76 -0
  75. package/dist/engines/memory.d.ts.map +1 -0
  76. package/dist/engines/memory.js +431 -0
  77. package/dist/engines/memory.js.map +1 -0
  78. package/dist/engines/meta-learner.d.ts +87 -0
  79. package/dist/engines/meta-learner.d.ts.map +1 -0
  80. package/dist/engines/meta-learner.js +214 -0
  81. package/dist/engines/meta-learner.js.map +1 -0
  82. package/dist/engines/orchestrator.d.ts +69 -0
  83. package/dist/engines/orchestrator.d.ts.map +1 -0
  84. package/dist/engines/orchestrator.js +175 -0
  85. package/dist/engines/orchestrator.js.map +1 -0
  86. package/dist/engines/pod-network.d.ts +31 -0
  87. package/dist/engines/pod-network.d.ts.map +1 -0
  88. package/dist/engines/pod-network.js +108 -0
  89. package/dist/engines/pod-network.js.map +1 -0
  90. package/dist/engines/token-optimizer.d.ts +53 -0
  91. package/dist/engines/token-optimizer.d.ts.map +1 -0
  92. package/dist/engines/token-optimizer.js +115 -0
  93. package/dist/engines/token-optimizer.js.map +1 -0
  94. package/dist/engines/token-supremacy.d.ts +86 -0
  95. package/dist/engines/token-supremacy.d.ts.map +1 -0
  96. package/dist/engines/token-supremacy.js +403 -0
  97. package/dist/engines/token-supremacy.js.map +1 -0
  98. package/dist/index.d.ts +99 -0
  99. package/dist/index.d.ts.map +1 -0
  100. package/dist/index.js +302 -0
  101. package/dist/index.js.map +1 -0
  102. package/dist/nexus-prime.d.ts +15 -0
  103. package/dist/nexus-prime.d.ts.map +1 -0
  104. package/dist/nexus-prime.js +15 -0
  105. package/dist/nexus-prime.js.map +1 -0
  106. package/dist/phantom/index.d.ts +135 -0
  107. package/dist/phantom/index.d.ts.map +1 -0
  108. package/dist/phantom/index.js +286 -0
  109. package/dist/phantom/index.js.map +1 -0
  110. package/dist/phantom/merge-oracle.d.ts +35 -0
  111. package/dist/phantom/merge-oracle.d.ts.map +1 -0
  112. package/dist/phantom/merge-oracle.js +189 -0
  113. package/dist/phantom/merge-oracle.js.map +1 -0
  114. package/dist/phantom/phase4-orchestrator.d.ts +14 -0
  115. package/dist/phantom/phase4-orchestrator.d.ts.map +1 -0
  116. package/dist/phantom/phase4-orchestrator.js +488 -0
  117. package/dist/phantom/phase4-orchestrator.js.map +1 -0
  118. package/dist/verify-guardrails.d.ts +2 -0
  119. package/dist/verify-guardrails.d.ts.map +1 -0
  120. package/dist/verify-guardrails.js +48 -0
  121. package/dist/verify-guardrails.js.map +1 -0
  122. package/dist/verify-pod-sync.d.ts +2 -0
  123. package/dist/verify-pod-sync.d.ts.map +1 -0
  124. package/dist/verify-pod-sync.js +41 -0
  125. package/dist/verify-pod-sync.js.map +1 -0
  126. package/dist/verify-substrate.d.ts +2 -0
  127. package/dist/verify-substrate.d.ts.map +1 -0
  128. package/dist/verify-substrate.js +41 -0
  129. package/dist/verify-substrate.js.map +1 -0
  130. package/dist/verify-token-scoring.d.ts +2 -0
  131. package/dist/verify-token-scoring.d.ts.map +1 -0
  132. package/dist/verify-token-scoring.js +37 -0
  133. package/dist/verify-token-scoring.js.map +1 -0
  134. package/package.json +80 -0
@@ -0,0 +1,151 @@
1
+ /**
2
+ * Adapters for different agent platforms
3
+ */
4
+ export class OpenClawAdapter {
5
+ name = 'openclaw';
6
+ type = 'openclaw';
7
+ connected = false;
8
+ agents = [];
9
+ async connect() {
10
+ this.connected = true;
11
+ console.log('[OpenClaw Adapter] Connected');
12
+ }
13
+ async disconnect() {
14
+ this.connected = false;
15
+ console.log('[OpenClaw Adapter] Disconnected');
16
+ }
17
+ async send(message) {
18
+ if (!this.connected) {
19
+ throw new Error('Adapter not connected');
20
+ }
21
+ console.log('[OpenClaw Adapter] Sending:', message);
22
+ }
23
+ receive(message) {
24
+ console.log('[OpenClaw Adapter] Received:', message);
25
+ }
26
+ async spawnAgent(type, config) {
27
+ const agentId = `openclaw_${type}_${Date.now()}`;
28
+ this.agents.push(agentId);
29
+ console.log(`[OpenClaw Adapter] Spawned agent: ${agentId}`);
30
+ return agentId;
31
+ }
32
+ }
33
+ export class ClaudeCodeAdapter {
34
+ name = 'claude-code';
35
+ type = 'claude-code';
36
+ connected = false;
37
+ agents = [];
38
+ async connect() {
39
+ this.connected = true;
40
+ console.log('[Claude Code Adapter] Connected');
41
+ }
42
+ async disconnect() {
43
+ this.connected = false;
44
+ console.log('[Claude Code Adapter] Disconnected');
45
+ }
46
+ async send(message) {
47
+ if (!this.connected) {
48
+ throw new Error('Adapter not connected');
49
+ }
50
+ console.log('[Claude Code Adapter] Sending:', message);
51
+ }
52
+ receive(message) {
53
+ console.log('[Claude Code Adapter] Received:', message);
54
+ }
55
+ async spawnAgent(type, config) {
56
+ const agentId = `claude_${type}_${Date.now()}`;
57
+ this.agents.push(agentId);
58
+ console.log(`[Claude Code Adapter] Spawned agent: ${agentId}`);
59
+ return agentId;
60
+ }
61
+ }
62
+ export class RufloAdapter {
63
+ name = 'ruflo';
64
+ type = 'ruflo';
65
+ connected = false;
66
+ agents = [];
67
+ async connect() {
68
+ this.connected = true;
69
+ console.log('[Ruflo Adapter] Connected');
70
+ }
71
+ async disconnect() {
72
+ this.connected = false;
73
+ console.log('[Ruflo Adapter] Disconnected');
74
+ }
75
+ async send(message) {
76
+ if (!this.connected) {
77
+ throw new Error('Adapter not connected');
78
+ }
79
+ console.log('[Ruflo Adapter] Sending:', message);
80
+ }
81
+ receive(message) {
82
+ console.log('[Ruflo Adapter] Received:', message);
83
+ }
84
+ async spawnAgent(type, config) {
85
+ const agentId = `ruflo_${type}_${Date.now()}`;
86
+ this.agents.push(agentId);
87
+ console.log(`[Ruflo Adapter] Spawned agent: ${agentId}`);
88
+ return agentId;
89
+ }
90
+ }
91
+ export class CustomAdapter {
92
+ name;
93
+ type = 'custom';
94
+ connected = false;
95
+ agents = [];
96
+ sendHandler;
97
+ receiveHandler;
98
+ constructor(name) {
99
+ this.name = name;
100
+ }
101
+ async connect() {
102
+ this.connected = true;
103
+ console.log(`[Custom Adapter: ${this.name}] Connected`);
104
+ }
105
+ async disconnect() {
106
+ this.connected = false;
107
+ console.log(`[Custom Adapter: ${this.name}] Disconnected`);
108
+ }
109
+ async send(message) {
110
+ if (!this.connected) {
111
+ throw new Error('Adapter not connected');
112
+ }
113
+ if (this.sendHandler) {
114
+ await this.sendHandler(message);
115
+ }
116
+ }
117
+ receive(message) {
118
+ if (this.receiveHandler) {
119
+ this.receiveHandler(message);
120
+ }
121
+ }
122
+ setSendHandler(handler) {
123
+ this.sendHandler = handler;
124
+ }
125
+ setReceiveHandler(handler) {
126
+ this.receiveHandler = handler;
127
+ }
128
+ async spawnAgent(type, config) {
129
+ const agentId = `${this.name}_${type}_${Date.now()}`;
130
+ this.agents.push(agentId);
131
+ return agentId;
132
+ }
133
+ }
134
+ import { MCPAdapter } from './adapters/mcp.js';
135
+ export function createAdapter(type, customName) {
136
+ switch (type) {
137
+ case 'openclaw':
138
+ return new OpenClawAdapter();
139
+ case 'claude-code':
140
+ return new ClaudeCodeAdapter();
141
+ case 'ruflo':
142
+ return new RufloAdapter();
143
+ case 'mcp':
144
+ return new MCPAdapter();
145
+ case 'custom':
146
+ return new CustomAdapter(customName ?? 'custom');
147
+ default:
148
+ throw new Error(`Unknown adapter type: ${type}`);
149
+ }
150
+ }
151
+ //# sourceMappingURL=adapters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapters.js","sourceRoot":"","sources":["../../src/agents/adapters.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Agent Coordination System
3
+ *
4
+ * Swarm topologies and consensus protocols for multi-agent coordination.
5
+ */
6
+ import { Agent, ConsensusState } from '../core/types.js';
7
+ export type Topology = 'peer' | 'hierarchical' | 'ring' | 'star';
8
+ export type Consensus = 'raft' | 'bft' | 'gossip' | 'crdt';
9
+ export declare class AgentCoordinator {
10
+ private agents;
11
+ private topology;
12
+ private consensus;
13
+ private consensusState;
14
+ constructor(topology?: Topology, consensus?: Consensus);
15
+ /**
16
+ * Register an agent
17
+ */
18
+ register(agent: Agent): void;
19
+ /**
20
+ * Unregister an agent
21
+ */
22
+ unregister(agentId: string): void;
23
+ /**
24
+ * Get agent
25
+ */
26
+ getAgent(agentId: string): Agent | undefined;
27
+ /**
28
+ * Get all agents
29
+ */
30
+ getAllAgents(): Agent[];
31
+ /**
32
+ * Get agents by type
33
+ */
34
+ getAgentsByType(type: Agent['type']): Agent[];
35
+ /**
36
+ * Get neighbors for an agent based on topology
37
+ */
38
+ getNeighbors(agentId: string): string[];
39
+ private getPeerNeighbors;
40
+ private getHierarchicalNeighbors;
41
+ private getRingNeighbors;
42
+ private getStarNeighbors;
43
+ /**
44
+ * Coordinate task across agents
45
+ */
46
+ coordinate(task: string, agents: string[]): Promise<Array<{
47
+ agentId: string;
48
+ result: unknown;
49
+ }>>;
50
+ private hierarchicalCoordination;
51
+ private parallelCoordination;
52
+ private ringCoordination;
53
+ private starCoordination;
54
+ private distributeWork;
55
+ private simulateWork;
56
+ /**
57
+ * Achieve consensus on a decision
58
+ */
59
+ consensusDecide(proposal: string, agents: string[]): Promise<{
60
+ decided: boolean;
61
+ result?: string;
62
+ }>;
63
+ private raftConsensus;
64
+ private bftConsensus;
65
+ private gossipConsensus;
66
+ private crdtConsensus;
67
+ private requestVotes;
68
+ getTopology(): Topology;
69
+ setTopology(topology: Topology): void;
70
+ getConsensus(): Consensus;
71
+ setConsensus(consensus: Consensus): void;
72
+ getConsensusState(): ConsensusState;
73
+ }
74
+ export declare const createCoordinator: (topology?: Topology, consensus?: Consensus) => AgentCoordinator;
75
+ //# sourceMappingURL=coordinator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coordinator.d.ts","sourceRoot":"","sources":["../../src/agents/coordinator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAkB,cAAc,EAAa,MAAM,kBAAkB,CAAC;AAOpF,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,cAAc,GAAG,MAAM,GAAG,MAAM,CAAC;AACjE,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE3D,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,cAAc,CAAiB;gBAGrC,QAAQ,GAAE,QAAyB,EACnC,SAAS,GAAE,SAAkB;IAa/B;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAW5B;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKjC;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;IAI5C;;OAEG;IACH,YAAY,IAAI,KAAK,EAAE;IAIvB;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,EAAE;IAM7C;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;IAevC,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,wBAAwB;IAUhC,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,gBAAgB;IAexB;;OAEG;IACG,UAAU,CACd,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EAAE,GACf,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;YAyBzC,wBAAwB;YAuBxB,oBAAoB;YAWpB,gBAAgB;YAgBhB,gBAAgB;IAqB9B,OAAO,CAAC,cAAc;YAeR,YAAY;IAgF1B;;OAEG;IACG,eAAe,CACnB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EAAE,GACf,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;YAenC,aAAa;YAqBb,YAAY;YAiBZ,eAAe;YAoBf,aAAa;YASb,YAAY;IAW1B,WAAW,IAAI,QAAQ;IAIvB,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAIrC,YAAY,IAAI,SAAS;IAIzB,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAKxC,iBAAiB,IAAI,cAAc;CAGpC;AAID,eAAO,MAAM,iBAAiB,GAC5B,WAAW,QAAQ,EACnB,YAAY,SAAS,qBACuB,CAAC"}
@@ -0,0 +1,339 @@
1
+ /**
2
+ * Agent Coordination System
3
+ *
4
+ * Swarm topologies and consensus protocols for multi-agent coordination.
5
+ */
6
+ import { PhantomWorker } from '../phantom/index.js';
7
+ import { randomUUID } from 'crypto';
8
+ import * as fs from 'fs';
9
+ import * as path from 'path';
10
+ export class AgentCoordinator {
11
+ agents = new Map();
12
+ topology;
13
+ consensus;
14
+ consensusState;
15
+ constructor(topology = 'hierarchical', consensus = 'raft') {
16
+ this.topology = topology;
17
+ this.consensus = consensus;
18
+ this.consensusState = {
19
+ type: consensus,
20
+ term: 0,
21
+ nodes: new Map()
22
+ };
23
+ }
24
+ // ==================== AGENT MANAGEMENT ====================
25
+ /**
26
+ * Register an agent
27
+ */
28
+ register(agent) {
29
+ this.agents.set(agent.id, agent);
30
+ // Add to consensus
31
+ this.consensusState.nodes.set(agent.id, {
32
+ id: agent.id,
33
+ status: 'active',
34
+ lastSeen: Date.now()
35
+ });
36
+ }
37
+ /**
38
+ * Unregister an agent
39
+ */
40
+ unregister(agentId) {
41
+ this.agents.delete(agentId);
42
+ this.consensusState.nodes.get(agentId).status = 'failed';
43
+ }
44
+ /**
45
+ * Get agent
46
+ */
47
+ getAgent(agentId) {
48
+ return this.agents.get(agentId);
49
+ }
50
+ /**
51
+ * Get all agents
52
+ */
53
+ getAllAgents() {
54
+ return Array.from(this.agents.values());
55
+ }
56
+ /**
57
+ * Get agents by type
58
+ */
59
+ getAgentsByType(type) {
60
+ return Array.from(this.agents.values()).filter(a => a.type === type);
61
+ }
62
+ // ==================== TOPOLOGY ====================
63
+ /**
64
+ * Get neighbors for an agent based on topology
65
+ */
66
+ getNeighbors(agentId) {
67
+ switch (this.topology) {
68
+ case 'peer':
69
+ return this.getPeerNeighbors(agentId);
70
+ case 'hierarchical':
71
+ return this.getHierarchicalNeighbors(agentId);
72
+ case 'ring':
73
+ return this.getRingNeighbors(agentId);
74
+ case 'star':
75
+ return this.getStarNeighbors(agentId);
76
+ default:
77
+ return [];
78
+ }
79
+ }
80
+ getPeerNeighbors(agentId) {
81
+ // All other agents are neighbors (mesh)
82
+ return Array.from(this.agents.keys()).filter(id => id !== agentId);
83
+ }
84
+ getHierarchicalNeighbors(agentId) {
85
+ // Queen coordinates workers
86
+ // Workers report to queen
87
+ const agent = this.agents.get(agentId);
88
+ if (!agent)
89
+ return [];
90
+ // For now, just return all other agents
91
+ return Array.from(this.agents.keys()).filter(id => id !== agentId);
92
+ }
93
+ getRingNeighbors(agentId) {
94
+ const ids = Array.from(this.agents.keys());
95
+ const idx = ids.indexOf(agentId);
96
+ if (idx === -1)
97
+ return [];
98
+ // Previous and next in ring
99
+ const prev = idx - 1 < 0 ? ids.length - 1 : idx - 1;
100
+ const next = idx + 1 >= ids.length ? 0 : idx + 1;
101
+ return [ids[prev], ids[next]];
102
+ }
103
+ getStarNeighbors(agentId) {
104
+ const ids = Array.from(this.agents.keys());
105
+ const hub = ids[0]; // First agent is hub
106
+ if (agentId === hub) {
107
+ // Hub sees all spokes
108
+ return ids.slice(1);
109
+ }
110
+ // Spoke sees only hub
111
+ return [hub];
112
+ }
113
+ // ==================== COORDINATION ====================
114
+ /**
115
+ * Coordinate task across agents
116
+ */
117
+ async coordinate(task, agents) {
118
+ const results = [];
119
+ switch (this.topology) {
120
+ case 'hierarchical':
121
+ // Queen delegates to workers
122
+ results.push(...await this.hierarchicalCoordination(task, agents));
123
+ break;
124
+ case 'peer':
125
+ // All agents work in parallel
126
+ results.push(...await this.parallelCoordination(task, agents));
127
+ break;
128
+ case 'ring':
129
+ // Sequential passing
130
+ results.push(...await this.ringCoordination(task, agents));
131
+ break;
132
+ case 'star':
133
+ // Hub delegates
134
+ results.push(...await this.starCoordination(task, agents));
135
+ break;
136
+ }
137
+ return results;
138
+ }
139
+ async hierarchicalCoordination(task, agents) {
140
+ // First agent is coordinator
141
+ const coordinator = agents[0];
142
+ const workers = agents.slice(1);
143
+ // Coordinator distributes work
144
+ const workChunks = this.distributeWork(task, workers.length);
145
+ // Workers execute in parallel
146
+ const workerResults = await Promise.all(workers.map((worker, i) => this.simulateWork(worker, workChunks[i])));
147
+ // Coordinator aggregates
148
+ return [
149
+ { agentId: coordinator, result: { aggregated: workerResults } },
150
+ ...workerResults
151
+ ];
152
+ }
153
+ async parallelCoordination(task, agents) {
154
+ const workChunks = this.distributeWork(task, agents.length);
155
+ return Promise.all(agents.map((agent, i) => this.simulateWork(agent, workChunks[i])));
156
+ }
157
+ async ringCoordination(task, agents) {
158
+ const results = [];
159
+ let currentTask = task;
160
+ for (const agent of agents) {
161
+ const result = await this.simulateWork(agent, currentTask);
162
+ results.push(result);
163
+ currentTask = `processed_${result.result}`;
164
+ }
165
+ return results;
166
+ }
167
+ async starCoordination(task, agents) {
168
+ const hub = agents[0];
169
+ const spokes = agents.slice(1);
170
+ // Hub distributes to spokes
171
+ const workChunks = this.distributeWork(task, spokes.length);
172
+ const spokeResults = await Promise.all(spokes.map((spoke, i) => this.simulateWork(spoke, workChunks[i])));
173
+ // Hub aggregates
174
+ return [
175
+ { agentId: hub, result: { aggregated: spokeResults } },
176
+ ...spokeResults
177
+ ];
178
+ }
179
+ distributeWork(task, numChunks) {
180
+ // Simple distribution: split by words
181
+ const words = task.split(/\s+/);
182
+ const chunkSize = Math.ceil(words.length / numChunks);
183
+ const chunks = [];
184
+ for (let i = 0; i < numChunks; i++) {
185
+ const start = i * chunkSize;
186
+ const end = start + chunkSize;
187
+ chunks.push(words.slice(start, end).join(' '));
188
+ }
189
+ return chunks;
190
+ }
191
+ async simulateWork(agentId, work) {
192
+ const worker = new PhantomWorker();
193
+ const task = {
194
+ id: randomUUID(),
195
+ goal: work,
196
+ files: [],
197
+ approach: 'standard',
198
+ tokenBudget: 50000,
199
+ };
200
+ try {
201
+ const result = await worker.spawn(task, async (worktreeDir, workerTask, w) => {
202
+ const learnings = [];
203
+ // Scan the worktree for relevant source files
204
+ const srcDir = path.join(worktreeDir, 'src');
205
+ const filesToRead = [];
206
+ try {
207
+ const entries = fs.readdirSync(srcDir, { withFileTypes: true });
208
+ for (const entry of entries) {
209
+ if (entry.isFile() && /\.[jt]s$/.test(entry.name)) {
210
+ filesToRead.push(path.join(srcDir, entry.name));
211
+ }
212
+ }
213
+ }
214
+ catch { /* worktree may not have src/ */ }
215
+ // Read first 500 bytes of up to 5 files for context
216
+ for (const filePath of filesToRead.slice(0, 5)) {
217
+ try {
218
+ const content = fs.readFileSync(filePath, 'utf-8').slice(0, 500);
219
+ const fileName = path.basename(filePath);
220
+ const exports = (content.match(/export\s+(class|function|const|interface)\s+\w+/g) || []);
221
+ learnings.push(`[${agentId}] Analyzed ${fileName}: ${exports.length} exports, ${content.length} chars read`);
222
+ }
223
+ catch {
224
+ learnings.push(`[${agentId}] Could not read ${path.basename(filePath)}`);
225
+ }
226
+ }
227
+ // Broadcast findings to POD network
228
+ w.broadcast(`Agent ${agentId} analyzed ${filesToRead.length} files for: ${workerTask.goal.slice(0, 60)}`, 0.7, ['#coordinator', '#agent-work']);
229
+ // Check peer findings
230
+ const peerFindings = w.receive(['#coordinator']);
231
+ if (peerFindings.length > 0) {
232
+ learnings.push(`[${agentId}] Received ${peerFindings.length} peer findings`);
233
+ }
234
+ return {
235
+ learnings: learnings.length > 0 ? learnings : [`[${agentId}] No source files found in worktree`],
236
+ confidence: learnings.length > 2 ? 0.85 : 0.6,
237
+ };
238
+ });
239
+ return {
240
+ agentId,
241
+ result: {
242
+ diff: result.diff,
243
+ outcome: result.outcome,
244
+ learnings: result.learnings,
245
+ }
246
+ };
247
+ }
248
+ catch (err) {
249
+ return {
250
+ agentId,
251
+ result: { outcome: 'failed', error: String(err) }
252
+ };
253
+ }
254
+ }
255
+ // ==================== CONSENSUS ====================
256
+ /**
257
+ * Achieve consensus on a decision
258
+ */
259
+ async consensusDecide(proposal, agents) {
260
+ switch (this.consensus) {
261
+ case 'raft':
262
+ return this.raftConsensus(proposal, agents);
263
+ case 'bft':
264
+ return this.bftConsensus(proposal, agents);
265
+ case 'gossip':
266
+ return this.gossipConsensus(proposal, agents);
267
+ case 'crdt':
268
+ return this.crdtConsensus(proposal, agents);
269
+ default:
270
+ return { decided: false };
271
+ }
272
+ }
273
+ async raftConsensus(proposal, agents) {
274
+ // Simple leader-based consensus
275
+ const leader = this.consensusState.leader ?? agents[0];
276
+ // Leader proposes
277
+ const votes = await this.requestVotes(leader, proposal, agents);
278
+ // Majority wins
279
+ const majority = Math.ceil(agents.length / 2);
280
+ const agree = votes.filter(v => v).length;
281
+ if (agree >= majority) {
282
+ return { decided: true, result: proposal };
283
+ }
284
+ return { decided: false };
285
+ }
286
+ async bftConsensus(proposal, agents) {
287
+ // Byzantine fault-tolerant: need 2/3 agreement
288
+ const votes = await this.requestVotes('leader', proposal, agents);
289
+ const byzantineThreshold = Math.ceil(agents.length * 2 / 3);
290
+ const agree = votes.filter(v => v).length;
291
+ if (agree >= byzantineThreshold) {
292
+ return { decided: true, result: proposal };
293
+ }
294
+ return { decided: false };
295
+ }
296
+ async gossipConsensus(proposal, agents) {
297
+ // Gossip until convergence
298
+ let values = new Set([proposal]);
299
+ for (let round = 0; round < 5; round++) {
300
+ // Each agent gossips with random neighbor
301
+ for (const agent of agents) {
302
+ const neighbor = agents[Math.floor(Math.random() * agents.length)];
303
+ // Simulate gossip
304
+ values.add(proposal);
305
+ }
306
+ }
307
+ // Return most common value
308
+ return { decided: true, result: proposal };
309
+ }
310
+ async crdtConsensus(proposal, agents) {
311
+ // CRDT: always converges
312
+ // Last-write-wins for simplicity
313
+ return { decided: true, result: proposal };
314
+ }
315
+ async requestVotes(proposer, proposal, agents) {
316
+ // Simulate voting
317
+ return agents.map(() => Math.random() > 0.3);
318
+ }
319
+ // ==================== STATE ====================
320
+ getTopology() {
321
+ return this.topology;
322
+ }
323
+ setTopology(topology) {
324
+ this.topology = topology;
325
+ }
326
+ getConsensus() {
327
+ return this.consensus;
328
+ }
329
+ setConsensus(consensus) {
330
+ this.consensus = consensus;
331
+ this.consensusState.type = consensus;
332
+ }
333
+ getConsensusState() {
334
+ return { ...this.consensusState };
335
+ }
336
+ }
337
+ // ==================== FACTORY ====================
338
+ export const createCoordinator = (topology, consensus) => new AgentCoordinator(topology, consensus);
339
+ //# sourceMappingURL=coordinator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coordinator.js","sourceRoot":"","sources":["../../src/agents/coordinator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,aAAa,EAAmB,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAK7B,MAAM,OAAO,gBAAgB;IACnB,MAAM,GAAuB,IAAI,GAAG,EAAE,CAAC;IACvC,QAAQ,CAAW;IACnB,SAAS,CAAY;IACrB,cAAc,CAAiB;IAEvC,YACE,WAAqB,cAAc,EACnC,YAAuB,MAAM;QAE7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,cAAc,GAAG;YACpB,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,IAAI,GAAG,EAAE;SACjB,CAAC;IACJ,CAAC;IAED,6DAA6D;IAE7D;;OAEG;IACH,QAAQ,CAAC,KAAY;QACnB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAEjC,mBAAmB;QACnB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE;YACtC,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,MAAM,EAAE,QAAQ;YAChB,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE;SACrB,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,OAAe;QACxB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC5B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC,MAAM,GAAG,QAAQ,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,OAAe;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,YAAY;QACV,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,IAAmB;QACjC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACvE,CAAC;IAED,qDAAqD;IAErD;;OAEG;IACH,YAAY,CAAC,OAAe;QAC1B,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;YACtB,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YACxC,KAAK,cAAc;gBACjB,OAAO,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;YAChD,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YACxC,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YACxC;gBACE,OAAO,EAAE,CAAC;QACd,CAAC;IACH,CAAC;IAEO,gBAAgB,CAAC,OAAe;QACtC,wCAAwC;QACxC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;IACrE,CAAC;IAEO,wBAAwB,CAAC,OAAe;QAC9C,4BAA4B;QAC5B,0BAA0B;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAC;QAEtB,wCAAwC;QACxC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;IACrE,CAAC;IAEO,gBAAgB,CAAC,OAAe;QACtC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAEjC,IAAI,GAAG,KAAK,CAAC,CAAC;YAAE,OAAO,EAAE,CAAC;QAE1B,4BAA4B;QAC5B,MAAM,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;QAEjD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAEO,gBAAgB,CAAC,OAAe;QACtC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB;QAEzC,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;YACpB,sBAAsB;YACtB,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;QAED,sBAAsB;QACtB,OAAO,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;IAED,yDAAyD;IAEzD;;OAEG;IACH,KAAK,CAAC,UAAU,CACd,IAAY,EACZ,MAAgB;QAEhB,MAAM,OAAO,GAAgD,EAAE,CAAC;QAEhE,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;YACtB,KAAK,cAAc;gBACjB,6BAA6B;gBAC7B,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;gBACnE,MAAM;YACR,KAAK,MAAM;gBACT,8BAA8B;gBAC9B,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;gBAC/D,MAAM;YACR,KAAK,MAAM;gBACT,qBAAqB;gBACrB,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;gBAC3D,MAAM;YACR,KAAK,MAAM;gBACT,gBAAgB;gBAChB,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;gBAC3D,MAAM;QACV,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,KAAK,CAAC,wBAAwB,CACpC,IAAY,EACZ,MAAgB;QAEhB,6BAA6B;QAC7B,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAEhC,+BAA+B;QAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAE7D,8BAA8B;QAC9B,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CACrC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CACrE,CAAC;QAEF,yBAAyB;QACzB,OAAO;YACL,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE;YAC/D,GAAG,aAAa;SACjB,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAChC,IAAY,EACZ,MAAgB;QAEhB,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAE5D,OAAO,OAAO,CAAC,GAAG,CAChB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAClE,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAC5B,IAAY,EACZ,MAAgB;QAEhB,MAAM,OAAO,GAAgD,EAAE,CAAC;QAChE,IAAI,WAAW,GAAG,IAAI,CAAC;QAEvB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;YAC3D,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrB,WAAW,GAAG,aAAa,MAAM,CAAC,MAAM,EAAE,CAAC;QAC7C,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAC5B,IAAY,EACZ,MAAgB;QAEhB,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAE/B,4BAA4B;QAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAE5D,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CACpC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAClE,CAAC;QAEF,iBAAiB;QACjB,OAAO;YACL,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE;YACtD,GAAG,YAAY;SAChB,CAAC;IACJ,CAAC;IAEO,cAAc,CAAC,IAAY,EAAE,SAAiB;QACpD,sCAAsC;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;QAEtD,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;YACnC,MAAM,KAAK,GAAG,CAAC,GAAG,SAAS,CAAC;YAC5B,MAAM,GAAG,GAAG,KAAK,GAAG,SAAS,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACjD,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,YAAY,CACxB,OAAe,EACf,IAAY;QAEZ,MAAM,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QACnC,MAAM,IAAI,GAAe;YACvB,EAAE,EAAE,UAAU,EAAE;YAChB,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,EAAe;YACtB,QAAQ,EAAE,UAAU;YACpB,WAAW,EAAE,KAAK;SACnB,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE;gBAC3E,MAAM,SAAS,GAAa,EAAE,CAAC;gBAE/B,8CAA8C;gBAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBAC7C,MAAM,WAAW,GAAa,EAAE,CAAC;gBACjC,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;oBAChE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;wBAC5B,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;4BAClD,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;wBAClD,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC,CAAC,gCAAgC,CAAC,CAAC;gBAE5C,oDAAoD;gBACpD,KAAK,MAAM,QAAQ,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;oBAC/C,IAAI,CAAC;wBACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;wBACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;wBACzC,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC,IAAI,EAAE,CAAC,CAAC;wBAC1F,SAAS,CAAC,IAAI,CACZ,IAAI,OAAO,cAAc,QAAQ,KAAK,OAAO,CAAC,MAAM,aAAa,OAAO,CAAC,MAAM,aAAa,CAC7F,CAAC;oBACJ,CAAC;oBAAC,MAAM,CAAC;wBACP,SAAS,CAAC,IAAI,CAAC,IAAI,OAAO,oBAAoB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;oBAC3E,CAAC;gBACH,CAAC;gBAED,oCAAoC;gBACpC,CAAC,CAAC,SAAS,CACT,SAAS,OAAO,aAAa,WAAW,CAAC,MAAM,eAAe,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAC5F,GAAG,EACH,CAAC,cAAc,EAAE,aAAa,CAAC,CAChC,CAAC;gBAEF,sBAAsB;gBACtB,MAAM,YAAY,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;gBACjD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC5B,SAAS,CAAC,IAAI,CAAC,IAAI,OAAO,cAAc,YAAY,CAAC,MAAM,gBAAgB,CAAC,CAAC;gBAC/E,CAAC;gBAED,OAAO;oBACL,SAAS,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,qCAAqC,CAAC;oBAChG,UAAU,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG;iBAC9C,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO;gBACP,MAAM,EAAE;oBACN,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,SAAS,EAAE,MAAM,CAAC,SAAS;iBAC5B;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO;gBACP,MAAM,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE;aAClD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,sDAAsD;IAEtD;;OAEG;IACH,KAAK,CAAC,eAAe,CACnB,QAAgB,EAChB,MAAgB;QAEhB,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;YACvB,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC9C,KAAK,KAAK;gBACR,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC7C,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAChD,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC9C;gBACE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,aAAa,CACzB,QAAgB,EAChB,MAAgB;QAEhB,gCAAgC;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;QAEvD,kBAAkB;QAClB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAEhE,gBAAgB;QAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAE1C,IAAI,KAAK,IAAI,QAAQ,EAAE,CAAC;YACtB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;QAC7C,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;IAEO,KAAK,CAAC,YAAY,CACxB,QAAgB,EAChB,MAAgB;QAEhB,+CAA+C;QAC/C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAElE,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5D,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAE1C,IAAI,KAAK,IAAI,kBAAkB,EAAE,CAAC;YAChC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;QAC7C,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;IAEO,KAAK,CAAC,eAAe,CAC3B,QAAgB,EAChB,MAAgB;QAEhB,2BAA2B;QAC3B,IAAI,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAEjC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;YACvC,0CAA0C;YAC1C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;gBACnE,kBAAkB;gBAClB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;QAED,2BAA2B;QAC3B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC7C,CAAC;IAEO,KAAK,CAAC,aAAa,CACzB,QAAgB,EAChB,MAAgB;QAEhB,yBAAyB;QACzB,iCAAiC;QACjC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC7C,CAAC;IAEO,KAAK,CAAC,YAAY,CACxB,QAAgB,EAChB,QAAgB,EAChB,MAAgB;QAEhB,kBAAkB;QAClB,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;IAC/C,CAAC;IAED,kDAAkD;IAElD,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,WAAW,CAAC,QAAkB;QAC5B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,YAAY,CAAC,SAAoB;QAC/B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,SAAS,CAAC;IACvC,CAAC;IAED,iBAAiB;QACf,OAAO,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;IACpC,CAAC;CACF;AAED,oDAAoD;AAEpD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,QAAmB,EACnB,SAAqB,EACrB,EAAE,CAAC,IAAI,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC"}