1
0
mirror of synced 2026-05-20 17:28:31 +08:00
Files
cook/scripts/pack-skill.ts

35 lines
1.2 KiB
TypeScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { execSync } from 'node:child_process'
import { copyFileSync, mkdirSync, rmSync, statSync } from 'node:fs'
import { resolve } from 'node:path'
const root = resolve(import.meta.dirname, '..')
const skillName = 'cook'
const skillDir = resolve(root, 'skills', skillName)
const skillsDir = resolve(root, 'skills')
const outputPath = resolve(skillsDir, `${skillName}.zip`)
// 需要打包的数据文件(供 Fallback 使用CLI 不可用时 AI 直接读取)
const dataFiles = [
'recipe.csv',
'incompatible-foods.csv',
]
const dataSourceDir = resolve(root, 'app/data')
const dataTargetDir = resolve(skillDir, 'data')
// 1. 复制数据文件到 skills/cook/data/
mkdirSync(dataTargetDir, { recursive: true })
for (const file of dataFiles) {
copyFileSync(resolve(dataSourceDir, file), resolve(dataTargetDir, file))
}
// 2. 打包(保留目录结构)
mkdirSync(skillsDir, { recursive: true })
execSync(`zip -r "${outputPath}" ${skillName}`, { cwd: skillsDir, stdio: 'ignore' })
// 3. 清理临时复制的数据目录
rmSync(dataTargetDir, { recursive: true, force: true })
const size = (statSync(outputPath).size / 1024).toFixed(1)
console.log(`✅ Packed skills/${skillName}/ → skills/${skillName}.zip (${size} KB)`)