vibehub-cli 1.0.40 → 1.0.42
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.map +1 -1
- package/dist/commands/add.js +27 -0
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/clone.d.ts +3 -0
- package/dist/commands/clone.d.ts.map +1 -0
- package/dist/commands/clone.js +219 -0
- package/dist/commands/clone.js.map +1 -0
- package/dist/commands/pull.js +4 -4
- package/dist/commands/pull.js.map +1 -1
- package/dist/commands/push.d.ts.map +1 -1
- package/dist/commands/push.js +9 -22
- package/dist/commands/push.js.map +1 -1
- package/dist/commands/set.d.ts.map +1 -1
- package/dist/commands/set.js +22 -35
- package/dist/commands/set.js.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/adapters/gemini-adapter.d.ts +105 -0
- package/dist/lib/adapters/gemini-adapter.d.ts.map +1 -0
- package/dist/lib/adapters/gemini-adapter.js +295 -0
- package/dist/lib/adapters/gemini-adapter.js.map +1 -0
- package/dist/lib/adapters/index.d.ts +2 -0
- package/dist/lib/adapters/index.d.ts.map +1 -0
- package/dist/lib/adapters/index.js +2 -0
- package/dist/lib/adapters/index.js.map +1 -0
- package/dist/lib/auth-helper.d.ts +22 -0
- package/dist/lib/auth-helper.d.ts.map +1 -0
- package/dist/lib/auth-helper.js +58 -0
- package/dist/lib/auth-helper.js.map +1 -0
- package/dist/lib/cloud-service.d.ts +57 -2
- package/dist/lib/cloud-service.d.ts.map +1 -1
- package/dist/lib/cloud-service.js +86 -9
- package/dist/lib/cloud-service.js.map +1 -1
- package/dist/lib/csv-prompt-parser.js.map +1 -1
- package/dist/lib/firebase-auth.d.ts +15 -0
- package/dist/lib/firebase-auth.d.ts.map +1 -0
- package/dist/lib/firebase-auth.js +107 -0
- package/dist/lib/firebase-auth.js.map +1 -0
- package/dist/lib/global-config.d.ts +42 -0
- package/dist/lib/global-config.d.ts.map +1 -0
- package/dist/lib/global-config.js +90 -0
- package/dist/lib/global-config.js.map +1 -0
- package/dist/lib/vibehub-manager.d.ts +76 -5
- package/dist/lib/vibehub-manager.d.ts.map +1 -1
- package/dist/lib/vibehub-manager.js +347 -9
- package/dist/lib/vibehub-manager.js.map +1 -1
- package/package.json +2 -1
package/dist/commands/set.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set.js","sourceRoot":"","sources":["../../src/commands/set.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"set.js","sourceRoot":"","sources":["../../src/commands/set.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -8,6 +8,7 @@ import { addCommand } from './commands/add.js';
|
|
|
8
8
|
import { commitCommand } from './commands/commit.js';
|
|
9
9
|
import { pushCommand } from './commands/push.js';
|
|
10
10
|
import { pullCommand } from './commands/pull.js';
|
|
11
|
+
import { cloneCommand } from './commands/clone.js';
|
|
11
12
|
import { sessionCommand } from './commands/session.js';
|
|
12
13
|
import { capturePromptsCommand } from './commands/capture-prompts.js';
|
|
13
14
|
import { setCommand } from './commands/set.js';
|
|
@@ -19,6 +20,7 @@ program
|
|
|
19
20
|
.version(pkg.version);
|
|
20
21
|
// Add commands
|
|
21
22
|
program.addCommand(initCommand);
|
|
23
|
+
program.addCommand(cloneCommand);
|
|
22
24
|
program.addCommand(statusCommand);
|
|
23
25
|
program.addCommand(addCommand);
|
|
24
26
|
program.addCommand(commitCommand);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,GAAG,MAAM,iBAAiB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACxD,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,GAAG,CAAC,OAAO,CAAC,CAAC;AAExB,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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,GAAG,MAAM,iBAAiB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACxD,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,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,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,GAAG,CAAC,OAAO,CAAC,CAAC;AAExB,eAAe;AACf,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,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,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prompt extracted from Antigravity (Gemini) chat sessions
|
|
3
|
+
*/
|
|
4
|
+
export interface AntigravityPrompt {
|
|
5
|
+
id: string;
|
|
6
|
+
text: string;
|
|
7
|
+
timestamp: number;
|
|
8
|
+
timestampIso: string;
|
|
9
|
+
sessionId: string;
|
|
10
|
+
model?: string;
|
|
11
|
+
metadata?: Record<string, any>;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Session data from Antigravity chat files
|
|
15
|
+
*/
|
|
16
|
+
export interface AntigravitySession {
|
|
17
|
+
sessionId: string;
|
|
18
|
+
projectHash: string;
|
|
19
|
+
startTime: string;
|
|
20
|
+
lastUpdated: string;
|
|
21
|
+
messages: Array<{
|
|
22
|
+
id: string;
|
|
23
|
+
type: 'user' | 'gemini';
|
|
24
|
+
content: string;
|
|
25
|
+
timestamp: string;
|
|
26
|
+
model?: string;
|
|
27
|
+
thoughts?: any[];
|
|
28
|
+
}>;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Workspace information for Antigravity
|
|
32
|
+
*/
|
|
33
|
+
export interface AntigravityWorkspace {
|
|
34
|
+
projectHash: string;
|
|
35
|
+
projectName: string;
|
|
36
|
+
codeTrackerPath: string;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Info about an available Antigravity project
|
|
40
|
+
*/
|
|
41
|
+
export interface AvailableAntigravityProject {
|
|
42
|
+
projectHash: string;
|
|
43
|
+
chatCount: number;
|
|
44
|
+
promptCount: number;
|
|
45
|
+
lastUpdated: string;
|
|
46
|
+
samplePrompt?: string;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Adapter for extracting prompts from Antigravity (Gemini) editor
|
|
50
|
+
*
|
|
51
|
+
* Data locations:
|
|
52
|
+
* - Chats: ~/.gemini/tmp/{projectHash}/chats/*.json
|
|
53
|
+
* - Logs: ~/.gemini/tmp/{projectHash}/logs.json
|
|
54
|
+
* - Project mapping: ~/.gemini/antigravity/code_tracker/active/{projectName}_{hash}/
|
|
55
|
+
*
|
|
56
|
+
* Note: The hash in tmp/ is NOT derived from project path in a simple way.
|
|
57
|
+
* We scan tmp folders directly and match by project name in code_tracker when possible.
|
|
58
|
+
*/
|
|
59
|
+
export declare class GeminiAdapter {
|
|
60
|
+
/**
|
|
61
|
+
* Get Gemini data directory path
|
|
62
|
+
* Same on all platforms: ~/.gemini
|
|
63
|
+
*/
|
|
64
|
+
getDataPath(): string;
|
|
65
|
+
/**
|
|
66
|
+
* Check if Antigravity (Gemini) is installed
|
|
67
|
+
*/
|
|
68
|
+
isInstalled(): Promise<boolean>;
|
|
69
|
+
/**
|
|
70
|
+
* List all available projects with chat data
|
|
71
|
+
* This scans tmp folders to find all projects with prompts
|
|
72
|
+
*/
|
|
73
|
+
listAvailableProjects(): Promise<AvailableAntigravityProject[]>;
|
|
74
|
+
/**
|
|
75
|
+
* Find workspace for a project by matching project name in code_tracker
|
|
76
|
+
* Falls back to scanning tmp folders if code_tracker doesn't have the project
|
|
77
|
+
*/
|
|
78
|
+
findWorkspaceForProject(projectPath: string): Promise<AntigravityWorkspace | null>;
|
|
79
|
+
/**
|
|
80
|
+
* Find the tmp hash for a project by checking code_tracker files
|
|
81
|
+
*/
|
|
82
|
+
private findTmpHashForProject;
|
|
83
|
+
/**
|
|
84
|
+
* Find project hash in tmp directory (legacy method, kept for compatibility)
|
|
85
|
+
*/
|
|
86
|
+
findProjectHash(projectPath: string): Promise<string | null>;
|
|
87
|
+
/**
|
|
88
|
+
* Get all project hashes that have chat data
|
|
89
|
+
*/
|
|
90
|
+
getAllProjectHashes(): Promise<string[]>;
|
|
91
|
+
/**
|
|
92
|
+
* Extract all prompts from Antigravity chat sessions
|
|
93
|
+
* NO DEDUPLICATION - all prompts are kept
|
|
94
|
+
*/
|
|
95
|
+
extractPrompts(projectHash: string): Promise<AntigravityPrompt[]>;
|
|
96
|
+
/**
|
|
97
|
+
* Extract full sessions (for richer data)
|
|
98
|
+
*/
|
|
99
|
+
extractSessions(projectHash: string): Promise<AntigravitySession[]>;
|
|
100
|
+
/**
|
|
101
|
+
* Get prompt count for a project
|
|
102
|
+
*/
|
|
103
|
+
getPromptCount(projectHash: string): Promise<number>;
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=gemini-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gemini-adapter.d.ts","sourceRoot":"","sources":["../../../src/lib/adapters/gemini-adapter.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,KAAK,CAAC;QACd,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC;QACxB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC;KAClB,CAAC,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;GAUG;AACH,qBAAa,aAAa;IACxB;;;OAGG;IACH,WAAW,IAAI,MAAM;IAIrB;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAKrC;;;OAGG;IACG,qBAAqB,IAAI,OAAO,CAAC,2BAA2B,EAAE,CAAC;IAuErE;;;OAGG;IACG,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IAiDxF;;OAEG;YACW,qBAAqB;IA+BnC;;OAEG;IACG,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAKlE;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAiC9C;;;OAGG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAqDvE;;OAEG;IACG,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAiCzE;;OAEG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAI3D"}
|
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
import fs from 'fs-extra';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import os from 'os';
|
|
4
|
+
/**
|
|
5
|
+
* Adapter for extracting prompts from Antigravity (Gemini) editor
|
|
6
|
+
*
|
|
7
|
+
* Data locations:
|
|
8
|
+
* - Chats: ~/.gemini/tmp/{projectHash}/chats/*.json
|
|
9
|
+
* - Logs: ~/.gemini/tmp/{projectHash}/logs.json
|
|
10
|
+
* - Project mapping: ~/.gemini/antigravity/code_tracker/active/{projectName}_{hash}/
|
|
11
|
+
*
|
|
12
|
+
* Note: The hash in tmp/ is NOT derived from project path in a simple way.
|
|
13
|
+
* We scan tmp folders directly and match by project name in code_tracker when possible.
|
|
14
|
+
*/
|
|
15
|
+
export class GeminiAdapter {
|
|
16
|
+
/**
|
|
17
|
+
* Get Gemini data directory path
|
|
18
|
+
* Same on all platforms: ~/.gemini
|
|
19
|
+
*/
|
|
20
|
+
getDataPath() {
|
|
21
|
+
return path.join(os.homedir(), '.gemini');
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Check if Antigravity (Gemini) is installed
|
|
25
|
+
*/
|
|
26
|
+
async isInstalled() {
|
|
27
|
+
const geminiPath = this.getDataPath();
|
|
28
|
+
return await fs.pathExists(geminiPath);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* List all available projects with chat data
|
|
32
|
+
* This scans tmp folders to find all projects with prompts
|
|
33
|
+
*/
|
|
34
|
+
async listAvailableProjects() {
|
|
35
|
+
const projects = [];
|
|
36
|
+
const tmpPath = path.join(this.getDataPath(), 'tmp');
|
|
37
|
+
if (!await fs.pathExists(tmpPath)) {
|
|
38
|
+
return projects;
|
|
39
|
+
}
|
|
40
|
+
try {
|
|
41
|
+
const folders = await fs.readdir(tmpPath);
|
|
42
|
+
for (const folder of folders) {
|
|
43
|
+
// Skip non-hash folders (like 'bin')
|
|
44
|
+
if (folder === 'bin' || folder.length < 32) {
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
const chatsDir = path.join(tmpPath, folder, 'chats');
|
|
48
|
+
if (!await fs.pathExists(chatsDir)) {
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
const chatFiles = await fs.readdir(chatsDir);
|
|
52
|
+
const jsonFiles = chatFiles.filter(f => f.endsWith('.json'));
|
|
53
|
+
if (jsonFiles.length === 0) {
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
// Count prompts and get sample
|
|
57
|
+
let promptCount = 0;
|
|
58
|
+
let lastUpdated = '';
|
|
59
|
+
let samplePrompt = '';
|
|
60
|
+
for (const file of jsonFiles) {
|
|
61
|
+
try {
|
|
62
|
+
const content = await fs.readFile(path.join(chatsDir, file), 'utf-8');
|
|
63
|
+
const session = JSON.parse(content);
|
|
64
|
+
const userMessages = (session.messages || []).filter((m) => m.type === 'user');
|
|
65
|
+
promptCount += userMessages.length;
|
|
66
|
+
if (!lastUpdated || session.lastUpdated > lastUpdated) {
|
|
67
|
+
lastUpdated = session.lastUpdated;
|
|
68
|
+
}
|
|
69
|
+
if (!samplePrompt && userMessages.length > 0) {
|
|
70
|
+
samplePrompt = userMessages[0].content?.substring(0, 100) + '...';
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
if (promptCount > 0) {
|
|
78
|
+
projects.push({
|
|
79
|
+
projectHash: folder,
|
|
80
|
+
chatCount: jsonFiles.length,
|
|
81
|
+
promptCount,
|
|
82
|
+
lastUpdated,
|
|
83
|
+
samplePrompt
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
console.error('Error listing Antigravity projects:', error);
|
|
90
|
+
}
|
|
91
|
+
return projects.sort((a, b) => b.lastUpdated.localeCompare(a.lastUpdated));
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Find workspace for a project by matching project name in code_tracker
|
|
95
|
+
* Falls back to scanning tmp folders if code_tracker doesn't have the project
|
|
96
|
+
*/
|
|
97
|
+
async findWorkspaceForProject(projectPath) {
|
|
98
|
+
try {
|
|
99
|
+
const projectName = path.basename(projectPath);
|
|
100
|
+
// Method 1: Check code_tracker/active for project name match
|
|
101
|
+
const codeTrackerPath = path.join(this.getDataPath(), 'antigravity', 'code_tracker', 'active');
|
|
102
|
+
if (await fs.pathExists(codeTrackerPath)) {
|
|
103
|
+
const folders = await fs.readdir(codeTrackerPath);
|
|
104
|
+
for (const folder of folders) {
|
|
105
|
+
if (folder.startsWith(`${projectName}_`)) {
|
|
106
|
+
// Found in code_tracker, now find corresponding tmp folder
|
|
107
|
+
// The hash in code_tracker is different from tmp, so we need to find by content
|
|
108
|
+
const tmpHash = await this.findTmpHashForProject(projectName);
|
|
109
|
+
if (tmpHash) {
|
|
110
|
+
return {
|
|
111
|
+
projectHash: tmpHash,
|
|
112
|
+
projectName,
|
|
113
|
+
codeTrackerPath: path.join(codeTrackerPath, folder)
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
// Method 2: If not in code_tracker, check if there are any tmp folders with data
|
|
120
|
+
const availableProjects = await this.listAvailableProjects();
|
|
121
|
+
if (availableProjects.length === 1) {
|
|
122
|
+
// Only one project with data - likely this one
|
|
123
|
+
return {
|
|
124
|
+
projectHash: availableProjects[0].projectHash,
|
|
125
|
+
projectName,
|
|
126
|
+
codeTrackerPath: ''
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
return null;
|
|
130
|
+
}
|
|
131
|
+
catch (error) {
|
|
132
|
+
console.error('Error finding Antigravity workspace:', error);
|
|
133
|
+
return null;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Find the tmp hash for a project by checking code_tracker files
|
|
138
|
+
*/
|
|
139
|
+
async findTmpHashForProject(projectName) {
|
|
140
|
+
try {
|
|
141
|
+
const tmpPath = path.join(this.getDataPath(), 'tmp');
|
|
142
|
+
if (!await fs.pathExists(tmpPath)) {
|
|
143
|
+
return null;
|
|
144
|
+
}
|
|
145
|
+
const folders = await fs.readdir(tmpPath);
|
|
146
|
+
// Return the first folder with chat data
|
|
147
|
+
// In a more sophisticated implementation, we could match by content
|
|
148
|
+
for (const folder of folders) {
|
|
149
|
+
if (folder === 'bin' || folder.length < 32) {
|
|
150
|
+
continue;
|
|
151
|
+
}
|
|
152
|
+
const chatsDir = path.join(tmpPath, folder, 'chats');
|
|
153
|
+
if (await fs.pathExists(chatsDir)) {
|
|
154
|
+
const chatFiles = await fs.readdir(chatsDir);
|
|
155
|
+
if (chatFiles.some(f => f.endsWith('.json'))) {
|
|
156
|
+
return folder;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
return null;
|
|
161
|
+
}
|
|
162
|
+
catch {
|
|
163
|
+
return null;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Find project hash in tmp directory (legacy method, kept for compatibility)
|
|
168
|
+
*/
|
|
169
|
+
async findProjectHash(projectPath) {
|
|
170
|
+
const workspace = await this.findWorkspaceForProject(projectPath);
|
|
171
|
+
return workspace?.projectHash || null;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Get all project hashes that have chat data
|
|
175
|
+
*/
|
|
176
|
+
async getAllProjectHashes() {
|
|
177
|
+
try {
|
|
178
|
+
const tmpPath = path.join(this.getDataPath(), 'tmp');
|
|
179
|
+
if (!await fs.pathExists(tmpPath)) {
|
|
180
|
+
return [];
|
|
181
|
+
}
|
|
182
|
+
const folders = await fs.readdir(tmpPath);
|
|
183
|
+
const projectHashes = [];
|
|
184
|
+
for (const folder of folders) {
|
|
185
|
+
// Skip non-hash folders
|
|
186
|
+
if (folder === 'bin' || folder.length < 32) {
|
|
187
|
+
continue;
|
|
188
|
+
}
|
|
189
|
+
const chatsDir = path.join(tmpPath, folder, 'chats');
|
|
190
|
+
if (await fs.pathExists(chatsDir)) {
|
|
191
|
+
const chatFiles = await fs.readdir(chatsDir);
|
|
192
|
+
if (chatFiles.length > 0) {
|
|
193
|
+
projectHashes.push(folder);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
return projectHashes;
|
|
198
|
+
}
|
|
199
|
+
catch (error) {
|
|
200
|
+
console.error('Error getting project hashes:', error);
|
|
201
|
+
return [];
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Extract all prompts from Antigravity chat sessions
|
|
206
|
+
* NO DEDUPLICATION - all prompts are kept
|
|
207
|
+
*/
|
|
208
|
+
async extractPrompts(projectHash) {
|
|
209
|
+
const prompts = [];
|
|
210
|
+
const tmpPath = path.join(this.getDataPath(), 'tmp', projectHash, 'chats');
|
|
211
|
+
if (!await fs.pathExists(tmpPath)) {
|
|
212
|
+
return prompts;
|
|
213
|
+
}
|
|
214
|
+
try {
|
|
215
|
+
const chatFiles = await fs.readdir(tmpPath);
|
|
216
|
+
for (const file of chatFiles) {
|
|
217
|
+
if (!file.endsWith('.json'))
|
|
218
|
+
continue;
|
|
219
|
+
try {
|
|
220
|
+
const sessionPath = path.join(tmpPath, file);
|
|
221
|
+
const sessionContent = await fs.readFile(sessionPath, 'utf-8');
|
|
222
|
+
const session = JSON.parse(sessionContent);
|
|
223
|
+
// Extract ALL user messages (prompts) - no filtering
|
|
224
|
+
for (const message of session.messages || []) {
|
|
225
|
+
if (message.type === 'user') {
|
|
226
|
+
// Find the model from the next gemini response
|
|
227
|
+
const geminiResponse = session.messages.find(m => m.type === 'gemini');
|
|
228
|
+
prompts.push({
|
|
229
|
+
id: message.id,
|
|
230
|
+
text: message.content,
|
|
231
|
+
timestamp: new Date(message.timestamp).getTime(),
|
|
232
|
+
timestampIso: message.timestamp,
|
|
233
|
+
sessionId: session.sessionId,
|
|
234
|
+
model: geminiResponse?.model,
|
|
235
|
+
metadata: {
|
|
236
|
+
projectHash: session.projectHash,
|
|
237
|
+
startTime: session.startTime,
|
|
238
|
+
lastUpdated: session.lastUpdated
|
|
239
|
+
}
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
catch (parseError) {
|
|
245
|
+
console.error(`Error parsing chat file ${file}:`, parseError);
|
|
246
|
+
continue;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
catch (error) {
|
|
251
|
+
console.error('Error reading chat files:', error);
|
|
252
|
+
}
|
|
253
|
+
// Sort by timestamp (chronological order)
|
|
254
|
+
return prompts.sort((a, b) => a.timestamp - b.timestamp);
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Extract full sessions (for richer data)
|
|
258
|
+
*/
|
|
259
|
+
async extractSessions(projectHash) {
|
|
260
|
+
const sessions = [];
|
|
261
|
+
const tmpPath = path.join(this.getDataPath(), 'tmp', projectHash, 'chats');
|
|
262
|
+
if (!await fs.pathExists(tmpPath)) {
|
|
263
|
+
return sessions;
|
|
264
|
+
}
|
|
265
|
+
try {
|
|
266
|
+
const chatFiles = await fs.readdir(tmpPath);
|
|
267
|
+
for (const file of chatFiles) {
|
|
268
|
+
if (!file.endsWith('.json'))
|
|
269
|
+
continue;
|
|
270
|
+
try {
|
|
271
|
+
const sessionPath = path.join(tmpPath, file);
|
|
272
|
+
const sessionContent = await fs.readFile(sessionPath, 'utf-8');
|
|
273
|
+
const session = JSON.parse(sessionContent);
|
|
274
|
+
sessions.push(session);
|
|
275
|
+
}
|
|
276
|
+
catch (parseError) {
|
|
277
|
+
console.error(`Error parsing session file ${file}:`, parseError);
|
|
278
|
+
continue;
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
catch (error) {
|
|
283
|
+
console.error('Error reading session files:', error);
|
|
284
|
+
}
|
|
285
|
+
return sessions.sort((a, b) => new Date(a.startTime).getTime() - new Date(b.startTime).getTime());
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Get prompt count for a project
|
|
289
|
+
*/
|
|
290
|
+
async getPromptCount(projectHash) {
|
|
291
|
+
const prompts = await this.extractPrompts(projectHash);
|
|
292
|
+
return prompts.length;
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
//# sourceMappingURL=gemini-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gemini-adapter.js","sourceRoot":"","sources":["../../../src/lib/adapters/gemini-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/adapters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,2BAA2B,EAC5B,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/adapters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAKd,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export interface AuthInfo {
|
|
2
|
+
email: string;
|
|
3
|
+
token: string;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Get authentication token - checks global config first, prompts if needed
|
|
7
|
+
* This is the main entry point for authentication in all commands
|
|
8
|
+
*/
|
|
9
|
+
export declare function getAuthToken(forceReauth?: boolean): Promise<AuthInfo>;
|
|
10
|
+
/**
|
|
11
|
+
* Check if user is authenticated (without prompting)
|
|
12
|
+
*/
|
|
13
|
+
export declare function isAuthenticated(): Promise<boolean>;
|
|
14
|
+
/**
|
|
15
|
+
* Get stored email without prompting
|
|
16
|
+
*/
|
|
17
|
+
export declare function getStoredEmail(): Promise<string | null>;
|
|
18
|
+
/**
|
|
19
|
+
* Clear authentication (logout)
|
|
20
|
+
*/
|
|
21
|
+
export declare function clearAuth(): Promise<void>;
|
|
22
|
+
//# sourceMappingURL=auth-helper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-helper.d.ts","sourceRoot":"","sources":["../../src/lib/auth-helper.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,WAAW,GAAE,OAAe,GAAG,OAAO,CAAC,QAAQ,CAAC,CAsClF;AAED;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAGxD;AAED;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAG7D;AAED;;GAEG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAI/C"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { GlobalConfigManager } from './global-config.js';
|
|
2
|
+
import { authenticateWithFirebase } from './firebase-auth.js';
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
/**
|
|
5
|
+
* Get authentication token - checks global config first, prompts if needed
|
|
6
|
+
* This is the main entry point for authentication in all commands
|
|
7
|
+
*/
|
|
8
|
+
export async function getAuthToken(forceReauth = false) {
|
|
9
|
+
const configManager = new GlobalConfigManager();
|
|
10
|
+
// If force reauth, clear existing auth
|
|
11
|
+
if (forceReauth) {
|
|
12
|
+
await configManager.clearAuth();
|
|
13
|
+
}
|
|
14
|
+
// Check for stored token
|
|
15
|
+
let token = await configManager.getToken();
|
|
16
|
+
let email = await configManager.getUserEmail();
|
|
17
|
+
// If we have a valid token, return it
|
|
18
|
+
if (token && email) {
|
|
19
|
+
return { email, token };
|
|
20
|
+
}
|
|
21
|
+
// No valid token - need to authenticate
|
|
22
|
+
console.log(chalk.yellow('🔐 Authentication required'));
|
|
23
|
+
console.log(chalk.gray('Please sign in to continue...\n'));
|
|
24
|
+
// Authenticate with Firebase
|
|
25
|
+
const authResult = await authenticateWithFirebase(email || undefined);
|
|
26
|
+
// Save token globally for future use
|
|
27
|
+
await configManager.saveToken(authResult.email, authResult.token, 3600 // 1 hour expiry (Firebase tokens typically last 1 hour)
|
|
28
|
+
);
|
|
29
|
+
console.log(chalk.green(`✅ Authenticated as ${authResult.email}`));
|
|
30
|
+
console.log(chalk.gray('Token saved globally - you won\'t need to authenticate again for other projects.\n'));
|
|
31
|
+
return {
|
|
32
|
+
email: authResult.email,
|
|
33
|
+
token: authResult.token
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Check if user is authenticated (without prompting)
|
|
38
|
+
*/
|
|
39
|
+
export async function isAuthenticated() {
|
|
40
|
+
const configManager = new GlobalConfigManager();
|
|
41
|
+
return await configManager.isAuthenticated();
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Get stored email without prompting
|
|
45
|
+
*/
|
|
46
|
+
export async function getStoredEmail() {
|
|
47
|
+
const configManager = new GlobalConfigManager();
|
|
48
|
+
return await configManager.getUserEmail();
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Clear authentication (logout)
|
|
52
|
+
*/
|
|
53
|
+
export async function clearAuth() {
|
|
54
|
+
const configManager = new GlobalConfigManager();
|
|
55
|
+
await configManager.clearAuth();
|
|
56
|
+
console.log(chalk.green('✅ Logged out successfully'));
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=auth-helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-helper.js","sourceRoot":"","sources":["../../src/lib/auth-helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,cAAuB,KAAK;IAC7D,MAAM,aAAa,GAAG,IAAI,mBAAmB,EAAE,CAAC;IAEhD,uCAAuC;IACvC,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,aAAa,CAAC,SAAS,EAAE,CAAC;IAClC,CAAC;IAED,yBAAyB;IACzB,IAAI,KAAK,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,CAAC;IAC3C,IAAI,KAAK,GAAG,MAAM,aAAa,CAAC,YAAY,EAAE,CAAC;IAE/C,sCAAsC;IACtC,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;QACnB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAC1B,CAAC;IAED,wCAAwC;IACxC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC,CAAC;IAE3D,6BAA6B;IAC7B,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC;IAEtE,qCAAqC;IACrC,MAAM,aAAa,CAAC,SAAS,CAC3B,UAAU,CAAC,KAAK,EAChB,UAAU,CAAC,KAAK,EAChB,IAAI,CAAC,wDAAwD;KAC9D,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,sBAAsB,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oFAAoF,CAAC,CAAC,CAAC;IAE9G,OAAO;QACL,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,KAAK,EAAE,UAAU,CAAC,KAAK;KACxB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,MAAM,aAAa,GAAG,IAAI,mBAAmB,EAAE,CAAC;IAChD,OAAO,MAAM,aAAa,CAAC,eAAe,EAAE,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,aAAa,GAAG,IAAI,mBAAmB,EAAE,CAAC;IAChD,OAAO,MAAM,aAAa,CAAC,YAAY,EAAE,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,MAAM,aAAa,GAAG,IAAI,mBAAmB,EAAE,CAAC;IAChD,MAAM,aAAa,CAAC,SAAS,EAAE,CAAC;IAChC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC;AACxD,CAAC"}
|