clavix 2.3.0 → 2.4.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/dist/cli/commands/init.js +1 -1
- package/dist/core 2/adapters/agents-md-generator.d.ts +26 -0
- package/dist/core 2/adapters/agents-md-generator.js +102 -0
- package/dist/core 2/adapters/amp-adapter.d.ts +27 -0
- package/dist/core 2/adapters/amp-adapter.js +42 -0
- package/dist/core 2/adapters/augment-adapter.d.ts +22 -0
- package/dist/core 2/adapters/augment-adapter.js +77 -0
- package/dist/core 2/adapters/base-adapter.d.ts +45 -0
- package/dist/core 2/adapters/base-adapter.js +142 -0
- package/dist/core 2/adapters/claude-code-adapter.d.ts +32 -0
- package/dist/core 2/adapters/claude-code-adapter.js +116 -0
- package/dist/core 2/adapters/cline-adapter.d.ts +34 -0
- package/dist/core 2/adapters/cline-adapter.js +52 -0
- package/dist/core 2/adapters/codebuddy-adapter.d.ts +24 -0
- package/dist/core 2/adapters/codebuddy-adapter.js +82 -0
- package/dist/core 2/adapters/codex-adapter.d.ts +24 -0
- package/dist/core 2/adapters/codex-adapter.js +79 -0
- package/dist/core 2/adapters/copilot-instructions-generator.d.ts +26 -0
- package/dist/core 2/adapters/copilot-instructions-generator.js +104 -0
- package/dist/core 2/adapters/crush-adapter.d.ts +35 -0
- package/dist/core 2/adapters/crush-adapter.js +49 -0
- package/dist/core 2/adapters/cursor-adapter.d.ts +25 -0
- package/dist/core 2/adapters/cursor-adapter.js +40 -0
- package/dist/core 2/adapters/droid-adapter.d.ts +33 -0
- package/dist/core 2/adapters/droid-adapter.js +57 -0
- package/dist/core 2/adapters/gemini-adapter.d.ts +27 -0
- package/dist/core 2/adapters/gemini-adapter.js +90 -0
- package/dist/core 2/adapters/kilocode-adapter.d.ts +34 -0
- package/dist/core 2/adapters/kilocode-adapter.js +49 -0
- package/dist/core 2/adapters/octo-md-generator.d.ts +26 -0
- package/dist/core 2/adapters/octo-md-generator.js +102 -0
- package/dist/core 2/adapters/opencode-adapter.d.ts +33 -0
- package/dist/core 2/adapters/opencode-adapter.js +56 -0
- package/dist/core 2/adapters/qwen-adapter.d.ts +27 -0
- package/dist/core 2/adapters/qwen-adapter.js +90 -0
- package/dist/core 2/adapters/roocode-adapter.d.ts +40 -0
- package/dist/core 2/adapters/roocode-adapter.js +68 -0
- package/dist/core 2/adapters/warp-md-generator.d.ts +17 -0
- package/dist/core 2/adapters/warp-md-generator.js +88 -0
- package/dist/core 2/adapters/windsurf-adapter.d.ts +34 -0
- package/dist/core 2/adapters/windsurf-adapter.js +49 -0
- package/dist/core 2/agent-manager.d.ts +51 -0
- package/dist/core 2/agent-manager.js +126 -0
- package/dist/core 2/archive-manager.d.ts +100 -0
- package/dist/core 2/archive-manager.js +338 -0
- package/dist/core 2/conversation-analyzer.d.ts +86 -0
- package/dist/core 2/doc-injector.d.ts +51 -0
- package/dist/core 2/doc-injector.js +236 -0
- package/dist/core 2/git-manager.d.ts +100 -0
- package/dist/core 2/git-manager.js +214 -0
- package/dist/core 2/prompt-optimizer.d.ts +268 -0
- package/dist/core 2/prompt-optimizer.js +963 -0
- package/dist/core 2/question-engine.d.ts +167 -0
- package/dist/core 2/question-engine.js +395 -0
- package/dist/core 2/session-manager.d.ts +139 -0
- package/dist/core 2/session-manager.js +403 -0
- package/dist/core 2/task-manager.d.ts +155 -0
- package/dist/core 2/task-manager.js +689 -0
- package/dist/utils/template-loader.js +24 -22
- package/package.json +1 -1
- package/dist/templates/slash-commands/augment/archive.md +0 -291
- package/dist/templates/slash-commands/augment/deep.md +0 -207
- package/dist/templates/slash-commands/augment/fast.md +0 -183
- package/dist/templates/slash-commands/augment/implement.md +0 -267
- package/dist/templates/slash-commands/augment/plan.md +0 -173
- package/dist/templates/slash-commands/augment/prd.md +0 -178
- package/dist/templates/slash-commands/augment/start.md +0 -142
- package/dist/templates/slash-commands/augment/summarize.md +0 -179
- package/dist/templates/slash-commands/claude-code/archive.md +0 -291
- package/dist/templates/slash-commands/claude-code/deep.md +0 -207
- package/dist/templates/slash-commands/claude-code/fast.md +0 -183
- package/dist/templates/slash-commands/claude-code/implement.md +0 -267
- package/dist/templates/slash-commands/claude-code/plan.md +0 -173
- package/dist/templates/slash-commands/claude-code/prd.md +0 -178
- package/dist/templates/slash-commands/claude-code/start.md +0 -142
- package/dist/templates/slash-commands/claude-code/summarize.md +0 -179
- package/dist/templates/slash-commands/cline/archive.md +0 -291
- package/dist/templates/slash-commands/cline/deep.md +0 -207
- package/dist/templates/slash-commands/cline/fast.md +0 -183
- package/dist/templates/slash-commands/cline/implement.md +0 -267
- package/dist/templates/slash-commands/cline/plan.md +0 -173
- package/dist/templates/slash-commands/cline/prd.md +0 -178
- package/dist/templates/slash-commands/cline/start.md +0 -142
- package/dist/templates/slash-commands/cline/summarize.md +0 -179
- package/dist/templates/slash-commands/codebuddy/archive.md +0 -291
- package/dist/templates/slash-commands/codebuddy/deep.md +0 -207
- package/dist/templates/slash-commands/codebuddy/fast.md +0 -183
- package/dist/templates/slash-commands/codebuddy/implement.md +0 -267
- package/dist/templates/slash-commands/codebuddy/plan.md +0 -173
- package/dist/templates/slash-commands/codebuddy/prd.md +0 -178
- package/dist/templates/slash-commands/codebuddy/start.md +0 -142
- package/dist/templates/slash-commands/codebuddy/summarize.md +0 -179
- package/dist/templates/slash-commands/codex/archive.md +0 -291
- package/dist/templates/slash-commands/codex/deep.md +0 -207
- package/dist/templates/slash-commands/codex/fast.md +0 -183
- package/dist/templates/slash-commands/codex/implement.md +0 -267
- package/dist/templates/slash-commands/codex/plan.md +0 -173
- package/dist/templates/slash-commands/codex/prd.md +0 -178
- package/dist/templates/slash-commands/codex/start.md +0 -142
- package/dist/templates/slash-commands/codex/summarize.md +0 -179
- package/dist/templates/slash-commands/crush/archive.md +0 -291
- package/dist/templates/slash-commands/crush/deep.md +0 -207
- package/dist/templates/slash-commands/crush/fast.md +0 -183
- package/dist/templates/slash-commands/crush/implement.md +0 -267
- package/dist/templates/slash-commands/crush/plan.md +0 -173
- package/dist/templates/slash-commands/crush/prd.md +0 -178
- package/dist/templates/slash-commands/crush/start.md +0 -142
- package/dist/templates/slash-commands/crush/summarize.md +0 -179
- package/dist/templates/slash-commands/cursor/archive.md +0 -291
- package/dist/templates/slash-commands/cursor/deep.md +0 -207
- package/dist/templates/slash-commands/cursor/fast.md +0 -183
- package/dist/templates/slash-commands/cursor/implement.md +0 -267
- package/dist/templates/slash-commands/cursor/plan.md +0 -173
- package/dist/templates/slash-commands/cursor/prd.md +0 -178
- package/dist/templates/slash-commands/cursor/start.md +0 -142
- package/dist/templates/slash-commands/cursor/summarize.md +0 -179
- package/dist/templates/slash-commands/droid/archive.md +0 -291
- package/dist/templates/slash-commands/droid/deep.md +0 -207
- package/dist/templates/slash-commands/droid/fast.md +0 -183
- package/dist/templates/slash-commands/droid/implement.md +0 -267
- package/dist/templates/slash-commands/droid/plan.md +0 -173
- package/dist/templates/slash-commands/droid/prd.md +0 -178
- package/dist/templates/slash-commands/droid/start.md +0 -142
- package/dist/templates/slash-commands/droid/summarize.md +0 -179
- package/dist/templates/slash-commands/gemini/archive.toml +0 -290
- package/dist/templates/slash-commands/gemini/deep.toml +0 -206
- package/dist/templates/slash-commands/gemini/fast.toml +0 -182
- package/dist/templates/slash-commands/gemini/implement.toml +0 -266
- package/dist/templates/slash-commands/gemini/plan.toml +0 -170
- package/dist/templates/slash-commands/gemini/prd.toml +0 -177
- package/dist/templates/slash-commands/gemini/start.toml +0 -141
- package/dist/templates/slash-commands/gemini/summarize.toml +0 -178
- package/dist/templates/slash-commands/kilocode/archive.md +0 -291
- package/dist/templates/slash-commands/kilocode/deep.md +0 -207
- package/dist/templates/slash-commands/kilocode/fast.md +0 -183
- package/dist/templates/slash-commands/kilocode/implement.md +0 -267
- package/dist/templates/slash-commands/kilocode/plan.md +0 -173
- package/dist/templates/slash-commands/kilocode/prd.md +0 -178
- package/dist/templates/slash-commands/kilocode/start.md +0 -142
- package/dist/templates/slash-commands/kilocode/summarize.md +0 -179
- package/dist/templates/slash-commands/opencode/archive.md +0 -291
- package/dist/templates/slash-commands/opencode/deep.md +0 -207
- package/dist/templates/slash-commands/opencode/fast.md +0 -183
- package/dist/templates/slash-commands/opencode/implement.md +0 -267
- package/dist/templates/slash-commands/opencode/plan.md +0 -173
- package/dist/templates/slash-commands/opencode/prd.md +0 -178
- package/dist/templates/slash-commands/opencode/start.md +0 -142
- package/dist/templates/slash-commands/opencode/summarize.md +0 -179
- package/dist/templates/slash-commands/qwen/archive.toml +0 -290
- package/dist/templates/slash-commands/qwen/deep.toml +0 -206
- package/dist/templates/slash-commands/qwen/fast.toml +0 -182
- package/dist/templates/slash-commands/qwen/implement.toml +0 -266
- package/dist/templates/slash-commands/qwen/plan.toml +0 -170
- package/dist/templates/slash-commands/qwen/prd.toml +0 -177
- package/dist/templates/slash-commands/qwen/start.toml +0 -141
- package/dist/templates/slash-commands/qwen/summarize.toml +0 -178
- package/dist/templates/slash-commands/roocode/archive.md +0 -291
- package/dist/templates/slash-commands/roocode/deep.md +0 -207
- package/dist/templates/slash-commands/roocode/fast.md +0 -183
- package/dist/templates/slash-commands/roocode/implement.md +0 -267
- package/dist/templates/slash-commands/roocode/plan.md +0 -173
- package/dist/templates/slash-commands/roocode/prd.md +0 -178
- package/dist/templates/slash-commands/roocode/start.md +0 -142
- package/dist/templates/slash-commands/roocode/summarize.md +0 -179
- package/dist/templates/slash-commands/windsurf/archive.md +0 -291
- package/dist/templates/slash-commands/windsurf/deep.md +0 -207
- package/dist/templates/slash-commands/windsurf/fast.md +0 -183
- package/dist/templates/slash-commands/windsurf/implement.md +0 -267
- package/dist/templates/slash-commands/windsurf/plan.md +0 -173
- package/dist/templates/slash-commands/windsurf/prd.md +0 -178
- package/dist/templates/slash-commands/windsurf/start.md +0 -142
- package/dist/templates/slash-commands/windsurf/summarize.md +0 -179
- /package/dist/templates/slash-commands/{amp → _canonical}/archive.md +0 -0
- /package/dist/templates/slash-commands/{amp → _canonical}/deep.md +0 -0
- /package/dist/templates/slash-commands/{amp → _canonical}/fast.md +0 -0
- /package/dist/templates/slash-commands/{amp → _canonical}/implement.md +0 -0
- /package/dist/templates/slash-commands/{amp → _canonical}/plan.md +0 -0
- /package/dist/templates/slash-commands/{amp → _canonical}/prd.md +0 -0
- /package/dist/templates/slash-commands/{amp → _canonical}/start.md +0 -0
- /package/dist/templates/slash-commands/{amp → _canonical}/summarize.md +0 -0
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ClineAdapter = void 0;
|
|
4
|
+
const base_adapter_1 = require("./base-adapter");
|
|
5
|
+
const file_system_1 = require("../../utils/file-system");
|
|
6
|
+
/**
|
|
7
|
+
* Cline adapter
|
|
8
|
+
* Workflows stored in .cline/workflows/ (flat structure, no subdirectories)
|
|
9
|
+
* Slash command format: /<name.md> (includes .md extension with leading slash)
|
|
10
|
+
*
|
|
11
|
+
* Features:
|
|
12
|
+
* - Lives alongside Cline Rules
|
|
13
|
+
* - Clear step-by-step instructions in markdown
|
|
14
|
+
* - Supports built-in tools, CLI utilities, and MCP integrations
|
|
15
|
+
*
|
|
16
|
+
* Reference: https://docs.cline.bot/features/slash-commands/workflows
|
|
17
|
+
*/
|
|
18
|
+
class ClineAdapter extends base_adapter_1.BaseAdapter {
|
|
19
|
+
constructor() {
|
|
20
|
+
super(...arguments);
|
|
21
|
+
this.name = 'cline';
|
|
22
|
+
this.displayName = 'Cline';
|
|
23
|
+
this.directory = '.clinerules/workflows';
|
|
24
|
+
this.fileExtension = '.md';
|
|
25
|
+
this.features = {
|
|
26
|
+
supportsSubdirectories: false,
|
|
27
|
+
supportsFrontmatter: false,
|
|
28
|
+
};
|
|
29
|
+
// Uses default formatCommand and generateCommands from BaseAdapter
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Detect if Cline is available in the project
|
|
33
|
+
* Checks for .cline directory
|
|
34
|
+
*/
|
|
35
|
+
async detectProject() {
|
|
36
|
+
if (await file_system_1.FileSystem.exists('.clinerules')) {
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
return await file_system_1.FileSystem.exists('.cline');
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Get command path for Cline
|
|
43
|
+
*/
|
|
44
|
+
getCommandPath() {
|
|
45
|
+
return this.directory;
|
|
46
|
+
}
|
|
47
|
+
getTargetFilename(name) {
|
|
48
|
+
return `clavix-${name}${this.fileExtension}`;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
exports.ClineAdapter = ClineAdapter;
|
|
52
|
+
//# sourceMappingURL=cline-adapter.js.map
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { BaseAdapter } from './base-adapter';
|
|
2
|
+
import { CommandTemplate } from '../../types/agent';
|
|
3
|
+
/**
|
|
4
|
+
* CodeBuddy CLI adapter
|
|
5
|
+
* Commands stored in .codebuddy/commands with YAML frontmatter
|
|
6
|
+
*/
|
|
7
|
+
export declare class CodeBuddyAdapter extends BaseAdapter {
|
|
8
|
+
readonly name = "codebuddy";
|
|
9
|
+
readonly displayName = "CodeBuddy";
|
|
10
|
+
readonly directory = ".codebuddy/commands";
|
|
11
|
+
readonly fileExtension = ".md";
|
|
12
|
+
readonly features: {
|
|
13
|
+
supportsSubdirectories: boolean;
|
|
14
|
+
supportsFrontmatter: boolean;
|
|
15
|
+
argumentPlaceholder: string;
|
|
16
|
+
frontmatterFields: string[];
|
|
17
|
+
};
|
|
18
|
+
detectProject(): Promise<boolean>;
|
|
19
|
+
getCommandPath(): string;
|
|
20
|
+
getTargetFilename(name: string): string;
|
|
21
|
+
protected formatCommand(template: CommandTemplate): string;
|
|
22
|
+
private getHomeDir;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=codebuddy-adapter.d.ts.map
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.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");
|
|
41
|
+
/**
|
|
42
|
+
* CodeBuddy CLI adapter
|
|
43
|
+
* Commands stored in .codebuddy/commands with YAML frontmatter
|
|
44
|
+
*/
|
|
45
|
+
class CodeBuddyAdapter extends base_adapter_1.BaseAdapter {
|
|
46
|
+
constructor() {
|
|
47
|
+
super(...arguments);
|
|
48
|
+
this.name = 'codebuddy';
|
|
49
|
+
this.displayName = 'CodeBuddy';
|
|
50
|
+
this.directory = '.codebuddy/commands';
|
|
51
|
+
this.fileExtension = '.md';
|
|
52
|
+
this.features = {
|
|
53
|
+
supportsSubdirectories: false,
|
|
54
|
+
supportsFrontmatter: true,
|
|
55
|
+
argumentPlaceholder: '$1',
|
|
56
|
+
frontmatterFields: ['description', 'argument-hint'],
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
async detectProject() {
|
|
60
|
+
if (await file_system_1.FileSystem.exists('.codebuddy')) {
|
|
61
|
+
return true;
|
|
62
|
+
}
|
|
63
|
+
const homePath = path.join(this.getHomeDir(), '.codebuddy');
|
|
64
|
+
return await file_system_1.FileSystem.exists(homePath);
|
|
65
|
+
}
|
|
66
|
+
getCommandPath() {
|
|
67
|
+
return this.directory;
|
|
68
|
+
}
|
|
69
|
+
getTargetFilename(name) {
|
|
70
|
+
return `clavix-${name}${this.fileExtension}`;
|
|
71
|
+
}
|
|
72
|
+
formatCommand(template) {
|
|
73
|
+
const frontmatter = `---\ndescription: ${template.description}\nargument-hint: [prompt]\n---\n\n`;
|
|
74
|
+
const content = template.content.replace(/\{\{ARGS\}\}/g, '$1');
|
|
75
|
+
return frontmatter + content;
|
|
76
|
+
}
|
|
77
|
+
getHomeDir() {
|
|
78
|
+
return process.env.CLAVIX_HOME_OVERRIDE || os.homedir();
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
exports.CodeBuddyAdapter = CodeBuddyAdapter;
|
|
82
|
+
//# sourceMappingURL=codebuddy-adapter.js.map
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { BaseAdapter } from './base-adapter';
|
|
2
|
+
import { CommandTemplate } from '../../types/agent';
|
|
3
|
+
/**
|
|
4
|
+
* Codex CLI adapter
|
|
5
|
+
* Commands stored globally under ~/.codex/prompts
|
|
6
|
+
*/
|
|
7
|
+
export declare class CodexAdapter extends BaseAdapter {
|
|
8
|
+
readonly name = "codex";
|
|
9
|
+
readonly displayName = "Codex CLI";
|
|
10
|
+
readonly directory = "~/.codex/prompts";
|
|
11
|
+
readonly fileExtension = ".md";
|
|
12
|
+
readonly features: {
|
|
13
|
+
supportsSubdirectories: boolean;
|
|
14
|
+
supportsFrontmatter: boolean;
|
|
15
|
+
argumentPlaceholder: string;
|
|
16
|
+
frontmatterFields: string[];
|
|
17
|
+
};
|
|
18
|
+
detectProject(): Promise<boolean>;
|
|
19
|
+
getCommandPath(): string;
|
|
20
|
+
getTargetFilename(name: string): string;
|
|
21
|
+
protected formatCommand(template: CommandTemplate): string;
|
|
22
|
+
private getHomeDir;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=codex-adapter.d.ts.map
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.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");
|
|
41
|
+
/**
|
|
42
|
+
* Codex CLI adapter
|
|
43
|
+
* Commands stored globally under ~/.codex/prompts
|
|
44
|
+
*/
|
|
45
|
+
class CodexAdapter extends base_adapter_1.BaseAdapter {
|
|
46
|
+
constructor() {
|
|
47
|
+
super(...arguments);
|
|
48
|
+
this.name = 'codex';
|
|
49
|
+
this.displayName = 'Codex CLI';
|
|
50
|
+
this.directory = '~/.codex/prompts';
|
|
51
|
+
this.fileExtension = '.md';
|
|
52
|
+
this.features = {
|
|
53
|
+
supportsSubdirectories: false,
|
|
54
|
+
supportsFrontmatter: true,
|
|
55
|
+
argumentPlaceholder: '$ARGUMENTS',
|
|
56
|
+
frontmatterFields: ['description', 'argument-hint'],
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
async detectProject() {
|
|
60
|
+
const codexDir = path.join(this.getHomeDir(), '.codex');
|
|
61
|
+
return await file_system_1.FileSystem.exists(codexDir);
|
|
62
|
+
}
|
|
63
|
+
getCommandPath() {
|
|
64
|
+
return path.join(this.getHomeDir(), '.codex', 'prompts');
|
|
65
|
+
}
|
|
66
|
+
getTargetFilename(name) {
|
|
67
|
+
return `clavix-${name}${this.fileExtension}`;
|
|
68
|
+
}
|
|
69
|
+
formatCommand(template) {
|
|
70
|
+
const frontmatter = `---\ndescription: ${template.description}\nargument-hint: [prompt]\n---\n\n`;
|
|
71
|
+
const content = template.content.replace(/\{\{ARGS\}\}/g, '$ARGUMENTS');
|
|
72
|
+
return frontmatter + content;
|
|
73
|
+
}
|
|
74
|
+
getHomeDir() {
|
|
75
|
+
return process.env.CLAVIX_HOME_OVERRIDE || os.homedir();
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
exports.CodexAdapter = CodexAdapter;
|
|
79
|
+
//# sourceMappingURL=codex-adapter.js.map
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generator for GitHub Copilot instructions file
|
|
3
|
+
* Provides workflow instructions via .github/copilot-instructions.md
|
|
4
|
+
*/
|
|
5
|
+
export declare class CopilotInstructionsGenerator {
|
|
6
|
+
static readonly TARGET_FILE = ".github/copilot-instructions.md";
|
|
7
|
+
static readonly START_MARKER = "<!-- CLAVIX:START -->";
|
|
8
|
+
static readonly END_MARKER = "<!-- CLAVIX:END -->";
|
|
9
|
+
/**
|
|
10
|
+
* Generate or update .github/copilot-instructions.md with Clavix workflows
|
|
11
|
+
*/
|
|
12
|
+
static generate(): Promise<void>;
|
|
13
|
+
/**
|
|
14
|
+
* Inject or update managed block in .github/copilot-instructions.md
|
|
15
|
+
*/
|
|
16
|
+
private static injectManagedBlock;
|
|
17
|
+
/**
|
|
18
|
+
* Escape special regex characters
|
|
19
|
+
*/
|
|
20
|
+
private static escapeRegex;
|
|
21
|
+
/**
|
|
22
|
+
* Check if .github/copilot-instructions.md has Clavix block
|
|
23
|
+
*/
|
|
24
|
+
static hasClavixBlock(): Promise<boolean>;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=copilot-instructions-generator.d.ts.map
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.CopilotInstructionsGenerator = void 0;
|
|
37
|
+
const file_system_1 = require("../../utils/file-system");
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
/**
|
|
40
|
+
* Generator for GitHub Copilot instructions file
|
|
41
|
+
* Provides workflow instructions via .github/copilot-instructions.md
|
|
42
|
+
*/
|
|
43
|
+
class CopilotInstructionsGenerator {
|
|
44
|
+
/**
|
|
45
|
+
* Generate or update .github/copilot-instructions.md with Clavix workflows
|
|
46
|
+
*/
|
|
47
|
+
static async generate() {
|
|
48
|
+
const templatePath = path.join(__dirname, '../../templates/agents/copilot-instructions.md');
|
|
49
|
+
// Check if template exists
|
|
50
|
+
if (!(await file_system_1.FileSystem.exists(templatePath))) {
|
|
51
|
+
throw new Error(`Copilot instructions template not found at ${templatePath}`);
|
|
52
|
+
}
|
|
53
|
+
const template = await file_system_1.FileSystem.readFile(templatePath);
|
|
54
|
+
// Ensure .github directory exists
|
|
55
|
+
await file_system_1.FileSystem.ensureDir('.github');
|
|
56
|
+
// Inject into .github/copilot-instructions.md using managed blocks
|
|
57
|
+
await this.injectManagedBlock(this.TARGET_FILE, template);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Inject or update managed block in .github/copilot-instructions.md
|
|
61
|
+
*/
|
|
62
|
+
static async injectManagedBlock(filePath, content) {
|
|
63
|
+
let fileContent = '';
|
|
64
|
+
// Read existing file or start with empty content
|
|
65
|
+
if (await file_system_1.FileSystem.exists(filePath)) {
|
|
66
|
+
fileContent = await file_system_1.FileSystem.readFile(filePath);
|
|
67
|
+
}
|
|
68
|
+
const blockRegex = new RegExp(`${this.escapeRegex(this.START_MARKER)}[\\s\\S]*?${this.escapeRegex(this.END_MARKER)}`, 'g');
|
|
69
|
+
const wrappedContent = `${this.START_MARKER}\n${content}\n${this.END_MARKER}`;
|
|
70
|
+
if (blockRegex.test(fileContent)) {
|
|
71
|
+
// Replace existing block
|
|
72
|
+
fileContent = fileContent.replace(blockRegex, wrappedContent);
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
// Append new block
|
|
76
|
+
if (fileContent && !fileContent.endsWith('\n\n')) {
|
|
77
|
+
fileContent += '\n\n';
|
|
78
|
+
}
|
|
79
|
+
fileContent += wrappedContent + '\n';
|
|
80
|
+
}
|
|
81
|
+
await file_system_1.FileSystem.writeFileAtomic(filePath, fileContent);
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Escape special regex characters
|
|
85
|
+
*/
|
|
86
|
+
static escapeRegex(str) {
|
|
87
|
+
return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Check if .github/copilot-instructions.md has Clavix block
|
|
91
|
+
*/
|
|
92
|
+
static async hasClavixBlock() {
|
|
93
|
+
if (!(await file_system_1.FileSystem.exists(this.TARGET_FILE))) {
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
const content = await file_system_1.FileSystem.readFile(this.TARGET_FILE);
|
|
97
|
+
return content.includes(this.START_MARKER);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
exports.CopilotInstructionsGenerator = CopilotInstructionsGenerator;
|
|
101
|
+
CopilotInstructionsGenerator.TARGET_FILE = '.github/copilot-instructions.md';
|
|
102
|
+
CopilotInstructionsGenerator.START_MARKER = '<!-- CLAVIX:START -->';
|
|
103
|
+
CopilotInstructionsGenerator.END_MARKER = '<!-- CLAVIX:END -->';
|
|
104
|
+
//# sourceMappingURL=copilot-instructions-generator.js.map
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { BaseAdapter } from './base-adapter';
|
|
2
|
+
import { CommandTemplate } from '../../types/agent';
|
|
3
|
+
/**
|
|
4
|
+
* Crush CLI adapter
|
|
5
|
+
* Commands stored in .crush/commands/clavix/ (supports subdirectories)
|
|
6
|
+
* Uses $PROMPT placeholder for user input (Crush-specific syntax)
|
|
7
|
+
*
|
|
8
|
+
* Reference: https://github.com/charmbracelet/crush/blob/main/COMMANDS.md
|
|
9
|
+
*/
|
|
10
|
+
export declare class CrushAdapter extends BaseAdapter {
|
|
11
|
+
readonly name = "crush";
|
|
12
|
+
readonly displayName = "Crush CLI";
|
|
13
|
+
readonly directory = ".crush/commands/clavix";
|
|
14
|
+
readonly fileExtension = ".md";
|
|
15
|
+
readonly features: {
|
|
16
|
+
supportsSubdirectories: boolean;
|
|
17
|
+
supportsFrontmatter: boolean;
|
|
18
|
+
argumentPlaceholder: string;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Detect if Crush is available in the project
|
|
22
|
+
* Checks for .crush directory (project-level commands)
|
|
23
|
+
*/
|
|
24
|
+
detectProject(): Promise<boolean>;
|
|
25
|
+
/**
|
|
26
|
+
* Get command path for Crush
|
|
27
|
+
*/
|
|
28
|
+
getCommandPath(): string;
|
|
29
|
+
/**
|
|
30
|
+
* Format command content for Crush
|
|
31
|
+
* Replaces generic {{ARGS}} placeholder with Crush-specific $PROMPT
|
|
32
|
+
*/
|
|
33
|
+
protected formatCommand(template: CommandTemplate): string;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=crush-adapter.d.ts.map
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CrushAdapter = void 0;
|
|
4
|
+
const base_adapter_1 = require("./base-adapter");
|
|
5
|
+
const file_system_1 = require("../../utils/file-system");
|
|
6
|
+
/**
|
|
7
|
+
* Crush CLI adapter
|
|
8
|
+
* Commands stored in .crush/commands/clavix/ (supports subdirectories)
|
|
9
|
+
* Uses $PROMPT placeholder for user input (Crush-specific syntax)
|
|
10
|
+
*
|
|
11
|
+
* Reference: https://github.com/charmbracelet/crush/blob/main/COMMANDS.md
|
|
12
|
+
*/
|
|
13
|
+
class CrushAdapter extends base_adapter_1.BaseAdapter {
|
|
14
|
+
constructor() {
|
|
15
|
+
super(...arguments);
|
|
16
|
+
this.name = 'crush';
|
|
17
|
+
this.displayName = 'Crush CLI';
|
|
18
|
+
this.directory = '.crush/commands/clavix';
|
|
19
|
+
this.fileExtension = '.md';
|
|
20
|
+
this.features = {
|
|
21
|
+
supportsSubdirectories: true,
|
|
22
|
+
supportsFrontmatter: false,
|
|
23
|
+
argumentPlaceholder: '$PROMPT',
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Detect if Crush is available in the project
|
|
28
|
+
* Checks for .crush directory (project-level commands)
|
|
29
|
+
*/
|
|
30
|
+
async detectProject() {
|
|
31
|
+
return await file_system_1.FileSystem.exists('.crush');
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Get command path for Crush
|
|
35
|
+
*/
|
|
36
|
+
getCommandPath() {
|
|
37
|
+
return this.directory;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Format command content for Crush
|
|
41
|
+
* Replaces generic {{ARGS}} placeholder with Crush-specific $PROMPT
|
|
42
|
+
*/
|
|
43
|
+
formatCommand(template) {
|
|
44
|
+
// Replace Clavix generic placeholder with Crush placeholder
|
|
45
|
+
return template.content.replace(/\{\{ARGS\}\}/g, '$PROMPT');
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.CrushAdapter = CrushAdapter;
|
|
49
|
+
//# sourceMappingURL=crush-adapter.js.map
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { BaseAdapter } from './base-adapter';
|
|
2
|
+
/**
|
|
3
|
+
* Cursor IDE adapter
|
|
4
|
+
* Commands are stored in .cursor/commands/ (flat structure, no subdirectories)
|
|
5
|
+
*/
|
|
6
|
+
export declare class CursorAdapter extends BaseAdapter {
|
|
7
|
+
readonly name = "cursor";
|
|
8
|
+
readonly displayName = "Cursor";
|
|
9
|
+
readonly directory = ".cursor/commands";
|
|
10
|
+
readonly fileExtension = ".md";
|
|
11
|
+
readonly features: {
|
|
12
|
+
supportsSubdirectories: boolean;
|
|
13
|
+
supportsFrontmatter: boolean;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Detect if Cursor is available in the project
|
|
17
|
+
*/
|
|
18
|
+
detectProject(): Promise<boolean>;
|
|
19
|
+
/**
|
|
20
|
+
* Get command path for Cursor
|
|
21
|
+
*/
|
|
22
|
+
getCommandPath(): string;
|
|
23
|
+
getTargetFilename(name: string): string;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=cursor-adapter.d.ts.map
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CursorAdapter = void 0;
|
|
4
|
+
const base_adapter_1 = require("./base-adapter");
|
|
5
|
+
const file_system_1 = require("../../utils/file-system");
|
|
6
|
+
/**
|
|
7
|
+
* Cursor IDE adapter
|
|
8
|
+
* Commands are stored in .cursor/commands/ (flat structure, no subdirectories)
|
|
9
|
+
*/
|
|
10
|
+
class CursorAdapter extends base_adapter_1.BaseAdapter {
|
|
11
|
+
constructor() {
|
|
12
|
+
super(...arguments);
|
|
13
|
+
this.name = 'cursor';
|
|
14
|
+
this.displayName = 'Cursor';
|
|
15
|
+
this.directory = '.cursor/commands';
|
|
16
|
+
this.fileExtension = '.md';
|
|
17
|
+
this.features = {
|
|
18
|
+
supportsSubdirectories: false,
|
|
19
|
+
supportsFrontmatter: false,
|
|
20
|
+
};
|
|
21
|
+
// Uses default formatCommand and generateCommands from BaseAdapter
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Detect if Cursor is available in the project
|
|
25
|
+
*/
|
|
26
|
+
async detectProject() {
|
|
27
|
+
return await file_system_1.FileSystem.exists('.cursor');
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Get command path for Cursor
|
|
31
|
+
*/
|
|
32
|
+
getCommandPath() {
|
|
33
|
+
return this.directory;
|
|
34
|
+
}
|
|
35
|
+
getTargetFilename(name) {
|
|
36
|
+
return `clavix-${name}${this.fileExtension}`;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.CursorAdapter = CursorAdapter;
|
|
40
|
+
//# sourceMappingURL=cursor-adapter.js.map
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { BaseAdapter } from './base-adapter';
|
|
2
|
+
import { CommandTemplate } from '../../types/agent';
|
|
3
|
+
/**
|
|
4
|
+
* Droid CLI adapter (Factory.ai)
|
|
5
|
+
* Commands stored in .factory/commands/ with YAML frontmatter
|
|
6
|
+
* Uses $ARGUMENTS placeholder for command arguments
|
|
7
|
+
*/
|
|
8
|
+
export declare class DroidAdapter extends BaseAdapter {
|
|
9
|
+
readonly name = "droid";
|
|
10
|
+
readonly displayName = "Droid CLI";
|
|
11
|
+
readonly directory = ".factory/commands";
|
|
12
|
+
readonly fileExtension = ".md";
|
|
13
|
+
readonly features: {
|
|
14
|
+
supportsSubdirectories: boolean;
|
|
15
|
+
supportsFrontmatter: boolean;
|
|
16
|
+
frontmatterFields: string[];
|
|
17
|
+
argumentPlaceholder: string;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Detect if Droid CLI is available in the project
|
|
21
|
+
*/
|
|
22
|
+
detectProject(): Promise<boolean>;
|
|
23
|
+
/**
|
|
24
|
+
* Get command path for Droid CLI
|
|
25
|
+
*/
|
|
26
|
+
getCommandPath(): string;
|
|
27
|
+
getTargetFilename(name: string): string;
|
|
28
|
+
/**
|
|
29
|
+
* Format command with YAML frontmatter for Droid CLI
|
|
30
|
+
*/
|
|
31
|
+
protected formatCommand(template: CommandTemplate): string;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=droid-adapter.d.ts.map
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DroidAdapter = void 0;
|
|
4
|
+
const base_adapter_1 = require("./base-adapter");
|
|
5
|
+
const file_system_1 = require("../../utils/file-system");
|
|
6
|
+
/**
|
|
7
|
+
* Droid CLI adapter (Factory.ai)
|
|
8
|
+
* Commands stored in .factory/commands/ with YAML frontmatter
|
|
9
|
+
* Uses $ARGUMENTS placeholder for command arguments
|
|
10
|
+
*/
|
|
11
|
+
class DroidAdapter extends base_adapter_1.BaseAdapter {
|
|
12
|
+
constructor() {
|
|
13
|
+
super(...arguments);
|
|
14
|
+
this.name = 'droid';
|
|
15
|
+
this.displayName = 'Droid CLI';
|
|
16
|
+
this.directory = '.factory/commands';
|
|
17
|
+
this.fileExtension = '.md';
|
|
18
|
+
this.features = {
|
|
19
|
+
supportsSubdirectories: false,
|
|
20
|
+
supportsFrontmatter: true,
|
|
21
|
+
frontmatterFields: ['description', 'argument-hint'],
|
|
22
|
+
argumentPlaceholder: '$ARGUMENTS',
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Detect if Droid CLI is available in the project
|
|
27
|
+
*/
|
|
28
|
+
async detectProject() {
|
|
29
|
+
return await file_system_1.FileSystem.exists('.factory');
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Get command path for Droid CLI
|
|
33
|
+
*/
|
|
34
|
+
getCommandPath() {
|
|
35
|
+
return this.directory;
|
|
36
|
+
}
|
|
37
|
+
getTargetFilename(name) {
|
|
38
|
+
return `clavix-${name}${this.fileExtension}`;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Format command with YAML frontmatter for Droid CLI
|
|
42
|
+
*/
|
|
43
|
+
formatCommand(template) {
|
|
44
|
+
// Add YAML frontmatter
|
|
45
|
+
const frontmatter = `---
|
|
46
|
+
description: ${template.description}
|
|
47
|
+
argument-hint: [prompt]
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
`;
|
|
51
|
+
// Replace generic argument placeholder with $ARGUMENTS
|
|
52
|
+
const content = template.content.replace(/\{\{ARGS\}\}/g, '$ARGUMENTS');
|
|
53
|
+
return frontmatter + content;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
exports.DroidAdapter = DroidAdapter;
|
|
57
|
+
//# sourceMappingURL=droid-adapter.js.map
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { BaseAdapter } from './base-adapter';
|
|
2
|
+
import { CommandTemplate } from '../../types/agent';
|
|
3
|
+
/**
|
|
4
|
+
* Gemini CLI adapter
|
|
5
|
+
* Commands stored as TOML files under .gemini/commands/clavix by default
|
|
6
|
+
*/
|
|
7
|
+
export declare class GeminiAdapter extends BaseAdapter {
|
|
8
|
+
private readonly options;
|
|
9
|
+
readonly name = "gemini";
|
|
10
|
+
readonly displayName = "Gemini CLI";
|
|
11
|
+
readonly fileExtension = ".toml";
|
|
12
|
+
readonly features: {
|
|
13
|
+
supportsSubdirectories: boolean;
|
|
14
|
+
supportsFrontmatter: boolean;
|
|
15
|
+
argumentPlaceholder: string;
|
|
16
|
+
};
|
|
17
|
+
constructor(options?: {
|
|
18
|
+
useNamespace?: boolean;
|
|
19
|
+
});
|
|
20
|
+
get directory(): string;
|
|
21
|
+
detectProject(): Promise<boolean>;
|
|
22
|
+
getCommandPath(): string;
|
|
23
|
+
getTargetFilename(name: string): string;
|
|
24
|
+
protected formatCommand(template: CommandTemplate): string;
|
|
25
|
+
private getHomeDir;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=gemini-adapter.d.ts.map
|