Merges paperclipai/paperclip#62 onto latest master (494448d). Adds complete OpenCode provider with strict model selection, dynamic model discovery, CLI/server/UI adapter registration. Resolved conflicts with master's cursor adapter additions, node v24 typing, and containerized opencode support (201d91b). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
42 lines
1.5 KiB
TypeScript
42 lines
1.5 KiB
TypeScript
import type { CLIAdapterModule } from "@paperclipai/adapter-utils";
|
|
import { printClaudeStreamEvent } from "@paperclipai/adapter-claude-local/cli";
|
|
import { printCodexStreamEvent } from "@paperclipai/adapter-codex-local/cli";
|
|
import { printCursorStreamEvent } from "@paperclipai/adapter-cursor-local/cli";
|
|
import { printOpenCodeStreamEvent } from "@paperclipai/adapter-opencode-local/cli";
|
|
import { printOpenClawStreamEvent } from "@paperclipai/adapter-openclaw/cli";
|
|
import { processCLIAdapter } from "./process/index.js";
|
|
import { httpCLIAdapter } from "./http/index.js";
|
|
|
|
const claudeLocalCLIAdapter: CLIAdapterModule = {
|
|
type: "claude_local",
|
|
formatStdoutEvent: printClaudeStreamEvent,
|
|
};
|
|
|
|
const codexLocalCLIAdapter: CLIAdapterModule = {
|
|
type: "codex_local",
|
|
formatStdoutEvent: printCodexStreamEvent,
|
|
};
|
|
|
|
const openCodeLocalCLIAdapter: CLIAdapterModule = {
|
|
type: "opencode_local",
|
|
formatStdoutEvent: printOpenCodeStreamEvent,
|
|
};
|
|
|
|
const cursorLocalCLIAdapter: CLIAdapterModule = {
|
|
type: "cursor",
|
|
formatStdoutEvent: printCursorStreamEvent,
|
|
};
|
|
|
|
const openclawCLIAdapter: CLIAdapterModule = {
|
|
type: "openclaw",
|
|
formatStdoutEvent: printOpenClawStreamEvent,
|
|
};
|
|
|
|
const adaptersByType = new Map<string, CLIAdapterModule>(
|
|
[claudeLocalCLIAdapter, codexLocalCLIAdapter, openCodeLocalCLIAdapter, cursorLocalCLIAdapter, openclawCLIAdapter, processCLIAdapter, httpCLIAdapter].map((a) => [a.type, a]),
|
|
);
|
|
|
|
export function getCLIAdapter(type: string): CLIAdapterModule {
|
|
return adaptersByType.get(type) ?? processCLIAdapter;
|
|
}
|