@balpal4495/quorum 3.0.4 → 3.1.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.
- package/dist/advisor/ask.d.ts +13 -0
- package/dist/advisor/ask.d.ts.map +1 -0
- package/dist/advisor/ask.js +67 -0
- package/dist/advisor/ask.js.map +1 -0
- package/dist/advisor/index.d.ts +3 -0
- package/dist/advisor/index.d.ts.map +1 -0
- package/dist/advisor/index.js +2 -0
- package/dist/advisor/index.js.map +1 -0
- package/dist/advisor/prompt.d.ts +5 -0
- package/dist/advisor/prompt.d.ts.map +1 -0
- package/{modules/advisor/prompt.ts → dist/advisor/prompt.js} +22 -26
- package/dist/advisor/prompt.js.map +1 -0
- package/dist/advisor/types.d.ts +23 -0
- package/dist/advisor/types.d.ts.map +1 -0
- package/dist/advisor/types.js +2 -0
- package/dist/advisor/types.js.map +1 -0
- package/dist/compass/behavior.d.ts +4 -0
- package/dist/compass/behavior.d.ts.map +1 -0
- package/dist/compass/behavior.js +138 -0
- package/dist/compass/behavior.js.map +1 -0
- package/dist/compass/create.d.ts +3 -0
- package/dist/compass/create.d.ts.map +1 -0
- package/dist/compass/create.js +289 -0
- package/dist/compass/create.js.map +1 -0
- package/dist/compass/evidence/collect.d.ts +11 -0
- package/dist/compass/evidence/collect.d.ts.map +1 -0
- package/dist/compass/evidence/collect.js +86 -0
- package/dist/compass/evidence/collect.js.map +1 -0
- package/dist/compass/index.d.ts +8 -0
- package/dist/compass/index.d.ts.map +1 -0
- package/dist/compass/index.js +8 -0
- package/dist/compass/index.js.map +1 -0
- package/dist/compass/prompts/index.d.ts +28 -0
- package/dist/compass/prompts/index.d.ts.map +1 -0
- package/{modules/compass/prompts/index.ts → dist/compass/prompts/index.js} +13 -38
- package/dist/compass/prompts/index.js.map +1 -0
- package/dist/compass/prompts/system.d.ts +2 -0
- package/dist/compass/prompts/system.d.ts.map +1 -0
- package/{modules/compass/prompts/system.ts → dist/compass/prompts/system.js} +2 -1
- package/dist/compass/prompts/system.js.map +1 -0
- package/dist/compass/propose.d.ts +15 -0
- package/dist/compass/propose.d.ts.map +1 -0
- package/dist/compass/propose.js +128 -0
- package/dist/compass/propose.js.map +1 -0
- package/dist/compass/schemas.d.ts +1271 -0
- package/dist/compass/schemas.d.ts.map +1 -0
- package/dist/compass/schemas.js +113 -0
- package/dist/compass/schemas.js.map +1 -0
- package/dist/compass/score.d.ts +25 -0
- package/dist/compass/score.d.ts.map +1 -0
- package/dist/compass/score.js +89 -0
- package/dist/compass/score.js.map +1 -0
- package/dist/compass/sources/index.d.ts +9 -0
- package/dist/compass/sources/index.d.ts.map +1 -0
- package/dist/compass/sources/index.js +408 -0
- package/dist/compass/sources/index.js.map +1 -0
- package/dist/compass/types.d.ts +334 -0
- package/dist/compass/types.d.ts.map +1 -0
- package/dist/compass/types.js +2 -0
- package/dist/compass/types.js.map +1 -0
- package/dist/council/advisors.d.ts +15 -0
- package/dist/council/advisors.d.ts.map +1 -0
- package/dist/council/advisors.js +46 -0
- package/dist/council/advisors.js.map +1 -0
- package/dist/council/chairman.d.ts +13 -0
- package/dist/council/chairman.d.ts.map +1 -0
- package/dist/council/chairman.js +145 -0
- package/dist/council/chairman.js.map +1 -0
- package/dist/council/deliberate.d.ts +22 -0
- package/dist/council/deliberate.d.ts.map +1 -0
- package/dist/council/deliberate.js +99 -0
- package/dist/council/deliberate.js.map +1 -0
- package/dist/council/frame.d.ts +8 -0
- package/dist/council/frame.d.ts.map +1 -0
- package/dist/council/frame.js +40 -0
- package/dist/council/frame.js.map +1 -0
- package/dist/council/index.d.ts +6 -0
- package/dist/council/index.d.ts.map +1 -0
- package/dist/council/index.js +4 -0
- package/dist/council/index.js.map +1 -0
- package/dist/council/personas.d.ts +18 -0
- package/dist/council/personas.d.ts.map +1 -0
- package/dist/council/personas.js +44 -0
- package/dist/council/personas.js.map +1 -0
- package/dist/council/reviewers.d.ts +13 -0
- package/dist/council/reviewers.d.ts.map +1 -0
- package/dist/council/reviewers.js +59 -0
- package/dist/council/reviewers.js.map +1 -0
- package/dist/council/risk.d.ts +16 -0
- package/dist/council/risk.d.ts.map +1 -0
- package/dist/council/risk.js +74 -0
- package/dist/council/risk.js.map +1 -0
- package/dist/council/types.d.ts +95 -0
- package/dist/council/types.d.ts.map +1 -0
- package/dist/council/types.js +2 -0
- package/dist/council/types.js.map +1 -0
- package/dist/jury/evaluate.d.ts +13 -0
- package/dist/jury/evaluate.d.ts.map +1 -0
- package/{modules/jury/evaluate.ts → dist/jury/evaluate.js} +60 -84
- package/dist/jury/evaluate.js.map +1 -0
- package/dist/jury/index.d.ts +6 -0
- package/dist/jury/index.d.ts.map +1 -0
- package/dist/jury/index.js +4 -0
- package/dist/jury/index.js.map +1 -0
- package/dist/jury/preflight.d.ts +26 -0
- package/dist/jury/preflight.d.ts.map +1 -0
- package/dist/jury/preflight.js +71 -0
- package/dist/jury/preflight.js.map +1 -0
- package/dist/jury/schema.d.ts +57 -0
- package/dist/jury/schema.d.ts.map +1 -0
- package/dist/jury/schema.js +21 -0
- package/dist/jury/schema.js.map +1 -0
- package/dist/jury/types.d.ts +47 -0
- package/dist/jury/types.d.ts.map +1 -0
- package/dist/jury/types.js +2 -0
- package/dist/jury/types.js.map +1 -0
- package/dist/oracle/adapters/lance-db.d.ts +15 -0
- package/dist/oracle/adapters/lance-db.d.ts.map +1 -0
- package/dist/oracle/adapters/lance-db.js +68 -0
- package/dist/oracle/adapters/lance-db.js.map +1 -0
- package/dist/oracle/adapters/xenova-embedder.d.ts +21 -0
- package/dist/oracle/adapters/xenova-embedder.d.ts.map +1 -0
- package/dist/oracle/adapters/xenova-embedder.js +36 -0
- package/dist/oracle/adapters/xenova-embedder.js.map +1 -0
- package/dist/oracle/bm25.d.ts +20 -0
- package/dist/oracle/bm25.d.ts.map +1 -0
- package/dist/oracle/bm25.js +82 -0
- package/dist/oracle/bm25.js.map +1 -0
- package/dist/oracle/index.d.ts +21 -0
- package/dist/oracle/index.d.ts.map +1 -0
- package/dist/oracle/index.js +25 -0
- package/dist/oracle/index.js.map +1 -0
- package/dist/oracle/log.d.ts +6 -0
- package/dist/oracle/log.d.ts.map +1 -0
- package/dist/oracle/log.js +12 -0
- package/dist/oracle/log.js.map +1 -0
- package/dist/oracle/propose.d.ts +25 -0
- package/dist/oracle/propose.d.ts.map +1 -0
- package/dist/oracle/propose.js +133 -0
- package/dist/oracle/propose.js.map +1 -0
- package/dist/oracle/query.d.ts +17 -0
- package/dist/oracle/query.d.ts.map +1 -0
- package/dist/oracle/query.js +106 -0
- package/dist/oracle/query.js.map +1 -0
- package/dist/oracle/summary.d.ts +11 -0
- package/dist/oracle/summary.d.ts.map +1 -0
- package/dist/oracle/summary.js +102 -0
- package/dist/oracle/summary.js.map +1 -0
- package/dist/oracle/types.d.ts +31 -0
- package/dist/oracle/types.d.ts.map +1 -0
- package/dist/oracle/types.js +2 -0
- package/dist/oracle/types.js.map +1 -0
- package/dist/sentinel/assert.d.ts +28 -0
- package/dist/sentinel/assert.d.ts.map +1 -0
- package/dist/sentinel/assert.js +63 -0
- package/dist/sentinel/assert.js.map +1 -0
- package/dist/sentinel/coverage.d.ts +14 -0
- package/dist/sentinel/coverage.d.ts.map +1 -0
- package/dist/sentinel/coverage.js +96 -0
- package/dist/sentinel/coverage.js.map +1 -0
- package/dist/sentinel/drift.d.ts +12 -0
- package/dist/sentinel/drift.d.ts.map +1 -0
- package/dist/sentinel/drift.js +149 -0
- package/dist/sentinel/drift.js.map +1 -0
- package/dist/sentinel/index.d.ts +7 -0
- package/dist/sentinel/index.d.ts.map +1 -0
- package/dist/sentinel/index.js +5 -0
- package/dist/sentinel/index.js.map +1 -0
- package/dist/sentinel/review.d.ts +15 -0
- package/dist/sentinel/review.d.ts.map +1 -0
- package/dist/sentinel/review.js +177 -0
- package/dist/sentinel/review.js.map +1 -0
- package/dist/setup.d.ts +103 -0
- package/dist/setup.d.ts.map +1 -0
- package/dist/setup.js +87 -0
- package/dist/setup.js.map +1 -0
- package/dist/shared/types.d.ts +173 -0
- package/dist/shared/types.d.ts.map +1 -0
- package/dist/shared/types.js +16 -0
- package/dist/shared/types.js.map +1 -0
- package/package.json +13 -8
- package/.github/copilot-instructions.md +0 -117
- package/CLAUDE.md +0 -146
- package/GEMINI.md +0 -73
- package/SETUP.md +0 -264
- package/evals/__tests__/eval.test.ts +0 -31
- package/evals/cases/auth_hs256_rejected.json +0 -46
- package/evals/cases/auth_rs256_valid.json +0 -30
- package/evals/cases/cache_missing_lock.json +0 -31
- package/evals/cases/db_naive_not_null.json +0 -32
- package/evals/cases/logging_pii_leak.json +0 -32
- package/evals/cases/migration_with_rollback.json +0 -43
- package/evals/cases/no_evidence_novel_design.json +0 -16
- package/evals/cases/payment_no_idempotency.json +0 -33
- package/evals/cases/redis_session_rejected.json +0 -32
- package/evals/cases/safe_refactor.json +0 -17
- package/evals/runner.ts +0 -226
- package/modules/AGENTS.md +0 -78
- package/modules/CLAUDE.md +0 -93
- package/modules/README.md +0 -504
- package/modules/advisor/ask.ts +0 -87
- package/modules/advisor/index.ts +0 -2
- package/modules/advisor/types.ts +0 -26
- package/modules/compass/behavior.ts +0 -161
- package/modules/compass/create.ts +0 -365
- package/modules/compass/evidence/collect.ts +0 -109
- package/modules/compass/index.ts +0 -7
- package/modules/compass/propose.ts +0 -152
- package/modules/compass/schemas.ts +0 -121
- package/modules/compass/score.ts +0 -77
- package/modules/compass/sources/index.ts +0 -413
- package/modules/compass/types.ts +0 -431
- package/modules/council/advisors.ts +0 -71
- package/modules/council/chairman.ts +0 -183
- package/modules/council/deliberate.ts +0 -141
- package/modules/council/frame.ts +0 -54
- package/modules/council/index.ts +0 -9
- package/modules/council/personas.ts +0 -57
- package/modules/council/reviewers.ts +0 -82
- package/modules/council/risk.ts +0 -89
- package/modules/council/types.ts +0 -107
- package/modules/jury/index.ts +0 -5
- package/modules/jury/preflight.ts +0 -101
- package/modules/jury/schema.ts +0 -24
- package/modules/jury/types.ts +0 -50
- package/modules/oracle/adapters/lance-db.ts +0 -81
- package/modules/oracle/adapters/xenova-embedder.ts +0 -43
- package/modules/oracle/bm25.ts +0 -92
- package/modules/oracle/index.ts +0 -36
- package/modules/oracle/log.ts +0 -15
- package/modules/oracle/propose.ts +0 -164
- package/modules/oracle/query.ts +0 -146
- package/modules/oracle/summary.ts +0 -116
- package/modules/oracle/types.ts +0 -32
- package/modules/sentinel/assert.ts +0 -95
- package/modules/sentinel/coverage.ts +0 -106
- package/modules/sentinel/drift.ts +0 -163
- package/modules/sentinel/index.ts +0 -6
- package/modules/sentinel/review.ts +0 -208
- package/modules/setup.ts +0 -202
- package/modules/shared/types.ts +0 -193
|
@@ -0,0 +1,334 @@
|
|
|
1
|
+
import type { LLMProvider, OracleClient } from "../shared/types.js";
|
|
2
|
+
import type { AdvisorOutput } from "../advisor/types.js";
|
|
3
|
+
export type CompassEvidenceKind = "chronicle" | "advisor" | "sentinel" | "code" | "docs" | "tests" | "config" | "cli" | "package" | "issue" | "analytics" | "support" | "inference" | "assumption" | "unknown";
|
|
4
|
+
export interface CompassEvidenceRef {
|
|
5
|
+
id: string;
|
|
6
|
+
kind: CompassEvidenceKind;
|
|
7
|
+
source: string;
|
|
8
|
+
path?: string;
|
|
9
|
+
line?: number;
|
|
10
|
+
entry_id?: string;
|
|
11
|
+
summary: string;
|
|
12
|
+
quote?: string;
|
|
13
|
+
confidence: number;
|
|
14
|
+
}
|
|
15
|
+
export interface ProductSourceFinding {
|
|
16
|
+
id: string;
|
|
17
|
+
kind: CompassEvidenceKind;
|
|
18
|
+
source: string;
|
|
19
|
+
path?: string;
|
|
20
|
+
line?: number;
|
|
21
|
+
title: string;
|
|
22
|
+
summary: string;
|
|
23
|
+
raw?: string;
|
|
24
|
+
confidence: number;
|
|
25
|
+
tags: string[];
|
|
26
|
+
}
|
|
27
|
+
export interface ProductSourceScanInput {
|
|
28
|
+
rootDir: string;
|
|
29
|
+
area?: string;
|
|
30
|
+
include?: string[];
|
|
31
|
+
exclude?: string[];
|
|
32
|
+
}
|
|
33
|
+
export interface ProductSource {
|
|
34
|
+
id: string;
|
|
35
|
+
kind: "docs" | "code" | "tests" | "config" | "cli" | "package" | "issue" | "analytics" | "support";
|
|
36
|
+
scan(input: ProductSourceScanInput): Promise<ProductSourceFinding[]>;
|
|
37
|
+
}
|
|
38
|
+
export interface ProductBearing {
|
|
39
|
+
id: string;
|
|
40
|
+
title: string;
|
|
41
|
+
summary: string;
|
|
42
|
+
area?: string;
|
|
43
|
+
evidence: CompassEvidenceRef[];
|
|
44
|
+
confidence: number;
|
|
45
|
+
}
|
|
46
|
+
export type BehaviorBasis = "documented" | "implemented" | "tested" | "observed" | "inferred";
|
|
47
|
+
export interface ProductBehavior {
|
|
48
|
+
id: string;
|
|
49
|
+
area: string;
|
|
50
|
+
name: string;
|
|
51
|
+
description: string;
|
|
52
|
+
current_behavior: string;
|
|
53
|
+
evidence: CompassEvidenceRef[];
|
|
54
|
+
basis: BehaviorBasis[];
|
|
55
|
+
confidence: number;
|
|
56
|
+
notes?: string[];
|
|
57
|
+
}
|
|
58
|
+
export interface ProductBehaviorGap {
|
|
59
|
+
id: string;
|
|
60
|
+
area: string;
|
|
61
|
+
gap: string;
|
|
62
|
+
why_it_matters: string;
|
|
63
|
+
evidence: CompassEvidenceRef[];
|
|
64
|
+
confidence: number;
|
|
65
|
+
}
|
|
66
|
+
export interface ProductBehaviorContradiction {
|
|
67
|
+
id: string;
|
|
68
|
+
area: string;
|
|
69
|
+
docs_claim: string;
|
|
70
|
+
implementation_claim: string;
|
|
71
|
+
evidence: CompassEvidenceRef[];
|
|
72
|
+
severity: "low" | "medium" | "high";
|
|
73
|
+
}
|
|
74
|
+
export interface BehaviorMap {
|
|
75
|
+
generated_at: string;
|
|
76
|
+
area?: string;
|
|
77
|
+
behaviors: ProductBehavior[];
|
|
78
|
+
gaps: ProductBehaviorGap[];
|
|
79
|
+
contradictions: ProductBehaviorContradiction[];
|
|
80
|
+
confidence: number;
|
|
81
|
+
}
|
|
82
|
+
export interface BehaviorMapInput {
|
|
83
|
+
area?: string;
|
|
84
|
+
source?: string;
|
|
85
|
+
}
|
|
86
|
+
export interface BehaviorQuestionInput {
|
|
87
|
+
question: string;
|
|
88
|
+
area?: string;
|
|
89
|
+
deterministic?: boolean;
|
|
90
|
+
}
|
|
91
|
+
export interface BehaviorAnswer {
|
|
92
|
+
question: string;
|
|
93
|
+
what_exists: string[];
|
|
94
|
+
what_appears_missing: string[];
|
|
95
|
+
product_implication: string;
|
|
96
|
+
evidence: CompassEvidenceRef[];
|
|
97
|
+
confidence: number;
|
|
98
|
+
}
|
|
99
|
+
export interface ProductObservation {
|
|
100
|
+
id: string;
|
|
101
|
+
kind: "product_observation";
|
|
102
|
+
title: string;
|
|
103
|
+
observation: string;
|
|
104
|
+
area: string;
|
|
105
|
+
evidence: CompassEvidenceRef[];
|
|
106
|
+
implications: string[];
|
|
107
|
+
confidence: number;
|
|
108
|
+
}
|
|
109
|
+
export interface ProductHypothesis {
|
|
110
|
+
id: string;
|
|
111
|
+
kind: "product_hypothesis";
|
|
112
|
+
title: string;
|
|
113
|
+
hypothesis: string;
|
|
114
|
+
target_user?: string;
|
|
115
|
+
problem?: string;
|
|
116
|
+
assumptions: string[];
|
|
117
|
+
validation_signals: string[];
|
|
118
|
+
invalidation_signals: string[];
|
|
119
|
+
evidence: CompassEvidenceRef[];
|
|
120
|
+
confidence: number;
|
|
121
|
+
}
|
|
122
|
+
export interface ProductScoreBreakdown {
|
|
123
|
+
strategic_fit: number;
|
|
124
|
+
user_problem_clarity: number;
|
|
125
|
+
evidence_strength: number;
|
|
126
|
+
leverage: number;
|
|
127
|
+
feasibility: number;
|
|
128
|
+
time_to_signal: number;
|
|
129
|
+
reversibility: number;
|
|
130
|
+
complexity_penalty: number;
|
|
131
|
+
dependency_penalty: number;
|
|
132
|
+
contradiction_penalty: number;
|
|
133
|
+
evidence_gap_penalty: number;
|
|
134
|
+
total: number;
|
|
135
|
+
}
|
|
136
|
+
export interface ProductOpportunity {
|
|
137
|
+
id: string;
|
|
138
|
+
title: string;
|
|
139
|
+
area: string;
|
|
140
|
+
why_it_matters: string;
|
|
141
|
+
evidence_strength: "strong" | "medium" | "weak" | "inferred";
|
|
142
|
+
suggested_next_step: string;
|
|
143
|
+
evidence: CompassEvidenceRef[];
|
|
144
|
+
confidence: number;
|
|
145
|
+
}
|
|
146
|
+
export interface OpportunitiesInput {
|
|
147
|
+
goal?: string;
|
|
148
|
+
area?: string;
|
|
149
|
+
limit?: number;
|
|
150
|
+
}
|
|
151
|
+
export interface ProductPathwayPhase {
|
|
152
|
+
name: string;
|
|
153
|
+
outcome: string;
|
|
154
|
+
user_value: string;
|
|
155
|
+
build_notes?: string[];
|
|
156
|
+
dependencies: string[];
|
|
157
|
+
risks: string[];
|
|
158
|
+
}
|
|
159
|
+
export interface ProductPathway {
|
|
160
|
+
id: string;
|
|
161
|
+
kind: "product_pathway";
|
|
162
|
+
title: string;
|
|
163
|
+
goal: string;
|
|
164
|
+
target_user?: string;
|
|
165
|
+
problem?: string;
|
|
166
|
+
current_behaviors: string[];
|
|
167
|
+
opportunity: string;
|
|
168
|
+
why_now: string;
|
|
169
|
+
smallest_useful_version: string;
|
|
170
|
+
phases: ProductPathwayPhase[];
|
|
171
|
+
dependencies: string[];
|
|
172
|
+
risks: string[];
|
|
173
|
+
assumptions: string[];
|
|
174
|
+
open_questions: string[];
|
|
175
|
+
evidence: CompassEvidenceRef[];
|
|
176
|
+
scores: ProductScoreBreakdown;
|
|
177
|
+
confidence: number;
|
|
178
|
+
time_to_signal: string;
|
|
179
|
+
reversibility: "high" | "medium" | "low";
|
|
180
|
+
suggested_next_step: string;
|
|
181
|
+
}
|
|
182
|
+
export interface PathwaysInput {
|
|
183
|
+
goal: string;
|
|
184
|
+
horizon?: string;
|
|
185
|
+
appetite?: "small" | "medium" | "large";
|
|
186
|
+
area?: string;
|
|
187
|
+
limit?: number;
|
|
188
|
+
}
|
|
189
|
+
export interface ProductBet {
|
|
190
|
+
id: string;
|
|
191
|
+
kind: "product_bet";
|
|
192
|
+
title: string;
|
|
193
|
+
thesis: string;
|
|
194
|
+
why_now: string;
|
|
195
|
+
target_user?: string;
|
|
196
|
+
upside: string;
|
|
197
|
+
downside: string;
|
|
198
|
+
assumptions: string[];
|
|
199
|
+
validation_signals: string[];
|
|
200
|
+
invalidation_signals: string[];
|
|
201
|
+
kill_criteria: string[];
|
|
202
|
+
first_experiment: string;
|
|
203
|
+
build_path: string[];
|
|
204
|
+
evidence: CompassEvidenceRef[];
|
|
205
|
+
scores: ProductScoreBreakdown;
|
|
206
|
+
confidence: number;
|
|
207
|
+
time_to_signal: string;
|
|
208
|
+
reversibility: "high" | "medium" | "low";
|
|
209
|
+
appetite: "small" | "medium" | "large";
|
|
210
|
+
}
|
|
211
|
+
export interface BigBetsInput {
|
|
212
|
+
horizon?: string;
|
|
213
|
+
goal?: string;
|
|
214
|
+
appetite?: "small" | "medium" | "large";
|
|
215
|
+
}
|
|
216
|
+
export interface ProductIdeaScore {
|
|
217
|
+
idea: string;
|
|
218
|
+
summary: string;
|
|
219
|
+
recommendation: "pursue" | "pursue-small-test" | "investigate-more" | "defer" | "avoid";
|
|
220
|
+
scores: ProductScoreBreakdown;
|
|
221
|
+
evidence: CompassEvidenceRef[];
|
|
222
|
+
supporting_reasons: string[];
|
|
223
|
+
risks: string[];
|
|
224
|
+
assumptions: string[];
|
|
225
|
+
open_questions: string[];
|
|
226
|
+
suggested_next_step: string;
|
|
227
|
+
}
|
|
228
|
+
export interface ScoreIdeaInput {
|
|
229
|
+
idea: string;
|
|
230
|
+
context?: string;
|
|
231
|
+
}
|
|
232
|
+
export interface ProductBrief {
|
|
233
|
+
title: string;
|
|
234
|
+
problem: string;
|
|
235
|
+
target_user?: string;
|
|
236
|
+
current_behavior: string[];
|
|
237
|
+
product_opportunity: string;
|
|
238
|
+
recommended_solution: string;
|
|
239
|
+
smallest_useful_version: string;
|
|
240
|
+
non_goals: string[];
|
|
241
|
+
user_flow: string[];
|
|
242
|
+
implementation_notes: string[];
|
|
243
|
+
dependencies: string[];
|
|
244
|
+
risks: string[];
|
|
245
|
+
open_questions: string[];
|
|
246
|
+
assumptions: string[];
|
|
247
|
+
validation_signals: string[];
|
|
248
|
+
invalidation_signals: string[];
|
|
249
|
+
evidence: CompassEvidenceRef[];
|
|
250
|
+
suggested_quorum_checks: string[];
|
|
251
|
+
}
|
|
252
|
+
export interface ProductBriefInput {
|
|
253
|
+
title: string;
|
|
254
|
+
pathway_id?: string;
|
|
255
|
+
idea?: string;
|
|
256
|
+
context?: string;
|
|
257
|
+
}
|
|
258
|
+
export interface CompassBrief {
|
|
259
|
+
generated_at: string;
|
|
260
|
+
area?: string;
|
|
261
|
+
product_direction: string;
|
|
262
|
+
known_from_chronicle: string[];
|
|
263
|
+
known_from_behavior: string[];
|
|
264
|
+
inferred: string[];
|
|
265
|
+
assumptions: string[];
|
|
266
|
+
unknowns: string[];
|
|
267
|
+
opportunities: ProductOpportunity[];
|
|
268
|
+
missing_evidence: string[];
|
|
269
|
+
recommended_next_step: string;
|
|
270
|
+
confidence: number;
|
|
271
|
+
}
|
|
272
|
+
export interface CompassBriefInput {
|
|
273
|
+
area?: string;
|
|
274
|
+
}
|
|
275
|
+
export type CompassArtifactKind = "product_observation" | "product_hypothesis" | "product_pathway" | "product_bet" | "product_idea_score" | "product_outcome";
|
|
276
|
+
export interface CompassProposalInput {
|
|
277
|
+
artifact_kind: CompassArtifactKind;
|
|
278
|
+
artifact_id: string;
|
|
279
|
+
payload: ProductPathway | ProductBet | ProductObservation | ProductIdeaScore;
|
|
280
|
+
}
|
|
281
|
+
export interface CompassProposalResult {
|
|
282
|
+
proposal_id: string;
|
|
283
|
+
message: string;
|
|
284
|
+
}
|
|
285
|
+
export type CompassOutcomeResult = "validated" | "partially-validated" | "invalidated" | "unclear" | "superseded";
|
|
286
|
+
export interface CompassOutcomeInput {
|
|
287
|
+
entry_id: string;
|
|
288
|
+
result: CompassOutcomeResult;
|
|
289
|
+
note?: string;
|
|
290
|
+
}
|
|
291
|
+
export interface CompassOutcomeResultPayload {
|
|
292
|
+
proposal_id: string;
|
|
293
|
+
message: string;
|
|
294
|
+
}
|
|
295
|
+
export interface Compass {
|
|
296
|
+
brief(input?: CompassBriefInput): Promise<CompassBrief>;
|
|
297
|
+
mapBehaviors(input?: BehaviorMapInput): Promise<BehaviorMap>;
|
|
298
|
+
behavior(input: BehaviorQuestionInput): Promise<BehaviorAnswer>;
|
|
299
|
+
opportunities(input?: OpportunitiesInput): Promise<ProductOpportunity[]>;
|
|
300
|
+
pathways(input: PathwaysInput): Promise<ProductPathway[]>;
|
|
301
|
+
bigBets(input: BigBetsInput): Promise<ProductBet[]>;
|
|
302
|
+
scoreIdea(input: ScoreIdeaInput): Promise<ProductIdeaScore>;
|
|
303
|
+
productBrief(input: ProductBriefInput): Promise<ProductBrief>;
|
|
304
|
+
propose(input: CompassProposalInput): Promise<CompassProposalResult>;
|
|
305
|
+
outcome(input: CompassOutcomeInput): Promise<CompassOutcomeResultPayload>;
|
|
306
|
+
}
|
|
307
|
+
export interface CreateCompassOptions {
|
|
308
|
+
oracle: OracleClient;
|
|
309
|
+
advisor?: {
|
|
310
|
+
ask: (question: string) => Promise<AdvisorOutput>;
|
|
311
|
+
};
|
|
312
|
+
/**
|
|
313
|
+
* Required for LLM-backed commands: brief (with synthesis), pathways,
|
|
314
|
+
* bigBets, scoreIdea, productBrief, behavior (non-deterministic).
|
|
315
|
+
* Not required for deterministic mapBehaviors.
|
|
316
|
+
*/
|
|
317
|
+
llm?: LLMProvider;
|
|
318
|
+
rootDir?: string;
|
|
319
|
+
chronicleDir?: string;
|
|
320
|
+
sources?: ProductSource[];
|
|
321
|
+
models?: {
|
|
322
|
+
brief?: string;
|
|
323
|
+
pathways?: string;
|
|
324
|
+
bets?: string;
|
|
325
|
+
score?: string;
|
|
326
|
+
};
|
|
327
|
+
/**
|
|
328
|
+
* How aggressively to surface low-evidence recommendations.
|
|
329
|
+
* "strict" penalises more. "exploratory" allows weaker evidence through.
|
|
330
|
+
* Default: "balanced"
|
|
331
|
+
*/
|
|
332
|
+
minimumEvidence?: "strict" | "balanced" | "exploratory";
|
|
333
|
+
}
|
|
334
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../modules/compass/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../modules/compass/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { LLMProvider, OracleResult } from "../shared/types.js";
|
|
2
|
+
import type { AdvisorPersona } from "./personas.js";
|
|
3
|
+
export interface AdvisorResponse {
|
|
4
|
+
persona: string;
|
|
5
|
+
response: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Run all advisors in parallel.
|
|
9
|
+
* Each advisor receives the framed question, the Oracle evidence pack,
|
|
10
|
+
* and their persona's system prompt fragment.
|
|
11
|
+
*
|
|
12
|
+
* Advisors MUST cite specific Oracle entry IDs — this is enforced in the prompt.
|
|
13
|
+
*/
|
|
14
|
+
export declare function fanOutAdvisors(framedQuestion: string, evidence: OracleResult[], personas: readonly AdvisorPersona[], llm: LLMProvider, model?: string): Promise<AdvisorResponse[]>;
|
|
15
|
+
//# sourceMappingURL=advisors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"advisors.d.ts","sourceRoot":"","sources":["../../modules/council/advisors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAEnD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;CACjB;AAeD;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,YAAY,EAAE,EACxB,QAAQ,EAAE,SAAS,cAAc,EAAE,EACnC,GAAG,EAAE,WAAW,EAChB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,eAAe,EAAE,CAAC,CAmC5B"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { entryText } from "../shared/types.js";
|
|
2
|
+
function formatEvidence(evidence) {
|
|
3
|
+
if (evidence.length === 0) {
|
|
4
|
+
return "No Oracle entries are available. Reason from absence of evidence — name what is missing.";
|
|
5
|
+
}
|
|
6
|
+
return evidence
|
|
7
|
+
.map(e => `[${e.id}] (${e.status})
|
|
8
|
+
${entryText(e)}
|
|
9
|
+
Areas: ${e.affected_areas.join(", ")}${e.scope ? " | " + e.scope.join(", ") : ""}`)
|
|
10
|
+
.join("\n\n");
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Run all advisors in parallel.
|
|
14
|
+
* Each advisor receives the framed question, the Oracle evidence pack,
|
|
15
|
+
* and their persona's system prompt fragment.
|
|
16
|
+
*
|
|
17
|
+
* Advisors MUST cite specific Oracle entry IDs — this is enforced in the prompt.
|
|
18
|
+
*/
|
|
19
|
+
export async function fanOutAdvisors(framedQuestion, evidence, personas, llm, model) {
|
|
20
|
+
const evidenceText = formatEvidence(evidence);
|
|
21
|
+
return Promise.all(personas.map(async (persona) => {
|
|
22
|
+
const systemPrompt = [
|
|
23
|
+
`You are a Council advisor — ${persona.name}.`,
|
|
24
|
+
"",
|
|
25
|
+
persona.systemFragment,
|
|
26
|
+
"",
|
|
27
|
+
"Rules:",
|
|
28
|
+
"- Reason ONLY from the Oracle evidence provided. Do not use general knowledge.",
|
|
29
|
+
"- Cite specific Oracle entry IDs (e.g. [abc-123]) for every claim you make.",
|
|
30
|
+
"- If the evidence is insufficient to support a claim, say so explicitly.",
|
|
31
|
+
"- Keep your response focused and under 400 words.",
|
|
32
|
+
].join("\n");
|
|
33
|
+
const userPrompt = [
|
|
34
|
+
framedQuestion,
|
|
35
|
+
"",
|
|
36
|
+
"## Oracle Evidence",
|
|
37
|
+
evidenceText,
|
|
38
|
+
].join("\n");
|
|
39
|
+
const response = await llm([
|
|
40
|
+
{ role: "system", content: systemPrompt },
|
|
41
|
+
{ role: "user", content: userPrompt },
|
|
42
|
+
], model);
|
|
43
|
+
return { persona: persona.name, response };
|
|
44
|
+
}));
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=advisors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"advisors.js","sourceRoot":"","sources":["../../modules/council/advisors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAQ9C,SAAS,cAAc,CAAC,QAAwB;IAC9C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,0FAA0F,CAAA;IACnG,CAAC;IACD,OAAO,QAAQ;SACZ,GAAG,CAAC,CAAC,CAAC,EAAE,CACP,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM;EAC1B,SAAS,CAAC,CAAC,CAAC;SACL,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAC7E;SACA,IAAI,CAAC,MAAM,CAAC,CAAA;AACjB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,cAAsB,EACtB,QAAwB,EACxB,QAAmC,EACnC,GAAgB,EAChB,KAAc;IAEd,MAAM,YAAY,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAA;IAE7C,OAAO,OAAO,CAAC,GAAG,CAChB,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAA4B,EAAE;QACvD,MAAM,YAAY,GAAG;YACnB,+BAA+B,OAAO,CAAC,IAAI,GAAG;YAC9C,EAAE;YACF,OAAO,CAAC,cAAc;YACtB,EAAE;YACF,QAAQ;YACR,gFAAgF;YAChF,6EAA6E;YAC7E,0EAA0E;YAC1E,mDAAmD;SACpD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEZ,MAAM,UAAU,GAAG;YACjB,cAAc;YACd,EAAE;YACF,oBAAoB;YACpB,YAAY;SACb,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEZ,MAAM,QAAQ,GAAG,MAAM,GAAG,CACxB;YACE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;YACzC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE;SACtC,EACD,KAAK,CACN,CAAA;QAED,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAA;IAC5C,CAAC,CAAC,CACH,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { LLMProvider, OracleResult } from "../shared/types.js";
|
|
2
|
+
import type { AdvisorResponse } from "./advisors.js";
|
|
3
|
+
import type { ReviewerResponse } from "./reviewers.js";
|
|
4
|
+
import type { CouncilOutput } from "./types.js";
|
|
5
|
+
/**
|
|
6
|
+
* Chairman synthesises the verdict from all advisor and reviewer inputs.
|
|
7
|
+
* Classifies findings into blockers and warnings, validates citations,
|
|
8
|
+
* and tracks advisor split to surface genuine disagreement.
|
|
9
|
+
*
|
|
10
|
+
* Throws if the LLM returns non-JSON or output fails schema validation.
|
|
11
|
+
*/
|
|
12
|
+
export declare function chairman(advisorResponses: AdvisorResponse[], reviewerResponses: ReviewerResponse[], evidence: OracleResult[], llm: LLMProvider, model?: string): Promise<CouncilOutput>;
|
|
13
|
+
//# sourceMappingURL=chairman.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chairman.d.ts","sourceRoot":"","sources":["../../modules/council/chairman.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,KAAK,EAAE,aAAa,EAAsB,MAAM,YAAY,CAAA;AA4GnE;;;;;;GAMG;AACH,wBAAsB,QAAQ,CAC5B,gBAAgB,EAAE,eAAe,EAAE,EACnC,iBAAiB,EAAE,gBAAgB,EAAE,EACrC,QAAQ,EAAE,YAAY,EAAE,EACxB,GAAG,EAAE,WAAW,EAChB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,aAAa,CAAC,CAwDxB"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { entryText } from "../shared/types.js";
|
|
3
|
+
const BlockerSchema = z.object({
|
|
4
|
+
issue: z.string().min(1),
|
|
5
|
+
evidence: z.array(z.string()),
|
|
6
|
+
required_fix: z.string().min(1),
|
|
7
|
+
});
|
|
8
|
+
const WarningSchema = z.object({
|
|
9
|
+
issue: z.string().min(1),
|
|
10
|
+
suggested_fix: z.string().optional(),
|
|
11
|
+
});
|
|
12
|
+
const AdvisorSplitSchema = z.object({
|
|
13
|
+
proceed: z.number().int().min(0),
|
|
14
|
+
redesign: z.number().int().min(0),
|
|
15
|
+
"investigate-more": z.number().int().min(0),
|
|
16
|
+
});
|
|
17
|
+
const ChairmanOutputSchema = z.object({
|
|
18
|
+
satisfied: z.boolean(),
|
|
19
|
+
verdict: z.string().min(1),
|
|
20
|
+
blockers: z.array(BlockerSchema),
|
|
21
|
+
warnings: z.array(WarningSchema),
|
|
22
|
+
evidence_cited: z.array(z.string()),
|
|
23
|
+
advisor_split: AdvisorSplitSchema,
|
|
24
|
+
recommendation: z.enum(["proceed", "redesign", "investigate-more"]),
|
|
25
|
+
});
|
|
26
|
+
function formatAdvisors(responses) {
|
|
27
|
+
return responses
|
|
28
|
+
.map(r => `## ${r.persona}\n${r.response}`)
|
|
29
|
+
.join("\n\n---\n\n");
|
|
30
|
+
}
|
|
31
|
+
function formatReviewers(responses) {
|
|
32
|
+
return responses
|
|
33
|
+
.map(r => `## ${r.reviewerId}\n${r.review}`)
|
|
34
|
+
.join("\n\n---\n\n");
|
|
35
|
+
}
|
|
36
|
+
function formatEvidence(evidence) {
|
|
37
|
+
if (evidence.length === 0)
|
|
38
|
+
return "No Oracle evidence.";
|
|
39
|
+
return evidence
|
|
40
|
+
.map(e => `[${e.id}] (${e.status}, confidence: ${e.confidence.toFixed(2)}) ${entryText(e)}`)
|
|
41
|
+
.join("\n");
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Validate that every ID in evidence_cited actually appeared in the evidence pack.
|
|
45
|
+
* Hallucinated IDs are cited but were never in the evidence sent to Council.
|
|
46
|
+
*/
|
|
47
|
+
function validateCitations(citedIds, evidence) {
|
|
48
|
+
const evidenceIds = new Set(evidence.map(e => e.id));
|
|
49
|
+
const valid_ids = [];
|
|
50
|
+
const hallucinated_ids = [];
|
|
51
|
+
for (const id of citedIds) {
|
|
52
|
+
if (evidenceIds.has(id)) {
|
|
53
|
+
valid_ids.push(id);
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
hallucinated_ids.push(id);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return { valid_ids, hallucinated_ids };
|
|
60
|
+
}
|
|
61
|
+
const CHAIRMAN_SYSTEM_PROMPT = [
|
|
62
|
+
"You are the Council Chairman. You synthesise the final verdict from all advisor and reviewer inputs.",
|
|
63
|
+
"",
|
|
64
|
+
"Your output must classify findings by severity:",
|
|
65
|
+
" blockers — issues that MUST be resolved before the design can proceed",
|
|
66
|
+
" (e.g. no rollback plan for a destructive migration, repeated a documented failure mode)",
|
|
67
|
+
" warnings — issues that SHOULD be addressed but do not block execution",
|
|
68
|
+
" (e.g. no test coverage for an edge case, a preferred pattern not followed)",
|
|
69
|
+
"",
|
|
70
|
+
"For each blocker, cite the Oracle entry IDs that evidence it and state the required fix precisely.",
|
|
71
|
+
"For each warning, a suggested_fix is optional but preferred.",
|
|
72
|
+
"",
|
|
73
|
+
"advisor_split: count how many advisors recommended each option from their responses.",
|
|
74
|
+
" High split (no clear majority) is a signal of genuine uncertainty — reflect this in your verdict.",
|
|
75
|
+
"",
|
|
76
|
+
"satisfied = true → no blockers, design can proceed to the human gate",
|
|
77
|
+
"satisfied = false → at least one blocker exists, or the design needs rework",
|
|
78
|
+
"",
|
|
79
|
+
"evidence_cited: list every Oracle entry ID that materially influenced the verdict.",
|
|
80
|
+
" Only cite IDs that appeared in the Oracle Evidence section below.",
|
|
81
|
+
" Do not cite IDs from memory or general knowledge.",
|
|
82
|
+
"",
|
|
83
|
+
"Return ONLY valid JSON — no markdown fences, no explanation:",
|
|
84
|
+
JSON.stringify({
|
|
85
|
+
satisfied: "<boolean>",
|
|
86
|
+
verdict: "<string ≤400 words — clear synthesis citing entry IDs>",
|
|
87
|
+
blockers: [{ issue: "<string>", evidence: ["<Oracle entry ID>"], required_fix: "<string>" }],
|
|
88
|
+
warnings: [{ issue: "<string>", suggested_fix: "<string — optional>" }],
|
|
89
|
+
evidence_cited: ["<Oracle entry ID — only IDs present in the evidence pack>"],
|
|
90
|
+
advisor_split: { proceed: "<int>", redesign: "<int>", "investigate-more": "<int>" },
|
|
91
|
+
recommendation: "proceed | redesign | investigate-more",
|
|
92
|
+
}),
|
|
93
|
+
].join("\n");
|
|
94
|
+
/**
|
|
95
|
+
* Chairman synthesises the verdict from all advisor and reviewer inputs.
|
|
96
|
+
* Classifies findings into blockers and warnings, validates citations,
|
|
97
|
+
* and tracks advisor split to surface genuine disagreement.
|
|
98
|
+
*
|
|
99
|
+
* Throws if the LLM returns non-JSON or output fails schema validation.
|
|
100
|
+
*/
|
|
101
|
+
export async function chairman(advisorResponses, reviewerResponses, evidence, llm, model) {
|
|
102
|
+
const userPrompt = [
|
|
103
|
+
"## Advisor Responses",
|
|
104
|
+
formatAdvisors(advisorResponses),
|
|
105
|
+
"",
|
|
106
|
+
"## Reviewer Critiques",
|
|
107
|
+
formatReviewers(reviewerResponses),
|
|
108
|
+
"",
|
|
109
|
+
"## Oracle Evidence",
|
|
110
|
+
formatEvidence(evidence),
|
|
111
|
+
].join("\n");
|
|
112
|
+
const raw = await llm([
|
|
113
|
+
{ role: "system", content: CHAIRMAN_SYSTEM_PROMPT },
|
|
114
|
+
{ role: "user", content: userPrompt },
|
|
115
|
+
], model);
|
|
116
|
+
let parsed;
|
|
117
|
+
try {
|
|
118
|
+
const cleaned = raw
|
|
119
|
+
.replace(/^```(?:json)?\s*/m, "")
|
|
120
|
+
.replace(/\s*```$/m, "")
|
|
121
|
+
.trim();
|
|
122
|
+
parsed = JSON.parse(cleaned);
|
|
123
|
+
}
|
|
124
|
+
catch {
|
|
125
|
+
throw new Error(`Council chairman: LLM returned non-JSON. Raw (first 300 chars): ${raw.slice(0, 300)}`);
|
|
126
|
+
}
|
|
127
|
+
const result = ChairmanOutputSchema.safeParse(parsed);
|
|
128
|
+
if (!result.success) {
|
|
129
|
+
throw new Error(`Council chairman: output failed schema validation. Issues: ${JSON.stringify(result.error.issues)}`);
|
|
130
|
+
}
|
|
131
|
+
const data = result.data;
|
|
132
|
+
// Validate citations — flag any IDs cited that weren't in the evidence pack
|
|
133
|
+
const citation_validation = validateCitations(data.evidence_cited, evidence);
|
|
134
|
+
// Derive flat challenges array for backwards compatibility
|
|
135
|
+
const challenges = [
|
|
136
|
+
...data.blockers.map(b => `[BLOCKER] ${b.issue}`),
|
|
137
|
+
...data.warnings.map(w => w.issue),
|
|
138
|
+
];
|
|
139
|
+
return {
|
|
140
|
+
...data,
|
|
141
|
+
challenges,
|
|
142
|
+
citation_validation,
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=chairman.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chairman.js","sourceRoot":"","sources":["../../modules/council/chairman.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { CouncilInput, CouncilOutput, CouncilDeps } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Run the Council deliberation pipeline.
|
|
4
|
+
*
|
|
5
|
+
* Pipeline:
|
|
6
|
+
* 1. frameQuestion — reframe outcome + design into a deliberation brief
|
|
7
|
+
* 2. fanOutAdvisors — N advisors reason in parallel from Oracle evidence
|
|
8
|
+
* 3. fanOutReviewers — N reviewers critique anonymised advisor responses in parallel
|
|
9
|
+
* 4. chairman — synthesises verdict, cites Oracle entry IDs
|
|
10
|
+
* 5. oracle.propose() — proposes verdict to Chronicle (human approval required to commit)
|
|
11
|
+
*
|
|
12
|
+
* The council_brief from jury_output determines framing tone:
|
|
13
|
+
* "challenge" → find what is wrong (Jury confidence < 0.6)
|
|
14
|
+
* "pressure-test" → try to break what looks solid (Jury confidence ≥ 0.6)
|
|
15
|
+
*
|
|
16
|
+
* Routing on output:
|
|
17
|
+
* satisfied: true → proceed to human gate → Executor
|
|
18
|
+
* satisfied: false, recommendation: redesign → return to Designer
|
|
19
|
+
* satisfied: false, recommendation: investigate-more → return to Detective with gaps list
|
|
20
|
+
*/
|
|
21
|
+
export declare function deliberate(input: CouncilInput, deps: CouncilDeps): Promise<CouncilOutput>;
|
|
22
|
+
//# sourceMappingURL=deliberate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deliberate.d.ts","sourceRoot":"","sources":["../../modules/council/deliberate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAa1E;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,UAAU,CAC9B,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,aAAa,CAAC,CA6FxB"}
|