refactor(core): split index.ts and config-handler.ts into focused modules
Main entry point: - create-hooks.ts, create-tools.ts, create-managers.ts - plugin-interface.ts: plugin interface types - plugin/ directory: plugin lifecycle modules Config handler: - agent-config-handler.ts, command-config-handler.ts - tool-config-handler.ts, mcp-config-handler.ts - provider-config-handler.ts, category-config-resolver.ts - agent-priority-order.ts, prometheus-agent-config-builder.ts - plugin-components-loader.ts
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
import type { PluginContext, PluginInterface, ToolsRecord } from "./plugin/types"
|
||||
import type { OhMyOpenCodeConfig } from "./config"
|
||||
|
||||
import { createChatParamsHandler } from "./plugin/chat-params"
|
||||
import { createChatMessageHandler } from "./plugin/chat-message"
|
||||
import { createMessagesTransformHandler } from "./plugin/messages-transform"
|
||||
import { createEventHandler } from "./plugin/event"
|
||||
import { createToolExecuteAfterHandler } from "./plugin/tool-execute-after"
|
||||
import { createToolExecuteBeforeHandler } from "./plugin/tool-execute-before"
|
||||
|
||||
import type { CreatedHooks } from "./create-hooks"
|
||||
import type { Managers } from "./create-managers"
|
||||
|
||||
export function createPluginInterface(args: {
|
||||
ctx: PluginContext
|
||||
pluginConfig: OhMyOpenCodeConfig
|
||||
firstMessageVariantGate: {
|
||||
shouldOverride: (sessionID: string) => boolean
|
||||
markApplied: (sessionID: string) => void
|
||||
markSessionCreated: (sessionInfo: { id?: string; title?: string; parentID?: string } | undefined) => void
|
||||
clear: (sessionID: string) => void
|
||||
}
|
||||
managers: Managers
|
||||
hooks: CreatedHooks
|
||||
tools: ToolsRecord
|
||||
}): PluginInterface {
|
||||
const { ctx, pluginConfig, firstMessageVariantGate, managers, hooks, tools } =
|
||||
args
|
||||
|
||||
return {
|
||||
tool: tools,
|
||||
|
||||
"chat.params": createChatParamsHandler({ anthropicEffort: hooks.anthropicEffort }),
|
||||
|
||||
"chat.message": createChatMessageHandler({
|
||||
ctx,
|
||||
pluginConfig,
|
||||
firstMessageVariantGate,
|
||||
hooks,
|
||||
}),
|
||||
|
||||
"experimental.chat.messages.transform": createMessagesTransformHandler({
|
||||
hooks,
|
||||
}),
|
||||
|
||||
config: managers.configHandler,
|
||||
|
||||
event: createEventHandler({
|
||||
ctx,
|
||||
pluginConfig,
|
||||
firstMessageVariantGate,
|
||||
managers,
|
||||
hooks,
|
||||
}),
|
||||
|
||||
"tool.execute.before": createToolExecuteBeforeHandler({
|
||||
ctx,
|
||||
hooks,
|
||||
}),
|
||||
|
||||
"tool.execute.after": createToolExecuteAfterHandler({
|
||||
hooks,
|
||||
}),
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user