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,179 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import inquirer from 'inquirer';
|
|
4
|
+
import { VibeHubManager } from '../lib/vibehub-manager.js';
|
|
5
|
+
export const sessionCommand = new Command('session')
|
|
6
|
+
.description('Manage AI sessions and link them to commits')
|
|
7
|
+
.option('-c, --create', 'Create a new AI session')
|
|
8
|
+
.option('-l, --list', 'List all sessions')
|
|
9
|
+
.option('-s, --show <sessionId>', 'Show session details')
|
|
10
|
+
.option('-d, --delete <sessionId>', 'Delete a session')
|
|
11
|
+
.action(async (options) => {
|
|
12
|
+
const cwd = process.cwd();
|
|
13
|
+
const vibehubManager = new VibeHubManager(cwd);
|
|
14
|
+
try {
|
|
15
|
+
const status = await vibehubManager.getStatus();
|
|
16
|
+
if (!status.initialized) {
|
|
17
|
+
console.log(chalk.red('❌ Not a VibeHub repository'));
|
|
18
|
+
console.log(chalk.blue('Run ') + chalk.cyan('vibe init') + chalk.blue(' to initialize a new repository'));
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
if (options.create) {
|
|
22
|
+
await createSession(vibehubManager);
|
|
23
|
+
}
|
|
24
|
+
else if (options.list) {
|
|
25
|
+
await listSessions(vibehubManager);
|
|
26
|
+
}
|
|
27
|
+
else if (options.show) {
|
|
28
|
+
await showSession(vibehubManager, options.show);
|
|
29
|
+
}
|
|
30
|
+
else if (options.delete) {
|
|
31
|
+
await deleteSession(vibehubManager, options.delete);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
// Default: interactive mode
|
|
35
|
+
await interactiveSession(vibehubManager);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
console.error(chalk.red('Session operation failed:'), error);
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
async function createSession(vibehubManager) {
|
|
43
|
+
console.log(chalk.blue('🤖 Creating new AI session...\n'));
|
|
44
|
+
const answers = await inquirer.prompt([
|
|
45
|
+
{
|
|
46
|
+
type: 'input',
|
|
47
|
+
name: 'prompt',
|
|
48
|
+
message: 'What did you ask the AI?',
|
|
49
|
+
validate: (input) => {
|
|
50
|
+
if (!input.trim()) {
|
|
51
|
+
return 'Prompt cannot be empty';
|
|
52
|
+
}
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
type: 'editor',
|
|
58
|
+
name: 'response',
|
|
59
|
+
message: 'What was the AI response? (opens in editor)',
|
|
60
|
+
validate: (input) => {
|
|
61
|
+
if (!input.trim()) {
|
|
62
|
+
return 'Response cannot be empty';
|
|
63
|
+
}
|
|
64
|
+
return true;
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
type: 'input',
|
|
69
|
+
name: 'files',
|
|
70
|
+
message: 'Which files were affected? (comma-separated)',
|
|
71
|
+
default: ''
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
type: 'input',
|
|
75
|
+
name: 'metadata',
|
|
76
|
+
message: 'Additional metadata (JSON format, optional):',
|
|
77
|
+
default: '{}'
|
|
78
|
+
}
|
|
79
|
+
]);
|
|
80
|
+
try {
|
|
81
|
+
const sessionId = await vibehubManager.createSession({
|
|
82
|
+
prompt: answers.prompt.trim(),
|
|
83
|
+
response: answers.response.trim(),
|
|
84
|
+
files: answers.files ? answers.files.split(',').map((f) => f.trim()).filter((f) => f) : [],
|
|
85
|
+
metadata: JSON.parse(answers.metadata || '{}')
|
|
86
|
+
});
|
|
87
|
+
console.log(chalk.green('\n✅ AI session created successfully!'));
|
|
88
|
+
console.log(chalk.white('Session ID: ') + chalk.cyan(sessionId));
|
|
89
|
+
console.log(chalk.white('Prompt: ') + chalk.gray(answers.prompt.substring(0, 50) + '...'));
|
|
90
|
+
console.log(chalk.blue('\n💡 To link this session to a commit:'));
|
|
91
|
+
console.log(chalk.cyan(`vibe commit -s ${sessionId}`));
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
console.error(chalk.red('Failed to create session:'), error);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
async function listSessions(vibehubManager) {
|
|
98
|
+
console.log(chalk.blue('📋 AI Sessions:\n'));
|
|
99
|
+
const sessions = await vibehubManager.getAllSessions();
|
|
100
|
+
if (sessions.length === 0) {
|
|
101
|
+
console.log(chalk.gray('No AI sessions found'));
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
sessions.forEach((session, index) => {
|
|
105
|
+
console.log(chalk.white(`${index + 1}. ${session.id.substring(0, 8)}`));
|
|
106
|
+
console.log(chalk.gray(` Prompt: ${session.prompt.substring(0, 60)}...`));
|
|
107
|
+
console.log(chalk.gray(` Files: ${session.files.length > 0 ? session.files.join(', ') : 'None'}`));
|
|
108
|
+
console.log(chalk.gray(` Date: ${new Date(session.timestamp).toLocaleString()}`));
|
|
109
|
+
console.log('');
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
async function showSession(vibehubManager, sessionId) {
|
|
113
|
+
console.log(chalk.blue(`📖 Session Details: ${sessionId}\n`));
|
|
114
|
+
const session = await vibehubManager.getSession(sessionId);
|
|
115
|
+
if (!session) {
|
|
116
|
+
console.log(chalk.red('Session not found'));
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
console.log(chalk.white('ID: ') + chalk.cyan(session.id));
|
|
120
|
+
console.log(chalk.white('Timestamp: ') + chalk.gray(new Date(session.timestamp).toLocaleString()));
|
|
121
|
+
console.log(chalk.white('Files: ') + chalk.gray(session.files.length > 0 ? session.files.join(', ') : 'None'));
|
|
122
|
+
console.log(chalk.white('Metadata: ') + chalk.gray(JSON.stringify(session.metadata, null, 2)));
|
|
123
|
+
console.log(chalk.blue('\n🤖 Prompt:'));
|
|
124
|
+
console.log(chalk.white(session.prompt));
|
|
125
|
+
console.log(chalk.blue('\n🤖 Response:'));
|
|
126
|
+
console.log(chalk.white(session.response));
|
|
127
|
+
}
|
|
128
|
+
async function deleteSession(vibehubManager, sessionId) {
|
|
129
|
+
console.log(chalk.yellow('⚠️ Delete session functionality not implemented yet'));
|
|
130
|
+
console.log(chalk.blue('Session ID: ') + chalk.cyan(sessionId));
|
|
131
|
+
}
|
|
132
|
+
async function interactiveSession(vibehubManager) {
|
|
133
|
+
const answer = await inquirer.prompt([
|
|
134
|
+
{
|
|
135
|
+
type: 'list',
|
|
136
|
+
name: 'action',
|
|
137
|
+
message: 'What would you like to do?',
|
|
138
|
+
choices: [
|
|
139
|
+
{ name: 'Create new AI session', value: 'create' },
|
|
140
|
+
{ name: 'List all sessions', value: 'list' },
|
|
141
|
+
{ name: 'Show session details', value: 'show' },
|
|
142
|
+
{ name: 'Delete session', value: 'delete' },
|
|
143
|
+
{ name: 'Exit', value: 'exit' }
|
|
144
|
+
]
|
|
145
|
+
}
|
|
146
|
+
]);
|
|
147
|
+
switch (answer.action) {
|
|
148
|
+
case 'create':
|
|
149
|
+
await createSession(vibehubManager);
|
|
150
|
+
break;
|
|
151
|
+
case 'list':
|
|
152
|
+
await listSessions(vibehubManager);
|
|
153
|
+
break;
|
|
154
|
+
case 'show':
|
|
155
|
+
const showAnswer = await inquirer.prompt([
|
|
156
|
+
{
|
|
157
|
+
type: 'input',
|
|
158
|
+
name: 'sessionId',
|
|
159
|
+
message: 'Enter session ID:'
|
|
160
|
+
}
|
|
161
|
+
]);
|
|
162
|
+
await showSession(vibehubManager, showAnswer.sessionId);
|
|
163
|
+
break;
|
|
164
|
+
case 'delete':
|
|
165
|
+
const deleteAnswer = await inquirer.prompt([
|
|
166
|
+
{
|
|
167
|
+
type: 'input',
|
|
168
|
+
name: 'sessionId',
|
|
169
|
+
message: 'Enter session ID to delete:'
|
|
170
|
+
}
|
|
171
|
+
]);
|
|
172
|
+
await deleteSession(vibehubManager, deleteAnswer.sessionId);
|
|
173
|
+
break;
|
|
174
|
+
case 'exit':
|
|
175
|
+
console.log(chalk.blue('👋 Goodbye!'));
|
|
176
|
+
break;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
//# sourceMappingURL=session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/commands/session.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set.d.ts","sourceRoot":"","sources":["../../src/commands/set.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,eAAO,MAAM,UAAU,SA6InB,CAAC"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import fs from 'fs-extra';
|
|
4
|
+
import path from 'path';
|
|
5
|
+
import inquirer from 'inquirer';
|
|
6
|
+
import { VibeHubManager } from '../lib/vibehub-manager.js';
|
|
7
|
+
export const setCommand = new Command('set')
|
|
8
|
+
.description('Connect local directory to an existing VibeHub cloud project')
|
|
9
|
+
.argument('<project-url>', 'VibeHub project URL (e.g., https://anandakumar.info/user/project)')
|
|
10
|
+
.action(async (projectUrl) => {
|
|
11
|
+
try {
|
|
12
|
+
console.log(chalk.blue('🔗 Connecting to VibeHub project...\n'));
|
|
13
|
+
const currentDir = process.cwd();
|
|
14
|
+
const vibehubDir = path.join(currentDir, '.vibehub');
|
|
15
|
+
// Check if .vibehub already exists
|
|
16
|
+
let existingConfig = null;
|
|
17
|
+
if (await fs.pathExists(vibehubDir)) {
|
|
18
|
+
console.log(chalk.yellow('⚠️ .vibehub directory already exists. Updating configuration...'));
|
|
19
|
+
// Read existing config to preserve workspace data
|
|
20
|
+
const existingConfigPath = path.join(vibehubDir, 'vibehub.json');
|
|
21
|
+
if (await fs.pathExists(existingConfigPath)) {
|
|
22
|
+
try {
|
|
23
|
+
existingConfig = await fs.readJson(existingConfigPath);
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
console.log(chalk.yellow('⚠️ Could not read existing config, creating new one...'));
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
// Parse project URL to extract user and project name
|
|
31
|
+
const urlParts = projectUrl.split('/');
|
|
32
|
+
const projectName = urlParts[urlParts.length - 1];
|
|
33
|
+
const userName = urlParts[urlParts.length - 2];
|
|
34
|
+
if (!projectName || !userName) {
|
|
35
|
+
throw new Error('Invalid project URL. Expected format: https://anandakumar.info/user/project');
|
|
36
|
+
}
|
|
37
|
+
// Ask for user email for authentication
|
|
38
|
+
const { userEmail } = await inquirer.prompt([
|
|
39
|
+
{
|
|
40
|
+
type: 'input',
|
|
41
|
+
name: 'userEmail',
|
|
42
|
+
message: 'Your email (for authentication):',
|
|
43
|
+
default: process.env.USER_EMAIL || '',
|
|
44
|
+
validate: (input) => {
|
|
45
|
+
if (!input.trim()) {
|
|
46
|
+
return 'Email is required for authentication';
|
|
47
|
+
}
|
|
48
|
+
if (!input.includes('@')) {
|
|
49
|
+
return 'Please enter a valid email address';
|
|
50
|
+
}
|
|
51
|
+
return true;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
]);
|
|
55
|
+
// Generate a simple project ID
|
|
56
|
+
const projectId = `${userName}-${projectName}-${Date.now()}`;
|
|
57
|
+
// Extract API URL from project URL
|
|
58
|
+
const baseUrl = projectUrl.split('/').slice(0, 3).join('/'); // Get https://anandakumar.info
|
|
59
|
+
const apiUrl = baseUrl; // Use base URL, not /api
|
|
60
|
+
// Create .vibehub directory structure
|
|
61
|
+
await fs.ensureDir(vibehubDir);
|
|
62
|
+
await fs.ensureDir(path.join(vibehubDir, 'workspace'));
|
|
63
|
+
await fs.ensureDir(path.join(vibehubDir, 'sessions'));
|
|
64
|
+
await fs.ensureDir(path.join(vibehubDir, 'config'));
|
|
65
|
+
await fs.ensureDir(path.join(vibehubDir, 'exports'));
|
|
66
|
+
// Create vibehub.json configuration, preserving existing workspace data
|
|
67
|
+
const vibehubConfig = {
|
|
68
|
+
projectId: projectId,
|
|
69
|
+
projectName: projectName,
|
|
70
|
+
localPath: currentDir,
|
|
71
|
+
createdAt: existingConfig?.createdAt || new Date().toISOString(),
|
|
72
|
+
lastUpdated: new Date().toISOString(),
|
|
73
|
+
version: '1.0.0',
|
|
74
|
+
// Preserve existing author info or create new one
|
|
75
|
+
author: existingConfig?.author || {
|
|
76
|
+
name: userEmail.split('@')[0],
|
|
77
|
+
email: userEmail
|
|
78
|
+
},
|
|
79
|
+
config: {
|
|
80
|
+
autoSync: true,
|
|
81
|
+
capturePrompts: true,
|
|
82
|
+
workspaceTracking: true
|
|
83
|
+
},
|
|
84
|
+
workspace: existingConfig?.workspace || {
|
|
85
|
+
cursorWorkspaceId: null,
|
|
86
|
+
cursorWorkspacePath: null,
|
|
87
|
+
isActive: false
|
|
88
|
+
},
|
|
89
|
+
cloud: {
|
|
90
|
+
projectUrl: projectUrl,
|
|
91
|
+
apiUrl: apiUrl,
|
|
92
|
+
userEmail: userEmail,
|
|
93
|
+
token: process.env.VIBEHUB_TOKEN
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
await fs.writeJson(path.join(vibehubDir, 'vibehub.json'), vibehubConfig, { spaces: 2 });
|
|
97
|
+
// Ensure author info is set for existing configs
|
|
98
|
+
const vibehubManager = new VibeHubManager(currentDir);
|
|
99
|
+
await vibehubManager.ensureAuthorInfo(userEmail);
|
|
100
|
+
// Show workspace status if it exists
|
|
101
|
+
if (existingConfig?.workspace?.cursorWorkspaceId) {
|
|
102
|
+
console.log(chalk.green(`✅ Preserved workspace mapping: ${existingConfig.workspace.cursorWorkspaceId}`));
|
|
103
|
+
}
|
|
104
|
+
// Create .gitignore entry if it doesn't exist
|
|
105
|
+
const gitignorePath = path.join(currentDir, '.gitignore');
|
|
106
|
+
const gitignoreContent = '\n# VibeHub\n.vibehub/\n';
|
|
107
|
+
if (await fs.pathExists(gitignorePath)) {
|
|
108
|
+
const existingContent = await fs.readFile(gitignorePath, 'utf-8');
|
|
109
|
+
if (!existingContent.includes('.vibehub/')) {
|
|
110
|
+
await fs.appendFile(gitignorePath, gitignoreContent);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
await fs.writeFile(gitignorePath, gitignoreContent);
|
|
115
|
+
}
|
|
116
|
+
console.log(chalk.green('✅ Successfully connected to VibeHub project!'));
|
|
117
|
+
console.log(chalk.cyan(`📁 Project ID: ${projectId}`));
|
|
118
|
+
console.log(chalk.cyan(`📝 Project Name: ${projectName}`));
|
|
119
|
+
console.log(chalk.cyan(`📍 Local Path: ${currentDir}`));
|
|
120
|
+
console.log(chalk.cyan(`🌐 Cloud URL: ${projectUrl}`));
|
|
121
|
+
console.log(chalk.cyan(`🔗 API URL: ${apiUrl}`));
|
|
122
|
+
console.log('');
|
|
123
|
+
console.log(chalk.yellow('💡 Next steps:'));
|
|
124
|
+
console.log(chalk.white(' vibe status - Check project status'));
|
|
125
|
+
console.log(chalk.white(' vibe add - Add files to staging'));
|
|
126
|
+
console.log(chalk.white(' vibe commit - Create your first commit'));
|
|
127
|
+
console.log(chalk.white(' vibe push - Push to VibeHub cloud'));
|
|
128
|
+
}
|
|
129
|
+
catch (error) {
|
|
130
|
+
console.error(chalk.red('❌ Error connecting to project:'), error);
|
|
131
|
+
process.exit(1);
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
//# sourceMappingURL=set.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set.js","sourceRoot":"","sources":["../../src/commands/set.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,eAAO,MAAM,aAAa,SAmFtB,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { VibeHubManager } from '../lib/vibehub-manager.js';
|
|
4
|
+
export const statusCommand = new Command('status')
|
|
5
|
+
.description('Show the status of the VibeHub repository')
|
|
6
|
+
.option('-v, --verbose', 'Show detailed information')
|
|
7
|
+
.action(async (options) => {
|
|
8
|
+
const cwd = process.cwd();
|
|
9
|
+
const vibehubManager = new VibeHubManager(cwd);
|
|
10
|
+
try {
|
|
11
|
+
const status = await vibehubManager.getStatus();
|
|
12
|
+
if (!status.initialized) {
|
|
13
|
+
console.log(chalk.red('❌ Not a VibeHub repository'));
|
|
14
|
+
console.log(chalk.blue('Run ') + chalk.cyan('vibe init') + chalk.blue(' to initialize a new repository'));
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
const config = status.config;
|
|
18
|
+
console.log(chalk.blue('📊 VibeHub Repository Status\n'));
|
|
19
|
+
// Basic info
|
|
20
|
+
console.log(chalk.white('Project: ') + chalk.cyan(config.projectName));
|
|
21
|
+
if (config.description) {
|
|
22
|
+
console.log(chalk.white('Description: ') + chalk.gray(config.description));
|
|
23
|
+
}
|
|
24
|
+
console.log(chalk.white('Author: ') + chalk.gray(config.author?.name || 'Unknown'));
|
|
25
|
+
console.log(chalk.white('Email: ') + chalk.gray(config.author?.email || 'Not set'));
|
|
26
|
+
console.log(chalk.white('Created: ') + chalk.gray(new Date(config.createdAt).toLocaleDateString()));
|
|
27
|
+
console.log(chalk.white('Version: ') + chalk.gray(config.version));
|
|
28
|
+
// Stats
|
|
29
|
+
console.log(chalk.white('\n📈 Statistics:'));
|
|
30
|
+
console.log(chalk.white(' Sessions: ') + chalk.cyan(status.sessionCount));
|
|
31
|
+
console.log(chalk.white(' Commits: ') + chalk.cyan(status.commitCount));
|
|
32
|
+
if (status.lastActivity) {
|
|
33
|
+
console.log(chalk.white(' Last Activity: ') + chalk.gray(new Date(status.lastActivity).toLocaleString()));
|
|
34
|
+
}
|
|
35
|
+
// Auto-sync status
|
|
36
|
+
console.log(chalk.white('\n🔄 Auto-sync: ') + (config.config?.autoSync ? chalk.green('Enabled') : chalk.yellow('Disabled')));
|
|
37
|
+
// Cloud connection status
|
|
38
|
+
if (config.cloud) {
|
|
39
|
+
console.log(chalk.white('\n☁️ Cloud Connection: ') + chalk.green('Connected'));
|
|
40
|
+
console.log(chalk.white(' Project URL: ') + chalk.cyan(config.cloud.projectUrl));
|
|
41
|
+
console.log(chalk.white(' API URL: ') + chalk.cyan(config.cloud.apiUrl));
|
|
42
|
+
console.log(chalk.white(' User Email: ') + chalk.cyan(config.cloud.userEmail || 'Not set'));
|
|
43
|
+
// Check authentication status
|
|
44
|
+
if (config.author?.email && config.cloud.userEmail) {
|
|
45
|
+
if (config.author.email === config.cloud.userEmail) {
|
|
46
|
+
console.log(chalk.white(' Authentication: ') + chalk.green('✅ Verified'));
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
console.log(chalk.white(' Authentication: ') + chalk.red('❌ Failed'));
|
|
50
|
+
console.log(chalk.white(' Local: ') + chalk.gray(config.author.email));
|
|
51
|
+
console.log(chalk.white(' Cloud: ') + chalk.gray(config.cloud.userEmail));
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
console.log(chalk.white(' Authentication: ') + chalk.yellow('⚠️ Not configured'));
|
|
56
|
+
}
|
|
57
|
+
if (config.lastSync) {
|
|
58
|
+
console.log(chalk.white(' Last Sync: ') + chalk.gray(new Date(config.lastSync).toLocaleString()));
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
console.log(chalk.white('\n☁️ Cloud Connection: ') + chalk.yellow('Not Connected'));
|
|
63
|
+
console.log(chalk.blue(' Run ') + chalk.cyan('vibe set <project-url>') + chalk.blue(' to connect to a cloud project'));
|
|
64
|
+
}
|
|
65
|
+
if (options.verbose) {
|
|
66
|
+
console.log(chalk.white('\n📁 Repository Structure:'));
|
|
67
|
+
console.log(chalk.gray(' .vibehub/'));
|
|
68
|
+
console.log(chalk.gray(' ├── vibehub.json'));
|
|
69
|
+
console.log(chalk.gray(' ├── sessions/'));
|
|
70
|
+
console.log(chalk.gray(' ├── commits/'));
|
|
71
|
+
console.log(chalk.gray(' └── workspace/'));
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
console.error(chalk.red('Failed to get repository status:'), error);
|
|
76
|
+
process.exit(1);
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { Command } from 'commander';
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
import { initCommand } from './commands/init.js';
|
|
5
|
+
import { statusCommand } from './commands/status.js';
|
|
6
|
+
import { addCommand } from './commands/add.js';
|
|
7
|
+
import { commitCommand } from './commands/commit.js';
|
|
8
|
+
import { pushCommand } from './commands/push.js';
|
|
9
|
+
import { pullCommand } from './commands/pull.js';
|
|
10
|
+
import { sessionCommand } from './commands/session.js';
|
|
11
|
+
import { capturePromptsCommand } from './commands/capture-prompts.js';
|
|
12
|
+
import { setCommand } from './commands/set.js';
|
|
13
|
+
import { installCommand } from './commands/install.js';
|
|
14
|
+
const program = new Command();
|
|
15
|
+
program
|
|
16
|
+
.name('vibe')
|
|
17
|
+
.description('VibeHub - AI-native version control for the modern developer')
|
|
18
|
+
.version('0.1.0');
|
|
19
|
+
// Add commands
|
|
20
|
+
program.addCommand(initCommand);
|
|
21
|
+
program.addCommand(statusCommand);
|
|
22
|
+
program.addCommand(addCommand);
|
|
23
|
+
program.addCommand(commitCommand);
|
|
24
|
+
program.addCommand(pushCommand);
|
|
25
|
+
program.addCommand(pullCommand);
|
|
26
|
+
program.addCommand(sessionCommand);
|
|
27
|
+
program.addCommand(capturePromptsCommand);
|
|
28
|
+
program.addCommand(setCommand);
|
|
29
|
+
program.addCommand(installCommand);
|
|
30
|
+
// Global error handler
|
|
31
|
+
program.exitOverride();
|
|
32
|
+
try {
|
|
33
|
+
await program.parseAsync();
|
|
34
|
+
}
|
|
35
|
+
catch (err) {
|
|
36
|
+
if (err instanceof Error) {
|
|
37
|
+
console.error(chalk.red('Error:'), err.message);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
console.error(chalk.red('An unexpected error occurred'));
|
|
41
|
+
}
|
|
42
|
+
process.exit(1);
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,MAAM,CAAC;KACZ,WAAW,CAAC,8DAA8D,CAAC;KAC3E,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,eAAe;AACf,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;AAC1C,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AAEnC,uBAAuB;AACvB,OAAO,CAAC,YAAY,EAAE,CAAC;AAEvB,IAAI,CAAC;IACH,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;AAC7B,CAAC;AAAC,OAAO,GAAG,EAAE,CAAC;IACb,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface AIConversation {
|
|
2
|
+
prompt: string;
|
|
3
|
+
timestamp: number;
|
|
4
|
+
}
|
|
5
|
+
export declare class AICapture {
|
|
6
|
+
private cwd;
|
|
7
|
+
private cursorCapture;
|
|
8
|
+
constructor(cwd: string);
|
|
9
|
+
captureRecentConversation(): Promise<AIConversation | null>;
|
|
10
|
+
private getConversationFromCursor;
|
|
11
|
+
private getCursorDataPaths;
|
|
12
|
+
private readFromCursorPath;
|
|
13
|
+
private parseConversationFile;
|
|
14
|
+
private extractConversationFromJson;
|
|
15
|
+
private extractConversationFromLog;
|
|
16
|
+
private extractMultiLineConversation;
|
|
17
|
+
private extractFilesFromMessages;
|
|
18
|
+
createManualSession(): Promise<string | null>;
|
|
19
|
+
getRecentSession(): Promise<string | null>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=ai-capture.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-capture.d.ts","sourceRoot":"","sources":["../../src/lib/ai-capture.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,aAAa,CAA4B;gBAErC,GAAG,EAAE,MAAM;IAKjB,yBAAyB,IAAI,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;YA6BnD,yBAAyB;IAoBvC,OAAO,CAAC,kBAAkB;YAyBZ,kBAAkB;YA8BlB,qBAAqB;IAkBnC,OAAO,CAAC,2BAA2B;IA8BnC,OAAO,CAAC,0BAA0B;IAwBlC,OAAO,CAAC,4BAA4B;IA2BpC,OAAO,CAAC,wBAAwB;IAgB1B,mBAAmB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAa7C,gBAAgB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAajD"}
|