promptvc 0.1.0 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -8,7 +8,24 @@ Local-first, prompt-by-prompt diff tracking for AI coding sessions.
8
8
  - Git
9
9
  - Codex CLI
10
10
  - jq (required for per-prompt capture)
11
- - macOS/Linux (Windows: use WSL or Git Bash)
11
+ - macOS/Linux
12
+ - Windows: Git Bash required (run `promptvc` + `codex` in Git Bash)
13
+
14
+ ### Windows notes
15
+
16
+ Install `jq` (pick one):
17
+
18
+ ```bash
19
+ winget install jqlang.jq
20
+ ```
21
+
22
+ ```bash
23
+ choco install jq
24
+ ```
25
+
26
+ ```bash
27
+ scoop install jq
28
+ ```
12
29
 
13
30
  ## Install
14
31
 
@@ -0,0 +1,8 @@
1
+ export declare function prepareCaptureBaseline(options?: {
2
+ repoRoot?: string;
3
+ }): Promise<void>;
4
+ export declare function capturePromptChanges(options?: {
5
+ repoRoot?: string;
6
+ sessionFile?: string;
7
+ }): Promise<void>;
8
+ //# sourceMappingURL=capture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capture.d.ts","sourceRoot":"","sources":["../src/capture.ts"],"names":[],"mappings":"AA6SA,wBAAsB,sBAAsB,CAAC,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA4B3F;AAED,wBAAsB,oBAAoB,CAAC,OAAO,CAAC,EAAE;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+IhB"}
@@ -0,0 +1,383 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.prepareCaptureBaseline = prepareCaptureBaseline;
7
+ exports.capturePromptChanges = capturePromptChanges;
8
+ const fs_1 = __importDefault(require("fs"));
9
+ const path_1 = __importDefault(require("path"));
10
+ const child_process_1 = require("child_process");
11
+ const git_1 = require("./git");
12
+ const store_1 = require("./store");
13
+ const PROMPTVC_DIR_NAME = '.promptvc';
14
+ const STATE_FILE_NAME = 'notify_state.json';
15
+ const INDEX_DIR_NAME = 'indexes';
16
+ const PENDING_BASELINE_FILE_NAME = 'pending_baseline.json';
17
+ const SYSTEM_PROMPT_MARKERS = [
18
+ '# AGENTS.md',
19
+ '<INSTRUCTIONS>',
20
+ '<environment_context>',
21
+ '## Skills',
22
+ 'These skills are discovered at startup',
23
+ 'skill-creator:',
24
+ 'skill-installer:',
25
+ ];
26
+ function runGit(args, repoRoot, indexFile, allowFailure = false) {
27
+ try {
28
+ const env = indexFile
29
+ ? { ...process.env, GIT_INDEX_FILE: indexFile }
30
+ : process.env;
31
+ return (0, child_process_1.execFileSync)('git', args, { cwd: repoRoot, env, encoding: 'utf-8' });
32
+ }
33
+ catch (error) {
34
+ if (allowFailure) {
35
+ return '';
36
+ }
37
+ throw error;
38
+ }
39
+ }
40
+ function readJsonFile(filePath, fallback) {
41
+ try {
42
+ if (!fs_1.default.existsSync(filePath)) {
43
+ return fallback;
44
+ }
45
+ const content = fs_1.default.readFileSync(filePath, 'utf-8');
46
+ return JSON.parse(content);
47
+ }
48
+ catch (error) {
49
+ return fallback;
50
+ }
51
+ }
52
+ function writeJsonFile(filePath, value) {
53
+ fs_1.default.writeFileSync(filePath, JSON.stringify(value, null, 2));
54
+ }
55
+ function isSystemPrompt(prompt) {
56
+ return SYSTEM_PROMPT_MARKERS.some(marker => prompt.startsWith(marker) || prompt.includes(marker));
57
+ }
58
+ function parseSessionPrompts(sessionFile) {
59
+ const content = fs_1.default.readFileSync(sessionFile, 'utf-8');
60
+ const lines = content.split('\n').filter(line => line.trim());
61
+ const prompts = [];
62
+ for (const line of lines) {
63
+ try {
64
+ const entry = JSON.parse(line);
65
+ if (entry.type === 'response_item' &&
66
+ entry.payload?.role === 'user' &&
67
+ entry.payload?.content?.[0]?.text) {
68
+ const promptText = entry.payload.content[0].text;
69
+ if (!isSystemPrompt(promptText)) {
70
+ prompts.push(promptText);
71
+ }
72
+ }
73
+ }
74
+ catch (error) {
75
+ continue;
76
+ }
77
+ }
78
+ return prompts;
79
+ }
80
+ function listSessionFiles(dir) {
81
+ if (!fs_1.default.existsSync(dir)) {
82
+ return [];
83
+ }
84
+ const entries = fs_1.default.readdirSync(dir, { withFileTypes: true });
85
+ const files = [];
86
+ for (const entry of entries) {
87
+ const fullPath = path_1.default.join(dir, entry.name);
88
+ if (entry.isDirectory()) {
89
+ files.push(...listSessionFiles(fullPath));
90
+ }
91
+ else if (entry.isFile() && entry.name.startsWith('rollout-') && entry.name.endsWith('.jsonl')) {
92
+ files.push(fullPath);
93
+ }
94
+ }
95
+ return files;
96
+ }
97
+ function findLatestSessionFile(homeDir) {
98
+ const sessionsDir = path_1.default.join(homeDir, '.codex', 'sessions');
99
+ const files = listSessionFiles(sessionsDir);
100
+ if (files.length === 0) {
101
+ return null;
102
+ }
103
+ let latestFile = files[0];
104
+ let latestTime = fs_1.default.statSync(latestFile).mtimeMs;
105
+ for (const file of files.slice(1)) {
106
+ const mtime = fs_1.default.statSync(file).mtimeMs;
107
+ if (mtime > latestTime) {
108
+ latestTime = mtime;
109
+ latestFile = file;
110
+ }
111
+ }
112
+ return latestFile;
113
+ }
114
+ function resolveSessionFileFromEnv() {
115
+ const candidates = [
116
+ process.env.CODEX_SESSION_FILE,
117
+ process.env.CODEX_SESSION_PATH,
118
+ ];
119
+ for (const candidate of candidates) {
120
+ if (!candidate) {
121
+ continue;
122
+ }
123
+ const trimmed = candidate.trim();
124
+ if (trimmed && fs_1.default.existsSync(trimmed)) {
125
+ return trimmed;
126
+ }
127
+ }
128
+ return null;
129
+ }
130
+ function initIndexFile(indexFile, repoRoot, includeWorkingTree = true) {
131
+ fs_1.default.mkdirSync(path_1.default.dirname(indexFile), { recursive: true });
132
+ runGit(['read-tree', 'HEAD'], repoRoot, indexFile, true);
133
+ if (includeWorkingTree) {
134
+ runGit(['add', '-A'], repoRoot, indexFile, true);
135
+ }
136
+ }
137
+ function refreshIndexFile(indexFile, repoRoot) {
138
+ runGit(['add', '-A'], repoRoot, indexFile, true);
139
+ }
140
+ function getDiffAgainstIndex(repoRoot, indexFile) {
141
+ const diff = runGit(['diff'], repoRoot, indexFile, true);
142
+ const filesOutput = runGit(['diff', '--name-only'], repoRoot, indexFile, true).trim();
143
+ const files = filesOutput ? filesOutput.split('\n').filter(Boolean) : [];
144
+ return { diff, files };
145
+ }
146
+ function writeTreeFromIndex(repoRoot, indexFile) {
147
+ return runGit(['write-tree'], repoRoot, indexFile, true).trim();
148
+ }
149
+ function getDiffBetweenTrees(repoRoot, baseTree, nextTree) {
150
+ if (!baseTree || !nextTree || baseTree === nextTree) {
151
+ return { diff: '', files: [] };
152
+ }
153
+ const diff = runGit(['diff', baseTree, nextTree], repoRoot, undefined, true);
154
+ const filesOutput = runGit(['diff', '--name-only', baseTree, nextTree], repoRoot, undefined, true).trim();
155
+ const files = filesOutput ? filesOutput.split('\n').filter(Boolean) : [];
156
+ return { diff, files };
157
+ }
158
+ function mergeFiles(existing, incoming) {
159
+ const merged = new Set(existing);
160
+ for (const file of incoming) {
161
+ merged.add(file);
162
+ }
163
+ return Array.from(merged);
164
+ }
165
+ function responseSnippet(promptCount) {
166
+ return `Interactive session: ${promptCount} prompt${promptCount === 1 ? '' : 's'}`;
167
+ }
168
+ async function safeGetBranch(repoRoot) {
169
+ try {
170
+ return await (0, git_1.getBranch)(repoRoot);
171
+ }
172
+ catch (error) {
173
+ return '';
174
+ }
175
+ }
176
+ async function safeGetHeadHash(repoRoot) {
177
+ try {
178
+ return await (0, git_1.getHeadHash)(repoRoot);
179
+ }
180
+ catch (error) {
181
+ return '';
182
+ }
183
+ }
184
+ function readSessions(repoRoot) {
185
+ const sessionsPath = path_1.default.join(repoRoot, PROMPTVC_DIR_NAME, 'sessions.json');
186
+ return readJsonFile(sessionsPath, []);
187
+ }
188
+ function writeSessions(repoRoot, sessions) {
189
+ const sessionsPath = path_1.default.join(repoRoot, PROMPTVC_DIR_NAME, 'sessions.json');
190
+ writeJsonFile(sessionsPath, sessions);
191
+ }
192
+ function endSession(sessions, sessionId, endedAt) {
193
+ const session = sessions.find(item => item.id === sessionId);
194
+ if (!session) {
195
+ return;
196
+ }
197
+ session.inProgress = false;
198
+ session.endedAt = endedAt;
199
+ }
200
+ function applyPromptChanges(sessions, sessionId, repoRoot, branch, timestamp, latestPrompt, headHash, preHash, sessionDiff, promptChanges) {
201
+ const existing = sessions.find(session => session.id === sessionId);
202
+ const promptCount = (existing?.perPromptChanges?.length || 0) + promptChanges.length;
203
+ if (existing) {
204
+ existing.provider = 'codex';
205
+ existing.repoRoot = repoRoot;
206
+ existing.branch = branch;
207
+ existing.prompt = latestPrompt;
208
+ existing.diff = sessionDiff.diff;
209
+ existing.mode = 'interactive';
210
+ existing.autoTagged = true;
211
+ existing.inProgress = true;
212
+ existing.updatedAt = timestamp;
213
+ existing.preHash = existing.preHash || preHash || headHash;
214
+ existing.postHash = existing.postHash ?? null;
215
+ existing.createdAt = existing.createdAt || timestamp;
216
+ existing.files = mergeFiles(existing.files || [], sessionDiff.files);
217
+ existing.perPromptChanges = (existing.perPromptChanges || []).concat(promptChanges);
218
+ existing.responseSnippet = responseSnippet(promptCount);
219
+ }
220
+ else {
221
+ const newSession = {
222
+ id: sessionId,
223
+ provider: 'codex',
224
+ repoRoot,
225
+ branch,
226
+ preHash: preHash || headHash,
227
+ postHash: null,
228
+ prompt: latestPrompt,
229
+ responseSnippet: responseSnippet(promptChanges.length),
230
+ files: sessionDiff.files,
231
+ diff: sessionDiff.diff,
232
+ createdAt: timestamp,
233
+ updatedAt: timestamp,
234
+ mode: 'interactive',
235
+ autoTagged: true,
236
+ inProgress: true,
237
+ perPromptChanges: promptChanges,
238
+ };
239
+ sessions.unshift(newSession);
240
+ }
241
+ }
242
+ async function prepareCaptureBaseline(options) {
243
+ let repoRoot;
244
+ try {
245
+ repoRoot = options?.repoRoot || await (0, git_1.getRepoRoot)();
246
+ }
247
+ catch (error) {
248
+ return;
249
+ }
250
+ (0, store_1.initDb)(repoRoot);
251
+ const promptvcDir = path_1.default.join(repoRoot, PROMPTVC_DIR_NAME);
252
+ const indexDir = path_1.default.join(promptvcDir, INDEX_DIR_NAME);
253
+ const baseIndexFile = path_1.default.join(indexDir, 'pending-base.index');
254
+ const promptIndexFile = path_1.default.join(indexDir, 'pending-prompt.index');
255
+ const preHash = await safeGetHeadHash(repoRoot);
256
+ const pendingPath = path_1.default.join(promptvcDir, PENDING_BASELINE_FILE_NAME);
257
+ initIndexFile(baseIndexFile, repoRoot);
258
+ initIndexFile(promptIndexFile, repoRoot);
259
+ const pending = {
260
+ baseIndexFile,
261
+ promptIndexFile,
262
+ preHash,
263
+ createdAt: new Date().toISOString(),
264
+ };
265
+ writeJsonFile(pendingPath, pending);
266
+ }
267
+ async function capturePromptChanges(options) {
268
+ let repoRoot;
269
+ try {
270
+ repoRoot = options?.repoRoot || await (0, git_1.getRepoRoot)();
271
+ }
272
+ catch (error) {
273
+ return;
274
+ }
275
+ (0, store_1.initDb)(repoRoot);
276
+ const homeDir = process.env.HOME || process.env.USERPROFILE;
277
+ if (!homeDir) {
278
+ return;
279
+ }
280
+ const sessionFile = options?.sessionFile || resolveSessionFileFromEnv() || findLatestSessionFile(homeDir);
281
+ if (!sessionFile || !fs_1.default.existsSync(sessionFile)) {
282
+ return;
283
+ }
284
+ const prompts = parseSessionPrompts(sessionFile);
285
+ if (prompts.length === 0) {
286
+ return;
287
+ }
288
+ const promptvcDir = path_1.default.join(repoRoot, PROMPTVC_DIR_NAME);
289
+ const statePath = path_1.default.join(promptvcDir, STATE_FILE_NAME);
290
+ const pendingPath = path_1.default.join(promptvcDir, PENDING_BASELINE_FILE_NAME);
291
+ const sessions = readSessions(repoRoot);
292
+ const timestamp = new Date().toISOString();
293
+ let state = readJsonFile(statePath, null);
294
+ const sessionId = path_1.default.basename(sessionFile, '.jsonl');
295
+ if (!state || state.sessionFile !== sessionFile) {
296
+ if (state?.sessionId) {
297
+ endSession(sessions, state.sessionId, timestamp);
298
+ }
299
+ const indexDir = path_1.default.join(promptvcDir, INDEX_DIR_NAME);
300
+ let baseIndexFile = path_1.default.join(indexDir, `${sessionId}-base.index`);
301
+ let promptIndexFile = path_1.default.join(indexDir, `${sessionId}-prompt.index`);
302
+ let preHash = await safeGetHeadHash(repoRoot);
303
+ const pending = readJsonFile(pendingPath, null);
304
+ if (pending && fs_1.default.existsSync(pending.baseIndexFile) && fs_1.default.existsSync(pending.promptIndexFile)) {
305
+ fs_1.default.mkdirSync(indexDir, { recursive: true });
306
+ try {
307
+ fs_1.default.renameSync(pending.baseIndexFile, baseIndexFile);
308
+ fs_1.default.renameSync(pending.promptIndexFile, promptIndexFile);
309
+ preHash = pending.preHash || preHash;
310
+ }
311
+ catch (error) {
312
+ initIndexFile(baseIndexFile, repoRoot, false);
313
+ initIndexFile(promptIndexFile, repoRoot, false);
314
+ }
315
+ try {
316
+ fs_1.default.unlinkSync(pendingPath);
317
+ }
318
+ catch (error) {
319
+ // Ignore stale pending baseline cleanup failures.
320
+ }
321
+ }
322
+ else {
323
+ initIndexFile(baseIndexFile, repoRoot, false);
324
+ initIndexFile(promptIndexFile, repoRoot, false);
325
+ }
326
+ state = {
327
+ sessionFile,
328
+ sessionId,
329
+ promptCount: 0,
330
+ baseIndexFile,
331
+ promptIndexFile,
332
+ preHash,
333
+ };
334
+ }
335
+ const currentCount = prompts.length;
336
+ if (currentCount <= state.promptCount) {
337
+ writeJsonFile(statePath, state);
338
+ writeSessions(repoRoot, sessions);
339
+ return;
340
+ }
341
+ const branch = await safeGetBranch(repoRoot);
342
+ const headHash = await safeGetHeadHash(repoRoot);
343
+ const latestPrompt = prompts[prompts.length - 1];
344
+ const fallbackSessionDiff = getDiffAgainstIndex(repoRoot, state.baseIndexFile);
345
+ const fallbackPromptDiff = getDiffAgainstIndex(repoRoot, state.promptIndexFile);
346
+ const baseTree = writeTreeFromIndex(repoRoot, state.baseIndexFile);
347
+ const previousPromptTree = writeTreeFromIndex(repoRoot, state.promptIndexFile);
348
+ refreshIndexFile(state.promptIndexFile, repoRoot);
349
+ const currentPromptTree = writeTreeFromIndex(repoRoot, state.promptIndexFile);
350
+ let promptDiff = fallbackPromptDiff;
351
+ let sessionDiff = fallbackSessionDiff;
352
+ if (previousPromptTree && currentPromptTree) {
353
+ const treePromptDiff = getDiffBetweenTrees(repoRoot, previousPromptTree, currentPromptTree);
354
+ if (treePromptDiff.diff || treePromptDiff.files.length > 0 || (!promptDiff.diff && promptDiff.files.length === 0)) {
355
+ promptDiff = treePromptDiff;
356
+ }
357
+ }
358
+ if (baseTree && currentPromptTree) {
359
+ const treeSessionDiff = getDiffBetweenTrees(repoRoot, baseTree, currentPromptTree);
360
+ if (treeSessionDiff.diff || treeSessionDiff.files.length > 0 || (!sessionDiff.diff && sessionDiff.files.length === 0)) {
361
+ sessionDiff = treeSessionDiff;
362
+ }
363
+ }
364
+ const promptChanges = [];
365
+ const startIndex = state.promptCount;
366
+ const endIndex = currentCount - 1;
367
+ for (let i = startIndex; i <= endIndex; i++) {
368
+ const prompt = prompts[i];
369
+ const useDiff = i === endIndex ? promptDiff : { diff: '', files: [] };
370
+ promptChanges.push({
371
+ prompt,
372
+ timestamp,
373
+ hash: headHash,
374
+ files: useDiff.files,
375
+ diff: useDiff.diff,
376
+ });
377
+ }
378
+ applyPromptChanges(sessions, sessionId, repoRoot, branch, timestamp, latestPrompt, headHash, state.preHash, sessionDiff, promptChanges);
379
+ state.promptCount = currentCount;
380
+ writeJsonFile(statePath, state);
381
+ writeSessions(repoRoot, sessions);
382
+ }
383
+ //# sourceMappingURL=capture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capture.js","sourceRoot":"","sources":["../src/capture.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const runConfigCommand: () => void;
1
+ export declare const runConfigCommand: () => Promise<void>;
2
2
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AA0CA,eAAO,MAAM,gBAAgB,QAAO,IA+BnC,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAsFA,eAAO,MAAM,gBAAgB,QAAa,OAAO,CAAC,IAAI,CAyDrD,CAAC"}
package/dist/config.js CHANGED
@@ -1,4 +1,37 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
37
  };
@@ -7,10 +40,50 @@ exports.runConfigCommand = void 0;
7
40
  const fs_1 = __importDefault(require("fs"));
8
41
  const os_1 = __importDefault(require("os"));
9
42
  const path_1 = __importDefault(require("path"));
43
+ const child_process_1 = require("child_process");
44
+ const readline = __importStar(require("readline/promises"));
10
45
  const kleur_1 = __importDefault(require("kleur"));
11
46
  const branding_1 = require("./branding");
12
47
  const getCodexConfigPath = () => path_1.default.join(os_1.default.homedir(), '.codex', 'config.toml');
13
48
  const getNotifyHookPath = () => path_1.default.resolve(__dirname, '..', 'hooks', 'codex-notify.sh');
49
+ const isWindows = process.platform === 'win32';
50
+ const isGitBashOnWindows = () => {
51
+ if (!isWindows) {
52
+ return true;
53
+ }
54
+ const shell = (process.env.SHELL || '').toLowerCase();
55
+ const termProgram = (process.env.TERM_PROGRAM || '').toLowerCase();
56
+ return Boolean(process.env.MSYSTEM) || shell.includes('bash') || termProgram.includes('mintty');
57
+ };
58
+ const normalizeHookPathForToml = (hookPath) => {
59
+ if (!isWindows) {
60
+ return hookPath;
61
+ }
62
+ return hookPath.replace(/\\/g, '/');
63
+ };
64
+ const hasJq = () => {
65
+ const result = (0, child_process_1.spawnSync)('jq', ['--version'], { stdio: 'ignore' });
66
+ if (result.error) {
67
+ return false;
68
+ }
69
+ return result.status === 0;
70
+ };
71
+ const promptYesNo = async (message) => {
72
+ if (!process.stdin.isTTY) {
73
+ return false;
74
+ }
75
+ const rl = readline.createInterface({
76
+ input: process.stdin,
77
+ output: process.stdout,
78
+ });
79
+ try {
80
+ const answer = await rl.question(message);
81
+ return ['y', 'yes'].includes(answer.trim().toLowerCase());
82
+ }
83
+ finally {
84
+ rl.close();
85
+ }
86
+ };
14
87
  const upsertNotifyHook = (content, hookPath) => {
15
88
  const usesCrlf = content.includes('\r\n');
16
89
  const normalized = content.replace(/\r\n/g, '\n');
@@ -41,14 +114,36 @@ const upsertNotifyHook = (content, hookPath) => {
41
114
  }
42
115
  return usesCrlf ? updated.replace(/\n/g, '\r\n') : updated;
43
116
  };
44
- const runConfigCommand = () => {
117
+ const runConfigCommand = async () => {
118
+ if (isWindows && !isGitBashOnWindows()) {
119
+ console.log(kleur_1.default.red('PromptVC requires Git Bash on Windows.'));
120
+ console.log('Open Git Bash and re-run `promptvc config`.');
121
+ process.exit(1);
122
+ }
123
+ if (isWindows && !hasJq()) {
124
+ console.log(kleur_1.default.yellow('jq is required for per-prompt capture.'));
125
+ console.log('Install jq, then re-run `promptvc config`.');
126
+ console.log('Windows install options:');
127
+ console.log(' - winget install jqlang.jq');
128
+ console.log(' - choco install jq');
129
+ console.log(' - scoop install jq');
130
+ const shouldInstall = await promptYesNo('Install jq now? (y/N): ');
131
+ if (shouldInstall) {
132
+ console.log('');
133
+ console.log('Run one of the commands above, then re-run `promptvc config`.');
134
+ return;
135
+ }
136
+ console.log(kleur_1.default.yellow('Continuing without jq will disable per-prompt capture.'));
137
+ console.log('');
138
+ }
45
139
  const hookPath = getNotifyHookPath();
140
+ const hookPathForConfig = normalizeHookPathForToml(hookPath);
46
141
  const configPath = getCodexConfigPath();
47
- const snippet = `[hooks]\nnotify = "${hookPath}"\n`;
142
+ const snippet = `[hooks]\nnotify = "${hookPathForConfig}"\n`;
48
143
  console.log(kleur_1.default.bold().cyan('PromptVC Config'));
49
144
  console.log((0, branding_1.renderLogo)());
50
145
  console.log('');
51
- console.log(`${kleur_1.default.bold('Hook path:')} ${hookPath}`);
146
+ console.log(`${kleur_1.default.bold('Hook path:')} ${hookPathForConfig}`);
52
147
  console.log(`${kleur_1.default.bold('Codex config:')} ${configPath}`);
53
148
  if (!fs_1.default.existsSync(hookPath)) {
54
149
  console.log(kleur_1.default.yellow('Warning: notify hook not found at this path.'));
@@ -56,7 +151,7 @@ const runConfigCommand = () => {
56
151
  try {
57
152
  fs_1.default.mkdirSync(path_1.default.dirname(configPath), { recursive: true });
58
153
  const existing = fs_1.default.existsSync(configPath) ? fs_1.default.readFileSync(configPath, 'utf-8') : '';
59
- const updated = upsertNotifyHook(existing, hookPath);
154
+ const updated = upsertNotifyHook(existing, hookPathForConfig);
60
155
  fs_1.default.writeFileSync(configPath, updated, 'utf-8');
61
156
  console.log('');
62
157
  console.log(kleur_1.default.green('OK: updated Codex config.'));
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -30,7 +30,7 @@ program
30
30
  console.log(kleur_1.default.green('Get the Prompt Version Control VSCode extension to enhance your experience!'));
31
31
  console.log(kleur_1.default.blue('https://marketplace.visualstudio.com/items?itemName=your-extension-id'));
32
32
  console.log('');
33
- console.log(kleur_1.default.green('Findout more at https://promptvc.dev'));
33
+ console.log(kleur_1.default.green('Findout more at https://prompt-vc.vercel.app'));
34
34
  }
35
35
  catch (error) {
36
36
  console.error('Error:', error);
@@ -102,8 +102,8 @@ program
102
102
  program
103
103
  .command('config')
104
104
  .description('Configure the Codex notify hook for PromptVC')
105
- .action(() => {
106
- (0, config_1.runConfigCommand)();
105
+ .action(async () => {
106
+ await (0, config_1.runConfigCommand)();
107
107
  });
108
108
  program.parse();
109
109
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"proxyCodex.d.ts","sourceRoot":"","sources":["../src/proxyCodex.ts"],"names":[],"mappings":"AAmIA;;GAEG;AACH,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAyJ1C"}
1
+ {"version":3,"file":"proxyCodex.d.ts","sourceRoot":"","sources":["../src/proxyCodex.ts"],"names":[],"mappings":"AAoIA;;GAEG;AACH,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAqK1C"}
@@ -39,6 +39,7 @@ const path = __importStar(require("path"));
39
39
  const fs = __importStar(require("fs"));
40
40
  const git_1 = require("./git");
41
41
  const store_1 = require("./store");
42
+ const redact_1 = require("./redact");
42
43
  /**
43
44
  * Maximum length for prompt and response snippets
44
45
  */
@@ -172,6 +173,9 @@ async function main() {
172
173
  }
173
174
  // Extract prompt from args
174
175
  let promptFromArgs = extractPrompt(args);
176
+ if (promptFromArgs) {
177
+ promptFromArgs = (0, redact_1.redactSensitive)(promptFromArgs);
178
+ }
175
179
  // Spawn the real codex CLI with inherited stdio
176
180
  // This allows codex to detect it's running in a terminal
177
181
  // Note: We can't capture output without breaking TTY detection
@@ -201,6 +205,7 @@ async function main() {
201
205
  // Get the diff for committed changes
202
206
  diff = await (0, git_1.getDiff)(preHash, 'HEAD');
203
207
  }
208
+ diff = (0, redact_1.redactSensitive)(diff);
204
209
  // Try to read prompts from notify hook first (faster, real-time)
205
210
  let capturedPrompts = [];
206
211
  let perPromptChanges;
@@ -213,7 +218,11 @@ async function main() {
213
218
  // Check if it's the new format (array of PromptChange objects)
214
219
  if (sessionData.length > 0 && typeof sessionData[0] === 'object' && 'prompt' in sessionData[0]) {
215
220
  // New format: array of PromptChange objects
216
- perPromptChanges = sessionData;
221
+ perPromptChanges = sessionData.map((change) => ({
222
+ ...change,
223
+ prompt: (0, redact_1.redactSensitive)(change.prompt),
224
+ diff: (0, redact_1.redactSensitive)(change.diff),
225
+ }));
217
226
  capturedPrompts = perPromptChanges.map(pc => pc.prompt);
218
227
  }
219
228
  else {
@@ -238,6 +247,9 @@ async function main() {
238
247
  capturedPrompts = readCodexSessionPrompts();
239
248
  }
240
249
  }
250
+ if (capturedPrompts.length > 0) {
251
+ capturedPrompts = capturedPrompts.map(redact_1.redactSensitive);
252
+ }
241
253
  // Determine the final prompt to use
242
254
  let finalPrompt;
243
255
  let responseSnippet;
@@ -257,6 +269,7 @@ async function main() {
257
269
  finalPrompt = generatePromptFromFiles(changedFiles);
258
270
  responseSnippet = `Modified ${changedFiles.length} file(s)`;
259
271
  }
272
+ finalPrompt = (0, redact_1.redactSensitive)(finalPrompt);
260
273
  // Determine mode
261
274
  const mode = promptFromArgs ? 'oneshot' : 'interactive';
262
275
  // Prepare session data
@@ -1 +1 @@
1
- {"version":3,"file":"proxyCodex.js","sourceRoot":"","sources":["../src/proxyCodex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proxyCodex.js","sourceRoot":"","sources":["../src/proxyCodex.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function redactSensitive(value: string): string;
2
+ //# sourceMappingURL=redact.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redact.d.ts","sourceRoot":"","sources":["../src/redact.ts"],"names":[],"mappings":"AAiBA,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAkBrD"}
package/dist/redact.js ADDED
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.redactSensitive = redactSensitive;
4
+ const PRIVATE_KEY_BLOCK = /-----BEGIN [A-Z ]*PRIVATE KEY-----[\s\S]*?-----END [A-Z ]*PRIVATE KEY-----/g;
5
+ const REDACTION_PATTERNS = [
6
+ [/\bgh[pousr]_[A-Za-z0-9]{20,}\b/g, '[REDACTED_GITHUB_TOKEN]'],
7
+ [/\bgithub_pat_[A-Za-z0-9_]{20,}\b/g, '[REDACTED_GITHUB_TOKEN]'],
8
+ [/\bsk-[A-Za-z0-9]{20,}\b/g, '[REDACTED_OPENAI_KEY]'],
9
+ [/\bxox[baprs]-[A-Za-z0-9-]{10,}\b/g, '[REDACTED_SLACK_TOKEN]'],
10
+ [/\bAIza[0-9A-Za-z_-]{35}\b/g, '[REDACTED_GOOGLE_KEY]'],
11
+ [/\b(?:AKIA|ASIA)[0-9A-Z]{16}\b/g, '[REDACTED_AWS_ACCESS_KEY]'],
12
+ [/\beyJ[A-Za-z0-9_-]{10,}\.[A-Za-z0-9._-]{10,}\.[A-Za-z0-9_-]{10,}\b/g, '[REDACTED_JWT]'],
13
+ [/(authorization\s*:\s*bearer)\s+[^\s]+/gi, '$1 [REDACTED]'],
14
+ [/(\b(?:postgres|mysql|mongodb|redis|amqp)s?:\/\/)([^:\s/@]+):([^\s/@]+)@/gi, '$1$2:[REDACTED]@'],
15
+ [/(\b(?:api[_-]?key|secret|password|passwd|token|access[_-]?key|client[_-]?secret|private[_-]?key|auth[_-]?token)\b)(\s*[=:]\s*)(['"]?)([^'"\r\n]+)\3/gi, '$1$2[REDACTED]'],
16
+ [/(\b(?:api[_-]?key|secret|password|passwd|token|access[_-]?key|client[_-]?secret|private[_-]?key|auth[_-]?token)\b)\s+([A-Za-z0-9+/_=-]{8,})/gi, '$1 [REDACTED]'],
17
+ [/(\bssh-(?:rsa|ed25519)\b|\becdsa-[^\s]+)\s+[A-Za-z0-9+/=]{40,}/g, '$1 [REDACTED_SSH_KEY]'],
18
+ ];
19
+ function redactSensitive(value) {
20
+ if (!value) {
21
+ return value;
22
+ }
23
+ let redacted = value.replace(PRIVATE_KEY_BLOCK, (match) => {
24
+ const lines = match.split('\n');
25
+ if (lines.length >= 2) {
26
+ return `${lines[0]}\n[REDACTED_PRIVATE_KEY]\n${lines[lines.length - 1]}`;
27
+ }
28
+ return '[REDACTED_PRIVATE_KEY]';
29
+ });
30
+ for (const [pattern, replacement] of REDACTION_PATTERNS) {
31
+ redacted = redacted.replace(pattern, replacement);
32
+ }
33
+ return redacted;
34
+ }
35
+ //# sourceMappingURL=redact.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redact.js","sourceRoot":"","sources":["../src/redact.ts"],"names":[],"mappings":";;AAiBA,0CAkBC;AAnCD,MAAM,iBAAiB,GAAG,6EAA6E,CAAC;AAExG,MAAM,kBAAkB,GAA4B;IAClD,CAAC,iCAAiC,EAAE,yBAAyB,CAAC;IAC9D,CAAC,mCAAmC,EAAE,yBAAyB,CAAC;IAChE,CAAC,0BAA0B,EAAE,uBAAuB,CAAC;IACrD,CAAC,mCAAmC,EAAE,wBAAwB,CAAC;IAC/D,CAAC,4BAA4B,EAAE,uBAAuB,CAAC;IACvD,CAAC,gCAAgC,EAAE,2BAA2B,CAAC;IAC/D,CAAC,qEAAqE,EAAE,gBAAgB,CAAC;IACzF,CAAC,yCAAyC,EAAE,eAAe,CAAC;IAC5D,CAAC,2EAA2E,EAAE,kBAAkB,CAAC;IACjG,CAAC,uJAAuJ,EAAE,gBAAgB,CAAC;IAC3K,CAAC,+IAA+I,EAAE,eAAe,CAAC;IAClK,CAAC,iEAAiE,EAAE,uBAAuB,CAAC;CAC7F,CAAC;AAEF,SAAgB,eAAe,CAAC,KAAa;IAC3C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,KAAK,EAAE,EAAE;QACxD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACtB,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,6BAA6B,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;QAC3E,CAAC;QACD,OAAO,wBAAwB,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,KAAK,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,IAAI,kBAAkB,EAAE,CAAC;QACxD,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAMhD;;;GAGG;AACH,wBAAgB,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAc7C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAgBA;AA8BD;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,MAAM,CAaxE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,GAAE,MAAW,EAAE,MAAM,GAAE,MAAU,GAAG,aAAa,EAAE,CAGnF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAG/D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,aAAa,EAAE,CAG3F"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAgB,MAAM,iBAAiB,CAAC;AAO9D;;;GAGG;AACH,wBAAgB,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAc7C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAgBA;AAiDD;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,MAAM,CAaxE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,GAAE,MAAW,EAAE,MAAM,GAAE,MAAU,GAAG,aAAa,EAAE,CAGnF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAI/D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,aAAa,EAAE,CAG3F"}
package/dist/store.js CHANGED
@@ -42,6 +42,7 @@ exports.getSessionsByProvider = getSessionsByProvider;
42
42
  const fs = __importStar(require("fs"));
43
43
  const path = __importStar(require("path"));
44
44
  const uuid_1 = require("uuid");
45
+ const redact_1 = require("./redact");
45
46
  let sessionsFilePath = null;
46
47
  const DEFAULT_SETTINGS = { notifySoundEnabled: true };
47
48
  /**
@@ -93,6 +94,22 @@ function readSessions() {
93
94
  return [];
94
95
  }
95
96
  }
97
+ function redactPromptChange(change) {
98
+ return {
99
+ ...change,
100
+ prompt: (0, redact_1.redactSensitive)(change.prompt),
101
+ diff: (0, redact_1.redactSensitive)(change.diff),
102
+ };
103
+ }
104
+ function redactPromptSession(session) {
105
+ return {
106
+ ...session,
107
+ prompt: (0, redact_1.redactSensitive)(session.prompt),
108
+ responseSnippet: (0, redact_1.redactSensitive)(session.responseSnippet),
109
+ diff: (0, redact_1.redactSensitive)(session.diff),
110
+ perPromptChanges: session.perPromptChanges?.map(redactPromptChange),
111
+ };
112
+ }
96
113
  /**
97
114
  * Write sessions to the JSON file
98
115
  */
@@ -100,7 +117,8 @@ function writeSessions(sessions) {
100
117
  if (!sessionsFilePath) {
101
118
  throw new Error('Storage not initialized. Call initDb first.');
102
119
  }
103
- fs.writeFileSync(sessionsFilePath, JSON.stringify(sessions, null, 2));
120
+ const redactedSessions = sessions.map(redactPromptSession);
121
+ fs.writeFileSync(sessionsFilePath, JSON.stringify(redactedSessions, null, 2));
104
122
  }
105
123
  /**
106
124
  * Insert a new prompt session into the JSON file
@@ -123,20 +141,21 @@ function insertSession(session) {
123
141
  */
124
142
  function getSessions(limit = 50, offset = 0) {
125
143
  const sessions = readSessions();
126
- return sessions.slice(offset, offset + limit);
144
+ return sessions.slice(offset, offset + limit).map(redactPromptSession);
127
145
  }
128
146
  /**
129
147
  * Get a single session by ID
130
148
  */
131
149
  function getSessionById(id) {
132
150
  const sessions = readSessions();
133
- return sessions.find(s => s.id === id) || null;
151
+ const session = sessions.find(s => s.id === id) || null;
152
+ return session ? redactPromptSession(session) : null;
134
153
  }
135
154
  /**
136
155
  * Get sessions by provider
137
156
  */
138
157
  function getSessionsByProvider(provider, limit = 50) {
139
158
  const sessions = readSessions();
140
- return sessions.filter(s => s.provider === provider).slice(0, limit);
159
+ return sessions.filter(s => s.provider === provider).slice(0, limit).map(redactPromptSession);
141
160
  }
142
161
  //# sourceMappingURL=store.js.map
package/dist/store.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,wBAcC;AAKD,0CAoBC;AAoDD,sCAaC;AAOD,kCAGC;AAKD,wCAIC;AAKD,sDAGC;AAhJD,uCAAyB;AACzB,2CAA6B;AAE7B,+BAAoC;AACpC,qCAA2C;AAE3C,IAAI,gBAAgB,GAAkB,IAAI,CAAC;AAC3C,MAAM,gBAAgB,GAAG,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC;AAEtD;;;GAGG;AACH,SAAgB,MAAM,CAAC,QAAgB;IACrC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAErD,iDAAiD;IACjD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IAE3D,iDAAiD;IACjD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACrC,EAAE,CAAC,aAAa,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAAC,QAAgB;IAK9C,MAAM,CAAC,QAAQ,CAAC,CAAC;IAEjB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACrD,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IACjE,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IAE7D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACrC,EAAE,CAAC,aAAa,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAChF,CAAC;IAED,OAAO;QACL,WAAW;QACX,gBAAgB,EAAE,YAAY;QAC9B,gBAAgB;KACjB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,YAAY;IACnB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;QAChD,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAoB;IAC9C,OAAO;QACL,GAAG,MAAM;QACT,MAAM,EAAE,IAAA,wBAAe,EAAC,MAAM,CAAC,MAAM,CAAC;QACtC,IAAI,EAAE,IAAA,wBAAe,EAAC,MAAM,CAAC,IAAI,CAAC;KACnC,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAsB;IACjD,OAAO;QACL,GAAG,OAAO;QACV,MAAM,EAAE,IAAA,wBAAe,EAAC,OAAO,CAAC,MAAM,CAAC;QACvC,eAAe,EAAE,IAAA,wBAAe,EAAC,OAAO,CAAC,eAAe,CAAC;QACzD,IAAI,EAAE,IAAA,wBAAe,EAAC,OAAO,CAAC,IAAI,CAAC;QACnC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,kBAAkB,CAAC;KACpE,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,QAAyB;IAC9C,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,gBAAgB,GAAG,QAAQ,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAC3D,EAAE,CAAC,aAAa,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAChF,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,OAAkC;IAC9D,MAAM,EAAE,GAAG,IAAA,SAAM,GAAE,CAAC;IACpB,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;IAEhC,MAAM,UAAU,GAAkB;QAChC,EAAE;QACF,GAAG,OAAO;KACX,CAAC;IAEF,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,mDAAmD;IACjF,aAAa,CAAC,QAAQ,CAAC,CAAC;IAExB,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;GAIG;AACH,SAAgB,WAAW,CAAC,QAAgB,EAAE,EAAE,SAAiB,CAAC;IAChE,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;IAChC,OAAO,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AACzE,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,EAAU;IACvC,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;IAChC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,IAAI,CAAC;IACxD,OAAO,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACvD,CAAC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CAAC,QAAgB,EAAE,QAAgB,EAAE;IACxE,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;IAChC,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AAChG,CAAC"}
@@ -20,6 +20,7 @@ LAST_PROMPT_FILE="$PROMPTVC_DIR/last_prompt_count"
20
20
  LAST_SESSION_FILE="$PROMPTVC_DIR/last_session_file"
21
21
  TEMP_PROMPTS_FILE="$PROMPTVC_DIR/temp_prompts.json"
22
22
  SETTINGS_FILE="$PROMPTVC_DIR/settings.json"
23
+ LAST_GIT_STATE_FILE="$PROMPTVC_DIR/last_git_state.json"
23
24
 
24
25
  # Create .promptvc directory if it doesn't exist
25
26
  mkdir -p "$PROMPTVC_DIR"
@@ -86,6 +87,8 @@ NEW_SESSION="false"
86
87
  if [ "$LATEST_SESSION" != "$PREV_SESSION" ]; then
87
88
  echo "0" > "$LAST_PROMPT_FILE"
88
89
  echo "$LATEST_SESSION" > "$LAST_SESSION_FILE"
90
+ # Reset git state for new session to start fresh
91
+ rm -f "$LAST_GIT_STATE_FILE"
89
92
  NEW_SESSION="true"
90
93
  fi
91
94
 
@@ -157,14 +160,73 @@ NEW_PROMPTS=$(echo "$FILTERED_PROMPTS" | jq ".[$LAST_PROMPT_COUNT:]" 2>/dev/null
157
160
 
158
161
  # Capture current git state
159
162
  GIT_HASH=$(git rev-parse HEAD 2>/dev/null || echo "")
160
- GIT_DIFF=$(git diff 2>/dev/null || echo "")
161
- CHANGED_FILES_RAW=$(git diff --name-only 2>/dev/null || echo "")
162
163
 
163
- # Build files array as JSON
164
- if [ -z "$CHANGED_FILES_RAW" ]; then
164
+ # Load previous git state to calculate incremental changes
165
+ PREV_STATE="{}"
166
+ if [ -f "$LAST_GIT_STATE_FILE" ]; then
167
+ PREV_STATE=$(cat "$LAST_GIT_STATE_FILE" 2>/dev/null || echo "{}")
168
+ fi
169
+
170
+ # Get all currently changed files
171
+ ALL_CHANGED_FILES=$(git diff --name-only 2>/dev/null || echo "")
172
+
173
+ # Build current state: map of file -> checksum
174
+ CURRENT_STATE="{}"
175
+ if [ -n "$ALL_CHANGED_FILES" ]; then
176
+ while IFS= read -r file; do
177
+ if [ -f "$REPO_DIR/$file" ]; then
178
+ # Calculate checksum of current file content
179
+ CHECKSUM=$(git hash-object "$REPO_DIR/$file" 2>/dev/null || echo "")
180
+ if [ -n "$CHECKSUM" ]; then
181
+ CURRENT_STATE=$(echo "$CURRENT_STATE" | jq --arg file "$file" --arg sum "$CHECKSUM" '. + {($file): $sum}')
182
+ fi
183
+ fi
184
+ done <<< "$ALL_CHANGED_FILES"
185
+ fi
186
+
187
+ # Identify newly changed files (files that are new or have different checksums)
188
+ NEW_CHANGED_FILES=""
189
+ if [ "$PREV_STATE" = "{}" ]; then
190
+ # First run - all changed files are new
191
+ NEW_CHANGED_FILES="$ALL_CHANGED_FILES"
192
+ else
193
+ # Compare current state with previous state
194
+ while IFS= read -r file; do
195
+ if [ -z "$file" ]; then
196
+ continue
197
+ fi
198
+ CURRENT_SUM=$(echo "$CURRENT_STATE" | jq -r --arg file "$file" '.[$file] // ""')
199
+ PREV_SUM=$(echo "$PREV_STATE" | jq -r --arg file "$file" '.[$file] // ""')
200
+
201
+ # Include file if it's new or checksum changed
202
+ if [ "$CURRENT_SUM" != "$PREV_SUM" ]; then
203
+ if [ -z "$NEW_CHANGED_FILES" ]; then
204
+ NEW_CHANGED_FILES="$file"
205
+ else
206
+ NEW_CHANGED_FILES="$NEW_CHANGED_FILES"$'\n'"$file"
207
+ fi
208
+ fi
209
+ done <<< "$ALL_CHANGED_FILES"
210
+ fi
211
+
212
+ # Generate diff only for newly changed files
213
+ if [ -z "$NEW_CHANGED_FILES" ]; then
214
+ GIT_DIFF=""
215
+ CHANGED_FILES_RAW=""
165
216
  FILES_ARRAY="[]"
166
217
  else
167
- FILES_ARRAY=$(echo "$CHANGED_FILES_RAW" | jq -R -s 'split("\n") | map(select(length > 0))')
218
+ # Create array of files for git diff
219
+ FILE_ARGS=""
220
+ while IFS= read -r file; do
221
+ if [ -n "$file" ]; then
222
+ FILE_ARGS="$FILE_ARGS $file"
223
+ fi
224
+ done <<< "$NEW_CHANGED_FILES"
225
+
226
+ # Generate diff only for these files
227
+ GIT_DIFF=$(git diff -- $FILE_ARGS 2>/dev/null || echo "")
228
+ CHANGED_FILES_RAW="$NEW_CHANGED_FILES"
229
+ FILES_ARRAY=$(echo "$NEW_CHANGED_FILES" | jq -R -s 'split("\n") | map(select(length > 0))')
168
230
  fi
169
231
 
170
232
  # Escape diff for JSON
@@ -277,6 +339,9 @@ if [ "$NEW_ENTRIES" != "[]" ]; then
277
339
 
278
340
  # Update last prompt count
279
341
  echo "$CURRENT_PROMPT_COUNT" > "$LAST_PROMPT_FILE"
342
+
343
+ # Save current git state for next incremental diff
344
+ echo "$CURRENT_STATE" > "$LAST_GIT_STATE_FILE"
280
345
  fi
281
346
 
282
347
  # Clean up
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "promptvc",
3
- "version": "0.1.0",
3
+ "version": "0.1.5",
4
4
  "description": "CLI tool to wrap AI assistants and log prompts/diffs",
5
- "homepage": "https://v0-prompt-version-control-pi.vercel.app/",
5
+ "homepage": "https://prompt-vc.vercel.app/",
6
6
  "repository": {
7
7
  "type": "git",
8
8
  "url": "https://github.com/sehmim/PromptVC.git"
@@ -25,17 +25,17 @@
25
25
  "build": "tsc",
26
26
  "clean": "rm -rf dist",
27
27
  "dev": "tsc --watch",
28
- "prepublishOnly": "npm run build",
28
+ "prepublishOnly": "pnpm run build",
29
29
  "typecheck": "tsc --noEmit"
30
30
  },
31
31
  "dependencies": {
32
- "@promptvc/types": "workspace:*",
33
32
  "kleur": "^4.1.5",
34
33
  "commander": "^11.1.0",
35
34
  "simple-git": "^3.22.0",
36
35
  "uuid": "^9.0.1"
37
36
  },
38
37
  "devDependencies": {
38
+ "@promptvc/types": "workspace:*",
39
39
  "@types/node": "^20.10.6",
40
40
  "@types/uuid": "^9.0.7",
41
41
  "typescript": "^5.3.3"