@defai.digital/discussion-domain 13.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/LICENSE +214 -0
  2. package/dist/consensus/index.d.ts +23 -0
  3. package/dist/consensus/index.d.ts.map +1 -0
  4. package/dist/consensus/index.js +45 -0
  5. package/dist/consensus/index.js.map +1 -0
  6. package/dist/consensus/moderator.d.ts +15 -0
  7. package/dist/consensus/moderator.d.ts.map +1 -0
  8. package/dist/consensus/moderator.js +201 -0
  9. package/dist/consensus/moderator.js.map +1 -0
  10. package/dist/consensus/synthesis.d.ts +15 -0
  11. package/dist/consensus/synthesis.d.ts.map +1 -0
  12. package/dist/consensus/synthesis.js +161 -0
  13. package/dist/consensus/synthesis.js.map +1 -0
  14. package/dist/consensus/voting.d.ts +17 -0
  15. package/dist/consensus/voting.d.ts.map +1 -0
  16. package/dist/consensus/voting.js +168 -0
  17. package/dist/consensus/voting.js.map +1 -0
  18. package/dist/executor.d.ts +73 -0
  19. package/dist/executor.d.ts.map +1 -0
  20. package/dist/executor.js +223 -0
  21. package/dist/executor.js.map +1 -0
  22. package/dist/index.d.ts +16 -0
  23. package/dist/index.d.ts.map +1 -0
  24. package/dist/index.js +21 -0
  25. package/dist/index.js.map +1 -0
  26. package/dist/patterns/critique.d.ts +20 -0
  27. package/dist/patterns/critique.d.ts.map +1 -0
  28. package/dist/patterns/critique.js +338 -0
  29. package/dist/patterns/critique.js.map +1 -0
  30. package/dist/patterns/debate.d.ts +20 -0
  31. package/dist/patterns/debate.d.ts.map +1 -0
  32. package/dist/patterns/debate.js +236 -0
  33. package/dist/patterns/debate.js.map +1 -0
  34. package/dist/patterns/index.d.ts +25 -0
  35. package/dist/patterns/index.d.ts.map +1 -0
  36. package/dist/patterns/index.js +49 -0
  37. package/dist/patterns/index.js.map +1 -0
  38. package/dist/patterns/round-robin.d.ts +13 -0
  39. package/dist/patterns/round-robin.d.ts.map +1 -0
  40. package/dist/patterns/round-robin.js +160 -0
  41. package/dist/patterns/round-robin.js.map +1 -0
  42. package/dist/patterns/synthesis.d.ts +20 -0
  43. package/dist/patterns/synthesis.d.ts.map +1 -0
  44. package/dist/patterns/synthesis.js +250 -0
  45. package/dist/patterns/synthesis.js.map +1 -0
  46. package/dist/patterns/voting.d.ts +19 -0
  47. package/dist/patterns/voting.d.ts.map +1 -0
  48. package/dist/patterns/voting.js +186 -0
  49. package/dist/patterns/voting.js.map +1 -0
  50. package/dist/prompts/index.d.ts +7 -0
  51. package/dist/prompts/index.d.ts.map +1 -0
  52. package/dist/prompts/index.js +21 -0
  53. package/dist/prompts/index.js.map +1 -0
  54. package/dist/prompts/templates.d.ts +55 -0
  55. package/dist/prompts/templates.d.ts.map +1 -0
  56. package/dist/prompts/templates.js +346 -0
  57. package/dist/prompts/templates.js.map +1 -0
  58. package/dist/provider-bridge.d.ts +115 -0
  59. package/dist/provider-bridge.d.ts.map +1 -0
  60. package/dist/provider-bridge.js +215 -0
  61. package/dist/provider-bridge.js.map +1 -0
  62. package/dist/types.d.ts +201 -0
  63. package/dist/types.d.ts.map +1 -0
  64. package/dist/types.js +102 -0
  65. package/dist/types.js.map +1 -0
  66. package/package.json +48 -0
  67. package/src/consensus/index.ts +52 -0
  68. package/src/consensus/moderator.ts +242 -0
  69. package/src/consensus/synthesis.ts +202 -0
  70. package/src/consensus/voting.ts +221 -0
  71. package/src/executor.ts +338 -0
  72. package/src/index.ts +69 -0
  73. package/src/patterns/critique.ts +465 -0
  74. package/src/patterns/debate.ts +340 -0
  75. package/src/patterns/index.ts +56 -0
  76. package/src/patterns/round-robin.ts +223 -0
  77. package/src/patterns/synthesis.ts +353 -0
  78. package/src/patterns/voting.ts +266 -0
  79. package/src/prompts/index.ts +41 -0
  80. package/src/prompts/templates.ts +381 -0
  81. package/src/provider-bridge.ts +346 -0
  82. package/src/types.ts +375 -0
@@ -0,0 +1,161 @@
1
+ /**
2
+ * Synthesis Consensus Executor
3
+ *
4
+ * One model synthesizes all perspectives into a unified conclusion.
5
+ * This is the default consensus method.
6
+ */
7
+ import { SYNTHESIS_FINAL, interpolate, formatPreviousResponses, getProviderSystemPrompt, } from '../prompts/templates.js';
8
+ export class SynthesisConsensus {
9
+ method = 'synthesis';
10
+ async execute(context) {
11
+ const startTime = Date.now();
12
+ const { topic, rounds, participatingProviders, config, providerExecutor, abortSignal, onProgress } = context;
13
+ // Determine synthesizer (default to first participating provider or 'claude')
14
+ const synthesizerId = config.synthesizer ||
15
+ (participatingProviders.includes('claude') ? 'claude' : participatingProviders[0]) ||
16
+ 'claude';
17
+ onProgress?.({
18
+ type: 'synthesis_start',
19
+ provider: synthesizerId,
20
+ message: `${synthesizerId} synthesizing discussion`,
21
+ timestamp: new Date().toISOString(),
22
+ });
23
+ // Build synthesis prompt with all round data
24
+ const initialPerspectives = this.formatRoundPerspectives(rounds[0]);
25
+ const crossDiscussion = rounds.slice(1).map((round, i) => `### Round ${i + 2}\n${this.formatRoundPerspectives(round)}`).join('\n\n');
26
+ const prompt = interpolate(SYNTHESIS_FINAL, {
27
+ topic,
28
+ initialPerspectives,
29
+ crossDiscussion: crossDiscussion || 'No cross-discussion rounds.',
30
+ });
31
+ try {
32
+ const result = await providerExecutor.execute({
33
+ providerId: synthesizerId,
34
+ prompt,
35
+ systemPrompt: getProviderSystemPrompt(synthesizerId),
36
+ temperature: 0.7,
37
+ timeoutMs: 90000, // Synthesis may take longer
38
+ abortSignal,
39
+ });
40
+ onProgress?.({
41
+ type: 'synthesis_complete',
42
+ provider: synthesizerId,
43
+ message: result.success ? 'Synthesis complete' : `Synthesis failed: ${result.error}`,
44
+ timestamp: new Date().toISOString(),
45
+ });
46
+ if (!result.success) {
47
+ return {
48
+ synthesis: '',
49
+ consensus: {
50
+ method: 'synthesis',
51
+ synthesizer: synthesizerId,
52
+ },
53
+ durationMs: Date.now() - startTime,
54
+ success: false,
55
+ error: result.error || 'Synthesis failed',
56
+ };
57
+ }
58
+ // Extract agreement score and dissent from synthesis
59
+ const analysisResult = this.analyzeSynthesis(result.content || '', participatingProviders);
60
+ return {
61
+ synthesis: result.content || '',
62
+ consensus: {
63
+ method: 'synthesis',
64
+ synthesizer: synthesizerId,
65
+ agreementScore: analysisResult.agreementScore,
66
+ agreements: analysisResult.agreements,
67
+ dissent: config.includeDissent ? analysisResult.dissent : undefined,
68
+ },
69
+ durationMs: Date.now() - startTime,
70
+ success: true,
71
+ };
72
+ }
73
+ catch (error) {
74
+ const errorMessage = error instanceof Error ? error.message : String(error);
75
+ onProgress?.({
76
+ type: 'synthesis_complete',
77
+ provider: synthesizerId,
78
+ message: `Synthesis error: ${errorMessage}`,
79
+ timestamp: new Date().toISOString(),
80
+ });
81
+ return {
82
+ synthesis: '',
83
+ consensus: {
84
+ method: 'synthesis',
85
+ synthesizer: synthesizerId,
86
+ },
87
+ durationMs: Date.now() - startTime,
88
+ success: false,
89
+ error: errorMessage,
90
+ };
91
+ }
92
+ }
93
+ formatRoundPerspectives(round) {
94
+ if (!round?.responses) {
95
+ return 'No responses in this round.';
96
+ }
97
+ return formatPreviousResponses(round.responses.map(r => ({
98
+ provider: r.provider,
99
+ content: r.content,
100
+ role: r.role,
101
+ })));
102
+ }
103
+ analyzeSynthesis(synthesis, providers) {
104
+ const agreements = [];
105
+ const dissent = [];
106
+ // Look for agreement section
107
+ const agreementMatch = /areas?\s+of\s+(?:strong\s+)?agreement[:\s]*([^#]+?)(?=##|$)/is.exec(synthesis);
108
+ if (agreementMatch?.[1]) {
109
+ const agreementText = agreementMatch[1];
110
+ // Extract bullet points
111
+ const bullets = agreementText.match(/[-•*]\s*([^\n]+)/g);
112
+ if (bullets) {
113
+ agreements.push(...bullets.map(b => b.replace(/^[-•*]\s*/, '').trim()));
114
+ }
115
+ }
116
+ // Look for disagreement/dissent section
117
+ const dissentMatch = /(?:key\s+)?disagreements?[:\s]*([^#]+?)(?=##|$)/is.exec(synthesis);
118
+ if (dissentMatch?.[1]) {
119
+ const dissentText = dissentMatch[1];
120
+ // Try to extract provider-specific dissent
121
+ for (const provider of providers) {
122
+ const providerPattern = new RegExp(`${provider}[:\\s]+([^\\n]+)`, 'i');
123
+ const match = dissentText.match(providerPattern);
124
+ if (match?.[1]) {
125
+ dissent.push({
126
+ provider,
127
+ position: match[1].trim(),
128
+ });
129
+ }
130
+ }
131
+ // If no provider-specific dissent found, create general entry
132
+ if (dissent.length === 0 && dissentText.trim().length > 0) {
133
+ const bullets = dissentText.match(/[-•*]\s*([^\n]+)/g);
134
+ if (bullets && bullets.length > 0) {
135
+ dissent.push({
136
+ provider: 'general',
137
+ position: 'Areas of disagreement noted',
138
+ keyPoints: bullets.map(b => b.replace(/^[-•*]\s*/, '').trim()),
139
+ });
140
+ }
141
+ }
142
+ }
143
+ // Calculate agreement score based on content analysis
144
+ const agreementScore = this.calculateAgreementScore(synthesis, agreements.length, dissent.length);
145
+ return { agreementScore, agreements, dissent };
146
+ }
147
+ calculateAgreementScore(synthesis, agreementCount, dissentCount) {
148
+ // Base score from ratio of agreements to total points
149
+ const totalPoints = agreementCount + dissentCount;
150
+ if (totalPoints === 0) {
151
+ return 0.7; // Default moderate agreement
152
+ }
153
+ const ratioScore = agreementCount / totalPoints;
154
+ // Adjust based on sentiment indicators in text
155
+ const strongAgreementIndicators = (synthesis.match(/unanimous|all\s+(?:models?\s+)?agree|consensus|strong\s+agreement/gi) || []).length;
156
+ const disagreementIndicators = (synthesis.match(/disagree|conflict|diverge|oppose|contrary/gi) || []).length;
157
+ const sentimentAdjustment = (strongAgreementIndicators * 0.1) - (disagreementIndicators * 0.05);
158
+ return Math.max(0, Math.min(1, ratioScore + sentimentAdjustment));
159
+ }
160
+ }
161
+ //# sourceMappingURL=synthesis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"synthesis.js","sourceRoot":"","sources":["../../src/consensus/synthesis.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Voting Consensus Executor
3
+ *
4
+ * Tallies votes from all providers and determines winner based on
5
+ * raw counts or confidence-weighted scores.
6
+ */
7
+ import type { ConsensusExecutor, ConsensusExecutionContext, ConsensusExecutionResult } from '../types.js';
8
+ export declare class VotingConsensus implements ConsensusExecutor {
9
+ readonly method: "voting";
10
+ execute(context: ConsensusExecutionContext): Promise<ConsensusExecutionResult>;
11
+ private extractVotes;
12
+ private extractReasoning;
13
+ private tallyVotes;
14
+ private generateVoteSummary;
15
+ private generateFallbackSummary;
16
+ }
17
+ //# sourceMappingURL=voting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voting.d.ts","sourceRoot":"","sources":["../../src/consensus/voting.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAQ1G,qBAAa,eAAgB,YAAW,iBAAiB;IACvD,QAAQ,CAAC,MAAM,EAAG,QAAQ,CAAU;IAE9B,OAAO,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAwDpF,OAAO,CAAC,YAAY;IAmBpB,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,UAAU;YA6CJ,mBAAmB;IAgDjC,OAAO,CAAC,uBAAuB;CA4BhC"}
@@ -0,0 +1,168 @@
1
+ /**
2
+ * Voting Consensus Executor
3
+ *
4
+ * Tallies votes from all providers and determines winner based on
5
+ * raw counts or confidence-weighted scores.
6
+ */
7
+ import { VOTING_TALLY, interpolate, formatVotes, getProviderSystemPrompt, } from '../prompts/templates.js';
8
+ export class VotingConsensus {
9
+ method = 'voting';
10
+ async execute(context) {
11
+ const startTime = Date.now();
12
+ const { topic, rounds, participatingProviders, config, providerExecutor, abortSignal, onProgress } = context;
13
+ // Extract votes from round responses
14
+ const votes = this.extractVotes(rounds);
15
+ if (votes.length === 0) {
16
+ return {
17
+ synthesis: 'No valid votes were cast.',
18
+ consensus: {
19
+ method: 'voting',
20
+ },
21
+ durationMs: Date.now() - startTime,
22
+ success: false,
23
+ error: 'No valid votes found in discussion rounds',
24
+ };
25
+ }
26
+ // Tally votes
27
+ const votingResults = this.tallyVotes(votes, config.threshold);
28
+ // Generate synthesis summary
29
+ const synthesizerId = config.synthesizer ||
30
+ (participatingProviders.includes('claude') ? 'claude' : participatingProviders[0]) ||
31
+ 'claude';
32
+ onProgress?.({
33
+ type: 'synthesis_start',
34
+ provider: synthesizerId,
35
+ message: 'Generating vote summary',
36
+ timestamp: new Date().toISOString(),
37
+ });
38
+ const synthesis = await this.generateVoteSummary(topic, votingResults, synthesizerId, providerExecutor, abortSignal, onProgress);
39
+ return {
40
+ synthesis,
41
+ consensus: {
42
+ method: 'voting',
43
+ synthesizer: synthesizerId,
44
+ agreementScore: votingResults.unanimous ? 1.0 : votingResults.margin,
45
+ },
46
+ votingResults,
47
+ durationMs: Date.now() - startTime,
48
+ success: true,
49
+ };
50
+ }
51
+ extractVotes(rounds) {
52
+ const votes = [];
53
+ for (const round of rounds) {
54
+ for (const response of round.responses) {
55
+ if (response.vote && response.confidence !== undefined) {
56
+ votes.push({
57
+ provider: response.provider,
58
+ choice: response.vote,
59
+ confidence: response.confidence,
60
+ reasoning: this.extractReasoning(response.content),
61
+ });
62
+ }
63
+ }
64
+ }
65
+ return votes;
66
+ }
67
+ extractReasoning(content) {
68
+ const reasoningMatch = /reasoning:\s*(.+?)(?=\n\n|$)/is.exec(content);
69
+ return reasoningMatch?.[1] ? reasoningMatch[1].trim() : '';
70
+ }
71
+ tallyVotes(votes, _threshold) {
72
+ // Count raw votes
73
+ const rawVotes = {};
74
+ const weightedVotes = {};
75
+ for (const vote of votes) {
76
+ rawVotes[vote.choice] = (rawVotes[vote.choice] || 0) + 1;
77
+ weightedVotes[vote.choice] = (weightedVotes[vote.choice] || 0) + vote.confidence;
78
+ }
79
+ // Determine winner (by weighted votes)
80
+ let winner = '';
81
+ let maxWeight = 0;
82
+ let secondMaxWeight = 0;
83
+ for (const [choice, weight] of Object.entries(weightedVotes)) {
84
+ if (weight > maxWeight) {
85
+ secondMaxWeight = maxWeight;
86
+ maxWeight = weight;
87
+ winner = choice;
88
+ }
89
+ else if (weight > secondMaxWeight) {
90
+ secondMaxWeight = weight;
91
+ }
92
+ }
93
+ // Calculate total weight
94
+ const totalWeight = Object.values(weightedVotes).reduce((a, b) => a + b, 0);
95
+ // Check if unanimous
96
+ const uniqueChoices = new Set(votes.map(v => v.choice));
97
+ const unanimous = uniqueChoices.size === 1;
98
+ // Calculate margin
99
+ const margin = totalWeight > 0 ? (maxWeight - secondMaxWeight) / totalWeight : 0;
100
+ return {
101
+ winner,
102
+ votes: rawVotes,
103
+ weightedVotes,
104
+ voteRecords: votes,
105
+ unanimous,
106
+ margin,
107
+ };
108
+ }
109
+ async generateVoteSummary(topic, votingResults, synthesizerId, providerExecutor, abortSignal, onProgress) {
110
+ // Build options list
111
+ const options = Object.keys(votingResults.votes);
112
+ // Build formatted votes
113
+ const formattedVotes = formatVotes(votingResults.voteRecords);
114
+ const prompt = interpolate(VOTING_TALLY, {
115
+ topic,
116
+ options: options.join(', '),
117
+ votes: formattedVotes,
118
+ });
119
+ try {
120
+ const result = await providerExecutor.execute({
121
+ providerId: synthesizerId,
122
+ prompt,
123
+ systemPrompt: getProviderSystemPrompt(synthesizerId),
124
+ temperature: 0.5,
125
+ timeoutMs: 60000,
126
+ abortSignal,
127
+ });
128
+ onProgress?.({
129
+ type: 'synthesis_complete',
130
+ provider: synthesizerId,
131
+ timestamp: new Date().toISOString(),
132
+ });
133
+ if (result.success && result.content) {
134
+ return result.content;
135
+ }
136
+ // Fallback to generated summary
137
+ return this.generateFallbackSummary(votingResults);
138
+ }
139
+ catch {
140
+ return this.generateFallbackSummary(votingResults);
141
+ }
142
+ }
143
+ generateFallbackSummary(votingResults) {
144
+ const { winner, votes, weightedVotes, unanimous, margin, voteRecords } = votingResults;
145
+ let summary = `## Voting Results\n\n`;
146
+ summary += `**Winner**: ${winner}\n\n`;
147
+ if (unanimous) {
148
+ summary += `The vote was **unanimous** - all providers agreed on ${winner}.\n\n`;
149
+ }
150
+ else {
151
+ summary += `**Margin of victory**: ${(margin * 100).toFixed(1)}%\n\n`;
152
+ }
153
+ summary += `### Vote Breakdown\n\n`;
154
+ for (const [choice, count] of Object.entries(votes)) {
155
+ const weight = weightedVotes[choice] || 0;
156
+ summary += `- **${choice}**: ${count} vote(s), weighted score: ${weight.toFixed(2)}\n`;
157
+ }
158
+ summary += `\n### Individual Votes\n\n`;
159
+ for (const record of voteRecords) {
160
+ summary += `- **${record.provider}**: ${record.choice} (${(record.confidence * 100).toFixed(0)}% confidence)\n`;
161
+ if (record.reasoning) {
162
+ summary += ` - Reasoning: ${record.reasoning}\n`;
163
+ }
164
+ }
165
+ return summary;
166
+ }
167
+ }
168
+ //# sourceMappingURL=voting.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voting.js","sourceRoot":"","sources":["../../src/consensus/voting.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Discussion Executor
3
+ *
4
+ * Main orchestrator for multi-model discussions.
5
+ * Coordinates pattern execution, consensus mechanisms, and result assembly.
6
+ *
7
+ * Invariants enforced:
8
+ * - INV-DISC-100: Provider availability check before starting
9
+ * - INV-DISC-101: Minimum participating providers enforced
10
+ * - INV-DISC-102: Provider timeouts enforced
11
+ * - INV-DISC-009: Result always contains synthesis
12
+ */
13
+ import { type DiscussStepConfig, type DiscussionResult, type DiscussionRequest } from '@defai.digital/contracts';
14
+ import type { DiscussionProviderExecutor, DiscussionExecutorOptions, DiscussionProgressEvent } from './types.js';
15
+ /**
16
+ * Main discussion executor class.
17
+ *
18
+ * Orchestrates multi-model discussions across different patterns and consensus mechanisms.
19
+ */
20
+ export declare class DiscussionExecutor {
21
+ private readonly providerExecutor;
22
+ private readonly defaultTimeoutMs;
23
+ private readonly checkProviderHealth;
24
+ private readonly traceId;
25
+ constructor(options: DiscussionExecutorOptions);
26
+ /**
27
+ * Execute a discussion from a DiscussionRequest (CLI/MCP input format)
28
+ */
29
+ executeRequest(request: DiscussionRequest, options?: {
30
+ abortSignal?: AbortSignal;
31
+ onProgress?: (event: DiscussionProgressEvent) => void;
32
+ }): Promise<DiscussionResult>;
33
+ /**
34
+ * Execute a discussion with full configuration
35
+ */
36
+ execute(config: DiscussStepConfig, options?: {
37
+ abortSignal?: AbortSignal;
38
+ onProgress?: (event: DiscussionProgressEvent) => void;
39
+ }): Promise<DiscussionResult>;
40
+ /**
41
+ * Check provider availability (INV-DISC-100)
42
+ */
43
+ private checkProviders;
44
+ /**
45
+ * Create a quick synthesis discussion (2 rounds, default providers)
46
+ */
47
+ quickSynthesis(topic: string, options?: {
48
+ providers?: string[];
49
+ abortSignal?: AbortSignal;
50
+ onProgress?: (event: DiscussionProgressEvent) => void;
51
+ }): Promise<DiscussionResult>;
52
+ /**
53
+ * Create a debate discussion
54
+ */
55
+ debate(topic: string, proponent?: string, opponent?: string, judge?: string, options?: {
56
+ rounds?: number;
57
+ abortSignal?: AbortSignal;
58
+ onProgress?: (event: DiscussionProgressEvent) => void;
59
+ }): Promise<DiscussionResult>;
60
+ /**
61
+ * Create a voting discussion
62
+ */
63
+ vote(question: string, voteOptions: string[], options?: {
64
+ providers?: string[];
65
+ abortSignal?: AbortSignal;
66
+ onProgress?: (event: DiscussionProgressEvent) => void;
67
+ }): Promise<DiscussionResult>;
68
+ }
69
+ /**
70
+ * Create a discussion executor with default options
71
+ */
72
+ export declare function createDiscussionExecutor(providerExecutor: DiscussionProviderExecutor, options?: Partial<Omit<DiscussionExecutorOptions, 'providerExecutor'>>): DiscussionExecutor;
73
+ //# sourceMappingURL=executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACvB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EACV,0BAA0B,EAC1B,yBAAyB,EAEzB,uBAAuB,EACxB,MAAM,YAAY,CAAC;AAIpB;;;;GAIG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA6B;IAC9D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAU;IAC9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;gBAEjC,OAAO,EAAE,yBAAyB;IAO9C;;OAEG;IACG,cAAc,CAClB,OAAO,EAAE,iBAAiB,EAC1B,OAAO,CAAC,EAAE;QACR,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,IAAI,CAAC;KACvD,GACA,OAAO,CAAC,gBAAgB,CAAC;IAwB5B;;OAEG;IACG,OAAO,CACX,MAAM,EAAE,iBAAiB,EACzB,OAAO,CAAC,EAAE;QACR,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,IAAI,CAAC;KACvD,GACA,OAAO,CAAC,gBAAgB,CAAC;IAgH5B;;OAEG;YACW,cAAc;IAuB5B;;OAEG;IACG,cAAc,CAClB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QACrB,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,IAAI,CAAC;KACvD,GACA,OAAO,CAAC,gBAAgB,CAAC;IAY5B;;OAEG;IACG,MAAM,CACV,KAAK,EAAE,MAAM,EACb,SAAS,SAAW,EACpB,QAAQ,SAAQ,EAChB,KAAK,SAAW,EAChB,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,IAAI,CAAC;KACvD,GACA,OAAO,CAAC,gBAAgB,CAAC;IA2B5B;;OAEG;IACG,IAAI,CACR,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EAAE,EACrB,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QACrB,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,IAAI,CAAC;KACvD,GACA,OAAO,CAAC,gBAAgB,CAAC;CAsB7B;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,gBAAgB,EAAE,0BAA0B,EAC5C,OAAO,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,yBAAyB,EAAE,kBAAkB,CAAC,CAAC,GACrE,kBAAkB,CAKpB"}