lockin-mcp 1.0.2 → 1.0.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/README.md +156 -45
- package/dist/blocker.js +2 -2
- package/dist/blocker.js.map +1 -1
- package/dist/brand.d.ts +2 -1
- package/dist/brand.d.ts.map +1 -1
- package/dist/brand.js +2 -1
- package/dist/brand.js.map +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +2 -2
- package/dist/config.js.map +1 -1
- package/dist/hosts-manager.d.ts.map +1 -1
- package/dist/hosts-manager.js +24 -11
- package/dist/hosts-manager.js.map +1 -1
- package/dist/hosts-manager.test.js +22 -3
- package/dist/hosts-manager.test.js.map +1 -1
- package/dist/index.js +37 -12
- package/dist/index.js.map +1 -1
- package/dist/install.js +3 -3
- package/dist/install.js.map +1 -1
- package/dist/installer/agent-instructions.d.ts +15 -1
- package/dist/installer/agent-instructions.d.ts.map +1 -1
- package/dist/installer/agent-instructions.js +29 -7
- package/dist/installer/agent-instructions.js.map +1 -1
- package/dist/installer/agents.d.ts.map +1 -1
- package/dist/installer/agents.js +70 -79
- package/dist/installer/agents.js.map +1 -1
- package/dist/installer/claude-desktop-config.d.ts +19 -0
- package/dist/installer/claude-desktop-config.d.ts.map +1 -0
- package/dist/installer/claude-desktop-config.js +70 -0
- package/dist/installer/claude-desktop-config.js.map +1 -0
- package/dist/installer/claude-desktop-config.test.d.ts +2 -0
- package/dist/installer/claude-desktop-config.test.d.ts.map +1 -0
- package/dist/installer/claude-desktop-config.test.js +49 -0
- package/dist/installer/claude-desktop-config.test.js.map +1 -0
- package/dist/installer/data-dir.d.ts +7 -0
- package/dist/installer/data-dir.d.ts.map +1 -0
- package/dist/installer/data-dir.js +38 -0
- package/dist/installer/data-dir.js.map +1 -0
- package/dist/installer/data-dir.test.d.ts +2 -0
- package/dist/installer/data-dir.test.d.ts.map +1 -0
- package/dist/installer/data-dir.test.js +59 -0
- package/dist/installer/data-dir.test.js.map +1 -0
- package/dist/installer/install-log.d.ts +14 -0
- package/dist/installer/install-log.d.ts.map +1 -0
- package/dist/installer/install-log.js +100 -0
- package/dist/installer/install-log.js.map +1 -0
- package/dist/installer/platform.d.ts.map +1 -1
- package/dist/installer/platform.js +2 -2
- package/dist/installer/platform.js.map +1 -1
- package/dist/installer/poke.d.ts.map +1 -1
- package/dist/installer/poke.js +5 -13
- package/dist/installer/poke.js.map +1 -1
- package/dist/installer/port.d.ts.map +1 -1
- package/dist/installer/port.js +5 -4
- package/dist/installer/port.js.map +1 -1
- package/dist/installer/relay-provision.d.ts.map +1 -1
- package/dist/installer/relay-provision.js +62 -25
- package/dist/installer/relay-provision.js.map +1 -1
- package/dist/installer/run.d.ts.map +1 -1
- package/dist/installer/run.js +37 -34
- package/dist/installer/run.js.map +1 -1
- package/dist/installer/tui.d.ts.map +1 -1
- package/dist/installer/tui.js +5 -3
- package/dist/installer/tui.js.map +1 -1
- package/dist/installer/tunnel.d.ts.map +1 -1
- package/dist/installer/tunnel.js +7 -2
- package/dist/installer/tunnel.js.map +1 -1
- package/dist/installer/user-errors.d.ts +8 -0
- package/dist/installer/user-errors.d.ts.map +1 -0
- package/dist/installer/user-errors.js +61 -0
- package/dist/installer/user-errors.js.map +1 -0
- package/dist/installer/user-errors.test.d.ts +2 -0
- package/dist/installer/user-errors.test.d.ts.map +1 -0
- package/dist/installer/user-errors.test.js +15 -0
- package/dist/installer/user-errors.test.js.map +1 -0
- package/dist/local-http.d.ts +32 -0
- package/dist/local-http.d.ts.map +1 -0
- package/dist/local-http.js +140 -0
- package/dist/local-http.js.map +1 -0
- package/dist/local-http.test.d.ts +2 -0
- package/dist/local-http.test.d.ts.map +1 -0
- package/dist/local-http.test.js +13 -0
- package/dist/local-http.test.js.map +1 -0
- package/dist/relay-client.d.ts.map +1 -1
- package/dist/relay-client.js +26 -23
- package/dist/relay-client.js.map +1 -1
- package/dist/state.d.ts.map +1 -1
- package/dist/state.js +4 -4
- package/dist/state.js.map +1 -1
- package/dist/types.d.ts +5 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +5 -2
- package/dist/types.js.map +1 -1
- package/install.ps1 +1 -1
- package/install.sh +1 -1
- package/package.json +2 -1
package/dist/installer/port.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { createServer } from "node:net";
|
|
2
|
+
import { localHttpRequest } from "../local-http.js";
|
|
2
3
|
export const DEFAULT_LOCKIN_MCP_PORT = 3847;
|
|
3
4
|
export async function fetchLockInHealth(port) {
|
|
4
5
|
try {
|
|
5
|
-
const response = await
|
|
6
|
-
|
|
6
|
+
const response = await localHttpRequest(`http://127.0.0.1:${port}/health`, {
|
|
7
|
+
timeoutMs: 2000,
|
|
7
8
|
});
|
|
8
9
|
if (!response.ok) {
|
|
9
10
|
return false;
|
|
@@ -27,8 +28,8 @@ export async function isPortAvailable(port) {
|
|
|
27
28
|
}
|
|
28
29
|
export async function describePortConflict(port) {
|
|
29
30
|
try {
|
|
30
|
-
const response = await
|
|
31
|
-
|
|
31
|
+
const response = await localHttpRequest(`http://127.0.0.1:${port}/health`, {
|
|
32
|
+
timeoutMs: 2000,
|
|
32
33
|
});
|
|
33
34
|
if (!response.ok) {
|
|
34
35
|
return `Port ${port} responds but /health failed (${response.status})`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"port.js","sourceRoot":"","sources":["../../src/installer/port.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"port.js","sourceRoot":"","sources":["../../src/installer/port.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relay-provision.d.ts","sourceRoot":"","sources":["../../src/installer/relay-provision.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"relay-provision.d.ts","sourceRoot":"","sources":["../../src/installer/relay-provision.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAiHD,wBAAsB,oBAAoB,CAAC,MAAM,EAAE;IACjD,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAOhC;AAED,wBAAsB,wBAAwB,CAAC,MAAM,EAAE;IACrD,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA0B9B"}
|
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
import { canonicalizeRelayFields } from "../relay-urls.js";
|
|
2
2
|
import { getLicenseApiUrl } from "../config.js";
|
|
3
|
+
import { InstallError } from "./user-errors.js";
|
|
4
|
+
const PROVISION_TIMEOUT_MS = 30_000;
|
|
5
|
+
const MAX_ATTEMPTS = 3;
|
|
6
|
+
function sleep(ms) {
|
|
7
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
8
|
+
}
|
|
3
9
|
function parseRelayResponse(body) {
|
|
4
10
|
if (!body.deviceId || !body.relayDeviceToken || !body.mcpUrl) {
|
|
5
|
-
throw new
|
|
11
|
+
throw new InstallError("We couldn't connect your Mac to LockIn. Try running install again.", "Relay provision returned incomplete data");
|
|
6
12
|
}
|
|
7
13
|
return canonicalizeRelayFields({
|
|
8
14
|
deviceId: body.deviceId,
|
|
@@ -14,36 +20,67 @@ function parseRelayResponse(body) {
|
|
|
14
20
|
healthUrl: body.healthUrl ?? body.mcpUrl.replace(/\/mcp$/, "/health"),
|
|
15
21
|
});
|
|
16
22
|
}
|
|
17
|
-
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
23
|
+
async function readRelayJson(response) {
|
|
24
|
+
const text = await response.text();
|
|
25
|
+
if (!text.trim()) {
|
|
26
|
+
throw new InstallError("Something went wrong on our end. Wait a minute and try again.", `Empty response (${response.status}) from tunnel/provision`);
|
|
27
|
+
}
|
|
28
|
+
try {
|
|
29
|
+
return JSON.parse(text);
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
throw new InstallError("Something went wrong on our end. Wait a minute and try again.", `Invalid JSON (${response.status}): ${text.slice(0, 200)}`);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
async function postProvision(body, licenseToken) {
|
|
36
|
+
const url = `${getLicenseApiUrl()}/tunnel/provision`;
|
|
37
|
+
let lastTechnical = "fetch failed";
|
|
38
|
+
for (let attempt = 1; attempt <= MAX_ATTEMPTS; attempt += 1) {
|
|
39
|
+
try {
|
|
40
|
+
return await fetch(url, {
|
|
41
|
+
method: "POST",
|
|
42
|
+
headers: {
|
|
43
|
+
"Content-Type": "application/json",
|
|
44
|
+
Authorization: `Bearer ${licenseToken}`,
|
|
45
|
+
},
|
|
46
|
+
body: JSON.stringify(body),
|
|
47
|
+
signal: AbortSignal.timeout(PROVISION_TIMEOUT_MS),
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
lastTechnical =
|
|
52
|
+
error instanceof Error ? error.message : "Network request failed";
|
|
53
|
+
if (attempt < MAX_ATTEMPTS) {
|
|
54
|
+
await sleep(1000 * attempt);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
throw new InstallError("We couldn't reach LockIn. Check your internet connection and try again.", lastTechnical);
|
|
59
|
+
}
|
|
60
|
+
async function handleProvisionResponse(response, mode) {
|
|
61
|
+
const body = await readRelayJson(response);
|
|
27
62
|
if (!response.ok) {
|
|
28
|
-
|
|
63
|
+
const technical = body.error ?? `${mode} failed (${response.status})`;
|
|
64
|
+
throw new InstallError(body.error && !/MDB_|REGISTRATION|Relay registration|not configured/i.test(body.error)
|
|
65
|
+
? body.error
|
|
66
|
+
: "We couldn't connect your Mac to LockIn. Try running install again.", technical);
|
|
29
67
|
}
|
|
68
|
+
return body;
|
|
69
|
+
}
|
|
70
|
+
export async function provisionRelayDevice(params) {
|
|
71
|
+
const response = await postProvision({ port: params.port, token: params.licenseToken }, params.licenseToken);
|
|
72
|
+
const body = await handleProvisionResponse(response, "provision");
|
|
30
73
|
return parseRelayResponse(body);
|
|
31
74
|
}
|
|
32
75
|
export async function refreshRelayRegistration(params) {
|
|
33
|
-
const response = await
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
body: JSON.stringify({ port: params.port, refresh: true }),
|
|
40
|
-
});
|
|
41
|
-
const body = (await response.json());
|
|
42
|
-
if (!response.ok) {
|
|
43
|
-
throw new Error(body.error ?? `Relay refresh failed (${response.status})`);
|
|
44
|
-
}
|
|
76
|
+
const response = await postProvision({
|
|
77
|
+
port: params.port,
|
|
78
|
+
refresh: true,
|
|
79
|
+
token: params.licenseToken,
|
|
80
|
+
}, params.licenseToken);
|
|
81
|
+
const body = await handleProvisionResponse(response, "refresh");
|
|
45
82
|
if (!body.deviceId || !body.mcpUrl) {
|
|
46
|
-
throw new
|
|
83
|
+
throw new InstallError("We couldn't connect your Mac to LockIn. Try running install again.", "Relay refresh returned incomplete data");
|
|
47
84
|
}
|
|
48
85
|
return canonicalizeRelayFields({
|
|
49
86
|
deviceId: body.deviceId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relay-provision.js","sourceRoot":"","sources":["../../src/installer/relay-provision.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAgChD,SAAS,kBAAkB,CAAC,IAAsB;IAChD,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAC7D,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"relay-provision.js","sourceRoot":"","sources":["../../src/installer/relay-provision.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAgChD,MAAM,oBAAoB,GAAG,MAAM,CAAC;AACpC,MAAM,YAAY,GAAG,CAAC,CAAC;AAEvB,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAsB;IAChD,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAC7D,MAAM,IAAI,YAAY,CACpB,oEAAoE,EACpE,0CAA0C,CAC3C,CAAC;IACJ,CAAC;IAED,OAAO,uBAAuB,CAAC;QAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;QACvC,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC;QAC3E,eAAe,EAAE,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE;QAC5D,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM;QAClC,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC;KACtE,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,QAAkB;IAElB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,YAAY,CACpB,+DAA+D,EAC/D,mBAAmB,QAAQ,CAAC,MAAM,yBAAyB,CAC5D,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAqB,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,YAAY,CACpB,+DAA+D,EAC/D,iBAAiB,QAAQ,CAAC,MAAM,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAC3D,CAAC;IACJ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,IAA6B,EAC7B,YAAoB;IAEpB,MAAM,GAAG,GAAG,GAAG,gBAAgB,EAAE,mBAAmB,CAAC;IACrD,IAAI,aAAa,GAAG,cAAc,CAAC;IAEnC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;QAC5D,IAAI,CAAC;YACH,OAAO,MAAM,KAAK,CAAC,GAAG,EAAE;gBACtB,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,aAAa,EAAE,UAAU,YAAY,EAAE;iBACxC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBAC1B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,oBAAoB,CAAC;aAClD,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,aAAa;gBACX,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC;YACpE,IAAI,OAAO,GAAG,YAAY,EAAE,CAAC;gBAC3B,MAAM,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,IAAI,YAAY,CACpB,yEAAyE,EACzE,aAAa,CACd,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,uBAAuB,CACpC,QAAkB,EAClB,IAA6B;IAE7B,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;IAE3C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,SAAS,GACb,IAAI,CAAC,KAAK,IAAI,GAAG,IAAI,YAAY,QAAQ,CAAC,MAAM,GAAG,CAAC;QACtD,MAAM,IAAI,YAAY,CACpB,IAAI,CAAC,KAAK,IAAI,CAAC,sDAAsD,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YACpF,CAAC,CAAC,IAAI,CAAC,KAAK;YACZ,CAAC,CAAC,oEAAoE,EACxE,SAAS,CACV,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,MAG1C;IACC,MAAM,QAAQ,GAAG,MAAM,aAAa,CAClC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,EACjD,MAAM,CAAC,YAAY,CACpB,CAAC;IACF,MAAM,IAAI,GAAG,MAAM,uBAAuB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAClE,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,MAG9C;IACC,MAAM,QAAQ,GAAG,MAAM,aAAa,CAClC;QACE,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,MAAM,CAAC,YAAY;KAC3B,EACD,MAAM,CAAC,YAAY,CACpB,CAAC;IACF,MAAM,IAAI,GAAG,MAAM,uBAAuB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAEhE,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACnC,MAAM,IAAI,YAAY,CACpB,oEAAoE,EACpE,wCAAwC,CACzC,CAAC;IACJ,CAAC;IAED,OAAO,uBAAuB,CAAC;QAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC;QAC3E,eAAe,EAAE,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE;QAC5D,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM;QAClC,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC;KACtE,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/installer/run.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/installer/run.ts"],"names":[],"mappings":"AAoJA,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAQjE"}
|
package/dist/installer/run.js
CHANGED
|
@@ -21,7 +21,10 @@ import { readRelayCredentials, relayCredentialsMatchPort, relayEnvFromCredential
|
|
|
21
21
|
import { promptSiteSelection, resolveLicenseInteractive, showSuccessOutro, } from "./tui.js";
|
|
22
22
|
import { verifyPublicTunnel, waitForHttp } from "./tunnel.js";
|
|
23
23
|
import { attachToTerminal } from "./tty.js";
|
|
24
|
+
import { DATA_DIR_DISPLAY } from "./data-dir.js";
|
|
24
25
|
import { writeSetupManifest } from "./setup-manifest.js";
|
|
26
|
+
import { appendInstallLog, failInstall, logInstallSessionStart, } from "./install-log.js";
|
|
27
|
+
import { InstallError } from "./user-errors.js";
|
|
25
28
|
function createMcpAuthToken(existing) {
|
|
26
29
|
return existing ?? `mdb_${randomBytes(24).toString("hex")}`;
|
|
27
30
|
}
|
|
@@ -53,13 +56,13 @@ async function setupRelayAccess(params) {
|
|
|
53
56
|
};
|
|
54
57
|
}
|
|
55
58
|
if (!params.relayCredentials) {
|
|
56
|
-
throw new
|
|
59
|
+
throw new InstallError("We couldn't connect your Mac to LockIn. Try running install again.", "Relay credentials missing");
|
|
57
60
|
}
|
|
58
61
|
const healthBase = params.relayCredentials.healthUrl
|
|
59
62
|
? params.relayCredentials.healthUrl.replace(/\/health$/, "")
|
|
60
63
|
: `${params.relayCredentials.relayUrl.replace(/\/$/, "")}/device/${params.relayCredentials.deviceId}`;
|
|
61
64
|
const verifySpinner = clack.spinner();
|
|
62
|
-
verifySpinner.start("
|
|
65
|
+
verifySpinner.start("Checking connection...");
|
|
63
66
|
const verification = await verifyPublicTunnel({
|
|
64
67
|
publicBaseUrl: healthBase,
|
|
65
68
|
authToken: params.mcpAuthToken,
|
|
@@ -67,11 +70,10 @@ async function setupRelayAccess(params) {
|
|
|
67
70
|
delayMs: 2000,
|
|
68
71
|
});
|
|
69
72
|
if (verification.healthOk && verification.mcpOk) {
|
|
70
|
-
verifySpinner.stop(color.green(
|
|
73
|
+
verifySpinner.stop(color.green("Your Mac is connected"));
|
|
71
74
|
}
|
|
72
75
|
else {
|
|
73
|
-
verifySpinner.stop(color.
|
|
74
|
-
clack.log.warn(verification.detail);
|
|
76
|
+
verifySpinner.stop(color.green("Almost there — finish setup below"));
|
|
75
77
|
}
|
|
76
78
|
const publicMcpUrl = params.relayCredentials.mcpUrl?.replace(/\/mcp$/, "") ?? healthBase;
|
|
77
79
|
return {
|
|
@@ -82,14 +84,23 @@ async function setupRelayAccess(params) {
|
|
|
82
84
|
};
|
|
83
85
|
}
|
|
84
86
|
export async function runInstaller(argv) {
|
|
87
|
+
await logInstallSessionStart();
|
|
88
|
+
try {
|
|
89
|
+
return await runInstallerInner(argv);
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
return failInstall(error);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
async function runInstallerInner(argv) {
|
|
85
96
|
attachToTerminal();
|
|
86
97
|
await ensureNodeVersion();
|
|
87
98
|
const platform = detectPlatform();
|
|
88
99
|
if (platform.id === "unsupported") {
|
|
89
|
-
throw new
|
|
100
|
+
throw new InstallError("LockIn isn't supported on this device yet.", `Unsupported platform: ${platform.name}`);
|
|
90
101
|
}
|
|
91
102
|
if (!platform.isHostsSupported) {
|
|
92
|
-
throw new
|
|
103
|
+
throw new InstallError("LockIn can't block sites on this device yet.", "Hosts-based blocking is not supported on this platform.");
|
|
93
104
|
}
|
|
94
105
|
let options = parseInstallerArgs(argv);
|
|
95
106
|
let license;
|
|
@@ -110,12 +121,12 @@ export async function runInstaller(argv) {
|
|
|
110
121
|
options = sites;
|
|
111
122
|
}
|
|
112
123
|
if (license.tier !== "pro") {
|
|
113
|
-
throw new
|
|
124
|
+
throw new InstallError("LockIn Pro is required. Sign in at lockinmcp.com to continue.", "Pro license required");
|
|
114
125
|
}
|
|
115
126
|
if (license.token) {
|
|
116
127
|
const status = await verifyLicenseInfo(license);
|
|
117
128
|
if (!status.valid) {
|
|
118
|
-
throw new
|
|
129
|
+
throw new InstallError("We couldn't verify your license. Sign in again at lockinmcp.com.", `License verification failed: ${status.error ?? "invalid token"}`);
|
|
119
130
|
}
|
|
120
131
|
}
|
|
121
132
|
const { domains } = summarizeSelections(options);
|
|
@@ -127,10 +138,7 @@ export async function runInstaller(argv) {
|
|
|
127
138
|
}
|
|
128
139
|
const blockSpinner = needsSudo ? null : clack.spinner();
|
|
129
140
|
if (blockSpinner) {
|
|
130
|
-
blockSpinner.start(`Blocking ${domains.length}
|
|
131
|
-
}
|
|
132
|
-
else {
|
|
133
|
-
clack.log.step(`Blocking ${domains.length} domain(s)...`);
|
|
141
|
+
blockSpinner.start(`Blocking ${domains.length} site(s)...`);
|
|
134
142
|
}
|
|
135
143
|
try {
|
|
136
144
|
const result = await blockDomains(domains);
|
|
@@ -157,13 +165,14 @@ export async function runInstaller(argv) {
|
|
|
157
165
|
await uninstallLegacyTunnelLaunchAgents();
|
|
158
166
|
const stoppedBackground = await stopLockInMcpLaunchAgent();
|
|
159
167
|
if (stoppedBackground) {
|
|
160
|
-
clack.log.info("Stopped previous LockIn
|
|
168
|
+
clack.log.info("Stopped previous LockIn session for a clean setup.");
|
|
161
169
|
}
|
|
162
170
|
const portConflict = await describePortConflict(options.port);
|
|
163
171
|
if (portConflict) {
|
|
164
172
|
const resolvedPort = await resolveMcpPort(options.port);
|
|
165
173
|
if (resolvedPort !== options.port) {
|
|
166
|
-
clack.log.
|
|
174
|
+
clack.log.info("Switched to an open port for LockIn.");
|
|
175
|
+
await appendInstallLog("INFO", `port_changed ${options.port} -> ${resolvedPort} (${portConflict})`);
|
|
167
176
|
options.port = resolvedPort;
|
|
168
177
|
}
|
|
169
178
|
}
|
|
@@ -176,7 +185,7 @@ export async function runInstaller(argv) {
|
|
|
176
185
|
let relay = cacheValid ? toRelayProvisionResult(cachedRelay) : null;
|
|
177
186
|
if (cacheValid) {
|
|
178
187
|
const refreshSpinner = clack.spinner();
|
|
179
|
-
refreshSpinner.start("Refreshing
|
|
188
|
+
refreshSpinner.start("Refreshing connection...");
|
|
180
189
|
try {
|
|
181
190
|
const refreshed = await refreshRelayRegistration({
|
|
182
191
|
licenseToken: license.token,
|
|
@@ -190,7 +199,7 @@ export async function runInstaller(argv) {
|
|
|
190
199
|
sseUrl: refreshed.sseUrl,
|
|
191
200
|
healthUrl: refreshed.healthUrl,
|
|
192
201
|
};
|
|
193
|
-
refreshSpinner.stop(color.green("
|
|
202
|
+
refreshSpinner.stop(color.green("Connection ready"));
|
|
194
203
|
await writeRelayCredentials({
|
|
195
204
|
deviceId: cachedRelay.deviceId,
|
|
196
205
|
relayDeviceToken: cachedRelay.relayDeviceToken,
|
|
@@ -203,18 +212,19 @@ export async function runInstaller(argv) {
|
|
|
203
212
|
});
|
|
204
213
|
}
|
|
205
214
|
catch (error) {
|
|
206
|
-
|
|
215
|
+
await appendInstallLog("WARN", `relay_refresh_failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
216
|
+
refreshSpinner.stop(color.dim("Setting up a fresh connection..."));
|
|
207
217
|
relay = null;
|
|
208
218
|
}
|
|
209
219
|
}
|
|
210
220
|
if (!relay) {
|
|
211
221
|
const provisionSpinner = clack.spinner();
|
|
212
|
-
provisionSpinner.start("
|
|
222
|
+
provisionSpinner.start("Connecting your Mac...");
|
|
213
223
|
relay = await provisionRelayDevice({
|
|
214
224
|
licenseToken: license.token,
|
|
215
225
|
port: options.port,
|
|
216
226
|
});
|
|
217
|
-
provisionSpinner.stop(color.green(
|
|
227
|
+
provisionSpinner.stop(color.green("Connected"));
|
|
218
228
|
await writeRelayCredentials({
|
|
219
229
|
deviceId: relay.deviceId,
|
|
220
230
|
relayDeviceToken: relay.relayDeviceToken,
|
|
@@ -283,11 +293,6 @@ export async function runInstaller(argv) {
|
|
|
283
293
|
await writeSetupManifest(manifest);
|
|
284
294
|
const hasRemoteRelay = !options.skipTunnel && remoteMcpUrl.startsWith("https://");
|
|
285
295
|
const serverEntry = join(dirname(fileURLToPath(import.meta.url)), "..", "index.js");
|
|
286
|
-
showSuccessOutro({
|
|
287
|
-
blockedCount: domains.length,
|
|
288
|
-
remoteMcpUrl,
|
|
289
|
-
authToken: mcpAuthToken,
|
|
290
|
-
});
|
|
291
296
|
if (!options.nonInteractive) {
|
|
292
297
|
const installedBackground = await promptBackgroundService({
|
|
293
298
|
port: options.port,
|
|
@@ -309,15 +314,13 @@ export async function runInstaller(argv) {
|
|
|
309
314
|
publicTunnelVerified: installedBackground ? true : publicTunnelVerified,
|
|
310
315
|
});
|
|
311
316
|
}
|
|
317
|
+
showSuccessOutro({
|
|
318
|
+
blockedCount: domains.length,
|
|
319
|
+
remoteMcpUrl,
|
|
320
|
+
authToken: mcpAuthToken,
|
|
321
|
+
});
|
|
312
322
|
if (installedBackground) {
|
|
313
|
-
|
|
314
|
-
`LockIn MCP runs in the background on port ${options.port}.`,
|
|
315
|
-
"Site blocks persist across restarts.",
|
|
316
|
-
];
|
|
317
|
-
if (hasRemoteRelay) {
|
|
318
|
-
lines.push(`Remote URL: ${remoteMcpUrl}`);
|
|
319
|
-
}
|
|
320
|
-
clack.outro(color.dim(lines.join(" · ")));
|
|
323
|
+
clack.outro(color.dim(`LockIn MCP runs in the background on port ${options.port}. Credentials: ${DATA_DIR_DISPLAY}/setup-manifest.json`));
|
|
321
324
|
process.exit(0);
|
|
322
325
|
}
|
|
323
326
|
}
|
|
@@ -338,7 +341,7 @@ export async function runInstaller(argv) {
|
|
|
338
341
|
}
|
|
339
342
|
}
|
|
340
343
|
if (hasRemoteRelay) {
|
|
341
|
-
clack.outro(color.dim("
|
|
344
|
+
clack.outro(color.dim("LockIn is running. Turn on background mode next time to close this window."));
|
|
342
345
|
}
|
|
343
346
|
else {
|
|
344
347
|
clack.outro(color.dim("Keep this terminal open · Ctrl+C to stop"));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/installer/run.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/installer/run.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AACxC,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACpG,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,iCAAiC,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EACL,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AACtF,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EACzB,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,gBAAgB,GACjB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,SAAS,kBAAkB,CAAC,QAAiB;IAC3C,OAAO,QAAQ,IAAI,OAAO,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;AAC9D,CAAC;AAED,SAAS,cAAc,CAAC,MAIvB;IACC,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAClD,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,GAAG,CAAC,kBAAkB,GAAG,MAAM,CAAC,SAAS,CAAC;IAC5C,CAAC;IACD,GAAG,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAExC,MAAM,WAAW,GAAG,IAAI,CACtB,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EACvC,IAAI,EACJ,UAAU,CACX,CAAC;IAEF,MAAM,KAAK,GAAG,KAAK,CACjB,OAAO,CAAC,QAAQ,EAChB,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EACtD;QACE,GAAG;QACH,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;KAClC,CACF,CAAC;IAEF,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;QAC5B,+CAA+C;IACjD,CAAC,CAAC,CAAC;IACH,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;QAC5B,+CAA+C;IACjD,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,MAW/B;IAMC,MAAM,WAAW,GAAG,oBAAoB,MAAM,CAAC,IAAI,EAAE,CAAC;IAEtD,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QAC9B,OAAO;YACL,YAAY,EAAE,WAAW;YACzB,oBAAoB,EAAE,KAAK;SAC5B,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC7B,MAAM,IAAI,YAAY,CACpB,oEAAoE,EACpE,2BAA2B,CAC5B,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC,SAAS;QAClD,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;QAC5D,CAAC,CAAC,GAAG,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;IAExG,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;IACtC,aAAa,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC9C,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAAC;QAC5C,aAAa,EAAE,UAAU;QACzB,SAAS,EAAE,MAAM,CAAC,YAAY;QAC9B,QAAQ,EAAE,EAAE;QACZ,OAAO,EAAE,IAAI;KACd,CAAC,CAAC;IAEH,IAAI,YAAY,CAAC,QAAQ,IAAI,YAAY,CAAC,KAAK,EAAE,CAAC;QAChD,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAC3D,CAAC;SAAM,CAAC;QACN,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,YAAY,GAChB,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC;IAEtE,OAAO;QACL,YAAY;QACZ,aAAa,EAAE,MAAM,CAAC,gBAAgB,CAAC,QAAQ;QAC/C,QAAQ,EAAE,MAAM,CAAC,gBAAgB,CAAC,QAAQ;QAC1C,oBAAoB,EAAE,YAAY,CAAC,QAAQ,IAAI,YAAY,CAAC,KAAK;KAClE,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAc;IAC/C,MAAM,sBAAsB,EAAE,CAAC;IAE/B,IAAI,CAAC;QACH,OAAO,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,IAAc;IAC7C,gBAAgB,EAAE,CAAC;IAEnB,MAAM,iBAAiB,EAAE,CAAC;IAC1B,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;IAElC,IAAI,QAAQ,CAAC,EAAE,KAAK,aAAa,EAAE,CAAC;QAClC,MAAM,IAAI,YAAY,CACpB,4CAA4C,EAC5C,yBAAyB,QAAQ,CAAC,IAAI,EAAE,CACzC,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC;QAC/B,MAAM,IAAI,YAAY,CACpB,8CAA8C,EAC9C,yDAAyD,CAC1D,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,OAAoB,CAAC;IAEzB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;QAC3B,OAAO,GAAG,MAAM,cAAc,CAAC;YAC7B,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,eAAe,EAAE,OAAO,CAAC,eAAe;SACzC,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,aAAa,GAAG,MAAM,yBAAyB,CAAC,OAAO,CAAC,CAAC;QAC/D,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC;QAChC,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC;QAEhC,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,GAAG,KAAK,CAAC;IAClB,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QAC3B,MAAM,IAAI,YAAY,CACpB,+DAA+D,EAC/D,sBAAsB,CACvB,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,IAAI,YAAY,CACpB,kEAAkE,EAClE,gCAAgC,MAAM,CAAC,KAAK,IAAI,eAAe,EAAE,CAClE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAEjD,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7C,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,iBAAiB,EAAE,CAAC,CAAC;QAC/C,IAAI,SAAS,EAAE,CAAC;YACd,KAAK,CAAC,GAAG,CAAC,IAAI,CACZ,0DAA0D;gBACxD,KAAK,CAAC,GAAG,CACP,6EAA6E,CAC9E,CACJ,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACxD,IAAI,YAAY,EAAE,CAAC;YACjB,YAAY,CAAC,KAAK,CAAC,YAAY,OAAO,CAAC,MAAM,aAAa,CAAC,CAAC;QAC9D,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;YAC3C,IAAI,YAAY,EAAE,CAAC;gBACjB,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACjD,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACpC,CAAC;YAED,IACE,CAAC,OAAO,CAAC,cAAc;gBACvB,SAAS;gBACT,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAC3C,CAAC;gBACD,MAAM,yBAAyB,EAAE,CAAC;YACpC,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,YAAY,EAAE,CAAC;gBACjB,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC,CAAC;YAC9D,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,kBAAkB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAE9D,MAAM,iCAAiC,EAAE,CAAC;IAC1C,MAAM,iBAAiB,GAAG,MAAM,wBAAwB,EAAE,CAAC;IAC3D,IAAI,iBAAiB,EAAE,CAAC;QACtB,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,YAAY,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,YAAY,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC;YAClC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;YACvD,MAAM,gBAAgB,CACpB,MAAM,EACN,gBAAgB,OAAO,CAAC,IAAI,OAAO,YAAY,KAAK,YAAY,GAAG,CACpE,CAAC;YACF,OAAO,CAAC,IAAI,GAAG,YAAY,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,oBAAoB,OAAO,CAAC,IAAI,EAAE,CAAC;IAEvD,IAAI,gBASS,CAAC;IACd,IAAI,QAAuC,CAAC;IAE5C,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACzC,MAAM,WAAW,GAAG,MAAM,oBAAoB,EAAE,CAAC;QACjD,MAAM,UAAU,GACd,WAAW,IAAI,yBAAyB,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAEtE,IAAI,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAEpE,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;YACvC,cAAc,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;YACjD,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,MAAM,wBAAwB,CAAC;oBAC/C,YAAY,EAAE,OAAO,CAAC,KAAK;oBAC3B,IAAI,EAAE,OAAO,CAAC,IAAI;iBACnB,CAAC,CAAC;gBACH,KAAK,GAAG;oBACN,GAAG,sBAAsB,CAAC,WAAW,CAAC;oBACtC,QAAQ,EAAE,SAAS,CAAC,QAAQ;oBAC5B,eAAe,EAAE,SAAS,CAAC,eAAe;oBAC1C,MAAM,EAAE,SAAS,CAAC,MAAM;oBACxB,MAAM,EAAE,SAAS,CAAC,MAAM;oBACxB,SAAS,EAAE,SAAS,CAAC,SAAS;iBAC/B,CAAC;gBACF,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;gBACrD,MAAM,qBAAqB,CAAC;oBAC1B,QAAQ,EAAE,WAAW,CAAC,QAAQ;oBAC9B,gBAAgB,EAAE,WAAW,CAAC,gBAAgB;oBAC9C,QAAQ,EAAE,SAAS,CAAC,QAAQ;oBAC5B,eAAe,EAAE,SAAS,CAAC,eAAe;oBAC1C,MAAM,EAAE,SAAS,CAAC,MAAM;oBACxB,MAAM,EAAE,SAAS,CAAC,MAAM;oBACxB,SAAS,EAAE,SAAS,CAAC,SAAS;oBAC9B,SAAS,EAAE,OAAO,CAAC,IAAI;iBACxB,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,gBAAgB,CACpB,MAAM,EACN,yBAAyB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAClF,CAAC;gBACF,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC,CAAC;gBACnE,KAAK,GAAG,IAAI,CAAC;YACf,CAAC;QACH,CAAC;QAED,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;YACzC,gBAAgB,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;YACjD,KAAK,GAAG,MAAM,oBAAoB,CAAC;gBACjC,YAAY,EAAE,OAAO,CAAC,KAAK;gBAC3B,IAAI,EAAE,OAAO,CAAC,IAAI;aACnB,CAAC,CAAC;YACH,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;YAChD,MAAM,qBAAqB,CAAC;gBAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;gBACxC,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,eAAe,EAAE,KAAK,CAAC,eAAe;gBACtC,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,SAAS,EAAE,OAAO,CAAC,IAAI;aACxB,CAAC,CAAC;QACL,CAAC;QAED,gBAAgB,GAAG;YACjB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;YACxC,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,CAAC;QACF,MAAM,iCAAiC,EAAE,CAAC;QAC1C,QAAQ,GAAG,uBAAuB,CAChC;YACE,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;YACxC,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,SAAS,EAAE,OAAO,CAAC,IAAI;SACxB,EACD,YAAY,CACb,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;IACnC,UAAU,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAE3C,MAAM,UAAU,GAAG,cAAc,CAAC;QAChC,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,SAAS,EAAE,YAAY;QACvB,QAAQ;KACT,CAAC,CAAC;IAEH,MAAM,WAAW,CAAC,GAAG,WAAW,SAAS,CAAC,CAAC;IAC3C,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAEjD,MAAM,WAAW,GAAG,MAAM,gBAAgB,CAAC;QACzC,OAAO;QACP,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,YAAY;QACZ,gBAAgB;KACjB,CAAC,CAAC;IAEH,MAAM,EACJ,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,oBAAoB,GACrB,GAAG,WAAW,CAAC;IAEhB,MAAM,YAAY,GAAG,gBAAgB,EAAE,MAAM,IAAI,GAAG,YAAY,MAAM,CAAC;IACvE,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,QAAQ;QAChC,CAAC,CAAC,aAAa,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;QAC/C,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,QAAQ,GAAkB;QAC9B,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACrC,QAAQ,EAAE,QAAQ,CAAC,EAAE;QACrB,WAAW,EAAE,OAAO,CAAC,IAAI;QACzB,cAAc,EAAE,OAAO;QACvB,WAAW;QACX,YAAY,EAAE,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;QAChD,YAAY;QACZ,kBAAkB,EAAE,QAAQ,EAAE,cAAc;QAC5C,aAAa,EAAE,sBAAsB;QACrC,aAAa;QACb,QAAQ;KACT,CAAC;IAEF,MAAM,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAEnC,MAAM,cAAc,GAClB,CAAC,OAAO,CAAC,UAAU,IAAI,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAE7D,MAAM,WAAW,GAAG,IAAI,CACtB,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EACvC,IAAI,EACJ,UAAU,CACX,CAAC;IAEF,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QAC5B,MAAM,mBAAmB,GAAG,MAAM,uBAAuB,CAAC;YACxD,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,SAAS,EAAE,YAAY;YACvB,WAAW;YACX,QAAQ,EAAE,gBAAgB,EAAE,eAAe,IAAI,gBAAgB,EAAE,QAAQ;YACzE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ;YACpC,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB;SACrD,CAAC,CAAC;QAEH,IAAI,mBAAmB,EAAE,CAAC;YACxB,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC3B,MAAM,WAAW,CAAC,GAAG,WAAW,SAAS,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,kBAAkB,CAAC;gBACvB,YAAY;gBACZ,kBAAkB,EAAE,QAAQ,EAAE,cAAc,IAAI,EAAE;gBAClD,SAAS,EAAE,YAAY;gBACvB,oBAAoB,EAAE,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB;aACxE,CAAC,CAAC;QACL,CAAC;QAED,gBAAgB,CAAC;YACf,YAAY,EAAE,OAAO,CAAC,MAAM;YAC5B,YAAY;YACZ,SAAS,EAAE,YAAY;SACxB,CAAC,CAAC;QAEH,IAAI,mBAAmB,EAAE,CAAC;YACxB,KAAK,CAAC,KAAK,CACT,KAAK,CAAC,GAAG,CACP,6CAA6C,OAAO,CAAC,IAAI,kBAAkB,gBAAgB,sBAAsB,CAClH,CACF,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;SAAM,IAAI,gBAAgB,EAAE,CAAC;QAC5B,MAAM,mBAAmB,GAAG,MAAM,wBAAwB,CAAC;YACzD,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,SAAS,EAAE,YAAY;YACvB,WAAW;YACX,QAAQ,EAAE,gBAAgB,CAAC,eAAe,IAAI,gBAAgB,CAAC,QAAQ;YACvE,QAAQ,EAAE,gBAAgB,CAAC,QAAQ;YACnC,gBAAgB,EAAE,gBAAgB,CAAC,gBAAgB;SACpD,CAAC,CAAC;QAEH,IAAI,mBAAmB,EAAE,CAAC;YACxB,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC3B,MAAM,WAAW,CAAC,GAAG,WAAW,SAAS,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;YACpD,KAAK,CAAC,KAAK,CACT,KAAK,CAAC,GAAG,CACP,6CAA6C,OAAO,CAAC,IAAI,iBAAiB,YAAY,EAAE,CACzF,CACF,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,IAAI,cAAc,EAAE,CAAC;QACnB,KAAK,CAAC,KAAK,CACT,KAAK,CAAC,GAAG,CAAC,4EAA4E,CAAC,CACxF,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,QAAQ,GAAG,GAAS,EAAE;QAC1B,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAEhC,OAAO,MAAM,IAAI,OAAO,CAAQ,GAAG,EAAE;QACnC,sCAAsC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../../src/installer/tui.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../../src/installer/tui.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAqB9C,wBAAgB,SAAS,IAAI,IAAI,CAKhC;AA6CD,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC;IAAE,OAAO,EAAE,gBAAgB,CAAC;IAAC,OAAO,EAAE,WAAW,CAAA;CAAE,CAAC,CAqD9D;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAwClC;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE;IACvC,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,IAAI,CAqBP"}
|
package/dist/installer/tui.js
CHANGED
|
@@ -4,7 +4,9 @@ import { APP_NAME } from "../brand.js";
|
|
|
4
4
|
import { getAppUrl } from "../config.js";
|
|
5
5
|
import { defaultSelectedPresetIds, SITE_PRESETS, } from "./presets.js";
|
|
6
6
|
import { verifyViaBrowserLogin, verifyLicenseKey, loadCachedLicense, } from "./license.js";
|
|
7
|
+
import { DATA_DIR_DISPLAY } from "./data-dir.js";
|
|
7
8
|
import { clearScreen } from "./tty.js";
|
|
9
|
+
import { getConnectorsDocsUrl } from "./agent-instructions.js";
|
|
8
10
|
function parseList(value) {
|
|
9
11
|
return value
|
|
10
12
|
.split(",")
|
|
@@ -72,7 +74,7 @@ export async function resolveLicenseInteractive(options) {
|
|
|
72
74
|
return { options, license };
|
|
73
75
|
}
|
|
74
76
|
const cached = await loadCachedLicense();
|
|
75
|
-
if (cached?.tier === "pro") {
|
|
77
|
+
if (cached?.tier === "pro" && cached.token) {
|
|
76
78
|
clack.log.success(`Using saved license${cached.email ? ` (${cached.email})` : ""}`);
|
|
77
79
|
return { options, license: cached };
|
|
78
80
|
}
|
|
@@ -141,9 +143,9 @@ export function showSuccessOutro(params) {
|
|
|
141
143
|
if (hasRemoteRelay && params.remoteMcpUrl) {
|
|
142
144
|
lines.push(`${color.green("▸")} Remote URL: ${params.remoteMcpUrl}`);
|
|
143
145
|
}
|
|
144
|
-
lines.push("", color.dim(
|
|
146
|
+
lines.push("", color.dim(`Setup guide: ${getConnectorsDocsUrl()}`));
|
|
145
147
|
if (params.authToken) {
|
|
146
|
-
lines.push("", color.dim(
|
|
148
|
+
lines.push("", color.dim(`Credentials are saved in ${DATA_DIR_DISPLAY}/setup-manifest.json`));
|
|
147
149
|
}
|
|
148
150
|
clack.note(lines.join("\n"), "Done");
|
|
149
151
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tui.js","sourceRoot":"","sources":["../../src/installer/tui.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AACxC,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EACL,wBAAwB,EACxB,YAAY,GACb,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"tui.js","sourceRoot":"","sources":["../../src/installer/tui.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tunnel.d.ts","sourceRoot":"","sources":["../../src/installer/tunnel.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tunnel.d.ts","sourceRoot":"","sources":["../../src/installer/tunnel.ts"],"names":[],"mappings":"AAMA,wBAAsB,WAAW,CAC/B,GAAG,EAAE,MAAM,EACX,QAAQ,SAAK,EACb,OAAO,SAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAef;AAED,wBAAsB,kBAAkB,CAAC,MAAM,EAAE;IAC/C,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CA+EjE"}
|
package/dist/installer/tunnel.js
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
|
+
import { isLocalhostUrl, localHttpRequest } from "../local-http.js";
|
|
1
2
|
function sleep(ms) {
|
|
2
3
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
3
4
|
}
|
|
4
5
|
export async function waitForHttp(url, attempts = 30, delayMs = 500) {
|
|
5
6
|
for (let attempt = 0; attempt < attempts; attempt += 1) {
|
|
6
7
|
try {
|
|
7
|
-
const response =
|
|
8
|
+
const response = isLocalhostUrl(url)
|
|
9
|
+
? await localHttpRequest(url, { timeoutMs: 5_000 })
|
|
10
|
+
: await fetch(url);
|
|
8
11
|
if (response.ok) {
|
|
9
12
|
return;
|
|
10
13
|
}
|
|
@@ -41,7 +44,9 @@ export async function verifyPublicTunnel(params) {
|
|
|
41
44
|
"Relay is up but your Mac is not connected. Keep the installer running until this step passes.";
|
|
42
45
|
}
|
|
43
46
|
else {
|
|
44
|
-
healthOk =
|
|
47
|
+
healthOk =
|
|
48
|
+
health.ok &&
|
|
49
|
+
(healthBody.service === "lockin-mcp" || healthBody.status === "ok");
|
|
45
50
|
if (!health.ok) {
|
|
46
51
|
detail = `GET /health returned ${health.status}`;
|
|
47
52
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tunnel.js","sourceRoot":"","sources":["../../src/installer/tunnel.ts"],"names":[],"mappings":"AAAA,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,GAAW,EACX,QAAQ,GAAG,EAAE,EACb,OAAO,GAAG,GAAG;IAEb,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,QAAQ,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;QACvD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"tunnel.js","sourceRoot":"","sources":["../../src/installer/tunnel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpE,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,GAAW,EACX,QAAQ,GAAG,EAAE,EACb,OAAO,GAAG,GAAG;IAEb,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,QAAQ,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;QACvD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC;gBAClC,CAAC,CAAC,MAAM,gBAAgB,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;gBACnD,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YACrB,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;gBAChB,OAAO;YACT,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,QAAQ;QACV,CAAC;QACD,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,mCAAmC,GAAG,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,MAKxC;IACC,MAAM,IAAI,GAAG,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACrD,MAAM,OAAO,GAAgB,MAAM,CAAC,SAAS;QAC3C,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,MAAM,CAAC,SAAS,EAAE,EAAE;QACjD,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC;IAEvC,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,QAAQ,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;QACvD,QAAQ,GAAG,KAAK,CAAC;QACjB,KAAK,GAAG,KAAK,CAAC;QACd,MAAM,GAAG,EAAE,CAAC;QAEZ,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,SAAS,EAAE;gBAC3C,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;aACpC,CAAC,CAAC;YACH,MAAM,UAAU,GAAG,CAAC,MAAM,MAAM,CAAC,IAAI,EAAE,CAItC,CAAC;YACF,IAAI,UAAU,CAAC,KAAK,KAAK,gBAAgB,EAAE,CAAC;gBAC1C,QAAQ,GAAG,KAAK,CAAC;gBACjB,MAAM;oBACJ,+FAA+F,CAAC;YACpG,CAAC;iBAAM,CAAC;gBACN,QAAQ;oBACN,MAAM,CAAC,EAAE;wBACT,CAAC,UAAU,CAAC,OAAO,KAAK,YAAY,IAAI,UAAU,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC;gBACtE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;oBACf,MAAM,GAAG,wBAAwB,MAAM,CAAC,MAAM,EAAE,CAAC;gBACnD,CAAC;qBAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACrB,MAAM;wBACJ,6CAA6C,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC;gBAChF,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM;gBACJ,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,uCAAuC,CAAC;QACrF,CAAC;QAED,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,MAAM,EAAE;oBACrC,MAAM,EAAE,KAAK;oBACb,OAAO;oBACP,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;iBACpC,CAAC,CAAC;gBACH,KAAK,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC;gBAC3D,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oBAC9C,MAAM,GAAG,qBAAqB,GAAG,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;gBACtD,CAAC;qBAAM,CAAC;oBACN,MAAM,GAAG,6CAA6C,CAAC;gBACzD,CAAC;gBACD,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YAClD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM;oBACJ,KAAK,YAAY,KAAK;wBACpB,CAAC,CAAC,KAAK,CAAC,OAAO;wBACf,CAAC,CAAC,oCAAoC,CAAC;YAC7C,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC;YACtB,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QACrC,CAAC;QAED,IAAI,OAAO,GAAG,QAAQ,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AACrC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** Error with a clean user message and optional technical detail for install.log only. */
|
|
2
|
+
export declare class InstallError extends Error {
|
|
3
|
+
readonly technicalDetail?: string;
|
|
4
|
+
constructor(userMessage: string, technicalDetail?: string);
|
|
5
|
+
}
|
|
6
|
+
export declare function toUserInstallMessage(error: unknown): string;
|
|
7
|
+
export declare function toTechnicalDetail(error: unknown): string;
|
|
8
|
+
//# sourceMappingURL=user-errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-errors.d.ts","sourceRoot":"","sources":["../../src/installer/user-errors.ts"],"names":[],"mappings":"AAEA,0FAA0F;AAC1F,qBAAa,YAAa,SAAQ,KAAK;IACrC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;gBAEtB,WAAW,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM;CAK1D;AAKD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAmD3D;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAQxD"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { CANONICAL_ORIGIN } from "../brand.js";
|
|
2
|
+
/** Error with a clean user message and optional technical detail for install.log only. */
|
|
3
|
+
export class InstallError extends Error {
|
|
4
|
+
technicalDetail;
|
|
5
|
+
constructor(userMessage, technicalDetail) {
|
|
6
|
+
super(userMessage);
|
|
7
|
+
this.name = "InstallError";
|
|
8
|
+
this.technicalDetail = technicalDetail ?? userMessage;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
const TECHNICAL_PATTERN = /MDB_|REGISTRATION|Convex|not configured|Relay registration|Relay provision|Unexpected end of JSON|fetch failed|ENOTFOUND|ECONNREFUSED|ETIMEDOUT|status\)|\/api\/v1/i;
|
|
12
|
+
export function toUserInstallMessage(error) {
|
|
13
|
+
if (error instanceof InstallError) {
|
|
14
|
+
return error.message;
|
|
15
|
+
}
|
|
16
|
+
if (!(error instanceof Error)) {
|
|
17
|
+
return "Setup didn't finish. Please try again.";
|
|
18
|
+
}
|
|
19
|
+
const msg = error.message;
|
|
20
|
+
if (msg === "fetch failed" || /ENOTFOUND|ECONNREFUSED|ETIMEDOUT/i.test(msg)) {
|
|
21
|
+
return "We couldn't reach LockIn. Check your internet connection and try again.";
|
|
22
|
+
}
|
|
23
|
+
if (msg.includes("Unexpected end of JSON")) {
|
|
24
|
+
return "Something went wrong on our end. Wait a minute and try again.";
|
|
25
|
+
}
|
|
26
|
+
if (/invalid or expired token/i.test(msg)) {
|
|
27
|
+
return "Your sign-in expired. Run install again and sign in when prompted.";
|
|
28
|
+
}
|
|
29
|
+
if (/pro license required/i.test(msg)) {
|
|
30
|
+
return `LockIn Pro is required. Sign in at ${CANONICAL_ORIGIN} to continue.`;
|
|
31
|
+
}
|
|
32
|
+
if (/license verification failed/i.test(msg)) {
|
|
33
|
+
return "We couldn't verify your license. Sign in again at lockinmcp.com.";
|
|
34
|
+
}
|
|
35
|
+
if (TECHNICAL_PATTERN.test(msg)) {
|
|
36
|
+
if (/relay|tunnel|provision|connection/i.test(msg)) {
|
|
37
|
+
return "We couldn't connect your Mac to LockIn. Try running install again.";
|
|
38
|
+
}
|
|
39
|
+
return "Something went wrong. Wait a minute and try again.";
|
|
40
|
+
}
|
|
41
|
+
if (msg.includes("No free port")) {
|
|
42
|
+
return "Couldn't find an open port for LockIn. Quit other LockIn instances and try again.";
|
|
43
|
+
}
|
|
44
|
+
if (msg.includes("Cancelled") || msg === "Cancelled.") {
|
|
45
|
+
return msg;
|
|
46
|
+
}
|
|
47
|
+
if (msg.length <= 100 && !msg.includes("http") && !msg.includes("_")) {
|
|
48
|
+
return msg;
|
|
49
|
+
}
|
|
50
|
+
return "Setup didn't finish. Try again, or visit lockinmcp.com/report for help.";
|
|
51
|
+
}
|
|
52
|
+
export function toTechnicalDetail(error) {
|
|
53
|
+
if (error instanceof InstallError) {
|
|
54
|
+
return error.technicalDetail ?? error.message;
|
|
55
|
+
}
|
|
56
|
+
if (error instanceof Error) {
|
|
57
|
+
return error.message;
|
|
58
|
+
}
|
|
59
|
+
return String(error);
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=user-errors.js.map
|