@assemblyline-agents/pi 2.0.0 → 3.1.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 CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2026 OpenEve contributors
3
+ Copyright (c) 2026 Assembly Line contributors
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
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 and defaults, tool descriptors, continuations, media inputs, and usage accounting. 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.
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
- export { assistantText, createDefaultPiModels, injectOpenRouterVideoInputs, listPiModelSpecs, openRouterGenerationAccounting, openRouterModelInputModalities, piMessageAccounting, PiHarnessRunError, piUsageToRuntime, resolvePiModel, runPiAgentLoop, type RunPiAgentLoopOptions, type RunPiAgentLoopResult, type OpenRouterGenerationAccountingOptions, type PiMessageAccounting } from "./pi-harness.js";
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 OpenEve {@link AgentHarness} wrapping the Pi agent loop. All
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;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,YAAY,EAMjB,KAAK,mBAAmB,EAMxB,KAAK,UAAU,EAEhB,MAAM,2BAA2B,CAAC;AASnC,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,2BAA2B,EAC3B,gBAAgB,EAChB,8BAA8B,EAC9B,8BAA8B,EAC9B,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,qCAAqC,EAC1C,KAAK,mBAAmB,EACzB,MAAM,iBAAiB,CAAC;AACzB,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;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAA;CAAO,GAAG,YAAY,CAgNrG;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"}
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, openRouterModelInputModalities, piMessageAccounting, PiHarnessRunError, piUsageToRuntime, resolvePiModel, runPiAgentLoop } from "./pi-harness.js";
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 OpenEve {@link AgentHarness} wrapping the Pi agent loop. All
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 () => (await ctx.tools()).map((tool) => piAgentTool(tool, ctx, pauseState, (toolCallId) => {
37
- // First pause wins: the run parks on the first paused call in a
38
- // batch, and resume splices its result at that placeholder.
39
- if (pauseState.paused)
40
- return;
41
- pauseState.paused = true;
42
- pendingToolCallId = toolCallId;
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
- trackedMessages.push(event.message);
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
- const accounting = await piMessageAccounting(event.message, {
110
- env: ctx.env,
111
- ...(options.fetch ? { fetch: options.fetch } : {})
112
- });
113
- await ctx.emit(responseCompletedEvent(event.message, state.requestIteration, accounting, ctx.captureContent === true));
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: tool.name,
275
- label: tool.name,
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({ toolCallId, name: tool.name, input: params });
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
- return next.slice(0, targetIndex + 1);
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: `[OpenEve: ${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.]`
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