@junctionpanel/server 0.1.31 → 0.1.33
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/dist/server/client/daemon-client.d.ts +5 -1
- package/dist/server/client/daemon-client.d.ts.map +1 -1
- package/dist/server/client/daemon-client.js +42 -0
- package/dist/server/client/daemon-client.js.map +1 -1
- package/dist/server/server/agent/agent-manager.d.ts +3 -0
- package/dist/server/server/agent/agent-manager.d.ts.map +1 -1
- package/dist/server/server/agent/agent-manager.js +88 -5
- package/dist/server/server/agent/agent-manager.js.map +1 -1
- package/dist/server/server/agent/agent-projections.d.ts.map +1 -1
- package/dist/server/server/agent/agent-projections.js +9 -2
- package/dist/server/server/agent/agent-projections.js.map +1 -1
- package/dist/server/server/agent/agent-sdk-types.d.ts +19 -3
- package/dist/server/server/agent/agent-sdk-types.d.ts.map +1 -1
- package/dist/server/server/agent/agent-sdk-types.js.map +1 -1
- package/dist/server/server/agent/agent-storage.d.ts +30 -30
- package/dist/server/server/agent/agent-storage.d.ts.map +1 -1
- package/dist/server/server/agent/agent-storage.js +33 -1
- package/dist/server/server/agent/agent-storage.js.map +1 -1
- package/dist/server/server/agent/codex-config.d.ts +12 -0
- package/dist/server/server/agent/codex-config.d.ts.map +1 -0
- package/dist/server/server/agent/codex-config.js +42 -0
- package/dist/server/server/agent/codex-config.js.map +1 -0
- package/dist/server/server/agent/mcp-server.js +8 -8
- package/dist/server/server/agent/mcp-server.js.map +1 -1
- package/dist/server/server/agent/provider-launch-config.d.ts +2 -2
- package/dist/server/server/agent/provider-launch-config.d.ts.map +1 -1
- package/dist/server/server/agent/provider-launch-config.js +32 -5
- package/dist/server/server/agent/provider-launch-config.js.map +1 -1
- package/dist/server/server/agent/provider-manifest.js +10 -10
- package/dist/server/server/agent/provider-manifest.js.map +1 -1
- package/dist/server/server/agent/providers/claude/model-catalog.d.ts +17 -25
- package/dist/server/server/agent/providers/claude/model-catalog.d.ts.map +1 -1
- package/dist/server/server/agent/providers/claude/model-catalog.js +228 -40
- package/dist/server/server/agent/providers/claude/model-catalog.js.map +1 -1
- package/dist/server/server/agent/providers/claude-agent.d.ts +2 -1
- package/dist/server/server/agent/providers/claude-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/claude-agent.js +201 -36
- package/dist/server/server/agent/providers/claude-agent.js.map +1 -1
- package/dist/server/server/agent/providers/codex-app-server-agent.d.ts +30 -1
- package/dist/server/server/agent/providers/codex-app-server-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/codex-app-server-agent.js +309 -49
- package/dist/server/server/agent/providers/codex-app-server-agent.js.map +1 -1
- package/dist/server/server/agent/providers/gemini-agent.d.ts +17 -5
- package/dist/server/server/agent/providers/gemini-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/gemini-agent.js +1040 -482
- package/dist/server/server/agent/providers/gemini-agent.js.map +1 -1
- package/dist/server/server/agent/providers/opencode-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/opencode-agent.js +1 -1
- package/dist/server/server/agent/providers/opencode-agent.js.map +1 -1
- package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts.map +1 -1
- package/dist/server/server/bootstrap.d.ts.map +1 -1
- package/dist/server/server/bootstrap.js +2 -1
- package/dist/server/server/bootstrap.js.map +1 -1
- package/dist/server/server/cli-runtime-exports.d.ts +2 -0
- package/dist/server/server/cli-runtime-exports.d.ts.map +1 -1
- package/dist/server/server/cli-runtime-exports.js +2 -0
- package/dist/server/server/cli-runtime-exports.js.map +1 -1
- package/dist/server/server/daemon-doctor.d.ts +4 -0
- package/dist/server/server/daemon-doctor.d.ts.map +1 -1
- package/dist/server/server/daemon-doctor.js +33 -12
- package/dist/server/server/daemon-doctor.js.map +1 -1
- package/dist/server/server/daemon-package-context.d.ts +10 -0
- package/dist/server/server/daemon-package-context.d.ts.map +1 -0
- package/dist/server/server/daemon-package-context.js +31 -0
- package/dist/server/server/daemon-package-context.js.map +1 -0
- package/dist/server/server/package-update.d.ts +32 -0
- package/dist/server/server/package-update.d.ts.map +1 -0
- package/dist/server/server/package-update.js +196 -0
- package/dist/server/server/package-update.js.map +1 -0
- package/dist/server/server/session.d.ts +1 -0
- package/dist/server/server/session.d.ts.map +1 -1
- package/dist/server/server/session.js +49 -16
- package/dist/server/server/session.js.map +1 -1
- package/dist/server/shared/messages.d.ts +2150 -1786
- package/dist/server/shared/messages.d.ts.map +1 -1
- package/dist/server/shared/messages.js +36 -1
- package/dist/server/shared/messages.js.map +1 -1
- package/package.json +3 -2
|
@@ -5,8 +5,9 @@ import path from "node:path";
|
|
|
5
5
|
import { promisify } from "node:util";
|
|
6
6
|
import { CodexAppServerAgentClient } from "./agent/providers/codex-app-server-agent.js";
|
|
7
7
|
import { applyProviderEnv } from "./agent/provider-launch-config.js";
|
|
8
|
-
import {
|
|
8
|
+
import { DEFAULT_DAEMON_PACKAGE_NAME, resolveDaemonPackageVersion, } from "./daemon-package-context.js";
|
|
9
9
|
import { buildDaemonProviderSettingsSnapshot, loadDaemonProviderSettings, resolveCommandPath, } from "./daemon-provider-settings.js";
|
|
10
|
+
import { resolveNpmInvocationFromNode, resolvePackageUpdateInfo, } from "./package-update.js";
|
|
10
11
|
import { loadPersistedConfig } from "./persisted-config.js";
|
|
11
12
|
const execFileAsync = promisify(execFile);
|
|
12
13
|
function summarizeStatus(checks) {
|
|
@@ -59,6 +60,7 @@ export async function runDaemonDoctor(junctionHome, logger, dependencies) {
|
|
|
59
60
|
const config = loadPersistedConfig(junctionHome);
|
|
60
61
|
const platform = dependencies?.platform ?? process.platform;
|
|
61
62
|
const homeDir = dependencies?.homeDir ?? homedir();
|
|
63
|
+
const daemonVersion = dependencies?.version ?? resolveDaemonPackageVersion(import.meta.url);
|
|
62
64
|
const settings = buildDaemonProviderSettingsSnapshot(config, {
|
|
63
65
|
env: process.env,
|
|
64
66
|
homeDir,
|
|
@@ -75,6 +77,32 @@ export async function runDaemonDoctor(junctionHome, logger, dependencies) {
|
|
|
75
77
|
remediation: null,
|
|
76
78
|
}),
|
|
77
79
|
];
|
|
80
|
+
let npmInvocation = null;
|
|
81
|
+
try {
|
|
82
|
+
npmInvocation = (dependencies?.resolveNpmInvocationFromNode ?? resolveNpmInvocationFromNode)(process.execPath);
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
npmInvocation = null;
|
|
86
|
+
}
|
|
87
|
+
const update = resolvePackageUpdateInfo({
|
|
88
|
+
npmInvocation,
|
|
89
|
+
packageName: DEFAULT_DAEMON_PACKAGE_NAME,
|
|
90
|
+
currentVersion: daemonVersion,
|
|
91
|
+
fetchLatestPackageVersion: dependencies?.fetchLatestPackageVersion,
|
|
92
|
+
});
|
|
93
|
+
checks.push(createCheck({
|
|
94
|
+
id: "daemon-package-update",
|
|
95
|
+
title: "Daemon package update",
|
|
96
|
+
status: update.status === "stale"
|
|
97
|
+
? "fail"
|
|
98
|
+
: update.status === "unknown"
|
|
99
|
+
? "warn"
|
|
100
|
+
: "pass",
|
|
101
|
+
message: update.message,
|
|
102
|
+
configuredPath: null,
|
|
103
|
+
resolvedPath: null,
|
|
104
|
+
remediation: update.remediation,
|
|
105
|
+
}));
|
|
78
106
|
const resolvedGhPath = resolveCommandPath("gh", {
|
|
79
107
|
env: process.env,
|
|
80
108
|
platform,
|
|
@@ -135,8 +163,8 @@ export async function runDaemonDoctor(junctionHome, logger, dependencies) {
|
|
|
135
163
|
configuredPath: setting.executablePath,
|
|
136
164
|
resolvedPath: null,
|
|
137
165
|
remediation: setting.source === "manual"
|
|
138
|
-
? "Update the executable path in daemon settings or use Automatically route."
|
|
139
|
-
: "Install the CLI or use Automatically route in daemon settings.",
|
|
166
|
+
? "Update the executable path in daemon settings, or use Automatically route to detect one."
|
|
167
|
+
: "Install the CLI or use Automatically route in daemon settings to detect one.",
|
|
140
168
|
}));
|
|
141
169
|
checks.push(createCheck({
|
|
142
170
|
id: `${provider}-auth`,
|
|
@@ -238,19 +266,12 @@ export async function runDaemonDoctor(junctionHome, logger, dependencies) {
|
|
|
238
266
|
summary,
|
|
239
267
|
daemon: {
|
|
240
268
|
hostname: dependencies?.hostname ?? hostname(),
|
|
241
|
-
version:
|
|
242
|
-
(() => {
|
|
243
|
-
try {
|
|
244
|
-
return resolveDaemonVersion(import.meta.url);
|
|
245
|
-
}
|
|
246
|
-
catch {
|
|
247
|
-
return null;
|
|
248
|
-
}
|
|
249
|
-
})(),
|
|
269
|
+
version: daemonVersion,
|
|
250
270
|
platform,
|
|
251
271
|
homeDir: settings.homeDir,
|
|
252
272
|
rootDir: settings.rootDir,
|
|
253
273
|
},
|
|
274
|
+
update,
|
|
254
275
|
checks,
|
|
255
276
|
};
|
|
256
277
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon-doctor.js","sourceRoot":"","sources":["../../../src/server/daemon-doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAItC,OAAO,EAAE,yBAAyB,EAAE,MAAM,6CAA6C,CAAC;AACxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,
|
|
1
|
+
{"version":3,"file":"daemon-doctor.js","sourceRoot":"","sources":["../../../src/server/daemon-doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const DEFAULT_DAEMON_PACKAGE_NAME = "@junctionpanel/junction-daemon";
|
|
2
|
+
export declare const DAEMON_PACKAGE_NAME_ENV = "JUNCTION_DAEMON_PACKAGE_NAME";
|
|
3
|
+
export declare const DAEMON_PACKAGE_VERSION_ENV = "JUNCTION_DAEMON_PACKAGE_VERSION";
|
|
4
|
+
export type DaemonPackageContext = {
|
|
5
|
+
packageName: string | null;
|
|
6
|
+
packageVersion: string | null;
|
|
7
|
+
};
|
|
8
|
+
export declare function readDaemonPackageContextFromEnv(env?: NodeJS.ProcessEnv): DaemonPackageContext;
|
|
9
|
+
export declare function resolveDaemonPackageVersion(moduleUrl?: string, env?: NodeJS.ProcessEnv): string | null;
|
|
10
|
+
//# sourceMappingURL=daemon-package-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daemon-package-context.d.ts","sourceRoot":"","sources":["../../../src/server/daemon-package-context.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,2BAA2B,mCAAmC,CAAC;AAC5E,eAAO,MAAM,uBAAuB,iCAAiC,CAAC;AACtE,eAAO,MAAM,0BAA0B,oCAAoC,CAAC;AAE5E,MAAM,MAAM,oBAAoB,GAAG;IACjC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B,CAAC;AAcF,wBAAgB,+BAA+B,CAC7C,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,oBAAoB,CAKtB;AAED,wBAAgB,2BAA2B,CACzC,SAAS,GAAE,MAAwB,EACnC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,GAAG,IAAI,CAWf"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { resolveDaemonVersion } from "./daemon-version.js";
|
|
2
|
+
export const DEFAULT_DAEMON_PACKAGE_NAME = "@junctionpanel/junction-daemon";
|
|
3
|
+
export const DAEMON_PACKAGE_NAME_ENV = "JUNCTION_DAEMON_PACKAGE_NAME";
|
|
4
|
+
export const DAEMON_PACKAGE_VERSION_ENV = "JUNCTION_DAEMON_PACKAGE_VERSION";
|
|
5
|
+
function readTrimmedEnvValue(env, key) {
|
|
6
|
+
const value = env[key];
|
|
7
|
+
if (typeof value !== "string") {
|
|
8
|
+
return null;
|
|
9
|
+
}
|
|
10
|
+
const trimmed = value.trim();
|
|
11
|
+
return trimmed.length > 0 ? trimmed : null;
|
|
12
|
+
}
|
|
13
|
+
export function readDaemonPackageContextFromEnv(env = process.env) {
|
|
14
|
+
return {
|
|
15
|
+
packageName: readTrimmedEnvValue(env, DAEMON_PACKAGE_NAME_ENV),
|
|
16
|
+
packageVersion: readTrimmedEnvValue(env, DAEMON_PACKAGE_VERSION_ENV),
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
export function resolveDaemonPackageVersion(moduleUrl = import.meta.url, env = process.env) {
|
|
20
|
+
const envContext = readDaemonPackageContextFromEnv(env);
|
|
21
|
+
if (envContext.packageVersion) {
|
|
22
|
+
return envContext.packageVersion;
|
|
23
|
+
}
|
|
24
|
+
try {
|
|
25
|
+
return resolveDaemonVersion(moduleUrl);
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=daemon-package-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daemon-package-context.js","sourceRoot":"","sources":["../../../src/server/daemon-package-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,MAAM,CAAC,MAAM,2BAA2B,GAAG,gCAAgC,CAAC;AAC5E,MAAM,CAAC,MAAM,uBAAuB,GAAG,8BAA8B,CAAC;AACtE,MAAM,CAAC,MAAM,0BAA0B,GAAG,iCAAiC,CAAC;AAO5E,SAAS,mBAAmB,CAC1B,GAAsB,EACtB,GAAW;IAEX,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,MAAyB,OAAO,CAAC,GAAG;IAEpC,OAAO;QACL,WAAW,EAAE,mBAAmB,CAAC,GAAG,EAAE,uBAAuB,CAAC;QAC9D,cAAc,EAAE,mBAAmB,CAAC,GAAG,EAAE,0BAA0B,CAAC;KACrE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,YAAoB,MAAM,CAAC,IAAI,CAAC,GAAG,EACnC,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,UAAU,GAAG,+BAA+B,CAAC,GAAG,CAAC,CAAC;IACxD,IAAI,UAAU,CAAC,cAAc,EAAE,CAAC;QAC9B,OAAO,UAAU,CAAC,cAAc,CAAC;IACnC,CAAC;IAED,IAAI,CAAC;QACH,OAAO,oBAAoB,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export interface NpmInvocation {
|
|
2
|
+
nodePath: string;
|
|
3
|
+
npmPath: string;
|
|
4
|
+
command: string;
|
|
5
|
+
argsPrefix: string[];
|
|
6
|
+
}
|
|
7
|
+
export type LatestPackageVersionResult = {
|
|
8
|
+
version: string | null;
|
|
9
|
+
note?: string;
|
|
10
|
+
};
|
|
11
|
+
export type PackageUpdateStatus = "current" | "stale" | "unknown";
|
|
12
|
+
export type PackageUpdateInfo = {
|
|
13
|
+
packageName: string;
|
|
14
|
+
currentVersion: string | null;
|
|
15
|
+
latestVersion: string | null;
|
|
16
|
+
status: PackageUpdateStatus;
|
|
17
|
+
blocked: boolean;
|
|
18
|
+
message: string;
|
|
19
|
+
remediation: string | null;
|
|
20
|
+
};
|
|
21
|
+
export declare function compareSemver(left: string, right: string): number | null;
|
|
22
|
+
export declare function resolveNpmInvocationFromNode(nodePath: string): NpmInvocation;
|
|
23
|
+
export declare function formatNpmInvocation(invocation: NpmInvocation): string;
|
|
24
|
+
export declare function fetchLatestPackageVersion(npm: NpmInvocation, packageName: string, timeoutMs?: number): LatestPackageVersionResult;
|
|
25
|
+
export declare function resolvePackageUpdateInfo(params: {
|
|
26
|
+
npmInvocation: NpmInvocation | null;
|
|
27
|
+
packageName: string;
|
|
28
|
+
currentVersion: string | null;
|
|
29
|
+
fetchLatestPackageVersion?: typeof fetchLatestPackageVersion;
|
|
30
|
+
timeoutMs?: number;
|
|
31
|
+
}): PackageUpdateInfo;
|
|
32
|
+
//# sourceMappingURL=package-update.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-update.d.ts","sourceRoot":"","sources":["../../../src/server/package-update.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAElE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,MAAM,EAAE,mBAAmB,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,CAAC;AAqDF,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAaxE;AAED,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,CA+B5E;AAED,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,aAAa,GAAG,MAAM,CAKrE;AAED,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,aAAa,EAClB,WAAW,EAAE,MAAM,EACnB,SAAS,GAAE,MAAwC,GAClD,0BAA0B,CAsC5B;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE;IAC/C,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,yBAAyB,CAAC,EAAE,OAAO,yBAAyB,CAAC;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,iBAAiB,CAgFpB"}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
import { spawnSync } from "node:child_process";
|
|
2
|
+
import { existsSync } from "node:fs";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
const DEFAULT_UPDATE_CHECK_TIMEOUT_MS = 3000;
|
|
5
|
+
function normalizeError(error) {
|
|
6
|
+
if (error instanceof Error) {
|
|
7
|
+
return error.message;
|
|
8
|
+
}
|
|
9
|
+
return String(error);
|
|
10
|
+
}
|
|
11
|
+
function shortenMessage(message, max = 120) {
|
|
12
|
+
const normalized = message.replace(/\s+/g, " ").trim();
|
|
13
|
+
if (normalized.length <= max) {
|
|
14
|
+
return normalized;
|
|
15
|
+
}
|
|
16
|
+
return `${normalized.slice(0, max - 3)}...`;
|
|
17
|
+
}
|
|
18
|
+
function parseVersionFromNpmOutput(raw) {
|
|
19
|
+
const trimmed = raw.trim();
|
|
20
|
+
if (!trimmed) {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
try {
|
|
24
|
+
const parsed = JSON.parse(trimmed);
|
|
25
|
+
if (typeof parsed === "string" && parsed.trim().length > 0) {
|
|
26
|
+
return parsed.trim();
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
// Fall back to plain output.
|
|
31
|
+
}
|
|
32
|
+
return trimmed.replace(/^"+|"+$/g, "").trim() || null;
|
|
33
|
+
}
|
|
34
|
+
function parseSemver(version) {
|
|
35
|
+
const match = version.trim().match(/^v?(\d+)\.(\d+)\.(\d+)(?:[-+].*)?$/);
|
|
36
|
+
if (!match) {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
const major = Number(match[1]);
|
|
40
|
+
const minor = Number(match[2]);
|
|
41
|
+
const patch = Number(match[3]);
|
|
42
|
+
if (![major, minor, patch].every((part) => Number.isInteger(part) && part >= 0)) {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
return [major, minor, patch];
|
|
46
|
+
}
|
|
47
|
+
export function compareSemver(left, right) {
|
|
48
|
+
const leftParts = parseSemver(left);
|
|
49
|
+
const rightParts = parseSemver(right);
|
|
50
|
+
if (!leftParts || !rightParts) {
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
for (let index = 0; index < leftParts.length; index += 1) {
|
|
54
|
+
if (leftParts[index] < rightParts[index])
|
|
55
|
+
return -1;
|
|
56
|
+
if (leftParts[index] > rightParts[index])
|
|
57
|
+
return 1;
|
|
58
|
+
}
|
|
59
|
+
return 0;
|
|
60
|
+
}
|
|
61
|
+
export function resolveNpmInvocationFromNode(nodePath) {
|
|
62
|
+
const binDir = path.dirname(nodePath);
|
|
63
|
+
const prefix = path.dirname(binDir);
|
|
64
|
+
const npmBinary = path.join(binDir, process.platform === "win32" ? "npm.cmd" : "npm");
|
|
65
|
+
if (existsSync(npmBinary)) {
|
|
66
|
+
return {
|
|
67
|
+
nodePath,
|
|
68
|
+
npmPath: npmBinary,
|
|
69
|
+
command: npmBinary,
|
|
70
|
+
argsPrefix: [],
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
const npmCliCandidates = [
|
|
74
|
+
path.join(prefix, "lib", "node_modules", "npm", "bin", "npm-cli.js"),
|
|
75
|
+
path.join(prefix, "node_modules", "npm", "bin", "npm-cli.js"),
|
|
76
|
+
];
|
|
77
|
+
for (const candidate of npmCliCandidates) {
|
|
78
|
+
if (existsSync(candidate)) {
|
|
79
|
+
return {
|
|
80
|
+
nodePath,
|
|
81
|
+
npmPath: candidate,
|
|
82
|
+
command: nodePath,
|
|
83
|
+
argsPrefix: [candidate],
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
throw new Error(`Unable to resolve npm for node executable: ${nodePath}`);
|
|
88
|
+
}
|
|
89
|
+
export function formatNpmInvocation(invocation) {
|
|
90
|
+
if (invocation.argsPrefix.length === 0) {
|
|
91
|
+
return invocation.command;
|
|
92
|
+
}
|
|
93
|
+
return `${invocation.command} ${invocation.argsPrefix.join(" ")}`;
|
|
94
|
+
}
|
|
95
|
+
export function fetchLatestPackageVersion(npm, packageName, timeoutMs = DEFAULT_UPDATE_CHECK_TIMEOUT_MS) {
|
|
96
|
+
const result = spawnSync(npm.command, [...npm.argsPrefix, "view", packageName, "version", "--json"], {
|
|
97
|
+
encoding: "utf8",
|
|
98
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
99
|
+
env: process.env,
|
|
100
|
+
timeout: timeoutMs,
|
|
101
|
+
});
|
|
102
|
+
if (result.error) {
|
|
103
|
+
return {
|
|
104
|
+
version: null,
|
|
105
|
+
note: `update check failed: ${shortenMessage(normalizeError(result.error))}`,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
if ((result.status ?? 1) !== 0) {
|
|
109
|
+
const stderr = result.stderr?.trim();
|
|
110
|
+
return {
|
|
111
|
+
version: null,
|
|
112
|
+
note: stderr
|
|
113
|
+
? `update check failed: ${shortenMessage(stderr)}`
|
|
114
|
+
: `update check failed: npm exited with code ${result.status ?? 1}`,
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
const version = parseVersionFromNpmOutput(result.stdout);
|
|
118
|
+
if (!version) {
|
|
119
|
+
return {
|
|
120
|
+
version: null,
|
|
121
|
+
note: "update check failed: empty npm response",
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
return { version };
|
|
125
|
+
}
|
|
126
|
+
export function resolvePackageUpdateInfo(params) {
|
|
127
|
+
const currentVersion = params.currentVersion?.trim() || null;
|
|
128
|
+
const remediation = `Run \`npm install -g ${params.packageName}@latest\` and restart the daemon.`;
|
|
129
|
+
if (!params.npmInvocation) {
|
|
130
|
+
return {
|
|
131
|
+
packageName: params.packageName,
|
|
132
|
+
currentVersion,
|
|
133
|
+
latestVersion: null,
|
|
134
|
+
status: "unknown",
|
|
135
|
+
blocked: false,
|
|
136
|
+
message: "Daemon update status is unknown because npm could not be resolved.",
|
|
137
|
+
remediation,
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
const latestResult = (params.fetchLatestPackageVersion ?? fetchLatestPackageVersion)(params.npmInvocation, params.packageName, params.timeoutMs);
|
|
141
|
+
if (!latestResult.version) {
|
|
142
|
+
return {
|
|
143
|
+
packageName: params.packageName,
|
|
144
|
+
currentVersion,
|
|
145
|
+
latestVersion: null,
|
|
146
|
+
status: "unknown",
|
|
147
|
+
blocked: false,
|
|
148
|
+
message: latestResult.note ?? "Daemon update status is unknown.",
|
|
149
|
+
remediation,
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
if (!currentVersion) {
|
|
153
|
+
return {
|
|
154
|
+
packageName: params.packageName,
|
|
155
|
+
currentVersion: null,
|
|
156
|
+
latestVersion: latestResult.version,
|
|
157
|
+
status: "unknown",
|
|
158
|
+
blocked: false,
|
|
159
|
+
message: "Daemon update status is unknown because the installed version could not be determined.",
|
|
160
|
+
remediation,
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
const comparison = compareSemver(currentVersion, latestResult.version);
|
|
164
|
+
if (comparison === null) {
|
|
165
|
+
return {
|
|
166
|
+
packageName: params.packageName,
|
|
167
|
+
currentVersion,
|
|
168
|
+
latestVersion: latestResult.version,
|
|
169
|
+
status: "unknown",
|
|
170
|
+
blocked: false,
|
|
171
|
+
message: `Daemon update status is unknown because ${currentVersion} could not be compared to ${latestResult.version}.`,
|
|
172
|
+
remediation,
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
if (comparison < 0) {
|
|
176
|
+
return {
|
|
177
|
+
packageName: params.packageName,
|
|
178
|
+
currentVersion,
|
|
179
|
+
latestVersion: latestResult.version,
|
|
180
|
+
status: "stale",
|
|
181
|
+
blocked: true,
|
|
182
|
+
message: `Daemon is out of date (${currentVersion} -> ${latestResult.version}).`,
|
|
183
|
+
remediation,
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
return {
|
|
187
|
+
packageName: params.packageName,
|
|
188
|
+
currentVersion,
|
|
189
|
+
latestVersion: latestResult.version,
|
|
190
|
+
status: "current",
|
|
191
|
+
blocked: false,
|
|
192
|
+
message: `Daemon is up to date (${currentVersion}).`,
|
|
193
|
+
remediation: null,
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
//# sourceMappingURL=package-update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-update.js","sourceRoot":"","sources":["../../../src/server/package-update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,IAAI,MAAM,WAAW,CAAC;AA0B7B,MAAM,+BAA+B,GAAG,IAAK,CAAC;AAE9C,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,cAAc,CAAC,OAAe,EAAE,GAAG,GAAG,GAAG;IAChD,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACvD,IAAI,UAAU,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;QAC7B,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC;AAC9C,CAAC;AAED,SAAS,yBAAyB,CAAC,GAAW;IAC5C,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAY,CAAC;QAC9C,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3D,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,6BAA6B;IAC/B,CAAC;IAED,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC;AACxD,CAAC;AAED,SAAS,WAAW,CAAC,OAAe;IAClC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACzE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC;QAChF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,KAAa;IACvD,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IACtC,IAAI,CAAC,SAAS,IAAI,CAAC,UAAU,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACzD,IAAI,SAAS,CAAC,KAAK,CAAE,GAAG,UAAU,CAAC,KAAK,CAAE;YAAE,OAAO,CAAC,CAAC,CAAC;QACtD,IAAI,SAAS,CAAC,KAAK,CAAE,GAAG,UAAU,CAAC,KAAK,CAAE;YAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,QAAgB;IAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAEtF,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1B,OAAO;YACL,QAAQ;YACR,OAAO,EAAE,SAAS;YAClB,OAAO,EAAE,SAAS;YAClB,UAAU,EAAE,EAAE;SACf,CAAC;IACJ,CAAC;IAED,MAAM,gBAAgB,GAAG;QACvB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC;QACpE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC;KAC9D,CAAC;IAEF,KAAK,MAAM,SAAS,IAAI,gBAAgB,EAAE,CAAC;QACzC,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1B,OAAO;gBACL,QAAQ;gBACR,OAAO,EAAE,SAAS;gBAClB,OAAO,EAAE,QAAQ;gBACjB,UAAU,EAAE,CAAC,SAAS,CAAC;aACxB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,8CAA8C,QAAQ,EAAE,CAAC,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,UAAyB;IAC3D,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvC,OAAO,UAAU,CAAC,OAAO,CAAC;IAC5B,CAAC;IACD,OAAO,GAAG,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,GAAkB,EAClB,WAAmB,EACnB,YAAoB,+BAA+B;IAEnD,MAAM,MAAM,GAAG,SAAS,CACtB,GAAG,CAAC,OAAO,EACX,CAAC,GAAG,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,EAC7D;QACE,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;QACjC,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,OAAO,EAAE,SAAS;KACnB,CACF,CAAC;IAEF,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO;YACL,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,wBAAwB,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;SAC7E,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;QACrC,OAAO;YACL,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,MAAM;gBACV,CAAC,CAAC,wBAAwB,cAAc,CAAC,MAAM,CAAC,EAAE;gBAClD,CAAC,CAAC,6CAA6C,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;SACtE,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,yBAAyB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACzD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,yCAAyC;SAChD,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,MAMxC;IACC,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;IAC7D,MAAM,WAAW,GAAG,wBAAwB,MAAM,CAAC,WAAW,mCAAmC,CAAC;IAElG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QAC1B,OAAO;YACL,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,cAAc;YACd,aAAa,EAAE,IAAI;YACnB,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,oEAAoE;YAC7E,WAAW;SACZ,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,CAAC,MAAM,CAAC,yBAAyB,IAAI,yBAAyB,CAAC,CAClF,MAAM,CAAC,aAAa,EACpB,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,SAAS,CACjB,CAAC;IAEF,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAC1B,OAAO;YACL,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,cAAc;YACd,aAAa,EAAE,IAAI;YACnB,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,YAAY,CAAC,IAAI,IAAI,kCAAkC;YAChE,WAAW;SACZ,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO;YACL,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,YAAY,CAAC,OAAO;YACnC,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,wFAAwF;YACjG,WAAW;SACZ,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,aAAa,CAAC,cAAc,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IACvE,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,OAAO;YACL,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,cAAc;YACd,aAAa,EAAE,YAAY,CAAC,OAAO;YACnC,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,2CAA2C,cAAc,6BAA6B,YAAY,CAAC,OAAO,GAAG;YACtH,WAAW;SACZ,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACnB,OAAO;YACL,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,cAAc;YACd,aAAa,EAAE,YAAY,CAAC,OAAO;YACnC,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,0BAA0B,cAAc,OAAO,YAAY,CAAC,OAAO,IAAI;YAChF,WAAW;SACZ,CAAC;IACJ,CAAC;IAED,OAAO;QACL,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,cAAc;QACd,aAAa,EAAE,YAAY,CAAC,OAAO;QACnC,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,yBAAyB,cAAc,IAAI;QACpD,WAAW,EAAE,IAAI;KAClB,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/server/session.ts"],"names":[],"mappings":"AAQA,OAAO,EAGL,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAuB5B,MAAM,eAAe,CAAA;AACtB,OAAO,KAAK,EAAE,eAAe,EAAyB,MAAM,iCAAiC,CAAA;AAE7F,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,yBAAyB,CAAA;AAQhC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAA;AAE9E,MAAM,MAAM,wBAAwB,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,CAAA;AAE/D,OAAO,EAEL,KAAK,+BAA+B,EACrC,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAmCvD,OAAO,EAAE,YAAY,EAA0B,MAAM,0BAA0B,CAAA;AAO/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AA4CnE,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/server/session.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,9 +29,10 @@ import { cloneRepository } from '../utils/git-clone.js';
|
|
|
29
29
|
import { initRepository } from '../utils/git-init.js';
|
|
30
30
|
import { resolveClientMessageId } from './client-message-id.js';
|
|
31
31
|
import { deriveProjectGroupingKey, deriveProjectGroupingName } from '../shared/project-grouping.js';
|
|
32
|
-
import {
|
|
32
|
+
import { DEFAULT_DAEMON_PACKAGE_NAME, resolveDaemonPackageVersion, } from './daemon-package-context.js';
|
|
33
33
|
import { runDaemonDoctor } from './daemon-doctor.js';
|
|
34
34
|
import { MANAGED_DAEMON_PROVIDERS, autoRouteProviderExecutable, loadDaemonProviderSettings, saveDaemonProviderExecutablePath, } from './daemon-provider-settings.js';
|
|
35
|
+
import { resolvePackageUpdateInfo } from './package-update.js';
|
|
35
36
|
import { loadPersistedConfig } from './persisted-config.js';
|
|
36
37
|
const execAsync = promisify(exec);
|
|
37
38
|
const READ_ONLY_GIT_ENV = {
|
|
@@ -801,6 +802,9 @@ export class Session {
|
|
|
801
802
|
case 'set_agent_mode_request':
|
|
802
803
|
await this.handleSetAgentModeRequest(msg.agentId, msg.modeId, msg.requestId);
|
|
803
804
|
break;
|
|
805
|
+
case 'set_agent_plan_mode_request':
|
|
806
|
+
await this.handleSetAgentPlanModeRequest(msg.agentId, msg.enabled, msg.requestId);
|
|
807
|
+
break;
|
|
804
808
|
case 'set_agent_model_request':
|
|
805
809
|
await this.handleSetAgentModelRequest(msg.agentId, msg.modelId, msg.requestId);
|
|
806
810
|
break;
|
|
@@ -1794,12 +1798,7 @@ export class Session {
|
|
|
1794
1798
|
}
|
|
1795
1799
|
}
|
|
1796
1800
|
resolveDaemonVersionSafe() {
|
|
1797
|
-
|
|
1798
|
-
return resolveDaemonVersion(import.meta.url);
|
|
1799
|
-
}
|
|
1800
|
-
catch {
|
|
1801
|
-
return null;
|
|
1802
|
-
}
|
|
1801
|
+
return resolveDaemonPackageVersion(import.meta.url);
|
|
1803
1802
|
}
|
|
1804
1803
|
toDaemonMetadata(input) {
|
|
1805
1804
|
const homeDir = input?.homeDir ?? homedir();
|
|
@@ -1819,6 +1818,7 @@ export class Session {
|
|
|
1819
1818
|
type: 'run_daemon_doctor_response',
|
|
1820
1819
|
payload: {
|
|
1821
1820
|
daemon: result.daemon,
|
|
1821
|
+
update: result.update,
|
|
1822
1822
|
summary: result.summary,
|
|
1823
1823
|
checks: result.checks,
|
|
1824
1824
|
ranAt: result.ranAt,
|
|
@@ -1834,6 +1834,11 @@ export class Session {
|
|
|
1834
1834
|
type: 'run_daemon_doctor_response',
|
|
1835
1835
|
payload: {
|
|
1836
1836
|
daemon: this.toDaemonMetadata(snapshot),
|
|
1837
|
+
update: resolvePackageUpdateInfo({
|
|
1838
|
+
npmInvocation: null,
|
|
1839
|
+
packageName: DEFAULT_DAEMON_PACKAGE_NAME,
|
|
1840
|
+
currentVersion: this.resolveDaemonVersionSafe(),
|
|
1841
|
+
}),
|
|
1837
1842
|
summary: 'fail',
|
|
1838
1843
|
checks: [],
|
|
1839
1844
|
ranAt: new Date().toISOString(),
|
|
@@ -1911,21 +1916,16 @@ export class Session {
|
|
|
1911
1916
|
if (!executablePath) {
|
|
1912
1917
|
throw new SessionRequestError('provider_not_found', `Could not automatically locate ${msg.provider} on this daemon.`);
|
|
1913
1918
|
}
|
|
1914
|
-
const snapshot = saveDaemonProviderExecutablePath({
|
|
1915
|
-
junctionHome: this.junctionHome,
|
|
1916
|
-
provider: msg.provider,
|
|
1917
|
-
executablePath,
|
|
1918
|
-
});
|
|
1919
1919
|
this.emit({
|
|
1920
1920
|
type: 'auto_route_provider_response',
|
|
1921
1921
|
payload: {
|
|
1922
|
-
daemon: this.toDaemonMetadata(
|
|
1923
|
-
provider:
|
|
1922
|
+
daemon: this.toDaemonMetadata(),
|
|
1923
|
+
provider: msg.provider,
|
|
1924
|
+
executablePath,
|
|
1924
1925
|
error: null,
|
|
1925
1926
|
requestId: msg.requestId,
|
|
1926
1927
|
},
|
|
1927
1928
|
});
|
|
1928
|
-
await this.handleRestartServerRequest(msg.requestId, 'settings_update');
|
|
1929
1929
|
}
|
|
1930
1930
|
catch (error) {
|
|
1931
1931
|
this.sessionLogger.error({ err: error, provider: msg.provider }, 'Failed to auto-route provider executable');
|
|
@@ -1933,7 +1933,8 @@ export class Session {
|
|
|
1933
1933
|
type: 'auto_route_provider_response',
|
|
1934
1934
|
payload: {
|
|
1935
1935
|
daemon: this.toDaemonMetadata(),
|
|
1936
|
-
provider:
|
|
1936
|
+
provider: msg.provider,
|
|
1937
|
+
executablePath: null,
|
|
1937
1938
|
error: error instanceof Error ? error.message : String(error),
|
|
1938
1939
|
requestId: msg.requestId,
|
|
1939
1940
|
},
|
|
@@ -2181,6 +2182,38 @@ export class Session {
|
|
|
2181
2182
|
});
|
|
2182
2183
|
}
|
|
2183
2184
|
}
|
|
2185
|
+
async handleSetAgentPlanModeRequest(agentId, enabled, requestId) {
|
|
2186
|
+
this.sessionLogger.info({ agentId, enabled, requestId }, 'session: set_agent_plan_mode_request');
|
|
2187
|
+
try {
|
|
2188
|
+
await this.agentManager.setAgentPlanMode(agentId, enabled);
|
|
2189
|
+
this.sessionLogger.info({ agentId, enabled, requestId }, 'session: set_agent_plan_mode_request success');
|
|
2190
|
+
this.emit({
|
|
2191
|
+
type: 'set_agent_plan_mode_response',
|
|
2192
|
+
payload: { requestId, agentId, accepted: true, error: null },
|
|
2193
|
+
});
|
|
2194
|
+
}
|
|
2195
|
+
catch (error) {
|
|
2196
|
+
this.sessionLogger.error({ err: error, agentId, enabled, requestId }, 'session: set_agent_plan_mode_request error');
|
|
2197
|
+
this.emit({
|
|
2198
|
+
type: 'activity_log',
|
|
2199
|
+
payload: {
|
|
2200
|
+
id: uuidv4(),
|
|
2201
|
+
timestamp: new Date(),
|
|
2202
|
+
type: 'error',
|
|
2203
|
+
content: `Failed to set agent plan mode: ${error.message}`,
|
|
2204
|
+
},
|
|
2205
|
+
});
|
|
2206
|
+
this.emit({
|
|
2207
|
+
type: 'set_agent_plan_mode_response',
|
|
2208
|
+
payload: {
|
|
2209
|
+
requestId,
|
|
2210
|
+
agentId,
|
|
2211
|
+
accepted: false,
|
|
2212
|
+
error: error?.message ? String(error.message) : 'Failed to set agent plan mode',
|
|
2213
|
+
},
|
|
2214
|
+
});
|
|
2215
|
+
}
|
|
2216
|
+
}
|
|
2184
2217
|
async handleSetAgentModelRequest(agentId, modelId, requestId) {
|
|
2185
2218
|
this.sessionLogger.info({ agentId, modelId, requestId }, 'session: set_agent_model_request');
|
|
2186
2219
|
try {
|