audit-tools 0.32.62 → 0.32.64
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/audit/cli/nextStepCommand.d.ts.map +1 -1
- package/dist/audit/cli/nextStepCommand.js +10 -3
- package/dist/audit/cli/nextStepCommand.js.map +1 -1
- package/dist/audit/cli/rollingAuditDispatch.d.ts.map +1 -1
- package/dist/audit/cli/rollingAuditDispatch.js +1 -0
- package/dist/audit/cli/rollingAuditDispatch.js.map +1 -1
- package/dist/audit/orchestrator/intakeExecutors.d.ts.map +1 -1
- package/dist/audit/orchestrator/intakeExecutors.js +9 -2
- package/dist/audit/orchestrator/intakeExecutors.js.map +1 -1
- package/dist/audit/providers/agyProvider.d.ts +11 -0
- package/dist/audit/providers/agyProvider.d.ts.map +1 -0
- package/dist/audit/providers/agyProvider.js +18 -0
- package/dist/audit/providers/agyProvider.js.map +1 -0
- package/dist/audit/providers/index.d.ts.map +1 -1
- package/dist/audit/providers/index.js +2 -0
- package/dist/audit/providers/index.js.map +1 -1
- package/dist/audit/quota/index.d.ts +5 -0
- package/dist/audit/quota/index.d.ts.map +1 -1
- package/dist/audit/supervisor/operatorHandoff.d.ts.map +1 -1
- package/dist/audit/supervisor/operatorHandoff.js +1 -0
- package/dist/audit/supervisor/operatorHandoff.js.map +1 -1
- package/dist/remediate/providers/agyProvider.d.ts +12 -0
- package/dist/remediate/providers/agyProvider.d.ts.map +1 -0
- package/dist/remediate/providers/agyProvider.js +19 -0
- package/dist/remediate/providers/agyProvider.js.map +1 -0
- package/dist/remediate/providers/index.d.ts.map +1 -1
- package/dist/remediate/providers/index.js +2 -0
- package/dist/remediate/providers/index.js.map +1 -1
- package/dist/remediate/steps/nextStep.d.ts.map +1 -1
- package/dist/remediate/steps/nextStep.js +1 -0
- package/dist/remediate/steps/nextStep.js.map +1 -1
- package/dist/shared/dispatch/admissionLoop.d.ts +9 -0
- package/dist/shared/dispatch/admissionLoop.d.ts.map +1 -1
- package/dist/shared/dispatch/admissionLoop.js +21 -3
- package/dist/shared/dispatch/admissionLoop.js.map +1 -1
- package/dist/shared/dispatch/costRank.d.ts +37 -4
- package/dist/shared/dispatch/costRank.d.ts.map +1 -1
- package/dist/shared/dispatch/costRank.js +44 -7
- package/dist/shared/dispatch/costRank.js.map +1 -1
- package/dist/shared/index.d.ts +5 -3
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +3 -2
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/providers/agyProvider.d.ts +23 -0
- package/dist/shared/providers/agyProvider.d.ts.map +1 -0
- package/dist/shared/providers/agyProvider.js +77 -0
- package/dist/shared/providers/agyProvider.js.map +1 -0
- package/dist/shared/providers/providerConfirmation.d.ts +15 -2
- package/dist/shared/providers/providerConfirmation.d.ts.map +1 -1
- package/dist/shared/providers/providerConfirmation.js +84 -4
- package/dist/shared/providers/providerConfirmation.js.map +1 -1
- package/dist/shared/providers/providerFactory.d.ts +5 -1
- package/dist/shared/providers/providerFactory.d.ts.map +1 -1
- package/dist/shared/providers/providerFactory.js +29 -0
- package/dist/shared/providers/providerFactory.js.map +1 -1
- package/dist/shared/providers/providerPathGuard.d.ts.map +1 -1
- package/dist/shared/providers/providerPathGuard.js +9 -0
- package/dist/shared/providers/providerPathGuard.js.map +1 -1
- package/dist/shared/providers/sharedProviderConfirmation.d.ts +12 -3
- package/dist/shared/providers/sharedProviderConfirmation.d.ts.map +1 -1
- package/dist/shared/providers/sharedProviderConfirmation.js +36 -2
- package/dist/shared/providers/sharedProviderConfirmation.js.map +1 -1
- package/dist/shared/quota/antigravityQuotaSource.js +1 -1
- package/dist/shared/quota/antigravityQuotaSource.js.map +1 -1
- package/dist/shared/quota/apiPool.d.ts +12 -0
- package/dist/shared/quota/apiPool.d.ts.map +1 -1
- package/dist/shared/quota/apiPool.js +46 -1
- package/dist/shared/quota/apiPool.js.map +1 -1
- package/dist/shared/quota/capacity.d.ts +25 -0
- package/dist/shared/quota/capacity.d.ts.map +1 -1
- package/dist/shared/quota/capacity.js +9 -0
- package/dist/shared/quota/capacity.js.map +1 -1
- package/dist/shared/quota/limits.d.ts.map +1 -1
- package/dist/shared/quota/limits.js +2 -1
- package/dist/shared/quota/limits.js.map +1 -1
- package/dist/shared/quota/repairProxyRegistry.d.ts +84 -0
- package/dist/shared/quota/repairProxyRegistry.d.ts.map +1 -0
- package/dist/shared/quota/repairProxyRegistry.js +144 -0
- package/dist/shared/quota/repairProxyRegistry.js.map +1 -0
- package/dist/shared/types/providerConfirmation.d.ts +33 -0
- package/dist/shared/types/providerConfirmation.d.ts.map +1 -1
- package/dist/shared/types/sessionConfig.d.ts +63 -2
- package/dist/shared/types/sessionConfig.d.ts.map +1 -1
- package/dist/shared/types/sessionConfig.js +3 -0
- package/dist/shared/types/sessionConfig.js.map +1 -1
- package/dist/shared/validation/sessionConfig.d.ts.map +1 -1
- package/dist/shared/validation/sessionConfig.js +55 -0
- package/dist/shared/validation/sessionConfig.js.map +1 -1
- package/docs/audit-pkg/operator-guide.md +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agyProvider.js","sourceRoot":"","sources":["../../../src/shared/providers/agyProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { DispatchableSource, ResolvedProviderName, SessionConfig } from "../types/sessionConfig.js";
|
|
2
2
|
import type { FreshSessionProvider, ProviderRateLimits } from "./types.js";
|
|
3
|
-
import type { ConfirmedPoolEntry, HostModelCostEntry, ProviderConfirmationInput } from "../types/providerConfirmation.js";
|
|
3
|
+
import type { ConfirmedPoolEntry, HostModelCostEntry, SourcePoolCostEntry, ProviderConfirmationInput } from "../types/providerConfirmation.js";
|
|
4
4
|
export type CapabilityTier = "frontier" | "capable" | "fast" | "unknown";
|
|
5
5
|
export interface DiscoveredProvider {
|
|
6
6
|
name: ResolvedProviderName;
|
|
@@ -79,6 +79,12 @@ export interface AnnotatedConfirmation {
|
|
|
79
79
|
* kept separate from `provider_pool` so no pool consumer sees duplicate names.
|
|
80
80
|
*/
|
|
81
81
|
host_model_cost_order: HostModelCostEntry[];
|
|
82
|
+
/**
|
|
83
|
+
* Dispatchable SOURCE pools (explicit `sources[]` + repair-proxy expansion) with
|
|
84
|
+
* their confirmed positions (Gate-0 source fold). Kept separate from `provider_pool`
|
|
85
|
+
* because a source is keyed by `(provider, model)`, not a single provider name.
|
|
86
|
+
*/
|
|
87
|
+
source_pool_cost_order: SourcePoolCostEntry[];
|
|
82
88
|
}
|
|
83
89
|
/**
|
|
84
90
|
* Annotate + order a confirmed pool with cost-first-routing fields, optionally
|
|
@@ -92,7 +98,7 @@ export interface AnnotatedConfirmation {
|
|
|
92
98
|
* back at dispatch (`resolveConfirmedCostPositions`) as rung 1 of `costRank`.
|
|
93
99
|
* Single-sourced so every confirmation site annotates identically.
|
|
94
100
|
*/
|
|
95
|
-
export declare function annotateConfirmedPool(pool: ConfirmedPoolEntry[], sessionConfig: SessionConfig, input?: ProviderConfirmationInput): AnnotatedConfirmation;
|
|
101
|
+
export declare function annotateConfirmedPool(pool: ConfirmedPoolEntry[], sessionConfig: SessionConfig, input?: ProviderConfirmationInput, sources?: DispatchableSource[]): AnnotatedConfirmation;
|
|
96
102
|
/**
|
|
97
103
|
* The suggestion-only annotation (no operator input, no host models). Preserved
|
|
98
104
|
* for the headless / auto-complete callers that just need the provider pool with
|
|
@@ -142,4 +148,11 @@ export interface SourcePoolDisplayEntry {
|
|
|
142
148
|
* (content-derived, stable — never re-sorted by iteration/readdir order).
|
|
143
149
|
*/
|
|
144
150
|
export declare function deriveSourcePoolDisplay(sessionConfig: SessionConfig): SourcePoolDisplayEntry[];
|
|
151
|
+
/**
|
|
152
|
+
* Same display derivation as {@link deriveSourcePoolDisplay} but over an EXPLICIT source
|
|
153
|
+
* list — used by the Gate-0 confirmation display so the roster includes the async
|
|
154
|
+
* repair-proxy `/registry` expansion (which is not in `sessionConfig.sources`), matching
|
|
155
|
+
* exactly what {@link gatherDispatchableSources} folds into dispatch.
|
|
156
|
+
*/
|
|
157
|
+
export declare function deriveSourcePoolDisplayFromSources(sources: DispatchableSource[]): SourcePoolDisplayEntry[];
|
|
145
158
|
//# sourceMappingURL=providerConfirmation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providerConfirmation.d.ts","sourceRoot":"","sources":["../../../src/shared/providers/providerConfirmation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACd,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAQ3E,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EAClB,yBAAyB,EAC1B,MAAM,kCAAkC,CAAC;AAM1C,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;AAEzE,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,cAAc,CAAC;IAC/B,UAAU,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACvC,QAAQ,EAAE,OAAO,CAAC;IAClB;;;;;;;;;OASG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAChC,QAAQ,EAAE,oBAAoB,EAAE,CAAC;IACjC,eAAe,EAAE,kBAAkB,EAAE,CAAC;CACvC;
|
|
1
|
+
{"version":3,"file":"providerConfirmation.d.ts","sourceRoot":"","sources":["../../../src/shared/providers/providerConfirmation.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,6 +28,7 @@ function defaultCapabilityTier(name) {
|
|
|
28
28
|
case "subprocess-template":
|
|
29
29
|
case "vscode-task":
|
|
30
30
|
case "antigravity":
|
|
31
|
+
case "agy":
|
|
31
32
|
return "capable";
|
|
32
33
|
case "worker-command":
|
|
33
34
|
return "unknown";
|
|
@@ -49,6 +50,20 @@ const CLI_PROBES = [
|
|
|
49
50
|
defaultCommand: "codex",
|
|
50
51
|
configCommand: (cfg) => cfg.codex?.command,
|
|
51
52
|
},
|
|
53
|
+
{
|
|
54
|
+
providerName: "agy",
|
|
55
|
+
defaultCommand: "agy",
|
|
56
|
+
configCommand: (cfg) => {
|
|
57
|
+
if (cfg.agy?.command)
|
|
58
|
+
return cfg.agy.command;
|
|
59
|
+
// Gated for July 18, 2026 sunset cleanup: fallback to gemini command
|
|
60
|
+
if (commandExists("agy"))
|
|
61
|
+
return "agy";
|
|
62
|
+
if (commandExists("gemini"))
|
|
63
|
+
return "gemini";
|
|
64
|
+
return undefined;
|
|
65
|
+
},
|
|
66
|
+
},
|
|
52
67
|
];
|
|
53
68
|
// ---------------------------------------------------------------------------
|
|
54
69
|
// Public API
|
|
@@ -170,6 +185,20 @@ export function representativeModelId(name, sessionConfig) {
|
|
|
170
185
|
return undefined;
|
|
171
186
|
}
|
|
172
187
|
}
|
|
188
|
+
/** Stable source id (matches `deriveSourcePoolDisplay` / the dispatch id convention). */
|
|
189
|
+
function dispatchSourceKey(source) {
|
|
190
|
+
return source.id ?? `${source.provider}:${source.model ?? source.endpoint ?? "default"}`;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Internal candidate key for a source in the unified cost ordering. Prefixed so a source's
|
|
194
|
+
* operator-set id can never collide with a provider-NAME key or a host `model_id` key in
|
|
195
|
+
* the shared position map (they share one keyspace in `resolveFinalCostOrder`) — a collision
|
|
196
|
+
* would let one entry's `cost_order` silently overwrite the other's. The prefix is internal
|
|
197
|
+
* only; the emitted `source_id` + the operator `cost_order` keyspace are unaffected.
|
|
198
|
+
*/
|
|
199
|
+
function sourceCandidateKey(source) {
|
|
200
|
+
return `source::${dispatchSourceKey(source)}`;
|
|
201
|
+
}
|
|
173
202
|
/**
|
|
174
203
|
* Resolve the FINAL 0-based cost position for every candidate key. Without an
|
|
175
204
|
* operator ordering this is the tool's price-ascending suggestion. With one, the
|
|
@@ -207,7 +236,7 @@ function resolveFinalCostOrder(candidates, operatorOrder) {
|
|
|
207
236
|
* back at dispatch (`resolveConfirmedCostPositions`) as rung 1 of `costRank`.
|
|
208
237
|
* Single-sourced so every confirmation site annotates identically.
|
|
209
238
|
*/
|
|
210
|
-
export function annotateConfirmedPool(pool, sessionConfig, input) {
|
|
239
|
+
export function annotateConfirmedPool(pool, sessionConfig, input, sources = []) {
|
|
211
240
|
const hostModels = input?.host_models ?? [];
|
|
212
241
|
const providerCandidates = pool.map((entry) => ({
|
|
213
242
|
key: entry.name,
|
|
@@ -220,7 +249,34 @@ export function annotateConfirmedPool(pool, sessionConfig, input) {
|
|
|
220
249
|
key: m.model_id,
|
|
221
250
|
model: m.model_id,
|
|
222
251
|
}));
|
|
223
|
-
|
|
252
|
+
// A source whose model is ALREADY represented by a provider candidate (the legacy
|
|
253
|
+
// `openai_compatible` block folds into BOTH the `openai-compatible` provider entry AND
|
|
254
|
+
// a `collectDispatchableSources` source) or a host tier is the SAME pool — folding it
|
|
255
|
+
// again would double-rank one model_id and let the source position overwrite the
|
|
256
|
+
// provider's in the model-keyed dispatch map. Dedup by model_id so each pool is ranked
|
|
257
|
+
// once. Repair-proxy sources carry distinct namespaced models, so they're never skipped.
|
|
258
|
+
const claimedModels = new Set();
|
|
259
|
+
for (const entry of pool) {
|
|
260
|
+
const m = representativeModelId(entry.name, sessionConfig);
|
|
261
|
+
if (m)
|
|
262
|
+
claimedModels.add(m);
|
|
263
|
+
}
|
|
264
|
+
for (const m of hostModels)
|
|
265
|
+
claimedModels.add(m.model_id);
|
|
266
|
+
const foldedSources = sources.filter((source) => !(source.model && claimedModels.has(source.model)));
|
|
267
|
+
// Gate-0 source fold: every remaining dispatchable source pool (explicit sources[] +
|
|
268
|
+
// repair-proxy expansion) becomes a ranked candidate, keyed by its stable source id so a
|
|
269
|
+
// namespaced `provider/model` never collides with a provider-name key. Each carries its
|
|
270
|
+
// declared cost (authoritative; 0 = free) and raw capability rank so the suggestion is
|
|
271
|
+
// truthful and the capability tiebreak applies among cost-equal source pools.
|
|
272
|
+
const sourceCandidates = foldedSources.map((source) => ({
|
|
273
|
+
key: sourceCandidateKey(source),
|
|
274
|
+
model: source.model ?? null,
|
|
275
|
+
provider: source.provider,
|
|
276
|
+
...(source.cost_per_mtok !== undefined ? { declaredCost: source.cost_per_mtok } : {}),
|
|
277
|
+
...(source.capability_rank != null ? { capabilityRank: source.capability_rank } : {}),
|
|
278
|
+
}));
|
|
279
|
+
const positions = resolveFinalCostOrder([...providerCandidates, ...hostCandidates, ...sourceCandidates], input?.cost_order);
|
|
224
280
|
const provider_pool = pool.map((entry) => {
|
|
225
281
|
const model = representativeModelId(entry.name, sessionConfig);
|
|
226
282
|
const order = positions.get(entry.name);
|
|
@@ -236,7 +292,23 @@ export function annotateConfirmedPool(pool, sessionConfig, input) {
|
|
|
236
292
|
blended_price_usd_per_mtok: resolveModelPrice(m.model_id) ?? null,
|
|
237
293
|
cost_order: positions.get(m.model_id) ?? 0,
|
|
238
294
|
}));
|
|
239
|
-
|
|
295
|
+
const source_pool_cost_order = foldedSources.map((source) => {
|
|
296
|
+
const key = sourceCandidateKey(source);
|
|
297
|
+
const declared = typeof source.cost_per_mtok === "number" && Number.isFinite(source.cost_per_mtok) && source.cost_per_mtok >= 0
|
|
298
|
+
? source.cost_per_mtok
|
|
299
|
+
: undefined;
|
|
300
|
+
const price = declared ?? (source.model ? resolveModelPrice(source.model, source.provider) ?? null : null);
|
|
301
|
+
return {
|
|
302
|
+
source_id: dispatchSourceKey(source),
|
|
303
|
+
provider: source.provider,
|
|
304
|
+
...(source.model ? { model_id: source.model } : {}),
|
|
305
|
+
blended_price_usd_per_mtok: price,
|
|
306
|
+
price_declared: declared !== undefined,
|
|
307
|
+
...(source.capability_rank != null ? { capability_rank: source.capability_rank } : {}),
|
|
308
|
+
cost_order: positions.get(key) ?? 0,
|
|
309
|
+
};
|
|
310
|
+
});
|
|
311
|
+
return { provider_pool, host_model_cost_order, source_pool_cost_order };
|
|
240
312
|
}
|
|
241
313
|
/**
|
|
242
314
|
* The suggestion-only annotation (no operator input, no host models). Preserved
|
|
@@ -268,7 +340,15 @@ export function applyProviderConfirmationSelections(discovered, exclude, addUnde
|
|
|
268
340
|
* (content-derived, stable — never re-sorted by iteration/readdir order).
|
|
269
341
|
*/
|
|
270
342
|
export function deriveSourcePoolDisplay(sessionConfig) {
|
|
271
|
-
|
|
343
|
+
return deriveSourcePoolDisplayFromSources(sessionConfig.sources ?? []);
|
|
344
|
+
}
|
|
345
|
+
/**
|
|
346
|
+
* Same display derivation as {@link deriveSourcePoolDisplay} but over an EXPLICIT source
|
|
347
|
+
* list — used by the Gate-0 confirmation display so the roster includes the async
|
|
348
|
+
* repair-proxy `/registry` expansion (which is not in `sessionConfig.sources`), matching
|
|
349
|
+
* exactly what {@link gatherDispatchableSources} folds into dispatch.
|
|
350
|
+
*/
|
|
351
|
+
export function deriveSourcePoolDisplayFromSources(sources) {
|
|
272
352
|
return sources.map((source) => {
|
|
273
353
|
const id = source.id ?? `${source.provider}:${source.model ?? source.endpoint ?? "default"}`;
|
|
274
354
|
const entry = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providerConfirmation.js","sourceRoot":"","sources":["../../../src/shared/providers/providerConfirmation.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,+BAA+B,EAC/B,6BAA6B,EAC7B,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAsB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"providerConfirmation.js","sourceRoot":"","sources":["../../../src/shared/providers/providerConfirmation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { FreshSessionProvider, OutputConstraintCapability } from "./types.js";
|
|
2
|
-
import type { ResolvedProviderName, SessionConfig, ClaudeCodeConfig, OpenCodeConfig } from "../types/sessionConfig.js";
|
|
2
|
+
import type { ResolvedProviderName, SessionConfig, ClaudeCodeConfig, OpenCodeConfig, AgyConfig } from "../types/sessionConfig.js";
|
|
3
3
|
import { RunLogger } from "../observability/runLog.js";
|
|
4
4
|
export declare function hasConfiguredOpenCode(sessionConfig: SessionConfig): boolean;
|
|
5
5
|
/**
|
|
@@ -18,6 +18,7 @@ export interface AutoProviderContext {
|
|
|
18
18
|
insideOpenCode: boolean;
|
|
19
19
|
insideClaudeCode: boolean;
|
|
20
20
|
insideCodex: boolean;
|
|
21
|
+
insideAgy: boolean;
|
|
21
22
|
inAntigravity: boolean;
|
|
22
23
|
hasVSCodeTaskTemplate: boolean;
|
|
23
24
|
hasAntigravityTemplate: boolean;
|
|
@@ -25,10 +26,12 @@ export interface AutoProviderContext {
|
|
|
25
26
|
hasClaudeCodeConfig: boolean;
|
|
26
27
|
hasOpenCodeConfig: boolean;
|
|
27
28
|
hasCodexConfig: boolean;
|
|
29
|
+
hasAgyConfig: boolean;
|
|
28
30
|
hasOpenAiCompatibleConfig: boolean;
|
|
29
31
|
claudeAvailable: boolean;
|
|
30
32
|
opencodeAvailable: boolean;
|
|
31
33
|
codexAvailable: boolean;
|
|
34
|
+
agyAvailable: boolean;
|
|
32
35
|
}
|
|
33
36
|
/**
|
|
34
37
|
* Resolve a concrete provider name. Only the explicit `"auto"` sentinel triggers
|
|
@@ -75,6 +78,7 @@ export interface FreshSessionProviderDeps {
|
|
|
75
78
|
orchestratorName: string;
|
|
76
79
|
createClaudeCodeProvider: (config: ClaudeCodeConfig | undefined) => FreshSessionProvider;
|
|
77
80
|
createOpenCodeProvider: (config: OpenCodeConfig | undefined) => FreshSessionProvider;
|
|
81
|
+
createAgyProvider: (config: AgyConfig | undefined) => FreshSessionProvider;
|
|
78
82
|
/**
|
|
79
83
|
* Optional structured run logger. When provided, auto-resolution decisions are
|
|
80
84
|
* emitted as a structured `provider_launch` event in addition to the human-readable
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providerFactory.d.ts","sourceRoot":"","sources":["../../../src/shared/providers/providerFactory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,0BAA0B,EAC3B,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EACV,oBAAoB,EACpB,aAAa,EACb,gBAAgB,EAEhB,cAAc,
|
|
1
|
+
{"version":3,"file":"providerFactory.d.ts","sourceRoot":"","sources":["../../../src/shared/providers/providerFactory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,0BAA0B,EAC3B,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EACV,oBAAoB,EACpB,aAAa,EACb,gBAAgB,EAEhB,cAAc,EACd,SAAS,EACV,MAAM,2BAA2B,CAAC;AAKnC,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAcvD,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAK3E;AAUD;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,aAAa,CAAC,mBAAmB,CAAC,GACzC,OAAO,CAET;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IACvB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,sBAAsB,EAAE,OAAO,CAAC;IAChC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,yBAAyB,EAAE,OAAO,CAAC;IACnC,eAAe,EAAE,OAAO,CAAC;IACzB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;CACvB;AAuLD;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,aAAa,GAAE,aAAkB,EACjC,OAAO,GAAE;IACP,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;CACzC,GACL,oBAAoB,CAYtB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,kCAAkC,CAChD,YAAY,EAAE,oBAAoB,EAClC,aAAa,GAAE,aAAkB,GAChC,0BAA0B,CA8B5B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,wBAAwB;IACvC,gFAAgF;IAChF,gBAAgB,EAAE,MAAM,CAAC;IACzB,wBAAwB,EAAE,CACxB,MAAM,EAAE,gBAAgB,GAAG,SAAS,KACjC,oBAAoB,CAAC;IAC1B,sBAAsB,EAAE,CACtB,MAAM,EAAE,cAAc,GAAG,SAAS,KAC/B,oBAAoB,CAAC;IAC1B,iBAAiB,EAAE,CACjB,MAAM,EAAE,SAAS,GAAG,SAAS,KAC1B,oBAAoB,CAAC;IAC1B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,aAAa,EAAE,aAAa,YAAK,EACjC,IAAI,EAAE,wBAAwB,GAC7B,oBAAoB,CA6CtB"}
|
|
@@ -18,6 +18,9 @@ export function hasConfiguredOpenCode(sessionConfig) {
|
|
|
18
18
|
function hasConfiguredCodex(config) {
|
|
19
19
|
return Boolean(config?.command?.trim()) || hasEntries(config?.extra_args);
|
|
20
20
|
}
|
|
21
|
+
function hasConfiguredAgy(config) {
|
|
22
|
+
return Boolean(config?.command?.trim()) || hasEntries(config?.extra_args);
|
|
23
|
+
}
|
|
21
24
|
/**
|
|
22
25
|
* openai-compatible is configured when both an endpoint and a model are set. The
|
|
23
26
|
* API key is resolved (and degrades) at launch — env presence is intentionally
|
|
@@ -40,11 +43,14 @@ function getAutoProviderContext(sessionConfig, env, lookupCommand) {
|
|
|
40
43
|
const opencodeCommand = sessionConfig.opencode?.command ?? "opencode";
|
|
41
44
|
const codexCommand = sessionConfig.codex?.command ?? "codex";
|
|
42
45
|
const insideCodex = isSelfSpawnBlocked("codex", env);
|
|
46
|
+
const insideAgy = isSelfSpawnBlocked("agy", env);
|
|
47
|
+
const agyCommand = sessionConfig.agy?.command ?? "agy";
|
|
43
48
|
return {
|
|
44
49
|
inVSCode: (env.TERM_PROGRAM ?? "").toLowerCase() === "vscode",
|
|
45
50
|
insideOpenCode: Boolean(env.OPENCODE),
|
|
46
51
|
insideClaudeCode,
|
|
47
52
|
insideCodex,
|
|
53
|
+
insideAgy,
|
|
48
54
|
// In-IDE marker for Antigravity: either an `ANTIGRAVITY` env var or
|
|
49
55
|
// `TERM_PROGRAM === "antigravity"`, mirroring the VSCode / TERM_PROGRAM
|
|
50
56
|
// pattern. Both paths require an operator-configured command_template to
|
|
@@ -59,12 +65,17 @@ function getAutoProviderContext(sessionConfig, env, lookupCommand) {
|
|
|
59
65
|
hasClaudeCodeConfig: hasConfiguredClaudeCode(sessionConfig),
|
|
60
66
|
hasOpenCodeConfig: hasConfiguredOpenCode(sessionConfig),
|
|
61
67
|
hasCodexConfig: hasConfiguredCodex(sessionConfig.codex),
|
|
68
|
+
hasAgyConfig: hasConfiguredAgy(sessionConfig.agy),
|
|
62
69
|
hasOpenAiCompatibleConfig: hasConfiguredOpenAiCompatible(sessionConfig.openai_compatible),
|
|
63
70
|
claudeAvailable: !insideClaudeCode && lookupCommand(claudeCommand),
|
|
64
71
|
opencodeAvailable: lookupCommand(opencodeCommand),
|
|
65
72
|
// Self-spawn guard mirrors claudeAvailable: a fresh `codex` subprocess
|
|
66
73
|
// cannot be spawned from inside a codex session.
|
|
67
74
|
codexAvailable: !insideCodex && lookupCommand(codexCommand),
|
|
75
|
+
// Gated for July 18, 2026 sunset cleanup: fallback check for gemini CLI executable on PATH
|
|
76
|
+
agyAvailable: !insideAgy &&
|
|
77
|
+
(lookupCommand(agyCommand) ||
|
|
78
|
+
(sessionConfig.agy?.command === undefined && lookupCommand("gemini"))),
|
|
68
79
|
};
|
|
69
80
|
}
|
|
70
81
|
/**
|
|
@@ -86,6 +97,12 @@ const PROVIDER_PRIORITY_RULES = [
|
|
|
86
97
|
"not reach it — but a host already inside codex can drive it in-session).",
|
|
87
98
|
predicate: (ctx) => ctx.insideCodex,
|
|
88
99
|
},
|
|
100
|
+
{
|
|
101
|
+
name: "agy",
|
|
102
|
+
comment: "Running inside an agy session: use it directly (agyAvailable is forced " +
|
|
103
|
+
"false by the self-spawn guard, but a host already inside agy can drive it in-session).",
|
|
104
|
+
predicate: (ctx) => ctx.insideAgy,
|
|
105
|
+
},
|
|
89
106
|
{
|
|
90
107
|
name: "vscode-task",
|
|
91
108
|
comment: "Note: when inside a Claude Code session (CLAUDECODE set) `claudeAvailable` " +
|
|
@@ -121,6 +138,11 @@ const PROVIDER_PRIORITY_RULES = [
|
|
|
121
138
|
comment: "Config-gated: operator explicitly configured codex and it is available.",
|
|
122
139
|
predicate: (ctx) => ctx.hasCodexConfig && ctx.codexAvailable,
|
|
123
140
|
},
|
|
141
|
+
{
|
|
142
|
+
name: "agy",
|
|
143
|
+
comment: "Config-gated: operator explicitly configured agy and it is available.",
|
|
144
|
+
predicate: (ctx) => ctx.hasAgyConfig && ctx.agyAvailable,
|
|
145
|
+
},
|
|
124
146
|
{
|
|
125
147
|
name: "claude-code",
|
|
126
148
|
comment: "Tie-break: claude is available — prefer claude-code. (No `!opencodeAvailable` " +
|
|
@@ -128,6 +150,11 @@ const PROVIDER_PRIORITY_RULES = [
|
|
|
128
150
|
"wins whenever present rather than yielding to an unconfigured opencode.)",
|
|
129
151
|
predicate: (ctx) => ctx.claudeAvailable,
|
|
130
152
|
},
|
|
153
|
+
{
|
|
154
|
+
name: "agy",
|
|
155
|
+
comment: "Tie-break: agy/gemini is available — prefer agy.",
|
|
156
|
+
predicate: (ctx) => ctx.agyAvailable,
|
|
157
|
+
},
|
|
131
158
|
// NOTE: there is deliberately NO bare-availability opencode tie-break. A
|
|
132
159
|
// PATH-detected `opencode` is OPT-IN only — it is auto-selected solely via the
|
|
133
160
|
// config-gated rung above (hasOpenCodeConfig && opencodeAvailable). Without
|
|
@@ -285,6 +312,8 @@ function constructProvider(providerName, sessionConfig, deps) {
|
|
|
285
312
|
return new OpenAiCompatibleProvider(sessionConfig.openai_compatible);
|
|
286
313
|
case "opencode":
|
|
287
314
|
return deps.createOpenCodeProvider(sessionConfig.opencode);
|
|
315
|
+
case "agy":
|
|
316
|
+
return deps.createAgyProvider(sessionConfig.agy);
|
|
288
317
|
case "vscode-task":
|
|
289
318
|
if (!sessionConfig.vscode_task?.command_template?.length) {
|
|
290
319
|
throw new Error("vscode-task provider requires session-config.json with vscode_task.command_template.");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providerFactory.js","sourceRoot":"","sources":["../../../src/shared/providers/providerFactory.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"providerFactory.js","sourceRoot":"","sources":["../../../src/shared/providers/providerFactory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providerPathGuard.d.ts","sourceRoot":"","sources":["../../../src/shared/providers/providerPathGuard.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,YAAY,EACZ,oBAAoB,EACrB,MAAM,2BAA2B,CAAC;AAqCnC;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,IAAI,GAC1C,IAAI,CAEN;AAiBD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,oBAAoB,EAC9B,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,
|
|
1
|
+
{"version":3,"file":"providerPathGuard.d.ts","sourceRoot":"","sources":["../../../src/shared/providers/providerPathGuard.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,YAAY,EACZ,oBAAoB,EACrB,MAAM,2BAA2B,CAAC;AAqCnC;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,IAAI,GAC1C,IAAI,CAEN;AAiBD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,oBAAoB,EAC9B,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAoBT;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,+BAA+B,CAAC,OAAO,CAAC,EAAE;IACxD,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,aAAa,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,YAAY,CAAA;KAAE,GAAG,IAAI,CAAC;IACxD,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB,GAAG,oBAAoB,CAUvB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CACrC,aAAa,EAAE;IAAE,QAAQ,CAAC,EAAE,YAAY,CAAC;IAAC,aAAa,CAAC,EAAE,YAAY,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,EAC3F,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,YAAY,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;CAAE,GAC7D,oBAAoB,CAUtB"}
|
|
@@ -74,6 +74,13 @@ export function isSelfSpawnBlocked(provider, env = process.env) {
|
|
|
74
74
|
env.CODEX_THREAD_ID ||
|
|
75
75
|
env.CODEX_INTERNAL_ORIGINATOR_OVERRIDE);
|
|
76
76
|
}
|
|
77
|
+
if (provider === "agy") {
|
|
78
|
+
// Note: checks both agy/antigravity and the legacy gemini in-session env variables.
|
|
79
|
+
// Gated for July 18, 2026 sunset cleanup: env.GEMINI_CLI
|
|
80
|
+
return Boolean(env.AGY_CLI ||
|
|
81
|
+
env.ANTIGRAVITY_CLI ||
|
|
82
|
+
env.GEMINI_CLI);
|
|
83
|
+
}
|
|
77
84
|
const signal = SELF_SPAWN_ENV_SIGNAL[provider];
|
|
78
85
|
return signal !== undefined && Boolean(env[signal]);
|
|
79
86
|
}
|
|
@@ -111,6 +118,8 @@ export function resolveConversationHostProvider(options) {
|
|
|
111
118
|
return "codex";
|
|
112
119
|
if (isSelfSpawnBlocked("claude-code", env))
|
|
113
120
|
return "claude-code";
|
|
121
|
+
if (isSelfSpawnBlocked("agy", env))
|
|
122
|
+
return "agy";
|
|
114
123
|
return "claude-code";
|
|
115
124
|
}
|
|
116
125
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providerPathGuard.js","sourceRoot":"","sources":["../../../src/shared/providers/providerPathGuard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAM/C;;;;;;;;;;;;;;;;;;GAkBG;AAEH,6EAA6E;AAC7E,SAAS,kBAAkB,CAAC,OAAe;IACzC,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IACvE,8EAA8E;IAC9E,8EAA8E;IAC9E,yEAAyE;IACzE,MAAM,MAAM,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,EAAE;QACjD,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,IAAI;KAClB,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED,IAAI,iBAAiB,GAAiC,kBAAkB,CAAC;AAEzE;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,OAAO,iBAAiB,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CACxC,IAA2C;IAE3C,iBAAiB,GAAG,IAAI,IAAI,kBAAkB,CAAC;AACjD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,qBAAqB,GAAkD;IAC3E,aAAa,EAAE,YAAY;CAC5B,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAChC,QAA8B,EAC9B,MAAyB,OAAO,CAAC,GAAG;IAEpC,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,OAAO,OAAO,CACZ,GAAG,CAAC,KAAK;YACP,GAAG,CAAC,WAAW;YACf,GAAG,CAAC,eAAe;YACnB,GAAG,CAAC,kCAAkC,CACzC,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAC/C,OAAO,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AACtD,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,+BAA+B,CAAC,OAI/C;IACC,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,CAAC;IACnC,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,MAAM;QAAE,OAAO,QAAQ,CAAC;IACnE,MAAM,UAAU,GAAG,OAAO,EAAE,aAAa,EAAE,aAAa,CAAC;IACzD,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,MAAM;QAAE,OAAO,UAAU,CAAC;IACzE,MAAM,GAAG,GAAG,OAAO,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACxC,IAAI,kBAAkB,CAAC,OAAO,EAAE,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC;IACrD,IAAI,kBAAkB,CAAC,aAAa,EAAE,GAAG,CAAC;QAAE,OAAO,aAAa,CAAC;IACjE,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,uBAAuB,CACrC,aAA2F,EAC3F,OAA8D;IAE9D,MAAM,QAAQ,GAAG,aAAa,EAAE,QAAQ,CAAC;IACzC,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QAClD,OAAO,+BAA+B,CAAC;YACrC,QAAQ,EAAE,OAAO,EAAE,QAAQ;YAC3B,aAAa;YACb,GAAG,EAAE,OAAO,EAAE,GAAG;SAClB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
1
|
+
{"version":3,"file":"providerPathGuard.js","sourceRoot":"","sources":["../../../src/shared/providers/providerPathGuard.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,9 +31,9 @@
|
|
|
31
31
|
* already withholds a bare-PATH opencode unless it is explicitly configured, so
|
|
32
32
|
* the shared confirmation inherits that opt-in for free.
|
|
33
33
|
*/
|
|
34
|
-
import type { ResolvedProviderName, SessionConfig } from "../types/sessionConfig.js";
|
|
34
|
+
import type { DispatchableSource, ResolvedProviderName, SessionConfig } from "../types/sessionConfig.js";
|
|
35
35
|
import type { RunLogger } from "../observability/runLog.js";
|
|
36
|
-
import type { ConfirmedPoolEntry, HostModelCostEntry, ProviderConfirmationInput } from "../types/providerConfirmation.js";
|
|
36
|
+
import type { ConfirmedPoolEntry, HostModelCostEntry, SourcePoolCostEntry, ProviderConfirmationInput } from "../types/providerConfirmation.js";
|
|
37
37
|
/**
|
|
38
38
|
* Schema version for the shared confirmation artifact. Bumped independently of
|
|
39
39
|
* the per-tool seam contract (PROVIDER_CONFIRMATION_RESULT_VERSION) — this is
|
|
@@ -75,6 +75,15 @@ export interface SharedProviderConfirmation {
|
|
|
75
75
|
* order. Absent/empty on the headless path (no host roster is reported).
|
|
76
76
|
*/
|
|
77
77
|
host_model_cost_order?: HostModelCostEntry[];
|
|
78
|
+
/**
|
|
79
|
+
* Dispatchable SOURCE pools (explicit `sources[]` + repair-proxy expansion) with their
|
|
80
|
+
* operator-confirmed cost positions (Gate-0 source fold). Merged into the model-keyed
|
|
81
|
+
* dispatch positions map by `readConfirmedCostPositions` so a source pool routes by its
|
|
82
|
+
* confirmed order exactly like a provider pool / host tier. Absent when no source is
|
|
83
|
+
* configured (or a confirmation written before this field existed) ⇒ dispatch falls to
|
|
84
|
+
* declared/catalog price then tier, exactly as before.
|
|
85
|
+
*/
|
|
86
|
+
source_pool_cost_order?: SourcePoolCostEntry[];
|
|
78
87
|
/**
|
|
79
88
|
* Operator-confirmed cost↔speed dispatch bias (λ) ∈ [0, 1], the durable operating
|
|
80
89
|
* point on the cost-vs-throughput frontier (spec/dispatch-cost-speed-dial.md). Read
|
|
@@ -141,7 +150,7 @@ export declare function currentProviderRoster(sessionConfig: SessionConfig, env?
|
|
|
141
150
|
* passed via the dedicated params above (the executor forwards them from the
|
|
142
151
|
* same input), so this arg governs ordering + host roster only.
|
|
143
152
|
*/
|
|
144
|
-
export declare function buildSharedProviderConfirmation(sessionConfig?: SessionConfig, env?: NodeJS.ProcessEnv, exclude?: ResolvedProviderName[], include?: ResolvedProviderName[], detectCommand?: (command: string) => boolean, input?: ProviderConfirmationInput): SharedProviderConfirmation;
|
|
153
|
+
export declare function buildSharedProviderConfirmation(sessionConfig?: SessionConfig, env?: NodeJS.ProcessEnv, exclude?: ResolvedProviderName[], include?: ResolvedProviderName[], detectCommand?: (command: string) => boolean, input?: ProviderConfirmationInput, sources?: DispatchableSource[]): SharedProviderConfirmation;
|
|
145
154
|
/**
|
|
146
155
|
* Atomically write the shared confirmation to
|
|
147
156
|
* `<root>/.audit-tools/provider-confirmation.json`. The durable write goes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sharedProviderConfirmation.d.ts","sourceRoot":"","sources":["../../../src/shared/providers/sharedProviderConfirmation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAIH,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"sharedProviderConfirmation.d.ts","sourceRoot":"","sources":["../../../src/shared/providers/sharedProviderConfirmation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAIH,OAAO,KAAK,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAIzG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAO5D,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,yBAAyB,EAC1B,MAAM,kCAAkC,CAAC;AAO1C;;;;;GAKG;AACH,eAAO,MAAM,oCAAoC,EAAG,OAAgB,CAAC;AAErE;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAGpE;AAED,gFAAgF;AAChF,eAAO,MAAM,qCAAqC,+BACpB,CAAC;AAE/B,mEAAmE;AACnE,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnE;AAMD;;;;;;;GAOG;AACH,MAAM,WAAW,0BAA0B;IACzC,uDAAuD;IACvD,cAAc,EAAE,OAAO,oCAAoC,CAAC;IAC5D,0EAA0E;IAC1E,aAAa,EAAE,IAAI,CAAC;IACpB,yDAAyD;IACzD,YAAY,EAAE,MAAM,CAAC;IACrB,qDAAqD;IACrD,aAAa,EAAE,kBAAkB,EAAE,CAAC;IACpC;;;;;OAKG;IACH,qBAAqB,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC7C;;;;;;;OAOG;IACH,sBAAsB,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC/C;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,MAAM,EAAE,oBAAoB,EAAE,CAAC;CAChC;AAED;;;;;GAKG;AACH,MAAM,MAAM,8BAA8B,GACtC;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,YAAY,EAAE,0BAA0B,CAAA;CAAE,GACjE;IACE,MAAM,EAAE,WAAW,CAAC;IACpB,YAAY,EAAE,0BAA0B,CAAC;IACzC,MAAM,EAAE,MAAM,CAAC;CAChB,GACD,IAAI,CAAC;AAMT;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,aAAa,EAC5B,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,GAC3C,oBAAoB,EAAE,CAKxB;AAuBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,+BAA+B,CAC7C,aAAa,GAAE,aAAkB,EACjC,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,OAAO,GAAE,oBAAoB,EAAO,EACpC,OAAO,GAAE,oBAAoB,EAAO,EACpC,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,EAC5C,KAAK,CAAC,EAAE,yBAAyB,EACjC,OAAO,GAAE,kBAAkB,EAAO,GACjC,0BAA0B,CAwD5B;AAMD;;;;;;;GAOG;AACH,wBAAsB,+BAA+B,CACnD,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,0BAA0B,EACxC,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,IAAI,CAAC,CAef;AA8GD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,8BAA8B,CAClD,IAAI,EAAE,MAAM,EACZ,aAAa,GAAE,aAAkB,EACjC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAAC,8BAA8B,CAAC,CA8BzC;AAED;;;;;;;;GAQG;AACH,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,aAAa,GAAE,aAAkB,EACjC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAgC9B;AAED;;;;;;;GAOG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,aAAa,GAAE,aAAkB,EACjC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAAC,MAAM,CAAC,CAKjB;AAMD,gFAAgF;AAChF,eAAO,MAAM,oCAAoC,qCACb,CAAC;AAErC;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,OAAO,GACb,yBAAyB,GAAG,IAAI,CAyClC;AAED;;;;GAIG;AACH,wBAAsB,6BAA6B,CACjD,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAS3C"}
|
|
@@ -126,7 +126,7 @@ function rostersEqual(a, b) {
|
|
|
126
126
|
* passed via the dedicated params above (the executor forwards them from the
|
|
127
127
|
* same input), so this arg governs ordering + host roster only.
|
|
128
128
|
*/
|
|
129
|
-
export function buildSharedProviderConfirmation(sessionConfig = {}, env = process.env, exclude = [], include = [], detectCommand, input) {
|
|
129
|
+
export function buildSharedProviderConfirmation(sessionConfig = {}, env = process.env, exclude = [], include = [], detectCommand, input, sources = []) {
|
|
130
130
|
const discovered = discoverProviders(sessionConfig, env, detectCommand);
|
|
131
131
|
const excludeSet = new Set(exclude);
|
|
132
132
|
const includeSet = new Set(include);
|
|
@@ -160,7 +160,7 @@ export function buildSharedProviderConfirmation(sessionConfig = {}, env = proces
|
|
|
160
160
|
// Cost-first routing: annotate with representative model price + cost_order,
|
|
161
161
|
// read at dispatch as rung 1 of costRank (spec/cost-first-routing.md). When an
|
|
162
162
|
// operator input is present its ordering wins and its host roster is priced.
|
|
163
|
-
const annotated = annotateConfirmedPool(pool, sessionConfig, input);
|
|
163
|
+
const annotated = annotateConfirmedPool(pool, sessionConfig, input, sources);
|
|
164
164
|
return {
|
|
165
165
|
schema_version: SHARED_PROVIDER_CONFIRMATION_VERSION,
|
|
166
166
|
session_level: true,
|
|
@@ -169,6 +169,9 @@ export function buildSharedProviderConfirmation(sessionConfig = {}, env = proces
|
|
|
169
169
|
...(annotated.host_model_cost_order.length > 0
|
|
170
170
|
? { host_model_cost_order: annotated.host_model_cost_order }
|
|
171
171
|
: {}),
|
|
172
|
+
...(annotated.source_pool_cost_order.length > 0
|
|
173
|
+
? { source_pool_cost_order: annotated.source_pool_cost_order }
|
|
174
|
+
: {}),
|
|
172
175
|
...(clampDispatchBias(input?.dispatch_bias) != null
|
|
173
176
|
? { dispatch_bias: clampDispatchBias(input?.dispatch_bias) }
|
|
174
177
|
: {}),
|
|
@@ -222,6 +225,18 @@ function isHostModelCostEntry(value) {
|
|
|
222
225
|
typeof obj.blended_price_usd_per_mtok === "number") &&
|
|
223
226
|
typeof obj.cost_order === "number");
|
|
224
227
|
}
|
|
228
|
+
function isSourcePoolCostEntry(value) {
|
|
229
|
+
if (value === null || typeof value !== "object" || Array.isArray(value)) {
|
|
230
|
+
return false;
|
|
231
|
+
}
|
|
232
|
+
const obj = value;
|
|
233
|
+
return (typeof obj.source_id === "string" &&
|
|
234
|
+
typeof obj.provider === "string" &&
|
|
235
|
+
(obj.model_id === undefined || typeof obj.model_id === "string") &&
|
|
236
|
+
(obj.blended_price_usd_per_mtok === null ||
|
|
237
|
+
typeof obj.blended_price_usd_per_mtok === "number") &&
|
|
238
|
+
typeof obj.cost_order === "number");
|
|
239
|
+
}
|
|
225
240
|
/**
|
|
226
241
|
* Validate a parsed value as a SharedProviderConfirmation. Returns the typed
|
|
227
242
|
* value or `null` when any required field is missing or malformed — a corrupt
|
|
@@ -250,6 +265,11 @@ function parseSharedProviderConfirmation(value) {
|
|
|
250
265
|
obj.host_model_cost_order.every(isHostModelCostEntry)
|
|
251
266
|
? obj.host_model_cost_order
|
|
252
267
|
: undefined;
|
|
268
|
+
// source_pool_cost_order is optional + additive; a malformed value degrades to absent.
|
|
269
|
+
const sourcePools = Array.isArray(obj.source_pool_cost_order) &&
|
|
270
|
+
obj.source_pool_cost_order.every(isSourcePoolCostEntry)
|
|
271
|
+
? obj.source_pool_cost_order
|
|
272
|
+
: undefined;
|
|
253
273
|
// dispatch_bias is optional + additive; a malformed/out-of-range value degrades to
|
|
254
274
|
// the cost-first default (clamp → undefined only when non-finite), never blocking.
|
|
255
275
|
const dispatchBias = clampDispatchBias(obj.dispatch_bias);
|
|
@@ -261,6 +281,9 @@ function parseSharedProviderConfirmation(value) {
|
|
|
261
281
|
...(hostModels && hostModels.length > 0
|
|
262
282
|
? { host_model_cost_order: hostModels }
|
|
263
283
|
: {}),
|
|
284
|
+
...(sourcePools && sourcePools.length > 0
|
|
285
|
+
? { source_pool_cost_order: sourcePools }
|
|
286
|
+
: {}),
|
|
264
287
|
...(dispatchBias != null ? { dispatch_bias: dispatchBias } : {}),
|
|
265
288
|
roster: obj.roster,
|
|
266
289
|
};
|
|
@@ -341,6 +364,17 @@ export async function readConfirmedCostPositions(root, sessionConfig = {}, env =
|
|
|
341
364
|
positions.set(entry.model_id, entry.cost_order);
|
|
342
365
|
}
|
|
343
366
|
}
|
|
367
|
+
// Source pools (explicit sources[] + repair-proxy expansion) route by their confirmed
|
|
368
|
+
// position keyed on the source's model id — the SAME model-keyed lookup a repair-proxy
|
|
369
|
+
// dispatch pool resolves against (pool.model = the namespaced `provider/model`). An entry
|
|
370
|
+
// without a model_id is display-only and contributes no dispatch position.
|
|
371
|
+
for (const entry of read.confirmation.source_pool_cost_order ?? []) {
|
|
372
|
+
if (entry.model_id &&
|
|
373
|
+
Number.isFinite(entry.cost_order) &&
|
|
374
|
+
entry.cost_order >= 0) {
|
|
375
|
+
positions.set(entry.model_id, entry.cost_order);
|
|
376
|
+
}
|
|
377
|
+
}
|
|
344
378
|
return positions;
|
|
345
379
|
}
|
|
346
380
|
/**
|