@claudexor/orchestrator 4.8.2 → 5.0.1
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/account-pool.d.ts +4 -1
- package/dist/account-pool.d.ts.map +1 -1
- package/dist/account-pool.js +25 -19
- package/dist/account-pool.js.map +1 -1
- package/dist/account-resolution.d.ts +1 -4
- package/dist/account-resolution.d.ts.map +1 -1
- package/dist/account-resolution.js +19 -42
- package/dist/account-resolution.js.map +1 -1
- package/dist/attemptOutputMarkers.d.ts +7 -0
- package/dist/attemptOutputMarkers.d.ts.map +1 -1
- package/dist/attemptOutputMarkers.js +1 -1
- package/dist/attemptOutputMarkers.js.map +1 -1
- package/dist/attemptTelemetry.d.ts +4 -1
- package/dist/attemptTelemetry.d.ts.map +1 -1
- package/dist/attemptTelemetry.js +9 -26
- package/dist/attemptTelemetry.js.map +1 -1
- package/dist/candidateEvidence.d.ts +12 -9
- package/dist/candidateEvidence.d.ts.map +1 -1
- package/dist/candidateEvidence.js +38 -13
- package/dist/candidateEvidence.js.map +1 -1
- package/dist/candidateOutputs.d.ts +44 -22
- package/dist/candidateOutputs.d.ts.map +1 -1
- package/dist/candidateOutputs.js +116 -72
- package/dist/candidateOutputs.js.map +1 -1
- package/dist/candidateReview.d.ts.map +1 -1
- package/dist/candidateReview.js +44 -8
- package/dist/candidateReview.js.map +1 -1
- package/dist/candidateTerminals.d.ts +1 -0
- package/dist/candidateTerminals.d.ts.map +1 -1
- package/dist/candidateTerminals.js +11 -6
- package/dist/candidateTerminals.js.map +1 -1
- package/dist/candidateWorkProduct.d.ts +2 -1
- package/dist/candidateWorkProduct.d.ts.map +1 -1
- package/dist/candidateWorkProduct.js +6 -3
- package/dist/candidateWorkProduct.js.map +1 -1
- package/dist/captureRefusal.d.ts +29 -1
- package/dist/captureRefusal.d.ts.map +1 -1
- package/dist/captureRefusal.js +114 -8
- package/dist/captureRefusal.js.map +1 -1
- package/dist/continuation-chain.test-support.d.ts +473 -0
- package/dist/continuation-chain.test-support.d.ts.map +1 -0
- package/dist/continuation-chain.test-support.js +206 -0
- package/dist/continuation-chain.test-support.js.map +1 -0
- package/dist/continuation-custody.d.ts +4 -1
- package/dist/continuation-custody.d.ts.map +1 -1
- package/dist/continuation-custody.js +68 -28
- package/dist/continuation-custody.js.map +1 -1
- package/dist/continuation-evidence-io.d.ts +30 -4
- package/dist/continuation-evidence-io.d.ts.map +1 -1
- package/dist/continuation-evidence-io.js +162 -46
- package/dist/continuation-evidence-io.js.map +1 -1
- package/dist/continuation-evidence.d.ts +40 -3
- package/dist/continuation-evidence.d.ts.map +1 -1
- package/dist/continuation-evidence.js +85 -11
- package/dist/continuation-evidence.js.map +1 -1
- package/dist/continuation-input.d.ts +10 -1
- package/dist/continuation-input.d.ts.map +1 -1
- package/dist/continuation-input.js +21 -20
- package/dist/continuation-input.js.map +1 -1
- package/dist/continuation-later.d.ts +30 -0
- package/dist/continuation-later.d.ts.map +1 -0
- package/dist/continuation-later.js +108 -0
- package/dist/continuation-later.js.map +1 -0
- package/dist/continue-from.d.ts +4 -3
- package/dist/continue-from.d.ts.map +1 -1
- package/dist/continue-from.js +62 -26
- package/dist/continue-from.js.map +1 -1
- package/dist/continuity-notice.d.ts +3 -1
- package/dist/continuity-notice.d.ts.map +1 -1
- package/dist/continuity-notice.js +3 -1
- package/dist/continuity-notice.js.map +1 -1
- package/dist/continuity-terminal.d.ts +16 -0
- package/dist/continuity-terminal.d.ts.map +1 -1
- package/dist/continuity-terminal.js +21 -0
- package/dist/continuity-terminal.js.map +1 -1
- package/dist/continuity.d.ts +1 -1
- package/dist/continuity.d.ts.map +1 -1
- package/dist/contract-gates.d.ts.map +1 -1
- package/dist/contract-gates.js +11 -6
- package/dist/contract-gates.js.map +1 -1
- package/dist/credential-cooldown.d.ts +2 -1
- package/dist/credential-cooldown.d.ts.map +1 -1
- package/dist/credential-cooldown.js +16 -7
- package/dist/credential-cooldown.js.map +1 -1
- package/dist/credential-preflight.d.ts.map +1 -1
- package/dist/credential-preflight.js +10 -7
- package/dist/credential-preflight.js.map +1 -1
- package/dist/credential-profile-rotation.d.ts +10 -3
- package/dist/credential-profile-rotation.d.ts.map +1 -1
- package/dist/credential-profile-rotation.js +28 -26
- package/dist/credential-profile-rotation.js.map +1 -1
- package/dist/deepScanReducer.d.ts +0 -3
- package/dist/deepScanReducer.d.ts.map +1 -1
- package/dist/deepScanReducer.js +22 -26
- package/dist/deepScanReducer.js.map +1 -1
- package/dist/delegationFailure.d.ts +34 -5
- package/dist/delegationFailure.d.ts.map +1 -1
- package/dist/delegationFailure.js +6 -4
- package/dist/delegationFailure.js.map +1 -1
- package/dist/delegationToolEvidence.d.ts +2 -0
- package/dist/delegationToolEvidence.d.ts.map +1 -1
- package/dist/delegationToolEvidence.js +21 -0
- package/dist/delegationToolEvidence.js.map +1 -1
- package/dist/diffReview.d.ts +1 -8
- package/dist/diffReview.d.ts.map +1 -1
- package/dist/diffReview.js +3 -18
- package/dist/diffReview.js.map +1 -1
- package/dist/directoryCandidate.d.ts +1 -1
- package/dist/directoryCandidate.d.ts.map +1 -1
- package/dist/directoryCandidate.js +13 -13
- package/dist/directoryCandidate.js.map +1 -1
- package/dist/inrun-continuity-carrier.d.ts +11 -1
- package/dist/inrun-continuity-carrier.d.ts.map +1 -1
- package/dist/inrun-continuity-carrier.js +32 -10
- package/dist/inrun-continuity-carrier.js.map +1 -1
- package/dist/inrun-continuity-types.d.ts +17 -4
- package/dist/inrun-continuity-types.d.ts.map +1 -1
- package/dist/inrun-continuity.d.ts +8 -3
- package/dist/inrun-continuity.d.ts.map +1 -1
- package/dist/inrun-continuity.js +41 -37
- package/dist/inrun-continuity.js.map +1 -1
- package/dist/inrun-continuity.test-support.d.ts +61 -4
- package/dist/inrun-continuity.test-support.d.ts.map +1 -1
- package/dist/inrun-continuity.test-support.js +12 -2
- package/dist/inrun-continuity.test-support.js.map +1 -1
- package/dist/modelGovernance.d.ts +87 -9
- package/dist/modelGovernance.d.ts.map +1 -1
- package/dist/modelGovernance.js +110 -15
- package/dist/modelGovernance.js.map +1 -1
- package/dist/orchestrator-credentials.d.ts +9 -4
- package/dist/orchestrator-credentials.d.ts.map +1 -1
- package/dist/orchestrator-credentials.js +14 -6
- package/dist/orchestrator-credentials.js.map +1 -1
- package/dist/orchestrator.d.ts +0 -1
- package/dist/orchestrator.d.ts.map +1 -1
- package/dist/orchestrator.js +247 -223
- package/dist/orchestrator.js.map +1 -1
- package/dist/planFinalize.d.ts.map +1 -1
- package/dist/planFinalize.js +3 -7
- package/dist/planFinalize.js.map +1 -1
- package/dist/planRun.js +2 -2
- package/dist/planRun.js.map +1 -1
- package/dist/plannerAttempt.d.ts +0 -2
- package/dist/plannerAttempt.d.ts.map +1 -1
- package/dist/plannerAttempt.js +64 -30
- package/dist/plannerAttempt.js.map +1 -1
- package/dist/policyFindings.d.ts +3 -0
- package/dist/policyFindings.d.ts.map +1 -1
- package/dist/policyFindings.js +11 -1
- package/dist/policyFindings.js.map +1 -1
- package/dist/pool-attempt-evidence.d.ts +1 -1
- package/dist/pool-attempt-evidence.d.ts.map +1 -1
- package/dist/pool-attempt-evidence.js +1 -1
- package/dist/pool-attempt-evidence.js.map +1 -1
- package/dist/primary-divergence.d.ts +7 -2
- package/dist/primary-divergence.d.ts.map +1 -1
- package/dist/primary-divergence.js +13 -5
- package/dist/primary-divergence.js.map +1 -1
- package/dist/quota-refusal-scope.d.ts +39 -1
- package/dist/quota-refusal-scope.d.ts.map +1 -1
- package/dist/quota-refusal-scope.js +95 -1
- package/dist/quota-refusal-scope.js.map +1 -1
- package/dist/readonlyTerminals.d.ts +0 -1
- package/dist/readonlyTerminals.d.ts.map +1 -1
- package/dist/readonlyTerminals.js +5 -3
- package/dist/readonlyTerminals.js.map +1 -1
- package/dist/requestRequirements.d.ts +23 -0
- package/dist/requestRequirements.d.ts.map +1 -1
- package/dist/requestRequirements.js +22 -0
- package/dist/requestRequirements.js.map +1 -1
- package/dist/resultNotice.d.ts +14 -0
- package/dist/resultNotice.d.ts.map +1 -0
- package/dist/resultNotice.js +21 -0
- package/dist/resultNotice.js.map +1 -0
- package/dist/reviewerInventory.d.ts +47 -0
- package/dist/reviewerInventory.d.ts.map +1 -0
- package/dist/reviewerInventory.js +74 -0
- package/dist/reviewerInventory.js.map +1 -0
- package/dist/reviewerPanel.d.ts.map +1 -1
- package/dist/reviewerPanel.js +37 -60
- package/dist/reviewerPanel.js.map +1 -1
- package/dist/routing-failure.d.ts +2 -1
- package/dist/routing-failure.d.ts.map +1 -1
- package/dist/routing-failure.js +2 -0
- package/dist/routing-failure.js.map +1 -1
- package/dist/runAdmission.d.ts.map +1 -1
- package/dist/runAdmission.js +1 -14
- package/dist/runAdmission.js.map +1 -1
- package/dist/runEventLog.js +2 -2
- package/dist/runEventLog.js.map +1 -1
- package/dist/runFactsBuilder.d.ts.map +1 -1
- package/dist/runFactsBuilder.js +18 -10
- package/dist/runFactsBuilder.js.map +1 -1
- package/dist/runFactsDeliverable.d.ts.map +1 -1
- package/dist/runFactsDeliverable.js +7 -1
- package/dist/runFactsDeliverable.js.map +1 -1
- package/dist/runSupport.d.ts +5 -10
- package/dist/runSupport.d.ts.map +1 -1
- package/dist/runSupport.js +38 -40
- package/dist/runSupport.js.map +1 -1
- package/dist/runTerminalResults.d.ts +9 -1
- package/dist/runTerminalResults.d.ts.map +1 -1
- package/dist/runTerminalResults.js +27 -5
- package/dist/runTerminalResults.js.map +1 -1
- package/dist/savedCandidate.d.ts +43 -0
- package/dist/savedCandidate.d.ts.map +1 -0
- package/dist/savedCandidate.js +88 -0
- package/dist/savedCandidate.js.map +1 -0
- package/dist/secretDiff.d.ts +85 -46
- package/dist/secretDiff.d.ts.map +1 -1
- package/dist/secretDiff.js +123 -126
- package/dist/secretDiff.js.map +1 -1
- package/dist/task-contract-builder.d.ts.map +1 -1
- package/dist/task-contract-builder.js +5 -7
- package/dist/task-contract-builder.js.map +1 -1
- package/dist/workReportEnvelope.d.ts.map +1 -1
- package/dist/workReportEnvelope.js +4 -16
- package/dist/workReportEnvelope.js.map +1 -1
- package/package.json +17 -17
- package/dist/persistedPatch.d.ts +0 -55
- package/dist/persistedPatch.d.ts.map +0 -1
- package/dist/persistedPatch.js +0 -132
- package/dist/persistedPatch.js.map +0 -1
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
import { RoutePrimaryDivergedPayload as RoutePrimaryDivergedPayloadSchema } from "@claudexor/schema";
|
|
2
2
|
/** Disclose a requested or configured primary lost before dispatch. Browser
|
|
3
3
|
* omissions carry their capability cause; existing pool/quota drops keep
|
|
4
|
-
* their original classification.
|
|
5
|
-
|
|
4
|
+
* their original classification. A degraded primary the Auto pool never
|
|
5
|
+
* admitted was passed over for a doctor-ok route, not missing auth, so its
|
|
6
|
+
* doctor status speaks (#133). No-op when the primary remains ordered. */
|
|
7
|
+
export function emitPrimaryDivergence(log, requested, ordered, pool, dropped, browserOmissions = [], statuses = new Map()) {
|
|
6
8
|
if (!log || !requested || ordered.some((r) => r.adapter.id === requested))
|
|
7
9
|
return;
|
|
8
10
|
const survivedPool = pool.some((r) => r.adapter.id === requested);
|
|
11
|
+
const droppedDetail = dropped.find((d) => d.startsWith(`${requested} `) || d.startsWith(`${requested}(`));
|
|
12
|
+
const doctor = statuses.get(requested);
|
|
13
|
+
const degraded = !survivedPool && !droppedDetail && doctor?.status === "degraded";
|
|
14
|
+
const reasons = doctor?.reasons.length ? `: ${doctor.reasons.join("; ")}` : "";
|
|
9
15
|
log.emit("route.primary.diverged", RoutePrimaryDivergedPayloadSchema.parse({
|
|
10
16
|
requested,
|
|
11
17
|
effective: ordered[0]?.adapter.id ?? null,
|
|
@@ -13,11 +19,13 @@ export function emitPrimaryDivergence(log, requested, ordered, pool, dropped, br
|
|
|
13
19
|
? "capability_incompatible"
|
|
14
20
|
: survivedPool
|
|
15
21
|
? "quota_exhausted"
|
|
16
|
-
:
|
|
22
|
+
: degraded
|
|
23
|
+
? "readiness_preferred"
|
|
24
|
+
: "auth_unavailable",
|
|
17
25
|
detail: survivedPool
|
|
18
26
|
? `${requested} is on cooldown or over its budget/quota pace`
|
|
19
|
-
: (
|
|
20
|
-
`${requested} is unavailable`),
|
|
27
|
+
: (droppedDetail ??
|
|
28
|
+
(degraded ? `${requested} is degraded${reasons}` : `${requested} is unavailable`)),
|
|
21
29
|
}));
|
|
22
30
|
}
|
|
23
31
|
//# sourceMappingURL=primary-divergence.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"primary-divergence.js","sourceRoot":"","sources":["../src/primary-divergence.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,IAAI,iCAAiC,EAAE,MAAM,mBAAmB,CAAC;AAErG
|
|
1
|
+
{"version":3,"file":"primary-divergence.js","sourceRoot":"","sources":["../src/primary-divergence.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,IAAI,iCAAiC,EAAE,MAAM,mBAAmB,CAAC;AAErG;;;;0EAI0E;AAC1E,MAAM,UAAU,qBAAqB,CACnC,GAAyB,EACzB,SAA6B,EAC7B,OAAsC,EACtC,IAAmC,EACnC,OAAiB,EACjB,gBAAgB,GAAa,EAAE,EAC/B,QAAQ,GAA+D,IAAI,GAAG,EAAE;IAEhF,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,SAAS,CAAC;QAAE,OAAO;IAClF,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;IAClE,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAChC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,SAAS,GAAG,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,SAAS,GAAG,CAAC,CACtE,CAAC;IACF,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,CAAC,YAAY,IAAI,CAAC,aAAa,IAAI,MAAM,EAAE,MAAM,KAAK,UAAU,CAAC;IAClF,MAAM,OAAO,GAAG,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/E,GAAG,CAAC,IAAI,CACN,wBAAwB,EACxB,iCAAiC,CAAC,KAAK,CAAC;QACtC,SAAS;QACT,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,IAAI;QACzC,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC;YAC1C,CAAC,CAAC,yBAAyB;YAC3B,CAAC,CAAC,YAAY;gBACZ,CAAC,CAAC,iBAAiB;gBACnB,CAAC,CAAC,QAAQ;oBACR,CAAC,CAAC,qBAAqB;oBACvB,CAAC,CAAC,kBAAkB;QAC1B,MAAM,EAAE,YAAY;YAClB,CAAC,CAAC,GAAG,SAAS,+CAA+C;YAC7D,CAAC,CAAC,CAAC,aAAa;gBACd,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,eAAe,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,SAAS,iBAAiB,CAAC,CAAC;KACvF,CAAuC,CACzC,CAAC;AACJ,CAAC"}
|
|
@@ -1,4 +1,42 @@
|
|
|
1
|
-
import { type QuotaRequestKind } from "@claudexor/schema";
|
|
1
|
+
import { type HarnessEvent, type QuotaRefusal, type QuotaRequestKind } from "@claudexor/schema";
|
|
2
|
+
import type { QuotaBlock } from "./credential-cooldown.js";
|
|
3
|
+
import type { HeadroomBreach } from "./credential-profile-rotation.js";
|
|
4
|
+
/**
|
|
5
|
+
* Why quota admission refused an account. A provider block (spent window with
|
|
6
|
+
* a future reset, or a live cooldown) outranks the owner's reserve whatever the
|
|
7
|
+
* threshold or check order; a breach at 100% is provider-reported spending; a
|
|
8
|
+
* breach below 100% is the owner's saved reserve while the provider still
|
|
9
|
+
* reports quota left. Authentication and billing are never quota bases.
|
|
10
|
+
*/
|
|
11
|
+
export declare function quotaRefusalBasis(breach: HeadroomBreach | null, block: QuotaBlock | null): QuotaRefusal | null;
|
|
12
|
+
/** When the refusal's controlling evidence says to recheck: the block's own
|
|
13
|
+
* release when a provider block decides, else the breaching window's reset.
|
|
14
|
+
* An earliest recheck instant, not a promise the whole account is ready then. */
|
|
15
|
+
export declare function quotaRefusalResetsAt(breach: HeadroomBreach | null, block: QuotaBlock | null): string | null;
|
|
16
|
+
/** A typed provider limit observed on a pinned subject's own try (Agent, Ask or
|
|
17
|
+
* Plan): a pin never rotates, so the try's own limit is the typed terminal,
|
|
18
|
+
* with the window the vendor named when it named one. */
|
|
19
|
+
export declare function pinnedTypedLimit(profileId: string, harnessId: string, limit: {
|
|
20
|
+
resetsAt: string | null;
|
|
21
|
+
constraintId?: string | null;
|
|
22
|
+
} | null, afterProgress?: boolean): QuotaRefusalError;
|
|
23
|
+
/** A later event that retires a pending typed limit as the explanation of a
|
|
24
|
+
* try's end: the adapter's typed native API failure (`api_error_status`) with a
|
|
25
|
+
* status other than 429 is the vendor's own non-quota terminal (authentication,
|
|
26
|
+
* billing, invalid request, server error). A 429, an untyped error, limit prose
|
|
27
|
+
* and a crash keep the limit; a limit observed afterwards re-arms it. */
|
|
28
|
+
export declare function endsPendingLimit(ev: HarnessEvent): boolean;
|
|
29
|
+
/** A quota refusal carrying its typed basis (null only when none applies). */
|
|
30
|
+
export type QuotaRefusalError = Error & {
|
|
31
|
+
quotaRefusal: QuotaRefusal | null;
|
|
32
|
+
};
|
|
33
|
+
/** A pin never rotates. Typed code, reset and basis reach final/failure.yaml;
|
|
34
|
+
* consumers do not recover scope, reset times or the basis from this message. */
|
|
35
|
+
export declare function subscriptionWindowExhausted(profileId: string, harnessId: string, breach: HeadroomBreach): QuotaRefusalError;
|
|
36
|
+
/** The strict pin's refusal for an OBSERVED live block (A4): same typed code
|
|
37
|
+
* and category as the headroom form — a consumer asks "when can I come back" —
|
|
38
|
+
* with the provider basis machine-readable and the block's evidence in prose. */
|
|
39
|
+
export declare function pinnedWindowBlocked(profileId: string, harnessId: string, block: QuotaBlock, breach?: HeadroomBreach | null): QuotaRefusalError;
|
|
2
40
|
/** Attach already-known request scope at the refusal producer. The context is
|
|
3
41
|
* not recovered from its human message or generalized to the whole harness. */
|
|
4
42
|
export declare function quotaRefusalWithScope(error: Error, scope: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quota-refusal-scope.d.ts","sourceRoot":"","sources":["../src/quota-refusal-scope.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"quota-refusal-scope.d.ts","sourceRoot":"","sources":["../src/quota-refusal-scope.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAEvE;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,cAAc,GAAG,IAAI,EAC7B,KAAK,EAAE,UAAU,GAAG,IAAI,GACvB,YAAY,GAAG,IAAI,CAiBrB;AAED;;iFAEiF;AACjF,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,cAAc,GAAG,IAAI,EAC7B,KAAK,EAAE,UAAU,GAAG,IAAI,GACvB,MAAM,GAAG,IAAI,CAEf;AAED;;yDAEyD;AACzD,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE;IAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,EACvE,aAAa,UAAQ,GACpB,iBAAiB,CAoBnB;AAED;;;;yEAIyE;AACzE,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAI1D;AAID,8EAA8E;AAC9E,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG;IAAE,YAAY,EAAE,YAAY,GAAG,IAAI,CAAA;CAAE,CAAC;AAE9E;iFACiF;AACjF,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,cAAc,GACrB,iBAAiB,CAoBnB;AAED;;iFAEiF;AACjF,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,UAAU,EACjB,MAAM,GAAE,cAAc,GAAG,IAAW,GACnC,iBAAiB,CAkBnB;AAED;+EAC+E;AAC/E,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE;IACL,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,GACA,KAAK,CAsBP"}
|
|
@@ -1,4 +1,97 @@
|
|
|
1
|
-
import { ControlProblem } from "@claudexor/schema";
|
|
1
|
+
import { ControlProblem, } from "@claudexor/schema";
|
|
2
|
+
/**
|
|
3
|
+
* Why quota admission refused an account. A provider block (spent window with
|
|
4
|
+
* a future reset, or a live cooldown) outranks the owner's reserve whatever the
|
|
5
|
+
* threshold or check order; a breach at 100% is provider-reported spending; a
|
|
6
|
+
* breach below 100% is the owner's saved reserve while the provider still
|
|
7
|
+
* reports quota left. Authentication and billing are never quota bases.
|
|
8
|
+
*/
|
|
9
|
+
export function quotaRefusalBasis(breach, block) {
|
|
10
|
+
if (block) {
|
|
11
|
+
const same = breach !== null && breach.constraint_id === block.constraint_id;
|
|
12
|
+
return {
|
|
13
|
+
basis: block.kind === "cooldown" ? "provider_cooldown" : "provider_window",
|
|
14
|
+
constraintId: block.constraint_id,
|
|
15
|
+
usedRatio: same ? breach.used_ratio : null,
|
|
16
|
+
threshold: breach?.threshold ?? null,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
if (!breach)
|
|
20
|
+
return null;
|
|
21
|
+
return {
|
|
22
|
+
basis: breach.used_ratio >= 1 ? "provider_window" : "owner_reserve",
|
|
23
|
+
constraintId: breach.constraint_id,
|
|
24
|
+
usedRatio: breach.used_ratio,
|
|
25
|
+
threshold: breach.threshold,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
/** When the refusal's controlling evidence says to recheck: the block's own
|
|
29
|
+
* release when a provider block decides, else the breaching window's reset.
|
|
30
|
+
* An earliest recheck instant, not a promise the whole account is ready then. */
|
|
31
|
+
export function quotaRefusalResetsAt(breach, block) {
|
|
32
|
+
return block ? block.resets_at : (breach?.resets_at ?? null);
|
|
33
|
+
}
|
|
34
|
+
/** A typed provider limit observed on a pinned subject's own try (Agent, Ask or
|
|
35
|
+
* Plan): a pin never rotates, so the try's own limit is the typed terminal,
|
|
36
|
+
* with the window the vendor named when it named one. */
|
|
37
|
+
export function pinnedTypedLimit(profileId, harnessId, limit, afterProgress = false) {
|
|
38
|
+
const resetsAt = limit?.resetsAt ?? null;
|
|
39
|
+
return Object.assign(new Error(`credential profile "${profileId}" (${harnessId}) hit a typed vendor limit` +
|
|
40
|
+
`${afterProgress ? " after progress" : ""} and a pinned account never rotates` +
|
|
41
|
+
`${resetsAt ? `; resets ${resetsAt}` : ""}`), {
|
|
42
|
+
code: "subscription_window_exhausted",
|
|
43
|
+
category: "harness_unavailable",
|
|
44
|
+
resetsAt,
|
|
45
|
+
quotaRefusal: {
|
|
46
|
+
basis: "provider_cooldown",
|
|
47
|
+
constraintId: limit?.constraintId ?? null,
|
|
48
|
+
usedRatio: null,
|
|
49
|
+
threshold: null,
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
/** A later event that retires a pending typed limit as the explanation of a
|
|
54
|
+
* try's end: the adapter's typed native API failure (`api_error_status`) with a
|
|
55
|
+
* status other than 429 is the vendor's own non-quota terminal (authentication,
|
|
56
|
+
* billing, invalid request, server error). A 429, an untyped error, limit prose
|
|
57
|
+
* and a crash keep the limit; a limit observed afterwards re-arms it. */
|
|
58
|
+
export function endsPendingLimit(ev) {
|
|
59
|
+
if (ev.type !== "error" || ev.rate_limit)
|
|
60
|
+
return false;
|
|
61
|
+
const status = ev.payload?.["api_error_status"];
|
|
62
|
+
return Number.isInteger(status) && status !== 429;
|
|
63
|
+
}
|
|
64
|
+
const percent = (ratio) => `${Math.round(ratio * 100)}%`;
|
|
65
|
+
/** A pin never rotates. Typed code, reset and basis reach final/failure.yaml;
|
|
66
|
+
* consumers do not recover scope, reset times or the basis from this message. */
|
|
67
|
+
export function subscriptionWindowExhausted(profileId, harnessId, breach) {
|
|
68
|
+
const refusal = quotaRefusalBasis(breach, null);
|
|
69
|
+
const evidence = refusal.basis === "owner_reserve"
|
|
70
|
+
? `has reached its saved quota reserve (${breach.constraint_id} at ${percent(breach.used_ratio)} used, headroom_threshold ${percent(breach.threshold)}); the provider still reports quota left`
|
|
71
|
+
: `is over a provider-reported spent window (${breach.constraint_id} at ${percent(breach.used_ratio)})`;
|
|
72
|
+
return Object.assign(new Error(`credential profile "${profileId}" (${harnessId}) ${evidence}; a pinned account never rotates` +
|
|
73
|
+
`${breach.resets_at ? `; resets ${breach.resets_at}` : ""}`), {
|
|
74
|
+
code: "subscription_window_exhausted",
|
|
75
|
+
// Not `internal`: nothing malfunctioned. The account cannot serve this
|
|
76
|
+
// run until its window reopens, which is what harness_unavailable means.
|
|
77
|
+
category: "harness_unavailable",
|
|
78
|
+
resetsAt: breach.resets_at,
|
|
79
|
+
quotaRefusal: refusal,
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
/** The strict pin's refusal for an OBSERVED live block (A4): same typed code
|
|
83
|
+
* and category as the headroom form — a consumer asks "when can I come back" —
|
|
84
|
+
* with the provider basis machine-readable and the block's evidence in prose. */
|
|
85
|
+
export function pinnedWindowBlocked(profileId, harnessId, block, breach = null) {
|
|
86
|
+
return Object.assign(new Error(`credential profile "${profileId}" (${harnessId}) is ${block.kind === "exhausted"
|
|
87
|
+
? "over an observed vendor window"
|
|
88
|
+
: "in a vendor rate-limit cooldown"} (${block.constraint_id ?? "cooldown"}; a pinned account never rotates${block.resets_at ? `; resets ${block.resets_at}` : ""})`), {
|
|
89
|
+
code: "subscription_window_exhausted",
|
|
90
|
+
category: "harness_unavailable",
|
|
91
|
+
resetsAt: block.resets_at,
|
|
92
|
+
quotaRefusal: quotaRefusalBasis(breach, block),
|
|
93
|
+
});
|
|
94
|
+
}
|
|
2
95
|
/** Attach already-known request scope at the refusal producer. The context is
|
|
3
96
|
* not recovered from its human message or generalized to the whole harness. */
|
|
4
97
|
export function quotaRefusalWithScope(error, scope) {
|
|
@@ -14,6 +107,7 @@ export function quotaRefusalWithScope(error, scope) {
|
|
|
14
107
|
model: scope.model ?? null,
|
|
15
108
|
requestKind: scope.requestKind ?? "text",
|
|
16
109
|
...(scope.constraintId ? { constraint_id: scope.constraintId } : {}),
|
|
110
|
+
...(typed.quotaRefusal ? { refusal_basis: typed.quotaRefusal.basis } : {}),
|
|
17
111
|
},
|
|
18
112
|
});
|
|
19
113
|
return typed;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quota-refusal-scope.js","sourceRoot":"","sources":["../src/quota-refusal-scope.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"quota-refusal-scope.js","sourceRoot":"","sources":["../src/quota-refusal-scope.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,6 @@ export interface ReadonlyAttempt extends ContinuityTerminalFacts {
|
|
|
13
13
|
harnessId: string;
|
|
14
14
|
status: "success" | "failed" | "blocked";
|
|
15
15
|
report: string;
|
|
16
|
-
answerMatches?: number;
|
|
17
16
|
error: string | null;
|
|
18
17
|
telemetry: AttemptTelemetry;
|
|
19
18
|
/** QA-019: this scout was refused BEFORE spawn by the budget gate — it
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readonlyTerminals.d.ts","sourceRoot":"","sources":["../src/readonlyTerminals.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAoB,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,EAA8C,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEnG,OAAO,
|
|
1
|
+
{"version":3,"file":"readonlyTerminals.d.ts","sourceRoot":"","sources":["../src/readonlyTerminals.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAoB,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,EAA8C,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEnG,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,0BAA0B,CAAC;AAOlC,OAAO,EAAgB,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE7E,yFAAyF;AACzF,MAAM,WAAW,eAAgB,SAAQ,uBAAuB;IAC9D,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,gBAAgB,CAAC;IAC5B;;gFAE4E;IAC5E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;0DACsD;IACtD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;+EAC2E;IAC3E,eAAe,CAAC,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;CACtD;AAED,UAAU,uBAAuB;IAC/B,KAAK,EAAE,aAAa,CAAC;IACrB,KAAK,EAAE,QAAQ,CAAC;IAChB,GAAG,EAAE,QAAQ,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,kBAAkB,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,gBAAgB,CAAA;KAAE,EAAE,CAAC;IAC5F,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;IAClC,cAAc,IAAI,IAAI,CAAC;CACxB;AAED,uEAAuE;AACvE,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,uBAAuB,GAAG;IAAE,YAAY,EAAE,OAAO,CAAA;CAAE,GACzD,kBAAkB,CA2HpB;AAED,sFAAsF;AACtF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,uBAAuB,GAAG,kBAAkB,CAwFxF"}
|
|
@@ -3,7 +3,7 @@ import { makeOutcomeFacts } from "@claudexor/schema";
|
|
|
3
3
|
import { readOnlyNoSuccessTerminal } from "./attemptFinalize.js";
|
|
4
4
|
import { budgetFailureRecord, classifyBudgetFailure } from "./budgetFailure.js";
|
|
5
5
|
import { unanimousDeclaredFailure } from "./candidateEvidence.js";
|
|
6
|
-
import { resumableTerminal } from "./continuity-terminal.js";
|
|
6
|
+
import { carryingAttempts, resumableTerminal, } from "./continuity-terminal.js";
|
|
7
7
|
import { attemptVendorFailure, dominantHarnessFailureCategory, harnessFailureNextActions, } from "./harnessFailure.js";
|
|
8
8
|
import { poolFailure } from "./pool-attempt-evidence.js";
|
|
9
9
|
import { writeFailure } from "./runTerminalResults.js";
|
|
@@ -59,6 +59,7 @@ export function readOnlyChainFailureResult(input) {
|
|
|
59
59
|
runDir: paths.root,
|
|
60
60
|
resetsAt: roDeclared?.resetsAt ?? null,
|
|
61
61
|
requestRefusal: roDeclared?.requestRefusal,
|
|
62
|
+
quotaRefusal: roDeclared?.quotaRefusal,
|
|
62
63
|
vendorFailure: attemptVendorFailure(attemptTelemetries, last?.attemptId),
|
|
63
64
|
poolAttempts,
|
|
64
65
|
nextActions: harnessFailureNextActions(roCategory),
|
|
@@ -88,7 +89,7 @@ export function readOnlyChainFailureResult(input) {
|
|
|
88
89
|
error: singleError,
|
|
89
90
|
pool_attempts: poolAttempts,
|
|
90
91
|
failure_ref: "final/failure.yaml",
|
|
91
|
-
...resumableTerminal(store, paths, attempts, true),
|
|
92
|
+
...resumableTerminal(store, paths, carryingAttempts(attempts, paths.root), true),
|
|
92
93
|
});
|
|
93
94
|
}
|
|
94
95
|
else {
|
|
@@ -101,7 +102,7 @@ export function readOnlyChainFailureResult(input) {
|
|
|
101
102
|
error: singleError,
|
|
102
103
|
pool_attempts: poolAttempts,
|
|
103
104
|
failure_ref: "final/failure.yaml",
|
|
104
|
-
...resumableTerminal(store, paths, attempts, true),
|
|
105
|
+
...resumableTerminal(store, paths, carryingAttempts(attempts, paths.root), true),
|
|
105
106
|
});
|
|
106
107
|
}
|
|
107
108
|
return {
|
|
@@ -161,6 +162,7 @@ export function deepScanFailureResult(input) {
|
|
|
161
162
|
code: declared?.code,
|
|
162
163
|
resetsAt: declared?.resetsAt,
|
|
163
164
|
requestRefusal: declared?.requestRefusal,
|
|
165
|
+
quotaRefusal: declared?.quotaRefusal,
|
|
164
166
|
safeMessage: message || "all explorers failed",
|
|
165
167
|
eventRefs: attempts.map((a) => `attempts/${a.attemptId}/events.jsonl`),
|
|
166
168
|
runDir: paths.root,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readonlyTerminals.js","sourceRoot":"","sources":["../src/readonlyTerminals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,OAAO,EAAE,gBAAgB,EAAiB,MAAM,mBAAmB,CAAC;AAGpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAqB,MAAM,oBAAoB,CAAC;AACnG,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,
|
|
1
|
+
{"version":3,"file":"readonlyTerminals.js","sourceRoot":"","sources":["../src/readonlyTerminals.ts"],"names":[],"mappings":"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"}
|
|
@@ -47,6 +47,21 @@ export declare class RequestRequirementsError extends HarnessUnavailableError {
|
|
|
47
47
|
export declare class RequestRequirementsResolver {
|
|
48
48
|
/** Patch producers only read; the engine owns materialization and delivery. */
|
|
49
49
|
adapterAccess(intent: Intent, implementationTransport: ImplementationTransport, requestedAccess: AccessProfile): AccessProfile;
|
|
50
|
+
/** Project-scoped Ask is answered by the harness reading the project itself:
|
|
51
|
+
* its prompt carries a path atlas, never file contents (#133). A lane that may
|
|
52
|
+
* answer but cannot read files is refused before dispatch, while Ask without
|
|
53
|
+
* a project needs no file access. Null = admitted, or another check speaks. */
|
|
54
|
+
projectReadRefusal(intent: Intent, input: {
|
|
55
|
+
repoRoot: string;
|
|
56
|
+
}, status: {
|
|
57
|
+
id: string;
|
|
58
|
+
enabledIntents: Intent[];
|
|
59
|
+
manifest: {
|
|
60
|
+
capabilities: {
|
|
61
|
+
read_files: boolean;
|
|
62
|
+
};
|
|
63
|
+
} | null;
|
|
64
|
+
}): string | null;
|
|
50
65
|
/** Explicit auxiliary writable roots need the lane's OWN workspace_write
|
|
51
66
|
* access plus a native per-turn mechanism; patch producers and read-only
|
|
52
67
|
* lanes never receive them. */
|
|
@@ -54,6 +69,14 @@ export declare class RequestRequirementsResolver {
|
|
|
54
69
|
assertConvergenceWorkspace(inPlace: boolean, routes: {
|
|
55
70
|
implementationTransport: ImplementationTransport;
|
|
56
71
|
}[]): void;
|
|
72
|
+
/** The intent a convergence round dispatches. A `git_patch_envelope`
|
|
73
|
+
* producer is admitted for the run's candidate intent and plays no `repair`
|
|
74
|
+
* (raw-api's doctor disables it): sent `repair`, it answers without its
|
|
75
|
+
* packet, the project's mandatory files or the patch protocol (#147), so it
|
|
76
|
+
* gets the candidate intent, as one agent attempt does. */
|
|
77
|
+
convergenceIntent(route: {
|
|
78
|
+
implementationTransport: ImplementationTransport;
|
|
79
|
+
}, candidate: Intent): Intent;
|
|
57
80
|
/** Typed finite-descriptor admission for one selected harness lane. */
|
|
58
81
|
resolveAttachmentLane(harnessId: string, attachments: Attachment[], declarations: AttachmentInputClass[]): AttachmentLaneAdmission;
|
|
59
82
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requestRequirements.d.ts","sourceRoot":"","sources":["../src/requestRequirements.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,UAAU,EACV,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,MAAM,EACN,4BAA4B,EAC7B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"requestRequirements.d.ts","sourceRoot":"","sources":["../src/requestRequirements.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { HarnessUnavailableError } from "@claudexor/core";
|
|
2
|
+
import { noProjectRepoRoot } from "@claudexor/util";
|
|
3
|
+
const NO_PROJECT_ROOT = noProjectRepoRoot();
|
|
2
4
|
/** Access profiles that map to an unsandboxed/full-access harness lane. */
|
|
3
5
|
export function isFullAccess(access) {
|
|
4
6
|
return access === "full";
|
|
@@ -20,6 +22,18 @@ export class RequestRequirementsResolver {
|
|
|
20
22
|
? "readonly"
|
|
21
23
|
: requestedAccess;
|
|
22
24
|
}
|
|
25
|
+
/** Project-scoped Ask is answered by the harness reading the project itself:
|
|
26
|
+
* its prompt carries a path atlas, never file contents (#133). A lane that may
|
|
27
|
+
* answer but cannot read files is refused before dispatch, while Ask without
|
|
28
|
+
* a project needs no file access. Null = admitted, or another check speaks. */
|
|
29
|
+
projectReadRefusal(intent, input, status) {
|
|
30
|
+
return intent === "explain" &&
|
|
31
|
+
input.repoRoot !== NO_PROJECT_ROOT &&
|
|
32
|
+
status.enabledIntents.includes(intent) &&
|
|
33
|
+
status.manifest?.capabilities.read_files === false
|
|
34
|
+
? `${status.id} (cannot read project files: ask without a project or choose a harness that reads files)`
|
|
35
|
+
: null;
|
|
36
|
+
}
|
|
23
37
|
/** Explicit auxiliary writable roots need the lane's OWN workspace_write
|
|
24
38
|
* access plus a native per-turn mechanism; patch producers and read-only
|
|
25
39
|
* lanes never receive them. */
|
|
@@ -31,6 +45,14 @@ export class RequestRequirementsResolver {
|
|
|
31
45
|
throw new HarnessUnavailableError("in-place convergence is unavailable for git_patch_envelope adapters; use an isolated run or a single agent attempt");
|
|
32
46
|
}
|
|
33
47
|
}
|
|
48
|
+
/** The intent a convergence round dispatches. A `git_patch_envelope`
|
|
49
|
+
* producer is admitted for the run's candidate intent and plays no `repair`
|
|
50
|
+
* (raw-api's doctor disables it): sent `repair`, it answers without its
|
|
51
|
+
* packet, the project's mandatory files or the patch protocol (#147), so it
|
|
52
|
+
* gets the candidate intent, as one agent attempt does. */
|
|
53
|
+
convergenceIntent(route, candidate) {
|
|
54
|
+
return route.implementationTransport === "git_patch_envelope" ? candidate : "repair";
|
|
55
|
+
}
|
|
34
56
|
/** Typed finite-descriptor admission for one selected harness lane. */
|
|
35
57
|
resolveAttachmentLane(harnessId, attachments, declarations) {
|
|
36
58
|
for (const attachment of attachments) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requestRequirements.js","sourceRoot":"","sources":["../src/requestRequirements.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"requestRequirements.js","sourceRoot":"","sources":["../src/requestRequirements.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { CaptureChangeInventory, GitObjectResult, PatchViewUnavailable } from "@claudexor/schema";
|
|
2
|
+
/**
|
|
3
|
+
* What review and synthesis read for an object result WITHOUT a patch view
|
|
4
|
+
* (#535): an explicit, bounded notice — never "(empty diff)" — naming the
|
|
5
|
+
* largest changed files; the changed files themselves are read in a copy taken
|
|
6
|
+
* from the saved objects. Comment lines carry no diff records.
|
|
7
|
+
*/
|
|
8
|
+
export declare function unrenderedResultNotice(run: {
|
|
9
|
+
result?: GitObjectResult;
|
|
10
|
+
patchViewUnavailable?: PatchViewUnavailable;
|
|
11
|
+
inventory?: CaptureChangeInventory;
|
|
12
|
+
changedPaths?: string[];
|
|
13
|
+
}): string;
|
|
14
|
+
//# sourceMappingURL=resultNotice.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resultNotice.d.ts","sourceRoot":"","sources":["../src/resultNotice.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,sBAAsB,EACtB,eAAe,EACf,oBAAoB,EACrB,MAAM,mBAAmB,CAAC;AAE3B;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE;IAC1C,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,SAAS,CAAC,EAAE,sBAAsB,CAAC;IACnC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB,GAAG,MAAM,CAYT"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { captureInventoryLines } from "@claudexor/schema";
|
|
2
|
+
/**
|
|
3
|
+
* What review and synthesis read for an object result WITHOUT a patch view
|
|
4
|
+
* (#535): an explicit, bounded notice — never "(empty diff)" — naming the
|
|
5
|
+
* largest changed files; the changed files themselves are read in a copy taken
|
|
6
|
+
* from the saved objects. Comment lines carry no diff records.
|
|
7
|
+
*/
|
|
8
|
+
export function unrenderedResultNotice(run) {
|
|
9
|
+
const view = run.patchViewUnavailable;
|
|
10
|
+
return [
|
|
11
|
+
view?.reason === "render_failed"
|
|
12
|
+
? `# Claudexor: the patch view of this result could not be rendered (estimated ${view.estimatedBytes ?? "unknown"} bytes; view limit ${view.limitBytes}).`
|
|
13
|
+
: `# Claudexor: this result is too large to render as one patch (estimated ${view?.estimatedBytes ?? "unknown"} bytes; view limit ${view?.limitBytes ?? "unknown"}).`,
|
|
14
|
+
`# It is kept exactly as Git objects (${run.result?.digest ?? "unknown digest"}); read the changed files in the copy taken from those objects.`,
|
|
15
|
+
`# Changed paths: ${run.changedPaths?.length ?? run.inventory?.changedFiles ?? "unknown"}.`,
|
|
16
|
+
// Changed paths are working content (INV-146): exact, never masked.
|
|
17
|
+
...(run.inventory ? captureInventoryLines(run.inventory).map((line) => `# ${line}`) : []),
|
|
18
|
+
"",
|
|
19
|
+
].join("\n");
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=resultNotice.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resultNotice.js","sourceRoot":"","sources":["../src/resultNotice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAO1D;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,GAKtC;IACC,MAAM,IAAI,GAAG,GAAG,CAAC,oBAAoB,CAAC;IACtC,OAAO;QACL,IAAI,EAAE,MAAM,KAAK,eAAe;YAC9B,CAAC,CAAC,+EAA+E,IAAI,CAAC,cAAc,IAAI,SAAS,sBAAsB,IAAI,CAAC,UAAU,IAAI;YAC1J,CAAC,CAAC,2EAA2E,IAAI,EAAE,cAAc,IAAI,SAAS,sBAAsB,IAAI,EAAE,UAAU,IAAI,SAAS,IAAI;QACvK,wCAAwC,GAAG,CAAC,MAAM,EAAE,MAAM,IAAI,gBAAgB,iEAAiE;QAC/I,oBAAoB,GAAG,CAAC,YAAY,EAAE,MAAM,IAAI,GAAG,CAAC,SAAS,EAAE,YAAY,IAAI,SAAS,GAAG;QAC3F,oEAAoE;QACpE,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzF,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How the reviewer panels read a reviewer's live model inventory: the explicit
|
|
3
|
+
* panel's read with one retry and the automatic panel's zero-cost read. Each
|
|
4
|
+
* answer keeps the typed catalog read behind it, whose credential the review
|
|
5
|
+
* request then sends (#393 x #147): no second read, the same checked key.
|
|
6
|
+
*/
|
|
7
|
+
import type { AuthPreference, CredentialProfile, ModelInventoryAbsence } from "@claudexor/schema";
|
|
8
|
+
import type { HarnessAdapter, ModelCatalogFailure, ModelCatalogObservation } from "@claudexor/core";
|
|
9
|
+
export type AutoModelInventory = {
|
|
10
|
+
status: "available";
|
|
11
|
+
ids: Set<string>;
|
|
12
|
+
source: "api" | "manifest";
|
|
13
|
+
catalogRead: boolean;
|
|
14
|
+
/** The typed read behind the ids, which carries the key it checked. */
|
|
15
|
+
read?: ModelCatalogObservation;
|
|
16
|
+
} | {
|
|
17
|
+
status: "unknown";
|
|
18
|
+
reason: string;
|
|
19
|
+
};
|
|
20
|
+
export declare function readAutoModelInventory(adapter: HarnessAdapter, input: Parameters<NonNullable<HarnessAdapter["models"]>>[0]): Promise<AutoModelInventory>;
|
|
21
|
+
/** One retry with a short delay: transient inventory hiccups (cold auth,
|
|
22
|
+
* slow first call) must not fail a panel that would succeed a moment later —
|
|
23
|
+
* but a persistently empty/erroring fail-soft inventory still refuses loudly,
|
|
24
|
+
* UNLESS the producer declared its absences advisory: an empty answer from such
|
|
25
|
+
* a source proves nothing, so it is returned as the empty set and the caller's
|
|
26
|
+
* shared decision forwards the explicit model to the vendor (a second probe
|
|
27
|
+
* would ask the same source the same unanswerable question). A thrown call is
|
|
28
|
+
* still a failure, not an answer, and still refuses. A producer that TYPES its
|
|
29
|
+
* reads answers a catalog (an empty one included) or, after the retry, its
|
|
30
|
+
* typed failure, which the caller refuses with that cause. */
|
|
31
|
+
export declare function listModelIdsWithRetry(adapter: HarnessAdapter, input: {
|
|
32
|
+
cwd: string;
|
|
33
|
+
authPreference: AuthPreference;
|
|
34
|
+
credentialProfile?: CredentialProfile | null;
|
|
35
|
+
env: () => Record<string, string>;
|
|
36
|
+
harnessId: string;
|
|
37
|
+
requestedModel: string;
|
|
38
|
+
absence: ModelInventoryAbsence;
|
|
39
|
+
}): Promise<{
|
|
40
|
+
ids: Set<string>;
|
|
41
|
+
catalogRead: boolean;
|
|
42
|
+
read?: ModelCatalogObservation;
|
|
43
|
+
} | {
|
|
44
|
+
failure: ModelCatalogFailure;
|
|
45
|
+
read: ModelCatalogObservation;
|
|
46
|
+
}>;
|
|
47
|
+
//# sourceMappingURL=reviewerInventory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reviewerInventory.d.ts","sourceRoot":"","sources":["../src/reviewerInventory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAClG,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAUpG,MAAM,MAAM,kBAAkB,GAC1B;IACE,MAAM,EAAE,WAAW,CAAC;IACpB,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACjB,MAAM,EAAE,KAAK,GAAG,UAAU,CAAC;IAC3B,WAAW,EAAE,OAAO,CAAC;IACrB,uEAAuE;IACvE,IAAI,CAAC,EAAE,uBAAuB,CAAC;CAChC,GACD;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1C,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAC1D,OAAO,CAAC,kBAAkB,CAAC,CAuB7B;AAED;;;;;;;;;8DAS8D;AAC9D,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE;IACL,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,cAAc,CAAC;IAC/B,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC7C,GAAG,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,qBAAqB,CAAC;CAChC,GACA,OAAO,CACN;IAAE,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAAC,WAAW,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,uBAAuB,CAAA;CAAE,GAC1E;IAAE,OAAO,EAAE,mBAAmB,CAAC;IAAC,IAAI,EAAE,uBAAuB,CAAA;CAAE,CAClE,CAgCA"}
|