feat: integrate command/skill loaders and think-mode hook in main entry
- Add loadCommands() and loadSkills() to config - Register think-mode hook for UserPromptSubmit event 🤖 GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)
This commit is contained in:
31
src/index.ts
31
src/index.ts
@@ -8,7 +8,18 @@ import {
|
|||||||
createGrepOutputTruncatorHook,
|
createGrepOutputTruncatorHook,
|
||||||
createDirectoryAgentsInjectorHook,
|
createDirectoryAgentsInjectorHook,
|
||||||
createEmptyTaskResponseDetectorHook,
|
createEmptyTaskResponseDetectorHook,
|
||||||
|
createThinkModeHook,
|
||||||
} from "./hooks";
|
} from "./hooks";
|
||||||
|
import {
|
||||||
|
loadUserCommands,
|
||||||
|
loadProjectCommands,
|
||||||
|
loadOpencodeGlobalCommands,
|
||||||
|
loadOpencodeProjectCommands,
|
||||||
|
} from "./features/command-loader";
|
||||||
|
import {
|
||||||
|
loadUserSkillsAsCommands,
|
||||||
|
loadProjectSkillsAsCommands,
|
||||||
|
} from "./features/skill-loader";
|
||||||
import { updateTerminalTitle } from "./features/terminal";
|
import { updateTerminalTitle } from "./features/terminal";
|
||||||
import { builtinTools } from "./tools";
|
import { builtinTools } from "./tools";
|
||||||
import { createBuiltinMcps } from "./mcp";
|
import { createBuiltinMcps } from "./mcp";
|
||||||
@@ -57,6 +68,7 @@ const OhMyOpenCodePlugin: Plugin = async (ctx) => {
|
|||||||
const grepOutputTruncator = createGrepOutputTruncatorHook(ctx);
|
const grepOutputTruncator = createGrepOutputTruncatorHook(ctx);
|
||||||
const directoryAgentsInjector = createDirectoryAgentsInjectorHook(ctx);
|
const directoryAgentsInjector = createDirectoryAgentsInjectorHook(ctx);
|
||||||
const emptyTaskResponseDetector = createEmptyTaskResponseDetectorHook(ctx);
|
const emptyTaskResponseDetector = createEmptyTaskResponseDetectorHook(ctx);
|
||||||
|
const thinkMode = createThinkModeHook();
|
||||||
|
|
||||||
updateTerminalTitle({ sessionId: "main" });
|
updateTerminalTitle({ sessionId: "main" });
|
||||||
|
|
||||||
@@ -86,12 +98,31 @@ const OhMyOpenCodePlugin: Plugin = async (ctx) => {
|
|||||||
...config.mcp,
|
...config.mcp,
|
||||||
...createBuiltinMcps(pluginConfig.disabled_mcps),
|
...createBuiltinMcps(pluginConfig.disabled_mcps),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const userCommands = loadUserCommands();
|
||||||
|
const opencodeGlobalCommands = loadOpencodeGlobalCommands();
|
||||||
|
const systemCommands = config.command ?? {};
|
||||||
|
const projectCommands = loadProjectCommands();
|
||||||
|
const opencodeProjectCommands = loadOpencodeProjectCommands();
|
||||||
|
const userSkills = loadUserSkillsAsCommands();
|
||||||
|
const projectSkills = loadProjectSkillsAsCommands();
|
||||||
|
|
||||||
|
config.command = {
|
||||||
|
...userCommands,
|
||||||
|
...userSkills,
|
||||||
|
...opencodeGlobalCommands,
|
||||||
|
...systemCommands,
|
||||||
|
...projectCommands,
|
||||||
|
...projectSkills,
|
||||||
|
...opencodeProjectCommands,
|
||||||
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
event: async (input) => {
|
event: async (input) => {
|
||||||
await todoContinuationEnforcer(input);
|
await todoContinuationEnforcer(input);
|
||||||
await contextWindowMonitor.event(input);
|
await contextWindowMonitor.event(input);
|
||||||
await directoryAgentsInjector.event(input);
|
await directoryAgentsInjector.event(input);
|
||||||
|
await thinkMode.event(input);
|
||||||
|
|
||||||
const { event } = input;
|
const { event } = input;
|
||||||
const props = event.properties as Record<string, unknown> | undefined;
|
const props = event.properties as Record<string, unknown> | undefined;
|
||||||
|
|||||||
Reference in New Issue
Block a user