@chances-ai/cli 3.6.0 → 4.1.0
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/boot/load-runtime.d.ts.map +1 -1
- package/dist/boot/load-runtime.js +70 -2
- package/dist/boot/load-runtime.js.map +1 -1
- package/dist/slash/mcp.d.ts +20 -17
- package/dist/slash/mcp.d.ts.map +1 -1
- package/dist/slash/mcp.js +182 -20
- package/dist/slash/mcp.js.map +1 -1
- package/package.json +16 -16
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-runtime.d.ts","sourceRoot":"","sources":["../../src/boot/load-runtime.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,iBAAiB,EACjB,QAAQ,EACR,YAAY,EACZ,MAAM,EACN,cAAc,EACd,KAAK,QAAQ,EACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,SAAS,EAET,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEL,aAAa,EACb,WAAW,EAGZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAgB,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACpF,OAAO,EAAE,WAAW,EAAe,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,YAAY,EAElB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"load-runtime.d.ts","sourceRoot":"","sources":["../../src/boot/load-runtime.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,iBAAiB,EACjB,QAAQ,EACR,YAAY,EACZ,MAAM,EACN,cAAc,EACd,KAAK,QAAQ,EACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,SAAS,EAET,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEL,aAAa,EACb,WAAW,EAGZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAgB,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACpF,OAAO,EAAE,WAAW,EAAe,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,YAAY,EAElB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,OAAO,EAA+B,MAAM,iBAAiB,CAAC;AAGvE,OAAO,EAAE,UAAU,EAAE,KAAK,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAGjE,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,QAAQ,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,aAAa,CAAC;IACzB,OAAO,EAAE,UAAU,GAAG,SAAS,CAAC;IAChC;;;;OAIG;IACH,GAAG,EAAE,OAAO,GAAG,SAAS,CAAC;IACzB;;;;;OAKG;IACH,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC7C;oEACgE;IAChE,aAAa,EAAE,SAAS,YAAY,EAAE,CAAC;IACvC;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,iBAAiB,CAAC;IACpC;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB;;;;;;;;;OASG;IACH,IAAI,CAAC,EAAE,OAAO,4BAA4B,EAAE,YAAY,CAAC;IACzD;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,OAAO,kBAAkB,EAAE,SAAS,CAAC;IACjD,aAAa,EAAE,MAAM,CAAC;IACtB;;uEAEmE;IACnE,SAAS,EAAE,cAAc,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,iFAAiF;AACjF,wBAAsB,WAAW,CAAC,SAAS,GAAE,gBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC,CAmGvF;AAkKD;;;yBAGyB;AACzB,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,mBAAmB,EAC1B,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,MAAM,CAAC,CAsBjB"}
|
|
@@ -8,7 +8,8 @@ import { ToolRegistry, builtinTools } from "@chances-ai/tools";
|
|
|
8
8
|
import { MemoryStore, memoryTools } from "@chances-ai/memory";
|
|
9
9
|
import { discoverAgents, } from "@chances-ai/agents";
|
|
10
10
|
import { TelemetrySink } from "@chances-ai/telemetry";
|
|
11
|
-
import { McpHost, parseServerMap } from "@chances-ai/mcp";
|
|
11
|
+
import { McpHost, loadMcpHost, parseServerMap } from "@chances-ai/mcp";
|
|
12
|
+
import { cleanupStaleWorktrees, findCanonicalRoot } from "@chances-ai/core";
|
|
12
13
|
import cliPkg from "../../package.json" with { type: "json" };
|
|
13
14
|
import { PluginHost } from "@chances-ai/plugin-api";
|
|
14
15
|
import { loggerPlugin } from "@chances-ai/plugin-logger";
|
|
@@ -45,6 +46,27 @@ export async function loadRuntime(overrides = {}) {
|
|
|
45
46
|
for (const s of discovered.skipped) {
|
|
46
47
|
logger.warn(`agent file '${s.path}' (${s.reason}): ${s.detail}`);
|
|
47
48
|
}
|
|
49
|
+
// (4.1) Stale-worktree GC. Fully best-effort: never blocks boot,
|
|
50
|
+
// never throws into the runtime path. We probe `findCanonicalRoot`
|
|
51
|
+
// first because (a) `cleanupStaleWorktrees` already handles
|
|
52
|
+
// ENOENT on `.chances/worktrees/` silently, and (b) in a non-git
|
|
53
|
+
// dir the `findCanonicalRoot` call would log a useless WorktreeError
|
|
54
|
+
// every cold start.
|
|
55
|
+
void (async () => {
|
|
56
|
+
try {
|
|
57
|
+
const root = await findCanonicalRoot(config.workspaceRoot);
|
|
58
|
+
const result = await cleanupStaleWorktrees(root);
|
|
59
|
+
if (result.removed.length > 0) {
|
|
60
|
+
logger.warn(`cleaned up ${result.removed.length} stale agent worktree(s): ${result.removed.join(", ")}`);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
// Not a git repo, or git is missing — both are valid states for
|
|
65
|
+
// chances-cli (most features still work). The first `task` call
|
|
66
|
+
// with `isolation: worktree` will surface the same error in a
|
|
67
|
+
// user-visible context.
|
|
68
|
+
}
|
|
69
|
+
})();
|
|
48
70
|
const selection = new ModelSelection({ provider: config.provider, model: config.model });
|
|
49
71
|
// 3.4: only the interactive `chat` command requests background tasks;
|
|
50
72
|
// -p / headless modes leave it undefined so the `task` tool's schema
|
|
@@ -130,18 +152,64 @@ async function loadMcp(config, bus, logger, tools) {
|
|
|
130
152
|
}
|
|
131
153
|
if (Object.keys(servers).length === 0)
|
|
132
154
|
return undefined;
|
|
155
|
+
// (3.7) Determine whether any server needs OAuth — if so, load the
|
|
156
|
+
// encrypted vault via `loadMcpHost({withVault: true})`. The vault
|
|
157
|
+
// package (`@chances-ai/local-vault`) is an optional peer; computed-
|
|
158
|
+
// specifier dynamic import keeps `bun build --compile` clean when it's
|
|
159
|
+
// absent. Non-OAuth servers continue to work even when the vault load
|
|
160
|
+
// fails (the host marks the OAuth servers individually as failed with
|
|
161
|
+
// a clear message).
|
|
162
|
+
const needsOAuth = Object.values(servers).some((s) => s.type === "http" && s.auth?.kind === "oauth");
|
|
133
163
|
// Thread our own package.json identity into the MCP host so the version
|
|
134
164
|
// shown to MCP servers during the initialize handshake is whatever the
|
|
135
165
|
// changeset just bumped. Reading the CLI's own package.json (which
|
|
136
166
|
// `version.ts` already does for `chances --version`) is the proven path
|
|
137
167
|
// under `bun build --compile`; the mcp library deliberately does not
|
|
138
168
|
// import its own package.json to avoid an unverified binary path.
|
|
139
|
-
return
|
|
169
|
+
return loadMcpHost({
|
|
140
170
|
servers,
|
|
141
171
|
bus,
|
|
142
172
|
logger,
|
|
143
173
|
registry: tools,
|
|
144
174
|
clientIdentity: { name: cliPkg.name, version: cliPkg.version },
|
|
175
|
+
withVault: needsOAuth,
|
|
176
|
+
openBrowser: openBrowserDefault,
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* (3.7) Default browser launcher used by the OAuth `/mcp login` flow.
|
|
181
|
+
* Tries `open` (macOS), `xdg-open` (Linux), or `start` (Windows) in
|
|
182
|
+
* order. Doesn't wait for the browser process — we only need it to fire
|
|
183
|
+
* the URL. Same dependency-free pattern claude-code uses.
|
|
184
|
+
*/
|
|
185
|
+
async function openBrowserDefault(url) {
|
|
186
|
+
const { spawn } = await import("node:child_process");
|
|
187
|
+
const { platform } = await import("node:os");
|
|
188
|
+
const plat = platform();
|
|
189
|
+
const cmd = plat === "darwin" ? "open" : plat === "win32" ? "start" : "xdg-open";
|
|
190
|
+
const child = spawn(cmd, [url.toString()], {
|
|
191
|
+
detached: true,
|
|
192
|
+
stdio: "ignore",
|
|
193
|
+
shell: plat === "win32", // 'start' is a cmd.exe builtin
|
|
194
|
+
});
|
|
195
|
+
child.unref();
|
|
196
|
+
// Surface immediate spawn errors (ENOENT etc.) so the slash command
|
|
197
|
+
// can suggest --manual mode. Wait one event-loop tick so 'error'
|
|
198
|
+
// events have a chance to fire.
|
|
199
|
+
await new Promise((resolve, reject) => {
|
|
200
|
+
let settled = false;
|
|
201
|
+
child.once("error", (e) => {
|
|
202
|
+
if (!settled) {
|
|
203
|
+
settled = true;
|
|
204
|
+
reject(new Error(`could not open browser via '${cmd}': ${e.message}`));
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
setTimeout(() => {
|
|
208
|
+
if (!settled) {
|
|
209
|
+
settled = true;
|
|
210
|
+
resolve();
|
|
211
|
+
}
|
|
212
|
+
}, 50);
|
|
145
213
|
});
|
|
146
214
|
}
|
|
147
215
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-runtime.js","sourceRoot":"","sources":["../../src/boot/load-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EACL,iBAAiB,EACjB,QAAQ,EACR,YAAY,EACZ,MAAM,EACN,cAAc,GAEf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,SAAS,EACT,UAAU,GAGX,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,YAAY,EACZ,aAAa,EACb,WAAW,EACX,aAAa,EACb,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,YAAY,EAAuB,MAAM,mBAAmB,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAGL,cAAc,GACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"load-runtime.js","sourceRoot":"","sources":["../../src/boot/load-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EACL,iBAAiB,EACjB,QAAQ,EACR,YAAY,EACZ,MAAM,EACN,cAAc,GAEf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,SAAS,EACT,UAAU,GAGX,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,YAAY,EACZ,aAAa,EACb,WAAW,EACX,aAAa,EACb,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,YAAY,EAAuB,MAAM,mBAAmB,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAGL,cAAc,GACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,MAAM,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAe,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAyFzD,iFAAiF;AACjF,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,YAA8B,EAAE;IAChE,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,IAAI,SAAS,CAAC,QAAQ;QAAE,MAAM,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;IAC7D,IAAI,SAAS,CAAC,KAAK;QAAE,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;IAEpD,MAAM,GAAG,GAAG,IAAI,QAAQ,EAAE,CAAC;IAC3B,MAAM,KAAK,GAAG,IAAI,YAAY,EAAE,CAAC;IACjC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC;IAC7D,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,iBAAiB,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAE5F,MAAM,QAAQ,GAAG,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACrE,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC;IAEzC,MAAM,KAAK,GAAG,IAAI,YAAY,EAAE,CAAC;IACjC,KAAK,MAAM,IAAI,IAAI,YAAY;QAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAEtD,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IAC5F,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC;QAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE7D,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAC1D,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAEtB,qEAAqE;IACrE,4CAA4C;IAC5C,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAEtE,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAE9D,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAEtD,kEAAkE;IAClE,0EAA0E;IAC1E,+DAA+D;IAC/D,MAAM,UAAU,GAAG,cAAc,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IAClF,KAAK,MAAM,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,iEAAiE;IACjE,mEAAmE;IACnE,4DAA4D;IAC5D,iEAAiE;IACjE,qEAAqE;IACrE,oBAAoB;IACpB,KAAK,CAAC,KAAK,IAAI,EAAE;QACf,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YAC3D,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,IAAI,CAAC,CAAC;YACjD,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,MAAM,CAAC,IAAI,CACT,cAAc,MAAM,CAAC,OAAO,CAAC,MAAM,6BAA6B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC5F,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,gEAAgE;YAChE,gEAAgE;YAChE,8DAA8D;YAC9D,wBAAwB;QAC1B,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;IAEL,MAAM,SAAS,GAAG,IAAI,cAAc,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAEzF,sEAAsE;IACtE,qEAAqE;IACrE,mDAAmD;IACnD,mEAAmE;IACnE,iCAAiC;IACjC,MAAM,eAAe,GAAG,SAAS,CAAC,qBAAqB;QACrD,CAAC,CAAC,IAAI,iBAAiB,CAAC;YACpB,aAAa,EAAE,MAAM,CAAC,KAAK,EAAE,kBAAkB;YAC/C,2DAA2D;YAC3D,2DAA2D;YAC3D,0DAA0D;YAC1D,wCAAwC;YACxC,GAAG;SACJ,CAAC;QACJ,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO;QACL,GAAG;QACH,MAAM;QACN,KAAK;QACL,MAAM;QACN,IAAI;QACJ,QAAQ;QACR,MAAM;QACN,KAAK;QACL,MAAM;QACN,SAAS;QACT,OAAO;QACP,GAAG;QACH,IAAI;QACJ,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,aAAa,EAAE,UAAU,CAAC,OAAO;QACjC,eAAe;QACf,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,SAAS;KACV,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,KAAK,UAAU,QAAQ,CACrB,GAAa,EACb,MAAc,EACd,WAAmB,EACnB,cAAsB;IAEtB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC;IACzD,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChC,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9D,MAAM,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,CAAgD,CAAC;QACrF,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,kBAAkB,CAAC;YAC5C,QAAQ;YACR,WAAW;YACX,cAAc;YACd,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;SAC5B,CAAC,CAAC;QACH,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,CAAC,IAAI,CAAC,8BAA+B,CAAW,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC/E,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,OAAO,CACpB,MAAqB,EACrB,GAAa,EACb,MAAc,EACd,KAAmB;IAEnB,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC;IAChC,IAAI,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5D,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IAClD,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrD,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,OAAO,EAAE,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACxD,mEAAmE;IACnE,kEAAkE;IAClE,qEAAqE;IACrE,uEAAuE;IACvE,sEAAsE;IACtE,sEAAsE;IACtE,oBAAoB;IACpB,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAC5C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CACrD,CAAC;IACF,wEAAwE;IACxE,uEAAuE;IACvE,mEAAmE;IACnE,wEAAwE;IACxE,qEAAqE;IACrE,kEAAkE;IAClE,OAAO,WAAW,CAAC;QACjB,OAAO;QACP,GAAG;QACH,MAAM;QACN,QAAQ,EAAE,KAAK;QACf,cAAc,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE;QAC9D,SAAS,EAAE,UAAU;QACrB,WAAW,EAAE,kBAAkB;KAChC,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,kBAAkB,CAAC,GAAQ;IACxC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;IACrD,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;IACxB,MAAM,GAAG,GAAG,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC;IACjF,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE;QACzC,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,IAAI,KAAK,OAAO,EAAE,+BAA+B;KACzD,CAAC,CAAC;IACH,KAAK,CAAC,KAAK,EAAE,CAAC;IACd,oEAAoE;IACpE,iEAAiE;IACjE,gCAAgC;IAChC,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACxB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,GAAG,IAAI,CAAC;gBACf,MAAM,CAAC,IAAI,KAAK,CAAC,+BAA+B,GAAG,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACzE,CAAC;QACH,CAAC,CAAC,CAAC;QACH,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,GAAG,IAAI,CAAC;gBACf,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC,EAAE,EAAE,CAAC,CAAC;IACT,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,WAAW,CACxB,MAAqB,EACrB,GAAa,EACb,MAAc,EACd,KAAmB;IAEnB,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC3C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAChD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,CAAC,yBAAyB,MAAM,CAAC,IAAI,KAAM,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,MAAqB,EAAE,MAAc;IACjE,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC;IACzC,IAAI,SAAS,EAAE,OAAO,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC;QACxF,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACnC,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,CAAC;QACnD,IAAI,CAAC;YACH,GAAG,CAAC,IAAI,CAAC,MAAM,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;QACpE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,CAAC,4BAA4B,KAAK,CAAC,IAAI,MAAO,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;yBAGyB;AACzB,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,KAA0B,EAC1B,aAAqB;IAErB,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAC9D,IAAI,GAA0B,CAAC;IAC/B,IAAI,CAAC;QACH,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,CAA0B,CAAC;IAC3D,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,qBAAqB,KAAK,CAAC,IAAI,kBAAkB,SAAS,MAAO,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1G,CAAC;IACD,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,WAAW,KAAK,CAAC,IAAI,MAAM,SAAS,qCAAqC,CAAC,CAAC;IAC7F,CAAC;IACD,MAAM,MAAM,GAAI,GAAG,CAAC,OAAuD,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3F,IACE,CAAC,MAAM;QACP,OAAQ,MAAiB,CAAC,IAAI,KAAK,QAAQ;QAC3C,OAAQ,MAAiB,CAAC,MAAM,KAAK,UAAU,EAC/C,CAAC;QACD,MAAM,IAAI,KAAK,CACb,WAAW,KAAK,CAAC,IAAI,MAAM,SAAS,yDAAyD,CAC9F,CAAC;IACJ,CAAC;IACD,OAAO,MAAgB,CAAC;AAC1B,CAAC;AAED;;;0CAG0C;AAC1C,SAAS,gBAAgB,CAAC,IAAY,EAAE,aAAqB;IAC3D,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACpD,MAAM,GAAG,GAAG,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QACzC,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;QACzC,IAAI,GAAG,KAAK,EAAE,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1D,MAAM,IAAI,KAAK,CAAC,2CAA2C,IAAI,EAAE,CAAC,CAAC;QACrE,CAAC;QACD,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;IACjC,CAAC;IACD,IAAI,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;IACtD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/dist/slash/mcp.d.ts
CHANGED
|
@@ -1,27 +1,30 @@
|
|
|
1
1
|
import { type Plugin } from "@chances-ai/plugin-api";
|
|
2
2
|
import type { BuiltinSlashDeps } from "./index.js";
|
|
3
3
|
/**
|
|
4
|
-
* `/mcp [list|tools|restart|test|remove|add]`
|
|
4
|
+
* `/mcp [list|tools|restart|test|remove|add|login|logout]`
|
|
5
5
|
*
|
|
6
6
|
* - (no args) / `list` — print one row per configured server with its
|
|
7
7
|
* live status (ready / failed / disabled / disposed). Failed rows show
|
|
8
|
-
* the error so the user can see *why* a server disappeared.
|
|
8
|
+
* the error so the user can see *why* a server disappeared. (3.7) OAuth-
|
|
9
|
+
* configured servers gain an auth column (e.g. `oauth · needs login`).
|
|
9
10
|
* - `tools` — list every `mcp__*` tool currently registered, grouped by
|
|
10
|
-
* server.
|
|
11
|
-
*
|
|
12
|
-
* - `
|
|
13
|
-
*
|
|
14
|
-
* - `
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
11
|
+
* server.
|
|
12
|
+
* - `restart <name>` — tear down + reconnect one server.
|
|
13
|
+
* - `test <name>` — one-shot connect → list → dispose.
|
|
14
|
+
* - `remove <name>` — drop the server from project config + unload.
|
|
15
|
+
* - `add` — JSON guidance (interactive wizard is 3.x.later).
|
|
16
|
+
* - (3.7) `login <name> [--force]` — run the OAuth dance for one
|
|
17
|
+
* server. Opens the browser, listens on a loopback port, exchanges
|
|
18
|
+
* the auth code, persists tokens to the encrypted vault, restarts.
|
|
19
|
+
* `--force` skips the "already authenticated, re-auth?" confirmation.
|
|
20
|
+
* `--manual` mode (URL paste-back for SSH/headless) is deferred to
|
|
21
|
+
* 3.7.1 — needs a modal prompt integration with the existing
|
|
22
|
+
* `ApiKeyPrompt` flow; V1 declines to ship an advertised-but-broken
|
|
23
|
+
* flag (codex Round-2 MUST-FIX #5).
|
|
24
|
+
* - (3.7) `logout <name>` — abort in-flight refresh, bump generation
|
|
25
|
+
* (drops late-arriving saveTokens — codex Round-1 MUST-FIX #5),
|
|
26
|
+
* restart the server so the next request shows `needs-login`.
|
|
27
|
+
* - (3.7) `logout --all` — same as above for every OAuth server.
|
|
25
28
|
*/
|
|
26
29
|
export declare function makeMcpPlugin(deps: BuiltinSlashDeps): Plugin;
|
|
27
30
|
//# sourceMappingURL=mcp.d.ts.map
|
package/dist/slash/mcp.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/slash/mcp.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgB,KAAK,MAAM,EAAqB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/slash/mcp.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgB,KAAK,MAAM,EAAqB,MAAM,wBAAwB,CAAC;AAEtF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CA2C5D"}
|
package/dist/slash/mcp.js
CHANGED
|
@@ -1,33 +1,37 @@
|
|
|
1
1
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
import { definePlugin } from "@chances-ai/plugin-api";
|
|
4
|
+
import { loadSdkAuth } from "@chances-ai/mcp";
|
|
4
5
|
/**
|
|
5
|
-
* `/mcp [list|tools|restart|test|remove|add]`
|
|
6
|
+
* `/mcp [list|tools|restart|test|remove|add|login|logout]`
|
|
6
7
|
*
|
|
7
8
|
* - (no args) / `list` — print one row per configured server with its
|
|
8
9
|
* live status (ready / failed / disabled / disposed). Failed rows show
|
|
9
|
-
* the error so the user can see *why* a server disappeared.
|
|
10
|
+
* the error so the user can see *why* a server disappeared. (3.7) OAuth-
|
|
11
|
+
* configured servers gain an auth column (e.g. `oauth · needs login`).
|
|
10
12
|
* - `tools` — list every `mcp__*` tool currently registered, grouped by
|
|
11
|
-
* server.
|
|
12
|
-
*
|
|
13
|
-
* - `
|
|
14
|
-
*
|
|
15
|
-
* - `
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
13
|
+
* server.
|
|
14
|
+
* - `restart <name>` — tear down + reconnect one server.
|
|
15
|
+
* - `test <name>` — one-shot connect → list → dispose.
|
|
16
|
+
* - `remove <name>` — drop the server from project config + unload.
|
|
17
|
+
* - `add` — JSON guidance (interactive wizard is 3.x.later).
|
|
18
|
+
* - (3.7) `login <name> [--force]` — run the OAuth dance for one
|
|
19
|
+
* server. Opens the browser, listens on a loopback port, exchanges
|
|
20
|
+
* the auth code, persists tokens to the encrypted vault, restarts.
|
|
21
|
+
* `--force` skips the "already authenticated, re-auth?" confirmation.
|
|
22
|
+
* `--manual` mode (URL paste-back for SSH/headless) is deferred to
|
|
23
|
+
* 3.7.1 — needs a modal prompt integration with the existing
|
|
24
|
+
* `ApiKeyPrompt` flow; V1 declines to ship an advertised-but-broken
|
|
25
|
+
* flag (codex Round-2 MUST-FIX #5).
|
|
26
|
+
* - (3.7) `logout <name>` — abort in-flight refresh, bump generation
|
|
27
|
+
* (drops late-arriving saveTokens — codex Round-1 MUST-FIX #5),
|
|
28
|
+
* restart the server so the next request shows `needs-login`.
|
|
29
|
+
* - (3.7) `logout --all` — same as above for every OAuth server.
|
|
26
30
|
*/
|
|
27
31
|
export function makeMcpPlugin(deps) {
|
|
28
32
|
const command = {
|
|
29
33
|
name: "mcp",
|
|
30
|
-
description: "List, test, restart, or remove configured MCP servers.",
|
|
34
|
+
description: "List, test, restart, login, logout, or remove configured MCP servers.",
|
|
31
35
|
run: async (args) => {
|
|
32
36
|
const sub = args[0] ?? "list";
|
|
33
37
|
if (sub === "list")
|
|
@@ -36,6 +40,25 @@ export function makeMcpPlugin(deps) {
|
|
|
36
40
|
return runTools(deps);
|
|
37
41
|
if (sub === "add")
|
|
38
42
|
return runAddGuidance();
|
|
43
|
+
if (sub === "logout") {
|
|
44
|
+
if (args.includes("--all"))
|
|
45
|
+
return runLogoutAll(deps);
|
|
46
|
+
const target = args[1];
|
|
47
|
+
if (!target)
|
|
48
|
+
return "usage: /mcp logout <name> (or: /mcp logout --all)";
|
|
49
|
+
return runLogout(deps, target);
|
|
50
|
+
}
|
|
51
|
+
if (sub === "login") {
|
|
52
|
+
const target = args[1];
|
|
53
|
+
if (!target)
|
|
54
|
+
return "usage: /mcp login <name> [--force]";
|
|
55
|
+
if (args.includes("--manual")) {
|
|
56
|
+
return ("/mcp login --manual is not available in v3.7.0 (needs modal-prompt integration). " +
|
|
57
|
+
"Run /mcp login <name> on a machine with a browser, or wait for v3.7.1.");
|
|
58
|
+
}
|
|
59
|
+
const force = args.includes("--force");
|
|
60
|
+
return runLogin(deps, target, { force });
|
|
61
|
+
}
|
|
39
62
|
const target = args[1];
|
|
40
63
|
if (!target && (sub === "restart" || sub === "test" || sub === "remove")) {
|
|
41
64
|
return `usage: /mcp ${sub} <name>`;
|
|
@@ -46,7 +69,7 @@ export function makeMcpPlugin(deps) {
|
|
|
46
69
|
return runTest(deps, target);
|
|
47
70
|
if (sub === "remove")
|
|
48
71
|
return runRemove(deps, target);
|
|
49
|
-
return `unknown subcommand: ${sub} (try: list, tools, restart, test, remove, add)`;
|
|
72
|
+
return `unknown subcommand: ${sub} (try: list, tools, restart, test, remove, add, login, logout)`;
|
|
50
73
|
},
|
|
51
74
|
};
|
|
52
75
|
return definePlugin({
|
|
@@ -67,7 +90,8 @@ function runList(deps) {
|
|
|
67
90
|
const lines = statuses.map((s) => {
|
|
68
91
|
const marker = stateMarker(s.state);
|
|
69
92
|
const detail = stateDetail(s);
|
|
70
|
-
|
|
93
|
+
const auth = host.getOAuthState(s.id) ? " oauth" : "";
|
|
94
|
+
return ` ${marker} ${s.id.padEnd(pad)} ${s.state}${detail}${auth}`;
|
|
71
95
|
});
|
|
72
96
|
return ["MCP servers:", ...lines].join("\n");
|
|
73
97
|
}
|
|
@@ -181,6 +205,144 @@ function runAddGuidance() {
|
|
|
181
205
|
"Save the file then run /mcp restart <name> (or restart the agent) to load it.",
|
|
182
206
|
].join("\n");
|
|
183
207
|
}
|
|
208
|
+
async function runLogin(deps, name, _flags) {
|
|
209
|
+
const host = deps.ctx.mcp;
|
|
210
|
+
if (!host)
|
|
211
|
+
return "no MCP servers configured";
|
|
212
|
+
const oauth = host.getOAuthState(name);
|
|
213
|
+
if (!oauth) {
|
|
214
|
+
return `'${name}' is not OAuth-configured — add an \`"auth": {"kind": "oauth"}\` block to the server entry in .chances/config.json`;
|
|
215
|
+
}
|
|
216
|
+
// Look up the server config so we can pass it to auth().
|
|
217
|
+
const status = host.status().find((s) => s.id === name);
|
|
218
|
+
if (!status)
|
|
219
|
+
return `'${name}': not found in host status — has it been started?`;
|
|
220
|
+
let resolvedAuth;
|
|
221
|
+
try {
|
|
222
|
+
resolvedAuth = await loadSdkAuth();
|
|
223
|
+
}
|
|
224
|
+
catch (e) {
|
|
225
|
+
return `'${name}': could not load OAuth helper: ${e.message}`;
|
|
226
|
+
}
|
|
227
|
+
// Bind the loopback callback server. The provider's `redirectUrl`
|
|
228
|
+
// getter reads the resolved port — must happen BEFORE we call auth().
|
|
229
|
+
try {
|
|
230
|
+
await oauth.callbackServer.bind({ bindListener: true });
|
|
231
|
+
}
|
|
232
|
+
catch (e) {
|
|
233
|
+
return `'${name}': could not reserve loopback port: ${e.message}`;
|
|
234
|
+
}
|
|
235
|
+
const cfg = oauth.config;
|
|
236
|
+
// (codex Round-2 MUST-FIX #2) The SDK calls `provider.state()` itself
|
|
237
|
+
// when building the authorize URL — we MUST NOT pre-generate a state
|
|
238
|
+
// and compare against it. Instead, intercept the URL the SDK passes
|
|
239
|
+
// to redirectToAuthorization (via the openBrowser shim we install in
|
|
240
|
+
// host.ts) and extract the real `state` query parameter from it. That
|
|
241
|
+
// value is what we pass to `waitForCode({expectedState})`.
|
|
242
|
+
//
|
|
243
|
+
// The host's default openBrowser shim is wrapped here so the slash
|
|
244
|
+
// command can record the captured URL without changing the provider
|
|
245
|
+
// surface.
|
|
246
|
+
let capturedAuthUrl;
|
|
247
|
+
const originalOpenBrowser = oauth.provider.opts.openBrowser;
|
|
248
|
+
oauth.provider.opts.openBrowser = async (u) => {
|
|
249
|
+
capturedAuthUrl = u;
|
|
250
|
+
await originalOpenBrowser(u);
|
|
251
|
+
};
|
|
252
|
+
// Trigger the SDK orchestrator. It'll discover, register the client if
|
|
253
|
+
// needed (DCR), build the auth URL with its own state, call our
|
|
254
|
+
// `redirectToAuthorization` (which fires openBrowser + captures the URL).
|
|
255
|
+
try {
|
|
256
|
+
const firstResult = await resolvedAuth(oauth.provider, {
|
|
257
|
+
serverUrl: cfg.url,
|
|
258
|
+
scope: cfg.auth.scopes?.join(" "),
|
|
259
|
+
});
|
|
260
|
+
if (firstResult === "AUTHORIZED") {
|
|
261
|
+
// Token cache from a previous flow is already valid — nothing to do.
|
|
262
|
+
await oauth.callbackServer.close().catch(() => undefined);
|
|
263
|
+
return `'${name}': already authorized (existing tokens still valid)`;
|
|
264
|
+
}
|
|
265
|
+
if (!capturedAuthUrl) {
|
|
266
|
+
return `'${name}': SDK did not call redirectToAuthorization — flow cannot proceed`;
|
|
267
|
+
}
|
|
268
|
+
const sdkState = capturedAuthUrl.searchParams.get("state");
|
|
269
|
+
if (!sdkState) {
|
|
270
|
+
return `'${name}': authorize URL is missing the 'state' parameter — flow cannot validate the callback`;
|
|
271
|
+
}
|
|
272
|
+
// SDK returned REDIRECT with state baked into capturedAuthUrl — wait for the callback.
|
|
273
|
+
const { code } = await oauth.callbackServer.waitForCode({
|
|
274
|
+
expectedState: sdkState,
|
|
275
|
+
timeoutMs: 5 * 60 * 1000,
|
|
276
|
+
});
|
|
277
|
+
const secondResult = await resolvedAuth(oauth.provider, {
|
|
278
|
+
serverUrl: cfg.url,
|
|
279
|
+
authorizationCode: code,
|
|
280
|
+
scope: cfg.auth.scopes?.join(" "),
|
|
281
|
+
});
|
|
282
|
+
if (secondResult !== "AUTHORIZED") {
|
|
283
|
+
return `'${name}': OAuth flow did not complete (status: ${secondResult})`;
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
catch (e) {
|
|
287
|
+
return `'${name}': OAuth flow failed: ${e.message}`;
|
|
288
|
+
}
|
|
289
|
+
finally {
|
|
290
|
+
await oauth.callbackServer.close().catch(() => undefined);
|
|
291
|
+
// Restore the original openBrowser so a subsequent /mcp login doesn't
|
|
292
|
+
// accumulate capture-shim wrapping (and so any externally-observed
|
|
293
|
+
// provider state stays consistent).
|
|
294
|
+
oauth.provider.opts.openBrowser = originalOpenBrowser;
|
|
295
|
+
}
|
|
296
|
+
// Reconnect with the freshly-saved tokens.
|
|
297
|
+
try {
|
|
298
|
+
const newStatus = await host.restart(name);
|
|
299
|
+
if (newStatus.state === "ready") {
|
|
300
|
+
return `'${name}': authorized — ${newStatus.toolCount ?? 0} tool(s) now available`;
|
|
301
|
+
}
|
|
302
|
+
return `'${name}': authorized, but reconnect state=${newStatus.state}${newStatus.error ? ` (${newStatus.error})` : ""}`;
|
|
303
|
+
}
|
|
304
|
+
catch (e) {
|
|
305
|
+
return `'${name}': authorized, but restart failed: ${e.message}`;
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
async function runLogout(deps, name) {
|
|
309
|
+
const host = deps.ctx.mcp;
|
|
310
|
+
if (!host)
|
|
311
|
+
return "no MCP servers configured";
|
|
312
|
+
const oauth = host.getOAuthState(name);
|
|
313
|
+
if (!oauth) {
|
|
314
|
+
return `'${name}' is not OAuth-configured — nothing to log out`;
|
|
315
|
+
}
|
|
316
|
+
// Capture tool names BEFORE logout for permission invalidation, same
|
|
317
|
+
// pattern as restart/remove.
|
|
318
|
+
const before = host.status().find((s) => s.id === name);
|
|
319
|
+
const priorToolNames = before?.toolNames ?? [];
|
|
320
|
+
try {
|
|
321
|
+
await host.logout(name);
|
|
322
|
+
}
|
|
323
|
+
catch (e) {
|
|
324
|
+
return `logout failed: ${e.message}`;
|
|
325
|
+
}
|
|
326
|
+
invalidatePermissions(deps, priorToolNames);
|
|
327
|
+
return `'${name}': logged out — run /mcp login ${name} to re-authenticate`;
|
|
328
|
+
}
|
|
329
|
+
async function runLogoutAll(deps) {
|
|
330
|
+
const host = deps.ctx.mcp;
|
|
331
|
+
if (!host)
|
|
332
|
+
return "no MCP servers configured";
|
|
333
|
+
// Capture per-server tool names before mutation.
|
|
334
|
+
const before = new Map();
|
|
335
|
+
for (const s of host.status()) {
|
|
336
|
+
if (host.getOAuthState(s.id))
|
|
337
|
+
before.set(s.id, s.toolNames ?? []);
|
|
338
|
+
}
|
|
339
|
+
if (before.size === 0)
|
|
340
|
+
return "no OAuth-configured MCP servers to log out";
|
|
341
|
+
await host.logoutAll();
|
|
342
|
+
for (const names of before.values())
|
|
343
|
+
invalidatePermissions(deps, names);
|
|
344
|
+
return `logged out of ${before.size} OAuth-configured MCP server(s)`;
|
|
345
|
+
}
|
|
184
346
|
function stateMarker(state) {
|
|
185
347
|
switch (state) {
|
|
186
348
|
case "ready":
|
package/dist/slash/mcp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/slash/mcp.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/slash/mcp.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chances-ai/cli",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.1.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
6
|
"chances": "./dist/entrypoints/cli-node.js",
|
|
@@ -14,21 +14,21 @@
|
|
|
14
14
|
"@ai-sdk/google": "^1.2.0",
|
|
15
15
|
"@ai-sdk/openai": "^1.3.0",
|
|
16
16
|
"@ai-sdk/openai-compatible": "^0.2.0",
|
|
17
|
-
"@chances-ai/agents": "
|
|
18
|
-
"@chances-ai/ai": "
|
|
19
|
-
"@chances-ai/config": "
|
|
20
|
-
"@chances-ai/core": "
|
|
21
|
-
"@chances-ai/mcp": "
|
|
22
|
-
"@chances-ai/memory": "
|
|
23
|
-
"@chances-ai/native": "
|
|
24
|
-
"@chances-ai/plugin-api": "
|
|
25
|
-
"@chances-ai/plugin-logger": "
|
|
26
|
-
"@chances-ai/runtime": "
|
|
27
|
-
"@chances-ai/session": "
|
|
28
|
-
"@chances-ai/telemetry": "
|
|
29
|
-
"@chances-ai/telemetry-otel": "
|
|
30
|
-
"@chances-ai/tools": "
|
|
31
|
-
"@chances-ai/tui": "
|
|
17
|
+
"@chances-ai/agents": "4.1.0",
|
|
18
|
+
"@chances-ai/ai": "4.1.0",
|
|
19
|
+
"@chances-ai/config": "4.1.0",
|
|
20
|
+
"@chances-ai/core": "4.1.0",
|
|
21
|
+
"@chances-ai/mcp": "4.1.0",
|
|
22
|
+
"@chances-ai/memory": "4.1.0",
|
|
23
|
+
"@chances-ai/native": "4.1.0",
|
|
24
|
+
"@chances-ai/plugin-api": "4.1.0",
|
|
25
|
+
"@chances-ai/plugin-logger": "4.1.0",
|
|
26
|
+
"@chances-ai/runtime": "4.1.0",
|
|
27
|
+
"@chances-ai/session": "4.1.0",
|
|
28
|
+
"@chances-ai/telemetry": "4.1.0",
|
|
29
|
+
"@chances-ai/telemetry-otel": "4.1.0",
|
|
30
|
+
"@chances-ai/tools": "4.1.0",
|
|
31
|
+
"@chances-ai/tui": "4.1.0",
|
|
32
32
|
"ai": "^4.3.0",
|
|
33
33
|
"ink": "^5.0.1",
|
|
34
34
|
"react": "^18.3.1",
|