@claudexor/orchestrator 3.3.11 → 3.3.13
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/auth-route-classification.d.ts +16 -0
- package/dist/auth-route-classification.d.ts.map +1 -0
- package/dist/auth-route-classification.js +27 -0
- package/dist/auth-route-classification.js.map +1 -0
- package/dist/git-precondition.d.ts.map +1 -1
- package/dist/git-precondition.js +14 -9
- package/dist/git-precondition.js.map +1 -1
- package/dist/orchestrator.d.ts.map +1 -1
- package/dist/orchestrator.js +24 -25
- package/dist/orchestrator.js.map +1 -1
- package/package.json +17 -17
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { AuthPreference } from "@claudexor/schema";
|
|
2
|
+
/**
|
|
3
|
+
* Auth-mode classification for route ranking and billing evidence (#121
|
|
4
|
+
* part 1). Two small total maps keep the ladder in `orderPool` /
|
|
5
|
+
* `routeBillingKnowledge` honest: a lane's classification comes from the
|
|
6
|
+
* FROZEN quota-admission credential route when one exists, else from the
|
|
7
|
+
* RESOLVED auth preference (per-run > per-harness config > global config via
|
|
8
|
+
* `authPreferenceForHarness`) — never from the raw run input, which reads
|
|
9
|
+
* `auto` for every config-level preference user.
|
|
10
|
+
*/
|
|
11
|
+
/** The routing auth mode a frozen quota-admission credential route proves. */
|
|
12
|
+
export declare function authModeForCredentialRoute(route: "managed_api_key" | "vendor_native" | null): "api_key" | "local_session" | null;
|
|
13
|
+
/** The routing auth mode a RESOLVED preference claims; `auto` claims none
|
|
14
|
+
* (the caller falls back to settled-metric/manifest evidence). */
|
|
15
|
+
export declare function authModeForPreference(preference: AuthPreference): "api_key" | "local_session" | null;
|
|
16
|
+
//# sourceMappingURL=auth-route-classification.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-route-classification.d.ts","sourceRoot":"","sources":["../src/auth-route-classification.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD;;;;;;;;GAQG;AAEH,8EAA8E;AAC9E,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,iBAAiB,GAAG,eAAe,GAAG,IAAI,GAChD,SAAS,GAAG,eAAe,GAAG,IAAI,CAIpC;AAED;kEACkE;AAClE,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,cAAc,GACzB,SAAS,GAAG,eAAe,GAAG,IAAI,CAIpC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auth-mode classification for route ranking and billing evidence (#121
|
|
3
|
+
* part 1). Two small total maps keep the ladder in `orderPool` /
|
|
4
|
+
* `routeBillingKnowledge` honest: a lane's classification comes from the
|
|
5
|
+
* FROZEN quota-admission credential route when one exists, else from the
|
|
6
|
+
* RESOLVED auth preference (per-run > per-harness config > global config via
|
|
7
|
+
* `authPreferenceForHarness`) — never from the raw run input, which reads
|
|
8
|
+
* `auto` for every config-level preference user.
|
|
9
|
+
*/
|
|
10
|
+
/** The routing auth mode a frozen quota-admission credential route proves. */
|
|
11
|
+
export function authModeForCredentialRoute(route) {
|
|
12
|
+
if (route === "managed_api_key")
|
|
13
|
+
return "api_key";
|
|
14
|
+
if (route === "vendor_native")
|
|
15
|
+
return "local_session";
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
/** The routing auth mode a RESOLVED preference claims; `auto` claims none
|
|
19
|
+
* (the caller falls back to settled-metric/manifest evidence). */
|
|
20
|
+
export function authModeForPreference(preference) {
|
|
21
|
+
if (preference === "api_key")
|
|
22
|
+
return "api_key";
|
|
23
|
+
if (preference === "subscription")
|
|
24
|
+
return "local_session";
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=auth-route-classification.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-route-classification.js","sourceRoot":"","sources":["../src/auth-route-classification.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAEH,8EAA8E;AAC9E,MAAM,UAAU,0BAA0B,CACxC,KAAiD;IAEjD,IAAI,KAAK,KAAK,iBAAiB;QAAE,OAAO,SAAS,CAAC;IAClD,IAAI,KAAK,KAAK,eAAe;QAAE,OAAO,eAAe,CAAC;IACtD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;kEACkE;AAClE,MAAM,UAAU,qBAAqB,CACnC,UAA0B;IAE1B,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC/C,IAAI,UAAU,KAAK,cAAc;QAAE,OAAO,eAAe,CAAC;IAC1D,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-precondition.d.ts","sourceRoot":"","sources":["../src/git-precondition.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAoB,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEpF,OAAO,
|
|
1
|
+
{"version":3,"file":"git-precondition.d.ts","sourceRoot":"","sources":["../src/git-precondition.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAoB,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEpF,OAAO,EAKL,KAAK,yBAAyB,EAC/B,MAAM,sBAAsB,CAAC;AAI9B,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,SAAS,CAAC;CACnB;AAID,gFAAgF;AAChF,wBAAsB,0BAA0B,CAC9C,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,EAC5C,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,QAAQ,EACd,gBAAgB,GAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,yBAAyB,CAAuB,GAC/F,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAiExC"}
|
package/dist/git-precondition.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { join } from "node:path";
|
|
2
2
|
import { makeOutcomeFacts } from "@claudexor/schema";
|
|
3
3
|
import { noProjectRepoRoot } from "@claudexor/util";
|
|
4
|
-
import { ensureGitRepository, GitCapabilityError, GitInitializationError, } from "@claudexor/workspace";
|
|
4
|
+
import { ensureGitRepository, GitBoundaryRootRefusedError, GitCapabilityError, GitInitializationError, } from "@claudexor/workspace";
|
|
5
5
|
import { writeFailure } from "./runTerminalResults.js";
|
|
6
6
|
import { safeErrorMessage } from "./runSupport.js";
|
|
7
7
|
const NO_PROJECT_ROOT = noProjectRepoRoot();
|
|
@@ -38,20 +38,25 @@ export async function ensureWriteModeGitBoundary(repoRoot, log, store, paths, ru
|
|
|
38
38
|
}
|
|
39
39
|
// This boundary runs before a harness is admitted. Capability, filesystem,
|
|
40
40
|
// and repository-initialization failures are all workspace failures; none
|
|
41
|
-
// is evidence that a provider process failed.
|
|
41
|
+
// is evidence that a provider process failed. A typed boundary-root
|
|
42
|
+
// refusal (home/filesystem root, INV-075) names its own remediations —
|
|
43
|
+
// forward them instead of the generic advice; the reason stays unchanged.
|
|
44
|
+
const refusal = error instanceof GitBoundaryRootRefusedError ? error : null;
|
|
42
45
|
const reason = "workspace_unavailable";
|
|
43
46
|
writeFailure(store, paths, {
|
|
44
47
|
phase: "workspace",
|
|
45
48
|
category: "project",
|
|
46
49
|
safeMessage: message,
|
|
47
50
|
runDir: paths.root,
|
|
48
|
-
nextActions:
|
|
49
|
-
?
|
|
50
|
-
:
|
|
51
|
-
"
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
51
|
+
nextActions: refusal
|
|
52
|
+
? refusal.requiredActions
|
|
53
|
+
: prerequisite
|
|
54
|
+
? [error.capability.remediation ?? "Install Git and retry", "Retry the run"]
|
|
55
|
+
: [
|
|
56
|
+
"Check the project folder permissions",
|
|
57
|
+
"Initialize git manually (git init)",
|
|
58
|
+
"Retry the run",
|
|
59
|
+
],
|
|
55
60
|
});
|
|
56
61
|
store.writeText(join(paths.finalDir, "summary.md"), `# Run ${runId} (${mode})\n\n- Lifecycle: failed\n- Phase: workspace\n\n${message}\n`);
|
|
57
62
|
log.emit("output.ready", { kind: "summary", path: "final/summary.md", state: "diagnostic" });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-precondition.js","sourceRoot":"","sources":["../src/git-precondition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,EAAE,gBAAgB,EAAiC,MAAM,mBAAmB,CAAC;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,GAEvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAOnD,MAAM,eAAe,GAAG,iBAAiB,EAAE,CAAC;AAE5C,gFAAgF;AAChF,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,QAAgB,EAChB,GAAa,EACb,KAAoB,EACpB,KAA4C,EAC5C,KAAa,EACb,IAAc,EACd,gBAAgB,GAA6D,mBAAmB;IAEhG,IAAI,QAAQ,KAAK,eAAe;QAAE,OAAO,IAAI,CAAC;IAC9C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;YACnD,GAAG,CAAC,IAAI,CAAC,yBAAyB,EAAE;gBAClC,SAAS,EAAE,QAAQ;gBACnB,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,kBAAkB,EAAE,MAAM,CAAC,iBAAiB;gBAC5C,gBAAgB,EAAE,MAAM,CAAC,eAAe;gBACxC,QAAQ,EAAE,MAAM,CAAC,OAAO;aACzB,CAAC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,YAAY,GAAG,KAAK,YAAY,kBAAkB,CAAC;QACzD,IAAI,KAAK,YAAY,sBAAsB,EAAE,CAAC;YAC5C,GAAG,CAAC,IAAI,CAAC,yBAAyB,EAAE;gBAClC,SAAS,EAAE,QAAQ;gBACnB,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,WAAW;gBACvC,kBAAkB,EAAE,KAAK,CAAC,QAAQ,CAAC,iBAAiB;gBACpD,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,eAAe;gBAChD,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO;gBAChC,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,WAAW;aACzC,CAAC,CAAC;QACL,CAAC;QACD,2EAA2E;QAC3E,0EAA0E;QAC1E,
|
|
1
|
+
{"version":3,"file":"git-precondition.js","sourceRoot":"","sources":["../src/git-precondition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,EAAE,gBAAgB,EAAiC,MAAM,mBAAmB,CAAC;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EACL,mBAAmB,EACnB,2BAA2B,EAC3B,kBAAkB,EAClB,sBAAsB,GAEvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAOnD,MAAM,eAAe,GAAG,iBAAiB,EAAE,CAAC;AAE5C,gFAAgF;AAChF,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,QAAgB,EAChB,GAAa,EACb,KAAoB,EACpB,KAA4C,EAC5C,KAAa,EACb,IAAc,EACd,gBAAgB,GAA6D,mBAAmB;IAEhG,IAAI,QAAQ,KAAK,eAAe;QAAE,OAAO,IAAI,CAAC;IAC9C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;YACnD,GAAG,CAAC,IAAI,CAAC,yBAAyB,EAAE;gBAClC,SAAS,EAAE,QAAQ;gBACnB,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,kBAAkB,EAAE,MAAM,CAAC,iBAAiB;gBAC5C,gBAAgB,EAAE,MAAM,CAAC,eAAe;gBACxC,QAAQ,EAAE,MAAM,CAAC,OAAO;aACzB,CAAC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,YAAY,GAAG,KAAK,YAAY,kBAAkB,CAAC;QACzD,IAAI,KAAK,YAAY,sBAAsB,EAAE,CAAC;YAC5C,GAAG,CAAC,IAAI,CAAC,yBAAyB,EAAE;gBAClC,SAAS,EAAE,QAAQ;gBACnB,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,WAAW;gBACvC,kBAAkB,EAAE,KAAK,CAAC,QAAQ,CAAC,iBAAiB;gBACpD,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,eAAe;gBAChD,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO;gBAChC,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,WAAW;aACzC,CAAC,CAAC;QACL,CAAC;QACD,2EAA2E;QAC3E,0EAA0E;QAC1E,oEAAoE;QACpE,uEAAuE;QACvE,0EAA0E;QAC1E,MAAM,OAAO,GAAG,KAAK,YAAY,2BAA2B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5E,MAAM,MAAM,GAAc,uBAAuB,CAAC;QAClD,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE;YACzB,KAAK,EAAE,WAAW;YAClB,QAAQ,EAAE,SAAS;YACnB,WAAW,EAAE,OAAO;YACpB,MAAM,EAAE,KAAK,CAAC,IAAI;YAClB,WAAW,EAAE,OAAO;gBAClB,CAAC,CAAC,OAAO,CAAC,eAAe;gBACzB,CAAC,CAAC,YAAY;oBACZ,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,IAAI,uBAAuB,EAAE,eAAe,CAAC;oBAC5E,CAAC,CAAC;wBACE,sCAAsC;wBACtC,oCAAoC;wBACpC,eAAe;qBAChB;SACR,CAAC,CAAC;QACH,KAAK,CAAC,SAAS,CACb,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,YAAY,CAAC,EAClC,SAAS,KAAK,KAAK,IAAI,mDAAmD,OAAO,IAAI,CACtF,CAAC;QACF,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;QAC7F,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE;YACrB,SAAS,EAAE,QAAQ;YACnB,KAAK,EAAE,gBAAgB,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC;YAC7C,MAAM;YACN,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,OAAO;YACd,WAAW,EAAE,oBAAoB;SAClC,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAC7B,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"AAgDA,OAAO,KAAK,EACV,aAAa,EAKb,UAAU,EACV,yBAAyB,EACzB,UAAU,EACV,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,YAAY,EAEZ,wBAAwB,EACxB,kBAAkB,EAClB,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,aAAa,EACb,WAAW,EACX,qBAAqB,EAErB,4BAA4B,EAE5B,QAAQ,EACR,YAAY,EACZ,eAAe,EAEf,qBAAqB,EACrB,cAAc,EAEd,iBAAiB,EACjB,uBAAuB,EAEvB,gBAAgB,EAEjB,MAAM,mBAAmB,CAAC;AAO3B,OAAO,EAEL,KAAK,kBAAkB,EAEvB,KAAK,qBAAqB,EAC3B,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACrF,OAAO,EAEL,KAAK,cAAc,EASpB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAsB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"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"}
|
package/dist/orchestrator.js
CHANGED
|
@@ -15,6 +15,7 @@ import { HarnessRunSpec, ModeKind as ModeKindSchema, QuotaSnapshot as QuotaSnaps
|
|
|
15
15
|
import { globalConfigDir, loadConfig } from "@claudexor/config";
|
|
16
16
|
import { AnswerAssembly, CLAUDEXOR_ARTIFACT_DIR, CLAUDEXOR_BROWSER_ARTIFACT_SUBDIR, countsAsAgentProgress, HarnessUnavailableError, summarizeDiffPaths as diffStats, withInactivityWatchdog, } from "@claudexor/core";
|
|
17
17
|
import { assertRouteModelsAllowed } from "./modelGovernance.js";
|
|
18
|
+
import { authModeForCredentialRoute, authModeForPreference } from "./auth-route-classification.js";
|
|
18
19
|
import { governRouteEffort } from "./effortGovernance.js";
|
|
19
20
|
import { isFullAccess, RequestRequirementsResolver } from "./requestRequirements.js";
|
|
20
21
|
import { activateDelegationParent } from "./delegation-parent-activation.js";
|
|
@@ -919,21 +920,17 @@ export class Orchestrator {
|
|
|
919
920
|
: authModes.includes("api_key")
|
|
920
921
|
? "api_key"
|
|
921
922
|
: "unknown";
|
|
922
|
-
// The quota-
|
|
923
|
-
//
|
|
924
|
-
//
|
|
925
|
-
// subscription classification from the default store's metric.
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
? "api_key"
|
|
934
|
-
: input.authPreference === "subscription"
|
|
935
|
-
? "local_session"
|
|
936
|
-
: (metric?.last_auth_mode ?? guessedAuthMode));
|
|
923
|
+
// The FROZEN quota-admission route decides outright (round-18 #2):
|
|
924
|
+
// the admitted profile's credential_kind when a profile exists, else
|
|
925
|
+
// the config-aware estimate — an api_key lane must never inherit a
|
|
926
|
+
// subscription classification from the default store's metric. With
|
|
927
|
+
// no route fact, the RESOLVED preference (per-run > per-harness
|
|
928
|
+
// config > global config) speaks, never the raw run input (#121);
|
|
929
|
+
// only then the last settled metric / manifest guess.
|
|
930
|
+
const authMode = authModeForCredentialRoute(r.quotaAdmission.route) ??
|
|
931
|
+
authModeForPreference(this.authPreferenceForHarness(input.repoRoot, r.adapter.id, input.authPreference)) ??
|
|
932
|
+
metric?.last_auth_mode ??
|
|
933
|
+
guessedAuthMode;
|
|
937
934
|
// The exact quota subject selected before ranking: profile id or the
|
|
938
935
|
// engine default. Profile A's cooldown never excludes profile B or the
|
|
939
936
|
// default on the same harness and route.
|
|
@@ -1971,11 +1968,11 @@ export class Orchestrator {
|
|
|
1971
1968
|
store.writeYaml(join(paths.contextDir, "task.yaml"), contract);
|
|
1972
1969
|
log.emit("task.contract.created", { task_contract_hash: hashJson(contract) });
|
|
1973
1970
|
// Write modes need a git boundary for worktree isolation and honest diffs.
|
|
1974
|
-
// A non-git project folder is initialized automatically (
|
|
1975
|
-
//
|
|
1976
|
-
//
|
|
1977
|
-
//
|
|
1978
|
-
//
|
|
1971
|
+
// A non-git project folder is initialized automatically (baseline commit),
|
|
1972
|
+
// announced in the timeline — except an implausible root (the user home
|
|
1973
|
+
// directory, a filesystem root, or one that cannot be classified), which
|
|
1974
|
+
// gets a typed refusal BEFORE any mutation (INV-075). For an isolated
|
|
1975
|
+
// thread the execution root is already a git worktree: a no-op there.
|
|
1979
1976
|
const gitPreconditionError = await ensureWriteModeGitBoundary(execRoot, log, store, paths, runId, mode);
|
|
1980
1977
|
if (gitPreconditionError) {
|
|
1981
1978
|
return {
|
|
@@ -3304,7 +3301,7 @@ export class Orchestrator {
|
|
|
3304
3301
|
// review, which needs >=2 healthy reviewer provider families.
|
|
3305
3302
|
if (contract.convergence.require_final_cross_family_clean_review && !reviewVerified) {
|
|
3306
3303
|
const message = `convergence requires a cross-family clean review (>=2 healthy reviewer provider families); found ${new Set(reviewers.map((r) => r.providerFamily)).size}. ` +
|
|
3307
|
-
"Configure reviewers
|
|
3304
|
+
"Configure reviewers from a second provider family and check `claudexor doctor` for reviewer readiness.";
|
|
3308
3305
|
store.writeText(join(paths.contextDir, "context_error.md"), `# Convergence Preflight Error\n\n${message}\n`);
|
|
3309
3306
|
writeFailure(store, paths, {
|
|
3310
3307
|
phase: "review",
|
|
@@ -4352,10 +4349,12 @@ export class Orchestrator {
|
|
|
4352
4349
|
const profileRoute = this.profileAuthRoute(input, harnessId);
|
|
4353
4350
|
if (profileRoute)
|
|
4354
4351
|
return profileRoute === "api_key" ? "metered" : "unknown";
|
|
4355
|
-
|
|
4356
|
-
|
|
4357
|
-
|
|
4358
|
-
|
|
4352
|
+
// Deps-closure site: no selected route exists yet, so the RESOLVED
|
|
4353
|
+
// preference (per-run > per-harness config > global) speaks — never the
|
|
4354
|
+
// raw run input (#121).
|
|
4355
|
+
const mode = authModeForPreference(this.authPreferenceForHarness(input.repoRoot, harnessId, input.authPreference));
|
|
4356
|
+
if (mode)
|
|
4357
|
+
return mode === "api_key" ? "metered" : "unknown";
|
|
4359
4358
|
return loadHarnessMetrics(globalConfigDir())[harnessId]?.last_auth_mode === "api_key"
|
|
4360
4359
|
? "metered"
|
|
4361
4360
|
: "unknown";
|