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.
- package/CHANGELOG.md +57 -0
- package/LICENSE +21 -0
- package/README.md +349 -0
- package/dist/commands/ask.d.ts +3 -0
- package/dist/commands/ask.d.ts.map +1 -0
- package/dist/commands/ask.js +303 -0
- package/dist/commands/ask.js.map +1 -0
- package/dist/commands/distill.d.ts +6 -0
- package/dist/commands/distill.d.ts.map +1 -0
- package/dist/commands/distill.js +425 -0
- package/dist/commands/distill.js.map +1 -0
- package/dist/commands/graph.d.ts +6 -0
- package/dist/commands/graph.d.ts.map +1 -0
- package/dist/commands/graph.js +216 -0
- package/dist/commands/graph.js.map +1 -0
- package/dist/commands/init.d.ts +5 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +566 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/integration.d.ts +2 -0
- package/dist/commands/integration.d.ts.map +1 -0
- package/dist/commands/integration.js +216 -0
- package/dist/commands/integration.js.map +1 -0
- package/dist/commands/migrate.d.ts +6 -0
- package/dist/commands/migrate.d.ts.map +1 -0
- package/dist/commands/migrate.js +379 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/commands/rebuild.d.ts +8 -0
- package/dist/commands/rebuild.d.ts.map +1 -0
- package/dist/commands/rebuild.js +299 -0
- package/dist/commands/rebuild.js.map +1 -0
- package/dist/commands/recall.d.ts +3 -0
- package/dist/commands/recall.d.ts.map +1 -0
- package/dist/commands/recall.js +140 -0
- package/dist/commands/recall.js.map +1 -0
- package/dist/commands/session.d.ts +3 -0
- package/dist/commands/session.d.ts.map +1 -0
- package/dist/commands/session.js +147 -0
- package/dist/commands/session.js.map +1 -0
- package/dist/commands/status.d.ts +5 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +275 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/update.d.ts +14 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +536 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/commands/verify.d.ts +4 -0
- package/dist/commands/verify.d.ts.map +1 -0
- package/dist/commands/verify.js +296 -0
- package/dist/commands/verify.js.map +1 -0
- package/dist/core/db.d.ts +47 -0
- package/dist/core/db.d.ts.map +1 -0
- package/dist/core/db.js +326 -0
- package/dist/core/db.js.map +1 -0
- package/dist/core/format.d.ts +3 -0
- package/dist/core/format.d.ts.map +1 -0
- package/dist/core/format.js +221 -0
- package/dist/core/format.js.map +1 -0
- package/dist/core/fs.d.ts +16 -0
- package/dist/core/fs.d.ts.map +1 -0
- package/dist/core/fs.js +175 -0
- package/dist/core/fs.js.map +1 -0
- package/dist/core/git.d.ts +6 -0
- package/dist/core/git.d.ts.map +1 -0
- package/dist/core/git.js +20 -0
- package/dist/core/git.js.map +1 -0
- package/dist/core/hash.d.ts +10 -0
- package/dist/core/hash.d.ts.map +1 -0
- package/dist/core/hash.js +25 -0
- package/dist/core/hash.js.map +1 -0
- package/dist/core/manifest.d.ts +6 -0
- package/dist/core/manifest.d.ts.map +1 -0
- package/dist/core/manifest.js +207 -0
- package/dist/core/manifest.js.map +1 -0
- package/dist/core/yaml.d.ts +11 -0
- package/dist/core/yaml.d.ts.map +1 -0
- package/dist/core/yaml.js +94 -0
- package/dist/core/yaml.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +167 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +351 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +4 -0
- package/dist/types.js.map +1 -0
- package/docs/Voorlopige projekidee.md +695 -0
- package/docs/handover-v0.3.md +355 -0
- package/docs/handover-v0.4.md +367 -0
- package/docs/prd.md +318 -0
- package/docs/project-roadmap.md +279 -0
- package/docs/release-checklist-v0.5.md +109 -0
- package/docs/v0.2 pre-design.md +182 -0
- package/docs/v0.2 pre-roadmap.md +270 -0
- package/docs/v0.3 pre-design.md +686 -0
- package/docs/v0.4 pre-design.md +417 -0
- package/docs/v0.5 pre-design.md +481 -0
- 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":"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"}
|
|
@@ -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 @@
|
|
|
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"}
|