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.
Files changed (69) hide show
  1. package/dist/commands/add.d.ts +3 -0
  2. package/dist/commands/add.d.ts.map +1 -0
  3. package/dist/commands/add.js +125 -0
  4. package/dist/commands/add.js.map +1 -0
  5. package/dist/commands/capture-prompts.d.ts +3 -0
  6. package/dist/commands/capture-prompts.d.ts.map +1 -0
  7. package/dist/commands/capture-prompts.js +137 -0
  8. package/dist/commands/capture-prompts.js.map +1 -0
  9. package/dist/commands/commit.d.ts +3 -0
  10. package/dist/commands/commit.d.ts.map +1 -0
  11. package/dist/commands/commit.js +132 -0
  12. package/dist/commands/commit.js.map +1 -0
  13. package/dist/commands/init.d.ts +3 -0
  14. package/dist/commands/init.d.ts.map +1 -0
  15. package/dist/commands/init.js +113 -0
  16. package/dist/commands/init.js.map +1 -0
  17. package/dist/commands/install.d.ts +3 -0
  18. package/dist/commands/install.d.ts.map +1 -0
  19. package/dist/commands/install.js +182 -0
  20. package/dist/commands/install.js.map +1 -0
  21. package/dist/commands/pull.d.ts +3 -0
  22. package/dist/commands/pull.d.ts.map +1 -0
  23. package/dist/commands/pull.js +99 -0
  24. package/dist/commands/pull.js.map +1 -0
  25. package/dist/commands/push.d.ts +3 -0
  26. package/dist/commands/push.d.ts.map +1 -0
  27. package/dist/commands/push.js +142 -0
  28. package/dist/commands/push.js.map +1 -0
  29. package/dist/commands/session.d.ts +3 -0
  30. package/dist/commands/session.d.ts.map +1 -0
  31. package/dist/commands/session.js +179 -0
  32. package/dist/commands/session.js.map +1 -0
  33. package/dist/commands/set.d.ts +3 -0
  34. package/dist/commands/set.d.ts.map +1 -0
  35. package/dist/commands/set.js +134 -0
  36. package/dist/commands/set.js.map +1 -0
  37. package/dist/commands/status.d.ts +3 -0
  38. package/dist/commands/status.d.ts.map +1 -0
  39. package/dist/commands/status.js +79 -0
  40. package/dist/commands/status.js.map +1 -0
  41. package/dist/index.d.ts +3 -0
  42. package/dist/index.d.ts.map +1 -0
  43. package/dist/index.js +44 -0
  44. package/dist/index.js.map +1 -0
  45. package/dist/lib/ai-capture.d.ts +21 -0
  46. package/dist/lib/ai-capture.d.ts.map +1 -0
  47. package/dist/lib/ai-capture.js +242 -0
  48. package/dist/lib/ai-capture.js.map +1 -0
  49. package/dist/lib/cloud-service.d.ts +26 -0
  50. package/dist/lib/cloud-service.d.ts.map +1 -0
  51. package/dist/lib/cloud-service.js +200 -0
  52. package/dist/lib/cloud-service.js.map +1 -0
  53. package/dist/lib/cursor-conversation-capture.d.ts +10 -0
  54. package/dist/lib/cursor-conversation-capture.d.ts.map +1 -0
  55. package/dist/lib/cursor-conversation-capture.js +117 -0
  56. package/dist/lib/cursor-conversation-capture.js.map +1 -0
  57. package/dist/lib/prompt-capture-manager.d.ts +33 -0
  58. package/dist/lib/prompt-capture-manager.d.ts.map +1 -0
  59. package/dist/lib/prompt-capture-manager.js +178 -0
  60. package/dist/lib/prompt-capture-manager.js.map +1 -0
  61. package/dist/lib/vibehub-manager.d.ts +172 -0
  62. package/dist/lib/vibehub-manager.d.ts.map +1 -0
  63. package/dist/lib/vibehub-manager.js +855 -0
  64. package/dist/lib/vibehub-manager.js.map +1 -0
  65. package/dist/src/commands/set.d.ts +3 -0
  66. package/dist/src/commands/set.d.ts.map +1 -0
  67. package/dist/src/commands/set.js +125 -0
  68. package/dist/src/commands/set.js.map +1 -0
  69. package/package.json +53 -0
@@ -0,0 +1,33 @@
1
+ export interface PromptEntry {
2
+ id: string;
3
+ text: string;
4
+ timestamp: number;
5
+ timestamp_iso: string;
6
+ source: 'cursor-database' | 'manual-entry';
7
+ workspace_id?: string;
8
+ metadata?: Record<string, any>;
9
+ }
10
+ export interface PromptsData {
11
+ version: string;
12
+ created_at: string;
13
+ last_updated: string;
14
+ total_prompts: number;
15
+ prompts: PromptEntry[];
16
+ }
17
+ export declare class PromptCaptureManager {
18
+ private promptsFilePath;
19
+ constructor(workspacePath: string);
20
+ initialize(): Promise<void>;
21
+ loadPrompts(): Promise<PromptsData>;
22
+ savePrompts(data: PromptsData): Promise<void>;
23
+ addPrompt(prompt: Omit<PromptEntry, 'id' | 'timestamp_iso'>): Promise<string>;
24
+ captureAllPromptsFromCursor(captureFromAllWorkspaces?: boolean): Promise<number>;
25
+ private capturePromptsFromDatabase;
26
+ private getCursorDataPath;
27
+ private generateId;
28
+ getRecentPrompts(limit?: number): Promise<PromptEntry[]>;
29
+ getPromptsByDateRange(startDate: Date, endDate: Date): Promise<PromptEntry[]>;
30
+ searchPrompts(query: string): Promise<PromptEntry[]>;
31
+ private findCurrentWorkspace;
32
+ }
33
+ //# sourceMappingURL=prompt-capture-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-capture-manager.d.ts","sourceRoot":"","sources":["../../src/lib/prompt-capture-manager.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,iBAAiB,GAAG,cAAc,CAAC;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAED,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,eAAe,CAAS;gBAEpB,aAAa,EAAE,MAAM;IAI3B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB3B,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC;IAKnC,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAM7C,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,eAAe,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAe7E,2BAA2B,CAAC,wBAAwB,GAAE,OAAe,GAAG,OAAO,CAAC,MAAM,CAAC;YAwD/E,0BAA0B;IA2CxC,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,UAAU;IAIZ,gBAAgB,CAAC,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAO5D,qBAAqB,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAQ7E,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;YAQ5C,oBAAoB;CAsBnC"}
@@ -0,0 +1,178 @@
1
+ import fs from 'fs-extra';
2
+ import path from 'path';
3
+ import os from 'os';
4
+ export class PromptCaptureManager {
5
+ constructor(workspacePath) {
6
+ this.promptsFilePath = path.join(workspacePath, '.vibehub', 'sessions', 'prompts.json');
7
+ }
8
+ async initialize() {
9
+ // Ensure the sessions directory exists
10
+ const sessionsDir = path.dirname(this.promptsFilePath);
11
+ await fs.ensureDir(sessionsDir);
12
+ // Create prompts.json if it doesn't exist
13
+ if (!await fs.pathExists(this.promptsFilePath)) {
14
+ const initialData = {
15
+ version: "1.0",
16
+ created_at: new Date().toISOString(),
17
+ last_updated: new Date().toISOString(),
18
+ total_prompts: 0,
19
+ prompts: []
20
+ };
21
+ await fs.writeJson(this.promptsFilePath, initialData, { spaces: 2 });
22
+ }
23
+ }
24
+ async loadPrompts() {
25
+ await this.initialize();
26
+ return await fs.readJson(this.promptsFilePath);
27
+ }
28
+ async savePrompts(data) {
29
+ data.last_updated = new Date().toISOString();
30
+ data.total_prompts = data.prompts.length;
31
+ await fs.writeJson(this.promptsFilePath, data, { spaces: 2 });
32
+ }
33
+ async addPrompt(prompt) {
34
+ const data = await this.loadPrompts();
35
+ const newPrompt = {
36
+ ...prompt,
37
+ id: this.generateId(),
38
+ timestamp_iso: new Date(prompt.timestamp).toISOString()
39
+ };
40
+ data.prompts.push(newPrompt);
41
+ await this.savePrompts(data);
42
+ return newPrompt.id;
43
+ }
44
+ async captureAllPromptsFromCursor(captureFromAllWorkspaces = false) {
45
+ try {
46
+ console.log('🤖 Capturing all prompts from Cursor...');
47
+ const cursorPath = this.getCursorDataPath();
48
+ if (!await fs.pathExists(cursorPath)) {
49
+ console.log('❌ Cursor path does not exist');
50
+ return 0;
51
+ }
52
+ const workspaces = await fs.readdir(cursorPath);
53
+ console.log(`Found ${workspaces.length} workspaces`);
54
+ let totalCaptured = 0;
55
+ const existingData = await this.loadPrompts();
56
+ const existingPromptTexts = new Set(existingData.prompts.map(p => p.text));
57
+ // Find current workspace
58
+ const currentWorkspace = await this.findCurrentWorkspace(workspaces, cursorPath);
59
+ if (currentWorkspace) {
60
+ console.log(`Current workspace: ${currentWorkspace}`);
61
+ }
62
+ for (const workspace of workspaces) {
63
+ const activeDbPath = path.join(cursorPath, workspace, 'state.vscdb');
64
+ if (await fs.pathExists(activeDbPath)) {
65
+ // Only capture from current workspace unless explicitly capturing from all
66
+ if (captureFromAllWorkspaces || workspace === currentWorkspace) {
67
+ const captured = await this.capturePromptsFromDatabase(activeDbPath, workspace, existingPromptTexts);
68
+ totalCaptured += captured;
69
+ if (workspace === currentWorkspace) {
70
+ console.log(`✅ Captured ${captured} prompts from current workspace`);
71
+ }
72
+ else {
73
+ console.log(`📦 Captured ${captured} prompts from workspace ${workspace}`);
74
+ }
75
+ }
76
+ }
77
+ }
78
+ if (totalCaptured > 0) {
79
+ console.log(`✅ Captured ${totalCaptured} new prompts`);
80
+ }
81
+ else {
82
+ console.log('ℹ️ No new prompts found to capture');
83
+ }
84
+ return totalCaptured;
85
+ }
86
+ catch (error) {
87
+ console.error('Error capturing prompts from Cursor:', error);
88
+ return 0;
89
+ }
90
+ }
91
+ async capturePromptsFromDatabase(dbPath, workspaceId, existingPromptTexts) {
92
+ try {
93
+ const Database = (await import('better-sqlite3')).default;
94
+ const db = new Database(dbPath);
95
+ const promptsResult = db.prepare("SELECT value FROM ItemTable WHERE key = 'aiService.prompts'").get();
96
+ if (!promptsResult) {
97
+ return 0;
98
+ }
99
+ const prompts = JSON.parse(promptsResult.value);
100
+ let captured = 0;
101
+ for (const prompt of prompts) {
102
+ if (prompt.text && !existingPromptTexts.has(prompt.text)) {
103
+ await this.addPrompt({
104
+ text: prompt.text,
105
+ timestamp: prompt.unixMs || Date.now(),
106
+ source: 'cursor-database',
107
+ workspace_id: workspaceId,
108
+ metadata: {
109
+ commandType: prompt.commandType,
110
+ index: prompt.index
111
+ }
112
+ });
113
+ existingPromptTexts.add(prompt.text);
114
+ captured++;
115
+ }
116
+ }
117
+ return captured;
118
+ }
119
+ catch (error) {
120
+ console.error(`Error parsing database ${dbPath}:`, error);
121
+ return 0;
122
+ }
123
+ }
124
+ getCursorDataPath() {
125
+ const platform = os.platform();
126
+ const homeDir = os.homedir();
127
+ if (platform === 'darwin') {
128
+ return path.join(homeDir, 'Library', 'Application Support', 'Cursor', 'User', 'workspaceStorage');
129
+ }
130
+ else if (platform === 'win32') {
131
+ return path.join(homeDir, 'AppData', 'Roaming', 'Cursor', 'User', 'workspaceStorage');
132
+ }
133
+ else {
134
+ return path.join(homeDir, '.config', 'Cursor', 'User', 'workspaceStorage');
135
+ }
136
+ }
137
+ generateId() {
138
+ return `prompt_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
139
+ }
140
+ async getRecentPrompts(limit = 10) {
141
+ const data = await this.loadPrompts();
142
+ return data.prompts
143
+ .sort((a, b) => b.timestamp - a.timestamp)
144
+ .slice(0, limit);
145
+ }
146
+ async getPromptsByDateRange(startDate, endDate) {
147
+ const data = await this.loadPrompts();
148
+ return data.prompts.filter(prompt => {
149
+ const promptDate = new Date(prompt.timestamp);
150
+ return promptDate >= startDate && promptDate <= endDate;
151
+ });
152
+ }
153
+ async searchPrompts(query) {
154
+ const data = await this.loadPrompts();
155
+ const lowerQuery = query.toLowerCase();
156
+ return data.prompts.filter(prompt => prompt.text.toLowerCase().includes(lowerQuery));
157
+ }
158
+ async findCurrentWorkspace(workspaces, cursorPath) {
159
+ const currentDir = process.cwd();
160
+ for (const workspace of workspaces) {
161
+ const workspaceJsonPath = path.join(cursorPath, workspace, 'workspace.json');
162
+ if (await fs.pathExists(workspaceJsonPath)) {
163
+ try {
164
+ const workspaceData = await fs.readJson(workspaceJsonPath);
165
+ const workspaceFolder = workspaceData.folder?.replace('file://', '');
166
+ if (workspaceFolder && currentDir.startsWith(workspaceFolder)) {
167
+ return workspace;
168
+ }
169
+ }
170
+ catch (error) {
171
+ // Continue to next workspace if this one fails
172
+ }
173
+ }
174
+ }
175
+ return null;
176
+ }
177
+ }
178
+ //# sourceMappingURL=prompt-capture-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-capture-manager.js","sourceRoot":"","sources":["../../src/lib/prompt-capture-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,172 @@
1
+ export interface VibeHubConfig {
2
+ projectId: string;
3
+ projectName: string;
4
+ description?: string;
5
+ localPath: string;
6
+ createdAt: string;
7
+ lastUpdated: string;
8
+ version: string;
9
+ author: {
10
+ name: string;
11
+ email: string;
12
+ };
13
+ config: {
14
+ autoSync: boolean;
15
+ capturePrompts: boolean;
16
+ workspaceTracking: boolean;
17
+ };
18
+ workspace?: {
19
+ cursorWorkspaceId: string | null;
20
+ cursorWorkspacePath: string | null;
21
+ isActive: boolean;
22
+ createdAt: string;
23
+ lastAccessed: string;
24
+ };
25
+ cloud?: {
26
+ projectUrl: string;
27
+ apiUrl: string;
28
+ userEmail: string;
29
+ token?: string;
30
+ };
31
+ lastSync?: string;
32
+ }
33
+ export interface VibeHubSession {
34
+ id: string;
35
+ timestamp: string;
36
+ prompt: string;
37
+ response: string;
38
+ files: string[];
39
+ metadata: Record<string, any>;
40
+ }
41
+ export interface VibeHubCommit {
42
+ id: string;
43
+ timestamp: string;
44
+ message: string;
45
+ author: string;
46
+ sessionId?: string;
47
+ files: string[];
48
+ changes: Record<string, any>;
49
+ }
50
+ export interface PushRequest {
51
+ projectId: string;
52
+ commits: VibeHubCommit[];
53
+ sessions: VibeHubSession[];
54
+ force?: boolean;
55
+ }
56
+ export interface PullRequest {
57
+ projectId: string;
58
+ lastSync?: string;
59
+ force?: boolean;
60
+ }
61
+ export interface SyncResponse {
62
+ commits: VibeHubCommit[];
63
+ sessions: VibeHubSession[];
64
+ conflicts?: any[];
65
+ lastSync: string;
66
+ }
67
+ export declare class VibeHubManager {
68
+ private repoPath;
69
+ private configPath;
70
+ private sessionsPath;
71
+ private commitsPath;
72
+ private fileWatchers;
73
+ constructor(repoPath: string);
74
+ isInitialized(): Promise<boolean>;
75
+ init(config: {
76
+ projectName: string;
77
+ description?: string;
78
+ author: string;
79
+ enableAutoSync: boolean;
80
+ }): Promise<void>;
81
+ getConfig(): Promise<VibeHubConfig>;
82
+ updateConfig(updates: Partial<VibeHubConfig>): Promise<void>;
83
+ ensureAuthorInfo(email: string): Promise<void>;
84
+ createSession(session: Omit<VibeHubSession, 'id' | 'timestamp'>): Promise<string>;
85
+ getSession(sessionId: string): Promise<VibeHubSession | null>;
86
+ getAllSessions(): Promise<VibeHubSession[]>;
87
+ createCommit(commit: Omit<VibeHubCommit, 'id' | 'timestamp'>): Promise<string>;
88
+ getCommit(commitId: string): Promise<VibeHubCommit | null>;
89
+ getAllCommits(): Promise<VibeHubCommit[]>;
90
+ private createInitialCommit;
91
+ updateGitignore(): Promise<void>;
92
+ getStatus(): Promise<{
93
+ initialized: boolean;
94
+ config?: VibeHubConfig;
95
+ sessionCount: number;
96
+ commitCount: number;
97
+ lastActivity?: string;
98
+ }>;
99
+ /**
100
+ * Detect and map Cursor workspace to this project
101
+ */
102
+ private detectAndMapCursorWorkspace;
103
+ /**
104
+ * Get Cursor workspace storage path based on OS
105
+ */
106
+ private getCursorWorkspaceStoragePath;
107
+ /**
108
+ * Create workspace mapping file
109
+ */
110
+ private createWorkspaceMapping;
111
+ /**
112
+ * Get git remote URL
113
+ */
114
+ private getGitRemote;
115
+ /**
116
+ * Get current git branch
117
+ */
118
+ private getGitBranch;
119
+ /**
120
+ * Extract prompts and generations from Cursor workspace
121
+ */
122
+ private extractPromptsAndGenerations;
123
+ /**
124
+ * Store prompts in sessions directory
125
+ */
126
+ private storePrompts;
127
+ /**
128
+ * Store generations in exports directory
129
+ */
130
+ private storeGenerations;
131
+ /**
132
+ * Generate CSV with prompts and timestamps
133
+ */
134
+ private generatePromptsCsv;
135
+ /**
136
+ * Update vibehub.json with workspace information
137
+ */
138
+ private updateVibehubConfigWithWorkspace;
139
+ /**
140
+ * Start real-time file watching for auto-sync (background service)
141
+ */
142
+ private startWorkspaceWatching;
143
+ /**
144
+ * Create a background watcher script
145
+ */
146
+ private createBackgroundWatcherScript;
147
+ /**
148
+ * Start the background process
149
+ */
150
+ private startBackgroundProcess;
151
+ /**
152
+ * Log messages to a file for background operations
153
+ */
154
+ private logToFile;
155
+ /**
156
+ * Sync new data from Cursor workspace
157
+ */
158
+ private syncNewData;
159
+ /**
160
+ * Stop file watching for a workspace
161
+ */
162
+ stopWorkspaceWatching(workspaceId: string): Promise<void>;
163
+ /**
164
+ * Manual sync method
165
+ */
166
+ syncWorkspace(workspaceId: string): Promise<void>;
167
+ /**
168
+ * Stop all file watchers
169
+ */
170
+ stopAllWatching(): Promise<void>;
171
+ }
172
+ //# sourceMappingURL=vibehub-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vibehub-manager.d.ts","sourceRoot":"","sources":["../../src/lib/vibehub-manager.ts"],"names":[],"mappings":"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"}