agents
Version:
A home for your AI agents
78 lines (76 loc) • 2.41 kB
TypeScript
import {
_ as DynamicRouteId,
b as WorkersAIModelId,
c as GatewayOptions,
d as CatalogModelId,
s as AISettings
} from "../../transport-5moD2pW5.js";
import {
o as CloudflareLanguageModelId,
u as ModelOptions
} from "../../index-8k4qsX1T.js";
import { Plugin } from "@opencode/plugin";
//#region src/models/opencode/index.d.ts
/** The OpenCode provider id `createAI`'s plugin registers. */
declare const CLOUDFLARE_PROVIDER_ID = "cloudflare";
/**
* A model as OpenCode references one: pass it to `OpenCodeHarness`'s
* `defaults.model`, `session.setModel`, or OpenCode's `sessions.switchModel`.
*/
type OpenCodeModel = {
readonly providerID: string;
readonly id: string;
};
/** How OpenCode budgets a model's context. */
type OpenCodeModelLimit = {
/** Context window, in tokens. Default 128_000. */ readonly context: number /** Most tokens OpenCode asks the model to generate. Default 8_192. */;
readonly output: number;
};
/** Options for one model: `agents/models/ai-sdk`'s, plus OpenCode's limit. */
type OpenCodeModelOptions = ModelOptions & {
readonly limit?: OpenCodeModelLimit;
};
/**
* The provider `createAI` returns. Call it with a model id — a Workers AI id,
* an AI Gateway catalog id, or a dynamic route — to register the model with
* the plugin and get OpenCode's reference to it.
*/
interface AI {
/** A model, registered with the plugin. */
(
modelId: CloudflareLanguageModelId,
options?: OpenCodeModelOptions
): OpenCodeModel;
/** Same as calling the provider directly. */
model(
modelId: CloudflareLanguageModelId,
options?: OpenCodeModelOptions
): OpenCodeModel;
/** The OpenCode plugin. Pass it in `OpenCodeWorkerd.create({ plugins })`. */
readonly plugin: Plugin.Plugin;
}
/**
* Create Cloudflare's model provider for OpenCode.
*
* @param settings - The `AI` binding, or an account id and API token, and
* gateway defaults, as for `agents/models/ai-sdk`.
* @returns The provider: call it with model ids; register `plugin`.
*/
declare function createAI(settings: AISettings): AI;
//#endregion
export {
AI,
type AISettings,
CLOUDFLARE_PROVIDER_ID,
type CatalogModelId,
type CloudflareLanguageModelId,
type DynamicRouteId,
type GatewayOptions,
type ModelOptions,
OpenCodeModel,
OpenCodeModelLimit,
OpenCodeModelOptions,
type WorkersAIModelId,
createAI
};
//# sourceMappingURL=index.d.ts.map