@exellix/ai-tasks 8.2.0 → 8.2.2
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/.metadata/log-diagnostics.json +13 -0
- package/dist/core/task-sdk.d.ts.map +1 -1
- package/dist/core/task-sdk.js +7 -0
- package/dist/core/task-sdk.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/internal/runPostStepLlmCall.d.ts.map +1 -1
- package/dist/internal/runPostStepLlmCall.js +65 -1
- package/dist/internal/runPostStepLlmCall.js.map +1 -1
- package/dist/invocation/index.d.ts +1 -0
- package/dist/invocation/index.d.ts.map +1 -1
- package/dist/invocation/index.js +1 -0
- package/dist/invocation/index.js.map +1 -1
- package/dist/invocation/invocationPolicy.d.ts +2 -4
- package/dist/invocation/invocationPolicy.d.ts.map +1 -1
- package/dist/invocation/invocationPolicy.js +2 -9
- package/dist/invocation/invocationPolicy.js.map +1 -1
- package/dist/invocation/preferOpenRouterPolicy.d.ts +37 -0
- package/dist/invocation/preferOpenRouterPolicy.d.ts.map +1 -0
- package/dist/invocation/preferOpenRouterPolicy.js +81 -0
- package/dist/invocation/preferOpenRouterPolicy.js.map +1 -0
- package/dist/invocation/resolveInvocationPlan.d.ts.map +1 -1
- package/dist/invocation/resolveInvocationPlan.js +3 -12
- package/dist/invocation/resolveInvocationPlan.js.map +1 -1
- package/dist/invocation/resolveProfileInvocationRouting.d.ts +2 -1
- package/dist/invocation/resolveProfileInvocationRouting.d.ts.map +1 -1
- package/dist/invocation/resolveProfileInvocationRouting.js +25 -3
- package/dist/invocation/resolveProfileInvocationRouting.js.map +1 -1
- package/dist/invocation/types.d.ts +4 -1
- package/dist/invocation/types.d.ts.map +1 -1
- package/dist/logxer/aiTasksDiagnosticCodes.d.ts +1 -0
- package/dist/logxer/aiTasksDiagnosticCodes.d.ts.map +1 -1
- package/dist/logxer/aiTasksDiagnosticCodes.js +1 -0
- package/dist/logxer/aiTasksDiagnosticCodes.js.map +1 -1
- package/dist/logxer/packageLogxers.d.ts.map +1 -1
- package/dist/logxer/packageLogxers.js +2 -1
- package/dist/logxer/packageLogxers.js.map +1 -1
- package/dist/observability/extractHttpEndpointFromError.d.ts +4 -0
- package/dist/observability/extractHttpEndpointFromError.d.ts.map +1 -0
- package/dist/observability/extractHttpEndpointFromError.js +54 -0
- package/dist/observability/extractHttpEndpointFromError.js.map +1 -0
- package/dist/observability/logLlmProviderInvocation.d.ts +55 -0
- package/dist/observability/logLlmProviderInvocation.d.ts.map +1 -0
- package/dist/observability/logLlmProviderInvocation.js +187 -0
- package/dist/observability/logLlmProviderInvocation.js.map +1 -0
- package/dist/observability/logRunTaskFailure.d.ts.map +1 -1
- package/dist/observability/logRunTaskFailure.js +7 -0
- package/dist/observability/logRunTaskFailure.js.map +1 -1
- package/dist/strategies/direct-execution-strategy.d.ts.map +1 -1
- package/dist/strategies/direct-execution-strategy.js +56 -1
- package/dist/strategies/direct-execution-strategy.js.map +1 -1
- package/dist/utils/aiProfileModelFormat.d.ts +1 -1
- package/dist/utils/aiProfileModelFormat.d.ts.map +1 -1
- package/dist/utils/aiProfileModelFormat.js +30 -7
- package/dist/utils/aiProfileModelFormat.js.map +1 -1
- package/dist/utils/resolveAiProfileModel.d.ts +7 -1
- package/dist/utils/resolveAiProfileModel.d.ts.map +1 -1
- package/dist/utils/resolveAiProfileModel.js +6 -2
- package/dist/utils/resolveAiProfileModel.js.map +1 -1
- package/package.json +9 -8
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
const URL_KEYS = new Set(["url", "baseUrl", "baseURL", "endpoint", "requestUrl"]);
|
|
2
|
+
const MAX_DEPTH = 8;
|
|
3
|
+
const MAX_NODES = 120;
|
|
4
|
+
function isHttpUrl(value) {
|
|
5
|
+
return /^https?:\/\//i.test(value.trim());
|
|
6
|
+
}
|
|
7
|
+
function collectUrls(value, out, depth, budget) {
|
|
8
|
+
if (budget.n <= 0 || depth > MAX_DEPTH || value == null)
|
|
9
|
+
return;
|
|
10
|
+
if (typeof value === "string") {
|
|
11
|
+
if (isHttpUrl(value))
|
|
12
|
+
out.add(value.trim());
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
if (typeof value !== "object")
|
|
16
|
+
return;
|
|
17
|
+
budget.n--;
|
|
18
|
+
if (Array.isArray(value)) {
|
|
19
|
+
for (const item of value) {
|
|
20
|
+
collectUrls(item, out, depth + 1, budget);
|
|
21
|
+
if (budget.n <= 0)
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
for (const [key, child] of Object.entries(value)) {
|
|
27
|
+
if (typeof child === "string" && URL_KEYS.has(key) && isHttpUrl(child)) {
|
|
28
|
+
out.add(child.trim());
|
|
29
|
+
}
|
|
30
|
+
collectUrls(child, out, depth + 1, budget);
|
|
31
|
+
if (budget.n <= 0)
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/** Best-effort: find HTTP endpoint(s) nested in upstream error / activity payloads. */
|
|
36
|
+
export function extractHttpEndpointsFromError(err) {
|
|
37
|
+
const urls = new Set();
|
|
38
|
+
collectUrls(err, urls, 0, { n: MAX_NODES });
|
|
39
|
+
let current = err;
|
|
40
|
+
for (let i = 0; i < 4; i++) {
|
|
41
|
+
if (!current || typeof current !== "object")
|
|
42
|
+
break;
|
|
43
|
+
const cause = current.cause;
|
|
44
|
+
if (cause === undefined || cause === current)
|
|
45
|
+
break;
|
|
46
|
+
collectUrls(cause, urls, 0, { n: MAX_NODES });
|
|
47
|
+
current = cause;
|
|
48
|
+
}
|
|
49
|
+
return [...urls];
|
|
50
|
+
}
|
|
51
|
+
export function pickOpenRouterEndpoint(endpoints) {
|
|
52
|
+
return endpoints.find((u) => /openrouter\.ai/i.test(u));
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=extractHttpEndpointFromError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extractHttpEndpointFromError.js","sourceRoot":"","sources":["../../src/observability/extractHttpEndpointFromError.ts"],"names":[],"mappings":"AAAA,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC;AAClF,MAAM,SAAS,GAAG,CAAC,CAAC;AACpB,MAAM,SAAS,GAAG,GAAG,CAAC;AAEtB,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,WAAW,CAAC,KAAc,EAAE,GAAgB,EAAE,KAAa,EAAE,MAAqB;IACzF,IAAI,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,SAAS,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO;IAChE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,SAAS,CAAC,KAAK,CAAC;YAAE,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5C,OAAO;IACT,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO;IAEtC,MAAM,CAAC,CAAC,EAAE,CAAC;IACX,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;YAC1C,IAAI,MAAM,CAAC,CAAC,IAAI,CAAC;gBAAE,OAAO;QAC5B,CAAC;QACD,OAAO;IACT,CAAC;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,CAAC;QAC5E,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YACvE,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACxB,CAAC;QACD,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;QAC3C,IAAI,MAAM,CAAC,CAAC,IAAI,CAAC;YAAE,OAAO;IAC5B,CAAC;AACH,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,6BAA6B,CAAC,GAAY;IACxD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IAE5C,IAAI,OAAO,GAAY,GAAG,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,MAAM;QACnD,MAAM,KAAK,GAAI,OAA+B,CAAC,KAAK,CAAC;QACrD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,OAAO;YAAE,MAAM;QACpD,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QAC9C,OAAO,GAAG,KAAK,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,SAAmB;IACxD,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { InvokeAttemptSummary, RoutingDiagnostics } from "../types/llmCall.js";
|
|
2
|
+
import type { InvocationPhase, InvocationPhasePlan, InvocationRouting } from "../invocation/types.js";
|
|
3
|
+
import { type LlmAdapterHint } from "./llmRouteContext.js";
|
|
4
|
+
export type LlmInvokePath = "xynthesis-funcx" | "ai-skills-gateway";
|
|
5
|
+
export type LlmProviderInvocationLog = {
|
|
6
|
+
phase: InvocationPhase | "main" | string;
|
|
7
|
+
stage?: string;
|
|
8
|
+
profile?: string;
|
|
9
|
+
routing?: InvocationRouting;
|
|
10
|
+
provider?: string;
|
|
11
|
+
model?: string;
|
|
12
|
+
engineLabel?: string;
|
|
13
|
+
invokePath?: LlmInvokePath;
|
|
14
|
+
intendedAdapter?: LlmAdapterHint;
|
|
15
|
+
intendedBaseUrl?: string;
|
|
16
|
+
preferOpenRouter?: boolean;
|
|
17
|
+
openrouterApiKeyPresent?: boolean;
|
|
18
|
+
anthropicApiKeyPresent?: boolean;
|
|
19
|
+
openaiBaseUrl?: string;
|
|
20
|
+
observedProvider?: string;
|
|
21
|
+
observedRouting?: RoutingDiagnostics;
|
|
22
|
+
httpEndpoint?: string;
|
|
23
|
+
httpConfirmed?: boolean;
|
|
24
|
+
ok?: boolean;
|
|
25
|
+
errorMessage?: string;
|
|
26
|
+
};
|
|
27
|
+
export declare function buildLlmProviderInvocationLog(args: {
|
|
28
|
+
phase: LlmProviderInvocationLog["phase"];
|
|
29
|
+
stage?: string;
|
|
30
|
+
profile?: string;
|
|
31
|
+
routing?: InvocationRouting;
|
|
32
|
+
provider?: string;
|
|
33
|
+
model?: string;
|
|
34
|
+
engineLabel?: string;
|
|
35
|
+
invokeSummary?: InvokeAttemptSummary;
|
|
36
|
+
routingDiagnostics?: RoutingDiagnostics;
|
|
37
|
+
error?: unknown;
|
|
38
|
+
ok?: boolean;
|
|
39
|
+
}): LlmProviderInvocationLog;
|
|
40
|
+
export declare function logLlmProviderInvokeScheduled(payload: LlmProviderInvocationLog): void;
|
|
41
|
+
export declare function logLlmProviderInvokeObserved(payload: LlmProviderInvocationLog): void;
|
|
42
|
+
export declare function logLlmProviderInvocationPlanPhase(plan: InvocationPhasePlan): void;
|
|
43
|
+
export type RunTaskModelConfigPlanInput = {
|
|
44
|
+
preActionModel?: string;
|
|
45
|
+
skillModel?: string;
|
|
46
|
+
postActionModel?: string;
|
|
47
|
+
xynthesisModel?: string;
|
|
48
|
+
};
|
|
49
|
+
/** Map graph-engine / runTask modelConfig slots to a resolveInvocationPlan triple. */
|
|
50
|
+
export declare function modelConfigToInvocationProfiles(modelConfig: RunTaskModelConfigPlanInput | undefined | null): RunTaskModelConfigPlanInput | null;
|
|
51
|
+
export declare function logRunTaskInvocationPlan(args: {
|
|
52
|
+
modelConfig?: RunTaskModelConfigPlanInput | null;
|
|
53
|
+
skillKey?: string;
|
|
54
|
+
}): Promise<void>;
|
|
55
|
+
//# sourceMappingURL=logLlmProviderInvocation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logLlmProviderInvocation.d.ts","sourceRoot":"","sources":["../../src/observability/logLlmProviderInvocation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACpF,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAStG,OAAO,EAA0B,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEnF,MAAM,MAAM,aAAa,GAAG,iBAAiB,GAAG,mBAAmB,CAAC;AAUpE,MAAM,MAAM,wBAAwB,GAAG;IACrC,KAAK,EAAE,eAAe,GAAG,MAAM,GAAG,MAAM,CAAC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,eAAe,CAAC,EAAE,cAAc,CAAC;IACjC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,kBAAkB,CAAC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAoCF,wBAAgB,6BAA6B,CAAC,IAAI,EAAE;IAClD,KAAK,EAAE,wBAAwB,CAAC,OAAO,CAAC,CAAC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,EAAE,CAAC,EAAE,OAAO,CAAC;CACd,GAAG,wBAAwB,CAsC3B;AAmDD,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,wBAAwB,GAAG,IAAI,CAErF;AAED,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,wBAAwB,GAAG,IAAI,CAEpF;AAED,wBAAgB,iCAAiC,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI,CAgBjF;AAED,MAAM,MAAM,2BAA2B,GAAG;IACxC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,sFAAsF;AACtF,wBAAgB,+BAA+B,CAC7C,WAAW,EAAE,2BAA2B,GAAG,SAAS,GAAG,IAAI,GAC1D,2BAA2B,GAAG,IAAI,CAOpC;AAED,wBAAsB,wBAAwB,CAAC,IAAI,EAAE;IACnD,WAAW,CAAC,EAAE,2BAA2B,GAAG,IAAI,CAAC;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BhB"}
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
import { DebugLogAbstract, fieldEvidence } from "@x12i/logxer";
|
|
2
|
+
import { resolveInvocationPlan } from "../invocation/resolveInvocationPlan.js";
|
|
3
|
+
import { resolvePreferOpenRouterPolicy } from "../invocation/preferOpenRouterPolicy.js";
|
|
4
|
+
import { AI_TASKS_DIAGNOSTIC_CODES } from "../logxer/aiTasksDiagnosticCodes.js";
|
|
5
|
+
import { getAiTasksLogxer } from "../logxer/packageLogxers.js";
|
|
6
|
+
import { extractHttpEndpointsFromError, pickOpenRouterEndpoint, } from "./extractHttpEndpointFromError.js";
|
|
7
|
+
import { inferLlmRouteFromModel } from "./llmRouteContext.js";
|
|
8
|
+
const ADAPTER_BASE_URL = {
|
|
9
|
+
openrouter: "https://openrouter.ai/api/v1",
|
|
10
|
+
"openai-direct": "https://api.openai.com/v1",
|
|
11
|
+
"anthropic-direct": "https://api.anthropic.com/v1",
|
|
12
|
+
"google-direct": "https://generativelanguage.googleapis.com/v1beta",
|
|
13
|
+
"groq-direct": "https://api.groq.com/openai/v1",
|
|
14
|
+
};
|
|
15
|
+
function envFlag(name) {
|
|
16
|
+
return Boolean(process.env[name]?.trim());
|
|
17
|
+
}
|
|
18
|
+
function detectEnvSnapshot() {
|
|
19
|
+
const policy = resolvePreferOpenRouterPolicy({});
|
|
20
|
+
return {
|
|
21
|
+
preferOpenRouter: policy.preferOpenRouter,
|
|
22
|
+
openrouterApiKeyPresent: policy.openrouterApiKeyPresent,
|
|
23
|
+
anthropicApiKeyPresent: envFlag("ANTHROPIC_API_KEY"),
|
|
24
|
+
openaiBaseUrl: process.env.OPENAI_BASE_URL?.trim(),
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
function intendedBaseUrl(adapter, routing) {
|
|
28
|
+
if (routing === "openrouter")
|
|
29
|
+
return ADAPTER_BASE_URL.openrouter;
|
|
30
|
+
return ADAPTER_BASE_URL[adapter];
|
|
31
|
+
}
|
|
32
|
+
function invokePathForPhase(phase, stage) {
|
|
33
|
+
if (stage === "main-skill" || phase === "skill")
|
|
34
|
+
return "ai-skills-gateway";
|
|
35
|
+
return "xynthesis-funcx";
|
|
36
|
+
}
|
|
37
|
+
function routingFromSummary(summary) {
|
|
38
|
+
const r = summary?.routing;
|
|
39
|
+
return r && typeof r === "object" ? r : undefined;
|
|
40
|
+
}
|
|
41
|
+
function modelFromSummary(summary) {
|
|
42
|
+
const resolved = summary?.modelResolved ?? summary?.modelUsed ?? summary?.modelRequested;
|
|
43
|
+
return typeof resolved === "string" && resolved.trim() ? resolved.trim() : undefined;
|
|
44
|
+
}
|
|
45
|
+
export function buildLlmProviderInvocationLog(args) {
|
|
46
|
+
const env = detectEnvSnapshot();
|
|
47
|
+
const route = inferLlmRouteFromModel(args.model);
|
|
48
|
+
const adapter = args.routing === "openrouter" ? "openrouter" : route.adapterHint;
|
|
49
|
+
const observedRouting = args.routingDiagnostics ?? routingFromSummary(args.invokeSummary);
|
|
50
|
+
const endpoints = args.error ? extractHttpEndpointsFromError(args.error) : [];
|
|
51
|
+
const httpEndpoint = pickOpenRouterEndpoint(endpoints) ??
|
|
52
|
+
endpoints.find((u) => /chat\/completions|\/v1/i.test(u)) ??
|
|
53
|
+
endpoints[0];
|
|
54
|
+
const observedProvider = (typeof observedRouting?.provider === "string" && observedRouting.provider.trim()
|
|
55
|
+
? observedRouting.provider.trim()
|
|
56
|
+
: undefined) ??
|
|
57
|
+
(httpEndpoint && /openrouter\.ai/i.test(httpEndpoint) ? "openrouter" : undefined);
|
|
58
|
+
return {
|
|
59
|
+
phase: args.phase,
|
|
60
|
+
stage: args.stage,
|
|
61
|
+
profile: args.profile,
|
|
62
|
+
routing: args.routing,
|
|
63
|
+
provider: args.provider ?? route.providerPrefix,
|
|
64
|
+
model: args.model ?? modelFromSummary(args.invokeSummary),
|
|
65
|
+
engineLabel: args.engineLabel,
|
|
66
|
+
invokePath: invokePathForPhase(args.phase, args.stage),
|
|
67
|
+
intendedAdapter: adapter,
|
|
68
|
+
intendedBaseUrl: intendedBaseUrl(adapter, args.routing),
|
|
69
|
+
...env,
|
|
70
|
+
observedProvider,
|
|
71
|
+
...(observedRouting ? { observedRouting } : {}),
|
|
72
|
+
...(httpEndpoint ? { httpEndpoint, httpConfirmed: true } : {}),
|
|
73
|
+
ok: args.ok,
|
|
74
|
+
...(args.error instanceof Error
|
|
75
|
+
? { errorMessage: args.error.message }
|
|
76
|
+
: args.error
|
|
77
|
+
? { errorMessage: String(args.error) }
|
|
78
|
+
: {}),
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
function logPayload(payload, timing) {
|
|
82
|
+
const evidence = [
|
|
83
|
+
fieldEvidence("timing", timing),
|
|
84
|
+
fieldEvidence("phase", payload.phase),
|
|
85
|
+
...(payload.stage ? [fieldEvidence("stage", payload.stage)] : []),
|
|
86
|
+
...(payload.profile ? [fieldEvidence("profile", payload.profile)] : []),
|
|
87
|
+
...(payload.routing ? [fieldEvidence("routing", payload.routing)] : []),
|
|
88
|
+
...(payload.provider ? [fieldEvidence("provider", payload.provider)] : []),
|
|
89
|
+
...(payload.model ? [fieldEvidence("model", payload.model)] : []),
|
|
90
|
+
...(payload.engineLabel ? [fieldEvidence("engineLabel", payload.engineLabel)] : []),
|
|
91
|
+
...(payload.invokePath ? [fieldEvidence("invokePath", payload.invokePath)] : []),
|
|
92
|
+
...(payload.intendedAdapter ? [fieldEvidence("intendedAdapter", payload.intendedAdapter)] : []),
|
|
93
|
+
...(payload.intendedBaseUrl ? [fieldEvidence("intendedBaseUrl", payload.intendedBaseUrl)] : []),
|
|
94
|
+
...(payload.preferOpenRouter !== undefined
|
|
95
|
+
? [fieldEvidence("preferOpenRouter", payload.preferOpenRouter)]
|
|
96
|
+
: []),
|
|
97
|
+
...(payload.openrouterApiKeyPresent !== undefined
|
|
98
|
+
? [fieldEvidence("openrouterApiKeyPresent", payload.openrouterApiKeyPresent)]
|
|
99
|
+
: []),
|
|
100
|
+
...(payload.anthropicApiKeyPresent !== undefined
|
|
101
|
+
? [fieldEvidence("anthropicApiKeyPresent", payload.anthropicApiKeyPresent)]
|
|
102
|
+
: []),
|
|
103
|
+
...(payload.openaiBaseUrl ? [fieldEvidence("openaiBaseUrl", payload.openaiBaseUrl)] : []),
|
|
104
|
+
...(payload.observedProvider ? [fieldEvidence("observedProvider", payload.observedProvider)] : []),
|
|
105
|
+
...(payload.httpEndpoint ? [fieldEvidence("httpEndpoint", payload.httpEndpoint)] : []),
|
|
106
|
+
...(payload.httpConfirmed !== undefined
|
|
107
|
+
? [fieldEvidence("httpConfirmed", payload.httpConfirmed)]
|
|
108
|
+
: []),
|
|
109
|
+
...(payload.ok !== undefined ? [fieldEvidence("ok", payload.ok)] : []),
|
|
110
|
+
...(payload.errorMessage ? [fieldEvidence("errorMessage", payload.errorMessage)] : []),
|
|
111
|
+
];
|
|
112
|
+
getAiTasksLogxer().warnCode(AI_TASKS_DIAGNOSTIC_CODES.LLM_PROVIDER_INVOCATION, {
|
|
113
|
+
source: "@exellix/ai-tasks",
|
|
114
|
+
debugKind: DebugLogAbstract.TRACE,
|
|
115
|
+
diagnostics: {
|
|
116
|
+
summary: timing === "plan"
|
|
117
|
+
? "LLM invocation plan (pre-run routing; does not prove HTTP was sent)"
|
|
118
|
+
: timing === "scheduled"
|
|
119
|
+
? "LLM invoke scheduled (intended adapter/baseUrl; HTTP not yet confirmed)"
|
|
120
|
+
: payload.httpConfirmed
|
|
121
|
+
? "LLM invoke observed with HTTP endpoint in upstream payload"
|
|
122
|
+
: "LLM invoke finished without HTTP endpoint in ai-tasks-visible payload",
|
|
123
|
+
},
|
|
124
|
+
evidence,
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
export function logLlmProviderInvokeScheduled(payload) {
|
|
128
|
+
logPayload(payload, "scheduled");
|
|
129
|
+
}
|
|
130
|
+
export function logLlmProviderInvokeObserved(payload) {
|
|
131
|
+
logPayload(payload, "observed");
|
|
132
|
+
}
|
|
133
|
+
export function logLlmProviderInvocationPlanPhase(plan) {
|
|
134
|
+
logPayload({
|
|
135
|
+
...buildLlmProviderInvocationLog({
|
|
136
|
+
phase: plan.phase,
|
|
137
|
+
profile: plan.profileSlot,
|
|
138
|
+
routing: plan.routing,
|
|
139
|
+
provider: plan.provider,
|
|
140
|
+
model: plan.modelId,
|
|
141
|
+
engineLabel: plan.engineLabel,
|
|
142
|
+
ok: true,
|
|
143
|
+
}),
|
|
144
|
+
invokePath: invokePathForPhase(plan.phase),
|
|
145
|
+
}, "plan");
|
|
146
|
+
}
|
|
147
|
+
/** Map graph-engine / runTask modelConfig slots to a resolveInvocationPlan triple. */
|
|
148
|
+
export function modelConfigToInvocationProfiles(modelConfig) {
|
|
149
|
+
if (!modelConfig)
|
|
150
|
+
return null;
|
|
151
|
+
const pre = modelConfig.preActionModel ?? modelConfig.xynthesisModel;
|
|
152
|
+
const skill = modelConfig.skillModel;
|
|
153
|
+
const post = modelConfig.postActionModel ?? modelConfig.xynthesisModel;
|
|
154
|
+
if (!pre?.trim() || !skill?.trim() || !post?.trim())
|
|
155
|
+
return null;
|
|
156
|
+
return { preActionModel: pre, skillModel: skill, postActionModel: post };
|
|
157
|
+
}
|
|
158
|
+
export async function logRunTaskInvocationPlan(args) {
|
|
159
|
+
const profiles = modelConfigToInvocationProfiles(args.modelConfig);
|
|
160
|
+
if (!profiles?.preActionModel || !profiles.skillModel || !profiles.postActionModel)
|
|
161
|
+
return;
|
|
162
|
+
const policy = resolvePreferOpenRouterPolicy({});
|
|
163
|
+
const plan = await resolveInvocationPlan({
|
|
164
|
+
profiles: {
|
|
165
|
+
preActionModel: profiles.preActionModel,
|
|
166
|
+
skillModel: profiles.skillModel,
|
|
167
|
+
postActionModel: profiles.postActionModel,
|
|
168
|
+
},
|
|
169
|
+
policy: {
|
|
170
|
+
preferOpenRouter: policy.preferOpenRouter,
|
|
171
|
+
openrouterApiKeyPresent: policy.openrouterApiKeyPresent,
|
|
172
|
+
},
|
|
173
|
+
runTaskContext: args.skillKey ? { skillKey: args.skillKey } : undefined,
|
|
174
|
+
});
|
|
175
|
+
for (const phase of plan.phases) {
|
|
176
|
+
logLlmProviderInvocationPlanPhase(phase);
|
|
177
|
+
}
|
|
178
|
+
if (plan.warnings?.length) {
|
|
179
|
+
getAiTasksLogxer().warnCode(AI_TASKS_DIAGNOSTIC_CODES.LLM_PROVIDER_INVOCATION, {
|
|
180
|
+
source: "@exellix/ai-tasks",
|
|
181
|
+
debugKind: DebugLogAbstract.TRACE,
|
|
182
|
+
diagnostics: { summary: "Invocation plan warnings" },
|
|
183
|
+
evidence: plan.warnings.map((w, i) => fieldEvidence(`planWarning.${i}`, w)),
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
//# sourceMappingURL=logLlmProviderInvocation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logLlmProviderInvocation.js","sourceRoot":"","sources":["../../src/observability/logLlmProviderInvocation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logRunTaskFailure.d.ts","sourceRoot":"","sources":["../../src/observability/logRunTaskFailure.ts"],"names":[],"mappings":"AAKA,OAAO,EAGL,KAAK,yBAAyB,EAC/B,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"logRunTaskFailure.d.ts","sourceRoot":"","sources":["../../src/observability/logRunTaskFailure.ts"],"names":[],"mappings":"AAKA,OAAO,EAGL,KAAK,yBAAyB,EAC/B,MAAM,oCAAoC,CAAC;AAW5C,MAAM,MAAM,qBAAqB,GAAG,yBAAyB,GAAG;IAC9D,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AAaF;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,qBAAqB,GAAG,KAAK,CAqF7E"}
|
|
@@ -6,6 +6,7 @@ import { isTaskConfigurationCompileError } from "../errors/taskConfigurationComp
|
|
|
6
6
|
import { AI_TASKS_DIAGNOSTIC_CODES } from "../logxer/aiTasksDiagnosticCodes.js";
|
|
7
7
|
import { getAiTasksLogxer } from "../logxer/packageLogxers.js";
|
|
8
8
|
import { inferLlmRouteFromModel } from "./llmRouteContext.js";
|
|
9
|
+
import { extractHttpEndpointsFromError, pickOpenRouterEndpoint, } from "./extractHttpEndpointFromError.js";
|
|
9
10
|
function rootMessageFromError(error) {
|
|
10
11
|
return {
|
|
11
12
|
message: error.message,
|
|
@@ -27,6 +28,10 @@ export function logAndEnrichRunTaskFailure(args) {
|
|
|
27
28
|
const route = details?.llmRoute ??
|
|
28
29
|
inferLlmRouteFromModel(details?.modelConfig?.skillModel ??
|
|
29
30
|
args.modelConfig?.skillModel);
|
|
31
|
+
const httpEndpoints = extractHttpEndpointsFromError(args.cause);
|
|
32
|
+
const httpEndpoint = pickOpenRouterEndpoint(httpEndpoints) ??
|
|
33
|
+
httpEndpoints.find((u) => /chat\/completions|\/v1/i.test(u)) ??
|
|
34
|
+
httpEndpoints[0];
|
|
30
35
|
const failureClassification = details?.failureClassification ??
|
|
31
36
|
classifyRunTaskFailure({
|
|
32
37
|
message: root.message,
|
|
@@ -62,6 +67,8 @@ export function logAndEnrichRunTaskFailure(args) {
|
|
|
62
67
|
? [fieldEvidence("adapterHint", route.adapterHint)]
|
|
63
68
|
: []),
|
|
64
69
|
...(route.routingNote ? [fieldEvidence("routingNote", route.routingNote)] : []),
|
|
70
|
+
...(httpEndpoint ? [fieldEvidence("httpEndpoint", httpEndpoint)] : []),
|
|
71
|
+
...(httpEndpoint ? [fieldEvidence("httpConfirmed", true)] : []),
|
|
65
72
|
...(route.likelyEnvKeys.length
|
|
66
73
|
? [fieldEvidence("likelyEnvKeys", route.likelyEnvKeys.join(", "))]
|
|
67
74
|
: []),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logRunTaskFailure.js","sourceRoot":"","sources":["../../src/observability/logRunTaskFailure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EACL,sBAAsB,EACtB,+BAA+B,GAChC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,kBAAkB,EAClB,uBAAuB,GAExB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AACrF,OAAO,EAAE,+BAA+B,EAAE,MAAM,4CAA4C,CAAC;AAC7F,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"logRunTaskFailure.js","sourceRoot":"","sources":["../../src/observability/logRunTaskFailure.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"direct-execution-strategy.d.ts","sourceRoot":"","sources":["../../src/strategies/direct-execution-strategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAA4B,MAAM,oBAAoB,CAAC;AAInF,KAAK,iBAAiB,GAAG,mBAAmB,CAAC;AAE7C,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"direct-execution-strategy.d.ts","sourceRoot":"","sources":["../../src/strategies/direct-execution-strategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAA4B,MAAM,oBAAoB,CAAC;AAInF,KAAK,iBAAiB,GAAG,mBAAmB,CAAC;AAE7C,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAgB5E;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,uBAAwB,YAAW,kBAAkB;IAChE,OAAO,CAAC,MAAM,CAAsB;gBAExB,MAAM,EAAE,mBAAmB,GAAG,iBAAiB;IAIrD,OAAO,CAAC,OAAO,GAAG,GAAG,EACzB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IA6KrC,OAAO,IAAI,MAAM;IAIjB,SAAS,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO;CAG5C"}
|
|
@@ -2,6 +2,10 @@ import { SkillExecutionTraceError } from "@exellix/ai-skills";
|
|
|
2
2
|
import { ExecutionType } from "../types/executionType.js";
|
|
3
3
|
import { LlmCallContextError } from "../types/llmCall.js";
|
|
4
4
|
import { logAndEnrichRunTaskFailure } from "../observability/logRunTaskFailure.js";
|
|
5
|
+
import { buildLlmProviderInvocationLog, logLlmProviderInvokeObserved, logLlmProviderInvokeScheduled, } from "../observability/logLlmProviderInvocation.js";
|
|
6
|
+
import { resolvePreferOpenRouterPolicy } from "../invocation/preferOpenRouterPolicy.js";
|
|
7
|
+
import { resolveProfileInvocationRouting } from "../invocation/resolveProfileInvocationRouting.js";
|
|
8
|
+
import { isResolvableModelAlias } from "../utils/aiProfileModelFormat.js";
|
|
5
9
|
import { pickRunSkillRequestFields } from "../utils/bridgeRunSkillGatewayMemory.js";
|
|
6
10
|
import { buildAiSkillsModelConfigForMain } from "../utils/routeModelConfigSlots.js";
|
|
7
11
|
import { resolveModelReference } from "../utils/resolveAiProfileModel.js";
|
|
@@ -69,11 +73,62 @@ export class DirectExecutionStrategy {
|
|
|
69
73
|
const resolvedMainModel = runSkillRequest.modelConfig?.model ??
|
|
70
74
|
llmCall?.model ??
|
|
71
75
|
taskRequest.modelConfig?.skillModel;
|
|
76
|
+
const profileSlot = taskRequest.modelConfig?.skillModel ?? resolvedMainModel;
|
|
77
|
+
let skillRouting;
|
|
78
|
+
if (typeof profileSlot === "string" && profileSlot.trim()) {
|
|
79
|
+
const policy = resolvePreferOpenRouterPolicy({});
|
|
80
|
+
if (isResolvableModelAlias(profileSlot) || profileSlot.includes("@") || profileSlot.includes("/")) {
|
|
81
|
+
try {
|
|
82
|
+
skillRouting = await resolveProfileInvocationRouting(profileSlot, {
|
|
83
|
+
phaseKind: "skill",
|
|
84
|
+
effectiveUseOpenRouter: policy.effectiveUseOpenRouter,
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
/* best-effort diagnostics */
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
logLlmProviderInvokeScheduled(buildLlmProviderInvocationLog({
|
|
93
|
+
phase: "skill",
|
|
94
|
+
stage: "main-skill",
|
|
95
|
+
profile: profileSlot,
|
|
96
|
+
routing: skillRouting?.routing,
|
|
97
|
+
provider: skillRouting?.provider,
|
|
98
|
+
model: resolvedMainModel ?? skillRouting?.modelId,
|
|
99
|
+
engineLabel: skillRouting?.engineLabel,
|
|
100
|
+
ok: true,
|
|
101
|
+
}));
|
|
72
102
|
const startMs = Date.now();
|
|
73
103
|
try {
|
|
74
|
-
|
|
104
|
+
const result = await this.client.runSkill(runSkillRequest);
|
|
105
|
+
logLlmProviderInvokeObserved(buildLlmProviderInvocationLog({
|
|
106
|
+
phase: "skill",
|
|
107
|
+
stage: "main-skill",
|
|
108
|
+
profile: profileSlot,
|
|
109
|
+
routing: skillRouting?.routing,
|
|
110
|
+
provider: skillRouting?.provider,
|
|
111
|
+
model: result.metadata?.modelUsed ??
|
|
112
|
+
result.metadata?.model ??
|
|
113
|
+
resolvedMainModel ??
|
|
114
|
+
skillRouting?.modelId,
|
|
115
|
+
engineLabel: skillRouting?.engineLabel,
|
|
116
|
+
ok: true,
|
|
117
|
+
}));
|
|
118
|
+
return result;
|
|
75
119
|
}
|
|
76
120
|
catch (error) {
|
|
121
|
+
logLlmProviderInvokeObserved(buildLlmProviderInvocationLog({
|
|
122
|
+
phase: "skill",
|
|
123
|
+
stage: "main-skill",
|
|
124
|
+
profile: profileSlot,
|
|
125
|
+
routing: skillRouting?.routing,
|
|
126
|
+
provider: skillRouting?.provider,
|
|
127
|
+
model: resolvedMainModel ?? skillRouting?.modelId,
|
|
128
|
+
engineLabel: skillRouting?.engineLabel,
|
|
129
|
+
error,
|
|
130
|
+
ok: false,
|
|
131
|
+
}));
|
|
77
132
|
const durationMs = Date.now() - startMs;
|
|
78
133
|
// Trace-mode typed error: pass through unchanged. Carries `RunSkillDiagnostics` with `trace.invokeRequest`
|
|
79
134
|
// (modelConfig + timeoutMs echo), `usage`, `routing`, `costUsd`, `attempts[]`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"direct-execution-strategy.js","sourceRoot":"","sources":["../../src/strategies/direct-execution-strategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAQ1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AACnF,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE1E;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAO,uBAAuB;IAC1B,MAAM,CAAsB;IAEpC,YAAY,MAA+C;QACzD,IAAI,CAAC,MAAM,GAAG,MAA6B,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,OAAO,CACX,OAAuB;QAEvB,MAAM,WAAW,GAAmB,EAAE,GAAG,OAAO,EAAE,CAAC;QAEnD,gHAAgH;QAChH,+FAA+F;QAC/F,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,WAAW,CAAC;QAC5C,MAAM,WAAW,GAAI,WAAmB,CAAC,WAAW,CAAC;QACrD,MAAM,SAAS,GAAG,WAAW,CAAC,aAAa,KAAK,OAAO,CAAC;QACxD,MAAM,SAAS,GAAG,yBAAyB,CAAC,WAAW,CAAC,CAAC;QACzD,MAAM,OAAO,GAAG,UAAU,EAAE,KAAK;YAC/B,CAAC,CAAC,EAAE,GAAG,UAAU,EAAE,KAAK,EAAE,CAAC,MAAM,qBAAqB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAE,EAAE;YAC5E,CAAC,CAAC,UAAU,CAAC;QACf,MAAM,eAAe,GAAG,SAAS,CAAC,WAAkD,CAAC;QACrF,IAAI,mBAAmB,GAAG,eAAe,CAAC;QAC1C,IAAI,OAAO,eAAe,EAAE,UAAU,KAAK,QAAQ,EAAE,CAAC;YACpD,MAAM,UAAU,GAAG,MAAM,qBAAqB,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;YAC3E,IAAI,UAAU,IAAI,UAAU,KAAK,eAAe,CAAC,UAAU,EAAE,CAAC;gBAC5D,mBAAmB,GAAG,EAAE,GAAG,eAAe,EAAE,UAAU,EAAE,CAAC;YAC3D,CAAC;QACH,CAAC;QACD,2FAA2F;QAC3F,MAAM,oBAAoB,GAAG,+BAA+B,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;QAC3F,MAAM,kBAAkB,GAAG,OAAO,EAAE,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC;QACrE,MAAM,eAAe,GAAoB;YACvC,GAAG,SAAS;YACZ,aAAa,EAAE,aAAa,CAAC,MAAM;YACnC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,oBAA2B,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7E,GAAG,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9E,GAAG,CAAC,WAAW,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;YAC5C,4FAA4F;YAC5F,gGAAgG;YAChG,qCAAqC;YACrC,GAAG,CAAC,SAAS;gBACX,CAAC,CAAC;oBACE,aAAa,EAAE,OAAgB;oBAC/B,WAAW,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE;iBACzC;gBACH,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;QAEF,MAAM,iBAAiB,GACpB,eAAe,CAAC,WAA8C,EAAE,KAAK;YACtE,OAAO,EAAE,KAAK;YACb,WAAW,CAAC,WAAmD,EAAE,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"direct-execution-strategy.js","sourceRoot":"","sources":["../../src/strategies/direct-execution-strategy.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
export declare const LEGACY_TIER_TO_PROFILE: Record<string, string>;
|
|
3
3
|
/** True when `value` is a known ai-profiles profile, shortcut, or legacy tier alias. */
|
|
4
4
|
export declare function isResolvableModelAlias(value: string): boolean;
|
|
5
|
-
/** Format a resolved ai-profiles choice as a concrete provider model id for ai-skills
|
|
5
|
+
/** Format a resolved ai-profiles choice as a concrete provider model id for ai-skills MAIN. */
|
|
6
6
|
export declare function formatResolvedProfileModelId(provider: string, modelId: string): string;
|
|
7
7
|
/** Map legacy tiers to ai-profiles keys without resolving to a provider model id. */
|
|
8
8
|
export declare function normalizeXynthesisModelAlias(value: string): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aiProfileModelFormat.d.ts","sourceRoot":"","sources":["../../src/utils/aiProfileModelFormat.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"aiProfileModelFormat.d.ts","sourceRoot":"","sources":["../../src/utils/aiProfileModelFormat.ts"],"names":[],"mappings":"AAGA,yEAAyE;AACzE,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAIzD,CAAC;AA+DF,wFAAwF;AACxF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAY7D;AASD,+FAA+F;AAC/F,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAYtF;AAED,qFAAqF;AACrF,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIlE"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isKnownProfileOrShortcut } from "@x12i/ai-profiles";
|
|
1
2
|
import { isConcreteModelId } from "./concreteModelId.js";
|
|
2
3
|
/** Legacy graph-engine tier names → `@x12i/ai-profiles` profile keys. */
|
|
3
4
|
export const LEGACY_TIER_TO_PROFILE = {
|
|
@@ -64,24 +65,46 @@ const KNOWN_AI_PROFILE_ALIAS_KEYS = new Set([
|
|
|
64
65
|
]);
|
|
65
66
|
/** True when `value` is a known ai-profiles profile, shortcut, or legacy tier alias. */
|
|
66
67
|
export function isResolvableModelAlias(value) {
|
|
67
|
-
const
|
|
68
|
-
if (!
|
|
68
|
+
const trimmed = value.trim();
|
|
69
|
+
if (!trimmed)
|
|
69
70
|
return false;
|
|
70
|
-
if (isConcreteModelId(
|
|
71
|
+
if (isConcreteModelId(trimmed))
|
|
71
72
|
return false;
|
|
72
|
-
|
|
73
|
+
const { profileInput } = parseProfileSlotForAlias(trimmed);
|
|
74
|
+
const key = profileInput.toLowerCase();
|
|
75
|
+
if (KNOWN_AI_PROFILE_ALIAS_KEYS.has(key))
|
|
76
|
+
return true;
|
|
77
|
+
try {
|
|
78
|
+
return isKnownProfileOrShortcut(profileInput);
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
return false;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
function parseProfileSlotForAlias(profileSlot) {
|
|
85
|
+
const trimmed = profileSlot.trim();
|
|
86
|
+
const at = trimmed.indexOf("@");
|
|
87
|
+
if (at > 0)
|
|
88
|
+
return { profileInput: trimmed.slice(0, at).trim() };
|
|
89
|
+
return { profileInput: trimmed };
|
|
73
90
|
}
|
|
74
|
-
/** Format a resolved ai-profiles choice as a concrete provider model id for ai-skills
|
|
91
|
+
/** Format a resolved ai-profiles choice as a concrete provider model id for ai-skills MAIN. */
|
|
75
92
|
export function formatResolvedProfileModelId(provider, modelId) {
|
|
76
93
|
const trimmed = modelId.trim();
|
|
94
|
+
const providerTrim = provider.trim();
|
|
77
95
|
if (!trimmed)
|
|
78
96
|
return trimmed;
|
|
97
|
+
if (providerTrim.toLowerCase() === "openrouter") {
|
|
98
|
+
if (trimmed.startsWith("openrouter/"))
|
|
99
|
+
return trimmed;
|
|
100
|
+
return `openrouter/${trimmed}`;
|
|
101
|
+
}
|
|
79
102
|
if (trimmed.includes("/"))
|
|
80
103
|
return trimmed;
|
|
81
|
-
const providerPrefix = `${
|
|
104
|
+
const providerPrefix = `${providerTrim}/`;
|
|
82
105
|
if (trimmed.startsWith(providerPrefix))
|
|
83
106
|
return trimmed;
|
|
84
|
-
return `${
|
|
107
|
+
return `${providerTrim}/${trimmed}`;
|
|
85
108
|
}
|
|
86
109
|
/** Map legacy tiers to ai-profiles keys without resolving to a provider model id. */
|
|
87
110
|
export function normalizeXynthesisModelAlias(value) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aiProfileModelFormat.js","sourceRoot":"","sources":["../../src/utils/aiProfileModelFormat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,yEAAyE;AACzE,MAAM,CAAC,MAAM,sBAAsB,GAA2B;IAC5D,IAAI,EAAE,OAAO;IACb,MAAM,EAAE,KAAK;IACb,OAAO,EAAE,UAAU;CACpB,CAAC;AAEF,uEAAuE;AACvE,MAAM,eAAe,GAAG;IACtB,OAAO;IACP,MAAM;IACN,UAAU;IACV,MAAM;IACN,KAAK;IACL,MAAM;IACN,SAAS;IACT,UAAU;CACF,CAAC;AAEX,iEAAiE;AACjE,MAAM,wBAAwB,GAAG;IAC/B,SAAS;IACT,QAAQ;IACR,UAAU;IACV,UAAU;IACV,YAAY;IACZ,SAAS;IACT,OAAO;IACP,YAAY;IACZ,UAAU;IACV,SAAS;IACT,UAAU;IACV,gBAAgB;IAChB,cAAc;IACd,SAAS;IACT,MAAM;IACN,QAAQ;IACR,aAAa;IACb,YAAY;IACZ,OAAO;IACP,OAAO;IACP,aAAa;IACb,cAAc;IACd,eAAe;IACf,kBAAkB;CACV,CAAC;AAEX,sEAAsE;AACtE,MAAM,wBAAwB,GAAG;IAC/B,gBAAgB;IAChB,aAAa;IACb,QAAQ;IACR,WAAW;IACX,OAAO;IACP,iBAAiB;IACjB,YAAY;IACZ,mBAAmB;IACnB,UAAU;IACV,cAAc;CACN,CAAC;AAEX,MAAM,2BAA2B,GAAG,IAAI,GAAG,CAAS;IAClD,GAAG,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC;IACtC,GAAG,eAAe;IAClB,GAAG,wBAAwB;IAC3B,GAAG,wBAAwB;CAC5B,CAAC,CAAC;AAEH,wFAAwF;AACxF,MAAM,UAAU,sBAAsB,CAAC,KAAa;IAClD,MAAM,
|
|
1
|
+
{"version":3,"file":"aiProfileModelFormat.js","sourceRoot":"","sources":["../../src/utils/aiProfileModelFormat.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,13 @@ import type { ResolveAIProfileOptions } from "@x12i/ai-profiles";
|
|
|
2
2
|
export { formatResolvedProfileModelId, isResolvableModelAlias, normalizeXynthesisModelAlias, } from "./aiProfileModelFormat.js";
|
|
3
3
|
/** @deprecated Prefer {@link isResolvableModelAlias}. Kept for tests and call sites expecting the old name. */
|
|
4
4
|
export declare function isAliasLikeModelValue(value: string): boolean;
|
|
5
|
-
export type ResolveModelReferenceOptions = ResolveAIProfileOptions
|
|
5
|
+
export type ResolveModelReferenceOptions = Omit<ResolveAIProfileOptions, "useOpenRouter"> & {
|
|
6
|
+
/** Prefer OpenRouter when key present. See `.docs/prefer-openrouter-routing-policy.md`. */
|
|
7
|
+
preferOpenRouter?: boolean;
|
|
8
|
+
/** @deprecated Use `preferOpenRouter`. */
|
|
9
|
+
useOpenRouter?: boolean;
|
|
10
|
+
openrouterApiKeyPresent?: boolean;
|
|
11
|
+
};
|
|
6
12
|
/**
|
|
7
13
|
* Resolve a model reference for `@exellix/ai-skills` MAIN: pass through concrete ids and
|
|
8
14
|
* unrecognized strings; map known ai-profiles aliases to concrete provider/model ids.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveAiProfileModel.d.ts","sourceRoot":"","sources":["../../src/utils/resolveAiProfileModel.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resolveAiProfileModel.d.ts","sourceRoot":"","sources":["../../src/utils/resolveAiProfileModel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAUjE,OAAO,EACL,4BAA4B,EAC5B,sBAAsB,EACtB,4BAA4B,GAC7B,MAAM,2BAA2B,CAAC;AAEnC,+GAA+G;AAC/G,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED,MAAM,MAAM,4BAA4B,GAAG,IAAI,CAAC,uBAAuB,EAAE,eAAe,CAAC,GAAG;IAC1F,2FAA2F;IAC3F,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,0CAA0C;IAC1C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC,CAAC;AAEF;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,OAAO,CAAC,EAAE,4BAA4B,GACrC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAkB7B;AAED;;;GAGG;AACH,wBAAsB,iCAAiC,CACrD,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAe7B"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { resolveUseOpenRouter } from "@x12i/ai-profiles";
|
|
2
1
|
import { resolveProfileInvocationRouting } from "../invocation/resolveProfileInvocationRouting.js";
|
|
2
|
+
import { resolvePreferOpenRouterPolicy } from "../invocation/preferOpenRouterPolicy.js";
|
|
3
3
|
import { isResolvableModelAlias, normalizeXynthesisModelAlias, } from "./aiProfileModelFormat.js";
|
|
4
4
|
import { isConcreteModelId } from "./concreteModelId.js";
|
|
5
5
|
export { formatResolvedProfileModelId, isResolvableModelAlias, normalizeXynthesisModelAlias, } from "./aiProfileModelFormat.js";
|
|
@@ -21,9 +21,13 @@ export async function resolveModelReference(value, options) {
|
|
|
21
21
|
return trimmed;
|
|
22
22
|
if (!isResolvableModelAlias(trimmed) && !trimmed.includes("@"))
|
|
23
23
|
return trimmed;
|
|
24
|
+
const { effectiveUseOpenRouter } = resolvePreferOpenRouterPolicy({
|
|
25
|
+
preferOpenRouter: options?.preferOpenRouter ?? options?.useOpenRouter,
|
|
26
|
+
openrouterApiKeyPresent: options?.openrouterApiKeyPresent,
|
|
27
|
+
});
|
|
24
28
|
const resolved = await resolveProfileInvocationRouting(trimmed, {
|
|
25
29
|
phaseKind: "skill",
|
|
26
|
-
|
|
30
|
+
effectiveUseOpenRouter,
|
|
27
31
|
source: options?.source ?? "auto",
|
|
28
32
|
});
|
|
29
33
|
return resolved.modelId;
|