@duetso/agent 0.3.23 → 0.3.24
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/package.json +2 -2
- package/dist/src/cli/route.d.ts +4 -2
- package/dist/src/cli/route.d.ts.map +1 -1
- package/dist/src/cli/route.js +9 -16
- package/dist/src/cli/route.js.map +1 -1
- package/dist/src/model-resolution/model-gateway.d.ts +10 -0
- package/dist/src/model-resolution/model-gateway.d.ts.map +1 -1
- package/dist/src/model-resolution/model-gateway.js +30 -11
- package/dist/src/model-resolution/model-gateway.js.map +1 -1
- package/dist/src/model-resolution/resolver.d.ts +0 -2
- package/dist/src/model-resolution/resolver.d.ts.map +1 -1
- package/dist/src/model-resolution/resolver.js +0 -5
- package/dist/src/model-resolution/resolver.js.map +1 -1
- package/dist/src/model-routing/classifier.d.ts +71 -12
- package/dist/src/model-routing/classifier.d.ts.map +1 -1
- package/dist/src/model-routing/classifier.js +92 -13
- package/dist/src/model-routing/classifier.js.map +1 -1
- package/dist/src/model-routing/loader.d.ts.map +1 -1
- package/dist/src/model-routing/loader.js +15 -7
- package/dist/src/model-routing/loader.js.map +1 -1
- package/dist/src/model-routing/prompts.d.ts +16 -5
- package/dist/src/model-routing/prompts.d.ts.map +1 -1
- package/dist/src/model-routing/prompts.js +51 -5
- package/dist/src/model-routing/prompts.js.map +1 -1
- package/dist/src/model-routing/router.d.ts +15 -4
- package/dist/src/model-routing/router.d.ts.map +1 -1
- package/dist/src/model-routing/router.js +17 -1
- package/dist/src/model-routing/router.js.map +1 -1
- package/dist/src/model-routing/table.d.ts +16 -5
- package/dist/src/model-routing/table.d.ts.map +1 -1
- package/dist/src/model-routing/table.js +37 -16
- package/dist/src/model-routing/table.js.map +1 -1
- package/dist/src/tui/slash-commands.d.ts +1 -1
- package/dist/src/tui/slash-commands.d.ts.map +1 -1
- package/dist/src/tui/slash-commands.js +11 -2
- package/dist/src/tui/slash-commands.js.map +1 -1
- package/dist/src/turn-runner/turn-runner.d.ts +8 -3
- package/dist/src/turn-runner/turn-runner.d.ts.map +1 -1
- package/dist/src/turn-runner/turn-runner.js +9 -7
- package/dist/src/turn-runner/turn-runner.js.map +1 -1
- package/dist/src/turn-runner/usage-accounting.d.ts +11 -0
- package/dist/src/turn-runner/usage-accounting.d.ts.map +1 -1
- package/dist/src/turn-runner/usage-accounting.js +16 -0
- package/dist/src/turn-runner/usage-accounting.js.map +1 -1
- package/package.json +2 -2
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@duetso/agent",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.24",
|
|
4
4
|
"description": "An opinionated full-stack agent turn runner with native memories, interrupts, and multi-agent orchestration",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"agent",
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
70
70
|
"@opentui/core": "^0.2.5",
|
|
71
71
|
"@vscode/ripgrep": "^1.18.0",
|
|
72
|
-
"ai": "^7",
|
|
72
|
+
"ai": "^7.0.105",
|
|
73
73
|
"ajv": "^8.20.0",
|
|
74
74
|
"dedent": "^1.7.2",
|
|
75
75
|
"dotenv": "^17.4.2",
|
package/dist/src/cli/route.d.ts
CHANGED
|
@@ -29,8 +29,10 @@ export interface RouteCommandResult {
|
|
|
29
29
|
model: string;
|
|
30
30
|
/** Reasoning effort attached to the final concrete target. */
|
|
31
31
|
effort: ThinkingLevel;
|
|
32
|
-
/** One-sentence explanation
|
|
33
|
-
rationale
|
|
32
|
+
/** One-sentence explanation, present only when the chat classifier answered. */
|
|
33
|
+
rationale?: string;
|
|
34
|
+
/** Probability per route, present only when an evaluation model answered. */
|
|
35
|
+
probabilities?: Record<string, number>;
|
|
34
36
|
/** Virtual tiers traversed while resolving the selected route. */
|
|
35
37
|
resolutionChain: string[];
|
|
36
38
|
/** Built-in marker or path of the active replacement table. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../src/cli/route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAS3D,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../src/cli/route.ts"],"names":[],"mappings":"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"}
|
package/dist/src/cli/route.js
CHANGED
|
@@ -6,10 +6,10 @@ import { ADVISOR_MAX_OUTPUT_TOKENS } from "../model-routing/advisor.js";
|
|
|
6
6
|
import { classifyRoute } from "../model-routing/classifier.js";
|
|
7
7
|
import { loadRoutingTable } from "../model-routing/loader.js";
|
|
8
8
|
import { resolveRoute } from "../model-routing/resolve.js";
|
|
9
|
+
import { formatRouteProbabilities } from "../model-routing/router.js";
|
|
9
10
|
import { isConnectedProviderId } from "../connected-providers/store.js";
|
|
10
11
|
import { isProviderPinnedModelName } from "../model-resolution/catalog.js";
|
|
11
|
-
import {
|
|
12
|
-
import { pinnedModelReference, resolveModelName, routingCatalogAdapter, } from "../model-resolution/resolver.js";
|
|
12
|
+
import { resolveModelName, routingCatalogAdapter } from "../model-resolution/resolver.js";
|
|
13
13
|
import { DEFAULT_MEMORY_DB_PATH, DEFAULT_SESSION_STORAGE_DIR } from "../session/session-manager.js";
|
|
14
14
|
import { listRecentSessions } from "../tui/recent-sessions.js";
|
|
15
15
|
import { TurnRunner } from "../turn-runner/turn-runner.js";
|
|
@@ -74,21 +74,16 @@ export function parseRouteArgs(args) {
|
|
|
74
74
|
function tableSource(loaded) {
|
|
75
75
|
return loaded.source === "built-in" ? loaded.source : loaded.path;
|
|
76
76
|
}
|
|
77
|
-
function classifierModelReference(modelName) {
|
|
78
|
-
const reference = pinnedModelReference(modelName);
|
|
79
|
-
const provider = reference.slice(0, reference.indexOf(":"));
|
|
80
|
-
if (!resolveProviderApiKey(provider)) {
|
|
81
|
-
throw new Error(`No API key configured for classifier provider "${provider}".`);
|
|
82
|
-
}
|
|
83
|
-
return reference;
|
|
84
|
-
}
|
|
85
77
|
function renderHuman(result) {
|
|
86
78
|
return [
|
|
87
79
|
`Tier: ${result.tier}`,
|
|
88
80
|
`Route: ${result.route}`,
|
|
89
81
|
`Model: ${result.model}`,
|
|
90
82
|
`Effort: ${result.effort}`,
|
|
91
|
-
`Rationale: ${result.rationale}
|
|
83
|
+
...(result.rationale ? [`Rationale: ${result.rationale}`] : []),
|
|
84
|
+
...(result.probabilities
|
|
85
|
+
? [`Confidence: ${formatRouteProbabilities(result.probabilities)}`]
|
|
86
|
+
: []),
|
|
92
87
|
`Resolution chain: ${result.resolutionChain.join(" -> ")}`,
|
|
93
88
|
`Table source: ${result.tableSource}`,
|
|
94
89
|
...(result.transport
|
|
@@ -129,10 +124,7 @@ export async function runRouteCommand(args, options = {}) {
|
|
|
129
124
|
lastStepDelta: parsed.prompt,
|
|
130
125
|
hasImages: facts.hasImages,
|
|
131
126
|
trigger: "turn_start",
|
|
132
|
-
}, {
|
|
133
|
-
model: classifierModelReference(loaded.table.classifier.target.modelName),
|
|
134
|
-
thinkingLevel: loaded.table.classifier.target.thinkingLevel,
|
|
135
|
-
});
|
|
127
|
+
}, { target: loaded.table.classifier.target });
|
|
136
128
|
const resolved = resolveRoute(loaded.table, tierName, decision.route, facts, routingCatalogAdapter);
|
|
137
129
|
if (parsed.explain) {
|
|
138
130
|
// A turn awaits this refresh before resolving; --explain must match what
|
|
@@ -146,7 +138,8 @@ export async function runRouteCommand(args, options = {}) {
|
|
|
146
138
|
route: decision.route,
|
|
147
139
|
model: resolved.modelName,
|
|
148
140
|
effort: resolved.thinkingLevel,
|
|
149
|
-
rationale: decision.rationale,
|
|
141
|
+
...(decision.rationale ? { rationale: decision.rationale } : {}),
|
|
142
|
+
...(decision.probabilities ? { probabilities: decision.probabilities } : {}),
|
|
150
143
|
resolutionChain: resolved.chain,
|
|
151
144
|
tableSource: tableSource(loaded),
|
|
152
145
|
...(explainedModel
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.js","sourceRoot":"","sources":["../../../src/cli/route.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"route.js","sourceRoot":"","sources":["../../../src/cli/route.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,8 +7,18 @@ import { createGateway } from "ai";
|
|
|
7
7
|
* Bearer token.
|
|
8
8
|
*/
|
|
9
9
|
export declare const DUET_API_KEY_ENV = "DUET_API_KEY";
|
|
10
|
+
/** Vercel AI Gateway credential used when no Duet key is configured. */
|
|
11
|
+
export declare const AI_GATEWAY_API_KEY_ENV = "AI_GATEWAY_API_KEY";
|
|
10
12
|
/** Capability classes the gateway tags each model with via `/v1/models`. */
|
|
11
13
|
export type ModelType = "language" | "image" | "video" | "embedding" | "realtime" | "reranking" | "speech" | "transcription";
|
|
14
|
+
/**
|
|
15
|
+
* The upstream an AI SDK gateway client targets, or undefined when neither
|
|
16
|
+
* credential is configured. Credential precedence mirrors the harness: the
|
|
17
|
+
* Duet proxy when its key is present, else Vercel's AI Gateway (same /v4/ai
|
|
18
|
+
* protocol path) with the Vercel key. One owner for this fallback — callers
|
|
19
|
+
* never bridge env vars, and usage attribution reads the same answer.
|
|
20
|
+
*/
|
|
21
|
+
export declare function modelGatewayTransport(): "duet-gateway" | "vercel-ai-gateway" | undefined;
|
|
12
22
|
/**
|
|
13
23
|
* Build an AI SDK gateway provider bound to the Duet proxy. Callers resolve a
|
|
14
24
|
* model with `gateway('<provider>/<model>')` and pass it to `generateText`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-gateway.d.ts","sourceRoot":"","sources":["../../../src/model-resolution/model-gateway.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAGnC;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"model-gateway.d.ts","sourceRoot":"","sources":["../../../src/model-resolution/model-gateway.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAGnC;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,iBAAiB,CAAC;AAE/C,wEAAwE;AACxE,eAAO,MAAM,sBAAsB,uBAAuB,CAAC;AAM3D,4EAA4E;AAC5E,MAAM,MAAM,SAAS,GACjB,UAAU,GACV,OAAO,GACP,OAAO,GACP,WAAW,GACX,UAAU,GACV,WAAW,GACX,QAAQ,GACR,eAAe,CAAC;AAEpB;;;;;;GAMG;AACH,wBAAgB,qBAAqB,IAAI,cAAc,GAAG,mBAAmB,GAAG,SAAS,CAIxF;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,IAAI,UAAU,CAAC,OAAO,aAAa,CAAC,CA8BzE;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAazE"}
|
|
@@ -8,9 +8,25 @@ import { duetTierHeaders, getDuetGatewayBaseUrl } from "./duet-gateway.js";
|
|
|
8
8
|
* Bearer token.
|
|
9
9
|
*/
|
|
10
10
|
export const DUET_API_KEY_ENV = "DUET_API_KEY";
|
|
11
|
+
/** Vercel AI Gateway credential used when no Duet key is configured. */
|
|
12
|
+
export const AI_GATEWAY_API_KEY_ENV = "AI_GATEWAY_API_KEY";
|
|
11
13
|
// Generation can be slow — image/video models routinely run for minutes — so
|
|
12
14
|
// requests get a 15-minute ceiling rather than the SDK/runtime default.
|
|
13
15
|
const GENERATION_TIMEOUT_MS = 15 * 60 * 1000;
|
|
16
|
+
/**
|
|
17
|
+
* The upstream an AI SDK gateway client targets, or undefined when neither
|
|
18
|
+
* credential is configured. Credential precedence mirrors the harness: the
|
|
19
|
+
* Duet proxy when its key is present, else Vercel's AI Gateway (same /v4/ai
|
|
20
|
+
* protocol path) with the Vercel key. One owner for this fallback — callers
|
|
21
|
+
* never bridge env vars, and usage attribution reads the same answer.
|
|
22
|
+
*/
|
|
23
|
+
export function modelGatewayTransport() {
|
|
24
|
+
if (process.env[DUET_API_KEY_ENV]?.trim())
|
|
25
|
+
return "duet-gateway";
|
|
26
|
+
if (process.env[AI_GATEWAY_API_KEY_ENV]?.trim())
|
|
27
|
+
return "vercel-ai-gateway";
|
|
28
|
+
return undefined;
|
|
29
|
+
}
|
|
14
30
|
/**
|
|
15
31
|
* Build an AI SDK gateway provider bound to the Duet proxy. Callers resolve a
|
|
16
32
|
* model with `gateway('<provider>/<model>')` and pass it to `generateText`,
|
|
@@ -20,17 +36,20 @@ const GENERATION_TIMEOUT_MS = 15 * 60 * 1000;
|
|
|
20
36
|
*/
|
|
21
37
|
export function createDuetModelGateway() {
|
|
22
38
|
// Preserve `fetch.preconnect` so the wrapper still satisfies the platform
|
|
23
|
-
// fetch signature
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
const upstream =
|
|
31
|
-
? {
|
|
32
|
-
|
|
33
|
-
|
|
39
|
+
// fetch signature. The caller's abort signal stays live alongside the
|
|
40
|
+
// timeout so an interrupted turn cancels its in-flight side calls.
|
|
41
|
+
const longTimeoutFetch = Object.assign((input, init) => {
|
|
42
|
+
const timeout = AbortSignal.timeout(GENERATION_TIMEOUT_MS);
|
|
43
|
+
const signal = init?.signal ? AbortSignal.any([init.signal, timeout]) : timeout;
|
|
44
|
+
return fetch(input, { ...init, signal });
|
|
45
|
+
}, { preconnect: fetch.preconnect });
|
|
46
|
+
const upstream = modelGatewayTransport() === "vercel-ai-gateway"
|
|
47
|
+
? {
|
|
48
|
+
baseURL: "https://ai-gateway.vercel.sh/v4/ai",
|
|
49
|
+
apiKey: process.env[AI_GATEWAY_API_KEY_ENV]?.trim(),
|
|
50
|
+
}
|
|
51
|
+
: { baseURL: `${getDuetGatewayBaseUrl()}/v4/ai`, apiKey: process.env[DUET_API_KEY_ENV] };
|
|
52
|
+
// An AI SDK caller inside a routed turn — the advisor and classifier — bills through
|
|
34
53
|
// this client rather than the pi transport, so it must carry the tier claim
|
|
35
54
|
// itself. Constructors run per call site, so the claim reads the tier
|
|
36
55
|
// current at that moment; Vercel's own gateway ignores the extra header when
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-gateway.js","sourceRoot":"","sources":["../../../src/model-resolution/model-gateway.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE3E;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,cAAc,CAAC;AAE/C,6EAA6E;AAC7E,wEAAwE;AACxE,MAAM,qBAAqB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAa7C;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB;IACpC,0EAA0E;IAC1E,
|
|
1
|
+
{"version":3,"file":"model-gateway.js","sourceRoot":"","sources":["../../../src/model-resolution/model-gateway.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,8 +27,6 @@ export declare function resolveModelName(model: string): Model<any>;
|
|
|
27
27
|
export declare function resolveMeteredModelName(modelName: string): Model<any>;
|
|
28
28
|
/** Shared concrete-catalog boundary used by every model-routing composition site. */
|
|
29
29
|
export declare const routingCatalogAdapter: RoutingCatalogAdapter;
|
|
30
|
-
/** Resolve a concrete catalog name to the provider-pinned reference used for model calls. */
|
|
31
|
-
export declare function pinnedModelReference(name: string): string;
|
|
32
30
|
/** Router providers whose credential env var is configured in this process. */
|
|
33
31
|
export declare function configuredRouterProviders(): RouterProviderName[];
|
|
34
32
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../src/model-resolution/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,EAGL,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EAClB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAYL,KAAK,kBAAkB,EAExB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAO9D,OAAO,EAAyB,KAAK,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAElG,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAE3E;;;;;GAKG;AAEH,MAAM,WAAW,eAAe;IAC9B,6EAA6E;IAC7E,SAAS,EAAE,MAAM,CAAC;IAClB,sGAAsG;IACtG,MAAM,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;IAC5C,4EAA4E;IAC5E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kFAAkF;IAClF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4EAA4E;IAC5E,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CA6B1D;AAED,+EAA+E;AAC/E,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAErE;AAED,qFAAqF;AACrF,eAAO,MAAM,qBAAqB,EAAE,qBAMnC,CAAC;
|
|
1
|
+
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../src/model-resolution/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,EAGL,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EAClB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAYL,KAAK,kBAAkB,EAExB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAO9D,OAAO,EAAyB,KAAK,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAElG,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAE3E;;;;;GAKG;AAEH,MAAM,WAAW,eAAe;IAC9B,6EAA6E;IAC7E,SAAS,EAAE,MAAM,CAAC;IAClB,sGAAsG;IACtG,MAAM,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;IAC5C,4EAA4E;IAC5E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kFAAkF;IAClF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4EAA4E;IAC5E,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CA6B1D;AAED,+EAA+E;AAC/E,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAErE;AAED,qFAAqF;AACrF,eAAO,MAAM,qBAAqB,EAAE,qBAMnC,CAAC;AAMF,+EAA+E;AAC/E,wBAAgB,yBAAyB,IAAI,kBAAkB,EAAE,CAIhE;AAaD;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,eAAe,EAAE,MAAM,GAAG,SAAS,EACnC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,GACtB,eAAe,CAOjB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,EACvB,YAAY,GAAE,YAAqC,GAClD,eAAe,CAQjB;AAiED,UAAU,oCAAoC;IAC5C,QAAQ,IAAI,UAAU,CAAC,OAAO,0BAA0B,CAAC,CAAC;IAC1D,MAAM,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM,GAAG,SAAS,CAAC;IAC1D,SAAS,CAAC,CAAC,SAAS;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,QAAQ,EAAE,mBAAmB,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAC5F,OAAO,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAAC;CAC9C;AASD,mFAAmF;AACnF,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE,oCAA2E,GAChF,MAAM,CAsBR;AAcD,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,eAAe,GAAG,MAAM,CAU3E"}
|
|
@@ -47,11 +47,6 @@ export const routingCatalogAdapter = {
|
|
|
47
47
|
isCatalogName: isKnownShorthand,
|
|
48
48
|
modelAcceptsImages: (name) => resolveModelName(isProviderPinnedModelName(name) ? name : `duet-gateway:${name}`).input.includes("image"),
|
|
49
49
|
};
|
|
50
|
-
/** Resolve a concrete catalog name to the provider-pinned reference used for model calls. */
|
|
51
|
-
export function pinnedModelReference(name) {
|
|
52
|
-
const model = resolveModelName(name);
|
|
53
|
-
return `${model.provider}:${model.id}`;
|
|
54
|
-
}
|
|
55
50
|
function isKnownProvider(provider) {
|
|
56
51
|
return PROVIDER_ORDER.some((entry) => entry.provider === provider);
|
|
57
52
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../../src/model-resolution/resolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,OAAO,EACL,sBAAsB,EACtB,cAAc,GAGf,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACpF,OAAO,EACL,qBAAqB,EACrB,2BAA2B,EAC3B,sBAAsB,EACtB,wBAAwB,EACxB,kBAAkB,EAClB,uBAAuB,EACvB,sBAAsB,EACtB,gBAAgB,EAChB,yBAAyB,EACzB,cAAc,EAGd,wBAAwB,GACzB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAC;AACjF,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,iCAAiC,GAClC,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAA4B,MAAM,iCAAiC,CAAC;AAElG,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAsB3E,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,KAAK,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;IAC9C,+EAA+E;IAC/E,0EAA0E;IAC1E,iFAAiF;IACjF,2EAA2E;IAC3E,uEAAuE;IACvE,yEAAyE;IACzE,wEAAwE;IACxE,mEAAmE;IACnE,MAAM,QAAQ,GAAG,wBAAwB,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC;IACtE,MAAM,OAAO,GAAG,eAAe,CAAC,QAAQ,CAAC;QACvC,CAAC,CAAC,2BAA2B,CAAC,QAAQ,EAAE,UAAU,CAAC;QACnD,CAAC,CAAC,UAAU,CAAC;IACf,4EAA4E;IAC5E,wEAAwE;IACxE,4EAA4E;IAC5E,sDAAsD;IACtD,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACrC,IAAI,KAAK;QAAE,OAAO,sBAAsB,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9E,uEAAuE;IACvE,iDAAiD;IACjD,OAAO,sBAAsB,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAe,CAAC,CAAC;AAC/E,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,uBAAuB,CAAC,SAAiB;IACvD,OAAO,gBAAgB,CAAC,2BAA2B,CAAC,SAAS,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,qFAAqF;AACrF,MAAM,CAAC,MAAM,qBAAqB,GAA0B;IAC1D,aAAa,EAAE,gBAAgB;IAC/B,kBAAkB,EAAE,CAAC,IAAY,EAAE,EAAE,CACnC,gBAAgB,CACd,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,IAAI,EAAE,CAChE,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;CAC5B,CAAC;AAEF,
|
|
1
|
+
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../../src/model-resolution/resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type
|
|
1
|
+
import type { Usage } from "@earendil-works/pi-ai";
|
|
2
|
+
import { type Experimental_EvaluationModel, type Experimental_EvaluationResult } from "ai";
|
|
3
|
+
import * as structuredOutput from "../core/structured-output.js";
|
|
4
|
+
import type { TransportName } from "../model-resolution/catalog.js";
|
|
5
|
+
import { type ClassifierPath } from "./prompts.js";
|
|
6
|
+
import type { ClassifierTarget, TierDefinition } from "./table.js";
|
|
3
7
|
/**
|
|
4
8
|
* The runtime milestone that requested a classification. Owned here — where
|
|
5
9
|
* the concept originates — and consumed by the router, the protocol event,
|
|
@@ -32,26 +36,81 @@ export interface ClassifierMessages {
|
|
|
32
36
|
/** Tier rules plus the lean, request-specific routing facts. */
|
|
33
37
|
prompt: string;
|
|
34
38
|
}
|
|
35
|
-
/**
|
|
39
|
+
/**
|
|
40
|
+
* Classification context the evaluation model judges. Null marks a hint the
|
|
41
|
+
* caller did not supply, so the model never reads a placeholder as content.
|
|
42
|
+
*/
|
|
43
|
+
export type ClassifierState = {
|
|
44
|
+
trigger: RouteTrigger;
|
|
45
|
+
tier: string;
|
|
46
|
+
imagesPresent: boolean;
|
|
47
|
+
currentTarget: string | null;
|
|
48
|
+
previousTurnHint: string | null;
|
|
49
|
+
currentRequestOrLastStepDelta: string | null;
|
|
50
|
+
};
|
|
51
|
+
/** The single choice question: one option per route in the classified tier. */
|
|
52
|
+
export type ClassifierQuestions = {
|
|
53
|
+
route: {
|
|
54
|
+
type: "choice";
|
|
55
|
+
/** Route policy, administrator guidance, and cache-continuity framing. */
|
|
56
|
+
instructions: string;
|
|
57
|
+
/** Route name mapped to its administrator-authored description. */
|
|
58
|
+
criteria: Record<string, string>;
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
/** Pure evaluation request consumed by the evaluation-model classifier call. */
|
|
62
|
+
export interface ClassifierRequest {
|
|
63
|
+
state: ClassifierState;
|
|
64
|
+
questions: ClassifierQuestions;
|
|
65
|
+
}
|
|
66
|
+
/** Evaluation call seam; production binds the AI SDK's `experimental_evaluate`. */
|
|
67
|
+
export type ClassifierEvaluate = (call: ClassifierRequest & {
|
|
68
|
+
model: Experimental_EvaluationModel;
|
|
69
|
+
abortSignal?: AbortSignal;
|
|
70
|
+
}) => Promise<Pick<Experimental_EvaluationResult<ClassifierQuestions>, "answers" | "usage" | "providerMetadata">>;
|
|
71
|
+
/** Structured-output call seam; production binds `generateStructuredOutput`. */
|
|
72
|
+
export type ClassifierGenerate = typeof structuredOutput.generateStructuredOutput;
|
|
73
|
+
/** One attributed classifier call, shaped the same whichever path ran it. */
|
|
74
|
+
export interface ClassifierUsageReport {
|
|
75
|
+
/** Provider-specific model id the call billed under. */
|
|
76
|
+
modelId: string;
|
|
77
|
+
/** Backend that carried the call. */
|
|
78
|
+
transport: TransportName;
|
|
79
|
+
/** Priced usage; the evaluation path prices from the gateway's reported cost. */
|
|
80
|
+
usage: Usage;
|
|
81
|
+
}
|
|
82
|
+
/** Options for one live route decision, whichever classifier path the target selects. */
|
|
36
83
|
export interface ClassifyRouteOptions {
|
|
37
|
-
/** Classifier
|
|
38
|
-
|
|
39
|
-
/** Reasoning effort configured for the classifier target in the routing table. */
|
|
40
|
-
thinkingLevel?: ThinkingLevel;
|
|
84
|
+
/** Classifier target from the routing table; its name selects the path. */
|
|
85
|
+
target: ClassifierTarget;
|
|
41
86
|
/** Cancels the provider request when its owning turn is interrupted. */
|
|
42
87
|
signal?: AbortSignal;
|
|
43
|
-
/** Receives
|
|
44
|
-
onUsage?: (
|
|
88
|
+
/** Receives the attributed usage for this call. */
|
|
89
|
+
onUsage?: (report: ClassifierUsageReport) => void;
|
|
90
|
+
/** Evaluation-path network seam for deterministic tests. */
|
|
91
|
+
evaluate?: ClassifierEvaluate;
|
|
92
|
+
/** Chat-path network seam for deterministic tests. */
|
|
93
|
+
generate?: ClassifierGenerate;
|
|
45
94
|
}
|
|
46
95
|
/** A classifier choice that still names policy, not a concrete execution target. */
|
|
47
96
|
export interface ClassifierDecision {
|
|
48
97
|
/** Existing route name selected from the supplied tier. */
|
|
49
98
|
route: string;
|
|
50
|
-
/** One-sentence explanation returned by the classifier. */
|
|
51
|
-
rationale
|
|
99
|
+
/** One-sentence explanation, returned only by the chat classifier. */
|
|
100
|
+
rationale?: string;
|
|
101
|
+
/** Probability per route, returned only by an evaluation model that reports a distribution. */
|
|
102
|
+
probabilities?: Record<string, number>;
|
|
52
103
|
}
|
|
53
|
-
/**
|
|
104
|
+
/**
|
|
105
|
+
* Which path a classifier target selects, and the single owner of that
|
|
106
|
+
* decision: a name the concrete catalog knows runs the chat classifier,
|
|
107
|
+
* anything else is an AI Gateway evaluation-model id.
|
|
108
|
+
*/
|
|
109
|
+
export declare function classifierPath(target: ClassifierTarget): ClassifierPath;
|
|
110
|
+
/** Build the complete lean chat-classifier prompts without reading runtime state. */
|
|
54
111
|
export declare function buildClassifierMessages(input: ClassifierInput): ClassifierMessages;
|
|
112
|
+
/** Build the complete lean evaluation request without reading runtime state. */
|
|
113
|
+
export declare function buildClassifierRequest(input: ClassifierInput): ClassifierRequest;
|
|
55
114
|
/** Classify one tier in one model call and reject any route outside that tier. */
|
|
56
115
|
export declare function classifyRoute(input: ClassifierInput, options: ClassifyRouteOptions): Promise<ClassifierDecision>;
|
|
57
116
|
//# sourceMappingURL=classifier.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classifier.d.ts","sourceRoot":"","sources":["../../../src/model-routing/classifier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"classifier.d.ts","sourceRoot":"","sources":["../../../src/model-routing/classifier.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
+
import { experimental_evaluate, } from "ai";
|
|
1
2
|
import dedent from "dedent";
|
|
2
3
|
import { Type } from "typebox";
|
|
3
4
|
import * as structuredOutput from "../core/structured-output.js";
|
|
4
|
-
import {
|
|
5
|
+
import { AI_GATEWAY_API_KEY_ENV, createDuetModelGateway, DUET_API_KEY_ENV, modelGatewayTransport, } from "../model-resolution/model-gateway.js";
|
|
6
|
+
import { resolveMeteredModelName, routingCatalogAdapter } from "../model-resolution/resolver.js";
|
|
7
|
+
import { usageFromGatewayReport } from "../turn-runner/usage-accounting.js";
|
|
8
|
+
import { CLASSIFIER_SYSTEM_PROMPT, renderCacheContinuity, renderClassifierInstructions, renderClassifierRules, } from "./prompts.js";
|
|
5
9
|
const CONTEXT_HINT_LIMIT = 1_000;
|
|
6
10
|
function classifierResultTool(routeNames) {
|
|
7
11
|
return {
|
|
@@ -16,15 +20,26 @@ function classifierResultTool(routeNames) {
|
|
|
16
20
|
}, { additionalProperties: false }),
|
|
17
21
|
};
|
|
18
22
|
}
|
|
19
|
-
|
|
23
|
+
/**
|
|
24
|
+
* Which path a classifier target selects, and the single owner of that
|
|
25
|
+
* decision: a name the concrete catalog knows runs the chat classifier,
|
|
26
|
+
* anything else is an AI Gateway evaluation-model id.
|
|
27
|
+
*/
|
|
28
|
+
export function classifierPath(target) {
|
|
29
|
+
return routingCatalogAdapter.isCatalogName(target.modelName) ? "chat" : "evaluation";
|
|
30
|
+
}
|
|
31
|
+
function boundedText(value) {
|
|
20
32
|
if (!value?.trim())
|
|
21
|
-
return
|
|
33
|
+
return null;
|
|
22
34
|
const normalized = value.trim();
|
|
23
35
|
return normalized.length <= CONTEXT_HINT_LIMIT
|
|
24
36
|
? normalized
|
|
25
37
|
: `${normalized.slice(0, CONTEXT_HINT_LIMIT)}…`;
|
|
26
38
|
}
|
|
27
|
-
|
|
39
|
+
function boundedHint(value) {
|
|
40
|
+
return boundedText(value) ?? "Not provided.";
|
|
41
|
+
}
|
|
42
|
+
/** Build the complete lean chat-classifier prompts without reading runtime state. */
|
|
28
43
|
export function buildClassifierMessages(input) {
|
|
29
44
|
const continuity = renderCacheContinuity(input.currentTarget);
|
|
30
45
|
return {
|
|
@@ -43,21 +58,85 @@ export function buildClassifierMessages(input) {
|
|
|
43
58
|
`,
|
|
44
59
|
};
|
|
45
60
|
}
|
|
46
|
-
/**
|
|
47
|
-
export
|
|
61
|
+
/** Build the complete lean evaluation request without reading runtime state. */
|
|
62
|
+
export function buildClassifierRequest(input) {
|
|
63
|
+
return {
|
|
64
|
+
state: {
|
|
65
|
+
trigger: input.trigger,
|
|
66
|
+
tier: input.tierName,
|
|
67
|
+
imagesPresent: input.hasImages,
|
|
68
|
+
currentTarget: input.currentTarget ?? null,
|
|
69
|
+
previousTurnHint: boundedText(input.prevTurnHint),
|
|
70
|
+
currentRequestOrLastStepDelta: boundedText(input.lastStepDelta),
|
|
71
|
+
},
|
|
72
|
+
questions: {
|
|
73
|
+
route: {
|
|
74
|
+
type: "choice",
|
|
75
|
+
instructions: renderClassifierInstructions(input.guidance, input.currentTarget),
|
|
76
|
+
criteria: Object.fromEntries(Object.entries(input.tier.routes).map(([name, rule]) => [name, rule.description])),
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
function gatewayCostUsd(providerMetadata) {
|
|
82
|
+
const cost = providerMetadata?.gateway?.cost;
|
|
83
|
+
const value = typeof cost === "string" || typeof cost === "number" ? Number(cost) : Number.NaN;
|
|
84
|
+
return Number.isFinite(value) ? value : undefined;
|
|
85
|
+
}
|
|
86
|
+
/** Route choice from a chat model, forced through the `select_route` tool. */
|
|
87
|
+
async function classifyWithChatModel(input, options) {
|
|
88
|
+
const model = resolveMeteredModelName(options.target.modelName);
|
|
48
89
|
const messages = buildClassifierMessages(input);
|
|
49
|
-
const
|
|
50
|
-
|
|
90
|
+
const generate = options.generate ?? structuredOutput.generateStructuredOutput;
|
|
91
|
+
return await generate({
|
|
92
|
+
model: `${model.provider}:${model.id}`,
|
|
51
93
|
tool: classifierResultTool(Object.keys(input.tier.routes)),
|
|
52
94
|
systemPrompt: messages.systemPrompt,
|
|
53
95
|
prompt: messages.prompt,
|
|
54
|
-
...(options.
|
|
96
|
+
...(options.target.thinkingLevel
|
|
97
|
+
? { callOptions: { reasoningEffort: options.target.thinkingLevel } }
|
|
98
|
+
: {}),
|
|
55
99
|
signal: options.signal,
|
|
56
|
-
onUsage: options.onUsage
|
|
100
|
+
onUsage: (usage) => options.onUsage?.({
|
|
101
|
+
modelId: model.id,
|
|
102
|
+
transport: model.provider,
|
|
103
|
+
usage,
|
|
104
|
+
}),
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
/** Route choice from an AI Gateway evaluation model, with its probability distribution. */
|
|
108
|
+
async function classifyWithEvaluationModel(input, options) {
|
|
109
|
+
const transport = modelGatewayTransport();
|
|
110
|
+
if (!transport) {
|
|
111
|
+
throw new Error(`Route classification on evaluation model "${options.target.modelName}" needs an AI Gateway credential: set ${DUET_API_KEY_ENV} or ${AI_GATEWAY_API_KEY_ENV}.`);
|
|
112
|
+
}
|
|
113
|
+
const evaluate = options.evaluate ?? experimental_evaluate;
|
|
114
|
+
const result = await evaluate({
|
|
115
|
+
model: createDuetModelGateway().evaluationModel(options.target.modelName),
|
|
116
|
+
...buildClassifierRequest(input),
|
|
117
|
+
abortSignal: options.signal,
|
|
57
118
|
});
|
|
58
|
-
|
|
59
|
-
|
|
119
|
+
const costUsd = gatewayCostUsd(result.providerMetadata);
|
|
120
|
+
options.onUsage?.({
|
|
121
|
+
modelId: options.target.modelName,
|
|
122
|
+
transport,
|
|
123
|
+
usage: usageFromGatewayReport({
|
|
124
|
+
inputTokens: result.usage.inputTokens ?? 0,
|
|
125
|
+
outputTokens: result.usage.outputTokens ?? 0,
|
|
126
|
+
...(costUsd === undefined ? {} : { costUsd }),
|
|
127
|
+
}),
|
|
128
|
+
});
|
|
129
|
+
const { choice, probabilities } = result.answers.route;
|
|
130
|
+
return { route: choice, ...(probabilities ? { probabilities } : {}) };
|
|
131
|
+
}
|
|
132
|
+
/** Classify one tier in one model call and reject any route outside that tier. */
|
|
133
|
+
export async function classifyRoute(input, options) {
|
|
134
|
+
const decision = classifierPath(options.target) === "chat"
|
|
135
|
+
? await classifyWithChatModel(input, options)
|
|
136
|
+
: await classifyWithEvaluationModel(input, options);
|
|
137
|
+
if (!Object.hasOwn(input.tier.routes, decision.route)) {
|
|
138
|
+
throw new Error(`Classifier selected unknown route "${decision.route}" for tier "${input.tierName}".`);
|
|
60
139
|
}
|
|
61
|
-
return
|
|
140
|
+
return decision;
|
|
62
141
|
}
|
|
63
142
|
//# sourceMappingURL=classifier.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classifier.js","sourceRoot":"","sources":["../../../src/model-routing/classifier.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,KAAK,gBAAgB,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"classifier.js","sourceRoot":"","sources":["../../../src/model-routing/classifier.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../src/model-routing/loader.ts"],"names":[],"mappings":"AAKA,OAAO,EAIL,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EAClB,MAAM,YAAY,CAAC;AAIpB,oEAAoE;AACpE,MAAM,WAAW,uBAAuB;IACtC;;;;;;;OAOG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ,mFAAmF;IACnF,cAAc,EAAE,qBAAqB,CAAC;IACtC,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,uDAAuD;AACvD,MAAM,MAAM,kBAAkB,GAC1B;IAAE,KAAK,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,GAC3C;IAAE,KAAK,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1D,6EAA6E;AAC7E,MAAM,WAAW,yBAAyB;IACxC,qEAAqE;IACrE,GAAG,EAAE,MAAM,CAAC;IACZ,kEAAkE;IAClE,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,sDAAsD;AACtD,MAAM,WAAW,oBAAoB;IACnC,qFAAqF;IACrF,IAAI,EAAE,MAAM,CAAC;IACb,gEAAgE;IAChE,KAAK,EAAE,YAAY,CAAC;CACrB;
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../src/model-routing/loader.ts"],"names":[],"mappings":"AAKA,OAAO,EAIL,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EAClB,MAAM,YAAY,CAAC;AAIpB,oEAAoE;AACpE,MAAM,WAAW,uBAAuB;IACtC;;;;;;;OAOG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ,mFAAmF;IACnF,cAAc,EAAE,qBAAqB,CAAC;IACtC,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,uDAAuD;AACvD,MAAM,MAAM,kBAAkB,GAC1B;IAAE,KAAK,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,GAC3C;IAAE,KAAK,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1D,6EAA6E;AAC7E,MAAM,WAAW,yBAAyB;IACxC,qEAAqE;IACrE,GAAG,EAAE,MAAM,CAAC;IACZ,kEAAkE;IAClE,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,sDAAsD;AACtD,MAAM,WAAW,oBAAoB;IACnC,qFAAqF;IACrF,IAAI,EAAE,MAAM,CAAC;IACb,gEAAgE;IAChE,KAAK,EAAE,YAAY,CAAC;CACrB;AAkCD;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,kBAAkB,CAAC,CA8B7B;AAED,oFAAoF;AACpF,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,oBAAoB,CAAC,CAgB/B"}
|