@assemblyline-agents/pi 2.0.0 → 3.0.0
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/LICENSE +1 -1
- package/README.md +1 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +71 -26
- package/dist/index.js.map +1 -1
- package/dist/model-metadata.d.ts +19 -0
- package/dist/model-metadata.d.ts.map +1 -0
- package/dist/model-metadata.js +272 -0
- package/dist/model-metadata.js.map +1 -0
- package/dist/model-stream-retry.js +4 -4
- package/dist/model-stream-retry.js.map +1 -1
- package/dist/openrouter-model-overrides.d.ts +3 -0
- package/dist/openrouter-model-overrides.d.ts.map +1 -0
- package/dist/openrouter-model-overrides.js +56 -0
- package/dist/openrouter-model-overrides.js.map +1 -0
- package/dist/pi-harness.d.ts +7 -10
- package/dist/pi-harness.d.ts.map +1 -1
- package/dist/pi-harness.js +53 -72
- package/dist/pi-harness.js.map +1 -1
- package/dist/transcript-trim.d.ts +1 -1
- package/dist/transcript-trim.d.ts.map +1 -1
- package/dist/transcript-trim.js +2 -2
- package/dist/transcript-trim.js.map +1 -1
- package/package.json +2 -2
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
The canonical Pi agent loop for Assembly Line, packaged behind the framework's internal `AgentHarness` runtime contract.
|
|
4
4
|
|
|
5
|
-
It adapts the Pi agent engine (`@earendil-works/pi-agent-core` / `@earendil-works/pi-ai`) to Assembly Line's harness interface: model resolution
|
|
5
|
+
It adapts the Pi agent engine (`@earendil-works/pi-agent-core` / `@earendil-works/pi-ai`) to Assembly Line's harness interface: provider-owned model resolution, build-frozen capability metadata, tool descriptors, continuations, media inputs, and usage accounting. OpenRouter models resolve through its models API, with Pi's bundled catalog used only when discovery is offline. OpenRouter calls retain the provider generation ID and reconcile native input/output/cache/reasoning tokens plus the charged credit receipt; local catalog-price calculations are discarded rather than reported as spend. The Assembly Line runtime uses this harness to drive agent turns; it is included automatically when you install the umbrella `@assemblyline-agents/sdk` package.
|
|
6
6
|
|
|
7
7
|
## Install
|
|
8
8
|
|
package/dist/index.d.ts
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { type AgentHarness, type HarnessContinuation, type JsonObject } from "@assemblyline-agents/core";
|
|
2
|
-
|
|
2
|
+
import type { ResolvedModelMetadata } from "@assemblyline-agents/core";
|
|
3
|
+
export { assistantText, createDefaultPiModels, injectOpenRouterVideoInputs, listPiModelSpecs, openRouterGenerationAccounting, piMessageAccounting, PiHarnessRunError, piUsageToRuntime, isSyntheticStopMessage, resolvePiModel, runPiAgentLoop, type RunPiAgentLoopOptions, type RunPiAgentLoopResult, type OpenRouterGenerationAccountingOptions, type PiMessageAccounting } from "./pi-harness.js";
|
|
4
|
+
export { fetchOpenRouterModelMetadata, installResolvedModelMetadata, resolvePiModelMetadata, type ModelMetadataResolutionOptions } from "./model-metadata.js";
|
|
3
5
|
export { classifyModelError, resolveModelRetryConfig, streamSimpleWithRetry, type ModelRetryConfig, type ModelRetryEventInfo, type ModelStreamOutcome } from "./model-stream-retry.js";
|
|
4
6
|
export { boundModelOutput } from "@assemblyline-agents/core";
|
|
5
7
|
export { capPiToolResults, compactPiTranscript, estimateTranscriptTokens, isSummaryMessage, transcriptContextWindow, DEFAULT_TRANSCRIPT_CONTEXT_WINDOW, TRANSCRIPT_SUMMARY_PREFIX, type PiTranscriptCapResult, type PiTranscriptCompactionInput } from "./transcript-trim.js";
|
|
6
8
|
export declare const PI_HARNESS_ID = "pi";
|
|
7
9
|
export declare const PI_CONTINUATION_VERSION = 1;
|
|
8
10
|
/**
|
|
9
|
-
* Default
|
|
11
|
+
* Default Assembly Line {@link AgentHarness} wrapping the Pi agent loop. All
|
|
10
12
|
* Pi-specific behavior lives here: AgentTool adaptation, the terminate
|
|
11
13
|
* stop-signal on pause, usage mapping, `mode: "continue"` resume, and
|
|
12
14
|
* continuation transcript splicing. `@earendil-works` code is loaded lazily.
|
|
@@ -14,6 +16,7 @@ export declare const PI_CONTINUATION_VERSION = 1;
|
|
|
14
16
|
export declare function piAgentHarness(options?: {
|
|
15
17
|
models?: unknown;
|
|
16
18
|
fetch?: typeof fetch;
|
|
19
|
+
resolvedModels?: ResolvedModelMetadata[];
|
|
17
20
|
}): AgentHarness;
|
|
18
21
|
/** Up-convert a legacy flat `pi.continuation` payload into the opaque envelope form. */
|
|
19
22
|
export declare function legacyPiContinuation(data: JsonObject): HarnessContinuation;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,YAAY,EAMjB,KAAK,mBAAmB,EAMxB,KAAK,UAAU,EAChB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAWvE,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,2BAA2B,EAC3B,gBAAgB,EAChB,8BAA8B,EAC9B,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,qCAAqC,EAC1C,KAAK,mBAAmB,EACzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,EAC5B,sBAAsB,EACtB,KAAK,8BAA8B,EACpC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,EACrB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACxB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,wBAAwB,EACxB,gBAAgB,EAChB,uBAAuB,EACvB,iCAAiC,EACjC,yBAAyB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,2BAA2B,EACjC,MAAM,sBAAsB,CAAC;AAG9B,eAAO,MAAM,aAAa,OAAO,CAAC;AAClC,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAEzC;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,GAAE;IACtC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,cAAc,CAAC,EAAE,qBAAqB,EAAE,CAAC;CACrC,GAAG,YAAY,CA6OpB;AAED,wFAAwF;AACxF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,GAAG,mBAAmB,CAI1E;AAaD;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAAC,YAAY,EAAE;IAC1D,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,UAAU,CAAC;CACnB,GAAG,MAAM,GAAG,SAAS,CAgBrB"}
|
package/dist/index.js
CHANGED
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
import { boundModelOutput } from "@assemblyline-agents/core";
|
|
1
|
+
import { boundModelOutput, providerSafeToolName } from "@assemblyline-agents/core";
|
|
2
|
+
import { installResolvedModelMetadata } from "./model-metadata.js";
|
|
3
|
+
import { isSyntheticStopMessage } from "./pi-harness.js";
|
|
2
4
|
import { capPiToolResults, compactPiTranscript, estimateTranscriptTokens, transcriptContextWindow } from "./transcript-trim.js";
|
|
3
|
-
export { assistantText, createDefaultPiModels, injectOpenRouterVideoInputs, listPiModelSpecs, openRouterGenerationAccounting,
|
|
5
|
+
export { assistantText, createDefaultPiModels, injectOpenRouterVideoInputs, listPiModelSpecs, openRouterGenerationAccounting, piMessageAccounting, PiHarnessRunError, piUsageToRuntime, isSyntheticStopMessage, resolvePiModel, runPiAgentLoop } from "./pi-harness.js";
|
|
6
|
+
export { fetchOpenRouterModelMetadata, installResolvedModelMetadata, resolvePiModelMetadata } from "./model-metadata.js";
|
|
4
7
|
export { classifyModelError, resolveModelRetryConfig, streamSimpleWithRetry } from "./model-stream-retry.js";
|
|
5
8
|
export { boundModelOutput } from "@assemblyline-agents/core";
|
|
6
9
|
export { capPiToolResults, compactPiTranscript, estimateTranscriptTokens, isSummaryMessage, transcriptContextWindow, DEFAULT_TRANSCRIPT_CONTEXT_WINDOW, TRANSCRIPT_SUMMARY_PREFIX } from "./transcript-trim.js";
|
|
7
10
|
export const PI_HARNESS_ID = "pi";
|
|
8
11
|
export const PI_CONTINUATION_VERSION = 1;
|
|
9
12
|
/**
|
|
10
|
-
* Default
|
|
13
|
+
* Default Assembly Line {@link AgentHarness} wrapping the Pi agent loop. All
|
|
11
14
|
* Pi-specific behavior lives here: AgentTool adaptation, the terminate
|
|
12
15
|
* stop-signal on pause, usage mapping, `mode: "continue"` resume, and
|
|
13
16
|
* continuation transcript splicing. `@earendil-works` code is loaded lazily.
|
|
@@ -19,7 +22,10 @@ export function piAgentHarness(options = {}) {
|
|
|
19
22
|
return options.models;
|
|
20
23
|
if (!defaultModels) {
|
|
21
24
|
const { createDefaultPiModels } = await import("./pi-harness.js");
|
|
22
|
-
defaultModels = await createDefaultPiModels(env);
|
|
25
|
+
defaultModels = await createDefaultPiModels(env, options.fetch ?? globalThis.fetch);
|
|
26
|
+
if (options.resolvedModels) {
|
|
27
|
+
installResolvedModelMetadata(defaultModels, options.resolvedModels);
|
|
28
|
+
}
|
|
23
29
|
}
|
|
24
30
|
return defaultModels;
|
|
25
31
|
};
|
|
@@ -33,14 +39,25 @@ export function piAgentHarness(options = {}) {
|
|
|
33
39
|
let pendingToolCallId;
|
|
34
40
|
let continuationMedia = [];
|
|
35
41
|
const pauseState = { paused: false };
|
|
36
|
-
const buildTools = async () =>
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
42
|
+
const buildTools = async () => {
|
|
43
|
+
const wireNames = new Map();
|
|
44
|
+
return (await ctx.tools()).map((tool) => {
|
|
45
|
+
const wireName = providerSafeToolName(tool.name);
|
|
46
|
+
const existing = wireNames.get(wireName);
|
|
47
|
+
if (existing && existing !== tool.name) {
|
|
48
|
+
throw new Error(`Pi tool wire-name collision: ${existing} and ${tool.name} both map to ${wireName}.`);
|
|
49
|
+
}
|
|
50
|
+
wireNames.set(wireName, tool.name);
|
|
51
|
+
return piAgentTool(tool, wireName, ctx, pauseState, (toolCallId) => {
|
|
52
|
+
// First pause wins: the run parks on the first paused call in a
|
|
53
|
+
// batch, and resume splices its result at that placeholder.
|
|
54
|
+
if (pauseState.paused)
|
|
55
|
+
return;
|
|
56
|
+
pauseState.paused = true;
|
|
57
|
+
pendingToolCallId = toolCallId;
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
};
|
|
44
61
|
const loopOptions = {
|
|
45
62
|
models,
|
|
46
63
|
modelSpec: ctx.modelSpec,
|
|
@@ -58,6 +75,7 @@ export function piAgentHarness(options = {}) {
|
|
|
58
75
|
}
|
|
59
76
|
} : {}),
|
|
60
77
|
env: ctx.env,
|
|
78
|
+
...(options.resolvedModels ? { resolvedModels: options.resolvedModels } : {}),
|
|
61
79
|
sessionId: ctx.sessionId,
|
|
62
80
|
// Once any call in a batch pauses, stamp terminate onto every later
|
|
63
81
|
// finalized call so the batch stops; shouldStop backstops the case
|
|
@@ -101,16 +119,34 @@ export function piAgentHarness(options = {}) {
|
|
|
101
119
|
return;
|
|
102
120
|
}
|
|
103
121
|
if (event.type === "message_end") {
|
|
104
|
-
|
|
122
|
+
// Synthetic stop messages have no model request behind them:
|
|
123
|
+
// keeping one in the transcript would persist an empty assistant
|
|
124
|
+
// message into checkpoints and continuations.
|
|
125
|
+
if (!isSyntheticStopMessage(event.message)) {
|
|
126
|
+
trackedMessages.push(event.message);
|
|
127
|
+
if (event.message.role === "assistant") {
|
|
128
|
+
const text = collectContentText(event.message.content);
|
|
129
|
+
const hasToolCalls = event.message.content.some((block) => block.type === "toolCall");
|
|
130
|
+
if (text && hasToolCalls) {
|
|
131
|
+
await ctx.emit({
|
|
132
|
+
type: "assistant_message_completed",
|
|
133
|
+
iteration: state.requestIteration,
|
|
134
|
+
text
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
105
139
|
return;
|
|
106
140
|
}
|
|
107
141
|
if (event.type !== "turn_end" || event.message.role !== "assistant")
|
|
108
142
|
return;
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
143
|
+
if (!isSyntheticStopMessage(event.message)) {
|
|
144
|
+
const accounting = await piMessageAccounting(event.message, {
|
|
145
|
+
env: ctx.env,
|
|
146
|
+
...(options.fetch ? { fetch: options.fetch } : {})
|
|
147
|
+
});
|
|
148
|
+
await ctx.emit(responseCompletedEvent(event.message, state.requestIteration, accounting, ctx.captureContent === true));
|
|
149
|
+
}
|
|
114
150
|
if (ctx.onIterationCheckpoint) {
|
|
115
151
|
await ctx.onIterationCheckpoint(piContinuation(trackedMessages, pendingToolCallId, continuationMedia));
|
|
116
152
|
}
|
|
@@ -122,8 +158,6 @@ export function piAgentHarness(options = {}) {
|
|
|
122
158
|
loopOptions.maxIterations = ctx.maxIterations;
|
|
123
159
|
if (ctx.signal)
|
|
124
160
|
loopOptions.signal = ctx.signal;
|
|
125
|
-
if (options.fetch)
|
|
126
|
-
loopOptions.fetch = options.fetch;
|
|
127
161
|
if (input.kind === "resume") {
|
|
128
162
|
const state = piContinuationState(input.continuation.state);
|
|
129
163
|
continuationMedia = state.media;
|
|
@@ -269,10 +303,10 @@ function piContinuationState(state) {
|
|
|
269
303
|
out.pendingToolCallId = state.pendingToolCallId;
|
|
270
304
|
return out;
|
|
271
305
|
}
|
|
272
|
-
function piAgentTool(tool, ctx, pauseState, onPause) {
|
|
306
|
+
function piAgentTool(tool, wireName, ctx, pauseState, onPause) {
|
|
273
307
|
const agentTool = {
|
|
274
|
-
name:
|
|
275
|
-
label:
|
|
308
|
+
name: wireName,
|
|
309
|
+
label: wireName,
|
|
276
310
|
description: tool.description,
|
|
277
311
|
parameters: tool.inputSchema,
|
|
278
312
|
execute: async (toolCallId, params) => {
|
|
@@ -282,7 +316,12 @@ function piAgentTool(tool, ctx, pauseState, onPause) {
|
|
|
282
316
|
// batch stops.
|
|
283
317
|
return piToolResult({ skipped: true, reason: "The run paused before this tool executed; it did not run." }, true);
|
|
284
318
|
}
|
|
285
|
-
const outcome = await ctx.executeTool({
|
|
319
|
+
const outcome = await ctx.executeTool({
|
|
320
|
+
toolCallId,
|
|
321
|
+
name: tool.name,
|
|
322
|
+
input: params,
|
|
323
|
+
...(ctx.signal ? { signal: ctx.signal } : {})
|
|
324
|
+
});
|
|
286
325
|
if (outcome.kind === "pause") {
|
|
287
326
|
// Track pi's own model call id — it matches the transcript's pause
|
|
288
327
|
// placeholder, so resume can replace it with the real tool result.
|
|
@@ -467,7 +506,13 @@ function replacePiToolResult(messages, toolCallId, toolName, value, media) {
|
|
|
467
506
|
};
|
|
468
507
|
if (targetIndex >= 0) {
|
|
469
508
|
next[targetIndex] = replacement;
|
|
470
|
-
|
|
509
|
+
// Keep the batch's sibling tool results — their toolCall blocks live in
|
|
510
|
+
// the same assistant message, and dropping them would leave dangling
|
|
511
|
+
// tool_use blocks the provider rejects. Cut only after the last one.
|
|
512
|
+
let end = targetIndex;
|
|
513
|
+
while (end + 1 < next.length && isToolResultMessage(next[end + 1]))
|
|
514
|
+
end += 1;
|
|
515
|
+
return next.slice(0, end + 1);
|
|
471
516
|
}
|
|
472
517
|
next.push(replacement);
|
|
473
518
|
return next;
|
|
@@ -504,7 +549,7 @@ function toolVideoNotice(media) {
|
|
|
504
549
|
return [];
|
|
505
550
|
return [{
|
|
506
551
|
type: "text",
|
|
507
|
-
text: `[
|
|
552
|
+
text: `[Assembly Line: ${videos.length} video tool result(s) were not sent as native Pi tool-result content. No frames were extracted. Use a video-capable attachment turn or explicitly request a frame-based review.]`
|
|
508
553
|
}];
|
|
509
554
|
}
|
|
510
555
|
function jsonClone(value) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type MutableModels } from "@earendil-works/pi-ai";
|
|
2
|
+
import type { RequiredModelCapabilities, ResolvedModelMetadata } from "@assemblyline-agents/core";
|
|
3
|
+
export interface ModelMetadataResolutionOptions {
|
|
4
|
+
env?: Record<string, string | undefined>;
|
|
5
|
+
fetch?: typeof fetch;
|
|
6
|
+
requirements?: ReadonlyMap<string, RequiredModelCapabilities>;
|
|
7
|
+
}
|
|
8
|
+
/** Build Pi's providers with their bundled catalogs available as offline metadata. */
|
|
9
|
+
export declare function createPiModels(env?: Record<string, string | undefined>, fetchImpl?: typeof fetch): Promise<MutableModels>;
|
|
10
|
+
/** Resolve selected model metadata from provider adapters, falling back to the bundled catalog only when discovery fails. */
|
|
11
|
+
export declare function resolvePiModelMetadata(specs: readonly string[], options?: ModelMetadataResolutionOptions): Promise<ResolvedModelMetadata[]>;
|
|
12
|
+
/** Install manifest-frozen metadata into Pi without consulting a live provider or a newer catalog. */
|
|
13
|
+
export declare function installResolvedModelMetadata(models: MutableModels, metadata: readonly ResolvedModelMetadata[]): MutableModels;
|
|
14
|
+
export declare function resolvedModelMetadata(metadata: readonly ResolvedModelMetadata[] | undefined, spec: string): ResolvedModelMetadata | undefined;
|
|
15
|
+
export declare function fetchOpenRouterModelMetadata(options?: {
|
|
16
|
+
env?: Record<string, string | undefined>;
|
|
17
|
+
fetch?: typeof fetch;
|
|
18
|
+
}): Promise<ResolvedModelMetadata[]>;
|
|
19
|
+
//# sourceMappingURL=model-metadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-metadata.d.ts","sourceRoot":"","sources":["../src/model-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,aAAa,EAEnB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAEV,yBAAyB,EACzB,qBAAqB,EACtB,MAAM,2BAA2B,CAAC;AAOnC,MAAM,WAAW,8BAA8B;IAC7C,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,YAAY,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;CAC/D;AAoBD,sFAAsF;AACtF,wBAAsB,cAAc,CAClC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,EACrD,SAAS,GAAE,OAAO,KAAwB,GACzC,OAAO,CAAC,aAAa,CAAC,CAexB;AAED,6HAA6H;AAC7H,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,OAAO,GAAE,8BAAmC,GAC3C,OAAO,CAAC,qBAAqB,EAAE,CAAC,CA+ClC;AAED,sGAAsG;AACtG,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,SAAS,qBAAqB,EAAE,GACzC,aAAa,CAkBf;AAED,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,SAAS,qBAAqB,EAAE,GAAG,SAAS,EACtD,IAAI,EAAE,MAAM,GACX,qBAAqB,GAAG,SAAS,CAEnC;AAiCD,wBAAsB,4BAA4B,CAAC,OAAO,GAAE;IAC1D,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACjB,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,CA8BxC"}
|
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
import { defaultProviderAuthContext } from "@earendil-works/pi-ai";
|
|
2
|
+
import { assertModelCapabilities } from "@assemblyline-agents/core";
|
|
3
|
+
import { installOpenRouterModelOverrides } from "./openrouter-model-overrides.js";
|
|
4
|
+
const OPENROUTER_MODELS_URL = "https://openrouter.ai/api/v1/models?output_modalities=all";
|
|
5
|
+
const MODEL_METADATA_TIMEOUT_MS = 5_000;
|
|
6
|
+
const providerMetadataByModels = new WeakMap();
|
|
7
|
+
/** Build Pi's providers with their bundled catalogs available as offline metadata. */
|
|
8
|
+
export async function createPiModels(env = process.env, fetchImpl = globalThis.fetch) {
|
|
9
|
+
const { builtinModels } = await import("@earendil-works/pi-ai/providers/all");
|
|
10
|
+
const fallback = defaultProviderAuthContext();
|
|
11
|
+
const models = installOpenRouterModelOverrides(builtinModels({
|
|
12
|
+
authContext: {
|
|
13
|
+
env: async (name) => {
|
|
14
|
+
const value = env[name];
|
|
15
|
+
if (typeof value === "string" && value.trim().length > 0)
|
|
16
|
+
return value;
|
|
17
|
+
return fallback.env(name);
|
|
18
|
+
},
|
|
19
|
+
fileExists: (path) => fallback.fileExists(path)
|
|
20
|
+
}
|
|
21
|
+
}));
|
|
22
|
+
installOpenRouterDynamicResolver(models, { env, fetch: fetchImpl });
|
|
23
|
+
return models;
|
|
24
|
+
}
|
|
25
|
+
/** Resolve selected model metadata from provider adapters, falling back to the bundled catalog only when discovery fails. */
|
|
26
|
+
export async function resolvePiModelMetadata(specs, options = {}) {
|
|
27
|
+
const env = options.env ?? process.env;
|
|
28
|
+
const models = await createPiModels(env, options.fetch ?? globalThis.fetch);
|
|
29
|
+
const byProvider = groupModelSpecs(specs);
|
|
30
|
+
const resolved = [];
|
|
31
|
+
for (const [providerId, providerSpecs] of byProvider) {
|
|
32
|
+
const provider = models.getProvider(providerId);
|
|
33
|
+
if (!provider) {
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
const supportsDynamicResolution = Boolean(provider.refreshModels);
|
|
37
|
+
let source = "provider";
|
|
38
|
+
if (provider.refreshModels) {
|
|
39
|
+
try {
|
|
40
|
+
await models.refresh(providerId);
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
source = "catalog";
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
source = "catalog";
|
|
48
|
+
}
|
|
49
|
+
const providerMetadata = providerMetadataByModels.get(models);
|
|
50
|
+
for (const spec of providerSpecs) {
|
|
51
|
+
const id = modelIdFromSpec(spec);
|
|
52
|
+
const dynamic = source === "provider" ? providerMetadata?.get(spec) : undefined;
|
|
53
|
+
const model = models.getModel(providerId, id);
|
|
54
|
+
const metadata = dynamic ?? (model ? metadataFromPiModel(model, source) : undefined);
|
|
55
|
+
if (!metadata) {
|
|
56
|
+
if (!supportsDynamicResolution)
|
|
57
|
+
continue;
|
|
58
|
+
const reason = source === "provider"
|
|
59
|
+
? `The ${providerId} provider did not return metadata for model "${id}".`
|
|
60
|
+
: `Could not resolve metadata for model "${spec}" while provider discovery was unavailable, and the bundled offline catalog has no fallback entry.`;
|
|
61
|
+
throw new Error(reason);
|
|
62
|
+
}
|
|
63
|
+
const required = options.requirements?.get(spec);
|
|
64
|
+
assertModelCapabilities(metadata, {
|
|
65
|
+
inputModalities: [...new Set(["text", ...(required?.inputModalities ?? [])])],
|
|
66
|
+
outputModalities: [...new Set(["text", ...(required?.outputModalities ?? [])])],
|
|
67
|
+
...(required?.parameters ? { parameters: required.parameters } : {})
|
|
68
|
+
});
|
|
69
|
+
resolved.push(metadata);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return resolved.sort((left, right) => left.spec.localeCompare(right.spec));
|
|
73
|
+
}
|
|
74
|
+
/** Install manifest-frozen metadata into Pi without consulting a live provider or a newer catalog. */
|
|
75
|
+
export function installResolvedModelMetadata(models, metadata) {
|
|
76
|
+
const byProvider = new Map();
|
|
77
|
+
for (const entry of metadata) {
|
|
78
|
+
const entries = byProvider.get(entry.provider) ?? [];
|
|
79
|
+
entries.push(entry);
|
|
80
|
+
byProvider.set(entry.provider, entries);
|
|
81
|
+
}
|
|
82
|
+
for (const [providerId, entries] of byProvider) {
|
|
83
|
+
const provider = models.getProvider(providerId);
|
|
84
|
+
if (!provider)
|
|
85
|
+
throw new Error(`No model provider adapter is registered for "${providerId}".`);
|
|
86
|
+
const byId = new Map(provider.getModels().map((model) => [model.id, model]));
|
|
87
|
+
for (const entry of entries)
|
|
88
|
+
byId.set(entry.id, piModelFromMetadata(entry));
|
|
89
|
+
models.setProvider({
|
|
90
|
+
...provider,
|
|
91
|
+
getModels: () => [...byId.values()]
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
return models;
|
|
95
|
+
}
|
|
96
|
+
export function resolvedModelMetadata(metadata, spec) {
|
|
97
|
+
return metadata?.find((entry) => entry.spec === spec);
|
|
98
|
+
}
|
|
99
|
+
function installOpenRouterDynamicResolver(models, options) {
|
|
100
|
+
const provider = models.getProvider("openrouter");
|
|
101
|
+
if (!provider)
|
|
102
|
+
return;
|
|
103
|
+
const fallbackModels = provider.getModels().slice();
|
|
104
|
+
let activeModels = fallbackModels;
|
|
105
|
+
let inFlight;
|
|
106
|
+
const dynamicProvider = {
|
|
107
|
+
...provider,
|
|
108
|
+
getModels: () => activeModels,
|
|
109
|
+
refreshModels: async () => {
|
|
110
|
+
if (inFlight)
|
|
111
|
+
return inFlight;
|
|
112
|
+
inFlight = (async () => {
|
|
113
|
+
const metadata = await fetchOpenRouterModelMetadata(options);
|
|
114
|
+
activeModels = metadata
|
|
115
|
+
.filter((entry) => entry.outputModalities.includes("text"))
|
|
116
|
+
.map(piModelFromMetadata);
|
|
117
|
+
providerMetadataByModels.set(models, new Map(metadata.map((entry) => [entry.spec, entry])));
|
|
118
|
+
})();
|
|
119
|
+
try {
|
|
120
|
+
await inFlight;
|
|
121
|
+
}
|
|
122
|
+
finally {
|
|
123
|
+
inFlight = undefined;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
models.setProvider(dynamicProvider);
|
|
128
|
+
}
|
|
129
|
+
export async function fetchOpenRouterModelMetadata(options = {}) {
|
|
130
|
+
const headers = { accept: "application/json" };
|
|
131
|
+
const apiKey = options.env?.OPENROUTER_API_KEY?.trim();
|
|
132
|
+
if (apiKey)
|
|
133
|
+
headers.authorization = `Bearer ${apiKey}`;
|
|
134
|
+
const response = await (options.fetch ?? globalThis.fetch)(OPENROUTER_MODELS_URL, {
|
|
135
|
+
headers,
|
|
136
|
+
signal: AbortSignal.timeout(MODEL_METADATA_TIMEOUT_MS)
|
|
137
|
+
});
|
|
138
|
+
if (!response.ok)
|
|
139
|
+
throw new Error(`OpenRouter models API returned HTTP ${response.status}.`);
|
|
140
|
+
const payload = await response.json();
|
|
141
|
+
if (!isRecord(payload) || !Array.isArray(payload.data)) {
|
|
142
|
+
throw new Error("OpenRouter models API omitted its data array.");
|
|
143
|
+
}
|
|
144
|
+
return payload.data.map(openRouterModelRecord).filter((value) => Boolean(value)).map((model) => ({
|
|
145
|
+
spec: `openrouter/${model.id}`,
|
|
146
|
+
provider: "openrouter",
|
|
147
|
+
id: model.id,
|
|
148
|
+
name: model.name,
|
|
149
|
+
api: "openai-completions",
|
|
150
|
+
baseUrl: "https://openrouter.ai/api/v1",
|
|
151
|
+
reasoning: model.supportedParameters.includes("reasoning"),
|
|
152
|
+
inputModalities: model.inputModalities,
|
|
153
|
+
outputModalities: model.outputModalities,
|
|
154
|
+
supportedParameters: model.supportedParameters,
|
|
155
|
+
cost: model.pricing,
|
|
156
|
+
contextWindow: model.contextLength,
|
|
157
|
+
maxTokens: model.maxTokens,
|
|
158
|
+
compat: openRouterCompat(model.id),
|
|
159
|
+
source: "provider"
|
|
160
|
+
})).sort((left, right) => left.spec.localeCompare(right.spec));
|
|
161
|
+
}
|
|
162
|
+
function openRouterModelRecord(value) {
|
|
163
|
+
if (!isRecord(value) || typeof value.id !== "string" || value.id.length === 0)
|
|
164
|
+
return undefined;
|
|
165
|
+
if (!isRecord(value.architecture))
|
|
166
|
+
return undefined;
|
|
167
|
+
const contextLength = positiveNumber(value.context_length);
|
|
168
|
+
if (!contextLength)
|
|
169
|
+
return undefined;
|
|
170
|
+
const inputModalities = stringArray(value.architecture.input_modalities);
|
|
171
|
+
const outputModalities = stringArray(value.architecture.output_modalities);
|
|
172
|
+
if (inputModalities.length === 0 || outputModalities.length === 0)
|
|
173
|
+
return undefined;
|
|
174
|
+
const topProvider = isRecord(value.top_provider) ? value.top_provider : {};
|
|
175
|
+
const pricing = isRecord(value.pricing) ? value.pricing : {};
|
|
176
|
+
return {
|
|
177
|
+
id: value.id,
|
|
178
|
+
name: typeof value.name === "string" && value.name.length > 0 ? value.name : value.id,
|
|
179
|
+
contextLength: positiveNumber(topProvider.context_length) ?? contextLength,
|
|
180
|
+
maxTokens: positiveNumber(topProvider.max_completion_tokens) ?? contextLength,
|
|
181
|
+
inputModalities,
|
|
182
|
+
outputModalities,
|
|
183
|
+
supportedParameters: stringArray(value.supported_parameters),
|
|
184
|
+
pricing: {
|
|
185
|
+
input: perMillionTokens(pricing.prompt),
|
|
186
|
+
output: perMillionTokens(pricing.completion),
|
|
187
|
+
cacheRead: perMillionTokens(pricing.input_cache_read),
|
|
188
|
+
cacheWrite: perMillionTokens(pricing.input_cache_write)
|
|
189
|
+
}
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
function metadataFromPiModel(model, source) {
|
|
193
|
+
const metadata = {
|
|
194
|
+
spec: `${model.provider}/${model.id}`,
|
|
195
|
+
provider: model.provider,
|
|
196
|
+
id: model.id,
|
|
197
|
+
name: model.name,
|
|
198
|
+
api: model.api,
|
|
199
|
+
baseUrl: model.baseUrl,
|
|
200
|
+
reasoning: model.reasoning,
|
|
201
|
+
inputModalities: [...model.input],
|
|
202
|
+
outputModalities: ["text"],
|
|
203
|
+
supportedParameters: model.reasoning ? ["reasoning"] : [],
|
|
204
|
+
cost: { ...model.cost },
|
|
205
|
+
contextWindow: model.contextWindow,
|
|
206
|
+
maxTokens: model.maxTokens,
|
|
207
|
+
source
|
|
208
|
+
};
|
|
209
|
+
if (model.compat)
|
|
210
|
+
metadata.compat = model.compat;
|
|
211
|
+
return metadata;
|
|
212
|
+
}
|
|
213
|
+
function piModelFromMetadata(metadata) {
|
|
214
|
+
const model = {
|
|
215
|
+
id: metadata.id,
|
|
216
|
+
name: metadata.name,
|
|
217
|
+
api: metadata.api,
|
|
218
|
+
provider: metadata.provider,
|
|
219
|
+
baseUrl: metadata.baseUrl,
|
|
220
|
+
reasoning: metadata.reasoning,
|
|
221
|
+
input: [
|
|
222
|
+
...(metadata.inputModalities.includes("text") ? ["text"] : []),
|
|
223
|
+
...(metadata.inputModalities.includes("image") ? ["image"] : [])
|
|
224
|
+
],
|
|
225
|
+
cost: { ...metadata.cost },
|
|
226
|
+
contextWindow: metadata.contextWindow,
|
|
227
|
+
maxTokens: metadata.maxTokens
|
|
228
|
+
};
|
|
229
|
+
if (metadata.compat)
|
|
230
|
+
model.compat = metadata.compat;
|
|
231
|
+
return model;
|
|
232
|
+
}
|
|
233
|
+
function groupModelSpecs(specs) {
|
|
234
|
+
const byProvider = new Map();
|
|
235
|
+
for (const spec of [...new Set(specs)].sort()) {
|
|
236
|
+
const slash = spec.indexOf("/");
|
|
237
|
+
if (slash <= 0 || slash === spec.length - 1) {
|
|
238
|
+
throw new Error(`Invalid model specifier "${spec}". Use "provider/model".`);
|
|
239
|
+
}
|
|
240
|
+
const provider = spec.slice(0, slash);
|
|
241
|
+
const providerSpecs = byProvider.get(provider) ?? [];
|
|
242
|
+
providerSpecs.push(spec);
|
|
243
|
+
byProvider.set(provider, providerSpecs);
|
|
244
|
+
}
|
|
245
|
+
return byProvider;
|
|
246
|
+
}
|
|
247
|
+
function modelIdFromSpec(spec) {
|
|
248
|
+
return spec.slice(spec.indexOf("/") + 1);
|
|
249
|
+
}
|
|
250
|
+
function openRouterCompat(id) {
|
|
251
|
+
return {
|
|
252
|
+
supportsDeveloperRole: false,
|
|
253
|
+
thinkingFormat: "openrouter",
|
|
254
|
+
...(id.startsWith("anthropic/") ? { cacheControlFormat: "anthropic" } : {})
|
|
255
|
+
};
|
|
256
|
+
}
|
|
257
|
+
function positiveNumber(value) {
|
|
258
|
+
return typeof value === "number" && Number.isFinite(value) && value > 0 ? value : undefined;
|
|
259
|
+
}
|
|
260
|
+
function perMillionTokens(value) {
|
|
261
|
+
const parsed = typeof value === "string" || typeof value === "number" ? Number(value) : 0;
|
|
262
|
+
return Number.isFinite(parsed) && parsed >= 0 ? Number((parsed * 1_000_000).toPrecision(15)) : 0;
|
|
263
|
+
}
|
|
264
|
+
function stringArray(value) {
|
|
265
|
+
return Array.isArray(value)
|
|
266
|
+
? [...new Set(value.filter((entry) => typeof entry === "string"))].sort()
|
|
267
|
+
: [];
|
|
268
|
+
}
|
|
269
|
+
function isRecord(value) {
|
|
270
|
+
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
271
|
+
}
|
|
272
|
+
//# sourceMappingURL=model-metadata.js.map
|