@zhihaohong52/sonata 0.4.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +0 -0
- package/dist/commands/route.js +88 -17
- package/dist/commands/route.js.map +1 -1
- package/dist/native/router.js +107 -0
- package/dist/native/router.js.map +1 -1
- package/package.json +1 -1
- package/dist/mcp/protocol.js +0 -64
- package/dist/mcp/protocol.js.map +0 -1
- package/dist/mcp/server.js +0 -96
- package/dist/mcp/server.js.map +0 -1
- package/dist/mcp/tools.js +0 -210
- package/dist/mcp/tools.js.map +0 -1
- package/dist/native/claude-shim.js +0 -228
- package/dist/native/claude-shim.js.map +0 -1
- package/dist/native/hosts.js +0 -60
- package/dist/native/hosts.js.map +0 -1
- package/dist/native/tls.js +0 -73
- package/dist/native/tls.js.map +0 -1
- package/dist/tui-ink/test-compile.js +0 -4
- package/dist/tui-ink/test-compile.js.map +0 -1
package/dist/cli.js
CHANGED
|
File without changes
|
package/dist/commands/route.js
CHANGED
|
@@ -456,16 +456,12 @@ export async function cmdRoute(action, opts) {
|
|
|
456
456
|
return status(plan.settings);
|
|
457
457
|
}
|
|
458
458
|
if (action === 'off') {
|
|
459
|
-
const
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
//
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
// scope's registry: an explicit `route off` (project-scoped) must not
|
|
466
|
-
// wipe the shared global session count out from under other projects.
|
|
467
|
-
writeSessions(routeSessionsFile(opts.cwd, scope, opts.home), []);
|
|
468
|
-
return status(plan.settings);
|
|
459
|
+
const sessions = routeSessionsFile(opts.cwd, scope, opts.home);
|
|
460
|
+
// Takes the session lock here; `cmdRouteSession('end')` already holds it
|
|
461
|
+
// when it delegates, so it calls `routeOffUnlocked` directly instead of
|
|
462
|
+
// coming through this branch. See LOCK ORDER above `routeOffUnlocked`.
|
|
463
|
+
const settingsAfter = await withSessionLock(sessions, () => routeOffUnlocked(opts, scope, file));
|
|
464
|
+
return status(settingsAfter);
|
|
469
465
|
}
|
|
470
466
|
if (action === 'auto' || action === 'manual') {
|
|
471
467
|
const hasLiveSessions = action === 'auto'
|
|
@@ -480,11 +476,17 @@ export async function cmdRoute(action, opts) {
|
|
|
480
476
|
return status(settings);
|
|
481
477
|
}
|
|
482
478
|
export async function cmdRouteSession(phase, sessionId, opts, deps = {}) {
|
|
479
|
+
// ONE scope resolution for this entry point; everything below takes the
|
|
480
|
+
// resolved value. The writer and the cleaner of `route-subagents.json` used
|
|
481
|
+
// to default independently — `?? 'project'` here and `?? 'global'` in
|
|
482
|
+
// `cmdRouteSubagent` — so a caller omitting `scope` wrote one registry and
|
|
483
|
+
// cleared another, and ids accumulated forever in the one never cleared.
|
|
484
|
+
const scope = opts.scope ?? 'project';
|
|
483
485
|
// A global session shares one machine-wide registry with every other
|
|
484
486
|
// routed project — otherwise this project's own registry hitting zero
|
|
485
487
|
// would turn off the single shared router while another project's global
|
|
486
488
|
// sessions, tracked in a registry this one never sees, are still live.
|
|
487
|
-
const registry = routeSessionsFile(opts.cwd,
|
|
489
|
+
const registry = routeSessionsFile(opts.cwd, scope, opts.home);
|
|
488
490
|
// Using the machine config's own DIRECTORY as `configCwd` for global scope
|
|
489
491
|
// — not `opts.home` itself — matters: configPath()'s first check is
|
|
490
492
|
// `join(cwd, 'sonata.toml')`, and if `cwd` were `opts.home`, that check
|
|
@@ -531,8 +533,15 @@ export async function cmdRouteSession(phase, sessionId, opts, deps = {}) {
|
|
|
531
533
|
// subagent killed before its SubagentStop hook would otherwise leak a
|
|
532
534
|
// reference and leave routing on for good; bounding that leak by the
|
|
533
535
|
// session's own lifetime is what keeps it from becoming permanent.
|
|
534
|
-
|
|
535
|
-
|
|
536
|
+
//
|
|
537
|
+
// `routeOffUnlocked`, not `cmdRoute('off')`: this runs inside the session
|
|
538
|
+
// registry's lock, and the public command now takes that same lock. It
|
|
539
|
+
// also clears the subagent registry under the *subagent* lock — this used
|
|
540
|
+
// to write that file directly from here, under the session lock, so two
|
|
541
|
+
// different locks guarded one file and excluded nothing. A SubagentStart
|
|
542
|
+
// could read the pre-clear list, pause, and write it back afterwards,
|
|
543
|
+
// restoring every id this cleanup had just erased.
|
|
544
|
+
await routeOffUnlocked(opts, scope, routeSettingsFile(opts.cwd, scope, opts.home));
|
|
536
545
|
return { sessions: 0, routing: 'off' };
|
|
537
546
|
});
|
|
538
547
|
}
|
|
@@ -609,8 +618,66 @@ export async function cmdRouteSession(phase, sessionId, opts, deps = {}) {
|
|
|
609
618
|
* `cmdRoute('off')` means "the user said stop routing" and clears the session
|
|
610
619
|
* registry with it. The subagent path needs only the settings half.
|
|
611
620
|
*/
|
|
612
|
-
|
|
613
|
-
|
|
621
|
+
/**
|
|
622
|
+
* **LOCK ORDER: session registry, then subagent registry. Never the reverse.**
|
|
623
|
+
*
|
|
624
|
+
* They are different files, so nesting is mechanically fine; the *order* is
|
|
625
|
+
* what makes it deadlock-free, and `withSessionLock` (`src/filelock.ts`) is a
|
|
626
|
+
* non-reentrant `mkdirSync` mutex that throws at a 2000 ms deadline rather
|
|
627
|
+
* than blocking forever, so a violation shows up as a timeout, not a hang.
|
|
628
|
+
*
|
|
629
|
+
* The only path that holds both is `route off` (directly, or delegated from
|
|
630
|
+
* the last `SessionEnd`). `cmdRouteSubagent` holds the subagent lock alone and
|
|
631
|
+
* must never acquire the session lock inside it — which is why it calls
|
|
632
|
+
* `routeOffKeepingRegistries` rather than `cmdRoute('off')`.
|
|
633
|
+
*
|
|
634
|
+
* ---
|
|
635
|
+
*
|
|
636
|
+
* Everything `route off` does, assuming **the caller already holds the session
|
|
637
|
+
* registry's lock**.
|
|
638
|
+
*
|
|
639
|
+
* Split out because `cmdRouteSession('end')` delegates to `route off` from
|
|
640
|
+
* *inside* that lock when the last session leaves. A public `cmdRoute('off')`
|
|
641
|
+
* that acquires the session lock would therefore deadlock on the one path that
|
|
642
|
+
* matters most — the last session out is the moment leaked subagent ids are
|
|
643
|
+
* supposed to be cleared, so the recovery would fail exactly where it is
|
|
644
|
+
* needed. Review caught this in the spec before it was written; this shape is
|
|
645
|
+
* the resolution.
|
|
646
|
+
*/
|
|
647
|
+
async function routeOffUnlocked(opts, scope, settingsFile) {
|
|
648
|
+
// An explicit `off` means stop routing, so the auto registries go with it —
|
|
649
|
+
// otherwise a stale id from a crashed session or subagent would have the next
|
|
650
|
+
// hook turn routing straight back on. Only this scope's registries: an
|
|
651
|
+
// explicit project-scoped `route off` must not wipe the shared global count
|
|
652
|
+
// out from under other projects.
|
|
653
|
+
writeSessions(routeSessionsFile(opts.cwd, scope, opts.home), []);
|
|
654
|
+
// The settings are read HERE, inside the subagent lock, and deliberately NOT
|
|
655
|
+
// taken from the caller. `cmdRoute` reads settings ~60 lines before reaching
|
|
656
|
+
// this branch, and `SubagentStart` writes them while holding this very lock,
|
|
657
|
+
// so a plan computed from the caller's copy can be stale by the time it is
|
|
658
|
+
// applied: `planRouteOff` on already-off settings reports `changed: false`,
|
|
659
|
+
// nothing is written, and routing is left ON while both registries are
|
|
660
|
+
// cleared — exactly the pin this function exists to remove, now with no
|
|
661
|
+
// subagent registered to ever turn it off again.
|
|
662
|
+
//
|
|
663
|
+
// The subagent registry is also the half that never got cleared, which is
|
|
664
|
+
// why `route off` did not recover a pinned project: the ids survived their
|
|
665
|
+
// own documented fix, and the next SubagentStart took the count 6 -> 7.
|
|
666
|
+
const subagents = routeSubagentsFile(opts.cwd, scope, opts.home);
|
|
667
|
+
return await withSessionLock(subagents, () => {
|
|
668
|
+
const plan = planRouteOff(readSettings(settingsFile), opts.packageRoot);
|
|
669
|
+
if (plan.changed)
|
|
670
|
+
writeSettings(settingsFile, plan.settings);
|
|
671
|
+
writeSessions(subagents, []);
|
|
672
|
+
return plan.settings;
|
|
673
|
+
});
|
|
674
|
+
}
|
|
675
|
+
function routeOffKeepingRegistries(opts,
|
|
676
|
+
// Required, never defaulted: a helper that resolves scope itself is exactly
|
|
677
|
+
// how the writer and the cleaner of `route-subagents.json` came to disagree.
|
|
678
|
+
// Callers pass the scope their entry point already resolved.
|
|
679
|
+
scope) {
|
|
680
|
+
const file = routeSettingsFile(opts.cwd, scope, opts.home);
|
|
614
681
|
const plan = planRouteOff(readSettings(file), opts.packageRoot);
|
|
615
682
|
if (plan.changed)
|
|
616
683
|
writeSettings(file, plan.settings);
|
|
@@ -633,7 +700,11 @@ function routeOffKeepingRegistries(opts) {
|
|
|
633
700
|
* finishing must not un-route its siblings.
|
|
634
701
|
*/
|
|
635
702
|
export async function cmdRouteSubagent(phase, agentId, opts) {
|
|
636
|
-
|
|
703
|
+
// 'project', matching `routeSubagentsFile`'s own default and every other
|
|
704
|
+
// scope default in this file. This read `?? 'global'` — the lone outlier —
|
|
705
|
+
// which is what made it disagree with the cleaner in `cmdRouteSession`.
|
|
706
|
+
const scope = opts.scope ?? 'project';
|
|
707
|
+
const registry = routeSubagentsFile(opts.cwd, scope, opts.home);
|
|
637
708
|
// Read, decide and act inside one lock hold, for the same reason the session
|
|
638
709
|
// registry does: deciding "none left" and acting on it as two acquisitions
|
|
639
710
|
// leaves a gap where a concurrent start can register and route, only for
|
|
@@ -648,7 +719,7 @@ export async function cmdRouteSubagent(phase, agentId, opts) {
|
|
|
648
719
|
// Not `cmdRoute('off')`: that also clears the *session* registry, which
|
|
649
720
|
// is a different lifetime entirely. A finishing subagent erasing session
|
|
650
721
|
// liveness would make the next SessionEnd believe it was the last one.
|
|
651
|
-
routeOffKeepingRegistries(opts);
|
|
722
|
+
routeOffKeepingRegistries(opts, scope);
|
|
652
723
|
return { subagents: 0, routing: 'off' };
|
|
653
724
|
}
|
|
654
725
|
const next = current.includes(agentId) ? current : [...current, agentId];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.js","sourceRoot":"","sources":["../../src/commands/route.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"route.js","sourceRoot":"","sources":["../../src/commands/route.ts"],"names":[],"mappings":"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"}
|
package/dist/native/router.js
CHANGED
|
@@ -152,10 +152,60 @@ export function withModel(body, model) {
|
|
|
152
152
|
return Buffer.from(JSON.stringify({ ...payload, model }));
|
|
153
153
|
}
|
|
154
154
|
export const TIER_COOLDOWN_MS = 60_000;
|
|
155
|
+
/**
|
|
156
|
+
* How many identical capability 400s from one candidate earn it a cooldown.
|
|
157
|
+
*
|
|
158
|
+
* Higher than the single failure that cools a 5xx/429/401/403, because a 400
|
|
159
|
+
* is ambiguous in a way those are not: it may be the request's fault. Three
|
|
160
|
+
* consecutive *identically fingerprinted* rejections is strong evidence the
|
|
161
|
+
* candidate cannot serve this shape at all, while still returning the first
|
|
162
|
+
* two to the caller, who is the only one who can tell a genuine client error.
|
|
163
|
+
*/
|
|
164
|
+
export const TIER_CAPABILITY_400_THRESHOLD = 3;
|
|
165
|
+
/**
|
|
166
|
+
* 400 bodies that mean "this candidate cannot serve requests of this shape",
|
|
167
|
+
* as opposed to "this request was malformed".
|
|
168
|
+
*
|
|
169
|
+
* Exactly one entry, because exactly one has been measured: Gemini 3 returns a
|
|
170
|
+
* `thought_signature` on each function call and requires it echoed back, and
|
|
171
|
+
* LiteLLM does not preserve it — so every multi-turn tool-use request 400s.
|
|
172
|
+
* Probed directly on 2026-08-30: the identical two-turn exchange 400s on
|
|
173
|
+
* `gemini-3.7-flash`, `gemini-3.5-flash` and `gemini-flash-latest`, and
|
|
174
|
+
* returns 200 on `gemini-2.5-flash`.
|
|
175
|
+
*
|
|
176
|
+
* Guessing at "equivalent" signatures would break this repo's evidence-over-
|
|
177
|
+
* inference rule, and the cost of a wrong guess is asymmetric: a signature
|
|
178
|
+
* that matches too broadly cools healthy candidates on ordinary client errors,
|
|
179
|
+
* turning a legible 400 into a 529. Add an entry when a failure is captured,
|
|
180
|
+
* not when one is imagined.
|
|
181
|
+
*/
|
|
182
|
+
const CAPABILITY_400_SIGNATURES = [
|
|
183
|
+
'thought_signature',
|
|
184
|
+
];
|
|
155
185
|
/** Module-level so a cooling-down key stays cool across requests. Test seam: `clearCooldowns()`. */
|
|
156
186
|
const cooldowns = new Map();
|
|
187
|
+
/**
|
|
188
|
+
* Consecutive identical capability 400s per candidate, keyed by candidate AND
|
|
189
|
+
* fingerprint. Keying by candidate alone would let two different capability
|
|
190
|
+
* failures add up to a cooldown neither one earned.
|
|
191
|
+
*/
|
|
192
|
+
const capability400Counts = new Map();
|
|
157
193
|
export function clearCooldowns() {
|
|
158
194
|
cooldowns.clear();
|
|
195
|
+
capability400Counts.clear();
|
|
196
|
+
}
|
|
197
|
+
/** Which capability failure this 400 body is, or undefined if it is not one. */
|
|
198
|
+
function capability400Fingerprint(body) {
|
|
199
|
+
return CAPABILITY_400_SIGNATURES.find((signature) => body.includes(signature));
|
|
200
|
+
}
|
|
201
|
+
/** Reads a response body into a Buffer, leaving it readable by the caller. */
|
|
202
|
+
async function bufferBody(body) {
|
|
203
|
+
if (Buffer.isBuffer(body))
|
|
204
|
+
return body;
|
|
205
|
+
const chunks = [];
|
|
206
|
+
for await (const chunk of body)
|
|
207
|
+
chunks.push(Buffer.from(chunk));
|
|
208
|
+
return Buffer.concat(chunks);
|
|
159
209
|
}
|
|
160
210
|
/**
|
|
161
211
|
* An Anthropic-shaped error body: `{"type":"error","error":{"type":...,
|
|
@@ -329,6 +379,63 @@ async function routeTierRequest(req, deps, alias, startedAt, session) {
|
|
|
329
379
|
deps.log?.(`router: ${route.key} failed (${response.status}), trying next`);
|
|
330
380
|
continue;
|
|
331
381
|
}
|
|
382
|
+
// A 400 usually means the request was wrong, which retrying cannot fix —
|
|
383
|
+
// that is why it is not in the list above. But a model that 400s *every*
|
|
384
|
+
// request of a given shape becomes an absorbing state: permanently the
|
|
385
|
+
// first non-cooling candidate, killing every agent that reaches it, and
|
|
386
|
+
// never earning the cooldown that would let the tier fall through.
|
|
387
|
+
//
|
|
388
|
+
// The two are told apart by fingerprint, not by status. A recognised
|
|
389
|
+
// capability failure repeated `TIER_CAPABILITY_400_THRESHOLD` times in a
|
|
390
|
+
// row cools the candidate; anything else is returned to the caller, who is
|
|
391
|
+
// the only one able to tell a genuine client error from a broken model.
|
|
392
|
+
if (response.status === 400) {
|
|
393
|
+
// Buffered because deciding requires reading the body, and the body is a
|
|
394
|
+
// one-shot iterable — handing the caller the drained original would give
|
|
395
|
+
// them an empty error. This mirrors the 500 path in `forwardToLitellm`.
|
|
396
|
+
const bodyBuf = await bufferBody(response.body);
|
|
397
|
+
const fingerprint = capability400Fingerprint(bodyBuf.toString());
|
|
398
|
+
const counterKey = fingerprint === undefined ? undefined : `${route.key}${fingerprint}`;
|
|
399
|
+
if (counterKey !== undefined) {
|
|
400
|
+
const seen = (capability400Counts.get(counterKey) ?? 0) + 1;
|
|
401
|
+
capability400Counts.set(counterKey, seen);
|
|
402
|
+
if (seen >= TIER_CAPABILITY_400_THRESHOLD) {
|
|
403
|
+
capability400Counts.delete(counterKey);
|
|
404
|
+
attempts.push({ key: route.key, status: response.status });
|
|
405
|
+
cooldowns.set(route.key, now() + TIER_COOLDOWN_MS);
|
|
406
|
+
deps.log?.(`router: ${route.key} cannot serve this request shape ` +
|
|
407
|
+
`(${seen}× 400 "${fingerprint}"), cooling down and trying next`);
|
|
408
|
+
continue;
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
else {
|
|
412
|
+
// A different failure means the run of identical ones is broken.
|
|
413
|
+
for (const key of capability400Counts.keys()) {
|
|
414
|
+
if (key.startsWith(`${route.key}`))
|
|
415
|
+
capability400Counts.delete(key);
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
return withUsageRecording({
|
|
419
|
+
status: response.status,
|
|
420
|
+
headers: response.headers,
|
|
421
|
+
body: bodyBuf,
|
|
422
|
+
}, {
|
|
423
|
+
startedAt,
|
|
424
|
+
session,
|
|
425
|
+
alias,
|
|
426
|
+
role: resolved.role,
|
|
427
|
+
tier: resolved.tier,
|
|
428
|
+
key: route.key,
|
|
429
|
+
gateway: route.native.gateway,
|
|
430
|
+
upstream: 'litellm',
|
|
431
|
+
attempts,
|
|
432
|
+
}, deps);
|
|
433
|
+
}
|
|
434
|
+
// A candidate that served a request is not accumulating toward a cooldown.
|
|
435
|
+
for (const key of capability400Counts.keys()) {
|
|
436
|
+
if (key.startsWith(`${route.key}`))
|
|
437
|
+
capability400Counts.delete(key);
|
|
438
|
+
}
|
|
332
439
|
deps.log?.(`${req.method} ${req.url} model=${alias} -> ${route.key} -> litellm`);
|
|
333
440
|
return withUsageRecording(response, {
|
|
334
441
|
startedAt,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/native/router.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/native/router.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/dist/mcp/protocol.js
DELETED
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The MCP surface sonata needs, as a pure function.
|
|
3
|
-
*
|
|
4
|
-
* MCP is JSON-RPC 2.0 over newline-delimited stdio. Only four messages matter
|
|
5
|
-
* here, so the protocol lives in one testable function and the transport is a
|
|
6
|
-
* thin loop around it — the same split as parseKey/runList in tui.ts.
|
|
7
|
-
*/
|
|
8
|
-
/**
|
|
9
|
-
* Used only when a client omits its version; the real one is echoed back.
|
|
10
|
-
* Captured from Claude Code 2.1.228 on 2026-08-12 — see
|
|
11
|
-
* tests/fixtures/mcp-handshake.jsonl. It was written as 2025-06-18 from
|
|
12
|
-
* documentation, which the capture disproved.
|
|
13
|
-
*/
|
|
14
|
-
const FALLBACK_PROTOCOL_VERSION = '2025-11-25';
|
|
15
|
-
export async function handle(req, deps, onLines) {
|
|
16
|
-
// Notifications have no id and take no response.
|
|
17
|
-
if (req.id === undefined)
|
|
18
|
-
return null;
|
|
19
|
-
const id = req.id;
|
|
20
|
-
switch (req.method) {
|
|
21
|
-
case 'initialize':
|
|
22
|
-
return {
|
|
23
|
-
jsonrpc: '2.0',
|
|
24
|
-
id,
|
|
25
|
-
result: {
|
|
26
|
-
protocolVersion: req.params?.protocolVersion ?? FALLBACK_PROTOCOL_VERSION,
|
|
27
|
-
capabilities: { tools: {} },
|
|
28
|
-
serverInfo: { name: 'sonata', version: '0.0.1' },
|
|
29
|
-
},
|
|
30
|
-
};
|
|
31
|
-
case 'tools/list':
|
|
32
|
-
return { jsonrpc: '2.0', id, result: { tools: deps.tools } };
|
|
33
|
-
case 'tools/call': {
|
|
34
|
-
const name = req.params?.name;
|
|
35
|
-
const args = req.params?.arguments ?? {};
|
|
36
|
-
try {
|
|
37
|
-
if (!deps.tools.some((t) => t.name === name)) {
|
|
38
|
-
throw new Error(`unknown tool "${name}"`);
|
|
39
|
-
}
|
|
40
|
-
const text = await deps.call(name, args, onLines);
|
|
41
|
-
return { jsonrpc: '2.0', id, result: { content: [{ type: 'text', text }] } };
|
|
42
|
-
}
|
|
43
|
-
catch (err) {
|
|
44
|
-
// A refused dispatch must reach the wrapper as text it can relay,
|
|
45
|
-
// never as a dropped call it reports nothing about.
|
|
46
|
-
return {
|
|
47
|
-
jsonrpc: '2.0',
|
|
48
|
-
id,
|
|
49
|
-
result: {
|
|
50
|
-
content: [{ type: 'text', text: err.message }],
|
|
51
|
-
isError: true,
|
|
52
|
-
},
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
default:
|
|
57
|
-
return {
|
|
58
|
-
jsonrpc: '2.0',
|
|
59
|
-
id,
|
|
60
|
-
error: { code: -32601, message: `method not found: ${req.method}` },
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
//# sourceMappingURL=protocol.js.map
|
package/dist/mcp/protocol.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/mcp/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA6BH;;;;;GAKG;AACH,MAAM,yBAAyB,GAAG,YAAY,CAAC;AAE/C,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,GAAmB,EACnB,IAAU,EACV,OAAmC;IAEnC,iDAAiD;IACjD,IAAI,GAAG,CAAC,EAAE,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACtC,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC;IAElB,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC;QACnB,KAAK,YAAY;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,EAAE;gBACF,MAAM,EAAE;oBACN,eAAe,EAAG,GAAG,CAAC,MAAM,EAAE,eAA0B,IAAI,yBAAyB;oBACrF,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;oBAC3B,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE;iBACjD;aACF,CAAC;QAEJ,KAAK,YAAY;YACf,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;QAE/D,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,EAAE,IAAc,CAAC;YACxC,MAAM,IAAI,GAAI,GAAG,CAAC,MAAM,EAAE,SAAqC,IAAI,EAAE,CAAC;YACtE,IAAI,CAAC;gBACH,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;oBAC7C,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,GAAG,CAAC,CAAC;gBAC5C,CAAC;gBACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;gBAClD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/E,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,kEAAkE;gBAClE,oDAAoD;gBACpD,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,EAAE;oBACF,MAAM,EAAE;wBACN,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC;wBACzD,OAAO,EAAE,IAAI;qBACd;iBACF,CAAC;YACJ,CAAC;QACH,CAAC;QAED;YACE,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,EAAE;gBACF,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,qBAAqB,GAAG,CAAC,MAAM,EAAE,EAAE;aACpE,CAAC;IACN,CAAC;AACH,CAAC"}
|
package/dist/mcp/server.js
DELETED
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
import { createInterface } from 'node:readline';
|
|
2
|
-
import { appendFileSync } from 'node:fs';
|
|
3
|
-
import { handle } from './protocol.js';
|
|
4
|
-
import { TOOL_DEFS, callTool } from './tools.js';
|
|
5
|
-
/**
|
|
6
|
-
* Records every incoming request verbatim when `SONATA_MCP_DEBUG` names a file.
|
|
7
|
-
*
|
|
8
|
-
* The client's own framing is otherwise invisible: sonata never sees whether
|
|
9
|
-
* Claude Code supplies a `_meta.progressToken`, which is what decides whether
|
|
10
|
-
* the server may push `notifications/progress` at all. Off unless the variable
|
|
11
|
-
* is set, and it never touches stdout — anything written there is protocol.
|
|
12
|
-
*/
|
|
13
|
-
function debugLog(line) {
|
|
14
|
-
const path = process.env.SONATA_MCP_DEBUG;
|
|
15
|
-
if (!path)
|
|
16
|
-
return;
|
|
17
|
-
try {
|
|
18
|
-
appendFileSync(path, `${new Date().toISOString()} ${line}\n`);
|
|
19
|
-
}
|
|
20
|
-
catch {
|
|
21
|
-
// Debug logging must never take the session's dispatch capability down.
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* The stdio loop. Input is injected so the whole server is testable without a
|
|
26
|
-
* process, which is the same seam readKeys uses for stdin in tui.ts.
|
|
27
|
-
*/
|
|
28
|
-
export async function serveMcp(input, write, env) {
|
|
29
|
-
for await (const raw of input) {
|
|
30
|
-
const line = raw.trim();
|
|
31
|
-
if (line.length === 0)
|
|
32
|
-
continue;
|
|
33
|
-
debugLog(line);
|
|
34
|
-
let req;
|
|
35
|
-
try {
|
|
36
|
-
req = JSON.parse(line);
|
|
37
|
-
}
|
|
38
|
-
catch {
|
|
39
|
-
// Never die on bad input: the session loses dispatch entirely.
|
|
40
|
-
write(JSON.stringify({
|
|
41
|
-
jsonrpc: '2.0', id: null,
|
|
42
|
-
error: { code: -32700, message: 'parse error' },
|
|
43
|
-
}));
|
|
44
|
-
continue;
|
|
45
|
-
}
|
|
46
|
-
// JSON.parse accepts `null`, `5`, `"x"` and `[1]`. Reading .id off any of
|
|
47
|
-
// them threw, which killed the loop — and a dead server takes the
|
|
48
|
-
// session's dispatch capability with it.
|
|
49
|
-
if (typeof req !== 'object' || req === null || Array.isArray(req)) {
|
|
50
|
-
write(JSON.stringify({
|
|
51
|
-
jsonrpc: '2.0', id: null,
|
|
52
|
-
error: { code: -32600, message: 'invalid request' },
|
|
53
|
-
}));
|
|
54
|
-
continue;
|
|
55
|
-
}
|
|
56
|
-
const token = req.method === 'tools/call'
|
|
57
|
-
&& req.params?._meta
|
|
58
|
-
&& typeof req.params._meta === 'object'
|
|
59
|
-
? req.params._meta.progressToken
|
|
60
|
-
: undefined;
|
|
61
|
-
let progress = 0;
|
|
62
|
-
const onLines = typeof token === 'string' || typeof token === 'number'
|
|
63
|
-
? (lines) => {
|
|
64
|
-
// One line per notification, deliberately.
|
|
65
|
-
//
|
|
66
|
-
// Sending a rolling window instead was tried and measured worse
|
|
67
|
-
// (2026-08-19, Claude Code 2.1.233): the client flattens the newlines,
|
|
68
|
-
// then clips the message head-first at roughly two wrapped rows. The
|
|
69
|
-
// newest line sits at the end of a window, so it is precisely what the
|
|
70
|
-
// clip removes — a screenshot showed four old commands and the live one
|
|
71
|
-
// truncated to `$ nod…`. One line always fits, and is always the line
|
|
72
|
-
// the run is on. History belongs in the transcript, not in a display
|
|
73
|
-
// that keeps only its head.
|
|
74
|
-
for (const message of lines) {
|
|
75
|
-
write(JSON.stringify({
|
|
76
|
-
jsonrpc: '2.0',
|
|
77
|
-
method: 'notifications/progress',
|
|
78
|
-
params: { progressToken: token, progress: ++progress, message },
|
|
79
|
-
}));
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
: undefined;
|
|
83
|
-
const res = await handle(req, {
|
|
84
|
-
tools: TOOL_DEFS,
|
|
85
|
-
call: (name, args, onLines) => callTool(name, args, env, onLines),
|
|
86
|
-
}, onLines);
|
|
87
|
-
if (res !== null)
|
|
88
|
-
write(JSON.stringify(res));
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
/** Wires the loop to the real stdio streams. */
|
|
92
|
-
export async function runMcpStdio(env) {
|
|
93
|
-
const rl = createInterface({ input: process.stdin });
|
|
94
|
-
await serveMcp(rl, (l) => process.stdout.write(`${l}\n`), env);
|
|
95
|
-
}
|
|
96
|
-
//# sourceMappingURL=server.js.map
|
package/dist/mcp/server.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/tools.js
DELETED
|
@@ -1,210 +0,0 @@
|
|
|
1
|
-
import { writeFileSync, statSync, existsSync } from 'node:fs';
|
|
2
|
-
import { randomUUID } from 'node:crypto';
|
|
3
|
-
import { join, resolve } from 'node:path';
|
|
4
|
-
import { tmpdir } from 'node:os';
|
|
5
|
-
import { cmdRun } from '../commands/run.js';
|
|
6
|
-
import { cmdWait } from '../commands/wait.js';
|
|
7
|
-
import { cmdApprove } from '../commands/approve.js';
|
|
8
|
-
import { readEvents } from '../store.js';
|
|
9
|
-
/**
|
|
10
|
-
* Ceiling on a report returned through MCP.
|
|
11
|
-
*
|
|
12
|
-
* Claude Code warns above 10k tokens of tool output and caps at 25k, and a
|
|
13
|
-
* result over its persist-to-disk threshold is replaced in the conversation by
|
|
14
|
-
* a file reference — which stops the report being the wrapper's final message,
|
|
15
|
-
* the one thing the orchestrator actually reads. 40k characters is roughly 10k
|
|
16
|
-
* tokens, so an ordinary report stays inline and under the warning.
|
|
17
|
-
*/
|
|
18
|
-
export const MAX_REPORT_CHARS = 40_000;
|
|
19
|
-
/** Keeps the head of an oversized report and says where the whole thing is. */
|
|
20
|
-
export function truncateReport(report, id, max = MAX_REPORT_CHARS) {
|
|
21
|
-
if (report.length <= max)
|
|
22
|
-
return report;
|
|
23
|
-
return `${report.slice(0, max)}\n\n[truncated: full transcript at \`sonata log ${id}\`]`;
|
|
24
|
-
}
|
|
25
|
-
const MAX_RESULT_SIZE_CHARS = 200_000;
|
|
26
|
-
const REPORT_META = { 'anthropic/maxResultSizeChars': MAX_RESULT_SIZE_CHARS };
|
|
27
|
-
export const TOOL_DEFS = [
|
|
28
|
-
{
|
|
29
|
-
name: 'dispatch',
|
|
30
|
-
description: 'Run a task on a foreign model and return its report. Blocks until the run ' +
|
|
31
|
-
'finishes, needs an approval, or stalls — so one call is usually the whole ' +
|
|
32
|
-
'dispatch. Returns state DONE, PAUSED, STALLED or RUNNING.',
|
|
33
|
-
inputSchema: {
|
|
34
|
-
type: 'object',
|
|
35
|
-
properties: {
|
|
36
|
-
role: { type: 'string', description: 'code | review | explore | plan' },
|
|
37
|
-
model: { type: 'string', description: 'a model key from sonata.toml' },
|
|
38
|
-
task: { type: 'string', description: 'The task text, verbatim and byte for byte. Never summarise, shorten, or rewrite it. If the caller gave you a file path instead, use task_file.' },
|
|
39
|
-
task_file: { type: 'string', description: 'Path to a file holding the task. Prefer this whenever the caller gives you one: a path cannot be paraphrased, and the model receives exactly what was written. Give either task or task_file, not both.' },
|
|
40
|
-
transcript: { type: 'boolean', description: 'Return the run\'s whole terminal transcript beside the report. Pass true when the caller asks to read what the model did, turn by turn; leave it out otherwise, since a transcript is far larger than a report.' },
|
|
41
|
-
cwd: { type: 'string', description: 'optional existing directory in which to launch the run' },
|
|
42
|
-
},
|
|
43
|
-
required: ['role', 'model'],
|
|
44
|
-
},
|
|
45
|
-
_meta: REPORT_META,
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
name: 'wait',
|
|
49
|
-
description: 'Resume waiting on a run already launched — after answering a PAUSED prompt, ' +
|
|
50
|
-
'or when a previous call returned RUNNING. Same states as dispatch.',
|
|
51
|
-
inputSchema: {
|
|
52
|
-
type: 'object',
|
|
53
|
-
properties: {
|
|
54
|
-
id: { type: 'string', description: 'the run id' },
|
|
55
|
-
cwd: { type: 'string', description: 'the same directory returned by dispatch' },
|
|
56
|
-
transcript: { type: 'boolean', description: 'Return the run\'s whole terminal transcript beside the report.' },
|
|
57
|
-
},
|
|
58
|
-
required: ['id'],
|
|
59
|
-
},
|
|
60
|
-
_meta: REPORT_META,
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
name: 'approve',
|
|
64
|
-
description: 'Answer a run that is PAUSED awaiting approval.',
|
|
65
|
-
inputSchema: {
|
|
66
|
-
type: 'object',
|
|
67
|
-
properties: {
|
|
68
|
-
id: { type: 'string' },
|
|
69
|
-
answer: { type: 'string', description: 'yes or no' },
|
|
70
|
-
cwd: { type: 'string', description: 'the same directory returned by dispatch' },
|
|
71
|
-
},
|
|
72
|
-
required: ['id', 'answer'],
|
|
73
|
-
},
|
|
74
|
-
},
|
|
75
|
-
];
|
|
76
|
-
/** Trims the report in a result, leaving every other field alone. */
|
|
77
|
-
function withTrimmedReport(result) {
|
|
78
|
-
return result.report === undefined
|
|
79
|
-
? result
|
|
80
|
-
: { ...result, report: truncateReport(result.report, result.id) };
|
|
81
|
-
}
|
|
82
|
-
/** The result payload, carrying the transcript only when it was asked for. */
|
|
83
|
-
function withTranscript(result, cwd, args) {
|
|
84
|
-
const payload = { ...result, cwd };
|
|
85
|
-
if (args.transcript !== true)
|
|
86
|
-
return payload;
|
|
87
|
-
const transcript = transcriptFor(cwd, result.id, (result.report ?? '').length);
|
|
88
|
-
if (transcript !== undefined)
|
|
89
|
-
payload.transcript = transcript;
|
|
90
|
-
return payload;
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* The run's whole pane transcript, for a caller who asked to read it.
|
|
94
|
-
*
|
|
95
|
-
* The events file has held every line all along — this is `sonata log`'s
|
|
96
|
-
* content delivered through MCP, so a wrapper can show its caller what the
|
|
97
|
-
* foreign model actually did rather than only what it concluded.
|
|
98
|
-
*
|
|
99
|
-
* Budgeted against the report beside it, because the two share one result and
|
|
100
|
-
* the report is the part that must never be pushed out. Head rather than tail:
|
|
101
|
-
* the end of a run is what the report already describes, so what is missing is
|
|
102
|
-
* how it got there.
|
|
103
|
-
*/
|
|
104
|
-
export function transcriptFor(cwd, id, reportChars, max = MAX_REPORT_CHARS) {
|
|
105
|
-
const lines = readEvents(cwd, id);
|
|
106
|
-
if (lines.length === 0)
|
|
107
|
-
return undefined;
|
|
108
|
-
const budget = max - reportChars;
|
|
109
|
-
if (budget <= 0)
|
|
110
|
-
return `[omitted: the report used the whole result — \`sonata log ${id}\`]`;
|
|
111
|
-
const text = lines.join('\n');
|
|
112
|
-
return text.length <= budget
|
|
113
|
-
? text
|
|
114
|
-
: `${text.slice(0, budget)}\n\n[truncated: whole transcript at \`sonata log ${id}\`]`;
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* Where the task text comes from: an inline string, or a file the caller wrote.
|
|
118
|
-
*
|
|
119
|
-
* `task_file` exists because the wrapper agent is a small model relaying
|
|
120
|
-
* arguments, and it paraphrases — a ~3K step-by-step spec once reached the
|
|
121
|
-
* harness as a one-line summary. A path cannot be paraphrased: it either
|
|
122
|
-
* arrives intact or the dispatch fails loudly. Prose asking a model not to
|
|
123
|
-
* summarise is a request; this is a mechanism.
|
|
124
|
-
*
|
|
125
|
-
* Exactly one of the two, because silently preferring one when both are given
|
|
126
|
-
* would let a paraphrased `task` win over the file the caller meant.
|
|
127
|
-
*/
|
|
128
|
-
export function resolveTaskFile(args, cwd) {
|
|
129
|
-
const inline = typeof args.task === 'string' && args.task.length > 0;
|
|
130
|
-
const path = typeof args.task_file === 'string' && args.task_file.length > 0;
|
|
131
|
-
if (inline && path) {
|
|
132
|
-
throw new Error('sonata: give either "task" or "task_file", not both');
|
|
133
|
-
}
|
|
134
|
-
if (path) {
|
|
135
|
-
const resolved = resolve(cwd, args.task_file);
|
|
136
|
-
if (!existsSync(resolved)) {
|
|
137
|
-
throw new Error(`sonata: task_file "${args.task_file}" does not exist`);
|
|
138
|
-
}
|
|
139
|
-
// Copied rather than read-and-rewritten so the bytes the caller wrote are
|
|
140
|
-
// the bytes composeInstructions receives.
|
|
141
|
-
return resolved;
|
|
142
|
-
}
|
|
143
|
-
if (!inline) {
|
|
144
|
-
throw new Error('sonata: the "task" or "task_file" argument is required');
|
|
145
|
-
}
|
|
146
|
-
const tmp = join(tmpdir(), `sonata-task-${Date.now()}-${randomUUID().slice(0, 8)}.md`);
|
|
147
|
-
writeFileSync(tmp, args.task);
|
|
148
|
-
return tmp;
|
|
149
|
-
}
|
|
150
|
-
function need(args, key) {
|
|
151
|
-
const value = args[key];
|
|
152
|
-
if (typeof value !== 'string' || value.length === 0) {
|
|
153
|
-
throw new Error(`sonata: the "${key}" argument is required`);
|
|
154
|
-
}
|
|
155
|
-
return value;
|
|
156
|
-
}
|
|
157
|
-
export function resolveToolCwd(args, env) {
|
|
158
|
-
if (args.cwd === undefined)
|
|
159
|
-
return env.cwd;
|
|
160
|
-
if (typeof args.cwd !== 'string' || args.cwd.length === 0) {
|
|
161
|
-
throw new Error('sonata: the "cwd" argument must be a non-empty directory path');
|
|
162
|
-
}
|
|
163
|
-
const cwd = resolve(env.cwd, args.cwd);
|
|
164
|
-
try {
|
|
165
|
-
if (!statSync(cwd).isDirectory())
|
|
166
|
-
throw new Error('not a directory');
|
|
167
|
-
}
|
|
168
|
-
catch {
|
|
169
|
-
throw new Error(`sonata: requested cwd "${args.cwd}" does not exist or is not a directory`);
|
|
170
|
-
}
|
|
171
|
-
return cwd;
|
|
172
|
-
}
|
|
173
|
-
export async function callTool(name, args, env, onLines) {
|
|
174
|
-
switch (name) {
|
|
175
|
-
case 'dispatch': {
|
|
176
|
-
const role = need(args, 'role');
|
|
177
|
-
const model = need(args, 'model');
|
|
178
|
-
const cwd = resolveToolCwd(args, env);
|
|
179
|
-
const taskFile = resolveTaskFile(args, cwd);
|
|
180
|
-
const started = await (env.run ?? cmdRun)({
|
|
181
|
-
cwd,
|
|
182
|
-
role,
|
|
183
|
-
model,
|
|
184
|
-
taskFile,
|
|
185
|
-
rolesDir: env.rolesDir,
|
|
186
|
-
sessionId: env.sessionId,
|
|
187
|
-
});
|
|
188
|
-
const result = await (env.wait ?? cmdWait)({ cwd, id: started.id, onLines });
|
|
189
|
-
return JSON.stringify(withTranscript(withTrimmedReport(result), cwd, args));
|
|
190
|
-
}
|
|
191
|
-
case 'wait': {
|
|
192
|
-
const cwd = resolveToolCwd(args, env);
|
|
193
|
-
const result = await (env.wait ?? cmdWait)({ cwd, id: need(args, 'id'), onLines });
|
|
194
|
-
return JSON.stringify(withTranscript(withTrimmedReport(result), cwd, args));
|
|
195
|
-
}
|
|
196
|
-
case 'approve': {
|
|
197
|
-
const answer = need(args, 'answer');
|
|
198
|
-
if (answer !== 'yes' && answer !== 'no') {
|
|
199
|
-
throw new Error('sonata: the "answer" argument must be yes or no');
|
|
200
|
-
}
|
|
201
|
-
await (env.approve ?? cmdApprove)({
|
|
202
|
-
cwd: resolveToolCwd(args, env), id: need(args, 'id'), yes: answer === 'yes',
|
|
203
|
-
});
|
|
204
|
-
return 'answered';
|
|
205
|
-
}
|
|
206
|
-
default:
|
|
207
|
-
throw new Error(`sonata: unknown tool "${name}"`);
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
//# sourceMappingURL=tools.js.map
|
package/dist/mcp/tools.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEvC,+EAA+E;AAC/E,MAAM,UAAU,cAAc,CAAC,MAAc,EAAE,EAAU,EAAE,GAAG,GAAG,gBAAgB;IAC/E,IAAI,MAAM,CAAC,MAAM,IAAI,GAAG;QAAE,OAAO,MAAM,CAAC;IACxC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,mDAAmD,EAAE,KAAK,CAAC;AAC3F,CAAC;AAaD,MAAM,qBAAqB,GAAG,OAAO,CAAC;AACtC,MAAM,WAAW,GAAG,EAAE,8BAA8B,EAAE,qBAAqB,EAAE,CAAC;AAE9E,MAAM,CAAC,MAAM,SAAS,GAAc;IAClC;QACE,IAAI,EAAE,UAAU;QAChB,WAAW,EACT,4EAA4E;YAC5E,4EAA4E;YAC5E,2DAA2D;QAC7D,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gCAAgC,EAAE;gBACvE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8BAA8B,EAAE;gBACtE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gJAAgJ,EAAE;gBACvL,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yMAAyM,EAAE;gBACrP,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,iNAAiN,EAAE;gBAC/P,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wDAAwD,EAAE;aAC/F;YACD,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;SAC5B;QACD,KAAK,EAAE,WAAW;KACnB;IACD;QACE,IAAI,EAAE,MAAM;QACZ,WAAW,EACT,8EAA8E;YAC9E,oEAAoE;QACtE,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE;gBACjD,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yCAAyC,EAAE;gBAC/E,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,gEAAgE,EAAE;aAC/G;YACD,QAAQ,EAAE,CAAC,IAAI,CAAC;SACjB;QACD,KAAK,EAAE,WAAW;KACnB;IACD;QACE,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,gDAAgD;QAC7D,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACtB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE;gBACpD,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yCAAyC,EAAE;aAChF;YACD,QAAQ,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;SAC3B;KACF;CACF,CAAC;AAEF,qEAAqE;AACrE,SAAS,iBAAiB,CAAC,MAAkB;IAC3C,OAAO,MAAM,CAAC,MAAM,KAAK,SAAS;QAChC,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;AACtE,CAAC;AAED,8EAA8E;AAC9E,SAAS,cAAc,CACrB,MAAkB,EAClB,GAAW,EACX,IAA6B;IAE7B,MAAM,OAAO,GAA4B,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,CAAC;IAC5D,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI;QAAE,OAAO,OAAO,CAAC;IAC7C,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IAC/E,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;IAC9D,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,aAAa,CAC3B,GAAW,EACX,EAAU,EACV,WAAmB,EACnB,GAAG,GAAG,gBAAgB;IAEtB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAClC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAEzC,MAAM,MAAM,GAAG,GAAG,GAAG,WAAW,CAAC;IACjC,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO,6DAA6D,EAAE,KAAK,CAAC;IAE7F,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,OAAO,IAAI,CAAC,MAAM,IAAI,MAAM;QAC1B,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,oDAAoD,EAAE,KAAK,CAAC;AAC1F,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,eAAe,CAAC,IAA6B,EAAE,GAAW;IACxE,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACrE,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAE7E,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IACD,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAmB,CAAC,CAAC;QACxD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,CAAC,SAAS,kBAAkB,CAAC,CAAC;QAC1E,CAAC;QACD,0EAA0E;QAC1E,0CAA0C;QAC1C,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,IAAI,CAAC,GAAG,EAAE,IAAI,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IACvF,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,IAAc,CAAC,CAAC;IACxC,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,IAAI,CAAC,IAA6B,EAAE,GAAW;IACtD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IACxB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,wBAAwB,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAA6B,EAAE,GAAY;IACxE,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC,GAAG,CAAC;IAC3C,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACvE,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,CAAC,GAAG,wCAAwC,CAAC,CAAC;IAC9F,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,IAAY,EACZ,IAA6B,EAC7B,GAAY,EACZ,OAAmC;IAEnC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAChC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAClC,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACtC,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC5C,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,MAAM,CAAC,CAAC;gBACxC,GAAG;gBACH,IAAI;gBACJ,KAAK;gBACL,QAAQ;gBACR,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,SAAS,EAAE,GAAG,CAAC,SAAS;aACzB,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAC7E,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;QAC9E,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACtC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;YACnF,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;QAC9E,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACpC,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;YACrE,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,OAAO,IAAI,UAAU,CAAC,CAAC;gBAChC,GAAG,EAAE,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,KAAK,KAAK;aAC5E,CAAC,CAAC;YACH,OAAO,UAAU,CAAC;QACpB,CAAC;QACD;YACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,GAAG,CAAC,CAAC;IACtD,CAAC;AACH,CAAC"}
|
|
@@ -1,228 +0,0 @@
|
|
|
1
|
-
import { spawnSync } from 'node:child_process';
|
|
2
|
-
import { closeSync, copyFileSync, existsSync, mkdirSync, openSync, readFileSync, readSync, readdirSync, realpathSync, statSync, unlinkSync, writeFileSync, writeSync, } from 'node:fs';
|
|
3
|
-
import { join } from 'node:path';
|
|
4
|
-
/**
|
|
5
|
-
* Remote Control (control-from-phone via claude.ai/code) is gated inside Claude
|
|
6
|
-
* Code itself by `isFirstPartyAnthropicBaseUrl`: the literal ANTHROPIC_BASE_URL
|
|
7
|
-
* string must host-equal api.anthropic.com, and no credential combination lifts
|
|
8
|
-
* that — ANTHROPIC_UNIX_SOCKET trips the auth gate ("requires claude.ai
|
|
9
|
-
* subscription auth") and CLAUDE_CODE_OAUTH_TOKEN trips a stronger one
|
|
10
|
-
* ("setup-token tokens are inference-only"). Verified against 2.1.241.
|
|
11
|
-
*
|
|
12
|
-
* Sonata's router forwards claude-* requests to the real API unmodified, so the
|
|
13
|
-
* only thing standing between a routed session and Remote Control is that
|
|
14
|
-
* client-side string comparison. This module builds a private clone of the
|
|
15
|
-
* installed claude binary with the host check short-circuited to true, and
|
|
16
|
-
* launches that clone from `sonata code`.
|
|
17
|
-
*
|
|
18
|
-
* The clone is a copy (cp -c, APFS-friendly) of the versioned binary under
|
|
19
|
-
* ~/.local/share/claude/versions/, so the user's own `claude` — and every
|
|
20
|
-
* session outside sonata — keeps running the stock binary. The patch is
|
|
21
|
-
* same-length, applied to the clone only, and re-signed ad hoc because macOS
|
|
22
|
-
* arm64 refuses to exec binaries whose signature no longer matches their
|
|
23
|
-
* content.
|
|
24
|
-
*/
|
|
25
|
-
const HOST_CHECK = 'return["api.anthropic.com"].includes(';
|
|
26
|
-
const PATCH_MARKER = 'sonata-rc-host-check';
|
|
27
|
-
/**
|
|
28
|
-
* Rewrites `return["api.anthropic.com"].includes(<ident>)` into a constant
|
|
29
|
-
* `true` of exactly the same byte length, so every offset after the patch site
|
|
30
|
-
* stays put. Returns null when the shape is not found — a future Claude Code
|
|
31
|
-
* that restructures the check must fail loudly here rather than produce a
|
|
32
|
-
* silently unpatched clone.
|
|
33
|
-
*/
|
|
34
|
-
export function patchHostCheck(binary) {
|
|
35
|
-
const anchor = Buffer.from(HOST_CHECK, 'utf8');
|
|
36
|
-
const offset = binary.indexOf(anchor);
|
|
37
|
-
if (offset < 0)
|
|
38
|
-
return null;
|
|
39
|
-
// Sanity: this lives at the end of `let t=new URL(e).host;<here>` — refuse to
|
|
40
|
-
// patch an unrelated occurrence of the anchor string.
|
|
41
|
-
if (binary.subarray(Math.max(0, offset - 6), offset).toString('latin1') !== '.host;') {
|
|
42
|
-
return null;
|
|
43
|
-
}
|
|
44
|
-
// Consume the identifier and the closing paren: HOST_CHECK ends mid-statement.
|
|
45
|
-
let end = offset + anchor.length;
|
|
46
|
-
while (end < binary.length && binary[end] !== 0x29 /* ) */)
|
|
47
|
-
end += 1;
|
|
48
|
-
if (end >= binary.length)
|
|
49
|
-
return null;
|
|
50
|
-
end += 1;
|
|
51
|
-
const length = end - offset;
|
|
52
|
-
const replacement = truePaddedTo(length);
|
|
53
|
-
if (!replacement)
|
|
54
|
-
return null;
|
|
55
|
-
const patched = Buffer.from(binary);
|
|
56
|
-
replacement.copy(patched, offset);
|
|
57
|
-
return { patched, offset, length };
|
|
58
|
-
}
|
|
59
|
-
/** `return!0` padded out to `length` bytes with a comment carrying the marker. */
|
|
60
|
-
function truePaddedTo(length) {
|
|
61
|
-
const head = Buffer.from(`return!0/*${PATCH_MARKER}`, 'utf8');
|
|
62
|
-
if (head.length + 2 > length)
|
|
63
|
-
return null;
|
|
64
|
-
return Buffer.concat([head, Buffer.alloc(length - head.length - 2, 0x78 /* x */), Buffer.from('*/', 'utf8')]);
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Finds the real claude executable behind the many shims a machine may carry
|
|
68
|
-
* (cmux wrappers, npm launchers). Only the native install — versioned
|
|
69
|
-
* self-contained binaries under ~/.local/share/claude/versions/ — can be
|
|
70
|
-
* cloned-and-patched; anything else returns null and sonata code falls back to
|
|
71
|
-
* plain `claude` with Remote Control off.
|
|
72
|
-
*/
|
|
73
|
-
export function resolveNativeClaude(home, env = process.env) {
|
|
74
|
-
const override = env.SONATA_CLAUDE_BIN;
|
|
75
|
-
if (override && existsSync(override))
|
|
76
|
-
return { path: realpathSync(override) };
|
|
77
|
-
const binLink = join(home, '.local', 'bin', 'claude');
|
|
78
|
-
if (existsSync(binLink)) {
|
|
79
|
-
try {
|
|
80
|
-
const real = realpathSync(binLink);
|
|
81
|
-
if (real.includes(`${sep()}versions${sep()}`))
|
|
82
|
-
return { path: real };
|
|
83
|
-
}
|
|
84
|
-
catch {
|
|
85
|
-
// Unreadable link: fall through to the versions directory.
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
const versionsDir = join(home, '.local', 'share', 'claude', 'versions');
|
|
89
|
-
if (!existsSync(versionsDir))
|
|
90
|
-
return null;
|
|
91
|
-
const versions = readdirSync(versionsDir)
|
|
92
|
-
.filter((name) => /^\d+\.\d+\.\d+$/.test(name))
|
|
93
|
-
.sort(compareSemver);
|
|
94
|
-
const newest = versions.at(-1);
|
|
95
|
-
return newest ? { path: join(versionsDir, newest) } : null;
|
|
96
|
-
}
|
|
97
|
-
function sep() {
|
|
98
|
-
return process.platform === 'win32' ? '\\' : '/';
|
|
99
|
-
}
|
|
100
|
-
function compareSemver(a, b) {
|
|
101
|
-
const pa = a.split('.').map(Number);
|
|
102
|
-
const pb = b.split('.').map(Number);
|
|
103
|
-
for (let i = 0; i < 3; i += 1) {
|
|
104
|
-
if ((pa[i] ?? 0) !== (pb[i] ?? 0))
|
|
105
|
-
return (pa[i] ?? 0) - (pb[i] ?? 0);
|
|
106
|
-
}
|
|
107
|
-
return 0;
|
|
108
|
-
}
|
|
109
|
-
export function shimDir(home) {
|
|
110
|
-
return join(home, '.config', 'sonata', 'claude-shim');
|
|
111
|
-
}
|
|
112
|
-
function defaultSign(path) {
|
|
113
|
-
if (process.platform !== 'darwin')
|
|
114
|
-
return;
|
|
115
|
-
const result = spawnSync('codesign', ['--force', '--sign', '-', path], { stdio: 'ignore' });
|
|
116
|
-
if (result.status !== 0) {
|
|
117
|
-
throw new Error(`codesign failed for ${path} — macOS will refuse to exec an unsigned modified binary`);
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* Returns the path to a patched clone of the native claude binary, building it
|
|
122
|
-
* when the source version changed. Null means "cannot provide" — caller falls
|
|
123
|
-
* back to the stock binary and Remote Control stays off, exactly as before this
|
|
124
|
-
* module existed.
|
|
125
|
-
*/
|
|
126
|
-
export function ensureRemoteControlCapableClaude(deps) {
|
|
127
|
-
const resolved = resolveNativeClaude(deps.home, deps.env);
|
|
128
|
-
if (!resolved)
|
|
129
|
-
return null;
|
|
130
|
-
const source = resolved.path;
|
|
131
|
-
const version = source.split(sep()).at(-1) ?? 'claude';
|
|
132
|
-
const clonePath = join(shimDir(deps.home), version);
|
|
133
|
-
const metaPath = `${clonePath}.json`;
|
|
134
|
-
const stat = statSync(source);
|
|
135
|
-
if (existsSync(clonePath) && existsSync(metaPath)) {
|
|
136
|
-
try {
|
|
137
|
-
const meta = JSON.parse(readFileSync(metaPath, 'utf8'));
|
|
138
|
-
if (meta.sourceSize === stat.size &&
|
|
139
|
-
meta.sourceMtimeMs === stat.mtimeMs &&
|
|
140
|
-
statSync(clonePath).size === stat.size &&
|
|
141
|
-
probeMarker(clonePath, meta)) {
|
|
142
|
-
return clonePath;
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
catch {
|
|
146
|
-
// Corrupt meta or clone: rebuild below.
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
mkdirSync(shimDir(deps.home), { recursive: true });
|
|
150
|
-
// cp -c uses APFS cloning where available; a plain copy is the fallback
|
|
151
|
-
// elsewhere. Either way the clone diverges from the stock binary only at the
|
|
152
|
-
// patched statement.
|
|
153
|
-
const cloned = spawnSync('cp', ['-c', source, clonePath], { stdio: 'ignore' });
|
|
154
|
-
if (cloned.status !== 0 || !existsSync(clonePath)) {
|
|
155
|
-
try {
|
|
156
|
-
if (existsSync(clonePath))
|
|
157
|
-
unlinkSync(clonePath);
|
|
158
|
-
copyFileSync(source, clonePath);
|
|
159
|
-
}
|
|
160
|
-
catch (error) {
|
|
161
|
-
deps.log?.(`sonata: could not clone ${source}: ${error.message}`);
|
|
162
|
-
return null;
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
const binary = readFileSync(source);
|
|
166
|
-
const result = patchHostCheck(binary);
|
|
167
|
-
if (!result) {
|
|
168
|
-
// Leave no unpatched clone lying around to be mistaken for a good one.
|
|
169
|
-
try {
|
|
170
|
-
if (existsSync(clonePath))
|
|
171
|
-
unlinkSync(clonePath);
|
|
172
|
-
if (existsSync(metaPath))
|
|
173
|
-
unlinkSync(metaPath);
|
|
174
|
-
}
|
|
175
|
-
catch {
|
|
176
|
-
// Best-effort cleanup.
|
|
177
|
-
}
|
|
178
|
-
deps.log?.(`sonata: ${version} no longer contains the known Remote Control gate; leaving it intact`);
|
|
179
|
-
return null;
|
|
180
|
-
}
|
|
181
|
-
const fd = openSync(clonePath, 'r+');
|
|
182
|
-
try {
|
|
183
|
-
const statement = result.patched.subarray(result.offset, result.offset + result.length);
|
|
184
|
-
writeSync(fd, statement, 0, statement.length, result.offset);
|
|
185
|
-
}
|
|
186
|
-
finally {
|
|
187
|
-
closeQuietly(fd);
|
|
188
|
-
}
|
|
189
|
-
const sign = deps.sign ?? defaultSign;
|
|
190
|
-
try {
|
|
191
|
-
sign(clonePath);
|
|
192
|
-
}
|
|
193
|
-
catch (error) {
|
|
194
|
-
deps.log?.(`sonata: ${error.message}`);
|
|
195
|
-
return null;
|
|
196
|
-
}
|
|
197
|
-
const meta = {
|
|
198
|
-
sourceSize: stat.size,
|
|
199
|
-
sourceMtimeMs: stat.mtimeMs,
|
|
200
|
-
offset: result.offset,
|
|
201
|
-
length: result.length,
|
|
202
|
-
};
|
|
203
|
-
writeFileSync(metaPath, JSON.stringify(meta));
|
|
204
|
-
return clonePath;
|
|
205
|
-
}
|
|
206
|
-
function probeMarker(path, meta) {
|
|
207
|
-
const fd = openSync(path, 'r');
|
|
208
|
-
try {
|
|
209
|
-
const buffer = Buffer.alloc(meta.length);
|
|
210
|
-
const read = readSync(fd, buffer, 0, buffer.length, meta.offset);
|
|
211
|
-
return read === buffer.length && buffer.toString('latin1').startsWith('return!0/*');
|
|
212
|
-
}
|
|
213
|
-
catch {
|
|
214
|
-
return false;
|
|
215
|
-
}
|
|
216
|
-
finally {
|
|
217
|
-
closeQuietly(fd);
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
function closeQuietly(fd) {
|
|
221
|
-
try {
|
|
222
|
-
closeSync(fd);
|
|
223
|
-
}
|
|
224
|
-
catch {
|
|
225
|
-
// Already closed or invalid: nothing to salvage.
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
//# sourceMappingURL=claude-shim.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"claude-shim.js","sourceRoot":"","sources":["../../src/native/claude-shim.ts"],"names":[],"mappings":"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"}
|
package/dist/native/hosts.js
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { execSync } from 'node:child_process';
|
|
2
|
-
import { readFileSync } from 'node:fs';
|
|
3
|
-
import { resolve4 } from 'node:dns/promises';
|
|
4
|
-
const HOSTS_PATH = '/etc/hosts';
|
|
5
|
-
const MARKER = '# sonata transparent proxy';
|
|
6
|
-
const ENTRY = `127.0.0.1 api.anthropic.com ${MARKER}`;
|
|
7
|
-
/**
|
|
8
|
-
* Resolves api.anthropic.com's real IP BEFORE /etc/hosts is modified.
|
|
9
|
-
* Cached for the session so the router can forward to it directly.
|
|
10
|
-
*/
|
|
11
|
-
export async function resolveAnthropicIp() {
|
|
12
|
-
const ips = await resolve4('api.anthropic.com');
|
|
13
|
-
if (ips.length === 0)
|
|
14
|
-
throw new Error('sonata: could not resolve api.anthropic.com');
|
|
15
|
-
return ips[0];
|
|
16
|
-
}
|
|
17
|
-
export function hostsHasEntry() {
|
|
18
|
-
try {
|
|
19
|
-
return readFileSync(HOSTS_PATH, 'utf8').includes(MARKER);
|
|
20
|
-
}
|
|
21
|
-
catch {
|
|
22
|
-
return false;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Adds the localhost redirect to /etc/hosts. Requires sudo.
|
|
27
|
-
*
|
|
28
|
-
* The marker comment makes the entry identifiable so removeHostsEntry
|
|
29
|
-
* removes exactly what addHostsEntry wrote, nothing else.
|
|
30
|
-
*/
|
|
31
|
-
export function addHostsEntry() {
|
|
32
|
-
if (hostsHasEntry())
|
|
33
|
-
return;
|
|
34
|
-
execSync(`echo '${ENTRY}' | sudo -n tee -a ${HOSTS_PATH} > /dev/null 2>&1 || ` +
|
|
35
|
-
`echo '${ENTRY}' | sudo tee -a ${HOSTS_PATH} > /dev/null`, { stdio: 'inherit' });
|
|
36
|
-
}
|
|
37
|
-
export function removeHostsEntry() {
|
|
38
|
-
if (!hostsHasEntry())
|
|
39
|
-
return;
|
|
40
|
-
// sed -i on macOS requires '' as the backup extension
|
|
41
|
-
try {
|
|
42
|
-
execSync(`sudo -n sed -i '' '/${MARKER.replace(/[/\\]/g, '\\$&')}/d' ${HOSTS_PATH} 2>/dev/null || ` +
|
|
43
|
-
`sudo sed -i '' '/${MARKER.replace(/[/\\]/g, '\\$&')}/d' ${HOSTS_PATH}`, { stdio: 'inherit' });
|
|
44
|
-
}
|
|
45
|
-
catch {
|
|
46
|
-
// Best-effort: if sudo fails, doctor will report the stale entry.
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
/** Flush DNS cache so the hosts change takes effect immediately. */
|
|
50
|
-
export function flushDns() {
|
|
51
|
-
try {
|
|
52
|
-
execSync('sudo -n dscacheutil -flushcache 2>/dev/null; sudo -n killall -HUP mDNSResponder 2>/dev/null', {
|
|
53
|
-
stdio: 'pipe',
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
catch {
|
|
57
|
-
// Non-fatal: most operations will pick up the change without flushing.
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
//# sourceMappingURL=hosts.js.map
|
package/dist/native/hosts.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hosts.js","sourceRoot":"","sources":["../../src/native/hosts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,MAAM,UAAU,GAAG,YAAY,CAAC;AAChC,MAAM,MAAM,GAAG,4BAA4B,CAAC;AAC5C,MAAM,KAAK,GAAG,+BAA+B,MAAM,EAAE,CAAC;AAEtD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IAChD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACrF,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa;IAC3B,IAAI,aAAa,EAAE;QAAE,OAAO;IAC5B,QAAQ,CACN,SAAS,KAAK,sBAAsB,UAAU,uBAAuB;QACrE,SAAS,KAAK,mBAAmB,UAAU,cAAc,EACzD,EAAE,KAAK,EAAE,SAAS,EAAE,CACrB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,IAAI,CAAC,aAAa,EAAE;QAAE,OAAO;IAC7B,sDAAsD;IACtD,IAAI,CAAC;QACH,QAAQ,CACN,uBAAuB,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,UAAU,kBAAkB;YAC1F,oBAAoB,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,UAAU,EAAE,EACvE,EAAE,KAAK,EAAE,SAAS,EAAE,CACrB,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,kEAAkE;IACpE,CAAC;AACH,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,QAAQ;IACtB,IAAI,CAAC;QACH,QAAQ,CAAC,6FAA6F,EAAE;YACtG,KAAK,EAAE,MAAM;SACd,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,uEAAuE;IACzE,CAAC;AACH,CAAC"}
|
package/dist/native/tls.js
DELETED
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import { execFileSync } from 'node:child_process';
|
|
2
|
-
import { existsSync, mkdirSync, readFileSync } from 'node:fs';
|
|
3
|
-
import { join } from 'node:path';
|
|
4
|
-
export function tlsDir(home) {
|
|
5
|
-
return join(home, '.config', 'sonata', 'tls');
|
|
6
|
-
}
|
|
7
|
-
export function caKeyPath(home) {
|
|
8
|
-
return join(tlsDir(home), 'ca.key');
|
|
9
|
-
}
|
|
10
|
-
export function caCertPath(home) {
|
|
11
|
-
return join(tlsDir(home), 'ca.pem');
|
|
12
|
-
}
|
|
13
|
-
export function serverKeyPath(home) {
|
|
14
|
-
return join(tlsDir(home), 'server.key');
|
|
15
|
-
}
|
|
16
|
-
export function serverCertPath(home) {
|
|
17
|
-
return join(tlsDir(home), 'server.pem');
|
|
18
|
-
}
|
|
19
|
-
export function hasCerts(home) {
|
|
20
|
-
return (existsSync(caKeyPath(home)) &&
|
|
21
|
-
existsSync(caCertPath(home)) &&
|
|
22
|
-
existsSync(serverKeyPath(home)) &&
|
|
23
|
-
existsSync(serverCertPath(home)));
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Generates a local CA and a server cert for api.anthropic.com.
|
|
27
|
-
*
|
|
28
|
-
* The CA is what NODE_EXTRA_CA_CERTS points at so spawned `claude -p`
|
|
29
|
-
* processes trust the local server. The server cert has a SAN for the
|
|
30
|
-
* hostname so TLS handshakes succeed.
|
|
31
|
-
*
|
|
32
|
-
* Uses openssl — the only non-Node dependency, universally available on
|
|
33
|
-
* macOS and Linux. The certs are long-lived (10 years) since they never
|
|
34
|
-
* leave the machine.
|
|
35
|
-
*/
|
|
36
|
-
export function generateCerts(home) {
|
|
37
|
-
const dir = tlsDir(home);
|
|
38
|
-
mkdirSync(dir, { recursive: true });
|
|
39
|
-
const caKey = caKeyPath(home);
|
|
40
|
-
const caCert = caCertPath(home);
|
|
41
|
-
const srvKey = serverKeyPath(home);
|
|
42
|
-
const srvCert = serverCertPath(home);
|
|
43
|
-
// CA key + self-signed CA cert
|
|
44
|
-
execFileSync('openssl', [
|
|
45
|
-
'req', '-x509', '-newkey', 'ec', '-pkeyopt', 'ec_paramgen_curve:prime256v1',
|
|
46
|
-
'-keyout', caKey, '-out', caCert,
|
|
47
|
-
'-days', '3650', '-nodes',
|
|
48
|
-
'-subj', '/CN=Sonata Local CA',
|
|
49
|
-
], { stdio: 'pipe' });
|
|
50
|
-
// Server key + CSR + sign with CA
|
|
51
|
-
const csrPath = join(dir, 'server.csr');
|
|
52
|
-
execFileSync('openssl', [
|
|
53
|
-
'req', '-newkey', 'ec', '-pkeyopt', 'ec_paramgen_curve:prime256v1',
|
|
54
|
-
'-keyout', srvKey, '-out', csrPath, '-nodes',
|
|
55
|
-
'-subj', '/CN=api.anthropic.com',
|
|
56
|
-
], { stdio: 'pipe' });
|
|
57
|
-
const extPath = join(dir, 'server.ext');
|
|
58
|
-
execFileSync('bash', ['-c', `cat > '${extPath}' << 'EOF'
|
|
59
|
-
subjectAltName=DNS:api.anthropic.com
|
|
60
|
-
EOF`], { stdio: 'pipe' });
|
|
61
|
-
execFileSync('openssl', [
|
|
62
|
-
'x509', '-req', '-in', csrPath, '-CA', caCert, '-CAkey', caKey,
|
|
63
|
-
'-CAcreateserial', '-out', srvCert,
|
|
64
|
-
'-days', '3650', '-extfile', extPath,
|
|
65
|
-
], { stdio: 'pipe' });
|
|
66
|
-
}
|
|
67
|
-
export function readServerTls(home) {
|
|
68
|
-
return {
|
|
69
|
-
key: readFileSync(serverKeyPath(home), 'utf8'),
|
|
70
|
-
cert: readFileSync(serverCertPath(home), 'utf8'),
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
//# sourceMappingURL=tls.js.map
|
package/dist/native/tls.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tls.js","sourceRoot":"","sources":["../../src/native/tls.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test-compile.js","sourceRoot":"","sources":["../../src/tui-ink/test-compile.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAE3B,MAAM,CAAC,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,KAAC,IAAI,wBAAa,CAAC"}
|