@manya-os/council 1.0.0 → 1.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/CHANGELOG.md CHANGED
@@ -1,21 +1,21 @@
1
- # Changelog
2
-
3
- All notable changes to `@manya/council` are documented here.
4
- Format: [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). Adheres to [SemVer](https://semver.org/).
5
-
6
- ## [1.0.0] — 2024-01-15
7
- ### Added
8
- - Initial release.
9
- - Specialist routing: `Specialist` (id, name, expertise, weight), `SpecialistRegistry`, free functions `route(problem, specialists)` (ranked, positive-overlap only) and `routeAll(problem, specialists)` (all specialists with scores), `matchScore` (Jaccard token overlap), `validateSpecialist`.
10
- - Independent analysis collection: `Analysis` (id, specialistId, problemId, content, confidence, reasoning, caveats?), `AnalysisCollector` with `submit`, `getAll(problemId)`, `getBySpecialist(specialistId)`, `get`, `list`, `size`; `validateAnalysis`.
11
- - Weighted confidence scoring: `scoreAnalysis(analysis, specialistWeight)`, `aggregateScores(analyses, weights)` (combined weighted mean + variance + stddev), `detectOutliers(analyses, threshold)` (deviation from median); `DEFAULT_OUTLIER_THRESHOLD = 0.25`.
12
- - Conflict detection: `ConflictDetector.detect(analyses)` returns `Conflict[]` of three types — `opposing_conclusion` (both analyses > 0.6 confidence with opposite polarity), `factual_contradiction` (≥ 0.3 content Jaccard overlap with opposite polarity), `divergent_reasoning` (same polarity, < 0.2 reasoning Jaccard overlap, > 0.1 content overlap). Severity (`low`/`medium`/`high`) based on confidence gap and analyst count. `severityFor`, `CONFLICT_TYPES`, `CONFLICT_SEVERITIES`, and all threshold constants exported.
13
- - Structured debate: `DebateFacilitator` with `open(problemId, conflictIds)`, `submitRound(debateId, round)` (validates rounds, enforces `rebuttalTo` existence, rejects duplicates and concluded debates, enforces max rounds), `conclude(debateId)`. `validateRound`, `DEFAULT_MAX_DEBATE_ROUNDS = 10`.
14
- - Minority opinion tracking: `MinorityOpinion` (id, problemId, analystId, position, reasoning, dissentReason), `MinorityOpinionTracker` with `record`, `getForProblem`, `getByAnalyst`, `get`, `list`, `size`; `validateMinorityOpinion`.
15
- - Consensus building: `ConsensusBuilder(threshold)` with `build(problemId, analyses, conflicts, options)` returning `Consensus` (problemId, decision, confidence, supportingAnalystIds, dissentingAnalystIds, conflictsResolved, openIssues) or `null`. Weighted voting with `specialistWeight × confidence` per analysis. Optional `weights` map and `minorityAnalystIds` (added to dissenters). `DEFAULT_CONSENSUS_THRESHOLD = 0.6`.
16
- - Review reports: `buildReport(input)` aggregates analyses, conflicts, debates, minority opinions, consensus, and recommendations into a `ReviewReport` (with computed `summary`). `serializeReport(report)` to pretty JSON. `summarizeReport(report)` to a single paragraph.
17
- - Decision synthesis: `synthesize(problemId, consensus, analyses, conflicts, options)` returns a `Decision` (id, problemId, decision, rationale, confidence, consensusLevel, participants, generatedAt). `consensusLevel` is one of `unanimous` / `strong` / `majority` / `split` / `none`. `classifyConsensus(consensus, threshold)`, `DEFAULT_SYNTHESIS_THRESHOLD = 0.6`, `STRONG_CONSENSUS_RATIO = 0.8`.
18
- - Shared text utilities (`src/util.ts`): `tokenize`, `tokenSet`, `jaccard`, `polarity`, `stem`, with `STOP_WORDS`, `POSITIVE_MARKERS`, `NEGATIVE_MARKERS` exported for tunability.
19
- - Typed error hierarchy: `CouncilError` + 7 subclasses (`RoutingError`, `AnalysisError`, `ScoringError`, `ConflictError`, `DebateError`, `ConsensusError`, `SynthesisError`), each carrying a stable `code` string.
20
- - Structured logging: `Logger`, `LogLevel`, `ConsoleLogger` (with secret scrubbing), `SilentLogger`, `scrubMetadata`, `shouldScrubField`, `SCRUBBED_FIELD_NAMES`.
21
- - Comprehensive unit test suite: 121 tests covering all modules, the error hierarchy, logging, and a full end-to-end pipeline (route → analyse → detect conflicts → debate → record minority opinion → build consensus → synthesize decision → build report).
1
+ # Changelog
2
+
3
+ All notable changes to `@manya-os/council` are documented here.
4
+ Format: [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). Adheres to [SemVer](https://semver.org/).
5
+
6
+ ## [1.0.0] — 2024-01-15
7
+ ### Added
8
+ - Initial release.
9
+ - Specialist routing: `Specialist` (id, name, expertise, weight), `SpecialistRegistry`, free functions `route(problem, specialists)` (ranked, positive-overlap only) and `routeAll(problem, specialists)` (all specialists with scores), `matchScore` (Jaccard token overlap), `validateSpecialist`.
10
+ - Independent analysis collection: `Analysis` (id, specialistId, problemId, content, confidence, reasoning, caveats?), `AnalysisCollector` with `submit`, `getAll(problemId)`, `getBySpecialist(specialistId)`, `get`, `list`, `size`; `validateAnalysis`.
11
+ - Weighted confidence scoring: `scoreAnalysis(analysis, specialistWeight)`, `aggregateScores(analyses, weights)` (combined weighted mean + variance + stddev), `detectOutliers(analyses, threshold)` (deviation from median); `DEFAULT_OUTLIER_THRESHOLD = 0.25`.
12
+ - Conflict detection: `ConflictDetector.detect(analyses)` returns `Conflict[]` of three types — `opposing_conclusion` (both analyses > 0.6 confidence with opposite polarity), `factual_contradiction` (≥ 0.3 content Jaccard overlap with opposite polarity), `divergent_reasoning` (same polarity, < 0.2 reasoning Jaccard overlap, > 0.1 content overlap). Severity (`low`/`medium`/`high`) based on confidence gap and analyst count. `severityFor`, `CONFLICT_TYPES`, `CONFLICT_SEVERITIES`, and all threshold constants exported.
13
+ - Structured debate: `DebateFacilitator` with `open(problemId, conflictIds)`, `submitRound(debateId, round)` (validates rounds, enforces `rebuttalTo` existence, rejects duplicates and concluded debates, enforces max rounds), `conclude(debateId)`. `validateRound`, `DEFAULT_MAX_DEBATE_ROUNDS = 10`.
14
+ - Minority opinion tracking: `MinorityOpinion` (id, problemId, analystId, position, reasoning, dissentReason), `MinorityOpinionTracker` with `record`, `getForProblem`, `getByAnalyst`, `get`, `list`, `size`; `validateMinorityOpinion`.
15
+ - Consensus building: `ConsensusBuilder(threshold)` with `build(problemId, analyses, conflicts, options)` returning `Consensus` (problemId, decision, confidence, supportingAnalystIds, dissentingAnalystIds, conflictsResolved, openIssues) or `null`. Weighted voting with `specialistWeight × confidence` per analysis. Optional `weights` map and `minorityAnalystIds` (added to dissenters). `DEFAULT_CONSENSUS_THRESHOLD = 0.6`.
16
+ - Review reports: `buildReport(input)` aggregates analyses, conflicts, debates, minority opinions, consensus, and recommendations into a `ReviewReport` (with computed `summary`). `serializeReport(report)` to pretty JSON. `summarizeReport(report)` to a single paragraph.
17
+ - Decision synthesis: `synthesize(problemId, consensus, analyses, conflicts, options)` returns a `Decision` (id, problemId, decision, rationale, confidence, consensusLevel, participants, generatedAt). `consensusLevel` is one of `unanimous` / `strong` / `majority` / `split` / `none`. `classifyConsensus(consensus, threshold)`, `DEFAULT_SYNTHESIS_THRESHOLD = 0.6`, `STRONG_CONSENSUS_RATIO = 0.8`.
18
+ - Shared text utilities (`src/util.ts`): `tokenize`, `tokenSet`, `jaccard`, `polarity`, `stem`, with `STOP_WORDS`, `POSITIVE_MARKERS`, `NEGATIVE_MARKERS` exported for tunability.
19
+ - Typed error hierarchy: `CouncilError` + 7 subclasses (`RoutingError`, `AnalysisError`, `ScoringError`, `ConflictError`, `DebateError`, `ConsensusError`, `SynthesisError`), each carrying a stable `code` string.
20
+ - Structured logging: `Logger`, `LogLevel`, `ConsoleLogger` (with secret scrubbing), `SilentLogger`, `scrubMetadata`, `shouldScrubField`, `SCRUBBED_FIELD_NAMES`.
21
+ - Comprehensive unit test suite: 121 tests covering all modules, the error hierarchy, logging, and a full end-to-end pipeline (route → analyse → detect conflicts → debate → record minority opinion → build consensus → synthesize decision → build report).
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
-
2
- Apache License
3
- Version 2.0, January 2004
4
- http://www.apache.org/licenses/
5
-
6
- Copyright 2024 Manya Hael Foundation. All rights reserved.
7
-
8
- Conceived, directed, and owned by Uviwe Menyiwe (Azura Daemon),
9
- founder of the Manya Hael Foundation.
10
-
11
- Licensed under the Apache License, Version 2.0 (the "License");
12
- you may not use this file except in compliance with the License.
13
- You may obtain a copy of the License at
14
-
15
- http://www.apache.org/licenses/LICENSE-2.0
16
-
17
- Unless required by applicable law or agreed to in writing, software
18
- distributed under the License is distributed on an "AS IS" BASIS,
19
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20
- See the License for the specific language governing permissions and
21
- limitations under the License.
1
+
2
+ Apache License
3
+ Version 2.0, January 2004
4
+ http://www.apache.org/licenses/
5
+
6
+ Copyright 2024 Manya Hael Foundation. All rights reserved.
7
+
8
+ Conceived, directed, and owned by Uviwe Menyiwe (Azura Daemon),
9
+ founder of the Manya Hael Foundation.
10
+
11
+ Licensed under the Apache License, Version 2.0 (the "License");
12
+ you may not use this file except in compliance with the License.
13
+ You may obtain a copy of the License at
14
+
15
+ http://www.apache.org/licenses/LICENSE-2.0
16
+
17
+ Unless required by applicable law or agreed to in writing, software
18
+ distributed under the License is distributed on an "AS IS" BASIS,
19
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20
+ See the License for the specific language governing permissions and
21
+ limitations under the License.
package/README.md CHANGED
@@ -1,244 +1,244 @@
1
- # @manya/council
2
-
3
- > Multi-agent consensus engine for the MANYA Intelligence OS — specialist routing, independent analyses, weighted confidence scoring, conflict detection, structured debate, minority opinions, consensus building, review reports, and final decision synthesis.
4
-
5
- `@manya/council` is the deliberation layer of the **MANYA Intelligence OS** — a sovereign, modular, local-first intelligence operating system conceived, directed, and owned by **Uviwe Menyiwe (Azura Daemon)**, founder of the **Manya Hael Foundation**.
6
-
7
- The package provides a small, dependency-free council engine that routes a problem to specialists, collects their independent analyses, scores them with weighted confidence, detects conflicts (opposing conclusions, factual contradictions, divergent reasoning), facilitates structured debate, records minority opinions, builds consensus via weighted voting, produces a review report, and synthesizes a final defensible decision. Every step is deterministic and explainable.
8
-
9
- ---
10
-
11
- ## Vision
12
-
13
- The Manya Hael Foundation stewards the MANYA Intelligence OS as a long-horizon, mission-driven project. `@manya/council` extends that sovereignty into the deliberation domain: **your specialists, your weights, your threshold — your decision, auditable and reproducible.**
14
-
15
- - **Sovereign.** No network calls. Every routing decision, score, and consensus is computed locally.
16
- - **Deterministic.** Identical inputs produce identical outputs. Tokenization, polarity inference, and severity classification are all rule-based.
17
- - **Explainable.** Every conflict carries a description and severity; every decision carries a rationale and a `consensusLevel`.
18
- - **Layered.** Route → analyse → score → detect conflicts → debate → build consensus → report → synthesise. Use any subset or wire them all together.
19
- - **Dissent-aware.** Minority opinions are first-class records, preserved alongside the consensus for future reconsideration.
20
-
21
- ---
22
-
23
- ## Features
24
-
25
- | Area | What you get |
26
- | --- | --- |
27
- | **Specialist routing** | `Specialist` (id, name, expertise[], weight), `SpecialistRegistry`. `route(problem, specialists)` returns ranked specialists by Jaccard token-overlap. `routeAll(problem)` returns all specialists with scores. |
28
- | **Analysis collection** | `Analysis` (id, specialistId, problemId, content, confidence, reasoning, caveats?). `AnalysisCollector` with `submit`, `getAll(problemId)`, `getBySpecialist(specialistId)`. |
29
- | **Weighted scoring** | `scoreAnalysis(analysis, specialistWeight)` → weighted score. `aggregateScores(analyses, weights)` → weighted mean + variance + stddev. `detectOutliers(analyses, threshold)` → analyses whose confidence deviates from the median. |
30
- | **Conflict detection** | `ConflictDetector.detect(analyses)` returns conflicts of 3 types: `opposing_conclusion` (both > 0.6, opposite polarity), `factual_contradiction` (≥ 0.3 content overlap + opposite polarity), `divergent_reasoning` (same polarity, < 0.2 reasoning overlap). Severity based on confidence gap and analyst count. |
31
- | **Structured debate** | `DebateFacilitator.open(problemId, conflictIds)`, `submitRound(debateId, round)` (with optional `rebuttalTo`), `conclude(debateId)`. Enforces max rounds and rebuttal-target existence. |
32
- | **Minority opinions** | `MinorityOpinionTracker` with `record`, `getForProblem`, `getByAnalyst`. Preserves dissent for audit. |
33
- | **Consensus building** | `ConsensusBuilder.build(problemId, analyses, conflicts, options)` returns `Consensus` (decision, confidence, supporting/dissenting analyst ids, conflictsResolved, openIssues) or `null`. Threshold configurable (default 0.6). Weighted voting + confidence weighting. |
34
- | **Review reports** | `buildReport(...)` aggregates analyses, conflicts, debates, minority opinions, consensus, recommendations into a `ReviewReport`. `serializeReport` to JSON, `summarizeReport` to a paragraph. |
35
- | **Decision synthesis** | `synthesize(problemId, consensus, analyses, conflicts, options)` returns a `Decision` with `consensusLevel` (`unanimous` / `strong` / `majority` / `split` / `none`), explicit confidence, and rationale. |
36
- | **Logging** | `Logger` interface, `ConsoleLogger` with secret-scrubbing, `SilentLogger`. |
37
-
38
- ---
39
-
40
- ## Install
41
-
42
- ```bash
43
- npm install @manya/council
44
- ```
45
-
46
- Requires Node.js 18+.
47
-
48
- ---
49
-
50
- ## Quick start
51
-
52
- ### 1. Route a problem to specialists
53
-
54
- ```ts
55
- import { SpecialistRegistry } from '@manya/council';
56
-
57
- const registry = new SpecialistRegistry()
58
- .register({ id: 'sec', name: 'Security', expertise: ['security', 'crypto'], weight: 2 })
59
- .register({ id: 'fin', name: 'Finance', expertise: ['finance', 'budget'], weight: 1 })
60
- .register({ id: 'legal', name: 'Legal', expertise: ['legal', 'compliance'], weight: 1 });
61
-
62
- const problem = {
63
- id: 'p1',
64
- description: 'Should we adopt the new crypto security audit proposal?',
65
- domain: 'security',
66
- createdAt: new Date().toISOString(),
67
- };
68
-
69
- const ranked = registry.route(problem);
70
- console.log(ranked.map((s) => s.id)); // ['sec'] — sec has the strongest overlap
71
- ```
72
-
73
- ### 2. Collect analyses, detect conflicts, build consensus
74
-
75
- ```ts
76
- import { AnalysisCollector, ConflictDetector, ConsensusBuilder } from '@manya/council';
77
-
78
- const collector = new AnalysisCollector();
79
- collector.submit({
80
- id: 'a-sec', specialistId: 'sec', problemId: 'p1',
81
- content: 'I recommend we adopt the proposal; the security is sound.',
82
- confidence: 0.9, reasoning: 'Audit passed; risks are mitigated.',
83
- });
84
- collector.submit({
85
- id: 'a-fin', specialistId: 'fin', problemId: 'p1',
86
- content: 'I support the proposal; the budget is sufficient.',
87
- confidence: 0.8, reasoning: 'Funds are allocated for this quarter.',
88
- });
89
- collector.submit({
90
- id: 'a-legal', specialistId: 'legal', problemId: 'p1',
91
- content: 'I reject the proposal; compliance is incomplete.',
92
- confidence: 0.85, reasoning: 'Regulatory review is pending.',
93
- });
94
-
95
- const analyses = collector.getAll('p1');
96
- const conflicts = new ConflictDetector().detect(analyses);
97
- console.log(conflicts.map((c) => c.type)); // ['opposing_conclusion', ...]
98
-
99
- const consensus = new ConsensusBuilder(0.6).build('p1', analyses, conflicts, {
100
- weights: { sec: 5, fin: 1, legal: 1 },
101
- });
102
- // consensus.decision → 'Adopt the proposed action for problem p1.'
103
- // consensus.confidence → > 0.6
104
- ```
105
-
106
- ### 3. Synthesize a final decision and build a review report
107
-
108
- ```ts
109
- import { synthesize, buildReport, serializeReport } from '@manya/council';
110
-
111
- const decision = synthesize('p1', consensus, analyses, conflicts);
112
- console.log(decision.consensusLevel); // 'strong' | 'majority' | …
113
- console.log(decision.rationale); // human-readable explanation
114
-
115
- const report = buildReport({
116
- problemId: 'p1',
117
- analyses,
118
- conflicts,
119
- consensus,
120
- recommendations: ['Proceed with adoption', 'Complete compliance review post-hoc'],
121
- });
122
- console.log(serializeReport(report)); // pretty JSON
123
- ```
124
-
125
- ### 4. Run a structured debate over a conflict
126
-
127
- ```ts
128
- import { DebateFacilitator } from '@manya/council';
129
-
130
- const facilitator = new DebateFacilitator();
131
- const debate = facilitator.open('p1', conflicts.map((c) => c.id));
132
- facilitator.submitRound(debate.id, {
133
- id: 'r1', analystId: 'legal',
134
- claim: 'Compliance review is incomplete.',
135
- evidence: 'The regulatory checklist has open items.',
136
- });
137
- facilitator.submitRound(debate.id, {
138
- id: 'r2', analystId: 'sec',
139
- claim: 'Open items are advisory, not blocking.',
140
- evidence: 'No mandatory controls are missing.',
141
- rebuttalTo: 'r1',
142
- });
143
- facilitator.conclude(debate.id);
144
- ```
145
-
146
- ---
147
-
148
- ## Configuration
149
-
150
- ### Consensus threshold
151
-
152
- `new ConsensusBuilder(threshold)` accepts a threshold in `[0, 1]`. Default is `0.6`. The weighted support ratio of the winning polarity must be `≥ threshold` for a consensus to be returned; otherwise `build` returns `null`.
153
-
154
- ### Outlier threshold
155
-
156
- `detectOutliers(analyses, threshold)` accepts an absolute deviation from the median. Default is `0.25` (`DEFAULT_OUTLIER_THRESHOLD`).
157
-
158
- ### Max debate rounds
159
-
160
- `new DebateFacilitator(maxRounds)` accepts a positive integer. Default is `10` (`DEFAULT_MAX_DEBATE_ROUNDS`). `submitRound` throws `DebateError` once the limit is reached.
161
-
162
- ### Specialist weights
163
-
164
- Specialist `weight` is a non-negative number. The scoring module uses `weight` as a multiplier on confidence: `weighted = confidence × weight`. The consensus builder uses an optional `weights` map (specialistId → weight) — when omitted, every specialist gets weight `1`.
165
-
166
- ### Polarity inference
167
-
168
- The conflict detector and consensus builder infer each analysis's polarity (`'positive'` / `'negative'` / `'neutral'`) by counting keyword markers in the analysis's `content` after light stemming. See `POSITIVE_MARKERS` and `NEGATIVE_MARKERS` in `src/util.ts`.
169
-
170
- ### Conflict thresholds
171
-
172
- | Constant | Default | Meaning |
173
- | --- | --- | --- |
174
- | `OPPOSING_CONFIDENCE_THRESHOLD` | `0.6` | Both analyses must have confidence > this for an `opposing_conclusion` conflict. |
175
- | `FACTUAL_OVERLAP_THRESHOLD` | `0.3` | Content Jaccard ≥ this for a `factual_contradiction` conflict. |
176
- | `DIVERGENT_REASONING_MAX_OVERLAP` | `0.2` | Reasoning Jaccard < this for a `divergent_reasoning` conflict. |
177
- | `DIVERGENT_CONTENT_MIN_OVERLAP` | `0.1` | Content Jaccard > this for a `divergent_reasoning` conflict. |
178
- | `SEVERITY_HIGH_GAP` | `0.5` | Confidence gap ≥ this (or 3+ analyses) → `'high'` severity. |
179
- | `SEVERITY_MEDIUM_GAP` | `0.2` | Confidence gap ≥ this → `'medium'` severity; else `'low'`. |
180
-
181
- ### Consensus-level classification
182
-
183
- `classifyConsensus(consensus, threshold)` returns:
184
-
185
- | Level | Condition |
186
- | --- | --- |
187
- | `'none'` | consensus is `null`. |
188
- | `'unanimous'` | no dissenting analysts. |
189
- | `'strong'` | `consensus.confidence ≥ 0.8` (`STRONG_CONSENSUS_RATIO`). |
190
- | `'majority'` | `consensus.confidence ≥ threshold` (default `0.6`). |
191
- | `'split'` | consensus exists but confidence is below threshold. |
192
-
193
- ---
194
-
195
- ## Extending
196
-
197
- ### Add a new conflict type
198
-
199
- 1. Add the new value to `ConflictType` in `src/types.ts`.
200
- 2. Add the new value to `CONFLICT_TYPES` in `src/conflict/conflict.ts`.
201
- 3. Add a detection branch in `ConflictDetector.detect`.
202
- 4. Add unit tests in `tests/council.spec.ts` (in the `conflict` describe block).
203
- 5. Update `docs/API.md` and the README conflict-thresholds table.
204
-
205
- ### Add a new consensus level
206
-
207
- 1. Add the new value to `ConsensusLevel` in `src/types.ts`.
208
- 2. Update `classifyConsensus` in `src/synthesizer/synthesizer.ts`.
209
- 3. Add unit tests in `tests/council.spec.ts` (in the `synthesizer` describe block).
210
-
211
- ### Add a polarity marker
212
-
213
- 1. Add the word to `POSITIVE_MARKERS` or `NEGATIVE_MARKERS` in `src/util.ts`.
214
- 2. Add a test in `tests/council.spec.ts` covering an analysis that uses the new marker.
215
-
216
- ---
217
-
218
- ## Security notes
219
-
220
- - **Local-only.** No data leaves the host process. No network calls.
221
- - **No `eval`.** Text analysis is keyword matching and Jaccard similarity; no code execution.
222
- - **No PII in logs.** `taxId`, `secret`, `token`, `apiKey`, `password` are scrubbed by `ConsoleLogger`.
223
- - **Deterministic.** Identical inputs produce identical outputs. Polarity inference, conflict ids, and severity classification are all rule-based.
224
- - **Defense in depth.** Routing, analysis validation, scoring, conflict detection, debate validation, and consensus building each validate their inputs independently.
225
-
226
- For threat models, see [SECURITY.md](./SECURITY.md) and the root [SECURITY.md](../../SECURITY.md).
227
-
228
- ---
229
-
230
- ## Documentation
231
-
232
- - [docs/API.md](./docs/API.md) — full TypeScript API reference.
233
- - [CHANGELOG.md](./CHANGELOG.md) — release history.
234
- - [CONTRIBUTING.md](./CONTRIBUTING.md) — package-specific contributor notes.
235
- - [SECURITY.md](./SECURITY.md) — package-specific security surface.
236
- - [LICENSE](./LICENSE) — Apache-2.0.
237
-
238
- ---
239
-
240
- ## License
241
-
242
- Apache-2.0. Copyright 2024 Manya Hael Foundation. All rights reserved.
243
-
244
- Conceived, directed, and owned by **Uviwe Menyiwe (Azura Daemon)**, founder of the Manya Hael Foundation.
1
+ # @manya-os/council
2
+
3
+ > Multi-agent consensus engine for the MANYA Intelligence OS — specialist routing, independent analyses, weighted confidence scoring, conflict detection, structured debate, minority opinions, consensus building, review reports, and final decision synthesis.
4
+
5
+ `@manya-os/council` is the deliberation layer of the **MANYA Intelligence OS** — a sovereign, modular, local-first intelligence operating system conceived, directed, and owned by **Uviwe Menyiwe (Azura Daemon)**, founder of the **Manya Hael Foundation**.
6
+
7
+ The package provides a small, dependency-free council engine that routes a problem to specialists, collects their independent analyses, scores them with weighted confidence, detects conflicts (opposing conclusions, factual contradictions, divergent reasoning), facilitates structured debate, records minority opinions, builds consensus via weighted voting, produces a review report, and synthesizes a final defensible decision. Every step is deterministic and explainable.
8
+
9
+ ---
10
+
11
+ ## Vision
12
+
13
+ The Manya Hael Foundation stewards the MANYA Intelligence OS as a long-horizon, mission-driven project. `@manya-os/council` extends that sovereignty into the deliberation domain: **your specialists, your weights, your threshold — your decision, auditable and reproducible.**
14
+
15
+ - **Sovereign.** No network calls. Every routing decision, score, and consensus is computed locally.
16
+ - **Deterministic.** Identical inputs produce identical outputs. Tokenization, polarity inference, and severity classification are all rule-based.
17
+ - **Explainable.** Every conflict carries a description and severity; every decision carries a rationale and a `consensusLevel`.
18
+ - **Layered.** Route → analyse → score → detect conflicts → debate → build consensus → report → synthesise. Use any subset or wire them all together.
19
+ - **Dissent-aware.** Minority opinions are first-class records, preserved alongside the consensus for future reconsideration.
20
+
21
+ ---
22
+
23
+ ## Features
24
+
25
+ | Area | What you get |
26
+ | --- | --- |
27
+ | **Specialist routing** | `Specialist` (id, name, expertise[], weight), `SpecialistRegistry`. `route(problem, specialists)` returns ranked specialists by Jaccard token-overlap. `routeAll(problem)` returns all specialists with scores. |
28
+ | **Analysis collection** | `Analysis` (id, specialistId, problemId, content, confidence, reasoning, caveats?). `AnalysisCollector` with `submit`, `getAll(problemId)`, `getBySpecialist(specialistId)`. |
29
+ | **Weighted scoring** | `scoreAnalysis(analysis, specialistWeight)` → weighted score. `aggregateScores(analyses, weights)` → weighted mean + variance + stddev. `detectOutliers(analyses, threshold)` → analyses whose confidence deviates from the median. |
30
+ | **Conflict detection** | `ConflictDetector.detect(analyses)` returns conflicts of 3 types: `opposing_conclusion` (both > 0.6, opposite polarity), `factual_contradiction` (≥ 0.3 content overlap + opposite polarity), `divergent_reasoning` (same polarity, < 0.2 reasoning overlap). Severity based on confidence gap and analyst count. |
31
+ | **Structured debate** | `DebateFacilitator.open(problemId, conflictIds)`, `submitRound(debateId, round)` (with optional `rebuttalTo`), `conclude(debateId)`. Enforces max rounds and rebuttal-target existence. |
32
+ | **Minority opinions** | `MinorityOpinionTracker` with `record`, `getForProblem`, `getByAnalyst`. Preserves dissent for audit. |
33
+ | **Consensus building** | `ConsensusBuilder.build(problemId, analyses, conflicts, options)` returns `Consensus` (decision, confidence, supporting/dissenting analyst ids, conflictsResolved, openIssues) or `null`. Threshold configurable (default 0.6). Weighted voting + confidence weighting. |
34
+ | **Review reports** | `buildReport(...)` aggregates analyses, conflicts, debates, minority opinions, consensus, recommendations into a `ReviewReport`. `serializeReport` to JSON, `summarizeReport` to a paragraph. |
35
+ | **Decision synthesis** | `synthesize(problemId, consensus, analyses, conflicts, options)` returns a `Decision` with `consensusLevel` (`unanimous` / `strong` / `majority` / `split` / `none`), explicit confidence, and rationale. |
36
+ | **Logging** | `Logger` interface, `ConsoleLogger` with secret-scrubbing, `SilentLogger`. |
37
+
38
+ ---
39
+
40
+ ## Install
41
+
42
+ ```bash
43
+ npm install @manya-os/council
44
+ ```
45
+
46
+ Requires Node.js 18+.
47
+
48
+ ---
49
+
50
+ ## Quick start
51
+
52
+ ### 1. Route a problem to specialists
53
+
54
+ ```ts
55
+ import { SpecialistRegistry } from '@manya-os/council';
56
+
57
+ const registry = new SpecialistRegistry()
58
+ .register({ id: 'sec', name: 'Security', expertise: ['security', 'crypto'], weight: 2 })
59
+ .register({ id: 'fin', name: 'Finance', expertise: ['finance', 'budget'], weight: 1 })
60
+ .register({ id: 'legal', name: 'Legal', expertise: ['legal', 'compliance'], weight: 1 });
61
+
62
+ const problem = {
63
+ id: 'p1',
64
+ description: 'Should we adopt the new crypto security audit proposal?',
65
+ domain: 'security',
66
+ createdAt: new Date().toISOString(),
67
+ };
68
+
69
+ const ranked = registry.route(problem);
70
+ console.log(ranked.map((s) => s.id)); // ['sec'] — sec has the strongest overlap
71
+ ```
72
+
73
+ ### 2. Collect analyses, detect conflicts, build consensus
74
+
75
+ ```ts
76
+ import { AnalysisCollector, ConflictDetector, ConsensusBuilder } from '@manya-os/council';
77
+
78
+ const collector = new AnalysisCollector();
79
+ collector.submit({
80
+ id: 'a-sec', specialistId: 'sec', problemId: 'p1',
81
+ content: 'I recommend we adopt the proposal; the security is sound.',
82
+ confidence: 0.9, reasoning: 'Audit passed; risks are mitigated.',
83
+ });
84
+ collector.submit({
85
+ id: 'a-fin', specialistId: 'fin', problemId: 'p1',
86
+ content: 'I support the proposal; the budget is sufficient.',
87
+ confidence: 0.8, reasoning: 'Funds are allocated for this quarter.',
88
+ });
89
+ collector.submit({
90
+ id: 'a-legal', specialistId: 'legal', problemId: 'p1',
91
+ content: 'I reject the proposal; compliance is incomplete.',
92
+ confidence: 0.85, reasoning: 'Regulatory review is pending.',
93
+ });
94
+
95
+ const analyses = collector.getAll('p1');
96
+ const conflicts = new ConflictDetector().detect(analyses);
97
+ console.log(conflicts.map((c) => c.type)); // ['opposing_conclusion', ...]
98
+
99
+ const consensus = new ConsensusBuilder(0.6).build('p1', analyses, conflicts, {
100
+ weights: { sec: 5, fin: 1, legal: 1 },
101
+ });
102
+ // consensus.decision → 'Adopt the proposed action for problem p1.'
103
+ // consensus.confidence → > 0.6
104
+ ```
105
+
106
+ ### 3. Synthesize a final decision and build a review report
107
+
108
+ ```ts
109
+ import { synthesize, buildReport, serializeReport } from '@manya-os/council';
110
+
111
+ const decision = synthesize('p1', consensus, analyses, conflicts);
112
+ console.log(decision.consensusLevel); // 'strong' | 'majority' | …
113
+ console.log(decision.rationale); // human-readable explanation
114
+
115
+ const report = buildReport({
116
+ problemId: 'p1',
117
+ analyses,
118
+ conflicts,
119
+ consensus,
120
+ recommendations: ['Proceed with adoption', 'Complete compliance review post-hoc'],
121
+ });
122
+ console.log(serializeReport(report)); // pretty JSON
123
+ ```
124
+
125
+ ### 4. Run a structured debate over a conflict
126
+
127
+ ```ts
128
+ import { DebateFacilitator } from '@manya-os/council';
129
+
130
+ const facilitator = new DebateFacilitator();
131
+ const debate = facilitator.open('p1', conflicts.map((c) => c.id));
132
+ facilitator.submitRound(debate.id, {
133
+ id: 'r1', analystId: 'legal',
134
+ claim: 'Compliance review is incomplete.',
135
+ evidence: 'The regulatory checklist has open items.',
136
+ });
137
+ facilitator.submitRound(debate.id, {
138
+ id: 'r2', analystId: 'sec',
139
+ claim: 'Open items are advisory, not blocking.',
140
+ evidence: 'No mandatory controls are missing.',
141
+ rebuttalTo: 'r1',
142
+ });
143
+ facilitator.conclude(debate.id);
144
+ ```
145
+
146
+ ---
147
+
148
+ ## Configuration
149
+
150
+ ### Consensus threshold
151
+
152
+ `new ConsensusBuilder(threshold)` accepts a threshold in `[0, 1]`. Default is `0.6`. The weighted support ratio of the winning polarity must be `≥ threshold` for a consensus to be returned; otherwise `build` returns `null`.
153
+
154
+ ### Outlier threshold
155
+
156
+ `detectOutliers(analyses, threshold)` accepts an absolute deviation from the median. Default is `0.25` (`DEFAULT_OUTLIER_THRESHOLD`).
157
+
158
+ ### Max debate rounds
159
+
160
+ `new DebateFacilitator(maxRounds)` accepts a positive integer. Default is `10` (`DEFAULT_MAX_DEBATE_ROUNDS`). `submitRound` throws `DebateError` once the limit is reached.
161
+
162
+ ### Specialist weights
163
+
164
+ Specialist `weight` is a non-negative number. The scoring module uses `weight` as a multiplier on confidence: `weighted = confidence × weight`. The consensus builder uses an optional `weights` map (specialistId → weight) — when omitted, every specialist gets weight `1`.
165
+
166
+ ### Polarity inference
167
+
168
+ The conflict detector and consensus builder infer each analysis's polarity (`'positive'` / `'negative'` / `'neutral'`) by counting keyword markers in the analysis's `content` after light stemming. See `POSITIVE_MARKERS` and `NEGATIVE_MARKERS` in `src/util.ts`.
169
+
170
+ ### Conflict thresholds
171
+
172
+ | Constant | Default | Meaning |
173
+ | --- | --- | --- |
174
+ | `OPPOSING_CONFIDENCE_THRESHOLD` | `0.6` | Both analyses must have confidence > this for an `opposing_conclusion` conflict. |
175
+ | `FACTUAL_OVERLAP_THRESHOLD` | `0.3` | Content Jaccard ≥ this for a `factual_contradiction` conflict. |
176
+ | `DIVERGENT_REASONING_MAX_OVERLAP` | `0.2` | Reasoning Jaccard < this for a `divergent_reasoning` conflict. |
177
+ | `DIVERGENT_CONTENT_MIN_OVERLAP` | `0.1` | Content Jaccard > this for a `divergent_reasoning` conflict. |
178
+ | `SEVERITY_HIGH_GAP` | `0.5` | Confidence gap ≥ this (or 3+ analyses) → `'high'` severity. |
179
+ | `SEVERITY_MEDIUM_GAP` | `0.2` | Confidence gap ≥ this → `'medium'` severity; else `'low'`. |
180
+
181
+ ### Consensus-level classification
182
+
183
+ `classifyConsensus(consensus, threshold)` returns:
184
+
185
+ | Level | Condition |
186
+ | --- | --- |
187
+ | `'none'` | consensus is `null`. |
188
+ | `'unanimous'` | no dissenting analysts. |
189
+ | `'strong'` | `consensus.confidence ≥ 0.8` (`STRONG_CONSENSUS_RATIO`). |
190
+ | `'majority'` | `consensus.confidence ≥ threshold` (default `0.6`). |
191
+ | `'split'` | consensus exists but confidence is below threshold. |
192
+
193
+ ---
194
+
195
+ ## Extending
196
+
197
+ ### Add a new conflict type
198
+
199
+ 1. Add the new value to `ConflictType` in `src/types.ts`.
200
+ 2. Add the new value to `CONFLICT_TYPES` in `src/conflict/conflict.ts`.
201
+ 3. Add a detection branch in `ConflictDetector.detect`.
202
+ 4. Add unit tests in `tests/council.spec.ts` (in the `conflict` describe block).
203
+ 5. Update `docs/API.md` and the README conflict-thresholds table.
204
+
205
+ ### Add a new consensus level
206
+
207
+ 1. Add the new value to `ConsensusLevel` in `src/types.ts`.
208
+ 2. Update `classifyConsensus` in `src/synthesizer/synthesizer.ts`.
209
+ 3. Add unit tests in `tests/council.spec.ts` (in the `synthesizer` describe block).
210
+
211
+ ### Add a polarity marker
212
+
213
+ 1. Add the word to `POSITIVE_MARKERS` or `NEGATIVE_MARKERS` in `src/util.ts`.
214
+ 2. Add a test in `tests/council.spec.ts` covering an analysis that uses the new marker.
215
+
216
+ ---
217
+
218
+ ## Security notes
219
+
220
+ - **Local-only.** No data leaves the host process. No network calls.
221
+ - **No `eval`.** Text analysis is keyword matching and Jaccard similarity; no code execution.
222
+ - **No PII in logs.** `taxId`, `secret`, `token`, `apiKey`, `password` are scrubbed by `ConsoleLogger`.
223
+ - **Deterministic.** Identical inputs produce identical outputs. Polarity inference, conflict ids, and severity classification are all rule-based.
224
+ - **Defense in depth.** Routing, analysis validation, scoring, conflict detection, debate validation, and consensus building each validate their inputs independently.
225
+
226
+ For threat models, see [SECURITY.md](./SECURITY.md) and the root [SECURITY.md](../../SECURITY.md).
227
+
228
+ ---
229
+
230
+ ## Documentation
231
+
232
+ - [docs/API.md](./docs/API.md) — full TypeScript API reference.
233
+ - [CHANGELOG.md](./CHANGELOG.md) — release history.
234
+ - [CONTRIBUTING.md](./CONTRIBUTING.md) — package-specific contributor notes.
235
+ - [SECURITY.md](./SECURITY.md) — package-specific security surface.
236
+ - [LICENSE](./LICENSE) — Apache-2.0.
237
+
238
+ ---
239
+
240
+ ## License
241
+
242
+ Apache-2.0. Copyright 2024 Manya Hael Foundation. All rights reserved.
243
+
244
+ Conceived, directed, and owned by **Uviwe Menyiwe (Azura Daemon)**, founder of the Manya Hael Foundation.
@@ -0,0 +1 @@
1
+ {"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/typescript/lib/lib.dom.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../../node_modules/typescript/lib/lib.scripthost.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/typescript/lib/lib.es2022.full.d.ts","../src/errors.ts","../src/logging.ts","../src/types.ts","../src/util.ts","../src/router/router.ts","../src/analysis/analysis.ts","../src/scoring/scoring.ts","../src/conflict/conflict.ts","../src/debate/debate.ts","../src/minority/minority.ts","../src/consensus/consensus.ts","../src/reports/reports.ts","../src/synthesizer/synthesizer.ts","../src/index.ts","../src/analysis/index.ts","../src/conflict/index.ts","../src/consensus/index.ts","../src/debate/index.ts","../src/minority/index.ts","../src/reports/index.ts","../src/router/index.ts","../src/scoring/index.ts","../src/synthesizer/index.ts","../../../node_modules/@babel/types/lib/index.d.ts","../../../node_modules/@types/babel__generator/index.d.ts","../../../node_modules/@babel/parser/typings/babel-parser.d.ts","../../../node_modules/@types/babel__template/index.d.ts","../../../node_modules/@types/babel__traverse/index.d.ts","../../../node_modules/@types/babel__core/index.d.ts","../../../node_modules/@types/estree/index.d.ts","../../../node_modules/@types/node/compatibility/disposable.d.ts","../../../node_modules/@types/node/compatibility/indexable.d.ts","../../../node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/@types/node/compatibility/index.d.ts","../../../node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/undici-types/header.d.ts","../../../node_modules/undici-types/readable.d.ts","../../../node_modules/undici-types/file.d.ts","../../../node_modules/undici-types/fetch.d.ts","../../../node_modules/undici-types/formdata.d.ts","../../../node_modules/undici-types/connector.d.ts","../../../node_modules/undici-types/client.d.ts","../../../node_modules/undici-types/errors.d.ts","../../../node_modules/undici-types/dispatcher.d.ts","../../../node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/undici-types/global-origin.d.ts","../../../node_modules/undici-types/pool-stats.d.ts","../../../node_modules/undici-types/pool.d.ts","../../../node_modules/undici-types/handlers.d.ts","../../../node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/undici-types/agent.d.ts","../../../node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/undici-types/mock-agent.d.ts","../../../node_modules/undici-types/mock-client.d.ts","../../../node_modules/undici-types/mock-pool.d.ts","../../../node_modules/undici-types/mock-errors.d.ts","../../../node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/undici-types/retry-handler.d.ts","../../../node_modules/undici-types/retry-agent.d.ts","../../../node_modules/undici-types/api.d.ts","../../../node_modules/undici-types/interceptors.d.ts","../../../node_modules/undici-types/util.d.ts","../../../node_modules/undici-types/cookies.d.ts","../../../node_modules/undici-types/patch.d.ts","../../../node_modules/undici-types/websocket.d.ts","../../../node_modules/undici-types/eventsource.d.ts","../../../node_modules/undici-types/filereader.d.ts","../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/undici-types/content-type.d.ts","../../../node_modules/undici-types/cache.d.ts","../../../node_modules/undici-types/index.d.ts","../../../node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.generated.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/readline/promises.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/sea.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/test.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/@types/graceful-fs/index.d.ts","../../../node_modules/@types/istanbul-lib-coverage/index.d.ts","../../../node_modules/@types/istanbul-lib-report/index.d.ts","../../../node_modules/@types/istanbul-reports/index.d.ts","../../../node_modules/@jest/expect-utils/build/index.d.ts","../../../node_modules/chalk/index.d.ts","../../../node_modules/@sinclair/typebox/typebox.d.ts","../../../node_modules/@jest/schemas/build/index.d.ts","../../../node_modules/pretty-format/build/index.d.ts","../../../node_modules/jest-diff/build/index.d.ts","../../../node_modules/jest-matcher-utils/build/index.d.ts","../../../node_modules/expect/build/index.d.ts","../../../node_modules/@types/jest/index.d.ts","../../../node_modules/@types/json-schema/index.d.ts","../../../node_modules/pg-types/index.d.ts","../../../node_modules/pg-protocol/dist/messages.d.ts","../../../node_modules/pg-protocol/dist/serializer.d.ts","../../../node_modules/pg-protocol/dist/parser.d.ts","../../../node_modules/pg-protocol/dist/index.d.ts","../../../node_modules/@types/pg/lib/type-overrides.d.ts","../../../node_modules/@types/pg/index.d.ts","../../../node_modules/@types/resolve/index.d.ts","../../../node_modules/@types/stack-utils/index.d.ts","../../../node_modules/@types/yargs-parser/index.d.ts","../../../node_modules/@types/yargs/index.d.ts"],"fileIdsList":[[87,99,145],[99,145],[99,145,200],[87,88,89,90,91,99,145],[87,89,99,145],[99,145,157,193],[99,145,195],[99,145,196],[99,145,202,205],[99,142,145],[99,144,145],[145],[99,145,150,178],[99,145,146,151,156,164,175,186],[99,145,146,147,156,164],[94,95,96,99,145],[99,145,148,187],[99,145,149,150,157,165],[99,145,150,175,183],[99,145,151,153,156,164],[99,144,145,152],[99,145,153,154],[99,145,155,156],[99,144,145,156],[99,145,156,157,158,175,186],[99,145,156,157,158,171,175,178],[99,145,153,156,159,164,175,186],[99,145,156,157,159,160,164,175,183,186],[99,145,159,161,175,183,186],[97,98,99,100,101,102,103,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192],[99,145,156,162],[99,145,163,186,191],[99,145,153,156,164,175],[99,145,165],[99,145,166],[99,144,145,167],[99,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192],[99,145,169],[99,145,170],[99,145,156,171,172],[99,145,171,173,187,189],[99,145,156,175,176,178],[99,145,177,178],[99,145,175,176],[99,145,178],[99,145,179],[99,142,145,175,180],[99,145,156,181,182],[99,145,181,182],[99,145,150,164,175,183],[99,145,184],[99,145,164,185],[99,145,159,170,186],[99,145,150,187],[99,145,175,188],[99,145,163,189],[99,145,190],[99,140,145],[99,140,145,156,158,167,175,178,186,189,191],[99,145,175,192],[99,145,156,175,183,193,208,209,212,213,214],[99,145,214],[99,145,217],[99,145,198,204],[99,145,202],[99,145,199,203],[99,145,209,210,211],[99,145,175,209],[99,145,201],[99,112,116,145,186],[99,112,145,175,186],[99,107,145],[99,109,112,145,183,186],[99,145,164,183],[99,145,193],[99,107,145,193],[99,109,112,145,164,186],[99,104,105,108,111,145,156,175,186],[99,112,119,145],[99,104,110,145],[99,112,133,134,145],[99,108,112,145,178,186,193],[99,133,145,193],[99,106,107,145,193],[99,112,145],[99,106,107,108,109,110,111,112,113,114,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,134,135,136,137,138,139,145],[99,112,127,145],[99,112,119,120,145],[99,110,112,120,121,145],[99,111,145],[99,104,107,112,145],[99,112,116,120,121,145],[99,116,145],[99,110,112,115,145,186],[99,104,109,112,119,145],[99,145,175],[99,107,112,133,145,191,193],[64,66,99,145],[69,99,145],[64,66,67,99,145],[71,99,145],[74,99,145],[72,99,145],[64,65,66,68,69,70,71,72,73,74,75,76,99,145],[73,99,145],[75,99,145],[68,99,145],[70,99,145],[76,99,145],[65,99,145]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7a3c8b952931daebdfc7a2897c53c0a1c73624593fa070e46bd537e64dcd20a","affectsGlobalScope":true,"impliedFormat":1},{"version":"80e18897e5884b6723488d4f5652167e7bb5024f946743134ecc4aa4ee731f89","affectsGlobalScope":true,"impliedFormat":1},{"version":"cd034f499c6cdca722b60c04b5b1b78e058487a7085a8e0d6fb50809947ee573","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"3cbad9a1ba4453443026ed38e4b8be018abb26565fa7c944376463ad9df07c41","impliedFormat":1},{"version":"681db68490ad7c3f29888b8f21e858ad8afcc19f25829f97f83de7f8cebd1a77","signature":"d04f062e1ffbfd9050d8e40f7aa6fb0f80934df9588aed07422e48c9733ca132"},{"version":"69809f9a6d02699b329fa159258780a03bff5dc31d71b9c8d8323e5f18a8a489","signature":"5bd14e0a89ca457eeb6bf06364745af8b8886d0237790cc75978373f4a960d37"},{"version":"9a04e39b92b448482bb143ca36a7b0197b08062f168cec06174d5f2da7db86a1","signature":"9afe5a5ab5152bce7f2f270233fa7c67862b0ca52e84ea558714da83509be919"},{"version":"14015c6e87751e795ba3630f19a0f7002c3fb28b5fd535cd18339e540679a1bf","signature":"75d392827db342b4271a7e57da2463307a002fb30f1ec6f744c5abf6a8ee93a9"},{"version":"00c075a13a0f7f3303b6a9178489f01d70ab5f5079f59bbce5ea57d5d00b9bc3","signature":"c77a5fdf1a7c688bbdc4e90f94e60daf58aa12d5f9483a2c837a3f34fcc99fec"},{"version":"f4d95a3cebd653ca509ab35d1e554edc393a2b8176b7c48e519c582fcbdaec7a","signature":"e3ac2af001d00adb834013ca309df86ef4325d862439e4c2b9a739dad5cb4fbe"},{"version":"2c6fc435d7b5d34a852723e0e2a5b1cd855ff9bfbb726cbe46d18967e3d4bd31","signature":"65fdc10953784604e9b2f64a9d0d9ba72438f08021e817dcf0f6ee0d7ebe1028"},{"version":"b23b7711d713b5e3c992ddc02a6c84ad093324efab976fd22daa0c3ed40c3fd4","signature":"a431931066a5a37aab45ebdde30037251b9187f0253963cefc0704e655ce1ab9"},{"version":"e373173f8558b78d59f3fd0f53ffbed9940e85726b36e10f7983517f82135a34","signature":"a5e31a5b93fd546216cb76d04469895670db244eabcbe0c8f1d41b15c8a2bccd"},{"version":"3b429a3cd5cf54b2a56dd82bf4f0ae48e3d793b48a7fdb931de5e3df74154389","signature":"4577482d8b5e6555d8ea369f1ae33f61c17906993697c78b078de8dc8a21bdfe"},{"version":"fc29642b736199e7eab377ea1b2e632ee462486233164b2355c6179a08f1bfc1","signature":"80cdb26c4c32b994ba75b0826860b55d867a16b51e7e4803aa263bddf3cc8386"},{"version":"abf0b3a41aea45166723104c1255a4925af01d412856dee82f4177f7e0692f61","signature":"5aa8738bdca8b0876706a491e7d973b264288cf221bf31bce3b5da034ad05ef6"},{"version":"59e9854491a95a9ab077d83462180a7deeeb28bdbf41a58431e5d6be5c104d55","signature":"256ab6b39c7c7765b4c97c648b3f893827da3e2ea73e5f3986f046bde5868789"},{"version":"0186e27c8433ab46a6026aa5556ce5ea5ca04e384b0db9fd1236002000b29545","signature":"3f71d0e3cbfd8d0c34b98cb2bfeec5466a7071bcf7ec44260cd0673ed0136376"},{"version":"4f6ad584449c437440c64dcdcb2eafc846f4107820ead7ba79b09706a91bc0a7","signature":"63cefb9645948d3748067a01d0c15c5e7a8422e52649ad0c685340e6f8377d17"},{"version":"353cd43fc8e03ffc3d3395148b3815443386b74941c05dd8dbefc3c6cd1218b9","signature":"263e736dac79cc70219f7716dfe919b79f11168b94be7d04e526b1b885df412c"},{"version":"39eb89370a2d4924b80dc2ce9ce3907d36538e8abff1ab3e10c5f9d6b16f4710","signature":"1b85e04057b4c429e88609d28965fea87c24dfffeec9fc705f0052f374b75786"},{"version":"4dce41a4187c360289d372f186957a338da6f9c4952f3bf24d1f77415aa90ac5","signature":"026e76b483febc8a51695a34c5b554e3ab5d73fa21024890b1037a464f04a154"},{"version":"2aea67ce5876a320957686aa7e9229b22ed2cf826d0fd5f0bfa87697a06b9f12","signature":"efedd8fa0b8a7534b725f45cfd0515c67e456e97a24a2c543bba139f2778ef13"},{"version":"8f5e0841043c0cd7d02bf84b77ae5b0dec2e10342dfb1efe05ca3616811f40be","signature":"dad7305a09adb5acdd5d645bac4e95bb157e34da7f878114800ae74c2cce2782"},{"version":"845d90e9c1927c9adaa88e130d03bd8a85c07154be7eed2093f26d72093fbae3","signature":"175fae1defcbc26b74e9befcdfc698e43979f4d19bcb5ac474af3b67c5486a69"},{"version":"35a2dde23c259a25c17ff98e9d1bfcf03993c54ac9ce2a2043c3e6ba3dda766a","signature":"e32824d54e9b6a0942fc216c4c88cdb5606e963c9ffc3a638929f7f0f6fa3466"},{"version":"aa8bbec54eaebe230b2f85e0eb322a3101bd4b97bdb4dc2a6e1e1f0b27154fdb","signature":"0ab296d3f158dfe1a524bb7a9ba3f67a7b8cd9c04fbb8ea1257233b9b21831e6"},{"version":"556ccd493ec36c7d7cb130d51be66e147b91cc1415be383d71da0f1e49f742a9","impliedFormat":1},{"version":"b6d03c9cfe2cf0ba4c673c209fcd7c46c815b2619fd2aad59fc4229aaef2ed43","impliedFormat":1},{"version":"95aba78013d782537cc5e23868e736bec5d377b918990e28ed56110e3ae8b958","impliedFormat":1},{"version":"670a76db379b27c8ff42f1ba927828a22862e2ab0b0908e38b671f0e912cc5ed","impliedFormat":1},{"version":"13b77ab19ef7aadd86a1e54f2f08ea23a6d74e102909e3c00d31f231ed040f62","impliedFormat":1},{"version":"069bebfee29864e3955378107e243508b163e77ab10de6a5ee03ae06939f0bb9","impliedFormat":1},{"version":"751764bb94219b4ce8f5475dc35d3de2e432fea01a0c9610cd7f69ad05e398c6","impliedFormat":1},{"version":"70521b6ab0dcba37539e5303104f29b721bfb2940b2776da4cc818c07e1fefc1","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"98cffbf06d6bab333473c70a893770dbe990783904002c4f1a960447b4b53dca","affectsGlobalScope":true,"impliedFormat":1},{"version":"ba481bca06f37d3f2c137ce343c7d5937029b2468f8e26111f3c9d9963d6568d","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d9ef24f9a22a88e3e9b3b3d8c40ab1ddb0853f1bfbd5c843c37800138437b61","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"b52476feb4a0cbcb25e5931b930fc73cb6643fb1a5060bf8a3dda0eeae5b4b68","affectsGlobalScope":true,"impliedFormat":1},{"version":"e2677634fe27e87348825bb041651e22d50a613e2fdf6a4a3ade971d71bac37e","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"8c0bcd6c6b67b4b503c11e91a1fb91522ed585900eab2ab1f61bba7d7caa9d6f","impliedFormat":1},{"version":"8cd19276b6590b3ebbeeb030ac271871b9ed0afc3074ac88a94ed2449174b776","affectsGlobalScope":true,"impliedFormat":1},{"version":"696eb8d28f5949b87d894b26dc97318ef944c794a9a4e4f62360cd1d1958014b","impliedFormat":1},{"version":"3f8fa3061bd7402970b399300880d55257953ee6d3cd408722cb9ac20126460c","impliedFormat":1},{"version":"35ec8b6760fd7138bbf5809b84551e31028fb2ba7b6dc91d95d098bf212ca8b4","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"68bd56c92c2bd7d2339457eb84d63e7de3bd56a69b25f3576e1568d21a162398","affectsGlobalScope":true,"impliedFormat":1},{"version":"3e93b123f7c2944969d291b35fed2af79a6e9e27fdd5faa99748a51c07c02d28","impliedFormat":1},{"version":"9d19808c8c291a9010a6c788e8532a2da70f811adb431c97520803e0ec649991","impliedFormat":1},{"version":"87aad3dd9752067dc875cfaa466fc44246451c0c560b820796bdd528e29bef40","impliedFormat":1},{"version":"4aacb0dd020eeaef65426153686cc639a78ec2885dc72ad220be1d25f1a439df","impliedFormat":1},{"version":"f0bd7e6d931657b59605c44112eaf8b980ba7f957a5051ed21cb93d978cf2f45","impliedFormat":1},{"version":"8db0ae9cb14d9955b14c214f34dae1b9ef2baee2fe4ce794a4cd3ac2531e3255","affectsGlobalScope":true,"impliedFormat":1},{"version":"15fc6f7512c86810273af28f224251a5a879e4261b4d4c7e532abfbfc3983134","impliedFormat":1},{"version":"58adba1a8ab2d10b54dc1dced4e41f4e7c9772cbbac40939c0dc8ce2cdb1d442","impliedFormat":1},{"version":"641942a78f9063caa5d6b777c99304b7d1dc7328076038c6d94d8a0b81fc95c1","impliedFormat":1},{"version":"1123a83f35cf56c97de746f0a7250012153c61a167e4a61668bf50e558162d14","impliedFormat":1},{"version":"855cd5f7eb396f5f1ab1bc0f8580339bff77b68a770f84c6b254e319bbfd1ac7","impliedFormat":1},{"version":"5650cf3dace09e7c25d384e3e6b818b938f68f4e8de96f52d9c5a1b3db068e86","impliedFormat":1},{"version":"1354ca5c38bd3fd3836a68e0f7c9f91f172582ba30ab15bb8c075891b91502b7","affectsGlobalScope":true,"impliedFormat":1},{"version":"7e20d899c28ca26a2a7afc98beaa69e63ff7fba0a8bc47b4e3bf3ede5e09e424","impliedFormat":1},{"version":"2d2fcaab481b31a5882065c7951255703ddbe1c0e507af56ea42d79ac3911201","impliedFormat":1},{"version":"a192fe8ec33f75edbc8d8f3ed79f768dfae11ff5735e7fe52bfa69956e46d78d","impliedFormat":1},{"version":"ca867399f7db82df981d6915bcbb2d81131d7d1ef683bc782b59f71dda59bc85","affectsGlobalScope":true,"impliedFormat":1},{"version":"372413016d17d804e1d139418aca0c68e47a83fb6669490857f4b318de8cccb3","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e043a1bc8fbf2a255bccf9bf27e0f1caf916c3b0518ea34aa72357c0afd42ec","impliedFormat":1},{"version":"b4f70ec656a11d570e1a9edce07d118cd58d9760239e2ece99306ee9dfe61d02","impliedFormat":1},{"version":"3bc2f1e2c95c04048212c569ed38e338873f6a8593930cf5a7ef24ffb38fc3b6","impliedFormat":1},{"version":"6e70e9570e98aae2b825b533aa6292b6abd542e8d9f6e9475e88e1d7ba17c866","impliedFormat":1},{"version":"f9d9d753d430ed050dc1bf2667a1bab711ccbb1c1507183d794cc195a5b085cc","impliedFormat":1},{"version":"9eece5e586312581ccd106d4853e861aaaa1a39f8e3ea672b8c3847eedd12f6e","impliedFormat":1},{"version":"085f552d005479e2e6a7311cdbbe5d8c55c497b4d19274285df161ee9684cd9c","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"007faacc9268357caa21d24169f3f3f2497af3e9241308df2d89f6e6d9bb3f2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"74cf591a0f63db318651e0e04cb55f8791385f86e987a67fd4d2eaab8191f730","impliedFormat":1},{"version":"5eab9b3dc9b34f185417342436ec3f106898da5f4801992d8ff38ab3aff346b5","impliedFormat":1},{"version":"12ed4559eba17cd977aa0db658d25c4047067444b51acfdcbf38470630642b23","affectsGlobalScope":true,"impliedFormat":1},{"version":"f3ffabc95802521e1e4bcba4c88d8615176dc6e09111d920c7a213bdda6e1d65","impliedFormat":1},{"version":"809821b8a065e3234a55b3a9d7846231ed18d66dd749f2494c66288d890daf7f","impliedFormat":1},{"version":"ae56f65caf3be91108707bd8dfbccc2a57a91feb5daabf7165a06a945545ed26","impliedFormat":1},{"version":"a136d5de521da20f31631a0a96bf712370779d1c05b7015d7019a9b2a0446ca9","impliedFormat":1},{"version":"c3b41e74b9a84b88b1dca61ec39eee25c0dbc8e7d519ba11bb070918cfacf656","affectsGlobalScope":true,"impliedFormat":1},{"version":"4737a9dc24d0e68b734e6cfbcea0c15a2cfafeb493485e27905f7856988c6b29","affectsGlobalScope":true,"impliedFormat":1},{"version":"36d8d3e7506b631c9582c251a2c0b8a28855af3f76719b12b534c6edf952748d","impliedFormat":1},{"version":"1ca69210cc42729e7ca97d3a9ad48f2e9cb0042bada4075b588ae5387debd318","impliedFormat":1},{"version":"f5ebe66baaf7c552cfa59d75f2bfba679f329204847db3cec385acda245e574e","impliedFormat":1},{"version":"ed59add13139f84da271cafd32e2171876b0a0af2f798d0c663e8eeb867732cf","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7c5e2ea4a9749097c347454805e933844ed207b6eefec6b7cfd418b5f5f7b28","impliedFormat":1},{"version":"b1810689b76fd473bd12cc9ee219f8e62f54a7d08019a235d07424afbf074d25","impliedFormat":1},{"version":"afe73051ff6a03a9565cbd8ebb0e956ee3df5e913ad5c1ded64218aabfa3dcb5","impliedFormat":1},{"version":"035a5df183489c2e22f3cf59fc1ed2b043d27f357eecc0eb8d8e840059d44245","impliedFormat":1},{"version":"a4809f4d92317535e6b22b01019437030077a76fec1d93b9881c9ed4738fcc54","impliedFormat":1},{"version":"5f53fa0bd22096d2a78533f94e02c899143b8f0f9891a46965294ee8b91a9434","impliedFormat":1},{"version":"cdcc132f207d097d7d3aa75615ab9a2e71d6a478162dde8b67f88ea19f3e54de","impliedFormat":1},{"version":"0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","impliedFormat":1},{"version":"e1028394c1cf96d5d057ecc647e31e457b919092f882ed0c7092152b077fed9d","impliedFormat":1},{"version":"f315e1e65a1f80992f0509e84e4ae2df15ecd9ef73df975f7c98813b71e4c8da","impliedFormat":1},{"version":"5b9586e9b0b6322e5bfbd2c29bd3b8e21ab9d871f82346cb71020e3d84bae73e","impliedFormat":1},{"version":"3e70a7e67c2cb16f8cd49097360c0309fe9d1e3210ff9222e9dac1f8df9d4fb6","impliedFormat":1},{"version":"ab68d2a3e3e8767c3fba8f80de099a1cfc18c0de79e42cb02ae66e22dfe14a66","impliedFormat":1},{"version":"d96cc6598148bf1a98fb2e8dcf01c63a4b3558bdaec6ef35e087fd0562eb40ec","impliedFormat":1},{"version":"f8db4fea512ab759b2223b90ecbbe7dae919c02f8ce95ec03f7fb1cf757cfbeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","impliedFormat":1},{"version":"f60e3e3060207ac982da13363181fd7ee4beecc19a7c569f0d6bb034331066c2","impliedFormat":1},{"version":"4a20a0a39aca8738cc5088f9dea2969bf2af3ca1341c56071f513059b122d150","impliedFormat":1},{"version":"a33c98f95c099c2a9a383b156c8f2a16605843d29455a954c1431bcbbc1ce35a","impliedFormat":1},{"version":"effa1fd4980f6dff4e81ed67009b847d34449087504319f9a0dd081e8cf23a31","impliedFormat":1},{"version":"c2c9f431f788b434e6ae327844ef6712bb6a6a88ad08acf20bf6cfeb41d154ba","impliedFormat":1},{"version":"798367363a3274220cbed839b883fe2f52ba7197b25e8cb2ac59c1e1fd8af6b7","impliedFormat":1},{"version":"67f3d03f61a43f045851624e52ec438803ecf5d2247660f208bd9bcadb6ff298","impliedFormat":1},{"version":"8baa5d0febc68db886c40bf341e5c90dc215a90cd64552e47e8184be6b7e3358","impliedFormat":1},{"version":"ab82804a14454734010dcdcd43f564ff7b0389bee4c5692eec76ff5b30d4cf66","impliedFormat":1},{"version":"bae8d023ef6b23df7da26f51cea44321f95817c190342a36882e93b80d07a960","impliedFormat":1},{"version":"26a770cec4bd2e7dbba95c6e536390fffe83c6268b78974a93727903b515c4e7","impliedFormat":1}],"root":[[64,86]],"options":{"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":true,"module":1,"noFallthroughCasesInSwitch":true,"noImplicitAny":true,"noImplicitReturns":true,"outDir":"./types","rootDir":"../src","skipLibCheck":true,"sourceMap":true,"strict":true,"strictNullChecks":true,"target":9},"referencedMap":[[89,1],[87,2],[198,2],[201,3],[200,2],[92,4],[88,1],[90,5],[91,1],[93,2],[194,6],[195,2],[196,7],[197,8],[206,9],[207,2],[142,10],[143,10],[144,11],[99,12],[145,13],[146,14],[147,15],[94,2],[97,16],[95,2],[96,2],[148,17],[149,18],[150,19],[151,20],[152,21],[153,22],[154,22],[155,23],[156,24],[157,25],[158,26],[100,2],[98,2],[159,27],[160,28],[161,29],[193,30],[162,31],[163,32],[164,33],[165,34],[166,35],[167,36],[168,37],[169,38],[170,39],[171,40],[172,40],[173,41],[174,2],[175,42],[177,43],[176,44],[178,45],[179,46],[180,47],[181,48],[182,49],[183,50],[184,51],[185,52],[186,53],[187,54],[188,55],[189,56],[190,57],[101,2],[102,2],[103,2],[141,58],[191,59],[192,60],[214,61],[213,62],[215,2],[216,2],[217,2],[218,63],[199,2],[205,64],[203,65],[204,66],[212,67],[209,2],[211,68],[210,2],[208,2],[202,69],[61,2],[62,2],[12,2],[10,2],[11,2],[16,2],[15,2],[2,2],[17,2],[18,2],[19,2],[20,2],[21,2],[22,2],[23,2],[24,2],[3,2],[25,2],[26,2],[4,2],[27,2],[31,2],[28,2],[29,2],[30,2],[32,2],[33,2],[34,2],[5,2],[35,2],[36,2],[37,2],[38,2],[6,2],[42,2],[39,2],[40,2],[41,2],[43,2],[7,2],[44,2],[49,2],[50,2],[45,2],[46,2],[47,2],[48,2],[8,2],[54,2],[51,2],[52,2],[53,2],[55,2],[9,2],[56,2],[63,2],[57,2],[58,2],[60,2],[59,2],[1,2],[14,2],[13,2],[119,70],[129,71],[118,70],[139,72],[110,73],[109,74],[138,75],[132,76],[137,77],[112,78],[126,79],[111,80],[135,81],[107,82],[106,75],[136,83],[108,84],[113,85],[114,2],[117,85],[104,2],[140,86],[130,87],[121,88],[122,89],[124,90],[120,91],[123,92],[133,75],[115,93],[116,94],[125,95],[105,96],[128,87],[127,85],[131,2],[134,97],[69,98],[78,99],[71,100],[79,101],[74,100],[80,102],[72,98],[81,103],[64,2],[77,104],[65,2],[82,105],[73,98],[83,106],[75,98],[84,107],[68,100],[85,108],[70,98],[86,109],[76,98],[66,110],[67,2]],"latestChangedDtsFile":"./types/synthesizer/index.d.ts","version":"5.9.3"}
package/package.json CHANGED
@@ -1,48 +1,48 @@
1
- {
2
- "name": "@manya-os/council",
3
- "version": "1.0.0",
4
- "description": "Multi-agent consensus engine for the MANYA Intelligence OS — specialist routing, independent analyses, weighted confidence scoring, conflict detection, structured debate, minority opinions, consensus building, review reports, and final decision synthesis.",
5
- "main": "dist/cjs/index.js",
6
- "types": "dist/types/index.d.ts",
7
- "scripts": {
8
- "build": "node ../../scripts/build-package.js council",
9
- "test": "jest",
10
- "clean": "rm -rf dist build node_modules",
11
- "build:types": "node ../../scripts/build-types.js council",
12
- "build:bundle": "node ../../scripts/build-package.js council --no-types && node ../../scripts/build-types.js council"
13
- },
14
- "keywords": [
15
- "manya",
16
- "council",
17
- "multi-agent",
18
- "consensus",
19
- "debate",
20
- "specialist",
21
- "routing",
22
- "conflict-detection",
23
- "minority-opinion",
24
- "decision-synthesis",
25
- "agent-council"
26
- ],
27
- "author": "Uviwe Menyiwe (Azura Daemon) <foundation@manyahael.org>",
28
- "license": "Apache-2.0",
29
- "dependencies": {},
30
- "devDependencies": {},
31
- "module": "dist/esm/index.mjs",
32
- "exports": {
33
- ".": {
34
- "types": "./dist/types/index.d.ts",
35
- "require": "./dist/cjs/index.js",
36
- "import": "./dist/esm/index.mjs",
37
- "default": "./dist/cjs/index.js"
38
- },
39
- "./package.json": "./package.json"
40
- },
41
- "sideEffects": false,
42
- "files": [
43
- "dist",
44
- "README.md",
45
- "CHANGELOG.md",
46
- "LICENSE"
47
- ]
48
- }
1
+ {
2
+ "name": "@manya-os/council",
3
+ "version": "1.1.0",
4
+ "description": "Multi-agent consensus engine for the MANYA Intelligence OS — specialist routing, independent analyses, weighted confidence scoring, conflict detection, structured debate, minority opinions, consensus building, review reports, and final decision synthesis.",
5
+ "main": "dist/cjs/index.js",
6
+ "types": "dist/types/index.d.ts",
7
+ "scripts": {
8
+ "build": "node ../../scripts/build-package.js council",
9
+ "test": "jest --config ../../jest.config.js",
10
+ "clean": "rm -rf dist build node_modules",
11
+ "build:types": "node ../../scripts/build-types.js council",
12
+ "build:bundle": "node ../../scripts/build-package.js council --no-types && node ../../scripts/build-types.js council"
13
+ },
14
+ "keywords": [
15
+ "manya",
16
+ "council",
17
+ "multi-agent",
18
+ "consensus",
19
+ "debate",
20
+ "specialist",
21
+ "routing",
22
+ "conflict-detection",
23
+ "minority-opinion",
24
+ "decision-synthesis",
25
+ "agent-council"
26
+ ],
27
+ "author": "Uviwe Menyiwe (Azura Daemon) <foundation@manyahael.org>",
28
+ "license": "Apache-2.0",
29
+ "dependencies": {},
30
+ "devDependencies": {},
31
+ "module": "dist/esm/index.mjs",
32
+ "exports": {
33
+ ".": {
34
+ "types": "./dist/types/index.d.ts",
35
+ "require": "./dist/cjs/index.js",
36
+ "import": "./dist/esm/index.mjs",
37
+ "default": "./dist/cjs/index.js"
38
+ },
39
+ "./package.json": "./package.json"
40
+ },
41
+ "sideEffects": false,
42
+ "files": [
43
+ "dist",
44
+ "README.md",
45
+ "CHANGELOG.md",
46
+ "LICENSE"
47
+ ]
48
+ }