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,216 @@
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.integrationCommand = integrationCommand;
37
+ const path = __importStar(require("path"));
38
+ const fs_1 = require("../core/fs");
39
+ const manifest_1 = require("../core/manifest");
40
+ const PMEM_DIR = '.pmem';
41
+ const CLAUDE_CODE_TEMPLATE = `# Claude Code Instructions
42
+
43
+ This repository uses pmem for project memory.
44
+
45
+ ## Before starting a task
46
+ Run:
47
+
48
+ \`\`\`bash
49
+ pmem recall --budget 2000
50
+ \`\`\`
51
+
52
+ If the task is specific, run:
53
+
54
+ \`\`\`bash
55
+ pmem ask "<user task>"
56
+ \`\`\`
57
+
58
+ Read only the memory cards returned by pmem unless more context is required.
59
+
60
+ ## After completing a task
61
+
62
+ Run:
63
+
64
+ \`\`\`bash
65
+ pmem update --auto
66
+ pmem verify
67
+ \`\`\`
68
+
69
+ Periodically run:
70
+
71
+ \`\`\`bash
72
+ pmem distill
73
+ \`\`\`
74
+
75
+ If architecture, product direction, or module boundaries changed, create a decision card.
76
+ `;
77
+ const SETTINGS_EXAMPLE = `{
78
+ "hooks": {
79
+ "Stop": [
80
+ {
81
+ "hooks": [
82
+ {
83
+ "type": "command",
84
+ "command": "pmem update --auto && pmem verify"
85
+ }
86
+ ]
87
+ }
88
+ ]
89
+ }
90
+ }
91
+ `;
92
+ function integrationCommand(action, framework) {
93
+ const cwd = process.cwd();
94
+ const pmemPath = path.join(cwd, PMEM_DIR);
95
+ if (!(0, fs_1.fileExists)(pmemPath)) {
96
+ console.log('No .pmem directory found. Run `pmem init` first.');
97
+ return;
98
+ }
99
+ const manifest = (0, manifest_1.loadManifest)(pmemPath);
100
+ if (!manifest) {
101
+ console.log('No manifest found. Run `pmem init` first.');
102
+ return;
103
+ }
104
+ switch (action) {
105
+ case 'list':
106
+ listIntegrations(pmemPath, manifest);
107
+ break;
108
+ case 'install':
109
+ if (!framework) {
110
+ console.log('Usage: pmem integration install <framework>');
111
+ console.log('Available: claude-code, cursor, codex');
112
+ return;
113
+ }
114
+ installIntegration(pmemPath, manifest, framework);
115
+ break;
116
+ case 'verify':
117
+ verifyIntegrations(pmemPath, manifest);
118
+ break;
119
+ default:
120
+ console.log(`Unknown integration action: ${action}`);
121
+ }
122
+ }
123
+ function listIntegrations(pmemPath, manifest) {
124
+ if (!manifest)
125
+ return;
126
+ console.log('Active integrations:');
127
+ for (const active of manifest.integrations.active) {
128
+ const dir = path.join(pmemPath, 'integrations', active);
129
+ const exists = (0, fs_1.fileExists)(dir);
130
+ console.log(` ${active} ${exists ? '✓' : '(not installed)'}`);
131
+ }
132
+ // List all available integration templates
133
+ const integrationsDir = path.join(pmemPath, 'integrations');
134
+ if ((0, fs_1.fileExists)(integrationsDir)) {
135
+ const fs = require('fs');
136
+ const entries = fs.readdirSync(integrationsDir, { withFileTypes: true });
137
+ const allIntegrations = entries.filter((e) => e.isDirectory()).map((e) => e.name);
138
+ const inactive = allIntegrations.filter((i) => !manifest.integrations.active.includes(i));
139
+ if (inactive.length > 0) {
140
+ console.log('\nAvailable (not active):');
141
+ for (const i of inactive) {
142
+ console.log(` ${i}`);
143
+ }
144
+ }
145
+ }
146
+ }
147
+ function installIntegration(pmemPath, manifest, framework) {
148
+ if (!manifest)
149
+ return;
150
+ const integDir = path.join(pmemPath, 'integrations', framework);
151
+ (0, fs_1.ensureDir)(integDir);
152
+ switch (framework) {
153
+ case 'claude-code': {
154
+ (0, fs_1.writeFile)(path.join(integDir, 'CLAUDE.md'), CLAUDE_CODE_TEMPLATE);
155
+ (0, fs_1.writeFile)(path.join(integDir, 'settings.example.json'), SETTINGS_EXAMPLE);
156
+ // Also create/update root CLAUDE.md
157
+ const rootClaudePath = path.join(process.cwd(), 'CLAUDE.md');
158
+ if (!(0, fs_1.fileExists)(rootClaudePath)) {
159
+ (0, fs_1.writeFile)(rootClaudePath, CLAUDE_CODE_TEMPLATE);
160
+ console.log(' Created CLAUDE.md in project root.');
161
+ }
162
+ break;
163
+ }
164
+ case 'cursor': {
165
+ const cursorRulesDir = path.join(process.cwd(), '.cursor', 'rules');
166
+ (0, fs_1.ensureDir)(cursorRulesDir);
167
+ (0, fs_1.writeFile)(path.join(cursorRulesDir, 'pmem.mdc'), `# pmem rules\n\nBefore working:\n- Run \`pmem recall --budget 2000\`\n- Run \`pmem ask "<task>"\` if the task is specific\n\nAfter working:\n- Run \`pmem update --auto\`\n- Run \`pmem verify\`\n\nPeriodically:\n- Run \`pmem distill\` to consolidate traces into stable memory cards\n`);
168
+ break;
169
+ }
170
+ case 'codex': {
171
+ (0, fs_1.writeFile)(path.join(integDir, 'AGENTS.md'), `# Codex Instructions\n\nThis project uses pmem.\n\nBefore work: run \`pmem recall --budget 2000\`.\nAfter work: run \`pmem update\`.\n`);
172
+ break;
173
+ }
174
+ default:
175
+ console.log(`Unknown framework: ${framework}`);
176
+ console.log('Available: claude-code, cursor, codex');
177
+ return;
178
+ }
179
+ // Update manifest
180
+ if (!manifest.integrations.active.includes(framework)) {
181
+ manifest.integrations.active.push(framework);
182
+ manifest.integrations[framework] = {
183
+ template_version: '0.1.0',
184
+ files: framework === 'claude-code' ? ['CLAUDE.md', '.claude/settings.json'] : ['.cursor/rules/pmem.mdc'],
185
+ };
186
+ (0, manifest_1.saveManifest)(pmemPath, manifest);
187
+ }
188
+ console.log(`✓ Integration "${framework}" installed.`);
189
+ console.log(` Template: .pmem/integrations/${framework}/`);
190
+ }
191
+ function verifyIntegrations(pmemPath, manifest) {
192
+ if (!manifest)
193
+ return;
194
+ const cwd = process.cwd();
195
+ console.log('Integration Check:');
196
+ for (const active of manifest.integrations.active) {
197
+ const integDir = path.join(pmemPath, 'integrations', active);
198
+ const exists = (0, fs_1.fileExists)(integDir);
199
+ console.log(`\n ${active}: ${exists ? 'installed' : 'missing'}`);
200
+ if (active === 'claude-code') {
201
+ const claudeMdExists = (0, fs_1.fileExists)(path.join(cwd, 'CLAUDE.md'));
202
+ const settingsExists = (0, fs_1.fileExists)(path.join(cwd, '.claude', 'settings.json'));
203
+ console.log(` CLAUDE.md: ${claudeMdExists ? '✓' : '✗'}`);
204
+ console.log(` .claude/settings.json: ${settingsExists ? '✓' : '✗'}`);
205
+ }
206
+ if (active === 'cursor') {
207
+ const rulesExists = (0, fs_1.fileExists)(path.join(cwd, '.cursor', 'rules', 'pmem.mdc'));
208
+ console.log(` .cursor/rules/pmem.mdc: ${rulesExists ? '✓' : '✗'}`);
209
+ }
210
+ }
211
+ if (manifest.integrations.active.length === 0) {
212
+ console.log(' No active integrations.');
213
+ console.log(' Run: pmem integration install <framework>');
214
+ }
215
+ }
216
+ //# sourceMappingURL=integration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integration.js","sourceRoot":"","sources":["../../src/commands/integration.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2DA,gDAiCC;AA5FD,2CAA6B;AAC7B,mCAAwE;AACxE,+CAA8D;AAE9D,MAAM,QAAQ,GAAG,OAAO,CAAC;AAEzB,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmC5B,CAAC;AAEF,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;CAcxB,CAAC;AAEF,SAAgB,kBAAkB,CAAC,MAAc,EAAE,SAAkB;IACnE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAE1C,IAAI,CAAC,IAAA,eAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;QAChE,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,IAAA,uBAAY,EAAC,QAAQ,CAAC,CAAC;IACxC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;QACzD,OAAO;IACT,CAAC;IAED,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM;YACT,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACrC,MAAM;QACR,KAAK,SAAS;YACZ,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;gBAC3D,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;gBACrD,OAAO;YACT,CAAC;YACD,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YAClD,MAAM;QACR,KAAK,QAAQ;YACX,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACvC,MAAM;QACR;YACE,OAAO,CAAC,GAAG,CAAC,+BAA+B,MAAM,EAAE,CAAC,CAAC;IACzD,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAgB,EAAE,QAAyC;IACnF,IAAI,CAAC,QAAQ;QAAE,OAAO;IAEtB,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IACpC,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;QAClD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,IAAA,eAAU,EAAC,GAAG,CAAC,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,2CAA2C;IAC3C,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAC5D,IAAI,IAAA,eAAU,EAAC,eAAe,CAAC,EAAE,CAAC;QAChC,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACzB,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,eAAe,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACzE,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAiC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAEpI,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,QAAS,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACnG,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;YACzC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACzB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAgB,EAAE,QAAyC,EAAE,SAAiB;IACxG,IAAI,CAAC,QAAQ;QAAE,OAAO;IAEtB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC;IAChE,IAAA,cAAS,EAAC,QAAQ,CAAC,CAAC;IAEpB,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,IAAA,cAAS,EAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,oBAAoB,CAAC,CAAC;YAClE,IAAA,cAAS,EAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,uBAAuB,CAAC,EAAE,gBAAgB,CAAC,CAAC;YAE1E,oCAAoC;YACpC,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC,CAAC;YAC7D,IAAI,CAAC,IAAA,eAAU,EAAC,cAAc,CAAC,EAAE,CAAC;gBAChC,IAAA,cAAS,EAAC,cAAc,EAAE,oBAAoB,CAAC,CAAC;gBAChD,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;YACtD,CAAC;YACD,MAAM;QACR,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YACpE,IAAA,cAAS,EAAC,cAAc,CAAC,CAAC;YAC1B,IAAA,cAAS,EAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,EAAE,4RAA4R,CAAC,CAAC;YAC/U,MAAM;QACR,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,IAAA,cAAS,EAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,wIAAwI,CAAC,CAAC;YACtL,MAAM;QACR,CAAC;QACD;YACE,OAAO,CAAC,GAAG,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;YACrD,OAAO;IACX,CAAC;IAED,kBAAkB;IAClB,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACtD,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7C,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG;YACjC,gBAAgB,EAAE,OAAO;YACzB,KAAK,EAAE,SAAS,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC;SACzG,CAAC;QACF,IAAA,uBAAY,EAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,kBAAkB,SAAS,cAAc,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,kCAAkC,SAAS,GAAG,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAgB,EAAE,QAAyC;IACrF,IAAI,CAAC,QAAQ;QAAE,OAAO;IAEtB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE1B,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAClC,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;QAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,IAAA,eAAU,EAAC,QAAQ,CAAC,CAAC;QAEpC,OAAO,CAAC,GAAG,CAAC,OAAO,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;QAElE,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;YAC7B,MAAM,cAAc,GAAG,IAAA,eAAU,EAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;YAC/D,MAAM,cAAc,GAAG,IAAA,eAAU,EAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC;YAC9E,OAAO,CAAC,GAAG,CAAC,kBAAkB,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,8BAA8B,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QAC1E,CAAC;QAED,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,MAAM,WAAW,GAAG,IAAA,eAAU,EAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;YAC/E,OAAO,CAAC,GAAG,CAAC,+BAA+B,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare function migrateCommand(options: {
2
+ to?: string;
3
+ dryRun?: boolean;
4
+ backup?: boolean;
5
+ }): void;
6
+ //# sourceMappingURL=migrate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../src/commands/migrate.ts"],"names":[],"mappings":"AAUA,wBAAgB,cAAc,CAAC,OAAO,EAAE;IAAE,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CA8BjG"}
@@ -0,0 +1,379 @@
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.migrateCommand = migrateCommand;
37
+ const path = __importStar(require("path"));
38
+ const manifest_1 = require("../core/manifest");
39
+ const fs_1 = require("../core/fs");
40
+ const db_1 = require("../core/db");
41
+ const hash_1 = require("../core/hash");
42
+ const yaml_1 = require("../core/yaml");
43
+ const PMEM_DIR = '.pmem';
44
+ function migrateCommand(options) {
45
+ const cwd = process.cwd();
46
+ const pmemPath = path.join(cwd, PMEM_DIR);
47
+ const manifest = (0, manifest_1.loadManifest)(pmemPath);
48
+ if (!manifest) {
49
+ console.log('No .pmem/manifest.yml found. Run `pmem init` first.');
50
+ return;
51
+ }
52
+ const currentSchema = manifest.pmem?.schema_version || '0.1';
53
+ const targetSchema = options.to || '0.2';
54
+ if (currentSchema === targetSchema) {
55
+ console.log(`Project is already at schema version ${currentSchema}. No migration needed.`);
56
+ return;
57
+ }
58
+ if (options.dryRun) {
59
+ dryRunMigration(pmemPath, manifest, currentSchema, targetSchema);
60
+ return;
61
+ }
62
+ // Backup before migration
63
+ if (options.backup !== false) {
64
+ createBackup(pmemPath, targetSchema);
65
+ }
66
+ // Execute migration
67
+ executeMigration(pmemPath, manifest, currentSchema, targetSchema);
68
+ }
69
+ function dryRunMigration(pmemPath, manifest, from, to) {
70
+ console.log(`Migration plan: ${from} -> ${to}\n`);
71
+ if (from === '0.1' && to === '0.2') {
72
+ console.log('Manifest changes:');
73
+ console.log(' - Replace version + pmem_version with pmem.schema_version block');
74
+ console.log(' - Add memory_status fields');
75
+ console.log(' - Add card_policy fields');
76
+ console.log(' - Add concurrency.mode + lock config');
77
+ console.log(' - Add distill config');
78
+ console.log(' - Add migrations.applied history');
79
+ console.log('');
80
+ console.log('Card changes:');
81
+ console.log(' - Add schema_version: "0.2" to all card frontmatter');
82
+ console.log(` - (${countCards(pmemPath)} cards will be updated)`);
83
+ console.log('');
84
+ console.log('Indexes:');
85
+ console.log(' - Will rebuild all indexes');
86
+ console.log('');
87
+ console.log('No files changed. Run without --dry-run to apply.');
88
+ }
89
+ else if (from === '0.2' && to === '0.3') {
90
+ dryRunMigration02to03(pmemPath);
91
+ }
92
+ else {
93
+ console.log(`No migration path defined for ${from} -> ${to}.`);
94
+ }
95
+ }
96
+ function dryRunMigration02to03(pmemPath) {
97
+ console.log('SQLite changes:');
98
+ console.log(' - Create .pmem/pmem.db with full schema (7 P0 tables + 3 P1 tables)');
99
+ console.log(' - Scan all Markdown cards and populate cards/edges/aliases/tags/paths tables');
100
+ console.log(' - Compute content hashes (file_hash, frontmatter_hash, body_hash)');
101
+ console.log(' - Build FTS5 index if available');
102
+ console.log('');
103
+ console.log('Manifest changes:');
104
+ console.log(' - Update pmem.schema_version: "0.3"');
105
+ console.log(' - Update pmem.protocol_version: "0.3"');
106
+ console.log(' - Add runtime block (mode: sqlite, db_path: .pmem/pmem.db)');
107
+ console.log(' - Add rebuild block (strategy: content_hash)');
108
+ console.log(' - Add cli block (default_format: compact)');
109
+ console.log(' - Add embedding block (enabled: false)');
110
+ console.log(' - Add serve block (enabled: false)');
111
+ console.log(' - Update indexes block (primary: sqlite, legacy_json retained)');
112
+ console.log('');
113
+ console.log('Legacy indexes:');
114
+ console.log(' - indexes/graph.json will be retained (legacy_json.retained: true)');
115
+ console.log(' - indexes/bm25.json will be retained');
116
+ console.log('');
117
+ console.log('Files affected:');
118
+ console.log(' - .pmem/manifest.yml (updated)');
119
+ console.log(' - .pmem/pmem.db (created)');
120
+ console.log(' - .pmem/backups/YYYY-MM-DD-before-v0.3/ (backup)');
121
+ console.log('');
122
+ console.log('No files changed. Run without --dry-run to apply.');
123
+ }
124
+ function executeMigration(pmemPath, manifest, from, to) {
125
+ if (from === '0.1' && to === '0.2') {
126
+ // Upgrade manifest to v0.2
127
+ const projectName = manifest.project?.name || path.basename(process.cwd());
128
+ const newManifest = (0, manifest_1.getDefaultManifest)(projectName, 'minimal');
129
+ // Preserve user-customized fields from old manifest
130
+ if (manifest.project?.name)
131
+ newManifest.project.name = manifest.project.name;
132
+ if (manifest.integrations?.active)
133
+ newManifest.integrations.active = manifest.integrations.active;
134
+ // Record migration
135
+ const migrationRecord = {
136
+ id: `core-${from}-to-${to}`,
137
+ applied_at: new Date().toISOString(),
138
+ cli_version: '0.2.0',
139
+ };
140
+ newManifest.migrations.applied = [migrationRecord];
141
+ newManifest.pmem.last_migrated_by = '0.2.0';
142
+ (0, manifest_1.saveManifest)(pmemPath, newManifest);
143
+ // Add schema_version to all existing cards
144
+ addSchemaVersionToCards(pmemPath);
145
+ console.log(`✓ Migration ${from} -> ${to} completed.`);
146
+ console.log(' Run `pmem rebuild` to update indexes.');
147
+ }
148
+ else if (from === '0.2' && to === '0.3') {
149
+ migrate02to03(pmemPath, manifest);
150
+ }
151
+ else {
152
+ console.log(`No migration path defined for ${from} -> ${to}.`);
153
+ }
154
+ }
155
+ // === v0.2 → v0.3 migration ===
156
+ function migrate02to03(pmemPath, manifest) {
157
+ const db = (0, db_1.openDatabase)(pmemPath);
158
+ (0, db_1.createSchema)(db);
159
+ (0, db_1.createFTS5)(db);
160
+ (0, db_1.setSchemaVersion)(db, '0.3');
161
+ // Rebuild from Markdown cards into SQLite
162
+ populateSqliteFromCards(pmemPath, db);
163
+ // Build v0.3 manifest
164
+ const projectName = manifest.project?.name || path.basename(process.cwd());
165
+ const newManifest = (0, manifest_1.getDefaultManifestV03)(projectName);
166
+ // Preserve user-customized fields from old manifest
167
+ if (manifest.project?.name)
168
+ newManifest.project.name = manifest.project.name;
169
+ if (manifest.project?.language)
170
+ newManifest.project.language = manifest.project.language;
171
+ if (manifest.project?.status)
172
+ newManifest.project.status = manifest.project.status;
173
+ if (manifest.memory_status)
174
+ newManifest.memory_status = manifest.memory_status;
175
+ if (manifest.card_policy)
176
+ newManifest.card_policy = manifest.card_policy;
177
+ if (manifest.auto_update)
178
+ newManifest.auto_update = manifest.auto_update;
179
+ if (manifest.freshness)
180
+ newManifest.freshness = manifest.freshness;
181
+ if (manifest.concurrency)
182
+ newManifest.concurrency = manifest.concurrency;
183
+ if (manifest.distill)
184
+ newManifest.distill = manifest.distill;
185
+ // Carry over integrations (copy full object to preserve registered integrations)
186
+ newManifest.integrations = {
187
+ ...manifest.integrations,
188
+ active: manifest.integrations?.active || [],
189
+ };
190
+ // Set migration metadata
191
+ newManifest.pmem.last_migrated_by = '0.3.0';
192
+ // Carry over existing migrations + append new one
193
+ const existingMigrations = manifest.migrations?.applied || [];
194
+ const migrationRecord = {
195
+ id: 'core-0.2-to-0.3',
196
+ applied_at: new Date().toISOString(),
197
+ cli_version: '0.3.0',
198
+ };
199
+ newManifest.migrations.applied = [...existingMigrations, migrationRecord];
200
+ (0, manifest_1.saveManifest)(pmemPath, newManifest);
201
+ (0, db_1.closeDatabase)();
202
+ console.log('✓ Migration 0.2 -> 0.3 completed.');
203
+ console.log(' SQLite database created at .pmem/pmem.db');
204
+ console.log(' Manifest updated to v0.3 schema.');
205
+ console.log(' Legacy JSON indexes retained at .pmem/indexes/');
206
+ }
207
+ function populateSqliteFromCards(pmemPath, db) {
208
+ const cardFiles = (0, fs_1.listFiles)(pmemPath, /\.md$/);
209
+ const now = new Date().toISOString();
210
+ let cardCount = 0;
211
+ let edgeCount = 0;
212
+ const migrateAll = db.transaction(() => {
213
+ for (const file of cardFiles) {
214
+ // Skip files in backups/, indexes/, integrations/
215
+ if (file.includes('/backups/') || file.includes('/indexes/') || file.includes('/integrations/'))
216
+ continue;
217
+ const content = (0, fs_1.readFile)(file);
218
+ if (!content)
219
+ continue;
220
+ const parsed = (0, yaml_1.parseFrontmatter)(content);
221
+ if (!parsed || !parsed.data.id)
222
+ continue;
223
+ const data = parsed.data;
224
+ const id = data.id;
225
+ const cardType = typeof data.type === 'string' ? data.type : 'module';
226
+ const status = typeof data.status === 'string' ? data.status : null;
227
+ const priority = typeof data.priority === 'string' ? data.priority : null;
228
+ const schemaVer = typeof data.schema_version === 'string' ? data.schema_version : null;
229
+ const cardVer = typeof data.version === 'number' ? data.version : 1;
230
+ const updatedAt = typeof data.updated === 'string' ? data.updated : null;
231
+ const lastVerifiedAt = typeof data.last_verified === 'string' ? data.last_verified : null;
232
+ // Extract title from first # heading in body
233
+ let title = id;
234
+ const titleMatch = parsed.body?.match(/^# (.+)$/m);
235
+ if (titleMatch) {
236
+ title = titleMatch[1].trim();
237
+ }
238
+ // Extract summary from first paragraph after title
239
+ let summary = null;
240
+ const summaryMatch = parsed.body?.match(/^# .+\n\n(.+)$/m);
241
+ if (summaryMatch) {
242
+ summary = summaryMatch[1].trim().substring(0, 200);
243
+ }
244
+ // Extract frontmatter text for hash computation
245
+ const fmMatch = content.match(/^---\n([\s\S]*?)\n---/);
246
+ const fmText = fmMatch ? fmMatch[1] : '';
247
+ const bodyText = parsed.body || '';
248
+ const hashes = (0, hash_1.computeCardHashes)(content, fmText, bodyText);
249
+ const tCount = (0, hash_1.tokenCount)(content);
250
+ const sCount = (0, hash_1.sectionCount)(bodyText);
251
+ // Determine if candidate card
252
+ const isCandidate = file.includes('/candidates/') ? 1 : 0;
253
+ // Relative path from cwd (consistent with rebuild.ts)
254
+ const relPath = path.relative(process.cwd(), file);
255
+ const cardRow = {
256
+ id,
257
+ type: cardType,
258
+ title,
259
+ status,
260
+ priority,
261
+ file_path: relPath,
262
+ summary,
263
+ schema_version: schemaVer,
264
+ card_version: cardVer,
265
+ created_at: now,
266
+ updated_at: updatedAt,
267
+ last_verified_at: lastVerifiedAt,
268
+ file_hash: hashes.fileHash,
269
+ frontmatter_hash: hashes.frontmatterHash,
270
+ body_hash: hashes.bodyHash,
271
+ token_count: tCount,
272
+ section_count: sCount,
273
+ is_deleted: 0,
274
+ is_candidate: isCandidate,
275
+ };
276
+ (0, db_1.upsertCard)(db, cardRow);
277
+ // Insert edges from depends_on
278
+ const dependsOn = toArray(data.depends_on);
279
+ for (const target of dependsOn) {
280
+ (0, db_1.insertEdge)(db, {
281
+ from_id: id,
282
+ to_id: target,
283
+ type: 'depends_on',
284
+ source: 'explicit',
285
+ confidence: 1.0,
286
+ created_at: now,
287
+ updated_at: now,
288
+ });
289
+ edgeCount++;
290
+ }
291
+ // Insert edges from related
292
+ const relatedIds = toArray(data.related);
293
+ for (const target of relatedIds) {
294
+ (0, db_1.insertEdge)(db, {
295
+ from_id: id,
296
+ to_id: target,
297
+ type: 'related_to',
298
+ source: 'explicit',
299
+ confidence: 1.0,
300
+ created_at: now,
301
+ updated_at: now,
302
+ });
303
+ edgeCount++;
304
+ }
305
+ // Insert aliases
306
+ const aliases = toArray(data.aliases);
307
+ for (const alias of aliases) {
308
+ (0, db_1.insertAlias)(db, id, alias);
309
+ }
310
+ // Insert tags
311
+ const tags = toArray(data.tags);
312
+ for (const tag of tags) {
313
+ (0, db_1.insertTag)(db, id, tag);
314
+ }
315
+ // Insert paths (source_files from frontmatter)
316
+ const sourceFiles = toArray(data.source_files);
317
+ for (const sf of sourceFiles) {
318
+ (0, db_1.insertPath)(db, id, sf, 'source');
319
+ }
320
+ // Also register the card's own file
321
+ (0, db_1.insertPath)(db, id, relPath, 'card_file');
322
+ cardCount++;
323
+ }
324
+ });
325
+ migrateAll();
326
+ console.log(` Imported ${cardCount} cards, ${edgeCount} edges into SQLite.`);
327
+ }
328
+ // === Helpers ===
329
+ function toArray(value) {
330
+ if (!value)
331
+ return [];
332
+ if (Array.isArray(value))
333
+ return value;
334
+ return [];
335
+ }
336
+ // === v0.1 → v0.2 helpers (preserved) ===
337
+ function createBackup(pmemPath, toVersion) {
338
+ const dateStr = new Date().toISOString().split('T')[0];
339
+ const backupDir = path.join(pmemPath, 'backups', `${dateStr}-before-v${toVersion}`);
340
+ (0, fs_1.ensureDir)(backupDir);
341
+ // Copy manifest
342
+ const manifestSrc = path.join(pmemPath, 'manifest.yml');
343
+ const manifestDst = path.join(backupDir, 'manifest.yml');
344
+ (0, fs_1.copyFile)(manifestSrc, manifestDst);
345
+ console.log(`✓ Backup created at ${backupDir}`);
346
+ }
347
+ function addSchemaVersionToCards(pmemPath) {
348
+ const cardFiles = (0, fs_1.listFiles)(pmemPath, /\.md$/);
349
+ let updated = 0;
350
+ for (const file of cardFiles) {
351
+ // Skip files in backups/, indexes/, integrations/
352
+ if (file.includes('/backups/') || file.includes('/indexes/') || file.includes('/integrations/'))
353
+ continue;
354
+ let content = (0, fs_1.readFile)(file);
355
+ if (!content)
356
+ continue;
357
+ // Check if card has frontmatter (starts with ---)
358
+ if (content.startsWith('---')) {
359
+ const endIdx = content.indexOf('---', 4);
360
+ if (endIdx > 0) {
361
+ const frontmatter = content.substring(4, endIdx);
362
+ // Only add if doesn't already have schema_version
363
+ if (!frontmatter.includes('schema_version:')) {
364
+ content = content.substring(0, 4) + 'schema_version: "0.2"\n' + content.substring(4);
365
+ (0, fs_1.atomicWrite)(file, content);
366
+ updated++;
367
+ }
368
+ }
369
+ }
370
+ }
371
+ if (updated > 0) {
372
+ console.log(` Added schema_version to ${updated} cards.`);
373
+ }
374
+ }
375
+ function countCards(pmemPath) {
376
+ const cardFiles = (0, fs_1.listFiles)(pmemPath, /\.md$/);
377
+ return cardFiles.filter(f => !f.includes('/backups/') && !f.includes('/indexes/') && !f.includes('/integrations/')).length;
378
+ }
379
+ //# sourceMappingURL=migrate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/commands/migrate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ interface RebuildOptions {
2
+ changed?: boolean;
3
+ full?: boolean;
4
+ card?: string;
5
+ }
6
+ export declare function rebuildCommand(options?: RebuildOptions): void;
7
+ export {};
8
+ //# sourceMappingURL=rebuild.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rebuild.d.ts","sourceRoot":"","sources":["../../src/commands/rebuild.ts"],"names":[],"mappings":"AAUA,UAAU,cAAc;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AASD,wBAAgB,cAAc,CAAC,OAAO,GAAE,cAAmB,GAAG,IAAI,CAgPjE"}