chorus-codes 0.7.0 → 0.7.2
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/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +3 -3
- package/.next/cache/.previewinfo +1 -1
- package/.next/cache/.rscinfo +1 -1
- package/.next/cache/.tsbuildinfo +1 -1
- package/.next/fallback-build-manifest.json +3 -3
- package/.next/prerender-manifest.json +3 -3
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +1 -1
- package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/new.html +1 -1
- package/.next/server/app/new.rsc +1 -1
- package/.next/server/app/new.segments/_full.segment.rsc +1 -1
- package/.next/server/app/new.segments/_head.segment.rsc +1 -1
- package/.next/server/app/new.segments/_index.segment.rsc +1 -1
- package/.next/server/app/new.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/new.segments/new/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/new.segments/new.segment.rsc +1 -1
- package/.next/server/app/onboarding.html +1 -1
- package/.next/server/app/onboarding.rsc +1 -1
- package/.next/server/app/onboarding.segments/_full.segment.rsc +1 -1
- package/.next/server/app/onboarding.segments/_head.segment.rsc +1 -1
- package/.next/server/app/onboarding.segments/_index.segment.rsc +1 -1
- package/.next/server/app/onboarding.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/onboarding.segments/onboarding/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/onboarding.segments/onboarding.segment.rsc +1 -1
- package/.next/server/app/personas.html +1 -1
- package/.next/server/app/personas.rsc +1 -1
- package/.next/server/app/personas.segments/_full.segment.rsc +1 -1
- package/.next/server/app/personas.segments/_head.segment.rsc +1 -1
- package/.next/server/app/personas.segments/_index.segment.rsc +1 -1
- package/.next/server/app/personas.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/personas.segments/personas/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/personas.segments/personas.segment.rsc +1 -1
- package/.next/server/app/settings.html +1 -1
- package/.next/server/app/settings.rsc +1 -1
- package/.next/server/app/settings.segments/_full.segment.rsc +1 -1
- package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings.segments/_index.segment.rsc +1 -1
- package/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/settings.segments/settings.segment.rsc +1 -1
- package/.next/server/app/templates.html +1 -1
- package/.next/server/app/templates.rsc +1 -1
- package/.next/server/app/templates.segments/_full.segment.rsc +1 -1
- package/.next/server/app/templates.segments/_head.segment.rsc +1 -1
- package/.next/server/app/templates.segments/_index.segment.rsc +1 -1
- package/.next/server/app/templates.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/templates.segments/templates/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/templates.segments/templates.segment.rsc +1 -1
- package/.next/server/middleware-build-manifest.js +3 -3
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/trace +1 -1
- package/.next/trace-build +1 -1
- package/README.md +38 -15
- package/dist/cli/commands/doctor.js +116 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/init.js +211 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/start.js +298 -0
- package/dist/cli/commands/start.js.map +1 -0
- package/dist/cli/commands/status.js +54 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/stop.js +97 -0
- package/dist/cli/commands/stop.js.map +1 -0
- package/dist/cli/connect.js +108 -0
- package/dist/cli/connect.js.map +1 -0
- package/dist/cli/index.js +99 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/port-utils.js +260 -0
- package/dist/cli/port-utils.js.map +1 -0
- package/dist/cli/runtime-env.js +60 -0
- package/dist/cli/runtime-env.js.map +1 -0
- package/dist/cli/shared.js +54 -0
- package/dist/cli/shared.js.map +1 -0
- package/dist/cli/ui.js +60 -0
- package/dist/cli/ui.js.map +1 -0
- package/dist/daemon/agents/claude.js +98 -0
- package/dist/daemon/agents/claude.js.map +1 -0
- package/dist/daemon/agents/codex.js +160 -0
- package/dist/daemon/agents/codex.js.map +1 -0
- package/dist/daemon/agents/gemini.js +111 -0
- package/dist/daemon/agents/gemini.js.map +1 -0
- package/dist/daemon/agents/index.js +59 -0
- package/dist/daemon/agents/index.js.map +1 -0
- package/dist/daemon/agents/kimi.js +206 -0
- package/dist/daemon/agents/kimi.js.map +1 -0
- package/dist/daemon/agents/opencode.js +228 -0
- package/dist/daemon/agents/opencode.js.map +1 -0
- package/dist/daemon/agents/openrouter.js +274 -0
- package/dist/daemon/agents/openrouter.js.map +1 -0
- package/dist/daemon/agents/parsers/claude.js +63 -0
- package/dist/daemon/agents/parsers/claude.js.map +1 -0
- package/dist/daemon/agents/parsers/codex.js +51 -0
- package/dist/daemon/agents/parsers/codex.js.map +1 -0
- package/dist/daemon/agents/parsers/gemini.js +144 -0
- package/dist/daemon/agents/parsers/gemini.js.map +1 -0
- package/dist/daemon/agents/parsers/index.js +31 -0
- package/dist/daemon/agents/parsers/index.js.map +1 -0
- package/dist/daemon/agents/parsers/kimi.js +8 -0
- package/dist/daemon/agents/parsers/kimi.js.map +1 -0
- package/dist/daemon/agents/parsers/opencode.js +105 -0
- package/dist/daemon/agents/parsers/opencode.js.map +1 -0
- package/dist/daemon/agents/parsers/openrouter.js +69 -0
- package/dist/daemon/agents/parsers/openrouter.js.map +1 -0
- package/dist/daemon/agents/parsers/shared.js +17 -0
- package/dist/daemon/agents/parsers/shared.js.map +1 -0
- package/dist/daemon/agents/preflight.js +83 -0
- package/dist/daemon/agents/preflight.js.map +1 -0
- package/dist/daemon/agents/quote.js +45 -0
- package/dist/daemon/agents/quote.js.map +1 -0
- package/dist/daemon/agents/sandbox-guard.js +69 -0
- package/dist/daemon/agents/sandbox-guard.js.map +1 -0
- package/dist/daemon/agents/types.js +6 -0
- package/dist/daemon/agents/types.js.map +1 -0
- package/dist/daemon/api-response.js +65 -0
- package/dist/daemon/api-response.js.map +1 -0
- package/dist/daemon/error-detector.js +329 -0
- package/dist/daemon/error-detector.js.map +1 -0
- package/dist/daemon/headless.js +533 -0
- package/dist/daemon/headless.js.map +1 -0
- package/dist/daemon/index.js +333 -0
- package/dist/daemon/index.js.map +1 -0
- package/dist/daemon/openrouter.js +192 -0
- package/dist/daemon/openrouter.js.map +1 -0
- package/dist/daemon/orchestrators/claude.js +163 -0
- package/dist/daemon/orchestrators/claude.js.map +1 -0
- package/dist/daemon/orchestrators/codex.js +101 -0
- package/dist/daemon/orchestrators/codex.js.map +1 -0
- package/dist/daemon/orchestrators/cursor-windsurf.js +118 -0
- package/dist/daemon/orchestrators/cursor-windsurf.js.map +1 -0
- package/dist/daemon/orchestrators/gemini.js +108 -0
- package/dist/daemon/orchestrators/gemini.js.map +1 -0
- package/dist/daemon/orchestrators/index.js +90 -0
- package/dist/daemon/orchestrators/index.js.map +1 -0
- package/dist/daemon/orchestrators/kimi.js +108 -0
- package/dist/daemon/orchestrators/kimi.js.map +1 -0
- package/dist/daemon/orchestrators/opencode.js +152 -0
- package/dist/daemon/orchestrators/opencode.js.map +1 -0
- package/dist/daemon/orchestrators/shared.js +60 -0
- package/dist/daemon/orchestrators/shared.js.map +1 -0
- package/dist/daemon/output-watcher.js +131 -0
- package/dist/daemon/output-watcher.js.map +1 -0
- package/dist/daemon/participant-aborts.js +123 -0
- package/dist/daemon/participant-aborts.js.map +1 -0
- package/dist/daemon/reaper.js +46 -0
- package/dist/daemon/reaper.js.map +1 -0
- package/dist/daemon/routes/chats-events.js +62 -0
- package/dist/daemon/routes/chats-events.js.map +1 -0
- package/dist/daemon/routes/chats-stream.js +241 -0
- package/dist/daemon/routes/chats-stream.js.map +1 -0
- package/dist/daemon/routes/chats-validation.js +13 -0
- package/dist/daemon/routes/chats-validation.js.map +1 -0
- package/dist/daemon/routes/chats.js +545 -0
- package/dist/daemon/routes/chats.js.map +1 -0
- package/dist/daemon/routes/openrouter.js +103 -0
- package/dist/daemon/routes/openrouter.js.map +1 -0
- package/dist/daemon/routes/settings.js +199 -0
- package/dist/daemon/routes/settings.js.map +1 -0
- package/dist/daemon/routes/stats.js +155 -0
- package/dist/daemon/routes/stats.js.map +1 -0
- package/dist/daemon/routes/system.js +208 -0
- package/dist/daemon/routes/system.js.map +1 -0
- package/dist/daemon/routes/templates-personas.js +254 -0
- package/dist/daemon/routes/templates-personas.js.map +1 -0
- package/dist/daemon/routes/voices.js +139 -0
- package/dist/daemon/routes/voices.js.map +1 -0
- package/dist/daemon/runner/doer-driver.js +346 -0
- package/dist/daemon/runner/doer-driver.js.map +1 -0
- package/dist/daemon/runner/doer.js +336 -0
- package/dist/daemon/runner/doer.js.map +1 -0
- package/dist/daemon/runner/prior-round.js +140 -0
- package/dist/daemon/runner/prior-round.js.map +1 -0
- package/dist/daemon/runner/prompt-builder.js +292 -0
- package/dist/daemon/runner/prompt-builder.js.map +1 -0
- package/dist/daemon/runner/review-only-phase.js +103 -0
- package/dist/daemon/runner/review-only-phase.js.map +1 -0
- package/dist/daemon/runner/reviewer-driver.js +410 -0
- package/dist/daemon/runner/reviewer-driver.js.map +1 -0
- package/dist/daemon/runner/reviewer.js +384 -0
- package/dist/daemon/runner/reviewer.js.map +1 -0
- package/dist/daemon/runner/run-with-fallback.js +56 -0
- package/dist/daemon/runner/run-with-fallback.js.map +1 -0
- package/dist/daemon/runner/sanitize-name.js +8 -0
- package/dist/daemon/runner/sanitize-name.js.map +1 -0
- package/dist/daemon/runner/stream-file-writer.js +116 -0
- package/dist/daemon/runner/stream-file-writer.js.map +1 -0
- package/dist/daemon/runner/swap-sidecar.js +102 -0
- package/dist/daemon/runner/swap-sidecar.js.map +1 -0
- package/dist/daemon/runner/template-fallback.js +119 -0
- package/dist/daemon/runner/template-fallback.js.map +1 -0
- package/dist/daemon/runner/types.js +3 -0
- package/dist/daemon/runner/types.js.map +1 -0
- package/dist/daemon/runner/verdict.js +51 -0
- package/dist/daemon/runner/verdict.js.map +1 -0
- package/dist/daemon/runner-multiplex.js +364 -0
- package/dist/daemon/runner-multiplex.js.map +1 -0
- package/dist/daemon/runner.js +427 -0
- package/dist/daemon/runner.js.map +1 -0
- package/dist/daemon/ship.js +340 -0
- package/dist/daemon/ship.js.map +1 -0
- package/dist/daemon/template-cache.js +37 -0
- package/dist/daemon/template-cache.js.map +1 -0
- package/dist/daemon/tmux-types.js +9 -0
- package/dist/daemon/tmux-types.js.map +1 -0
- package/dist/daemon/tmux.js +341 -0
- package/dist/daemon/tmux.js.map +1 -0
- package/dist/lib/atomic-write.js +55 -0
- package/dist/lib/atomic-write.js.map +1 -0
- package/dist/lib/chat-events-bus.js +27 -0
- package/dist/lib/chat-events-bus.js.map +1 -0
- package/dist/lib/chat-slug.js +105 -0
- package/dist/lib/chat-slug.js.map +1 -0
- package/dist/lib/cli-detect.js +388 -0
- package/dist/lib/cli-detect.js.map +1 -0
- package/dist/lib/cli-health.js +156 -0
- package/dist/lib/cli-health.js.map +1 -0
- package/dist/lib/cli-paths.js +113 -0
- package/dist/lib/cli-paths.js.map +1 -0
- package/dist/lib/cli-precheck.js +141 -0
- package/dist/lib/cli-precheck.js.map +1 -0
- package/dist/lib/db/chats.js +244 -0
- package/dist/lib/db/chats.js.map +1 -0
- package/dist/lib/db/connection.js +254 -0
- package/dist/lib/db/connection.js.map +1 -0
- package/dist/lib/db/index.js +34 -0
- package/dist/lib/db/index.js.map +1 -0
- package/dist/lib/db/personas.js +65 -0
- package/dist/lib/db/personas.js.map +1 -0
- package/dist/lib/db/phase-events.js +172 -0
- package/dist/lib/db/phase-events.js.map +1 -0
- package/dist/lib/db/secrets.js +53 -0
- package/dist/lib/db/secrets.js.map +1 -0
- package/dist/lib/db/settings.js +47 -0
- package/dist/lib/db/settings.js.map +1 -0
- package/dist/lib/db/templates.js +75 -0
- package/dist/lib/db/templates.js.map +1 -0
- package/dist/lib/db/voices.js +184 -0
- package/dist/lib/db/voices.js.map +1 -0
- package/dist/lib/lineage-maps.js +200 -0
- package/dist/lib/lineage-maps.js.map +1 -0
- package/dist/lib/logger.js +186 -0
- package/dist/lib/logger.js.map +1 -0
- package/dist/lib/personas.js +117 -0
- package/dist/lib/personas.js.map +1 -0
- package/dist/lib/runtime-path.js +222 -0
- package/dist/lib/runtime-path.js.map +1 -0
- package/dist/lib/settings/billing.js +58 -0
- package/dist/lib/settings/billing.js.map +1 -0
- package/dist/lib/settings/permissions.js +81 -0
- package/dist/lib/settings/permissions.js.map +1 -0
- package/dist/lib/settings/transport.js +113 -0
- package/dist/lib/settings/transport.js.map +1 -0
- package/dist/lib/telemetry.js +290 -0
- package/dist/lib/telemetry.js.map +1 -0
- package/dist/lib/template-schema.js +319 -0
- package/dist/lib/template-schema.js.map +1 -0
- package/dist/lib/template-validation.js +82 -0
- package/dist/lib/template-validation.js.map +1 -0
- package/dist/lib/voices.js +533 -0
- package/dist/lib/voices.js.map +1 -0
- package/dist/mcp/client.js +138 -0
- package/dist/mcp/client.js.map +1 -0
- package/dist/mcp/index.js +178 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/tools.js +355 -0
- package/dist/mcp/tools.js.map +1 -0
- package/package.json +2 -1
- package/.next/dev/static/chunks/05w9_next_dist_shared_lib_0beh7rg._.js +0 -6077
- package/.next/dev/static/chunks/05w9_next_dist_shared_lib_0beh7rg._.js.map +0 -69
- package/.next/dev/static/chunks/05w9_next_dist_shared_lib_0pjsj.j._.js +0 -6318
- package/.next/dev/static/chunks/05w9_next_dist_shared_lib_0pjsj.j._.js.map +0 -71
- package/.next/dev/types/cache-life.d.ts +0 -145
- package/.next/dev/types/routes.d.ts +0 -84
- package/.next/dev/types/validator.ts +0 -178
- /package/.next/static/{dJlbRLlhISA0JGtHKVqgQ → 9cD3yIOGe_Aqr17uJHTQS}/_buildManifest.js +0 -0
- /package/.next/static/{dJlbRLlhISA0JGtHKVqgQ → 9cD3yIOGe_Aqr17uJHTQS}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{dJlbRLlhISA0JGtHKVqgQ → 9cD3yIOGe_Aqr17uJHTQS}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,355 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Chorus MCP tools — 7 tools wrapping daemon REST API.
|
|
4
|
+
* Each tool has a Zod input schema and calls daemonFetch.
|
|
5
|
+
*/
|
|
6
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
+
};
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.InvokePersonaSchema = exports.ListPersonasSchema = exports.ListTemplatesSchema = exports.CancelChatSchema = exports.ResumeChatSchema = exports.ListBlockedSchema = exports.GetChatStatusSchema = exports.WaitForChatSchema = exports.CreateChatSchema = void 0;
|
|
11
|
+
exports.createChat = createChat;
|
|
12
|
+
exports.waitForChat = waitForChat;
|
|
13
|
+
exports.getChatStatus = getChatStatus;
|
|
14
|
+
exports.listBlocked = listBlocked;
|
|
15
|
+
exports.resumeChat = resumeChat;
|
|
16
|
+
exports.cancelChat = cancelChat;
|
|
17
|
+
exports.listTemplates = listTemplates;
|
|
18
|
+
exports.listPersonas = listPersonas;
|
|
19
|
+
exports.invokePersona = invokePersona;
|
|
20
|
+
const zod_1 = require("zod");
|
|
21
|
+
const yaml_1 = __importDefault(require("yaml"));
|
|
22
|
+
const client_1 = require("./client");
|
|
23
|
+
function chatRowToRef(row) {
|
|
24
|
+
const webBase = process.env.CHORUS_WEB_URL || "http://127.0.0.1:5050";
|
|
25
|
+
// Prefer slug for the user-visible URL (it's what the cockpit uses
|
|
26
|
+
// too). Falls back to ULID for legacy rows the daemon couldn't
|
|
27
|
+
// backfill — both forms resolve identically server-side.
|
|
28
|
+
const segment = row.slug || row.id;
|
|
29
|
+
return {
|
|
30
|
+
chatId: row.id,
|
|
31
|
+
status: row.status,
|
|
32
|
+
url: `${webBase}/runs/${segment}`,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
function chatRowToStatus(row) {
|
|
36
|
+
return {
|
|
37
|
+
chatId: row.id,
|
|
38
|
+
status: row.status,
|
|
39
|
+
phase: row.current_phase_idx,
|
|
40
|
+
blocked: row.status === "blocked",
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
function parseTemplateRow(row) {
|
|
44
|
+
let parsed = {};
|
|
45
|
+
if (row.yaml) {
|
|
46
|
+
try {
|
|
47
|
+
parsed = yaml_1.default.parse(row.yaml) ?? {};
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
// ignore — fall through to id-only fallback
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
const lineages = new Set();
|
|
54
|
+
for (const p of parsed.phases ?? []) {
|
|
55
|
+
if (p.doer?.lineage)
|
|
56
|
+
lineages.add(p.doer.lineage);
|
|
57
|
+
for (const c of p.reviewer?.candidates ?? []) {
|
|
58
|
+
if (c.lineage)
|
|
59
|
+
lineages.add(c.lineage);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return {
|
|
63
|
+
id: row.id,
|
|
64
|
+
name: parsed.name ?? row.id,
|
|
65
|
+
description: parsed.description ?? "",
|
|
66
|
+
lineages: Array.from(lineages),
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
// ─── Input schemas ───────────────────────────────────────────────────────
|
|
70
|
+
/**
|
|
71
|
+
* Pre-launch (v0.7) naming sweep landed `templateId` as the canonical
|
|
72
|
+
* field — matches the REST POST /chats body shape and the
|
|
73
|
+
* `<resource>Id` pattern used elsewhere (`chatId`, `personaId`).
|
|
74
|
+
* The legacy `template` alias is accepted so existing scripts keep
|
|
75
|
+
* working through v0.7; will be dropped in v0.8.
|
|
76
|
+
*/
|
|
77
|
+
exports.CreateChatSchema = zod_1.z
|
|
78
|
+
.object({
|
|
79
|
+
work: zod_1.z.string().min(1, "work prompt is required"),
|
|
80
|
+
templateId: zod_1.z.string().optional(),
|
|
81
|
+
template: zod_1.z.string().optional(),
|
|
82
|
+
files: zod_1.z.array(zod_1.z.string()).optional(),
|
|
83
|
+
/**
|
|
84
|
+
* Artifact text for review-only templates (e.g. `templateId: "review-only"`).
|
|
85
|
+
* Required when the chosen template's first phase has `kind: review_only`.
|
|
86
|
+
* Ignored for full-pipeline templates. Capped by the template's
|
|
87
|
+
* artifact.maxBytes (default 1 MiB).
|
|
88
|
+
*/
|
|
89
|
+
artifact: zod_1.z.string().optional(),
|
|
90
|
+
})
|
|
91
|
+
.transform((input) => ({
|
|
92
|
+
...input,
|
|
93
|
+
// `??` only falls through on null/undefined; an empty string would
|
|
94
|
+
// pass through and the daemon would reject it. Treat empty as
|
|
95
|
+
// missing so the legacy alias / default fires.
|
|
96
|
+
templateId: (input.templateId && input.templateId.length > 0
|
|
97
|
+
? input.templateId
|
|
98
|
+
: undefined) ??
|
|
99
|
+
(input.template && input.template.length > 0
|
|
100
|
+
? input.template
|
|
101
|
+
: undefined) ??
|
|
102
|
+
"code-review",
|
|
103
|
+
}));
|
|
104
|
+
exports.WaitForChatSchema = zod_1.z.object({
|
|
105
|
+
chatId: zod_1.z.string().min(1, "chatId is required"),
|
|
106
|
+
timeoutSec: zod_1.z.number().int().positive().optional().default(600),
|
|
107
|
+
});
|
|
108
|
+
exports.GetChatStatusSchema = zod_1.z.object({
|
|
109
|
+
chatId: zod_1.z.string().min(1, "chatId is required"),
|
|
110
|
+
});
|
|
111
|
+
exports.ListBlockedSchema = zod_1.z.object({});
|
|
112
|
+
exports.ResumeChatSchema = zod_1.z.object({
|
|
113
|
+
chatId: zod_1.z.string().min(1, "chatId is required"),
|
|
114
|
+
answer: zod_1.z.string().min(1, "answer is required"),
|
|
115
|
+
});
|
|
116
|
+
exports.CancelChatSchema = zod_1.z.object({
|
|
117
|
+
chatId: zod_1.z.string().min(1, "chatId is required"),
|
|
118
|
+
});
|
|
119
|
+
exports.ListTemplatesSchema = zod_1.z.object({});
|
|
120
|
+
exports.ListPersonasSchema = zod_1.z.object({});
|
|
121
|
+
exports.InvokePersonaSchema = zod_1.z
|
|
122
|
+
.object({
|
|
123
|
+
personaId: zod_1.z.string().min(1, "personaId is required"),
|
|
124
|
+
brief: zod_1.z.string().min(1, "brief is required"),
|
|
125
|
+
files: zod_1.z.array(zod_1.z.string()).optional(),
|
|
126
|
+
templateId: zod_1.z.string().optional(),
|
|
127
|
+
template: zod_1.z.string().optional(),
|
|
128
|
+
repoPath: zod_1.z.string().optional(),
|
|
129
|
+
})
|
|
130
|
+
.transform((input) => ({
|
|
131
|
+
...input,
|
|
132
|
+
// `??` only falls through on null/undefined; an empty string would
|
|
133
|
+
// pass through and the daemon would reject it. Treat empty as
|
|
134
|
+
// missing so the legacy alias / default fires.
|
|
135
|
+
templateId: (input.templateId && input.templateId.length > 0
|
|
136
|
+
? input.templateId
|
|
137
|
+
: undefined) ??
|
|
138
|
+
(input.template && input.template.length > 0
|
|
139
|
+
? input.template
|
|
140
|
+
: undefined) ??
|
|
141
|
+
"code-review",
|
|
142
|
+
}));
|
|
143
|
+
// ─── Output schemas ─────────────────────────────────────────────────────
|
|
144
|
+
const ChatRefSchema = zod_1.z.object({
|
|
145
|
+
chatId: zod_1.z.string(),
|
|
146
|
+
status: zod_1.z.string(),
|
|
147
|
+
url: zod_1.z.string(),
|
|
148
|
+
});
|
|
149
|
+
const ChatStatusSchema = zod_1.z.object({
|
|
150
|
+
chatId: zod_1.z.string(),
|
|
151
|
+
status: zod_1.z.string(),
|
|
152
|
+
phase: zod_1.z.number().optional(),
|
|
153
|
+
progress: zod_1.z.number().optional(),
|
|
154
|
+
blocked: zod_1.z.boolean().optional(),
|
|
155
|
+
});
|
|
156
|
+
const ChatResultSchema = zod_1.z.object({
|
|
157
|
+
status: zod_1.z.string(),
|
|
158
|
+
verdict: zod_1.z.string().optional(),
|
|
159
|
+
summary: zod_1.z.string().optional(),
|
|
160
|
+
blocked: zod_1.z.boolean().optional(),
|
|
161
|
+
});
|
|
162
|
+
const BlockedChatSchema = zod_1.z.object({
|
|
163
|
+
chatId: zod_1.z.string(),
|
|
164
|
+
work: zod_1.z.string(),
|
|
165
|
+
blockedReason: zod_1.z.string(),
|
|
166
|
+
since: zod_1.z.number(),
|
|
167
|
+
});
|
|
168
|
+
const TemplateSchema = zod_1.z.object({
|
|
169
|
+
id: zod_1.z.string(),
|
|
170
|
+
name: zod_1.z.string(),
|
|
171
|
+
description: zod_1.z.string(),
|
|
172
|
+
lineages: zod_1.z.array(zod_1.z.string()).optional(),
|
|
173
|
+
});
|
|
174
|
+
const PersonaSchema = zod_1.z.object({
|
|
175
|
+
id: zod_1.z.string(),
|
|
176
|
+
label: zod_1.z.string(),
|
|
177
|
+
oneLiner: zod_1.z.string(),
|
|
178
|
+
recommendedLineage: zod_1.z.string().nullable().optional(),
|
|
179
|
+
builtin: zod_1.z.boolean(),
|
|
180
|
+
});
|
|
181
|
+
function personaRowToRef(row) {
|
|
182
|
+
return {
|
|
183
|
+
id: row.id,
|
|
184
|
+
label: row.label,
|
|
185
|
+
oneLiner: row.one_liner,
|
|
186
|
+
recommendedLineage: row.recommended_lineage,
|
|
187
|
+
builtin: Boolean(row.builtin),
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
// ─── Tools ──────────────────────────────────────────────────────────────
|
|
191
|
+
/**
|
|
192
|
+
* Create a new chat.
|
|
193
|
+
* Returns immediately with chatId and status.
|
|
194
|
+
*/
|
|
195
|
+
async function createChat(input) {
|
|
196
|
+
const parsed = exports.CreateChatSchema.parse(input);
|
|
197
|
+
const result = await (0, client_1.daemonFetch)("/chats", {
|
|
198
|
+
method: "POST",
|
|
199
|
+
body: JSON.stringify({
|
|
200
|
+
work: parsed.work,
|
|
201
|
+
templateId: parsed.templateId,
|
|
202
|
+
files: parsed.files,
|
|
203
|
+
...(parsed.artifact !== undefined ? { artifact: parsed.artifact } : {}),
|
|
204
|
+
}),
|
|
205
|
+
});
|
|
206
|
+
return ChatRefSchema.parse(chatRowToRef(result));
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Long-poll a chat until terminal state.
|
|
210
|
+
* Emits progress events via SSE stream.
|
|
211
|
+
* Resolves when status flips to terminal.
|
|
212
|
+
*/
|
|
213
|
+
async function waitForChat(input, onProgress) {
|
|
214
|
+
const parsed = exports.WaitForChatSchema.parse(input);
|
|
215
|
+
for await (const event of (0, client_1.streamChat)(parsed.chatId, parsed.timeoutSec)) {
|
|
216
|
+
onProgress(event);
|
|
217
|
+
// Check if we've reached a terminal state
|
|
218
|
+
if (event && typeof event === "object") {
|
|
219
|
+
const status = event.status;
|
|
220
|
+
if (status === "approved" ||
|
|
221
|
+
status === "merged" ||
|
|
222
|
+
status === "blocked" ||
|
|
223
|
+
status === "cancelled" ||
|
|
224
|
+
status === "failed") {
|
|
225
|
+
return ChatResultSchema.parse(event);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
// If stream closed without reaching terminal, fetch final status
|
|
230
|
+
const result = await (0, client_1.daemonFetch)(`/chats/${parsed.chatId}`);
|
|
231
|
+
return ChatResultSchema.parse(result);
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Get current chat status without blocking.
|
|
235
|
+
*/
|
|
236
|
+
async function getChatStatus(input) {
|
|
237
|
+
const parsed = exports.GetChatStatusSchema.parse(input);
|
|
238
|
+
const result = await (0, client_1.daemonFetch)(`/chats/${parsed.chatId}`);
|
|
239
|
+
return ChatStatusSchema.parse(chatRowToStatus(result));
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* List all blocked chats.
|
|
243
|
+
*/
|
|
244
|
+
async function listBlocked(input) {
|
|
245
|
+
exports.ListBlockedSchema.parse(input);
|
|
246
|
+
// input is empty object, but we validate it anyway for schema consistency
|
|
247
|
+
const result = await (0, client_1.daemonFetch)("/blocked");
|
|
248
|
+
// Daemon now returns the canonical list envelope `{items, total, hasMore}`.
|
|
249
|
+
// Array fallback covers legacy callers; `.chats` fallback covers an even
|
|
250
|
+
// older shape that lived briefly during the v0.6 daemon refactor.
|
|
251
|
+
const obj = result || {};
|
|
252
|
+
const rows = Array.isArray(result)
|
|
253
|
+
? result
|
|
254
|
+
: Array.isArray(obj.items)
|
|
255
|
+
? obj.items
|
|
256
|
+
: Array.isArray(obj.chats)
|
|
257
|
+
? obj.chats
|
|
258
|
+
: [];
|
|
259
|
+
const chats = zod_1.z.array(BlockedChatSchema).parse(rows.map((row) => ({
|
|
260
|
+
chatId: row.id,
|
|
261
|
+
work: row.work,
|
|
262
|
+
blockedReason: row.ship_error ?? "Awaiting user input",
|
|
263
|
+
since: row.updated_at,
|
|
264
|
+
})));
|
|
265
|
+
return { chats };
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Resume a blocked chat with a user answer.
|
|
269
|
+
*/
|
|
270
|
+
async function resumeChat(input) {
|
|
271
|
+
const parsed = exports.ResumeChatSchema.parse(input);
|
|
272
|
+
const result = await (0, client_1.daemonFetch)(`/chats/${parsed.chatId}/resume`, {
|
|
273
|
+
method: "POST",
|
|
274
|
+
body: JSON.stringify({ answer: parsed.answer }),
|
|
275
|
+
});
|
|
276
|
+
return { ok: true, status: ChatStatusSchema.parse(chatRowToStatus(result)) };
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Cancel a chat.
|
|
280
|
+
*/
|
|
281
|
+
async function cancelChat(input) {
|
|
282
|
+
const parsed = exports.CancelChatSchema.parse(input);
|
|
283
|
+
await (0, client_1.daemonFetch)(`/chats/${parsed.chatId}/cancel`, {
|
|
284
|
+
method: "POST",
|
|
285
|
+
});
|
|
286
|
+
return { ok: true };
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* List all available templates.
|
|
290
|
+
*/
|
|
291
|
+
async function listTemplates(input) {
|
|
292
|
+
exports.ListTemplatesSchema.parse(input);
|
|
293
|
+
const result = await (0, client_1.daemonFetch)("/templates");
|
|
294
|
+
const obj = result || {};
|
|
295
|
+
const rows = Array.isArray(result)
|
|
296
|
+
? result
|
|
297
|
+
: Array.isArray(obj.items)
|
|
298
|
+
? obj.items
|
|
299
|
+
: Array.isArray(obj.templates)
|
|
300
|
+
? obj.templates
|
|
301
|
+
: [];
|
|
302
|
+
const templates = zod_1.z.array(TemplateSchema).parse(rows.map(parseTemplateRow));
|
|
303
|
+
return { templates };
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* List all personas (built-in + user-defined).
|
|
307
|
+
* Returns enough metadata for a picker — full system prompt is fetched
|
|
308
|
+
* via /personas/:id when needed.
|
|
309
|
+
*/
|
|
310
|
+
async function listPersonas(input) {
|
|
311
|
+
exports.ListPersonasSchema.parse(input);
|
|
312
|
+
const result = await (0, client_1.daemonFetch)("/personas");
|
|
313
|
+
const obj = result || {};
|
|
314
|
+
const rows = Array.isArray(result)
|
|
315
|
+
? result
|
|
316
|
+
: Array.isArray(obj.items)
|
|
317
|
+
? obj.items
|
|
318
|
+
: Array.isArray(obj.personas)
|
|
319
|
+
? obj.personas
|
|
320
|
+
: [];
|
|
321
|
+
const personas = zod_1.z.array(PersonaSchema).parse(rows.map(personaRowToRef));
|
|
322
|
+
return { personas };
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* Fire a chat that wears a chosen persona.
|
|
326
|
+
*
|
|
327
|
+
* The persona's `system_prompt` is prepended to the user's brief so the
|
|
328
|
+
* downstream CLI sees both the worldview and the request. Voice routing is
|
|
329
|
+
* handled by the existing template machinery (template's `doer.lineage`
|
|
330
|
+
* decides which CLI runs); v0.7 keeps voice selection implicit via template
|
|
331
|
+
* choice and v0.8 will add explicit per-phase voice override.
|
|
332
|
+
*/
|
|
333
|
+
async function invokePersona(input) {
|
|
334
|
+
const parsed = exports.InvokePersonaSchema.parse(input);
|
|
335
|
+
// Pull full persona so we have the system_prompt.
|
|
336
|
+
const persona = await (0, client_1.daemonFetch)(`/personas/${encodeURIComponent(parsed.personaId)}`);
|
|
337
|
+
const composedBrief = [
|
|
338
|
+
`# Persona: ${persona.label}`,
|
|
339
|
+
persona.system_prompt.trim(),
|
|
340
|
+
`---`,
|
|
341
|
+
`# User request`,
|
|
342
|
+
parsed.brief.trim(),
|
|
343
|
+
].join("\n\n");
|
|
344
|
+
const result = await (0, client_1.daemonFetch)("/chats", {
|
|
345
|
+
method: "POST",
|
|
346
|
+
body: JSON.stringify({
|
|
347
|
+
work: composedBrief,
|
|
348
|
+
templateId: parsed.templateId,
|
|
349
|
+
files: parsed.files,
|
|
350
|
+
repoPath: parsed.repoPath,
|
|
351
|
+
}),
|
|
352
|
+
});
|
|
353
|
+
return ChatRefSchema.parse(chatRowToRef(result));
|
|
354
|
+
}
|
|
355
|
+
//# sourceMappingURL=tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "chorus-codes",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.2",
|
|
4
4
|
"description": "Driver-agnostic multi-LLM peer review for code decisions. Bring your own CLI; Chorus convenes 2-4 other LLMs to review the work before you ship.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "99x Agency",
|
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
"test": "vitest run",
|
|
29
29
|
"test:watch": "vitest",
|
|
30
30
|
"test:coverage": "vitest run --coverage",
|
|
31
|
+
"prepublishOnly": "rm -rf dist .next *.tsbuildinfo && pnpm build && pnpm build:server && test -f dist/cli/index.js && test -f dist/daemon/index.js && test -f dist/mcp/index.js",
|
|
31
32
|
"postinstall": "node scripts/postinstall.mjs"
|
|
32
33
|
},
|
|
33
34
|
"dependencies": {
|