mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-07-26 09:52:11 +03:00
- Add tool-detector.ts (6 CLI tools: claude, codex, opencode, cline, kilocode, continue) - Add config-generator/ factory + 6 generators (JSON + YAML) - Add doctor/checks.ts for CLI tool health checks - Add log-streamer.ts for usage log streaming - Add @omniroute/opencode-provider npm package - Add 5 CLI commands: config, status, logs, update, provider - Add 3 API routes: config, detect, apply - Update bin/omniroute.mjs, bin/cli/index.mjs, package.json - Update docs: SETUP_GUIDE.md, CLI-TOOLS.md - All tests pass (4302/4326, 24 pre-existing failures unchanged)
55 lines
1.2 KiB
TypeScript
55 lines
1.2 KiB
TypeScript
/**
|
|
* OpenCode provider plugin for OmniRoute AI Gateway
|
|
*
|
|
* Usage:
|
|
* import { createOmniRouteProvider } from "@omniroute/opencode-provider";
|
|
* const provider = createOmniRouteProvider({
|
|
* baseURL: "http://localhost:20128/v1",
|
|
* apiKey: "your-api-key",
|
|
* });
|
|
*
|
|
* Then add to OpenCode settings:
|
|
* { "provider": provider }
|
|
*/
|
|
|
|
export interface OmniRouteProviderOptions {
|
|
baseURL: string;
|
|
apiKey: string;
|
|
model?: string;
|
|
}
|
|
|
|
export interface OmniRouteProvider {
|
|
id: string;
|
|
name: string;
|
|
npm: string;
|
|
options: Record<string, unknown>;
|
|
auth: { type: string; apiKey: string };
|
|
}
|
|
|
|
export function createOmniRouteProvider(options: OmniRouteProviderOptions): OmniRouteProvider {
|
|
if (!options.baseURL) {
|
|
throw new Error("baseURL is required");
|
|
}
|
|
if (!options.apiKey) {
|
|
throw new Error("apiKey is required");
|
|
}
|
|
|
|
const baseURL = options.baseURL.replace(/\/+$/, "");
|
|
|
|
return {
|
|
id: "omniroute",
|
|
name: "OmniRoute AI Gateway",
|
|
npm: "@omniroute/opencode-provider",
|
|
options: {
|
|
baseURL: `${baseURL}/v1`,
|
|
model: options.model || "opencode",
|
|
},
|
|
auth: {
|
|
type: "apiKey",
|
|
apiKey: options.apiKey,
|
|
},
|
|
};
|
|
}
|
|
|
|
export default createOmniRouteProvider;
|