@dmsdc-ai/aigentry-deliberation 0.0.38 → 0.0.39
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/README.md +92 -4
- package/doctor.js +6 -6
- package/index.js +744 -52
- package/install.js +2 -2
- package/package.json +1 -1
- package/skills/deliberation/SKILL.md +108 -4
package/README.md
CHANGED
|
@@ -33,7 +33,7 @@ MCP Deliberation Server — Multi-session AI deliberation with smart speaker ord
|
|
|
33
33
|
원클릭 설치 — 어떤 프로젝트 환경에서든 동작합니다:
|
|
34
34
|
|
|
35
35
|
```bash
|
|
36
|
-
npx @dmsdc-ai/aigentry-deliberation install
|
|
36
|
+
npx --yes --package @dmsdc-ai/aigentry-deliberation deliberation-install
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
이 명령은:
|
|
@@ -62,7 +62,7 @@ cd aigentry-deliberation && npm install && node install.js
|
|
|
62
62
|
### 제거
|
|
63
63
|
|
|
64
64
|
```bash
|
|
65
|
-
npx @dmsdc-ai/aigentry-deliberation uninstall
|
|
65
|
+
npx --yes --package @dmsdc-ai/aigentry-deliberation deliberation-install --uninstall
|
|
66
66
|
```
|
|
67
67
|
|
|
68
68
|
MCP 서버 등록 해제 + 설치 파일 삭제 + 스킬 파일 정리까지 자동 처리됩니다.
|
|
@@ -87,7 +87,7 @@ open demo/forum/index.html
|
|
|
87
87
|
MCP 연결 문제 자동 진단:
|
|
88
88
|
|
|
89
89
|
```bash
|
|
90
|
-
npx @dmsdc-ai/aigentry-deliberation doctor
|
|
90
|
+
npx --yes --package @dmsdc-ai/aigentry-deliberation deliberation-doctor
|
|
91
91
|
```
|
|
92
92
|
|
|
93
93
|
Claude Code, Codex CLI, Gemini CLI의 MCP 설정을 자동 점검하고 문제를 진단합니다.
|
|
@@ -101,6 +101,7 @@ Claude Code, Codex CLI, Gemini CLI의 MCP 설정을 자동 점검하고 문제
|
|
|
101
101
|
| `deliberation_synthesize` | Generate synthesis report |
|
|
102
102
|
| `deliberation_status` | Check session status |
|
|
103
103
|
| `deliberation_context` | Load project context |
|
|
104
|
+
| `deliberation_inject_context` | Inject structured context or external experiment history into an active session |
|
|
104
105
|
| `deliberation_history` | View discussion history |
|
|
105
106
|
| `deliberation_list_active` | List active sessions |
|
|
106
107
|
| `deliberation_list` | List archived sessions |
|
|
@@ -110,8 +111,10 @@ Claude Code, Codex CLI, Gemini CLI의 MCP 설정을 자동 점검하고 문제
|
|
|
110
111
|
| `deliberation_browser_llm_tabs` | List browser LLM tabs |
|
|
111
112
|
| `deliberation_browser_auto_turn` | Auto-send turn to browser LLM |
|
|
112
113
|
| `deliberation_route_turn` | Route turn to appropriate transport |
|
|
114
|
+
| `deliberation_run_until_blocked` | Auto-run mixed transports until completion or a manual block |
|
|
113
115
|
| `deliberation_request_review` | Request code review |
|
|
114
116
|
| `deliberation_cli_auto_turn` | Auto-send turn to CLI speaker |
|
|
117
|
+
| `deliberation_ingest_remote_reply` | Canonical semantic ingress for remote replies with explicit source metadata |
|
|
115
118
|
| `deliberation_cli_config` | Configure CLI settings |
|
|
116
119
|
|
|
117
120
|
## Start Flow
|
|
@@ -132,10 +135,95 @@ Raw candidate tokens cannot start a deliberation.
|
|
|
132
135
|
Telepty-managed sessions are now routed through the telepty bus instead of raw PTY inject guidance.
|
|
133
136
|
|
|
134
137
|
- `deliberation_route_turn` publishes a typed `turn_request` envelope on `ws://localhost:3848/api/bus`
|
|
138
|
+
- `deliberation_run_until_blocked` can continue across `cli_respond`, `browser_auto`, and `telepty_bus` speakers until a manual block is reached
|
|
135
139
|
- transport delivery is tracked with a 5-second `inject_written` ack window
|
|
136
140
|
- semantic completion is tracked with a 60-second self-submit window
|
|
137
141
|
- `session_health` bus events are cached for operator visibility
|
|
138
142
|
- `deliberation_synthesize` validates and emits typed `deliberation_completed` envelopes for downstream automation
|
|
143
|
+
- telepty envelopes now carry top-level `version: 1` and optional `source_host`
|
|
144
|
+
|
|
145
|
+
### Cross-Machine Event Catalog
|
|
146
|
+
|
|
147
|
+
Canonical boundary split with telepty:
|
|
148
|
+
|
|
149
|
+
- **Guaranteed (daemon-emitted):** `inject_written`, `session_health`, `session_register`, `session.replaced`, `session.idle`, `thread.opened`, `thread.closed`, `handoff.*`, `message_routed`
|
|
150
|
+
- **Best-effort (bus relay only):** `turn_request`, `turn_completed`, `deliberation_completed`
|
|
151
|
+
- `kind` is the canonical event discriminator
|
|
152
|
+
- `target` identifies the telepty session target
|
|
153
|
+
- `payload.prompt` is the canonical prompt field for `turn_request`
|
|
154
|
+
- `source_host` is optional transport metadata for cross-machine tracing
|
|
155
|
+
|
|
156
|
+
### Remote Reply Ingress
|
|
157
|
+
|
|
158
|
+
If a remote participant cannot call local MCP tools directly, do **not** proxy-synthesize a reply. Use the deliberation-owned semantic ingress:
|
|
159
|
+
|
|
160
|
+
```text
|
|
161
|
+
deliberation_ingest_remote_reply(
|
|
162
|
+
session_id: "...",
|
|
163
|
+
speaker: "...",
|
|
164
|
+
turn_id: "...",
|
|
165
|
+
content: "...",
|
|
166
|
+
source_machine_id: "peer-01",
|
|
167
|
+
source_session_id: "remote-gemini-001",
|
|
168
|
+
transport_scope: "remote_mcp",
|
|
169
|
+
artifact_refs: ["results.jsonl"]
|
|
170
|
+
)
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
This preserves explicit provenance instead of inferring semantics from raw bus events.
|
|
174
|
+
|
|
175
|
+
### Gemini Recovery
|
|
176
|
+
|
|
177
|
+
Canonical repair path today is still installer-based:
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
npx --yes --package @dmsdc-ai/aigentry-deliberation deliberation-doctor
|
|
181
|
+
npx --yes --package @dmsdc-ai/aigentry-deliberation deliberation-install
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
Use doctor first; if Gemini MCP registration/path/runtime drift is detected, rerun install and restart Gemini CLI.
|
|
185
|
+
|
|
186
|
+
## Experiment Retrospectives
|
|
187
|
+
|
|
188
|
+
For autoresearch-style keep/discard reviews, inject a compact experiment bundle after the session starts instead of bloating `topic`.
|
|
189
|
+
|
|
190
|
+
Recommended rules:
|
|
191
|
+
- keep the injected JSON around `1.5KB` to `2KB`
|
|
192
|
+
- include only the last `3-5` relevant experiments
|
|
193
|
+
- keep `key_changes` to at most `3` scalar before/after pairs
|
|
194
|
+
- reference bulky artifacts (`results.tsv`, full `program.md`, JSONL logs) by path only
|
|
195
|
+
|
|
196
|
+
Example:
|
|
197
|
+
|
|
198
|
+
```text
|
|
199
|
+
deliberation_start(...)
|
|
200
|
+
deliberation_inject_context(
|
|
201
|
+
session_id: "experiment-review-123",
|
|
202
|
+
speaker: "dustcraw",
|
|
203
|
+
context: "{\"past_experiments\":[{\"experiment_id\":\"dg-20260310-001\",\"signal_kind\":\"INTEREST_DRIFT\",\"patch_summary\":\"Raised relevanceThreshold from 0.30 to 0.35\",\"patch_kind\":\"config\",\"key_changes\":{\"relevanceThreshold\":{\"before\":0.3,\"after\":0.35}},\"score\":0.08,\"score_label\":\"promotion_rate_delta\",\"metric_name\":\"promotion_rate_delta\",\"metric_delta\":0.08,\"verdict\":\"positive\",\"followup_action\":\"kept\",\"reasoning\":\"Threshold raise reduced noise; promotion quality improved 8%\"}],\"experiment_count\":1,\"success_rate\":1.0}"
|
|
204
|
+
)
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
If your synthesis needs an explicit experiment verdict, `structured` can now include `experiment_outcome`:
|
|
208
|
+
|
|
209
|
+
```json
|
|
210
|
+
{
|
|
211
|
+
"summary": "Lower the blast radius and re-run with stricter constraints.",
|
|
212
|
+
"decisions": [
|
|
213
|
+
"Keep the experiment loop bounded to one editable file",
|
|
214
|
+
"Retry after restoring the failing test baseline"
|
|
215
|
+
],
|
|
216
|
+
"actionable_tasks": [
|
|
217
|
+
{ "id": 1, "task": "Tighten editable globs", "project": "aigentry-devkit", "priority": "high" }
|
|
218
|
+
],
|
|
219
|
+
"experiment_outcome": {
|
|
220
|
+
"verdict": "modify",
|
|
221
|
+
"suggested_action": "iterate",
|
|
222
|
+
"confidence": 0.78,
|
|
223
|
+
"measurement_window_hours": 24
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
```
|
|
139
227
|
|
|
140
228
|
## Speaker Ordering Strategies
|
|
141
229
|
|
|
@@ -196,7 +284,7 @@ Inserts multi-AI verification gates at key [superpowers](https://github.com/obra
|
|
|
196
284
|
|
|
197
285
|
**Fallback:** MCP 미설치 시 self-criticism 기반 자가 검증으로 대체 (Silver 등급). MCP 설치 시 멀티-AI 토론 (Gold 등급).
|
|
198
286
|
|
|
199
|
-
**Install:** `npx @dmsdc-ai/aigentry-deliberation install` 실행 시 자동 설치됩니다.
|
|
287
|
+
**Install:** `npx --yes --package @dmsdc-ai/aigentry-deliberation deliberation-install` 실행 시 자동 설치됩니다.
|
|
200
288
|
|
|
201
289
|
수동 설치:
|
|
202
290
|
```bash
|
package/doctor.js
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
*
|
|
16
16
|
* Usage:
|
|
17
17
|
* node doctor.js
|
|
18
|
-
* npx @dmsdc-ai/aigentry-deliberation doctor
|
|
18
|
+
* npx --yes --package @dmsdc-ai/aigentry-deliberation deliberation-doctor
|
|
19
19
|
*/
|
|
20
20
|
|
|
21
21
|
import fs from "node:fs";
|
|
@@ -209,7 +209,7 @@ function suggestFix(serverName, server, issue) {
|
|
|
209
209
|
switch (issue) {
|
|
210
210
|
case "path_missing":
|
|
211
211
|
if (serverName === "deliberation" || serverName === "mcp-deliberation") {
|
|
212
|
-
return `npx @dmsdc-ai/aigentry-deliberation install`;
|
|
212
|
+
return `npx --yes --package @dmsdc-ai/aigentry-deliberation deliberation-install`;
|
|
213
213
|
}
|
|
214
214
|
if (serverName.includes("brain") || serverName.includes("aigentry-brain")) {
|
|
215
215
|
return `npx @dmsdc-ai/aigentry-brain install`;
|
|
@@ -223,7 +223,7 @@ function suggestFix(serverName, server, issue) {
|
|
|
223
223
|
case "temp_path": {
|
|
224
224
|
const tempArg = (server.args || []).find((a) => isTempPath(a));
|
|
225
225
|
if (serverName === "deliberation" || serverName === "mcp-deliberation") {
|
|
226
|
-
return `npx @dmsdc-ai/aigentry-deliberation install # reinstall to permanent path`;
|
|
226
|
+
return `npx --yes --package @dmsdc-ai/aigentry-deliberation deliberation-install # reinstall to permanent path`;
|
|
227
227
|
}
|
|
228
228
|
if (serverName.includes("brain") || serverName.includes("aigentry-brain")) {
|
|
229
229
|
return `npx @dmsdc-ai/aigentry-brain install # reinstall to permanent path`;
|
|
@@ -357,7 +357,7 @@ function runDiagnostics() {
|
|
|
357
357
|
if (mod.includes("aigentry-brain") || mod.includes("brain")) {
|
|
358
358
|
fix = `npx @dmsdc-ai/aigentry-brain install # temporary path → reinstall to permanent path`;
|
|
359
359
|
} else if (mod.includes("deliberation") || mod.includes("mcp-deliberation")) {
|
|
360
|
-
fix = `npx @dmsdc-ai/aigentry-deliberation install # temporary path
|
|
360
|
+
fix = `npx --yes --package @dmsdc-ai/aigentry-deliberation deliberation-install # temporary path -> reinstall to permanent path`;
|
|
361
361
|
} else {
|
|
362
362
|
fix = `# temporary path (${mod}) — change to permanent path in MCP config`;
|
|
363
363
|
}
|
|
@@ -387,7 +387,7 @@ function runDiagnostics() {
|
|
|
387
387
|
} else {
|
|
388
388
|
totalIssues++;
|
|
389
389
|
console.log(` ❌ Server file not found: ${selfPath}`);
|
|
390
|
-
console.log(` fix: npx @dmsdc-ai/aigentry-deliberation install`);
|
|
390
|
+
console.log(` fix: npx --yes --package @dmsdc-ai/aigentry-deliberation deliberation-install`);
|
|
391
391
|
}
|
|
392
392
|
|
|
393
393
|
// Check node_modules
|
|
@@ -407,7 +407,7 @@ function runDiagnostics() {
|
|
|
407
407
|
} catch {
|
|
408
408
|
totalIssues++;
|
|
409
409
|
console.log(` ❌ Syntax error detected`);
|
|
410
|
-
console.log(` fix: npx @dmsdc-ai/aigentry-deliberation install`);
|
|
410
|
+
console.log(` fix: npx --yes --package @dmsdc-ai/aigentry-deliberation deliberation-install`);
|
|
411
411
|
}
|
|
412
412
|
|
|
413
413
|
// ── Summary ──
|