perplexity-user-mcp 0.8.39 → 0.8.44
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 +5 -0
- package/dist/attachments.d.ts +10 -20
- package/dist/browser-window.d.ts +1 -0
- package/dist/cf-warmup.d.ts +32 -0
- package/dist/checks/browser.d.ts +12 -100
- package/dist/checks/config.d.ts +25 -91
- package/dist/checks/ide.d.ts +31 -89
- package/dist/checks/mcp.d.ts +12 -61
- package/dist/checks/native-deps.d.ts +46 -131
- package/dist/checks/network.d.ts +13 -71
- package/dist/checks/probe.d.ts +20 -92
- package/dist/checks/profiles.d.ts +13 -99
- package/dist/checks/profiles.mjs +35 -0
- package/dist/checks/runtime.d.ts +24 -89
- package/dist/checks/vault.d.ts +13 -142
- package/dist/checks/vault.mjs +6 -11
- package/dist/{chunk-T6ARJK2P.mjs → chunk-2B5OQUXR.mjs} +6 -6
- package/dist/{chunk-2FPGJKCA.mjs → chunk-2EE7MNP2.mjs} +2 -2
- package/dist/{chunk-NJX4RBO6.mjs → chunk-2OVLCZHU.mjs} +28 -3
- package/dist/{chunk-WDIW33DA.mjs → chunk-3LUO5ATM.mjs} +1 -1
- package/dist/{chunk-B65IJQZJ.mjs → chunk-6E6XTHTG.mjs} +1 -1
- package/dist/{chunk-S677V2JU.mjs → chunk-C5I7KXHK.mjs} +32 -2
- package/dist/{chunk-TDXETAQT.mjs → chunk-DKEJZ4FI.mjs} +1 -1
- package/dist/{chunk-U7QPUNRH.mjs → chunk-DXR6EEZH.mjs} +26 -7
- package/dist/{chunk-HJIXH6CL.mjs → chunk-E3GRJXXJ.mjs} +2 -0
- package/dist/{chunk-RK4EBZJ3.mjs → chunk-E75J42W5.mjs} +11 -8
- package/dist/{chunk-452DK6OS.mjs → chunk-FNHYUE22.mjs} +2 -2
- package/dist/{chunk-D254EFYB.mjs → chunk-GBI2U336.mjs} +1 -1
- package/dist/chunk-GPUGKWXH.mjs +17 -0
- package/dist/{chunk-HNSPNCFH.mjs → chunk-KSNV3ZVY.mjs} +1 -1
- package/dist/{chunk-XTRJSV72.mjs → chunk-LGH5BSUY.mjs} +1 -1
- package/dist/{chunk-KJFX2ZXR.mjs → chunk-NMKNEEZB.mjs} +1 -1
- package/dist/{chunk-FKQ3HP4Q.mjs → chunk-TIWHN4IW.mjs} +1 -1
- package/dist/{chunk-V4U3JM4R.mjs → chunk-TSLRTZYR.mjs} +1 -1
- package/dist/{chunk-DQQISMYN.mjs → chunk-V4LHDNWJ.mjs} +2 -2
- package/dist/{chunk-C3HPFFTD.mjs → chunk-WHVJ724K.mjs} +84 -44
- package/dist/cli.d.ts +14 -1298
- package/dist/cli.mjs +35 -27
- package/dist/client.d.ts +27 -24
- package/dist/client.mjs +6 -6
- package/dist/cloud-sync.d.ts +65 -42
- package/dist/cloud-sync.mjs +8 -8
- package/dist/config.d.ts +35 -39
- package/dist/config.mjs +3 -3
- package/dist/cookie-jar.d.ts +77 -0
- package/dist/daemon/attach.d.ts +10 -11
- package/dist/daemon/attach.mjs +19 -17
- package/dist/daemon/audit.d.ts +5 -7
- package/dist/daemon/audit.mjs +2 -2
- package/dist/daemon/client-http.d.ts +10 -16
- package/dist/daemon/client-http.mjs +17 -17
- package/dist/daemon/index.d.ts +17 -14
- package/dist/daemon/index.mjs +18 -18
- package/dist/daemon/install-tunnel.d.ts +8 -34
- package/dist/daemon/install-tunnel.mjs +2 -2
- package/dist/daemon/launcher.d.ts +24 -29
- package/dist/daemon/launcher.mjs +16 -16
- package/dist/daemon/local-tokens.d.ts +23 -0
- package/dist/daemon/lockfile.d.ts +10 -12
- package/dist/daemon/lockfile.mjs +2 -2
- package/dist/daemon/oauth-consent-cache.d.ts +86 -0
- package/dist/daemon/oauth-provider.d.ts +132 -0
- package/dist/daemon/public-pages.d.ts +9 -0
- package/dist/daemon/security.d.ts +52 -0
- package/dist/daemon/server.d.ts +12 -83
- package/dist/daemon/server.mjs +11 -11
- package/dist/daemon/token.d.ts +7 -9
- package/dist/daemon/token.mjs +2 -2
- package/dist/daemon/tunnel-providers/cloudflared-named-setup.d.ts +140 -0
- package/dist/daemon/tunnel-providers/cloudflared-named.d.ts +45 -0
- package/dist/daemon/tunnel-providers/cloudflared-quick.d.ts +8 -0
- package/dist/daemon/tunnel-providers/index.d.ts +16 -327
- package/dist/daemon/tunnel-providers/index.mjs +3 -3
- package/dist/daemon/tunnel-providers/ngrok-config.d.ts +18 -0
- package/dist/daemon/tunnel-providers/ngrok.d.ts +68 -0
- package/dist/daemon/tunnel-providers/types.d.ts +56 -0
- package/dist/daemon/tunnel.d.ts +5 -7
- package/dist/debug-tracer.d.ts +2 -0
- package/dist/doctor-report.d.ts +17 -22
- package/dist/doctor.d.ts +12 -44
- package/dist/doctor.mjs +2 -2
- package/dist/export.d.ts +11 -18
- package/dist/export.mjs +4 -4
- package/dist/format.d.ts +52 -0
- package/dist/fs-utils.d.ts +8 -0
- package/dist/health-check.d.ts +1 -108
- package/dist/health-check.mjs +3 -3
- package/dist/history-store.d.ts +29 -65
- package/dist/history-store.mjs +2 -2
- package/dist/impit-login-runner.d.ts +1 -469
- package/dist/impit-login-runner.mjs +4 -4
- package/dist/index.d.ts +25 -149
- package/dist/index.mjs +22 -20
- package/dist/is-main-module.d.ts +9 -0
- package/dist/login-runner.d.ts +1 -333
- package/dist/login-runner.mjs +13 -13
- package/dist/login.d.ts +5 -0
- package/dist/logout.d.ts +2 -28
- package/dist/logout.mjs +3 -2
- package/dist/manual-login-runner.d.ts +1 -150
- package/dist/manual-login-runner.mjs +11 -11
- package/dist/{native-deps-IE4B55EL.mjs → native-deps-FCSYDL4W.mjs} +4 -4
- package/dist/native-deps.d.ts +36 -0
- package/dist/package-version.d.ts +1 -0
- package/dist/profiles.d.ts +41 -41
- package/dist/profiles.mjs +1 -1
- package/dist/prompts.d.ts +2 -0
- package/dist/redact.d.ts +14 -142
- package/dist/refresh.d.ts +11 -16
- package/dist/refresh.mjs +4 -4
- package/dist/reinit-watcher.d.ts +15 -24
- package/dist/reinit-watcher.mjs +2 -2
- package/dist/resources.d.ts +5 -0
- package/dist/safe-write.d.ts +16 -0
- package/dist/session-metadata.d.ts +45 -0
- package/dist/tool-config.d.ts +10 -0
- package/dist/tools.d.ts +23 -0
- package/dist/tty-prompt.d.ts +18 -34
- package/dist/vault.d.ts +114 -34
- package/dist/vault.mjs +6 -4
- package/dist/viewer-detect.d.ts +2 -4
- package/dist/viewers.d.ts +13 -18
- package/dist/viewers.mjs +1 -1
- package/package.json +3 -3
- package/dist/cloud-sync.d-Cqt6y18U.d.ts +0 -42
- package/dist/doctor.d-CXmUqOXX.d.ts +0 -43
- package/dist/history-store.d-BzjBF2m3.d.ts +0 -65
- package/dist/native-deps-BNThFHxa.d.ts +0 -175
- package/dist/profiles.d-DqS1oZWr.d.ts +0 -41
- package/dist/session-metadata-B9aV_n5g.d.ts +0 -148
- package/dist/vault.d-BSJWDLhp.d.ts +0 -37
- package/dist/viewer-detect.d-HWGnyFAA.d.ts +0 -4
- package/dist/viewers.d-BGCK6sw6.d.ts +0 -10
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
impitFetchJson,
|
|
3
3
|
isImpitAvailable
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-V4LHDNWJ.mjs";
|
|
5
5
|
import {
|
|
6
6
|
FORMAT_TO_CONTENT_TYPE,
|
|
7
7
|
exportThread,
|
|
8
8
|
resolveExportApiFormat
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-GBI2U336.mjs";
|
|
10
10
|
import {
|
|
11
11
|
ASI_ACCESS_ENDPOINT,
|
|
12
12
|
AUTH_SESSION_ENDPOINT,
|
|
@@ -18,15 +18,14 @@ import {
|
|
|
18
18
|
SUPPORTED_BLOCK_USE_CASES,
|
|
19
19
|
THREAD_ENDPOINT,
|
|
20
20
|
findBrowser,
|
|
21
|
-
getOrCreateContext,
|
|
22
21
|
getSavedCookies,
|
|
23
22
|
resolveBrowserExecutable
|
|
24
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-DXR6EEZH.mjs";
|
|
25
24
|
import {
|
|
26
25
|
getActiveName,
|
|
27
26
|
getConfigDir,
|
|
28
27
|
getProfilePaths
|
|
29
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-E3GRJXXJ.mjs";
|
|
30
29
|
|
|
31
30
|
// src/client.ts
|
|
32
31
|
import { randomUUID } from "crypto";
|
|
@@ -558,47 +557,55 @@ var PerplexityClient = class _PerplexityClient {
|
|
|
558
557
|
* Set env PERPLEXITY_HEADLESS_ONLY=1 to skip the headed phase (uses disk cache).
|
|
559
558
|
*/
|
|
560
559
|
async init() {
|
|
561
|
-
const
|
|
562
|
-
if (!existsSync(activePaths.browserData)) {
|
|
563
|
-
mkdirSync(activePaths.browserData, { recursive: true });
|
|
564
|
-
}
|
|
565
|
-
const browser = await resolveBrowserExecutable();
|
|
566
|
-
console.error(`[perplexity-mcp] Using ${browser.source}: ${browser.path}`);
|
|
567
|
-
const skipHeaded = process.env.PERPLEXITY_HEADLESS_ONLY === "1";
|
|
568
|
-
if (!skipHeaded) {
|
|
569
|
-
await this.headedBootstrap();
|
|
570
|
-
} else {
|
|
571
|
-
console.error("[perplexity-mcp] Skipping headed session (PERPLEXITY_HEADLESS_ONLY=1).");
|
|
572
|
-
this.loadCachedAccountInfo();
|
|
573
|
-
}
|
|
574
|
-
console.error("[perplexity-mcp] Launching headless browser...");
|
|
575
|
-
const launchOpts = buildLaunchOptions(true);
|
|
576
|
-
this.browser = await chromium.launch({
|
|
577
|
-
headless: launchOpts.headless,
|
|
578
|
-
args: launchOpts.args,
|
|
579
|
-
...launchOpts.executablePath ? { executablePath: launchOpts.executablePath } : {},
|
|
580
|
-
...launchOpts.channel ? { channel: launchOpts.channel } : {},
|
|
581
|
-
ignoreDefaultArgs: launchOpts.ignoreDefaultArgs
|
|
582
|
-
});
|
|
583
|
-
this.context = await getOrCreateContext(this.browser, {
|
|
584
|
-
viewport: launchOpts.viewport,
|
|
585
|
-
userAgent: launchOpts.userAgent
|
|
586
|
-
});
|
|
587
|
-
const saved = await getSavedCookies();
|
|
588
|
-
if (saved.length > 0) {
|
|
589
|
-
await this.context.addCookies(saved);
|
|
590
|
-
console.error(`[perplexity-mcp] Injected ${saved.length} saved cookies into browser context.`);
|
|
591
|
-
}
|
|
592
|
-
this.page = await this.context.newPage();
|
|
560
|
+
const _initAt = Date.now();
|
|
593
561
|
try {
|
|
594
|
-
|
|
595
|
-
|
|
562
|
+
const activePaths = getActivePaths();
|
|
563
|
+
if (!existsSync(activePaths.browserData)) {
|
|
564
|
+
mkdirSync(activePaths.browserData, { recursive: true });
|
|
565
|
+
}
|
|
566
|
+
const browser = await resolveBrowserExecutable();
|
|
567
|
+
console.error(`[perplexity-mcp] Using ${browser.source}: ${browser.path}`);
|
|
568
|
+
const skipHeaded = process.env.PERPLEXITY_HEADLESS_ONLY === "1";
|
|
569
|
+
if (!skipHeaded) {
|
|
570
|
+
await this.headedBootstrap();
|
|
571
|
+
} else {
|
|
572
|
+
console.error("[perplexity-mcp] Skipping headed session (PERPLEXITY_HEADLESS_ONLY=1).");
|
|
573
|
+
this.loadCachedAccountInfo();
|
|
574
|
+
}
|
|
575
|
+
console.error("[perplexity-mcp] Launching headless persistent browser...");
|
|
576
|
+
const launchOpts = buildLaunchOptions(true);
|
|
577
|
+
this.context = await chromium.launchPersistentContext(
|
|
578
|
+
activePaths.browserData,
|
|
579
|
+
launchOpts
|
|
580
|
+
);
|
|
581
|
+
this.browser = this.context.browser();
|
|
582
|
+
const saved = await getSavedCookies();
|
|
583
|
+
if (saved.length > 0) {
|
|
584
|
+
const current = await this.context.cookies();
|
|
585
|
+
const currentNames = new Set(current.map((c) => c.name));
|
|
586
|
+
const toInject = saved.filter((c) => !currentNames.has(c.name));
|
|
587
|
+
if (toInject.length > 0) {
|
|
588
|
+
await this.context.addCookies(toInject);
|
|
589
|
+
console.error(`[perplexity-mcp] Injected ${toInject.length} missing cookies from vault.`);
|
|
590
|
+
} else {
|
|
591
|
+
console.error("[perplexity-mcp] All vault cookies already present on disk; skipping injection.");
|
|
592
|
+
}
|
|
593
|
+
}
|
|
594
|
+
this.page = await this.context.newPage();
|
|
595
|
+
try {
|
|
596
|
+
await this.page.goto(PERPLEXITY_URL, { waitUntil: "domcontentloaded", timeout: 3e4 });
|
|
597
|
+
await this.page.waitForTimeout(2e3);
|
|
598
|
+
} catch (err) {
|
|
599
|
+
console.error("[perplexity-mcp] Navigation warning:", err.message);
|
|
600
|
+
}
|
|
601
|
+
await this.checkAuth();
|
|
602
|
+
if (!this.accountInfo.modelsConfig) {
|
|
603
|
+
await this.loadAccountInfo();
|
|
604
|
+
}
|
|
605
|
+
this.writeDaemonStatus(_initAt, null);
|
|
596
606
|
} catch (err) {
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
await this.checkAuth();
|
|
600
|
-
if (!this.accountInfo.modelsConfig) {
|
|
601
|
-
await this.loadAccountInfo();
|
|
607
|
+
this.writeDaemonStatus(_initAt, err instanceof Error ? err.message : String(err));
|
|
608
|
+
throw err;
|
|
602
609
|
}
|
|
603
610
|
}
|
|
604
611
|
/**
|
|
@@ -1935,6 +1942,39 @@ View at: ${PERPLEXITY_URL}/search/${threadSlug}`,
|
|
|
1935
1942
|
});
|
|
1936
1943
|
this.browser = null;
|
|
1937
1944
|
}
|
|
1945
|
+
this.authenticated = false;
|
|
1946
|
+
this.userId = null;
|
|
1947
|
+
this.writeDaemonStatus(Date.now(), null);
|
|
1948
|
+
}
|
|
1949
|
+
// ── Daemon status file ─────────────────────────────────────────────────────
|
|
1950
|
+
daemonTier() {
|
|
1951
|
+
if (!this.authenticated) return "Anonymous";
|
|
1952
|
+
if (this.accountInfo.isMax) return "Max";
|
|
1953
|
+
if (this.accountInfo.isPro) return "Pro";
|
|
1954
|
+
if (this.accountInfo.isEnterprise) return "Enterprise";
|
|
1955
|
+
return "Authenticated";
|
|
1956
|
+
}
|
|
1957
|
+
/**
|
|
1958
|
+
* Write daemon-status.json so the extension UI can show live auth state
|
|
1959
|
+
* instead of relying on the stale models-cache.json snapshot.
|
|
1960
|
+
* @param startedAt - Date.now() captured at the start of init/reinit
|
|
1961
|
+
* @param error - error message if init threw, null on success or shutdown
|
|
1962
|
+
*/
|
|
1963
|
+
writeDaemonStatus(startedAt, error) {
|
|
1964
|
+
try {
|
|
1965
|
+
const paths = getActivePaths();
|
|
1966
|
+
const status = {
|
|
1967
|
+
authenticated: this.authenticated,
|
|
1968
|
+
tier: this.daemonTier(),
|
|
1969
|
+
userId: this.userId,
|
|
1970
|
+
pid: process.pid,
|
|
1971
|
+
lastInit: (/* @__PURE__ */ new Date()).toISOString(),
|
|
1972
|
+
initDurationMs: Date.now() - startedAt,
|
|
1973
|
+
error
|
|
1974
|
+
};
|
|
1975
|
+
writeFileSync(paths.daemonStatus, JSON.stringify(status, null, 2) + "\n");
|
|
1976
|
+
} catch {
|
|
1977
|
+
}
|
|
1938
1978
|
}
|
|
1939
1979
|
};
|
|
1940
1980
|
|