feat(plugin): integrate skill_mcp tool with session-scoped lifecycle management
🤖 GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)
This commit is contained in:
20
src/index.ts
20
src/index.ts
@@ -58,8 +58,9 @@ import {
|
|||||||
setMainSession,
|
setMainSession,
|
||||||
getMainSessionID,
|
getMainSessionID,
|
||||||
} from "./features/claude-code-session-state";
|
} from "./features/claude-code-session-state";
|
||||||
import { builtinTools, createCallOmoAgent, createBackgroundTools, createLookAt, createSkillTool, interactive_bash, getTmuxPath } from "./tools";
|
import { builtinTools, createCallOmoAgent, createBackgroundTools, createLookAt, createSkillTool, createSkillMcpTool, interactive_bash, getTmuxPath } from "./tools";
|
||||||
import { BackgroundManager } from "./features/background-agent";
|
import { BackgroundManager } from "./features/background-agent";
|
||||||
|
import { SkillMcpManager } from "./features/skill-mcp-manager";
|
||||||
import { createBuiltinMcps } from "./mcp";
|
import { createBuiltinMcps } from "./mcp";
|
||||||
import { OhMyOpenCodeConfigSchema, type OhMyOpenCodeConfig, type HookName } from "./config";
|
import { OhMyOpenCodeConfigSchema, type OhMyOpenCodeConfig, type HookName } from "./config";
|
||||||
import { log, deepMerge, getUserConfigDir, addConfigLoadError, parseJsonc, detectConfigFile, migrateConfigFile } from "./shared";
|
import { log, deepMerge, getUserConfigDir, addConfigLoadError, parseJsonc, detectConfigFile, migrateConfigFile } from "./shared";
|
||||||
@@ -292,7 +293,18 @@ const OhMyOpenCodePlugin: Plugin = async (ctx) => {
|
|||||||
includeClaudeSkills ? discoverProjectClaudeSkills() : [],
|
includeClaudeSkills ? discoverProjectClaudeSkills() : [],
|
||||||
discoverOpencodeProjectSkills(),
|
discoverOpencodeProjectSkills(),
|
||||||
);
|
);
|
||||||
const skillTool = createSkillTool({ skills: mergedSkills });
|
const skillMcpManager = new SkillMcpManager();
|
||||||
|
const getSessionIDForMcp = () => getMainSessionID() || "";
|
||||||
|
const skillTool = createSkillTool({
|
||||||
|
skills: mergedSkills,
|
||||||
|
mcpManager: skillMcpManager,
|
||||||
|
getSessionID: getSessionIDForMcp,
|
||||||
|
});
|
||||||
|
const skillMcpTool = createSkillMcpTool({
|
||||||
|
manager: skillMcpManager,
|
||||||
|
getLoadedSkills: () => mergedSkills,
|
||||||
|
getSessionID: getSessionIDForMcp,
|
||||||
|
});
|
||||||
|
|
||||||
const googleAuthHooks = pluginConfig.google_auth !== false
|
const googleAuthHooks = pluginConfig.google_auth !== false
|
||||||
? await createGoogleAntigravityAuthPlugin(ctx)
|
? await createGoogleAntigravityAuthPlugin(ctx)
|
||||||
@@ -309,6 +321,7 @@ const OhMyOpenCodePlugin: Plugin = async (ctx) => {
|
|||||||
call_omo_agent: callOmoAgent,
|
call_omo_agent: callOmoAgent,
|
||||||
look_at: lookAt,
|
look_at: lookAt,
|
||||||
skill: skillTool,
|
skill: skillTool,
|
||||||
|
skill_mcp: skillMcpTool,
|
||||||
...(tmuxAvailable ? { interactive_bash } : {}),
|
...(tmuxAvailable ? { interactive_bash } : {}),
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -593,6 +606,9 @@ const OhMyOpenCodePlugin: Plugin = async (ctx) => {
|
|||||||
if (sessionInfo?.id === getMainSessionID()) {
|
if (sessionInfo?.id === getMainSessionID()) {
|
||||||
setMainSession(undefined);
|
setMainSession(undefined);
|
||||||
}
|
}
|
||||||
|
if (sessionInfo?.id) {
|
||||||
|
await skillMcpManager.disconnectSession(sessionInfo.id);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (event.type === "session.error") {
|
if (event.type === "session.error") {
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ import {
|
|||||||
export { interactive_bash, startBackgroundCheck as startTmuxCheck } from "./interactive-bash"
|
export { interactive_bash, startBackgroundCheck as startTmuxCheck } from "./interactive-bash"
|
||||||
export { createSkillTool } from "./skill"
|
export { createSkillTool } from "./skill"
|
||||||
export { getTmuxPath } from "./interactive-bash/utils"
|
export { getTmuxPath } from "./interactive-bash/utils"
|
||||||
|
export { createSkillMcpTool } from "./skill-mcp"
|
||||||
|
|
||||||
import {
|
import {
|
||||||
createBackgroundTask,
|
createBackgroundTask,
|
||||||
|
|||||||
Reference in New Issue
Block a user