ソースを参照

refactor: convert skills-core and plugin to pure ESM for module compatibility

Jesse Vincent 9 ヶ月 前
コミット
d92de28150
2 ファイル変更5 行追加9 行削除
  1. 1 5
      .opencode/plugin/superpowers.js
  2. 4 4
      lib/skills-core.js

+ 1 - 5
.opencode/plugin/superpowers.js

@@ -8,18 +8,14 @@
 import path from 'path';
 import fs from 'fs';
 import os from 'os';
-import { createRequire } from 'module';
 import { fileURLToPath } from 'url';
+import * as skillsCore from '../../lib/skills-core.js';
 
 const __dirname = path.dirname(fileURLToPath(import.meta.url));
 
 export const SuperpowersPlugin = async ({ project, client, $, directory, worktree }) => {
   const { z } = await import('zod');
 
-  // Load CommonJS skills-core using require inside the async function
-  const require = createRequire(import.meta.url);
-  const skillsCore = require(path.join(__dirname, '../../lib/skills-core.js'));
-
   const homeDir = os.homedir();
   const superpowersSkillsDir = path.join(homeDir, '.config/opencode/superpowers/skills');
   const personalSkillsDir = path.join(homeDir, '.config/opencode/skills');

+ 4 - 4
lib/skills-core.js

@@ -1,6 +1,6 @@
-const fs = require('fs');
-const path = require('path');
-const { execSync } = require('child_process');
+import fs from 'fs';
+import path from 'path';
+import { execSync } from 'child_process';
 
 /**
  * Extract YAML frontmatter from a skill file.
@@ -199,7 +199,7 @@ function stripFrontmatter(content) {
     return contentLines.join('\n').trim();
 }
 
-module.exports = {
+export {
     extractFrontmatter,
     findSkillsInDir,
     resolveSkillPath,