clavix 2.7.0 → 2.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -8
- package/bin/clavix.js +12 -5
- package/dist/cli/commands/archive.d.ts +5 -4
- package/dist/cli/commands/archive.js +135 -161
- package/dist/cli/commands/config.d.ts +4 -4
- package/dist/cli/commands/config.js +66 -105
- package/dist/cli/commands/deep.d.ts +3 -3
- package/dist/cli/commands/deep.js +97 -103
- package/dist/cli/commands/execute.d.ts +4 -4
- package/dist/cli/commands/execute.js +57 -63
- package/dist/cli/commands/fast.d.ts +3 -3
- package/dist/cli/commands/fast.js +122 -128
- package/dist/cli/commands/implement.d.ts +4 -4
- package/dist/cli/commands/implement.js +84 -148
- package/dist/cli/commands/init.js +87 -126
- package/dist/cli/commands/list.d.ts +5 -5
- package/dist/cli/commands/list.js +72 -111
- package/dist/cli/commands/plan.d.ts +7 -7
- package/dist/cli/commands/plan.js +92 -131
- package/dist/cli/commands/prd.d.ts +4 -4
- package/dist/cli/commands/prd.js +76 -111
- package/dist/cli/commands/prompts/clear.d.ts +6 -6
- package/dist/cli/commands/prompts/clear.js +70 -76
- package/dist/cli/commands/prompts/list.js +37 -43
- package/dist/cli/commands/show.d.ts +4 -4
- package/dist/cli/commands/show.js +72 -111
- package/dist/cli/commands/start.d.ts +3 -3
- package/dist/cli/commands/start.js +63 -101
- package/dist/cli/commands/summarize.d.ts +4 -4
- package/dist/cli/commands/summarize.js +81 -120
- package/dist/cli/commands/task-complete.d.ts +4 -4
- package/dist/cli/commands/task-complete.js +86 -123
- package/dist/cli/commands/update.d.ts +3 -3
- package/dist/cli/commands/update.js +97 -130
- package/dist/cli/commands/version.js +13 -48
- package/dist/core/adapters/agents-md-generator.js +17 -50
- package/dist/core/adapters/amp-adapter.d.ts +1 -1
- package/dist/core/adapters/amp-adapter.js +13 -21
- package/dist/core/adapters/augment-adapter.d.ts +2 -2
- package/dist/core/adapters/augment-adapter.js +16 -56
- package/dist/core/adapters/base-adapter.d.ts +1 -1
- package/dist/core/adapters/base-adapter.js +11 -47
- package/dist/core/adapters/claude-code-adapter.d.ts +2 -2
- package/dist/core/adapters/claude-code-adapter.js +19 -60
- package/dist/core/adapters/cline-adapter.d.ts +1 -1
- package/dist/core/adapters/cline-adapter.js +13 -21
- package/dist/core/adapters/codebuddy-adapter.d.ts +2 -2
- package/dist/core/adapters/codebuddy-adapter.js +17 -57
- package/dist/core/adapters/codex-adapter.d.ts +2 -2
- package/dist/core/adapters/codex-adapter.js +16 -56
- package/dist/core/adapters/copilot-instructions-generator.js +18 -51
- package/dist/core/adapters/crush-adapter.d.ts +2 -2
- package/dist/core/adapters/crush-adapter.js +13 -20
- package/dist/core/adapters/cursor-adapter.d.ts +1 -1
- package/dist/core/adapters/cursor-adapter.js +12 -20
- package/dist/core/adapters/droid-adapter.d.ts +2 -2
- package/dist/core/adapters/droid-adapter.js +14 -21
- package/dist/core/adapters/gemini-adapter.d.ts +2 -2
- package/dist/core/adapters/gemini-adapter.js +16 -52
- package/dist/core/adapters/kilocode-adapter.d.ts +1 -1
- package/dist/core/adapters/kilocode-adapter.js +12 -20
- package/dist/core/adapters/octo-md-generator.js +17 -50
- package/dist/core/adapters/opencode-adapter.d.ts +2 -2
- package/dist/core/adapters/opencode-adapter.js +14 -21
- package/dist/core/adapters/qwen-adapter.d.ts +2 -2
- package/dist/core/adapters/qwen-adapter.js +16 -52
- package/dist/core/adapters/roocode-adapter.d.ts +2 -2
- package/dist/core/adapters/roocode-adapter.js +12 -19
- package/dist/core/adapters/warp-md-generator.js +17 -50
- package/dist/core/adapters/windsurf-adapter.d.ts +1 -1
- package/dist/core/adapters/windsurf-adapter.js +12 -20
- package/dist/core/agent-manager.d.ts +1 -1
- package/dist/core/agent-manager.js +34 -38
- package/dist/core/archive-manager.js +10 -46
- package/dist/core/config-manager.d.ts +2 -2
- package/dist/core/config-manager.js +3 -40
- package/dist/core/conversation-analyzer.d.ts +1 -1
- package/dist/core/conversation-analyzer.js +1 -5
- package/dist/core/doc-injector.js +23 -60
- package/dist/core/git-manager.js +11 -48
- package/dist/core/prd-generator.js +16 -51
- package/dist/core/prompt-manager.js +6 -42
- package/dist/core/prompt-optimizer.js +1 -5
- package/dist/core/question-engine.js +6 -45
- package/dist/core/session-manager.d.ts +1 -1
- package/dist/core/session-manager.js +11 -49
- package/dist/core/task-manager.d.ts +26 -0
- package/dist/core/task-manager.js +243 -101
- package/dist/index.d.ts +2 -1
- package/dist/index.js +8 -12
- package/dist/templates/agents/agents.md +31 -2
- package/dist/templates/agents/copilot-instructions.md +1 -1
- package/dist/templates/agents/octo.md +20 -1
- package/dist/templates/agents/warp.md +1 -1
- package/dist/templates/slash-commands/_canonical/implement.md +33 -11
- package/dist/types/agent.js +1 -2
- package/dist/types/config.js +3 -8
- package/dist/types/errors.js +7 -13
- package/dist/types/session.js +1 -2
- package/dist/utils/agent-error-messages.js +1 -5
- package/dist/utils/error-utils.js +5 -12
- package/dist/utils/file-system.js +20 -57
- package/dist/utils/legacy-command-cleanup.d.ts +1 -1
- package/dist/utils/legacy-command-cleanup.js +9 -45
- package/dist/utils/template-loader.d.ts +1 -1
- package/dist/utils/template-loader.js +9 -41
- package/dist/utils/toml-templates.js +1 -4
- package/package.json +12 -7
- package/dist/core/adapters 2/agents-md-generator.d.ts +0 -26
- package/dist/core/adapters 2/agents-md-generator.js +0 -102
- package/dist/core/adapters 2/amp-adapter.d.ts +0 -27
- package/dist/core/adapters 2/amp-adapter.js +0 -42
- package/dist/core/adapters 2/augment-adapter.d.ts +0 -22
- package/dist/core/adapters 2/augment-adapter.js +0 -77
- package/dist/core/adapters 2/base-adapter.d.ts +0 -45
- package/dist/core/adapters 2/base-adapter.js +0 -142
- package/dist/core/adapters 2/claude-code-adapter.d.ts +0 -32
- package/dist/core/adapters 2/claude-code-adapter.js +0 -116
- package/dist/core/adapters 2/cline-adapter.d.ts +0 -34
- package/dist/core/adapters 2/cline-adapter.js +0 -52
- package/dist/core/adapters 2/codebuddy-adapter.d.ts +0 -24
- package/dist/core/adapters 2/codebuddy-adapter.js +0 -82
- package/dist/core/adapters 2/codex-adapter.d.ts +0 -24
- package/dist/core/adapters 2/codex-adapter.js +0 -79
- package/dist/core/adapters 2/copilot-instructions-generator.d.ts +0 -26
- package/dist/core/adapters 2/copilot-instructions-generator.js +0 -104
- package/dist/core/adapters 2/crush-adapter.d.ts +0 -35
- package/dist/core/adapters 2/crush-adapter.js +0 -49
- package/dist/core/adapters 2/cursor-adapter.d.ts +0 -25
- package/dist/core/adapters 2/cursor-adapter.js +0 -40
- package/dist/core/adapters 2/droid-adapter.d.ts +0 -33
- package/dist/core/adapters 2/droid-adapter.js +0 -57
- package/dist/core/adapters 2/gemini-adapter.d.ts +0 -27
- package/dist/core/adapters 2/gemini-adapter.js +0 -90
- package/dist/core/adapters 2/kilocode-adapter.d.ts +0 -34
- package/dist/core/adapters 2/kilocode-adapter.js +0 -49
- package/dist/core/adapters 2/octo-md-generator.d.ts +0 -26
- package/dist/core/adapters 2/octo-md-generator.js +0 -102
- package/dist/core/adapters 2/opencode-adapter.d.ts +0 -33
- package/dist/core/adapters 2/opencode-adapter.js +0 -56
- package/dist/core/adapters 2/qwen-adapter.d.ts +0 -27
- package/dist/core/adapters 2/qwen-adapter.js +0 -90
- package/dist/core/adapters 2/roocode-adapter.d.ts +0 -40
- package/dist/core/adapters 2/roocode-adapter.js +0 -68
- package/dist/core/adapters 2/warp-md-generator.d.ts +0 -17
- package/dist/core/adapters 2/warp-md-generator.js +0 -88
- package/dist/core/adapters 2/windsurf-adapter.d.ts +0 -34
- package/dist/core/adapters 2/windsurf-adapter.js +0 -49
- package/dist/core/agent-manager 2.js +0 -126
- package/dist/core/agent-manager.d 2.ts +0 -51
- package/dist/core/archive-manager 2.js +0 -338
- package/dist/core/archive-manager.d 2.ts +0 -100
- package/dist/core/conversation-analyzer.d 2.ts +0 -86
- package/dist/core/doc-injector 2.js +0 -236
- package/dist/core/doc-injector.d 2.ts +0 -51
- package/dist/core/git-manager 2.js +0 -214
- package/dist/core/git-manager.d 2.ts +0 -100
- package/dist/core/prompt-optimizer 2.js +0 -963
- package/dist/core/prompt-optimizer.d 2.ts +0 -268
- package/dist/core/question-engine 2.js +0 -395
- package/dist/core/question-engine.d 2.ts +0 -167
- package/dist/core/session-manager 2.js +0 -403
- package/dist/core/session-manager.d 2.ts +0 -139
- package/dist/core/task-manager 2.js +0 -689
- package/dist/core/task-manager.d 2.ts +0 -155
|
@@ -1,66 +1,27 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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.AugmentAdapter = void 0;
|
|
37
|
-
const os = __importStar(require("os"));
|
|
38
|
-
const path = __importStar(require("path"));
|
|
39
|
-
const base_adapter_1 = require("./base-adapter");
|
|
40
|
-
const file_system_1 = require("../../utils/file-system");
|
|
1
|
+
import * as os from 'os';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import { BaseAdapter } from './base-adapter.js';
|
|
4
|
+
import { FileSystem } from '../../utils/file-system.js';
|
|
41
5
|
/**
|
|
42
6
|
* Augment CLI adapter
|
|
43
7
|
* Commands stored in .augment/commands/clavix with optional subdirectories
|
|
44
8
|
*/
|
|
45
|
-
class AugmentAdapter extends
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
frontmatterFields: ['description', 'argument-hint', 'model'],
|
|
56
|
-
};
|
|
57
|
-
}
|
|
9
|
+
export class AugmentAdapter extends BaseAdapter {
|
|
10
|
+
name = 'augment';
|
|
11
|
+
displayName = 'Augment CLI';
|
|
12
|
+
directory = '.augment/commands/clavix';
|
|
13
|
+
fileExtension = '.md';
|
|
14
|
+
features = {
|
|
15
|
+
supportsSubdirectories: true,
|
|
16
|
+
supportsFrontmatter: true,
|
|
17
|
+
frontmatterFields: ['description', 'argument-hint', 'model'],
|
|
18
|
+
};
|
|
58
19
|
async detectProject() {
|
|
59
|
-
if (await
|
|
20
|
+
if (await FileSystem.exists('.augment')) {
|
|
60
21
|
return true;
|
|
61
22
|
}
|
|
62
23
|
const homeAugmentDir = path.join(this.getHomeDir(), '.augment');
|
|
63
|
-
return
|
|
24
|
+
return FileSystem.exists(homeAugmentDir);
|
|
64
25
|
}
|
|
65
26
|
getCommandPath() {
|
|
66
27
|
return this.directory;
|
|
@@ -73,5 +34,4 @@ class AugmentAdapter extends base_adapter_1.BaseAdapter {
|
|
|
73
34
|
return process.env.CLAVIX_HOME_OVERRIDE || os.homedir();
|
|
74
35
|
}
|
|
75
36
|
}
|
|
76
|
-
exports.AugmentAdapter = AugmentAdapter;
|
|
77
37
|
//# sourceMappingURL=augment-adapter.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AgentAdapter, CommandTemplate, ManagedBlock, ProviderFeatures, ValidationResult } from '../../types/agent';
|
|
1
|
+
import { AgentAdapter, CommandTemplate, ManagedBlock, ProviderFeatures, ValidationResult } from '../../types/agent.js';
|
|
2
2
|
/**
|
|
3
3
|
* Base adapter class with shared logic for all providers
|
|
4
4
|
* Ensures consistency and reduces code duplication
|
|
@@ -1,47 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
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.BaseAdapter = void 0;
|
|
37
|
-
const path = __importStar(require("path"));
|
|
38
|
-
const file_system_1 = require("../../utils/file-system");
|
|
39
|
-
const errors_1 = require("../../types/errors");
|
|
1
|
+
import * as path from 'path';
|
|
2
|
+
import { FileSystem } from '../../utils/file-system.js';
|
|
3
|
+
import { IntegrationError } from '../../types/errors.js';
|
|
40
4
|
/**
|
|
41
5
|
* Base adapter class with shared logic for all providers
|
|
42
6
|
* Ensures consistency and reduces code duplication
|
|
43
7
|
*/
|
|
44
|
-
class BaseAdapter {
|
|
8
|
+
export class BaseAdapter {
|
|
9
|
+
features;
|
|
45
10
|
/**
|
|
46
11
|
* Determine the target filename for a generated command
|
|
47
12
|
* Providers can override to customize filename conventions
|
|
@@ -59,14 +24,14 @@ class BaseAdapter {
|
|
|
59
24
|
const commandPath = this.getCommandPath();
|
|
60
25
|
// Check if parent directory exists
|
|
61
26
|
const parentDir = path.dirname(commandPath);
|
|
62
|
-
if (!(await
|
|
27
|
+
if (!(await FileSystem.exists(parentDir))) {
|
|
63
28
|
// Check if we can create parent by finding first existing ancestor
|
|
64
29
|
let ancestorDir = parentDir;
|
|
65
30
|
let canCreate = false;
|
|
66
31
|
// Walk up the directory tree until we find an existing directory
|
|
67
32
|
while (ancestorDir !== '.' && ancestorDir !== '/' && ancestorDir.length > 0) {
|
|
68
33
|
ancestorDir = path.dirname(ancestorDir);
|
|
69
|
-
if (await
|
|
34
|
+
if (await FileSystem.exists(ancestorDir)) {
|
|
70
35
|
canCreate = true;
|
|
71
36
|
break;
|
|
72
37
|
}
|
|
@@ -82,7 +47,7 @@ class BaseAdapter {
|
|
|
82
47
|
// Try to ensure directory exists
|
|
83
48
|
if (errors.length === 0) {
|
|
84
49
|
try {
|
|
85
|
-
await
|
|
50
|
+
await FileSystem.ensureDir(commandPath);
|
|
86
51
|
}
|
|
87
52
|
catch (error) {
|
|
88
53
|
errors.push(`Cannot create command directory: ${error}`);
|
|
@@ -102,17 +67,17 @@ class BaseAdapter {
|
|
|
102
67
|
const commandPath = this.getCommandPath();
|
|
103
68
|
try {
|
|
104
69
|
// Ensure directory exists
|
|
105
|
-
await
|
|
70
|
+
await FileSystem.ensureDir(commandPath);
|
|
106
71
|
// Generate each command file
|
|
107
72
|
for (const template of templates) {
|
|
108
73
|
const content = this.formatCommand(template);
|
|
109
74
|
const filename = this.getTargetFilename(template.name);
|
|
110
75
|
const filePath = path.join(commandPath, filename);
|
|
111
|
-
await
|
|
76
|
+
await FileSystem.writeFileAtomic(filePath, content);
|
|
112
77
|
}
|
|
113
78
|
}
|
|
114
79
|
catch (error) {
|
|
115
|
-
throw new
|
|
80
|
+
throw new IntegrationError(`Failed to generate ${this.displayName} commands: ${error}`, `Ensure ${commandPath} is writable`);
|
|
116
81
|
}
|
|
117
82
|
}
|
|
118
83
|
/**
|
|
@@ -138,5 +103,4 @@ class BaseAdapter {
|
|
|
138
103
|
return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
139
104
|
}
|
|
140
105
|
}
|
|
141
|
-
exports.BaseAdapter = BaseAdapter;
|
|
142
106
|
//# sourceMappingURL=base-adapter.js.map
|
|
@@ -1,65 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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.ClaudeCodeAdapter = void 0;
|
|
37
|
-
const path = __importStar(require("path"));
|
|
38
|
-
const base_adapter_1 = require("./base-adapter");
|
|
39
|
-
const file_system_1 = require("../../utils/file-system");
|
|
40
|
-
const errors_1 = require("../../types/errors");
|
|
1
|
+
import * as path from 'path';
|
|
2
|
+
import { BaseAdapter } from './base-adapter.js';
|
|
3
|
+
import { FileSystem } from '../../utils/file-system.js';
|
|
4
|
+
import { IntegrationError } from '../../types/errors.js';
|
|
41
5
|
/**
|
|
42
6
|
* Claude Code agent adapter
|
|
43
7
|
*/
|
|
44
|
-
class ClaudeCodeAdapter extends
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
supportsFrontmatter: false,
|
|
54
|
-
};
|
|
55
|
-
// escapeRegex is inherited from BaseAdapter
|
|
56
|
-
}
|
|
8
|
+
export class ClaudeCodeAdapter extends BaseAdapter {
|
|
9
|
+
name = 'claude-code';
|
|
10
|
+
displayName = 'Claude Code';
|
|
11
|
+
directory = '.claude/commands/clavix';
|
|
12
|
+
fileExtension = '.md';
|
|
13
|
+
features = {
|
|
14
|
+
supportsSubdirectories: true,
|
|
15
|
+
supportsFrontmatter: false,
|
|
16
|
+
};
|
|
57
17
|
/**
|
|
58
18
|
* Detect if Claude Code is available in the project
|
|
59
19
|
*/
|
|
60
20
|
async detectProject() {
|
|
61
21
|
// Check if .claude directory exists
|
|
62
|
-
return await
|
|
22
|
+
return await FileSystem.exists('.claude');
|
|
63
23
|
}
|
|
64
24
|
/**
|
|
65
25
|
* Get command path for Claude Code
|
|
@@ -78,7 +38,7 @@ class ClaudeCodeAdapter extends base_adapter_1.BaseAdapter {
|
|
|
78
38
|
}
|
|
79
39
|
}
|
|
80
40
|
catch (error) {
|
|
81
|
-
throw new
|
|
41
|
+
throw new IntegrationError(`Failed to inject documentation: ${error}`, 'Ensure target files are writable');
|
|
82
42
|
}
|
|
83
43
|
}
|
|
84
44
|
/**
|
|
@@ -88,13 +48,13 @@ class ClaudeCodeAdapter extends base_adapter_1.BaseAdapter {
|
|
|
88
48
|
const fullPath = path.resolve(filePath);
|
|
89
49
|
let fileContent = '';
|
|
90
50
|
// Read existing file or create new
|
|
91
|
-
if (await
|
|
92
|
-
fileContent = await
|
|
51
|
+
if (await FileSystem.exists(fullPath)) {
|
|
52
|
+
fileContent = await FileSystem.readFile(fullPath);
|
|
93
53
|
}
|
|
94
54
|
else {
|
|
95
55
|
// Create parent directory if needed
|
|
96
56
|
const dir = path.dirname(fullPath);
|
|
97
|
-
await
|
|
57
|
+
await FileSystem.ensureDir(dir);
|
|
98
58
|
}
|
|
99
59
|
const blockRegex = new RegExp(`${this.escapeRegex(startMarker)}[\\s\\S]*?${this.escapeRegex(endMarker)}`, 'g');
|
|
100
60
|
const wrappedContent = `${startMarker}\n${content}\n${endMarker}`;
|
|
@@ -109,8 +69,7 @@ class ClaudeCodeAdapter extends base_adapter_1.BaseAdapter {
|
|
|
109
69
|
}
|
|
110
70
|
fileContent += wrappedContent + '\n';
|
|
111
71
|
}
|
|
112
|
-
await
|
|
72
|
+
await FileSystem.writeFileAtomic(fullPath, fileContent);
|
|
113
73
|
}
|
|
114
74
|
}
|
|
115
|
-
exports.ClaudeCodeAdapter = ClaudeCodeAdapter;
|
|
116
75
|
//# sourceMappingURL=claude-code-adapter.js.map
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.ClineAdapter = void 0;
|
|
4
|
-
const base_adapter_1 = require("./base-adapter");
|
|
5
|
-
const file_system_1 = require("../../utils/file-system");
|
|
1
|
+
import { BaseAdapter } from './base-adapter.js';
|
|
2
|
+
import { FileSystem } from '../../utils/file-system.js';
|
|
6
3
|
/**
|
|
7
4
|
* Cline adapter
|
|
8
5
|
* Workflows stored in .cline/workflows/ (flat structure, no subdirectories)
|
|
@@ -15,28 +12,24 @@ const file_system_1 = require("../../utils/file-system");
|
|
|
15
12
|
*
|
|
16
13
|
* Reference: https://docs.cline.bot/features/slash-commands/workflows
|
|
17
14
|
*/
|
|
18
|
-
class ClineAdapter extends
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
supportsFrontmatter: false,
|
|
28
|
-
};
|
|
29
|
-
// Uses default formatCommand and generateCommands from BaseAdapter
|
|
30
|
-
}
|
|
15
|
+
export class ClineAdapter extends BaseAdapter {
|
|
16
|
+
name = 'cline';
|
|
17
|
+
displayName = 'Cline';
|
|
18
|
+
directory = '.clinerules/workflows';
|
|
19
|
+
fileExtension = '.md';
|
|
20
|
+
features = {
|
|
21
|
+
supportsSubdirectories: false,
|
|
22
|
+
supportsFrontmatter: false,
|
|
23
|
+
};
|
|
31
24
|
/**
|
|
32
25
|
* Detect if Cline is available in the project
|
|
33
26
|
* Checks for .cline directory
|
|
34
27
|
*/
|
|
35
28
|
async detectProject() {
|
|
36
|
-
if (await
|
|
29
|
+
if (await FileSystem.exists('.clinerules')) {
|
|
37
30
|
return true;
|
|
38
31
|
}
|
|
39
|
-
return await
|
|
32
|
+
return await FileSystem.exists('.cline');
|
|
40
33
|
}
|
|
41
34
|
/**
|
|
42
35
|
* Get command path for Cline
|
|
@@ -48,5 +41,4 @@ class ClineAdapter extends base_adapter_1.BaseAdapter {
|
|
|
48
41
|
return `clavix-${name}${this.fileExtension}`;
|
|
49
42
|
}
|
|
50
43
|
}
|
|
51
|
-
exports.ClineAdapter = ClineAdapter;
|
|
52
44
|
//# sourceMappingURL=cline-adapter.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { BaseAdapter } from './base-adapter';
|
|
2
|
-
import { CommandTemplate } from '../../types/agent';
|
|
1
|
+
import { BaseAdapter } from './base-adapter.js';
|
|
2
|
+
import { CommandTemplate } from '../../types/agent.js';
|
|
3
3
|
/**
|
|
4
4
|
* CodeBuddy CLI adapter
|
|
5
5
|
* Commands stored in .codebuddy/commands with YAML frontmatter
|
|
@@ -1,67 +1,28 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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.CodeBuddyAdapter = void 0;
|
|
37
|
-
const os = __importStar(require("os"));
|
|
38
|
-
const path = __importStar(require("path"));
|
|
39
|
-
const base_adapter_1 = require("./base-adapter");
|
|
40
|
-
const file_system_1 = require("../../utils/file-system");
|
|
1
|
+
import * as os from 'os';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import { BaseAdapter } from './base-adapter.js';
|
|
4
|
+
import { FileSystem } from '../../utils/file-system.js';
|
|
41
5
|
/**
|
|
42
6
|
* CodeBuddy CLI adapter
|
|
43
7
|
* Commands stored in .codebuddy/commands with YAML frontmatter
|
|
44
8
|
*/
|
|
45
|
-
class CodeBuddyAdapter extends
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
frontmatterFields: ['description', 'argument-hint'],
|
|
57
|
-
};
|
|
58
|
-
}
|
|
9
|
+
export class CodeBuddyAdapter extends BaseAdapter {
|
|
10
|
+
name = 'codebuddy';
|
|
11
|
+
displayName = 'CodeBuddy';
|
|
12
|
+
directory = '.codebuddy/commands';
|
|
13
|
+
fileExtension = '.md';
|
|
14
|
+
features = {
|
|
15
|
+
supportsSubdirectories: false,
|
|
16
|
+
supportsFrontmatter: true,
|
|
17
|
+
argumentPlaceholder: '$1',
|
|
18
|
+
frontmatterFields: ['description', 'argument-hint'],
|
|
19
|
+
};
|
|
59
20
|
async detectProject() {
|
|
60
|
-
if (await
|
|
21
|
+
if (await FileSystem.exists('.codebuddy')) {
|
|
61
22
|
return true;
|
|
62
23
|
}
|
|
63
24
|
const homePath = path.join(this.getHomeDir(), '.codebuddy');
|
|
64
|
-
return await
|
|
25
|
+
return await FileSystem.exists(homePath);
|
|
65
26
|
}
|
|
66
27
|
getCommandPath() {
|
|
67
28
|
return this.directory;
|
|
@@ -78,5 +39,4 @@ class CodeBuddyAdapter extends base_adapter_1.BaseAdapter {
|
|
|
78
39
|
return process.env.CLAVIX_HOME_OVERRIDE || os.homedir();
|
|
79
40
|
}
|
|
80
41
|
}
|
|
81
|
-
exports.CodeBuddyAdapter = CodeBuddyAdapter;
|
|
82
42
|
//# sourceMappingURL=codebuddy-adapter.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { BaseAdapter } from './base-adapter';
|
|
2
|
-
import { CommandTemplate } from '../../types/agent';
|
|
1
|
+
import { BaseAdapter } from './base-adapter.js';
|
|
2
|
+
import { CommandTemplate } from '../../types/agent.js';
|
|
3
3
|
/**
|
|
4
4
|
* Codex CLI adapter
|
|
5
5
|
* Commands stored globally under ~/.codex/prompts
|
|
@@ -1,64 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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.CodexAdapter = void 0;
|
|
37
|
-
const os = __importStar(require("os"));
|
|
38
|
-
const path = __importStar(require("path"));
|
|
39
|
-
const base_adapter_1 = require("./base-adapter");
|
|
40
|
-
const file_system_1 = require("../../utils/file-system");
|
|
1
|
+
import * as os from 'os';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import { BaseAdapter } from './base-adapter.js';
|
|
4
|
+
import { FileSystem } from '../../utils/file-system.js';
|
|
41
5
|
/**
|
|
42
6
|
* Codex CLI adapter
|
|
43
7
|
* Commands stored globally under ~/.codex/prompts
|
|
44
8
|
*/
|
|
45
|
-
class CodexAdapter extends
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
frontmatterFields: ['description', 'argument-hint'],
|
|
57
|
-
};
|
|
58
|
-
}
|
|
9
|
+
export class CodexAdapter extends BaseAdapter {
|
|
10
|
+
name = 'codex';
|
|
11
|
+
displayName = 'Codex CLI';
|
|
12
|
+
directory = '~/.codex/prompts';
|
|
13
|
+
fileExtension = '.md';
|
|
14
|
+
features = {
|
|
15
|
+
supportsSubdirectories: false,
|
|
16
|
+
supportsFrontmatter: true,
|
|
17
|
+
argumentPlaceholder: '$ARGUMENTS',
|
|
18
|
+
frontmatterFields: ['description', 'argument-hint'],
|
|
19
|
+
};
|
|
59
20
|
async detectProject() {
|
|
60
21
|
const codexDir = path.join(this.getHomeDir(), '.codex');
|
|
61
|
-
return await
|
|
22
|
+
return await FileSystem.exists(codexDir);
|
|
62
23
|
}
|
|
63
24
|
getCommandPath() {
|
|
64
25
|
return path.join(this.getHomeDir(), '.codex', 'prompts');
|
|
@@ -75,5 +36,4 @@ class CodexAdapter extends base_adapter_1.BaseAdapter {
|
|
|
75
36
|
return process.env.CLAVIX_HOME_OVERRIDE || os.homedir();
|
|
76
37
|
}
|
|
77
38
|
}
|
|
78
|
-
exports.CodexAdapter = CodexAdapter;
|
|
79
39
|
//# sourceMappingURL=codex-adapter.js.map
|