@claudexor/cli 3.13.0 → 3.15.0
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/accounts-services.d.ts +2 -8
- package/dist/accounts-services.d.ts.map +1 -1
- package/dist/accounts-services.js +7 -7
- package/dist/accounts-services.js.map +1 -1
- package/dist/capabilities.d.ts.map +1 -1
- package/dist/capabilities.js +20 -10
- package/dist/capabilities.js.map +1 -1
- package/dist/control-services.d.ts +7 -8
- package/dist/control-services.d.ts.map +1 -1
- package/dist/harness-install-proof.d.ts +3 -0
- package/dist/harness-install-proof.d.ts.map +1 -1
- package/dist/harness-install-proof.js +22 -7
- package/dist/harness-install-proof.js.map +1 -1
- package/dist/harness-install-recipes.d.ts +1 -1
- package/dist/harness-install-recipes.d.ts.map +1 -1
- package/dist/harness-install-recipes.js +13 -4
- package/dist/harness-install-recipes.js.map +1 -1
- package/dist/harness-installer.d.ts +7 -0
- package/dist/harness-installer.d.ts.map +1 -1
- package/dist/harness-installer.js +41 -17
- package/dist/harness-installer.js.map +1 -1
- package/dist/model-services.d.ts +4 -0
- package/dist/model-services.d.ts.map +1 -1
- package/dist/model-services.js +2 -2
- package/dist/model-services.js.map +1 -1
- package/dist/ops-commands.d.ts.map +1 -1
- package/dist/ops-commands.js +8 -1
- package/dist/ops-commands.js.map +1 -1
- package/dist/registry.d.ts +25 -2
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +67 -24
- package/dist/registry.js.map +1 -1
- package/dist/settings-command.d.ts.map +1 -1
- package/dist/settings-command.js +5 -1
- package/dist/settings-command.js.map +1 -1
- package/dist/settings-service.d.ts +6 -2
- package/dist/settings-service.d.ts.map +1 -1
- package/dist/settings-service.js +24 -11
- package/dist/settings-service.js.map +1 -1
- package/package.json +24 -24
|
@@ -18,10 +18,7 @@ export declare function projectHarnessStatuses(statuses: readonly HarnessStatus[
|
|
|
18
18
|
reasons: string[];
|
|
19
19
|
authSources: import("@claudexor/schema").AuthSourceReadiness[];
|
|
20
20
|
configuredModel: string | null;
|
|
21
|
-
configuredModelCheck:
|
|
22
|
-
status: "ok" | "rejected";
|
|
23
|
-
message?: string | null;
|
|
24
|
-
} | null;
|
|
21
|
+
configuredModelCheck: import("@claudexor/core").ModelCheck | null;
|
|
25
22
|
delegation: {
|
|
26
23
|
available: boolean;
|
|
27
24
|
reason: "manifest_unsupported" | "ready" | "runtime_unavailable";
|
|
@@ -97,10 +94,7 @@ export declare function createCredentialProfilesService(quotaRegistry: () => Quo
|
|
|
97
94
|
reasons: string[];
|
|
98
95
|
authSources: import("@claudexor/schema").AuthSourceReadiness[];
|
|
99
96
|
configuredModel: string | null;
|
|
100
|
-
configuredModelCheck:
|
|
101
|
-
status: "ok" | "rejected";
|
|
102
|
-
message?: string | null;
|
|
103
|
-
} | null;
|
|
97
|
+
configuredModelCheck: import("@claudexor/core").ModelCheck | null;
|
|
104
98
|
delegation: {
|
|
105
99
|
available: boolean;
|
|
106
100
|
reason: "manifest_unsupported" | "ready" | "runtime_unavailable";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accounts-services.d.ts","sourceRoot":"","sources":["../src/accounts-services.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAsB,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"accounts-services.d.ts","sourceRoot":"","sources":["../src/accounts-services.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAsB,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAG5E,OAAO,KAAK,EACV,iBAAiB,EACjB,uBAAuB,EAGxB,MAAM,mBAAmB,CAAC;AAU3B,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC;AAEF,wBAAsB,sBAAsB,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA6B9E;AAED;;;;oEAIoE;AACpE,wBAAgB,+BAA+B,CAAC,aAAa,EAAE,MAAM,aAAa;iCAgCtC;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqCjE"}
|
|
@@ -3,11 +3,10 @@ import { StatusProjectionCache, globalConfigVersion } from "./status-projection-
|
|
|
3
3
|
import { normalizeReadiness } from "@claudexor/gateway";
|
|
4
4
|
import { probeGitCapability } from "@claudexor/workspace";
|
|
5
5
|
import { noProjectRepoRoot } from "@claudexor/util";
|
|
6
|
-
import { validateModel } from "@claudexor/core";
|
|
7
6
|
import { withQuotaAvailability } from "@claudexor/schema";
|
|
8
7
|
import { vendorVerifiedProfileStatus } from "@claudexor/orchestrator";
|
|
9
8
|
import { accountPoolsProjection, profileAccountProjection } from "./accounts-projection.js";
|
|
10
|
-
import { buildGateway, buildRegistry,
|
|
9
|
+
import { buildGateway, buildRegistry, checkHarnessModel } from "./registry.js";
|
|
11
10
|
import { delegationCapabilityFor } from "./delegation-capability.js";
|
|
12
11
|
import { effectiveSetupLoginCapability } from "./setup-login-capability.js";
|
|
13
12
|
const NO_PROJECT_ROOT = noProjectRepoRoot();
|
|
@@ -16,11 +15,12 @@ export async function projectHarnessStatuses(statuses) {
|
|
|
16
15
|
const adapters = buildRegistry({ includeFakes: false });
|
|
17
16
|
return Promise.all(statuses.map(async (status) => {
|
|
18
17
|
const configured = cfg.global.harnesses[status.id]?.default_model ?? null;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
18
|
+
// The doctor's configured-model verdict honours the harness's own
|
|
19
|
+
// absence declaration (INV-104): an advisory harness passes with the
|
|
20
|
+
// note in the readiness detail instead of failing on a hint-list miss.
|
|
21
|
+
const check = configured
|
|
22
|
+
? (await checkHarnessModel(status.id, configured, NO_PROJECT_ROOT, true)).check
|
|
23
|
+
: null;
|
|
24
24
|
return {
|
|
25
25
|
...status,
|
|
26
26
|
configuredModel: configured,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accounts-services.js","sourceRoot":"","sources":["../src/accounts-services.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAC1F,OAAO,EAAE,kBAAkB,EAAsB,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"accounts-services.js","sourceRoot":"","sources":["../src/accounts-services.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,sBAAsB,EAWvB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,sBAAsB,EAWvB,MAAM,mBAAmB,CAAC;AAgB3B,8EAA8E;AAC9E,wBAAgB,YAAY,IAAI,SAAS,MAAM,EAAE,CAEhD;AAKD;;;;;;;GAOG;AACH,wBAAsB,2BAA2B,IAAI,OAAO,CAAC,sBAAsB,CAAC,CAyGnF"}
|
package/dist/capabilities.js
CHANGED
|
@@ -4,7 +4,7 @@ import { validateModel } from "@claudexor/core";
|
|
|
4
4
|
import { defaultClaudexorTools } from "@claudexor/mcp-server";
|
|
5
5
|
import { CLAUDEXOR_VERSION } from "@claudexor/util";
|
|
6
6
|
import { CLI_COMMANDS } from "./command-registry.js";
|
|
7
|
-
import { buildGateway, buildRegistry,
|
|
7
|
+
import { buildGateway, buildRegistry, checkHarnessModelTruth, harnessModelTruth, } from "./registry.js";
|
|
8
8
|
import { delegationCapabilityFor } from "./delegation-capability.js";
|
|
9
9
|
import { probeGitCapability } from "@claudexor/workspace";
|
|
10
10
|
import { effectiveSetupLoginCapability } from "./setup-login-capability.js";
|
|
@@ -33,16 +33,26 @@ export async function buildAgentCapabilityCatalog() {
|
|
|
33
33
|
// Model truth degrades soft: a catalog is a status surface, so an
|
|
34
34
|
// unreachable vendor CLI yields source=none instead of throwing the
|
|
35
35
|
// whole catalog away. The fallback is the full typed response shape.
|
|
36
|
-
const truth = await harnessModels(s.id, NO_PROJECT_ROOT, false).catch(() => ({
|
|
37
|
-
harnessId: s.id,
|
|
38
|
-
models: [],
|
|
39
|
-
source: "none",
|
|
40
|
-
verifiedAgainst: null,
|
|
41
|
-
}));
|
|
42
36
|
const configured = cfg.global.harnesses[s.id]?.default_model ?? null;
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
37
|
+
// One truth read serves the catalog's model summary and the
|
|
38
|
+
// configured-model verdict, which honours the harness's own absence
|
|
39
|
+
// declaration (INV-104) through the shared registry gate.
|
|
40
|
+
const { truth, check } = await harnessModelTruth(s.id, NO_PROJECT_ROOT, false)
|
|
41
|
+
.then((read) => ({
|
|
42
|
+
truth: read.response,
|
|
43
|
+
check: configured ? checkHarnessModelTruth(read, configured) : null,
|
|
44
|
+
}))
|
|
45
|
+
.catch(() => ({
|
|
46
|
+
truth: {
|
|
47
|
+
harnessId: s.id,
|
|
48
|
+
models: [],
|
|
49
|
+
source: "none",
|
|
50
|
+
verifiedAgainst: null,
|
|
51
|
+
},
|
|
52
|
+
// An unreachable vendor CLI verifies nothing: the stored model is
|
|
53
|
+
// reported invalid exactly as before, never admitted on a guess.
|
|
54
|
+
check: configured ? validateModel(configured, [], "manifest", "authoritative") : null,
|
|
55
|
+
}));
|
|
46
56
|
const profile = s.manifest?.capability_profile;
|
|
47
57
|
// Settings can disable a harness outright (harnesses.<id>.enabled=false);
|
|
48
58
|
// routing drops it, so the catalog must not advertise it as available.
|
package/dist/capabilities.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,sBAAsB,EACtB,eAAe,EACf,QAAQ,EACR,sBAAsB,EACtB,8BAA8B,EAC9B,aAAa,EACb,aAAa,EACb,aAAa,GAGd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,
|
|
1
|
+
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -70,10 +70,7 @@ resources: () => ResourceStore, quotaRegistry: () => QuotaRegistry, daemonJobs:
|
|
|
70
70
|
reasons: string[];
|
|
71
71
|
authSources: import("@claudexor/schema").AuthSourceReadiness[];
|
|
72
72
|
configuredModel: string | null;
|
|
73
|
-
configuredModelCheck:
|
|
74
|
-
status: "ok" | "rejected";
|
|
75
|
-
message?: string | null;
|
|
76
|
-
} | null;
|
|
73
|
+
configuredModelCheck: import("@claudexor/core").ModelCheck | null;
|
|
77
74
|
delegation: {
|
|
78
75
|
available: boolean;
|
|
79
76
|
reason: "manifest_unsupported" | "ready" | "runtime_unavailable";
|
|
@@ -434,6 +431,7 @@ resources: () => ResourceStore, quotaRegistry: () => QuotaRegistry, daemonJobs:
|
|
|
434
431
|
profileLimitAction: "ask" | "auto" | "fail" | "rotate";
|
|
435
432
|
};
|
|
436
433
|
};
|
|
434
|
+
notes: string[];
|
|
437
435
|
}>;
|
|
438
436
|
createSetupJob: (input: {
|
|
439
437
|
request: unknown;
|
|
@@ -2914,10 +2912,7 @@ resources: () => ResourceStore, quotaRegistry: () => QuotaRegistry, daemonJobs:
|
|
|
2914
2912
|
reasons: string[];
|
|
2915
2913
|
authSources: import("@claudexor/schema").AuthSourceReadiness[];
|
|
2916
2914
|
configuredModel: string | null;
|
|
2917
|
-
configuredModelCheck:
|
|
2918
|
-
status: "ok" | "rejected";
|
|
2919
|
-
message?: string | null;
|
|
2920
|
-
} | null;
|
|
2915
|
+
configuredModelCheck: import("@claudexor/core").ModelCheck | null;
|
|
2921
2916
|
delegation: {
|
|
2922
2917
|
available: boolean;
|
|
2923
2918
|
reason: "manifest_unsupported" | "ready" | "runtime_unavailable";
|
|
@@ -2959,6 +2954,8 @@ resources: () => ResourceStore, quotaRegistry: () => QuotaRegistry, daemonJobs:
|
|
|
2959
2954
|
label: string | null;
|
|
2960
2955
|
context_window: number | null;
|
|
2961
2956
|
routes: ("api_key" | "local_session")[] | null;
|
|
2957
|
+
origin?: "hint" | "live" | undefined;
|
|
2958
|
+
resolved_model?: string | null | undefined;
|
|
2962
2959
|
}[];
|
|
2963
2960
|
source: "api" | "manifest" | "none";
|
|
2964
2961
|
verifiedAgainst: string | null;
|
|
@@ -2994,6 +2991,8 @@ resources: () => ResourceStore, quotaRegistry: () => QuotaRegistry, daemonJobs:
|
|
|
2994
2991
|
label: string | null;
|
|
2995
2992
|
context_window: number | null;
|
|
2996
2993
|
routes: ("api_key" | "local_session")[] | null;
|
|
2994
|
+
origin?: "hint" | "live" | undefined;
|
|
2995
|
+
resolved_model?: string | null | undefined;
|
|
2997
2996
|
}[];
|
|
2998
2997
|
source: "api" | "manifest" | "none";
|
|
2999
2998
|
verifiedAgainst: string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"control-services.d.ts","sourceRoot":"","sources":["../src/control-services.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,sBAAsB,EAC3B,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,aAAa,EACd,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAI3E,OAAO,EACL,KAAK,qBAAqB,EAG1B,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAG5B,MAAM,mBAAmB,CAAC;AAS3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAG1D,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,wBAAwB,CAAC;AAOhC,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAGrE,OAAO,EAAmB,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAMhF,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAChE,KAAK,YAAY,GAAG,qBAAqB,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;AAsB1E,wBAAgB,eAAe,CAC7B,YAAY,EAAE,mBAAmB,EACjC,QAAQ,EAAE,MAAM,YAAY,EAC5B,OAAO,EAAE,iBAAiB,EAC1B,YAAY,EAAE,YAAY,EAC1B,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,oBAAoB;AACnC;uEACuE;AACvE,SAAS,EAAE,MAAM,aAAa,EAC9B,aAAa,EAAE,MAAM,aAAa,EAClC,UAAU,EAAE,MAAM,OAAO,CACvB,KAAK,CAAC;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAChF,EACD,wBAAwB,CAAC,EAAE,sBAAsB
|
|
1
|
+
{"version":3,"file":"control-services.d.ts","sourceRoot":"","sources":["../src/control-services.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,sBAAsB,EAC3B,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,aAAa,EACd,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAI3E,OAAO,EACL,KAAK,qBAAqB,EAG1B,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAG5B,MAAM,mBAAmB,CAAC;AAS3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAG1D,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,wBAAwB,CAAC;AAOhC,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAGrE,OAAO,EAAmB,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAMhF,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAChE,KAAK,YAAY,GAAG,qBAAqB,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;AAsB1E,wBAAgB,eAAe,CAC7B,YAAY,EAAE,mBAAmB,EACjC,QAAQ,EAAE,MAAM,YAAY,EAC5B,OAAO,EAAE,iBAAiB,EAC1B,YAAY,EAAE,YAAY,EAC1B,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,oBAAoB;AACnC;uEACuE;AACvE,SAAS,EAAE,MAAM,aAAa,EAC9B,aAAa,EAAE,MAAM,aAAa,EAClC,UAAU,EAAE,MAAM,OAAO,CACvB,KAAK,CAAC;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAChF,EACD,wBAAwB,CAAC,EAAE,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
|
|
@@ -13,6 +13,9 @@ export type HarnessProofResult = {
|
|
|
13
13
|
export interface InstallProofRuntime {
|
|
14
14
|
runnerNodePath: string;
|
|
15
15
|
platform: NodeJS.Platform;
|
|
16
|
+
/** The runner Node's architecture: it selects the npm platform package and
|
|
17
|
+
* therefore which package-native Windows image is the launcher. */
|
|
18
|
+
arch: string;
|
|
16
19
|
resolutionSource: NodeJS.ProcessEnv;
|
|
17
20
|
environment: NodeJS.ProcessEnv;
|
|
18
21
|
spawn: typeof spawnSync;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harness-install-proof.d.ts","sourceRoot":"","sources":["../src/harness-install-proof.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"harness-install-proof.d.ts","sourceRoot":"","sources":["../src/harness-install-proof.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAY/C,MAAM,WAAW,qBAAqB;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,kBAAkB,GAC5B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,qBAAqB,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7E,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC1B;uEACmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC;IACpC,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC;IAC/B,KAAK,EAAE,OAAO,SAAS,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,eAAe,EAAE,MAAM,CAAC;CACzB;AA2ED;uDACuD;AACvD,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,mBAAmB,EACzB,OAAO,EAAE,mBAAmB,GAC3B,kBAAkB,CA6EpB;AAED;;;;;gDAKgD;AAChD,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,mBAAmB,GAC3B,kBAAkB,CAmBpB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { readFileSync, realpathSync } from "node:fs";
|
|
2
2
|
import { isAbsolute, join, relative, resolve, sep } from "node:path";
|
|
3
|
-
import { inspectExecutable, isBoundedRegularExecutable, isLaunchableExecutable, resolveHarnessBinary, } from "@claudexor/core";
|
|
3
|
+
import { inspectExecutable, isBoundedRegularExecutable, isLaunchableExecutable, npmGlobalPackagesDir, resolveHarnessBinary, windowsNativeImageDir, } from "@claudexor/core";
|
|
4
4
|
const VERSION_PROBE_MAX_BYTES = 1024 * 1024;
|
|
5
5
|
const VERSION_PROBE_TIMEOUT_MS = 10_000;
|
|
6
6
|
const SCRIPT_VENDOR_VERSION_MAX_CHARS = 256;
|
|
@@ -66,7 +66,7 @@ function proveVersion(installedBinary, runtime, expectedVersion) {
|
|
|
66
66
|
/** Prove an exact npm package and its target-owned launcher, then execute the
|
|
67
67
|
* absolute launcher for a matching version receipt. */
|
|
68
68
|
export function proveInstalledNpm(spec, runtime) {
|
|
69
|
-
const packageRoot = join(spec.vendorRoot,
|
|
69
|
+
const packageRoot = join(npmGlobalPackagesDir(spec.vendorRoot, runtime.platform), ...spec.npmPackage.split("/"));
|
|
70
70
|
let canonicalRoot;
|
|
71
71
|
let canonicalPackageRoot;
|
|
72
72
|
let canonicalPackageJson;
|
|
@@ -98,16 +98,31 @@ export function proveInstalledNpm(spec, runtime) {
|
|
|
98
98
|
reason: `the npm package version is ${packageVersion ?? "missing"}, expected ${spec.expectedVersion}`,
|
|
99
99
|
};
|
|
100
100
|
}
|
|
101
|
+
// POSIX: the npm launcher in the prefix's bin dir. Windows: npm ships only
|
|
102
|
+
// shims there, so the launcher is the vendor's own image inside its platform
|
|
103
|
+
// package — the same dir the harness PATH producer carries (runtime-env.ts).
|
|
104
|
+
const launcherDir = runtime.platform === "win32"
|
|
105
|
+
? windowsNativeImageDir(spec.vendorRoot, spec.npmPackage, runtime.arch)
|
|
106
|
+
: resolve(spec.vendorRoot, "bin");
|
|
107
|
+
if (launcherDir === null) {
|
|
108
|
+
return { ok: false, reason: "this pin has no Claudexor-runnable native Windows image" };
|
|
109
|
+
}
|
|
110
|
+
const launcherSuffix = runtime.platform === "win32" ? ".exe" : "";
|
|
101
111
|
let installedBinary = null;
|
|
102
112
|
for (const binaryName of spec.binaryNames) {
|
|
103
|
-
const
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
if (installedBinary !== null)
|
|
113
|
+
const candidate = resolve(launcherDir, `${binaryName}${launcherSuffix}`);
|
|
114
|
+
if (isLaunchableExecutable(candidate, runtime.platform)) {
|
|
115
|
+
installedBinary = candidate;
|
|
107
116
|
break;
|
|
117
|
+
}
|
|
108
118
|
}
|
|
109
119
|
if (installedBinary === null) {
|
|
110
|
-
return {
|
|
120
|
+
return {
|
|
121
|
+
ok: false,
|
|
122
|
+
reason: runtime.platform === "win32"
|
|
123
|
+
? "the package-native Windows image is missing or not launchable"
|
|
124
|
+
: "the expected npm launcher is missing or not launchable",
|
|
125
|
+
};
|
|
111
126
|
}
|
|
112
127
|
try {
|
|
113
128
|
const inspection = inspectExecutable(installedBinary);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harness-install-proof.js","sourceRoot":"","sources":["../src/harness-install-proof.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AACrE,OAAO,EACL,iBAAiB,EACjB,0BAA0B,EAC1B,sBAAsB,EACtB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"harness-install-proof.js","sourceRoot":"","sources":["../src/harness-install-proof.ts"],"names":[],"mappings":"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"}
|
|
@@ -75,6 +75,6 @@ export interface HarnessInstallerDisclosure {
|
|
|
75
75
|
* exact vendor version was exercised by this release's freshness gates. */
|
|
76
76
|
verification: HarnessInstallVerification;
|
|
77
77
|
}
|
|
78
|
-
export declare function harnessInstallerDisclosure(harness: InstallableHarness, target?: HarnessInstallTarget): HarnessInstallerDisclosure;
|
|
78
|
+
export declare function harnessInstallerDisclosure(harness: InstallableHarness, target?: HarnessInstallTarget, platform?: NodeJS.Platform, arch?: string): HarnessInstallerDisclosure;
|
|
79
79
|
export {};
|
|
80
80
|
//# sourceMappingURL=harness-install-recipes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harness-install-recipes.d.ts","sourceRoot":"","sources":["../src/harness-install-recipes.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAExE,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,kBAAkB,CAE/E;AAED;;yDAEyD;AACzD,eAAO,MAAM,uBAAuB,YAAI,OAAO,EAAE,QAAQ,CAAU,CAAC;AACpE,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5E,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,oBAAoB,CAEnF;AAED,uEAAuE;AACvE,eAAO,MAAM,cAAc,EAAE,MAAM,CACjC,oBAAoB,EACpB;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAOpD,CAAC;AAEF;;;;;;aAMa;AACb,MAAM,MAAM,0BAA0B,GAClC,kBAAkB,GAClB,oBAAoB,GACpB,gBAAgB;AAClB;;qDAEqD;GACnD,qBAAqB,CAAC;AAE1B,eAAO,MAAM,QAAQ,EAAE,OAAO,CAC5B,MAAM,CACJ,kBAAkB,EAClB;IACE,UAAU,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,OAAO,EAAE,sBAAsB,CAAC;IAChC,YAAY,EAAE,OAAO,CAAC,0BAA0B,EAAE,gBAAgB,GAAG,qBAAqB,CAAC,CAAC;CAC7F,CACF,CAoBF,CAAC;AAEF,eAAO,MAAM,kBAAkB,+BAA+B,CAAC;AAC/D;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,8CAA8C,CAAC;AAC3E,wEAAwE;AACxE,eAAO,MAAM,uBAAuB,+CAA+C,CAAC;AAEpF;;2EAE2E;AAC3E,QAAA,MAAM,iBAAiB,EAAE,MAAM,CAC7B,KAAK,GAAG,QAAQ,EAChB;IACE,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,UAAU,EAAE,MAAM,CAAC;CACpB,CAoBF,CAAC;AAEF,KAAK,eAAe,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAC;AAElF;sEACsE;AACtE,wBAAgB,eAAe,CAAC,OAAO,EAAE,kBAAkB,GAAG,eAAe,GAAG,IAAI,CAInF;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,kBAAkB,CAAC;IAC5B,yEAAyE;IACzE,MAAM,EAAE,oBAAoB,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB;;gBAEY;IACZ,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B;;+EAE2E;IAC3E,YAAY,EAAE,0BAA0B,CAAC;CAC1C;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,kBAAkB,EAC3B,MAAM,GAAE,oBAA+B,
|
|
1
|
+
{"version":3,"file":"harness-install-recipes.d.ts","sourceRoot":"","sources":["../src/harness-install-recipes.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAExE,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,kBAAkB,CAE/E;AAED;;yDAEyD;AACzD,eAAO,MAAM,uBAAuB,YAAI,OAAO,EAAE,QAAQ,CAAU,CAAC;AACpE,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5E,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,oBAAoB,CAEnF;AAED,uEAAuE;AACvE,eAAO,MAAM,cAAc,EAAE,MAAM,CACjC,oBAAoB,EACpB;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAOpD,CAAC;AAEF;;;;;;aAMa;AACb,MAAM,MAAM,0BAA0B,GAClC,kBAAkB,GAClB,oBAAoB,GACpB,gBAAgB;AAClB;;qDAEqD;GACnD,qBAAqB,CAAC;AAE1B,eAAO,MAAM,QAAQ,EAAE,OAAO,CAC5B,MAAM,CACJ,kBAAkB,EAClB;IACE,UAAU,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,OAAO,EAAE,sBAAsB,CAAC;IAChC,YAAY,EAAE,OAAO,CAAC,0BAA0B,EAAE,gBAAgB,GAAG,qBAAqB,CAAC,CAAC;CAC7F,CACF,CAoBF,CAAC;AAEF,eAAO,MAAM,kBAAkB,+BAA+B,CAAC;AAC/D;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,8CAA8C,CAAC;AAC3E,wEAAwE;AACxE,eAAO,MAAM,uBAAuB,+CAA+C,CAAC;AAEpF;;2EAE2E;AAC3E,QAAA,MAAM,iBAAiB,EAAE,MAAM,CAC7B,KAAK,GAAG,QAAQ,EAChB;IACE,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,UAAU,EAAE,MAAM,CAAC;CACpB,CAoBF,CAAC;AAEF,KAAK,eAAe,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAC;AAElF;sEACsE;AACtE,wBAAgB,eAAe,CAAC,OAAO,EAAE,kBAAkB,GAAG,eAAe,GAAG,IAAI,CAInF;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,kBAAkB,CAAC;IAC5B,yEAAyE;IACzE,MAAM,EAAE,oBAAoB,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB;;gBAEY;IACZ,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B;;+EAE2E;IAC3E,YAAY,EAAE,0BAA0B,CAAC;CAC1C;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,kBAAkB,EAC3B,MAAM,GAAE,oBAA+B,EACvC,QAAQ,GAAE,MAAM,CAAC,QAA2B,EAC5C,IAAI,GAAE,MAAqB,GAC1B,0BAA0B,CAgD5B"}
|
|
@@ -10,7 +10,7 @@ import { join } from "node:path";
|
|
|
10
10
|
import { CLAUDE_VENDOR_CLI_VERSION } from "@claudexor/harness-claude";
|
|
11
11
|
import { CODEX_VENDOR_CLI_VERSION } from "@claudexor/harness-codex";
|
|
12
12
|
import { OPENCODE_VENDOR_CLI_VERSION } from "@claudexor/harness-opencode";
|
|
13
|
-
import { managedNodeRoot } from "@claudexor/core";
|
|
13
|
+
import { managedNodeRoot, windowsNativeImageSegments } from "@claudexor/core";
|
|
14
14
|
import { INSTALLABLE_HARNESSES } from "./harness-command-specs.js";
|
|
15
15
|
export function isInstallableHarness(value) {
|
|
16
16
|
return INSTALLABLE_HARNESSES.includes(value);
|
|
@@ -91,15 +91,25 @@ export function scriptInstaller(harness) {
|
|
|
91
91
|
? SCRIPT_INSTALLERS[harness]
|
|
92
92
|
: null;
|
|
93
93
|
}
|
|
94
|
-
export function harnessInstallerDisclosure(harness, target = "remote") {
|
|
94
|
+
export function harnessInstallerDisclosure(harness, target = "remote", platform = process.platform, arch = process.arch) {
|
|
95
95
|
const layout = TARGET_LAYOUTS[target];
|
|
96
96
|
const pin = NPM_PINS[harness];
|
|
97
|
+
const windows = platform === "win32";
|
|
97
98
|
if (pin) {
|
|
99
|
+
// A local Windows prefix holds no `bin` dir: npm leaves shims in the prefix
|
|
100
|
+
// root and the launcher is the package-native image (or there is none, and
|
|
101
|
+
// the installer refuses); the remote target is always a POSIX SSH host.
|
|
102
|
+
const nativeImage = windows && target === "local" ? windowsNativeImageSegments(pin.npmPackage, arch) : null;
|
|
103
|
+
const installLocation = windows && target === "local"
|
|
104
|
+
? nativeImage
|
|
105
|
+
? `${layout.displayRoot}/node_modules/${nativeImage.join("/")}`
|
|
106
|
+
: `${layout.displayRoot}/node_modules/${pin.npmPackage} (no Claudexor-runnable Windows image in this release)`
|
|
107
|
+
: `${layout.displayRoot}/bin`;
|
|
98
108
|
return {
|
|
99
109
|
harness,
|
|
100
110
|
target,
|
|
101
111
|
command: `npm install --global --prefix ${layout.displayRoot} ${pin.npmPackage}@${pin.version}`,
|
|
102
|
-
installLocation
|
|
112
|
+
installLocation,
|
|
103
113
|
pinnedVersion: pin.version,
|
|
104
114
|
verification: pin.verification,
|
|
105
115
|
};
|
|
@@ -109,7 +119,6 @@ export function harnessInstallerDisclosure(harness, target = "remote") {
|
|
|
109
119
|
unreachable guard that keeps the two tables honest. */
|
|
110
120
|
if (!script)
|
|
111
121
|
throw new Error(`harness ${harness} has neither an npm pin nor a script installer`);
|
|
112
|
-
const windows = process.platform === "win32";
|
|
113
122
|
const url = windows ? (script.windowsUrl ?? script.url) : script.url;
|
|
114
123
|
const file = windows && script.windowsUrl ? "install.ps1" : "install.sh";
|
|
115
124
|
const runner = windows && script.windowsUrl ? "powershell -ExecutionPolicy Bypass -File" : "/bin/sh";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harness-install-recipes.js","sourceRoot":"","sources":["../src/harness-install-recipes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"harness-install-recipes.js","sourceRoot":"","sources":["../src/harness-install-recipes.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,6 +38,11 @@
|
|
|
38
38
|
* earn its `ok:true`, so exit zero without a resolvable launcher and a
|
|
39
39
|
* matching `--version` is a typed failure, and `installedBinary` /
|
|
40
40
|
* `installedVersion` are present on every local success.
|
|
41
|
+
* - on Windows the local target installs only where the pinned npm package
|
|
42
|
+
* yields a verified package-native image (codex): npm's own `.cmd` shim is
|
|
43
|
+
* never the launcher, the embedded Node's `node_modules/npm/bin/npm-cli.js`
|
|
44
|
+
* runs the install, and the proof executes the image the shared harness
|
|
45
|
+
* PATH resolves; other vendors refuse typed before any side effect.
|
|
41
46
|
* - `--json` keeps stdout pure: exactly ONE JSON object. In json mode every
|
|
42
47
|
* human progress line goes to stderr and child processes (npm/curl/the
|
|
43
48
|
* vendor script) run with their stdout routed onto stderr, so vendor
|
|
@@ -77,6 +82,8 @@ export declare function runHarnessInstaller(harness: InstallableHarness, options
|
|
|
77
82
|
lock?: boolean;
|
|
78
83
|
lockTimeoutMs?: number;
|
|
79
84
|
platform?: NodeJS.Platform;
|
|
85
|
+
/** The runner Node's architecture (npm selects the platform package by it). */
|
|
86
|
+
arch?: string;
|
|
80
87
|
/** Test/integration source before the clean allowlist and target-aware PATH
|
|
81
88
|
* normalization are applied. Provider credentials are still scrubbed. */
|
|
82
89
|
sourceEnv?: NodeJS.ProcessEnv;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harness-installer.d.ts","sourceRoot":"","sources":["../src/harness-installer.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"harness-installer.d.ts","sourceRoot":"","sources":["../src/harness-installer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,OAAO,EAAE,UAAU,EAAE,SAAS,EAA+C,MAAM,SAAS,CAAC;AAU7F,OAAO,EAAqB,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAe/D,OAAO,EAQL,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACxB,MAAM,8BAA8B,CAAC;AAItC,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,kBAAkB,EAClB,uBAAuB,EACvB,0BAA0B,EAC1B,sBAAsB,EACtB,oBAAoB,EACpB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,GACxB,MAAM,8BAA8B,CAAC;AAEtC,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB;+EAC2E;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4EAA4E;IAC5E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,0EAA0E;IAC1E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;mCAC+B;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAsDD,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,kBAAkB,EAC3B,OAAO,GAAE;IACP,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,KAAK,CAAC,EAAE,OAAO,SAAS,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,SAAS,CAAC;IACzB,MAAM,CAAC,EAAE,OAAO,UAAU,CAAC;IAC3B;iEAC6D;IAC7D,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B,+EAA+E;IAC/E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;6EACyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAC9B;;2EAEuE;IACvE,IAAI,CAAC,EAAE,OAAO,CAAC;CACX,GACL,uBAAuB,CAqNzB;AA8CD,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,OAAO;AACb,4EAA4E;AAC5E,aAAa,GAAE,IAAI,CACjB,WAAW,CAAC,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,EACtD,MAAM,GAAG,QAAQ,CACb,GACL,MAAM,CA4ER"}
|
|
@@ -38,6 +38,11 @@
|
|
|
38
38
|
* earn its `ok:true`, so exit zero without a resolvable launcher and a
|
|
39
39
|
* matching `--version` is a typed failure, and `installedBinary` /
|
|
40
40
|
* `installedVersion` are present on every local success.
|
|
41
|
+
* - on Windows the local target installs only where the pinned npm package
|
|
42
|
+
* yields a verified package-native image (codex): npm's own `.cmd` shim is
|
|
43
|
+
* never the launcher, the embedded Node's `node_modules/npm/bin/npm-cli.js`
|
|
44
|
+
* runs the install, and the proof executes the image the shared harness
|
|
45
|
+
* PATH resolves; other vendors refuse typed before any side effect.
|
|
41
46
|
* - `--json` keeps stdout pure: exactly ONE JSON object. In json mode every
|
|
42
47
|
* human progress line goes to stderr and child processes (npm/curl/the
|
|
43
48
|
* vendor script) run with their stdout routed onto stderr, so vendor
|
|
@@ -47,8 +52,8 @@ import { spawnSync } from "node:child_process";
|
|
|
47
52
|
import { createHash } from "node:crypto";
|
|
48
53
|
import { existsSync, mkdirSync, mkdtempSync, readFileSync, readSync, rmSync } from "node:fs";
|
|
49
54
|
import { homedir, tmpdir } from "node:os";
|
|
50
|
-
import {
|
|
51
|
-
import { composeBaseEnv } from "@claudexor/core";
|
|
55
|
+
import { join, resolve } from "node:path";
|
|
56
|
+
import { composeBaseEnv, embeddedNpmCli, pickAllowlistedEnv, WINDOWS_RUNTIME_ENV_KEYS, windowsNativeImageSegments, } from "@claudexor/core";
|
|
52
57
|
import { flagBool, flagStr } from "./args.js";
|
|
53
58
|
import { CliError, renderCliFailure } from "./cli-error.js";
|
|
54
59
|
import { print, printJson, printUsageError } from "./cli-io.js";
|
|
@@ -67,17 +72,23 @@ function verificationFailure(harness, reason, evidence = {}) {
|
|
|
67
72
|
...evidence,
|
|
68
73
|
};
|
|
69
74
|
}
|
|
70
|
-
/**
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
|
|
75
|
+
/** A local Windows install is supported exactly where the pinned npm package
|
|
76
|
+
* yields a verified package-native image for this architecture (core's
|
|
77
|
+
* `windowsNativeImageSegments`); every other vendor refuses typed BEFORE any
|
|
78
|
+
* side effect rather than installing a shim nothing can spawn without a shell
|
|
79
|
+
* (issue #191). The remote target is unaffected. */
|
|
80
|
+
function localPlatformRefusal(harness, platform, arch) {
|
|
74
81
|
if (platform !== "win32")
|
|
75
82
|
return null;
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
83
|
+
const pin = NPM_PINS[harness];
|
|
84
|
+
if (pin && windowsNativeImageSegments(pin.npmPackage, arch) !== null)
|
|
85
|
+
return null;
|
|
86
|
+
const refusal = pin
|
|
87
|
+
? windowsNativeImageSegments(pin.npmPackage, "x64") !== null
|
|
88
|
+
? `${harness} has no native Windows image for the ${arch} architecture in its pinned npm package; nothing was executed`
|
|
89
|
+
: `${harness} local Windows installation is not supported by this release: its pinned npm package has no Claudexor-verified native Windows image, and an npm .cmd shim is never spawned without a shell (issue #191); nothing was executed`
|
|
90
|
+
: `--target local is not supported on Windows for ${harness} by this release; nothing was executed`;
|
|
91
|
+
return { exitCode: 1, code: "unsupported_platform", refusal };
|
|
81
92
|
}
|
|
82
93
|
/** An unexpected throw is still ONE typed JSON object, never a stack trace on
|
|
83
94
|
* a machine caller's stdout. */
|
|
@@ -92,11 +103,16 @@ function harnessInstallException(error) {
|
|
|
92
103
|
});
|
|
93
104
|
}
|
|
94
105
|
export function runHarnessInstaller(harness, options = {}) {
|
|
95
|
-
|
|
106
|
+
// Anchored on the SAME `HOME` the harness PATH producer reads, so the prefix
|
|
107
|
+
// this installs into is the prefix doctor/login/run resolve — on Windows
|
|
108
|
+
// `homedir()` follows USERPROFILE and would silently diverge from a scoped
|
|
109
|
+
// HOME.
|
|
110
|
+
const home = resolve(options.home ?? ((options.sourceEnv ?? process.env).HOME || homedir()));
|
|
96
111
|
const target = options.target ?? "remote";
|
|
97
112
|
const platform = options.platform ?? process.platform;
|
|
113
|
+
const arch = options.arch ?? process.arch;
|
|
98
114
|
if (target === "local") {
|
|
99
|
-
const unsupported = localPlatformRefusal(platform);
|
|
115
|
+
const unsupported = localPlatformRefusal(harness, platform, arch);
|
|
100
116
|
if (unsupported)
|
|
101
117
|
return unsupported;
|
|
102
118
|
}
|
|
@@ -123,13 +139,19 @@ export function runHarnessInstaller(harness, options = {}) {
|
|
|
123
139
|
};
|
|
124
140
|
const environment = {
|
|
125
141
|
...composeBaseEnv("clean", resolutionSource, runnerNodePath, platform),
|
|
142
|
+
// npm and the vendor image cannot start on Windows without the process
|
|
143
|
+
// environment the OS itself resolves against (the login/setup lanes
|
|
144
|
+
// forward the same named set).
|
|
145
|
+
...(platform === "win32"
|
|
146
|
+
? pickAllowlistedEnv(resolutionSource, WINDOWS_RUNTIME_ENV_KEYS, platform)
|
|
147
|
+
: {}),
|
|
126
148
|
HOME: home,
|
|
127
149
|
};
|
|
128
150
|
const pin = NPM_PINS[harness];
|
|
129
151
|
const script = scriptInstaller(harness);
|
|
130
152
|
let npmCLI;
|
|
131
153
|
if (pin) {
|
|
132
|
-
npmCLI =
|
|
154
|
+
npmCLI = embeddedNpmCli(runnerNodePath, platform);
|
|
133
155
|
if (!(options.exists ?? existsSync)(npmCLI)) {
|
|
134
156
|
return {
|
|
135
157
|
exitCode: 1,
|
|
@@ -139,7 +161,7 @@ export function runHarnessInstaller(harness, options = {}) {
|
|
|
139
161
|
};
|
|
140
162
|
}
|
|
141
163
|
}
|
|
142
|
-
const proofRuntime = { runnerNodePath, platform, resolutionSource, environment, spawn };
|
|
164
|
+
const proofRuntime = { runnerNodePath, platform, arch, resolutionSource, environment, spawn };
|
|
143
165
|
// The remote target runs in a PTY the operator is watching and keeps the
|
|
144
166
|
// historical exit-code contract. Only the unattended local target has to
|
|
145
167
|
// prove what it installed.
|
|
@@ -334,11 +356,13 @@ runnerOptions = {}) {
|
|
|
334
356
|
return printUsageError(json, `${INSTALL_USAGE}\nclaudexor: --target must be local or remote`);
|
|
335
357
|
}
|
|
336
358
|
const target = targetValue ?? "remote";
|
|
337
|
-
const
|
|
359
|
+
const platform = runnerOptions.platform ?? process.platform;
|
|
360
|
+
const arch = runnerOptions.arch ?? process.arch;
|
|
361
|
+
const disclosure = harnessInstallerDisclosure(harness, target, platform, arch);
|
|
338
362
|
// Refuse the unsupported layout BEFORE the dry run, so a machine caller's
|
|
339
363
|
// disclosure never advertises an install this host cannot perform.
|
|
340
364
|
if (target === "local") {
|
|
341
|
-
const unsupported = localPlatformRefusal(
|
|
365
|
+
const unsupported = localPlatformRefusal(harness, platform, arch);
|
|
342
366
|
if (unsupported) {
|
|
343
367
|
if (json)
|
|
344
368
|
printJson({ ok: false, dryRun: flagBool(args, "dry-run"), ...unsupported, ...disclosure });
|