Files
oh-my-opencode/src/agents/agent-skill-resolution.ts
T

28 lines
993 B
TypeScript

import type { AgentConfig } from "@opencode-ai/sdk"
import type { BrowserAutomationProvider, GitMasterConfig } from "../config/schema"
import { resolveMultipleSkills } from "../features/opencode-skill-loader/skill-content"
type AgentConfigWithSkills = AgentConfig & { skills?: string[] }
export function resolveAgentSkills(
config: AgentConfig,
options: {
gitMasterConfig?: GitMasterConfig
browserProvider?: BrowserAutomationProvider
disabledSkills?: Set<string>
teamModeEnabled?: boolean
} = {}
): AgentConfig {
const { skills, ...configWithoutSkills } = config as AgentConfigWithSkills
if (!skills?.length) return configWithoutSkills
const { resolved } = resolveMultipleSkills(skills, options)
if (resolved.size === 0) return configWithoutSkills
const skillContent = Array.from(resolved.values()).join("\n\n")
return {
...configWithoutSkills,
prompt: skillContent + (configWithoutSkills.prompt ? "\n\n" + configWithoutSkills.prompt : ""),
}
}