@feimacode/open-design-agent-kit 0.1.5 → 0.1.8
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 +77 -15
- package/assets/claude-skills/article-magazine/SKILL.md +2 -2
- package/assets/claude-skills/card-twitter/SKILL.md +14 -0
- package/assets/claude-skills/card-xiaohongshu/SKILL.md +2 -2
- package/assets/claude-skills/data-report/SKILL.md +2 -2
- package/assets/claude-skills/deck-guizang-editorial/SKILL.md +2 -2
- package/assets/claude-skills/deck-open-slide-canvas/SKILL.md +2 -2
- package/assets/claude-skills/deck-swiss-international/SKILL.md +2 -2
- package/assets/claude-skills/doc-kami-parchment/SKILL.md +2 -2
- package/assets/claude-skills/frame-data-chart-nyt/SKILL.md +2 -2
- package/assets/claude-skills/frame-flowchart-sticky/SKILL.md +2 -2
- package/assets/claude-skills/frame-glitch-title/SKILL.md +2 -2
- package/assets/claude-skills/frame-light-leak-cinema/SKILL.md +2 -2
- package/assets/claude-skills/frame-liquid-bg-hero/SKILL.md +2 -2
- package/assets/claude-skills/frame-logo-outro/SKILL.md +2 -2
- package/assets/claude-skills/frame-macos-notification/SKILL.md +2 -2
- package/assets/claude-skills/guizang-ppt/SKILL.md +2 -2
- package/assets/claude-skills/mockup-device-3d/SKILL.md +2 -2
- package/assets/claude-skills/open-design/SKILL.md +22 -4
- package/assets/claude-skills/open-design/references/remixable-examples.md +1 -1
- package/assets/claude-skills/open-design-social-post/SKILL.md +52 -0
- package/assets/claude-skills/poster-hero/SKILL.md +14 -0
- package/assets/claude-skills/ppt-keynote/SKILL.md +2 -2
- package/assets/claude-skills/resume-modern/SKILL.md +2 -2
- package/assets/claude-skills/social-carousel/SKILL.md +14 -0
- package/assets/claude-skills/social-reddit-card/SKILL.md +2 -2
- package/assets/claude-skills/social-spotify-card/SKILL.md +2 -2
- package/assets/claude-skills/social-x-post-card/SKILL.md +2 -2
- package/assets/claude-skills/social-youtube-thumbnail/SKILL.md +14 -0
- package/assets/claude-skills/vfx-text-cursor/SKILL.md +2 -2
- package/assets/claude-skills/video-hyperframes/SKILL.md +2 -2
- package/assets/codex-skills/article-magazine/SKILL.md +2 -2
- package/assets/codex-skills/card-twitter/SKILL.md +12 -0
- package/assets/codex-skills/card-twitter/agents/openai.yaml +3 -0
- package/assets/codex-skills/card-xiaohongshu/SKILL.md +2 -2
- package/assets/codex-skills/data-report/SKILL.md +2 -2
- package/assets/codex-skills/deck-guizang-editorial/SKILL.md +2 -2
- package/assets/codex-skills/deck-open-slide-canvas/SKILL.md +2 -2
- package/assets/codex-skills/deck-swiss-international/SKILL.md +2 -2
- package/assets/codex-skills/doc-kami-parchment/SKILL.md +2 -2
- package/assets/codex-skills/frame-data-chart-nyt/SKILL.md +2 -2
- package/assets/codex-skills/frame-flowchart-sticky/SKILL.md +2 -2
- package/assets/codex-skills/frame-glitch-title/SKILL.md +2 -2
- package/assets/codex-skills/frame-light-leak-cinema/SKILL.md +2 -2
- package/assets/codex-skills/frame-liquid-bg-hero/SKILL.md +2 -2
- package/assets/codex-skills/frame-logo-outro/SKILL.md +2 -2
- package/assets/codex-skills/frame-macos-notification/SKILL.md +2 -2
- package/assets/codex-skills/guizang-ppt/SKILL.md +2 -2
- package/assets/codex-skills/mockup-device-3d/SKILL.md +2 -2
- package/assets/codex-skills/open-design/SKILL.md +22 -4
- package/assets/codex-skills/open-design/references/remixable-examples.md +1 -1
- package/assets/codex-skills/open-design-social-post/SKILL.md +51 -0
- package/assets/codex-skills/poster-hero/SKILL.md +12 -0
- package/assets/codex-skills/poster-hero/agents/openai.yaml +3 -0
- package/assets/codex-skills/ppt-keynote/SKILL.md +2 -2
- package/assets/codex-skills/resume-modern/SKILL.md +2 -2
- package/assets/codex-skills/social-carousel/SKILL.md +12 -0
- package/assets/codex-skills/social-carousel/agents/openai.yaml +3 -0
- package/assets/codex-skills/social-reddit-card/SKILL.md +2 -2
- package/assets/codex-skills/social-spotify-card/SKILL.md +2 -2
- package/assets/codex-skills/social-x-post-card/SKILL.md +2 -2
- package/assets/codex-skills/social-youtube-thumbnail/SKILL.md +12 -0
- package/assets/codex-skills/social-youtube-thumbnail/agents/openai.yaml +3 -0
- package/assets/codex-skills/vfx-text-cursor/SKILL.md +2 -2
- package/assets/codex-skills/video-hyperframes/SKILL.md +2 -2
- package/out/index.js +130071 -83
- package/package.json +8 -4
- package/out/claudeSetup.js +0 -91
- package/out/claudeSetup.js.map +0 -1
- package/out/codexSetup.js +0 -89
- package/out/codexSetup.js.map +0 -1
- package/out/env.js +0 -47
- package/out/env.js.map +0 -1
- package/out/index.js.map +0 -1
- package/out/skillWriter.js +0 -88
- package/out/skillWriter.js.map +0 -1
- package/out/toolSelection.js +0 -38
- package/out/toolSelection.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@feimacode/open-design-agent-kit",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "npx @feimacode/open-design-agent-kit init — sets up
|
|
3
|
+
"version": "0.1.8",
|
|
4
|
+
"description": "npx @feimacode/open-design-agent-kit init — sets up Open Design's Claude Code and/or Codex integration directly in your own project, no marketplace or manual copying required. Also `export` (artifact → upload-ready PNG/JPEG) and `render-video` (HyperFrames → MP4) for scripted social-post pipelines.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"engines": {
|
|
7
7
|
"node": ">=18"
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
],
|
|
37
37
|
"scripts": {
|
|
38
38
|
"copy-skill-content": "node ./scripts/copy-skill-content.mjs",
|
|
39
|
-
"compile": "
|
|
39
|
+
"compile": "tsx .esbuild.ts",
|
|
40
40
|
"typecheck": "tsc -p . --noEmit",
|
|
41
41
|
"lint": "eslint src --ext ts && node ./scripts/check-cli-assets-sync.mjs",
|
|
42
42
|
"test:unit": "mocha --require tsx/cjs 'src/test/unit/**/*.test.ts' --timeout 5000"
|
|
@@ -44,6 +44,10 @@
|
|
|
44
44
|
"dependencies": {
|
|
45
45
|
"@inquirer/prompts": "^7.8.0",
|
|
46
46
|
"commander": "^14.0.0",
|
|
47
|
-
"smol-toml": "^1.8.0"
|
|
47
|
+
"smol-toml": "^1.8.0",
|
|
48
|
+
"@feimacode/open-design-agent-kit-content": "^0.1.8"
|
|
49
|
+
},
|
|
50
|
+
"devDependencies": {
|
|
51
|
+
"@feimacode/open-design-agent-kit-core": "*"
|
|
48
52
|
}
|
|
49
53
|
}
|
package/out/claudeSetup.js
DELETED
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.MalformedMcpJsonError = void 0;
|
|
37
|
-
exports.writeClaudeSkills = writeClaudeSkills;
|
|
38
|
-
exports.mergeClaudeMcpConfig = mergeClaudeMcpConfig;
|
|
39
|
-
const node_fs_1 = require("node:fs");
|
|
40
|
-
const path = __importStar(require("node:path"));
|
|
41
|
-
const skillWriter_1 = require("./skillWriter");
|
|
42
|
-
/** Writes the bundled Claude Code skill content into `<targetPath>/.claude/skills/`. */
|
|
43
|
-
async function writeClaudeSkills(targetPath, assetRoot) {
|
|
44
|
-
return (0, skillWriter_1.writeSkillTree)(path.join(targetPath, '.claude', 'skills'), assetRoot);
|
|
45
|
-
}
|
|
46
|
-
const OPEN_DESIGN_MCP_ENTRY = {
|
|
47
|
-
command: 'npx',
|
|
48
|
-
args: ['-y', '@feimacode/open-design-agent-kit-mcp'],
|
|
49
|
-
};
|
|
50
|
-
class MalformedMcpJsonError extends Error {
|
|
51
|
-
constructor(mcpJsonPath, cause) {
|
|
52
|
-
super(`Could not parse existing ${mcpJsonPath} as JSON: ${cause instanceof Error ? cause.message : String(cause)}`);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
exports.MalformedMcpJsonError = MalformedMcpJsonError;
|
|
56
|
-
async function pathExists(p) {
|
|
57
|
-
try {
|
|
58
|
-
await node_fs_1.promises.access(p);
|
|
59
|
-
return true;
|
|
60
|
-
}
|
|
61
|
-
catch {
|
|
62
|
-
return false;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Merges an `open-design` entry into `<targetPath>/.mcp.json`'s `mcpServers`,
|
|
67
|
-
* preserving every other key untouched. Creates the file fresh if absent.
|
|
68
|
-
* Safe to do as a real parse-merge-write (unlike the Codex/TOML case) since
|
|
69
|
-
* JSON has no comments or meaningful formatting to lose.
|
|
70
|
-
*/
|
|
71
|
-
async function mergeClaudeMcpConfig(targetPath) {
|
|
72
|
-
const mcpJsonPath = path.join(targetPath, '.mcp.json');
|
|
73
|
-
let config = {};
|
|
74
|
-
let created = true;
|
|
75
|
-
if (await pathExists(mcpJsonPath)) {
|
|
76
|
-
created = false;
|
|
77
|
-
const raw = await node_fs_1.promises.readFile(mcpJsonPath, 'utf8');
|
|
78
|
-
try {
|
|
79
|
-
config = raw.trim().length > 0 ? JSON.parse(raw) : {};
|
|
80
|
-
}
|
|
81
|
-
catch (err) {
|
|
82
|
-
throw new MalformedMcpJsonError(mcpJsonPath, err);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
const mcpServers = config.mcpServers ?? {};
|
|
86
|
-
mcpServers['open-design'] = OPEN_DESIGN_MCP_ENTRY;
|
|
87
|
-
config.mcpServers = mcpServers;
|
|
88
|
-
await node_fs_1.promises.writeFile(mcpJsonPath, JSON.stringify(config, null, 2) + '\n', 'utf8');
|
|
89
|
-
return { created };
|
|
90
|
-
}
|
|
91
|
-
//# sourceMappingURL=claudeSetup.js.map
|
package/out/claudeSetup.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"claudeSetup.js","sourceRoot":"","sources":["../src/claudeSetup.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,8CAEC;AA4BD,oDAqBC;AAxDD,qCAAyC;AACzC,gDAAkC;AAClC,+CAA+C;AAE/C,wFAAwF;AACjF,KAAK,UAAU,iBAAiB,CAAC,UAAkB,EAAE,SAAiB;IAC3E,OAAO,IAAA,4BAAc,EAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,qBAAqB,GAAG;IAC5B,OAAO,EAAE,KAAK;IACd,IAAI,EAAE,CAAC,IAAI,EAAE,sCAAsC,CAAC;CACrD,CAAC;AAEF,MAAa,qBAAsB,SAAQ,KAAK;IAC9C,YAAY,WAAmB,EAAE,KAAc;QAC7C,KAAK,CAAC,4BAA4B,WAAW,aAAa,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACtH,CAAC;CACF;AAJD,sDAIC;AAED,KAAK,UAAU,UAAU,CAAC,CAAS;IACjC,IAAI,CAAC;QACH,MAAM,kBAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,oBAAoB,CAAC,UAAkB;IAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAEvD,IAAI,MAAM,GAA4B,EAAE,CAAC;IACzC,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,IAAI,MAAM,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAClC,OAAO,GAAG,KAAK,CAAC;QAChB,MAAM,GAAG,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,qBAAqB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAI,MAAM,CAAC,UAAkD,IAAI,EAAE,CAAC;IACpF,UAAU,CAAC,aAAa,CAAC,GAAG,qBAAqB,CAAC;IAClD,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;IAE/B,MAAM,kBAAE,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;IAChF,OAAO,EAAE,OAAO,EAAE,CAAC;AACrB,CAAC"}
|
package/out/codexSetup.js
DELETED
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.CODEX_CONFIG_SNIPPET = void 0;
|
|
37
|
-
exports.writeCodexSkills = writeCodexSkills;
|
|
38
|
-
exports.ensureCodexMcpConfig = ensureCodexMcpConfig;
|
|
39
|
-
const node_fs_1 = require("node:fs");
|
|
40
|
-
const path = __importStar(require("node:path"));
|
|
41
|
-
const smol_toml_1 = require("smol-toml");
|
|
42
|
-
const skillWriter_1 = require("./skillWriter");
|
|
43
|
-
/** Writes the bundled Codex skill content into `<targetPath>/.agents/skills/`. */
|
|
44
|
-
async function writeCodexSkills(targetPath, assetRoot) {
|
|
45
|
-
return (0, skillWriter_1.writeSkillTree)(path.join(targetPath, '.agents', 'skills'), assetRoot);
|
|
46
|
-
}
|
|
47
|
-
async function pathExists(p) {
|
|
48
|
-
try {
|
|
49
|
-
await node_fs_1.promises.access(p);
|
|
50
|
-
return true;
|
|
51
|
-
}
|
|
52
|
-
catch {
|
|
53
|
-
return false;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
exports.CODEX_CONFIG_SNIPPET = `[mcp_servers.open-design]
|
|
57
|
-
command = "npx"
|
|
58
|
-
args = ["-y", "@feimacode/open-design-agent-kit-mcp"]
|
|
59
|
-
`;
|
|
60
|
-
/**
|
|
61
|
-
* Writes `<targetPath>/.codex/config.toml` with the open-design MCP server
|
|
62
|
-
* registration ONLY when that file doesn't already exist. When it does,
|
|
63
|
-
* this NEVER parses-and-rewrites it — every JS TOML library re-serializes
|
|
64
|
-
* from a plain data structure on write, with no guarantee of preserving the
|
|
65
|
-
* user's original comments/formatting, and this file may be hand-curated.
|
|
66
|
-
* It's parsed read-only, purely to report whether open-design is already
|
|
67
|
-
* registered there or still needs to be added by hand.
|
|
68
|
-
*/
|
|
69
|
-
async function ensureCodexMcpConfig(targetPath) {
|
|
70
|
-
const configPath = path.join(targetPath, '.codex', 'config.toml');
|
|
71
|
-
if (!(await pathExists(configPath))) {
|
|
72
|
-
await node_fs_1.promises.mkdir(path.dirname(configPath), { recursive: true });
|
|
73
|
-
await node_fs_1.promises.writeFile(configPath, exports.CODEX_CONFIG_SNIPPET, 'utf8');
|
|
74
|
-
return { outcome: 'created' };
|
|
75
|
-
}
|
|
76
|
-
const raw = await node_fs_1.promises.readFile(configPath, 'utf8');
|
|
77
|
-
try {
|
|
78
|
-
const parsed = (0, smol_toml_1.parse)(raw);
|
|
79
|
-
if (parsed.mcp_servers && Object.prototype.hasOwnProperty.call(parsed.mcp_servers, 'open-design')) {
|
|
80
|
-
return { outcome: 'already-registered', configPath };
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
catch {
|
|
84
|
-
// Malformed existing TOML: still never rewritten — fall through to
|
|
85
|
-
// "needs-manual-edit" so the user gets the snippet either way.
|
|
86
|
-
}
|
|
87
|
-
return { outcome: 'needs-manual-edit', configPath };
|
|
88
|
-
}
|
|
89
|
-
//# sourceMappingURL=codexSetup.js.map
|
package/out/codexSetup.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"codexSetup.js","sourceRoot":"","sources":["../src/codexSetup.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,4CAEC;AA8BD,oDAoBC;AA1DD,qCAAyC;AACzC,gDAAkC;AAClC,yCAAkC;AAClC,+CAA+C;AAE/C,kFAAkF;AAC3E,KAAK,UAAU,gBAAgB,CAAC,UAAkB,EAAE,SAAiB;IAC1E,OAAO,IAAA,4BAAc,EAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC;AAC/E,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,CAAS;IACjC,IAAI,CAAC;QACH,MAAM,kBAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAEY,QAAA,oBAAoB,GAAG;;;CAGnC,CAAC;AAOF;;;;;;;;GAQG;AACI,KAAK,UAAU,oBAAoB,CAAC,UAAkB;IAC3D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;IAElE,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QACpC,MAAM,kBAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9D,MAAM,kBAAE,CAAC,SAAS,CAAC,UAAU,EAAE,4BAAoB,EAAE,MAAM,CAAC,CAAC;QAC7D,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IAChC,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAClD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAA,iBAAK,EAAC,GAAG,CAA8C,CAAC;QACvE,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC,EAAE,CAAC;YAClG,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,CAAC;QACvD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,mEAAmE;QACnE,+DAA+D;IACjE,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,CAAC;AACtD,CAAC"}
|
package/out/env.js
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.getClaudeSkillsAssetRoot = getClaudeSkillsAssetRoot;
|
|
37
|
-
exports.getCodexSkillsAssetRoot = getCodexSkillsAssetRoot;
|
|
38
|
-
const path = __importStar(require("node:path"));
|
|
39
|
-
/** Absolute path to the bundled Claude Code skill content (assets/claude-skills). */
|
|
40
|
-
function getClaudeSkillsAssetRoot() {
|
|
41
|
-
return path.join(__dirname, '..', 'assets', 'claude-skills');
|
|
42
|
-
}
|
|
43
|
-
/** Absolute path to the bundled Codex skill content (assets/codex-skills). */
|
|
44
|
-
function getCodexSkillsAssetRoot() {
|
|
45
|
-
return path.join(__dirname, '..', 'assets', 'codex-skills');
|
|
46
|
-
}
|
|
47
|
-
//# sourceMappingURL=env.js.map
|
package/out/env.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,4DAEC;AAGD,0DAEC;AAVD,gDAAkC;AAElC,qFAAqF;AACrF,SAAgB,wBAAwB;IACtC,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;AAC/D,CAAC;AAED,8EAA8E;AAC9E,SAAgB,uBAAuB;IACrC,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;AAC9D,CAAC"}
|
package/out/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/out/skillWriter.js
DELETED
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.writeSkillTree = writeSkillTree;
|
|
37
|
-
const node_fs_1 = require("node:fs");
|
|
38
|
-
const path = __importStar(require("node:path"));
|
|
39
|
-
// Same marker generate-claude-skills.mjs/generate-codex-skills.mjs stamp
|
|
40
|
-
// into every skill they generate — reused here so this CLI's own
|
|
41
|
-
// regeneration can tell "a directory we wrote last time" from "a skill the
|
|
42
|
-
// user added by hand" in the target project, without ever risking deleting
|
|
43
|
-
// the latter.
|
|
44
|
-
const GENERATED_MARKER = '<!-- generated:open-design-agent-kit -->';
|
|
45
|
-
async function pathExists(p) {
|
|
46
|
-
try {
|
|
47
|
-
await node_fs_1.promises.access(p);
|
|
48
|
-
return true;
|
|
49
|
-
}
|
|
50
|
-
catch {
|
|
51
|
-
return false;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
async function isGeneratedSkillDir(dir) {
|
|
55
|
-
const skillMd = path.join(dir, 'SKILL.md');
|
|
56
|
-
if (!(await pathExists(skillMd)))
|
|
57
|
-
return false;
|
|
58
|
-
return (await node_fs_1.promises.readFile(skillMd, 'utf8')).includes(GENERATED_MARKER);
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Writes a bundled skill-directory tree (each top-level entry a
|
|
62
|
-
* `<id>/SKILL.md`, optionally with sibling files like `agents/openai.yaml`)
|
|
63
|
-
* into `skillsDir`. Fully regenerates every run — the content is ours, not
|
|
64
|
-
* the user's — but only ever removes a stale directory that carries our own
|
|
65
|
-
* generated marker; a skill the user created by hand under the same
|
|
66
|
-
* location is left untouched.
|
|
67
|
-
*/
|
|
68
|
-
async function writeSkillTree(skillsDir, assetRoot) {
|
|
69
|
-
await node_fs_1.promises.mkdir(skillsDir, { recursive: true });
|
|
70
|
-
const existing = await node_fs_1.promises.readdir(skillsDir, { withFileTypes: true }).catch(() => []);
|
|
71
|
-
for (const entry of existing) {
|
|
72
|
-
if (!entry.isDirectory())
|
|
73
|
-
continue;
|
|
74
|
-
const dir = path.join(skillsDir, entry.name);
|
|
75
|
-
if (await isGeneratedSkillDir(dir))
|
|
76
|
-
await node_fs_1.promises.rm(dir, { recursive: true, force: true });
|
|
77
|
-
}
|
|
78
|
-
const sourceDirs = await node_fs_1.promises.readdir(assetRoot, { withFileTypes: true });
|
|
79
|
-
let writtenCount = 0;
|
|
80
|
-
for (const entry of sourceDirs) {
|
|
81
|
-
if (!entry.isDirectory())
|
|
82
|
-
continue;
|
|
83
|
-
await node_fs_1.promises.cp(path.join(assetRoot, entry.name), path.join(skillsDir, entry.name), { recursive: true });
|
|
84
|
-
writtenCount++;
|
|
85
|
-
}
|
|
86
|
-
return { writtenCount };
|
|
87
|
-
}
|
|
88
|
-
//# sourceMappingURL=skillWriter.js.map
|
package/out/skillWriter.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"skillWriter.js","sourceRoot":"","sources":["../src/skillWriter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCA,wCAmBC;AApDD,qCAAyC;AACzC,gDAAkC;AAElC,yEAAyE;AACzE,iEAAiE;AACjE,2EAA2E;AAC3E,2EAA2E;AAC3E,cAAc;AACd,MAAM,gBAAgB,GAAG,0CAA0C,CAAC;AAEpE,KAAK,UAAU,UAAU,CAAC,CAAS;IACjC,IAAI,CAAC;QACH,MAAM,kBAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,GAAW;IAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAC3C,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/C,OAAO,CAAC,MAAM,kBAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;AACzE,CAAC;AAED;;;;;;;GAOG;AACI,KAAK,UAAU,cAAc,CAAC,SAAiB,EAAE,SAAiB;IACvE,MAAM,kBAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE/C,MAAM,QAAQ,GAAG,MAAM,kBAAE,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IACtF,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YAAE,SAAS;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,MAAM,mBAAmB,CAAC,GAAG,CAAC;YAAE,MAAM,kBAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACzF,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,kBAAE,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACxE,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YAAE,SAAS;QACnC,MAAM,kBAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACrG,YAAY,EAAE,CAAC;IACjB,CAAC;IAED,OAAO,EAAE,YAAY,EAAE,CAAC;AAC1B,CAAC"}
|
package/out/toolSelection.js
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.InvalidToolsArgError = exports.ALL_TOOL_IDS = void 0;
|
|
4
|
-
exports.parseToolsArg = parseToolsArg;
|
|
5
|
-
exports.buildToolChoices = buildToolChoices;
|
|
6
|
-
exports.ALL_TOOL_IDS = ['claude', 'codex'];
|
|
7
|
-
class InvalidToolsArgError extends Error {
|
|
8
|
-
constructor(bad) {
|
|
9
|
-
super(`Unknown tool id(s): ${bad.join(', ')}. Valid values: ${exports.ALL_TOOL_IDS.join(', ')}, all`);
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
exports.InvalidToolsArgError = InvalidToolsArgError;
|
|
13
|
-
/**
|
|
14
|
-
* Parses a `--tools` flag value ("all", or a comma-separated list of tool
|
|
15
|
-
* ids) into a de-duplicated list of valid ToolIds. Throws InvalidToolsArgError
|
|
16
|
-
* on any unrecognized id, rather than silently ignoring a typo.
|
|
17
|
-
*/
|
|
18
|
-
function parseToolsArg(raw) {
|
|
19
|
-
const trimmed = raw.trim();
|
|
20
|
-
if (trimmed.toLowerCase() === 'all')
|
|
21
|
-
return [...exports.ALL_TOOL_IDS];
|
|
22
|
-
const requested = trimmed
|
|
23
|
-
.split(',')
|
|
24
|
-
.map((s) => s.trim().toLowerCase())
|
|
25
|
-
.filter((s) => s.length > 0);
|
|
26
|
-
const bad = requested.filter((id) => !exports.ALL_TOOL_IDS.includes(id));
|
|
27
|
-
if (bad.length > 0)
|
|
28
|
-
throw new InvalidToolsArgError(bad);
|
|
29
|
-
return [...new Set(requested)];
|
|
30
|
-
}
|
|
31
|
-
/** Choices for the interactive checkbox prompt — both pre-selected by default. */
|
|
32
|
-
function buildToolChoices() {
|
|
33
|
-
return [
|
|
34
|
-
{ name: 'Claude Code', value: 'claude', checked: true },
|
|
35
|
-
{ name: 'Codex CLI', value: 'codex', checked: true },
|
|
36
|
-
];
|
|
37
|
-
}
|
|
38
|
-
//# sourceMappingURL=toolSelection.js.map
|
package/out/toolSelection.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"toolSelection.js","sourceRoot":"","sources":["../src/toolSelection.ts"],"names":[],"mappings":";;;AAcA,sCAaC;AASD,4CAKC;AAxCY,QAAA,YAAY,GAAsB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAEnE,MAAa,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,GAAa;QACvB,KAAK,CAAC,uBAAuB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,oBAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChG,CAAC;CACF;AAJD,oDAIC;AAED;;;;GAIG;AACH,SAAgB,aAAa,CAAC,GAAW;IACvC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,OAAO,CAAC,WAAW,EAAE,KAAK,KAAK;QAAE,OAAO,CAAC,GAAG,oBAAY,CAAC,CAAC;IAE9D,MAAM,SAAS,GAAG,OAAO;SACtB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAClC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE/B,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,oBAAY,CAAC,QAAQ,CAAC,EAAY,CAAC,CAAC,CAAC;IAC3E,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAExD,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAa,CAAC;AAC7C,CAAC;AAQD,kFAAkF;AAClF,SAAgB,gBAAgB;IAC9B,OAAO;QACL,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE;QACvD,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;KACrD,CAAC;AACJ,CAAC"}
|