@assemblyline-agents/pi 1.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 +81 -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 +12 -10
- package/dist/pi-harness.d.ts.map +1 -1
- package/dist/pi-harness.js +65 -78
- 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,21 +39,43 @@ 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,
|
|
47
64
|
systemPrompt: ctx.systemPrompt,
|
|
48
65
|
recentHistory: [],
|
|
49
66
|
tools: buildTools,
|
|
67
|
+
...(ctx.refreshCapabilities ? {
|
|
68
|
+
refreshCapabilities: async () => {
|
|
69
|
+
const refreshed = await ctx.refreshCapabilities();
|
|
70
|
+
return {
|
|
71
|
+
modelSpec: refreshed.modelSpec,
|
|
72
|
+
systemPrompt: refreshed.systemPrompt,
|
|
73
|
+
...(refreshed.reasoning ? { reasoning: refreshed.reasoning } : {})
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
} : {}),
|
|
50
77
|
env: ctx.env,
|
|
78
|
+
...(options.resolvedModels ? { resolvedModels: options.resolvedModels } : {}),
|
|
51
79
|
sessionId: ctx.sessionId,
|
|
52
80
|
// Once any call in a batch pauses, stamp terminate onto every later
|
|
53
81
|
// finalized call so the batch stops; shouldStop backstops the case
|
|
@@ -91,16 +119,34 @@ export function piAgentHarness(options = {}) {
|
|
|
91
119
|
return;
|
|
92
120
|
}
|
|
93
121
|
if (event.type === "message_end") {
|
|
94
|
-
|
|
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
|
+
}
|
|
95
139
|
return;
|
|
96
140
|
}
|
|
97
141
|
if (event.type !== "turn_end" || event.message.role !== "assistant")
|
|
98
142
|
return;
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
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
|
+
}
|
|
104
150
|
if (ctx.onIterationCheckpoint) {
|
|
105
151
|
await ctx.onIterationCheckpoint(piContinuation(trackedMessages, pendingToolCallId, continuationMedia));
|
|
106
152
|
}
|
|
@@ -112,8 +158,6 @@ export function piAgentHarness(options = {}) {
|
|
|
112
158
|
loopOptions.maxIterations = ctx.maxIterations;
|
|
113
159
|
if (ctx.signal)
|
|
114
160
|
loopOptions.signal = ctx.signal;
|
|
115
|
-
if (options.fetch)
|
|
116
|
-
loopOptions.fetch = options.fetch;
|
|
117
161
|
if (input.kind === "resume") {
|
|
118
162
|
const state = piContinuationState(input.continuation.state);
|
|
119
163
|
continuationMedia = state.media;
|
|
@@ -259,10 +303,10 @@ function piContinuationState(state) {
|
|
|
259
303
|
out.pendingToolCallId = state.pendingToolCallId;
|
|
260
304
|
return out;
|
|
261
305
|
}
|
|
262
|
-
function piAgentTool(tool, ctx, pauseState, onPause) {
|
|
306
|
+
function piAgentTool(tool, wireName, ctx, pauseState, onPause) {
|
|
263
307
|
const agentTool = {
|
|
264
|
-
name:
|
|
265
|
-
label:
|
|
308
|
+
name: wireName,
|
|
309
|
+
label: wireName,
|
|
266
310
|
description: tool.description,
|
|
267
311
|
parameters: tool.inputSchema,
|
|
268
312
|
execute: async (toolCallId, params) => {
|
|
@@ -272,7 +316,12 @@ function piAgentTool(tool, ctx, pauseState, onPause) {
|
|
|
272
316
|
// batch stops.
|
|
273
317
|
return piToolResult({ skipped: true, reason: "The run paused before this tool executed; it did not run." }, true);
|
|
274
318
|
}
|
|
275
|
-
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
|
+
});
|
|
276
325
|
if (outcome.kind === "pause") {
|
|
277
326
|
// Track pi's own model call id — it matches the transcript's pause
|
|
278
327
|
// placeholder, so resume can replace it with the real tool result.
|
|
@@ -457,7 +506,13 @@ function replacePiToolResult(messages, toolCallId, toolName, value, media) {
|
|
|
457
506
|
};
|
|
458
507
|
if (targetIndex >= 0) {
|
|
459
508
|
next[targetIndex] = replacement;
|
|
460
|
-
|
|
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);
|
|
461
516
|
}
|
|
462
517
|
next.push(replacement);
|
|
463
518
|
return next;
|
|
@@ -494,7 +549,7 @@ function toolVideoNotice(media) {
|
|
|
494
549
|
return [];
|
|
495
550
|
return [{
|
|
496
551
|
type: "text",
|
|
497
|
-
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.]`
|
|
498
553
|
}];
|
|
499
554
|
}
|
|
500
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
|