clinkx 0.1.10 → 0.2.1
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/clinkx-workflows/dist/artifacts.d.ts +65 -0
- package/clinkx-workflows/dist/artifacts.js +268 -0
- package/clinkx-workflows/dist/artifacts.js.map +1 -0
- package/clinkx-workflows/dist/backend.d.ts +33 -0
- package/clinkx-workflows/dist/backend.js +9 -0
- package/clinkx-workflows/dist/backend.js.map +1 -0
- package/clinkx-workflows/dist/child-env.d.ts +23 -0
- package/clinkx-workflows/dist/child-env.js +53 -0
- package/clinkx-workflows/dist/child-env.js.map +1 -0
- package/clinkx-workflows/dist/clink-client.d.ts +51 -0
- package/clinkx-workflows/dist/clink-client.js +216 -0
- package/clinkx-workflows/dist/clink-client.js.map +1 -0
- package/clinkx-workflows/dist/config.d.ts +126 -0
- package/clinkx-workflows/dist/config.js +226 -0
- package/clinkx-workflows/dist/config.js.map +1 -0
- package/clinkx-workflows/dist/definition-normalizer.d.ts +59 -0
- package/clinkx-workflows/dist/definition-normalizer.js +75 -0
- package/clinkx-workflows/dist/definition-normalizer.js.map +1 -0
- package/clinkx-workflows/dist/engine.d.ts +235 -0
- package/clinkx-workflows/dist/engine.js +1044 -0
- package/clinkx-workflows/dist/engine.js.map +1 -0
- package/clinkx-workflows/dist/errors.d.ts +74 -0
- package/clinkx-workflows/dist/errors.js +84 -0
- package/clinkx-workflows/dist/errors.js.map +1 -0
- package/clinkx-workflows/dist/fidelity.d.ts +112 -0
- package/clinkx-workflows/dist/fidelity.js +140 -0
- package/clinkx-workflows/dist/fidelity.js.map +1 -0
- package/clinkx-workflows/dist/fingerprint.d.ts +69 -0
- package/clinkx-workflows/dist/fingerprint.js +143 -0
- package/clinkx-workflows/dist/fingerprint.js.map +1 -0
- package/clinkx-workflows/dist/index.d.ts +16 -0
- package/clinkx-workflows/dist/index.js +42 -0
- package/clinkx-workflows/dist/index.js.map +1 -0
- package/clinkx-workflows/dist/loader.d.ts +64 -0
- package/clinkx-workflows/dist/loader.js +371 -0
- package/clinkx-workflows/dist/loader.js.map +1 -0
- package/clinkx-workflows/dist/logger.d.ts +16 -0
- package/clinkx-workflows/dist/logger.js +31 -0
- package/clinkx-workflows/dist/logger.js.map +1 -0
- package/clinkx-workflows/dist/path-validation.d.ts +23 -0
- package/clinkx-workflows/dist/path-validation.js +73 -0
- package/clinkx-workflows/dist/path-validation.js.map +1 -0
- package/clinkx-workflows/dist/prompt-budget.d.ts +31 -0
- package/clinkx-workflows/dist/prompt-budget.js +78 -0
- package/clinkx-workflows/dist/prompt-budget.js.map +1 -0
- package/clinkx-workflows/dist/queue.d.ts +16 -0
- package/clinkx-workflows/dist/queue.js +46 -0
- package/clinkx-workflows/dist/queue.js.map +1 -0
- package/clinkx-workflows/dist/ranking-reducer.d.ts +11 -0
- package/clinkx-workflows/dist/ranking-reducer.js +245 -0
- package/clinkx-workflows/dist/ranking-reducer.js.map +1 -0
- package/clinkx-workflows/dist/reducers/index.d.ts +8 -0
- package/clinkx-workflows/dist/reducers/index.js +12 -0
- package/clinkx-workflows/dist/reducers/index.js.map +1 -0
- package/clinkx-workflows/dist/run-id.d.ts +17 -0
- package/clinkx-workflows/dist/run-id.js +26 -0
- package/clinkx-workflows/dist/run-id.js.map +1 -0
- package/clinkx-workflows/dist/run-summary/cards/council-answer.d.ts +8 -0
- package/clinkx-workflows/dist/run-summary/cards/council-answer.js +75 -0
- package/clinkx-workflows/dist/run-summary/cards/council-answer.js.map +1 -0
- package/clinkx-workflows/dist/run-summary/cards/council-code-review.d.ts +13 -0
- package/clinkx-workflows/dist/run-summary/cards/council-code-review.js +90 -0
- package/clinkx-workflows/dist/run-summary/cards/council-code-review.js.map +1 -0
- package/clinkx-workflows/dist/run-summary/cards/council-debug.d.ts +9 -0
- package/clinkx-workflows/dist/run-summary/cards/council-debug.js +79 -0
- package/clinkx-workflows/dist/run-summary/cards/council-debug.js.map +1 -0
- package/clinkx-workflows/dist/run-summary/cards/council-default.d.ts +11 -0
- package/clinkx-workflows/dist/run-summary/cards/council-default.js +57 -0
- package/clinkx-workflows/dist/run-summary/cards/council-default.js.map +1 -0
- package/clinkx-workflows/dist/run-summary/cards/council-discover.d.ts +10 -0
- package/clinkx-workflows/dist/run-summary/cards/council-discover.js +79 -0
- package/clinkx-workflows/dist/run-summary/cards/council-discover.js.map +1 -0
- package/clinkx-workflows/dist/run-summary/cards/generic.d.ts +2 -0
- package/clinkx-workflows/dist/run-summary/cards/generic.js +4 -0
- package/clinkx-workflows/dist/run-summary/cards/generic.js.map +1 -0
- package/clinkx-workflows/dist/run-summary/cards/index.d.ts +6 -0
- package/clinkx-workflows/dist/run-summary/cards/index.js +17 -0
- package/clinkx-workflows/dist/run-summary/cards/index.js.map +1 -0
- package/clinkx-workflows/dist/run-summary/utils.d.ts +6 -0
- package/clinkx-workflows/dist/run-summary/utils.js +30 -0
- package/clinkx-workflows/dist/run-summary/utils.js.map +1 -0
- package/clinkx-workflows/dist/run-summary-derived.d.ts +19 -0
- package/clinkx-workflows/dist/run-summary-derived.js +100 -0
- package/clinkx-workflows/dist/run-summary-derived.js.map +1 -0
- package/clinkx-workflows/dist/run-summary.d.ts +70 -0
- package/clinkx-workflows/dist/run-summary.js +125 -0
- package/clinkx-workflows/dist/run-summary.js.map +1 -0
- package/clinkx-workflows/dist/schema.d.ts +609 -0
- package/clinkx-workflows/dist/schema.js +123 -0
- package/clinkx-workflows/dist/schema.js.map +1 -0
- package/clinkx-workflows/dist/server.d.ts +16 -0
- package/clinkx-workflows/dist/server.js +33 -0
- package/clinkx-workflows/dist/server.js.map +1 -0
- package/clinkx-workflows/dist/shutdown.d.ts +54 -0
- package/clinkx-workflows/dist/shutdown.js +120 -0
- package/clinkx-workflows/dist/shutdown.js.map +1 -0
- package/clinkx-workflows/dist/state-schema.d.ts +141 -0
- package/clinkx-workflows/dist/state-schema.js +21 -0
- package/clinkx-workflows/dist/state-schema.js.map +1 -0
- package/clinkx-workflows/dist/state.d.ts +37 -0
- package/clinkx-workflows/dist/state.js +838 -0
- package/clinkx-workflows/dist/state.js.map +1 -0
- package/clinkx-workflows/dist/template-loader.d.ts +30 -0
- package/clinkx-workflows/dist/template-loader.js +77 -0
- package/clinkx-workflows/dist/template-loader.js.map +1 -0
- package/clinkx-workflows/dist/template.d.ts +54 -0
- package/clinkx-workflows/dist/template.js +128 -0
- package/clinkx-workflows/dist/template.js.map +1 -0
- package/clinkx-workflows/dist/transport.d.ts +91 -0
- package/clinkx-workflows/dist/transport.js +249 -0
- package/clinkx-workflows/dist/transport.js.map +1 -0
- package/clinkx-workflows/dist/types.d.ts +137 -0
- package/clinkx-workflows/dist/types.js +11 -0
- package/clinkx-workflows/dist/types.js.map +1 -0
- package/clinkx-workflows/dist/validators/council.d.ts +1488 -0
- package/clinkx-workflows/dist/validators/council.js +509 -0
- package/clinkx-workflows/dist/validators/council.js.map +1 -0
- package/clinkx-workflows/dist/validators/index.d.ts +40 -0
- package/clinkx-workflows/dist/validators/index.js +43 -0
- package/clinkx-workflows/dist/validators/index.js.map +1 -0
- package/clinkx-workflows/dist/workflow-receipt.d.ts +4 -0
- package/clinkx-workflows/dist/workflow-receipt.js +177 -0
- package/clinkx-workflows/dist/workflow-receipt.js.map +1 -0
- package/clinkx-workflows/dist/workflow-tools.d.ts +77 -0
- package/clinkx-workflows/dist/workflow-tools.js +1131 -0
- package/clinkx-workflows/dist/workflow-tools.js.map +1 -0
- package/clinkx-workflows/dist/workflows/council-default.d.ts +123 -0
- package/clinkx-workflows/dist/workflows/council-default.js +141 -0
- package/clinkx-workflows/dist/workflows/council-default.js.map +1 -0
- package/clinkx-workflows/dist/workflows/index.d.ts +12 -0
- package/clinkx-workflows/dist/workflows/index.js +15 -0
- package/clinkx-workflows/dist/workflows/index.js.map +1 -0
- package/conf/adapters/claude.json +13 -1
- package/conf/adapters/codex.json +11 -2
- package/conf/adapters/gemini.json +9 -0
- package/conf/adapters/glm.json +10 -0
- package/conf/adapters/hapi/claude.json +12 -2
- package/conf/adapters/hapi/codex.json +11 -2
- package/conf/adapters/hapi/gemini.json +9 -0
- package/conf/adapters/hapi/glm.json +10 -0
- package/conf/prompts/json-codereviewer.txt +6 -0
- package/conf/prompts/json-debug.txt +5 -0
- package/conf/prompts/json-default.txt +5 -0
- package/conf/prompts/json.txt +4 -1
- package/dist/config.d.ts +29 -4
- package/dist/config.js +23 -3
- package/dist/config.js.map +1 -1
- package/dist/handler.d.ts +2 -0
- package/dist/handler.js +2 -1
- package/dist/handler.js.map +1 -1
- package/dist/local-clink-backend.d.ts +30 -0
- package/dist/local-clink-backend.js +106 -0
- package/dist/local-clink-backend.js.map +1 -0
- package/dist/parsers/claude-stream-json.d.ts +1 -1
- package/dist/parsers/claude-stream-json.js +26 -8
- package/dist/parsers/claude-stream-json.js.map +1 -1
- package/dist/parsers/extract.d.ts +2 -0
- package/dist/parsers/extract.js +46 -20
- package/dist/parsers/extract.js.map +1 -1
- package/dist/pipeline.d.ts +2 -4
- package/dist/pipeline.js +246 -31
- package/dist/pipeline.js.map +1 -1
- package/dist/prompt.js +8 -1
- package/dist/prompt.js.map +1 -1
- package/dist/registry.d.ts +4 -0
- package/dist/registry.js +14 -0
- package/dist/registry.js.map +1 -1
- package/dist/result-contract.d.ts +6 -1
- package/dist/result-contract.js +10 -22
- package/dist/result-contract.js.map +1 -1
- package/dist/runner.js +59 -12
- package/dist/runner.js.map +1 -1
- package/dist/schema.d.ts +20 -0
- package/dist/schema.js +29 -2
- package/dist/schema.js.map +1 -1
- package/dist/server.d.ts +3 -3
- package/dist/server.js +119 -45
- package/dist/server.js.map +1 -1
- package/package.json +12 -5
|
@@ -0,0 +1,509 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Council workflow validator schemas.
|
|
3
|
+
*
|
|
4
|
+
* Defines zod schemas for council member and reviewer outputs.
|
|
5
|
+
* These schemas are registered with the ValidatorRegistry and referenced
|
|
6
|
+
* by validator_schema_id in the council-default workflow definition.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Identity field convention:
|
|
10
|
+
* - Stage-1 schemas (member, analyst, debugger, specialist) use domain-specific
|
|
11
|
+
* producer IDs (member_id, analyst_id, etc.) matching real call IDs.
|
|
12
|
+
* - Cross-review schemas (reviewer, cross-reviewer) use `candidate_id` with
|
|
13
|
+
* anonymized alias letters (A, B, C) matching the buildAnonymizedContext() output.
|
|
14
|
+
* - Chairman schemas receive non-anonymized stage-1 artifacts with real call IDs.
|
|
15
|
+
*/
|
|
16
|
+
import { z } from "zod";
|
|
17
|
+
/**
|
|
18
|
+
* Accept LLM-produced floats for integer score fields; coerce via Math.round.
|
|
19
|
+
* Rounds first, then validates the rounded value is an integer within [min, max].
|
|
20
|
+
* This means 10.4 on a 0-10 scale → rounds to 10 → accepted,
|
|
21
|
+
* but 10.5 → rounds to 11 → rejected (post-transform range violation).
|
|
22
|
+
*/
|
|
23
|
+
export const coerceIntScore = (min, max) => z.number().transform(v => Math.round(v)).pipe(z.number().int().min(min).max(max));
|
|
24
|
+
const RubricScoreEntrySchema = z.object({
|
|
25
|
+
criterion: z.string().min(1),
|
|
26
|
+
score: coerceIntScore(0, 100),
|
|
27
|
+
reason: z.string().min(1),
|
|
28
|
+
});
|
|
29
|
+
export { RubricScoreEntrySchema };
|
|
30
|
+
/** Shared refinement: reject ranking arrays that contain duplicate rank values. */
|
|
31
|
+
function uniqueRanks(entries, ctx) {
|
|
32
|
+
const seen = new Set();
|
|
33
|
+
for (const entry of entries) {
|
|
34
|
+
if (seen.has(entry.rank)) {
|
|
35
|
+
ctx.addIssue({
|
|
36
|
+
code: z.ZodIssueCode.custom,
|
|
37
|
+
message: `Duplicate rank ${String(entry.rank)} in ranking array`,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
seen.add(entry.rank);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/** Reusable ranking entry shape used across all cross-reviewer schemas. */
|
|
44
|
+
const RankingEntrySchema = z.object({
|
|
45
|
+
candidate_id: z.string().min(1),
|
|
46
|
+
rank: z.number().int().min(1),
|
|
47
|
+
rationale: z.string(),
|
|
48
|
+
});
|
|
49
|
+
/** Max bytes for cross-reviewer validator output (bumped from 50K to accommodate independent_baseline). */
|
|
50
|
+
const CROSS_REVIEWER_MAX_BYTES = 75_000;
|
|
51
|
+
// ---------------------------------------------------------------------------
|
|
52
|
+
// Council Member Output Schema (council_member_v2)
|
|
53
|
+
// ---------------------------------------------------------------------------
|
|
54
|
+
/**
|
|
55
|
+
* A council member produces a structured recommendation for a user request.
|
|
56
|
+
* Fields:
|
|
57
|
+
* - recommendation: the main recommended approach (string)
|
|
58
|
+
* - reasoning: why this approach (string)
|
|
59
|
+
* - trade_offs: pros/cons array
|
|
60
|
+
* - confidence: 0-100 integer
|
|
61
|
+
*/
|
|
62
|
+
export const CouncilMemberOutputSchema = z.object({
|
|
63
|
+
member_id: z.string().min(1),
|
|
64
|
+
recommendation: z.string().min(1),
|
|
65
|
+
reasoning: z.string().min(1),
|
|
66
|
+
deliverable: z.string().min(1),
|
|
67
|
+
evidence: z.array(z.object({
|
|
68
|
+
ref: z.string().min(1),
|
|
69
|
+
note: z.string().min(1),
|
|
70
|
+
})).default([]),
|
|
71
|
+
trade_offs: z.array(z.object({
|
|
72
|
+
pro: z.string(),
|
|
73
|
+
con: z.string(),
|
|
74
|
+
})),
|
|
75
|
+
rubric_scores: z.array(RubricScoreEntrySchema).default([]),
|
|
76
|
+
overall_score_100: coerceIntScore(0, 100),
|
|
77
|
+
open_risks: z.array(z.string()).default([]),
|
|
78
|
+
confidence: coerceIntScore(0, 100),
|
|
79
|
+
});
|
|
80
|
+
// ---------------------------------------------------------------------------
|
|
81
|
+
// Council Reviewer Output Schema (council_reviewer_v4)
|
|
82
|
+
// ---------------------------------------------------------------------------
|
|
83
|
+
/**
|
|
84
|
+
* A council reviewer evaluates member recommendations and provides a synthesis.
|
|
85
|
+
* Fields:
|
|
86
|
+
* - assessment: overall review summary (string)
|
|
87
|
+
* - member_evaluations: per-member evaluation array
|
|
88
|
+
* - recommended_approach: which member's approach (or synthesis) to prefer
|
|
89
|
+
* - gaps: identified gaps or risks in the proposals
|
|
90
|
+
*/
|
|
91
|
+
export const CouncilReviewerOutputSchema = z.object({
|
|
92
|
+
independent_baseline: z.string().min(1),
|
|
93
|
+
assessment: z.string().min(1),
|
|
94
|
+
member_evaluations: z.array(z.object({
|
|
95
|
+
candidate_id: z.string().min(1),
|
|
96
|
+
strengths: z.array(z.string()),
|
|
97
|
+
weaknesses: z.array(z.string()),
|
|
98
|
+
rubric_scores: z.array(RubricScoreEntrySchema).default([]),
|
|
99
|
+
overall_score_100: coerceIntScore(0, 100),
|
|
100
|
+
mergeable_insights: z.array(z.string()).default([]),
|
|
101
|
+
})),
|
|
102
|
+
recommended_approach: z.string().min(1),
|
|
103
|
+
gaps: z.array(z.string()),
|
|
104
|
+
ranking: z.array(RankingEntrySchema).superRefine(uniqueRanks),
|
|
105
|
+
});
|
|
106
|
+
const CouncilSummarySchema = z.object({
|
|
107
|
+
agreements: z.array(z.string()),
|
|
108
|
+
disagreements: z.array(z.string()),
|
|
109
|
+
minority_views: z.array(z.string()),
|
|
110
|
+
});
|
|
111
|
+
// ---------------------------------------------------------------------------
|
|
112
|
+
// Council Chairman Output Schema (council_chairman_v1)
|
|
113
|
+
// ---------------------------------------------------------------------------
|
|
114
|
+
/**
|
|
115
|
+
* The chairman returns the final structured council decision.
|
|
116
|
+
* Fields:
|
|
117
|
+
* - decision: final answer for the user request
|
|
118
|
+
* - rationale: why this decision was selected
|
|
119
|
+
* - selected_approach: which member/reviewer synthesis was chosen
|
|
120
|
+
* - considered_artifacts: counts of upstream artifacts considered
|
|
121
|
+
* - action_items: concrete next steps
|
|
122
|
+
*/
|
|
123
|
+
export const CouncilChairmanOutputSchema = z.object({
|
|
124
|
+
decision: z.string().min(1),
|
|
125
|
+
final_answer: z.string().default(""),
|
|
126
|
+
rationale: z.string().min(1),
|
|
127
|
+
selected_approach: z.string().min(1),
|
|
128
|
+
considered_artifacts: z.object({
|
|
129
|
+
members: z.number().int().min(0),
|
|
130
|
+
reviewers: z.number().int().min(0),
|
|
131
|
+
}),
|
|
132
|
+
action_items: z.array(z.string().min(1)),
|
|
133
|
+
council_summary: CouncilSummarySchema,
|
|
134
|
+
confidence: coerceIntScore(0, 100),
|
|
135
|
+
final_score_100: coerceIntScore(0, 100).default(0),
|
|
136
|
+
final_score_10: coerceIntScore(0, 10).default(0),
|
|
137
|
+
});
|
|
138
|
+
// ---------------------------------------------------------------------------
|
|
139
|
+
// Council Code Review Schemas (council-code-review workflow)
|
|
140
|
+
// ---------------------------------------------------------------------------
|
|
141
|
+
/**
|
|
142
|
+
* A code review reviewer produces structured review output.
|
|
143
|
+
*/
|
|
144
|
+
export const CouncilCodeReviewReviewerOutputSchema = z.object({
|
|
145
|
+
summary: z.string().min(1),
|
|
146
|
+
blocking_issues: z.array(z.object({
|
|
147
|
+
file: z.string(),
|
|
148
|
+
line: z.number().int().optional(),
|
|
149
|
+
severity: z.enum(["critical", "high", "medium"]),
|
|
150
|
+
description: z.string().min(1),
|
|
151
|
+
suggestion: z.string().optional(),
|
|
152
|
+
})),
|
|
153
|
+
non_blocking_suggestions: z.array(z.object({
|
|
154
|
+
file: z.string(),
|
|
155
|
+
line: z.number().int().optional(),
|
|
156
|
+
category: z.string().min(1),
|
|
157
|
+
description: z.string().min(1),
|
|
158
|
+
})),
|
|
159
|
+
rubric_scores: z.object({
|
|
160
|
+
correctness: coerceIntScore(0, 100),
|
|
161
|
+
security: coerceIntScore(0, 100),
|
|
162
|
+
performance: coerceIntScore(0, 100),
|
|
163
|
+
readability: coerceIntScore(0, 100),
|
|
164
|
+
test_coverage: coerceIntScore(0, 100),
|
|
165
|
+
api_stability: coerceIntScore(0, 100),
|
|
166
|
+
}),
|
|
167
|
+
overall_score_100: coerceIntScore(0, 100),
|
|
168
|
+
tests_to_add_or_update: z.array(z.string()),
|
|
169
|
+
});
|
|
170
|
+
/**
|
|
171
|
+
* A code review cross-reviewer evaluates other reviewers' assessments.
|
|
172
|
+
*/
|
|
173
|
+
export const CouncilCodeReviewCrossReviewerOutputSchema = z.object({
|
|
174
|
+
independent_baseline: z.string().min(1),
|
|
175
|
+
per_review_feedback: z.array(z.object({
|
|
176
|
+
candidate_id: z.string().min(1),
|
|
177
|
+
agreement_level: z.enum(["agree", "partial", "disagree"]),
|
|
178
|
+
missed_issues: z.array(z.string()),
|
|
179
|
+
false_positives: z.array(z.string()),
|
|
180
|
+
comments: z.string(),
|
|
181
|
+
overall_score_100: coerceIntScore(0, 100),
|
|
182
|
+
})),
|
|
183
|
+
extra_blocking_issues: z.array(z.string()).default([]),
|
|
184
|
+
extra_tests: z.array(z.string()).default([]),
|
|
185
|
+
ranking: z.array(RankingEntrySchema).superRefine(uniqueRanks),
|
|
186
|
+
});
|
|
187
|
+
// ---------------------------------------------------------------------------
|
|
188
|
+
// Council Discover Schemas (council-discover workflow)
|
|
189
|
+
// ---------------------------------------------------------------------------
|
|
190
|
+
/**
|
|
191
|
+
* A discover analyst produces structured analysis output.
|
|
192
|
+
*/
|
|
193
|
+
export const CouncilDiscoverAnalystOutputSchema = z.object({
|
|
194
|
+
analyst_id: z.string().min(1),
|
|
195
|
+
findings: z.array(z.object({
|
|
196
|
+
topic: z.string().min(1),
|
|
197
|
+
detail: z.string().min(1),
|
|
198
|
+
confidence: coerceIntScore(0, 100),
|
|
199
|
+
sources: z.array(z.string()),
|
|
200
|
+
})),
|
|
201
|
+
synthesis: z.string().min(1),
|
|
202
|
+
open_questions: z.array(z.string()),
|
|
203
|
+
rubric_scores: z.array(RubricScoreEntrySchema).default([]),
|
|
204
|
+
overall_score_100: coerceIntScore(0, 100),
|
|
205
|
+
});
|
|
206
|
+
/**
|
|
207
|
+
* A discover cross-reviewer evaluates analyst findings.
|
|
208
|
+
*/
|
|
209
|
+
export const CouncilDiscoverCrossReviewerOutputSchema = z.object({
|
|
210
|
+
independent_baseline: z.string().min(1),
|
|
211
|
+
per_response_scores: z.array(z.object({
|
|
212
|
+
candidate_id: z.string().min(1),
|
|
213
|
+
comments: z.string(),
|
|
214
|
+
gaps: z.array(z.string()),
|
|
215
|
+
strengths: z.array(z.string()),
|
|
216
|
+
overall_score_100: coerceIntScore(0, 100),
|
|
217
|
+
})),
|
|
218
|
+
ranking: z.array(RankingEntrySchema).superRefine(uniqueRanks),
|
|
219
|
+
recommended_verdict: z.enum(["accept_as_is", "accept_with_modifications", "reject"]),
|
|
220
|
+
consensus_changes: z.array(z.string()),
|
|
221
|
+
});
|
|
222
|
+
// ---------------------------------------------------------------------------
|
|
223
|
+
// Council Debug Schemas (council-debug workflow)
|
|
224
|
+
// ---------------------------------------------------------------------------
|
|
225
|
+
/**
|
|
226
|
+
* A debugger produces structured debugging analysis.
|
|
227
|
+
*/
|
|
228
|
+
export const CouncilDebugDebuggerOutputSchema = z.object({
|
|
229
|
+
debugger_id: z.string().min(1),
|
|
230
|
+
problem_summary: z.string().min(1),
|
|
231
|
+
hypotheses: z.array(z.string().min(1)).min(1),
|
|
232
|
+
diagnostic_steps: z.array(z.string().min(1)),
|
|
233
|
+
evidence: z.array(z.object({
|
|
234
|
+
location: z.string().min(1),
|
|
235
|
+
observation: z.string().min(1),
|
|
236
|
+
})),
|
|
237
|
+
fix_proposal: z.object({
|
|
238
|
+
description: z.string().min(1),
|
|
239
|
+
files_to_change: z.array(z.string()),
|
|
240
|
+
risk_level: z.enum(["low", "medium", "high"]),
|
|
241
|
+
}),
|
|
242
|
+
rubric_scores: z.array(RubricScoreEntrySchema).default([]),
|
|
243
|
+
overall_score_100: coerceIntScore(0, 100),
|
|
244
|
+
confidence: coerceIntScore(0, 100),
|
|
245
|
+
});
|
|
246
|
+
/**
|
|
247
|
+
* A debug cross-reviewer evaluates debugger analyses.
|
|
248
|
+
*/
|
|
249
|
+
export const CouncilDebugCrossReviewerOutputSchema = z.object({
|
|
250
|
+
independent_baseline: z.string().min(1),
|
|
251
|
+
per_debugger_feedback: z.array(z.object({
|
|
252
|
+
candidate_id: z.string().min(1),
|
|
253
|
+
hypothesis_quality: z.enum(["valid", "partial", "invalid"]),
|
|
254
|
+
missed_factors: z.array(z.string()),
|
|
255
|
+
fix_feasibility: z.enum(["feasible", "risky", "infeasible"]),
|
|
256
|
+
comments: z.string(),
|
|
257
|
+
overall_score_100: coerceIntScore(0, 100),
|
|
258
|
+
strengths: z.array(z.string()).default([]),
|
|
259
|
+
})),
|
|
260
|
+
ranking: z.array(RankingEntrySchema).superRefine(uniqueRanks),
|
|
261
|
+
});
|
|
262
|
+
// ---------------------------------------------------------------------------
|
|
263
|
+
// Preset-specific Chairman Schemas
|
|
264
|
+
// ---------------------------------------------------------------------------
|
|
265
|
+
/**
|
|
266
|
+
* Chairman for council-code-review: expects reviewers + cross_review artifacts.
|
|
267
|
+
*/
|
|
268
|
+
export const CouncilCodeReviewChairmanOutputSchema = z.object({
|
|
269
|
+
decision: z.string().min(1),
|
|
270
|
+
rationale: z.string().min(1),
|
|
271
|
+
selected_approach: z.string().min(1),
|
|
272
|
+
considered_artifacts: z.object({
|
|
273
|
+
reviewers: z.number().int().min(0),
|
|
274
|
+
cross_review: z.number().int().min(0),
|
|
275
|
+
}),
|
|
276
|
+
action_items: z.array(z.string().min(1)),
|
|
277
|
+
council_summary: CouncilSummarySchema,
|
|
278
|
+
confidence: coerceIntScore(0, 100),
|
|
279
|
+
final_score_100: coerceIntScore(0, 100).default(0),
|
|
280
|
+
final_score_10: coerceIntScore(0, 10).default(0),
|
|
281
|
+
status: z.enum(["approved", "revise", "reject"]),
|
|
282
|
+
final_blocking_issues: z.array(z.string()).default([]),
|
|
283
|
+
final_non_blocking_suggestions: z.array(z.string()).default([]),
|
|
284
|
+
tests_to_add_or_update: z.array(z.string()),
|
|
285
|
+
});
|
|
286
|
+
/**
|
|
287
|
+
* Chairman for council-debug: expects debuggers + cross_review artifacts.
|
|
288
|
+
*/
|
|
289
|
+
export const CouncilDebugChairmanOutputSchema = z.object({
|
|
290
|
+
decision: z.string().min(1),
|
|
291
|
+
rationale: z.string().min(1),
|
|
292
|
+
selected_approach: z.string().min(1),
|
|
293
|
+
considered_artifacts: z.object({
|
|
294
|
+
debuggers: z.number().int().min(0),
|
|
295
|
+
cross_review: z.number().int().min(0),
|
|
296
|
+
}),
|
|
297
|
+
action_items: z.array(z.string().min(1)),
|
|
298
|
+
council_summary: CouncilSummarySchema,
|
|
299
|
+
confidence: coerceIntScore(0, 100),
|
|
300
|
+
final_score_100: coerceIntScore(0, 100).default(0),
|
|
301
|
+
final_score_10: coerceIntScore(0, 10).default(0),
|
|
302
|
+
final_problem_summary: z.string().default(""),
|
|
303
|
+
final_hypotheses: z.array(z.string().min(1)).default([]),
|
|
304
|
+
final_diagnostic_plan: z.array(z.string().min(1)).default([]),
|
|
305
|
+
final_proposed_fixes: z.array(z.string().min(1)).default([]),
|
|
306
|
+
});
|
|
307
|
+
/**
|
|
308
|
+
* Chairman for council-discover: expects analysts + cross_review artifacts.
|
|
309
|
+
*/
|
|
310
|
+
export const CouncilDiscoverChairmanOutputSchema = z.object({
|
|
311
|
+
decision: z.string().min(1),
|
|
312
|
+
rationale: z.string().min(1),
|
|
313
|
+
selected_approach: z.string().min(1),
|
|
314
|
+
considered_artifacts: z.object({
|
|
315
|
+
analysts: z.number().int().min(0),
|
|
316
|
+
cross_review: z.number().int().min(0),
|
|
317
|
+
}),
|
|
318
|
+
action_items: z.array(z.string().min(1)),
|
|
319
|
+
council_summary: CouncilSummarySchema,
|
|
320
|
+
confidence: coerceIntScore(0, 100),
|
|
321
|
+
final_score_100: coerceIntScore(0, 100).default(0),
|
|
322
|
+
final_score_10: coerceIntScore(0, 10).default(0),
|
|
323
|
+
final_verdict: z.enum(["accept_as_is", "accept_with_modifications", "reject"]).default("accept_with_modifications"),
|
|
324
|
+
final_rationale: z.string().default(""),
|
|
325
|
+
});
|
|
326
|
+
// ---------------------------------------------------------------------------
|
|
327
|
+
// Council Answer Schemas (council-answer workflow)
|
|
328
|
+
// ---------------------------------------------------------------------------
|
|
329
|
+
/**
|
|
330
|
+
* An answer specialist produces a structured answer.
|
|
331
|
+
*/
|
|
332
|
+
export const CouncilAnswerSpecialistOutputSchema = z.object({
|
|
333
|
+
specialist_id: z.string().min(1),
|
|
334
|
+
answer: z.string().min(1),
|
|
335
|
+
reasoning: z.string().min(1),
|
|
336
|
+
caveats: z.array(z.string()),
|
|
337
|
+
rubric_scores: z.array(RubricScoreEntrySchema).default([]),
|
|
338
|
+
overall_score_100: coerceIntScore(0, 100),
|
|
339
|
+
confidence: coerceIntScore(0, 100),
|
|
340
|
+
sources: z.array(z.string()),
|
|
341
|
+
});
|
|
342
|
+
/**
|
|
343
|
+
* An answer cross-reviewer evaluates specialist answers.
|
|
344
|
+
*/
|
|
345
|
+
export const CouncilAnswerCrossReviewerOutputSchema = z.object({
|
|
346
|
+
independent_baseline: z.string().min(1),
|
|
347
|
+
per_specialist_feedback: z.array(z.object({
|
|
348
|
+
candidate_id: z.string().min(1),
|
|
349
|
+
accuracy_score: coerceIntScore(0, 100),
|
|
350
|
+
completeness_score: coerceIntScore(0, 100),
|
|
351
|
+
issues: z.array(z.string()),
|
|
352
|
+
rubric_scores: z.array(RubricScoreEntrySchema).default([]),
|
|
353
|
+
overall_score_100: coerceIntScore(0, 100),
|
|
354
|
+
strengths: z.array(z.string()).default([]),
|
|
355
|
+
weaknesses: z.array(z.string()).default([]),
|
|
356
|
+
})),
|
|
357
|
+
ranking: z.array(RankingEntrySchema).superRefine(uniqueRanks),
|
|
358
|
+
});
|
|
359
|
+
/**
|
|
360
|
+
* An answer chairman synthesizes specialist answers and cross-reviews.
|
|
361
|
+
*/
|
|
362
|
+
export const CouncilAnswerChairmanOutputSchema = z.object({
|
|
363
|
+
decision: z.string().min(1),
|
|
364
|
+
final_answer: z.string().default(""),
|
|
365
|
+
rationale: z.string().min(1),
|
|
366
|
+
selected_approach: z.string().min(1),
|
|
367
|
+
considered_artifacts: z.object({
|
|
368
|
+
specialists: z.number().int().min(0),
|
|
369
|
+
cross_review: z.number().int().min(0),
|
|
370
|
+
}),
|
|
371
|
+
action_items: z.array(z.string().min(1)),
|
|
372
|
+
council_summary: CouncilSummarySchema,
|
|
373
|
+
confidence: coerceIntScore(0, 100),
|
|
374
|
+
final_score_100: coerceIntScore(0, 100).default(0),
|
|
375
|
+
final_score_10: coerceIntScore(0, 10).default(0),
|
|
376
|
+
});
|
|
377
|
+
// ---------------------------------------------------------------------------
|
|
378
|
+
// Council Ranking Reducer Output Schema (council_ranking_reducer_v1)
|
|
379
|
+
// ---------------------------------------------------------------------------
|
|
380
|
+
/**
|
|
381
|
+
* Output schema for the deterministic ranking reducer.
|
|
382
|
+
* Computed from cross-review ranking artifacts using Borda count.
|
|
383
|
+
*/
|
|
384
|
+
export const CouncilRankingReducerOutputSchema = z.object({
|
|
385
|
+
consensus_ranking: z.array(z.object({
|
|
386
|
+
candidate_id: z.string().min(1),
|
|
387
|
+
borda_score: z.number(),
|
|
388
|
+
rank: z.number().int().min(1),
|
|
389
|
+
})),
|
|
390
|
+
score_summary: z.array(z.object({
|
|
391
|
+
candidate_id: z.string().min(1),
|
|
392
|
+
mean_score: z.number(),
|
|
393
|
+
score_count: z.number().int(),
|
|
394
|
+
spread: z.number(),
|
|
395
|
+
})).default([]),
|
|
396
|
+
minority_opinions: z.array(z.object({
|
|
397
|
+
reviewer_id: z.string(),
|
|
398
|
+
candidate_id: z.string().min(1),
|
|
399
|
+
reviewer_rank: z.number().int().min(1),
|
|
400
|
+
consensus_rank: z.number().int().min(1),
|
|
401
|
+
divergence: z.number().int(),
|
|
402
|
+
})),
|
|
403
|
+
ranking_conflicts: z.array(z.object({
|
|
404
|
+
candidate_a: z.string(),
|
|
405
|
+
candidate_b: z.string(),
|
|
406
|
+
a_over_b_count: z.number().int(),
|
|
407
|
+
b_over_a_count: z.number().int(),
|
|
408
|
+
})),
|
|
409
|
+
quorum: z.object({
|
|
410
|
+
total_reviewers: z.number().int(),
|
|
411
|
+
reviewers_with_rankings: z.number().int(),
|
|
412
|
+
}),
|
|
413
|
+
});
|
|
414
|
+
// ---------------------------------------------------------------------------
|
|
415
|
+
// Registration
|
|
416
|
+
// ---------------------------------------------------------------------------
|
|
417
|
+
/**
|
|
418
|
+
* Register council-specific validator schemas.
|
|
419
|
+
* Called during ValidatorRegistry initialization.
|
|
420
|
+
*/
|
|
421
|
+
export function registerCouncilValidators(registry) {
|
|
422
|
+
// council-default validators
|
|
423
|
+
registry.register("council_member_v2", {
|
|
424
|
+
name: "Council Member Output v2",
|
|
425
|
+
schema: CouncilMemberOutputSchema,
|
|
426
|
+
maxBytes: 50_000,
|
|
427
|
+
});
|
|
428
|
+
registry.register("council_reviewer_v4", {
|
|
429
|
+
name: "Council Reviewer Output v4",
|
|
430
|
+
schema: CouncilReviewerOutputSchema,
|
|
431
|
+
maxBytes: CROSS_REVIEWER_MAX_BYTES,
|
|
432
|
+
});
|
|
433
|
+
registry.register("council_chairman_v1", {
|
|
434
|
+
name: "Council Chairman Output v1",
|
|
435
|
+
schema: CouncilChairmanOutputSchema,
|
|
436
|
+
maxBytes: 75_000,
|
|
437
|
+
});
|
|
438
|
+
// council-code-review validators
|
|
439
|
+
registry.register("council_code_review_chairman_v1", {
|
|
440
|
+
name: "Council Code Review Chairman Output v1",
|
|
441
|
+
schema: CouncilCodeReviewChairmanOutputSchema,
|
|
442
|
+
maxBytes: 75_000,
|
|
443
|
+
});
|
|
444
|
+
registry.register("council_code_review_reviewer_v1", {
|
|
445
|
+
name: "Council Code Review Reviewer Output v1",
|
|
446
|
+
schema: CouncilCodeReviewReviewerOutputSchema,
|
|
447
|
+
maxBytes: 50_000,
|
|
448
|
+
});
|
|
449
|
+
registry.register("council_code_review_cross_reviewer_v4", {
|
|
450
|
+
name: "Council Code Review Cross-Reviewer Output v4",
|
|
451
|
+
schema: CouncilCodeReviewCrossReviewerOutputSchema,
|
|
452
|
+
maxBytes: CROSS_REVIEWER_MAX_BYTES,
|
|
453
|
+
});
|
|
454
|
+
// council-discover validators
|
|
455
|
+
registry.register("council_discover_chairman_v1", {
|
|
456
|
+
name: "Council Discover Chairman Output v1",
|
|
457
|
+
schema: CouncilDiscoverChairmanOutputSchema,
|
|
458
|
+
maxBytes: 75_000,
|
|
459
|
+
});
|
|
460
|
+
registry.register("council_discover_analyst_v2", {
|
|
461
|
+
name: "Council Discover Analyst Output v2",
|
|
462
|
+
schema: CouncilDiscoverAnalystOutputSchema,
|
|
463
|
+
maxBytes: 50_000,
|
|
464
|
+
});
|
|
465
|
+
registry.register("council_discover_cross_reviewer_v4", {
|
|
466
|
+
name: "Council Discover Cross-Reviewer Output v4",
|
|
467
|
+
schema: CouncilDiscoverCrossReviewerOutputSchema,
|
|
468
|
+
maxBytes: CROSS_REVIEWER_MAX_BYTES,
|
|
469
|
+
});
|
|
470
|
+
// council-debug validators
|
|
471
|
+
registry.register("council_debug_chairman_v1", {
|
|
472
|
+
name: "Council Debug Chairman Output v1",
|
|
473
|
+
schema: CouncilDebugChairmanOutputSchema,
|
|
474
|
+
maxBytes: 75_000,
|
|
475
|
+
});
|
|
476
|
+
registry.register("council_debug_debugger_v2", {
|
|
477
|
+
name: "Council Debug Debugger Output v2",
|
|
478
|
+
schema: CouncilDebugDebuggerOutputSchema,
|
|
479
|
+
maxBytes: 50_000,
|
|
480
|
+
});
|
|
481
|
+
registry.register("council_debug_cross_reviewer_v4", {
|
|
482
|
+
name: "Council Debug Cross-Reviewer Output v4",
|
|
483
|
+
schema: CouncilDebugCrossReviewerOutputSchema,
|
|
484
|
+
maxBytes: CROSS_REVIEWER_MAX_BYTES,
|
|
485
|
+
});
|
|
486
|
+
// council-answer validators
|
|
487
|
+
registry.register("council_answer_specialist_v2", {
|
|
488
|
+
name: "Council Answer Specialist Output v2",
|
|
489
|
+
schema: CouncilAnswerSpecialistOutputSchema,
|
|
490
|
+
maxBytes: 50_000,
|
|
491
|
+
});
|
|
492
|
+
registry.register("council_answer_cross_reviewer_v4", {
|
|
493
|
+
name: "Council Answer Cross-Reviewer Output v4",
|
|
494
|
+
schema: CouncilAnswerCrossReviewerOutputSchema,
|
|
495
|
+
maxBytes: CROSS_REVIEWER_MAX_BYTES,
|
|
496
|
+
});
|
|
497
|
+
registry.register("council_answer_chairman_v1", {
|
|
498
|
+
name: "Council Answer Chairman Output v1",
|
|
499
|
+
schema: CouncilAnswerChairmanOutputSchema,
|
|
500
|
+
maxBytes: 75_000,
|
|
501
|
+
});
|
|
502
|
+
// Ranking reducer validator
|
|
503
|
+
registry.register("council_ranking_reducer_v1", {
|
|
504
|
+
name: "Council Ranking Reducer Output v1",
|
|
505
|
+
schema: CouncilRankingReducerOutputSchema,
|
|
506
|
+
maxBytes: 50_000,
|
|
507
|
+
});
|
|
508
|
+
}
|
|
509
|
+
//# sourceMappingURL=council.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"council.js","sourceRoot":"","sources":["../../src/validators/council.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validator Schema Registry for clinkx-workflows.
|
|
3
|
+
*
|
|
4
|
+
* Any call referenced by context_from MUST declare a validator_schema_id
|
|
5
|
+
* pointing to a registered zod schema.
|
|
6
|
+
* This is enforced at load time by the workflow loader.
|
|
7
|
+
*
|
|
8
|
+
* Role is prompt behavior only; typed validators are the machine contract.
|
|
9
|
+
*/
|
|
10
|
+
import type { z } from "zod";
|
|
11
|
+
/** A registered validator schema with its zod shape and optional byte ceiling. */
|
|
12
|
+
export interface RegisteredValidator {
|
|
13
|
+
/** Human-readable name for diagnostics. */
|
|
14
|
+
readonly name: string;
|
|
15
|
+
/** Zod schema for typed output validation after JSON parse. */
|
|
16
|
+
readonly schema: z.ZodTypeAny;
|
|
17
|
+
/**
|
|
18
|
+
* Optional serialized byte ceiling.
|
|
19
|
+
* If set, validated output exceeding this size is a semantic error.
|
|
20
|
+
* Aligned with downstream prompt budget.
|
|
21
|
+
*/
|
|
22
|
+
readonly maxBytes?: number | undefined;
|
|
23
|
+
}
|
|
24
|
+
/** Registry of named validator schemas. */
|
|
25
|
+
export declare class ValidatorRegistry {
|
|
26
|
+
private readonly validators;
|
|
27
|
+
/** Register a validator schema. Throws on duplicate IDs. */
|
|
28
|
+
register(id: string, validator: RegisteredValidator): void;
|
|
29
|
+
/** Look up a validator by its schema ID. Returns undefined if not found. */
|
|
30
|
+
get(id: string): RegisteredValidator | undefined;
|
|
31
|
+
/** Check whether a schema ID is registered. */
|
|
32
|
+
has(id: string): boolean;
|
|
33
|
+
/** All registered schema IDs (for diagnostics). */
|
|
34
|
+
ids(): string[];
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Create a ValidatorRegistry pre-populated with built-in schemas.
|
|
38
|
+
* Council schemas are registered in validators/council.ts.
|
|
39
|
+
*/
|
|
40
|
+
export declare function createValidatorRegistry(): ValidatorRegistry;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validator Schema Registry for clinkx-workflows.
|
|
3
|
+
*
|
|
4
|
+
* Any call referenced by context_from MUST declare a validator_schema_id
|
|
5
|
+
* pointing to a registered zod schema.
|
|
6
|
+
* This is enforced at load time by the workflow loader.
|
|
7
|
+
*
|
|
8
|
+
* Role is prompt behavior only; typed validators are the machine contract.
|
|
9
|
+
*/
|
|
10
|
+
import { registerCouncilValidators } from "./council.js";
|
|
11
|
+
/** Registry of named validator schemas. */
|
|
12
|
+
export class ValidatorRegistry {
|
|
13
|
+
validators = new Map();
|
|
14
|
+
/** Register a validator schema. Throws on duplicate IDs. */
|
|
15
|
+
register(id, validator) {
|
|
16
|
+
if (this.validators.has(id)) {
|
|
17
|
+
throw new Error(`Duplicate validator schema ID: "${id}"`);
|
|
18
|
+
}
|
|
19
|
+
this.validators.set(id, validator);
|
|
20
|
+
}
|
|
21
|
+
/** Look up a validator by its schema ID. Returns undefined if not found. */
|
|
22
|
+
get(id) {
|
|
23
|
+
return this.validators.get(id);
|
|
24
|
+
}
|
|
25
|
+
/** Check whether a schema ID is registered. */
|
|
26
|
+
has(id) {
|
|
27
|
+
return this.validators.has(id);
|
|
28
|
+
}
|
|
29
|
+
/** All registered schema IDs (for diagnostics). */
|
|
30
|
+
ids() {
|
|
31
|
+
return [...this.validators.keys()].sort();
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Create a ValidatorRegistry pre-populated with built-in schemas.
|
|
36
|
+
* Council schemas are registered in validators/council.ts.
|
|
37
|
+
*/
|
|
38
|
+
export function createValidatorRegistry() {
|
|
39
|
+
const registry = new ValidatorRegistry();
|
|
40
|
+
registerCouncilValidators(registry);
|
|
41
|
+
return registry;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/validators/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAkBzD,2CAA2C;AAC3C,MAAM,OAAO,iBAAiB;IACX,UAAU,GAAG,IAAI,GAAG,EAA+B,CAAC;IAErE,4DAA4D;IAC5D,QAAQ,CAAC,EAAU,EAAE,SAA8B;QACjD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,mCAAmC,EAAE,GAAG,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IACrC,CAAC;IAED,4EAA4E;IAC5E,GAAG,CAAC,EAAU;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,+CAA+C;IAC/C,GAAG,CAAC,EAAU;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,mDAAmD;IACnD,GAAG;QACD,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5C,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB;IACrC,MAAM,QAAQ,GAAG,IAAI,iBAAiB,EAAE,CAAC;IACzC,yBAAyB,CAAC,QAAQ,CAAC,CAAC;IACpC,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|