diff --git a/src/index.ts b/src/index.ts index 1e10b1d5a..b67946559 100644 --- a/src/index.ts +++ b/src/index.ts @@ -21,14 +21,12 @@ import { startTmuxCheck } from "./tools" let activePluginDispose: PluginDispose | null = null const OhMyOpenCodePlugin: Plugin = async (ctx) => { - // Initialize config context for plugin runtime (prevents warnings from hooks) initConfigContext("opencode", null) log("[OhMyOpenCodePlugin] ENTRY - plugin loading", { directory: ctx.directory, }) logLegacyPluginStartupWarning() - // Detect conflicting skill plugins (e.g., opencode-skills) const skillPluginCheck = detectExternalSkillPlugin(ctx.directory) if (skillPluginCheck.detected && skillPluginCheck.pluginName) { console.warn(getSkillPluginConflictWarning(skillPluginCheck.pluginName)) @@ -126,7 +124,4 @@ export type { BuiltinCommandName, } from "./config" -// NOTE: Do NOT export functions from main index.ts! -// OpenCode treats ALL exports as plugin instances and calls them. -// Config error utilities are available via "./shared/config-errors" for internal use only. export type { ConfigLoadError } from "./shared/config-errors" diff --git a/src/plugin-handlers/command-config-handler.ts b/src/plugin-handlers/command-config-handler.ts index 626eb9850..08b40d4d1 100644 --- a/src/plugin-handlers/command-config-handler.ts +++ b/src/plugin-handlers/command-config-handler.ts @@ -38,7 +38,6 @@ export async function applyCommandConfig(params: { const includeClaudeCommands = params.pluginConfig.claude_code?.commands ?? true; const includeClaudeSkills = params.pluginConfig.claude_code?.skills ?? true; - // Detect conflicting skill plugins const externalSkillPlugin = detectExternalSkillPlugin(params.ctx.directory); if (includeClaudeSkills && externalSkillPlugin.detected) { log(getSkillPluginConflictWarning(externalSkillPlugin.pluginName!)); diff --git a/src/plugin-handlers/mcp-config-handler.ts b/src/plugin-handlers/mcp-config-handler.ts index 82be91942..474c76870 100644 --- a/src/plugin-handlers/mcp-config-handler.ts +++ b/src/plugin-handlers/mcp-config-handler.ts @@ -6,6 +6,10 @@ import { log } from "../shared"; type McpEntry = Record; +function isDisabledMcpEntry(value: unknown): value is McpEntry & { enabled: false } { + return typeof value === "object" && value !== null && (value as McpEntry).enabled === false; +} + function captureUserDisabledMcps( userMcp: Record | undefined ): Set { @@ -13,12 +17,7 @@ function captureUserDisabledMcps( if (!userMcp) return disabled; for (const [name, value] of Object.entries(userMcp)) { - if ( - value && - typeof value === "object" && - "enabled" in value && - (value as McpEntry).enabled === false - ) { + if (isDisabledMcpEntry(value)) { disabled.add(name); } } diff --git a/src/plugin/hooks/create-session-hooks.ts b/src/plugin/hooks/create-session-hooks.ts index ccbc8bf0a..7dd1c3298 100644 --- a/src/plugin/hooks/create-session-hooks.ts +++ b/src/plugin/hooks/create-session-hooks.ts @@ -153,8 +153,6 @@ export function createSessionHooks(args: { } } - // Model fallback hook (configurable via model_fallback config + disabled_hooks) - // This handles automatic model switching when model errors occur const isModelFallbackConfigEnabled = pluginConfig.model_fallback ?? false const modelFallback = isModelFallbackConfigEnabled && isHookEnabled("model-fallback") ? safeHook("model-fallback", () => diff --git a/src/plugin/normalize-tool-arg-schemas.ts b/src/plugin/normalize-tool-arg-schemas.ts index 1669dd43c..0f626b546 100644 --- a/src/plugin/normalize-tool-arg-schemas.ts +++ b/src/plugin/normalize-tool-arg-schemas.ts @@ -41,7 +41,6 @@ export function normalizeToolArgSchemas { diff --git a/src/plugin/ultrawork-db-model-override.test.ts b/src/plugin/ultrawork-db-model-override.test.ts index a5b350e75..dc3f15a38 100644 --- a/src/plugin/ultrawork-db-model-override.test.ts +++ b/src/plugin/ultrawork-db-model-override.test.ts @@ -126,7 +126,7 @@ describe("scheduleDeferredModelOverride", () => { }) test("should fall back to setTimeout when message never appears", async () => { - //#given — no message inserted + //#given no message inserted //#when const { scheduleDeferredModelOverride } = await import("./ultrawork-db-model-override")