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,303 @@
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.askCommand = askCommand;
37
+ const path = __importStar(require("path"));
38
+ const fs_1 = require("../core/fs");
39
+ const db_1 = require("../core/db");
40
+ const format_1 = require("../core/format");
41
+ const PMEM_DIR = '.pmem';
42
+ function askCommand(query, format = 'compact') {
43
+ const cwd = process.cwd();
44
+ const pmemPath = path.join(cwd, PMEM_DIR);
45
+ const dbPath = path.join(pmemPath, 'pmem.db');
46
+ if (!(0, fs_1.fileExists)(pmemPath)) {
47
+ console.log('No .pmem directory found. Run `pmem init` first.');
48
+ return;
49
+ }
50
+ if (!(0, fs_1.fileExists)(dbPath)) {
51
+ console.log('No SQLite database found. Run `pmem rebuild` first.');
52
+ return;
53
+ }
54
+ let db;
55
+ try {
56
+ db = (0, db_1.openDatabase)(pmemPath);
57
+ (0, db_1.createSchema)(db);
58
+ }
59
+ catch (err) {
60
+ if (err?.message?.includes('not a valid SQLite database')) {
61
+ console.log(err.message);
62
+ return;
63
+ }
64
+ console.log(`Failed to open database: ${err?.message || err}`);
65
+ console.log('Run `pmem rebuild --full` to rebuild the database.');
66
+ return;
67
+ }
68
+ const normalizedQuery = query.toLowerCase().trim();
69
+ const queryTokens = tokenize(normalizedQuery);
70
+ const matches = [];
71
+ const seenIds = new Set();
72
+ // Step 1: Exact match — card ID
73
+ const idMatches = db.prepare("SELECT * FROM cards WHERE (id = ? OR id LIKE ?) AND is_deleted = 0").all(normalizedQuery, `%${normalizedQuery}%`);
74
+ for (const card of idMatches) {
75
+ if (seenIds.has(card.id))
76
+ continue;
77
+ seenIds.add(card.id);
78
+ matches.push({
79
+ id: card.id,
80
+ title: card.title,
81
+ match_type: card.id === normalizedQuery ? 'exact_id' : 'exact_title',
82
+ confidence: card.id === normalizedQuery ? 0.95 : 0.85,
83
+ graph_distance: 0,
84
+ file: card.file_path,
85
+ });
86
+ }
87
+ // Step 2: Exact match — aliases
88
+ const aliasMatches = db.prepare(`SELECT c.* FROM cards c
89
+ JOIN aliases a ON c.id = a.card_id
90
+ WHERE (a.normalized_alias = ? OR a.normalized_alias LIKE ?)
91
+ AND c.is_deleted = 0`).all(normalizedQuery, `%${normalizedQuery}%`);
92
+ for (const card of aliasMatches) {
93
+ if (seenIds.has(card.id))
94
+ continue;
95
+ seenIds.add(card.id);
96
+ matches.push({
97
+ id: card.id,
98
+ title: card.title,
99
+ match_type: 'alias',
100
+ confidence: 0.9,
101
+ graph_distance: 0,
102
+ file: card.file_path,
103
+ });
104
+ }
105
+ // Step 3: Exact match — tags
106
+ const tagMatches = db.prepare(`SELECT c.* FROM cards c
107
+ JOIN tags t ON c.id = t.card_id
108
+ WHERE t.normalized_tag = ?
109
+ AND c.is_deleted = 0`).all(normalizedQuery);
110
+ for (const card of tagMatches) {
111
+ if (seenIds.has(card.id))
112
+ continue;
113
+ seenIds.add(card.id);
114
+ matches.push({
115
+ id: card.id,
116
+ title: card.title,
117
+ match_type: 'tag',
118
+ confidence: 0.7,
119
+ graph_distance: 0,
120
+ file: card.file_path,
121
+ });
122
+ }
123
+ // Also try tag matching with individual query tokens
124
+ for (const token of queryTokens) {
125
+ const tokenTagMatches = db.prepare(`SELECT c.* FROM cards c
126
+ JOIN tags t ON c.id = t.card_id
127
+ WHERE t.normalized_tag LIKE ?
128
+ AND c.is_deleted = 0`).all(`%${token}%`);
129
+ for (const card of tokenTagMatches) {
130
+ if (seenIds.has(card.id))
131
+ continue;
132
+ seenIds.add(card.id);
133
+ matches.push({
134
+ id: card.id,
135
+ title: card.title,
136
+ match_type: 'tag',
137
+ confidence: 0.6,
138
+ graph_distance: 0,
139
+ file: card.file_path,
140
+ });
141
+ }
142
+ }
143
+ // Step 4: Graph expansion — 1-hop neighbors from matched cards
144
+ const matchedIdsAtThisPoint = new Set(matches.map(m => m.id));
145
+ for (const match of matches) {
146
+ const edges = db.prepare("SELECT * FROM edges WHERE from_id = ? OR to_id = ?").all(match.id, match.id);
147
+ for (const edge of edges) {
148
+ const neighborId = edge.from_id === match.id ? edge.to_id : edge.from_id;
149
+ if (matchedIdsAtThisPoint.has(neighborId) || seenIds.has(neighborId))
150
+ continue;
151
+ seenIds.add(neighborId);
152
+ const neighborCard = db.prepare("SELECT * FROM cards WHERE id = ? AND is_deleted = 0").get(neighborId);
153
+ if (neighborCard) {
154
+ matches.push({
155
+ id: neighborCard.id,
156
+ title: neighborCard.title,
157
+ match_type: 'graph_expansion',
158
+ confidence: 0.6,
159
+ graph_distance: 1,
160
+ file: neighborCard.file_path,
161
+ edge_type: edge.type,
162
+ from_card: match.id,
163
+ });
164
+ }
165
+ }
166
+ }
167
+ // Step 5: Keyword fallback — FTS5 if available, else LIKE
168
+ if (matches.filter(m => m.match_type !== 'graph_expansion').length === 0) {
169
+ // Filter out expansions for the "no direct matches" check
170
+ const directMatchesBeforeFallback = matches.filter(m => m.match_type !== 'graph_expansion');
171
+ if (directMatchesBeforeFallback.length === 0) {
172
+ if ((0, db_1.hasFTS5)(db)) {
173
+ try {
174
+ const ftsResults = db.prepare("SELECT c.*, rank FROM card_fts JOIN cards c ON card_fts.card_id = c.id WHERE card_fts MATCH ? AND c.is_deleted = 0 ORDER BY rank").all(normalizedQuery);
175
+ for (const row of ftsResults) {
176
+ if (seenIds.has(row.id))
177
+ continue;
178
+ seenIds.add(row.id);
179
+ matches.push({
180
+ id: row.id,
181
+ title: row.title,
182
+ match_type: 'keyword_fallback',
183
+ confidence: Math.min(0.5, 1 / (1 + (row.rank || 1))),
184
+ graph_distance: 0,
185
+ file: row.file_path,
186
+ });
187
+ }
188
+ }
189
+ catch {
190
+ // FTS5 query failed, fall through to LIKE fallback
191
+ }
192
+ }
193
+ // LIKE fallback (used if FTS5 unavailable or FTS5 returned no results)
194
+ if (matches.filter(m => m.match_type === 'keyword_fallback').length === 0) {
195
+ const likePattern = `%${normalizedQuery}%`;
196
+ const likeResults = db.prepare("SELECT * FROM cards WHERE (title LIKE ? OR summary LIKE ?) AND is_deleted = 0").all(likePattern, likePattern);
197
+ for (const card of likeResults) {
198
+ if (seenIds.has(card.id))
199
+ continue;
200
+ seenIds.add(card.id);
201
+ // Simple relevance: count token overlap in title
202
+ const titleLower = card.title.toLowerCase();
203
+ const tokenOverlap = queryTokens.filter(t => titleLower.includes(t)).length;
204
+ matches.push({
205
+ id: card.id,
206
+ title: card.title,
207
+ match_type: 'keyword_fallback',
208
+ confidence: Math.min(0.5, tokenOverlap / Math.max(1, queryTokens.length)),
209
+ graph_distance: 0,
210
+ file: card.file_path,
211
+ });
212
+ }
213
+ }
214
+ }
215
+ }
216
+ // Step 6: Rerank
217
+ const typeOrder = {
218
+ exact_id: 5,
219
+ exact_title: 4,
220
+ alias: 3,
221
+ tag: 2,
222
+ graph_expansion: 1,
223
+ keyword_fallback: 0,
224
+ };
225
+ matches.sort((a, b) => {
226
+ return ((typeOrder[b.match_type] - typeOrder[a.match_type]) ||
227
+ (b.confidence - a.confidence) ||
228
+ (a.graph_distance - b.graph_distance));
229
+ });
230
+ // Step 7: Deduplicate (keep first/highest-ranked match per id)
231
+ const dedupedIds = new Set();
232
+ const deduped = [];
233
+ for (const m of matches) {
234
+ if (dedupedIds.has(m.id))
235
+ continue;
236
+ dedupedIds.add(m.id);
237
+ deduped.push(m);
238
+ }
239
+ // Build recommended_files and evidence_paths
240
+ const recommendedFiles = [];
241
+ for (const m of deduped.slice(0, 8)) {
242
+ recommendedFiles.push(m.file);
243
+ }
244
+ const evidencePaths = [];
245
+ for (const m of deduped) {
246
+ const card = db.prepare("SELECT type, file_path FROM cards WHERE id = ? AND is_deleted = 0").get(m.id);
247
+ if (card && (card.type === 'decision' || card.type === 'trace')) {
248
+ evidencePaths.push(card.file_path);
249
+ }
250
+ }
251
+ const result = {
252
+ query,
253
+ matched: deduped,
254
+ recommended_files: recommendedFiles,
255
+ evidence_paths: evidencePaths,
256
+ };
257
+ // Output
258
+ if (format === 'json') {
259
+ console.log(JSON.stringify(result, null, 2));
260
+ }
261
+ else {
262
+ // Adapt to formatOutput's expected shape
263
+ const formatCompat = {
264
+ query: result.query,
265
+ matched: result.matched.map(m => ({
266
+ id: m.id,
267
+ title: m.title,
268
+ matchType: m.match_type,
269
+ match_type: m.match_type,
270
+ confidence: m.confidence,
271
+ graphDistance: m.graph_distance,
272
+ graph_distance: m.graph_distance,
273
+ file: m.file,
274
+ edgeType: m.edge_type,
275
+ edge_type: m.edge_type,
276
+ fromCard: m.from_card,
277
+ })),
278
+ recommended_files: result.recommended_files,
279
+ evidencePaths: result.evidence_paths,
280
+ };
281
+ console.log((0, format_1.formatOutput)(formatCompat, format, 2000));
282
+ }
283
+ }
284
+ function tokenize(text) {
285
+ const tokens = [];
286
+ const words = text.split(/[\s,,。、;;::!!??()()\[\]【】{}]+/);
287
+ for (const word of words) {
288
+ if (word.length === 0)
289
+ continue;
290
+ if (/[一-鿿]/.test(word)) {
291
+ const cjkChars = word.match(/[一-鿿]/g) || [];
292
+ tokens.push(...cjkChars);
293
+ const nonCjk = word.replace(/[一-鿿]/g, '').trim();
294
+ if (nonCjk)
295
+ tokens.push(nonCjk.toLowerCase());
296
+ }
297
+ else {
298
+ tokens.push(word.toLowerCase());
299
+ }
300
+ }
301
+ return [...new Set(tokens)];
302
+ }
303
+ //# sourceMappingURL=ask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ask.js","sourceRoot":"","sources":["../../src/commands/ask.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare function distillCommand(options: {
2
+ confirm?: boolean;
3
+ suggestSplits?: boolean;
4
+ applySuggestion?: string;
5
+ }): void;
6
+ //# sourceMappingURL=distill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"distill.d.ts","sourceRoot":"","sources":["../../src/commands/distill.ts"],"names":[],"mappings":"AAuBA,wBAAgB,cAAc,CAAC,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAwEtH"}