feat: register anthropic-effort hook in plugin lifecycle
- Add "anthropic-effort" to HookNameSchema enum - Import and create hook in plugin entry with isHookEnabled guard - Wire chat.params event handler to invoke the effort hook - First hook to use the chat.params lifecycle event from plugin
This commit is contained in:
parent
6febebc166
commit
ec520e6228
@ -101,6 +101,7 @@ export const HookNameSchema = z.enum([
|
||||
"stop-continuation-guard",
|
||||
"tasks-todowrite-disabler",
|
||||
"write-existing-file-guard",
|
||||
"anthropic-effort",
|
||||
])
|
||||
|
||||
export const BuiltinCommandNameSchema = z.enum([
|
||||
|
||||
28
src/index.ts
28
src/index.ts
@ -40,6 +40,7 @@ import {
|
||||
createTasksTodowriteDisablerHook,
|
||||
createWriteExistingFileGuardHook,
|
||||
} from "./hooks";
|
||||
import { createAnthropicEffortHook } from "./hooks/anthropic-effort";
|
||||
import {
|
||||
contextCollector,
|
||||
createContextInjectorMessagesTransformHook,
|
||||
@ -294,6 +295,10 @@ const OhMyOpenCodePlugin: Plugin = async (ctx) => {
|
||||
|
||||
const taskResumeInfo = createTaskResumeInfoHook();
|
||||
|
||||
const anthropicEffort = isHookEnabled("anthropic-effort")
|
||||
? createAnthropicEffortHook()
|
||||
: null;
|
||||
|
||||
const tmuxSessionManager = new TmuxSessionManager(ctx, tmuxConfig);
|
||||
|
||||
const backgroundManager = new BackgroundManager(
|
||||
@ -550,6 +555,29 @@ const OhMyOpenCodePlugin: Plugin = async (ctx) => {
|
||||
return {
|
||||
tool: filteredTools,
|
||||
|
||||
"chat.params": async (
|
||||
input: {
|
||||
sessionID: string
|
||||
agent: string
|
||||
model: Record<string, unknown>
|
||||
provider: Record<string, unknown>
|
||||
message: Record<string, unknown>
|
||||
},
|
||||
output: {
|
||||
temperature: number
|
||||
topP: number
|
||||
topK: number
|
||||
options: Record<string, unknown>
|
||||
},
|
||||
) => {
|
||||
const model = input.model as { providerID: string; modelID: string }
|
||||
const message = input.message as { variant?: string }
|
||||
await anthropicEffort?.["chat.params"]?.(
|
||||
{ ...input, agent: { name: input.agent }, model, provider: input.provider as { id: string }, message },
|
||||
output,
|
||||
);
|
||||
},
|
||||
|
||||
"chat.message": async (input, output) => {
|
||||
if (input.agent) {
|
||||
setSessionAgent(input.sessionID, input.agent);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user