@dsiloed/silo-link 1.5.4 → 1.6.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +41 -5
- package/dist/api/dsiloed-client.d.ts +0 -3
- package/dist/api/dsiloed-client.d.ts.map +1 -1
- package/dist/api/dsiloed-client.js.map +1 -1
- package/dist/cli/claude-md-block.d.ts +3 -1
- package/dist/cli/claude-md-block.d.ts.map +1 -1
- package/dist/cli/claude-md-block.js +37 -40
- package/dist/cli/claude-md-block.js.map +1 -1
- package/dist/cli/commands.d.ts.map +1 -1
- package/dist/cli/commands.js +45 -14
- package/dist/cli/commands.js.map +1 -1
- package/dist/cli/daemon.d.ts +3 -3
- package/dist/cli/daemon.d.ts.map +1 -1
- package/dist/cli/daemon.js +12 -8
- package/dist/cli/daemon.js.map +1 -1
- package/dist/config/config-manager.d.ts +24 -0
- package/dist/config/config-manager.d.ts.map +1 -1
- package/dist/config/config-manager.js +168 -11
- package/dist/config/config-manager.js.map +1 -1
- package/dist/config/jwt-generator.d.ts +11 -6
- package/dist/config/jwt-generator.d.ts.map +1 -1
- package/dist/config/jwt-generator.js +20 -39
- package/dist/config/jwt-generator.js.map +1 -1
- package/dist/core/base-tmux-launcher.d.ts +13 -0
- package/dist/core/base-tmux-launcher.d.ts.map +1 -1
- package/dist/core/base-tmux-launcher.js +167 -22
- package/dist/core/base-tmux-launcher.js.map +1 -1
- package/dist/core/bridge.d.ts.map +1 -1
- package/dist/core/bridge.js +50 -11
- package/dist/core/bridge.js.map +1 -1
- package/dist/core/claude-launcher.d.ts +46 -0
- package/dist/core/claude-launcher.d.ts.map +1 -1
- package/dist/core/claude-launcher.js +259 -29
- package/dist/core/claude-launcher.js.map +1 -1
- package/dist/core/gemini-launcher.d.ts.map +1 -1
- package/dist/core/gemini-launcher.js +36 -13
- package/dist/core/gemini-launcher.js.map +1 -1
- package/dist/mcp/tools/register-tools.d.ts.map +1 -1
- package/dist/mcp/tools/register-tools.js +23 -18
- package/dist/mcp/tools/register-tools.js.map +1 -1
- package/dist/types/index.d.ts +4 -1
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -25,6 +25,52 @@ export declare class ClaudeLauncher extends BaseTmuxLauncher {
|
|
|
25
25
|
/** Wait 3s after ready for npx mcp-remote servers to finish connecting */
|
|
26
26
|
protected getPostReadyDelayMs(): number;
|
|
27
27
|
protected formatPrompt(prompt: string): string;
|
|
28
|
+
/**
|
|
29
|
+
* Pre-accept Claude Code's per-workspace gates for `cwd` so SiloLink-
|
|
30
|
+
* spawned tmux panes don't deadlock on prompts no human can answer.
|
|
31
|
+
*
|
|
32
|
+
* Two gates are pre-cleared idempotently in `~/.claude.json[projects][cwd]`:
|
|
33
|
+
*
|
|
34
|
+
* 1. **`hasTrustDialogAccepted`** — workspace trust dialog. CC shows
|
|
35
|
+
* "Do you trust this directory?" the first time it's invoked from a
|
|
36
|
+
* new cwd. `--dangerously-skip-permissions` does NOT bypass this;
|
|
37
|
+
* that flag governs *tool* permissions, not *workspace* trust.
|
|
38
|
+
*
|
|
39
|
+
* 2. **`enabledMcpjsonServers`** — project-scope MCP enablement list.
|
|
40
|
+
* When a `.mcp.json` exists in cwd, CC by default does NOT auto-enable
|
|
41
|
+
* its servers — they sit in a "pending approval" state and **all MCP
|
|
42
|
+
* loading (including user-scope!) appears suppressed** in the spawned
|
|
43
|
+
* session until approved. This is the gate that bit Vixen with
|
|
44
|
+
* "no mcp__portablemind__ tools" — the .mcp.json silolink wrote was
|
|
45
|
+
* sitting unapproved, and CC's response was to load 0 MCP tools at all.
|
|
46
|
+
* Pre-populate the list with the server names silolink registers.
|
|
47
|
+
*
|
|
48
|
+
* Per-directory only — does not weaken posture for any cwd silolink
|
|
49
|
+
* doesn't own. SiloLink only ever runs CC in cwds it controls
|
|
50
|
+
* (staging_path or `~/.silolink/worktrees/...`).
|
|
51
|
+
*/
|
|
52
|
+
private ensureClaudeWorkspaceTrust;
|
|
53
|
+
/**
|
|
54
|
+
* Read MCP servers the user has configured at user-scope in ~/.claude.json
|
|
55
|
+
* and return only those whose name is in `config.forward_user_scope_mcp`,
|
|
56
|
+
* as `[name, addArgs]` pairs ready to be appended to
|
|
57
|
+
* `claude mcp add -s project ...`. Used by setupMcpConfig to forward the
|
|
58
|
+
* user's cross-tenant MCPs (e.g. portablemind) into the project-scope
|
|
59
|
+
* .mcp.json so they survive CC's "project file replaces user scope"
|
|
60
|
+
* behaviour in the spawned session.
|
|
61
|
+
*
|
|
62
|
+
* Any name listed in forward_user_scope_mcp that is missing from
|
|
63
|
+
* user-scope is logged as an error so the operator knows their config
|
|
64
|
+
* is incomplete — the agent's CC will then report "no mcp__<name>__*
|
|
65
|
+
* tools available" which the stuck-pane diagnostic also surfaces.
|
|
66
|
+
*/
|
|
67
|
+
private readUserScopeForwardServers;
|
|
68
|
+
/**
|
|
69
|
+
* Extend the project entry's enabledMcpjsonServers list so additional
|
|
70
|
+
* server names (forwarded from user-scope) are auto-enabled in the
|
|
71
|
+
* spawned session. Idempotent.
|
|
72
|
+
*/
|
|
73
|
+
private extendEnabledMcpjsonServers;
|
|
28
74
|
protected setupMcpConfig(cwd: string, toolAllowlist?: string[] | null): Promise<void>;
|
|
29
75
|
protected checkEnabled(): boolean;
|
|
30
76
|
protected getWorkingDirectory(): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-launcher.d.ts","sourceRoot":"","sources":["../../src/core/claude-launcher.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D;;;;;;;;;GASG;AACH,qBAAa,cAAe,SAAQ,gBAAgB;IAClD,OAAO,CAAC,YAAY,CAA6B;gBAG/C,MAAM,EAAE,cAAc,EACtB,cAAc,EAAE,cAAc,EAC9B,aAAa,CAAC,EAAE,aAAa,EAC7B,YAAY,CAAC,EAAE,YAAY,EAC3B,gBAAgB,CAAC,EAAE,gBAAgB;IAOrC,SAAS,CAAC,UAAU,IAAI,MAAM;IAI9B,SAAS,CAAC,OAAO,IAAI,MAAM,EAAE;
|
|
1
|
+
{"version":3,"file":"claude-launcher.d.ts","sourceRoot":"","sources":["../../src/core/claude-launcher.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D;;;;;;;;;GASG;AACH,qBAAa,cAAe,SAAQ,gBAAgB;IAClD,OAAO,CAAC,YAAY,CAA6B;gBAG/C,MAAM,EAAE,cAAc,EACtB,cAAc,EAAE,cAAc,EAC9B,aAAa,CAAC,EAAE,aAAa,EAC7B,YAAY,CAAC,EAAE,YAAY,EAC3B,gBAAgB,CAAC,EAAE,gBAAgB;IAOrC,SAAS,CAAC,UAAU,IAAI,MAAM;IAI9B,SAAS,CAAC,OAAO,IAAI,MAAM,EAAE;IAa7B,SAAS,CAAC,iBAAiB,IAAI,MAAM,EAAE;IAIvC,4FAA4F;IAC5F,SAAS,CAAC,iBAAiB,IAAI,MAAM;IAErC,0EAA0E;IAC1E,SAAS,CAAC,mBAAmB,IAAI,MAAM;IAEvC,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAI9C;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,OAAO,CAAC,0BAA0B;IAgDlC;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,2BAA2B;IA0DnC;;;;OAIG;IACH,OAAO,CAAC,2BAA2B;cAyBnB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IA0G3F,SAAS,CAAC,YAAY,IAAI,OAAO;IAIjC,SAAS,CAAC,mBAAmB,IAAI,MAAM;IAiBvC,SAAS,CAAC,uBAAuB,IAAI,OAAO;IAI5C,SAAS,CAAC,gBAAgB,IAAI,MAAM;IAIpC,SAAS,CAAC,gBAAgB,IAAI,MAAM,GAAG,SAAS;IAIhD,SAAS,CAAC,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAO/C,SAAS,CAAC,aAAa,IAAI,MAAM;IAIjC,SAAS,CAAC,SAAS,IAAI,MAAM;IAI7B,SAAS,CAAC,kBAAkB,IAAI,MAAM;IAItC,SAAS,CAAC,iBAAiB,CACzB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,MAAM,GACvB;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE;IA2C1C,sBAAsB,IAAI,MAAM,GAAG,IAAI;IAIvC;;OAEG;YACW,aAAa;IAe3B;;OAEG;cACsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAsG1C,IAAI,IAAI,IAAI;IAQrB;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB;IAyBxB,OAAO,CAAC,gBAAgB;cAwCL,UAAU,CAC3B,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,GAClB;QAAE,WAAW,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IAgCrE,eAAe,IAAI,IAAI;CAMxB"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { execFileSync } from 'node:child_process';
|
|
2
|
-
import
|
|
2
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
3
|
+
import { homedir } from 'node:os';
|
|
4
|
+
import { join } from 'node:path';
|
|
3
5
|
import { BaseTmuxLauncher } from './base-tmux-launcher.js';
|
|
4
6
|
/**
|
|
5
7
|
* Claude Code implementation of the AgentLauncher interface.
|
|
@@ -21,7 +23,16 @@ export class ClaudeLauncher extends BaseTmuxLauncher {
|
|
|
21
23
|
return this.config.claude_command || 'claude';
|
|
22
24
|
}
|
|
23
25
|
getArgs() {
|
|
24
|
-
|
|
26
|
+
// Block recursive launches: a spawned session must NEVER be able to call
|
|
27
|
+
// launch_silolink_session_tool — it IS the worker, and re-dispatching
|
|
28
|
+
// creates a nested launch that goes nowhere. The dispatching agent (the
|
|
29
|
+
// one that called launch in the first place) runs server-side, not in a
|
|
30
|
+
// claude CLI, so this restriction doesn't affect it.
|
|
31
|
+
return [
|
|
32
|
+
'--dangerously-skip-permissions',
|
|
33
|
+
'--disallowedTools',
|
|
34
|
+
'mcp__portablemind__launch_silolink_session_tool,mcp__silolink_server__launch_silolink_session_tool',
|
|
35
|
+
];
|
|
25
36
|
}
|
|
26
37
|
getReadyIndicator() {
|
|
27
38
|
return ['❯'];
|
|
@@ -33,13 +44,185 @@ export class ClaudeLauncher extends BaseTmuxLauncher {
|
|
|
33
44
|
formatPrompt(prompt) {
|
|
34
45
|
return prompt;
|
|
35
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* Pre-accept Claude Code's per-workspace gates for `cwd` so SiloLink-
|
|
49
|
+
* spawned tmux panes don't deadlock on prompts no human can answer.
|
|
50
|
+
*
|
|
51
|
+
* Two gates are pre-cleared idempotently in `~/.claude.json[projects][cwd]`:
|
|
52
|
+
*
|
|
53
|
+
* 1. **`hasTrustDialogAccepted`** — workspace trust dialog. CC shows
|
|
54
|
+
* "Do you trust this directory?" the first time it's invoked from a
|
|
55
|
+
* new cwd. `--dangerously-skip-permissions` does NOT bypass this;
|
|
56
|
+
* that flag governs *tool* permissions, not *workspace* trust.
|
|
57
|
+
*
|
|
58
|
+
* 2. **`enabledMcpjsonServers`** — project-scope MCP enablement list.
|
|
59
|
+
* When a `.mcp.json` exists in cwd, CC by default does NOT auto-enable
|
|
60
|
+
* its servers — they sit in a "pending approval" state and **all MCP
|
|
61
|
+
* loading (including user-scope!) appears suppressed** in the spawned
|
|
62
|
+
* session until approved. This is the gate that bit Vixen with
|
|
63
|
+
* "no mcp__portablemind__ tools" — the .mcp.json silolink wrote was
|
|
64
|
+
* sitting unapproved, and CC's response was to load 0 MCP tools at all.
|
|
65
|
+
* Pre-populate the list with the server names silolink registers.
|
|
66
|
+
*
|
|
67
|
+
* Per-directory only — does not weaken posture for any cwd silolink
|
|
68
|
+
* doesn't own. SiloLink only ever runs CC in cwds it controls
|
|
69
|
+
* (staging_path or `~/.silolink/worktrees/...`).
|
|
70
|
+
*/
|
|
71
|
+
ensureClaudeWorkspaceTrust(cwd) {
|
|
72
|
+
const claudeJsonPath = join(homedir(), '.claude.json');
|
|
73
|
+
let data = {};
|
|
74
|
+
try {
|
|
75
|
+
if (existsSync(claudeJsonPath)) {
|
|
76
|
+
const raw = readFileSync(claudeJsonPath, 'utf8');
|
|
77
|
+
if (raw.trim())
|
|
78
|
+
data = JSON.parse(raw);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
catch (err) {
|
|
82
|
+
console.warn(`[ClaudeLauncher] Could not parse ${claudeJsonPath} — skipping pre-write: ${err}`);
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
if (!data.projects || typeof data.projects !== 'object')
|
|
86
|
+
data.projects = {};
|
|
87
|
+
const existing = data.projects[cwd] || {};
|
|
88
|
+
// Names of MCP servers silolink writes to <cwd>/.mcp.json — must match
|
|
89
|
+
// setupMcpConfig's `servers` list. Kept in sync by code review; if a
|
|
90
|
+
// future server is added there, add it here too.
|
|
91
|
+
const SILO_PROJECT_MCP_SERVERS = ['silolink', 'silolink_server'];
|
|
92
|
+
const currentEnabled = Array.isArray(existing.enabledMcpjsonServers) ? existing.enabledMcpjsonServers : [];
|
|
93
|
+
const mergedEnabled = Array.from(new Set([...currentEnabled, ...SILO_PROJECT_MCP_SERVERS]));
|
|
94
|
+
const trustOk = existing.hasTrustDialogAccepted === true;
|
|
95
|
+
const mcpOk = SILO_PROJECT_MCP_SERVERS.every(s => currentEnabled.includes(s));
|
|
96
|
+
if (trustOk && mcpOk)
|
|
97
|
+
return; // nothing to write
|
|
98
|
+
data.projects[cwd] = {
|
|
99
|
+
...existing,
|
|
100
|
+
hasTrustDialogAccepted: true,
|
|
101
|
+
enabledMcpjsonServers: mergedEnabled,
|
|
102
|
+
};
|
|
103
|
+
try {
|
|
104
|
+
writeFileSync(claudeJsonPath, JSON.stringify(data, null, 2), { encoding: 'utf8', mode: 0o600 });
|
|
105
|
+
console.log(`[ClaudeLauncher] Pre-accepted CC trust + project-scope MCPs for ${cwd}`);
|
|
106
|
+
}
|
|
107
|
+
catch (err) {
|
|
108
|
+
console.warn(`[ClaudeLauncher] Failed to write CC project state to ${claudeJsonPath}: ${err}`);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Read MCP servers the user has configured at user-scope in ~/.claude.json
|
|
113
|
+
* and return only those whose name is in `config.forward_user_scope_mcp`,
|
|
114
|
+
* as `[name, addArgs]` pairs ready to be appended to
|
|
115
|
+
* `claude mcp add -s project ...`. Used by setupMcpConfig to forward the
|
|
116
|
+
* user's cross-tenant MCPs (e.g. portablemind) into the project-scope
|
|
117
|
+
* .mcp.json so they survive CC's "project file replaces user scope"
|
|
118
|
+
* behaviour in the spawned session.
|
|
119
|
+
*
|
|
120
|
+
* Any name listed in forward_user_scope_mcp that is missing from
|
|
121
|
+
* user-scope is logged as an error so the operator knows their config
|
|
122
|
+
* is incomplete — the agent's CC will then report "no mcp__<name>__*
|
|
123
|
+
* tools available" which the stuck-pane diagnostic also surfaces.
|
|
124
|
+
*/
|
|
125
|
+
readUserScopeForwardServers() {
|
|
126
|
+
const out = [];
|
|
127
|
+
const wantList = Array.isArray(this.config.forward_user_scope_mcp)
|
|
128
|
+
? this.config.forward_user_scope_mcp
|
|
129
|
+
: [];
|
|
130
|
+
if (wantList.length === 0)
|
|
131
|
+
return out;
|
|
132
|
+
const claudeJsonPath = join(homedir(), '.claude.json');
|
|
133
|
+
if (!existsSync(claudeJsonPath)) {
|
|
134
|
+
console.error(`[ClaudeLauncher] forward_user_scope_mcp is set but ${claudeJsonPath} does not exist — none of [${wantList.join(', ')}] will be forwarded into the spawned session.`);
|
|
135
|
+
return out;
|
|
136
|
+
}
|
|
137
|
+
let data = {};
|
|
138
|
+
try {
|
|
139
|
+
const raw = readFileSync(claudeJsonPath, 'utf8').trim();
|
|
140
|
+
if (raw)
|
|
141
|
+
data = JSON.parse(raw);
|
|
142
|
+
}
|
|
143
|
+
catch (err) {
|
|
144
|
+
console.error(`[ClaudeLauncher] forward_user_scope_mcp set but ${claudeJsonPath} could not be parsed: ${err}`);
|
|
145
|
+
return out;
|
|
146
|
+
}
|
|
147
|
+
const userServers = data.mcpServers || {};
|
|
148
|
+
const want = new Set(wantList);
|
|
149
|
+
// Loop over the list (not the user's config) so a missing entry is
|
|
150
|
+
// logged loudly instead of silently absent.
|
|
151
|
+
for (const name of wantList) {
|
|
152
|
+
const cfg = userServers[name];
|
|
153
|
+
if (!cfg) {
|
|
154
|
+
console.error(`[ClaudeLauncher] forward_user_scope_mcp lists '${name}' but no such MCP server exists in user-scope ${claudeJsonPath}[mcpServers]. Add it via 'claude mcp add -s user ${name} -- <command> <args...>' (or the matching JSON entry) before relaunching the daemon. Spawned CC will not have mcp__${name}__* tools available.`);
|
|
155
|
+
continue;
|
|
156
|
+
}
|
|
157
|
+
// Only stdio-style servers translate cleanly back into CLI args.
|
|
158
|
+
if (typeof cfg !== 'object')
|
|
159
|
+
continue;
|
|
160
|
+
if (cfg.type && cfg.type !== 'stdio') {
|
|
161
|
+
console.warn(`[ClaudeLauncher] Skipping forward of '${name}' — unsupported server type '${cfg.type}'.`);
|
|
162
|
+
continue;
|
|
163
|
+
}
|
|
164
|
+
if (typeof cfg.command !== 'string') {
|
|
165
|
+
console.warn(`[ClaudeLauncher] Skipping forward of '${name}' — no 'command' field.`);
|
|
166
|
+
continue;
|
|
167
|
+
}
|
|
168
|
+
const cmdArgs = ['--', cfg.command, ...(Array.isArray(cfg.args) ? cfg.args : [])];
|
|
169
|
+
out.push([name, cmdArgs]);
|
|
170
|
+
}
|
|
171
|
+
// Defensive: warn (don't fail) if the user listed silolink/silolink_server
|
|
172
|
+
// — those are always written fresh by silolink itself, forwarding them
|
|
173
|
+
// would clobber the per-env JWT.
|
|
174
|
+
for (const name of wantList) {
|
|
175
|
+
if (name === 'silolink' || name === 'silolink_server') {
|
|
176
|
+
console.warn(`[ClaudeLauncher] Refusing to forward '${name}' — silolink writes those fresh per-env. Remove from forward_user_scope_mcp.`);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
void want; // silence unused warning if linter cares
|
|
180
|
+
return out.filter(([n]) => n !== 'silolink' && n !== 'silolink_server');
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Extend the project entry's enabledMcpjsonServers list so additional
|
|
184
|
+
* server names (forwarded from user-scope) are auto-enabled in the
|
|
185
|
+
* spawned session. Idempotent.
|
|
186
|
+
*/
|
|
187
|
+
extendEnabledMcpjsonServers(cwd, names) {
|
|
188
|
+
const claudeJsonPath = join(homedir(), '.claude.json');
|
|
189
|
+
let data = {};
|
|
190
|
+
try {
|
|
191
|
+
if (existsSync(claudeJsonPath)) {
|
|
192
|
+
const raw = readFileSync(claudeJsonPath, 'utf8').trim();
|
|
193
|
+
if (raw)
|
|
194
|
+
data = JSON.parse(raw);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
catch {
|
|
198
|
+
return;
|
|
199
|
+
}
|
|
200
|
+
if (!data.projects)
|
|
201
|
+
data.projects = {};
|
|
202
|
+
const ent = data.projects[cwd] || {};
|
|
203
|
+
const existing = Array.isArray(ent.enabledMcpjsonServers) ? ent.enabledMcpjsonServers : [];
|
|
204
|
+
const merged = Array.from(new Set([...existing, ...names]));
|
|
205
|
+
if (merged.length === existing.length)
|
|
206
|
+
return; // nothing new
|
|
207
|
+
data.projects[cwd] = { ...ent, enabledMcpjsonServers: merged };
|
|
208
|
+
try {
|
|
209
|
+
writeFileSync(claudeJsonPath, JSON.stringify(data, null, 2), { encoding: 'utf8', mode: 0o600 });
|
|
210
|
+
console.log(`[ClaudeLauncher] Pre-enabled forwarded MCP servers for ${cwd}: ${names.join(', ')}`);
|
|
211
|
+
}
|
|
212
|
+
catch (err) {
|
|
213
|
+
console.warn(`[ClaudeLauncher] Failed to extend enabledMcpjsonServers for ${cwd}: ${err}`);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
36
216
|
async setupMcpConfig(cwd, toolAllowlist) {
|
|
37
|
-
//
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
217
|
+
// Pre-accept the per-workspace trust dialog so the upcoming `claude mcp add`
|
|
218
|
+
// calls (and the eventual session launch) don't deadlock on an interactive
|
|
219
|
+
// prompt no human can answer.
|
|
220
|
+
this.ensureClaudeWorkspaceTrust(cwd);
|
|
221
|
+
// Use the long-lived JWT minted at `silolink config` time.
|
|
222
|
+
const token = this.config.jwt;
|
|
223
|
+
if (!token) {
|
|
224
|
+
throw new Error('No JWT in config. Run "silolink config" to log in.');
|
|
225
|
+
}
|
|
43
226
|
// Build the dsiloed MCP URL pointing to the same server SiloLink connects to
|
|
44
227
|
let dsiloedUrl = `${this.config.host}/api/v1/mcp?categories=data,admin,conversation,utility`;
|
|
45
228
|
if (toolAllowlist && toolAllowlist.length > 0) {
|
|
@@ -64,26 +247,68 @@ export class ClaudeLauncher extends BaseTmuxLauncher {
|
|
|
64
247
|
],
|
|
65
248
|
},
|
|
66
249
|
];
|
|
250
|
+
// CC 2.1.x quirk: when a project-scope .mcp.json is present in cwd,
|
|
251
|
+
// CC stops merging in user-scope mcpServers from ~/.claude.json — the
|
|
252
|
+
// project file becomes the sole source of truth for that session. So
|
|
253
|
+
// any server we want available in the spawned CC has to be in the
|
|
254
|
+
// project file, even if the user already has it user-scope.
|
|
255
|
+
//
|
|
256
|
+
// Concretely: the user keeps `portablemind` (or other cross-tenant
|
|
257
|
+
// MCPs they want every CC to inherit) at user-scope. We don't own
|
|
258
|
+
// that JWT and don't want to. But we DO need to copy each entry into
|
|
259
|
+
// our project-scope .mcp.json so the spawned session sees it.
|
|
260
|
+
//
|
|
261
|
+
// Read user-scope mcpServers (excluding the silolink/silolink_server
|
|
262
|
+
// names we're writing fresh) and forward them into project scope.
|
|
263
|
+
const userScopeServers = this.readUserScopeForwardServers();
|
|
264
|
+
for (const [name, args] of userScopeServers) {
|
|
265
|
+
servers.push({ name, args });
|
|
266
|
+
}
|
|
267
|
+
// Pre-enable any forwarded server names too, so the project-scope
|
|
268
|
+
// approval gate doesn't block them. ensureClaudeWorkspaceTrust pre-
|
|
269
|
+
// populates silolink + silolink_server; do the rest here.
|
|
270
|
+
if (userScopeServers.length > 0) {
|
|
271
|
+
this.extendEnabledMcpjsonServers(cwd, userScopeServers.map(([n]) => n));
|
|
272
|
+
}
|
|
273
|
+
// Project-scope MCP registration (was user-scope).
|
|
274
|
+
//
|
|
275
|
+
// User-scope put one shared `silolink_server` slot in ~/.claude.json that
|
|
276
|
+
// every silolink env stomped on — whichever agent launched a CC last won
|
|
277
|
+
// the JWT, and any other agent's CC inherited the wrong identity. With
|
|
278
|
+
// project scope each cwd gets its own .mcp.json, and per-env staging dirs
|
|
279
|
+
// (see getWorkingDirectory) plus per-ticket worktrees mean each agent's
|
|
280
|
+
// CC has exactly one silolink_server with the correct JWT.
|
|
281
|
+
//
|
|
282
|
+
// Best-effort cleanup of any pre-existing user-scope entries with the
|
|
283
|
+
// same names so they don't shadow / duplicate the project-scope ones in
|
|
284
|
+
// CC's tool list (one of two reasons we got bit: the stale user-scope
|
|
285
|
+
// entry kept advertising itself even after we'd written a fresh project
|
|
286
|
+
// entry).
|
|
287
|
+
try {
|
|
288
|
+
execFileSync('claude', ['mcp', 'remove', '-s', 'user', 'silolink'], { cwd, stdio: 'pipe', timeout: 5000 });
|
|
289
|
+
}
|
|
290
|
+
catch { /* may not exist */ }
|
|
291
|
+
try {
|
|
292
|
+
execFileSync('claude', ['mcp', 'remove', '-s', 'user', 'silolink_server'], { cwd, stdio: 'pipe', timeout: 5000 });
|
|
293
|
+
}
|
|
294
|
+
catch { /* may not exist */ }
|
|
67
295
|
for (const server of servers) {
|
|
68
296
|
try {
|
|
69
|
-
execFileSync('claude', ['mcp', 'add', '-s', '
|
|
297
|
+
execFileSync('claude', ['mcp', 'add', '-s', 'project', server.name, ...server.args], {
|
|
70
298
|
cwd,
|
|
71
299
|
stdio: 'pipe',
|
|
72
300
|
timeout: 10000,
|
|
73
301
|
});
|
|
74
302
|
}
|
|
75
303
|
catch {
|
|
76
|
-
// Server may already exist at
|
|
304
|
+
// Server may already exist at project scope — remove and re-add so
|
|
305
|
+
// the JWT/URL refresh sticks.
|
|
77
306
|
try {
|
|
78
|
-
try {
|
|
79
|
-
execFileSync('claude', ['mcp', 'remove', '-s', 'user', server.name], { cwd, stdio: 'pipe', timeout: 5000 });
|
|
80
|
-
}
|
|
81
|
-
catch { /* may not exist */ }
|
|
82
307
|
try {
|
|
83
308
|
execFileSync('claude', ['mcp', 'remove', '-s', 'project', server.name], { cwd, stdio: 'pipe', timeout: 5000 });
|
|
84
309
|
}
|
|
85
310
|
catch { /* may not exist */ }
|
|
86
|
-
execFileSync('claude', ['mcp', 'add', '-s', '
|
|
311
|
+
execFileSync('claude', ['mcp', 'add', '-s', 'project', server.name, ...server.args], {
|
|
87
312
|
cwd,
|
|
88
313
|
stdio: 'pipe',
|
|
89
314
|
timeout: 10000,
|
|
@@ -94,13 +319,27 @@ export class ClaudeLauncher extends BaseTmuxLauncher {
|
|
|
94
319
|
}
|
|
95
320
|
}
|
|
96
321
|
}
|
|
97
|
-
console.log(`[ClaudeLauncher] Registered MCP servers
|
|
322
|
+
console.log(`[ClaudeLauncher] Registered project-scope MCP servers in ${cwd} (host: ${this.config.host})`);
|
|
98
323
|
}
|
|
99
324
|
checkEnabled() {
|
|
100
325
|
return !!(this.config.claude_command && this.config.projects_path);
|
|
101
326
|
}
|
|
102
327
|
getWorkingDirectory() {
|
|
103
|
-
|
|
328
|
+
// Prefer the per-env staging_path so each agent's CC sees its own
|
|
329
|
+
// project-scoped MCP config (silolink + silolink_server JWT scoped to
|
|
330
|
+
// *this* env, not whichever env wrote user-scope last). projects_path
|
|
331
|
+
// remains the parent dir for worktrees.
|
|
332
|
+
const cwd = this.config.staging_path || this.config.projects_path || process.cwd();
|
|
333
|
+
if (this.config.staging_path && !existsSync(cwd)) {
|
|
334
|
+
try {
|
|
335
|
+
mkdirSync(cwd, { recursive: true });
|
|
336
|
+
console.log(`[ClaudeLauncher] Created staging dir ${cwd}`);
|
|
337
|
+
}
|
|
338
|
+
catch (err) {
|
|
339
|
+
console.warn(`[ClaudeLauncher] Failed to create staging dir ${cwd}: ${err}`);
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
return cwd;
|
|
104
343
|
}
|
|
105
344
|
isAutoRespawnConfigured() {
|
|
106
345
|
return !!this.config.claude_auto_respawn;
|
|
@@ -144,25 +383,16 @@ export class ClaudeLauncher extends BaseTmuxLauncher {
|
|
|
144
383
|
: `{${agentIdParam ? agentIdParam.substring(2) : ''}}`;
|
|
145
384
|
this.pendingLlmAgentId = null;
|
|
146
385
|
const triggerLine = this.pendingTriggerMessage
|
|
147
|
-
?
|
|
386
|
+
? `Pending user message (address after load_context): "${this.pendingTriggerMessage}"`
|
|
148
387
|
: '';
|
|
149
388
|
this.pendingTriggerMessage = null;
|
|
150
389
|
return {
|
|
151
390
|
prompt: [
|
|
152
|
-
`Call mcp__silolink__remote_register with
|
|
153
|
-
'',
|
|
154
|
-
'Context: This is a new session replacing a previous one that ended.',
|
|
155
|
-
'Before entering the poll loop:',
|
|
156
|
-
'1. Call remote_load_context() and review the conversation history',
|
|
157
|
-
'2. Check your memory files for additional context on recent work',
|
|
158
|
-
'3. Send a remote_notify summarizing what you loaded and confirming you are ready',
|
|
159
|
-
'4. Process the user\'s pending message (if any) before entering the poll loop',
|
|
160
|
-
'',
|
|
161
|
-
'CRITICAL: The user is NOT watching the terminal. You MUST send a remote_notify progress update after EVERY major step (file edits, commits, merges, deploys, errors). Do not go silent while working.',
|
|
391
|
+
`Fresh session (no resume). Call mcp__silolink__remote_register with ${registerParams}, then follow the SiloLink section in CLAUDE.md (call remote_load_context once, then enter the poll loop).`,
|
|
162
392
|
triggerLine,
|
|
163
393
|
agentContext,
|
|
164
394
|
workspaceContext,
|
|
165
|
-
].join('\n'),
|
|
395
|
+
].filter(Boolean).join('\n'),
|
|
166
396
|
extraArgs,
|
|
167
397
|
};
|
|
168
398
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-launcher.js","sourceRoot":"","sources":["../../src/core/claude-launcher.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"claude-launcher.js","sourceRoot":"","sources":["../../src/core/claude-launcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini-launcher.d.ts","sourceRoot":"","sources":["../../src/core/gemini-launcher.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gemini-launcher.d.ts","sourceRoot":"","sources":["../../src/core/gemini-launcher.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D;;;;;;;;GAQG;AACH,qBAAa,cAAe,SAAQ,gBAAgB;gBAEhD,MAAM,EAAE,cAAc,EACtB,cAAc,EAAE,cAAc,EAC9B,aAAa,CAAC,EAAE,aAAa,EAC7B,YAAY,CAAC,EAAE,YAAY,EAC3B,gBAAgB,CAAC,EAAE,gBAAgB;IAOrC,SAAS,CAAC,UAAU,IAAI,MAAM;IAI9B,SAAS,CAAC,OAAO,IAAI,MAAM,EAAE;IAI7B,SAAS,CAAC,iBAAiB,IAAI,MAAM,EAAE;IAIvC,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;cAI9B,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IA6D3F,SAAS,CAAC,YAAY,IAAI,OAAO;IAKjC,SAAS,CAAC,mBAAmB,IAAI,MAAM;IAgBvC,SAAS,CAAC,uBAAuB,IAAI,OAAO;IAI5C,SAAS,CAAC,gBAAgB,IAAI,MAAM;IAIpC,SAAS,CAAC,gBAAgB,IAAI,MAAM,GAAG,SAAS;IAIhD,SAAS,CAAC,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAO/C,SAAS,CAAC,aAAa,IAAI,MAAM;IAIjC,SAAS,CAAC,SAAS,IAAI,MAAM;IAI7B,SAAS,CAAC,kBAAkB,IAAI,MAAM;IAItC,SAAS,CAAC,iBAAiB,CACzB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,MAAM,GACvB;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE;IAyC1C;;;OAGG;IACH,OAAO,CAAC,oBAAoB;CAK7B"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { existsSync, mkdirSync, writeFileSync, readFileSync } from 'node:fs';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
|
-
import jwt from 'jsonwebtoken';
|
|
4
3
|
import { BaseTmuxLauncher } from './base-tmux-launcher.js';
|
|
5
4
|
/**
|
|
6
5
|
* Gemini CLI implementation of the AgentLauncher interface.
|
|
@@ -29,8 +28,11 @@ export class GeminiLauncher extends BaseTmuxLauncher {
|
|
|
29
28
|
return this.adaptPromptForGemini(prompt);
|
|
30
29
|
}
|
|
31
30
|
async setupMcpConfig(cwd, toolAllowlist) {
|
|
32
|
-
//
|
|
33
|
-
const token =
|
|
31
|
+
// Use the long-lived JWT minted at `silolink config` time.
|
|
32
|
+
const token = this.config.jwt;
|
|
33
|
+
if (!token) {
|
|
34
|
+
throw new Error('No JWT in config. Run "silolink config" to log in.');
|
|
35
|
+
}
|
|
34
36
|
// Build the dsiloed MCP URL pointing to the same server SiloLink connects to
|
|
35
37
|
let dsiloedUrl = `${this.config.host}/api/v1/mcp?categories=data,admin,conversation,utility`;
|
|
36
38
|
if (toolAllowlist && toolAllowlist.length > 0) {
|
|
@@ -38,8 +40,18 @@ export class GeminiLauncher extends BaseTmuxLauncher {
|
|
|
38
40
|
url.searchParams.set('tools', toolAllowlist.join(','));
|
|
39
41
|
dsiloedUrl = url.toString();
|
|
40
42
|
}
|
|
41
|
-
//
|
|
42
|
-
|
|
43
|
+
// Write to <cwd>/.gemini/settings.json (per-project) rather than the
|
|
44
|
+
// global ~/.gemini/settings.json. ClaudeLauncher had the same shape
|
|
45
|
+
// problem — one shared user-scope slot per server name meant whichever
|
|
46
|
+
// env launched a session last won the JWT, and any sibling agent's
|
|
47
|
+
// CLI inherited the wrong identity. ClaudeLauncher fixed this by
|
|
48
|
+
// moving to project scope (<cwd>/.mcp.json) plus a per-env staging
|
|
49
|
+
// cwd; this mirrors that fix on the Gemini side. If a Gemini CLI
|
|
50
|
+
// version doesn't honor a per-project settings.json, this still works
|
|
51
|
+
// because the per-env staging cwd means each env owns its own .gemini
|
|
52
|
+
// dir — no cross-agent collision regardless of which file Gemini ends
|
|
53
|
+
// up reading.
|
|
54
|
+
const geminiDir = join(cwd, '.gemini');
|
|
43
55
|
const geminiSettingsPath = join(geminiDir, 'settings.json');
|
|
44
56
|
try {
|
|
45
57
|
let settings = {};
|
|
@@ -64,10 +76,10 @@ export class GeminiLauncher extends BaseTmuxLauncher {
|
|
|
64
76
|
settings.mcpServers = mcpServers;
|
|
65
77
|
mkdirSync(geminiDir, { recursive: true });
|
|
66
78
|
writeFileSync(geminiSettingsPath, JSON.stringify(settings, null, 2));
|
|
67
|
-
console.log(`[GeminiLauncher] Configured MCP servers in
|
|
79
|
+
console.log(`[GeminiLauncher] Configured per-cwd MCP servers in ${geminiSettingsPath} (host: ${this.config.host})`);
|
|
68
80
|
}
|
|
69
81
|
catch (err) {
|
|
70
|
-
console.error(`[GeminiLauncher] Failed to configure
|
|
82
|
+
console.error(`[GeminiLauncher] Failed to configure ${geminiSettingsPath}: ${err}`);
|
|
71
83
|
}
|
|
72
84
|
}
|
|
73
85
|
checkEnabled() {
|
|
@@ -75,7 +87,20 @@ export class GeminiLauncher extends BaseTmuxLauncher {
|
|
|
75
87
|
return !!workDir;
|
|
76
88
|
}
|
|
77
89
|
getWorkingDirectory() {
|
|
78
|
-
|
|
90
|
+
// Mirror ClaudeLauncher: prefer per-env staging_path so each agent
|
|
91
|
+
// gets its own cwd-isolated MCP config. projects_path stays the
|
|
92
|
+
// parent dir for worktrees.
|
|
93
|
+
const cwd = this.config.staging_path || this.config.projects_path || process.cwd();
|
|
94
|
+
if (this.config.staging_path && !existsSync(cwd)) {
|
|
95
|
+
try {
|
|
96
|
+
mkdirSync(cwd, { recursive: true });
|
|
97
|
+
console.log(`[GeminiLauncher] Created staging dir ${cwd}`);
|
|
98
|
+
}
|
|
99
|
+
catch (err) {
|
|
100
|
+
console.warn(`[GeminiLauncher] Failed to create staging dir ${cwd}: ${err}`);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return cwd;
|
|
79
104
|
}
|
|
80
105
|
isAutoRespawnConfigured() {
|
|
81
106
|
return !!this.config.gemini_auto_respawn;
|
|
@@ -117,18 +142,16 @@ export class GeminiLauncher extends BaseTmuxLauncher {
|
|
|
117
142
|
? `{ "conversation_id": ${conversationId}${agentIdParam} }`
|
|
118
143
|
: `{${agentIdParam ? agentIdParam.substring(2) : ''}}`;
|
|
119
144
|
const triggerLine = this.pendingTriggerMessage
|
|
120
|
-
?
|
|
145
|
+
? `Pending user message (address after load_context): "${this.pendingTriggerMessage}"`
|
|
121
146
|
: '';
|
|
122
147
|
this.pendingTriggerMessage = null;
|
|
123
148
|
return {
|
|
124
149
|
prompt: [
|
|
125
|
-
`Call silolink_remote_register with
|
|
126
|
-
'',
|
|
127
|
-
'CRITICAL: The user is NOT watching the terminal. You MUST send a silolink_remote_notify progress update after EVERY major step.',
|
|
150
|
+
`Fresh session (no resume). Call silolink_remote_register with ${registerParams}, then follow the SiloLink section in GEMINI.md (call silolink_remote_load_context once, then enter the poll loop).`,
|
|
128
151
|
triggerLine,
|
|
129
152
|
agentContext,
|
|
130
153
|
workspaceContext,
|
|
131
|
-
].join('\n'),
|
|
154
|
+
].filter(Boolean).join('\n'),
|
|
132
155
|
extraArgs,
|
|
133
156
|
};
|
|
134
157
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini-launcher.js","sourceRoot":"","sources":["../../src/core/gemini-launcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"gemini-launcher.js","sourceRoot":"","sources":["../../src/core/gemini-launcher.ts"],"names":[],"mappings":"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"}
|