vibehub-cli 1.0.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/commands/add.d.ts +3 -0
- package/dist/commands/add.d.ts.map +1 -0
- package/dist/commands/add.js +125 -0
- package/dist/commands/add.js.map +1 -0
- package/dist/commands/capture-prompts.d.ts +3 -0
- package/dist/commands/capture-prompts.d.ts.map +1 -0
- package/dist/commands/capture-prompts.js +137 -0
- package/dist/commands/capture-prompts.js.map +1 -0
- package/dist/commands/commit.d.ts +3 -0
- package/dist/commands/commit.d.ts.map +1 -0
- package/dist/commands/commit.js +132 -0
- package/dist/commands/commit.js.map +1 -0
- package/dist/commands/init.d.ts +3 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +113 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/install.d.ts +3 -0
- package/dist/commands/install.d.ts.map +1 -0
- package/dist/commands/install.js +182 -0
- package/dist/commands/install.js.map +1 -0
- package/dist/commands/pull.d.ts +3 -0
- package/dist/commands/pull.d.ts.map +1 -0
- package/dist/commands/pull.js +99 -0
- package/dist/commands/pull.js.map +1 -0
- package/dist/commands/push.d.ts +3 -0
- package/dist/commands/push.d.ts.map +1 -0
- package/dist/commands/push.js +142 -0
- package/dist/commands/push.js.map +1 -0
- package/dist/commands/session.d.ts +3 -0
- package/dist/commands/session.d.ts.map +1 -0
- package/dist/commands/session.js +179 -0
- package/dist/commands/session.js.map +1 -0
- package/dist/commands/set.d.ts +3 -0
- package/dist/commands/set.d.ts.map +1 -0
- package/dist/commands/set.js +134 -0
- package/dist/commands/set.js.map +1 -0
- package/dist/commands/status.d.ts +3 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +79 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +44 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/ai-capture.d.ts +21 -0
- package/dist/lib/ai-capture.d.ts.map +1 -0
- package/dist/lib/ai-capture.js +242 -0
- package/dist/lib/ai-capture.js.map +1 -0
- package/dist/lib/cloud-service.d.ts +26 -0
- package/dist/lib/cloud-service.d.ts.map +1 -0
- package/dist/lib/cloud-service.js +200 -0
- package/dist/lib/cloud-service.js.map +1 -0
- package/dist/lib/cursor-conversation-capture.d.ts +10 -0
- package/dist/lib/cursor-conversation-capture.d.ts.map +1 -0
- package/dist/lib/cursor-conversation-capture.js +117 -0
- package/dist/lib/cursor-conversation-capture.js.map +1 -0
- package/dist/lib/prompt-capture-manager.d.ts +33 -0
- package/dist/lib/prompt-capture-manager.d.ts.map +1 -0
- package/dist/lib/prompt-capture-manager.js +178 -0
- package/dist/lib/prompt-capture-manager.js.map +1 -0
- package/dist/lib/vibehub-manager.d.ts +172 -0
- package/dist/lib/vibehub-manager.d.ts.map +1 -0
- package/dist/lib/vibehub-manager.js +855 -0
- package/dist/lib/vibehub-manager.js.map +1 -0
- package/dist/src/commands/set.d.ts +3 -0
- package/dist/src/commands/set.d.ts.map +1 -0
- package/dist/src/commands/set.js +125 -0
- package/dist/src/commands/set.js.map +1 -0
- package/package.json +53 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,eAAO,MAAM,UAAU,SA2GnB,CAAC"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import fs from 'fs-extra';
|
|
4
|
+
import path from 'path';
|
|
5
|
+
import { VibeHubManager } from '../lib/vibehub-manager.js';
|
|
6
|
+
export const addCommand = new Command('add')
|
|
7
|
+
.description('Add files to staging area for commit')
|
|
8
|
+
.argument('[files...]', 'Files to add (default: all files)')
|
|
9
|
+
.option('-A, --all', 'Add all files')
|
|
10
|
+
.option('-u, --update', 'Update already tracked files')
|
|
11
|
+
.action(async (files, options) => {
|
|
12
|
+
try {
|
|
13
|
+
console.log(chalk.blue('š Adding files to staging area...\n'));
|
|
14
|
+
// Check if we're in a VibeHub repository
|
|
15
|
+
const vibehubDir = path.join(process.cwd(), '.vibehub');
|
|
16
|
+
if (!await fs.pathExists(vibehubDir)) {
|
|
17
|
+
console.error(chalk.red('ā Not a VibeHub repository. Run "vibe init" first.'));
|
|
18
|
+
process.exit(1);
|
|
19
|
+
}
|
|
20
|
+
// Initialize VibeHub manager
|
|
21
|
+
const vibehubManager = new VibeHubManager(process.cwd());
|
|
22
|
+
// Determine which files to add
|
|
23
|
+
let filesToAdd = [];
|
|
24
|
+
if (options.all || files.length === 0) {
|
|
25
|
+
// Add all files in the current directory (excluding .vibehub)
|
|
26
|
+
const allFiles = await getAllFiles(process.cwd());
|
|
27
|
+
filesToAdd = allFiles.filter(file => !file.startsWith('.vibehub/'));
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
// Add specific files
|
|
31
|
+
filesToAdd = files;
|
|
32
|
+
}
|
|
33
|
+
// Validate files exist
|
|
34
|
+
const existingFiles = [];
|
|
35
|
+
const missingFiles = [];
|
|
36
|
+
for (const file of filesToAdd) {
|
|
37
|
+
const filePath = path.resolve(file);
|
|
38
|
+
if (await fs.pathExists(filePath)) {
|
|
39
|
+
existingFiles.push(file);
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
missingFiles.push(file);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
if (missingFiles.length > 0) {
|
|
46
|
+
console.error(chalk.red('ā Some files not found:'));
|
|
47
|
+
missingFiles.forEach(file => console.error(chalk.red(` - ${file}`)));
|
|
48
|
+
process.exit(1);
|
|
49
|
+
}
|
|
50
|
+
// Add files to staging area
|
|
51
|
+
const stagingPath = path.join(vibehubDir, 'staging');
|
|
52
|
+
await fs.ensureDir(stagingPath);
|
|
53
|
+
const addedFiles = [];
|
|
54
|
+
for (const file of existingFiles) {
|
|
55
|
+
const filePath = path.resolve(file);
|
|
56
|
+
const relativePath = path.relative(process.cwd(), filePath);
|
|
57
|
+
const stagingFilePath = path.join(stagingPath, relativePath);
|
|
58
|
+
// Create directory structure in staging
|
|
59
|
+
await fs.ensureDir(path.dirname(stagingFilePath));
|
|
60
|
+
// Copy file to staging
|
|
61
|
+
await fs.copy(filePath, stagingFilePath);
|
|
62
|
+
addedFiles.push(relativePath);
|
|
63
|
+
}
|
|
64
|
+
// Save staging information
|
|
65
|
+
const stagingInfo = {
|
|
66
|
+
files: addedFiles,
|
|
67
|
+
timestamp: new Date().toISOString(),
|
|
68
|
+
totalFiles: addedFiles.length
|
|
69
|
+
};
|
|
70
|
+
await fs.writeJson(path.join(stagingPath, 'staging.json'), stagingInfo, { spaces: 2 });
|
|
71
|
+
// Sync prompts and generations from Cursor workspace
|
|
72
|
+
console.log(chalk.blue('\nš Syncing Cursor workspace data...'));
|
|
73
|
+
try {
|
|
74
|
+
const config = await vibehubManager.getConfig();
|
|
75
|
+
const workspaceId = config.workspace?.cursorWorkspaceId;
|
|
76
|
+
if (workspaceId) {
|
|
77
|
+
await vibehubManager.syncWorkspace(workspaceId);
|
|
78
|
+
console.log(chalk.green('ā
Cursor workspace synced successfully'));
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
console.log(chalk.yellow('ā ļø No Cursor workspace found to sync'));
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
catch (syncError) {
|
|
85
|
+
console.log(chalk.yellow('ā ļø Could not sync Cursor workspace:', syncError instanceof Error ? syncError.message : 'Unknown error'));
|
|
86
|
+
}
|
|
87
|
+
// Display results
|
|
88
|
+
console.log(chalk.green(`\nā
Added ${addedFiles.length} file(s) to staging area:`));
|
|
89
|
+
addedFiles.forEach(file => {
|
|
90
|
+
console.log(chalk.gray(` + ${file}`));
|
|
91
|
+
});
|
|
92
|
+
console.log(chalk.blue('\nš” Next steps:'));
|
|
93
|
+
console.log(chalk.gray(' vibe commit -m "your commit message"'));
|
|
94
|
+
console.log(chalk.gray(' vibe push'));
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
console.error(chalk.red('ā Failed to add files:'), error instanceof Error ? error.message : 'Unknown error');
|
|
98
|
+
process.exit(1);
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
// Helper function to get all files in a directory recursively
|
|
102
|
+
async function getAllFiles(dir, baseDir = dir) {
|
|
103
|
+
const files = [];
|
|
104
|
+
const items = await fs.readdir(dir);
|
|
105
|
+
for (const item of items) {
|
|
106
|
+
const fullPath = path.join(dir, item);
|
|
107
|
+
const relativePath = path.relative(baseDir, fullPath);
|
|
108
|
+
const stat = await fs.stat(fullPath);
|
|
109
|
+
if (stat.isDirectory()) {
|
|
110
|
+
// Skip .vibehub directory
|
|
111
|
+
if (item === '.vibehub')
|
|
112
|
+
continue;
|
|
113
|
+
// Skip node_modules and other common ignore directories
|
|
114
|
+
if (['node_modules', '.git', '.DS_Store'].includes(item))
|
|
115
|
+
continue;
|
|
116
|
+
const subFiles = await getAllFiles(fullPath, baseDir);
|
|
117
|
+
files.push(...subFiles);
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
files.push(relativePath);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return files;
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=add.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capture-prompts.d.ts","sourceRoot":"","sources":["../../src/commands/capture-prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,eAAO,MAAM,qBAAqB,SAuC9B,CAAC"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { PromptCaptureManager } from '../lib/prompt-capture-manager.js';
|
|
4
|
+
import inquirer from 'inquirer';
|
|
5
|
+
export const capturePromptsCommand = new Command('capture-prompts')
|
|
6
|
+
.description('Capture all prompts from Cursor and store them in prompts.json')
|
|
7
|
+
.option('-a, --all', 'Capture all prompts from all Cursor workspaces')
|
|
8
|
+
.option('-r, --recent <number>', 'Show recent prompts')
|
|
9
|
+
.option('-s, --search <query>', 'Search prompts by text')
|
|
10
|
+
.option('-d, --date-range <start,end>', 'Filter prompts by date range (YYYY-MM-DD,YYYY-MM-DD)')
|
|
11
|
+
.option('-m, --manual', 'Manually add a prompt')
|
|
12
|
+
.action(async (options) => {
|
|
13
|
+
const cwd = process.cwd();
|
|
14
|
+
const promptManager = new PromptCaptureManager(cwd);
|
|
15
|
+
try {
|
|
16
|
+
if (options.manual) {
|
|
17
|
+
await handleManualPrompt(promptManager);
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
if (options.search) {
|
|
21
|
+
await handleSearchPrompts(promptManager, options.search);
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
if (options.dateRange) {
|
|
25
|
+
await handleDateRangePrompts(promptManager, options.dateRange);
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
if (options.recent !== undefined) {
|
|
29
|
+
await handleRecentPrompts(promptManager, parseInt(options.recent) || 10);
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
// Default action: capture all prompts
|
|
33
|
+
await handleCaptureAllPrompts(promptManager, options.all);
|
|
34
|
+
}
|
|
35
|
+
catch (error) {
|
|
36
|
+
console.error(chalk.red('Error:'), error);
|
|
37
|
+
process.exit(1);
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
async function handleCaptureAllPrompts(promptManager, captureAll) {
|
|
41
|
+
console.log(chalk.blue('š¤ Capturing prompts from Cursor...\n'));
|
|
42
|
+
const captured = await promptManager.captureAllPromptsFromCursor(captureAll);
|
|
43
|
+
if (captured > 0) {
|
|
44
|
+
console.log(chalk.green(`\nā
Successfully captured ${captured} new prompts!`));
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
console.log(chalk.yellow('\nā¹ļø No new prompts found to capture.'));
|
|
48
|
+
}
|
|
49
|
+
// Show summary
|
|
50
|
+
const data = await promptManager.loadPrompts();
|
|
51
|
+
console.log(chalk.blue(`\nš Total prompts stored: ${data.total_prompts}`));
|
|
52
|
+
console.log(chalk.gray(`Last updated: ${data.last_updated}`));
|
|
53
|
+
}
|
|
54
|
+
async function handleManualPrompt(promptManager) {
|
|
55
|
+
console.log(chalk.blue('āļø Manually adding a prompt...\n'));
|
|
56
|
+
const answers = await inquirer.prompt([
|
|
57
|
+
{
|
|
58
|
+
type: 'input',
|
|
59
|
+
name: 'text',
|
|
60
|
+
message: 'Enter the prompt text:',
|
|
61
|
+
validate: (input) => {
|
|
62
|
+
if (!input.trim()) {
|
|
63
|
+
return 'Prompt text cannot be empty';
|
|
64
|
+
}
|
|
65
|
+
return true;
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
type: 'input',
|
|
70
|
+
name: 'timestamp',
|
|
71
|
+
message: 'Enter timestamp (leave empty for current time):',
|
|
72
|
+
default: Date.now().toString()
|
|
73
|
+
}
|
|
74
|
+
]);
|
|
75
|
+
const timestamp = parseInt(answers.timestamp) || Date.now();
|
|
76
|
+
const promptId = await promptManager.addPrompt({
|
|
77
|
+
text: answers.text.trim(),
|
|
78
|
+
timestamp,
|
|
79
|
+
source: 'manual-entry'
|
|
80
|
+
});
|
|
81
|
+
console.log(chalk.green(`\nā
Prompt added successfully!`));
|
|
82
|
+
console.log(chalk.cyan(`Prompt ID: ${promptId}`));
|
|
83
|
+
console.log(chalk.gray(`Timestamp: ${new Date(timestamp).toISOString()}`));
|
|
84
|
+
}
|
|
85
|
+
async function handleSearchPrompts(promptManager, query) {
|
|
86
|
+
console.log(chalk.blue(`š Searching prompts for: "${query}"\n`));
|
|
87
|
+
const results = await promptManager.searchPrompts(query);
|
|
88
|
+
if (results.length === 0) {
|
|
89
|
+
console.log(chalk.yellow('No prompts found matching your search.'));
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
console.log(chalk.green(`Found ${results.length} matching prompts:\n`));
|
|
93
|
+
results.forEach((prompt, index) => {
|
|
94
|
+
console.log(chalk.cyan(`${index + 1}. [${prompt.timestamp_iso}]`));
|
|
95
|
+
console.log(chalk.white(prompt.text));
|
|
96
|
+
console.log(chalk.gray(`Source: ${prompt.source} | ID: ${prompt.id}\n`));
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
async function handleDateRangePrompts(promptManager, dateRange) {
|
|
100
|
+
const [startStr, endStr] = dateRange.split(',');
|
|
101
|
+
if (!startStr || !endStr) {
|
|
102
|
+
console.log(chalk.red('Invalid date range format. Use: YYYY-MM-DD,YYYY-MM-DD'));
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
const startDate = new Date(startStr);
|
|
106
|
+
const endDate = new Date(endStr);
|
|
107
|
+
if (isNaN(startDate.getTime()) || isNaN(endDate.getTime())) {
|
|
108
|
+
console.log(chalk.red('Invalid date format. Use: YYYY-MM-DD'));
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
console.log(chalk.blue(`š
Showing prompts from ${startStr} to ${endStr}\n`));
|
|
112
|
+
const results = await promptManager.getPromptsByDateRange(startDate, endDate);
|
|
113
|
+
if (results.length === 0) {
|
|
114
|
+
console.log(chalk.yellow('No prompts found in the specified date range.'));
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
console.log(chalk.green(`Found ${results.length} prompts in date range:\n`));
|
|
118
|
+
results.forEach((prompt, index) => {
|
|
119
|
+
console.log(chalk.cyan(`${index + 1}. [${prompt.timestamp_iso}]`));
|
|
120
|
+
console.log(chalk.white(prompt.text));
|
|
121
|
+
console.log(chalk.gray(`Source: ${prompt.source} | ID: ${prompt.id}\n`));
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
async function handleRecentPrompts(promptManager, limit) {
|
|
125
|
+
console.log(chalk.blue(`š Showing ${limit} most recent prompts:\n`));
|
|
126
|
+
const results = await promptManager.getRecentPrompts(limit);
|
|
127
|
+
if (results.length === 0) {
|
|
128
|
+
console.log(chalk.yellow('No prompts found.'));
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
results.forEach((prompt, index) => {
|
|
132
|
+
console.log(chalk.cyan(`${index + 1}. [${prompt.timestamp_iso}]`));
|
|
133
|
+
console.log(chalk.white(prompt.text));
|
|
134
|
+
console.log(chalk.gray(`Source: ${prompt.source} | ID: ${prompt.id}\n`));
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=capture-prompts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capture-prompts.js","sourceRoot":"","sources":["../../src/commands/capture-prompts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commit.d.ts","sourceRoot":"","sources":["../../src/commands/commit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,eAAO,MAAM,aAAa,SA0ItB,CAAC"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import inquirer from 'inquirer';
|
|
4
|
+
import fs from 'fs-extra';
|
|
5
|
+
import path from 'path';
|
|
6
|
+
import { VibeHubManager } from '../lib/vibehub-manager.js';
|
|
7
|
+
import { AICapture } from '../lib/ai-capture.js';
|
|
8
|
+
import { PromptCaptureManager } from '../lib/prompt-capture-manager.js';
|
|
9
|
+
export const commitCommand = new Command('commit')
|
|
10
|
+
.description('Create a new commit with AI session context')
|
|
11
|
+
.option('-m, --message <message>', 'Commit message')
|
|
12
|
+
.option('-s, --session <sessionId>', 'Link to specific AI session')
|
|
13
|
+
.option('-a, --author <author>', 'Override author email')
|
|
14
|
+
.option('--no-ai-capture', 'Skip automatic AI session capture')
|
|
15
|
+
.option('--no-prompt-capture', 'Skip automatic prompt capture')
|
|
16
|
+
.action(async (options) => {
|
|
17
|
+
const cwd = process.cwd();
|
|
18
|
+
const vibehubManager = new VibeHubManager(cwd);
|
|
19
|
+
try {
|
|
20
|
+
const status = await vibehubManager.getStatus();
|
|
21
|
+
if (!status.initialized) {
|
|
22
|
+
console.log(chalk.red('ā Not a VibeHub repository'));
|
|
23
|
+
console.log(chalk.blue('Run ') + chalk.cyan('vibe init') + chalk.blue(' to initialize a new repository'));
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
const config = status.config;
|
|
27
|
+
// Get commit message
|
|
28
|
+
let message = options.message;
|
|
29
|
+
if (!message) {
|
|
30
|
+
const answer = await inquirer.prompt([
|
|
31
|
+
{
|
|
32
|
+
type: 'input',
|
|
33
|
+
name: 'message',
|
|
34
|
+
message: 'Commit message:',
|
|
35
|
+
validate: (input) => {
|
|
36
|
+
if (!input.trim()) {
|
|
37
|
+
return 'Commit message cannot be empty';
|
|
38
|
+
}
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
]);
|
|
43
|
+
message = answer.message;
|
|
44
|
+
}
|
|
45
|
+
// Get author from config or options
|
|
46
|
+
const repoConfig = await vibehubManager.getConfig();
|
|
47
|
+
const author = options.author || repoConfig.author?.name || 'Unknown';
|
|
48
|
+
// Capture prompts if enabled
|
|
49
|
+
let capturedPrompts = 0;
|
|
50
|
+
if (options.promptCapture !== false) {
|
|
51
|
+
console.log(chalk.blue('š Capturing prompts...'));
|
|
52
|
+
const promptManager = new PromptCaptureManager(cwd);
|
|
53
|
+
capturedPrompts = await promptManager.captureAllPromptsFromCursor();
|
|
54
|
+
if (capturedPrompts > 0) {
|
|
55
|
+
console.log(chalk.green(`ā
Captured ${capturedPrompts} new prompts`));
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
// Try to capture recent AI conversation
|
|
59
|
+
const aiCapture = new AICapture(process.cwd());
|
|
60
|
+
const conversation = await aiCapture.captureRecentConversation();
|
|
61
|
+
let sessionId = null;
|
|
62
|
+
if (conversation) {
|
|
63
|
+
console.log(chalk.green('ā
Found recent AI conversation'));
|
|
64
|
+
console.log(chalk.gray(`Prompt: ${conversation.prompt.substring(0, 80)}...`));
|
|
65
|
+
// Create a session in the local VibeHub repository
|
|
66
|
+
const vibehubManager = new VibeHubManager(process.cwd());
|
|
67
|
+
sessionId = await vibehubManager.createSession({
|
|
68
|
+
prompt: conversation.prompt,
|
|
69
|
+
response: '', // No response for now
|
|
70
|
+
files: [],
|
|
71
|
+
metadata: {
|
|
72
|
+
source: 'cursor-database',
|
|
73
|
+
capturedAt: new Date().toISOString(),
|
|
74
|
+
timestamp: conversation.timestamp
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
console.log(chalk.yellow('ā ļø No recent AI conversation found - proceeding without session linking'));
|
|
80
|
+
// No manual prompts - just proceed without a session
|
|
81
|
+
}
|
|
82
|
+
// Read files from staging area
|
|
83
|
+
const stagingPath = path.join(cwd, '.vibehub', 'staging');
|
|
84
|
+
const stagingInfoPath = path.join(stagingPath, 'staging.json');
|
|
85
|
+
let files = [];
|
|
86
|
+
let changes = {};
|
|
87
|
+
if (await fs.pathExists(stagingInfoPath)) {
|
|
88
|
+
try {
|
|
89
|
+
const stagingInfo = await fs.readJson(stagingInfoPath);
|
|
90
|
+
files = stagingInfo.files || [];
|
|
91
|
+
// Read file contents for changes tracking
|
|
92
|
+
for (const file of files) {
|
|
93
|
+
const filePath = path.join(stagingPath, file);
|
|
94
|
+
if (await fs.pathExists(filePath)) {
|
|
95
|
+
const content = await fs.readFile(filePath, 'utf-8');
|
|
96
|
+
changes[file] = {
|
|
97
|
+
content,
|
|
98
|
+
size: content.length,
|
|
99
|
+
lastModified: new Date().toISOString()
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
console.log(chalk.yellow('ā ļø Warning: Could not read staging info, proceeding with empty files'));
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
// Create the commit
|
|
109
|
+
const commitId = await vibehubManager.createCommit({
|
|
110
|
+
message,
|
|
111
|
+
author,
|
|
112
|
+
sessionId: sessionId || undefined,
|
|
113
|
+
files: files,
|
|
114
|
+
changes: changes
|
|
115
|
+
});
|
|
116
|
+
console.log(chalk.green('\nā
Commit created successfully!'));
|
|
117
|
+
console.log(chalk.white('Commit ID: ') + chalk.cyan(commitId));
|
|
118
|
+
console.log(chalk.white('Message: ') + chalk.gray(message));
|
|
119
|
+
console.log(chalk.white('Author: ') + chalk.gray(author));
|
|
120
|
+
console.log(chalk.white('Files: ') + chalk.gray(files.length));
|
|
121
|
+
if (capturedPrompts > 0) {
|
|
122
|
+
console.log(chalk.white('Prompts Captured: ') + chalk.cyan(capturedPrompts));
|
|
123
|
+
}
|
|
124
|
+
if (sessionId) {
|
|
125
|
+
console.log(chalk.white('Linked Session: ') + chalk.cyan(sessionId));
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
console.error(chalk.red('Failed to create commit:'), error);
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
//# sourceMappingURL=commit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commit.js","sourceRoot":"","sources":["../../src/commands/commit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWpC,eAAO,MAAM,WAAW,SA4GpB,CAAC"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import inquirer from 'inquirer';
|
|
4
|
+
import path from 'path';
|
|
5
|
+
import { fileURLToPath } from 'url';
|
|
6
|
+
import { VibeHubManager } from '../lib/vibehub-manager.js';
|
|
7
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
8
|
+
const __dirname = path.dirname(__filename);
|
|
9
|
+
export const initCommand = new Command('init')
|
|
10
|
+
.description('Initialize a new VibeHub repository')
|
|
11
|
+
.option('-f, --force', 'Force initialization even if .vibehub already exists')
|
|
12
|
+
.option('-q, --quiet', 'Suppress output')
|
|
13
|
+
.action(async (options) => {
|
|
14
|
+
const cwd = process.cwd();
|
|
15
|
+
const vibehubManager = new VibeHubManager(cwd);
|
|
16
|
+
try {
|
|
17
|
+
// Check if already initialized
|
|
18
|
+
if (await vibehubManager.isInitialized() && !options.force) {
|
|
19
|
+
if (!options.quiet) {
|
|
20
|
+
console.log(chalk.yellow('VibeHub repository already exists in this directory.'));
|
|
21
|
+
console.log(chalk.yellow('Use --force to reinitialize.'));
|
|
22
|
+
}
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
// Interactive setup
|
|
26
|
+
if (!options.quiet) {
|
|
27
|
+
console.log(chalk.blue('š Initializing VibeHub repository...\n'));
|
|
28
|
+
}
|
|
29
|
+
let answers;
|
|
30
|
+
if (options.quiet) {
|
|
31
|
+
// Use default values for non-interactive mode
|
|
32
|
+
answers = {
|
|
33
|
+
projectName: path.basename(cwd),
|
|
34
|
+
description: '',
|
|
35
|
+
author: process.env.USER_EMAIL || 'user@example.com',
|
|
36
|
+
enableAutoSync: true,
|
|
37
|
+
createGitignore: true
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
answers = await inquirer.prompt([
|
|
42
|
+
{
|
|
43
|
+
type: 'input',
|
|
44
|
+
name: 'projectName',
|
|
45
|
+
message: 'Project name:',
|
|
46
|
+
default: path.basename(cwd),
|
|
47
|
+
validate: (input) => {
|
|
48
|
+
if (!input.trim()) {
|
|
49
|
+
return 'Project name cannot be empty';
|
|
50
|
+
}
|
|
51
|
+
return true;
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
type: 'input',
|
|
56
|
+
name: 'description',
|
|
57
|
+
message: 'Project description (optional):',
|
|
58
|
+
default: ''
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
type: 'input',
|
|
62
|
+
name: 'author',
|
|
63
|
+
message: 'Author email:',
|
|
64
|
+
default: process.env.USER_EMAIL || '',
|
|
65
|
+
validate: (input) => {
|
|
66
|
+
if (!input.trim()) {
|
|
67
|
+
return 'Author email is required';
|
|
68
|
+
}
|
|
69
|
+
if (!input.includes('@')) {
|
|
70
|
+
return 'Please enter a valid email address';
|
|
71
|
+
}
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'confirm',
|
|
77
|
+
name: 'enableAutoSync',
|
|
78
|
+
message: 'Enable automatic sync with VibeHub cloud?',
|
|
79
|
+
default: true
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
type: 'confirm',
|
|
83
|
+
name: 'createGitignore',
|
|
84
|
+
message: 'Add .vibehub to .gitignore?',
|
|
85
|
+
default: true
|
|
86
|
+
}
|
|
87
|
+
]);
|
|
88
|
+
}
|
|
89
|
+
// Initialize the repository
|
|
90
|
+
await vibehubManager.init({
|
|
91
|
+
projectName: answers.projectName,
|
|
92
|
+
description: answers.description,
|
|
93
|
+
author: answers.author,
|
|
94
|
+
enableAutoSync: answers.enableAutoSync
|
|
95
|
+
});
|
|
96
|
+
// Update .gitignore if requested
|
|
97
|
+
if (answers.createGitignore) {
|
|
98
|
+
await vibehubManager.updateGitignore();
|
|
99
|
+
}
|
|
100
|
+
if (!options.quiet) {
|
|
101
|
+
console.log(chalk.green('\nā
VibeHub repository initialized successfully!'));
|
|
102
|
+
console.log(chalk.blue('\nNext steps:'));
|
|
103
|
+
console.log(chalk.white(' ⢠Run ') + chalk.cyan('vibe status') + chalk.white(' to see repository status'));
|
|
104
|
+
console.log(chalk.white(' ⢠Run ') + chalk.cyan('vibe commit') + chalk.white(' to create your first commit'));
|
|
105
|
+
console.log(chalk.white(' ⢠Visit ') + chalk.cyan('https://vibehub.dev') + chalk.white(' to view your project'));
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
catch (error) {
|
|
109
|
+
console.error(chalk.red('Failed to initialize VibeHub repository:'), error);
|
|
110
|
+
process.exit(1);
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,eAAO,MAAM,cAAc,SA4LvB,CAAC"}
|