pmem-ai 0.6.3 → 0.7.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 +44 -0
- package/README.md +56 -1
- package/dist/commands/ask.d.ts.map +1 -1
- package/dist/commands/ask.js +5 -1
- package/dist/commands/ask.js.map +1 -1
- package/dist/commands/distill.d.ts.map +1 -1
- package/dist/commands/distill.js +15 -6
- package/dist/commands/distill.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +21 -8
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/graph.d.ts.map +1 -1
- package/dist/commands/graph.js +7 -2
- package/dist/commands/graph.js.map +1 -1
- package/dist/commands/init.d.ts +13 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +142 -32
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/integration.d.ts.map +1 -1
- package/dist/commands/integration.js +170 -15
- package/dist/commands/integration.js.map +1 -1
- package/dist/commands/new.d.ts.map +1 -1
- package/dist/commands/new.js +15 -14
- package/dist/commands/new.js.map +1 -1
- package/dist/commands/rebuild.d.ts.map +1 -1
- package/dist/commands/rebuild.js +82 -13
- package/dist/commands/rebuild.js.map +1 -1
- package/dist/commands/recall.d.ts.map +1 -1
- package/dist/commands/recall.js +11 -5
- package/dist/commands/recall.js.map +1 -1
- package/dist/commands/rename.d.ts.map +1 -1
- package/dist/commands/rename.js +98 -19
- package/dist/commands/rename.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +31 -6
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/verify.d.ts.map +1 -1
- package/dist/commands/verify.js +5 -3
- package/dist/commands/verify.js.map +1 -1
- package/dist/core/discover/index.d.ts.map +1 -1
- package/dist/core/discover/index.js +15 -0
- package/dist/core/discover/index.js.map +1 -1
- package/dist/core/fs.d.ts +7 -0
- package/dist/core/fs.d.ts.map +1 -1
- package/dist/core/fs.js +57 -1
- package/dist/core/fs.js.map +1 -1
- package/dist/core/manifest.d.ts +23 -1
- package/dist/core/manifest.d.ts.map +1 -1
- package/dist/core/manifest.js +72 -0
- package/dist/core/manifest.js.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +32 -1
- package/dist/types.d.ts.map +1 -1
- package/docs/handover-v0.6.4.md +285 -0
- package/docs/project-roadmap.md +129 -4
- package/docs/release-checklist-v0.7.0.md +60 -0
- package/docs/session-start-create-design-eval.md +203 -0
- package/docs/usage.md +38 -0
- package/docs/v0.6.4 pre-design.md +526 -0
- package/docs/v0.7.0 pre-design.md +405 -0
- package/package.json +6 -3
- package/skills/pmem/SKILL.md +55 -7
- package/skills/pmem/references/first-init.md +21 -0
- package/skills/pmem/references/memory-cards.md +44 -1
- package/skills/pmem/references/session-workflow.md +3 -3
- package/skills/pmem/references/universal-domains.md +66 -0
package/dist/commands/recall.js
CHANGED
|
@@ -38,6 +38,7 @@ const path = __importStar(require("path"));
|
|
|
38
38
|
const fs_1 = require("../core/fs");
|
|
39
39
|
const db_1 = require("../core/db");
|
|
40
40
|
const format_1 = require("../core/format");
|
|
41
|
+
const manifest_1 = require("../core/manifest");
|
|
41
42
|
const PMEM_DIR = '.pmem';
|
|
42
43
|
function recallCommand(budget = 2000, format = 'compact', since) {
|
|
43
44
|
const cwd = process.cwd();
|
|
@@ -76,6 +77,9 @@ function recallCommand(budget = 2000, format = 'compact', since) {
|
|
|
76
77
|
const nextStep = nextContent
|
|
77
78
|
? extractField(nextContent, '## Recommended Next Step')
|
|
78
79
|
: 'No next step recorded.';
|
|
80
|
+
const manifest = (0, manifest_1.loadManifest)(pmemPath);
|
|
81
|
+
const config = manifest ? (0, manifest_1.resolveConfig)(manifest) : { foundational_types: ['module'] };
|
|
82
|
+
const foundationalTypes = config.foundational_types;
|
|
79
83
|
// Build result
|
|
80
84
|
const result = {
|
|
81
85
|
project: projectName || 'Unknown',
|
|
@@ -87,6 +91,7 @@ function recallCommand(budget = 2000, format = 'compact', since) {
|
|
|
87
91
|
dirty_flags_count: 0,
|
|
88
92
|
recent_updates: [],
|
|
89
93
|
active_modules: [],
|
|
94
|
+
active_foundation: [],
|
|
90
95
|
};
|
|
91
96
|
// Query SQLite for richer project info
|
|
92
97
|
try {
|
|
@@ -106,14 +111,15 @@ function recallCommand(budget = 2000, format = 'compact', since) {
|
|
|
106
111
|
const activeCards = sinceThreshold
|
|
107
112
|
? db.prepare("SELECT * FROM cards WHERE is_deleted = 0 AND is_candidate = 0 AND updated_at >= ?").all(sinceThreshold)
|
|
108
113
|
: db.prepare("SELECT * FROM cards WHERE is_deleted = 0 AND is_candidate = 0").all();
|
|
109
|
-
//
|
|
110
|
-
const
|
|
111
|
-
result.
|
|
114
|
+
// Foundational cards for recommendations
|
|
115
|
+
const foundationalCards = activeCards.filter(c => foundationalTypes.includes(c.type));
|
|
116
|
+
result.active_foundation = foundationalCards.map(c => c.file_path);
|
|
117
|
+
result.active_modules = result.active_foundation;
|
|
112
118
|
// Build mustRead list
|
|
113
119
|
result.mustRead.push(path.join('.pmem', 'state.md'));
|
|
114
120
|
result.mustRead.push(path.join('.pmem', 'next.md'));
|
|
115
|
-
for (const
|
|
116
|
-
result.mustRead.push(
|
|
121
|
+
for (const card of foundationalCards.slice(0, 5)) {
|
|
122
|
+
result.mustRead.push(card.file_path);
|
|
117
123
|
}
|
|
118
124
|
// Query unresolved dirty flags
|
|
119
125
|
const dirtyFlagResult = db.prepare("SELECT COUNT(*) as count FROM dirty_flags WHERE resolved_at IS NULL").get();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recall.js","sourceRoot":"","sources":["../../src/commands/recall.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"recall.js","sourceRoot":"","sources":["../../src/commands/recall.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rename.d.ts","sourceRoot":"","sources":["../../src/commands/rename.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rename.d.ts","sourceRoot":"","sources":["../../src/commands/rename.ts"],"names":[],"mappings":"AA8BA,wBAAgB,aAAa,CAAC,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAuK/F"}
|
package/dist/commands/rename.js
CHANGED
|
@@ -38,8 +38,12 @@ const path = __importStar(require("path"));
|
|
|
38
38
|
const fs = __importStar(require("fs"));
|
|
39
39
|
const manifest_1 = require("../core/manifest");
|
|
40
40
|
const fs_1 = require("../core/fs");
|
|
41
|
+
const yaml_1 = require("../core/yaml");
|
|
41
42
|
const rebuild_1 = require("./rebuild");
|
|
42
43
|
const PMEM_DIR = '.pmem';
|
|
44
|
+
// v0.6.4 polish 8: list-style frontmatter fields scanned in --dry-run mode.
|
|
45
|
+
// --write mode does NOT modify these (v0.6.2 safety semantics preserved).
|
|
46
|
+
const FRONTMATTER_LIST_FIELDS = ['aliases', 'tags', 'related', 'depends_on'];
|
|
43
47
|
function renameCommand(options) {
|
|
44
48
|
const cwd = process.cwd();
|
|
45
49
|
const pmemPath = path.join(cwd, PMEM_DIR);
|
|
@@ -86,26 +90,65 @@ function renameCommand(options) {
|
|
|
86
90
|
const content = (0, fs_1.readFile)(filePath);
|
|
87
91
|
if (!content)
|
|
88
92
|
continue;
|
|
89
|
-
const {
|
|
93
|
+
const { body, fmEndIndex } = splitFrontmatter(content);
|
|
90
94
|
if (body === null)
|
|
91
95
|
continue; // No valid frontmatter, skip
|
|
92
96
|
const newBody = body.split(findPattern).join(replaceText);
|
|
93
|
-
|
|
97
|
+
const bodyChanged = newBody !== body;
|
|
98
|
+
// v0.6.4 polish 8: scan list-style frontmatter fields (dry-run only).
|
|
99
|
+
// These are reported as hits regardless of body changes, so users
|
|
100
|
+
// see the full rename picture before deciding to manually edit
|
|
101
|
+
// frontmatter (since --write never touches frontmatter).
|
|
102
|
+
const frontmatterHits = collectFrontmatterHits(content, findPattern, replaceText);
|
|
103
|
+
if (bodyChanged) {
|
|
94
104
|
const occurrences = (body.match(new RegExp(escapeRegExp(findPattern), 'g')) || []).length;
|
|
95
105
|
totalOccurrences += occurrences;
|
|
96
106
|
const relPath = path.relative(cwd, filePath);
|
|
97
|
-
changes.push({
|
|
107
|
+
changes.push({
|
|
108
|
+
file: relPath,
|
|
109
|
+
bodyCount: occurrences,
|
|
110
|
+
oldBody: body,
|
|
111
|
+
newBody,
|
|
112
|
+
fmEndIndex,
|
|
113
|
+
frontmatterHits,
|
|
114
|
+
bodyChanged: true,
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
else if (frontmatterHits.length > 0) {
|
|
118
|
+
// Body unchanged, but frontmatter has hits — still report the file in dry-run
|
|
119
|
+
// so users know they need to manually edit those fields.
|
|
120
|
+
const relPath = path.relative(cwd, filePath);
|
|
121
|
+
changes.push({
|
|
122
|
+
file: relPath,
|
|
123
|
+
bodyCount: 0,
|
|
124
|
+
oldBody: body,
|
|
125
|
+
newBody: body,
|
|
126
|
+
fmEndIndex,
|
|
127
|
+
frontmatterHits,
|
|
128
|
+
bodyChanged: false,
|
|
129
|
+
});
|
|
98
130
|
}
|
|
99
131
|
}
|
|
100
132
|
if (changes.length === 0) {
|
|
101
|
-
console.log(`No matches found for "${findPattern}" in card bodies.`);
|
|
133
|
+
console.log(`No matches found for "${findPattern}" in card bodies or frontmatter.`);
|
|
102
134
|
return;
|
|
103
135
|
}
|
|
104
136
|
// Preview mode (default)
|
|
105
137
|
if (!isWrite) {
|
|
106
|
-
|
|
138
|
+
const totalFmHits = changes.reduce((sum, c) => sum + c.frontmatterHits.length, 0);
|
|
139
|
+
const bodyOnlyCount = changes.filter(c => c.bodyChanged).length;
|
|
140
|
+
if (totalFmHits > 0) {
|
|
141
|
+
console.log(`Preview: ${bodyOnlyCount} file(s) would have body changed, ${totalOccurrences} body occurrence(s) would be replaced.`);
|
|
142
|
+
console.log(`Plus ${totalFmHits} frontmatter hit(s) across ${changes.length} file(s) (preview only; --write does NOT modify frontmatter).\n`);
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
console.log(`Preview: ${bodyOnlyCount} file(s) would be changed, ${totalOccurrences} occurrence(s) would be replaced.\n`);
|
|
146
|
+
}
|
|
107
147
|
for (const change of changes) {
|
|
108
|
-
|
|
148
|
+
const label = change.bodyChanged
|
|
149
|
+
? `${change.file} (${change.bodyCount} body occurrence(s))`
|
|
150
|
+
: `${change.file} (no body change; frontmatter only)`;
|
|
151
|
+
console.log(`--- ${label}`);
|
|
109
152
|
// Show first diff hunk
|
|
110
153
|
const oldLines = change.oldBody.split('\n');
|
|
111
154
|
const newLines = change.newBody.split('\n');
|
|
@@ -123,6 +166,13 @@ function renameCommand(options) {
|
|
|
123
166
|
if (oldLines.length > 10 || newLines.length > 10) {
|
|
124
167
|
console.log(` ... (${Math.abs(oldLines.length - 10)} more lines)`);
|
|
125
168
|
}
|
|
169
|
+
// v0.6.4 polish 8: frontmatter diff preview
|
|
170
|
+
if (change.frontmatterHits.length > 0) {
|
|
171
|
+
console.log(' Frontmatter hits (preview only; --write does NOT modify frontmatter):');
|
|
172
|
+
for (const hit of change.frontmatterHits) {
|
|
173
|
+
console.log(` Frontmatter.${hit.field}: ${hit.field} #${hit.index} "${hit.oldValue}" -> "${hit.newValue}"`);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
126
176
|
console.log('');
|
|
127
177
|
}
|
|
128
178
|
console.log('Add --write to apply these changes.');
|
|
@@ -130,22 +180,25 @@ function renameCommand(options) {
|
|
|
130
180
|
}
|
|
131
181
|
// Write mode
|
|
132
182
|
for (const change of changes) {
|
|
183
|
+
if (!change.bodyChanged)
|
|
184
|
+
continue; // Only frontmatter hits — --write does not touch frontmatter.
|
|
133
185
|
const absPath = path.join(cwd, change.file);
|
|
134
186
|
const content = (0, fs_1.readFile)(absPath);
|
|
135
187
|
if (!content)
|
|
136
188
|
continue;
|
|
137
|
-
|
|
138
|
-
//
|
|
139
|
-
const
|
|
140
|
-
if (
|
|
141
|
-
continue;
|
|
142
|
-
|
|
143
|
-
//
|
|
144
|
-
//
|
|
145
|
-
|
|
189
|
+
// Re-validate frontmatter; use freshly-parsed fmEndIndex to reconstruct.
|
|
190
|
+
// (This protects against concurrent edits between pass 1 and pass 2.)
|
|
191
|
+
const { fmEndIndex } = splitFrontmatter(content);
|
|
192
|
+
if (fmEndIndex === 0)
|
|
193
|
+
continue; // No valid frontmatter now, skip
|
|
194
|
+
// v0.6.4 polish 1: preserve original body whitespace exactly.
|
|
195
|
+
// The newBody already contains the original frontmatter-end to body-start bytes
|
|
196
|
+
// (whatever they were: \n\n, single \n, or none), because splitFrontmatter no
|
|
197
|
+
// longer calls .trimStart(). So we reconstruct without inserting any separator.
|
|
198
|
+
const newContent = content.substring(0, fmEndIndex) + change.newBody;
|
|
146
199
|
(0, fs_1.atomicWrite)(absPath, newContent);
|
|
147
200
|
}
|
|
148
|
-
console.log(`${changes.length} file(s) changed, ${totalOccurrences} occurrence(s) replaced.`);
|
|
201
|
+
console.log(`${changes.filter(c => c.bodyChanged).length} file(s) changed, ${totalOccurrences} occurrence(s) replaced.`);
|
|
149
202
|
console.log('Rebuilding indexes...');
|
|
150
203
|
(0, rebuild_1.rebuildCommand)({ changed: true });
|
|
151
204
|
console.log('Done. Run `pmem verify` to check consistency.');
|
|
@@ -153,9 +206,35 @@ function renameCommand(options) {
|
|
|
153
206
|
function splitFrontmatter(content) {
|
|
154
207
|
const match = content.match(/^---\n([\s\S]*?)\n---/);
|
|
155
208
|
if (!match)
|
|
156
|
-
return { frontmatter: null, body: null };
|
|
157
|
-
const
|
|
158
|
-
|
|
209
|
+
return { frontmatter: null, body: null, fmEndIndex: 0 };
|
|
210
|
+
const fmEndIndex = match.index + match[0].length;
|
|
211
|
+
// v0.6.4 polish 1: preserve original body bytes — do NOT trim leading whitespace.
|
|
212
|
+
// The body string is exactly content.substring(fmEndIndex) so the
|
|
213
|
+
// frontmatter-to-body separator (typically "\n\n", but may be anything) is kept
|
|
214
|
+
// byte-for-byte and can be reconstructed on write.
|
|
215
|
+
const body = content.substring(fmEndIndex);
|
|
216
|
+
return { frontmatter: match[1], body, fmEndIndex };
|
|
217
|
+
}
|
|
218
|
+
// v0.6.4 polish 8: scan list-style frontmatter fields for find/replace hits.
|
|
219
|
+
// Used only for --dry-run output. --write mode never modifies frontmatter.
|
|
220
|
+
function collectFrontmatterHits(content, findPattern, replaceText) {
|
|
221
|
+
const fm = (0, yaml_1.parseFrontmatter)(content);
|
|
222
|
+
if (!fm)
|
|
223
|
+
return [];
|
|
224
|
+
const hits = [];
|
|
225
|
+
for (const field of FRONTMATTER_LIST_FIELDS) {
|
|
226
|
+
const arr = fm.data[field];
|
|
227
|
+
if (Array.isArray(arr)) {
|
|
228
|
+
for (let i = 0; i < arr.length; i++) {
|
|
229
|
+
const item = arr[i];
|
|
230
|
+
if (typeof item === 'string' && item.includes(findPattern)) {
|
|
231
|
+
const newItem = item.split(findPattern).join(replaceText);
|
|
232
|
+
hits.push({ field, index: i, oldValue: item, newValue: newItem });
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
return hits;
|
|
159
238
|
}
|
|
160
239
|
function collectMdFiles(dir, results) {
|
|
161
240
|
if (!fs.existsSync(dir))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rename.js","sourceRoot":"","sources":["../../src/commands/rename.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"rename.js","sourceRoot":"","sources":["../../src/commands/rename.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AA2DA,wBAAgB,aAAa,CAAC,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAoJhF"}
|
package/dist/commands/status.js
CHANGED
|
@@ -39,6 +39,7 @@ const child_process_1 = require("child_process");
|
|
|
39
39
|
const fs_1 = require("../core/fs");
|
|
40
40
|
const db_1 = require("../core/db");
|
|
41
41
|
const git_1 = require("../core/git");
|
|
42
|
+
const manifest_1 = require("../core/manifest");
|
|
42
43
|
const MATCH_PRIORITY = {
|
|
43
44
|
exact: 3,
|
|
44
45
|
directory: 2,
|
|
@@ -217,7 +218,20 @@ function detectChangesFrom() {
|
|
|
217
218
|
}
|
|
218
219
|
function getChangedFiles(cwd, since) {
|
|
219
220
|
const changes = [];
|
|
220
|
-
const
|
|
221
|
+
const pmemPath = path.join(cwd, '.pmem');
|
|
222
|
+
const manifest = (0, manifest_1.loadManifest)(pmemPath);
|
|
223
|
+
const config = manifest ? (0, manifest_1.resolveConfig)(manifest) : null;
|
|
224
|
+
const userSkipDirs = manifest?.change_detection?.skip_dirs || [];
|
|
225
|
+
const systemSkips = [
|
|
226
|
+
'node_modules', '.git', 'dist', 'build', '.claude',
|
|
227
|
+
'.pmem/pmem.db', '.pmem/indexes', '.pmem/.lock',
|
|
228
|
+
'.pmem/skills', '.pmem/candidates', '.pmem/summaries',
|
|
229
|
+
'.pmem/.last-status'
|
|
230
|
+
];
|
|
231
|
+
// Backward compatibility: if not a schema-based project, keep old behavior
|
|
232
|
+
const skipDirs = manifest && manifest.schema
|
|
233
|
+
? Array.from(new Set([...userSkipDirs, ...systemSkips]))
|
|
234
|
+
: ['node_modules', '.git', '.pmem', 'dist', 'build', '.claude'];
|
|
221
235
|
try {
|
|
222
236
|
const source = detectChangesFrom();
|
|
223
237
|
if (source === 'git') {
|
|
@@ -235,13 +249,24 @@ function getChangedFiles(cwd, since) {
|
|
|
235
249
|
// Mtime-based fallback
|
|
236
250
|
const lastStatusFile = path.join(cwd, '.pmem', '.last-status');
|
|
237
251
|
const lastCheck = since ? new Date(since).getTime() : ((0, fs_1.getFileMtime)(lastStatusFile) || 0);
|
|
238
|
-
|
|
239
|
-
|
|
252
|
+
const defaultScanDirs = ['src', 'lib', 'app', 'tests'];
|
|
253
|
+
const mtimeScanDirs = manifest?.change_detection?.mtime_scan_dirs || defaultScanDirs;
|
|
254
|
+
// 1. Scan default/custom source directories
|
|
255
|
+
for (const dir of mtimeScanDirs) {
|
|
240
256
|
const dirPath = path.join(cwd, dir);
|
|
241
257
|
if (!(0, fs_1.fileExists)(dirPath))
|
|
242
258
|
continue;
|
|
243
259
|
scanDirMtime(dirPath, cwd, lastCheck, skipDirs, changes);
|
|
244
260
|
}
|
|
261
|
+
// 2. Scan card directories under .pmem
|
|
262
|
+
if (config) {
|
|
263
|
+
for (const dir of Object.values(config.type_dirs)) {
|
|
264
|
+
const dirPath = path.join(cwd, '.pmem', dir);
|
|
265
|
+
if (!(0, fs_1.fileExists)(dirPath))
|
|
266
|
+
continue;
|
|
267
|
+
scanDirMtime(dirPath, cwd, lastCheck, skipDirs, changes);
|
|
268
|
+
}
|
|
269
|
+
}
|
|
245
270
|
// Update .last-status
|
|
246
271
|
(0, fs_1.writeFile)(lastStatusFile, new Date().toISOString());
|
|
247
272
|
return changes;
|
|
@@ -252,16 +277,16 @@ function scanDirMtime(dirPath, cwd, since, skipDirs, changes) {
|
|
|
252
277
|
const entries = fs.readdirSync(dirPath, { withFileTypes: true });
|
|
253
278
|
for (const entry of entries) {
|
|
254
279
|
const fullPath = path.join(dirPath, entry.name);
|
|
280
|
+
const relPath = path.relative(cwd, fullPath);
|
|
281
|
+
if (skipDirs.some(d => relPath.startsWith(d + '/') || relPath === d))
|
|
282
|
+
continue;
|
|
255
283
|
if (entry.isDirectory()) {
|
|
256
|
-
if (skipDirs.includes(entry.name))
|
|
257
|
-
continue;
|
|
258
284
|
scanDirMtime(fullPath, cwd, since, skipDirs, changes);
|
|
259
285
|
}
|
|
260
286
|
else if (entry.isFile()) {
|
|
261
287
|
try {
|
|
262
288
|
const stat = fs.statSync(fullPath);
|
|
263
289
|
if (stat.mtimeMs > since) {
|
|
264
|
-
const relPath = path.relative(cwd, fullPath);
|
|
265
290
|
changes.push({ path: relPath, status: 'M', relatedCards: [] });
|
|
266
291
|
}
|
|
267
292
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../src/commands/verify.ts"],"names":[],"mappings":"AAYA,wBAAgB,aAAa,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../src/commands/verify.ts"],"names":[],"mappings":"AAYA,wBAAgB,aAAa,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CA+SrG"}
|
package/dist/commands/verify.js
CHANGED
|
@@ -198,15 +198,17 @@ function verifyCommand(options) {
|
|
|
198
198
|
// 6. Card policy checks
|
|
199
199
|
if (manifest.card_policy) {
|
|
200
200
|
const policy = manifest.card_policy;
|
|
201
|
-
// 6a. ID naming pattern
|
|
202
|
-
const
|
|
201
|
+
// 6a. ID naming pattern — v0.7.0: render {types} placeholder if present
|
|
202
|
+
const config = (0, manifest_1.resolveConfig)(manifest);
|
|
203
|
+
const renderedPattern = (0, manifest_1.renderIdPattern)(policy.id_pattern, config.card_types);
|
|
204
|
+
const idRegex = new RegExp(renderedPattern);
|
|
203
205
|
for (const card of cards) {
|
|
204
206
|
if (!idRegex.test(card.id)) {
|
|
205
207
|
issues.push({
|
|
206
208
|
severity: 'warning',
|
|
207
209
|
type: 'card_id_violation',
|
|
208
210
|
message: `Card "${card.id}" does not match naming pattern.`,
|
|
209
|
-
fix: `Rename card ID to match: ${
|
|
211
|
+
fix: `Rename card ID to match: ${renderedPattern}`,
|
|
210
212
|
});
|
|
211
213
|
}
|
|
212
214
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/commands/verify.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,
|
|
1
|
+
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/commands/verify.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/discover/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/discover/index.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAMV,SAAS,EACV,MAAM,aAAa,CAAC;AAsBrB;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE;IACvC,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,IAAI,CAmRP"}
|
|
@@ -36,6 +36,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
36
36
|
exports.discoverCommand = discoverCommand;
|
|
37
37
|
const path = __importStar(require("path"));
|
|
38
38
|
const fs_1 = require("../fs");
|
|
39
|
+
const manifest_1 = require("../manifest");
|
|
39
40
|
const db_1 = require("../db");
|
|
40
41
|
const patterns_1 = require("./patterns");
|
|
41
42
|
const detect_1 = require("./detect");
|
|
@@ -51,6 +52,20 @@ function discoverCommand(options) {
|
|
|
51
52
|
console.log('No .pmem directory found. Run `pmem init` first.');
|
|
52
53
|
process.exit(2);
|
|
53
54
|
}
|
|
55
|
+
const manifest = (0, manifest_1.loadManifest)(pmemPath);
|
|
56
|
+
const isDiscoverEnabled = manifest && manifest.discover?.enabled === false ? false : true;
|
|
57
|
+
if (!isDiscoverEnabled) {
|
|
58
|
+
if (options.format === 'json') {
|
|
59
|
+
console.log(JSON.stringify({
|
|
60
|
+
enabled: false,
|
|
61
|
+
reason: 'discover disabled in this project'
|
|
62
|
+
}, null, 2));
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
console.log('discover disabled in this project');
|
|
66
|
+
}
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
54
69
|
const dbPath = path.join(pmemPath, 'pmem.db');
|
|
55
70
|
if (!(0, fs_1.fileExists)(dbPath)) {
|
|
56
71
|
console.log('No SQLite database found. Run `pmem rebuild` first.');
|