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.
- package/README.md +18 -4
- 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 +9 -4
- 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
|
@@ -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/
|
|
7
|
-
fast: import("@oclif/core/
|
|
8
|
-
deep: import("@oclif/core/
|
|
9
|
-
id: import("@oclif/core/
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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
|
|
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(
|
|
19
|
-
console.log(
|
|
20
|
-
console.log(
|
|
21
|
-
console.log(
|
|
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(
|
|
31
|
-
console.log(
|
|
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(
|
|
49
|
-
console.log(
|
|
50
|
-
console.log(
|
|
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(
|
|
87
|
+
console.log(chalk.red(`\n✗ Error: ${error}\n`));
|
|
68
88
|
}
|
|
69
89
|
}
|
|
70
90
|
async selectPromptInteractively(prompts) {
|
|
71
|
-
console.log(
|
|
91
|
+
console.log(chalk.bold.cyan('\n📋 Available Prompts\n'));
|
|
72
92
|
const choices = prompts.map(p => {
|
|
73
|
-
const status = p.executed ?
|
|
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 ?
|
|
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
|
|
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(
|
|
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(
|
|
101
|
-
console.log(
|
|
102
|
-
console.log(
|
|
103
|
-
console.log(
|
|
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(
|
|
125
|
+
console.log(chalk.dim('─'.repeat(80)));
|
|
106
126
|
console.log(promptData.content);
|
|
107
|
-
console.log(
|
|
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(
|
|
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(
|
|
118
|
-
console.log(
|
|
119
|
-
console.log(
|
|
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(
|
|
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/
|
|
7
|
-
'framework-info': import("@oclif/core/
|
|
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/
|
|
10
|
+
prompt: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
11
11
|
};
|
|
12
12
|
run(): Promise<void>;
|
|
13
13
|
private displayFastModeOutput;
|