konsilio 0.3.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +23 -23
- package/README.md +172 -170
- package/build/prompts/personas/test-quoted.md +13 -13
- package/build/services/formatter.service.js +18 -18
- package/package.json +68 -68
package/LICENSE.md
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
This is free and unencumbered software released into the public domain.
|
|
2
|
-
|
|
3
|
-
Anyone is free to copy, modify, publish, use, compile, sell, or
|
|
4
|
-
distribute this software, either in source code form or as a compiled
|
|
5
|
-
binary, for any purpose, commercial or non-commercial, and by any
|
|
6
|
-
means.
|
|
7
|
-
|
|
8
|
-
In jurisdictions that recognize copyright laws, the author or authors
|
|
9
|
-
of this software dedicate any and all copyright interest in the
|
|
10
|
-
software to the public domain. We make this dedication for the benefit
|
|
11
|
-
of the public at large and to the detriment of our heirs and
|
|
12
|
-
successors. We intend this dedication to be an overt act of
|
|
13
|
-
relinquishment in perpetuity of all present and future rights to this
|
|
14
|
-
software under copyright law.
|
|
15
|
-
|
|
16
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
17
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
18
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
19
|
-
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
|
20
|
-
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
|
21
|
-
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
|
22
|
-
OTHER DEALINGS IN THE SOFTWARE.
|
|
23
|
-
|
|
1
|
+
This is free and unencumbered software released into the public domain.
|
|
2
|
+
|
|
3
|
+
Anyone is free to copy, modify, publish, use, compile, sell, or
|
|
4
|
+
distribute this software, either in source code form or as a compiled
|
|
5
|
+
binary, for any purpose, commercial or non-commercial, and by any
|
|
6
|
+
means.
|
|
7
|
+
|
|
8
|
+
In jurisdictions that recognize copyright laws, the author or authors
|
|
9
|
+
of this software dedicate any and all copyright interest in the
|
|
10
|
+
software to the public domain. We make this dedication for the benefit
|
|
11
|
+
of the public at large and to the detriment of our heirs and
|
|
12
|
+
successors. We intend this dedication to be an overt act of
|
|
13
|
+
relinquishment in perpetuity of all present and future rights to this
|
|
14
|
+
software under copyright law.
|
|
15
|
+
|
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
19
|
+
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
|
20
|
+
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
|
21
|
+
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
|
22
|
+
OTHER DEALINGS IN THE SOFTWARE.
|
|
23
|
+
|
|
24
24
|
For more information, please refer to <https://unlicense.org>
|
package/README.md
CHANGED
|
@@ -1,170 +1,172 @@
|
|
|
1
|
-
# Konsilio
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
Konsilio lets you run a draft plan through a panel of AI experts (security, performance, DevOps, etc.) before writing code.
|
|
8
|
-
|
|
9
|
-
It returns a structured blueprint so your coding model can implement it cleanly in one pass.
|
|
10
|
-
|
|
11
|
-
## The Problem
|
|
12
|
-
|
|
13
|
-
You're mid-task and realize you need a plan:
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
#
|
|
38
|
-
|
|
39
|
-
#
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
"
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
C -->
|
|
79
|
-
C -->
|
|
80
|
-
C -->
|
|
81
|
-
C -->
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
style
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
|
118
|
-
|
|
119
|
-
|
|
|
120
|
-
|
|
|
121
|
-
|
|
|
122
|
-
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
The
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
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
|
-
|
|
1
|
+
# Konsilio
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/konsilio)
|
|
4
|
+
[](https://www.npmjs.com/package/konsilio)
|
|
5
|
+
[](LICENSE.md)
|
|
6
|
+
|
|
7
|
+
Konsilio lets you run a draft plan through a panel of AI experts (security, performance, DevOps, etc.) before writing code.
|
|
8
|
+
|
|
9
|
+
It returns a structured blueprint so your coding model can implement it cleanly in one pass.
|
|
10
|
+
|
|
11
|
+
## The Problem
|
|
12
|
+
|
|
13
|
+
You're mid-task and realize you need a plan:
|
|
14
|
+
|
|
15
|
+
*"Why is this code not working? We need more logs → logging should be added → let me write a proposal for logging."*
|
|
16
|
+
|
|
17
|
+
You could feed that plan directly into a coding model and hope it gets it right. Or you could catch blind spots early by having specialists review it first.
|
|
18
|
+
|
|
19
|
+
## The Solution
|
|
20
|
+
|
|
21
|
+
Konsilio implements a **multi-stage consulting pipeline**:
|
|
22
|
+
|
|
23
|
+
1. **Write a proposal** — a short document describing what you want to build or change
|
|
24
|
+
2. **Feed it to the Council** — multiple expert personas (security, performance, DevOps, testing, etc.) review the plan in parallel, each from their own angle
|
|
25
|
+
3. **4-phase consolidation** — a lead agent extracts claims, critiques contradictions, makes accept/reject decisions, and synthesizes a final blueprint
|
|
26
|
+
4. **Implement with a clean slate** — hand the blueprint to a coding-focused model. It starts with empty context and executes the plan in one pass
|
|
27
|
+
|
|
28
|
+
**Rinse. Repeat. Rewind Selectah!**
|
|
29
|
+
|
|
30
|
+
## Usage
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
# Install
|
|
34
|
+
npm install -g konsilio
|
|
35
|
+
|
|
36
|
+
# Configure (edit konsilio.json with your personas and models)
|
|
37
|
+
# Set OPENROUTER_API_KEY in your environment
|
|
38
|
+
|
|
39
|
+
# Use via MCP in your AI coding tool
|
|
40
|
+
# Tool: consult_council
|
|
41
|
+
# Params: draft_plan, tech_stack (optional), context_constraints (optional)
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Example
|
|
45
|
+
|
|
46
|
+
```json
|
|
47
|
+
{
|
|
48
|
+
"draft_plan": "Add structured logging to all API endpoints with correlation IDs",
|
|
49
|
+
"tech_stack": "Node.js, Express, Pino, PostgreSQL",
|
|
50
|
+
"context_constraints": "Must run on Proxmox LXC, no external dependencies"
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Returns a blueprint with architecture directives, edge cases, constraints, and numbered next steps.
|
|
55
|
+
|
|
56
|
+
## Configuration
|
|
57
|
+
|
|
58
|
+
```json
|
|
59
|
+
{
|
|
60
|
+
"personas": {
|
|
61
|
+
"enabled": ["security", "performance", "devops", "test-architect"]
|
|
62
|
+
},
|
|
63
|
+
"models": {
|
|
64
|
+
"experts": "google/gemini-2.5-flash-lite",
|
|
65
|
+
"lead": "google/gemini-2.5-pro"
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Default personas: `security`, `performance`, `ux-dx`, `devops`, `typescript`, `graph-dba`, `node-fullstack`, `dev-tooling`, `distributed-systems`, `test-architect`
|
|
71
|
+
|
|
72
|
+
```mermaid
|
|
73
|
+
flowchart TD
|
|
74
|
+
A[Identify Need During Development] --> B[Write Proposal Document]
|
|
75
|
+
B --> C[Submit to Konsilio Council]
|
|
76
|
+
|
|
77
|
+
subgraph Council["Council Review (Parallel)"]
|
|
78
|
+
C --> E1[🔒 Security Expert]
|
|
79
|
+
C --> E2[⚡ Performance Expert]
|
|
80
|
+
C --> E3[🚀 DevOps Expert]
|
|
81
|
+
C --> E4[🧪 Test Architect]
|
|
82
|
+
C --> E5[🎨 UX/DX Expert]
|
|
83
|
+
C --> E6[🛠️ Dev Tooling Expert]
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
E1 --> F[Prose Reports]
|
|
87
|
+
E2 --> F
|
|
88
|
+
E3 --> F
|
|
89
|
+
E4 --> F
|
|
90
|
+
E5 --> F
|
|
91
|
+
E6 --> F
|
|
92
|
+
|
|
93
|
+
F --> G[Formatter: prose → structured JSON]
|
|
94
|
+
|
|
95
|
+
subgraph Consolidation["4-Phase Consolidation"]
|
|
96
|
+
G --> H1[📋 Extraction Lead<br/>Extract all claims]
|
|
97
|
+
H1 --> H2[🔍 Critique Lead<br/>Find contradictions]
|
|
98
|
+
H2 --> H3[⚖️ Decision Lead<br/>Accept/Reject findings]
|
|
99
|
+
H3 --> H4[📝 Synthesis Lead<br/>Assemble blueprint]
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
H4 --> I[Final Blueprint<br/>with edge cases, constraints, next steps]
|
|
103
|
+
I --> J[Hand to Coding Model<br/>Clean slate, empty context]
|
|
104
|
+
J --> K[Implement in One Pass]
|
|
105
|
+
|
|
106
|
+
style Council fill:#f0f4ff,stroke:#4a6cf7,stroke-width:2px
|
|
107
|
+
style Consolidation fill:#fff8f0,stroke:#f7a44a,stroke-width:2px
|
|
108
|
+
style I fill:#e8f5e9,stroke:#4caf50,stroke-width:2px
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## Architecture
|
|
112
|
+
|
|
113
|
+
### Expert Personas
|
|
114
|
+
|
|
115
|
+
Each expert is a focused agent with a specific lens:
|
|
116
|
+
|
|
117
|
+
| Persona | Focus |
|
|
118
|
+
|---------|-------|
|
|
119
|
+
| 🔒 Security | Auth, injection, rate limiting, data exposure |
|
|
120
|
+
| ⚡ Performance | Bottlenecks, caching, query patterns, scaling |
|
|
121
|
+
| 🚀 DevOps | Deployment, observability, infrastructure |
|
|
122
|
+
| 🧪 Test Architect | Coverage, edge cases, testability |
|
|
123
|
+
| 🎨 UX/DX | API design, developer experience, ergonomics |
|
|
124
|
+
| 🛠️ Dev Tooling | Build pipeline, linting, CI/CD |
|
|
125
|
+
|
|
126
|
+
Experts output **prose** — free-form analysis without JSON constraints.
|
|
127
|
+
**Note:** User-defined experts can be created by adding an `expert.md` file to `/data/personas/`
|
|
128
|
+
|
|
129
|
+
### The Lead
|
|
130
|
+
|
|
131
|
+
The lead agent runs a 4-phase consolidation pipeline:
|
|
132
|
+
|
|
133
|
+
1. **Extraction** — pulls all claims from expert reports into a unified list
|
|
134
|
+
2. **Critique** — identifies contradictions, unsupported claims, and gaps
|
|
135
|
+
3. **Decision** — explicitly accepts or rejects each finding
|
|
136
|
+
4. **Synthesis** — assembles accepted findings into a coherent blueprint
|
|
137
|
+
|
|
138
|
+
### The Formatter
|
|
139
|
+
|
|
140
|
+
A dedicated `gpt-4o-mini` instance converts expert prose to structured JSON using OpenAI's `response_format` feature. This keeps experts focused on analysis, not syntax.
|
|
141
|
+
|
|
142
|
+
## Why This Works
|
|
143
|
+
|
|
144
|
+
### 1. Specialized Experts Outperform Generalists
|
|
145
|
+
|
|
146
|
+
A council of focused expert agents, each primed with a specific role, surfaces more issues at lower cost than a single frontier model:
|
|
147
|
+
|
|
148
|
+
- **Chan et al. (2023)** — *"ChatEval: Towards Better LLM-based Evaluators through Multi-Agent Debate"* — showed that multiple role-conditioned agents debating produces more accurate evaluations than a single powerful model. [arXiv:2308.07201](https://arxiv.org/abs/2308.07201)
|
|
149
|
+
|
|
150
|
+
- **Du et al. (2023)** — *"Improving Factuality and Reasoning in Language Models through Multiagent Debate"* — demonstrated that multi-agent debate significantly improves accuracy over single-model inference, with agents catching each other's errors. [arXiv:2305.14325](https://arxiv.org/abs/2305.14325)
|
|
151
|
+
|
|
152
|
+
- **Liang et al. (2023)** — *"Ensemble Learning for Large Language Models"* — found that combining multiple specialized models outperforms a single large model on complex tasks while using fewer total tokens. [arXiv:2305.07881](https://arxiv.org/abs/2305.07881)
|
|
153
|
+
|
|
154
|
+
### 2. Separation of Analysis and Formatting
|
|
155
|
+
|
|
156
|
+
When a model is asked to return structured data directly, its reasoning quality degrades. Konsilio solves this by having experts write **prose first**, then using a dedicated formatter:
|
|
157
|
+
|
|
158
|
+
- **Dhuliawala et al. (2023)** — *"Chain-of-Verification Reduces Hallucination in Large Language Models"* — demonstrates that separating generation from verification significantly reduces errors. This is the core principle behind Konsilio's two-stage design. [arXiv:2309.11495](https://arxiv.org/abs/2309.11495)
|
|
159
|
+
|
|
160
|
+
- **Willison et al. (2023)** — *"Jsonformer: A Bulletproof Way to Generate Structured JSON from Language Models"* — documents how JSON schema constraints during generation interfere with reasoning quality, recommending a two-stage approach: generate content freely, then format. [arXiv:2305.15087](https://arxiv.org/abs/2305.15087)
|
|
161
|
+
|
|
162
|
+
- **Su et al. (2024)** — *"The Impact of Reasoning Step Length on Large Language Models"* — shows that adding structural constraints (like JSON output requirements) during reasoning reduces the model's ability to explore solution spaces, increasing error rates. [arXiv:2401.04991](https://arxiv.org/abs/2401.04991)
|
|
163
|
+
|
|
164
|
+
This is why Konsilio uses `gpt-4o-mini` as a **dedicated formatter** — it converts prose to JSON without the expert models having to juggle both reasoning and formatting simultaneously.
|
|
165
|
+
|
|
166
|
+
### 3. Clean-Slate Implementation
|
|
167
|
+
|
|
168
|
+
By separating planning from execution, the coding model starts with **zero context overhead**. It receives a complete blueprint and executes — no need to re-derive the plan or carry forward the reasoning history. This reduces token costs and avoids context-window pollution.
|
|
169
|
+
|
|
170
|
+
# License
|
|
171
|
+
|
|
172
|
+
This software is released under the Unlicense: do whatever you want with it.
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: "test-quoted"
|
|
3
|
-
name: "Test Quoted Persona"
|
|
4
|
-
emoji: "🧪"
|
|
5
|
-
focusAreas:
|
|
6
|
-
- "Testing quoted values"
|
|
7
|
-
- "YAML parsing"
|
|
8
|
-
domains:
|
|
9
|
-
- "test"
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
## Anti-Patterns
|
|
13
|
-
|
|
1
|
+
---
|
|
2
|
+
id: "test-quoted"
|
|
3
|
+
name: "Test Quoted Persona"
|
|
4
|
+
emoji: "🧪"
|
|
5
|
+
focusAreas:
|
|
6
|
+
- "Testing quoted values"
|
|
7
|
+
- "YAML parsing"
|
|
8
|
+
domains:
|
|
9
|
+
- "test"
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Anti-Patterns
|
|
13
|
+
|
|
14
14
|
- "This is a quoted anti-pattern"
|
|
@@ -84,24 +84,24 @@ export class FormatterService {
|
|
|
84
84
|
* Build the system prompt for the formatter
|
|
85
85
|
*/
|
|
86
86
|
buildFormatterSystemPrompt(personaId) {
|
|
87
|
-
return `You are a precise JSON formatter. Your job is to convert expert analysis prose into a structured JSON output.
|
|
88
|
-
|
|
89
|
-
Extract the following from the prose:
|
|
90
|
-
- findings: Specific issues with severity, component, issue description, and mitigation steps
|
|
91
|
-
- risks: Potential risks with category, probability, impact, and description
|
|
92
|
-
- missingAssumptions: Assumptions not stated in the analysis
|
|
93
|
-
- dependencies: External dependencies or prerequisites mentioned
|
|
94
|
-
|
|
95
|
-
Rules:
|
|
96
|
-
- Use severity values: CRITICAL, HIGH, MEDIUM, LOW
|
|
97
|
-
- Use category values: security, performance, operational, ux, technical-debt
|
|
98
|
-
- Use probability/impact values: high, medium, low
|
|
99
|
-
- Each finding must have a unique id (use kebab-case like "auth-rate-limit")
|
|
100
|
-
- Each risk must have a unique id
|
|
101
|
-
- Be precise and complete - capture all findings from the prose
|
|
102
|
-
- Do not add findings not supported by the prose
|
|
103
|
-
- Set personaId to: ${personaId}
|
|
104
|
-
|
|
87
|
+
return `You are a precise JSON formatter. Your job is to convert expert analysis prose into a structured JSON output.
|
|
88
|
+
|
|
89
|
+
Extract the following from the prose:
|
|
90
|
+
- findings: Specific issues with severity, component, issue description, and mitigation steps
|
|
91
|
+
- risks: Potential risks with category, probability, impact, and description
|
|
92
|
+
- missingAssumptions: Assumptions not stated in the analysis
|
|
93
|
+
- dependencies: External dependencies or prerequisites mentioned
|
|
94
|
+
|
|
95
|
+
Rules:
|
|
96
|
+
- Use severity values: CRITICAL, HIGH, MEDIUM, LOW
|
|
97
|
+
- Use category values: security, performance, operational, ux, technical-debt
|
|
98
|
+
- Use probability/impact values: high, medium, low
|
|
99
|
+
- Each finding must have a unique id (use kebab-case like "auth-rate-limit")
|
|
100
|
+
- Each risk must have a unique id
|
|
101
|
+
- Be precise and complete - capture all findings from the prose
|
|
102
|
+
- Do not add findings not supported by the prose
|
|
103
|
+
- Set personaId to: ${personaId}
|
|
104
|
+
|
|
105
105
|
Output ONLY valid JSON. No markdown, no explanations.`;
|
|
106
106
|
}
|
|
107
107
|
/**
|
package/package.json
CHANGED
|
@@ -1,68 +1,68 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "konsilio",
|
|
3
|
-
"version": "0.3.
|
|
4
|
-
"description": "Konsilio MCP server runs draft plans through a multi-persona architectural review.",
|
|
5
|
-
"keywords": [
|
|
6
|
-
"mcp",
|
|
7
|
-
"model-context-protocol",
|
|
8
|
-
"code-review",
|
|
9
|
-
"architecture",
|
|
10
|
-
"ai",
|
|
11
|
-
"multi-agent",
|
|
12
|
-
"expert-system",
|
|
13
|
-
"planning",
|
|
14
|
-
"consulting",
|
|
15
|
-
"blueprint"
|
|
16
|
-
],
|
|
17
|
-
"homepage": "https://github.com/edzillion/konsilio#readme",
|
|
18
|
-
"bugs": {
|
|
19
|
-
"url": "https://github.com/edzillion/konsilio/issues"
|
|
20
|
-
},
|
|
21
|
-
"repository": {
|
|
22
|
-
"type": "git",
|
|
23
|
-
"url": "git+https://github.com/edzillion/konsilio.git"
|
|
24
|
-
},
|
|
25
|
-
"license": "Unlicense",
|
|
26
|
-
"author": "edzillion",
|
|
27
|
-
"type": "module",
|
|
28
|
-
"exports": {
|
|
29
|
-
".": "./build/index.js",
|
|
30
|
-
"./schema": "./konsilio.schema.json"
|
|
31
|
-
},
|
|
32
|
-
"main": "build/index.js",
|
|
33
|
-
"types": "./build/index.d.ts",
|
|
34
|
-
"bin": {
|
|
35
|
-
"konsilio": "build/index.js"
|
|
36
|
-
},
|
|
37
|
-
"files": [
|
|
38
|
-
"build/",
|
|
39
|
-
"konsilio.schema.json"
|
|
40
|
-
],
|
|
41
|
-
"scripts": {
|
|
42
|
-
"build": "tsc -p tsconfig.build.json && node scripts/copy-assets.mjs",
|
|
43
|
-
"dev": "tsc --watch",
|
|
44
|
-
"start": "node build/index.js",
|
|
45
|
-
"start:server": "node build/server.js",
|
|
46
|
-
"inspect": "npx @modelcontextprotocol/inspector node /g/dev/konsilio/build/index.js",
|
|
47
|
-
"typecheck": "tsc --noEmit",
|
|
48
|
-
"history": "node build/cli/history.js",
|
|
49
|
-
"test": "vitest run --reporter=verbose",
|
|
50
|
-
"test-agent": "vitest run --reporter=json | jq \".testResults[] | {name, status, errors}\"",
|
|
51
|
-
"test:watch": "vitest",
|
|
52
|
-
"test:coverage": "vitest run --coverage"
|
|
53
|
-
},
|
|
54
|
-
"dependencies": {
|
|
55
|
-
"@modelcontextprotocol/sdk": "^1.28.0",
|
|
56
|
-
"pino": "^10.3.1",
|
|
57
|
-
"sql.js": "^1.14.1",
|
|
58
|
-
"zod": "^4.3.6"
|
|
59
|
-
},
|
|
60
|
-
"devDependencies": {
|
|
61
|
-
"@modelcontextprotocol/inspector": "^0.21.1",
|
|
62
|
-
"@types/node": "^25.5.0",
|
|
63
|
-
"@types/sql.js": "^1.4.11",
|
|
64
|
-
"@vitest/coverage-v8": "^4.1.2",
|
|
65
|
-
"typescript": "^6.0.2",
|
|
66
|
-
"vitest": "^4.1.2"
|
|
67
|
-
}
|
|
68
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "konsilio",
|
|
3
|
+
"version": "0.3.1",
|
|
4
|
+
"description": "Konsilio MCP server runs draft plans through a multi-persona architectural review.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"mcp",
|
|
7
|
+
"model-context-protocol",
|
|
8
|
+
"code-review",
|
|
9
|
+
"architecture",
|
|
10
|
+
"ai",
|
|
11
|
+
"multi-agent",
|
|
12
|
+
"expert-system",
|
|
13
|
+
"planning",
|
|
14
|
+
"consulting",
|
|
15
|
+
"blueprint"
|
|
16
|
+
],
|
|
17
|
+
"homepage": "https://github.com/edzillion/konsilio#readme",
|
|
18
|
+
"bugs": {
|
|
19
|
+
"url": "https://github.com/edzillion/konsilio/issues"
|
|
20
|
+
},
|
|
21
|
+
"repository": {
|
|
22
|
+
"type": "git",
|
|
23
|
+
"url": "git+https://github.com/edzillion/konsilio.git"
|
|
24
|
+
},
|
|
25
|
+
"license": "Unlicense",
|
|
26
|
+
"author": "edzillion",
|
|
27
|
+
"type": "module",
|
|
28
|
+
"exports": {
|
|
29
|
+
".": "./build/index.js",
|
|
30
|
+
"./schema": "./konsilio.schema.json"
|
|
31
|
+
},
|
|
32
|
+
"main": "build/index.js",
|
|
33
|
+
"types": "./build/index.d.ts",
|
|
34
|
+
"bin": {
|
|
35
|
+
"konsilio": "build/index.js"
|
|
36
|
+
},
|
|
37
|
+
"files": [
|
|
38
|
+
"build/",
|
|
39
|
+
"konsilio.schema.json"
|
|
40
|
+
],
|
|
41
|
+
"scripts": {
|
|
42
|
+
"build": "tsc -p tsconfig.build.json && node scripts/copy-assets.mjs",
|
|
43
|
+
"dev": "tsc --watch",
|
|
44
|
+
"start": "node build/index.js",
|
|
45
|
+
"start:server": "node build/server.js",
|
|
46
|
+
"inspect": "npx @modelcontextprotocol/inspector node /g/dev/konsilio/build/index.js",
|
|
47
|
+
"typecheck": "tsc --noEmit",
|
|
48
|
+
"history": "node build/cli/history.js",
|
|
49
|
+
"test": "vitest run --reporter=verbose",
|
|
50
|
+
"test-agent": "vitest run --reporter=json | jq \".testResults[] | {name, status, errors}\"",
|
|
51
|
+
"test:watch": "vitest",
|
|
52
|
+
"test:coverage": "vitest run --coverage"
|
|
53
|
+
},
|
|
54
|
+
"dependencies": {
|
|
55
|
+
"@modelcontextprotocol/sdk": "^1.28.0",
|
|
56
|
+
"pino": "^10.3.1",
|
|
57
|
+
"sql.js": "^1.14.1",
|
|
58
|
+
"zod": "^4.3.6"
|
|
59
|
+
},
|
|
60
|
+
"devDependencies": {
|
|
61
|
+
"@modelcontextprotocol/inspector": "^0.21.1",
|
|
62
|
+
"@types/node": "^25.5.0",
|
|
63
|
+
"@types/sql.js": "^1.4.11",
|
|
64
|
+
"@vitest/coverage-v8": "^4.1.2",
|
|
65
|
+
"typescript": "^6.0.2",
|
|
66
|
+
"vitest": "^4.1.2"
|
|
67
|
+
}
|
|
68
|
+
}
|