chorus-codes 0.8.45 → 0.8.47

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.
Files changed (106) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +1 -1
  3. package/.next/build-manifest.json +2 -2
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  6. package/.next/server/app/_global-error.html +1 -1
  7. package/.next/server/app/_global-error.rsc +1 -1
  8. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  9. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  14. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  15. package/.next/server/app/_not-found.html +1 -1
  16. package/.next/server/app/_not-found.rsc +2 -2
  17. package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  18. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  19. package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  20. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  21. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  22. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  23. package/.next/server/app/connect/page_client-reference-manifest.js +1 -1
  24. package/.next/server/app/demo/[scenario]/page_client-reference-manifest.js +1 -1
  25. package/.next/server/app/new/page_client-reference-manifest.js +1 -1
  26. package/.next/server/app/new.html +1 -1
  27. package/.next/server/app/new.rsc +3 -3
  28. package/.next/server/app/new.segments/_full.segment.rsc +3 -3
  29. package/.next/server/app/new.segments/_head.segment.rsc +1 -1
  30. package/.next/server/app/new.segments/_index.segment.rsc +2 -2
  31. package/.next/server/app/new.segments/_tree.segment.rsc +2 -2
  32. package/.next/server/app/new.segments/new/__PAGE__.segment.rsc +2 -2
  33. package/.next/server/app/new.segments/new.segment.rsc +1 -1
  34. package/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  35. package/.next/server/app/onboarding.html +1 -1
  36. package/.next/server/app/onboarding.rsc +3 -3
  37. package/.next/server/app/onboarding.segments/_full.segment.rsc +3 -3
  38. package/.next/server/app/onboarding.segments/_head.segment.rsc +1 -1
  39. package/.next/server/app/onboarding.segments/_index.segment.rsc +2 -2
  40. package/.next/server/app/onboarding.segments/_tree.segment.rsc +2 -2
  41. package/.next/server/app/onboarding.segments/onboarding/__PAGE__.segment.rsc +2 -2
  42. package/.next/server/app/onboarding.segments/onboarding.segment.rsc +1 -1
  43. package/.next/server/app/page_client-reference-manifest.js +1 -1
  44. package/.next/server/app/personas/page_client-reference-manifest.js +1 -1
  45. package/.next/server/app/personas.html +1 -1
  46. package/.next/server/app/personas.rsc +3 -3
  47. package/.next/server/app/personas.segments/_full.segment.rsc +3 -3
  48. package/.next/server/app/personas.segments/_head.segment.rsc +1 -1
  49. package/.next/server/app/personas.segments/_index.segment.rsc +2 -2
  50. package/.next/server/app/personas.segments/_tree.segment.rsc +2 -2
  51. package/.next/server/app/personas.segments/personas/__PAGE__.segment.rsc +2 -2
  52. package/.next/server/app/personas.segments/personas.segment.rsc +1 -1
  53. package/.next/server/app/runs/[runId]/page_client-reference-manifest.js +1 -1
  54. package/.next/server/app/runs/page_client-reference-manifest.js +1 -1
  55. package/.next/server/app/settings/page.js +2 -2
  56. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  57. package/.next/server/app/settings/permissions/page_client-reference-manifest.js +1 -1
  58. package/.next/server/app/settings.html +1 -1
  59. package/.next/server/app/settings.rsc +3 -3
  60. package/.next/server/app/settings.segments/_full.segment.rsc +3 -3
  61. package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  62. package/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  63. package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  64. package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
  65. package/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  66. package/.next/server/app/templates/page_client-reference-manifest.js +1 -1
  67. package/.next/server/app/templates.html +1 -1
  68. package/.next/server/app/templates.rsc +3 -3
  69. package/.next/server/app/templates.segments/_full.segment.rsc +3 -3
  70. package/.next/server/app/templates.segments/_head.segment.rsc +1 -1
  71. package/.next/server/app/templates.segments/_index.segment.rsc +2 -2
  72. package/.next/server/app/templates.segments/_tree.segment.rsc +2 -2
  73. package/.next/server/app/templates.segments/templates/__PAGE__.segment.rsc +2 -2
  74. package/.next/server/app/templates.segments/templates.segment.rsc +1 -1
  75. package/.next/server/app-paths-manifest.json +1 -1
  76. package/.next/server/chunks/681.js +1 -1
  77. package/.next/server/middleware-build-manifest.js +1 -1
  78. package/.next/server/pages/404.html +1 -1
  79. package/.next/server/pages/500.html +1 -1
  80. package/.next/server/server-reference-manifest.json +1 -1
  81. package/.next/static/chunks/{641-8c9e921c7be99a9d.js → 641-81dca4fb9dc808be.js} +1 -1
  82. package/.next/static/chunks/app/settings/page-9e139cc529c0a91c.js +25 -0
  83. package/.next/static/css/e8fdba3e08fd4c61.css +3 -0
  84. package/.next/trace +20 -20
  85. package/.next/trace-build +1 -1
  86. package/dist/cli/commands/doctor.js +61 -0
  87. package/dist/cli/commands/doctor.js.map +1 -1
  88. package/dist/cli/commands/start.js +16 -0
  89. package/dist/cli/commands/start.js.map +1 -1
  90. package/dist/cli/runtime-env.js +41 -0
  91. package/dist/cli/runtime-env.js.map +1 -1
  92. package/dist/daemon/chat-gate.js +285 -0
  93. package/dist/daemon/chat-gate.js.map +1 -0
  94. package/dist/daemon/resource-stats.js +80 -0
  95. package/dist/daemon/resource-stats.js.map +1 -0
  96. package/dist/daemon/routes/settings.js +54 -0
  97. package/dist/daemon/routes/settings.js.map +1 -1
  98. package/dist/daemon/runner.js +48 -0
  99. package/dist/daemon/runner.js.map +1 -1
  100. package/dist/lib/settings/chat-concurrency.js +104 -0
  101. package/dist/lib/settings/chat-concurrency.js.map +1 -0
  102. package/package.json +19 -18
  103. package/.next/static/chunks/app/settings/page-e2f6b190d3794681.js +0 -25
  104. package/.next/static/css/e17f6c0e70cdd1f3.css +0 -3
  105. /package/.next/static/{K3ZP-A6lDlsvS8qZe3cKK → 9uY-aOhVgYBTVHI0RnVoe}/_buildManifest.js +0 -0
  106. /package/.next/static/{K3ZP-A6lDlsvS8qZe3cKK → 9uY-aOhVgYBTVHI0RnVoe}/_ssgManifest.js +0 -0
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ /**
3
+ * Lightweight resource stats for the chat-gate admission check.
4
+ *
5
+ * Pure-ish: reads `/proc/meminfo` + `os.loadavg()` synchronously. No
6
+ * subprocess, no network. Both calls are sub-millisecond on Linux.
7
+ * macOS has no /proc/meminfo — swap is reported as 0 free there, which
8
+ * effectively disables the swap-check on macOS (the gate's default
9
+ * `swapMinFreeMb=1024` would refuse every chat). Users on macOS should
10
+ * lower swapMinFreeMb to 0 if they want the gate active.
11
+ *
12
+ * Output shape kept narrow so the admit-decision function (in chat-gate)
13
+ * stays a pure function of (state, config) — no side effects, easy to
14
+ * unit-test.
15
+ */
16
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ var desc = Object.getOwnPropertyDescriptor(m, k);
19
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
20
+ desc = { enumerable: true, get: function() { return m[k]; } };
21
+ }
22
+ Object.defineProperty(o, k2, desc);
23
+ }) : (function(o, m, k, k2) {
24
+ if (k2 === undefined) k2 = k;
25
+ o[k2] = m[k];
26
+ }));
27
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
28
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
29
+ }) : function(o, v) {
30
+ o["default"] = v;
31
+ });
32
+ var __importStar = (this && this.__importStar) || (function () {
33
+ var ownKeys = function(o) {
34
+ ownKeys = Object.getOwnPropertyNames || function (o) {
35
+ var ar = [];
36
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
37
+ return ar;
38
+ };
39
+ return ownKeys(o);
40
+ };
41
+ return function (mod) {
42
+ if (mod && mod.__esModule) return mod;
43
+ var result = {};
44
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
45
+ __setModuleDefault(result, mod);
46
+ return result;
47
+ };
48
+ })();
49
+ Object.defineProperty(exports, "__esModule", { value: true });
50
+ exports.readResourceStats = readResourceStats;
51
+ const fs = __importStar(require("node:fs"));
52
+ const node_os_1 = require("node:os");
53
+ /**
54
+ * Read free swap from /proc/meminfo. Returns -1 (not 0) when
55
+ * unavailable so callers can distinguish "platform reports nothing"
56
+ * from "SwapFree is genuinely 0 — host is OOM-imminent".
57
+ */
58
+ function readSwapFreeMb() {
59
+ if ((0, node_os_1.platform)() !== 'linux')
60
+ return -1;
61
+ try {
62
+ const meminfo = fs.readFileSync('/proc/meminfo', 'utf-8');
63
+ const match = meminfo.match(/^SwapFree:\s+(\d+)\s+kB/m);
64
+ if (!match)
65
+ return -1;
66
+ return Math.floor(parseInt(match[1], 10) / 1024);
67
+ }
68
+ catch {
69
+ return -1;
70
+ }
71
+ }
72
+ /** Snapshot of current resource pressure. Called per admission attempt. */
73
+ function readResourceStats() {
74
+ return {
75
+ swapFreeMb: readSwapFreeMb(),
76
+ loadAvg1: (0, node_os_1.loadavg)()[0] ?? 0,
77
+ cpuCount: (0, node_os_1.cpus)().length,
78
+ };
79
+ }
80
+ //# sourceMappingURL=resource-stats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-stats.js","sourceRoot":"","sources":["../../src/daemon/resource-stats.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CH,8CAMC;AA9CD,4CAA8B;AAC9B,qCAAkD;AAqBlD;;;;GAIG;AACH,SAAS,cAAc;IACrB,IAAI,IAAA,kBAAQ,GAAE,KAAK,OAAO;QAAE,OAAO,CAAC,CAAC,CAAC;IACtC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QAC1D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QACxD,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,CAAC,CAAC;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;AACH,CAAC;AAED,2EAA2E;AAC3E,SAAgB,iBAAiB;IAC/B,OAAO;QACL,UAAU,EAAE,cAAc,EAAE;QAC5B,QAAQ,EAAE,IAAA,iBAAO,GAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3B,QAAQ,EAAE,IAAA,cAAI,GAAE,CAAC,MAAM;KACxB,CAAC;AACJ,CAAC"}
@@ -135,6 +135,60 @@ function registerSettingsRoutes(fastify) {
135
135
  return (0, api_response_js_1.errorResponse)('validation', message);
136
136
  }
137
137
  });
138
+ // ─── Chat concurrency (daemon-wide max-active-chats + resource caps) ─
139
+ // Distinct from cli-concurrency above: this caps the NUMBER OF CHATS
140
+ // that can fan out reviewers simultaneously, plus refuses admission
141
+ // when swap/load are under pressure. Added after the 2026-05-20
142
+ // incident where 3 concurrent chats × 8 reviewers each crushed the
143
+ // host (load 320, swap exhausted).
144
+ fastify.get('/settings/chat-concurrency', async () => {
145
+ try {
146
+ const { getChatConcurrency, _defaults } = await import('../../lib/settings/chat-concurrency.js');
147
+ const { snapshot } = await import('../chat-gate.js');
148
+ const { readResourceStats } = await import('../resource-stats.js');
149
+ return (0, api_response_js_1.successResponse)({
150
+ ...(await getChatConcurrency()),
151
+ defaults: _defaults,
152
+ // Live snapshot so the cockpit can show "currently 2/3 chats
153
+ // active, swap 4200MB free, load/core 1.2" alongside the
154
+ // sliders — actionable feedback rather than blind tuning.
155
+ live: {
156
+ ...snapshot(),
157
+ ...readResourceStats(),
158
+ },
159
+ });
160
+ }
161
+ catch (error) {
162
+ const message = error instanceof Error ? error.message : 'Unknown error';
163
+ return (0, api_response_js_1.errorResponse)('internal', message);
164
+ }
165
+ });
166
+ fastify.put('/settings/chat-concurrency', async (request) => {
167
+ try {
168
+ const { getChatConcurrency, setChatConcurrency, ChatConcurrencySchema, } = await import('../../lib/settings/chat-concurrency.js');
169
+ const current = await getChatConcurrency();
170
+ const body = request.body ?? {};
171
+ const merged = {
172
+ maxConcurrentChats: body.maxConcurrentChats ?? current.maxConcurrentChats,
173
+ swapMinFreeMb: body.swapMinFreeMb ?? current.swapMinFreeMb,
174
+ loadAvgMaxPerCore: body.loadAvgMaxPerCore ?? current.loadAvgMaxPerCore,
175
+ };
176
+ const validated = ChatConcurrencySchema.parse(merged);
177
+ await setChatConcurrency(validated);
178
+ // Poke the gate so a loosened cap (3 → 5, or 1024MB → 512MB)
179
+ // admits queued waiters immediately. Without this, queued chats
180
+ // would wait for an active chat to finish before the new cap
181
+ // takes effect — surprising UX. Convergent self-review (2/6
182
+ // reviewers on PR #64) flagged the gap.
183
+ const { pokeGate } = await import('../chat-gate.js');
184
+ pokeGate();
185
+ return (0, api_response_js_1.successResponse)(validated);
186
+ }
187
+ catch (error) {
188
+ const message = error instanceof Error ? error.message : 'Unknown error';
189
+ return (0, api_response_js_1.errorResponse)('validation', message);
190
+ }
191
+ });
138
192
  // ─── Telemetry (anonymous heartbeat opt-out) ─────────────────────────
139
193
  fastify.get('/settings/telemetry', async () => {
140
194
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../src/daemon/routes/settings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../src/daemon/routes/settings.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,7 @@ const atomic_write_js_1 = require("../lib/atomic-write.js");
23
23
  const index_js_1 = require("../lib/db/index.js");
24
24
  const logger_js_1 = require("../lib/logger.js");
25
25
  const template_schema_js_1 = require("../lib/template-schema.js");
26
+ const chat_gate_js_1 = require("./chat-gate.js");
26
27
  const doer_driver_js_1 = require("./runner/doer-driver.js");
27
28
  const prior_round_js_1 = require("./runner/prior-round.js");
28
29
  const reviewer_driver_js_1 = require("./runner/reviewer-driver.js");
@@ -84,6 +85,50 @@ async function runChat(opts) {
84
85
  emitChatDone({ status: 'cancelled' });
85
86
  };
86
87
  abortSignal.addEventListener('abort', abortListener);
88
+ // Daemon-wide admission gate. Caps the number of chats actively
89
+ // fanning out reviewers (separate from cli-semaphore which caps
90
+ // subprocesses per binary family). Configurable in /settings; default
91
+ // 3 concurrent chats + refuse on low swap or high load. The chat row
92
+ // stays at status='drafting' while queued; we emit `chat_queued`
93
+ // events so the cockpit can render "Waiting for slot — N chats ahead".
94
+ // On admission failure (signal abort), exit cleanly — emitChatDone
95
+ // with cancelled was already wired via the abortListener above.
96
+ let releaseAdmission = null;
97
+ try {
98
+ releaseAdmission = await (0, chat_gate_js_1.admitChat)({
99
+ signal: abortSignal,
100
+ onWait: (decision, position) => {
101
+ // decision.reason is always populated when admit=false (the
102
+ // gate guarantees this — see evaluateAdmission). The `??`
103
+ // fallback is a defensive no-op; we keep it to satisfy the
104
+ // type checker without inventing a sentinel string that
105
+ // isn't in AdmitDenyReason.
106
+ const reason = decision.reason ?? 'chats_at_cap';
107
+ onEvent({
108
+ chatId,
109
+ type: 'chat_queued',
110
+ payload: {
111
+ reason,
112
+ position,
113
+ message: decision.message ?? '',
114
+ },
115
+ ts: Date.now(),
116
+ });
117
+ },
118
+ });
119
+ }
120
+ catch (err) {
121
+ // Aborted while queued — abortListener already fired chat_done.
122
+ // Cleanly exit without proceeding into the doer/reviewer fan-out.
123
+ abortSignal.removeEventListener('abort', abortListener);
124
+ if (!chatDoneEmitted) {
125
+ emitChatDone({
126
+ status: 'cancelled',
127
+ error: err instanceof Error ? err.message : String(err),
128
+ });
129
+ }
130
+ return;
131
+ }
87
132
  // Track whether any phase failed because every reviewer in it failed
88
133
  // (timeout/quota/crash). If so, the chat ends in 'no_review' rather
89
134
  // than 'approved' — there was no actual peer review to approve from.
@@ -471,6 +516,9 @@ async function runChat(opts) {
471
516
  }
472
517
  finally {
473
518
  abortSignal.removeEventListener('abort', abortListener);
519
+ // Release the daemon-wide admission slot so the next queued chat
520
+ // can proceed. Idempotent — releaseAdmission swallows double-release.
521
+ releaseAdmission?.();
474
522
  }
475
523
  }
476
524
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/daemon/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/daemon/runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+ /**
3
+ * Daemon-wide chat-concurrency settings — distinct from cli-concurrency.
4
+ *
5
+ * `cli-semaphore.ts` caps the number of SUBPROCESSES per binary family
6
+ * (max 2 opencode, max 3 codex, etc.). That helps with per-CLI memory
7
+ * pressure but doesn't prevent the failure mode that crashed the box
8
+ * on 2026-05-20: three concurrent chats × 8 reviewers each = 24
9
+ * subprocesses fanning out in parallel. Even with the per-CLI semaphore
10
+ * serialising within each lineage, the aggregate RAM + queued reviewer
11
+ * state (file descriptors, SSE buffers, abort controllers) exhausted
12
+ * 31 GB RAM + swap. Load avg hit 320.
13
+ *
14
+ * This module adds a HIGHER-level cap: max number of CHATS actively
15
+ * fanning out simultaneously. When at cap, new chats wait at the
16
+ * runner-entry layer — they're created in the DB and the cockpit
17
+ * shows them as `drafting`, but no reviewer subprocesses spawn until
18
+ * a running chat finishes.
19
+ *
20
+ * Three knobs, all daemon-wide, settings-backed (no daemon restart):
21
+ *
22
+ * - `maxConcurrentChats` (1..20, default 3) — max chats that can be
23
+ * actively running. Whichever chat hits the gate fourth queues.
24
+ *
25
+ * - `swapMinFreeMb` (0..16384, default 1024) — if free swap drops
26
+ * below this, refuse to admit new chats. 0 = disabled. Catches the
27
+ * incident from 2026-05-20 where swap went to 24 MB free before the
28
+ * host became unresponsive.
29
+ *
30
+ * - `loadAvgMaxPerCore` (0..10, default 4.0) — if 1-min load avg
31
+ * divided by CPU count exceeds this, refuse to admit. 0 = disabled.
32
+ * Per-core multiplier so a 4-core box at load 16 looks the same as
33
+ * a 16-core box at load 64. 4.0 means "4× more pending work than
34
+ * CPUs can handle" — comfortably past the tipping point but well
35
+ * short of the load-320 catastrophe.
36
+ *
37
+ * Defaults are conservative: a single user with a 16 GB box should
38
+ * notice no throttling under normal use. The settings are there for
39
+ * the user who hits the wall.
40
+ */
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports._defaults = exports.ChatConcurrencySchema = void 0;
43
+ exports.getChatConcurrency = getChatConcurrency;
44
+ exports.setChatConcurrency = setChatConcurrency;
45
+ const node_os_1 = require("node:os");
46
+ const zod_1 = require("zod");
47
+ const index_js_1 = require("../db/index.js");
48
+ const DEFAULT_MAX_CONCURRENT_CHATS = 3;
49
+ const DEFAULT_SWAP_MIN_FREE_MB = 1024;
50
+ const DEFAULT_LOAD_AVG_MAX_PER_CORE = 4.0;
51
+ exports.ChatConcurrencySchema = zod_1.z.object({
52
+ maxConcurrentChats: zod_1.z
53
+ .number()
54
+ .int()
55
+ .min(1)
56
+ .max(20)
57
+ .default(DEFAULT_MAX_CONCURRENT_CHATS),
58
+ /**
59
+ * Free swap in MB below which the gate refuses to admit a new chat.
60
+ * 0 disables the check (boxes without swap; CI / containers).
61
+ */
62
+ swapMinFreeMb: zod_1.z
63
+ .number()
64
+ .int()
65
+ .min(0)
66
+ .max(16384)
67
+ .default(DEFAULT_SWAP_MIN_FREE_MB),
68
+ /**
69
+ * 1-min load avg divided by CPU count above which the gate refuses.
70
+ * 0 disables the check.
71
+ */
72
+ loadAvgMaxPerCore: zod_1.z
73
+ .number()
74
+ .min(0)
75
+ .max(10)
76
+ .default(DEFAULT_LOAD_AVG_MAX_PER_CORE),
77
+ });
78
+ const SETTINGS_KEY = 'chat_concurrency';
79
+ async function getChatConcurrency() {
80
+ const raw = await index_js_1.settings.get(SETTINGS_KEY);
81
+ if (raw === null) {
82
+ return exports.ChatConcurrencySchema.parse({});
83
+ }
84
+ // safeParse so a hand-edited bogus value never crashes the gate —
85
+ // fall back to defaults, the cockpit will surface the broken state on
86
+ // next save anyway.
87
+ const result = exports.ChatConcurrencySchema.safeParse(raw);
88
+ if (!result.success) {
89
+ return exports.ChatConcurrencySchema.parse({});
90
+ }
91
+ return result.data;
92
+ }
93
+ async function setChatConcurrency(config) {
94
+ const validated = exports.ChatConcurrencySchema.parse(config);
95
+ await index_js_1.settings.set(SETTINGS_KEY, validated);
96
+ }
97
+ /** Defaults exposed for the cockpit form. */
98
+ exports._defaults = {
99
+ maxConcurrentChats: DEFAULT_MAX_CONCURRENT_CHATS,
100
+ swapMinFreeMb: DEFAULT_SWAP_MIN_FREE_MB,
101
+ loadAvgMaxPerCore: DEFAULT_LOAD_AVG_MAX_PER_CORE,
102
+ cpuCount: (0, node_os_1.cpus)().length,
103
+ };
104
+ //# sourceMappingURL=chat-concurrency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-concurrency.js","sourceRoot":"","sources":["../../../src/lib/settings/chat-concurrency.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;;;AA0CH,gDAaC;AAED,gDAKC;AA5DD,qCAA+B;AAC/B,6BAAwB;AACxB,6CAA0C;AAE1C,MAAM,4BAA4B,GAAG,CAAC,CAAC;AACvC,MAAM,wBAAwB,GAAG,IAAI,CAAC;AACtC,MAAM,6BAA6B,GAAG,GAAG,CAAC;AAE7B,QAAA,qBAAqB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC5C,kBAAkB,EAAE,OAAC;SAClB,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,EAAE,CAAC;SACP,OAAO,CAAC,4BAA4B,CAAC;IACxC;;;OAGG;IACH,aAAa,EAAE,OAAC;SACb,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,KAAK,CAAC;SACV,OAAO,CAAC,wBAAwB,CAAC;IACpC;;;OAGG;IACH,iBAAiB,EAAE,OAAC;SACjB,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,EAAE,CAAC;SACP,OAAO,CAAC,6BAA6B,CAAC;CAC1C,CAAC,CAAC;AAIH,MAAM,YAAY,GAAG,kBAAkB,CAAC;AAEjC,KAAK,UAAU,kBAAkB;IACtC,MAAM,GAAG,GAAG,MAAM,mBAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC7C,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,OAAO,6BAAqB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACzC,CAAC;IACD,kEAAkE;IAClE,sEAAsE;IACtE,oBAAoB;IACpB,MAAM,MAAM,GAAG,6BAAqB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACpD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,6BAAqB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAEM,KAAK,UAAU,kBAAkB,CACtC,MAA6B;IAE7B,MAAM,SAAS,GAAG,6BAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACtD,MAAM,mBAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;AAC9C,CAAC;AAED,6CAA6C;AAChC,QAAA,SAAS,GAAG;IACvB,kBAAkB,EAAE,4BAA4B;IAChD,aAAa,EAAE,wBAAwB;IACvC,iBAAiB,EAAE,6BAA6B;IAChD,QAAQ,EAAE,IAAA,cAAI,GAAE,CAAC,MAAM;CACxB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chorus-codes",
3
- "version": "0.8.45",
3
+ "version": "0.8.47",
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",
@@ -15,6 +15,22 @@
15
15
  "publishConfig": {
16
16
  "access": "public"
17
17
  },
18
+ "scripts": {
19
+ "dev": "next dev -p 5050 -H 127.0.0.1",
20
+ "dev:daemon": "tsx watch src/daemon/index.ts",
21
+ "dev:mcp": "tsx src/mcp/index.ts",
22
+ "build": "next build --webpack",
23
+ "start": "next start -p 5050 -H 127.0.0.1",
24
+ "start:daemon": "node dist/daemon/index.js",
25
+ "lint": "eslint",
26
+ "typecheck": "tsc --noEmit",
27
+ "build:server": "tsc -p tsconfig.server.json && node -e \"require('fs').mkdirSync('dist/lib/db',{recursive:true});require('fs').copyFileSync('src/lib/db/schema.sql','dist/lib/db/schema.sql')\"",
28
+ "test": "vitest run",
29
+ "test:watch": "vitest",
30
+ "test:coverage": "vitest run --coverage",
31
+ "prepublishOnly": "rm -rf dist .next *.tsbuildinfo && pnpm build && pnpm build:server && rm -rf .next/cache && test -f dist/cli/index.js && test -f dist/daemon/index.js && test -f dist/mcp/index.js",
32
+ "postinstall": "node scripts/postinstall.mjs"
33
+ },
18
34
  "dependencies": {
19
35
  "@fastify/cors": "^10.0.0",
20
36
  "@libsql/client": "^0.14.0",
@@ -60,20 +76,5 @@
60
76
  "prompts",
61
77
  "assets",
62
78
  "scripts/postinstall.mjs"
63
- ],
64
- "scripts": {
65
- "dev": "next dev -p 5050 -H 127.0.0.1",
66
- "dev:daemon": "tsx watch src/daemon/index.ts",
67
- "dev:mcp": "tsx src/mcp/index.ts",
68
- "build": "next build --webpack",
69
- "start": "next start -p 5050 -H 127.0.0.1",
70
- "start:daemon": "node dist/daemon/index.js",
71
- "lint": "eslint",
72
- "typecheck": "tsc --noEmit",
73
- "build:server": "tsc -p tsconfig.server.json && node -e \"require('fs').mkdirSync('dist/lib/db',{recursive:true});require('fs').copyFileSync('src/lib/db/schema.sql','dist/lib/db/schema.sql')\"",
74
- "test": "vitest run",
75
- "test:watch": "vitest",
76
- "test:coverage": "vitest run --coverage",
77
- "postinstall": "node scripts/postinstall.mjs"
78
- }
79
- }
79
+ ]
80
+ }
@@ -1,25 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[662],{52:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(3884).A)("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]])},63:(e,t,r)=>{"use strict";r.d(t,{Zp:()=>o});var s=r(9442);r(6074);var a=r(7362);function o({className:e,...t}){return(0,s.jsx)("div",{"data-slot":"card",className:(0,a.cn)("flex flex-col gap-6 rounded-xl border bg-card py-6 text-card-foreground shadow-sm",e),...t})}},2471:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(3884).A)("info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]])},3149:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(3884).A)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]])},3761:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(3884).A)("clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]])},3943:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>K});var s=r(9442),a=r(6074),o=r(3884);let n=(0,o.A)("wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",key:"1ngwbx"}]]);var l=r(9208),d=r(4372),i=r(6457);let c=(0,o.A)("shield",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]]);var u=r(3761);let m=(0,o.A)("credit-card",[["rect",{width:"20",height:"14",x:"2",y:"5",rx:"2",key:"ynyp8z"}],["line",{x1:"2",x2:"22",y1:"10",y2:"10",key:"1b3vmo"}]]);var x=r(6441),h=r(5702),p=r(63),f=r(9707),b=r(2471);let g=[{id:"read",name:"Read files",description:"cat, less, head, file open"},{id:"list",name:"List & search",description:"ls, grep, find, ripgrep"},{id:"write",name:"Write files",description:"Edit, Write inside allowed dirs"},{id:"exec",name:"Run commands",description:"Bash, npm, pnpm, python, go"},{id:"net",name:"Network access",description:"curl, fetch, package install"},{id:"outside-cwd",name:"Writes outside working dir",description:"Anything outside the allowed paths below"}],y={read:"auto",list:"auto",write:"ask",exec:"ask",net:"ask","outside-cwd":"block"},v={read:"auto",list:"auto",write:"block",exec:"ask",net:"ask","outside-cwd":"block"},j={auto:"bg-emerald-500/15 text-emerald-300 border-emerald-500/30",ask:"bg-amber-500/15 text-amber-300 border-amber-500/30",block:"bg-rose-500/15 text-rose-300 border-rose-500/30"};function w(e){return"auto"===e?"ask":"ask"===e?"block":"auto"}function N({id:e,icon:t,title:r,subtitle:a,children:o}){return(0,s.jsxs)(p.Zp,{id:e,className:"mt-6 scroll-mt-20 bg-card p-5",children:[(0,s.jsxs)("div",{className:"mb-4 flex items-start gap-3",children:[(0,s.jsx)("span",{className:"rounded-md border border-border bg-card/60 p-1.5 text-foreground/70",children:t}),(0,s.jsxs)("div",{className:"flex-1",children:[(0,s.jsx)("h2",{className:"text-sm font-medium text-foreground",children:r}),(0,s.jsx)("p",{className:"mt-0.5 text-xs text-muted-foreground",children:a})]})]}),o]})}function k({label:e,children:t}){return(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{className:"mb-1.5 block text-[11px] font-medium uppercase tracking-wider text-muted-foreground",children:e}),t]})}function C({policy:e,onCycle:t,role:r}){return(0,s.jsx)("button",{type:"button",onClick:t,className:`justify-self-end rounded-md border px-2.5 py-1 font-mono text-[10px] uppercase tracking-wider transition hover:scale-105 ${j[e]}`,title:`${r}: cycle policy`,children:e})}function A({kind:e,current:t,onSelect:r,icon:a,title:o,tagline:n,features:l,tradeoff:d}){let i=e===t;return(0,s.jsxs)("button",{type:"button",onClick:r,className:`flex w-full items-start gap-3 rounded-lg border p-3.5 text-left transition ${i?"border-primary/40 bg-primary/5 ring-2 ring-primary/30 ring-offset-2 ring-offset-background":"border-border bg-card/40 hover:border-foreground/30"}`,children:[(0,s.jsx)("span",{className:`mt-0.5 grid h-7 w-7 shrink-0 place-items-center rounded-md ${i?"bg-primary/20 text-primary":"bg-card text-muted-foreground"}`,children:a}),(0,s.jsxs)("div",{className:"flex-1",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("span",{className:"text-sm font-semibold text-foreground",children:o}),(0,s.jsx)(h.E,{variant:"outline",className:"border-border font-mono text-[10px]",children:n})]}),(0,s.jsx)("ul",{className:"mt-1.5 space-y-0.5 text-[11px] text-muted-foreground",children:l.map(e=>(0,s.jsxs)("li",{className:"flex items-start gap-1.5",children:[(0,s.jsx)(f.A,{className:"mt-0.5 h-3 w-3 shrink-0 text-emerald-400/60"}),(0,s.jsx)("span",{children:e})]},e))}),(0,s.jsxs)("div",{className:"mt-2 flex items-start gap-1.5 text-[10px] text-muted-foreground",children:[(0,s.jsx)(b.A,{className:"mt-0.5 h-3 w-3 shrink-0 text-muted-foreground/60"}),(0,s.jsxs)("span",{children:[(0,s.jsx)("span",{className:"font-medium text-foreground/80",children:"Trade-off:"})," ",d]})]})]}),i&&(0,s.jsx)(f.A,{className:"mt-1 h-4 w-4 shrink-0 text-primary"})]})}function S(){let[e,t]=(0,a.useState)(null),[r,o]=(0,a.useState)(void 0),[n,l]=(0,a.useState)(null),[d,i]=(0,a.useState)(null);return(0,a.useEffect)(()=>{let e=!1;return(0,x.Dl)().then(r=>{e||(t(r.mode),o(r.descriptions))}).catch(t=>{e||i(t instanceof Error?t.message:"Could not load billing mode.")}),()=>{e=!0}},[]),(0,s.jsxs)(N,{icon:(0,s.jsx)(m,{className:"h-4 w-4"}),title:"Billing mode",subtitle:"How you pay for the AI CLIs chorus drives. Affects what the cost preview shows on the new-chat page — defaults to API rates so the number stays honest until you tell us otherwise.",children:[d&&(0,s.jsx)("div",{className:"mb-3 rounded-md border border-destructive/40 bg-destructive/5 px-3 py-2 text-xs text-destructive",children:d}),(0,s.jsx)("div",{className:"grid gap-2",children:["api","subscription","mixed"].map(a=>{let o=e===a,d=n===a,c=r?.[a];return(0,s.jsxs)("button",{type:"button",onClick:()=>{e===a||n||(l(a),i(null),(0,x.A1)({mode:a}).then(e=>t(e.mode)).catch(e=>{i(e instanceof Error?e.message:"Save failed.")}).finally(()=>l(null)))},disabled:null!==n||null===e,className:`flex flex-col gap-1 rounded-lg border p-3 text-left transition ${o?"border-primary/50 bg-primary/10":"border-border bg-card hover:border-muted-foreground/30"} ${null!==n?"opacity-60":""}`,children:[(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsx)("span",{className:"text-sm font-medium",children:c?.label??a}),o&&(0,s.jsx)("span",{className:"rounded bg-primary/15 px-1.5 py-0.5 text-[10px] font-medium uppercase tracking-wider text-primary",children:d?"saving…":"active"})]}),(0,s.jsx)("p",{className:"text-xs leading-relaxed text-muted-foreground",children:c?.description??""})]},a)})})]})}let T=(0,o.A)("activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]);function M(){let[e,t]=(0,a.useState)(null),[r,o]=(0,a.useState)(null),[n,l]=(0,a.useState)(!1);(0,a.useEffect)(()=>{let e=!1;return(0,x.lT)().then(r=>{e||t(r)}).catch(t=>{e||o(t instanceof Error?t.message:"Could not load concurrency settings.")}),()=>{e=!0}},[]);let d=async e=>{if(!n){l(!0),o(null);try{let r=await (0,x.Wt)(e);t(r)}catch(e){o(e instanceof Error?e.message:"Save failed.")}finally{l(!1)}}};if(!e)return(0,s.jsx)(N,{id:"concurrency",icon:(0,s.jsx)(T,{className:"h-4 w-4"}),title:"Concurrency",subtitle:"Max parallel CLI subprocesses across all chats. Caps memory pressure when stacking heavyweight reviewers.",children:(0,s.jsx)("div",{className:"text-xs text-muted-foreground",children:r??"Loading…"})});let{maxParallelCli:i,perCli:c,cliLineages:u=[],defaults:m}=e;return(0,s.jsxs)(N,{id:"concurrency",icon:(0,s.jsx)(T,{className:"h-4 w-4"}),title:"Concurrency",subtitle:"Max parallel CLI subprocesses across all chats (daemon-wide). HTTP shims like OpenRouter bypass these caps — they don't consume local resources.",children:[r&&(0,s.jsx)("div",{className:"mb-3 rounded-md border border-destructive/40 bg-destructive/5 px-3 py-2 text-xs text-destructive",children:r}),(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between gap-4",children:[(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsx)("label",{htmlFor:"cc-global",className:"block text-sm font-medium text-foreground",children:"Global cap"}),(0,s.jsx)("p",{className:"mt-0.5 text-xs text-muted-foreground",children:"Total local-CLI subprocesses across the whole daemon. Applies to reviewers + doer combined."})]}),(0,s.jsx)(D,{id:"cc-global",min:1,max:10,value:i,disabled:n,onCommit:e=>d({maxParallelCli:e})})]}),(0,s.jsxs)("div",{className:"border-t border-border pt-4",children:[(0,s.jsx)("p",{className:"text-xs font-medium uppercase tracking-wider text-muted-foreground",children:"Per-CLI caps"}),(0,s.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:"Tightening a single binary family — e.g. opencode is heavy (~450 MB / proc) so default is 2."}),(0,s.jsx)("div",{className:"mt-3 space-y-2",children:u.map(e=>{let t=c[e]??m?.perCli[e]??2;return(0,s.jsxs)("div",{className:"flex items-center justify-between gap-4",children:[(0,s.jsx)("label",{htmlFor:`cc-${e}`,className:"font-mono text-sm text-foreground",children:e}),(0,s.jsx)(D,{id:`cc-${e}`,min:1,max:5,value:t,disabled:n,onCommit:t=>d({perCli:{[e]:t}})})]},e)})})]})]})]})}function D({id:e,min:t,max:r,value:a,disabled:o,onCommit:n}){return(0,s.jsxs)("div",{className:"flex items-center rounded-md border border-border bg-card",children:[(0,s.jsx)("button",{type:"button",onClick:()=>{if(o)return;let e=Math.max(t,a-1);e!==a&&n(e)},disabled:o||a<=t,"aria-label":`Decrease ${e}`,className:"px-2.5 py-1.5 text-sm text-muted-foreground transition hover:text-foreground disabled:opacity-30",children:"−"}),(0,s.jsx)("input",{id:e,type:"text",readOnly:!0,value:a,className:"w-9 border-x border-border bg-transparent text-center font-mono text-sm tabular-nums focus:outline-none"}),(0,s.jsx)("button",{type:"button",onClick:()=>{if(o)return;let e=Math.min(r,a+1);e!==a&&n(e)},disabled:o||a>=r,"aria-label":`Increase ${e}`,className:"px-2.5 py-1.5 text-sm text-muted-foreground transition hover:text-foreground disabled:opacity-30",children:"+"})]})}var E=r(6527),$=r(4030),P=r(6891),_=r(9315),O=r(7978);let L=(0,o.A)("monitor",[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]]),R=(0,o.A)("server",[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]]),I=(0,o.A)("cloud",[["path",{d:"M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z",key:"p7xjir"}]]),U=(0,o.A)("webhook",[["path",{d:"M18 16.98h-5.99c-1.1 0-1.95.94-2.48 1.9A4 4 0 0 1 2 17c.01-.7.2-1.4.57-2",key:"q3hayz"}],["path",{d:"m6 17 3.13-5.78c.53-.97.1-2.18-.5-3.1a4 4 0 1 1 6.89-4.06",key:"1go1hn"}],["path",{d:"m12 6 3.13 5.73C15.66 12.7 16.9 13 18 13a4 4 0 0 1 0 8",key:"qlwsc0"}]]),z=(0,o.A)("workflow",[["rect",{width:"8",height:"8",x:"3",y:"3",rx:"2",key:"by2w9f"}],["path",{d:"M7 11v4a2 2 0 0 0 2 2h4",key:"xkn7yn"}],["rect",{width:"8",height:"8",x:"13",y:"13",rx:"2",key:"1cgmvn"}]]);var W=r(3149);let H=(0,o.A)("send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]);function q(e){return(0,s.jsxs)("div",{className:"mt-2 select-none opacity-60 [&_*]:pointer-events-none","aria-disabled":"true",children:[(0,s.jsxs)(N,{icon:(0,s.jsx)(E.A,{className:"h-4 w-4"}),title:"Per-tool auto-approve",subtitle:"Drivers write code; reviewers don't. Defaults reflect that. Click any chip to cycle auto / ask / block.",children:[(0,s.jsxs)("div",{className:"grid grid-cols-[1fr_120px_120px] gap-3 border-b border-border pb-2 text-[10px] font-medium uppercase tracking-wider text-muted-foreground",children:[(0,s.jsx)("span",{children:"Tool"}),(0,s.jsxs)("span",{className:"flex items-center justify-end gap-1.5",children:[(0,s.jsx)("span",{className:"h-1.5 w-1.5 rounded-full bg-amber-400"}),"Driver"]}),(0,s.jsxs)("span",{className:"flex items-center justify-end gap-1.5",children:[(0,s.jsx)("span",{className:"h-1.5 w-1.5 rounded-full bg-blue-400"}),"Reviewer"]})]}),(0,s.jsx)("div",{className:"mt-1 divide-y divide-border opacity-70",children:g.map(t=>(0,s.jsxs)("div",{className:"grid grid-cols-[1fr_120px_120px] items-center gap-3 py-2.5",children:[(0,s.jsxs)("div",{className:"flex flex-col",children:[(0,s.jsx)("span",{className:"text-sm text-foreground",children:t.name}),(0,s.jsx)("span",{className:"text-[11px] text-muted-foreground",children:t.description})]}),(0,s.jsx)(C,{policy:e.driverPolicies[t.id],onCycle:()=>e.cyclePolicy("driver",t.id),role:"driver"}),(0,s.jsx)(C,{policy:e.reviewerPolicies[t.id],onCycle:()=>e.cyclePolicy("reviewer",t.id),role:"reviewer"})]},t.id))}),(0,s.jsxs)("p",{className:"mt-3 flex items-start gap-2 rounded-md border border-amber-500/30 bg-amber-500/5 px-3 py-2 text-xs text-amber-100",children:[(0,s.jsx)($.A,{className:"mt-0.5 h-3.5 w-3.5 shrink-0 text-amber-400"}),(0,s.jsxs)("span",{children:[(0,s.jsx)("span",{className:"font-semibold",children:"When wired:"})," ",(0,s.jsx)("code",{className:"rounded bg-amber-400/10 px-1 font-mono text-amber-200",children:"ask"})," ","prompts will appear as cards in the chat — you click"," ",(0,s.jsx)("span",{className:"font-semibold",children:"Approve"})," /"," ",(0,s.jsx)("span",{className:"font-semibold",children:"Deny"})," instead of the agent stalling."]})]})]}),(0,s.jsxs)(N,{icon:(0,s.jsx)(E.A,{className:"h-4 w-4"}),title:"Working directories",subtitle:"Each tmux session is started inside one of these paths. Writes outside are blocked.",children:[(0,s.jsx)("div",{className:"flex flex-wrap gap-2",children:e.allowedDirs.map(t=>(0,s.jsxs)("span",{className:"group inline-flex items-center gap-1.5 rounded-md border border-border bg-card px-2.5 py-1 font-mono text-[11px] text-foreground",children:[t,(0,s.jsx)("button",{type:"button",onClick:()=>e.setAllowedDirs(e.allowedDirs.filter(e=>e!==t)),className:"text-muted-foreground/50 transition hover:text-rose-400","aria-label":`Remove ${t}`,children:(0,s.jsx)(P.A,{className:"h-3 w-3"})})]},t))}),(0,s.jsxs)("div",{className:"mt-3 flex gap-2",children:[(0,s.jsx)("input",{type:"text",value:e.newDir,onChange:t=>e.setNewDir(t.target.value),onKeyDown:t=>"Enter"===t.key&&e.addDir(),placeholder:"~/code/another-project",className:"flex-1 rounded-md border border-border bg-card px-3 py-1.5 font-mono text-xs text-foreground placeholder:text-muted-foreground/60 focus:border-foreground/30 focus:outline-none"}),(0,s.jsxs)("button",{type:"button",onClick:e.addDir,className:"flex items-center gap-1.5 rounded-md bg-primary px-3 py-1.5 text-xs font-medium text-primary-foreground transition hover:bg-primary/90",children:[(0,s.jsx)(_.A,{className:"h-3.5 w-3.5"}),"Add path"]})]})]}),(0,s.jsx)(N,{icon:(0,s.jsx)(O.A,{className:"h-4 w-4"}),title:"Template defaults",subtitle:"Applied to new templates and one-off chats. Per-template values override these.",children:(0,s.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2",children:[(0,s.jsx)(k,{label:"Default driver",children:(0,s.jsxs)("select",{value:e.defaultDriver,onChange:t=>e.setDefaultDriver(t.target.value),className:"w-full rounded-md border border-border bg-card px-3 py-2 text-sm text-foreground focus:border-foreground/30 focus:outline-none",children:[(0,s.jsx)("option",{value:"claude-code",children:"claude-code"}),(0,s.jsx)("option",{value:"cursor",children:"cursor"}),(0,s.jsx)("option",{value:"codex-cli",children:"codex-cli"}),(0,s.jsx)("option",{value:"windsurf",children:"windsurf"}),(0,s.jsx)("option",{value:"external",children:"external (ask each run)"})]})}),(0,s.jsx)(k,{label:"Default agreement threshold",children:(0,s.jsxs)("select",{value:e.defaultThreshold,onChange:t=>e.setDefaultThreshold(t.target.value),className:"w-full rounded-md border border-border bg-card px-3 py-2 text-sm text-foreground focus:border-foreground/30 focus:outline-none",children:[(0,s.jsx)("option",{value:"unanimous",children:"unanimous"}),(0,s.jsx)("option",{value:"majority",children:"majority"}),(0,s.jsx)("option",{value:"any",children:"any"})]})}),(0,s.jsx)(k,{label:"Default cost cap (USD per chat)",children:(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("span",{className:"font-mono text-sm text-muted-foreground",children:"$"}),(0,s.jsx)("input",{type:"number",step:"0.10",min:0,value:e.defaultCostCap,onChange:t=>e.setDefaultCostCap(t.target.value),className:"w-full rounded-md border border-border bg-card px-3 py-2 font-mono text-sm text-foreground focus:border-foreground/30 focus:outline-none"})]})}),(0,s.jsx)(k,{label:"On model error",children:(0,s.jsxs)("select",{defaultValue:"fallback",className:"w-full rounded-md border border-border bg-card px-3 py-2 text-sm text-foreground focus:border-foreground/30 focus:outline-none",children:[(0,s.jsx)("option",{value:"fallback",children:"try next fallback model"}),(0,s.jsx)("option",{value:"fail",children:"mark chat failed"}),(0,s.jsx)("option",{value:"ask-user",children:"surface to me"})]})})]})}),(0,s.jsx)(N,{icon:(0,s.jsx)(c,{className:"h-4 w-4"}),title:"Privacy & data path",subtitle:"How prompts and code reach each LLM. Affects what leaves your machine.",children:(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsx)(A,{current:e.privacyTier,kind:"local",onSelect:()=>e.setPrivacyTier("local"),icon:(0,s.jsx)(L,{className:"h-4 w-4"}),title:"Local-only (BYO CLIs)",tagline:"Strictest",features:["Daemon runs on your machine; CLIs run on your machine.","Prompts go directly from your machine to each provider.","Chorus sees nothing — not even chat IDs."],tradeoff:"No cloud dashboard, no team sharing, no fallback when a CLI is down."}),(0,s.jsx)(A,{current:e.privacyTier,kind:"proxied",onSelect:()=>e.setPrivacyTier("proxied"),icon:(0,s.jsx)(R,{className:"h-4 w-4"}),title:"Proxied credits",tagline:"Recommended for credits",features:["Stateless edge proxy: prompts transit, never persist.","Stripe-pattern: same payload-handling discipline.","Used only when you spend credits to try a model you don't have."],tradeoff:"One extra hop between you and the provider."}),(0,s.jsx)(A,{current:e.privacyTier,kind:"cloud",onSelect:()=>e.setPrivacyTier("cloud"),icon:(0,s.jsx)(I,{className:"h-4 w-4"}),title:"Cloud workspace",tagline:"Team / multi-machine",features:["Code is cloned into Chorus's cloud workspace.","Transcripts + verdicts kept for audit & retro.","Encrypted at rest; SOC 2 in progress."],tradeoff:"Your code lives on our infra. Read the privacy whitepaper before flipping this on."})]})}),(0,s.jsx)(N,{icon:(0,s.jsx)(U,{className:"h-4 w-4"}),title:"Notifications & MCP",subtitle:"How outer orchestrators (your main Claude / Cursor session) get pinged when a chat finishes or blocks.",children:(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsxs)("button",{type:"button",onClick:()=>e.setMcpEnabled(!e.mcpEnabled),className:"flex w-full items-center justify-between rounded-md border border-border bg-card/50 px-3 py-3 text-left transition hover:border-foreground/20",children:[(0,s.jsxs)("div",{className:"flex items-start gap-3",children:[(0,s.jsx)(z,{className:"mt-0.5 h-4 w-4 text-primary"}),(0,s.jsxs)("div",{className:"flex flex-col",children:[(0,s.jsx)("span",{className:"text-sm text-foreground",children:"Chorus MCP server"}),(0,s.jsxs)("span",{className:"text-[11px] text-muted-foreground",children:["Exposes ",(0,s.jsx)("span",{className:"font-mono",children:"mm.create_chat"}),","," ",(0,s.jsx)("span",{className:"font-mono",children:"mm.update_settings"}),","," ",(0,s.jsx)("span",{className:"font-mono",children:"mm.create_template"})," and 9 other tools. Outer Claude / Cursor / Codex can configure Chorus for you."]})]})]}),(0,s.jsx)("span",{className:`flex h-5 w-9 items-center rounded-full border p-0.5 transition ${e.mcpEnabled?"border-emerald-500/40 bg-emerald-500/20":"border-border bg-card"}`,children:(0,s.jsx)("span",{className:`h-3.5 w-3.5 rounded-full transition-transform ${e.mcpEnabled?"translate-x-4 bg-emerald-400":"bg-muted-foreground/50"}`})})]}),(0,s.jsxs)(k,{label:"Webhook URL (optional)",children:[(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)("input",{type:"url",value:e.webhookUrl,onChange:t=>e.setWebhookUrl(t.target.value),placeholder:"https://hooks.example.com/chorus",className:"flex-1 rounded-md border border-border bg-card px-3 py-2 font-mono text-xs text-foreground placeholder:text-muted-foreground/60 focus:border-foreground/30 focus:outline-none"}),(0,s.jsxs)("button",{type:"button",onClick:e.testWebhook,disabled:!e.webhookUrl||"running"===e.webhookTestState,className:`flex items-center gap-1.5 rounded-md border px-3 py-2 text-xs font-medium transition ${"ok"===e.webhookTestState?"border-emerald-500/30 bg-emerald-500/10 text-emerald-300":"fail"===e.webhookTestState?"border-rose-500/30 bg-rose-500/10 text-rose-300":"border-border bg-card text-muted-foreground hover:text-foreground"} disabled:cursor-not-allowed disabled:opacity-50`,children:["running"===e.webhookTestState?(0,s.jsx)(W.A,{className:"h-3.5 w-3.5 animate-spin"}):"ok"===e.webhookTestState?(0,s.jsx)(f.A,{className:"h-3.5 w-3.5"}):"fail"===e.webhookTestState?(0,s.jsx)($.A,{className:"h-3.5 w-3.5"}):(0,s.jsx)(H,{className:"h-3.5 w-3.5"}),"ok"===e.webhookTestState?"204 OK":"fail"===e.webhookTestState?"Failed":"running"===e.webhookTestState?"Posting…":"Test"]})]}),(0,s.jsx)("p",{className:"mt-1.5 text-[11px] text-muted-foreground",children:"Posted on chat finished / blocked / errored. Payload includes chat_id, status, synthesis."})]})]})})]})}var F=r(52);function V(){let[e,t]=(0,a.useState)(null),[r,o]=(0,a.useState)(!1),[n,l]=(0,a.useState)(null);(0,a.useEffect)(()=>{let e=!1;return(0,x.Ci)().then(r=>{e||t(r)}).catch(t=>{e||l(t instanceof Error?t.message:"Could not load telemetry status.")}),()=>{e=!0}},[]);let d=e?.envOverride||e?.fileOverride;return(0,s.jsxs)(N,{icon:(0,s.jsx)(F.A,{className:"h-4 w-4"}),title:"Anonymous telemetry",subtitle:"A small heartbeat sent to chorus.codes once per boot + every 24h. Helps us see what versions / OSes are in the wild. No code, no prompts, no chat content.",children:[n&&(0,s.jsx)("div",{className:"mb-3 rounded-md border border-destructive/40 bg-destructive/5 px-3 py-2 text-xs text-destructive",children:n}),(0,s.jsx)("div",{className:"rounded-lg border border-border bg-card p-3",children:(0,s.jsxs)("label",{className:"flex items-start gap-3",children:[(0,s.jsx)("input",{type:"checkbox",checked:e?.enabled??!1,onChange:s=>{var a;return a=s.target.checked,void(!r&&e&&!d&&(o(!0),l(null),(0,x.WK)(a).then(t).catch(e=>{l(e instanceof Error?e.message:"Save failed.")}).finally(()=>o(!1))))},disabled:r||!e||d,className:"mt-1 h-4 w-4 cursor-pointer accent-primary disabled:cursor-not-allowed"}),(0,s.jsxs)("span",{className:"flex-1",children:[(0,s.jsxs)("span",{className:"block text-sm font-medium",children:["Send anonymous heartbeat",r&&(0,s.jsx)("span",{className:"ml-2 rounded bg-primary/15 px-1.5 py-0.5 text-[10px] font-medium uppercase tracking-wider text-primary",children:"saving…"})]}),(0,s.jsx)("span",{className:"mt-1 block text-xs leading-relaxed text-muted-foreground",children:"Sends: install UUID, chorus version, OS, arch, node major, daemon uptime, count of chats in the last 24h. That's it."})]})]})}),d&&(0,s.jsxs)("div",{className:"mt-3 rounded-md border border-amber-500/40 bg-amber-500/10 px-3 py-2 text-xs text-amber-100",children:["Telemetry is currently disabled by"," ",e?.envOverride&&(0,s.jsx)("code",{className:"rounded bg-muted px-1",children:"CHORUS_TELEMETRY"}),e?.envOverride&&e?.fileOverride&&" and ",e?.fileOverride&&(0,s.jsx)("code",{className:"rounded bg-muted px-1",children:"~/.chorus/no-telemetry"}),". The toggle above won't take effect until you remove the override."]}),(0,s.jsxs)("details",{className:"mt-3 text-xs text-muted-foreground",children:[(0,s.jsx)("summary",{className:"cursor-pointer hover:text-foreground",children:"Other ways to opt out"}),(0,s.jsxs)("ul",{className:"mt-2 list-inside list-disc space-y-1 leading-relaxed",children:[(0,s.jsxs)("li",{children:["Set ",(0,s.jsx)("code",{className:"rounded bg-muted px-1",children:"CHORUS_TELEMETRY=0"})," ","in your shell — also accepts ",(0,s.jsx)("code",{children:"false"}),", ",(0,s.jsx)("code",{children:"no"}),","," ",(0,s.jsx)("code",{children:"off"}),"."]}),(0,s.jsxs)("li",{children:[(0,s.jsx)("code",{className:"rounded bg-muted px-1",children:"touch ~/.chorus/no-telemetry"})," ","(cargo / brew convention)."]}),(0,s.jsxs)("li",{children:["Reset your install ID:"," ",(0,s.jsx)("code",{className:"rounded bg-muted px-1",children:"rm ~/.chorus/install-id"})," ","— a fresh UUID is minted on the next heartbeat."]})]}),e?.endpoint&&(0,s.jsxs)("p",{className:"mt-2 leading-relaxed",children:["Endpoint: ",(0,s.jsx)("code",{className:"rounded bg-muted px-1",children:e.endpoint})]})]})]})}let Y=(0,o.A)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);function B(){let[e,t]=(0,a.useState)(null),[r,o]=(0,a.useState)(void 0),[n,l]=(0,a.useState)(!0),[d,i]=(0,a.useState)(null),[c,u]=(0,a.useState)(null);return(0,a.useEffect)(()=>{let e=!1;return(0,x.oD)().then(r=>{e||(t(r.transport),o(r.descriptions),l(!1!==r.tmuxAvailable))}).catch(t=>{e||u(t instanceof Error?t.message:"Could not load transport setting.")}),()=>{e=!0}},[]),(0,s.jsxs)(N,{id:"transport",icon:(0,s.jsx)(Y,{className:"h-4 w-4"}),title:"Run mode (headless / tmux)",subtitle:"How chorus runs each CLI. Default is headless (faster, lower RAM). Switch to tmux if you want to attach to a live voice and take over mid-run (debug + handoff).",children:[c&&(0,s.jsx)("div",{className:"mb-3 rounded-md border border-destructive/40 bg-destructive/5 px-3 py-2 text-xs text-destructive",children:c}),(0,s.jsx)("div",{className:"grid gap-2 sm:grid-cols-2",children:["headless","tmux"].map(a=>{let o=e===a,l=d===a,c=r?.[a],m="tmux"===a&&!n;return(0,s.jsxs)("button",{type:"button",onClick:()=>{e===a||d||(i(a),u(null),(0,x.nr)({transport:a}).then(e=>{t(e.transport)}).catch(e=>{u(e instanceof Error?e.message:"Save failed.")}).finally(()=>i(null)))},disabled:null!==d||null===e||m,title:m?"tmux is not installed on this host. Install it (brew/apt/dnf) then restart the daemon.":void 0,className:`flex flex-col gap-1 rounded-lg border p-3 text-left transition ${o?"border-primary/50 bg-primary/10":"border-border bg-card hover:border-muted-foreground/30"} ${null!==d||m?"opacity-60 cursor-not-allowed":""}`,children:[(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsx)("span",{className:"text-sm font-medium",children:c?.label??("headless"===a?"Headless":"Tmux")}),o?(0,s.jsx)("span",{className:"rounded bg-primary/15 px-1.5 py-0.5 text-[10px] font-medium uppercase tracking-wider text-primary",children:l?"saving…":"active"}):m?(0,s.jsx)("span",{className:"rounded bg-muted px-1.5 py-0.5 text-[10px] font-medium uppercase tracking-wider text-muted-foreground",children:"not installed"}):null]}),(0,s.jsx)("p",{className:"text-xs leading-relaxed text-muted-foreground",children:c?.description??("headless"===a?"Subprocess per call. Lower RAM, faster cold start, no permission dialogs.":"Persistent terminal sessions you can attach to for visual debug.")}),m&&(0,s.jsxs)("p",{className:"mt-1 text-[10px] leading-relaxed text-amber-300/80",children:["Install: macOS ",(0,s.jsx)("code",{children:"brew install tmux"})," \xb7 Ubuntu ",(0,s.jsx)("code",{children:"apt install tmux"})," \xb7 Fedora ",(0,s.jsx)("code",{children:"dnf install tmux"}),". Restart the daemon afterwards."]})]},a)})}),(0,s.jsxs)("p",{className:"mt-3 text-[11px] text-muted-foreground",children:["Tip: set ",(0,s.jsx)("code",{className:"rounded bg-muted px-1",children:"CHORUS_TRANSPORT=tmux"})," in your environment to override per-shell without changing this setting."]})]})}function Z(e){return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(N,{icon:(0,s.jsx)(c,{className:"h-4 w-4"}),title:"Sandbox & first-call permissions",subtitle:"What can chorus-spawned reviewers do on this machine? Pick a profile, toggle prompt auto-approval, choose whether to allow outbound network.",children:(0,s.jsxs)("a",{href:"/settings/permissions",className:"inline-flex items-center gap-2 rounded-md border border-primary/40 bg-primary/5 px-3 py-2 text-sm font-medium text-primary transition hover:bg-primary/10",children:["Open Permissions page",(0,s.jsx)("span",{"aria-hidden":!0,children:"→"})]})}),(0,s.jsx)(B,{}),(0,s.jsx)(M,{}),(0,s.jsx)(S,{}),(0,s.jsx)(V,{}),(0,s.jsxs)("div",{className:"mt-12 flex items-start gap-2 rounded-lg border border-amber-500/40 bg-amber-500/10 px-4 py-3 text-sm text-amber-100",role:"note",children:[(0,s.jsx)(u.A,{className:"mt-0.5 h-4 w-4 shrink-0 text-amber-400"}),(0,s.jsxs)("div",{children:[(0,s.jsx)("p",{className:"font-semibold",children:"Coming in v0.8 — preview only"}),(0,s.jsx)("p",{className:"mt-1 text-xs leading-relaxed text-amber-100/80",children:"The sections below show planned controls. They're not wired to the daemon yet — interaction is disabled. The YAML toggle at the top of the page already exposes the schema if you're curious."})]})]}),(0,s.jsx)(q,{...e})]})}function G({yaml:e}){return(0,s.jsxs)(p.Zp,{className:"overflow-hidden bg-card p-0",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between border-b border-border px-4 py-2.5",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)(l.A,{className:"h-3.5 w-3.5 text-primary"}),(0,s.jsx)("span",{className:"text-[11px] font-medium uppercase tracking-wider text-foreground",children:"settings.yaml"}),(0,s.jsx)(h.E,{variant:"outline",className:"border-border font-mono text-[10px]",children:"~/.chorus/settings.yaml"})]}),(0,s.jsxs)("div",{className:"flex items-center gap-2 text-[10px] text-muted-foreground",children:[(0,s.jsx)(F.A,{className:"h-3 w-3"}),"live-rendered from form state"]})]}),(0,s.jsx)("textarea",{value:e,readOnly:!0,spellCheck:!1,className:"block min-h-[520px] w-full resize-none border-0 bg-background px-5 py-4 font-mono text-[12px] leading-relaxed text-foreground/90 focus:outline-none"}),(0,s.jsxs)("div",{className:"flex items-center justify-between border-t border-border px-4 py-2.5 text-[11px] text-muted-foreground",children:[(0,s.jsxs)("span",{children:["Same shape that"," ",(0,s.jsx)("span",{className:"font-mono text-foreground/80",children:"mm.update_settings"})," ","accepts as a patch."]}),(0,s.jsx)("button",{type:"button",className:"rounded-md border border-border bg-card px-2 py-1 text-[10px] text-muted-foreground transition hover:text-foreground",children:"Copy"})]})]})}function K(){let[e,t]=(0,a.useState)("form"),[r,o]=(0,a.useState)(3),[c,u]=(0,a.useState)(y),[m,x]=(0,a.useState)(v),[h,p]=(0,a.useState)(["~/dev","~/work","/tmp/chorus-sandbox"]),[f,b]=(0,a.useState)(""),[j,N]=(0,a.useState)("claude-code"),[k,C]=(0,a.useState)("2.00"),[A,S]=(0,a.useState)("unanimous"),[T,M]=(0,a.useState)(""),[D,E]=(0,a.useState)(!0),[$,P]=(0,a.useState)("local"),[_,O]=(0,a.useState)("idle"),L=(0,a.useMemo)(()=>{var e;let t,s,a;return t=(e={maxConcurrent:r,driverPolicies:c,reviewerPolicies:m,allowedDirs:h,defaultDriver:j,defaultCostCap:k,defaultThreshold:A,mcpEnabled:D,webhookUrl:T}).allowedDirs.map(e=>` - ${e}`).join("\n"),s=g.map(t=>` ${t.id.replace("-","_")}: ${e.driverPolicies[t.id]}`).join("\n"),a=g.map(t=>` ${t.id.replace("-","_")}: ${e.reviewerPolicies[t.id]}`).join("\n"),`# Chorus workspace settings
2
- # Edit here, or via the Form tab, or via mm.update_settings from any MCP client.
3
-
4
- concurrency:
5
- max_concurrent_chats: ${e.maxConcurrent}
6
-
7
- permissions:
8
- driver:
9
- ${s}
10
- reviewer:
11
- ${a}
12
-
13
- allowed_directories:
14
- ${t}
15
-
16
- defaults:
17
- driver: ${e.defaultDriver}
18
- agreement_threshold: ${e.defaultThreshold}
19
- cost_cap_usd: ${e.defaultCostCap}
20
- on_error: fallback
21
-
22
- notifications:
23
- mcp_enabled: ${e.mcpEnabled}
24
- webhook_url: ${e.webhookUrl?`"${e.webhookUrl}"`:'""'}
25
- `},[r,c,m,h,j,k,A,D,T]);return(0,s.jsx)(d.G,{children:(0,s.jsxs)("div",{className:"mx-auto w-full max-w-6xl px-4 py-6 sm:px-6 sm:py-8 md:px-8 md:py-10",children:[(0,s.jsx)(i.z,{eyebrow:"Settings",title:"Workspace",subtitle:"Defaults applied to every chat. Templates can override these per-run. The MCP server can read & patch this config — your main Claude can configure Chorus for you.",action:(0,s.jsxs)("div",{className:"flex rounded-md border border-border bg-card p-0.5",children:[(0,s.jsxs)("button",{type:"button",onClick:()=>t("form"),className:`flex items-center gap-1.5 rounded-sm px-3 py-1.5 text-xs font-medium transition ${"form"===e?"bg-primary/15 text-foreground":"text-muted-foreground hover:text-foreground"}`,children:[(0,s.jsx)(n,{className:"h-3.5 w-3.5"}),"Form"]}),(0,s.jsxs)("button",{type:"button",onClick:()=>t("yaml"),className:`flex items-center gap-1.5 rounded-sm px-3 py-1.5 text-xs font-medium transition ${"yaml"===e?"bg-primary/15 text-foreground":"text-muted-foreground hover:text-foreground"}`,children:[(0,s.jsx)(l.A,{className:"h-3.5 w-3.5"}),"YAML"]})]})}),"yaml"===e?(0,s.jsx)(G,{yaml:L}):(0,s.jsx)(Z,{maxConcurrent:r,setMaxConcurrent:o,driverPolicies:c,reviewerPolicies:m,cyclePolicy:function(e,t){"driver"===e?u(e=>({...e,[t]:w(e[t])})):x(e=>({...e,[t]:w(e[t])}))},allowedDirs:h,setAllowedDirs:p,newDir:f,setNewDir:b,addDir:function(){let e=f.trim();!e||h.includes(e)||(p(t=>[...t,e]),b(""))},defaultDriver:j,setDefaultDriver:N,defaultCostCap:k,setDefaultCostCap:C,defaultThreshold:A,setDefaultThreshold:S,webhookUrl:T,setWebhookUrl:M,mcpEnabled:D,setMcpEnabled:E,privacyTier:$,setPrivacyTier:P,webhookTestState:_,testWebhook:function(){"running"!==_&&(O("running"),setTimeout(()=>{O(T.startsWith("https://")?"ok":"fail"),setTimeout(()=>O("idle"),2200)},1100))}})]})})}},4030:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(3884).A)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]])},4372:(e,t,r)=>{"use strict";r.d(t,{G:()=>n});var s=r(9442),a=r(821),o=r(8344);function n({children:e}){return(0,s.jsxs)("div",{className:"flex h-screen w-screen overflow-hidden bg-background text-foreground",children:[(0,s.jsx)(a.AppSidebar,{}),(0,s.jsxs)("div",{className:"flex flex-1 flex-col overflow-hidden",children:[(0,s.jsx)(o.MobileTopBar,{}),(0,s.jsx)("main",{className:"flex-1 overflow-y-auto",children:e})]})]})}},5702:(e,t,r)=>{"use strict";r.d(t,{E:()=>d});var s=r(9442);r(6074);var a=r(9056),o=r(8113),n=r(7362);let l=(0,a.F)("inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3",{variants:{variant:{default:"bg-primary text-primary-foreground [a&]:hover:bg-primary/90",secondary:"bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",destructive:"bg-destructive text-white focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40 [a&]:hover:bg-destructive/90",outline:"border-border text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground",ghost:"[a&]:hover:bg-accent [a&]:hover:text-accent-foreground",link:"text-primary underline-offset-4 [a&]:hover:underline"}},defaultVariants:{variant:"default"}});function d({className:e,variant:t="default",asChild:r=!1,...a}){let i=r?o.bL:"span";return(0,s.jsx)(i,{"data-slot":"badge","data-variant":t,className:(0,n.cn)(l({variant:t}),e),...a})}},6457:(e,t,r)=>{"use strict";r.d(t,{z:()=>a});var s=r(9442);function a({eyebrow:e,title:t,subtitle:r,action:o}){return(0,s.jsxs)("header",{className:"mb-6 flex flex-col gap-3 sm:flex-row sm:items-end sm:justify-between",children:[(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsx)("p",{className:"text-xs uppercase tracking-wider text-muted-foreground",children:e}),(0,s.jsx)("h1",{className:"mt-1 text-2xl font-semibold tracking-tight",children:t}),r&&(0,s.jsx)("p",{className:"mt-2 max-w-2xl text-sm leading-relaxed text-muted-foreground",children:r})]}),o&&(0,s.jsx)("div",{className:"shrink-0 self-start sm:self-auto",children:o})]})}},6527:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(3884).A)("folder-lock",[["rect",{width:"8",height:"5",x:"14",y:"17",rx:"1",key:"19aais"}],["path",{d:"M10 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v2.5",key:"1w6v7t"}],["path",{d:"M20 17v-2a2 2 0 1 0-4 0v2",key:"pwaxnr"}]])},6624:(e,t,r)=>{Promise.resolve().then(r.bind(r,3943))},7978:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(3884).A)("sliders-vertical",[["path",{d:"M10 8h4",key:"1sr2af"}],["path",{d:"M12 21v-9",key:"17s77i"}],["path",{d:"M12 8V3",key:"13r4qs"}],["path",{d:"M17 16h4",key:"h1uq16"}],["path",{d:"M19 12V3",key:"o1uvq1"}],["path",{d:"M19 21v-5",key:"qua636"}],["path",{d:"M3 14h4",key:"bcjad9"}],["path",{d:"M5 10V3",key:"cb8scm"}],["path",{d:"M5 21v-7",key:"1w1uti"}]])},9056:(e,t,r)=>{"use strict";r.d(t,{F:()=>n});var s=r(142);let a=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,o=s.$,n=(e,t)=>r=>{var s;if((null==t?void 0:t.variants)==null)return o(e,null==r?void 0:r.class,null==r?void 0:r.className);let{variants:n,defaultVariants:l}=t,d=Object.keys(n).map(e=>{let t=null==r?void 0:r[e],s=null==l?void 0:l[e];if(null===t)return null;let o=a(t)||a(s);return n[e][o]}),i=r&&Object.entries(r).reduce((e,t)=>{let[r,s]=t;return void 0===s||(e[r]=s),e},{});return o(e,d,null==t||null==(s=t.compoundVariants)?void 0:s.reduce((e,t)=>{let{class:r,className:s,...a}=t;return Object.entries(a).every(e=>{let[t,r]=e;return Array.isArray(r)?r.includes({...l,...i}[t]):({...l,...i})[t]===r})?[...e,r,s]:e},[]),null==r?void 0:r.class,null==r?void 0:r.className)}},9208:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(3884).A)("code-xml",[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]])},9707:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(3884).A)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]])}},e=>{e.O(0,[742,832,641,344,506,128,358],()=>e(e.s=6624)),_N_E=e.O()}]);