mirror of
https://github.com/harivansh-afk/clanker-agent.git
synced 2026-04-16 23:02:00 +00:00
- Copy all pi-mono source into apps/companion-os/ - Update Dockerfile to COPY pre-built binary instead of downloading from GitHub Releases - Update deploy-staging.yml to build pi from source (bun compile) before Docker build - Add apps/companion-os/** to path triggers - No more cross-repo dispatch needed Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
59 lines
1.5 KiB
TypeScript
59 lines
1.5 KiB
TypeScript
import "./providers/register-builtins.js";
|
|
|
|
import { getApiProvider } from "./api-registry.js";
|
|
import type {
|
|
Api,
|
|
AssistantMessage,
|
|
AssistantMessageEventStream,
|
|
Context,
|
|
Model,
|
|
ProviderStreamOptions,
|
|
SimpleStreamOptions,
|
|
StreamOptions,
|
|
} from "./types.js";
|
|
|
|
export { getEnvApiKey } from "./env-api-keys.js";
|
|
|
|
function resolveApiProvider(api: Api) {
|
|
const provider = getApiProvider(api);
|
|
if (!provider) {
|
|
throw new Error(`No API provider registered for api: ${api}`);
|
|
}
|
|
return provider;
|
|
}
|
|
|
|
export function stream<TApi extends Api>(
|
|
model: Model<TApi>,
|
|
context: Context,
|
|
options?: ProviderStreamOptions,
|
|
): AssistantMessageEventStream {
|
|
const provider = resolveApiProvider(model.api);
|
|
return provider.stream(model, context, options as StreamOptions);
|
|
}
|
|
|
|
export async function complete<TApi extends Api>(
|
|
model: Model<TApi>,
|
|
context: Context,
|
|
options?: ProviderStreamOptions,
|
|
): Promise<AssistantMessage> {
|
|
const s = stream(model, context, options);
|
|
return s.result();
|
|
}
|
|
|
|
export function streamSimple<TApi extends Api>(
|
|
model: Model<TApi>,
|
|
context: Context,
|
|
options?: SimpleStreamOptions,
|
|
): AssistantMessageEventStream {
|
|
const provider = resolveApiProvider(model.api);
|
|
return provider.streamSimple(model, context, options);
|
|
}
|
|
|
|
export async function completeSimple<TApi extends Api>(
|
|
model: Model<TApi>,
|
|
context: Context,
|
|
options?: SimpleStreamOptions,
|
|
): Promise<AssistantMessage> {
|
|
const s = streamSimple(model, context, options);
|
|
return s.result();
|
|
}
|