clavix 5.6.4 → 5.6.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/dist/cli/commands/update.js +6 -0
  2. package/dist/cli/helpers/init/commands.d.ts +23 -0
  3. package/dist/cli/helpers/init/commands.js +39 -0
  4. package/dist/cli/helpers/init/config.d.ts +20 -0
  5. package/dist/cli/helpers/init/config.js +49 -0
  6. package/dist/cli/helpers/init/directories.d.ts +12 -0
  7. package/dist/cli/helpers/init/directories.js +17 -0
  8. package/dist/cli/helpers/init/documentation.d.ts +25 -0
  9. package/dist/cli/helpers/init/documentation.js +176 -0
  10. package/dist/cli/helpers/init/index.d.ts +20 -0
  11. package/dist/cli/helpers/init/index.js +20 -0
  12. package/dist/cli/helpers/init/integrations.d.ts +44 -0
  13. package/dist/cli/helpers/init/integrations.js +109 -0
  14. package/dist/cli/helpers/init/prompts.d.ts +31 -0
  15. package/dist/cli/helpers/init/prompts.js +97 -0
  16. package/dist/templates/agents/octo.md +1 -0
  17. package/dist/templates/agents/warp.md +1 -0
  18. package/package.json +3 -2
  19. package/dist/core/adapters/amp-adapter.d.ts +0 -30
  20. package/dist/core/adapters/amp-adapter.js +0 -35
  21. package/dist/core/adapters/augment-adapter.d.ts +0 -22
  22. package/dist/core/adapters/augment-adapter.js +0 -37
  23. package/dist/core/adapters/cline-adapter.d.ts +0 -37
  24. package/dist/core/adapters/cline-adapter.js +0 -45
  25. package/dist/core/adapters/codebuddy-adapter.d.ts +0 -27
  26. package/dist/core/adapters/codebuddy-adapter.js +0 -43
  27. package/dist/core/adapters/codex-adapter.d.ts +0 -27
  28. package/dist/core/adapters/codex-adapter.js +0 -40
  29. package/dist/core/adapters/crush-adapter.d.ts +0 -35
  30. package/dist/core/adapters/crush-adapter.js +0 -42
  31. package/dist/core/adapters/cursor-adapter.d.ts +0 -28
  32. package/dist/core/adapters/cursor-adapter.js +0 -33
  33. package/dist/core/adapters/droid-adapter.d.ts +0 -36
  34. package/dist/core/adapters/droid-adapter.js +0 -51
  35. package/dist/core/adapters/kilocode-adapter.d.ts +0 -37
  36. package/dist/core/adapters/kilocode-adapter.js +0 -42
  37. package/dist/core/adapters/opencode-adapter.d.ts +0 -36
  38. package/dist/core/adapters/opencode-adapter.js +0 -50
  39. package/dist/core/adapters/roocode-adapter.d.ts +0 -43
  40. package/dist/core/adapters/roocode-adapter.js +0 -62
  41. package/dist/core/adapters/windsurf-adapter.d.ts +0 -37
  42. package/dist/core/adapters/windsurf-adapter.js +0 -42
  43. package/dist/index 2.js +0 -13
  44. package/dist/index.d 2.ts +0 -4
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Inquirer prompts for Clavix initialization
3
+ */
4
+ import inquirer from 'inquirer';
5
+ /**
6
+ * Prompt for action when Clavix is already initialized
7
+ */
8
+ export async function promptExistingConfigAction() {
9
+ const { action } = await inquirer.prompt([
10
+ {
11
+ type: 'list',
12
+ name: 'action',
13
+ message: 'What would you like to do?',
14
+ choices: [
15
+ { name: 'Reconfigure integrations', value: 'reconfigure' },
16
+ { name: 'Update existing (regenerate commands)', value: 'update' },
17
+ { name: 'Cancel', value: 'cancel' },
18
+ ],
19
+ },
20
+ ]);
21
+ return action;
22
+ }
23
+ /**
24
+ * Prompt for what to do with deselected integrations
25
+ */
26
+ export async function promptDeselectedAction() {
27
+ const { cleanupAction } = await inquirer.prompt([
28
+ {
29
+ type: 'list',
30
+ name: 'cleanupAction',
31
+ message: 'What would you like to do with these integrations?',
32
+ choices: [
33
+ { name: 'Clean up (remove all command files)', value: 'cleanup' },
34
+ { name: 'Keep (also update their commands)', value: 'update' },
35
+ { name: 'Skip (leave as-is)', value: 'skip' },
36
+ ],
37
+ },
38
+ ]);
39
+ return cleanupAction;
40
+ }
41
+ /**
42
+ * Prompt for Codex CLI confirmation
43
+ */
44
+ export async function promptCodexConfirmation(codexPath) {
45
+ const { confirmCodex } = await inquirer.prompt([
46
+ {
47
+ type: 'confirm',
48
+ name: 'confirmCodex',
49
+ message: `Codex commands will be generated at ${codexPath}. Continue?`,
50
+ default: true,
51
+ },
52
+ ]);
53
+ return confirmCodex;
54
+ }
55
+ /**
56
+ * Prompt for namespace usage (Gemini/Qwen)
57
+ */
58
+ export async function promptNamespaceUsage(adapterDisplayName, defaultPath) {
59
+ const { useNamespace } = await inquirer.prompt([
60
+ {
61
+ type: 'confirm',
62
+ name: 'useNamespace',
63
+ message: `Store ${adapterDisplayName} commands under ${defaultPath}? (Produces /clavix:<command> shortcuts)`,
64
+ default: true,
65
+ },
66
+ ]);
67
+ return useNamespace;
68
+ }
69
+ /**
70
+ * Prompt for continuing despite validation errors
71
+ */
72
+ export async function promptContinueAnyway() {
73
+ const { continueAnyway } = await inquirer.prompt([
74
+ {
75
+ type: 'confirm',
76
+ name: 'continueAnyway',
77
+ message: 'Continue anyway?',
78
+ default: false,
79
+ },
80
+ ]);
81
+ return continueAnyway;
82
+ }
83
+ /**
84
+ * Prompt for removing legacy command files
85
+ */
86
+ export async function promptRemoveLegacy(adapter) {
87
+ const { removeLegacy } = await inquirer.prompt([
88
+ {
89
+ type: 'confirm',
90
+ name: 'removeLegacy',
91
+ message: `Remove deprecated files for ${adapter.displayName}? Functionality is unchanged; filenames are being standardized.`,
92
+ default: true,
93
+ },
94
+ ]);
95
+ return removeLegacy;
96
+ }
97
+ //# sourceMappingURL=prompts.js.map
@@ -135,6 +135,7 @@ Autofix handles edge cases gracefully - let it work.
135
135
  | `/clavix:implement` | Execute tasks or prompts (auto-detects source) |
136
136
  | `/clavix:start` | Begin conversational session |
137
137
  | `/clavix:summarize` | Extract requirements from conversation |
138
+ | `/clavix:refine` | Refine existing PRD or saved prompt |
138
139
 
139
140
  ### Agentic Utilities (Project Management)
140
141
  | Utility | Purpose |
@@ -63,6 +63,7 @@ For complete step-by-step workflows, see `.clavix/instructions/`:
63
63
  | `/clavix:implement` | Execute tasks or prompts (auto-detects source) |
64
64
  | `/clavix:start` | Begin conversational session |
65
65
  | `/clavix:summarize` | Extract requirements from conversation |
66
+ | `/clavix:refine` | Refine existing PRD or saved prompt |
66
67
 
67
68
  ### Agentic Utilities (Project Management)
68
69
  | Utility | Purpose |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clavix",
3
- "version": "5.6.4",
3
+ "version": "5.6.5",
4
4
  "description": "Agentic-first prompt workflows. Markdown templates that teach AI agents how to optimize prompts, create PRDs, and manage implementation.\n\nSLASH COMMANDS (in your AI assistant):\n /clavix:improve Optimize prompts with auto-depth\n /clavix:prd Generate PRD through questions\n /clavix:plan Create task breakdown from PRD\n /clavix:implement Execute tasks with progress tracking\n /clavix:start Begin conversational session\n /clavix:summarize Extract requirements from conversation\n\nWorks with Claude Code, Cursor, Windsurf, and 19+ other AI coding tools.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -13,8 +13,9 @@
13
13
  "./package.json": "./package.json"
14
14
  },
15
15
  "scripts": {
16
+ "clean": "rm -rf dist",
16
17
  "validate:consistency": "node --loader ts-node/esm scripts/validate-consistency.ts",
17
- "prebuild": "npm run validate:consistency",
18
+ "prebuild": "npm run clean && npm run validate:consistency",
18
19
  "build": "tsc && npm run copy-templates",
19
20
  "build:prod": "npm run build && npm run remove-sourcemaps",
20
21
  "copy-templates": "rm -rf dist/templates && copyfiles -u 1 \"src/templates/**/*\" dist/ && copyfiles -u 1 \"src/config/**/*\" dist/",
@@ -1,30 +0,0 @@
1
- import { BaseAdapter } from './base-adapter.js';
2
- /**
3
- * Amp adapter
4
- * Commands stored in .agents/commands/ (simple markdown, no frontmatter)
5
- * Supports executable commands (experimental)
6
- */
7
- export declare class AmpAdapter extends BaseAdapter {
8
- readonly name = "amp";
9
- readonly displayName = "Amp";
10
- readonly directory = ".agents/commands";
11
- readonly fileExtension = ".md";
12
- readonly features: {
13
- supportsSubdirectories: boolean;
14
- supportsFrontmatter: boolean;
15
- supportsExecutableCommands: boolean;
16
- commandFormat: {
17
- separator: "-";
18
- };
19
- };
20
- /**
21
- * Detect if Amp is available in the project
22
- */
23
- detectProject(): Promise<boolean>;
24
- /**
25
- * Get command path for Amp
26
- */
27
- getCommandPath(): string;
28
- getTargetFilename(name: string): string;
29
- }
30
- //# sourceMappingURL=amp-adapter.d.ts.map
@@ -1,35 +0,0 @@
1
- import { BaseAdapter } from './base-adapter.js';
2
- import { FileSystem } from '../../utils/file-system.js';
3
- /**
4
- * Amp adapter
5
- * Commands stored in .agents/commands/ (simple markdown, no frontmatter)
6
- * Supports executable commands (experimental)
7
- */
8
- export class AmpAdapter extends BaseAdapter {
9
- name = 'amp';
10
- displayName = 'Amp';
11
- directory = '.agents/commands';
12
- fileExtension = '.md';
13
- features = {
14
- supportsSubdirectories: false,
15
- supportsFrontmatter: false,
16
- supportsExecutableCommands: true,
17
- commandFormat: { separator: '-' },
18
- };
19
- /**
20
- * Detect if Amp is available in the project
21
- */
22
- async detectProject() {
23
- return await FileSystem.exists('.agents');
24
- }
25
- /**
26
- * Get command path for Amp
27
- */
28
- getCommandPath() {
29
- return this.directory;
30
- }
31
- getTargetFilename(name) {
32
- return `clavix-${name}${this.fileExtension}`;
33
- }
34
- }
35
- //# sourceMappingURL=amp-adapter.js.map
@@ -1,22 +0,0 @@
1
- import { BaseAdapter } from './base-adapter.js';
2
- import { CommandTemplate } from '../../types/agent.js';
3
- /**
4
- * Augment CLI adapter
5
- * Commands stored in .augment/commands/clavix with optional subdirectories
6
- */
7
- export declare class AugmentAdapter extends BaseAdapter {
8
- readonly name = "augment";
9
- readonly displayName = "Augment CLI";
10
- readonly directory = ".augment/commands/clavix";
11
- readonly fileExtension = ".md";
12
- readonly features: {
13
- supportsSubdirectories: boolean;
14
- supportsFrontmatter: boolean;
15
- frontmatterFields: string[];
16
- };
17
- detectProject(): Promise<boolean>;
18
- getCommandPath(): string;
19
- protected formatCommand(template: CommandTemplate): string;
20
- private getHomeDir;
21
- }
22
- //# sourceMappingURL=augment-adapter.d.ts.map
@@ -1,37 +0,0 @@
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';
5
- /**
6
- * Augment CLI adapter
7
- * Commands stored in .augment/commands/clavix with optional subdirectories
8
- */
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
- };
19
- async detectProject() {
20
- if (await FileSystem.exists('.augment')) {
21
- return true;
22
- }
23
- const homeAugmentDir = path.join(this.getHomeDir(), '.augment');
24
- return FileSystem.exists(homeAugmentDir);
25
- }
26
- getCommandPath() {
27
- return this.directory;
28
- }
29
- formatCommand(template) {
30
- const frontmatter = `---\ndescription: ${template.description}\nargument-hint: [prompt]\n---\n\n`;
31
- return frontmatter + template.content;
32
- }
33
- getHomeDir() {
34
- return process.env.CLAVIX_HOME_OVERRIDE || os.homedir();
35
- }
36
- }
37
- //# sourceMappingURL=augment-adapter.js.map
@@ -1,37 +0,0 @@
1
- import { BaseAdapter } from './base-adapter.js';
2
- /**
3
- * Cline adapter
4
- * Workflows stored in .cline/workflows/ (flat structure, no subdirectories)
5
- * Slash command format: /<name.md> (includes .md extension with leading slash)
6
- *
7
- * Features:
8
- * - Lives alongside Cline Rules
9
- * - Clear step-by-step instructions in markdown
10
- * - Supports built-in tools, CLI utilities, and MCP integrations
11
- *
12
- * Reference: https://docs.cline.bot/features/slash-commands/workflows
13
- */
14
- export declare class ClineAdapter extends BaseAdapter {
15
- readonly name = "cline";
16
- readonly displayName = "Cline";
17
- readonly directory = ".clinerules/workflows";
18
- readonly fileExtension = ".md";
19
- readonly features: {
20
- supportsSubdirectories: boolean;
21
- supportsFrontmatter: boolean;
22
- commandFormat: {
23
- separator: "-";
24
- };
25
- };
26
- /**
27
- * Detect if Cline is available in the project
28
- * Checks for .cline directory
29
- */
30
- detectProject(): Promise<boolean>;
31
- /**
32
- * Get command path for Cline
33
- */
34
- getCommandPath(): string;
35
- getTargetFilename(name: string): string;
36
- }
37
- //# sourceMappingURL=cline-adapter.d.ts.map
@@ -1,45 +0,0 @@
1
- import { BaseAdapter } from './base-adapter.js';
2
- import { FileSystem } from '../../utils/file-system.js';
3
- /**
4
- * Cline adapter
5
- * Workflows stored in .cline/workflows/ (flat structure, no subdirectories)
6
- * Slash command format: /<name.md> (includes .md extension with leading slash)
7
- *
8
- * Features:
9
- * - Lives alongside Cline Rules
10
- * - Clear step-by-step instructions in markdown
11
- * - Supports built-in tools, CLI utilities, and MCP integrations
12
- *
13
- * Reference: https://docs.cline.bot/features/slash-commands/workflows
14
- */
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
- commandFormat: { separator: '-' },
24
- };
25
- /**
26
- * Detect if Cline is available in the project
27
- * Checks for .cline directory
28
- */
29
- async detectProject() {
30
- if (await FileSystem.exists('.clinerules')) {
31
- return true;
32
- }
33
- return await FileSystem.exists('.cline');
34
- }
35
- /**
36
- * Get command path for Cline
37
- */
38
- getCommandPath() {
39
- return this.directory;
40
- }
41
- getTargetFilename(name) {
42
- return `clavix-${name}${this.fileExtension}`;
43
- }
44
- }
45
- //# sourceMappingURL=cline-adapter.js.map
@@ -1,27 +0,0 @@
1
- import { BaseAdapter } from './base-adapter.js';
2
- import { CommandTemplate } from '../../types/agent.js';
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
- commandFormat: {
18
- separator: "-";
19
- };
20
- };
21
- detectProject(): Promise<boolean>;
22
- getCommandPath(): string;
23
- getTargetFilename(name: string): string;
24
- protected formatCommand(template: CommandTemplate): string;
25
- private getHomeDir;
26
- }
27
- //# sourceMappingURL=codebuddy-adapter.d.ts.map
@@ -1,43 +0,0 @@
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';
5
- /**
6
- * CodeBuddy CLI adapter
7
- * Commands stored in .codebuddy/commands with YAML frontmatter
8
- */
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
- commandFormat: { separator: '-' },
20
- };
21
- async detectProject() {
22
- if (await FileSystem.exists('.codebuddy')) {
23
- return true;
24
- }
25
- const homePath = path.join(this.getHomeDir(), '.codebuddy');
26
- return await FileSystem.exists(homePath);
27
- }
28
- getCommandPath() {
29
- return this.directory;
30
- }
31
- getTargetFilename(name) {
32
- return `clavix-${name}${this.fileExtension}`;
33
- }
34
- formatCommand(template) {
35
- const frontmatter = `---\ndescription: ${template.description}\nargument-hint: [prompt]\n---\n\n`;
36
- const content = template.content.replace(/\{\{ARGS\}\}/g, '$1');
37
- return frontmatter + content;
38
- }
39
- getHomeDir() {
40
- return process.env.CLAVIX_HOME_OVERRIDE || os.homedir();
41
- }
42
- }
43
- //# sourceMappingURL=codebuddy-adapter.js.map
@@ -1,27 +0,0 @@
1
- import { BaseAdapter } from './base-adapter.js';
2
- import { CommandTemplate } from '../../types/agent.js';
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
- commandFormat: {
18
- separator: "-";
19
- };
20
- };
21
- detectProject(): Promise<boolean>;
22
- getCommandPath(): string;
23
- getTargetFilename(name: string): string;
24
- protected formatCommand(template: CommandTemplate): string;
25
- private getHomeDir;
26
- }
27
- //# sourceMappingURL=codex-adapter.d.ts.map
@@ -1,40 +0,0 @@
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';
5
- /**
6
- * Codex CLI adapter
7
- * Commands stored globally under ~/.codex/prompts
8
- */
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
- commandFormat: { separator: '-' },
20
- };
21
- async detectProject() {
22
- const codexDir = path.join(this.getHomeDir(), '.codex');
23
- return await FileSystem.exists(codexDir);
24
- }
25
- getCommandPath() {
26
- return path.join(this.getHomeDir(), '.codex', 'prompts');
27
- }
28
- getTargetFilename(name) {
29
- return `clavix-${name}${this.fileExtension}`;
30
- }
31
- formatCommand(template) {
32
- const frontmatter = `---\ndescription: ${template.description}\nargument-hint: [prompt]\n---\n\n`;
33
- const content = template.content.replace(/\{\{ARGS\}\}/g, '$ARGUMENTS');
34
- return frontmatter + content;
35
- }
36
- getHomeDir() {
37
- return process.env.CLAVIX_HOME_OVERRIDE || os.homedir();
38
- }
39
- }
40
- //# sourceMappingURL=codex-adapter.js.map
@@ -1,35 +0,0 @@
1
- import { BaseAdapter } from './base-adapter.js';
2
- import { CommandTemplate } from '../../types/agent.js';
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
@@ -1,42 +0,0 @@
1
- import { BaseAdapter } from './base-adapter.js';
2
- import { FileSystem } from '../../utils/file-system.js';
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 class CrushAdapter extends BaseAdapter {
11
- name = 'crush';
12
- displayName = 'Crush CLI';
13
- directory = '.crush/commands/clavix';
14
- fileExtension = '.md';
15
- features = {
16
- supportsSubdirectories: true,
17
- supportsFrontmatter: false,
18
- argumentPlaceholder: '$PROMPT',
19
- };
20
- /**
21
- * Detect if Crush is available in the project
22
- * Checks for .crush directory (project-level commands)
23
- */
24
- async detectProject() {
25
- return await FileSystem.exists('.crush');
26
- }
27
- /**
28
- * Get command path for Crush
29
- */
30
- getCommandPath() {
31
- return this.directory;
32
- }
33
- /**
34
- * Format command content for Crush
35
- * Replaces generic {{ARGS}} placeholder with Crush-specific $PROMPT
36
- */
37
- formatCommand(template) {
38
- // Replace Clavix generic placeholder with Crush placeholder
39
- return template.content.replace(/\{\{ARGS\}\}/g, '$PROMPT');
40
- }
41
- }
42
- //# sourceMappingURL=crush-adapter.js.map
@@ -1,28 +0,0 @@
1
- import { BaseAdapter } from './base-adapter.js';
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
- commandFormat: {
15
- separator: "-";
16
- };
17
- };
18
- /**
19
- * Detect if Cursor is available in the project
20
- */
21
- detectProject(): Promise<boolean>;
22
- /**
23
- * Get command path for Cursor
24
- */
25
- getCommandPath(): string;
26
- getTargetFilename(name: string): string;
27
- }
28
- //# sourceMappingURL=cursor-adapter.d.ts.map
@@ -1,33 +0,0 @@
1
- import { BaseAdapter } from './base-adapter.js';
2
- import { FileSystem } from '../../utils/file-system.js';
3
- /**
4
- * Cursor IDE adapter
5
- * Commands are stored in .cursor/commands/ (flat structure, no subdirectories)
6
- */
7
- export class CursorAdapter extends BaseAdapter {
8
- name = 'cursor';
9
- displayName = 'Cursor';
10
- directory = '.cursor/commands';
11
- fileExtension = '.md';
12
- features = {
13
- supportsSubdirectories: false,
14
- supportsFrontmatter: false,
15
- commandFormat: { separator: '-' },
16
- };
17
- /**
18
- * Detect if Cursor is available in the project
19
- */
20
- async detectProject() {
21
- return await FileSystem.exists('.cursor');
22
- }
23
- /**
24
- * Get command path for Cursor
25
- */
26
- getCommandPath() {
27
- return this.directory;
28
- }
29
- getTargetFilename(name) {
30
- return `clavix-${name}${this.fileExtension}`;
31
- }
32
- }
33
- //# sourceMappingURL=cursor-adapter.js.map
@@ -1,36 +0,0 @@
1
- import { BaseAdapter } from './base-adapter.js';
2
- import { CommandTemplate } from '../../types/agent.js';
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
- commandFormat: {
19
- separator: "-";
20
- };
21
- };
22
- /**
23
- * Detect if Droid CLI is available in the project
24
- */
25
- detectProject(): Promise<boolean>;
26
- /**
27
- * Get command path for Droid CLI
28
- */
29
- getCommandPath(): string;
30
- getTargetFilename(name: string): string;
31
- /**
32
- * Format command with YAML frontmatter for Droid CLI
33
- */
34
- protected formatCommand(template: CommandTemplate): string;
35
- }
36
- //# sourceMappingURL=droid-adapter.d.ts.map