craftdesk 0.4.0 → 0.5.1
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/CHANGELOG.md +39 -0
- package/README.md +584 -4
- package/dist/commands/add.js +19 -6
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/detect-agents.d.ts +14 -0
- package/dist/commands/detect-agents.d.ts.map +1 -0
- package/dist/commands/detect-agents.js +86 -0
- package/dist/commands/detect-agents.js.map +1 -0
- package/dist/commands/embed.d.ts +14 -0
- package/dist/commands/embed.d.ts.map +1 -0
- package/dist/commands/embed.js +147 -0
- package/dist/commands/embed.js.map +1 -0
- package/dist/commands/list.js +4 -1
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/outdated.js +2 -2
- package/dist/commands/outdated.js.map +1 -1
- package/dist/commands/publish.js +5 -0
- package/dist/commands/publish.js.map +1 -1
- package/dist/commands/setup-multi-agent.d.ts +17 -0
- package/dist/commands/setup-multi-agent.d.ts.map +1 -0
- package/dist/commands/setup-multi-agent.js +188 -0
- package/dist/commands/setup-multi-agent.js.map +1 -0
- package/dist/commands/sync.d.ts +14 -0
- package/dist/commands/sync.d.ts.map +1 -0
- package/dist/commands/sync.js +144 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/commands/unembed.d.ts +14 -0
- package/dist/commands/unembed.d.ts.map +1 -0
- package/dist/commands/unembed.js +96 -0
- package/dist/commands/unembed.js.map +1 -0
- package/dist/commands/update.js +6 -3
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/verify.d.ts +14 -0
- package/dist/commands/verify.d.ts.map +1 -0
- package/dist/commands/verify.js +143 -0
- package/dist/commands/verify.js.map +1 -0
- package/dist/index.js +24 -1
- package/dist/index.js.map +1 -1
- package/dist/services/agent-detector.d.ts +57 -0
- package/dist/services/agent-detector.d.ts.map +1 -0
- package/dist/services/agent-detector.js +146 -0
- package/dist/services/agent-detector.js.map +1 -0
- package/dist/services/config-manager.d.ts.map +1 -1
- package/dist/services/config-manager.js +3 -2
- package/dist/services/config-manager.js.map +1 -1
- package/dist/services/craft-wrapper.d.ts.map +1 -1
- package/dist/services/craft-wrapper.js +2 -1
- package/dist/services/craft-wrapper.js.map +1 -1
- package/dist/services/git-resolver.d.ts.map +1 -1
- package/dist/services/git-resolver.js +20 -11
- package/dist/services/git-resolver.js.map +1 -1
- package/dist/services/gitignore-manager.d.ts +74 -0
- package/dist/services/gitignore-manager.d.ts.map +1 -0
- package/dist/services/gitignore-manager.js +188 -0
- package/dist/services/gitignore-manager.js.map +1 -0
- package/dist/services/installer.d.ts +9 -0
- package/dist/services/installer.d.ts.map +1 -1
- package/dist/services/installer.js +53 -9
- package/dist/services/installer.js.map +1 -1
- package/dist/services/multi-agent-sync.d.ts +88 -0
- package/dist/services/multi-agent-sync.d.ts.map +1 -0
- package/dist/services/multi-agent-sync.js +316 -0
- package/dist/services/multi-agent-sync.js.map +1 -0
- package/dist/services/plugin-resolver.d.ts.map +1 -1
- package/dist/services/plugin-resolver.js +2 -1
- package/dist/services/plugin-resolver.js.map +1 -1
- package/dist/types/craftdesk-json.d.ts +13 -0
- package/dist/types/craftdesk-json.d.ts.map +1 -1
- package/dist/types/multi-agent.d.ts +85 -0
- package/dist/types/multi-agent.d.ts.map +1 -0
- package/dist/types/multi-agent.js +6 -0
- package/dist/types/multi-agent.js.map +1 -0
- package/dist/utils/version-utils.d.ts +6 -0
- package/dist/utils/version-utils.d.ts.map +1 -1
- package/dist/utils/version-utils.js +58 -4
- package/dist/utils/version-utils.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* verify command - Verify sync status across AI agents
|
|
4
|
+
*
|
|
5
|
+
* Checks if crafts are in sync across all configured agent directories
|
|
6
|
+
* by comparing checksums. Reports any drift or missing copies.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.createVerifyCommand = createVerifyCommand;
|
|
10
|
+
const commander_1 = require("commander");
|
|
11
|
+
const logger_1 = require("../utils/logger");
|
|
12
|
+
const multi_agent_sync_1 = require("../services/multi-agent-sync");
|
|
13
|
+
const config_manager_1 = require("../services/config-manager");
|
|
14
|
+
/**
|
|
15
|
+
* Creates the 'verify' command for verifying sync status
|
|
16
|
+
*
|
|
17
|
+
* @returns Commander command instance configured for sync verification
|
|
18
|
+
*/
|
|
19
|
+
function createVerifyCommand() {
|
|
20
|
+
return new commander_1.Command('verify')
|
|
21
|
+
.description('Verify sync status of crafts across AI agents')
|
|
22
|
+
.option('-c, --craft <name>', 'Verify specific craft by name')
|
|
23
|
+
.option('-v, --verbose', 'Show detailed checksum information')
|
|
24
|
+
.option('-f, --format <format>', 'Output format (text or json)', 'text')
|
|
25
|
+
.action(async (options) => {
|
|
26
|
+
try {
|
|
27
|
+
// Check if multi-agent sync is enabled
|
|
28
|
+
const config = await config_manager_1.configManager.getCraftDeskJson();
|
|
29
|
+
if (!config?.multiAgent?.enabled) {
|
|
30
|
+
logger_1.logger.error('Multi-agent sync is not enabled');
|
|
31
|
+
console.log('\nTo enable multi-agent sync, run:');
|
|
32
|
+
console.log(' craftdesk setup-multi-agent\n');
|
|
33
|
+
process.exit(1);
|
|
34
|
+
}
|
|
35
|
+
logger_1.logger.startSpinner('Verifying sync status...');
|
|
36
|
+
if (options.craft) {
|
|
37
|
+
// Verify specific craft
|
|
38
|
+
const status = await multi_agent_sync_1.multiAgentSync.verifySync(options.craft);
|
|
39
|
+
logger_1.logger.stopSpinner();
|
|
40
|
+
if (options.format === 'json') {
|
|
41
|
+
console.log(JSON.stringify(status, null, 2));
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
console.log(`\n🔍 Sync Status: ${options.craft}\n`);
|
|
45
|
+
console.log(`Canonical: ${config.multiAgent.canonical}/skills/${options.craft}`);
|
|
46
|
+
if (options.verbose) {
|
|
47
|
+
console.log(`Checksum: ${status.canonicalChecksum}`);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
console.log(`Checksum: ${status.canonicalChecksum.substring(0, 16)}...`);
|
|
51
|
+
}
|
|
52
|
+
console.log('');
|
|
53
|
+
if (status.inSync) {
|
|
54
|
+
console.log(`✅ All copies are in sync`);
|
|
55
|
+
console.log(`\nSynced locations (${status.inSyncLocations.length}):`);
|
|
56
|
+
for (const location of status.inSyncLocations) {
|
|
57
|
+
console.log(` ✓ ${location}`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
console.log(`❌ Some copies are out of sync`);
|
|
62
|
+
if (status.inSyncLocations.length > 0) {
|
|
63
|
+
console.log(`\nIn sync (${status.inSyncLocations.length}):`);
|
|
64
|
+
for (const location of status.inSyncLocations) {
|
|
65
|
+
console.log(` ✓ ${location}`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
console.log(`\nOut of sync (${status.outOfSync.length}):`);
|
|
69
|
+
for (const location of status.outOfSync) {
|
|
70
|
+
const reasonIcon = location.reason === 'missing' ? '❌' : '⚠️';
|
|
71
|
+
console.log(` ${reasonIcon} ${location.path}`);
|
|
72
|
+
console.log(` Reason: ${location.reason}`);
|
|
73
|
+
if (options.verbose && location.actualChecksum) {
|
|
74
|
+
console.log(` Expected: ${location.expectedChecksum}`);
|
|
75
|
+
console.log(` Actual: ${location.actualChecksum}`);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
console.log(`\n💡 Run \`craftdesk sync --craft ${options.craft}\` to fix`);
|
|
79
|
+
}
|
|
80
|
+
console.log('');
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
// Verify all crafts
|
|
84
|
+
const statuses = await multi_agent_sync_1.multiAgentSync.verifyAllCrafts();
|
|
85
|
+
logger_1.logger.stopSpinner();
|
|
86
|
+
if (options.format === 'json') {
|
|
87
|
+
console.log(JSON.stringify(statuses, null, 2));
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
if (statuses.length === 0) {
|
|
91
|
+
console.log('\nℹ️ No crafts found to verify\n');
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
console.log(`\n🔍 Sync Status: All Crafts\n`);
|
|
95
|
+
const inSync = statuses.filter(s => s.inSync);
|
|
96
|
+
const outOfSync = statuses.filter(s => !s.inSync);
|
|
97
|
+
// Show summary first
|
|
98
|
+
console.log(`Summary:`);
|
|
99
|
+
console.log(` Total crafts: ${statuses.length}`);
|
|
100
|
+
console.log(` In sync: ${inSync.length}`);
|
|
101
|
+
console.log(` Out of sync: ${outOfSync.length}`);
|
|
102
|
+
console.log('');
|
|
103
|
+
// Show out of sync crafts
|
|
104
|
+
if (outOfSync.length > 0) {
|
|
105
|
+
console.log(`❌ Out of Sync (${outOfSync.length}):\n`);
|
|
106
|
+
for (const status of outOfSync) {
|
|
107
|
+
console.log(` ${status.craftName}`);
|
|
108
|
+
for (const location of status.outOfSync) {
|
|
109
|
+
const reasonIcon = location.reason === 'missing' ? '❌' : '⚠️';
|
|
110
|
+
console.log(` ${reasonIcon} ${location.path} (${location.reason})`);
|
|
111
|
+
if (options.verbose && location.actualChecksum) {
|
|
112
|
+
console.log(` Expected: ${location.expectedChecksum?.substring(0, 16)}...`);
|
|
113
|
+
console.log(` Actual: ${location.actualChecksum.substring(0, 16)}...`);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
console.log('');
|
|
117
|
+
}
|
|
118
|
+
console.log(`💡 Run \`craftdesk sync\` to fix all issues\n`);
|
|
119
|
+
}
|
|
120
|
+
// Show in sync crafts if verbose
|
|
121
|
+
if (options.verbose && inSync.length > 0) {
|
|
122
|
+
console.log(`✅ In Sync (${inSync.length}):\n`);
|
|
123
|
+
for (const status of inSync) {
|
|
124
|
+
console.log(` ✓ ${status.craftName}`);
|
|
125
|
+
console.log(` Checksum: ${status.canonicalChecksum.substring(0, 16)}...`);
|
|
126
|
+
console.log(` Locations: ${status.inSyncLocations.length}`);
|
|
127
|
+
console.log('');
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
else if (outOfSync.length === 0) {
|
|
131
|
+
console.log(`✅ All ${inSync.length} craft(s) are in sync!\n`);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
logger_1.logger.failSpinner('Failed to verify sync status');
|
|
137
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
138
|
+
logger_1.logger.error(`Error: ${message}`);
|
|
139
|
+
process.exit(1);
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=verify.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/commands/verify.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -16,12 +16,19 @@ const login_1 = require("./commands/login");
|
|
|
16
16
|
const logout_1 = require("./commands/logout");
|
|
17
17
|
const whoami_1 = require("./commands/whoami");
|
|
18
18
|
const convert_1 = require("./commands/convert");
|
|
19
|
+
const detect_agents_1 = require("./commands/detect-agents");
|
|
20
|
+
const sync_1 = require("./commands/sync");
|
|
21
|
+
const verify_1 = require("./commands/verify");
|
|
22
|
+
const setup_multi_agent_1 = require("./commands/setup-multi-agent");
|
|
23
|
+
const embed_1 = require("./commands/embed");
|
|
24
|
+
const unembed_1 = require("./commands/unembed");
|
|
19
25
|
const logger_1 = require("./utils/logger");
|
|
26
|
+
const version_utils_1 = require("./utils/version-utils");
|
|
20
27
|
const program = new commander_1.Command();
|
|
21
28
|
program
|
|
22
29
|
.name('craftdesk')
|
|
23
30
|
.description('CLI for managing CraftDesk AI capabilities')
|
|
24
|
-
.version(
|
|
31
|
+
.version((0, version_utils_1.getCliVersion)(), '-v, --version')
|
|
25
32
|
.option('-d, --debug', 'Enable debug output', () => {
|
|
26
33
|
process.env.DEBUG = 'true';
|
|
27
34
|
});
|
|
@@ -40,6 +47,12 @@ program.addCommand((0, login_1.createLoginCommand)());
|
|
|
40
47
|
program.addCommand((0, logout_1.createLogoutCommand)());
|
|
41
48
|
program.addCommand((0, whoami_1.createWhoamiCommand)());
|
|
42
49
|
program.addCommand((0, convert_1.createConvertCommand)());
|
|
50
|
+
program.addCommand((0, detect_agents_1.createDetectAgentsCommand)());
|
|
51
|
+
program.addCommand((0, sync_1.createSyncCommand)());
|
|
52
|
+
program.addCommand((0, verify_1.createVerifyCommand)());
|
|
53
|
+
program.addCommand((0, setup_multi_agent_1.createSetupMultiAgentCommand)());
|
|
54
|
+
program.addCommand((0, embed_1.createEmbedCommand)());
|
|
55
|
+
program.addCommand((0, unembed_1.createUnembedCommand)());
|
|
43
56
|
// Add aliases
|
|
44
57
|
program.command('i', { hidden: true }).action(() => {
|
|
45
58
|
program.parse(['', '', 'install', ...process.argv.slice(3)]);
|
|
@@ -69,6 +82,16 @@ if (process.argv.length === 2) {
|
|
|
69
82
|
logger_1.logger.log('Format Conversion:');
|
|
70
83
|
logger_1.logger.log(' craftdesk convert Convert crafts to other AI editor formats');
|
|
71
84
|
logger_1.logger.log('');
|
|
85
|
+
logger_1.logger.log('Multi-Agent Sync:');
|
|
86
|
+
logger_1.logger.log(' craftdesk setup-multi-agent Configure multi-agent sync');
|
|
87
|
+
logger_1.logger.log(' craftdesk detect-agents Detect AI coding assistants');
|
|
88
|
+
logger_1.logger.log(' craftdesk sync Sync crafts across agents');
|
|
89
|
+
logger_1.logger.log(' craftdesk verify Verify sync status');
|
|
90
|
+
logger_1.logger.log('');
|
|
91
|
+
logger_1.logger.log('Embedded Skills:');
|
|
92
|
+
logger_1.logger.log(' craftdesk embed <name> Register a local/embedded skill');
|
|
93
|
+
logger_1.logger.log(' craftdesk unembed <name> Unregister an embedded skill');
|
|
94
|
+
logger_1.logger.log('');
|
|
72
95
|
logger_1.logger.log('Authentication:');
|
|
73
96
|
logger_1.logger.log(' craftdesk login Authenticate with a registry');
|
|
74
97
|
logger_1.logger.log(' craftdesk logout Remove authentication');
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AACpC,0CAAoD;AACpD,gDAA0D;AAC1D,wCAAkD;AAClD,8CAAwD;AACxD,0CAAoD;AACpD,8CAAwD;AACxD,0CAAoD;AACpD,kDAA4D;AAC5D,8CAAwD;AACxD,gDAA0D;AAC1D,4CAAsD;AACtD,8CAAwD;AACxD,8CAAwD;AACxD,gDAA0D;AAC1D,2CAAwC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AACpC,0CAAoD;AACpD,gDAA0D;AAC1D,wCAAkD;AAClD,8CAAwD;AACxD,0CAAoD;AACpD,8CAAwD;AACxD,0CAAoD;AACpD,kDAA4D;AAC5D,8CAAwD;AACxD,gDAA0D;AAC1D,4CAAsD;AACtD,8CAAwD;AACxD,8CAAwD;AACxD,gDAA0D;AAC1D,4DAAqE;AACrE,0CAAoD;AACpD,8CAAwD;AACxD,oEAA4E;AAC5E,4CAAsD;AACtD,gDAA0D;AAC1D,2CAAwC;AACxC,yDAAsD;AAEtD,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CAAC,4CAA4C,CAAC;KACzD,OAAO,CAAC,IAAA,6BAAa,GAAE,EAAE,eAAe,CAAC;KACzC,MAAM,CAAC,aAAa,EAAE,qBAAqB,EAAE,GAAG,EAAE;IACjD,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEL,eAAe;AACf,OAAO,CAAC,UAAU,CAAC,IAAA,wBAAiB,GAAE,CAAC,CAAC;AACxC,OAAO,CAAC,UAAU,CAAC,IAAA,8BAAoB,GAAE,CAAC,CAAC;AAC3C,OAAO,CAAC,UAAU,CAAC,IAAA,sBAAgB,GAAE,CAAC,CAAC;AACvC,OAAO,CAAC,UAAU,CAAC,IAAA,4BAAmB,GAAE,CAAC,CAAC;AAC1C,OAAO,CAAC,UAAU,CAAC,IAAA,wBAAiB,GAAE,CAAC,CAAC;AACxC,OAAO,CAAC,UAAU,CAAC,IAAA,4BAAmB,GAAE,CAAC,CAAC;AAC1C,OAAO,CAAC,UAAU,CAAC,IAAA,wBAAiB,GAAE,CAAC,CAAC;AACxC,OAAO,CAAC,UAAU,CAAC,IAAA,gCAAqB,GAAE,CAAC,CAAC;AAC5C,OAAO,CAAC,UAAU,CAAC,IAAA,4BAAmB,GAAE,CAAC,CAAC;AAC1C,OAAO,CAAC,UAAU,CAAC,IAAA,8BAAoB,GAAE,CAAC,CAAC;AAC3C,OAAO,CAAC,UAAU,CAAC,IAAA,0BAAkB,GAAE,CAAC,CAAC;AACzC,OAAO,CAAC,UAAU,CAAC,IAAA,4BAAmB,GAAE,CAAC,CAAC;AAC1C,OAAO,CAAC,UAAU,CAAC,IAAA,4BAAmB,GAAE,CAAC,CAAC;AAC1C,OAAO,CAAC,UAAU,CAAC,IAAA,8BAAoB,GAAE,CAAC,CAAC;AAC3C,OAAO,CAAC,UAAU,CAAC,IAAA,yCAAyB,GAAE,CAAC,CAAC;AAChD,OAAO,CAAC,UAAU,CAAC,IAAA,wBAAiB,GAAE,CAAC,CAAC;AACxC,OAAO,CAAC,UAAU,CAAC,IAAA,4BAAmB,GAAE,CAAC,CAAC;AAC1C,OAAO,CAAC,UAAU,CAAC,IAAA,gDAA4B,GAAE,CAAC,CAAC;AACnD,OAAO,CAAC,UAAU,CAAC,IAAA,0BAAkB,GAAE,CAAC,CAAC;AACzC,OAAO,CAAC,UAAU,CAAC,IAAA,8BAAoB,GAAE,CAAC,CAAC;AAE3C,cAAc;AACd,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE;IACjD,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,CAAC,CAAC,CAAC;AAEH,iBAAiB;AACjB,OAAO,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;IAC3B,eAAM,CAAC,KAAK,CAAC,oBAAoB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC3D,eAAM,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;IACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,mCAAmC;AACnC,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;IAC9B,eAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAC/B,eAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACf,eAAM,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IACxD,eAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACf,eAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAC/B,eAAM,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;IACxE,eAAM,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;IACrE,eAAM,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;IAC9D,eAAM,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAC5D,eAAM,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;IAChE,eAAM,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;IAChE,eAAM,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;IACvE,eAAM,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;IACvE,eAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACf,eAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IACjC,eAAM,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAC;IACjF,eAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACf,eAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAChC,eAAM,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;IACxE,eAAM,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;IACzE,eAAM,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;IACvE,eAAM,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;IAChE,eAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACf,eAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAC/B,eAAM,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;IAC7E,eAAM,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;IAC1E,eAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACf,eAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAC9B,eAAM,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;IACpE,eAAM,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;IAC7D,eAAM,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;IAC3D,eAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACf,eAAM,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;IAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,+BAA+B;AAC/B,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Detector - Auto-detect AI coding assistants
|
|
3
|
+
*
|
|
4
|
+
* Detects which AI coding assistants are in use by checking for
|
|
5
|
+
* their configuration directories (.claude/, .cursor/, etc.)
|
|
6
|
+
*/
|
|
7
|
+
import type { AgentConfig, AgentDetectionResult } from '../types/multi-agent';
|
|
8
|
+
/**
|
|
9
|
+
* Service for detecting AI coding assistants
|
|
10
|
+
*/
|
|
11
|
+
export declare class AgentDetector {
|
|
12
|
+
/**
|
|
13
|
+
* Detect which AI coding assistants are in use
|
|
14
|
+
*
|
|
15
|
+
* @param cwd - Current working directory (defaults to process.cwd())
|
|
16
|
+
* @returns Detection result with detected, enabled, and suggested agents
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* const detector = new AgentDetector();
|
|
21
|
+
* const result = await detector.detectAgents();
|
|
22
|
+
*
|
|
23
|
+
* console.log(`Found ${result.detected.length} agents`);
|
|
24
|
+
* console.log(`Enabled: ${result.enabled.map(a => a.displayName).join(', ')}`);
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
detectAgents(cwd?: string): Promise<AgentDetectionResult>;
|
|
28
|
+
/**
|
|
29
|
+
* Get configuration for a specific agent by name
|
|
30
|
+
*
|
|
31
|
+
* @param agentName - Name of the agent (e.g., 'cursor', 'windsurf')
|
|
32
|
+
* @returns Agent configuration if found, null otherwise
|
|
33
|
+
*/
|
|
34
|
+
getAgentConfig(agentName: string): Omit<AgentConfig, 'enabled' | 'detected'> | null;
|
|
35
|
+
/**
|
|
36
|
+
* Check if a directory belongs to a known AI agent
|
|
37
|
+
*
|
|
38
|
+
* @param dirPath - Directory path to check (e.g., '.cursor')
|
|
39
|
+
* @returns Agent name if recognized, null otherwise
|
|
40
|
+
*/
|
|
41
|
+
identifyAgentByDirectory(dirPath: string): string | null;
|
|
42
|
+
/**
|
|
43
|
+
* Get all known agent names
|
|
44
|
+
*
|
|
45
|
+
* @returns Array of agent names
|
|
46
|
+
*/
|
|
47
|
+
getKnownAgentNames(): string[];
|
|
48
|
+
/**
|
|
49
|
+
* Validate that all configured targets correspond to known agents
|
|
50
|
+
*
|
|
51
|
+
* @param targets - Array of target paths from config
|
|
52
|
+
* @returns Array of unknown/invalid targets
|
|
53
|
+
*/
|
|
54
|
+
validateTargets(targets: string[]): string[];
|
|
55
|
+
}
|
|
56
|
+
export declare const agentDetector: AgentDetector;
|
|
57
|
+
//# sourceMappingURL=agent-detector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-detector.d.ts","sourceRoot":"","sources":["../../src/services/agent-detector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAkC9E;;GAEG;AACH,qBAAa,aAAa;IACxB;;;;;;;;;;;;;;OAcG;IACG,YAAY,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA4C9E;;;;;OAKG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,GAAG,UAAU,CAAC,GAAG,IAAI;IAInF;;;;;OAKG;IACH,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAUxD;;;;OAIG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAI9B;;;;;OAKG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;CAI7C;AAGD,eAAO,MAAM,aAAa,eAAsB,CAAC"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Agent Detector - Auto-detect AI coding assistants
|
|
4
|
+
*
|
|
5
|
+
* Detects which AI coding assistants are in use by checking for
|
|
6
|
+
* their configuration directories (.claude/, .cursor/, etc.)
|
|
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.agentDetector = exports.AgentDetector = void 0;
|
|
13
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
14
|
+
const path_1 = __importDefault(require("path"));
|
|
15
|
+
const logger_1 = require("../utils/logger");
|
|
16
|
+
const config_manager_1 = require("./config-manager");
|
|
17
|
+
/**
|
|
18
|
+
* Known AI coding assistants and their directory structures
|
|
19
|
+
*/
|
|
20
|
+
const KNOWN_AGENTS = [
|
|
21
|
+
{
|
|
22
|
+
name: 'claude',
|
|
23
|
+
displayName: 'Claude Code',
|
|
24
|
+
skillsDir: '.claude/skills'
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
name: 'cursor',
|
|
28
|
+
displayName: 'Cursor',
|
|
29
|
+
skillsDir: '.cursor/skills'
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
name: 'windsurf',
|
|
33
|
+
displayName: 'Windsurf',
|
|
34
|
+
skillsDir: '.windsurf/skills'
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
name: 'continue',
|
|
38
|
+
displayName: 'Continue.dev',
|
|
39
|
+
skillsDir: '.continue/skills'
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: 'agents',
|
|
43
|
+
displayName: 'Generic .agents',
|
|
44
|
+
skillsDir: '.agents/skills'
|
|
45
|
+
}
|
|
46
|
+
];
|
|
47
|
+
/**
|
|
48
|
+
* Service for detecting AI coding assistants
|
|
49
|
+
*/
|
|
50
|
+
class AgentDetector {
|
|
51
|
+
/**
|
|
52
|
+
* Detect which AI coding assistants are in use
|
|
53
|
+
*
|
|
54
|
+
* @param cwd - Current working directory (defaults to process.cwd())
|
|
55
|
+
* @returns Detection result with detected, enabled, and suggested agents
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```typescript
|
|
59
|
+
* const detector = new AgentDetector();
|
|
60
|
+
* const result = await detector.detectAgents();
|
|
61
|
+
*
|
|
62
|
+
* console.log(`Found ${result.detected.length} agents`);
|
|
63
|
+
* console.log(`Enabled: ${result.enabled.map(a => a.displayName).join(', ')}`);
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
async detectAgents(cwd = process.cwd()) {
|
|
67
|
+
const detected = [];
|
|
68
|
+
const config = await config_manager_1.configManager.getCraftDeskJson();
|
|
69
|
+
const enabledTargets = config?.multiAgent?.targets || [];
|
|
70
|
+
// Check each known agent
|
|
71
|
+
for (const agent of KNOWN_AGENTS) {
|
|
72
|
+
const agentDir = path_1.default.dirname(agent.skillsDir);
|
|
73
|
+
const fullPath = path_1.default.join(cwd, agentDir);
|
|
74
|
+
// Check if agent directory exists
|
|
75
|
+
const exists = await fs_extra_1.default.pathExists(fullPath);
|
|
76
|
+
if (exists) {
|
|
77
|
+
const isEnabled = enabledTargets.includes(agent.skillsDir);
|
|
78
|
+
detected.push({
|
|
79
|
+
...agent,
|
|
80
|
+
enabled: isEnabled,
|
|
81
|
+
detected: true
|
|
82
|
+
});
|
|
83
|
+
logger_1.logger.debug(`Detected ${agent.displayName} at ${agentDir}`);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
// Always ensure Claude is in the list (canonical for CraftDesk)
|
|
87
|
+
const claudeExists = detected.some(a => a.name === 'claude');
|
|
88
|
+
if (!claudeExists) {
|
|
89
|
+
detected.push({
|
|
90
|
+
name: 'claude',
|
|
91
|
+
displayName: 'Claude Code',
|
|
92
|
+
skillsDir: '.claude/skills',
|
|
93
|
+
enabled: true, // Always enabled as canonical
|
|
94
|
+
detected: false
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
const enabled = detected.filter(a => a.enabled);
|
|
98
|
+
const suggested = detected.filter(a => !a.enabled && a.detected);
|
|
99
|
+
return { detected, enabled, suggested };
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Get configuration for a specific agent by name
|
|
103
|
+
*
|
|
104
|
+
* @param agentName - Name of the agent (e.g., 'cursor', 'windsurf')
|
|
105
|
+
* @returns Agent configuration if found, null otherwise
|
|
106
|
+
*/
|
|
107
|
+
getAgentConfig(agentName) {
|
|
108
|
+
return KNOWN_AGENTS.find(a => a.name === agentName) || null;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Check if a directory belongs to a known AI agent
|
|
112
|
+
*
|
|
113
|
+
* @param dirPath - Directory path to check (e.g., '.cursor')
|
|
114
|
+
* @returns Agent name if recognized, null otherwise
|
|
115
|
+
*/
|
|
116
|
+
identifyAgentByDirectory(dirPath) {
|
|
117
|
+
const normalized = dirPath.replace(/^\.\//, '').replace(/\/$/, '');
|
|
118
|
+
const agent = KNOWN_AGENTS.find(a => {
|
|
119
|
+
const agentDir = path_1.default.dirname(a.skillsDir);
|
|
120
|
+
return agentDir === normalized || agentDir === `.${normalized}`;
|
|
121
|
+
});
|
|
122
|
+
return agent?.name || null;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Get all known agent names
|
|
126
|
+
*
|
|
127
|
+
* @returns Array of agent names
|
|
128
|
+
*/
|
|
129
|
+
getKnownAgentNames() {
|
|
130
|
+
return KNOWN_AGENTS.map(a => a.name);
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Validate that all configured targets correspond to known agents
|
|
134
|
+
*
|
|
135
|
+
* @param targets - Array of target paths from config
|
|
136
|
+
* @returns Array of unknown/invalid targets
|
|
137
|
+
*/
|
|
138
|
+
validateTargets(targets) {
|
|
139
|
+
const knownDirs = KNOWN_AGENTS.map(a => a.skillsDir);
|
|
140
|
+
return targets.filter(t => !knownDirs.includes(t));
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
exports.AgentDetector = AgentDetector;
|
|
144
|
+
// Export singleton instance
|
|
145
|
+
exports.agentDetector = new AgentDetector();
|
|
146
|
+
//# sourceMappingURL=agent-detector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-detector.js","sourceRoot":"","sources":["../../src/services/agent-detector.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-manager.d.ts","sourceRoot":"","sources":["../../src/services/config-manager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD;;;GAGG;AACH,UAAU,YAAY;IACpB,UAAU,EAAE;QACV,CAAC,GAAG,EAAE,MAAM,GAAG;YACb,KAAK,EAAE,MAAM,CAAC;YACd,IAAI,EAAE,MAAM,CAAC;SACd,CAAC;KACH,CAAC;IACF,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,YAAY,CAA6B;IAEjD;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA6B7D;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAY/D;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,kBAAkB;IAU1B;;;;OAIG;IACG,kBAAkB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAKlD;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACG,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgB3D;;;;;;OAMG;IACH,cAAc,IAAI,MAAM;IAKxB;;;;;;;;;;;;;;;OAeG;IACG,gBAAgB,IAAI,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAmBvD;;;;OAIG;IACH,mBAAmB,IAAI,MAAM;IAK7B;;;;;;OAMG;IACG,gBAAgB,IAAI,OAAO,CAAC,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"config-manager.d.ts","sourceRoot":"","sources":["../../src/services/config-manager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD;;;GAGG;AACH,UAAU,YAAY;IACpB,UAAU,EAAE;QACV,CAAC,GAAG,EAAE,MAAM,GAAG;YACb,KAAK,EAAE,MAAM,CAAC;YACd,IAAI,EAAE,MAAM,CAAC;SACd,CAAC;KACH,CAAC;IACF,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,YAAY,CAA6B;IAEjD;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA6B7D;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAY/D;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,kBAAkB;IAU1B;;;;OAIG;IACG,kBAAkB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAKlD;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACG,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgB3D;;;;;;OAMG;IACH,cAAc,IAAI,MAAM;IAKxB;;;;;;;;;;;;;;;OAeG;IACG,gBAAgB,IAAI,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAmBvD;;;;OAIG;IACH,mBAAmB,IAAI,MAAM;IAK7B;;;;;;OAMG;IACG,gBAAgB,IAAI,OAAO,CAAC,YAAY,CAAC;IAiB/C;;;;;;OAMG;IACG,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAO3D;;;;;;;OAOG;IACG,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMvF;;;;;OAKG;IACG,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAU5D;;;;;OAKG;IACG,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAKpE;;;OAGG;IACH,sBAAsB,IAAI,IAAI;CAG/B;AAED,eAAO,MAAM,aAAa,eAAsB,CAAC"}
|
|
@@ -242,8 +242,9 @@ class ConfigManager {
|
|
|
242
242
|
const configPath = this.getGlobalConfigPath();
|
|
243
243
|
try {
|
|
244
244
|
const content = await fs_extra_1.default.readFile(configPath, 'utf-8');
|
|
245
|
-
|
|
246
|
-
|
|
245
|
+
const config = JSON.parse(content);
|
|
246
|
+
this.globalConfig = config;
|
|
247
|
+
return config;
|
|
247
248
|
}
|
|
248
249
|
catch {
|
|
249
250
|
// Return empty config if file doesn't exist
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-manager.js","sourceRoot":"","sources":["../../src/services/config-manager.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config-manager.js","sourceRoot":"","sources":["../../src/services/config-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"craft-wrapper.d.ts","sourceRoot":"","sources":["../../src/services/craft-wrapper.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"craft-wrapper.d.ts","sourceRoot":"","sources":["../../src/services/craft-wrapper.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AASH;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,0BAA0B;IAC1B,SAAS,EAAE,MAAM,CAAC;IAElB,0BAA0B;IAC1B,SAAS,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IAElD,0BAA0B;IAC1B,SAAS,EAAE,MAAM,CAAC;IAElB,iCAAiC;IACjC,OAAO,EAAE,MAAM,CAAC;IAEhB,kBAAkB;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,kBAAkB;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,sBAAsB;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,qBAAqB;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;GAIG;AACH,qBAAa,YAAY;IACvB;;;;;;OAMG;IACG,SAAS,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,GAAE,MAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;IAmEtF;;;;;;OAMG;YACW,cAAc;IAmB5B;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,oBAAoB;IA4D5B;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,iBAAiB;IAmDzB;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB;IAexB;;;;;;OAMG;IACG,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,GAAE,MAAkB,GAAG,OAAO,CAAC,OAAO,CAAC;IAOpF;;;;;;OAMG;IACG,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,GAAE,MAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;CA8BtF;AAGD,eAAO,MAAM,YAAY,cAAqB,CAAC"}
|
|
@@ -17,6 +17,7 @@ const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
|
17
17
|
const path_1 = __importDefault(require("path"));
|
|
18
18
|
const logger_1 = require("../utils/logger");
|
|
19
19
|
const file_system_1 = require("../utils/file-system");
|
|
20
|
+
const version_utils_1 = require("../utils/version-utils");
|
|
20
21
|
/**
|
|
21
22
|
* Service for wrapping individual crafts as Claude Code plugins
|
|
22
23
|
*
|
|
@@ -193,7 +194,7 @@ See the original ${craftType} documentation in the \`${this.getTypeDirectory(cra
|
|
|
193
194
|
- **Plugin Name**: ${pluginName}
|
|
194
195
|
- **Original ${craftType.charAt(0).toUpperCase() + craftType.slice(1)}**: ${craftName}
|
|
195
196
|
- **Wrapped At**: ${new Date().toISOString()}
|
|
196
|
-
- **CraftDesk Version**: 0.
|
|
197
|
+
- **CraftDesk Version**: ${(0, version_utils_1.getCliVersion)()}
|
|
197
198
|
|
|
198
199
|
---
|
|
199
200
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"craft-wrapper.js","sourceRoot":"","sources":["../../src/services/craft-wrapper.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;;;;AAEH,wDAA0B;AAC1B,gDAAwB;AACxB,4CAAyC;AACzC,sDAAiD;
|
|
1
|
+
{"version":3,"file":"craft-wrapper.js","sourceRoot":"","sources":["../../src/services/craft-wrapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-resolver.d.ts","sourceRoot":"","sources":["../../src/services/git-resolver.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,yBAAyB;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,2BAA2B;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wBAAwB;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,2BAA2B;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,gCAAgC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAAS;;IAMxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACG,oBAAoB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"git-resolver.d.ts","sourceRoot":"","sources":["../../src/services/git-resolver.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,yBAAyB;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,2BAA2B;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wBAAwB;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,2BAA2B;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,gCAAgC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAAS;;IAMxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACG,oBAAoB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA4HlF;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,0BAA0B;IAelC;;;;;;;;;;;;OAYG;YACW,cAAc;IA2B5B;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,sBAAsB,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAAC,GAAG,OAAO,CAAC;QAC7F,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACpC,QAAQ,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,eAAe,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;SAAE,CAAC;KAChH,CAAC;CA4FH;AAED,eAAO,MAAM,WAAW,aAAoB,CAAC"}
|
|
@@ -75,21 +75,22 @@ class GitResolver {
|
|
|
75
75
|
await fs_extra_1.default.ensureDir(repoTempDir);
|
|
76
76
|
// Clone the repository
|
|
77
77
|
logger_1.logger.debug(`Cloning ${gitInfo.url} to analyze dependencies...`);
|
|
78
|
-
|
|
78
|
+
const cloneArgs = ['clone', '--depth', '1'];
|
|
79
79
|
if (gitInfo.branch) {
|
|
80
|
-
|
|
80
|
+
cloneArgs.push('-b', gitInfo.branch);
|
|
81
81
|
}
|
|
82
82
|
else if (gitInfo.tag) {
|
|
83
|
-
|
|
83
|
+
cloneArgs.push('-b', gitInfo.tag);
|
|
84
84
|
}
|
|
85
|
-
|
|
86
|
-
(0, child_process_1.
|
|
85
|
+
cloneArgs.push(gitInfo.url, repoTempDir);
|
|
86
|
+
(0, child_process_1.execFileSync)('git', cloneArgs, { stdio: 'pipe' });
|
|
87
87
|
// If specific commit, checkout that commit
|
|
88
88
|
if (gitInfo.commit) {
|
|
89
|
-
(0, child_process_1.
|
|
89
|
+
(0, child_process_1.execFileSync)('git', ['fetch', '--unshallow'], { cwd: repoTempDir, stdio: 'pipe' });
|
|
90
|
+
(0, child_process_1.execFileSync)('git', ['checkout', gitInfo.commit], { cwd: repoTempDir, stdio: 'pipe' });
|
|
90
91
|
}
|
|
91
92
|
// Get the actual commit hash for lockfile
|
|
92
|
-
const resolvedCommit = (0, child_process_1.
|
|
93
|
+
const resolvedCommit = (0, child_process_1.execFileSync)('git', ['rev-parse', 'HEAD'], { cwd: repoTempDir, encoding: 'utf8' }).trim();
|
|
93
94
|
gitInfo.resolvedCommit = resolvedCommit;
|
|
94
95
|
// Handle direct file reference
|
|
95
96
|
if (gitInfo.file) {
|
|
@@ -148,16 +149,21 @@ class GitResolver {
|
|
|
148
149
|
: path_1.default.join(repoTempDir, 'craftdesk.json');
|
|
149
150
|
if (await fs_extra_1.default.pathExists(craftPath)) {
|
|
150
151
|
const content = await fs_extra_1.default.readFile(craftPath, 'utf-8');
|
|
151
|
-
|
|
152
|
-
|
|
152
|
+
const craftJson = JSON.parse(content);
|
|
153
|
+
gitInfo.craftDeskJson = craftJson;
|
|
154
|
+
logger_1.logger.debug(`Found craftdesk.json in git repository: ${craftJson.name}@${craftJson.version}`);
|
|
153
155
|
}
|
|
154
156
|
else {
|
|
155
157
|
// No craftdesk.json found - create a minimal one
|
|
156
158
|
logger_1.logger.warn(`No craftdesk.json found in ${gitInfo.url}${gitInfo.path ? `#path:${gitInfo.path}` : ''}`);
|
|
157
159
|
// Try to infer the type from directory structure
|
|
158
160
|
const type = await this.inferCraftType(repoTempDir, gitInfo.path);
|
|
161
|
+
// Use subdirectory name if path is specified, otherwise use repo name
|
|
162
|
+
const inferredName = gitInfo.path
|
|
163
|
+
? path_1.default.basename(gitInfo.path)
|
|
164
|
+
: path_1.default.basename(gitInfo.url, '.git');
|
|
159
165
|
gitInfo.craftDeskJson = {
|
|
160
|
-
name:
|
|
166
|
+
name: inferredName,
|
|
161
167
|
version: gitInfo.tag || gitInfo.branch || resolvedCommit.substring(0, 7),
|
|
162
168
|
type: type,
|
|
163
169
|
description: `Git dependency from ${gitInfo.url}`,
|
|
@@ -280,7 +286,10 @@ class GitResolver {
|
|
|
280
286
|
const visited = new Set();
|
|
281
287
|
// Process queue until all dependencies are resolved
|
|
282
288
|
while (toResolve.length > 0) {
|
|
283
|
-
const
|
|
289
|
+
const item = toResolve.shift();
|
|
290
|
+
if (!item)
|
|
291
|
+
break; // Should never happen due to length check, but satisfies TypeScript
|
|
292
|
+
const [name, dep] = item;
|
|
284
293
|
// Skip if already resolved (handles duplicates and circular deps)
|
|
285
294
|
if (visited.has(name))
|
|
286
295
|
continue;
|