craftdesk 0.3.0 → 0.5.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 (215) hide show
  1. package/CHANGELOG.md +88 -0
  2. package/README.md +1609 -132
  3. package/dist/commands/add.d.ts +5 -0
  4. package/dist/commands/add.d.ts.map +1 -1
  5. package/dist/commands/add.js +306 -8
  6. package/dist/commands/add.js.map +1 -1
  7. package/dist/commands/convert.d.ts +8 -0
  8. package/dist/commands/convert.d.ts.map +1 -0
  9. package/dist/commands/convert.js +146 -0
  10. package/dist/commands/convert.js.map +1 -0
  11. package/dist/commands/detect-agents.d.ts +14 -0
  12. package/dist/commands/detect-agents.d.ts.map +1 -0
  13. package/dist/commands/detect-agents.js +86 -0
  14. package/dist/commands/detect-agents.js.map +1 -0
  15. package/dist/commands/embed.d.ts +14 -0
  16. package/dist/commands/embed.d.ts.map +1 -0
  17. package/dist/commands/embed.js +147 -0
  18. package/dist/commands/embed.js.map +1 -0
  19. package/dist/commands/info.d.ts +8 -0
  20. package/dist/commands/info.d.ts.map +1 -0
  21. package/dist/commands/info.js +66 -0
  22. package/dist/commands/info.js.map +1 -0
  23. package/dist/commands/init.d.ts +5 -0
  24. package/dist/commands/init.d.ts.map +1 -1
  25. package/dist/commands/init.js +8 -2
  26. package/dist/commands/init.js.map +1 -1
  27. package/dist/commands/install.d.ts +5 -0
  28. package/dist/commands/install.d.ts.map +1 -1
  29. package/dist/commands/install.js +24 -4
  30. package/dist/commands/install.js.map +1 -1
  31. package/dist/commands/list.d.ts +5 -0
  32. package/dist/commands/list.d.ts.map +1 -1
  33. package/dist/commands/list.js +75 -7
  34. package/dist/commands/list.js.map +1 -1
  35. package/dist/commands/login.d.ts +8 -0
  36. package/dist/commands/login.d.ts.map +1 -0
  37. package/dist/commands/login.js +158 -0
  38. package/dist/commands/login.js.map +1 -0
  39. package/dist/commands/logout.d.ts +8 -0
  40. package/dist/commands/logout.d.ts.map +1 -0
  41. package/dist/commands/logout.js +51 -0
  42. package/dist/commands/logout.js.map +1 -0
  43. package/dist/commands/outdated.d.ts +23 -0
  44. package/dist/commands/outdated.d.ts.map +1 -0
  45. package/dist/commands/outdated.js +268 -0
  46. package/dist/commands/outdated.js.map +1 -0
  47. package/dist/commands/publish.d.ts +8 -0
  48. package/dist/commands/publish.d.ts.map +1 -0
  49. package/dist/commands/publish.js +203 -0
  50. package/dist/commands/publish.js.map +1 -0
  51. package/dist/commands/remove.d.ts +5 -0
  52. package/dist/commands/remove.d.ts.map +1 -1
  53. package/dist/commands/remove.js +51 -10
  54. package/dist/commands/remove.js.map +1 -1
  55. package/dist/commands/search.d.ts +8 -0
  56. package/dist/commands/search.d.ts.map +1 -0
  57. package/dist/commands/search.js +60 -0
  58. package/dist/commands/search.js.map +1 -0
  59. package/dist/commands/setup-multi-agent.d.ts +17 -0
  60. package/dist/commands/setup-multi-agent.d.ts.map +1 -0
  61. package/dist/commands/setup-multi-agent.js +188 -0
  62. package/dist/commands/setup-multi-agent.js.map +1 -0
  63. package/dist/commands/sync.d.ts +14 -0
  64. package/dist/commands/sync.d.ts.map +1 -0
  65. package/dist/commands/sync.js +144 -0
  66. package/dist/commands/sync.js.map +1 -0
  67. package/dist/commands/unembed.d.ts +14 -0
  68. package/dist/commands/unembed.d.ts.map +1 -0
  69. package/dist/commands/unembed.js +96 -0
  70. package/dist/commands/unembed.js.map +1 -0
  71. package/dist/commands/update.d.ts +8 -0
  72. package/dist/commands/update.d.ts.map +1 -0
  73. package/dist/commands/update.js +372 -0
  74. package/dist/commands/update.js.map +1 -0
  75. package/dist/commands/verify.d.ts +14 -0
  76. package/dist/commands/verify.d.ts.map +1 -0
  77. package/dist/commands/verify.js +143 -0
  78. package/dist/commands/verify.js.map +1 -0
  79. package/dist/commands/whoami.d.ts +8 -0
  80. package/dist/commands/whoami.d.ts.map +1 -0
  81. package/dist/commands/whoami.js +58 -0
  82. package/dist/commands/whoami.js.map +1 -0
  83. package/dist/converters/base-converter.d.ts +89 -0
  84. package/dist/converters/base-converter.d.ts.map +1 -0
  85. package/dist/converters/base-converter.js +249 -0
  86. package/dist/converters/base-converter.js.map +1 -0
  87. package/dist/converters/continue-converter.d.ts +53 -0
  88. package/dist/converters/continue-converter.d.ts.map +1 -0
  89. package/dist/converters/continue-converter.js +243 -0
  90. package/dist/converters/continue-converter.js.map +1 -0
  91. package/dist/converters/cursor-converter.d.ts +70 -0
  92. package/dist/converters/cursor-converter.d.ts.map +1 -0
  93. package/dist/converters/cursor-converter.js +272 -0
  94. package/dist/converters/cursor-converter.js.map +1 -0
  95. package/dist/index.js +56 -3
  96. package/dist/index.js.map +1 -1
  97. package/dist/services/agent-detector.d.ts +57 -0
  98. package/dist/services/agent-detector.d.ts.map +1 -0
  99. package/dist/services/agent-detector.js +146 -0
  100. package/dist/services/agent-detector.js.map +1 -0
  101. package/dist/services/config-manager.d.ts +128 -10
  102. package/dist/services/config-manager.d.ts.map +1 -1
  103. package/dist/services/config-manager.js +190 -18
  104. package/dist/services/config-manager.js.map +1 -1
  105. package/dist/services/converter.d.ts +53 -0
  106. package/dist/services/converter.d.ts.map +1 -0
  107. package/dist/services/converter.js +185 -0
  108. package/dist/services/converter.js.map +1 -0
  109. package/dist/services/craft-wrapper.d.ts +108 -0
  110. package/dist/services/craft-wrapper.d.ts.map +1 -0
  111. package/dist/services/craft-wrapper.js +268 -0
  112. package/dist/services/craft-wrapper.js.map +1 -0
  113. package/dist/services/git-resolver.d.ts +9 -3
  114. package/dist/services/git-resolver.d.ts.map +1 -1
  115. package/dist/services/git-resolver.js +44 -20
  116. package/dist/services/git-resolver.js.map +1 -1
  117. package/dist/services/gitignore-manager.d.ts +74 -0
  118. package/dist/services/gitignore-manager.d.ts.map +1 -0
  119. package/dist/services/gitignore-manager.js +188 -0
  120. package/dist/services/gitignore-manager.js.map +1 -0
  121. package/dist/services/installer.d.ts +60 -1
  122. package/dist/services/installer.d.ts.map +1 -1
  123. package/dist/services/installer.js +295 -20
  124. package/dist/services/installer.js.map +1 -1
  125. package/dist/services/multi-agent-sync.d.ts +88 -0
  126. package/dist/services/multi-agent-sync.d.ts.map +1 -0
  127. package/dist/services/multi-agent-sync.js +316 -0
  128. package/dist/services/multi-agent-sync.js.map +1 -0
  129. package/dist/services/plugin-resolver.d.ts +80 -0
  130. package/dist/services/plugin-resolver.d.ts.map +1 -0
  131. package/dist/services/plugin-resolver.js +183 -0
  132. package/dist/services/plugin-resolver.js.map +1 -0
  133. package/dist/services/registry-client.d.ts +132 -5
  134. package/dist/services/registry-client.d.ts.map +1 -1
  135. package/dist/services/registry-client.js +239 -34
  136. package/dist/services/registry-client.js.map +1 -1
  137. package/dist/services/settings-manager.d.ts +151 -0
  138. package/dist/services/settings-manager.d.ts.map +1 -0
  139. package/dist/services/settings-manager.js +333 -0
  140. package/dist/services/settings-manager.js.map +1 -0
  141. package/dist/types/claude-settings.d.ts +155 -0
  142. package/dist/types/claude-settings.d.ts.map +1 -0
  143. package/dist/types/claude-settings.js +20 -0
  144. package/dist/types/claude-settings.js.map +1 -0
  145. package/dist/types/converter.d.ts +98 -0
  146. package/dist/types/converter.d.ts.map +1 -0
  147. package/dist/types/converter.js +6 -0
  148. package/dist/types/converter.js.map +1 -0
  149. package/dist/types/craftdesk-json.d.ts +76 -3
  150. package/dist/types/craftdesk-json.d.ts.map +1 -1
  151. package/dist/types/craftdesk-lock.d.ts +62 -1
  152. package/dist/types/craftdesk-lock.d.ts.map +1 -1
  153. package/dist/types/multi-agent.d.ts +85 -0
  154. package/dist/types/multi-agent.d.ts.map +1 -0
  155. package/dist/types/multi-agent.js +6 -0
  156. package/dist/types/multi-agent.js.map +1 -0
  157. package/dist/utils/crypto.d.ts +23 -0
  158. package/dist/utils/crypto.d.ts.map +1 -0
  159. package/dist/utils/crypto.js +52 -0
  160. package/dist/utils/crypto.js.map +1 -0
  161. package/dist/utils/file-system.d.ts +43 -0
  162. package/dist/utils/file-system.d.ts.map +1 -1
  163. package/dist/utils/file-system.js +45 -2
  164. package/dist/utils/file-system.js.map +1 -1
  165. package/dist/utils/logger.d.ts +75 -0
  166. package/dist/utils/logger.d.ts.map +1 -1
  167. package/dist/utils/logger.js +76 -1
  168. package/dist/utils/logger.js.map +1 -1
  169. package/dist/utils/version-utils.d.ts +63 -0
  170. package/dist/utils/version-utils.d.ts.map +1 -0
  171. package/dist/utils/version-utils.js +130 -0
  172. package/dist/utils/version-utils.js.map +1 -0
  173. package/package.json +36 -9
  174. package/.claude/settings.local.json +0 -19
  175. package/.github/workflows/ci.yml +0 -94
  176. package/API.md +0 -414
  177. package/TESTING.md +0 -263
  178. package/dist/commands/config.d.ts +0 -3
  179. package/dist/commands/config.d.ts.map +0 -1
  180. package/dist/commands/config.js +0 -56
  181. package/dist/commands/config.js.map +0 -1
  182. package/dist/types/config.d.ts +0 -17
  183. package/dist/types/config.d.ts.map +0 -1
  184. package/dist/types/config.js +0 -3
  185. package/dist/types/config.js.map +0 -1
  186. package/docs/DEPENDENCY_RESOLUTION.md +0 -237
  187. package/examples/craftdesk-all-sources.json +0 -79
  188. package/examples/craftdesk-git-monorepo.json +0 -41
  189. package/examples/craftdesk-multi-registry.json +0 -40
  190. package/examples/craftdesk-with-registries.json +0 -49
  191. package/examples/simple-craftdesk.json +0 -10
  192. package/src/commands/add.ts +0 -314
  193. package/src/commands/init.ts +0 -55
  194. package/src/commands/install.ts +0 -126
  195. package/src/commands/list.ts +0 -126
  196. package/src/commands/remove.ts +0 -82
  197. package/src/index.ts +0 -56
  198. package/src/services/config-manager.ts +0 -150
  199. package/src/services/git-resolver.ts +0 -373
  200. package/src/services/installer.ts +0 -314
  201. package/src/services/registry-client.ts +0 -163
  202. package/src/types/craftdesk-json.ts +0 -53
  203. package/src/types/craftdesk-lock.ts +0 -38
  204. package/src/utils/file-system.ts +0 -55
  205. package/src/utils/logger.ts +0 -82
  206. package/tests/fixtures/craftdesk-git.json +0 -17
  207. package/tests/fixtures/craftdesk.json +0 -15
  208. package/tests/helpers/test-utils.ts +0 -60
  209. package/tests/integration/init-command.test.ts +0 -70
  210. package/tests/integration/list-command.test.ts +0 -77
  211. package/tests/unit/config-manager.test.ts +0 -228
  212. package/tests/unit/git-resolver.test.ts +0 -303
  213. package/tests/unit/installer.test.ts +0 -105
  214. package/tsconfig.json +0 -20
  215. package/vitest.config.ts +0 -29
@@ -0,0 +1,14 @@
1
+ /**
2
+ * detect-agents command - Detect AI coding assistants
3
+ *
4
+ * Scans the project directory for known AI agent configuration directories
5
+ * and displays which agents are detected and enabled.
6
+ */
7
+ import { Command } from 'commander';
8
+ /**
9
+ * Creates the 'detect-agents' command for detecting AI coding assistants
10
+ *
11
+ * @returns Commander command instance configured for agent detection
12
+ */
13
+ export declare function createDetectAgentsCommand(): Command;
14
+ //# sourceMappingURL=detect-agents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detect-agents.d.ts","sourceRoot":"","sources":["../../src/commands/detect-agents.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgBpC;;;;GAIG;AACH,wBAAgB,yBAAyB,IAAI,OAAO,CA4EnD"}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ /**
3
+ * detect-agents command - Detect AI coding assistants
4
+ *
5
+ * Scans the project directory for known AI agent configuration directories
6
+ * and displays which agents are detected and enabled.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.createDetectAgentsCommand = createDetectAgentsCommand;
10
+ const commander_1 = require("commander");
11
+ const logger_1 = require("../utils/logger");
12
+ const agent_detector_1 = require("../services/agent-detector");
13
+ /**
14
+ * Creates the 'detect-agents' command for detecting AI coding assistants
15
+ *
16
+ * @returns Commander command instance configured for agent detection
17
+ */
18
+ function createDetectAgentsCommand() {
19
+ return new commander_1.Command('detect-agents')
20
+ .description('Detect AI coding assistants in the project')
21
+ .option('-v, --verbose', 'Show detailed detection information')
22
+ .option('-f, --format <format>', 'Output format (text or json)', 'text')
23
+ .action(async (options) => {
24
+ try {
25
+ logger_1.logger.startSpinner('Detecting AI coding assistants...');
26
+ const result = await agent_detector_1.agentDetector.detectAgents();
27
+ logger_1.logger.stopSpinner();
28
+ if (options.format === 'json') {
29
+ // JSON output
30
+ console.log(JSON.stringify(result, null, 2));
31
+ return;
32
+ }
33
+ // Text output
34
+ console.log('\n🔍 AI Coding Assistant Detection\n');
35
+ if (result.detected.length === 0) {
36
+ console.log('❌ No AI coding assistants detected\n');
37
+ console.log('Tip: Initialize a .claude/ directory with `craftdesk init`');
38
+ return;
39
+ }
40
+ // Show detected agents
41
+ console.log('Detected Agents:');
42
+ for (const agent of result.detected) {
43
+ const status = agent.enabled ? '✅ Enabled' : agent.detected ? '⚪ Available' : '⚫ Not found';
44
+ const marker = agent.enabled ? '✓' : agent.detected ? '○' : '·';
45
+ console.log(` ${marker} ${agent.displayName}`);
46
+ console.log(` Directory: ${agent.skillsDir}`);
47
+ if (agent.detected) {
48
+ console.log(` Status: ${status}`);
49
+ }
50
+ if (options.verbose) {
51
+ console.log(` Name: ${agent.name}`);
52
+ console.log(` Detected: ${agent.detected}`);
53
+ console.log(` Enabled: ${agent.enabled}`);
54
+ }
55
+ console.log('');
56
+ }
57
+ // Show summary
58
+ const enabledCount = result.enabled.length;
59
+ const detectedCount = result.detected.filter(a => a.detected).length;
60
+ console.log(`Summary:`);
61
+ console.log(` Detected: ${detectedCount} agent(s)`);
62
+ console.log(` Enabled: ${enabledCount} agent(s)`);
63
+ if (result.suggested.length > 0) {
64
+ console.log(`\n💡 Suggested Actions:`);
65
+ console.log(` ${result.suggested.length} agent(s) available but not enabled for sync`);
66
+ console.log(` Run \`craftdesk setup-multi-agent\` to enable multi-agent sync\n`);
67
+ }
68
+ else if (enabledCount === 1 && detectedCount > 1) {
69
+ console.log(`\n💡 Tip:`);
70
+ console.log(` You have multiple agents but sync is only enabled for one.`);
71
+ console.log(` Run \`craftdesk setup-multi-agent\` to sync across all agents.\n`);
72
+ }
73
+ else if (enabledCount > 1) {
74
+ console.log(`\n✨ Multi-agent sync is active!`);
75
+ console.log(` Skills will be synced across all enabled agents.\n`);
76
+ }
77
+ }
78
+ catch (error) {
79
+ logger_1.logger.failSpinner('Failed to detect agents');
80
+ const message = error instanceof Error ? error.message : String(error);
81
+ logger_1.logger.error(`Error: ${message}`);
82
+ process.exit(1);
83
+ }
84
+ });
85
+ }
86
+ //# sourceMappingURL=detect-agents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detect-agents.js","sourceRoot":"","sources":["../../src/commands/detect-agents.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * embed command - Register a local/embedded skill
3
+ *
4
+ * Marks a skill as embedded (project-specific, committed to git)
5
+ * instead of managed (installed via craftdesk install).
6
+ */
7
+ import { Command } from 'commander';
8
+ /**
9
+ * Creates the 'embed' command for registering embedded skills
10
+ *
11
+ * @returns Commander command instance configured for embedding skills
12
+ */
13
+ export declare function createEmbedCommand(): Command;
14
+ //# sourceMappingURL=embed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embed.d.ts","sourceRoot":"","sources":["../../src/commands/embed.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqBpC;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAuH5C"}
@@ -0,0 +1,147 @@
1
+ "use strict";
2
+ /**
3
+ * embed command - Register a local/embedded skill
4
+ *
5
+ * Marks a skill as embedded (project-specific, committed to git)
6
+ * instead of managed (installed via craftdesk install).
7
+ */
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.createEmbedCommand = createEmbedCommand;
13
+ const commander_1 = require("commander");
14
+ const fs_extra_1 = __importDefault(require("fs-extra"));
15
+ const path_1 = __importDefault(require("path"));
16
+ const logger_1 = require("../utils/logger");
17
+ const config_manager_1 = require("../services/config-manager");
18
+ const gitignore_manager_1 = require("../services/gitignore-manager");
19
+ const multi_agent_sync_1 = require("../services/multi-agent-sync");
20
+ /**
21
+ * Creates the 'embed' command for registering embedded skills
22
+ *
23
+ * @returns Commander command instance configured for embedding skills
24
+ */
25
+ function createEmbedCommand() {
26
+ return new commander_1.Command('embed')
27
+ .description('Register a local/embedded skill (committed to git)')
28
+ .argument('<name>', 'Name of the skill to embed')
29
+ .option('-t, --type <type>', 'Craft type (skill, agent, command, hook)', 'skill')
30
+ .option('--skip-sync', 'Skip multi-agent sync after embedding')
31
+ .action(async (name, options) => {
32
+ try {
33
+ logger_1.logger.startSpinner(`Embedding ${name}...`);
34
+ const craftDeskPath = path_1.default.join(process.cwd(), 'craftdesk.json');
35
+ // Check if craftdesk.json exists
36
+ if (!await fs_extra_1.default.pathExists(craftDeskPath)) {
37
+ logger_1.logger.failSpinner('No craftdesk.json found');
38
+ logger_1.logger.error('Run `craftdesk init` first to create craftdesk.json');
39
+ process.exit(1);
40
+ }
41
+ // Read current config directly from file (don't use cache)
42
+ const config = await fs_extra_1.default.readJson(craftDeskPath);
43
+ if (!config) {
44
+ logger_1.logger.failSpinner('Failed to read craftdesk.json');
45
+ process.exit(1);
46
+ }
47
+ // Check if skill directory exists
48
+ const installPath = config_manager_1.configManager.getInstallPath();
49
+ const typeDir = getTypeDirectory(options.type || 'skill');
50
+ const craftDir = path_1.default.join(process.cwd(), installPath, typeDir, name);
51
+ if (!await fs_extra_1.default.pathExists(craftDir)) {
52
+ logger_1.logger.failSpinner(`${name} not found`);
53
+ logger_1.logger.error(`Directory not found: ${craftDir}`);
54
+ logger_1.logger.info(`Create the ${options.type || 'skill'} first or use --type to specify correct type`);
55
+ process.exit(1);
56
+ }
57
+ // Check if already embedded
58
+ const embedded = config.embedded || [];
59
+ if (embedded.includes(name)) {
60
+ logger_1.logger.failSpinner(`${name} is already embedded`);
61
+ logger_1.logger.info('Use `craftdesk unembed` to remove it from embedded list');
62
+ process.exit(1);
63
+ }
64
+ // Check if it's a managed dependency
65
+ if (config.dependencies && name in config.dependencies) {
66
+ logger_1.logger.failSpinner(`${name} is a managed dependency`);
67
+ logger_1.logger.error(`Cannot embed a managed dependency. Remove it from dependencies first with:`);
68
+ logger_1.logger.info(` craftdesk remove ${name}`);
69
+ process.exit(1);
70
+ }
71
+ // Add to embedded list
72
+ const updatedConfig = {
73
+ ...config,
74
+ embedded: [...embedded, name]
75
+ };
76
+ // Write updated config
77
+ await fs_extra_1.default.writeFile(craftDeskPath, JSON.stringify(updatedConfig, null, 2) + '\n', 'utf-8');
78
+ logger_1.logger.succeedSpinner(`Embedded ${name}`);
79
+ // Update .gitignore
80
+ logger_1.logger.startSpinner('Updating .gitignore...');
81
+ await gitignore_manager_1.gitIgnoreManager.autoUpdate();
82
+ logger_1.logger.succeedSpinner('Updated .gitignore');
83
+ // Sync to other agents if multi-agent enabled
84
+ if (!options.skipSync) {
85
+ const multiAgentConfig = updatedConfig.multiAgent;
86
+ if (multiAgentConfig?.enabled && multiAgentConfig?.autoSync) {
87
+ logger_1.logger.startSpinner('Syncing to other agents...');
88
+ try {
89
+ const result = await multi_agent_sync_1.multiAgentSync.syncCraft(name, craftDir);
90
+ if (result.synced.length > 1) {
91
+ logger_1.logger.succeedSpinner(`Synced to ${result.synced.length - 1} agent(s)`);
92
+ }
93
+ else {
94
+ logger_1.logger.succeedSpinner('Sync complete');
95
+ }
96
+ if (result.failed.length > 0) {
97
+ logger_1.logger.warn(`Failed to sync to ${result.failed.length} location(s)`);
98
+ for (const failure of result.failed) {
99
+ logger_1.logger.warn(` ${failure.path}: ${failure.error}`);
100
+ }
101
+ }
102
+ }
103
+ catch (error) {
104
+ const message = error instanceof Error ? error.message : String(error);
105
+ logger_1.logger.warn(`Failed to sync: ${message}`);
106
+ }
107
+ }
108
+ }
109
+ console.log('');
110
+ console.log(`✅ ${name} is now embedded (committed to git)`);
111
+ console.log('');
112
+ console.log('Next steps:');
113
+ console.log(` • Edit the ${options.type || 'skill'} in: ${craftDir}`);
114
+ console.log(` • Commit to git: git add ${craftDir}`);
115
+ console.log(` • Team members will get it via git clone (not craftdesk install)`);
116
+ console.log('');
117
+ }
118
+ catch (error) {
119
+ logger_1.logger.failSpinner('Failed to embed skill');
120
+ const message = error instanceof Error ? error.message : String(error);
121
+ logger_1.logger.error(`Error: ${message}`);
122
+ process.exit(1);
123
+ }
124
+ });
125
+ }
126
+ /**
127
+ * Get type directory name
128
+ *
129
+ * @param type - The craft type
130
+ * @returns Directory name for the craft type
131
+ * @private
132
+ */
133
+ function getTypeDirectory(type) {
134
+ switch (type) {
135
+ case 'skill':
136
+ return 'skills';
137
+ case 'agent':
138
+ return 'agents';
139
+ case 'command':
140
+ return 'commands';
141
+ case 'hook':
142
+ return 'hooks';
143
+ default:
144
+ return 'skills';
145
+ }
146
+ }
147
+ //# sourceMappingURL=embed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embed.js","sourceRoot":"","sources":["../../src/commands/embed.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { Command } from 'commander';
2
+ /**
3
+ * Creates the 'info' command for displaying detailed craft information
4
+ *
5
+ * @returns Commander command instance configured for showing craft info
6
+ */
7
+ export declare function createInfoCommand(): Command;
8
+ //# sourceMappingURL=info.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../src/commands/info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWpC;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAQ3C"}
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createInfoCommand = createInfoCommand;
4
+ const commander_1 = require("commander");
5
+ const registry_client_1 = require("../services/registry-client");
6
+ const logger_1 = require("../utils/logger");
7
+ /**
8
+ * Creates the 'info' command for displaying detailed craft information
9
+ *
10
+ * @returns Commander command instance configured for showing craft info
11
+ */
12
+ function createInfoCommand() {
13
+ return new commander_1.Command('info')
14
+ .description('Show detailed information about a craft')
15
+ .argument('<craft>', 'Craft name (author/name format)')
16
+ .option('--json', 'Output as JSON')
17
+ .action(async (craftName, options) => {
18
+ await infoCommand(craftName, options);
19
+ });
20
+ }
21
+ async function infoCommand(craftName, options) {
22
+ try {
23
+ logger_1.logger.startSpinner(`Fetching info for ${craftName}...`);
24
+ const craftInfo = await registry_client_1.registryClient.getCraftInfo(craftName);
25
+ if (!craftInfo) {
26
+ logger_1.logger.failSpinner(`Craft '${craftName}' not found in registry`);
27
+ process.exit(1);
28
+ }
29
+ logger_1.logger.succeedSpinner(`Found ${craftInfo.author}/${craftInfo.name}`);
30
+ if (options.json) {
31
+ console.log(JSON.stringify(craftInfo, null, 2));
32
+ }
33
+ else {
34
+ console.log('');
35
+ console.log(` Name: ${craftInfo.author}/${craftInfo.name}`);
36
+ console.log(` Version: ${craftInfo.version}`);
37
+ console.log(` Type: ${craftInfo.type}`);
38
+ if (craftInfo.description) {
39
+ console.log(` Description: ${craftInfo.description}`);
40
+ }
41
+ // Fetch available versions
42
+ logger_1.logger.startSpinner('Fetching available versions...');
43
+ const versions = await registry_client_1.registryClient.listVersions(craftName);
44
+ logger_1.logger.succeedSpinner('');
45
+ if (versions && versions.length > 0) {
46
+ console.log(` Available versions: ${versions.join(', ')}`);
47
+ }
48
+ if (craftInfo.dependencies && Object.keys(craftInfo.dependencies).length > 0) {
49
+ console.log('\n Dependencies:');
50
+ for (const [dep, version] of Object.entries(craftInfo.dependencies)) {
51
+ console.log(` - ${dep}: ${version}`);
52
+ }
53
+ }
54
+ console.log('');
55
+ console.log(`To install: craftdesk add ${craftInfo.author}/${craftInfo.name}`);
56
+ console.log(`To install specific version: craftdesk add ${craftInfo.author}/${craftInfo.name}@${craftInfo.version}`);
57
+ }
58
+ }
59
+ catch (error) {
60
+ logger_1.logger.failSpinner();
61
+ const message = error instanceof Error ? error.message : String(error);
62
+ logger_1.logger.error(`Failed to get craft info: ${message}`);
63
+ process.exit(1);
64
+ }
65
+ }
66
+ //# sourceMappingURL=info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"info.js","sourceRoot":"","sources":["../../src/commands/info.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,8 @@
1
1
  import { Command } from 'commander';
2
+ /**
3
+ * Creates the 'init' command for initializing a new craftdesk.json file
4
+ *
5
+ * @returns Commander command instance configured for project initialization
6
+ */
2
7
  export declare function createInitCommand(): Command;
3
8
  //# sourceMappingURL=init.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,iBAAiB,IAAI,OAAO,CAa3C"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmBpC;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAa3C"}
@@ -8,6 +8,11 @@ const commander_1 = require("commander");
8
8
  const path_1 = __importDefault(require("path"));
9
9
  const file_system_1 = require("../utils/file-system");
10
10
  const logger_1 = require("../utils/logger");
11
+ /**
12
+ * Creates the 'init' command for initializing a new craftdesk.json file
13
+ *
14
+ * @returns Commander command instance configured for project initialization
15
+ */
11
16
  function createInitCommand() {
12
17
  return new commander_1.Command('init')
13
18
  .description('Initialize a new craftdesk.json file')
@@ -31,7 +36,7 @@ async function initCommand(options) {
31
36
  }
32
37
  const config = {
33
38
  name: options.name || path_1.default.basename(process.cwd()),
34
- version: options.projectVersion,
39
+ version: options.projectVersion || '1.0.0',
35
40
  type: options.type,
36
41
  description: options.description || undefined,
37
42
  author: options.author || undefined,
@@ -50,7 +55,8 @@ async function initCommand(options) {
50
55
  logger_1.logger.info('Run "craftdesk add <craft>" to add dependencies');
51
56
  }
52
57
  catch (error) {
53
- logger_1.logger.error(`Failed to initialize: ${error.message}`);
58
+ const message = error instanceof Error ? error.message : String(error);
59
+ logger_1.logger.error(`Failed to initialize: ${message}`);
54
60
  process.exit(1);
55
61
  }
56
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":";;;;;AAMA,8CAaC;AAnBD,yCAAoC;AACpC,gDAAwB;AAExB,sDAAkE;AAClE,4CAAyC;AAEzC,SAAgB,iBAAiB;IAC/B,OAAO,IAAI,mBAAO,CAAC,MAAM,CAAC;SACvB,WAAW,CAAC,sCAAsC,CAAC;SACnD,MAAM,CAAC,WAAW,EAAE,+BAA+B,CAAC;SACpD,MAAM,CAAC,mBAAmB,EAAE,cAAc,CAAC;SAC3C,MAAM,CAAC,6BAA6B,EAAE,iBAAiB,EAAE,OAAO,CAAC;SACjE,MAAM,CAAC,mBAAmB,EAAE,oDAAoD,EAAE,OAAO,CAAC;SAC1F,MAAM,CAAC,0BAA0B,EAAE,qBAAqB,CAAC;SACzD,MAAM,CAAC,uBAAuB,EAAE,aAAa,CAAC;SAC9C,MAAM,CAAC,yBAAyB,EAAE,SAAS,EAAE,KAAK,CAAC;SACnD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACP,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,OAAY;IACrC,IAAI,CAAC;QACH,yCAAyC;QACzC,IAAI,MAAM,IAAA,oBAAM,EAAC,gBAAgB,CAAC,EAAE,CAAC;YACnC,eAAM,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;YAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,MAAM,GAAkB;YAC5B,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,cAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YAClD,OAAO,EAAE,OAAO,CAAC,cAAc;YAC/B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,SAAS;YAC7C,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,SAAS;YACnC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,SAAS;YACrC,YAAY,EAAE,EAAE;YAChB,UAAU,EAAE;gBACV,OAAO,EAAE;oBACP,GAAG,EAAE,sBAAsB;iBAC5B;aACF;SACF,CAAC;QAEF,uBAAuB;QACvB,MAAM,IAAA,gCAAkB,EAAC,MAAM,CAAC,CAAC;QAEjC,eAAM,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;QACzC,eAAM,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;QAC/D,eAAM,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;IACjE,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,eAAM,CAAC,KAAK,CAAC,yBAAyB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":";;;;;AAwBA,8CAaC;AArCD,yCAAoC;AACpC,gDAAwB;AAExB,sDAAkE;AAClE,4CAAyC;AAezC;;;;GAIG;AACH,SAAgB,iBAAiB;IAC/B,OAAO,IAAI,mBAAO,CAAC,MAAM,CAAC;SACvB,WAAW,CAAC,sCAAsC,CAAC;SACnD,MAAM,CAAC,WAAW,EAAE,+BAA+B,CAAC;SACpD,MAAM,CAAC,mBAAmB,EAAE,cAAc,CAAC;SAC3C,MAAM,CAAC,6BAA6B,EAAE,iBAAiB,EAAE,OAAO,CAAC;SACjE,MAAM,CAAC,mBAAmB,EAAE,oDAAoD,EAAE,OAAO,CAAC;SAC1F,MAAM,CAAC,0BAA0B,EAAE,qBAAqB,CAAC;SACzD,MAAM,CAAC,uBAAuB,EAAE,aAAa,CAAC;SAC9C,MAAM,CAAC,yBAAyB,EAAE,SAAS,EAAE,KAAK,CAAC;SACnD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACP,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,OAA2B;IACpD,IAAI,CAAC;QACH,yCAAyC;QACzC,IAAI,MAAM,IAAA,oBAAM,EAAC,gBAAgB,CAAC,EAAE,CAAC;YACnC,eAAM,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;YAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,MAAM,GAAkB;YAC5B,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,cAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YAClD,OAAO,EAAE,OAAO,CAAC,cAAc,IAAI,OAAO;YAC1C,IAAI,EAAE,OAAO,CAAC,IAAoF;YAClG,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,SAAS;YAC7C,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,SAAS;YACnC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,SAAS;YACrC,YAAY,EAAE,EAAE;YAChB,UAAU,EAAE;gBACV,OAAO,EAAE;oBACP,GAAG,EAAE,sBAAsB;iBAC5B;aACF;SACF,CAAC;QAEF,uBAAuB;QACvB,MAAM,IAAA,gCAAkB,EAAC,MAAM,CAAC,CAAC;QAEjC,eAAM,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;QACzC,eAAM,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;QAC/D,eAAM,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;IACjE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,eAAM,CAAC,KAAK,CAAC,yBAAyB,OAAO,EAAE,CAAC,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -1,3 +1,8 @@
1
1
  import { Command } from 'commander';
2
+ /**
3
+ * Creates the 'install' command for installing all dependencies from craftdesk.json
4
+ *
5
+ * @returns Commander command instance configured for dependency installation
6
+ */
2
7
  export declare function createInstallCommand(): Command;
3
8
  //# sourceMappingURL=install.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,wBAAgB,oBAAoB,IAAI,OAAO,CAQ9C"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAepC;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAQ9C"}
@@ -7,6 +7,11 @@ const logger_1 = require("../utils/logger");
7
7
  const registry_client_1 = require("../services/registry-client");
8
8
  const git_resolver_1 = require("../services/git-resolver");
9
9
  const installer_1 = require("../services/installer");
10
+ /**
11
+ * Creates the 'install' command for installing all dependencies from craftdesk.json
12
+ *
13
+ * @returns Commander command instance configured for dependency installation
14
+ */
10
15
  function createInstallCommand() {
11
16
  return new commander_1.Command('install')
12
17
  .description('Install all dependencies from craftdesk.json')
@@ -34,6 +39,13 @@ async function installCommand(options) {
34
39
  if (lockfile) {
35
40
  // Install from lockfile
36
41
  logger_1.logger.info('Installing from craftdesk.lock...');
42
+ // Show plugin tree info if present
43
+ if (lockfile.pluginTree && Object.keys(lockfile.pluginTree).length > 0) {
44
+ const pluginCount = Object.keys(lockfile.pluginTree).length;
45
+ const directPlugins = Object.values(lockfile.pluginTree).filter(p => !p.isDependency).length;
46
+ const depPlugins = pluginCount - directPlugins;
47
+ logger_1.logger.info(`Plugin dependencies: ${directPlugins} direct, ${depPlugins} transitive`);
48
+ }
37
49
  logger_1.logger.startSpinner('Installing crafts...');
38
50
  await installer_1.installer.installFromLockfile(lockfile);
39
51
  logger_1.logger.success('Installation complete!');
@@ -63,13 +75,20 @@ async function installCommand(options) {
63
75
  // For registry dependencies that need resolution, fetch their info
64
76
  logger_1.logger.startSpinner('Fetching registry crafts...');
65
77
  for (const [name, entry] of Object.entries(resolution.resolved)) {
66
- if (entry.needsResolution) {
78
+ // Check if this is a registry dependency that needs resolution
79
+ if (entry.resolved === 'registry' && entry.integrity === 'pending') {
67
80
  const craftInfo = await registry_client_1.registryClient.getCraftInfo(name, entry.version, entry.registry);
68
81
  if (craftInfo) {
82
+ // Require download_url from registry - no defaults for security
83
+ if (!craftInfo.download_url) {
84
+ logger_1.logger.failSpinner();
85
+ logger_1.logger.error(`Registry did not provide download URL for ${name}@${craftInfo.version}`);
86
+ process.exit(1);
87
+ }
69
88
  resolution.resolved[name] = {
70
89
  version: craftInfo.version,
71
- resolved: craftInfo.download_url || `http://localhost:3000/api/v1/crafts/${craftInfo.author}/${craftInfo.name}/versions/${craftInfo.version}/download`,
72
- integrity: craftInfo.integrity || 'sha256-placeholder',
90
+ resolved: craftInfo.download_url,
91
+ integrity: craftInfo.integrity || 'sha256-pending',
73
92
  type: craftInfo.type,
74
93
  author: craftInfo.author,
75
94
  dependencies: craftInfo.dependencies || {}
@@ -101,8 +120,9 @@ async function installCommand(options) {
101
120
  }
102
121
  }
103
122
  catch (error) {
123
+ const message = error instanceof Error ? error.message : String(error);
104
124
  logger_1.logger.failSpinner();
105
- logger_1.logger.error(`Installation failed: ${error.message}`);
125
+ logger_1.logger.error(`Installation failed: ${message}`);
106
126
  process.exit(1);
107
127
  }
108
128
  }
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,8 @@
1
1
  import { Command } from 'commander';
2
+ /**
3
+ * Creates the 'list' command for listing installed crafts
4
+ *
5
+ * @returns Commander command instance configured for listing crafts
6
+ */
2
7
  export declare function createListCommand(): Command;
3
8
  //# sourceMappingURL=list.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,iBAAiB,IAAI,OAAO,CAS3C"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAS3C"}