pmem-ai 0.5.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 (99) hide show
  1. package/CHANGELOG.md +57 -0
  2. package/LICENSE +21 -0
  3. package/README.md +349 -0
  4. package/dist/commands/ask.d.ts +3 -0
  5. package/dist/commands/ask.d.ts.map +1 -0
  6. package/dist/commands/ask.js +303 -0
  7. package/dist/commands/ask.js.map +1 -0
  8. package/dist/commands/distill.d.ts +6 -0
  9. package/dist/commands/distill.d.ts.map +1 -0
  10. package/dist/commands/distill.js +425 -0
  11. package/dist/commands/distill.js.map +1 -0
  12. package/dist/commands/graph.d.ts +6 -0
  13. package/dist/commands/graph.d.ts.map +1 -0
  14. package/dist/commands/graph.js +216 -0
  15. package/dist/commands/graph.js.map +1 -0
  16. package/dist/commands/init.d.ts +5 -0
  17. package/dist/commands/init.d.ts.map +1 -0
  18. package/dist/commands/init.js +566 -0
  19. package/dist/commands/init.js.map +1 -0
  20. package/dist/commands/integration.d.ts +2 -0
  21. package/dist/commands/integration.d.ts.map +1 -0
  22. package/dist/commands/integration.js +216 -0
  23. package/dist/commands/integration.js.map +1 -0
  24. package/dist/commands/migrate.d.ts +6 -0
  25. package/dist/commands/migrate.d.ts.map +1 -0
  26. package/dist/commands/migrate.js +379 -0
  27. package/dist/commands/migrate.js.map +1 -0
  28. package/dist/commands/rebuild.d.ts +8 -0
  29. package/dist/commands/rebuild.d.ts.map +1 -0
  30. package/dist/commands/rebuild.js +299 -0
  31. package/dist/commands/rebuild.js.map +1 -0
  32. package/dist/commands/recall.d.ts +3 -0
  33. package/dist/commands/recall.d.ts.map +1 -0
  34. package/dist/commands/recall.js +140 -0
  35. package/dist/commands/recall.js.map +1 -0
  36. package/dist/commands/session.d.ts +3 -0
  37. package/dist/commands/session.d.ts.map +1 -0
  38. package/dist/commands/session.js +147 -0
  39. package/dist/commands/session.js.map +1 -0
  40. package/dist/commands/status.d.ts +5 -0
  41. package/dist/commands/status.d.ts.map +1 -0
  42. package/dist/commands/status.js +275 -0
  43. package/dist/commands/status.js.map +1 -0
  44. package/dist/commands/update.d.ts +14 -0
  45. package/dist/commands/update.d.ts.map +1 -0
  46. package/dist/commands/update.js +536 -0
  47. package/dist/commands/update.js.map +1 -0
  48. package/dist/commands/verify.d.ts +4 -0
  49. package/dist/commands/verify.d.ts.map +1 -0
  50. package/dist/commands/verify.js +296 -0
  51. package/dist/commands/verify.js.map +1 -0
  52. package/dist/core/db.d.ts +47 -0
  53. package/dist/core/db.d.ts.map +1 -0
  54. package/dist/core/db.js +326 -0
  55. package/dist/core/db.js.map +1 -0
  56. package/dist/core/format.d.ts +3 -0
  57. package/dist/core/format.d.ts.map +1 -0
  58. package/dist/core/format.js +221 -0
  59. package/dist/core/format.js.map +1 -0
  60. package/dist/core/fs.d.ts +16 -0
  61. package/dist/core/fs.d.ts.map +1 -0
  62. package/dist/core/fs.js +175 -0
  63. package/dist/core/fs.js.map +1 -0
  64. package/dist/core/git.d.ts +6 -0
  65. package/dist/core/git.d.ts.map +1 -0
  66. package/dist/core/git.js +20 -0
  67. package/dist/core/git.js.map +1 -0
  68. package/dist/core/hash.d.ts +10 -0
  69. package/dist/core/hash.d.ts.map +1 -0
  70. package/dist/core/hash.js +25 -0
  71. package/dist/core/hash.js.map +1 -0
  72. package/dist/core/manifest.d.ts +6 -0
  73. package/dist/core/manifest.d.ts.map +1 -0
  74. package/dist/core/manifest.js +207 -0
  75. package/dist/core/manifest.js.map +1 -0
  76. package/dist/core/yaml.d.ts +11 -0
  77. package/dist/core/yaml.d.ts.map +1 -0
  78. package/dist/core/yaml.js +94 -0
  79. package/dist/core/yaml.js.map +1 -0
  80. package/dist/index.d.ts +3 -0
  81. package/dist/index.d.ts.map +1 -0
  82. package/dist/index.js +167 -0
  83. package/dist/index.js.map +1 -0
  84. package/dist/types.d.ts +351 -0
  85. package/dist/types.d.ts.map +1 -0
  86. package/dist/types.js +4 -0
  87. package/dist/types.js.map +1 -0
  88. package/docs/Voorlopige projekidee.md +695 -0
  89. package/docs/handover-v0.3.md +355 -0
  90. package/docs/handover-v0.4.md +367 -0
  91. package/docs/prd.md +318 -0
  92. package/docs/project-roadmap.md +279 -0
  93. package/docs/release-checklist-v0.5.md +109 -0
  94. package/docs/v0.2 pre-design.md +182 -0
  95. package/docs/v0.2 pre-roadmap.md +270 -0
  96. package/docs/v0.3 pre-design.md +686 -0
  97. package/docs/v0.4 pre-design.md +417 -0
  98. package/docs/v0.5 pre-design.md +481 -0
  99. package/package.json +67 -0
@@ -0,0 +1,536 @@
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
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.updateCommand = updateCommand;
37
+ exports.markDirtyCommand = markDirtyCommand;
38
+ const path = __importStar(require("path"));
39
+ const child_process_1 = require("child_process");
40
+ const fs_1 = require("../core/fs");
41
+ const manifest_1 = require("../core/manifest");
42
+ const rebuild_1 = require("./rebuild");
43
+ const db_1 = require("../core/db");
44
+ const git_1 = require("../core/git");
45
+ const PMEM_DIR = '.pmem';
46
+ function updateCommand(options) {
47
+ const cwd = process.cwd();
48
+ const pmemPath = path.join(cwd, PMEM_DIR);
49
+ if (!(0, fs_1.fileExists)(pmemPath)) {
50
+ console.log('No .pmem directory found. Run `pmem init` first.');
51
+ return;
52
+ }
53
+ const manifest = (0, manifest_1.loadManifest)(pmemPath);
54
+ if (!manifest) {
55
+ console.log('No manifest found. Run `pmem init` first.');
56
+ return;
57
+ }
58
+ // --suggest: show intelligent update suggestions
59
+ if (options.suggest) {
60
+ suggestActions(pmemPath, options.format);
61
+ return;
62
+ }
63
+ // --apply-suggestion: apply a specific suggestion
64
+ if (options.applySuggestion) {
65
+ applySuggestionAction(pmemPath, options.applySuggestion);
66
+ return;
67
+ }
68
+ // --auto: detect changes, suggest actions
69
+ if (options.auto) {
70
+ autoUpdate(pmemPath, manifest);
71
+ return;
72
+ }
73
+ // --confirm or --force: write changes
74
+ if (options.confirm || options.force) {
75
+ confirmUpdate(pmemPath, options.summary, options.next);
76
+ return;
77
+ }
78
+ // no flag: show current dirty state
79
+ showDirtyState(pmemPath);
80
+ }
81
+ function markDirtyCommand(reason, options = {}) {
82
+ const cwd = process.cwd();
83
+ const pmemPath = path.join(cwd, PMEM_DIR);
84
+ if (!(0, fs_1.fileExists)(pmemPath)) {
85
+ console.log('No .pmem directory found. Run `pmem init` first.');
86
+ return;
87
+ }
88
+ // --auto: detect changed files via git and mark related cards as dirty
89
+ if (options.auto) {
90
+ const dbPath = path.join(pmemPath, 'pmem.db');
91
+ if ((0, fs_1.fileExists)(dbPath)) {
92
+ try {
93
+ const db = (0, db_1.openDatabase)(pmemPath);
94
+ const output = (0, child_process_1.execSync)('git status --porcelain', { encoding: 'utf8', cwd });
95
+ const changedFiles = (0, git_1.parseGitStatusPorcelain)(output).map(change => change.path);
96
+ const activeSession = (0, db_1.getActiveSession)(db);
97
+ const dirtyCards = [];
98
+ for (const filePath of changedFiles) {
99
+ const rows = db.prepare("SELECT card_id FROM paths WHERE ? LIKE '%' || path || '%'").all(filePath);
100
+ for (const row of rows) {
101
+ if (!dirtyCards.includes(row.card_id)) {
102
+ (0, db_1.insertDirtyFlag)(db, 'card', row.card_id, 'file_changed: ' + filePath, activeSession?.id);
103
+ dirtyCards.push(row.card_id);
104
+ }
105
+ }
106
+ }
107
+ (0, db_1.closeDatabase)();
108
+ if (dirtyCards.length > 0) {
109
+ console.log(`Auto-marked ${dirtyCards.length} card(s) as dirty.`);
110
+ return;
111
+ }
112
+ else {
113
+ console.log('No related cards found for changed files.');
114
+ process.exit(1);
115
+ }
116
+ }
117
+ catch (err) {
118
+ console.error('Error during auto dirty detection:', err);
119
+ process.exit(2);
120
+ }
121
+ }
122
+ // DB doesn't exist: fall through to existing global dirty behavior
123
+ }
124
+ const dirtyFile = path.join(pmemPath, '.dirty');
125
+ const timestamp = new Date().toISOString();
126
+ (0, fs_1.atomicWrite)(dirtyFile, `reason: ${reason}\nsince: ${timestamp}\n`);
127
+ // Update manifest dirty state
128
+ const manifest = (0, manifest_1.loadManifest)(pmemPath);
129
+ if (manifest) {
130
+ // Update manifest.memory_status for dirty tracking
131
+ manifest.memory_status.dirty = true;
132
+ manifest.memory_status.dirty_reason = reason;
133
+ manifest.memory_status.dirty_since = timestamp;
134
+ (0, manifest_1.saveManifest)(pmemPath, manifest);
135
+ console.log(`Memory marked as dirty.`);
136
+ console.log(` Reason: ${reason}`);
137
+ console.log(` Since: ${timestamp}`);
138
+ console.log(`\nRun \`pmem update --auto\` to detect changes or \`pmem update --confirm\` to record them.`);
139
+ }
140
+ // SQLite: log dirty flag (additive — does not replace file-based dirty tracking)
141
+ const dbPath = path.join(pmemPath, 'pmem.db');
142
+ if ((0, fs_1.fileExists)(dbPath)) {
143
+ try {
144
+ const db = (0, db_1.openDatabase)(pmemPath);
145
+ const activeSession = (0, db_1.getActiveSession)(db);
146
+ (0, db_1.insertDirtyFlag)(db, 'project', '.pmem', reason, activeSession?.id);
147
+ (0, db_1.closeDatabase)();
148
+ console.log(` Dirty flag logged to SQLite.`);
149
+ }
150
+ catch {
151
+ // DB not available or schema not yet created — skip SQLite
152
+ }
153
+ }
154
+ }
155
+ function showDirtyState(pmemPath) {
156
+ const dirtyFile = path.join(pmemPath, '.dirty');
157
+ if ((0, fs_1.fileExists)(dirtyFile)) {
158
+ const content = (0, fs_1.readFile)(dirtyFile);
159
+ console.log('Memory is marked as dirty:');
160
+ console.log(content);
161
+ console.log('Run `pmem update --auto` to detect changes.');
162
+ }
163
+ else {
164
+ console.log('Memory is clean.');
165
+ }
166
+ }
167
+ function autoUpdate(pmemPath, manifest) {
168
+ console.log('Auto-detecting changes...\n');
169
+ // Check if dirty
170
+ const dirtyFile = path.join(pmemPath, '.dirty');
171
+ const isDirty = (0, fs_1.fileExists)(dirtyFile);
172
+ if (isDirty) {
173
+ const content = (0, fs_1.readFile)(dirtyFile);
174
+ console.log('Dirty memory detected:');
175
+ console.log(content);
176
+ }
177
+ // Check state.md freshness
178
+ const statePath = path.join(pmemPath, 'state.md');
179
+ if ((0, fs_1.fileExists)(statePath)) {
180
+ const stateStat = require('fs').statSync(statePath);
181
+ const hoursSinceUpdate = (Date.now() - stateStat.mtimeMs) / (1000 * 60 * 60);
182
+ if (hoursSinceUpdate > 24) {
183
+ console.log(`- state.md was last updated ${hoursSinceUpdate.toFixed(1)} hours ago.`);
184
+ }
185
+ }
186
+ // Check if next.md is empty
187
+ const nextPath = path.join(pmemPath, 'next.md');
188
+ if ((0, fs_1.fileExists)(nextPath)) {
189
+ const nextContent = (0, fs_1.readFile)(nextPath) || '';
190
+ if (nextContent.replace(/#.*\n/g, '').trim().length < 50) {
191
+ console.log('- next.md appears to have minimal content.');
192
+ }
193
+ }
194
+ // Suggest: check for new files in project that aren't in memory
195
+ const sourceFiles = listSourceFiles(process.cwd());
196
+ console.log(`\nProject source files: ${sourceFiles.length}`);
197
+ console.log('\nSuggested actions:');
198
+ if (isDirty) {
199
+ console.log(' 1. Review changes and update memory cards.');
200
+ console.log(' 2. Create decision cards if architecture changed.');
201
+ console.log(' 3. Run `pmem update --confirm --summary "<what changed>" --next "<next step>"`');
202
+ }
203
+ else {
204
+ console.log(' Memory appears up to date. No action needed.');
205
+ }
206
+ // SQLite: show unresolved dirty flags and recent update activity
207
+ const updateDbPath = path.join(pmemPath, 'pmem.db');
208
+ if ((0, fs_1.fileExists)(updateDbPath)) {
209
+ try {
210
+ const db = (0, db_1.openDatabase)(pmemPath);
211
+ const unresolved = (0, db_1.getUnresolvedDirtyFlags)(db);
212
+ if (unresolved.length > 0) {
213
+ console.log(`\nUnresolved dirty flags in SQLite: ${unresolved.length}`);
214
+ }
215
+ const recentLogs = (0, db_1.getRecentUpdateLogs)(db, 5);
216
+ if (recentLogs.length > 0) {
217
+ console.log('\nRecent update activity:');
218
+ for (const log of recentLogs) {
219
+ const icon = log.success ? '✓' : '✗';
220
+ console.log(` ${icon} [${log.created_at.slice(0, 16)}] ${log.action}${log.summary ? ': ' + log.summary.slice(0, 60) : ''}`);
221
+ }
222
+ }
223
+ (0, db_1.closeDatabase)();
224
+ }
225
+ catch {
226
+ // DB not available — skip SQLite
227
+ }
228
+ }
229
+ }
230
+ function confirmUpdate(pmemPath, summary, next) {
231
+ const lockPath = path.join(pmemPath, '.lock');
232
+ if (!(0, fs_1.acquireLock)(lockPath)) {
233
+ console.log('Failed to acquire pmem lock. Another pmem update may be running.');
234
+ console.log('No memory was written. Try again later.');
235
+ return;
236
+ }
237
+ try {
238
+ // Update next.md
239
+ if (next) {
240
+ const nextPath = path.join(pmemPath, 'next.md');
241
+ (0, fs_1.atomicWrite)(nextPath, `# Next Steps
242
+
243
+ ## Recommended Next Step
244
+ ${next}
245
+
246
+ ## Why
247
+ Confirmed during update.
248
+
249
+ ## Needed Context
250
+ Run \`pmem recall\` for full context.
251
+ `);
252
+ }
253
+ let sqliteLogged = false;
254
+ // Add trace if summary provided
255
+ if (summary) {
256
+ const today = new Date().toISOString().split('T')[0];
257
+ const traceDir = path.join(pmemPath, 'traces');
258
+ (0, fs_1.ensureDir)(traceDir);
259
+ // Find the next trace number
260
+ const fs = require('fs');
261
+ const existingTraces = fs.readdirSync(traceDir)
262
+ .filter((f) => f.startsWith(today))
263
+ .length;
264
+ const traceNum = String(existingTraces + 1).padStart(3, '0');
265
+ const traceFile = path.join(traceDir, `${today}-${traceNum}.md`);
266
+ (0, fs_1.atomicWrite)(traceFile, `---
267
+ id: trace.${today}-${traceNum}
268
+ type: trace
269
+ created: ${today}
270
+ ---
271
+
272
+ # Trace: ${summary}
273
+
274
+ ## What Changed
275
+ ${summary}
276
+
277
+ ## Next
278
+ ${next || 'Continue as planned.'}
279
+ `);
280
+ console.log(`Trace written: traces/${today}-${traceNum}.md`);
281
+ // SQLite: resolve dirty flags and log the update (additive)
282
+ const confirmDbPath = path.join(pmemPath, 'pmem.db');
283
+ if ((0, fs_1.fileExists)(confirmDbPath)) {
284
+ try {
285
+ const db = (0, db_1.openDatabase)(pmemPath);
286
+ const activeSession = (0, db_1.getActiveSession)(db);
287
+ (0, db_1.resolveDirtyFlags)(db, 'project', '.pmem');
288
+ (0, db_1.insertUpdateLog)(db, 'confirm_update', summary, activeSession?.id, [`trace.${today}-${traceNum}`], true);
289
+ (0, db_1.closeDatabase)();
290
+ sqliteLogged = true;
291
+ }
292
+ catch {
293
+ // DB not available — skip SQLite
294
+ }
295
+ }
296
+ }
297
+ // Clear dirty flag
298
+ const dirtyFile = path.join(pmemPath, '.dirty');
299
+ if ((0, fs_1.fileExists)(dirtyFile)) {
300
+ require('fs').unlinkSync(dirtyFile);
301
+ }
302
+ // Clear manifest dirty state
303
+ const manifest = (0, manifest_1.loadManifest)(pmemPath);
304
+ if (manifest) {
305
+ manifest.memory_status.dirty = false;
306
+ manifest.memory_status.dirty_reason = null;
307
+ manifest.memory_status.dirty_since = null;
308
+ (0, manifest_1.saveManifest)(pmemPath, manifest);
309
+ }
310
+ // Rebuild indexes
311
+ console.log('Rebuilding indexes...');
312
+ (0, rebuild_1.rebuildCommand)();
313
+ console.log('\n✓ Memory updated.');
314
+ if (sqliteLogged) {
315
+ console.log(' Update logged to SQLite.');
316
+ }
317
+ }
318
+ finally {
319
+ (0, fs_1.releaseLock)(lockPath);
320
+ }
321
+ }
322
+ function listSourceFiles(root) {
323
+ const fs = require('fs');
324
+ const results = [];
325
+ const skipDirs = new Set(['node_modules', '.git', '.pmem', 'dist', 'build', '.claude']);
326
+ function walk(dir) {
327
+ if (!(0, fs_1.fileExists)(dir))
328
+ return;
329
+ const entries = fs.readdirSync(dir, { withFileTypes: true });
330
+ for (const entry of entries) {
331
+ if (skipDirs.has(entry.name))
332
+ continue;
333
+ const fullPath = path.join(dir, entry.name);
334
+ if (entry.isDirectory()) {
335
+ walk(fullPath);
336
+ }
337
+ else if (/\.(ts|js|tsx|jsx|py|rs|go|java|rb|php)$/.test(entry.name)) {
338
+ results.push(fullPath);
339
+ }
340
+ }
341
+ }
342
+ walk(root);
343
+ return results;
344
+ }
345
+ function generateSuggestions(pmemPath) {
346
+ const dbPath = path.join(pmemPath, 'pmem.db');
347
+ if (!(0, fs_1.fileExists)(dbPath)) {
348
+ console.log('No SQLite database. Run pmem rebuild first.');
349
+ process.exit(2);
350
+ }
351
+ let db;
352
+ try {
353
+ db = (0, db_1.openDatabase)(pmemPath);
354
+ }
355
+ catch {
356
+ console.log('No SQLite database. Run pmem rebuild first.');
357
+ process.exit(2);
358
+ }
359
+ const unresolved = (0, db_1.getUnresolvedDirtyFlags)(db);
360
+ const suggestions = [];
361
+ // Card-level dirty flags → update_card suggestions
362
+ for (const flag of unresolved) {
363
+ if (flag.scope === 'card') {
364
+ suggestions.push({
365
+ id: `suggest-${suggestions.length + 1}`,
366
+ action: 'update_card',
367
+ target: flag.target,
368
+ reason: flag.reason,
369
+ priority: 'high',
370
+ });
371
+ }
372
+ }
373
+ // Project-level dirty → create_trace or confirm suggestions
374
+ for (const flag of unresolved) {
375
+ if (flag.scope === 'project') {
376
+ suggestions.push({
377
+ id: `suggest-${suggestions.length + 1}`,
378
+ action: 'create_trace',
379
+ target: flag.target,
380
+ reason: flag.reason,
381
+ priority: 'medium',
382
+ });
383
+ }
384
+ }
385
+ // Check state.md freshness
386
+ let stateFreshness = 'fresh';
387
+ const statePath = path.join(pmemPath, 'state.md');
388
+ if ((0, fs_1.fileExists)(statePath)) {
389
+ const fs = require('fs');
390
+ const stat = fs.statSync(statePath);
391
+ const hoursSinceUpdate = (Date.now() - stat.mtimeMs) / (1000 * 60 * 60);
392
+ if (hoursSinceUpdate > 24) {
393
+ stateFreshness = 'stale';
394
+ }
395
+ }
396
+ if (stateFreshness === 'stale') {
397
+ suggestions.push({
398
+ id: `suggest-${suggestions.length + 1}`,
399
+ action: 'update_state',
400
+ target: 'state.md',
401
+ reason: 'state.md has not been updated in over 24 hours',
402
+ priority: 'medium',
403
+ });
404
+ }
405
+ // Check next.md content
406
+ const nextPath = path.join(pmemPath, 'next.md');
407
+ let nextEmpty = false;
408
+ if ((0, fs_1.fileExists)(nextPath)) {
409
+ const content = (0, fs_1.readFile)(nextPath) || '';
410
+ if (content.replace(/#.*\n/g, '').trim().length < 50) {
411
+ nextEmpty = true;
412
+ }
413
+ }
414
+ if (nextEmpty) {
415
+ suggestions.push({
416
+ id: `suggest-${suggestions.length + 1}`,
417
+ action: 'update_next',
418
+ target: 'next.md',
419
+ reason: 'next.md appears to have minimal content',
420
+ priority: 'low',
421
+ });
422
+ }
423
+ (0, db_1.closeDatabase)();
424
+ return { dirtyFlags: unresolved, stateFreshness, suggestions };
425
+ }
426
+ function suggestActions(pmemPath, format) {
427
+ const { dirtyFlags, stateFreshness, suggestions } = generateSuggestions(pmemPath);
428
+ if (format === 'json') {
429
+ console.log(JSON.stringify({
430
+ dirty_flags: dirtyFlags,
431
+ state_freshness: stateFreshness,
432
+ suggestions,
433
+ }, null, 2));
434
+ }
435
+ else {
436
+ if (dirtyFlags.length > 0) {
437
+ console.log(`Dirty flags: ${dirtyFlags.length}`);
438
+ for (const flag of dirtyFlags) {
439
+ console.log(` [${flag.scope}] ${flag.target}: ${flag.reason}`);
440
+ }
441
+ }
442
+ else {
443
+ console.log('No unresolved dirty flags.');
444
+ }
445
+ console.log(`State freshness: ${stateFreshness}`);
446
+ if (suggestions.length > 0) {
447
+ console.log(`\nSuggestions (${suggestions.length}):`);
448
+ for (const s of suggestions) {
449
+ console.log(` ${s.id}: [${s.priority}] ${s.action} ${s.target}`);
450
+ console.log(` ${s.reason}`);
451
+ }
452
+ }
453
+ else {
454
+ console.log('\nNo suggestions. Memory is up to date.');
455
+ }
456
+ }
457
+ const hasSuggestions = suggestions.length > 0;
458
+ process.exit(hasSuggestions ? 1 : 0);
459
+ }
460
+ function applySuggestionAction(pmemPath, suggestionId) {
461
+ // Re-derive suggestions to find the matching one
462
+ const { suggestions, dirtyFlags } = generateSuggestions(pmemPath);
463
+ const match = suggestions.find(s => s.id === suggestionId);
464
+ if (!match) {
465
+ console.log(`Suggestion "${suggestionId}" not found. Available suggestions:`);
466
+ for (const s of suggestions) {
467
+ console.log(` ${s.id}: ${s.action} ${s.target}`);
468
+ }
469
+ process.exit(2);
470
+ }
471
+ const dbPath = path.join(pmemPath, 'pmem.db');
472
+ if (!(0, fs_1.fileExists)(dbPath)) {
473
+ console.log('No SQLite database. Run pmem rebuild first.');
474
+ process.exit(2);
475
+ }
476
+ switch (match.action) {
477
+ case 'update_card': {
478
+ const db = (0, db_1.openDatabase)(pmemPath);
479
+ // Mark the card's last_verified_at as expired
480
+ db.prepare("UPDATE cards SET last_verified_at = ? WHERE id = ?").run(new Date(0).toISOString(), match.target);
481
+ (0, db_1.closeDatabase)();
482
+ console.log(`Marked card "${match.target}" as needing verification.`);
483
+ console.log(` Reason: ${match.reason}`);
484
+ break;
485
+ }
486
+ case 'create_trace': {
487
+ const today = new Date().toISOString().split('T')[0];
488
+ const traceDir = path.join(pmemPath, 'traces');
489
+ (0, fs_1.ensureDir)(traceDir);
490
+ const fs = require('fs');
491
+ const existingTraces = fs.readdirSync(traceDir)
492
+ .filter((f) => f.startsWith(today))
493
+ .length;
494
+ const traceNum = String(existingTraces + 1).padStart(3, '0');
495
+ const traceFile = path.join(traceDir, `${today}-${traceNum}.md`);
496
+ (0, fs_1.atomicWrite)(traceFile, `---
497
+ id: trace.${today}-${traceNum}
498
+ type: trace
499
+ created: ${today}
500
+ ---
501
+
502
+ # Trace: ${match.reason}
503
+
504
+ ## What Changed
505
+ ${match.reason}
506
+
507
+ ## Next
508
+ Continue as planned.
509
+ `);
510
+ console.log(`Auto-created trace: traces/${today}-${traceNum}.md`);
511
+ console.log(` Reason: ${match.reason}`);
512
+ // Log in SQLite
513
+ const db = (0, db_1.openDatabase)(pmemPath);
514
+ const activeSession = (0, db_1.getActiveSession)(db);
515
+ (0, db_1.insertUpdateLog)(db, 'auto_trace', match.reason, activeSession?.id, [`trace.${today}-${traceNum}`], true);
516
+ (0, db_1.closeDatabase)();
517
+ break;
518
+ }
519
+ case 'update_state': {
520
+ console.log(`Action required: ${match.reason}`);
521
+ console.log(' Please run `pmem update --confirm` to update state.md.');
522
+ break;
523
+ }
524
+ case 'update_next': {
525
+ console.log(`Action required: ${match.reason}`);
526
+ console.log(' Please run `pmem update --confirm --next "<next step>"` to update next.md.');
527
+ break;
528
+ }
529
+ default: {
530
+ console.log(`Unknown action "${match.action}" for suggestion ${suggestionId}.`);
531
+ process.exit(2);
532
+ }
533
+ }
534
+ process.exit(0);
535
+ }
536
+ //# sourceMappingURL=update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function verifyCommand(options: {
2
+ fix?: boolean;
3
+ }): void;
4
+ //# sourceMappingURL=verify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../src/commands/verify.ts"],"names":[],"mappings":"AAWA,wBAAgB,aAAa,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAwR9D"}