@rubytech/create-maxy 1.0.621 → 1.0.623
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/package.json +1 -1
- package/payload/platform/lib/device-url/dist/index.d.ts +44 -0
- package/payload/platform/lib/device-url/dist/index.d.ts.map +1 -0
- package/payload/platform/lib/device-url/dist/index.js +68 -0
- package/payload/platform/lib/device-url/dist/index.js.map +1 -0
- package/payload/platform/lib/device-url/src/index.ts +78 -0
- package/payload/platform/lib/device-url/tsconfig.json +8 -0
- package/payload/platform/package.json +2 -2
- package/payload/platform/plugins/admin/mcp/dist/index.js +12 -5
- package/payload/platform/plugins/admin/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/cloudflare/PLUGIN.md +28 -2
- package/payload/platform/plugins/cloudflare/mcp/dist/index.js +119 -29
- package/payload/platform/plugins/cloudflare/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/cloudflare/mcp/dist/lib/cloudflared.d.ts +30 -17
- package/payload/platform/plugins/cloudflare/mcp/dist/lib/cloudflared.d.ts.map +1 -1
- package/payload/platform/plugins/cloudflare/mcp/dist/lib/cloudflared.js +78 -34
- package/payload/platform/plugins/cloudflare/mcp/dist/lib/cloudflared.js.map +1 -1
- package/payload/platform/plugins/cloudflare/mcp/dist/lib/setup-orchestrator.d.ts +90 -0
- package/payload/platform/plugins/cloudflare/mcp/dist/lib/setup-orchestrator.d.ts.map +1 -0
- package/payload/platform/plugins/cloudflare/mcp/dist/lib/setup-orchestrator.js +550 -0
- package/payload/platform/plugins/cloudflare/mcp/dist/lib/setup-orchestrator.js.map +1 -0
- package/payload/platform/plugins/cloudflare/references/setup-guide.md +5 -6
- package/payload/platform/plugins/cloudflare/skills/setup-tunnel/SKILL.md +4 -56
- package/payload/platform/plugins/docs/references/cloudflare.md +18 -11
- package/payload/platform/templates/agents/admin/IDENTITY.md +8 -0
- package/payload/server/public/assets/admin-BxVuKRJZ.js +352 -0
- package/payload/server/public/assets/{public-ZM0fHAOE.js → public-Bgm9WQFZ.js} +2 -2
- package/payload/server/public/assets/useVoiceRecorder-BORuG_su.css +1 -0
- package/payload/server/public/assets/useVoiceRecorder-CiYPZu3g.js +44 -0
- package/payload/server/public/index.html +3 -3
- package/payload/server/public/public.html +3 -3
- package/payload/server/server.js +553 -202
- package/payload/server/public/assets/admin-D7LRdkYB.js +0 -352
- package/payload/server/public/assets/useVoiceRecorder-CaFVzk8y.css +0 -1
- package/payload/server/public/assets/useVoiceRecorder-OB_Gtr0e.js +0 -43
|
@@ -4,7 +4,22 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
|
4
4
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
5
5
|
import { z } from "zod";
|
|
6
6
|
import { Resolver } from "node:dns/promises";
|
|
7
|
+
import { hostname as osHostname } from "node:os";
|
|
7
8
|
import * as cloudflared from "./lib/cloudflared.js";
|
|
9
|
+
import * as orchestrator from "./lib/setup-orchestrator.js";
|
|
10
|
+
import { deviceUrlBlock } from "../../../../lib/device-url/dist/index.js";
|
|
11
|
+
/** Sign-in is a device-bound flow — Cloudflare's OAuth callback lands on
|
|
12
|
+
* cloudflared's local HTTP server on the device, so the operator must
|
|
13
|
+
* complete the sign-in from the device's browser. Emit the auth URL as
|
|
14
|
+
* a maxy-device-url fenced block so the chat UI renders a click-to-open
|
|
15
|
+
* button rather than a plain link. See Task 546 and .docs/web-chat.md. */
|
|
16
|
+
function cloudflareSignInBlock(authUrl) {
|
|
17
|
+
return deviceUrlBlock({
|
|
18
|
+
url: authUrl,
|
|
19
|
+
intent: "Sign in to Cloudflare",
|
|
20
|
+
hostname: osHostname(),
|
|
21
|
+
});
|
|
22
|
+
}
|
|
8
23
|
const server = new McpServer({
|
|
9
24
|
name: "cloudflare",
|
|
10
25
|
version: "0.3.0",
|
|
@@ -153,27 +168,14 @@ server.tool("tunnel-login", "Authenticate with Cloudflare via `cloudflared tunne
|
|
|
153
168
|
}
|
|
154
169
|
// Three-state login machine. `complete` is already handled above via
|
|
155
170
|
// `auth.bound` / migration path, so here we branch on in-progress vs.
|
|
156
|
-
//
|
|
171
|
+
// terminal failure (PID dead + cert absent, regardless of why). Both
|
|
172
|
+
// branches emit a `maxy-device-url` fenced block so the chat UI
|
|
173
|
+
// renders a click-to-open-on-device button — cloudflared's courtesy
|
|
174
|
+
// browser-launch failing no longer matters to the operator because
|
|
175
|
+
// the button drives the device's VNC browser directly.
|
|
157
176
|
const loginStatus = cloudflared.getLoginStatus();
|
|
158
177
|
if (loginStatus.state === "failed") {
|
|
159
178
|
console.error(`[cloudflare:tunnel-login:failed] reason=${loginStatus.reason} ` +
|
|
160
|
-
`pid=${loginStatus.loginState?.pid ?? "none"} marker=${JSON.stringify(loginStatus.marker)}`);
|
|
161
|
-
cloudflared.resetAuth();
|
|
162
|
-
const restarted = await cloudflared.tunnelLogin();
|
|
163
|
-
return {
|
|
164
|
-
content: [
|
|
165
|
-
{
|
|
166
|
-
type: "text",
|
|
167
|
-
text: `Sign-in failed — the browser didn't open on the laptop. Restarting.\n\n` +
|
|
168
|
-
`Sign-in URL: ${restarted.authUrl}\n\n` +
|
|
169
|
-
`Ask the user to open the URL, pick the Cloudflare account they want this laptop signed into, and click Authorize. ` +
|
|
170
|
-
`Call tunnel-login again once they confirm — it will detect the completed sign-in automatically.`,
|
|
171
|
-
},
|
|
172
|
-
],
|
|
173
|
-
};
|
|
174
|
-
}
|
|
175
|
-
if (loginStatus.state === "exited-no-cert") {
|
|
176
|
-
console.error(`[cloudflare:tunnel-login:failed] reason=login-process-exited-without-cert ` +
|
|
177
179
|
`pid=${loginStatus.loginState?.pid ?? "none"}`);
|
|
178
180
|
cloudflared.resetAuth();
|
|
179
181
|
const restarted = await cloudflared.tunnelLogin();
|
|
@@ -182,23 +184,33 @@ server.tool("tunnel-login", "Authenticate with Cloudflare via `cloudflared tunne
|
|
|
182
184
|
{
|
|
183
185
|
type: "text",
|
|
184
186
|
text: `Sign-in ended without saving the cert. Restarting.\n\n` +
|
|
185
|
-
|
|
186
|
-
`
|
|
187
|
-
`
|
|
187
|
+
`${cloudflareSignInBlock(restarted.authUrl)}\n\n` +
|
|
188
|
+
`Click the button to open the Cloudflare sign-in page on the device's browser. ` +
|
|
189
|
+
`Pick the Cloudflare account you want this laptop signed into, then click Authorize. ` +
|
|
190
|
+
`Call tunnel-login again once you confirm — it will detect the completed sign-in automatically.`,
|
|
188
191
|
},
|
|
189
192
|
],
|
|
190
193
|
};
|
|
191
194
|
}
|
|
192
195
|
if (loginStatus.state === "in-progress") {
|
|
193
196
|
console.error(`[cloudflare:tunnel-login:waiting] pid=${loginStatus.loginState.pid} authUrl=${loginStatus.loginState.authUrl}`);
|
|
197
|
+
if (loginStatus.browserLaunchFailed) {
|
|
198
|
+
// Task 545 observability: cloudflared's browser-launch subcommand
|
|
199
|
+
// failed but the OAuth callback loop is still alive. Task 546
|
|
200
|
+
// resolves the user-facing half of this — the device-URL block
|
|
201
|
+
// below renders as a click-to-open-on-device button in the chat
|
|
202
|
+
// UI, so the operator does not need to know cloudflared's
|
|
203
|
+
// launcher misbehaved. The log line remains for diagnostics.
|
|
204
|
+
console.error(`[cloudflare:tunnel-login:browser-launch-failed] pid=${loginStatus.loginState.pid}`);
|
|
205
|
+
}
|
|
194
206
|
return {
|
|
195
207
|
content: [
|
|
196
208
|
{
|
|
197
209
|
type: "text",
|
|
198
|
-
text: `Sign-in in progress — a browser window is already open (started ${new Date(loginStatus.loginState.startedAt).toISOString()}).\n\n` +
|
|
199
|
-
|
|
200
|
-
`
|
|
201
|
-
`Call tunnel-login again once
|
|
210
|
+
text: `Sign-in in progress — a browser window is already open on the device (started ${new Date(loginStatus.loginState.startedAt).toISOString()}).\n\n` +
|
|
211
|
+
`${cloudflareSignInBlock(loginStatus.loginState.authUrl)}\n\n` +
|
|
212
|
+
`Finish the sign-in on the device's browser and click Authorize. ` +
|
|
213
|
+
`Call tunnel-login again once you confirm — it will detect the completed sign-in automatically.`,
|
|
202
214
|
},
|
|
203
215
|
],
|
|
204
216
|
};
|
|
@@ -209,9 +221,11 @@ server.tool("tunnel-login", "Authenticate with Cloudflare via `cloudflared tunne
|
|
|
209
221
|
content: [
|
|
210
222
|
{
|
|
211
223
|
type: "text",
|
|
212
|
-
text: `Cloudflare sign-in started
|
|
213
|
-
|
|
214
|
-
`
|
|
224
|
+
text: `Cloudflare sign-in started on the device.\n\n` +
|
|
225
|
+
`${cloudflareSignInBlock(result.authUrl)}\n\n` +
|
|
226
|
+
`Click the button to open the sign-in page on the device's browser. ` +
|
|
227
|
+
`Pick the Cloudflare account you want this laptop signed into, then click Authorize. ` +
|
|
228
|
+
`Call tunnel-login again once you confirm — it will detect the completed sign-in automatically.`,
|
|
215
229
|
},
|
|
216
230
|
],
|
|
217
231
|
};
|
|
@@ -495,11 +509,14 @@ server.tool("tunnel-enable", "Start the Cloudflare Tunnel process. The tunnel mu
|
|
|
495
509
|
});
|
|
496
510
|
const body = await res.json();
|
|
497
511
|
if (!body.configured) {
|
|
512
|
+
const setupUrl = `http://${osHostname()}.local:${platformPort}/__remote-auth/setup`;
|
|
498
513
|
return {
|
|
499
514
|
content: [
|
|
500
515
|
{
|
|
501
516
|
type: "text",
|
|
502
|
-
text: `REFUSED: Remote access password is not configured. The admin interface would be exposed to the internet without authentication.\n\
|
|
517
|
+
text: `REFUSED: Remote access password is not configured. The admin interface would be exposed to the internet without authentication.\n\n` +
|
|
518
|
+
`${deviceUrlBlock({ url: setupUrl, intent: "Set remote access password", hostname: osHostname() })}\n\n` +
|
|
519
|
+
`Click the button to open the setup page on the device's browser, set the password, then ask me to enable the tunnel again. Do NOT collect the password in chat.`,
|
|
503
520
|
},
|
|
504
521
|
],
|
|
505
522
|
isError: true,
|
|
@@ -790,6 +807,79 @@ server.tool("dns-lookup", "Resolve DNS records for a hostname. Replaces dig/nslo
|
|
|
790
807
|
};
|
|
791
808
|
}
|
|
792
809
|
});
|
|
810
|
+
// ===================================================================
|
|
811
|
+
// Setup orchestrator — deterministic multi-step flow (Task 547)
|
|
812
|
+
//
|
|
813
|
+
// `cloudflare-setup-run` is the single operator-facing entry point for
|
|
814
|
+
// tunnel setup. It drives the full login → create → enable → verify
|
|
815
|
+
// sequence in code, using the enum output of `tunnel-status` to decide
|
|
816
|
+
// each transition. The LLM never picks between tunnel-login/create/enable
|
|
817
|
+
// during an active setup — those tools are removed from its menu by the
|
|
818
|
+
// tool-surface filter (platform/ui/app/lib/tool-surface-filter.ts) while
|
|
819
|
+
// `phase !== 'idle' && phase !== 'healthy' && phase !== 'unhealthy'`.
|
|
820
|
+
//
|
|
821
|
+
// See platform/plugins/cloudflare/mcp/src/lib/setup-orchestrator.ts for
|
|
822
|
+
// the state machine.
|
|
823
|
+
// ===================================================================
|
|
824
|
+
server.tool("cloudflare-setup-run", "Run the full Cloudflare tunnel setup to completion. Single operator-facing entry point — handles sign-in, tunnel creation, DNS routing, and verification deterministically. Every sub-step is chosen in code, not by the LLM. Pass `domain` on the first call. Pass `adminSubdomain` (and optional `publicSubdomain`) once sign-in is complete. Pass `confirmed: true` to acknowledge the operator has finished a device-bound step (signed in, switched accounts). Re-entrant — safe to invoke repeatedly; persisted state resumes at the correct phase.", {
|
|
825
|
+
domain: z
|
|
826
|
+
.string()
|
|
827
|
+
.optional()
|
|
828
|
+
.describe("The bare domain (e.g. 'maxy.bot'). Required on the first call; ignored afterwards."),
|
|
829
|
+
adminSubdomain: z
|
|
830
|
+
.string()
|
|
831
|
+
.optional()
|
|
832
|
+
.describe("Admin subdomain label (e.g. 'admin' → admin.{domain}). Provide when the tool asks for subdomains."),
|
|
833
|
+
publicSubdomain: z
|
|
834
|
+
.string()
|
|
835
|
+
.optional()
|
|
836
|
+
.describe("Optional public chat subdomain label. Leave unset to skip the public endpoint."),
|
|
837
|
+
confirmed: z
|
|
838
|
+
.boolean()
|
|
839
|
+
.optional()
|
|
840
|
+
.describe("Set to true to signal the operator has completed a device-bound action (signed in, switched Cloudflare accounts). Ignored in phases where no such action is pending."),
|
|
841
|
+
}, async ({ domain, adminSubdomain, publicSubdomain, confirmed }) => {
|
|
842
|
+
try {
|
|
843
|
+
const result = await orchestrator.runOrchestrator({
|
|
844
|
+
domain,
|
|
845
|
+
adminSubdomain,
|
|
846
|
+
publicSubdomain,
|
|
847
|
+
confirmed,
|
|
848
|
+
});
|
|
849
|
+
return {
|
|
850
|
+
content: [{ type: "text", text: result.text }],
|
|
851
|
+
isError: !result.healthy && (result.phase === "unhealthy"),
|
|
852
|
+
};
|
|
853
|
+
}
|
|
854
|
+
catch (err) {
|
|
855
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
856
|
+
console.error(`[cloudflare:setup-run:threw] ${msg}`);
|
|
857
|
+
return {
|
|
858
|
+
content: [{ type: "text", text: `Tunnel setup encountered an unexpected error: ${msg}` }],
|
|
859
|
+
isError: true,
|
|
860
|
+
};
|
|
861
|
+
}
|
|
862
|
+
});
|
|
863
|
+
server.tool("cloudflare-setup-status", "Report the current tunnel-setup orchestrator phase without advancing it. Use this for diagnostics — to answer 'where is the setup flow right now?' — not as a routine pre-check before `cloudflare-setup-run` (the run tool reads and reconciles state on every call).", {}, async () => {
|
|
864
|
+
const state = orchestrator.readOrchestratorState();
|
|
865
|
+
return {
|
|
866
|
+
content: [
|
|
867
|
+
{
|
|
868
|
+
type: "text",
|
|
869
|
+
text: JSON.stringify({
|
|
870
|
+
phase: state.phase,
|
|
871
|
+
domain: state.domain,
|
|
872
|
+
adminSubdomain: state.adminSubdomain,
|
|
873
|
+
publicSubdomain: state.publicSubdomain,
|
|
874
|
+
tunnelId: state.tunnelId,
|
|
875
|
+
phaseEnteredAt: state.phaseEnteredAt,
|
|
876
|
+
unhealthyReason: state.unhealthyReason,
|
|
877
|
+
setupActive: orchestrator.isSetupActive(state),
|
|
878
|
+
}, null, 2),
|
|
879
|
+
},
|
|
880
|
+
],
|
|
881
|
+
};
|
|
882
|
+
});
|
|
793
883
|
async function main() {
|
|
794
884
|
const transport = new StdioServerTransport();
|
|
795
885
|
await server.connect(transport);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -136,35 +136,48 @@ export interface TunnelLoginResult {
|
|
|
136
136
|
alreadyRunning?: boolean;
|
|
137
137
|
}
|
|
138
138
|
/**
|
|
139
|
-
* Login process state from the agent's perspective.
|
|
140
|
-
*
|
|
139
|
+
* Login process state from the agent's perspective. Three states plus one
|
|
140
|
+
* non-terminal advisory decoration.
|
|
141
141
|
*
|
|
142
|
-
* in-progress
|
|
143
|
-
*
|
|
144
|
-
*
|
|
145
|
-
*
|
|
146
|
-
*
|
|
147
|
-
*
|
|
148
|
-
*
|
|
149
|
-
*
|
|
150
|
-
*
|
|
151
|
-
*
|
|
142
|
+
* in-progress — PID alive. The OAuth-callback loop is still
|
|
143
|
+
* listening, regardless of what the log
|
|
144
|
+
* contains. `browserLaunchFailed: true` when
|
|
145
|
+
* the courtesy-marker is present: cloudflared
|
|
146
|
+
* attempted to open the browser itself and
|
|
147
|
+
* couldn't (headless spawn context, DISPLAY
|
|
148
|
+
* unreachable, etc.), but the sign-in can
|
|
149
|
+
* still complete if the user opens the auth
|
|
150
|
+
* URL in any reachable browser.
|
|
151
|
+
* failed — PID dead AND cert.pem absent. The login
|
|
152
|
+
* process tore down without writing the cert.
|
|
153
|
+
* Caller must restart. `reason` distinguishes
|
|
154
|
+
* *why* the process is gone: `-with-marker`
|
|
155
|
+
* when the courtesy marker was observed during
|
|
156
|
+
* its lifetime, `-without-marker` otherwise.
|
|
157
|
+
* Both variants trigger the same handler
|
|
158
|
+
* response — reason is for log-side
|
|
159
|
+
* observability only.
|
|
160
|
+
* idle — nothing recorded; fresh spawn required.
|
|
152
161
|
*
|
|
153
162
|
* `complete` (cert.pem written) is determined upstream in the tunnel-login
|
|
154
163
|
* handler via `findCert()` / `validateAuth().bound` before this helper is
|
|
155
164
|
* called — so it is not represented here.
|
|
165
|
+
*
|
|
166
|
+
* Task 545 rewrite: the old `failed` state fired on marker-alone, which
|
|
167
|
+
* looped restart-respawn hermetically because cloudflared re-emits the
|
|
168
|
+
* courtesy marker on every spawn whose browser-launch subcommand fails.
|
|
169
|
+
* Liveness (PID alive) is now the sole discriminant for in-progress; the
|
|
170
|
+
* marker is informational and drives an operator-facing advisory, not a
|
|
171
|
+
* restart.
|
|
156
172
|
*/
|
|
157
173
|
export type LoginStatus = {
|
|
158
174
|
state: "in-progress";
|
|
159
175
|
loginState: LoginState;
|
|
176
|
+
browserLaunchFailed: boolean;
|
|
160
177
|
} | {
|
|
161
178
|
state: "failed";
|
|
162
179
|
loginState: LoginState | null;
|
|
163
|
-
reason: "
|
|
164
|
-
marker: string;
|
|
165
|
-
} | {
|
|
166
|
-
state: "exited-no-cert";
|
|
167
|
-
loginState: LoginState | null;
|
|
180
|
+
reason: "login-process-exited-without-cert" | "login-process-exited-with-marker";
|
|
168
181
|
} | {
|
|
169
182
|
state: "idle";
|
|
170
183
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloudflared.d.ts","sourceRoot":"","sources":["../../src/lib/cloudflared.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cloudflared.d.ts","sourceRoot":"","sources":["../../src/lib/cloudflared.ts"],"names":[],"mappings":"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"}
|
|
@@ -682,37 +682,38 @@ function clearLoginState() {
|
|
|
682
682
|
}
|
|
683
683
|
}
|
|
684
684
|
/**
|
|
685
|
-
*
|
|
686
|
-
* browser-launch subcommand
|
|
687
|
-
* stable and regex gymnastics would hide the
|
|
685
|
+
* Fingerprint emitted by `cloudflared tunnel login` into its log when its
|
|
686
|
+
* browser-launch subcommand cannot reach a display. A plain substring — the
|
|
687
|
+
* cloudflared log format is stable and regex gymnastics would hide the
|
|
688
|
+
* failure mode, not detect it.
|
|
688
689
|
*
|
|
689
|
-
*
|
|
690
|
-
*
|
|
691
|
-
*
|
|
692
|
-
*
|
|
693
|
-
*
|
|
690
|
+
* Critical semantic distinction (Task 545): this marker is a *courtesy*
|
|
691
|
+
* warning — cloudflared attempted `xdg-open` against the argotunnel auth
|
|
692
|
+
* URL, failed, wrote the marker, and then CONTINUED RUNNING. Its local
|
|
693
|
+
* OAuth-callback listener is still alive; a user who opens the URL in any
|
|
694
|
+
* reachable browser can still complete sign-in and cert.pem will still
|
|
695
|
+
* land. Treating the marker as terminal loops the restart path
|
|
696
|
+
* hermetically because the respawn will re-emit the same marker the first
|
|
697
|
+
* time it tries to open a browser. `getLoginStatus` therefore only treats
|
|
698
|
+
* the marker as *advisory* when the PID is alive — liveness + cert are
|
|
699
|
+
* the source of truth for terminal-vs-live, not log content.
|
|
694
700
|
*/
|
|
695
|
-
const
|
|
696
|
-
function
|
|
701
|
+
const BROWSER_LAUNCH_FAILED_MARKER = "Failed to fetch resource";
|
|
702
|
+
function parseLoginLogForBrowserLaunchFailure(logPath, logOffsetBytes) {
|
|
697
703
|
try {
|
|
698
704
|
if (!existsSync(logPath))
|
|
699
|
-
return
|
|
705
|
+
return false;
|
|
700
706
|
// Read as Buffer so the byte offset is honoured exactly — logs are
|
|
701
707
|
// mostly ASCII but using a byte-level slice protects against any
|
|
702
708
|
// future multi-byte content producing a character-vs-byte drift.
|
|
703
709
|
const buf = readFileSync(logPath);
|
|
704
710
|
const sliced = buf.length > logOffsetBytes ? buf.subarray(logOffsetBytes) : Buffer.alloc(0);
|
|
705
711
|
const content = sliced.toString("utf-8");
|
|
706
|
-
|
|
707
|
-
if (content.includes(marker)) {
|
|
708
|
-
return { failed: true, marker };
|
|
709
|
-
}
|
|
710
|
-
}
|
|
711
|
-
return { failed: false };
|
|
712
|
+
return content.includes(BROWSER_LAUNCH_FAILED_MARKER);
|
|
712
713
|
}
|
|
713
714
|
catch (err) {
|
|
714
715
|
console.error(`[cloudflare:tunnel-login:log-parse-error] path=${logPath} err=${err instanceof Error ? err.message : String(err)}`);
|
|
715
|
-
return
|
|
716
|
+
return false;
|
|
716
717
|
}
|
|
717
718
|
}
|
|
718
719
|
export function getLoginStatus() {
|
|
@@ -721,19 +722,13 @@ export function getLoginStatus() {
|
|
|
721
722
|
return { state: "idle" };
|
|
722
723
|
}
|
|
723
724
|
const alive = isProcessAlive(loginState.pid);
|
|
724
|
-
const
|
|
725
|
-
if (parse.failed) {
|
|
726
|
-
return {
|
|
727
|
-
state: "failed",
|
|
728
|
-
loginState,
|
|
729
|
-
reason: "browser-launch-fetch-error",
|
|
730
|
-
marker: parse.marker ?? "",
|
|
731
|
-
};
|
|
732
|
-
}
|
|
725
|
+
const browserLaunchFailed = parseLoginLogForBrowserLaunchFailure(loginState.logPath, loginState.logOffset ?? 0);
|
|
733
726
|
if (alive) {
|
|
734
|
-
|
|
727
|
+
// The OAuth-callback listener is still running. The marker is advisory
|
|
728
|
+
// only — the login flow can still complete if a human opens the URL.
|
|
729
|
+
return { state: "in-progress", loginState, browserLaunchFailed };
|
|
735
730
|
}
|
|
736
|
-
// PID dead
|
|
731
|
+
// PID is dead. Cert presence decides terminal state vs TOCTOU-idle.
|
|
737
732
|
if (findCert() !== null) {
|
|
738
733
|
// Upstream (tunnel-login handler) checks cert before calling this, so
|
|
739
734
|
// this branch is only reachable on a TOCTOU race where cert appeared
|
|
@@ -741,7 +736,49 @@ export function getLoginStatus() {
|
|
|
741
736
|
// re-examines from the top on the next call.
|
|
742
737
|
return { state: "idle" };
|
|
743
738
|
}
|
|
744
|
-
|
|
739
|
+
// Terminal failure. Reason encodes whether the courtesy marker was
|
|
740
|
+
// emitted during the process's lifetime — useful for post-mortem grep
|
|
741
|
+
// ("did cloudflared try and fail to open the browser before dying?").
|
|
742
|
+
return {
|
|
743
|
+
state: "failed",
|
|
744
|
+
loginState,
|
|
745
|
+
reason: browserLaunchFailed
|
|
746
|
+
? "login-process-exited-with-marker"
|
|
747
|
+
: "login-process-exited-without-cert",
|
|
748
|
+
};
|
|
749
|
+
}
|
|
750
|
+
/**
|
|
751
|
+
* The VNC display this device runs — fixed at install time. Same literal
|
|
752
|
+
* used by `platform/scripts/vnc.sh` (`Xtigervnc :99 -SecurityTypes None`)
|
|
753
|
+
* and the installer's systemd unit (`Environment=DISPLAY=:99`). Those two
|
|
754
|
+
* files and this constant must stay in lockstep.
|
|
755
|
+
*/
|
|
756
|
+
const VNC_DISPLAY = ":99";
|
|
757
|
+
/**
|
|
758
|
+
* Resolve the spawn env for `cloudflared tunnel login`. `cloudflared`'s
|
|
759
|
+
* first action after printing the auth URL is `xdg-open` against that URL
|
|
760
|
+
* so the operator's browser jumps straight to the Authorize screen. The
|
|
761
|
+
* MCP server's spawn context does not inherit DISPLAY (the chain platform
|
|
762
|
+
* → claude-agent → MCP server drops it along the way), so `xdg-open` has
|
|
763
|
+
* no X display to reach and the courtesy-fetch-resource marker lands in
|
|
764
|
+
* the login log every time.
|
|
765
|
+
*
|
|
766
|
+
* When Xtigervnc's Unix socket is live we plumb DISPLAY=:99 explicitly so
|
|
767
|
+
* the browser launch has a chance of succeeding. Xtigervnc runs
|
|
768
|
+
* `-SecurityTypes None` locally, so XAUTHORITY is not required to connect.
|
|
769
|
+
* When the VNC socket is absent (headless / not-yet-booted / native-mode
|
|
770
|
+
* device) we return null so the caller spawns with the default inherited
|
|
771
|
+
* env, and the new classification (marker alone is non-terminal) keeps
|
|
772
|
+
* the session alive via the advisory path.
|
|
773
|
+
*/
|
|
774
|
+
function vncSpawnEnv() {
|
|
775
|
+
const socket = `/tmp/.X11-unix/X${VNC_DISPLAY.slice(1)}`;
|
|
776
|
+
if (!existsSync(socket))
|
|
777
|
+
return null;
|
|
778
|
+
return {
|
|
779
|
+
env: { ...process.env, DISPLAY: VNC_DISPLAY },
|
|
780
|
+
display: VNC_DISPLAY,
|
|
781
|
+
};
|
|
745
782
|
}
|
|
746
783
|
export function tunnelLogin() {
|
|
747
784
|
const bin = findBinary();
|
|
@@ -757,18 +794,25 @@ export function tunnelLogin() {
|
|
|
757
794
|
const logPath = join(logDir, "cloudflared-login.log");
|
|
758
795
|
const logFd = openSync(logPath, "a");
|
|
759
796
|
// Record the log's byte size before the spawn writes anything. This is
|
|
760
|
-
// the watermark for
|
|
797
|
+
// the watermark for any marker parsing: every subsequent call slices
|
|
761
798
|
// the log from this offset forward so historical markers from prior
|
|
762
|
-
// attempts cannot re-
|
|
763
|
-
//
|
|
799
|
+
// attempts cannot be re-attributed to the new process. Task 545
|
|
800
|
+
// narrowed the marker's role from terminal signal to advisory, so the
|
|
801
|
+
// watermark is no longer load-bearing for loop prevention — but it is
|
|
802
|
+
// still correct for attribution: a new process's courtesy-marker
|
|
803
|
+
// advisory should not count log content written by its predecessor.
|
|
764
804
|
const logOffset = existsSync(logPath) ? statSync(logPath).size : 0;
|
|
765
805
|
const certDir = join(homedir(), loadBrand().configDir, "cloudflared");
|
|
766
806
|
mkdirSync(certDir, { recursive: true });
|
|
767
807
|
const originCert = join(certDir, "cert.pem");
|
|
768
|
-
|
|
808
|
+
const vncEnv = vncSpawnEnv();
|
|
809
|
+
const displayField = vncEnv ? vncEnv.display : "inherit";
|
|
810
|
+
console.error(`[cloudflare:tunnel-login:spawn] log=${logPath} origincert=${originCert} ` +
|
|
811
|
+
`log-offset=${logOffset} display=${displayField}`);
|
|
769
812
|
const child = spawn(bin, ["tunnel", "--origincert", originCert, "login"], {
|
|
770
813
|
stdio: ["ignore", logFd, logFd],
|
|
771
814
|
detached: true,
|
|
815
|
+
env: vncEnv?.env,
|
|
772
816
|
});
|
|
773
817
|
child.unref();
|
|
774
818
|
if (!child.pid) {
|