fix: add runtime migration for user agent configs in config-handler
Migrate tools/permission format in user/project/plugin agent configs based on detected OpenCode version at load time. 🤖 Generated with [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)
This commit is contained in:
@@ -21,6 +21,7 @@ import { loadAllPluginComponents } from "../features/claude-code-plugin-loader";
|
|||||||
import { createBuiltinMcps } from "../mcp";
|
import { createBuiltinMcps } from "../mcp";
|
||||||
import type { OhMyOpenCodeConfig } from "../config";
|
import type { OhMyOpenCodeConfig } from "../config";
|
||||||
import { log } from "../shared";
|
import { log } from "../shared";
|
||||||
|
import { migrateAgentConfig } from "../shared/permission-compat";
|
||||||
import { PLAN_SYSTEM_PROMPT, PLAN_PERMISSION } from "../agents/plan-prompt";
|
import { PLAN_SYSTEM_PROMPT, PLAN_PERMISSION } from "../agents/plan-prompt";
|
||||||
import type { ModelCacheState } from "../plugin-state";
|
import type { ModelCacheState } from "../plugin-state";
|
||||||
|
|
||||||
@@ -95,13 +96,32 @@ export function createConfigHandler(deps: ConfigHandlerDeps) {
|
|||||||
config.model as string | undefined
|
config.model as string | undefined
|
||||||
);
|
);
|
||||||
|
|
||||||
const userAgents = (pluginConfig.claude_code?.agents ?? true)
|
const rawUserAgents = (pluginConfig.claude_code?.agents ?? true)
|
||||||
? loadUserAgents()
|
? loadUserAgents()
|
||||||
: {};
|
: {};
|
||||||
const projectAgents = (pluginConfig.claude_code?.agents ?? true)
|
const rawProjectAgents = (pluginConfig.claude_code?.agents ?? true)
|
||||||
? loadProjectAgents()
|
? loadProjectAgents()
|
||||||
: {};
|
: {};
|
||||||
const pluginAgents = pluginComponents.agents;
|
const rawPluginAgents = pluginComponents.agents;
|
||||||
|
|
||||||
|
const userAgents = Object.fromEntries(
|
||||||
|
Object.entries(rawUserAgents).map(([k, v]) => [
|
||||||
|
k,
|
||||||
|
v ? migrateAgentConfig(v as Record<string, unknown>) : v,
|
||||||
|
])
|
||||||
|
);
|
||||||
|
const projectAgents = Object.fromEntries(
|
||||||
|
Object.entries(rawProjectAgents).map(([k, v]) => [
|
||||||
|
k,
|
||||||
|
v ? migrateAgentConfig(v as Record<string, unknown>) : v,
|
||||||
|
])
|
||||||
|
);
|
||||||
|
const pluginAgents = Object.fromEntries(
|
||||||
|
Object.entries(rawPluginAgents).map(([k, v]) => [
|
||||||
|
k,
|
||||||
|
v ? migrateAgentConfig(v as Record<string, unknown>) : v,
|
||||||
|
])
|
||||||
|
);
|
||||||
|
|
||||||
const isSisyphusEnabled = pluginConfig.sisyphus_agent?.disabled !== true;
|
const isSisyphusEnabled = pluginConfig.sisyphus_agent?.disabled !== true;
|
||||||
const builderEnabled =
|
const builderEnabled =
|
||||||
@@ -164,11 +184,16 @@ export function createConfigHandler(deps: ConfigHandlerDeps) {
|
|||||||
|
|
||||||
const filteredConfigAgents = configAgent
|
const filteredConfigAgents = configAgent
|
||||||
? Object.fromEntries(
|
? Object.fromEntries(
|
||||||
Object.entries(configAgent).filter(([key]) => {
|
Object.entries(configAgent)
|
||||||
|
.filter(([key]) => {
|
||||||
if (key === "build") return false;
|
if (key === "build") return false;
|
||||||
if (key === "plan" && replacePlan) return false;
|
if (key === "plan" && replacePlan) return false;
|
||||||
return true;
|
return true;
|
||||||
})
|
})
|
||||||
|
.map(([key, value]) => [
|
||||||
|
key,
|
||||||
|
value ? migrateAgentConfig(value as Record<string, unknown>) : value,
|
||||||
|
])
|
||||||
)
|
)
|
||||||
: {};
|
: {};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user