pmem-ai 0.7.3 → 0.7.4
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 +15 -0
- package/README.md +29 -27
- package/dist/commands/capture.d.ts +8 -0
- package/dist/commands/capture.d.ts.map +1 -0
- package/dist/commands/capture.js +69 -0
- package/dist/commands/capture.js.map +1 -0
- package/dist/commands/context.d.ts +5 -0
- package/dist/commands/context.d.ts.map +1 -0
- package/dist/commands/context.js +109 -0
- package/dist/commands/context.js.map +1 -0
- package/dist/commands/install.d.ts +5 -0
- package/dist/commands/install.d.ts.map +1 -1
- package/dist/commands/install.js +54 -35
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/mcp.d.ts +1 -1
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +2 -2
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/verify.d.ts +1 -0
- package/dist/commands/verify.d.ts.map +1 -1
- package/dist/commands/verify.js +6 -3
- package/dist/commands/verify.js.map +1 -1
- package/dist/core/agentRules.d.ts +13 -0
- package/dist/core/agentRules.d.ts.map +1 -0
- package/dist/core/agentRules.js +131 -0
- package/dist/core/agentRules.js.map +1 -0
- package/dist/core/capture.d.ts +15 -0
- package/dist/core/capture.d.ts.map +1 -0
- package/dist/core/capture.js +380 -0
- package/dist/core/capture.js.map +1 -0
- package/dist/core/query/context.d.ts +3 -0
- package/dist/core/query/context.d.ts.map +1 -0
- package/dist/core/query/context.js +158 -0
- package/dist/core/query/context.js.map +1 -0
- package/dist/index.js +46 -4
- package/dist/index.js.map +1 -1
- package/dist/mcp/security.d.ts +4 -0
- package/dist/mcp/security.d.ts.map +1 -1
- package/dist/mcp/security.js +35 -0
- package/dist/mcp/security.js.map +1 -1
- package/dist/mcp/server.d.ts +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +73 -5
- package/dist/mcp/server.js.map +1 -1
- package/dist/types.d.ts +31 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +5 -2
- package/skills/pmem/SKILL.md +11 -19
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
interface InstallRulesOptions {
|
|
2
|
+
claude?: boolean;
|
|
3
|
+
codex?: boolean;
|
|
4
|
+
gemini?: boolean;
|
|
5
|
+
cursor?: boolean;
|
|
6
|
+
cline?: boolean;
|
|
7
|
+
aider?: boolean;
|
|
8
|
+
windsurf?: boolean;
|
|
9
|
+
all?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export declare function writeAgentRules(cwd: string, options: InstallRulesOptions): string[];
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=agentRules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentRules.d.ts","sourceRoot":"","sources":["../../src/core/agentRules.ts"],"names":[],"mappings":"AA0BA,UAAU,mBAAmB;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,MAAM,EAAE,CA4EnF"}
|
|
@@ -0,0 +1,131 @@
|
|
|
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.writeAgentRules = writeAgentRules;
|
|
37
|
+
const path = __importStar(require("path"));
|
|
38
|
+
const fs_1 = require("./fs");
|
|
39
|
+
const RULES_CONTENT = `<!-- pmem:rules:start -->
|
|
40
|
+
# pmem Guidelines
|
|
41
|
+
|
|
42
|
+
Before editing files or starting a task, run:
|
|
43
|
+
\`pmem context "<task description>"\`
|
|
44
|
+
|
|
45
|
+
After completing a task or editing files, run:
|
|
46
|
+
\`pmem capture --auto\`
|
|
47
|
+
|
|
48
|
+
Rules:
|
|
49
|
+
- Do not manually edit .pmem core cards (e.g. decisions, modules) unless explicitly requested.
|
|
50
|
+
- Keep capture summaries short and factual.
|
|
51
|
+
- Prefer using \`pmem context\` over ad-hoc repo scanning.
|
|
52
|
+
<!-- pmem:rules:end -->`;
|
|
53
|
+
const CURSOR_MDC_CONTENT = `---
|
|
54
|
+
description: Use pmem project memory during coding tasks
|
|
55
|
+
alwaysApply: true
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
${RULES_CONTENT}`;
|
|
59
|
+
function writeAgentRules(cwd, options) {
|
|
60
|
+
const installed = [];
|
|
61
|
+
const targets = [
|
|
62
|
+
{ name: 'AGENTS.md', filePath: path.join(cwd, 'AGENTS.md') },
|
|
63
|
+
{ name: 'CLAUDE.md', filePath: path.join(cwd, 'CLAUDE.md') },
|
|
64
|
+
{ name: 'GEMINI.md', filePath: path.join(cwd, 'GEMINI.md') },
|
|
65
|
+
{ name: '.codex/instructions.md', filePath: path.join(cwd, '.codex', 'instructions.md') },
|
|
66
|
+
{ name: '.cursor/rules/pmem.mdc', filePath: path.join(cwd, '.cursor/rules/pmem.mdc'), isMdc: true },
|
|
67
|
+
{ name: '.clinerules/pmem.md', filePath: path.join(cwd, '.clinerules/pmem.md') },
|
|
68
|
+
// Opt-ins
|
|
69
|
+
{ name: 'CONVENTIONS.md (Aider)', filePath: path.join(cwd, 'CONVENTIONS.md'), optIn: true },
|
|
70
|
+
{ name: '.windsurfrules', filePath: path.join(cwd, '.windsurfrules'), optIn: true }
|
|
71
|
+
];
|
|
72
|
+
// Determine which files to write based on flags
|
|
73
|
+
const selectedTargets = targets.filter(t => {
|
|
74
|
+
// AGENTS.md is always written if we are running agentRules
|
|
75
|
+
if (t.name === 'AGENTS.md')
|
|
76
|
+
return true;
|
|
77
|
+
// Aider and Windsurf are strictly opt-in and NEVER written via --all
|
|
78
|
+
if (t.name === 'CONVENTIONS.md (Aider)')
|
|
79
|
+
return !!options.aider;
|
|
80
|
+
if (t.name === '.windsurfrules')
|
|
81
|
+
return !!options.windsurf;
|
|
82
|
+
// For all other targets, they are written if --all is passed or their specific flag is passed
|
|
83
|
+
if (options.all)
|
|
84
|
+
return true;
|
|
85
|
+
if (t.name === 'CLAUDE.md')
|
|
86
|
+
return !!options.claude;
|
|
87
|
+
if (t.name === 'GEMINI.md')
|
|
88
|
+
return !!options.gemini;
|
|
89
|
+
if (t.name === '.codex/instructions.md')
|
|
90
|
+
return !!options.codex;
|
|
91
|
+
if (t.name === '.cursor/rules/pmem.mdc')
|
|
92
|
+
return !!options.cursor;
|
|
93
|
+
if (t.name === '.clinerules/pmem.md')
|
|
94
|
+
return !!options.cline;
|
|
95
|
+
return false;
|
|
96
|
+
});
|
|
97
|
+
for (const target of selectedTargets) {
|
|
98
|
+
try {
|
|
99
|
+
const dir = path.dirname(target.filePath);
|
|
100
|
+
(0, fs_1.ensureDir)(dir);
|
|
101
|
+
const contentToWrite = target.isMdc ? CURSOR_MDC_CONTENT : RULES_CONTENT;
|
|
102
|
+
if ((0, fs_1.fileExists)(target.filePath)) {
|
|
103
|
+
const existing = (0, fs_1.readFile)(target.filePath) || '';
|
|
104
|
+
const startMarker = '<!-- pmem:rules:start -->';
|
|
105
|
+
const endMarker = '<!-- pmem:rules:end -->';
|
|
106
|
+
const startIndex = existing.indexOf(startMarker);
|
|
107
|
+
const endIndex = existing.indexOf(endMarker);
|
|
108
|
+
if (startIndex >= 0 && endIndex >= 0 && endIndex > startIndex) {
|
|
109
|
+
const updated = existing.substring(0, startIndex) +
|
|
110
|
+
contentToWrite +
|
|
111
|
+
existing.substring(endIndex + endMarker.length);
|
|
112
|
+
(0, fs_1.writeFile)(target.filePath, updated);
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
// Append rules at the end
|
|
116
|
+
const spacer = existing.endsWith('\n') ? '' : '\n';
|
|
117
|
+
(0, fs_1.writeFile)(target.filePath, `${existing}${spacer}\n${contentToWrite}\n`);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
(0, fs_1.writeFile)(target.filePath, contentToWrite + '\n');
|
|
122
|
+
}
|
|
123
|
+
installed.push(target.name);
|
|
124
|
+
}
|
|
125
|
+
catch (err) {
|
|
126
|
+
console.error(`Failed to write agent rules to ${target.name}: ${err.message}`);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return installed;
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=agentRules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentRules.js","sourceRoot":"","sources":["../../src/core/agentRules.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface CaptureOptions {
|
|
2
|
+
auto?: boolean;
|
|
3
|
+
summary?: string;
|
|
4
|
+
next?: string;
|
|
5
|
+
full?: boolean;
|
|
6
|
+
force?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export interface CaptureResult {
|
|
9
|
+
success: boolean;
|
|
10
|
+
message: string;
|
|
11
|
+
tracePath?: string;
|
|
12
|
+
skipped?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export declare function captureCore(pmemPath: string, options?: CaptureOptions): CaptureResult;
|
|
15
|
+
//# sourceMappingURL=capture.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capture.d.ts","sourceRoot":"","sources":["../../src/core/capture.ts"],"names":[],"mappings":"AAoBA,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,aAAa,CA+WzF"}
|
|
@@ -0,0 +1,380 @@
|
|
|
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.captureCore = captureCore;
|
|
37
|
+
const path = __importStar(require("path"));
|
|
38
|
+
const fs = __importStar(require("fs"));
|
|
39
|
+
const crypto = __importStar(require("crypto"));
|
|
40
|
+
const child_process_1 = require("child_process");
|
|
41
|
+
const fs_1 = require("./fs");
|
|
42
|
+
const manifest_1 = require("./manifest");
|
|
43
|
+
const rebuild_1 = require("../commands/rebuild");
|
|
44
|
+
const verify_1 = require("../commands/verify");
|
|
45
|
+
const db_1 = require("./db");
|
|
46
|
+
const status_1 = require("./query/status");
|
|
47
|
+
function captureCore(pmemPath, options = {}) {
|
|
48
|
+
const cwd = process.cwd();
|
|
49
|
+
if (!(0, fs_1.fileExists)(pmemPath)) {
|
|
50
|
+
return {
|
|
51
|
+
success: false,
|
|
52
|
+
message: 'No .pmem directory found. Run pmem init first.'
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
// 1. Detect changed files
|
|
56
|
+
let status;
|
|
57
|
+
try {
|
|
58
|
+
status = (0, status_1.statusQuery)(pmemPath);
|
|
59
|
+
}
|
|
60
|
+
catch (err) {
|
|
61
|
+
return {
|
|
62
|
+
success: false,
|
|
63
|
+
message: `Failed to detect changes: ${err.message}`
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
const changedFiles = (status.changes || []).filter(f => !f.path.startsWith('.pmem/') && !f.path.startsWith('.pmem\\') && f.path !== '.pmem');
|
|
67
|
+
if (changedFiles.length === 0 && !options.force) {
|
|
68
|
+
return {
|
|
69
|
+
success: true,
|
|
70
|
+
message: 'No changed files detected. Memory is up-to-date.',
|
|
71
|
+
skipped: true
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
// 2. Compute git/mtime diff hash for duplicate check
|
|
75
|
+
let diffHash = '';
|
|
76
|
+
try {
|
|
77
|
+
const isGit = (() => {
|
|
78
|
+
try {
|
|
79
|
+
(0, child_process_1.execSync)('git rev-parse --git-dir', { cwd, stdio: 'ignore' });
|
|
80
|
+
return true;
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
return false;
|
|
84
|
+
}
|
|
85
|
+
})();
|
|
86
|
+
if (isGit) {
|
|
87
|
+
const statusOutput = (0, child_process_1.execSync)("git status --porcelain --untracked-files=all -- . ':!.pmem'", { cwd, encoding: 'utf8', timeout: 5000 });
|
|
88
|
+
const diffOutput = (0, child_process_1.execSync)("git diff HEAD -- . ':!.pmem'", { cwd, encoding: 'utf8', timeout: 5000 });
|
|
89
|
+
const untrackedHashes = changedFiles
|
|
90
|
+
.filter(f => f.status.includes('?') || f.status === '??')
|
|
91
|
+
.map(f => {
|
|
92
|
+
const fullPath = path.join(cwd, f.path);
|
|
93
|
+
if (!(0, fs_1.fileExists)(fullPath))
|
|
94
|
+
return `${f.path}:missing`;
|
|
95
|
+
try {
|
|
96
|
+
const content = fs.readFileSync(fullPath);
|
|
97
|
+
return `${f.path}:${crypto.createHash('sha256').update(content).digest('hex')}`;
|
|
98
|
+
}
|
|
99
|
+
catch {
|
|
100
|
+
return `${f.path}:error`;
|
|
101
|
+
}
|
|
102
|
+
})
|
|
103
|
+
.join('\n');
|
|
104
|
+
const combined = [
|
|
105
|
+
statusOutput,
|
|
106
|
+
diffOutput,
|
|
107
|
+
untrackedHashes
|
|
108
|
+
].join('\n---pmem-diff-boundary---');
|
|
109
|
+
diffHash = crypto.createHash('sha256').update(combined).digest('hex');
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
// Fallback mtime-based hash of changed files and mtimes
|
|
113
|
+
const mtimeList = changedFiles.map(c => {
|
|
114
|
+
const fullPath = path.join(cwd, c.path);
|
|
115
|
+
const mtime = (0, fs_1.fileExists)(fullPath) ? (0, fs_1.getFileMtime)(fullPath) || 0 : 0;
|
|
116
|
+
return `${c.path}:${mtime}:${c.status}`;
|
|
117
|
+
}).join('\n');
|
|
118
|
+
diffHash = crypto.createHash('sha256').update(mtimeList).digest('hex');
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
catch (err) {
|
|
122
|
+
// If diff computation fails, we use a fallback hash based on file names only
|
|
123
|
+
const fallbackList = changedFiles.map(c => `${c.path}:${c.status}`).join('\n');
|
|
124
|
+
diffHash = crypto.createHash('sha256').update(fallbackList).digest('hex');
|
|
125
|
+
}
|
|
126
|
+
// 3. Find the latest trace card and check its diff_hash
|
|
127
|
+
const traceDir = path.resolve(pmemPath, 'traces');
|
|
128
|
+
(0, fs_1.ensureDir)(traceDir);
|
|
129
|
+
if (!options.force && diffHash) {
|
|
130
|
+
try {
|
|
131
|
+
const existingTraceFiles = fs.readdirSync(traceDir)
|
|
132
|
+
.filter((f) => f.endsWith('.md'))
|
|
133
|
+
.sort((a, b) => b.localeCompare(a)); // Sort descending to get latest first
|
|
134
|
+
if (existingTraceFiles.length > 0) {
|
|
135
|
+
const latestTracePath = path.join(traceDir, existingTraceFiles[0]);
|
|
136
|
+
const latestTraceContent = (0, fs_1.readFile)(latestTracePath) || '';
|
|
137
|
+
// Match diff_hash: "..." or diff_hash: ...
|
|
138
|
+
const diffHashMatch = latestTraceContent.match(/diff_hash:\s*["']?([a-fA-F0-9]+)["']?/);
|
|
139
|
+
if (diffHashMatch && diffHashMatch[1] === diffHash) {
|
|
140
|
+
return {
|
|
141
|
+
success: true,
|
|
142
|
+
message: 'No new capture created. Existing trace already records this diff.',
|
|
143
|
+
skipped: true
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
catch {
|
|
149
|
+
// Ignore directory read/parse errors for safety
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
// 4. Resolve summary
|
|
153
|
+
let summary = options.summary;
|
|
154
|
+
if (!summary) {
|
|
155
|
+
// Try to get latest task from session.json
|
|
156
|
+
const sessionPath = path.join(pmemPath, 'session.json');
|
|
157
|
+
if ((0, fs_1.fileExists)(sessionPath)) {
|
|
158
|
+
try {
|
|
159
|
+
const sessionContent = (0, fs_1.readFile)(sessionPath);
|
|
160
|
+
if (sessionContent) {
|
|
161
|
+
const sessionData = JSON.parse(sessionContent);
|
|
162
|
+
if (sessionData.latest_task) {
|
|
163
|
+
summary = `Capture: ${sessionData.latest_task}`;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
catch {
|
|
168
|
+
// Fallback if parsing fails
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
if (!summary) {
|
|
173
|
+
// Fallback: list changed files
|
|
174
|
+
const filePaths = changedFiles.map(f => f.path);
|
|
175
|
+
summary = `Automated capture: changed ${filePaths.join(', ')}`;
|
|
176
|
+
}
|
|
177
|
+
// 5. Resolve next
|
|
178
|
+
const next = options.next || 'Continue development.';
|
|
179
|
+
// 6. Create trace card
|
|
180
|
+
const today = new Date().toISOString().split('T')[0];
|
|
181
|
+
let traceFile = '';
|
|
182
|
+
try {
|
|
183
|
+
const existingTraces = fs.readdirSync(traceDir)
|
|
184
|
+
.filter((f) => f.startsWith(today) && f.endsWith('.md'))
|
|
185
|
+
.length;
|
|
186
|
+
const traceNum = String(existingTraces + 1).padStart(3, '0');
|
|
187
|
+
traceFile = path.resolve(traceDir, `${today}-${traceNum}.md`);
|
|
188
|
+
// Strict path traversal validation
|
|
189
|
+
if (!traceFile.startsWith(traceDir)) {
|
|
190
|
+
throw new Error('Security: trace path traversal detected');
|
|
191
|
+
}
|
|
192
|
+
const cardId = `trace.${today}-${traceNum}`;
|
|
193
|
+
const traceContent = `---
|
|
194
|
+
id: ${cardId}
|
|
195
|
+
type: trace
|
|
196
|
+
created: ${new Date().toISOString()}
|
|
197
|
+
diff_hash: ${diffHash}
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
# Capture: ${summary}
|
|
201
|
+
|
|
202
|
+
## What changed
|
|
203
|
+
|
|
204
|
+
${summary}
|
|
205
|
+
|
|
206
|
+
## Changed files
|
|
207
|
+
|
|
208
|
+
${changedFiles.map(f => `- ${f.path}`).join('\n')}
|
|
209
|
+
|
|
210
|
+
## Next
|
|
211
|
+
|
|
212
|
+
- ${next}
|
|
213
|
+
`;
|
|
214
|
+
(0, fs_1.atomicWrite)(traceFile, traceContent);
|
|
215
|
+
}
|
|
216
|
+
catch (err) {
|
|
217
|
+
return {
|
|
218
|
+
success: false,
|
|
219
|
+
message: `Failed to write trace card: ${err.message}`
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
// 7. Update .pmem/next.md in managed block
|
|
223
|
+
const nextPath = path.join(pmemPath, 'next.md');
|
|
224
|
+
const managedStart = '<!-- pmem:next:start -->';
|
|
225
|
+
const managedEnd = '<!-- pmem:next:end -->';
|
|
226
|
+
const managedContent = `${managedStart}\n- Recommended next step: ${next}\n${managedEnd}`;
|
|
227
|
+
try {
|
|
228
|
+
if ((0, fs_1.fileExists)(nextPath)) {
|
|
229
|
+
const currentNext = (0, fs_1.readFile)(nextPath) || '';
|
|
230
|
+
const startIndex = currentNext.indexOf(managedStart);
|
|
231
|
+
const endIndex = currentNext.indexOf(managedEnd);
|
|
232
|
+
if (startIndex >= 0 && endIndex >= 0 && endIndex > startIndex) {
|
|
233
|
+
const updatedNext = currentNext.substring(0, startIndex) +
|
|
234
|
+
managedContent +
|
|
235
|
+
currentNext.substring(endIndex + managedEnd.length);
|
|
236
|
+
(0, fs_1.writeFile)(nextPath, updatedNext);
|
|
237
|
+
}
|
|
238
|
+
else {
|
|
239
|
+
// Managed block not found, append it
|
|
240
|
+
const spacer = currentNext.endsWith('\n') ? '' : '\n';
|
|
241
|
+
(0, fs_1.writeFile)(nextPath, `${currentNext}${spacer}\n${managedContent}\n`);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
else {
|
|
245
|
+
// Create new file
|
|
246
|
+
(0, fs_1.writeFile)(nextPath, `# Next Steps\n\n${managedContent}\n`);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
catch (err) {
|
|
250
|
+
return {
|
|
251
|
+
success: false,
|
|
252
|
+
message: `Failed to update next.md: ${err.message}`
|
|
253
|
+
};
|
|
254
|
+
}
|
|
255
|
+
// 8. DB transaction to resolve dirty flags
|
|
256
|
+
const dbPath = path.join(pmemPath, 'pmem.db');
|
|
257
|
+
let db = null;
|
|
258
|
+
let transactionActive = false;
|
|
259
|
+
let backupManifest = null;
|
|
260
|
+
const manifestPath = path.join(pmemPath, 'manifest.yml');
|
|
261
|
+
const dirtyPath = path.join(pmemPath, '.dirty');
|
|
262
|
+
try {
|
|
263
|
+
const manifest = (0, manifest_1.loadManifest)(pmemPath);
|
|
264
|
+
if (manifest) {
|
|
265
|
+
backupManifest = JSON.stringify(manifest);
|
|
266
|
+
}
|
|
267
|
+
if ((0, fs_1.fileExists)(dbPath)) {
|
|
268
|
+
db = (0, db_1.openDatabase)(pmemPath);
|
|
269
|
+
(0, db_1.createSchema)(db);
|
|
270
|
+
// Start transaction
|
|
271
|
+
db.prepare('BEGIN TRANSACTION').run();
|
|
272
|
+
transactionActive = true;
|
|
273
|
+
const activeSession = (0, db_1.getActiveSession)(db);
|
|
274
|
+
// Auto mark changed files dirty first to make sure they are tracked before resolving
|
|
275
|
+
const allPaths = db.prepare("SELECT card_id, path FROM paths").all();
|
|
276
|
+
const dirtyCards = [];
|
|
277
|
+
for (const change of changedFiles) {
|
|
278
|
+
for (const p of allPaths) {
|
|
279
|
+
if (p.card_id && p.path && change.path) {
|
|
280
|
+
// Check if matches
|
|
281
|
+
const isMatch = (() => {
|
|
282
|
+
const p1 = change.path.replace(/\\/g, '/');
|
|
283
|
+
const p2 = p.path.replace(/\\/g, '/');
|
|
284
|
+
return p1 === p2 || p1.endsWith('/' + p2) || p2.endsWith('/' + p1);
|
|
285
|
+
})();
|
|
286
|
+
if (isMatch) {
|
|
287
|
+
if (!dirtyCards.includes(p.card_id)) {
|
|
288
|
+
(0, db_1.insertDirtyFlag)(db, 'card', p.card_id, 'file_changed: ' + change.path, activeSession?.id);
|
|
289
|
+
dirtyCards.push(p.card_id);
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
// Resolve affected cards dirty flags
|
|
296
|
+
const affectedCards = status.affected_cards || [];
|
|
297
|
+
const cardsToResolve = Array.from(new Set([
|
|
298
|
+
...dirtyCards,
|
|
299
|
+
...affectedCards.map((ac) => ac.card_id)
|
|
300
|
+
]));
|
|
301
|
+
for (const cardId of cardsToResolve) {
|
|
302
|
+
(0, db_1.resolveDirtyFlags)(db, 'card', cardId);
|
|
303
|
+
}
|
|
304
|
+
// Resolve project level dirty flag
|
|
305
|
+
(0, db_1.resolveDirtyFlags)(db, 'project', '.pmem');
|
|
306
|
+
// Log update to SQLite
|
|
307
|
+
const todayNum = path.basename(traceFile, '.md').split('-').pop() || '001';
|
|
308
|
+
const traceCardId = `trace.${today}-${todayNum}`;
|
|
309
|
+
(0, db_1.insertUpdateLog)(db, 'confirm_update', summary, activeSession?.id, [traceCardId], true);
|
|
310
|
+
// Commit transaction
|
|
311
|
+
db.prepare('COMMIT').run();
|
|
312
|
+
transactionActive = false;
|
|
313
|
+
(0, db_1.closeDatabase)();
|
|
314
|
+
}
|
|
315
|
+
// Clean up dirty state in files
|
|
316
|
+
if ((0, fs_1.fileExists)(dirtyPath)) {
|
|
317
|
+
fs.unlinkSync(dirtyPath);
|
|
318
|
+
}
|
|
319
|
+
if (manifest) {
|
|
320
|
+
manifest.memory_status.dirty = false;
|
|
321
|
+
manifest.memory_status.dirty_reason = null;
|
|
322
|
+
manifest.memory_status.dirty_since = null;
|
|
323
|
+
(0, manifest_1.saveManifest)(pmemPath, manifest);
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
catch (err) {
|
|
327
|
+
if (db && transactionActive) {
|
|
328
|
+
try {
|
|
329
|
+
db.prepare('ROLLBACK').run();
|
|
330
|
+
}
|
|
331
|
+
catch { }
|
|
332
|
+
}
|
|
333
|
+
try {
|
|
334
|
+
(0, db_1.closeDatabase)();
|
|
335
|
+
}
|
|
336
|
+
catch { }
|
|
337
|
+
// Rollback manifest
|
|
338
|
+
if (backupManifest && (0, fs_1.fileExists)(manifestPath)) {
|
|
339
|
+
try {
|
|
340
|
+
(0, manifest_1.saveManifest)(pmemPath, JSON.parse(backupManifest));
|
|
341
|
+
}
|
|
342
|
+
catch { }
|
|
343
|
+
}
|
|
344
|
+
// Rollback trace file
|
|
345
|
+
if ((0, fs_1.fileExists)(traceFile)) {
|
|
346
|
+
try {
|
|
347
|
+
fs.unlinkSync(traceFile);
|
|
348
|
+
}
|
|
349
|
+
catch { }
|
|
350
|
+
}
|
|
351
|
+
return {
|
|
352
|
+
success: false,
|
|
353
|
+
message: `Failed SQLite transaction: ${err.message}`
|
|
354
|
+
};
|
|
355
|
+
}
|
|
356
|
+
// 9. Run rebuild (incremental or full)
|
|
357
|
+
try {
|
|
358
|
+
(0, rebuild_1.rebuildCommand)({ full: options.full === true });
|
|
359
|
+
}
|
|
360
|
+
catch (err) {
|
|
361
|
+
return {
|
|
362
|
+
success: false,
|
|
363
|
+
message: `Failed rebuild: ${err.message}`,
|
|
364
|
+
tracePath: traceFile
|
|
365
|
+
};
|
|
366
|
+
}
|
|
367
|
+
// 10. Run lightweight verify
|
|
368
|
+
try {
|
|
369
|
+
(0, verify_1.verifyCommand)({ fix: false, fixLocks: false, fixStale: false, relaxed: true, noExit: true });
|
|
370
|
+
}
|
|
371
|
+
catch (err) {
|
|
372
|
+
// Verification warning only, do not fail capture
|
|
373
|
+
}
|
|
374
|
+
return {
|
|
375
|
+
success: true,
|
|
376
|
+
message: 'Memory sync and update completed successfully.',
|
|
377
|
+
tracePath: traceFile
|
|
378
|
+
};
|
|
379
|
+
}
|
|
380
|
+
//# sourceMappingURL=capture.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capture.js","sourceRoot":"","sources":["../../src/core/capture.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/core/query/context.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,kBAAkB,EAAmB,MAAM,aAAa,CAAC;AAEvE,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,SAAO,GAAG,kBAAkB,CAkI9F"}
|