@trusty-squire/mcp 0.5.7 → 0.6.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/README.md +128 -68
- package/dist/api-client.d.ts +1 -0
- package/dist/api-client.d.ts.map +1 -1
- package/dist/api-client.js +27 -0
- package/dist/api-client.js.map +1 -1
- package/dist/bin.js +14 -1
- package/dist/bin.js.map +1 -1
- package/dist/bot/agent.d.ts +11 -0
- package/dist/bot/agent.d.ts.map +1 -1
- package/dist/bot/agent.js +566 -49
- package/dist/bot/agent.js.map +1 -1
- package/dist/bot/browser.d.ts +11 -1
- package/dist/bot/browser.d.ts.map +1 -1
- package/dist/bot/browser.js +365 -20
- package/dist/bot/browser.js.map +1 -1
- package/dist/bot/debug.d.ts.map +1 -1
- package/dist/bot/debug.js +19 -8
- package/dist/bot/debug.js.map +1 -1
- package/dist/bot/google-login.d.ts +4 -0
- package/dist/bot/google-login.d.ts.map +1 -1
- package/dist/bot/google-login.js +129 -14
- package/dist/bot/google-login.js.map +1 -1
- package/dist/bot/index.d.ts +3 -0
- package/dist/bot/index.d.ts.map +1 -1
- package/dist/bot/index.js +3 -0
- package/dist/bot/index.js.map +1 -1
- package/dist/bot/xvfb.d.ts +10 -0
- package/dist/bot/xvfb.d.ts.map +1 -0
- package/dist/bot/xvfb.js +75 -0
- package/dist/bot/xvfb.js.map +1 -0
- package/dist/install/agents.d.ts.map +1 -1
- package/dist/install/agents.js +37 -4
- package/dist/install/agents.js.map +1 -1
- package/dist/install/cli.d.ts +1 -0
- package/dist/install/cli.d.ts.map +1 -1
- package/dist/install/cli.js +194 -89
- package/dist/install/cli.js.map +1 -1
- package/dist/install/ui.d.ts +23 -0
- package/dist/install/ui.d.ts.map +1 -0
- package/dist/install/ui.js +108 -0
- package/dist/install/ui.js.map +1 -0
- package/dist/tools/provision-any.d.ts +23 -0
- package/dist/tools/provision-any.d.ts.map +1 -1
- package/dist/tools/provision-any.js +135 -9
- package/dist/tools/provision-any.js.map +1 -1
- package/package.json +4 -1
package/dist/install/cli.js
CHANGED
|
@@ -30,6 +30,9 @@
|
|
|
30
30
|
// Pure module — `runCli()` is invoked by bin.ts. No shebang, no
|
|
31
31
|
// entrypoint guard, no top-level execution.
|
|
32
32
|
import process from "node:process";
|
|
33
|
+
import { cpSync } from "node:fs";
|
|
34
|
+
import { homedir } from "node:os";
|
|
35
|
+
import { dirname, join } from "node:path";
|
|
33
36
|
import { createInterface } from "node:readline";
|
|
34
37
|
import { fileURLToPath } from "node:url";
|
|
35
38
|
import { installInitiate, installPoll, issueMachineToken } from "../api-client.js";
|
|
@@ -38,7 +41,9 @@ import { AGENTS, detectInstalledAgents } from "./agents.js";
|
|
|
38
41
|
import { detectAsn } from "../bot/index.js";
|
|
39
42
|
import { ensureOAuthSession, openInstallConfirmInBotChrome, } from "../bot/google-login.js";
|
|
40
43
|
import {} from "../bot/oauth-providers.js";
|
|
44
|
+
import { loggedInProviders } from "../bot/login-state.js";
|
|
41
45
|
import { VERSION } from "../version.js";
|
|
46
|
+
import * as ui from "./ui.js";
|
|
42
47
|
const DEFAULT_API_BASE = process.env.TRUSTY_SQUIRE_API_BASE ?? "https://trusty-squire-api.fly.dev";
|
|
43
48
|
function parseArgs(argv) {
|
|
44
49
|
const positional = argv.filter((a) => !a.startsWith("--"));
|
|
@@ -48,6 +53,7 @@ function parseArgs(argv) {
|
|
|
48
53
|
let proxyUrl;
|
|
49
54
|
let providerArg;
|
|
50
55
|
let skipBrowser = false;
|
|
56
|
+
let forceRelogin = false;
|
|
51
57
|
for (const arg of argv) {
|
|
52
58
|
if (arg.startsWith("--target=")) {
|
|
53
59
|
const t = arg.slice("--target=".length);
|
|
@@ -76,8 +82,11 @@ function parseArgs(argv) {
|
|
|
76
82
|
// scripted callers still work.
|
|
77
83
|
skipBrowser = true;
|
|
78
84
|
}
|
|
85
|
+
else if (arg === "--force-relogin") {
|
|
86
|
+
forceRelogin = true;
|
|
87
|
+
}
|
|
79
88
|
}
|
|
80
|
-
const args = { command, apiBase, skipBrowser };
|
|
89
|
+
const args = { command, apiBase, skipBrowser, forceRelogin };
|
|
81
90
|
if (target !== undefined)
|
|
82
91
|
args.target = target;
|
|
83
92
|
if (proxyUrl !== undefined && proxyUrl.length > 0)
|
|
@@ -92,17 +101,77 @@ function isAgentTarget(s) {
|
|
|
92
101
|
// accept-list out of sync.
|
|
93
102
|
return s in AGENTS;
|
|
94
103
|
}
|
|
95
|
-
// The MCP-config command that launches the server.
|
|
96
|
-
//
|
|
97
|
-
//
|
|
98
|
-
//
|
|
99
|
-
//
|
|
104
|
+
// The MCP-config command that launches the server. Three cases:
|
|
105
|
+
//
|
|
106
|
+
// 1. Non-ephemeral — running from a checkout or a `node` invocation
|
|
107
|
+
// that points at a permanent path. Use the absolute bin.js path
|
|
108
|
+
// directly. Deterministic, offline, fast.
|
|
109
|
+
//
|
|
110
|
+
// 2. Ephemeral + stable version — the CLI was invoked via
|
|
111
|
+
// `npx @trusty-squire/mcp@X.Y.Z`, which copies the package into
|
|
112
|
+
// npx's throwaway cache. The cache CAN get swept, so we don't
|
|
113
|
+
// pin the cache path; instead we write `npx @trusty-squire/mcp@<version>`
|
|
114
|
+
// so the launch re-resolves against npm every time. Works as
|
|
115
|
+
// long as the version is on the public npm registry.
|
|
116
|
+
//
|
|
117
|
+
// 3. Ephemeral + prerelease version — the CLI was invoked via
|
|
118
|
+
// `npx <tarball-url>` (the GitHub-Release test pattern). The
|
|
119
|
+
// version isn't on npm, so case 2 would fail with `ETARGET`.
|
|
120
|
+
// We instead copy the package out of the ephemeral cache into
|
|
121
|
+
// `~/.trusty-squire/lib/mcp` and write a `node <stable>/dist/bin.js`
|
|
122
|
+
// launch. The stable copy survives npx-cache cleanup; if the user
|
|
123
|
+
// re-installs they overwrite it.
|
|
124
|
+
//
|
|
125
|
+
// Prerelease detection: semver prerelease versions carry a `-` (e.g.
|
|
126
|
+
// `0.6.0-rc.1`). Stable versions don't. Cheap, reliable.
|
|
100
127
|
function resolveServerLaunch() {
|
|
101
128
|
const binPath = fileURLToPath(new URL("../bin.js", import.meta.url));
|
|
102
129
|
const ephemeral = /[/\\]_npx[/\\]/.test(binPath);
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
130
|
+
if (!ephemeral) {
|
|
131
|
+
return { command: process.execPath, args: [binPath, "server"] };
|
|
132
|
+
}
|
|
133
|
+
const isPrerelease = VERSION.includes("-");
|
|
134
|
+
if (!isPrerelease) {
|
|
135
|
+
return { command: "npx", args: ["-y", `@trusty-squire/mcp@${VERSION}`, "server"] };
|
|
136
|
+
}
|
|
137
|
+
// Prerelease from GitHub Releases — copy the package PLUS the
|
|
138
|
+
// ephemeral cache's entire `node_modules` to a stable location.
|
|
139
|
+
//
|
|
140
|
+
// We need both because the package imports @modelcontextprotocol/sdk,
|
|
141
|
+
// playwright, etc. at runtime. Node's resolver walks up the directory
|
|
142
|
+
// tree looking for `node_modules/<dep>`; if we copy only the package
|
|
143
|
+
// dir, the resolver finds nothing and fails ERR_MODULE_NOT_FOUND on
|
|
144
|
+
// the first import. Mirroring the cache's `node_modules` structure
|
|
145
|
+
// means the same walk-up resolution works from the stable location.
|
|
146
|
+
//
|
|
147
|
+
// npx cache layout we depend on:
|
|
148
|
+
// <cache>/
|
|
149
|
+
// node_modules/
|
|
150
|
+
// @trusty-squire/mcp/dist/bin.js ← binPath
|
|
151
|
+
// @modelcontextprotocol/sdk/... ← peer at the same level
|
|
152
|
+
// ... ← every other transitive dep
|
|
153
|
+
//
|
|
154
|
+
// We copy the whole `<cache>/node_modules` tree to
|
|
155
|
+
// `~/.trusty-squire/lib/node_modules`, then launch
|
|
156
|
+
// `node .../node_modules/@trusty-squire/mcp/dist/bin.js server`.
|
|
157
|
+
const stableLib = join(homedir(), ".trusty-squire", "lib");
|
|
158
|
+
const stableNodeModules = join(stableLib, "node_modules");
|
|
159
|
+
const pkgRoot = dirname(dirname(binPath)); // dist/bin.js → @trusty-squire/mcp/
|
|
160
|
+
const cacheNodeModules = dirname(dirname(pkgRoot)); // → node_modules/
|
|
161
|
+
const stableBin = join(stableNodeModules, "@trusty-squire", "mcp", "dist", "bin.js");
|
|
162
|
+
try {
|
|
163
|
+
cpSync(cacheNodeModules, stableNodeModules, { recursive: true, force: true });
|
|
164
|
+
}
|
|
165
|
+
catch (err) {
|
|
166
|
+
// If the copy fails (unlikely — write access to $HOME is the
|
|
167
|
+
// bar), fall back to the in-cache absolute path. Works until
|
|
168
|
+
// npx clears it, which is acceptable for a test build.
|
|
169
|
+
console.warn(`[trusty-squire] couldn't copy node_modules to ~/.trusty-squire/lib ` +
|
|
170
|
+
`(${err instanceof Error ? err.message : String(err)}); using cache path. ` +
|
|
171
|
+
`Re-run install if the MCP server stops working.`);
|
|
172
|
+
return { command: process.execPath, args: [binPath, "server"] };
|
|
173
|
+
}
|
|
174
|
+
return { command: process.execPath, args: [stableBin, "server"] };
|
|
106
175
|
}
|
|
107
176
|
export async function runCli(argv) {
|
|
108
177
|
const args = parseArgs(argv);
|
|
@@ -126,37 +195,56 @@ export async function runCli(argv) {
|
|
|
126
195
|
}
|
|
127
196
|
}
|
|
128
197
|
async function install(args) {
|
|
198
|
+
ui.heading("Setting up Trusty Squire on this machine");
|
|
129
199
|
const target = await resolveTarget(args.target);
|
|
130
200
|
const agent = AGENTS[target];
|
|
131
|
-
//
|
|
132
|
-
//
|
|
133
|
-
//
|
|
134
|
-
//
|
|
135
|
-
|
|
136
|
-
|
|
201
|
+
// Preflight: an existing install that's fully provisioned (machine
|
|
202
|
+
// token + agent session token + a bot Google session marker) doesn't
|
|
203
|
+
// need to redo the browser confirm. Just rewrite the MCP config in
|
|
204
|
+
// place so the host agent picks up the latest server entrypoint and
|
|
205
|
+
// env. Pass --force-relogin to bypass (e.g. to switch Google account).
|
|
206
|
+
if (!args.forceRelogin) {
|
|
207
|
+
const preflight = await checkAlreadyProvisioned();
|
|
208
|
+
if (preflight !== null) {
|
|
209
|
+
await writeAgentConfig(target, agent, args);
|
|
210
|
+
ui.success(`Already provisioned (machine + ${preflight.providers.join("/")} session) — ` +
|
|
211
|
+
`refreshed ${agent.display_name} MCP config without re-running the browser flow`);
|
|
212
|
+
ui.hint(`Pass ${ui.code("--force-relogin")} if you want to switch the bound account.`);
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
// Detect egress class so the asn rides along in the install payload
|
|
217
|
+
// (API uses it to correlate captcha failures with network class).
|
|
218
|
+
// Best-effort: a failure returns null and the install continues.
|
|
219
|
+
const asn = await ui.withSpinner({
|
|
220
|
+
start: "Detecting your network…",
|
|
221
|
+
done: "Network detected",
|
|
222
|
+
fail: () => "Network detection failed (continuing anyway)",
|
|
223
|
+
task: () => detectAsn(),
|
|
224
|
+
});
|
|
137
225
|
// The machine token is the bot-internal credential the universal
|
|
138
226
|
// signup bot uses for the LLM proxy and the inbox alias service. It
|
|
139
227
|
// is NOT the user's auth — the agent_session_token (issued via the
|
|
140
228
|
// browser confirm flow below) is. The MCP server reads both from the
|
|
141
229
|
// session file.
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
//
|
|
148
|
-
//
|
|
149
|
-
//
|
|
230
|
+
const machine = await ui.withSpinner({
|
|
231
|
+
start: "Issuing a machine token…",
|
|
232
|
+
done: "Machine token issued",
|
|
233
|
+
task: () => issueMachineToken(args.apiBase, fetch, asn ?? undefined),
|
|
234
|
+
});
|
|
235
|
+
// Warn datacenter users explicitly. The whole captcha-bypass story
|
|
236
|
+
// depends on a residential egress IP — Hetzner / AWS / Codespaces
|
|
237
|
+
// get rejected by reCAPTCHA v2 regardless of fingerprint quality.
|
|
150
238
|
if (asn !== null) {
|
|
151
239
|
printAsnWarning(asn);
|
|
152
240
|
}
|
|
153
|
-
//
|
|
241
|
+
// Browser confirm: bind this machine + seed the bot's Chrome.
|
|
154
242
|
// The user signs into trustysquire from inside the bot's persistent
|
|
155
243
|
// Chrome profile (with display, or noVNC on a headless box). That
|
|
156
|
-
// single sign-in does TWO things: trustysquire claims the
|
|
157
|
-
// (sets agent_session_token), AND the provider session
|
|
158
|
-
// bot's Chrome profile so future OAuth-based signups
|
|
159
|
-
//
|
|
244
|
+
// single sign-in does TWO things at once: trustysquire claims the
|
|
245
|
+
// install (sets agent_session_token), AND the provider session
|
|
246
|
+
// lands in the bot's Chrome profile so future OAuth-based signups
|
|
247
|
+
// can ride it.
|
|
160
248
|
const baseSession = {
|
|
161
249
|
api_base_url: args.apiBase,
|
|
162
250
|
saved_at: new Date().toISOString(),
|
|
@@ -164,55 +252,24 @@ async function install(args) {
|
|
|
164
252
|
};
|
|
165
253
|
const session = await runInstallClaim(args.apiBase, target, baseSession, args.skipBrowser);
|
|
166
254
|
if (session === null) {
|
|
167
|
-
|
|
168
|
-
|
|
255
|
+
ui.fail("Install didn't complete — the browser confirm step never finished. " +
|
|
256
|
+
`Try again with ${ui.code("npx @trusty-squire/mcp install")}.`);
|
|
169
257
|
process.exit(1);
|
|
170
258
|
}
|
|
171
259
|
const storage = await openSessionStorage();
|
|
172
260
|
await storage.write(session);
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
//
|
|
176
|
-
// Env vars passed to the MCP child:
|
|
177
|
-
// - TRUSTY_SQUIRE_AGENT_IDENTITY: which host agent we're running under
|
|
178
|
-
// - UNIVERSAL_BOT_PREFER_CHEAP=true: the proxy enforces this server
|
|
179
|
-
// side too, but setting it here means users who run the bot CLI
|
|
180
|
-
// directly (outside MCP) also get the cheap path by default.
|
|
181
|
-
//
|
|
182
|
-
// The tokens themselves are NOT in the env — the MCP server reads
|
|
183
|
-
// them from session storage (keychain / file), which keeps them out
|
|
184
|
-
// of any child-process listing or shell history.
|
|
185
|
-
const launch = resolveServerLaunch();
|
|
186
|
-
const env = {
|
|
187
|
-
TRUSTY_SQUIRE_AGENT_IDENTITY: target,
|
|
188
|
-
UNIVERSAL_BOT_PREFER_CHEAP: "true",
|
|
189
|
-
};
|
|
190
|
-
// --proxy-url bakes the residential proxy into the config so the user
|
|
191
|
-
// never hand-edits env. The bot still gates it at runtime — only
|
|
192
|
-
// datacenter-class egress actually routes through it.
|
|
193
|
-
if (args.proxyUrl !== undefined) {
|
|
194
|
-
env.UNIVERSAL_BOT_PROXY_URL = args.proxyUrl;
|
|
195
|
-
}
|
|
196
|
-
await agent.writeConfig({
|
|
197
|
-
command: launch.command,
|
|
198
|
-
args: launch.args,
|
|
199
|
-
env,
|
|
200
|
-
});
|
|
201
|
-
console.warn(`✓ Wrote ${agent.display_name} MCP config at ${agent.config_path()}.`);
|
|
202
|
-
if (args.proxyUrl !== undefined) {
|
|
203
|
-
console.warn(` Residential proxy baked in: ${args.proxyUrl}`);
|
|
204
|
-
}
|
|
261
|
+
ui.success(`Session saved (${storage.backendName()})`);
|
|
262
|
+
await writeAgentConfig(target, agent, args);
|
|
205
263
|
if (args.skipBrowser) {
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
`
|
|
209
|
-
console.warn(` npx @trusty-squire/mcp login [--provider=google|github]`);
|
|
264
|
+
ui.panel(`--skip-browser was set, so the bot's Chrome didn't observe your sign-in. ` +
|
|
265
|
+
`Before your first OAuth-based signup, run:\n\n` +
|
|
266
|
+
` ${ui.code("npx @trusty-squire/mcp login [--provider=google|github]")}`, { title: "Heads up", color: "yellow" });
|
|
210
267
|
}
|
|
211
|
-
console.warn(
|
|
212
|
-
|
|
213
|
-
console.warn(
|
|
214
|
-
|
|
215
|
-
|
|
268
|
+
console.warn("");
|
|
269
|
+
ui.success(`You're done. Restart ${agent.display_name} to pick up the new tools.`);
|
|
270
|
+
console.warn("");
|
|
271
|
+
ui.hint("Try it now — ask your agent:");
|
|
272
|
+
ui.hint(` "sign me up for Resend"`);
|
|
216
273
|
}
|
|
217
274
|
// Runs the browser-based install confirm flow.
|
|
218
275
|
//
|
|
@@ -228,6 +285,54 @@ async function install(args) {
|
|
|
228
285
|
// claim. The bot's Chrome never starts, so the bot won't have a
|
|
229
286
|
// provider session afterwards — the user must run `mcp login` before
|
|
230
287
|
// their first OAuth signup. This path is for CI / scripted installs.
|
|
288
|
+
// True when the local session + bot profile already carry everything
|
|
289
|
+
// install would establish. Returns the list of provider sessions
|
|
290
|
+
// detected, or null when anything's missing. Best-effort: any read
|
|
291
|
+
// error returns null and the caller proceeds with the normal flow.
|
|
292
|
+
async function checkAlreadyProvisioned() {
|
|
293
|
+
try {
|
|
294
|
+
const storage = await openSessionStorage();
|
|
295
|
+
const session = await storage.read();
|
|
296
|
+
if (session === null ||
|
|
297
|
+
session.machine_token === undefined ||
|
|
298
|
+
session.agent_session_token === undefined ||
|
|
299
|
+
session.account_id === undefined) {
|
|
300
|
+
return null;
|
|
301
|
+
}
|
|
302
|
+
const providers = loggedInProviders();
|
|
303
|
+
if (providers.length === 0)
|
|
304
|
+
return null;
|
|
305
|
+
return { providers };
|
|
306
|
+
}
|
|
307
|
+
catch {
|
|
308
|
+
return null;
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
// Writes the host agent's MCP config — extracted so both the normal
|
|
312
|
+
// install path and the preflight-already-provisioned shortcut share
|
|
313
|
+
// one implementation.
|
|
314
|
+
async function writeAgentConfig(target, agent, args) {
|
|
315
|
+
// Tokens themselves are NOT in the env — the MCP server reads them
|
|
316
|
+
// from session storage (keychain / file), which keeps them out of
|
|
317
|
+
// any child-process listing or shell history.
|
|
318
|
+
const launch = resolveServerLaunch();
|
|
319
|
+
const env = {
|
|
320
|
+
TRUSTY_SQUIRE_AGENT_IDENTITY: target,
|
|
321
|
+
UNIVERSAL_BOT_PREFER_CHEAP: "true",
|
|
322
|
+
};
|
|
323
|
+
if (args.proxyUrl !== undefined) {
|
|
324
|
+
env.UNIVERSAL_BOT_PROXY_URL = args.proxyUrl;
|
|
325
|
+
}
|
|
326
|
+
await agent.writeConfig({
|
|
327
|
+
command: launch.command,
|
|
328
|
+
args: launch.args,
|
|
329
|
+
env,
|
|
330
|
+
});
|
|
331
|
+
ui.success(`Wrote ${agent.display_name} MCP config at ${ui.code(agent.config_path())}`);
|
|
332
|
+
if (args.proxyUrl !== undefined) {
|
|
333
|
+
ui.hint(` Residential proxy baked in: ${args.proxyUrl}`);
|
|
334
|
+
}
|
|
335
|
+
}
|
|
231
336
|
async function runInstallClaim(apiBase, target, baseSession, skipBrowser) {
|
|
232
337
|
console.warn(`Connecting this machine to your account…`);
|
|
233
338
|
const initiate = await installInitiate(apiBase, target, baseSession.machine_token ?? null);
|
|
@@ -282,10 +387,14 @@ async function runInstallClaim(apiBase, target, baseSession, skipBrowser) {
|
|
|
282
387
|
}
|
|
283
388
|
// Default: run the confirm INSIDE the bot's Chrome. The user signs
|
|
284
389
|
// in there once; that sign-in does both the trustysquire claim AND
|
|
285
|
-
// the bot's provider-session seeding in one event.
|
|
390
|
+
// the bot's provider-session seeding in one event. apiBaseUrl
|
|
391
|
+
// threads through to the headless rig so it can shorten the
|
|
392
|
+
// cloudflared tunnel URL to `trustysquire.ai/g/<slug>` before
|
|
393
|
+
// printing it in the banner (G15).
|
|
286
394
|
const result = await openInstallConfirmInBotChrome({
|
|
287
395
|
confirmUrl: initiate.confirm_url,
|
|
288
396
|
pollUntilClaimed: pollOnce,
|
|
397
|
+
apiBaseUrl: apiBase,
|
|
289
398
|
});
|
|
290
399
|
if (result.status !== "claimed" || state.value === null) {
|
|
291
400
|
return null;
|
|
@@ -334,7 +443,7 @@ async function login(args) {
|
|
|
334
443
|
const provider = args.providerArg === "github" ? "github" : "google";
|
|
335
444
|
const label = provider === "github" ? "GitHub" : "Google";
|
|
336
445
|
console.warn(`Establishing a ${label} session for the bot…`);
|
|
337
|
-
const result = await ensureOAuthSession({ provider });
|
|
446
|
+
const result = await ensureOAuthSession({ provider, apiBaseUrl: args.apiBase });
|
|
338
447
|
switch (result.status) {
|
|
339
448
|
case "already_valid":
|
|
340
449
|
console.warn(`✓ Already logged in — the bot's Chrome profile has a valid ${label} session.`);
|
|
@@ -354,7 +463,7 @@ function printHelp() {
|
|
|
354
463
|
console.warn(`mcp — install Trusty Squire into a coding agent`);
|
|
355
464
|
console.warn(``);
|
|
356
465
|
console.warn(`Commands:`);
|
|
357
|
-
console.warn(` install [--target=<agent>] [--provider=google|github|both] [--skip-login] [--proxy-url=<url>]`);
|
|
466
|
+
console.warn(` install [--target=<agent>] [--provider=google|github|both] [--skip-login] [--proxy-url=<url>] [--force-relogin]`);
|
|
358
467
|
console.warn(` login [--provider=google|github] re-run the one-time OAuth sign-in`);
|
|
359
468
|
console.warn(` logout`);
|
|
360
469
|
console.warn(``);
|
|
@@ -395,25 +504,21 @@ function printAsnWarning(asn) {
|
|
|
395
504
|
const orgDisplay = asn.org ?? "(unknown ASN)";
|
|
396
505
|
switch (asn.class) {
|
|
397
506
|
case "datacenter":
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
console.warn(` still provision services that don't gate signup with`);
|
|
408
|
-
console.warn(` reCAPTCHA (Resend, IPInfo, etc.), but Postmark/MailerSend`);
|
|
409
|
-
console.warn(` and similar will likely fail.`);
|
|
410
|
-
console.warn(``);
|
|
507
|
+
ui.panel(`Detected network: ${ui.code(orgDisplay)}\n\n` +
|
|
508
|
+
`This looks like a datacenter / cloud network (Codespaces, AWS, ` +
|
|
509
|
+
`Hetzner, etc.). Some signups — especially those gated by ` +
|
|
510
|
+
`reCAPTCHA v2 — are likely to be blocked because anti-bot scoring ` +
|
|
511
|
+
`weighs network reputation heavily.\n\n` +
|
|
512
|
+
`For best results: run Trusty Squire from a laptop/desktop on a ` +
|
|
513
|
+
`home or office network. Cloud dev environments can still provision ` +
|
|
514
|
+
`services that don't gate signup with reCAPTCHA (Resend, IPInfo, ` +
|
|
515
|
+
`etc.), but Postmark/MailerSend and similar will likely fail.`, { title: "⚠ Datacenter network", color: "yellow" });
|
|
411
516
|
return;
|
|
412
517
|
case "residential":
|
|
413
|
-
|
|
518
|
+
ui.success(`Detected network: ${orgDisplay} (residential — captchas should pass cleanly)`);
|
|
414
519
|
return;
|
|
415
520
|
case "unknown":
|
|
416
|
-
|
|
521
|
+
ui.info(`Detected network: ${orgDisplay} (couldn't classify — proceed and we'll see)`);
|
|
417
522
|
return;
|
|
418
523
|
}
|
|
419
524
|
}
|
package/dist/install/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/install/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/install/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export declare function termWidth(): number;
|
|
2
|
+
export declare function step(label: string): void;
|
|
3
|
+
export declare function success(label: string): void;
|
|
4
|
+
export declare function warn(label: string): void;
|
|
5
|
+
export declare function fail(label: string): void;
|
|
6
|
+
export declare function info(label: string): void;
|
|
7
|
+
export interface PanelOpts {
|
|
8
|
+
title?: string;
|
|
9
|
+
color?: "cyan" | "yellow" | "green" | "red" | "gray";
|
|
10
|
+
align?: "left" | "center";
|
|
11
|
+
}
|
|
12
|
+
export declare function panel(body: string, opts?: PanelOpts): void;
|
|
13
|
+
export declare function withSpinner<T>(opts: {
|
|
14
|
+
start: string;
|
|
15
|
+
done?: string;
|
|
16
|
+
fail?: (err: unknown) => string;
|
|
17
|
+
task: () => Promise<T>;
|
|
18
|
+
}): Promise<T>;
|
|
19
|
+
export declare function heading(text: string): void;
|
|
20
|
+
export declare function hint(text: string): void;
|
|
21
|
+
export declare function url(text: string): string;
|
|
22
|
+
export declare function code(text: string): string;
|
|
23
|
+
//# sourceMappingURL=ui.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/install/ui.ts"],"names":[],"mappings":"AAsBA,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAMD,wBAAgB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAExC;AAID,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAE3C;AAID,wBAAgB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAExC;AAGD,wBAAgB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAExC;AAGD,wBAAgB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAExC;AAKD,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;IACrD,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;CAC3B;AACD,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,SAAc,GAAG,IAAI,CAgB9D;AAOD,wBAAsB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,CAAC;IAChC,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;CACxB,GAAG,OAAO,CAAC,CAAC,CAAC,CAgBb;AAID,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAI1C;AAID,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEvC;AAKD,wBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAExC;AAID,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzC"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
// Rich-CLI helpers for the install/login/logout flow. Wraps chalk +
|
|
2
|
+
// ora + boxen behind a tiny API so the cli.ts call sites read like
|
|
3
|
+
// plain console output. All helpers gracefully degrade in non-TTY
|
|
4
|
+
// contexts:
|
|
5
|
+
// - chalk.level is 0 → colour codes pass-through as plain text.
|
|
6
|
+
// - ora detects !isTTY and renders a single line per "spinner"
|
|
7
|
+
// transition (no escape sequences, no redraw).
|
|
8
|
+
// - boxen still emits, but as plain ASCII art that scales to width.
|
|
9
|
+
//
|
|
10
|
+
// The MCP `server` command's stderr goes to the host agent's MCP log,
|
|
11
|
+
// which expects plain text. Bin.ts dispatches "server" before any of
|
|
12
|
+
// these helpers see argv, so this module is install-CLI-only by
|
|
13
|
+
// construction.
|
|
14
|
+
import boxen from "boxen";
|
|
15
|
+
import chalk from "chalk";
|
|
16
|
+
import ora, {} from "ora";
|
|
17
|
+
// Current terminal width (or 80 as a sane default for non-TTY pipes).
|
|
18
|
+
// Used to size boxen and any width-aware separators. boxen reads this
|
|
19
|
+
// internally too — passed explicitly so our overlays use the same
|
|
20
|
+
// value the CLI feels at print time.
|
|
21
|
+
export function termWidth() {
|
|
22
|
+
return process.stdout.columns ?? 80;
|
|
23
|
+
}
|
|
24
|
+
// Bright cyan "▸" prefix — used to mark each top-level install step.
|
|
25
|
+
// Cyan (not blue) so it stays readable on both dark and light terminal
|
|
26
|
+
// themes; "▸" (not "→") because it renders consistently across
|
|
27
|
+
// monospace fonts that don't have wide-arrow glyphs.
|
|
28
|
+
export function step(label) {
|
|
29
|
+
console.warn(chalk.cyan("▸") + " " + label);
|
|
30
|
+
}
|
|
31
|
+
// Green-on-bold ✓. The mark a user wants to see after each long-
|
|
32
|
+
// running step finishes.
|
|
33
|
+
export function success(label) {
|
|
34
|
+
console.warn(chalk.green.bold("✓") + " " + label);
|
|
35
|
+
}
|
|
36
|
+
// Amber "⚠" — used for the ASN warning + post-install caveats. Amber
|
|
37
|
+
// rather than red so it doesn't read as "the install FAILED."
|
|
38
|
+
export function warn(label) {
|
|
39
|
+
console.warn(chalk.yellow("⚠") + " " + label);
|
|
40
|
+
}
|
|
41
|
+
// Red "✗" — for actual errors that abort the flow.
|
|
42
|
+
export function fail(label) {
|
|
43
|
+
console.warn(chalk.red.bold("✗") + " " + label);
|
|
44
|
+
}
|
|
45
|
+
// Plain "ℹ" prefix for informational lines that aren't a step.
|
|
46
|
+
export function info(label) {
|
|
47
|
+
console.warn(chalk.gray("ℹ") + " " + label);
|
|
48
|
+
}
|
|
49
|
+
export function panel(body, opts = {}) {
|
|
50
|
+
const borderColor = opts.color ?? "cyan";
|
|
51
|
+
// boxen pads + draws box at the actual terminal width minus a margin,
|
|
52
|
+
// so it reflows on resize. We pass `width` explicitly when the
|
|
53
|
+
// terminal is narrower than 80 cols — boxen's default `Math.min(...)`
|
|
54
|
+
// sometimes picks a width that wraps awkwardly.
|
|
55
|
+
console.warn(boxen(body, {
|
|
56
|
+
...(opts.title !== undefined ? { title: opts.title, titleAlignment: "left" } : {}),
|
|
57
|
+
padding: { top: 0, bottom: 0, left: 2, right: 2 },
|
|
58
|
+
borderStyle: "round",
|
|
59
|
+
borderColor,
|
|
60
|
+
...(opts.align !== undefined ? { textAlignment: opts.align } : {}),
|
|
61
|
+
width: Math.min(termWidth() - 2, 78),
|
|
62
|
+
}));
|
|
63
|
+
}
|
|
64
|
+
// Run an async task with a spinner. The spinner shows `start`; on
|
|
65
|
+
// success it converts to a green ✓ + `done` (or `start` if `done`
|
|
66
|
+
// isn't given); on failure it converts to a red ✗ + the error message.
|
|
67
|
+
// In non-TTY (e.g. piped output) ora prints each transition as its
|
|
68
|
+
// own line — same information, no escape sequences.
|
|
69
|
+
export async function withSpinner(opts) {
|
|
70
|
+
const spinner = ora({ text: opts.start, color: "cyan" }).start();
|
|
71
|
+
try {
|
|
72
|
+
const result = await opts.task();
|
|
73
|
+
spinner.succeed(opts.done ?? opts.start);
|
|
74
|
+
return result;
|
|
75
|
+
}
|
|
76
|
+
catch (err) {
|
|
77
|
+
spinner.fail(opts.fail !== undefined
|
|
78
|
+
? opts.fail(err)
|
|
79
|
+
: err instanceof Error
|
|
80
|
+
? err.message
|
|
81
|
+
: String(err));
|
|
82
|
+
throw err;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
// Bold-bright headline. Used once at the very top of `install` so the
|
|
86
|
+
// user knows where they are.
|
|
87
|
+
export function heading(text) {
|
|
88
|
+
console.warn("");
|
|
89
|
+
console.warn(chalk.bold.cyan(text));
|
|
90
|
+
console.warn("");
|
|
91
|
+
}
|
|
92
|
+
// Italic gray hint line. Used under the heading and as the parting
|
|
93
|
+
// "Try it now…" suggestion.
|
|
94
|
+
export function hint(text) {
|
|
95
|
+
console.warn(chalk.dim(text));
|
|
96
|
+
}
|
|
97
|
+
// Plain emphasized URL — slightly underlined so terminals that
|
|
98
|
+
// recognize URL escape codes still let the user click. chalk's
|
|
99
|
+
// .underline is widely supported.
|
|
100
|
+
export function url(text) {
|
|
101
|
+
return chalk.cyan.underline(text);
|
|
102
|
+
}
|
|
103
|
+
// Plain key term — used inline in sentences. Slight bold so commands
|
|
104
|
+
// like `npx @trusty-squire/mcp install` stand out from prose.
|
|
105
|
+
export function code(text) {
|
|
106
|
+
return chalk.bold.white(text);
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=ui.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/install/ui.ts"],"names":[],"mappings":"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"}
|