@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.
Files changed (46) hide show
  1. package/README.md +128 -68
  2. package/dist/api-client.d.ts +1 -0
  3. package/dist/api-client.d.ts.map +1 -1
  4. package/dist/api-client.js +27 -0
  5. package/dist/api-client.js.map +1 -1
  6. package/dist/bin.js +14 -1
  7. package/dist/bin.js.map +1 -1
  8. package/dist/bot/agent.d.ts +11 -0
  9. package/dist/bot/agent.d.ts.map +1 -1
  10. package/dist/bot/agent.js +566 -49
  11. package/dist/bot/agent.js.map +1 -1
  12. package/dist/bot/browser.d.ts +11 -1
  13. package/dist/bot/browser.d.ts.map +1 -1
  14. package/dist/bot/browser.js +365 -20
  15. package/dist/bot/browser.js.map +1 -1
  16. package/dist/bot/debug.d.ts.map +1 -1
  17. package/dist/bot/debug.js +19 -8
  18. package/dist/bot/debug.js.map +1 -1
  19. package/dist/bot/google-login.d.ts +4 -0
  20. package/dist/bot/google-login.d.ts.map +1 -1
  21. package/dist/bot/google-login.js +129 -14
  22. package/dist/bot/google-login.js.map +1 -1
  23. package/dist/bot/index.d.ts +3 -0
  24. package/dist/bot/index.d.ts.map +1 -1
  25. package/dist/bot/index.js +3 -0
  26. package/dist/bot/index.js.map +1 -1
  27. package/dist/bot/xvfb.d.ts +10 -0
  28. package/dist/bot/xvfb.d.ts.map +1 -0
  29. package/dist/bot/xvfb.js +75 -0
  30. package/dist/bot/xvfb.js.map +1 -0
  31. package/dist/install/agents.d.ts.map +1 -1
  32. package/dist/install/agents.js +37 -4
  33. package/dist/install/agents.js.map +1 -1
  34. package/dist/install/cli.d.ts +1 -0
  35. package/dist/install/cli.d.ts.map +1 -1
  36. package/dist/install/cli.js +194 -89
  37. package/dist/install/cli.js.map +1 -1
  38. package/dist/install/ui.d.ts +23 -0
  39. package/dist/install/ui.d.ts.map +1 -0
  40. package/dist/install/ui.js +108 -0
  41. package/dist/install/ui.js.map +1 -0
  42. package/dist/tools/provision-any.d.ts +23 -0
  43. package/dist/tools/provision-any.d.ts.map +1 -1
  44. package/dist/tools/provision-any.js +135 -9
  45. package/dist/tools/provision-any.js.map +1 -1
  46. package/package.json +4 -1
@@ -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. An absolute
96
- // `node <bin.js> server` is deterministic and offline — no npx package
97
- // resolution every time the host agent spawns the server. But when this
98
- // CLI is itself running from npx's throwaway cache, that path won't
99
- // survive a cache sweep, so fall back to a version-pinned npx call.
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
- return ephemeral
104
- ? { command: "npx", args: ["-y", `@trusty-squire/mcp@${VERSION}`, "server"] }
105
- : { command: process.execPath, args: [binPath, "server"] };
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
- // ── Detect egress class ───────────────────────────────────
132
- // Done before the install handshake so the asn class can ride along
133
- // in the initiate payload lets the API correlate captcha failures
134
- // with network class for analytics. Best-effort.
135
- const asn = await detectAsn();
136
- // ── Issue a machine token for the bot's inbox + LLM-proxy ─
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
- console.warn(`Setting up Trusty Squire on this machine…`);
143
- const machine = await issueMachineToken(args.apiBase, fetch, asn ?? undefined);
144
- // ── Warn datacenter users explicitly ──────────────────────
145
- // The whole captcha-bypass story depends on a residential egress IP.
146
- // Datacenter ASNs (Hetzner, AWS, Codespaces) get auto-rejected by
147
- // reCAPTCHA v2 regardless of fingerprint quality. Better to set
148
- // expectations now than have the user file a "Postmark doesn't work"
149
- // bug later.
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
- // ── Browser confirm: bind this machine + seed the bot's Chrome
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 install
157
- // (sets agent_session_token), AND the provider session lands in the
158
- // bot's Chrome profile so future OAuth-based signups can ride it.
159
- // No separate "log into Google for the bot" step afterwards.
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
- console.error("Install didn't complete — the browser confirm step never finished. " +
168
- "Try again with `npx @trusty-squire/mcp install`.");
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
- console.warn(`✓ Session saved (${storage.backendName()}).`);
174
- // ── Write the MCP config into the host agent ──────────────
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
- console.warn(``);
207
- console.warn(`Note: --skip-browser was set, so the bot's Chrome didn't observe ` +
208
- `your sign-in. Before your first OAuth-based signup, run:`);
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
- console.warn(`You're done. Restart ${agent.display_name} to pick up the new tools.`);
213
- console.warn(``);
214
- console.warn(`Try it now — ask your agent:`);
215
- console.warn(` "sign me up for Resend"`);
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
- console.warn(``);
399
- console.warn(`⚠ Detected network: ${orgDisplay}`);
400
- console.warn(` This looks like a datacenter / cloud network (Codespaces, AWS,`);
401
- console.warn(` Hetzner, etc.). Some signups especially those gated by`);
402
- console.warn(` reCAPTCHA v2 are likely to be blocked because anti-bot`);
403
- console.warn(` scoring weighs network reputation heavily.`);
404
- console.warn(``);
405
- console.warn(` For best results: run Trusty Squire from a laptop/desktop`);
406
- console.warn(` on a home or office network. Cloud dev environments can`);
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
- console.warn(`✓ Detected network: ${orgDisplay} (residential — captchas should pass cleanly).`);
518
+ ui.success(`Detected network: ${orgDisplay} (residential — captchas should pass cleanly)`);
414
519
  return;
415
520
  case "unknown":
416
- console.warn(`ℹ Detected network: ${orgDisplay} (couldn't classify — proceed and we'll see).`);
521
+ ui.info(`Detected network: ${orgDisplay} (couldn't classify — proceed and we'll see)`);
417
522
  return;
418
523
  }
419
524
  }
@@ -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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"}