@aliou/sesame 0.2.0 → 0.3.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/commands/watch-cmd.d.ts +5 -0
- package/dist/commands/watch-cmd.d.ts.map +1 -0
- package/dist/commands/watch-cmd.js +164 -0
- package/dist/commands/watch-cmd.js.map +1 -0
- package/dist/sesame.d.ts +1 -0
- package/dist/sesame.d.ts.map +1 -1
- package/dist/sesame.js +3 -0
- package/dist/sesame.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watch-cmd.d.ts","sourceRoot":"","sources":["../../src/commands/watch-cmd.ts"],"names":[],"mappings":"AAAA;;GAEG;AAkBH,wBAA8B,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAgMxE"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Watch command - monitors and indexes session files on change
|
|
3
|
+
*/
|
|
4
|
+
import { mkdirSync, watch } from "node:fs";
|
|
5
|
+
import { join } from "node:path";
|
|
6
|
+
import { indexSessions } from "../indexer/index";
|
|
7
|
+
import { PiParser } from "../parsers/pi";
|
|
8
|
+
import { openDatabase } from "../storage/db";
|
|
9
|
+
import { expandPath, loadConfig } from "../utils/config";
|
|
10
|
+
import { getXDGPaths } from "../utils/xdg";
|
|
11
|
+
export default async function watchCommand(args) {
|
|
12
|
+
// Parse --interval flag
|
|
13
|
+
let pollInterval = null;
|
|
14
|
+
const intervalIndex = args.indexOf("--interval");
|
|
15
|
+
if (intervalIndex !== -1 && args[intervalIndex + 1]) {
|
|
16
|
+
const intervalValue = parseInt(args[intervalIndex + 1], 10);
|
|
17
|
+
if (Number.isNaN(intervalValue) || intervalValue <= 0) {
|
|
18
|
+
console.error("Error: --interval must be a positive number");
|
|
19
|
+
process.exit(1);
|
|
20
|
+
}
|
|
21
|
+
pollInterval = intervalValue * 1000; // Convert to milliseconds
|
|
22
|
+
}
|
|
23
|
+
// Load configuration
|
|
24
|
+
const config = await loadConfig();
|
|
25
|
+
// Get data directory and ensure it exists
|
|
26
|
+
const paths = getXDGPaths();
|
|
27
|
+
mkdirSync(paths.data, { recursive: true });
|
|
28
|
+
// Open database
|
|
29
|
+
const dbPath = join(paths.data, "index.sqlite");
|
|
30
|
+
const db = openDatabase(dbPath);
|
|
31
|
+
const state = {
|
|
32
|
+
db,
|
|
33
|
+
watchers: [],
|
|
34
|
+
debounceTimers: new Map(),
|
|
35
|
+
isShuttingDown: false,
|
|
36
|
+
};
|
|
37
|
+
// Set up graceful shutdown
|
|
38
|
+
const shutdown = () => {
|
|
39
|
+
if (state.isShuttingDown) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
state.isShuttingDown = true;
|
|
43
|
+
console.error("\n[%s] Shutting down...", new Date().toISOString());
|
|
44
|
+
// Clear all debounce timers
|
|
45
|
+
for (const timer of state.debounceTimers.values()) {
|
|
46
|
+
clearTimeout(timer);
|
|
47
|
+
}
|
|
48
|
+
state.debounceTimers.clear();
|
|
49
|
+
// Close all watchers
|
|
50
|
+
for (const watcher of state.watchers) {
|
|
51
|
+
watcher.close();
|
|
52
|
+
}
|
|
53
|
+
state.watchers = [];
|
|
54
|
+
// Clear interval if polling
|
|
55
|
+
if (state.intervalId) {
|
|
56
|
+
clearInterval(state.intervalId);
|
|
57
|
+
}
|
|
58
|
+
// Close database
|
|
59
|
+
state.db.close();
|
|
60
|
+
console.error("[%s] Shutdown complete", new Date().toISOString());
|
|
61
|
+
process.exit(0);
|
|
62
|
+
};
|
|
63
|
+
process.on("SIGINT", shutdown);
|
|
64
|
+
process.on("SIGTERM", shutdown);
|
|
65
|
+
try {
|
|
66
|
+
console.error("[%s] Starting watch mode...", new Date().toISOString());
|
|
67
|
+
// Run initial index pass
|
|
68
|
+
console.error("[%s] Running initial index...", new Date().toISOString());
|
|
69
|
+
await runIndexing(state, config.sources);
|
|
70
|
+
if (pollInterval) {
|
|
71
|
+
// Polling mode
|
|
72
|
+
console.error("[%s] Starting poll-based monitoring (interval: %d seconds)", new Date().toISOString(), pollInterval / 1000);
|
|
73
|
+
state.intervalId = setInterval(async () => {
|
|
74
|
+
if (!state.isShuttingDown) {
|
|
75
|
+
console.error("[%s] Running scheduled index...", new Date().toISOString());
|
|
76
|
+
await runIndexing(state, config.sources);
|
|
77
|
+
}
|
|
78
|
+
}, pollInterval);
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
// File system watch mode
|
|
82
|
+
console.error("[%s] Starting file system monitoring...", new Date().toISOString());
|
|
83
|
+
for (const source of config.sources) {
|
|
84
|
+
const expandedPath = expandPath(source.path);
|
|
85
|
+
if (source.parser !== "pi") {
|
|
86
|
+
console.error("[%s] Skipping watch for %s: unsupported parser '%s'", new Date().toISOString(), source.path, source.parser);
|
|
87
|
+
continue;
|
|
88
|
+
}
|
|
89
|
+
try {
|
|
90
|
+
const watcher = watch(expandedPath, { recursive: true }, (eventType, filename) => {
|
|
91
|
+
if (state.isShuttingDown) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
const timestamp = new Date().toISOString();
|
|
95
|
+
console.error("[%s] Detected %s: %s", timestamp, eventType, filename || "unknown");
|
|
96
|
+
// Debounce: clear existing timer and set new one
|
|
97
|
+
const existingTimer = state.debounceTimers.get(expandedPath);
|
|
98
|
+
if (existingTimer) {
|
|
99
|
+
clearTimeout(existingTimer);
|
|
100
|
+
}
|
|
101
|
+
const timer = setTimeout(async () => {
|
|
102
|
+
state.debounceTimers.delete(expandedPath);
|
|
103
|
+
if (!state.isShuttingDown) {
|
|
104
|
+
console.error("[%s] Re-indexing %s...", new Date().toISOString(), expandedPath);
|
|
105
|
+
await runIndexing(state, [source]);
|
|
106
|
+
}
|
|
107
|
+
}, 500);
|
|
108
|
+
state.debounceTimers.set(expandedPath, timer);
|
|
109
|
+
});
|
|
110
|
+
watcher.on("error", (error) => {
|
|
111
|
+
console.error("[%s] Watcher error for %s: %s", new Date().toISOString(), expandedPath, error.message);
|
|
112
|
+
});
|
|
113
|
+
state.watchers.push(watcher);
|
|
114
|
+
console.error("[%s] Watching: %s", new Date().toISOString(), expandedPath);
|
|
115
|
+
}
|
|
116
|
+
catch (error) {
|
|
117
|
+
console.error("[%s] Failed to watch %s: %s", new Date().toISOString(), expandedPath, error instanceof Error ? error.message : String(error));
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
console.error("[%s] Watch mode active. Press Ctrl+C to stop.", new Date().toISOString());
|
|
122
|
+
// Keep the process alive
|
|
123
|
+
await new Promise(() => { });
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
console.error("[%s] Fatal error: %s", new Date().toISOString(), error instanceof Error ? error.message : String(error));
|
|
127
|
+
shutdown();
|
|
128
|
+
process.exit(1);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
async function runIndexing(state, sources) {
|
|
132
|
+
const timestamp = new Date().toISOString();
|
|
133
|
+
for (const source of sources) {
|
|
134
|
+
const expandedPath = expandPath(source.path);
|
|
135
|
+
if (source.parser !== "pi") {
|
|
136
|
+
continue;
|
|
137
|
+
}
|
|
138
|
+
const parser = new PiParser();
|
|
139
|
+
try {
|
|
140
|
+
const result = await indexSessions(state.db, expandedPath, parser);
|
|
141
|
+
// Log to stderr (human-readable)
|
|
142
|
+
console.error("[%s] Indexed %s - added: %d, updated: %d, skipped: %d, errors: %d", timestamp, expandedPath, result.added, result.updated, result.skipped, result.errors);
|
|
143
|
+
// Log to stdout (JSON for machine consumption)
|
|
144
|
+
console.log(JSON.stringify({
|
|
145
|
+
timestamp,
|
|
146
|
+
path: expandedPath,
|
|
147
|
+
added: result.added,
|
|
148
|
+
updated: result.updated,
|
|
149
|
+
skipped: result.skipped,
|
|
150
|
+
errors: result.errors,
|
|
151
|
+
}));
|
|
152
|
+
}
|
|
153
|
+
catch (error) {
|
|
154
|
+
console.error("[%s] Error indexing %s: %s", timestamp, expandedPath, error instanceof Error ? error.message : String(error));
|
|
155
|
+
// Log error to stdout as JSON
|
|
156
|
+
console.log(JSON.stringify({
|
|
157
|
+
timestamp,
|
|
158
|
+
path: expandedPath,
|
|
159
|
+
error: error instanceof Error ? error.message : String(error),
|
|
160
|
+
}));
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=watch-cmd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watch-cmd.js","sourceRoot":"","sources":["../../src/commands/watch-cmd.ts"],"names":[],"mappings":"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"}
|
package/dist/sesame.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ declare const commands: {
|
|
|
7
7
|
index: () => Promise<typeof import("./commands/index-cmd")>;
|
|
8
8
|
search: () => Promise<typeof import("./commands/search-cmd")>;
|
|
9
9
|
status: () => Promise<typeof import("./commands/status-cmd")>;
|
|
10
|
+
watch: () => Promise<typeof import("./commands/watch-cmd")>;
|
|
10
11
|
help: () => Promise<{
|
|
11
12
|
default: (..._args: unknown[]) => Promise<void>;
|
|
12
13
|
}>;
|
package/dist/sesame.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sesame.d.ts","sourceRoot":"","sources":["../src/sesame.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,QAAA,MAAM,QAAQ
|
|
1
|
+
{"version":3,"file":"sesame.d.ts","sourceRoot":"","sources":["../src/sesame.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,QAAA,MAAM,QAAQ;;;;;;4BAOY,OAAO,EAAE;;CAElC,CAAC;AAEF,KAAK,OAAO,GAAG,MAAM,OAAO,QAAQ,CAAC;AAErC,iBAAS,UAAU,SAsBlB;AAED,iBAAe,IAAI,kBA+BlB"}
|
package/dist/sesame.js
CHANGED
|
@@ -8,6 +8,7 @@ const commands = {
|
|
|
8
8
|
index: () => import("./commands/index-cmd"),
|
|
9
9
|
search: () => import("./commands/search-cmd"),
|
|
10
10
|
status: () => import("./commands/status-cmd"),
|
|
11
|
+
watch: () => import("./commands/watch-cmd"),
|
|
11
12
|
help: () => Promise.resolve({
|
|
12
13
|
default: (..._args) => Promise.resolve(printUsage()),
|
|
13
14
|
}),
|
|
@@ -22,6 +23,8 @@ Commands:
|
|
|
22
23
|
index --full Drop and rebuild index
|
|
23
24
|
search <query> Search sessions
|
|
24
25
|
status Show index statistics
|
|
26
|
+
watch Watch session files and index on change
|
|
27
|
+
watch --interval <seconds> Poll-based re-indexing at fixed interval
|
|
25
28
|
|
|
26
29
|
Search options:
|
|
27
30
|
--cwd <path> Filter by project directory
|
package/dist/sesame.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sesame.js","sourceRoot":"","sources":["../src/sesame.ts"],"names":[],"mappings":";;AACA;;;GAGG;AAEH,MAAM,QAAQ,GAAG;IACf,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC;IAC3C,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,uBAAuB,CAAC;IAC7C,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,uBAAuB,CAAC;IAC7C,IAAI,EAAE,GAAG,EAAE,CACT,OAAO,CAAC,OAAO,CAAC;QACd,OAAO,EAAE,CAAC,GAAG,KAAgB,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;KAChE,CAAC;CACL,CAAC;AAIF,SAAS,UAAU;IACjB,OAAO,CAAC,GAAG,CAAC
|
|
1
|
+
{"version":3,"file":"sesame.js","sourceRoot":"","sources":["../src/sesame.ts"],"names":[],"mappings":";;AACA;;;GAGG;AAEH,MAAM,QAAQ,GAAG;IACf,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC;IAC3C,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,uBAAuB,CAAC;IAC7C,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,uBAAuB,CAAC;IAC7C,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC;IAC3C,IAAI,EAAE,GAAG,EAAE,CACT,OAAO,CAAC,OAAO,CAAC;QACd,OAAO,EAAE,CAAC,GAAG,KAAgB,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;KAChE,CAAC;CACL,CAAC;AAIF,SAAS,UAAU;IACjB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;CAoBb,CAAC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnC,IACE,IAAI,CAAC,MAAM,KAAK,CAAC;QACjB,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM;QAClB,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ;QACpB,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAChB,CAAC;QACD,UAAU,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,CAAY,CAAC;IACvC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAElC,IAAI,CAAC,CAAC,WAAW,IAAI,QAAQ,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,oBAAoB,WAAW,EAAE,CAAC,CAAC;QACjD,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACpD,MAAM,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,UAAU,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACnE,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC"}
|