@jeanzorzetti/context-keeper 0.1.0 → 1.0.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/dist/cli.js +47 -2
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +55 -1
- package/dist/index.js.map +1 -1
- package/dist/merger.d.ts.map +1 -1
- package/dist/merger.js +37 -3
- package/dist/merger.js.map +1 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -1,7 +1,41 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
"use strict";
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
+
}) : function(o, v) {
|
|
17
|
+
o["default"] = v;
|
|
18
|
+
});
|
|
19
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
+
var ownKeys = function(o) {
|
|
21
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
+
var ar = [];
|
|
23
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
+
return ar;
|
|
25
|
+
};
|
|
26
|
+
return ownKeys(o);
|
|
27
|
+
};
|
|
28
|
+
return function (mod) {
|
|
29
|
+
if (mod && mod.__esModule) return mod;
|
|
30
|
+
var result = {};
|
|
31
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
+
__setModuleDefault(result, mod);
|
|
33
|
+
return result;
|
|
34
|
+
};
|
|
35
|
+
})();
|
|
3
36
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
37
|
require("dotenv/config");
|
|
38
|
+
const fs = __importStar(require("fs"));
|
|
5
39
|
const index_js_1 = require("./index.js");
|
|
6
40
|
const extractor_js_1 = require("./extractor.js");
|
|
7
41
|
const merger_js_1 = require("./merger.js");
|
|
@@ -55,8 +89,19 @@ async function main() {
|
|
|
55
89
|
break;
|
|
56
90
|
}
|
|
57
91
|
case 'status': {
|
|
58
|
-
|
|
59
|
-
|
|
92
|
+
try {
|
|
93
|
+
const pid = parseInt(fs.readFileSync(index_js_1.PID_FILE, 'utf8').trim(), 10);
|
|
94
|
+
try {
|
|
95
|
+
process.kill(pid, 0);
|
|
96
|
+
console.log(`Context Keeper: running (PID: ${pid})`);
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
console.log('Context Keeper: not running (stale PID file)');
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
console.log('Context Keeper: not running');
|
|
104
|
+
}
|
|
60
105
|
break;
|
|
61
106
|
}
|
|
62
107
|
default: {
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AAUvB,eAAO,MAAM,QAAQ,QAA2D,CAAC;AAOjF,wBAAgB,aAAa,IAAI,IAAI,CAEpC;AAmCD,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,GAAE,aAAkB,GAAG,MAAM,IAAI,CAqEnE"}
|
package/dist/index.js
CHANGED
|
@@ -33,20 +33,69 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.PID_FILE = void 0;
|
|
37
|
+
exports.removePidFile = removePidFile;
|
|
36
38
|
exports.startDaemon = startDaemon;
|
|
37
39
|
require("dotenv/config");
|
|
40
|
+
const fs = __importStar(require("fs"));
|
|
41
|
+
const os = __importStar(require("os"));
|
|
38
42
|
const path = __importStar(require("path"));
|
|
39
43
|
const watcher_js_1 = require("./watcher.js");
|
|
40
44
|
const extractor_js_1 = require("./extractor.js");
|
|
41
45
|
const merger_js_1 = require("./merger.js");
|
|
42
46
|
const git_js_1 = require("./git.js");
|
|
43
47
|
const index_writer_js_1 = require("./index-writer.js");
|
|
48
|
+
exports.PID_FILE = path.join(os.homedir(), '.context-keeper', 'daemon.pid');
|
|
49
|
+
function writePidFile() {
|
|
50
|
+
fs.mkdirSync(path.dirname(exports.PID_FILE), { recursive: true });
|
|
51
|
+
fs.writeFileSync(exports.PID_FILE, String(process.pid), 'utf8');
|
|
52
|
+
}
|
|
53
|
+
function removePidFile() {
|
|
54
|
+
try {
|
|
55
|
+
fs.unlinkSync(exports.PID_FILE);
|
|
56
|
+
}
|
|
57
|
+
catch { /* already gone */ }
|
|
58
|
+
}
|
|
59
|
+
async function syncDecisionsToWeb(projectPath, decisions) {
|
|
60
|
+
const apiUrl = process.env.CONTEXT_KEEPER_API_URL;
|
|
61
|
+
if (!apiUrl)
|
|
62
|
+
return; // offline mode — skip silently
|
|
63
|
+
const token = process.env.CONTEXT_KEEPER_TOKEN;
|
|
64
|
+
const headers = { 'Content-Type': 'application/json' };
|
|
65
|
+
if (token)
|
|
66
|
+
headers['Authorization'] = `Bearer ${token}`;
|
|
67
|
+
const body = JSON.stringify({
|
|
68
|
+
projectPath,
|
|
69
|
+
decisions: decisions.map(text => ({ text, createdAt: new Date().toISOString() })),
|
|
70
|
+
});
|
|
71
|
+
const attempt = async () => {
|
|
72
|
+
const res = await fetch(`${apiUrl}/api/decisions`, { method: 'POST', headers, body });
|
|
73
|
+
if (!res.ok)
|
|
74
|
+
throw new Error(`HTTP ${res.status}`);
|
|
75
|
+
const json = await res.json();
|
|
76
|
+
console.log(`[daemon] Web sync: saved=${json.saved}, skipped=${json.skipped}`);
|
|
77
|
+
};
|
|
78
|
+
try {
|
|
79
|
+
await attempt();
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
// one retry after 2 s
|
|
83
|
+
await new Promise(r => setTimeout(r, 2000));
|
|
84
|
+
try {
|
|
85
|
+
await attempt();
|
|
86
|
+
}
|
|
87
|
+
catch (err) {
|
|
88
|
+
console.warn('[daemon] Web sync failed after retry:', err);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
44
92
|
/**
|
|
45
93
|
* Starts the Context Keeper daemon.
|
|
46
94
|
* Returns a cleanup function to stop the watcher.
|
|
47
95
|
*/
|
|
48
96
|
function startDaemon(options = {}) {
|
|
49
97
|
const { autoCommit = false } = options;
|
|
98
|
+
writePidFile();
|
|
50
99
|
if (!process.env.GROQ_API_KEY) {
|
|
51
100
|
console.error('[daemon] GROQ_API_KEY is not set. Extraction will fail.');
|
|
52
101
|
}
|
|
@@ -89,6 +138,8 @@ function startDaemon(options = {}) {
|
|
|
89
138
|
console.error(`[daemon] Failed to merge into ${cf}:`, err);
|
|
90
139
|
}
|
|
91
140
|
}
|
|
141
|
+
// Fire-and-forget sync to web dashboard (errors logged inside, never blocks local pipeline)
|
|
142
|
+
syncDecisionsToWeb(projectDir, decisions).catch(() => { });
|
|
92
143
|
if (autoCommit) {
|
|
93
144
|
try {
|
|
94
145
|
await (0, git_js_1.commitContextFiles)(contextFiles);
|
|
@@ -99,6 +150,9 @@ function startDaemon(options = {}) {
|
|
|
99
150
|
}
|
|
100
151
|
}
|
|
101
152
|
});
|
|
102
|
-
return
|
|
153
|
+
return () => {
|
|
154
|
+
stop();
|
|
155
|
+
removePidFile();
|
|
156
|
+
};
|
|
103
157
|
}
|
|
104
158
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/merger.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merger.d.ts","sourceRoot":"","sources":["../src/merger.ts"],"names":[],"mappings":"AAkCA;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,IAAI,CAoD7E;AAMD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAS7D;AAYD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"merger.d.ts","sourceRoot":"","sources":["../src/merger.ts"],"names":[],"mappings":"AAkCA;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,IAAI,CAoD7E;AAMD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAS7D;AAYD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAoDvE"}
|
package/dist/merger.js
CHANGED
|
@@ -175,7 +175,7 @@ function resolveProjectDir(transcriptPath) {
|
|
|
175
175
|
if (parentDir.match(/^[a-z]--/)) {
|
|
176
176
|
try {
|
|
177
177
|
const driveLetter = parentDir[0].toUpperCase();
|
|
178
|
-
const driveRoot = driveLetter + '
|
|
178
|
+
const driveRoot = driveLetter + ':\\';
|
|
179
179
|
// Search for the real directory by walking from common roots
|
|
180
180
|
// This allows us to derive the correct projectName from the git root's basename
|
|
181
181
|
const searchRoots = [
|
|
@@ -191,8 +191,13 @@ function resolveProjectDir(transcriptPath) {
|
|
|
191
191
|
return found;
|
|
192
192
|
}
|
|
193
193
|
}
|
|
194
|
-
//
|
|
195
|
-
//
|
|
194
|
+
// Fallback: extract readable projectName from encoding
|
|
195
|
+
// Returns a constructed path where path.basename() gives the extracted name
|
|
196
|
+
const projectName = extractProjectNameFromEncoding(parentDir);
|
|
197
|
+
if (projectName) {
|
|
198
|
+
return path.join(driveRoot, projectName);
|
|
199
|
+
}
|
|
200
|
+
// Last resort: unable to resolve
|
|
196
201
|
return null;
|
|
197
202
|
}
|
|
198
203
|
catch {
|
|
@@ -238,4 +243,33 @@ function findProjectRootByEncoding(currentPath, encodedPath, depth) {
|
|
|
238
243
|
}
|
|
239
244
|
return null;
|
|
240
245
|
}
|
|
246
|
+
/**
|
|
247
|
+
* Extracts a readable project name from the Windows dash-encoded path.
|
|
248
|
+
* Since encoding is lossy (single dashes = separators OR spaces), uses heuristic:
|
|
249
|
+
* Prefers last 2 segments (typical project naming), falls back to last segment.
|
|
250
|
+
*
|
|
251
|
+
* Example: 'c--users-jeanz-onedrive-desktop-roi-labs-context-keeper'
|
|
252
|
+
* → segments: ['c', 'users', 'jeanz', 'onedrive', 'desktop', 'roi', 'labs', 'context', 'keeper']
|
|
253
|
+
* → returns: 'context-keeper' (last 2 segments)
|
|
254
|
+
*
|
|
255
|
+
* Example: 'c--users-my-project'
|
|
256
|
+
* → segments: ['c', 'users', 'my', 'project']
|
|
257
|
+
* → returns: 'my-project' (last 2 segments)
|
|
258
|
+
*/
|
|
259
|
+
function extractProjectNameFromEncoding(encodedPath) {
|
|
260
|
+
if (!encodedPath.match(/^[a-z]--/))
|
|
261
|
+
return null;
|
|
262
|
+
const rest = encodedPath.substring(3); // Skip 'X--'
|
|
263
|
+
const segments = rest.split('-').filter((s) => s.length > 0);
|
|
264
|
+
if (segments.length === 0)
|
|
265
|
+
return null;
|
|
266
|
+
if (segments.length === 1)
|
|
267
|
+
return segments[0];
|
|
268
|
+
// Prefer last 2 segments (typical: 'context-keeper', 'my-project')
|
|
269
|
+
if (segments.length >= 2) {
|
|
270
|
+
return segments.slice(-2).join('-');
|
|
271
|
+
}
|
|
272
|
+
// Fallback: last segment only
|
|
273
|
+
return segments[segments.length - 1] || null;
|
|
274
|
+
}
|
|
241
275
|
//# sourceMappingURL=merger.js.map
|
package/dist/merger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merger.js","sourceRoot":"","sources":["../src/merger.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4CA,wCAoDC;AAUD,4CASC;AA4BD,
|
|
1
|
+
{"version":3,"file":"merger.js","sourceRoot":"","sources":["../src/merger.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED