wp-typia 0.19.0 → 0.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -2
- package/dist-bunli/.bunli/commands.gen.js +1843 -1216
- package/dist-bunli/.bunli/commands.gen.js.map +36 -33
- package/dist-bunli/cli-03j0axbt.js +163 -0
- package/dist-bunli/cli-03j0axbt.js.map +11 -0
- package/dist-bunli/{cli-7svz19s1.js → cli-2ybmc22r.js} +370 -86
- package/dist-bunli/{cli-7svz19s1.js.map → cli-2ybmc22r.js.map} +15 -14
- package/dist-bunli/cli-7yg38ht2.js +427 -0
- package/dist-bunli/cli-7yg38ht2.js.map +12 -0
- package/dist-bunli/{cli-yw0mq0wq.js → cli-93wd227r.js} +108 -3
- package/dist-bunli/cli-93wd227r.js.map +10 -0
- package/dist-bunli/{cli-kan7a6db.js → cli-a6dwqnhq.js} +24 -2
- package/dist-bunli/cli-a6dwqnhq.js.map +11 -0
- package/dist-bunli/{cli-add-j2c81sh1.js → cli-add-pq6wm87p.js} +16 -9
- package/dist-bunli/{cli-add-j2c81sh1.js.map → cli-add-pq6wm87p.js.map} +3 -3
- package/dist-bunli/{cli-diagnostics-c65hhyhx.js → cli-diagnostics-e5gxeprp.js} +8 -4
- package/dist-bunli/{cli-diagnostics-c65hhyhx.js.map → cli-diagnostics-e5gxeprp.js.map} +1 -1
- package/dist-bunli/{cli-doctor-hft0wr0e.js → cli-doctor-qk6fwpds.js} +14 -13
- package/dist-bunli/{cli-doctor-hft0wr0e.js.map → cli-doctor-qk6fwpds.js.map} +3 -3
- package/dist-bunli/{cli-572d6g4m.js → cli-hv2yedw2.js} +2 -157
- package/dist-bunli/{cli-572d6g4m.js.map → cli-hv2yedw2.js.map} +4 -6
- package/dist-bunli/{cli-scaffold-vcg6wem5.js → cli-scaffold-s3nhwe7x.js} +9 -7
- package/dist-bunli/cli-scaffold-s3nhwe7x.js.map +10 -0
- package/dist-bunli/cli-t73q5aqz.js +103 -0
- package/dist-bunli/cli-t73q5aqz.js.map +10 -0
- package/dist-bunli/{cli-templates-4qxszbmc.js → cli-templates-j65r4k9v.js} +1 -1
- package/dist-bunli/{cli-wtrvnce5.js → cli-w4r0rr8a.js} +8 -8
- package/dist-bunli/cli-w4r0rr8a.js.map +10 -0
- package/dist-bunli/cli.js +127 -2863
- package/dist-bunli/cli.js.map +5 -56
- package/dist-bunli/command-list-37n1za5q.js +2485 -0
- package/dist-bunli/command-list-37n1za5q.js.map +58 -0
- package/dist-bunli/node-cli.js +432 -323
- package/dist-bunli/node-cli.js.map +11 -10
- package/dist-bunli/{sync-x91y9jtv.js → sync-k2k8svyc.js} +3 -2
- package/dist-bunli/{sync-x91y9jtv.js.map → sync-k2k8svyc.js.map} +1 -1
- package/package.json +6 -3
- package/dist-bunli/cli-kan7a6db.js.map +0 -11
- package/dist-bunli/cli-scaffold-vcg6wem5.js.map +0 -10
- package/dist-bunli/cli-wtrvnce5.js.map +0 -10
- package/dist-bunli/cli-yw0mq0wq.js.map +0 -10
- /package/dist-bunli/{cli-templates-4qxszbmc.js.map → cli-templates-j65r4k9v.js.map} +0 -0
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import {
|
|
3
|
+
renderFull
|
|
4
|
+
} from "./cli-hv2yedw2.js";
|
|
5
|
+
import {
|
|
6
|
+
builtinAgents,
|
|
7
|
+
detectAgents
|
|
8
|
+
} from "./cli-6v0pcxw6.js";
|
|
9
|
+
|
|
10
|
+
// ../../node_modules/.bun/@bunli+plugin-skills@0.1.0+44deef6f8e4a2f18/node_modules/@bunli/plugin-skills/src/sync.ts
|
|
11
|
+
import * as fs from "fs";
|
|
12
|
+
import * as fsp from "fs/promises";
|
|
13
|
+
import * as os from "os";
|
|
14
|
+
import * as path from "path";
|
|
15
|
+
import { createHash } from "crypto";
|
|
16
|
+
|
|
17
|
+
// ../../node_modules/.bun/@bunli+plugin-skills@0.1.0+44deef6f8e4a2f18/node_modules/@bunli/plugin-skills/src/generate.ts
|
|
18
|
+
function generateSkillFile(cliName, commands, options = {}) {
|
|
19
|
+
const { description } = options;
|
|
20
|
+
const slug = cliName.replace(/\s+/g, "-");
|
|
21
|
+
const frontmatter = renderFrontmatter({
|
|
22
|
+
name: slug,
|
|
23
|
+
...description ? { description } : {}
|
|
24
|
+
});
|
|
25
|
+
const body = renderFull(cliName, commands, description);
|
|
26
|
+
return `${frontmatter}
|
|
27
|
+
|
|
28
|
+
${body}
|
|
29
|
+
`;
|
|
30
|
+
}
|
|
31
|
+
function renderFrontmatter(fields) {
|
|
32
|
+
const lines = ["---"];
|
|
33
|
+
for (const [key, value] of Object.entries(fields)) {
|
|
34
|
+
lines.push(`${key}: ${formatFrontmatterValue(key, value)}`);
|
|
35
|
+
}
|
|
36
|
+
lines.push("---");
|
|
37
|
+
return lines.join(`
|
|
38
|
+
`);
|
|
39
|
+
}
|
|
40
|
+
function formatFrontmatterValue(key, value) {
|
|
41
|
+
if (key === "name" && /^[a-z0-9][a-z0-9-]*$/.test(value)) {
|
|
42
|
+
return value;
|
|
43
|
+
}
|
|
44
|
+
return JSON.stringify(value);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// ../../node_modules/.bun/@bunli+plugin-skills@0.1.0+44deef6f8e4a2f18/node_modules/@bunli/plugin-skills/src/sync.ts
|
|
48
|
+
var defaultSyncRuntime = {
|
|
49
|
+
homeDir: () => os.homedir(),
|
|
50
|
+
dataHome: () => process.env.XDG_DATA_HOME || path.join(os.homedir(), ".local", "share")
|
|
51
|
+
};
|
|
52
|
+
async function syncSkills(cliName, commands, options = {}, runtime = defaultSyncRuntime) {
|
|
53
|
+
const {
|
|
54
|
+
global: isGlobal = true,
|
|
55
|
+
force = false,
|
|
56
|
+
description,
|
|
57
|
+
cwd = process.cwd()
|
|
58
|
+
} = options;
|
|
59
|
+
const canonicalBase = path.join(isGlobal ? runtime.homeDir() : cwd, ".agents", "skills");
|
|
60
|
+
const cacheKey = stalenessCacheKey(cliName, isGlobal, cwd, canonicalBase);
|
|
61
|
+
const skillName = cliName.replace(/\s+/g, "-");
|
|
62
|
+
const canonicalDir = path.join(canonicalBase, skillName);
|
|
63
|
+
const detected = options.agents ?? detectAgents(builtinAgents);
|
|
64
|
+
const agentKey = computeAgentKey(detected, canonicalDir, skillName, isGlobal, cwd);
|
|
65
|
+
const content = generateSkillFile(cliName, commands, { description });
|
|
66
|
+
const hash = createHash("sha256").update(content).digest("hex").slice(0, 16);
|
|
67
|
+
const prevState = readState(cacheKey, runtime);
|
|
68
|
+
if (!force && prevState?.hash === hash && prevState.agentKey === agentKey) {
|
|
69
|
+
return { paths: [], agents: [], updated: false };
|
|
70
|
+
}
|
|
71
|
+
await fsp.mkdir(canonicalDir, { recursive: true });
|
|
72
|
+
await fsp.writeFile(path.join(canonicalDir, "SKILL.md"), content);
|
|
73
|
+
const paths = [canonicalDir];
|
|
74
|
+
const agentInstalls = [];
|
|
75
|
+
let hadInstallFailure = false;
|
|
76
|
+
for (const agent of detected) {
|
|
77
|
+
const agentSkillsDir = isGlobal ? agent.globalSkillsDir : path.join(cwd, agent.projectSkillsDir);
|
|
78
|
+
const agentDir = path.join(agentSkillsDir, skillName);
|
|
79
|
+
if (agentDir === canonicalDir)
|
|
80
|
+
continue;
|
|
81
|
+
try {
|
|
82
|
+
rmForce(agentDir);
|
|
83
|
+
fs.mkdirSync(path.dirname(agentDir), { recursive: true });
|
|
84
|
+
const realLinkDir = resolveParent(path.dirname(agentDir));
|
|
85
|
+
const realTarget = resolveParent(canonicalDir);
|
|
86
|
+
const rel = path.relative(realLinkDir, realTarget);
|
|
87
|
+
fs.symlinkSync(rel, agentDir);
|
|
88
|
+
agentInstalls.push({ agent: agent.name, path: agentDir, mode: "symlink" });
|
|
89
|
+
} catch {
|
|
90
|
+
try {
|
|
91
|
+
fs.cpSync(canonicalDir, agentDir, { recursive: true });
|
|
92
|
+
agentInstalls.push({ agent: agent.name, path: agentDir, mode: "copy" });
|
|
93
|
+
} catch {
|
|
94
|
+
hadInstallFailure = true;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
if (!hadInstallFailure) {
|
|
99
|
+
writeState(cacheKey, { hash, agentKey }, runtime);
|
|
100
|
+
}
|
|
101
|
+
return { paths, agents: agentInstalls, updated: true };
|
|
102
|
+
}
|
|
103
|
+
function stalenessCacheKey(name, isGlobal, cwd, canonicalBase) {
|
|
104
|
+
const scope = isGlobal ? `global:${path.resolve(canonicalBase)}` : `local:${path.resolve(cwd)}`;
|
|
105
|
+
const scopeHash = createHash("sha256").update(scope).digest("hex").slice(0, 8);
|
|
106
|
+
return `${name}-${scopeHash}`;
|
|
107
|
+
}
|
|
108
|
+
function hashPath(cacheKey, runtime) {
|
|
109
|
+
const dir = runtime.dataHome();
|
|
110
|
+
return path.join(dir, "bunli", `${cacheKey}-skills.json`);
|
|
111
|
+
}
|
|
112
|
+
function computeAgentKey(agents, canonicalDir, skillName, isGlobal, cwd) {
|
|
113
|
+
const targets = agents.map((agent) => isGlobal ? path.join(agent.globalSkillsDir, skillName) : path.join(cwd, agent.projectSkillsDir, skillName)).filter((target) => target !== canonicalDir).sort();
|
|
114
|
+
return createHash("sha256").update(JSON.stringify(targets)).digest("hex").slice(0, 16);
|
|
115
|
+
}
|
|
116
|
+
function writeState(cacheKey, state, runtime = defaultSyncRuntime) {
|
|
117
|
+
const file = hashPath(cacheKey, runtime);
|
|
118
|
+
const dir = path.dirname(file);
|
|
119
|
+
if (!fs.existsSync(dir))
|
|
120
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
121
|
+
fs.writeFileSync(file, JSON.stringify({ ...state, at: new Date().toISOString() }) + `
|
|
122
|
+
`);
|
|
123
|
+
}
|
|
124
|
+
function readState(cacheKey, runtime = defaultSyncRuntime) {
|
|
125
|
+
try {
|
|
126
|
+
const data = JSON.parse(fs.readFileSync(hashPath(cacheKey, runtime), "utf-8"));
|
|
127
|
+
if (typeof data?.hash !== "string")
|
|
128
|
+
return;
|
|
129
|
+
return {
|
|
130
|
+
hash: data.hash,
|
|
131
|
+
agentKey: typeof data.agentKey === "string" ? data.agentKey : undefined
|
|
132
|
+
};
|
|
133
|
+
} catch {
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
function rmForce(target) {
|
|
138
|
+
try {
|
|
139
|
+
const stat = fs.lstatSync(target);
|
|
140
|
+
if (stat.isSymbolicLink())
|
|
141
|
+
fs.unlinkSync(target);
|
|
142
|
+
else
|
|
143
|
+
fs.rmSync(target, { recursive: true, force: true });
|
|
144
|
+
} catch {}
|
|
145
|
+
}
|
|
146
|
+
function resolveParent(dir) {
|
|
147
|
+
try {
|
|
148
|
+
return fs.realpathSync(dir);
|
|
149
|
+
} catch {
|
|
150
|
+
const parent = path.dirname(dir);
|
|
151
|
+
if (parent === dir)
|
|
152
|
+
return dir;
|
|
153
|
+
try {
|
|
154
|
+
return path.join(fs.realpathSync(parent), path.relative(parent, dir));
|
|
155
|
+
} catch {
|
|
156
|
+
return dir;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
export { syncSkills };
|
|
162
|
+
|
|
163
|
+
//# debugId=04AAAF4D97379D9D64756E2164756E21
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../node_modules/.bun/@bunli+plugin-skills@0.1.0+44deef6f8e4a2f18/node_modules/@bunli/plugin-skills/src/sync.ts", "../../../node_modules/.bun/@bunli+plugin-skills@0.1.0+44deef6f8e4a2f18/node_modules/@bunli/plugin-skills/src/generate.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"import * as fs from 'node:fs'\nimport * as fsp from 'node:fs/promises'\nimport * as os from 'node:os'\nimport * as path from 'node:path'\nimport { createHash } from 'node:crypto'\nimport type { Command } from '@bunli/core'\nimport type { Agent } from './agents.js'\nimport { detectAgents, builtinAgents } from './agents.js'\nimport { generateSkillFile } from './generate.js'\n\nexport interface SyncOptions {\n /** Working directory. Defaults to process.cwd(). */\n cwd?: string\n /** Install globally (~/.agents/skills/) instead of project-local. Defaults to true. */\n global?: boolean\n /** Regenerate and reinstall even when content hash matches. */\n force?: boolean\n /** CLI description for the skill. */\n description?: string\n /** Override detected agents. */\n agents?: Agent[]\n}\n\nexport interface SyncResult {\n /** Canonical install paths. */\n paths: string[]\n /** Per-agent install details. */\n agents: AgentInstall[]\n /** Whether the skill was updated (false if hash matched). */\n updated: boolean\n}\n\nexport interface AgentInstall {\n agent: string\n path: string\n mode: 'symlink' | 'copy'\n}\n\ninterface SyncRuntime {\n homeDir(): string\n dataHome(): string\n}\n\ninterface SyncState {\n hash: string\n agentKey?: string\n}\n\nconst defaultSyncRuntime: SyncRuntime = {\n homeDir: () => os.homedir(),\n dataHome: () => process.env.XDG_DATA_HOME || path.join(os.homedir(), '.local', 'share')\n}\n\n/**\n * Generates SKILL.md and installs to canonical + agent directories.\n * Skips if the hash matches a previous install.\n */\nexport async function syncSkills(\n cliName: string,\n commands: Map<string, Command<any, any>>,\n options: SyncOptions = {},\n runtime: SyncRuntime = defaultSyncRuntime\n): Promise<SyncResult> {\n const {\n global: isGlobal = true,\n force = false,\n description,\n cwd = process.cwd()\n } = options\n const canonicalBase = path.join(isGlobal ? runtime.homeDir() : cwd, '.agents', 'skills')\n const cacheKey = stalenessCacheKey(cliName, isGlobal, cwd, canonicalBase)\n const skillName = cliName.replace(/\\s+/g, '-')\n const canonicalDir = path.join(canonicalBase, skillName)\n const detected = options.agents ?? detectAgents(builtinAgents)\n const agentKey = computeAgentKey(detected, canonicalDir, skillName, isGlobal, cwd)\n\n // Generate content and hash\n const content = generateSkillFile(cliName, commands, { description })\n const hash = createHash('sha256').update(content).digest('hex').slice(0, 16)\n\n // Check staleness\n const prevState = readState(cacheKey, runtime)\n if (!force && prevState?.hash === hash && prevState.agentKey === agentKey) {\n return { paths: [], agents: [], updated: false }\n }\n\n // Write to canonical location\n await fsp.mkdir(canonicalDir, { recursive: true })\n await fsp.writeFile(path.join(canonicalDir, 'SKILL.md'), content)\n const paths = [canonicalDir]\n\n // Create symlinks for non-universal agents\n const agentInstalls: AgentInstall[] = []\n let hadInstallFailure = false\n\n for (const agent of detected) {\n const agentSkillsDir = isGlobal\n ? agent.globalSkillsDir\n : path.join(cwd, agent.projectSkillsDir)\n const agentDir = path.join(agentSkillsDir, skillName)\n\n if (agentDir === canonicalDir) continue\n\n try {\n rmForce(agentDir)\n fs.mkdirSync(path.dirname(agentDir), { recursive: true })\n const realLinkDir = resolveParent(path.dirname(agentDir))\n const realTarget = resolveParent(canonicalDir)\n const rel = path.relative(realLinkDir, realTarget)\n fs.symlinkSync(rel, agentDir)\n agentInstalls.push({ agent: agent.name, path: agentDir, mode: 'symlink' })\n } catch {\n // Fallback to copy\n try {\n fs.cpSync(canonicalDir, agentDir, { recursive: true })\n agentInstalls.push({ agent: agent.name, path: agentDir, mode: 'copy' })\n } catch {\n hadInstallFailure = true\n }\n }\n }\n\n // Do not persist staleness state for partial installs, so failed agent targets retry.\n if (!hadInstallFailure) {\n writeState(cacheKey, { hash, agentKey }, runtime)\n }\n\n return { paths, agents: agentInstalls, updated: true }\n}\n\nfunction stalenessCacheKey(\n name: string,\n isGlobal: boolean,\n cwd: string,\n canonicalBase: string\n): string {\n const scope = isGlobal\n ? `global:${path.resolve(canonicalBase)}`\n : `local:${path.resolve(cwd)}`\n const scopeHash = createHash('sha256').update(scope).digest('hex').slice(0, 8)\n return `${name}-${scopeHash}`\n}\n\n/** Returns the hash file path for a sync target. */\nfunction hashPath(cacheKey: string, runtime: SyncRuntime): string {\n const dir = runtime.dataHome()\n return path.join(dir, 'bunli', `${cacheKey}-skills.json`)\n}\n\nfunction computeAgentKey(\n agents: Agent[],\n canonicalDir: string,\n skillName: string,\n isGlobal: boolean,\n cwd: string\n): string {\n const targets = agents\n .map((agent) => isGlobal ? path.join(agent.globalSkillsDir, skillName) : path.join(cwd, agent.projectSkillsDir, skillName))\n .filter((target) => target !== canonicalDir)\n .sort()\n return createHash('sha256').update(JSON.stringify(targets)).digest('hex').slice(0, 16)\n}\n\nfunction writeState(\n cacheKey: string,\n state: SyncState,\n runtime: SyncRuntime = defaultSyncRuntime\n) {\n const file = hashPath(cacheKey, runtime)\n const dir = path.dirname(file)\n if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true })\n fs.writeFileSync(file, JSON.stringify({ ...state, at: new Date().toISOString() }) + '\\n')\n}\n\nfunction readState(cacheKey: string, runtime: SyncRuntime = defaultSyncRuntime): SyncState | undefined {\n try {\n const data = JSON.parse(fs.readFileSync(hashPath(cacheKey, runtime), 'utf-8'))\n if (typeof data?.hash !== 'string') return undefined\n return {\n hash: data.hash,\n agentKey: typeof data.agentKey === 'string' ? data.agentKey : undefined\n }\n } catch {\n return undefined\n }\n}\n\nfunction rmForce(target: string) {\n try {\n const stat = fs.lstatSync(target)\n if (stat.isSymbolicLink()) fs.unlinkSync(target)\n else fs.rmSync(target, { recursive: true, force: true })\n } catch { /* does not exist */ }\n}\n\nfunction resolveParent(dir: string): string {\n try {\n return fs.realpathSync(dir)\n } catch {\n const parent = path.dirname(dir)\n if (parent === dir) return dir\n try {\n return path.join(fs.realpathSync(parent), path.relative(parent, dir))\n } catch {\n return dir\n }\n }\n}\n",
|
|
6
|
+
"import type { Command, CLIOption } from '@bunli/core'\nimport { renderManifestFull, toJsonSchema, resolveTypeName } from '@bunli/core'\n\n/**\n * Generates a SKILL.md file with frontmatter and command body.\n */\nexport function generateSkillFile(\n cliName: string,\n commands: Map<string, Command<any, any>>,\n options: GenerateOptions = {}\n): string {\n const { description } = options\n const slug = cliName.replace(/\\s+/g, '-')\n\n const frontmatter = renderFrontmatter({\n name: slug,\n ...(description ? { description } : {})\n })\n\n // Build body using manifest renderer\n const body = renderManifestFull(cliName, commands, description)\n\n return `${frontmatter}\\n\\n${body}\\n`\n}\n\n/**\n * Generates a compact SKILL.md for a single command.\n */\nexport function generateCommandSkill(\n cliName: string,\n cmdName: string,\n cmd: Command<any, any>\n): string {\n const fullName = `${cliName} ${cmdName}`\n const slug = fullName.replace(/\\s+/g, '-')\n\n const frontmatter = renderFrontmatter({\n name: slug,\n ...(cmd.description ? { description: cmd.description } : {})\n })\n\n const sections: string[] = [`# ${fullName}`]\n if (cmd.description) sections.push('', cmd.description)\n\n // Options table\n if (cmd.options && Object.keys(cmd.options).length > 0) {\n const rows: string[] = []\n for (const [key, opt] of Object.entries(cmd.options)) {\n const option = opt as CLIOption<any>\n const jsonSchema = toJsonSchema(option.schema)\n const type = resolveTypeName(jsonSchema)\n const def = jsonSchema && jsonSchema.default !== undefined ? String(jsonSchema.default) : ''\n const flag = option.short ? `--${key}, -${option.short}` : `--${key}`\n const desc = option.description ?? ''\n rows.push(`| \\`${flag}\\` | \\`${type}\\` | ${def ? `\\`${def}\\`` : ''} | ${desc} |`)\n }\n sections.push(\n '',\n '## Options',\n '',\n '| Flag | Type | Default | Description |',\n '|------|------|---------|-------------|',\n ...rows\n )\n }\n\n return `${frontmatter}\\n\\n${sections.join('\\n')}\\n`\n}\n\nexport interface GenerateOptions {\n /** CLI description for the skill frontmatter. */\n description?: string\n}\n\nfunction renderFrontmatter(fields: Record<string, string>): string {\n const lines = ['---']\n\n for (const [key, value] of Object.entries(fields)) {\n lines.push(`${key}: ${formatFrontmatterValue(key, value)}`)\n }\n\n lines.push('---')\n return lines.join('\\n')\n}\n\nfunction formatFrontmatterValue(key: string, value: string): string {\n if (key === 'name' && /^[a-z0-9][a-z0-9-]*$/.test(value)) {\n return value\n }\n\n return JSON.stringify(value)\n}\n"
|
|
7
|
+
],
|
|
8
|
+
"mappings": "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",
|
|
9
|
+
"debugId": "04AAAF4D97379D9D64756E2164756E21",
|
|
10
|
+
"names": []
|
|
11
|
+
}
|