map Claude Code model strings to OpenCode format with proper object structure
This commit is contained in:
@@ -1,10 +1,9 @@
|
||||
import { existsSync, readdirSync, readFileSync } from "fs"
|
||||
import { basename, join } from "path"
|
||||
import type { AgentConfig } from "@opencode-ai/sdk"
|
||||
import { parseFrontmatter } from "../../shared/frontmatter"
|
||||
import { isMarkdownFile } from "../../shared/file-utils"
|
||||
import { log } from "../../shared/logger"
|
||||
import type { AgentFrontmatter } from "../claude-code-agent-loader/types"
|
||||
import type { AgentFrontmatter, ClaudeCodeAgentConfig } from "../claude-code-agent-loader/types"
|
||||
import { mapClaudeModelToOpenCode } from "../claude-code-agent-loader/claude-model-mapper"
|
||||
import type { LoadedPlugin } from "./types"
|
||||
|
||||
@@ -25,8 +24,8 @@ function parseToolsConfig(toolsStr?: string): Record<string, boolean> | undefine
|
||||
return result
|
||||
}
|
||||
|
||||
export function loadPluginAgents(plugins: LoadedPlugin[]): Record<string, AgentConfig> {
|
||||
const agents: Record<string, AgentConfig> = {}
|
||||
export function loadPluginAgents(plugins: LoadedPlugin[]): Record<string, ClaudeCodeAgentConfig> {
|
||||
const agents: Record<string, ClaudeCodeAgentConfig> = {}
|
||||
|
||||
for (const plugin of plugins) {
|
||||
if (!plugin.agentsDir || !existsSync(plugin.agentsDir)) continue
|
||||
@@ -47,13 +46,13 @@ export function loadPluginAgents(plugins: LoadedPlugin[]): Record<string, AgentC
|
||||
const originalDescription = data.description || ""
|
||||
const formattedDescription = `(plugin: ${plugin.name}) ${originalDescription}`
|
||||
|
||||
const mappedModel = mapClaudeModelToOpenCode(data.model)
|
||||
const mappedModelOverride = mapClaudeModelToOpenCode(data.model)
|
||||
|
||||
const config: AgentConfig = {
|
||||
const config: ClaudeCodeAgentConfig = {
|
||||
description: formattedDescription,
|
||||
mode: "subagent",
|
||||
prompt: body.trim(),
|
||||
...(mappedModel && { model: mappedModel }),
|
||||
...(mappedModelOverride ? { model: mappedModelOverride } : {}),
|
||||
}
|
||||
|
||||
const toolsConfig = parseToolsConfig(data.tools)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { log } from "../../shared/logger"
|
||||
import type { AgentConfig } from "@opencode-ai/sdk"
|
||||
import type { CommandDefinition } from "../claude-code-command-loader/types"
|
||||
import type { McpServerConfig } from "../claude-code-mcp-loader/types"
|
||||
import type { ClaudeCodeAgentConfig } from "../claude-code-agent-loader/types"
|
||||
import type { HooksConfig, LoadedPlugin, PluginLoadError, PluginLoaderOptions } from "./types"
|
||||
import { discoverInstalledPlugins } from "./discovery"
|
||||
import { loadPluginCommands } from "./command-loader"
|
||||
@@ -20,7 +20,7 @@ export { loadPluginHooksConfigs } from "./hook-loader"
|
||||
export interface PluginComponentsResult {
|
||||
commands: Record<string, CommandDefinition>
|
||||
skills: Record<string, CommandDefinition>
|
||||
agents: Record<string, AgentConfig>
|
||||
agents: Record<string, ClaudeCodeAgentConfig>
|
||||
mcpServers: Record<string, McpServerConfig>
|
||||
hooksConfigs: HooksConfig[]
|
||||
plugins: LoadedPlugin[]
|
||||
|
||||
Reference in New Issue
Block a user