@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.
Files changed (40) hide show
  1. package/dist/accounts-services.d.ts +2 -8
  2. package/dist/accounts-services.d.ts.map +1 -1
  3. package/dist/accounts-services.js +7 -7
  4. package/dist/accounts-services.js.map +1 -1
  5. package/dist/capabilities.d.ts.map +1 -1
  6. package/dist/capabilities.js +20 -10
  7. package/dist/capabilities.js.map +1 -1
  8. package/dist/control-services.d.ts +7 -8
  9. package/dist/control-services.d.ts.map +1 -1
  10. package/dist/harness-install-proof.d.ts +3 -0
  11. package/dist/harness-install-proof.d.ts.map +1 -1
  12. package/dist/harness-install-proof.js +22 -7
  13. package/dist/harness-install-proof.js.map +1 -1
  14. package/dist/harness-install-recipes.d.ts +1 -1
  15. package/dist/harness-install-recipes.d.ts.map +1 -1
  16. package/dist/harness-install-recipes.js +13 -4
  17. package/dist/harness-install-recipes.js.map +1 -1
  18. package/dist/harness-installer.d.ts +7 -0
  19. package/dist/harness-installer.d.ts.map +1 -1
  20. package/dist/harness-installer.js +41 -17
  21. package/dist/harness-installer.js.map +1 -1
  22. package/dist/model-services.d.ts +4 -0
  23. package/dist/model-services.d.ts.map +1 -1
  24. package/dist/model-services.js +2 -2
  25. package/dist/model-services.js.map +1 -1
  26. package/dist/ops-commands.d.ts.map +1 -1
  27. package/dist/ops-commands.js +8 -1
  28. package/dist/ops-commands.js.map +1 -1
  29. package/dist/registry.d.ts +25 -2
  30. package/dist/registry.d.ts.map +1 -1
  31. package/dist/registry.js +67 -24
  32. package/dist/registry.js.map +1 -1
  33. package/dist/settings-command.d.ts.map +1 -1
  34. package/dist/settings-command.js +5 -1
  35. package/dist/settings-command.js.map +1 -1
  36. package/dist/settings-service.d.ts +6 -2
  37. package/dist/settings-service.d.ts.map +1 -1
  38. package/dist/settings-service.js +24 -11
  39. package/dist/settings-service.js.map +1 -1
  40. 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;AAI5E,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;;;;;;;;;;;;;gBAMpD,IAAI,GAAG,UAAU;kBAAY,MAAM,GAAG,IAAI;;;;;;;;;;;;;;;;;;KA0BpE;AAED;;;;oEAIoE;AACpE,wBAAgB,+BAA+B,CAAC,aAAa,EAAE,MAAM,aAAa;iCAgCtC;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAjEvC,IAAI,GAAG,UAAU;0BAAY,MAAM,GAAG,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsGpE"}
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, harnessModels } from "./registry.js";
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
- let check = null;
20
- if (configured) {
21
- const truth = await harnessModels(status.id, NO_PROJECT_ROOT, true);
22
- check = validateModel(configured, truth.models.map((model) => model.id), truth.source === "api" ? "api" : "manifest");
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":"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"}
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;AAW3B,8EAA8E;AAC9E,wBAAgB,YAAY,IAAI,SAAS,MAAM,EAAE,CAEhD;AAKD;;;;;;;GAOG;AACH,wBAAsB,2BAA2B,IAAI,OAAO,CAAC,sBAAsB,CAAC,CAuGnF"}
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"}
@@ -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, harnessModels } from "./registry.js";
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
- const check = configured
44
- ? validateModel(configured, truth.models.map((m) => m.id), truth.source === "api" ? "api" : "manifest")
45
- : null;
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.
@@ -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,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAE5E,8EAA8E;AAC9E,MAAM,UAAU,YAAY;IAC1B,OAAO,qBAAqB,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAClE,CAAC;AAED,gFAAgF;AAChF,MAAM,eAAe,GAAG,gCAAgC,CAAC;AAEzD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B;IAC/C,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACxC,YAAY,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,CAAC;QACzE,kBAAkB,EAAE;KACrB,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,aAAa,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;IAExD,MAAM,SAAS,GAAqB,MAAM,OAAO,CAAC,GAAG,CACnD,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;QACvB,kEAAkE;QAClE,oEAAoE;QACpE,qEAAqE;QACrE,MAAM,KAAK,GAAiC,MAAM,aAAa,CAC7D,CAAC,CAAC,EAAE,EACJ,eAAe,EACf,KAAK,CACN,CAAC,KAAK,CAAC,GAAiC,EAAE,CAAC,CAAC;YAC3C,SAAS,EAAE,CAAC,CAAC,EAAE;YACf,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,MAAM;YACd,eAAe,EAAE,IAAI;SACtB,CAAC,CAAC,CAAC;QACJ,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,aAAa,IAAI,IAAI,CAAC;QACrE,MAAM,KAAK,GAAG,UAAU;YACtB,CAAC,CAAC,aAAa,CACX,UAAU,EACV,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAC7B,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAC5C;YACH,CAAC,CAAC,IAAI,CAAC;QACT,MAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,EAAE,kBAAkB,CAAC;QAC/C,0EAA0E;QAC1E,uEAAuE;QACvE,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,KAAK,KAAK,CAAC;QAC9D,OAAO;YACL,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,OAAO;YACP,WAAW,EAAE,CAAC,CAAC,QAAQ,EAAE,YAAY,IAAI,CAAC,CAAC,EAAE;YAC7C,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,cAAc,EAAE,CAAC,CAAC,QAAQ,EAAE,eAAe,IAAI,SAAS;YACxD,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC;YACrC,eAAe,EAAE,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC;YACvC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;YACvB,eAAe,EAAE,UAAU;YAC3B,oBAAoB,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI;YAC1D,MAAM,EAAE;gBACN,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM;gBAC1B,eAAe,EAAE,KAAK,CAAC,eAAe;aACvC;YACD,SAAS,EAAE,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,UAAU,IAAI,MAAM;YACxD,gBAAgB,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,iBAAiB,IAAI,EAAE,CAAC,CAAC;YACzD,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;YACjE,qBAAqB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC;YACnF,cAAc,EAAE,IAAI;YACpB,uBAAuB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,yBAAyB,IAAI,EAAE,CAAC,CAAC;YAC3E,iBAAiB,EAAE,OAAO,EAAE,cAAc,CAAC,kBAAkB,IAAI,MAAM;YACvE,cAAc,EAAE,OAAO,EAAE,cAAc,CAAC,eAAe,IAAI,MAAM;YACjE,UAAU,EAAE,uBAAuB,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC/C,UAAU,EAAE,MAAM,6BAA6B,CAAC,CAAC,CAAC,EAAE,EAAE;gBACpD,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;aACrC,CAAC;SACH,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;IAEF,yEAAyE;IACzE,wEAAwE;IACxE,6EAA6E;IAC7E,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAS,8BAA8B,CAAC,CAAC;IACjE,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC;SAC7D,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SAC/B,IAAI,EAAE,CAAC;IAEV,OAAO,sBAAsB,CAAC,KAAK,CAAC;QAClC,EAAE,EAAE,IAAI;QACR,OAAO,EAAE,iBAAiB;QAC1B,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACrC,GAAG;QACH,SAAS;QACT,kBAAkB,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5F,KAAK,EAAE,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC;QAC5B,cAAc;QACd,oBAAoB,EAAE,sBAAsB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;QAC/E,UAAU,EAAE;YACV,cAAc,EAAE,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC;YAC1C,aAAa,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC;YAC5E,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC;YAC1E,cAAc,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC;YACpC,cAAc,EAAE,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC;YAC1C,cAAc,EAAE,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC;YAC1C,UAAU,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC;SAChD;QACD,WAAW,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACpC,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,QAAQ,EAAE,CAAC,CAAC,QAAQ,KAAK,IAAI;SAC9B,CAAC,CAAC;QACH,QAAQ,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC;QAC7B,cAAc,EAAE,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC;KAC3C,CAAC,CAAC;AACL,CAAC"}
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,EACL,YAAY,EACZ,aAAa,EACb,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAE5E,8EAA8E;AAC9E,MAAM,UAAU,YAAY;IAC1B,OAAO,qBAAqB,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAClE,CAAC;AAED,gFAAgF;AAChF,MAAM,eAAe,GAAG,gCAAgC,CAAC;AAEzD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B;IAC/C,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACxC,YAAY,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,CAAC;QACzE,kBAAkB,EAAE;KACrB,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,aAAa,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;IAExD,MAAM,SAAS,GAAqB,MAAM,OAAO,CAAC,GAAG,CACnD,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;QACvB,kEAAkE;QAClE,oEAAoE;QACpE,qEAAqE;QACrE,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,aAAa,IAAI,IAAI,CAAC;QACrE,4DAA4D;QAC5D,oEAAoE;QACpE,0DAA0D;QAC1D,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,iBAAiB,CAAC,CAAC,CAAC,EAAE,EAAE,eAAe,EAAE,KAAK,CAAC;aAC3E,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACf,KAAK,EAAE,IAAI,CAAC,QAAQ;YACpB,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,sBAAsB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI;SACpE,CAAC,CAAC;aACF,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YACZ,KAAK,EAAE;gBACL,SAAS,EAAE,CAAC,CAAC,EAAE;gBACf,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,MAAM;gBACd,eAAe,EAAE,IAAI;aACiB;YACxC,kEAAkE;YAClE,iEAAiE;YACjE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI;SACtF,CAAC,CAAC,CAAC;QACN,MAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,EAAE,kBAAkB,CAAC;QAC/C,0EAA0E;QAC1E,uEAAuE;QACvE,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,KAAK,KAAK,CAAC;QAC9D,OAAO;YACL,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,OAAO;YACP,WAAW,EAAE,CAAC,CAAC,QAAQ,EAAE,YAAY,IAAI,CAAC,CAAC,EAAE;YAC7C,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,cAAc,EAAE,CAAC,CAAC,QAAQ,EAAE,eAAe,IAAI,SAAS;YACxD,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC;YACrC,eAAe,EAAE,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC;YACvC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;YACvB,eAAe,EAAE,UAAU;YAC3B,oBAAoB,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI;YAC1D,MAAM,EAAE;gBACN,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM;gBAC1B,eAAe,EAAE,KAAK,CAAC,eAAe;aACvC;YACD,SAAS,EAAE,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,UAAU,IAAI,MAAM;YACxD,gBAAgB,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,iBAAiB,IAAI,EAAE,CAAC,CAAC;YACzD,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;YACjE,qBAAqB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC;YACnF,cAAc,EAAE,IAAI;YACpB,uBAAuB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,yBAAyB,IAAI,EAAE,CAAC,CAAC;YAC3E,iBAAiB,EAAE,OAAO,EAAE,cAAc,CAAC,kBAAkB,IAAI,MAAM;YACvE,cAAc,EAAE,OAAO,EAAE,cAAc,CAAC,eAAe,IAAI,MAAM;YACjE,UAAU,EAAE,uBAAuB,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC/C,UAAU,EAAE,MAAM,6BAA6B,CAAC,CAAC,CAAC,EAAE,EAAE;gBACpD,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;aACrC,CAAC;SACH,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;IAEF,yEAAyE;IACzE,wEAAwE;IACxE,6EAA6E;IAC7E,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAS,8BAA8B,CAAC,CAAC;IACjE,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC;SAC7D,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SAC/B,IAAI,EAAE,CAAC;IAEV,OAAO,sBAAsB,CAAC,KAAK,CAAC;QAClC,EAAE,EAAE,IAAI;QACR,OAAO,EAAE,iBAAiB;QAC1B,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACrC,GAAG;QACH,SAAS;QACT,kBAAkB,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5F,KAAK,EAAE,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC;QAC5B,cAAc;QACd,oBAAoB,EAAE,sBAAsB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;QAC/E,UAAU,EAAE;YACV,cAAc,EAAE,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC;YAC1C,aAAa,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC;YAC5E,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC;YAC1E,cAAc,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC;YACpC,cAAc,EAAE,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC;YAC1C,cAAc,EAAE,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC;YAC1C,UAAU,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC;SAChD;QACD,WAAW,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACpC,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,QAAQ,EAAE,CAAC,CAAC,QAAQ,KAAK,IAAI;SAC9B,CAAC,CAAC;QACH,QAAQ,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC;QAC7B,cAAc,EAAE,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC;KAC3C,CAAC,CAAC;AACL,CAAC"}
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
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;AAU/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,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,CAyDpB;AAED;;;;;gDAKgD;AAChD,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,mBAAmB,GAC3B,kBAAkB,CAmBpB"}
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, "lib", "node_modules", ...spec.npmPackage.split("/"));
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 base = resolve(spec.vendorRoot, "bin", binaryName);
104
- const candidates = runtime.platform === "win32" ? [base, `${base}.exe`, `${base}.cmd`, `${base}.bat`] : [base];
105
- installedBinary = candidates.find((candidate) => isLaunchableExecutable(candidate)) ?? null;
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 { ok: false, reason: "the expected npm launcher is missing or not launchable" };
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":"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"}
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,GACtC,0BAA0B,CAqC5B"}
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: `${layout.displayRoot}/bin`,
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;AAElD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAInE,MAAM,UAAU,oBAAoB,CAAC,KAAa;IAChD,OAAO,qBAAqB,CAAC,QAAQ,CAAC,KAA2B,CAAC,CAAC;AACrE,CAAC;AAED;;yDAEyD;AACzD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAU,CAAC;AAGpE,MAAM,UAAU,sBAAsB,CAAC,KAAa;IAClD,OAAO,uBAAuB,CAAC,QAAQ,CAAC,KAA6B,CAAC,CAAC;AACzE,CAAC;AAED,uEAAuE;AACvE,MAAM,CAAC,MAAM,cAAc,GAGvB;IACF,KAAK,EAAE,EAAE,WAAW,EAAE,mBAAmB,EAAE,IAAI,EAAE,eAAe,EAAE;IAClE,MAAM,EAAE;QACN,WAAW,EAAE,4BAA4B;QACzC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,CAAC;KAC7D;CACF,CAAC;AAkBF,MAAM,CAAC,MAAM,QAAQ,GAWjB;IACF,MAAM,EAAE;QACN,UAAU,EAAE,2BAA2B;QACvC,WAAW,EAAE,CAAC,QAAQ,CAAC;QACvB,OAAO,EAAE,yBAAyB;QAClC,YAAY,EAAE,kBAAkB;KACjC;IACD,KAAK,EAAE;QACL,UAAU,EAAE,eAAe;QAC3B,WAAW,EAAE,CAAC,OAAO,CAAC;QACtB,OAAO,EAAE,wBAAwB;QACjC,YAAY,EAAE,kBAAkB;KACjC;IACD,QAAQ,EAAE;QACR,UAAU,EAAE,aAAa;QACzB,WAAW,EAAE,CAAC,UAAU,CAAC;QACzB,OAAO,EAAE,2BAA2B;QACpC,YAAY,EAAE,oBAAoB;KACnC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,4BAA4B,CAAC;AAC/D;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,2CAA2C,CAAC;AAC3E,wEAAwE;AACxE,MAAM,CAAC,MAAM,uBAAuB,GAAG,4CAA4C,CAAC;AAEpF;;2EAE2E;AAC3E,MAAM,iBAAiB,GAUnB;IACF,GAAG,EAAE;QACH,UAAU,EAAE,KAAK;QACjB,GAAG,EAAE,eAAe;QACpB,yEAAyE;QACzE,mEAAmE;QACnE,UAAU,EAAE,uBAAuB;QACnC,eAAe,EAAE,8DAA8D;QAC/E,OAAO,EACL,wKAAwK;KAC3K;IACD,MAAM,EAAE;QACN,oEAAoE;QACpE,UAAU,EAAE,cAAc;QAC1B,GAAG,EAAE,kBAAkB;QACvB,eAAe,EAAE,oEAAoE;QACrF,OAAO,EACL,mKAAmK;KACtK;CACF,CAAC;AAIF;sEACsE;AACtE,MAAM,UAAU,eAAe,CAAC,OAA2B;IACzD,OAAO,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,OAAO,CAAC;QAC9C,CAAC,CAAC,iBAAiB,CAAC,OAAyC,CAAC;QAC9D,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAkBD,MAAM,UAAU,0BAA0B,CACxC,OAA2B,EAC3B,MAAM,GAAyB,QAAQ;IAEvC,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC9B,IAAI,GAAG,EAAE,CAAC;QACR,OAAO;YACL,OAAO;YACP,MAAM;YACN,OAAO,EAAE,iCAAiC,MAAM,CAAC,WAAW,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,OAAO,EAAE;YAC/F,eAAe,EAAE,GAAG,MAAM,CAAC,WAAW,MAAM;YAC5C,aAAa,EAAE,GAAG,CAAC,OAAO;YAC1B,YAAY,EAAE,GAAG,CAAC,YAAY;SAC/B,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACxC;6DACyD;IACzD,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,WAAW,OAAO,gDAAgD,CAAC,CAAC;IACjG,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;IAC7C,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;IACrE,MAAM,IAAI,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC;IACzE,MAAM,MAAM,GACV,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,0CAA0C,CAAC,CAAC,CAAC,SAAS,CAAC;IACxF,OAAO;QACL,OAAO;QACP,MAAM;QACN,OAAO,EACL,gDAAgD,GAAG,GAAG;YACtD,6BAA6B,IAAI,OAAO,MAAM,qBAAqB,IAAI,EAAE;QAC3E,0EAA0E;QAC1E,6DAA6D;QAC7D,eAAe,EACb,OAAO,IAAI,MAAM,CAAC,UAAU;YAC1B,CAAC,CAAC,0EAA0E;YAC5E,CAAC,CAAC,MAAM,CAAC,eAAe;QAC5B,aAAa,EAAE,IAAI;QACnB,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,gBAAgB;KAC5E,CAAC;AACJ,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,OAAO,EAAE,UAAU,EAAE,SAAS,EAA+C,MAAM,SAAS,CAAC;AAI7F,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;AA6CD,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;6EACyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAC9B;;2EAEuE;IACvE,IAAI,CAAC,EAAE,OAAO,CAAC;CACX,GACL,uBAAuB,CAkNzB;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,CA0ER"}
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 { dirname, join, resolve } from "node:path";
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
- /** The managed toolchain root and its npm/PATH contract are POSIX-only in this
71
- * release, so the local target refuses on Windows instead of installing into a
72
- * prefix nothing would then resolve. The remote target is unaffected. */
73
- function localPlatformRefusal(platform) {
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
- return {
77
- exitCode: 1,
78
- code: "unsupported_platform",
79
- refusal: "--target local is not supported on Windows by this release; nothing was executed",
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
- const home = resolve(options.home ?? homedir());
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 = resolve(dirname(runnerNodePath), "..", "lib", "node_modules", "npm", "bin", "npm-cli.js");
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 disclosure = harnessInstallerDisclosure(harness, target);
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(runnerOptions.platform ?? process.platform);
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 });