@trusty-squire/mcp 0.5.0 → 0.5.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/login/vnc.html +126 -12
- package/dist/bot/google-login.d.ts +9 -0
- package/dist/bot/google-login.d.ts.map +1 -1
- package/dist/bot/google-login.js +157 -69
- package/dist/bot/google-login.js.map +1 -1
- package/dist/install/cli.d.ts +2 -7
- package/dist/install/cli.d.ts.map +1 -1
- package/dist/install/cli.js +115 -135
- package/dist/install/cli.js.map +1 -1
- package/package.json +1 -1
package/assets/login/vnc.html
CHANGED
|
@@ -7,29 +7,62 @@
|
|
|
7
7
|
<!--
|
|
8
8
|
Trusty Squire branded noVNC client. Served by websockify from a
|
|
9
9
|
temp dir that also holds the installed noVNC `core/` (see
|
|
10
|
-
google-login.ts
|
|
10
|
+
google-login.ts runHeadlessChrome). Deliberately uses ONLY noVNC's
|
|
11
11
|
stable RFB API — the `RFB` default export, its constructor, the
|
|
12
|
-
`scaleViewport`/`resizeSession` properties,
|
|
13
|
-
connect/disconnect/securityfailure events
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
`scaleViewport`/`resizeSession` properties, the
|
|
13
|
+
connect/disconnect/securityfailure events, and `rfb.focus()` (used
|
|
14
|
+
to pop the mobile soft keyboard) — all stable across every noVNC
|
|
15
|
+
1.x release, so this page survives whatever version the host
|
|
16
|
+
distro's `novnc` package pinned.
|
|
16
17
|
-->
|
|
17
18
|
<style>
|
|
18
19
|
html, body { margin: 0; height: 100%; background: #0f1115; color: #e6e8ec;
|
|
19
20
|
font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; }
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
/* Flex column so the header takes whatever height it needs (a long
|
|
22
|
+
sub-line on narrow phones wraps to a second row instead of being
|
|
23
|
+
truncated by a hard-coded 39px), and #screen fills the rest. */
|
|
24
|
+
body { display: flex; flex-direction: column; overflow: hidden; }
|
|
25
|
+
#bar { flex: none; display: flex; align-items: center; gap: 8px;
|
|
26
|
+
padding: 10px 14px; background: #171a21; border-bottom: 1px solid #272b35;
|
|
27
|
+
font-size: 13px; line-height: 1.35; flex-wrap: wrap; }
|
|
23
28
|
#bar b { color: #fff; }
|
|
24
29
|
#bar span.sub { color: #9aa0ab; }
|
|
25
30
|
#dot { width: 8px; height: 8px; border-radius: 50%; background: #e0a23a;
|
|
26
31
|
flex: none; }
|
|
27
32
|
#dot.ok { background: #3fb950; }
|
|
28
33
|
#dot.err { background: #f85149; }
|
|
29
|
-
#screen {
|
|
30
|
-
background: #0f1115; }
|
|
34
|
+
#screen { flex: 1; position: relative; background: #0f1115; min-height: 0; }
|
|
31
35
|
#msg { position: absolute; top: 50%; left: 0; right: 0; text-align: center;
|
|
32
36
|
transform: translateY(-50%); color: #9aa0ab; font-size: 14px; padding: 0 24px; }
|
|
37
|
+
/* Show-keyboard button. The remote VNC view is just pixels — the OS
|
|
38
|
+
can't tell there's a typeable field, so a normal tap inside the
|
|
39
|
+
remote Chrome doesn't pop the soft keyboard. This button focuses
|
|
40
|
+
the hidden #kbInput element below; the OS sees an actual editable
|
|
41
|
+
input gain focus and pops the keyboard. Each character the user
|
|
42
|
+
types into #kbInput is forwarded to the VNC stream via
|
|
43
|
+
rfb.sendKey() and the input is cleared, so the local input
|
|
44
|
+
never accumulates the user's password. */
|
|
45
|
+
#kb { position: absolute; right: 16px; bottom: 16px; width: 52px; height: 52px;
|
|
46
|
+
border-radius: 50%; border: none; background: #4f46e5; color: #fff;
|
|
47
|
+
font-size: 24px; line-height: 1; box-shadow: 0 4px 14px rgba(0, 0, 0, 0.4);
|
|
48
|
+
cursor: pointer; z-index: 10; display: none;
|
|
49
|
+
-webkit-tap-highlight-color: transparent; touch-action: manipulation;
|
|
50
|
+
}
|
|
51
|
+
#kb:active { transform: scale(0.96); }
|
|
52
|
+
/* Only show the button on touch-capable devices — desktops already
|
|
53
|
+
have a hardware keyboard and the button just clutters the view. */
|
|
54
|
+
@media (hover: none) and (pointer: coarse) {
|
|
55
|
+
#kb.ready { display: flex; align-items: center; justify-content: center; }
|
|
56
|
+
}
|
|
57
|
+
/* The hidden input the button focuses. Positioned in the viewport
|
|
58
|
+
so iOS scrolls to it on focus (off-screen positioning is known to
|
|
59
|
+
break focus() on iOS Safari), but visually neutered. */
|
|
60
|
+
#kbInput {
|
|
61
|
+
position: absolute; right: 16px; bottom: 16px; width: 52px; height: 52px;
|
|
62
|
+
opacity: 0; pointer-events: none; border: none; padding: 0; margin: 0;
|
|
63
|
+
caret-color: transparent; background: transparent; color: transparent;
|
|
64
|
+
z-index: 5;
|
|
65
|
+
}
|
|
33
66
|
</style>
|
|
34
67
|
</head>
|
|
35
68
|
<body>
|
|
@@ -38,8 +71,16 @@
|
|
|
38
71
|
<b>Trusty Squire</b>
|
|
39
72
|
<span class="sub">— sign in to your account, then return to your terminal.</span>
|
|
40
73
|
</div>
|
|
41
|
-
<div id="screen"
|
|
42
|
-
|
|
74
|
+
<div id="screen">
|
|
75
|
+
<div id="msg">Connecting to the secure login window…</div>
|
|
76
|
+
<!-- inputmode=text + autocorrect/autocapitalize/spellcheck off so the
|
|
77
|
+
soft keyboard never offers autocomplete suggestions for a typed
|
|
78
|
+
password, and never enriches characters before we forward them. -->
|
|
79
|
+
<input id="kbInput" type="text" inputmode="text" autocomplete="off"
|
|
80
|
+
autocorrect="off" autocapitalize="off" spellcheck="false"
|
|
81
|
+
aria-hidden="true" tabindex="-1" />
|
|
82
|
+
<button id="kb" type="button" aria-label="Show keyboard">⌨</button>
|
|
83
|
+
</div>
|
|
43
84
|
<script type="module">
|
|
44
85
|
import RFB from "./core/rfb.js";
|
|
45
86
|
|
|
@@ -51,6 +92,8 @@
|
|
|
51
92
|
const dot = document.getElementById("dot");
|
|
52
93
|
const msg = document.getElementById("msg");
|
|
53
94
|
const screen = document.getElementById("screen");
|
|
95
|
+
const kbBtn = document.getElementById("kb");
|
|
96
|
+
const kbInput = document.getElementById("kbInput");
|
|
54
97
|
|
|
55
98
|
const wsUrl =
|
|
56
99
|
(location.protocol === "https:" ? "wss://" : "ws://") +
|
|
@@ -71,6 +114,11 @@
|
|
|
71
114
|
rfb.addEventListener("connect", () => {
|
|
72
115
|
dot.className = "ok";
|
|
73
116
|
msg.style.display = "none";
|
|
117
|
+
// Reveal the soft-keyboard button (CSS gates it to touch
|
|
118
|
+
// devices via the pointer:coarse media query). Connection
|
|
119
|
+
// success is the right moment — earlier and the button would
|
|
120
|
+
// suggest a typing target that isn't connected yet.
|
|
121
|
+
kbBtn.classList.add("ready");
|
|
74
122
|
});
|
|
75
123
|
rfb.addEventListener("disconnect", () => {
|
|
76
124
|
dot.className = "err";
|
|
@@ -78,12 +126,78 @@
|
|
|
78
126
|
msg.textContent =
|
|
79
127
|
"Login window closed. If you finished signing in, return to " +
|
|
80
128
|
"your terminal — you can close this tab.";
|
|
129
|
+
kbBtn.classList.remove("ready");
|
|
81
130
|
});
|
|
82
131
|
rfb.addEventListener("securityfailure", () => {
|
|
83
132
|
dot.className = "err";
|
|
84
133
|
msg.style.display = "";
|
|
85
134
|
msg.textContent = "Could not authenticate to the login window.";
|
|
86
135
|
});
|
|
136
|
+
|
|
137
|
+
// Tap → kbInput.focus() inside the click handler so the focus
|
|
138
|
+
// happens synchronously in response to a user gesture. iOS /
|
|
139
|
+
// Android browsers won't pop the soft keyboard for a programmatic
|
|
140
|
+
// focus outside a gesture, so this MUST stay inline. Focusing
|
|
141
|
+
// a real <input> is what triggers the OS keyboard — focusing
|
|
142
|
+
// the RFB div (rfb.focus() in noVNC 1.x) wouldn't.
|
|
143
|
+
kbBtn.addEventListener("click", (e) => {
|
|
144
|
+
e.preventDefault();
|
|
145
|
+
kbInput.value = "";
|
|
146
|
+
kbInput.focus();
|
|
147
|
+
});
|
|
148
|
+
|
|
149
|
+
// X11 keysyms for the keys mobile keyboards send that don't
|
|
150
|
+
// arrive as text in the `input` event. (Reference:
|
|
151
|
+
// https://github.com/novnc/noVNC/blob/master/core/input/keysym.js
|
|
152
|
+
// — these values are stable.)
|
|
153
|
+
const SPECIAL_KEYS = {
|
|
154
|
+
Backspace: 0xff08,
|
|
155
|
+
Tab: 0xff09,
|
|
156
|
+
Enter: 0xff0d,
|
|
157
|
+
Escape: 0xff1b,
|
|
158
|
+
ArrowLeft: 0xff51,
|
|
159
|
+
ArrowUp: 0xff52,
|
|
160
|
+
ArrowRight: 0xff53,
|
|
161
|
+
ArrowDown: 0xff54,
|
|
162
|
+
Delete: 0xffff,
|
|
163
|
+
};
|
|
164
|
+
|
|
165
|
+
// Forward typed characters. The `input` event fires once per
|
|
166
|
+
// commit (each char on most soft keyboards; sometimes batched
|
|
167
|
+
// when an IME finalizes). We diff against the previous value
|
|
168
|
+
// to handle paste / autocorrect insertions, send a press+release
|
|
169
|
+
// for each new character, then clear the input so it never
|
|
170
|
+
// accumulates the user's password.
|
|
171
|
+
let lastKbValue = "";
|
|
172
|
+
kbInput.addEventListener("input", () => {
|
|
173
|
+
const newValue = kbInput.value;
|
|
174
|
+
if (newValue.length > 0) {
|
|
175
|
+
for (const ch of newValue) {
|
|
176
|
+
const keysym = ch.charCodeAt(0);
|
|
177
|
+
rfb.sendKey(keysym, null, true);
|
|
178
|
+
rfb.sendKey(keysym, null, false);
|
|
179
|
+
}
|
|
180
|
+
} else if (lastKbValue.length > 0 && newValue.length === 0) {
|
|
181
|
+
// Soft keyboards sometimes fire `input` with an empty value
|
|
182
|
+
// when the user taps Backspace and there was only one char.
|
|
183
|
+
rfb.sendKey(SPECIAL_KEYS.Backspace, "Backspace", true);
|
|
184
|
+
rfb.sendKey(SPECIAL_KEYS.Backspace, "Backspace", false);
|
|
185
|
+
}
|
|
186
|
+
kbInput.value = "";
|
|
187
|
+
lastKbValue = "";
|
|
188
|
+
});
|
|
189
|
+
|
|
190
|
+
// Special keys come through as keydown events. preventDefault
|
|
191
|
+
// so the input doesn't try to act on them locally (e.g. Enter
|
|
192
|
+
// submitting a form that doesn't exist).
|
|
193
|
+
kbInput.addEventListener("keydown", (e) => {
|
|
194
|
+
const keysym = SPECIAL_KEYS[e.key];
|
|
195
|
+
if (keysym !== undefined) {
|
|
196
|
+
e.preventDefault();
|
|
197
|
+
rfb.sendKey(keysym, e.code, true);
|
|
198
|
+
rfb.sendKey(keysym, e.code, false);
|
|
199
|
+
}
|
|
200
|
+
});
|
|
87
201
|
}
|
|
88
202
|
</script>
|
|
89
203
|
</body>
|
|
@@ -15,4 +15,13 @@ export declare function ensureOAuthSession(opts?: {
|
|
|
15
15
|
profileDir?: string;
|
|
16
16
|
timeoutMinutes?: number;
|
|
17
17
|
}): Promise<LoginResult>;
|
|
18
|
+
export declare function openInstallConfirmInBotChrome(opts: {
|
|
19
|
+
confirmUrl: string;
|
|
20
|
+
pollUntilClaimed: () => Promise<boolean>;
|
|
21
|
+
profileDir?: string;
|
|
22
|
+
timeoutMinutes?: number;
|
|
23
|
+
}): Promise<{
|
|
24
|
+
status: "claimed" | "timeout" | "error";
|
|
25
|
+
detail?: string;
|
|
26
|
+
}>;
|
|
18
27
|
//# sourceMappingURL=google-login.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"google-login.d.ts","sourceRoot":"","sources":["../../src/bot/google-login.ts"],"names":[],"mappings":"AA0CA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAqE5D,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,WAAW,GAAG,eAAe,GAAG,SAAS,GAAG,OAAO,CAAC;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;
|
|
1
|
+
{"version":3,"file":"google-login.d.ts","sourceRoot":"","sources":["../../src/bot/google-login.ts"],"names":[],"mappings":"AA0CA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAqE5D,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,WAAW,GAAG,eAAe,GAAG,SAAS,GAAG,OAAO,CAAC;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAmBD,MAAM,MAAM,eAAe,GACvB,SAAS,GACT,aAAa,GACb,WAAW,GACX,YAAY,CAAC;AAEjB,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,eAAe,CAwCtF;AA+BD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CA2BlE;AAMD,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAEjE;AAGD,wBAAgB,UAAU,IAAI,OAAO,CAapC;AAWD,wBAAgB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAe9C;AAaD,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAGjD;AA+SD,wBAAsB,kBAAkB,CAAC,IAAI,CAAC,EAAE;IAC9C,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,GAAG,OAAO,CAAC,WAAW,CAAC,CAkCvB;AASD,wBAAsB,6BAA6B,CAAC,IAAI,EAAE;IACxD,UAAU,EAAE,MAAM,CAAC;IAGnB,gBAAgB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA+BxE"}
|
package/dist/bot/google-login.js
CHANGED
|
@@ -64,7 +64,7 @@ const LOGIN_TARGETS = {
|
|
|
64
64
|
const HEADLESS_W = 540;
|
|
65
65
|
const HEADLESS_H = 960;
|
|
66
66
|
// The Debian/Ubuntu `novnc` package installs its web assets here — the
|
|
67
|
-
// `core/` RFB library our branded page reuses (see
|
|
67
|
+
// `core/` RFB library our branded page reuses (see runHeadlessChrome).
|
|
68
68
|
const NOVNC_INSTALL_DIR = "/usr/share/novnc";
|
|
69
69
|
// Resolve a bundled login asset (the branded vnc.html / interstitial).
|
|
70
70
|
// `../../assets/login/` from this module resolves to apps/mcp/assets/
|
|
@@ -78,14 +78,6 @@ async function hasProviderSession(context, target) {
|
|
|
78
78
|
const cookies = await context.cookies(target.cookieOrigin);
|
|
79
79
|
return cookies.some((c) => target.cookies.includes(c.name));
|
|
80
80
|
}
|
|
81
|
-
async function pollForSession(context, deadline, target) {
|
|
82
|
-
while (Date.now() < deadline) {
|
|
83
|
-
if (await hasProviderSession(context, target))
|
|
84
|
-
return true;
|
|
85
|
-
await new Promise((r) => setTimeout(r, 3000));
|
|
86
|
-
}
|
|
87
|
-
return false;
|
|
88
|
-
}
|
|
89
81
|
export function classifyGoogleAuthState(url, bodyText) {
|
|
90
82
|
let parsed;
|
|
91
83
|
try {
|
|
@@ -192,6 +184,17 @@ export function scopesAreBasic(scopes) {
|
|
|
192
184
|
export function hasDisplay() {
|
|
193
185
|
if (process.env.TRUSTY_SQUIRE_FORCE_HEADLESS === "true")
|
|
194
186
|
return false;
|
|
187
|
+
// macOS (Aqua) and Windows (Win32) have native windowing — Chrome
|
|
188
|
+
// opens a real window without an X server. DISPLAY is a Unix concept
|
|
189
|
+
// they don't set, so a DISPLAY-only check would have wrongly routed
|
|
190
|
+
// every Mac/Windows install into the headless+noVNC+cloudflared rig
|
|
191
|
+
// (which needs Xvfb/x11vnc/etc. that aren't installed on those
|
|
192
|
+
// platforms).
|
|
193
|
+
if (process.platform === "darwin" || process.platform === "win32")
|
|
194
|
+
return true;
|
|
195
|
+
// Linux: a non-empty DISPLAY means there's an X server we can draw to.
|
|
196
|
+
// Headless boxes (Hetzner, Codespaces, Docker, SSH) won't have it
|
|
197
|
+
// and fall through to the noVNC path.
|
|
195
198
|
return typeof process.env.DISPLAY === "string" && process.env.DISPLAY.length > 0;
|
|
196
199
|
}
|
|
197
200
|
// First :N (99..120) whose X socket is free.
|
|
@@ -231,44 +234,6 @@ export function binaryOnPath(bin) {
|
|
|
231
234
|
const paths = (process.env.PATH ?? "").split(":");
|
|
232
235
|
return paths.some((p) => p.length > 0 && existsSync(join(p, bin)));
|
|
233
236
|
}
|
|
234
|
-
// --- path 1: a display is available -----------------------------------
|
|
235
|
-
async function loginWithDisplay(profileDir, deadline, target) {
|
|
236
|
-
const chromium = resolveChromium();
|
|
237
|
-
const context = await chromium.launchPersistentContext(profileDir, {
|
|
238
|
-
channel: "chrome",
|
|
239
|
-
headless: false,
|
|
240
|
-
viewport: { width: 1280, height: 800 },
|
|
241
|
-
args: ["--disable-blink-features=AutomationControlled", "--no-sandbox", "--disable-dev-shm-usage"],
|
|
242
|
-
});
|
|
243
|
-
try {
|
|
244
|
-
if (await hasProviderSession(context, target)) {
|
|
245
|
-
return { status: "already_valid" };
|
|
246
|
-
}
|
|
247
|
-
const page = context.pages()[0] ?? (await context.newPage());
|
|
248
|
-
// Show a branded interstitial first — a tool opening a browser to
|
|
249
|
-
// ask for a Google/GitHub password is the scariest moment of the
|
|
250
|
-
// flow; the interstitial explains it before the user is asked to
|
|
251
|
-
// trust it. Best-effort: any failure falls back to going straight
|
|
252
|
-
// to the provider's login page.
|
|
253
|
-
try {
|
|
254
|
-
const interstitial = readFileSync(loginAssetPath("interstitial.html"), "utf8")
|
|
255
|
-
.split("{{PROVIDER}}").join(target.label)
|
|
256
|
-
.split("{{URL}}").join(target.loginUrl);
|
|
257
|
-
await page.setContent(interstitial, { waitUntil: "domcontentloaded" });
|
|
258
|
-
}
|
|
259
|
-
catch {
|
|
260
|
-
await page.goto(target.loginUrl, { waitUntil: "domcontentloaded" });
|
|
261
|
-
}
|
|
262
|
-
console.error(`\n[login] A Chrome window has opened. Log into your ${target.label} account there.\n`);
|
|
263
|
-
const ok = await pollForSession(context, deadline, target);
|
|
264
|
-
return ok
|
|
265
|
-
? { status: "logged_in" }
|
|
266
|
-
: { status: "timeout", detail: "no login completed before the deadline" };
|
|
267
|
-
}
|
|
268
|
-
finally {
|
|
269
|
-
await context.close();
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
237
|
function spawnBg(cmd, args, env) {
|
|
273
238
|
const child = spawn(cmd, args, {
|
|
274
239
|
stdio: ["ignore", "pipe", "pipe"],
|
|
@@ -337,7 +302,44 @@ function buildVncWebDir() {
|
|
|
337
302
|
writeFileSync(join(webDir, "vnc.html"), readFileSync(loginAssetPath("vnc.html"), "utf8"));
|
|
338
303
|
return webDir;
|
|
339
304
|
}
|
|
340
|
-
|
|
305
|
+
// Open the bot's Chrome at `url`, on whichever platform path applies
|
|
306
|
+
// (with-display or headless+noVNC+cloudflared), and run `pollUntilDone`
|
|
307
|
+
// against the live context until it resolves true OR the deadline
|
|
308
|
+
// passes. Returns whether the poll succeeded.
|
|
309
|
+
//
|
|
310
|
+
// Extracted so both `mcp login` (poll for Google/GitHub cookies in the
|
|
311
|
+
// bot's profile) AND `install` (poll the API for the install claim)
|
|
312
|
+
// share the same browser-launch infrastructure — one Chrome instance,
|
|
313
|
+
// one Google login event for both use cases.
|
|
314
|
+
async function runInBotChrome(opts) {
|
|
315
|
+
if (hasDisplay()) {
|
|
316
|
+
return await runDisplayedChrome(opts);
|
|
317
|
+
}
|
|
318
|
+
return await runHeadlessChrome(opts);
|
|
319
|
+
}
|
|
320
|
+
async function runDisplayedChrome(opts) {
|
|
321
|
+
const chromium = resolveChromium();
|
|
322
|
+
const context = await chromium.launchPersistentContext(opts.profileDir, {
|
|
323
|
+
channel: "chrome",
|
|
324
|
+
headless: false,
|
|
325
|
+
viewport: { width: 1280, height: 800 },
|
|
326
|
+
args: ["--disable-blink-features=AutomationControlled", "--no-sandbox", "--disable-dev-shm-usage"],
|
|
327
|
+
});
|
|
328
|
+
try {
|
|
329
|
+
if (opts.preflight !== undefined && await opts.preflight(context)) {
|
|
330
|
+
return { status: "preflight_satisfied" };
|
|
331
|
+
}
|
|
332
|
+
const page = context.pages()[0] ?? (await context.newPage());
|
|
333
|
+
await page.goto(opts.url, { waitUntil: "domcontentloaded" });
|
|
334
|
+
console.error(`\n[login] A Chrome window has opened. ${opts.bannerLabel}\n`);
|
|
335
|
+
const ok = await pollUntil(opts.deadline, () => opts.pollUntilDone(context));
|
|
336
|
+
return { status: ok ? "completed" : "timeout" };
|
|
337
|
+
}
|
|
338
|
+
finally {
|
|
339
|
+
await context.close().catch(() => undefined);
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
async function runHeadlessChrome(opts) {
|
|
341
343
|
requireBinaries(["Xvfb", "x11vnc", "websockify", "cloudflared"]);
|
|
342
344
|
if (!existsSync("/usr/share/novnc")) {
|
|
343
345
|
throw new Error("noVNC web assets not found at /usr/share/novnc — install the `novnc` package");
|
|
@@ -351,14 +353,10 @@ async function loginHeadless(profileDir, deadline, target) {
|
|
|
351
353
|
// Playwright handle, closed via context.close(). Tracked here so the
|
|
352
354
|
// signal handler can release the profile lock before exiting.
|
|
353
355
|
let activeContext;
|
|
354
|
-
// Ensure nothing is orphaned if the process dies mid-
|
|
356
|
+
// Ensure nothing is orphaned if the process dies mid-flow. `exit`
|
|
355
357
|
// covers a normal return; SIGTERM/SIGINT cover an interrupted run —
|
|
356
358
|
// once a signal listener is registered the default terminate is
|
|
357
|
-
// suppressed, so the handler must clean up AND exit itself.
|
|
358
|
-
// login into `install` makes an interrupted run far more likely (a
|
|
359
|
-
// backgrounded terminal, a dropped SSH session). The handler closes
|
|
360
|
-
// the browser FIRST (releases the persistent-profile lock cleanly),
|
|
361
|
-
// then tears down the rig, then exits.
|
|
359
|
+
// suppressed, so the handler must clean up AND exit itself.
|
|
362
360
|
const onExit = () => teardown(rig);
|
|
363
361
|
const onSignal = () => {
|
|
364
362
|
const finish = () => {
|
|
@@ -386,7 +384,7 @@ async function loginHeadless(profileDir, deadline, target) {
|
|
|
386
384
|
await new Promise((r) => setTimeout(r, 1500));
|
|
387
385
|
// 2. Chrome on that display, persistent profile, window filling the display.
|
|
388
386
|
const chromium = resolveChromium();
|
|
389
|
-
const context = await chromium.launchPersistentContext(profileDir, {
|
|
387
|
+
const context = await chromium.launchPersistentContext(opts.profileDir, {
|
|
390
388
|
channel: "chrome",
|
|
391
389
|
headless: false,
|
|
392
390
|
viewport: null, // use the real window size
|
|
@@ -401,11 +399,11 @@ async function loginHeadless(profileDir, deadline, target) {
|
|
|
401
399
|
});
|
|
402
400
|
activeContext = context;
|
|
403
401
|
try {
|
|
404
|
-
if (await
|
|
405
|
-
return { status: "
|
|
402
|
+
if (opts.preflight !== undefined && await opts.preflight(context)) {
|
|
403
|
+
return { status: "preflight_satisfied" };
|
|
406
404
|
}
|
|
407
405
|
const page = context.pages()[0] ?? (await context.newPage());
|
|
408
|
-
await page.goto(
|
|
406
|
+
await page.goto(opts.url, { waitUntil: "domcontentloaded" });
|
|
409
407
|
// 3. x11vnc on the display — localhost-only, password-gated, -noshm
|
|
410
408
|
// (the box's X server lacks the shared-memory extension).
|
|
411
409
|
rig.procs.push(spawnBg("x11vnc", [
|
|
@@ -438,14 +436,12 @@ async function loginHeadless(profileDir, deadline, target) {
|
|
|
438
436
|
"[login] Open this on any device, any network:\n" +
|
|
439
437
|
` ${tunnelUrl}/vnc.html#password=${vncPassword}\n` +
|
|
440
438
|
`[login] (if asked for a VNC password: ${vncPassword})\n` +
|
|
441
|
-
`[login]
|
|
439
|
+
`[login] ${opts.bannerLabel}\n` +
|
|
442
440
|
"=".repeat(64) + "\n");
|
|
443
|
-
// 6. Wait for the
|
|
444
|
-
const ok = await
|
|
441
|
+
// 6. Wait for the side effect, then tear the whole stack down.
|
|
442
|
+
const ok = await pollUntil(opts.deadline, () => opts.pollUntilDone(context));
|
|
445
443
|
await context.close();
|
|
446
|
-
return ok
|
|
447
|
-
? { status: "logged_in" }
|
|
448
|
-
: { status: "timeout", detail: "no login completed before the deadline" };
|
|
444
|
+
return { status: ok ? "completed" : "timeout" };
|
|
449
445
|
}
|
|
450
446
|
finally {
|
|
451
447
|
await context.close().catch(() => undefined);
|
|
@@ -460,6 +456,16 @@ async function loginHeadless(profileDir, deadline, target) {
|
|
|
460
456
|
process.removeListener("SIGINT", onSignal);
|
|
461
457
|
}
|
|
462
458
|
}
|
|
459
|
+
// Shared timed-poll helper. `check` is invoked every 3s until it
|
|
460
|
+
// resolves true or the deadline passes.
|
|
461
|
+
async function pollUntil(deadline, check) {
|
|
462
|
+
while (Date.now() < deadline) {
|
|
463
|
+
if (await check())
|
|
464
|
+
return true;
|
|
465
|
+
await new Promise((r) => setTimeout(r, 3000));
|
|
466
|
+
}
|
|
467
|
+
return false;
|
|
468
|
+
}
|
|
463
469
|
// --- public entry ------------------------------------------------------
|
|
464
470
|
// Ensures `profileDir` holds a valid session for `provider`, doing
|
|
465
471
|
// whichever login flow the environment calls for. Returns when the
|
|
@@ -473,18 +479,100 @@ export async function ensureOAuthSession(opts) {
|
|
|
473
479
|
const timeoutMinutes = Math.max(1, opts?.timeoutMinutes ?? 15);
|
|
474
480
|
const deadline = Date.now() + timeoutMinutes * 60 * 1000;
|
|
475
481
|
try {
|
|
476
|
-
const result =
|
|
477
|
-
|
|
478
|
-
:
|
|
482
|
+
const result = await runInBotChrome({
|
|
483
|
+
profileDir,
|
|
484
|
+
url: target.loginUrl,
|
|
485
|
+
deadline,
|
|
486
|
+
bannerLabel: `You'll see a Chrome window — log into your ${target.label} account.`,
|
|
487
|
+
preflight: (ctx) => hasProviderSession(ctx, target),
|
|
488
|
+
pollUntilDone: (ctx) => hasProviderSession(ctx, target),
|
|
489
|
+
});
|
|
490
|
+
// Map runInBotChrome's status set to ensureOAuthSession's contract.
|
|
491
|
+
let mapped;
|
|
492
|
+
if (result.status === "preflight_satisfied") {
|
|
493
|
+
mapped = { status: "already_valid" };
|
|
494
|
+
}
|
|
495
|
+
else if (result.status === "completed") {
|
|
496
|
+
mapped = { status: "logged_in" };
|
|
497
|
+
}
|
|
498
|
+
else {
|
|
499
|
+
mapped = { status: "timeout", detail: "no login completed before the deadline" };
|
|
500
|
+
}
|
|
479
501
|
// A confirmed session — record it so the signup bot can auto-prefer
|
|
480
502
|
// this provider's OAuth path without a probe round-trip.
|
|
481
|
-
if (
|
|
503
|
+
if (mapped.status === "logged_in" || mapped.status === "already_valid") {
|
|
482
504
|
markProviderLoggedIn(provider, profileDir);
|
|
483
505
|
}
|
|
484
|
-
return
|
|
506
|
+
return mapped;
|
|
507
|
+
}
|
|
508
|
+
catch (err) {
|
|
509
|
+
return { status: "error", detail: err instanceof Error ? err.message : String(err) };
|
|
510
|
+
}
|
|
511
|
+
}
|
|
512
|
+
// Public entry for the install flow: opens the trustysquire /install
|
|
513
|
+
// confirm URL in the bot's persistent Chrome profile, runs the
|
|
514
|
+
// user-supplied check until the install is claimed (or the deadline
|
|
515
|
+
// passes), then tears down. The user's Google/GitHub sign-in happens
|
|
516
|
+
// inside this Chrome instance — so the bot's profile gets a provider
|
|
517
|
+
// session as a free side effect, and there's no separate "log into
|
|
518
|
+
// Google for the bot" step after install.
|
|
519
|
+
export async function openInstallConfirmInBotChrome(opts) {
|
|
520
|
+
const profileDir = opts.profileDir ?? CHROME_PROFILE_DIR;
|
|
521
|
+
const timeoutMinutes = Math.max(1, opts.timeoutMinutes ?? 15);
|
|
522
|
+
const deadline = Date.now() + timeoutMinutes * 60 * 1000;
|
|
523
|
+
try {
|
|
524
|
+
const result = await runInBotChrome({
|
|
525
|
+
profileDir,
|
|
526
|
+
url: opts.confirmUrl,
|
|
527
|
+
deadline,
|
|
528
|
+
bannerLabel: `You'll see a Chrome window with the Trusty Squire install page. ` +
|
|
529
|
+
`Sign in there to connect this machine — you only sign in once.`,
|
|
530
|
+
pollUntilDone: () => opts.pollUntilClaimed(),
|
|
531
|
+
});
|
|
532
|
+
// The user's sign-in inside this Chrome leaves a provider session
|
|
533
|
+
// in the persistent profile — record both so the signup bot can
|
|
534
|
+
// ride either when the user later runs `provision_any_service`.
|
|
535
|
+
// (We don't know WHICH provider they used, so probe the profile
|
|
536
|
+
// by checking each target's cookies.)
|
|
537
|
+
if (result.status === "completed") {
|
|
538
|
+
// hasProviderSession needs a context, but the rig tore down
|
|
539
|
+
// already. Re-open headless quickly to probe. Cheaper than
|
|
540
|
+
// refactoring runInBotChrome to expose a post-close hook.
|
|
541
|
+
await markProvidersFromProfile(profileDir);
|
|
542
|
+
return { status: "claimed" };
|
|
543
|
+
}
|
|
544
|
+
return { status: "timeout", detail: "no install completed before the deadline" };
|
|
485
545
|
}
|
|
486
546
|
catch (err) {
|
|
487
547
|
return { status: "error", detail: err instanceof Error ? err.message : String(err) };
|
|
488
548
|
}
|
|
489
549
|
}
|
|
550
|
+
// Probe the bot's profile to see which providers (Google, GitHub) have
|
|
551
|
+
// a live session after a completed install confirm — and mark each so
|
|
552
|
+
// the signup bot's auto-OAuth path uses it without a round-trip.
|
|
553
|
+
// Best-effort: probe failures are non-fatal.
|
|
554
|
+
async function markProvidersFromProfile(profileDir) {
|
|
555
|
+
let context;
|
|
556
|
+
try {
|
|
557
|
+
const chromium = resolveChromium();
|
|
558
|
+
context = await chromium.launchPersistentContext(profileDir, {
|
|
559
|
+
channel: "chrome",
|
|
560
|
+
headless: true,
|
|
561
|
+
args: ["--no-sandbox", "--disable-dev-shm-usage"],
|
|
562
|
+
});
|
|
563
|
+
for (const provider of ["google", "github"]) {
|
|
564
|
+
const target = LOGIN_TARGETS[provider];
|
|
565
|
+
if (await hasProviderSession(context, target)) {
|
|
566
|
+
markProviderLoggedIn(provider, profileDir);
|
|
567
|
+
}
|
|
568
|
+
}
|
|
569
|
+
}
|
|
570
|
+
catch {
|
|
571
|
+
// Probe failures are non-fatal — the user can rerun `mcp login`
|
|
572
|
+
// if the signup bot's OAuth-first path can't see the session.
|
|
573
|
+
}
|
|
574
|
+
finally {
|
|
575
|
+
await context?.close().catch(() => undefined);
|
|
576
|
+
}
|
|
577
|
+
}
|
|
490
578
|
//# sourceMappingURL=google-login.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"google-login.js","sourceRoot":"","sources":["../../src/bot/google-login.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"google-login.js","sourceRoot":"","sources":["../../src/bot/google-login.ts"],"names":[],"mappings":"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"}
|
package/dist/install/cli.d.ts
CHANGED
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import { type AgentTarget } from "./agents.js";
|
|
2
2
|
import { type AsnInfo } from "../bot/index.js";
|
|
3
|
-
|
|
4
|
-
import { type OAuthProviderId } from "../bot/oauth-providers.js";
|
|
5
|
-
type ProviderArg = "google" | "github" | "both";
|
|
3
|
+
type ProviderArg = "google" | "github";
|
|
6
4
|
type Argv = {
|
|
7
5
|
command: string;
|
|
8
6
|
target?: AgentTarget;
|
|
9
7
|
apiBase: string;
|
|
10
8
|
proxyUrl?: string;
|
|
11
9
|
providerArg?: ProviderArg;
|
|
12
|
-
|
|
10
|
+
skipBrowser: boolean;
|
|
13
11
|
};
|
|
14
12
|
declare function parseArgs(argv: string[]): Argv;
|
|
15
13
|
declare function resolveServerLaunch(): {
|
|
@@ -18,9 +16,6 @@ declare function resolveServerLaunch(): {
|
|
|
18
16
|
};
|
|
19
17
|
export declare function runCli(argv: string[]): Promise<void>;
|
|
20
18
|
declare function install(args: Argv): Promise<void>;
|
|
21
|
-
export declare function runLoginStage(args: Argv, loginFn?: (opts: {
|
|
22
|
-
provider: OAuthProviderId;
|
|
23
|
-
}) => Promise<LoginResult>): Promise<void>;
|
|
24
19
|
declare function logout(): Promise<void>;
|
|
25
20
|
declare function login(args: Argv): Promise<void>;
|
|
26
21
|
interface ClaimResult {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/install/cli.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/install/cli.ts"],"names":[],"mappings":"AAqCA,OAAO,EAAiC,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAC9E,OAAO,EAAa,KAAK,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAU1D,KAAK,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEvC,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAIhB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAKlB,WAAW,CAAC,EAAE,WAAW,CAAC;IAM1B,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,iBAAS,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAuCvC;AAcD,iBAAS,mBAAmB,IAAI;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAMlE;AAED,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAoB1D;AAED,iBAAe,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAmGhD;AAqHD,iBAAe,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAIrC;AASD,iBAAe,KAAK,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAsB9C;AAsBD,UAAU,WAAW;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,iBAAe,YAAY,CACzB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,gBAAgB,GAAE,MAAM,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,EAC3E,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAoB7B;AAKD,iBAAS,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAyB3C;AAED,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,CAAC"}
|
package/dist/install/cli.js
CHANGED
|
@@ -1,27 +1,31 @@
|
|
|
1
1
|
// Setup CLI — install / logout / login subcommands.
|
|
2
2
|
//
|
|
3
3
|
// npx @trusty-squire/mcp install --target=claude-code
|
|
4
|
-
// Issues a machine token, opens the
|
|
5
|
-
//
|
|
6
|
-
//
|
|
4
|
+
// Issues a machine token, then opens the trustysquire install-
|
|
5
|
+
// confirm page in the bot's own Chrome. The user signs in there
|
|
6
|
+
// once (Google or GitHub) — that single sign-in does TWO things:
|
|
7
|
+
// (a) trustysquire claims the install and binds the machine to
|
|
8
|
+
// the user's account, and
|
|
9
|
+
// (b) the bot's Chrome profile gains a provider session it can
|
|
10
|
+
// ride on future signups (Resend, Postmark, etc.).
|
|
11
|
+
// One Google login, both jobs done.
|
|
7
12
|
//
|
|
8
13
|
// npx @trusty-squire/mcp login [--provider=google|github]
|
|
9
|
-
//
|
|
10
|
-
//
|
|
11
|
-
//
|
|
12
|
-
// command to use when you're explicitly retrying login.
|
|
14
|
+
// Add an additional provider session to the bot's profile. If you
|
|
15
|
+
// signed in to install with Google but want the bot to also sign
|
|
16
|
+
// you up via GitHub-only services, run this.
|
|
13
17
|
//
|
|
14
18
|
// npx @trusty-squire/mcp logout
|
|
15
19
|
//
|
|
16
20
|
// Flags:
|
|
17
|
-
// --target=<agent>
|
|
18
|
-
// --api-base=<url>
|
|
19
|
-
// --provider=google|github
|
|
20
|
-
//
|
|
21
|
-
//
|
|
22
|
-
//
|
|
23
|
-
// --proxy-url=<url>
|
|
24
|
-
//
|
|
21
|
+
// --target=<agent> skip auto-detection
|
|
22
|
+
// --api-base=<url> override the API base URL
|
|
23
|
+
// --provider=google|github choose provider for `login`
|
|
24
|
+
// --skip-browser don't launch the bot's Chrome; just print the
|
|
25
|
+
// confirm URL and expect the user to open it in
|
|
26
|
+
// their own browser (CI / scripted installs)
|
|
27
|
+
// --proxy-url=<url> bake a residential proxy into the MCP config's
|
|
28
|
+
// env (UNIVERSAL_BOT_PROXY_URL)
|
|
25
29
|
//
|
|
26
30
|
// Pure module — `runCli()` is invoked by bin.ts. No shebang, no
|
|
27
31
|
// entrypoint guard, no top-level execution.
|
|
@@ -32,7 +36,7 @@ import { installInitiate, installPoll, issueMachineToken } from "../api-client.j
|
|
|
32
36
|
import { openSessionStorage } from "../session.js";
|
|
33
37
|
import { AGENTS, detectInstalledAgents } from "./agents.js";
|
|
34
38
|
import { detectAsn } from "../bot/index.js";
|
|
35
|
-
import { ensureOAuthSession } from "../bot/google-login.js";
|
|
39
|
+
import { ensureOAuthSession, openInstallConfirmInBotChrome, } from "../bot/google-login.js";
|
|
36
40
|
import {} from "../bot/oauth-providers.js";
|
|
37
41
|
import { VERSION } from "../version.js";
|
|
38
42
|
const DEFAULT_API_BASE = process.env.TRUSTY_SQUIRE_API_BASE ?? "https://trusty-squire-api.fly.dev";
|
|
@@ -43,7 +47,7 @@ function parseArgs(argv) {
|
|
|
43
47
|
let apiBase = DEFAULT_API_BASE;
|
|
44
48
|
let proxyUrl;
|
|
45
49
|
let providerArg;
|
|
46
|
-
let
|
|
50
|
+
let skipBrowser = false;
|
|
47
51
|
for (const arg of argv) {
|
|
48
52
|
if (arg.startsWith("--target=")) {
|
|
49
53
|
const t = arg.slice("--target=".length);
|
|
@@ -64,14 +68,16 @@ function parseArgs(argv) {
|
|
|
64
68
|
}
|
|
65
69
|
else if (arg.startsWith("--provider=")) {
|
|
66
70
|
const p = arg.slice("--provider=".length);
|
|
67
|
-
if (p === "google" || p === "github"
|
|
71
|
+
if (p === "google" || p === "github")
|
|
68
72
|
providerArg = p;
|
|
69
73
|
}
|
|
70
|
-
else if (arg === "--skip-login") {
|
|
71
|
-
|
|
74
|
+
else if (arg === "--skip-browser" || arg === "--skip-login") {
|
|
75
|
+
// --skip-login kept as an alias for the 0.5.0 spelling so any
|
|
76
|
+
// scripted callers still work.
|
|
77
|
+
skipBrowser = true;
|
|
72
78
|
}
|
|
73
79
|
}
|
|
74
|
-
const args = { command, apiBase,
|
|
80
|
+
const args = { command, apiBase, skipBrowser };
|
|
75
81
|
if (target !== undefined)
|
|
76
82
|
args.target = target;
|
|
77
83
|
if (proxyUrl !== undefined && proxyUrl.length > 0)
|
|
@@ -144,16 +150,19 @@ async function install(args) {
|
|
|
144
150
|
if (asn !== null) {
|
|
145
151
|
printAsnWarning(asn);
|
|
146
152
|
}
|
|
147
|
-
// ── Browser confirm: bind this machine
|
|
148
|
-
//
|
|
149
|
-
//
|
|
150
|
-
//
|
|
153
|
+
// ── Browser confirm: bind this machine + seed the bot's Chrome ─
|
|
154
|
+
// The user signs into trustysquire from inside the bot's persistent
|
|
155
|
+
// 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.
|
|
151
160
|
const baseSession = {
|
|
152
161
|
api_base_url: args.apiBase,
|
|
153
162
|
saved_at: new Date().toISOString(),
|
|
154
163
|
machine_token: machine.machine_token,
|
|
155
164
|
};
|
|
156
|
-
const session = await runInstallClaim(args.apiBase, target, baseSession);
|
|
165
|
+
const session = await runInstallClaim(args.apiBase, target, baseSession, args.skipBrowser);
|
|
157
166
|
if (session === null) {
|
|
158
167
|
console.error("Install didn't complete — the browser confirm step never finished. " +
|
|
159
168
|
"Try again with `npx @trusty-squire/mcp install`.");
|
|
@@ -193,131 +202,102 @@ async function install(args) {
|
|
|
193
202
|
if (args.proxyUrl !== undefined) {
|
|
194
203
|
console.warn(` Residential proxy baked in: ${args.proxyUrl}`);
|
|
195
204
|
}
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
205
|
+
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]`);
|
|
210
|
+
}
|
|
201
211
|
console.warn(``);
|
|
202
212
|
console.warn(`You're done. Restart ${agent.display_name} to pick up the new tools.`);
|
|
203
213
|
console.warn(``);
|
|
204
214
|
console.warn(`Try it now — ask your agent:`);
|
|
205
215
|
console.warn(` "sign me up for Resend"`);
|
|
206
216
|
}
|
|
207
|
-
// Runs the browser-based install confirm flow.
|
|
208
|
-
//
|
|
209
|
-
|
|
217
|
+
// Runs the browser-based install confirm flow.
|
|
218
|
+
//
|
|
219
|
+
// Default path (`skipBrowser=false`): opens the trustysquire confirm
|
|
220
|
+
// URL in the bot's OWN persistent Chrome profile. The user signs in
|
|
221
|
+
// once — that single sign-in claims the install AND seeds the bot's
|
|
222
|
+
// profile with a provider session for future OAuth signups. The
|
|
223
|
+
// pollUntilClaimed callback closes the Chrome window as soon as the
|
|
224
|
+
// API flips the install to claimed.
|
|
225
|
+
//
|
|
226
|
+
// Fallback (`skipBrowser=true`): prints the URL, attempts a best-
|
|
227
|
+
// effort `open()` to the user's default browser, polls the API for
|
|
228
|
+
// claim. The bot's Chrome never starts, so the bot won't have a
|
|
229
|
+
// provider session afterwards — the user must run `mcp login` before
|
|
230
|
+
// their first OAuth signup. This path is for CI / scripted installs.
|
|
231
|
+
async function runInstallClaim(apiBase, target, baseSession, skipBrowser) {
|
|
210
232
|
console.warn(`Connecting this machine to your account…`);
|
|
211
233
|
const initiate = await installInitiate(apiBase, target, baseSession.machine_token ?? null);
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
234
|
+
// Track the claimed token outside the poll closure so the in-Chrome
|
|
235
|
+
// flow's pollUntilClaimed can read it once the API reports claimed.
|
|
236
|
+
// Wrapper object so TS can narrow `state.value` after a `=== null`
|
|
237
|
+
// check at the call site — bare closure-captured `let` doesn't.
|
|
238
|
+
const state = { value: null };
|
|
239
|
+
const pollOnce = async () => {
|
|
240
|
+
if (state.value !== null)
|
|
241
|
+
return true;
|
|
242
|
+
const status = await installPoll(apiBase, initiate.setup_code);
|
|
243
|
+
if (status.status === "claimed" && status.agent_session_token !== undefined) {
|
|
244
|
+
state.value = {
|
|
245
|
+
token: status.agent_session_token,
|
|
246
|
+
account_id: status.account_id ?? "",
|
|
247
|
+
};
|
|
248
|
+
return true;
|
|
249
|
+
}
|
|
250
|
+
// Expired: also stop Chrome (returning true) — the outer check
|
|
251
|
+
// sees state.value === null and reports the install failed.
|
|
252
|
+
return status.status === "expired";
|
|
253
|
+
};
|
|
254
|
+
if (skipBrowser) {
|
|
255
|
+
// CI / scripted: best-effort open() into the user's default browser,
|
|
256
|
+
// poll the API directly. Bot Chrome stays unbothered. This is the
|
|
257
|
+
// ONLY branch that prints the trustysquire URL — in the default
|
|
258
|
+
// branch the bot's Chrome opens it for the user, and printing it
|
|
259
|
+
// here too would suggest "sign in here OR there" and the user
|
|
260
|
+
// would sign in twice (or sign in via their laptop, leaving the
|
|
261
|
+
// bot's Chrome profile empty — no Google session for future OAuth
|
|
262
|
+
// signups).
|
|
263
|
+
console.warn(`Open this URL in your browser to sign in and confirm:`);
|
|
264
|
+
console.warn(` ${initiate.confirm_url}`);
|
|
265
|
+
try {
|
|
266
|
+
const openMod = await import("open");
|
|
267
|
+
await openMod.default(initiate.confirm_url);
|
|
268
|
+
}
|
|
269
|
+
catch {
|
|
270
|
+
// ignore — user copies the URL
|
|
271
|
+
}
|
|
272
|
+
const ok = await pollForClaim(apiBase, initiate.setup_code);
|
|
273
|
+
if (ok === null)
|
|
274
|
+
return null;
|
|
275
|
+
return {
|
|
276
|
+
...baseSession,
|
|
277
|
+
api_base_url: apiBase,
|
|
278
|
+
saved_at: new Date().toISOString(),
|
|
279
|
+
agent_session_token: ok.token,
|
|
280
|
+
account_id: ok.account_id,
|
|
281
|
+
};
|
|
220
282
|
}
|
|
221
|
-
|
|
222
|
-
|
|
283
|
+
// Default: run the confirm INSIDE the bot's Chrome. The user signs
|
|
284
|
+
// in there once; that sign-in does both the trustysquire claim AND
|
|
285
|
+
// the bot's provider-session seeding in one event.
|
|
286
|
+
const result = await openInstallConfirmInBotChrome({
|
|
287
|
+
confirmUrl: initiate.confirm_url,
|
|
288
|
+
pollUntilClaimed: pollOnce,
|
|
289
|
+
});
|
|
290
|
+
if (result.status !== "claimed" || state.value === null) {
|
|
223
291
|
return null;
|
|
292
|
+
}
|
|
224
293
|
return {
|
|
225
294
|
...baseSession,
|
|
226
295
|
api_base_url: apiBase,
|
|
227
296
|
saved_at: new Date().toISOString(),
|
|
228
|
-
agent_session_token:
|
|
229
|
-
account_id:
|
|
297
|
+
agent_session_token: state.value.token,
|
|
298
|
+
account_id: state.value.account_id,
|
|
230
299
|
};
|
|
231
300
|
}
|
|
232
|
-
// The OAuth login stage of `install`. Non-fatal by contract: it never
|
|
233
|
-
// throws and never exits the process — a timed-out, errored or skipped
|
|
234
|
-
// login still leaves a working install (the MCP config is the durable
|
|
235
|
-
// artifact). `loginFn` is injectable so the contract is unit-testable
|
|
236
|
-
// without launching a real browser.
|
|
237
|
-
export async function runLoginStage(args, loginFn = ensureOAuthSession) {
|
|
238
|
-
if (args.skipLogin) {
|
|
239
|
-
console.warn(``);
|
|
240
|
-
console.warn(`Skipping the OAuth login (--skip-login).`);
|
|
241
|
-
console.warn(`Run \`npx @trusty-squire/mcp login\` before your first provision — ` +
|
|
242
|
-
`without it the bot can't sign you up via Google/GitHub.`);
|
|
243
|
-
return;
|
|
244
|
-
}
|
|
245
|
-
const providers = await resolveLoginProviders(args);
|
|
246
|
-
for (const provider of providers) {
|
|
247
|
-
const label = provider === "github" ? "GitHub" : "Google";
|
|
248
|
-
console.warn(``);
|
|
249
|
-
console.warn(`Connecting your ${label} account…`);
|
|
250
|
-
let result;
|
|
251
|
-
try {
|
|
252
|
-
result = await loginFn({ provider });
|
|
253
|
-
}
|
|
254
|
-
catch (err) {
|
|
255
|
-
result = {
|
|
256
|
-
status: "error",
|
|
257
|
-
detail: err instanceof Error ? err.message : String(err),
|
|
258
|
-
};
|
|
259
|
-
}
|
|
260
|
-
switch (result.status) {
|
|
261
|
-
case "already_valid":
|
|
262
|
-
console.warn(`✓ ${label} already connected.`);
|
|
263
|
-
break;
|
|
264
|
-
case "logged_in":
|
|
265
|
-
console.warn(`✓ ${label} connected — the bot can now sign you up with it.`);
|
|
266
|
-
break;
|
|
267
|
-
case "timeout":
|
|
268
|
-
console.warn(`⚠ ${label} login didn't finish in time. Install is otherwise complete.`);
|
|
269
|
-
console.warn(` Finish it later: \`npx @trusty-squire/mcp login --provider=${provider}\``);
|
|
270
|
-
break;
|
|
271
|
-
case "error":
|
|
272
|
-
console.warn(`⚠ ${label} login couldn't run: ${result.detail ?? "unknown error"}`);
|
|
273
|
-
console.warn(` Install is otherwise complete. Retry: ` +
|
|
274
|
-
`\`npx @trusty-squire/mcp login --provider=${provider}\``);
|
|
275
|
-
break;
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
// Which providers `install` connects: an explicit --provider wins;
|
|
280
|
-
// otherwise prompt on an interactive terminal, or default to Google
|
|
281
|
-
// when there is no TTY (CI / scripted installs must never block).
|
|
282
|
-
async function resolveLoginProviders(args) {
|
|
283
|
-
if (args.providerArg === "both")
|
|
284
|
-
return ["google", "github"];
|
|
285
|
-
if (args.providerArg === "github")
|
|
286
|
-
return ["github"];
|
|
287
|
-
if (args.providerArg === "google")
|
|
288
|
-
return ["google"];
|
|
289
|
-
if (process.stdin.isTTY !== true)
|
|
290
|
-
return ["google"];
|
|
291
|
-
return promptProvider();
|
|
292
|
-
}
|
|
293
|
-
async function promptProvider() {
|
|
294
|
-
console.warn(``);
|
|
295
|
-
console.warn(`Trusty Squire signs you up to services by riding your Google or GitHub login.`);
|
|
296
|
-
const answer = (await promptLine(`Connect which? [google] / github / both: `))
|
|
297
|
-
.trim()
|
|
298
|
-
.toLowerCase();
|
|
299
|
-
if (answer === "github")
|
|
300
|
-
return ["github"];
|
|
301
|
-
if (answer === "both")
|
|
302
|
-
return ["google", "github"];
|
|
303
|
-
return ["google"];
|
|
304
|
-
}
|
|
305
|
-
// Read one line from stdin. The prompt goes to stderr so it never
|
|
306
|
-
// pollutes stdout, which the host agent may parse.
|
|
307
|
-
function promptLine(question) {
|
|
308
|
-
const rl = createInterface({ input: process.stdin, output: process.stderr });
|
|
309
|
-
return new Promise((resolve) => {
|
|
310
|
-
// If stdin reaches EOF before an answer (closed or redirected
|
|
311
|
-
// mid-run), resolve empty rather than hang forever — the caller
|
|
312
|
-
// treats "" as the default. Promise resolve is idempotent, so the
|
|
313
|
-
// question callback and this close handler cannot both win.
|
|
314
|
-
rl.on("close", () => resolve(""));
|
|
315
|
-
rl.question(question, (answer) => {
|
|
316
|
-
rl.close();
|
|
317
|
-
resolve(answer);
|
|
318
|
-
});
|
|
319
|
-
});
|
|
320
|
-
}
|
|
321
301
|
async function resolveTarget(explicit) {
|
|
322
302
|
if (explicit !== undefined)
|
|
323
303
|
return explicit;
|
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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@trusty-squire/mcp",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.4",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Local MCP server vibe coding agents install. Thin relay to the Trusty Squire API, with the bundled universal signup bot.",
|
|
6
6
|
"main": "./dist/server.js",
|