clavix 2.7.1 → 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.
Files changed (165) hide show
  1. package/README.md +18 -4
  2. package/bin/clavix.js +12 -5
  3. package/dist/cli/commands/archive.d.ts +5 -4
  4. package/dist/cli/commands/archive.js +135 -161
  5. package/dist/cli/commands/config.d.ts +4 -4
  6. package/dist/cli/commands/config.js +66 -105
  7. package/dist/cli/commands/deep.d.ts +3 -3
  8. package/dist/cli/commands/deep.js +97 -103
  9. package/dist/cli/commands/execute.d.ts +4 -4
  10. package/dist/cli/commands/execute.js +57 -63
  11. package/dist/cli/commands/fast.d.ts +3 -3
  12. package/dist/cli/commands/fast.js +122 -128
  13. package/dist/cli/commands/implement.d.ts +4 -4
  14. package/dist/cli/commands/implement.js +84 -148
  15. package/dist/cli/commands/init.js +87 -126
  16. package/dist/cli/commands/list.d.ts +5 -5
  17. package/dist/cli/commands/list.js +72 -111
  18. package/dist/cli/commands/plan.d.ts +7 -7
  19. package/dist/cli/commands/plan.js +92 -131
  20. package/dist/cli/commands/prd.d.ts +4 -4
  21. package/dist/cli/commands/prd.js +76 -111
  22. package/dist/cli/commands/prompts/clear.d.ts +6 -6
  23. package/dist/cli/commands/prompts/clear.js +70 -76
  24. package/dist/cli/commands/prompts/list.js +37 -43
  25. package/dist/cli/commands/show.d.ts +4 -4
  26. package/dist/cli/commands/show.js +72 -111
  27. package/dist/cli/commands/start.d.ts +3 -3
  28. package/dist/cli/commands/start.js +63 -101
  29. package/dist/cli/commands/summarize.d.ts +4 -4
  30. package/dist/cli/commands/summarize.js +81 -120
  31. package/dist/cli/commands/task-complete.d.ts +4 -4
  32. package/dist/cli/commands/task-complete.js +86 -123
  33. package/dist/cli/commands/update.d.ts +3 -3
  34. package/dist/cli/commands/update.js +97 -130
  35. package/dist/cli/commands/version.js +13 -48
  36. package/dist/core/adapters/agents-md-generator.js +17 -50
  37. package/dist/core/adapters/amp-adapter.d.ts +1 -1
  38. package/dist/core/adapters/amp-adapter.js +13 -21
  39. package/dist/core/adapters/augment-adapter.d.ts +2 -2
  40. package/dist/core/adapters/augment-adapter.js +16 -56
  41. package/dist/core/adapters/base-adapter.d.ts +1 -1
  42. package/dist/core/adapters/base-adapter.js +11 -47
  43. package/dist/core/adapters/claude-code-adapter.d.ts +2 -2
  44. package/dist/core/adapters/claude-code-adapter.js +19 -60
  45. package/dist/core/adapters/cline-adapter.d.ts +1 -1
  46. package/dist/core/adapters/cline-adapter.js +13 -21
  47. package/dist/core/adapters/codebuddy-adapter.d.ts +2 -2
  48. package/dist/core/adapters/codebuddy-adapter.js +17 -57
  49. package/dist/core/adapters/codex-adapter.d.ts +2 -2
  50. package/dist/core/adapters/codex-adapter.js +16 -56
  51. package/dist/core/adapters/copilot-instructions-generator.js +18 -51
  52. package/dist/core/adapters/crush-adapter.d.ts +2 -2
  53. package/dist/core/adapters/crush-adapter.js +13 -20
  54. package/dist/core/adapters/cursor-adapter.d.ts +1 -1
  55. package/dist/core/adapters/cursor-adapter.js +12 -20
  56. package/dist/core/adapters/droid-adapter.d.ts +2 -2
  57. package/dist/core/adapters/droid-adapter.js +14 -21
  58. package/dist/core/adapters/gemini-adapter.d.ts +2 -2
  59. package/dist/core/adapters/gemini-adapter.js +16 -52
  60. package/dist/core/adapters/kilocode-adapter.d.ts +1 -1
  61. package/dist/core/adapters/kilocode-adapter.js +12 -20
  62. package/dist/core/adapters/octo-md-generator.js +17 -50
  63. package/dist/core/adapters/opencode-adapter.d.ts +2 -2
  64. package/dist/core/adapters/opencode-adapter.js +14 -21
  65. package/dist/core/adapters/qwen-adapter.d.ts +2 -2
  66. package/dist/core/adapters/qwen-adapter.js +16 -52
  67. package/dist/core/adapters/roocode-adapter.d.ts +2 -2
  68. package/dist/core/adapters/roocode-adapter.js +12 -19
  69. package/dist/core/adapters/warp-md-generator.js +17 -50
  70. package/dist/core/adapters/windsurf-adapter.d.ts +1 -1
  71. package/dist/core/adapters/windsurf-adapter.js +12 -20
  72. package/dist/core/agent-manager.d.ts +1 -1
  73. package/dist/core/agent-manager.js +34 -38
  74. package/dist/core/archive-manager.js +10 -46
  75. package/dist/core/config-manager.d.ts +2 -2
  76. package/dist/core/config-manager.js +3 -40
  77. package/dist/core/conversation-analyzer.d.ts +1 -1
  78. package/dist/core/conversation-analyzer.js +1 -5
  79. package/dist/core/doc-injector.js +23 -60
  80. package/dist/core/git-manager.js +11 -48
  81. package/dist/core/prd-generator.js +16 -51
  82. package/dist/core/prompt-manager.js +6 -42
  83. package/dist/core/prompt-optimizer.js +1 -5
  84. package/dist/core/question-engine.js +6 -45
  85. package/dist/core/session-manager.d.ts +1 -1
  86. package/dist/core/session-manager.js +11 -49
  87. package/dist/core/task-manager.d.ts +26 -0
  88. package/dist/core/task-manager.js +243 -101
  89. package/dist/index.d.ts +2 -1
  90. package/dist/index.js +8 -12
  91. package/dist/templates/agents/agents.md +31 -2
  92. package/dist/templates/agents/copilot-instructions.md +1 -1
  93. package/dist/templates/agents/octo.md +20 -1
  94. package/dist/templates/agents/warp.md +1 -1
  95. package/dist/templates/slash-commands/_canonical/implement.md +33 -11
  96. package/dist/types/agent.js +1 -2
  97. package/dist/types/config.js +3 -8
  98. package/dist/types/errors.js +7 -13
  99. package/dist/types/session.js +1 -2
  100. package/dist/utils/agent-error-messages.js +1 -5
  101. package/dist/utils/error-utils.js +5 -12
  102. package/dist/utils/file-system.js +20 -57
  103. package/dist/utils/legacy-command-cleanup.d.ts +1 -1
  104. package/dist/utils/legacy-command-cleanup.js +9 -45
  105. package/dist/utils/template-loader.d.ts +1 -1
  106. package/dist/utils/template-loader.js +9 -41
  107. package/dist/utils/toml-templates.js +1 -4
  108. package/package.json +9 -4
  109. package/dist/core/adapters 2/agents-md-generator.d.ts +0 -26
  110. package/dist/core/adapters 2/agents-md-generator.js +0 -102
  111. package/dist/core/adapters 2/amp-adapter.d.ts +0 -27
  112. package/dist/core/adapters 2/amp-adapter.js +0 -42
  113. package/dist/core/adapters 2/augment-adapter.d.ts +0 -22
  114. package/dist/core/adapters 2/augment-adapter.js +0 -77
  115. package/dist/core/adapters 2/base-adapter.d.ts +0 -45
  116. package/dist/core/adapters 2/base-adapter.js +0 -142
  117. package/dist/core/adapters 2/claude-code-adapter.d.ts +0 -32
  118. package/dist/core/adapters 2/claude-code-adapter.js +0 -116
  119. package/dist/core/adapters 2/cline-adapter.d.ts +0 -34
  120. package/dist/core/adapters 2/cline-adapter.js +0 -52
  121. package/dist/core/adapters 2/codebuddy-adapter.d.ts +0 -24
  122. package/dist/core/adapters 2/codebuddy-adapter.js +0 -82
  123. package/dist/core/adapters 2/codex-adapter.d.ts +0 -24
  124. package/dist/core/adapters 2/codex-adapter.js +0 -79
  125. package/dist/core/adapters 2/copilot-instructions-generator.d.ts +0 -26
  126. package/dist/core/adapters 2/copilot-instructions-generator.js +0 -104
  127. package/dist/core/adapters 2/crush-adapter.d.ts +0 -35
  128. package/dist/core/adapters 2/crush-adapter.js +0 -49
  129. package/dist/core/adapters 2/cursor-adapter.d.ts +0 -25
  130. package/dist/core/adapters 2/cursor-adapter.js +0 -40
  131. package/dist/core/adapters 2/droid-adapter.d.ts +0 -33
  132. package/dist/core/adapters 2/droid-adapter.js +0 -57
  133. package/dist/core/adapters 2/gemini-adapter.d.ts +0 -27
  134. package/dist/core/adapters 2/gemini-adapter.js +0 -90
  135. package/dist/core/adapters 2/kilocode-adapter.d.ts +0 -34
  136. package/dist/core/adapters 2/kilocode-adapter.js +0 -49
  137. package/dist/core/adapters 2/octo-md-generator.d.ts +0 -26
  138. package/dist/core/adapters 2/octo-md-generator.js +0 -102
  139. package/dist/core/adapters 2/opencode-adapter.d.ts +0 -33
  140. package/dist/core/adapters 2/opencode-adapter.js +0 -56
  141. package/dist/core/adapters 2/qwen-adapter.d.ts +0 -27
  142. package/dist/core/adapters 2/qwen-adapter.js +0 -90
  143. package/dist/core/adapters 2/roocode-adapter.d.ts +0 -40
  144. package/dist/core/adapters 2/roocode-adapter.js +0 -68
  145. package/dist/core/adapters 2/warp-md-generator.d.ts +0 -17
  146. package/dist/core/adapters 2/warp-md-generator.js +0 -88
  147. package/dist/core/adapters 2/windsurf-adapter.d.ts +0 -34
  148. package/dist/core/adapters 2/windsurf-adapter.js +0 -49
  149. package/dist/core/agent-manager 2.js +0 -126
  150. package/dist/core/agent-manager.d 2.ts +0 -51
  151. package/dist/core/archive-manager 2.js +0 -338
  152. package/dist/core/archive-manager.d 2.ts +0 -100
  153. package/dist/core/conversation-analyzer.d 2.ts +0 -86
  154. package/dist/core/doc-injector 2.js +0 -236
  155. package/dist/core/doc-injector.d 2.ts +0 -51
  156. package/dist/core/git-manager 2.js +0 -214
  157. package/dist/core/git-manager.d 2.ts +0 -100
  158. package/dist/core/prompt-optimizer 2.js +0 -963
  159. package/dist/core/prompt-optimizer.d 2.ts +0 -268
  160. package/dist/core/question-engine 2.js +0 -395
  161. package/dist/core/question-engine.d 2.ts +0 -167
  162. package/dist/core/session-manager 2.js +0 -403
  163. package/dist/core/session-manager.d 2.ts +0 -139
  164. package/dist/core/task-manager 2.js +0 -689
  165. package/dist/core/task-manager.d 2.ts +0 -155
@@ -3,10 +3,10 @@ export default class Execute extends Command {
3
3
  static description: string;
4
4
  static examples: string[];
5
5
  static flags: {
6
- latest: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
7
- fast: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
8
- deep: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
9
- id: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
6
+ latest: import("@oclif/core/interfaces").BooleanFlag<boolean>;
7
+ fast: import("@oclif/core/interfaces").BooleanFlag<boolean>;
8
+ deep: import("@oclif/core/interfaces").BooleanFlag<boolean>;
9
+ id: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
10
10
  };
11
11
  run(): Promise<void>;
12
12
  private selectPromptInteractively;
@@ -1,24 +1,44 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const core_1 = require("@oclif/core");
7
- const chalk_1 = __importDefault(require("chalk"));
8
- const inquirer_1 = __importDefault(require("inquirer"));
9
- const prompt_manager_1 = require("../../core/prompt-manager");
10
- class Execute extends core_1.Command {
1
+ import { Command, Flags } from '@oclif/core';
2
+ import chalk from 'chalk';
3
+ import inquirer from 'inquirer';
4
+ import { PromptManager } from '../../core/prompt-manager.js';
5
+ export default class Execute extends Command {
6
+ static description = 'Execute a saved prompt from fast/deep optimization';
7
+ static examples = [
8
+ '<%= config.bin %> <%= command.id %> --latest',
9
+ '<%= config.bin %> <%= command.id %> --latest --fast',
10
+ '<%= config.bin %> <%= command.id %> --latest --deep',
11
+ '<%= config.bin %> <%= command.id %> --id fast-20250117-143022-a3f2',
12
+ '<%= config.bin %> <%= command.id %>',
13
+ ];
14
+ static flags = {
15
+ latest: Flags.boolean({
16
+ description: 'Auto-select latest prompt (any type)',
17
+ default: false,
18
+ }),
19
+ fast: Flags.boolean({
20
+ description: 'Filter to fast prompts only (use with --latest)',
21
+ default: false,
22
+ }),
23
+ deep: Flags.boolean({
24
+ description: 'Filter to deep prompts only (use with --latest)',
25
+ default: false,
26
+ }),
27
+ id: Flags.string({
28
+ description: 'Execute specific prompt by ID',
29
+ }),
30
+ };
11
31
  async run() {
12
32
  const { flags } = await this.parse(Execute);
13
- const promptManager = new prompt_manager_1.PromptManager();
33
+ const promptManager = new PromptManager();
14
34
  try {
15
35
  // Get all prompts
16
36
  const allPrompts = await promptManager.listPrompts();
17
37
  if (allPrompts.length === 0) {
18
- console.log(chalk_1.default.yellow('\n⚠️ No prompts found\n'));
19
- console.log(chalk_1.default.cyan('Generate an optimized prompt first:'));
20
- console.log(chalk_1.default.cyan(' /clavix:fast "your requirement"'));
21
- console.log(chalk_1.default.cyan(' /clavix:deep "your requirement"'));
38
+ console.log(chalk.yellow('\n⚠️ No prompts found\n'));
39
+ console.log(chalk.cyan('Generate an optimized prompt first:'));
40
+ console.log(chalk.cyan(' /clavix:fast "your requirement"'));
41
+ console.log(chalk.cyan(' /clavix:deep "your requirement"'));
22
42
  console.log();
23
43
  return;
24
44
  }
@@ -27,8 +47,8 @@ class Execute extends core_1.Command {
27
47
  if (flags.id) {
28
48
  selectedPrompt = allPrompts.find(p => p.id === flags.id) || null;
29
49
  if (!selectedPrompt) {
30
- console.log(chalk_1.default.red(`\n✗ Prompt not found: ${flags.id}\n`));
31
- console.log(chalk_1.default.cyan('Run clavix prompts list to see available prompts'));
50
+ console.log(chalk.red(`\n✗ Prompt not found: ${flags.id}\n`));
51
+ console.log(chalk.cyan('Run clavix prompts list to see available prompts'));
32
52
  console.log();
33
53
  return;
34
54
  }
@@ -45,9 +65,9 @@ class Execute extends core_1.Command {
45
65
  }
46
66
  if (filtered.length === 0) {
47
67
  const source = flags.fast ? 'fast' : flags.deep ? 'deep' : 'any';
48
- console.log(chalk_1.default.yellow(`\n⚠️ No ${source} prompts found\n`));
49
- console.log(chalk_1.default.cyan(`Generate a ${source} prompt first:`));
50
- console.log(chalk_1.default.cyan(` /clavix:${source === 'any' ? 'fast' : source} "your requirement"`));
68
+ console.log(chalk.yellow(`\n⚠️ No ${source} prompts found\n`));
69
+ console.log(chalk.cyan(`Generate a ${source} prompt first:`));
70
+ console.log(chalk.cyan(` /clavix:${source === 'any' ? 'fast' : source} "your requirement"`));
51
71
  console.log();
52
72
  return;
53
73
  }
@@ -64,22 +84,22 @@ class Execute extends core_1.Command {
64
84
  await this.executePrompt(selectedPrompt, promptManager);
65
85
  }
66
86
  catch (error) {
67
- console.log(chalk_1.default.red(`\n✗ Error: ${error}\n`));
87
+ console.log(chalk.red(`\n✗ Error: ${error}\n`));
68
88
  }
69
89
  }
70
90
  async selectPromptInteractively(prompts) {
71
- console.log(chalk_1.default.bold.cyan('\n📋 Available Prompts\n'));
91
+ console.log(chalk.bold.cyan('\n📋 Available Prompts\n'));
72
92
  const choices = prompts.map(p => {
73
- const status = p.executed ? chalk_1.default.green('✓') : chalk_1.default.gray('○');
93
+ const status = p.executed ? chalk.green('✓') : chalk.gray('○');
74
94
  const age = p.ageInDays === 0 ? 'today' : `${p.ageInDays}d ago`;
75
- const ageColor = (p.ageInDays || 0) > 30 ? chalk_1.default.red : (p.ageInDays || 0) > 7 ? chalk_1.default.yellow : chalk_1.default.gray;
95
+ const ageColor = (p.ageInDays || 0) > 30 ? chalk.red : (p.ageInDays || 0) > 7 ? chalk.yellow : chalk.gray;
76
96
  return {
77
97
  name: `${status} [${p.source}] ${p.originalPrompt.substring(0, 60)}... ${ageColor(`(${age})`)}`,
78
98
  value: p.id,
79
99
  short: p.id,
80
100
  };
81
101
  });
82
- const { promptId } = await inquirer_1.default.prompt([
102
+ const { promptId } = await inquirer.prompt([
83
103
  {
84
104
  type: 'list',
85
105
  name: 'promptId',
@@ -93,60 +113,34 @@ class Execute extends core_1.Command {
93
113
  async executePrompt(prompt, manager) {
94
114
  const promptData = await manager.loadPrompt(prompt.id);
95
115
  if (!promptData) {
96
- console.log(chalk_1.default.red(`\n✗ Could not load prompt: ${prompt.id}\n`));
116
+ console.log(chalk.red(`\n✗ Could not load prompt: ${prompt.id}\n`));
97
117
  return;
98
118
  }
99
119
  // Display prompt header
100
- console.log(chalk_1.default.bold.cyan(`\n🎯 Executing Prompt: ${prompt.id}\n`));
101
- console.log(chalk_1.default.gray(`Source: ${prompt.source}`));
102
- console.log(chalk_1.default.gray(`Created: ${new Date(prompt.timestamp).toLocaleDateString()}`));
103
- console.log(chalk_1.default.gray(`Age: ${prompt.ageInDays} days\n`));
120
+ console.log(chalk.bold.cyan(`\n🎯 Executing Prompt: ${prompt.id}\n`));
121
+ console.log(chalk.gray(`Source: ${prompt.source}`));
122
+ console.log(chalk.gray(`Created: ${new Date(prompt.timestamp).toLocaleDateString()}`));
123
+ console.log(chalk.gray(`Age: ${prompt.ageInDays} days\n`));
104
124
  // Display full prompt content
105
- console.log(chalk_1.default.dim('─'.repeat(80)));
125
+ console.log(chalk.dim('─'.repeat(80)));
106
126
  console.log(promptData.content);
107
- console.log(chalk_1.default.dim('─'.repeat(80)));
127
+ console.log(chalk.dim('─'.repeat(80)));
108
128
  console.log();
109
129
  // Mark as executed
110
130
  if (!prompt.executed) {
111
131
  await manager.markExecuted(prompt.id);
112
- console.log(chalk_1.default.green('✓ Prompt marked as executed\n'));
132
+ console.log(chalk.green('✓ Prompt marked as executed\n'));
113
133
  }
114
134
  // Suggest cleanup
115
135
  const stats = await manager.getStorageStats();
116
136
  if (stats.executedPrompts >= 5) {
117
- console.log(chalk_1.default.yellow(`💡 Cleanup suggestion:`));
118
- console.log(chalk_1.default.yellow(` You have ${stats.executedPrompts} executed prompts.`));
119
- console.log(chalk_1.default.yellow(` Run /clavix:prompts clear to clean up.`));
137
+ console.log(chalk.yellow(`💡 Cleanup suggestion:`));
138
+ console.log(chalk.yellow(` You have ${stats.executedPrompts} executed prompts.`));
139
+ console.log(chalk.yellow(` Run /clavix:prompts clear to clean up.`));
120
140
  console.log();
121
141
  }
122
- console.log(chalk_1.default.cyan('💡 Next: Implement the requirements described above'));
142
+ console.log(chalk.cyan('💡 Next: Implement the requirements described above'));
123
143
  console.log();
124
144
  }
125
145
  }
126
- Execute.description = 'Execute a saved prompt from fast/deep optimization';
127
- Execute.examples = [
128
- '<%= config.bin %> <%= command.id %> --latest',
129
- '<%= config.bin %> <%= command.id %> --latest --fast',
130
- '<%= config.bin %> <%= command.id %> --latest --deep',
131
- '<%= config.bin %> <%= command.id %> --id fast-20250117-143022-a3f2',
132
- '<%= config.bin %> <%= command.id %>',
133
- ];
134
- Execute.flags = {
135
- latest: core_1.Flags.boolean({
136
- description: 'Auto-select latest prompt (any type)',
137
- default: false,
138
- }),
139
- fast: core_1.Flags.boolean({
140
- description: 'Filter to fast prompts only (use with --latest)',
141
- default: false,
142
- }),
143
- deep: core_1.Flags.boolean({
144
- description: 'Filter to deep prompts only (use with --latest)',
145
- default: false,
146
- }),
147
- id: core_1.Flags.string({
148
- description: 'Execute specific prompt by ID',
149
- }),
150
- };
151
- exports.default = Execute;
152
146
  //# sourceMappingURL=execute.js.map
@@ -3,11 +3,11 @@ export default class Fast extends Command {
3
3
  static description: string;
4
4
  static examples: string[];
5
5
  static flags: {
6
- 'clear-only': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
7
- 'framework-info': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
6
+ 'clear-only': import("@oclif/core/interfaces").BooleanFlag<boolean>;
7
+ 'framework-info': import("@oclif/core/interfaces").BooleanFlag<boolean>;
8
8
  };
9
9
  static args: {
10
- prompt: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
10
+ prompt: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
11
11
  };
12
12
  run(): Promise<void>;
13
13
  private displayFastModeOutput;