perf(init): integrate async skill/command loaders

🤖 GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)

- Replace synchronous skill discovery calls in src/index.ts with async versions
- Use Promise.all to parallelize 4 skill directory scans
- Wrap conditional calls in Promise.resolve for consistent Promise types
- Imports: discoverUserClaudeSkillsAsync, discoverProjectClaudeSkillsAsync, discoverOpencodeGlobalSkillsAsync, discoverOpencodeProjectSkillsAsync
- Verification: bun test passes (571 pass, 1 pre-existing failure), bun run typecheck passes
This commit is contained in:
YeonGyu-Kim
2026-01-04 21:31:50 +09:00
parent 91d2705804
commit 97e51c42dc

View File

@@ -33,10 +33,10 @@ import {
} from "./features/context-injector"; } from "./features/context-injector";
import { createGoogleAntigravityAuthPlugin } from "./auth/antigravity"; import { createGoogleAntigravityAuthPlugin } from "./auth/antigravity";
import { import {
discoverUserClaudeSkills, discoverUserClaudeSkillsAsync,
discoverProjectClaudeSkills, discoverProjectClaudeSkillsAsync,
discoverOpencodeGlobalSkills, discoverOpencodeGlobalSkillsAsync,
discoverOpencodeProjectSkills, discoverOpencodeProjectSkillsAsync,
mergeSkills, mergeSkills,
} from "./features/opencode-skill-loader"; } from "./features/opencode-skill-loader";
import { createBuiltinSkills } from "./features/builtin-skills"; import { createBuiltinSkills } from "./features/builtin-skills";
@@ -201,13 +201,19 @@ const OhMyOpenCodePlugin: Plugin = async (ctx) => {
return true; return true;
}); });
const includeClaudeSkills = pluginConfig.claude_code?.skills !== false; const includeClaudeSkills = pluginConfig.claude_code?.skills !== false;
const [userSkills, globalSkills, projectSkills, opencodeProjectSkills] = await Promise.all([
includeClaudeSkills ? discoverUserClaudeSkillsAsync() : Promise.resolve([]),
discoverOpencodeGlobalSkillsAsync(),
includeClaudeSkills ? discoverProjectClaudeSkillsAsync() : Promise.resolve([]),
discoverOpencodeProjectSkillsAsync(),
]);
const mergedSkills = mergeSkills( const mergedSkills = mergeSkills(
builtinSkills, builtinSkills,
pluginConfig.skills, pluginConfig.skills,
includeClaudeSkills ? discoverUserClaudeSkills() : [], userSkills,
discoverOpencodeGlobalSkills(), globalSkills,
includeClaudeSkills ? discoverProjectClaudeSkills() : [], projectSkills,
discoverOpencodeProjectSkills() opencodeProjectSkills
); );
const skillMcpManager = new SkillMcpManager(); const skillMcpManager = new SkillMcpManager();
const getSessionIDForMcp = () => getMainSessionID() || ""; const getSessionIDForMcp = () => getMainSessionID() || "";