@feimacode/open-design-agent-kit 0.1.7 → 0.2.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.
Files changed (48) hide show
  1. package/README.md +72 -20
  2. package/assets/claude-skills/card-twitter/SKILL.md +14 -0
  3. package/assets/claude-skills/open-design/SKILL.md +62 -1
  4. package/assets/claude-skills/open-design/references/remixable-examples.md +29 -1
  5. package/assets/claude-skills/open-design-campaign/SKILL.md +61 -0
  6. package/assets/claude-skills/open-design-deck-from-source/SKILL.md +39 -0
  7. package/assets/claude-skills/open-design-docs/SKILL.md +52 -0
  8. package/assets/claude-skills/open-design-explore/SKILL.md +46 -0
  9. package/assets/claude-skills/open-design-integrations/SKILL.md +40 -0
  10. package/assets/claude-skills/open-design-new/SKILL.md +31 -0
  11. package/assets/claude-skills/open-design-poster/SKILL.md +77 -0
  12. package/assets/claude-skills/open-design-publish/SKILL.md +37 -0
  13. package/assets/claude-skills/open-design-social-post/SKILL.md +54 -0
  14. package/assets/claude-skills/poster-hero/SKILL.md +14 -0
  15. package/assets/claude-skills/social-carousel/SKILL.md +14 -0
  16. package/assets/claude-skills/social-youtube-thumbnail/SKILL.md +14 -0
  17. package/assets/codex-skills/card-twitter/SKILL.md +12 -0
  18. package/assets/codex-skills/card-twitter/agents/openai.yaml +3 -0
  19. package/assets/codex-skills/open-design/SKILL.md +62 -1
  20. package/assets/codex-skills/open-design/references/remixable-examples.md +29 -1
  21. package/assets/codex-skills/open-design-campaign/SKILL.md +60 -0
  22. package/assets/codex-skills/open-design-deck-from-source/SKILL.md +38 -0
  23. package/assets/codex-skills/open-design-docs/SKILL.md +51 -0
  24. package/assets/codex-skills/open-design-explore/SKILL.md +45 -0
  25. package/assets/codex-skills/open-design-integrations/SKILL.md +39 -0
  26. package/assets/codex-skills/open-design-new/SKILL.md +30 -0
  27. package/assets/codex-skills/open-design-poster/SKILL.md +76 -0
  28. package/assets/codex-skills/open-design-publish/SKILL.md +36 -0
  29. package/assets/codex-skills/open-design-social-post/SKILL.md +53 -0
  30. package/assets/codex-skills/poster-hero/SKILL.md +12 -0
  31. package/assets/codex-skills/poster-hero/agents/openai.yaml +3 -0
  32. package/assets/codex-skills/social-carousel/SKILL.md +12 -0
  33. package/assets/codex-skills/social-carousel/agents/openai.yaml +3 -0
  34. package/assets/codex-skills/social-youtube-thumbnail/SKILL.md +12 -0
  35. package/assets/codex-skills/social-youtube-thumbnail/agents/openai.yaml +3 -0
  36. package/out/index.js +187954 -84
  37. package/package.json +8 -4
  38. package/out/claudeSetup.js +0 -91
  39. package/out/claudeSetup.js.map +0 -1
  40. package/out/codexSetup.js +0 -89
  41. package/out/codexSetup.js.map +0 -1
  42. package/out/env.js +0 -47
  43. package/out/env.js.map +0 -1
  44. package/out/index.js.map +0 -1
  45. package/out/skillWriter.js +0 -88
  46. package/out/skillWriter.js.map +0 -1
  47. package/out/toolSelection.js +0 -38
  48. 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.7",
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.",
3
+ "version": "0.2.0",
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": "tsc -p tsconfig.build.json",
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.2.0"
49
+ },
50
+ "devDependencies": {
51
+ "@feimacode/open-design-agent-kit-core": "*"
48
52
  }
49
53
  }
@@ -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
@@ -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
@@ -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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"}
@@ -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
@@ -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"}
@@ -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
@@ -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"}