@gramatr/mcp 0.13.102 → 0.13.103
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/daemon/daemon-logger.d.ts +55 -0
- package/dist/daemon/daemon-logger.d.ts.map +1 -0
- package/dist/daemon/daemon-logger.js +222 -0
- package/dist/daemon/daemon-logger.js.map +1 -0
- package/dist/daemon/index.d.ts.map +1 -1
- package/dist/daemon/index.js +11 -0
- package/dist/daemon/index.js.map +1 -1
- package/dist/daemon/ipc-protocol.d.ts +13 -1
- package/dist/daemon/ipc-protocol.d.ts.map +1 -1
- package/dist/daemon/ipc-protocol.js.map +1 -1
- package/dist/daemon/server.d.ts.map +1 -1
- package/dist/daemon/server.js +68 -0
- package/dist/daemon/server.js.map +1 -1
- package/dist/hooks/compact.js +1 -1
- package/dist/hooks/compact.js.map +1 -1
- package/dist/hooks/lib/compact-writer.d.ts +1 -1
- package/dist/hooks/lib/compact-writer.d.ts.map +1 -1
- package/dist/hooks/lib/compact-writer.js +2 -2
- package/dist/hooks/lib/compact-writer.js.map +1 -1
- package/dist/hooks/lib/hook-state.d.ts +7 -7
- package/dist/hooks/lib/hook-state.d.ts.map +1 -1
- package/dist/hooks/lib/hook-state.js +54 -18
- package/dist/hooks/lib/hook-state.js.map +1 -1
- package/dist/hooks/lib/intelligence.js +2 -2
- package/dist/hooks/lib/intelligence.js.map +1 -1
- package/dist/hooks/stop.d.ts.map +1 -1
- package/dist/hooks/stop.js +50 -9
- package/dist/hooks/stop.js.map +1 -1
- package/dist/hooks/tool-tracker.js +1 -1
- package/dist/hooks/tool-tracker.js.map +1 -1
- package/dist/hooks/user-prompt-submit.d.ts.map +1 -1
- package/dist/hooks/user-prompt-submit.js +8 -5
- package/dist/hooks/user-prompt-submit.js.map +1 -1
- package/dist/proxy/local-client.d.ts +13 -0
- package/dist/proxy/local-client.d.ts.map +1 -1
- package/dist/proxy/local-client.js +21 -0
- package/dist/proxy/local-client.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* daemon-logger.ts — Rotating file logger for the gramatr daemon.
|
|
3
|
+
*
|
|
4
|
+
* Writes structured log lines to ~/.gramatr/debug/daemon.log.
|
|
5
|
+
* Rotates when the file exceeds 5 MB: renames to daemon.log.1, keeps at
|
|
6
|
+
* most 2 rotated files (daemon.log.1, daemon.log.2), then starts fresh.
|
|
7
|
+
*
|
|
8
|
+
* On unexpected exit (non-zero code or uncaught exception), writes a crash
|
|
9
|
+
* record to ~/.gramatr/debug/daemon-crash.json.
|
|
10
|
+
*
|
|
11
|
+
* Design constraints:
|
|
12
|
+
* - No external dependencies — plain Node.js fs calls only.
|
|
13
|
+
* - All operations are synchronous and best-effort: log failures never
|
|
14
|
+
* propagate to callers.
|
|
15
|
+
* - Safe to call before the daemon is fully initialised.
|
|
16
|
+
*/
|
|
17
|
+
export declare function getDaemonLogPath(): string;
|
|
18
|
+
export declare function getDaemonCrashPath(): string;
|
|
19
|
+
/**
|
|
20
|
+
* Append a log line to ~/.gramatr/debug/daemon.log.
|
|
21
|
+
* Rotates the file first if it has grown past 5 MB.
|
|
22
|
+
* Silently no-ops on any filesystem error.
|
|
23
|
+
*/
|
|
24
|
+
export declare function logDaemon(level: 'INFO' | 'WARN' | 'ERROR', message: string, extra?: Record<string, unknown>): void;
|
|
25
|
+
export interface CrashRecord {
|
|
26
|
+
timestamp: string;
|
|
27
|
+
exit_code: number | null;
|
|
28
|
+
signal: string | null;
|
|
29
|
+
last_known_state: string;
|
|
30
|
+
error_message: string | null;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Write a crash record to ~/.gramatr/debug/daemon-crash.json.
|
|
34
|
+
* Overwrites on each crash — only the latest crash is kept.
|
|
35
|
+
*/
|
|
36
|
+
export declare function writeCrashRecord(record: CrashRecord): void;
|
|
37
|
+
/**
|
|
38
|
+
* Redirect process.stderr so every byte written to it is also appended to the
|
|
39
|
+
* daemon log file. Call once at daemon startup.
|
|
40
|
+
*
|
|
41
|
+
* Implementation: monkey-patches process.stderr.write(). The original write
|
|
42
|
+
* is always called first so stderr still works normally.
|
|
43
|
+
*/
|
|
44
|
+
export declare function redirectStderrToLog(): void;
|
|
45
|
+
/**
|
|
46
|
+
* Register process-level crash handlers.
|
|
47
|
+
* Should be called once, as early as possible in the daemon entry point.
|
|
48
|
+
*
|
|
49
|
+
* Captures:
|
|
50
|
+
* - process.on('uncaughtException')
|
|
51
|
+
* - process.on('unhandledRejection')
|
|
52
|
+
* - process.on('exit') when exit code != 0
|
|
53
|
+
*/
|
|
54
|
+
export declare function registerCrashHandlers(): void;
|
|
55
|
+
//# sourceMappingURL=daemon-logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daemon-logger.d.ts","sourceRoot":"","sources":["../../src/daemon/daemon-logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AA6BH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AA6CD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAgBlH;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAO1D;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAgC1C;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CA+D5C"}
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* daemon-logger.ts — Rotating file logger for the gramatr daemon.
|
|
3
|
+
*
|
|
4
|
+
* Writes structured log lines to ~/.gramatr/debug/daemon.log.
|
|
5
|
+
* Rotates when the file exceeds 5 MB: renames to daemon.log.1, keeps at
|
|
6
|
+
* most 2 rotated files (daemon.log.1, daemon.log.2), then starts fresh.
|
|
7
|
+
*
|
|
8
|
+
* On unexpected exit (non-zero code or uncaught exception), writes a crash
|
|
9
|
+
* record to ~/.gramatr/debug/daemon-crash.json.
|
|
10
|
+
*
|
|
11
|
+
* Design constraints:
|
|
12
|
+
* - No external dependencies — plain Node.js fs calls only.
|
|
13
|
+
* - All operations are synchronous and best-effort: log failures never
|
|
14
|
+
* propagate to callers.
|
|
15
|
+
* - Safe to call before the daemon is fully initialised.
|
|
16
|
+
*/
|
|
17
|
+
import { appendFileSync, existsSync, mkdirSync, renameSync, statSync, unlinkSync, writeFileSync, } from 'node:fs';
|
|
18
|
+
import { join } from 'node:path';
|
|
19
|
+
import { getGramatrDirFromEnv, getHomeDir } from '../config-runtime.js';
|
|
20
|
+
// ── Constants ─────────────────────────────────────────────────────────────────
|
|
21
|
+
const MAX_LOG_BYTES = 5 * 1024 * 1024; // 5 MB
|
|
22
|
+
const MAX_ROTATED = 2; // keep daemon.log.1 and daemon.log.2
|
|
23
|
+
// ── Path helpers ──────────────────────────────────────────────────────────────
|
|
24
|
+
function getGramatrDir() {
|
|
25
|
+
return getGramatrDirFromEnv() ?? join(getHomeDir(), '.gramatr');
|
|
26
|
+
}
|
|
27
|
+
function getDebugDir() {
|
|
28
|
+
return join(getGramatrDir(), 'debug');
|
|
29
|
+
}
|
|
30
|
+
export function getDaemonLogPath() {
|
|
31
|
+
return join(getDebugDir(), 'daemon.log');
|
|
32
|
+
}
|
|
33
|
+
export function getDaemonCrashPath() {
|
|
34
|
+
return join(getDebugDir(), 'daemon-crash.json');
|
|
35
|
+
}
|
|
36
|
+
// ── Directory init ────────────────────────────────────────────────────────────
|
|
37
|
+
function ensureDebugDir() {
|
|
38
|
+
const dir = getDebugDir();
|
|
39
|
+
if (!existsSync(dir)) {
|
|
40
|
+
try {
|
|
41
|
+
mkdirSync(dir, { recursive: true, mode: 0o700 });
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
// Non-fatal — log writes will simply fail silently below.
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
// ── Log rotation ──────────────────────────────────────────────────────────────
|
|
49
|
+
function rotateLogs() {
|
|
50
|
+
const logPath = getDaemonLogPath();
|
|
51
|
+
try {
|
|
52
|
+
const st = statSync(logPath);
|
|
53
|
+
if (st.size < MAX_LOG_BYTES)
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
return; // file doesn't exist yet — nothing to rotate
|
|
58
|
+
}
|
|
59
|
+
// Shift existing rotated files: .2 → drop, .1 → .2, current → .1
|
|
60
|
+
try {
|
|
61
|
+
const slot2 = `${getDaemonLogPath()}.2`;
|
|
62
|
+
const slot1 = `${getDaemonLogPath()}.1`;
|
|
63
|
+
if (existsSync(slot2)) {
|
|
64
|
+
try {
|
|
65
|
+
unlinkSync(slot2);
|
|
66
|
+
}
|
|
67
|
+
catch { /* best-effort */ }
|
|
68
|
+
}
|
|
69
|
+
if (existsSync(slot1)) {
|
|
70
|
+
try {
|
|
71
|
+
renameSync(slot1, slot2);
|
|
72
|
+
}
|
|
73
|
+
catch { /* best-effort */ }
|
|
74
|
+
}
|
|
75
|
+
renameSync(logPath, slot1);
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
// If rotation fails (e.g. permissions), keep writing to the existing file.
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
// ── Public API ────────────────────────────────────────────────────────────────
|
|
82
|
+
/**
|
|
83
|
+
* Append a log line to ~/.gramatr/debug/daemon.log.
|
|
84
|
+
* Rotates the file first if it has grown past 5 MB.
|
|
85
|
+
* Silently no-ops on any filesystem error.
|
|
86
|
+
*/
|
|
87
|
+
export function logDaemon(level, message, extra) {
|
|
88
|
+
try {
|
|
89
|
+
ensureDebugDir();
|
|
90
|
+
rotateLogs();
|
|
91
|
+
const timestamp = new Date().toISOString();
|
|
92
|
+
const line = JSON.stringify({
|
|
93
|
+
timestamp,
|
|
94
|
+
level,
|
|
95
|
+
pid: process.pid,
|
|
96
|
+
message,
|
|
97
|
+
...(extra ? { extra } : {}),
|
|
98
|
+
}) + '\n';
|
|
99
|
+
appendFileSync(getDaemonLogPath(), line, { encoding: 'utf8' });
|
|
100
|
+
}
|
|
101
|
+
catch {
|
|
102
|
+
// Never let logging errors surface to callers.
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Write a crash record to ~/.gramatr/debug/daemon-crash.json.
|
|
107
|
+
* Overwrites on each crash — only the latest crash is kept.
|
|
108
|
+
*/
|
|
109
|
+
export function writeCrashRecord(record) {
|
|
110
|
+
try {
|
|
111
|
+
ensureDebugDir();
|
|
112
|
+
writeFileSync(getDaemonCrashPath(), JSON.stringify(record, null, 2) + '\n', { encoding: 'utf8', mode: 0o600 });
|
|
113
|
+
}
|
|
114
|
+
catch {
|
|
115
|
+
// Best-effort — don't let crash-record writes re-throw.
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Redirect process.stderr so every byte written to it is also appended to the
|
|
120
|
+
* daemon log file. Call once at daemon startup.
|
|
121
|
+
*
|
|
122
|
+
* Implementation: monkey-patches process.stderr.write(). The original write
|
|
123
|
+
* is always called first so stderr still works normally.
|
|
124
|
+
*/
|
|
125
|
+
export function redirectStderrToLog() {
|
|
126
|
+
const originalWrite = process.stderr.write.bind(process.stderr);
|
|
127
|
+
// process.stderr.write has two overloads; we need to handle both.
|
|
128
|
+
// eslint-disable-next-line @typescript-eslint/unbound-method
|
|
129
|
+
process.stderr.write = function patchedWrite(chunk, encodingOrCb, cb) {
|
|
130
|
+
// Call original first
|
|
131
|
+
let result;
|
|
132
|
+
if (typeof encodingOrCb === 'function') {
|
|
133
|
+
result = originalWrite(chunk, encodingOrCb);
|
|
134
|
+
}
|
|
135
|
+
else if (cb) {
|
|
136
|
+
result = originalWrite(chunk, encodingOrCb, cb);
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
result = originalWrite(chunk, encodingOrCb);
|
|
140
|
+
}
|
|
141
|
+
// Mirror to log file (best-effort, synchronous)
|
|
142
|
+
try {
|
|
143
|
+
const text = chunk instanceof Uint8Array ? Buffer.from(chunk).toString('utf8') : chunk;
|
|
144
|
+
ensureDebugDir();
|
|
145
|
+
rotateLogs();
|
|
146
|
+
appendFileSync(getDaemonLogPath(), text, { encoding: 'utf8' });
|
|
147
|
+
}
|
|
148
|
+
catch {
|
|
149
|
+
// Never let log mirroring break stderr
|
|
150
|
+
}
|
|
151
|
+
return result;
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Register process-level crash handlers.
|
|
156
|
+
* Should be called once, as early as possible in the daemon entry point.
|
|
157
|
+
*
|
|
158
|
+
* Captures:
|
|
159
|
+
* - process.on('uncaughtException')
|
|
160
|
+
* - process.on('unhandledRejection')
|
|
161
|
+
* - process.on('exit') when exit code != 0
|
|
162
|
+
*/
|
|
163
|
+
export function registerCrashHandlers() {
|
|
164
|
+
process.on('uncaughtException', (err, origin) => {
|
|
165
|
+
const record = {
|
|
166
|
+
timestamp: new Date().toISOString(),
|
|
167
|
+
exit_code: null,
|
|
168
|
+
signal: null,
|
|
169
|
+
last_known_state: `uncaughtException origin=${origin}`,
|
|
170
|
+
error_message: `${err.name}: ${err.message}${err.stack ? '\n' + err.stack : ''}`,
|
|
171
|
+
};
|
|
172
|
+
logDaemon('ERROR', 'uncaughtException — daemon will exit', { origin, error: record.error_message });
|
|
173
|
+
writeCrashRecord(record);
|
|
174
|
+
// Give the log write a moment then exit 1 (Node.js default behaviour)
|
|
175
|
+
process.exit(1);
|
|
176
|
+
});
|
|
177
|
+
process.on('unhandledRejection', (reason, promise) => {
|
|
178
|
+
const message = reason instanceof Error
|
|
179
|
+
? `${reason.name}: ${reason.message}${reason.stack ? '\n' + reason.stack : ''}`
|
|
180
|
+
: String(reason);
|
|
181
|
+
logDaemon('ERROR', 'unhandledRejection', { message, promise: String(promise) });
|
|
182
|
+
// Not fatal by default — log and continue. If it becomes fatal, the
|
|
183
|
+
// uncaughtException handler above will catch the ensuing exception.
|
|
184
|
+
});
|
|
185
|
+
process.on('exit', (code) => {
|
|
186
|
+
if (code !== 0) {
|
|
187
|
+
const record = {
|
|
188
|
+
timestamp: new Date().toISOString(),
|
|
189
|
+
exit_code: code,
|
|
190
|
+
signal: null,
|
|
191
|
+
last_known_state: 'process.exit with non-zero code',
|
|
192
|
+
error_message: `Exited with code ${code}`,
|
|
193
|
+
};
|
|
194
|
+
writeCrashRecord(record);
|
|
195
|
+
}
|
|
196
|
+
});
|
|
197
|
+
// SIGTERM / SIGKILL arrive as signals; capture the signal name in the crash
|
|
198
|
+
// record when the process is killed unexpectedly (not via gracefulShutdown).
|
|
199
|
+
// We use a flag so that gracefulShutdown can suppress the crash record.
|
|
200
|
+
let handledGracefully = false;
|
|
201
|
+
globalThis['__gramatrDaemonGracefulExit'] = () => { handledGracefully = true; };
|
|
202
|
+
process.on('SIGKILL', () => {
|
|
203
|
+
// SIGKILL cannot be caught — this handler is for documentation only.
|
|
204
|
+
});
|
|
205
|
+
// Wrap the exit handler to detect signal-induced exits
|
|
206
|
+
const origExit = process.exit.bind(process);
|
|
207
|
+
process.exit = (code) => {
|
|
208
|
+
const exitCode = typeof code === 'number' ? code : (code != null ? parseInt(String(code), 10) || 0 : 0);
|
|
209
|
+
if (!handledGracefully && exitCode !== 0) {
|
|
210
|
+
const record = {
|
|
211
|
+
timestamp: new Date().toISOString(),
|
|
212
|
+
exit_code: exitCode,
|
|
213
|
+
signal: null,
|
|
214
|
+
last_known_state: 'process.exit called',
|
|
215
|
+
error_message: `Exited with code ${exitCode}`,
|
|
216
|
+
};
|
|
217
|
+
writeCrashRecord(record);
|
|
218
|
+
}
|
|
219
|
+
return origExit(exitCode);
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
//# sourceMappingURL=daemon-logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daemon-logger.js","sourceRoot":"","sources":["../../src/daemon/daemon-logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/daemon/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/daemon/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAwDH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CA6GjD"}
|
package/dist/daemon/index.js
CHANGED
|
@@ -13,6 +13,7 @@ import { chmodSync, existsSync, mkdirSync, unlinkSync, writeFileSync } from 'nod
|
|
|
13
13
|
import { join } from 'node:path';
|
|
14
14
|
import { createDaemonServer, dispatchRpcRequest } from './server.js';
|
|
15
15
|
import { startHttpFallback } from './http-server.js';
|
|
16
|
+
import { redirectStderrToLog, registerCrashHandlers, logDaemon } from './daemon-logger.js';
|
|
16
17
|
import { writePidFile, writeDaemonToken, removePidFile, removeSocketFile, terminateOrphanDaemon, getDaemonSocketPath, getDaemonLockPath, writeHttpCredentials, removeHttpCredentials, } from './startup.js';
|
|
17
18
|
import { sessionRegistry } from './session-registry.js';
|
|
18
19
|
import { sqliteOwner } from './sqlite-owner.js';
|
|
@@ -49,6 +50,11 @@ function removeSentinel() {
|
|
|
49
50
|
}
|
|
50
51
|
let _httpServer = null;
|
|
51
52
|
export async function startDaemon() {
|
|
53
|
+
// Install crash handlers and stderr→logfile mirroring as the very first
|
|
54
|
+
// thing — before any I/O that could fail. This ensures that even startup
|
|
55
|
+
// errors are captured in ~/.gramatr/debug/daemon.log.
|
|
56
|
+
redirectStderrToLog();
|
|
57
|
+
registerCrashHandlers();
|
|
52
58
|
const sockPath = getDaemonSocketPath();
|
|
53
59
|
// Ensure ~/.gramatr/ is 0700 — world-traversable dir exposes the socket path (#1453).
|
|
54
60
|
const gramatrDir = join(sockPath, '..');
|
|
@@ -140,6 +146,11 @@ export async function startDaemon() {
|
|
|
140
146
|
process.stderr.write(`[gramatr-daemon] listening on ${sockPath} (pid ${process.pid})\n`);
|
|
141
147
|
}
|
|
142
148
|
async function gracefulShutdown(server, reason) {
|
|
149
|
+
// Signal the crash handler that this is intentional so no crash record is written.
|
|
150
|
+
const markGraceful = globalThis['__gramatrDaemonGracefulExit'];
|
|
151
|
+
if (typeof markGraceful === 'function')
|
|
152
|
+
markGraceful();
|
|
153
|
+
logDaemon('INFO', `daemon shutting down (${reason})`);
|
|
143
154
|
process.stderr.write(`[gramatr-daemon] shutting down (${reason})\n`);
|
|
144
155
|
server.close();
|
|
145
156
|
_httpServer?.close();
|
package/dist/daemon/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/daemon/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACtF,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAoB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/daemon/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,7 +22,19 @@ export interface DaemonResponse {
|
|
|
22
22
|
data?: unknown;
|
|
23
23
|
};
|
|
24
24
|
}
|
|
25
|
-
export type DaemonMethod = 'tool/call' | 'session/register' | 'session/release' | 'session/context/get' | 'session/context/set' | 'project/resolve' | 'project/cache-set' | 'db/query' | 'agent/store' | 'agent/get' | 'agent/list' | 'agent/expire' | 'daemon/ping' | 'daemon/shutdown' | 'orchestration/run-create' | 'orchestration/run-get' | 'orchestration/run-list' | 'orchestration/run-update' | 'orchestration/task-enqueue' | 'orchestration/task-get' | 'orchestration/task-list' | 'orchestration/task-pickup' | 'orchestration/task-complete' | 'orchestration/approval-create' | 'orchestration/approval-resolve' | 'orchestration/approval-get' | 'orchestration/status-dashboard';
|
|
25
|
+
export type DaemonMethod = 'tool/call' | 'session/register' | 'session/release' | 'session/context/get' | 'session/context/set' | 'project/resolve' | 'project/cache-set' | 'db/query' | 'agent/store' | 'agent/get' | 'agent/list' | 'agent/expire' | 'daemon/ping' | 'daemon/shutdown' | 'orchestration/run-create' | 'orchestration/run-get' | 'orchestration/run-list' | 'orchestration/run-update' | 'orchestration/task-enqueue' | 'orchestration/task-get' | 'orchestration/task-list' | 'orchestration/task-pickup' | 'orchestration/task-complete' | 'orchestration/approval-create' | 'orchestration/approval-resolve' | 'orchestration/approval-get' | 'orchestration/status-dashboard' | 'db/write';
|
|
26
|
+
/**
|
|
27
|
+
* Parameters for the db/write IPC method.
|
|
28
|
+
*
|
|
29
|
+
* Routes INSERT/INSERT OR REPLACE operations for turns, op_history, and
|
|
30
|
+
* compacts through the daemon's owned SQLite connection — eliminating
|
|
31
|
+
* SQLITE_BUSY collisions when 4+ concurrent hook processes write simultaneously.
|
|
32
|
+
*/
|
|
33
|
+
export interface DbWriteParams {
|
|
34
|
+
table: 'turns' | 'op_history' | 'compacts';
|
|
35
|
+
operation: 'insert' | 'insert_or_replace';
|
|
36
|
+
record: Record<string, unknown>;
|
|
37
|
+
}
|
|
26
38
|
/**
|
|
27
39
|
* Parameters for the db/query IPC method.
|
|
28
40
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ipc-protocol.d.ts","sourceRoot":"","sources":["../../src/daemon/ipc-protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,KAAK,CAAC;IACf,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,KAAK,CAAC;IACf,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CAC3D;AAED,MAAM,MAAM,YAAY,GACpB,WAAW,GACX,kBAAkB,GAClB,iBAAiB,GACjB,qBAAqB,GACrB,qBAAqB,GACrB,iBAAiB,GACjB,mBAAmB,GACnB,UAAU,GACV,aAAa,GACb,WAAW,GACX,YAAY,GACZ,cAAc,GACd,aAAa,GACb,iBAAiB,GAEjB,0BAA0B,GAC1B,uBAAuB,GACvB,wBAAwB,GACxB,0BAA0B,GAC1B,4BAA4B,GAC5B,wBAAwB,GACxB,yBAAyB,GACzB,2BAA2B,GAC3B,6BAA6B,GAC7B,+BAA+B,GAC/B,gCAAgC,GAChC,4BAA4B,GAC5B,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"ipc-protocol.d.ts","sourceRoot":"","sources":["../../src/daemon/ipc-protocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ipc-protocol.js","sourceRoot":"","sources":["../../src/daemon/ipc-protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"ipc-protocol.js","sourceRoot":"","sources":["../../src/daemon/ipc-protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA+KH,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/daemon/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAgB,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/daemon/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAgB,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,MAAM,UAAU,CAAC;AAQlE,OAAO,KAAK,EAAE,aAAa,EAAsE,MAAM,mBAAmB,CAAC;AA+G3H;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAya7E;AAoGD,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAW5D;AAED,wBAAgB,gBAAgB,IAAI,GAAG,CAAC,MAAM,CAAC,CAE9C"}
|
package/dist/daemon/server.js
CHANGED
|
@@ -18,6 +18,7 @@ import { sessionRegistry } from './session-registry.js';
|
|
|
18
18
|
import { projectCache } from './project-cache.js';
|
|
19
19
|
import { sqliteOwner } from './sqlite-owner.js';
|
|
20
20
|
import { VERSION } from '../hooks/lib/version.js';
|
|
21
|
+
import { logDaemon } from './daemon-logger.js';
|
|
21
22
|
const contextStore = new Map();
|
|
22
23
|
const activeSockets = new Set();
|
|
23
24
|
let _server = null;
|
|
@@ -247,6 +248,62 @@ export async function dispatchRpcRequest(req) {
|
|
|
247
248
|
sqliteOwner.resetIdleTimer();
|
|
248
249
|
return { ok: true };
|
|
249
250
|
}
|
|
251
|
+
case 'db/write': {
|
|
252
|
+
const { table, operation, record } = params;
|
|
253
|
+
const db = sqliteOwner.getDb();
|
|
254
|
+
if (!db)
|
|
255
|
+
return { ok: false, reason: 'db_unavailable' };
|
|
256
|
+
try {
|
|
257
|
+
switch (table) {
|
|
258
|
+
case 'turns': {
|
|
259
|
+
const sql = operation === 'insert_or_replace'
|
|
260
|
+
? `INSERT OR REPLACE INTO turns
|
|
261
|
+
(session_id, client_session_id, project_id, agent_name,
|
|
262
|
+
turn_number, timestamp, prompt, effort_level, intent_type, confidence, tokens_saved)
|
|
263
|
+
VALUES
|
|
264
|
+
(@session_id, @client_session_id, @project_id, @agent_name,
|
|
265
|
+
@turn_number, @timestamp, @prompt, @effort_level, @intent_type, @confidence, @tokens_saved)`
|
|
266
|
+
: `INSERT INTO turns
|
|
267
|
+
(session_id, client_session_id, project_id, agent_name,
|
|
268
|
+
turn_number, timestamp, prompt, effort_level, intent_type, confidence, tokens_saved)
|
|
269
|
+
VALUES
|
|
270
|
+
(@session_id, @client_session_id, @project_id, @agent_name,
|
|
271
|
+
@turn_number, @timestamp, @prompt, @effort_level, @intent_type, @confidence, @tokens_saved)`;
|
|
272
|
+
db.prepare(sql).run(record);
|
|
273
|
+
break;
|
|
274
|
+
}
|
|
275
|
+
case 'op_history': {
|
|
276
|
+
const sql = operation === 'insert_or_replace'
|
|
277
|
+
? `INSERT OR REPLACE INTO op_history (session_id, tool, time_ms, tokens_saved, timestamp)
|
|
278
|
+
VALUES (@session_id, @tool, @time_ms, @tokens_saved, @timestamp)`
|
|
279
|
+
: `INSERT INTO op_history (session_id, tool, time_ms, tokens_saved, timestamp)
|
|
280
|
+
VALUES (@session_id, @tool, @time_ms, @tokens_saved, @timestamp)`;
|
|
281
|
+
db.prepare(sql).run(record);
|
|
282
|
+
break;
|
|
283
|
+
}
|
|
284
|
+
case 'compacts': {
|
|
285
|
+
// compacts always uses INSERT OR REPLACE — only one compact per id.
|
|
286
|
+
db.prepare(`
|
|
287
|
+
INSERT OR REPLACE INTO compacts
|
|
288
|
+
(id, project_id, session_id, created_at, summary, turns_json, metadata_json)
|
|
289
|
+
VALUES
|
|
290
|
+
(@id, @project_id, @session_id, @created_at, @summary, @turns_json, @metadata_json)
|
|
291
|
+
`).run(record);
|
|
292
|
+
break;
|
|
293
|
+
}
|
|
294
|
+
default: {
|
|
295
|
+
throw Object.assign(new Error(`db/write: unknown table: ${String(table)}`), { code: -32601 });
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
catch (err) {
|
|
300
|
+
if (err !== null && typeof err === 'object' && 'code' in err)
|
|
301
|
+
throw err;
|
|
302
|
+
throw Object.assign(new Error(`db/write(${String(table)}) failed: ${err instanceof Error ? err.message : String(err)}`), { code: -32603 });
|
|
303
|
+
}
|
|
304
|
+
sqliteOwner.resetIdleTimer();
|
|
305
|
+
return { ok: true };
|
|
306
|
+
}
|
|
250
307
|
case 'db/query': {
|
|
251
308
|
const { operation, args } = params;
|
|
252
309
|
const result = handleDbQuery(operation, args);
|
|
@@ -530,6 +587,16 @@ async function handleRpc(line, socket, rl) {
|
|
|
530
587
|
const isRpcError = err !== null && typeof err === 'object' && 'code' in err;
|
|
531
588
|
const code = isRpcError ? err.code : -32603;
|
|
532
589
|
const message = err instanceof Error ? err.message : String(err);
|
|
590
|
+
// Log internal errors (code -32603) structurally — they indicate unexpected
|
|
591
|
+
// failures, not intentional JSON-RPC error responses.
|
|
592
|
+
if (code === -32603) {
|
|
593
|
+
logDaemon('ERROR', 'unhandled error in request handler', {
|
|
594
|
+
method: req.method,
|
|
595
|
+
id: req.id,
|
|
596
|
+
error: message,
|
|
597
|
+
stack: err instanceof Error ? err.stack : undefined,
|
|
598
|
+
});
|
|
599
|
+
}
|
|
533
600
|
sendError(code, message);
|
|
534
601
|
}
|
|
535
602
|
}
|
|
@@ -539,6 +606,7 @@ export function createDaemonServer(authToken) {
|
|
|
539
606
|
const server = createServer(handleConnection);
|
|
540
607
|
_server = server;
|
|
541
608
|
server.on('error', (err) => {
|
|
609
|
+
logDaemon('ERROR', 'IPC server error', { code: err.code, message: err.message });
|
|
542
610
|
process.stderr.write(`[gramatr-daemon] server error: ${err.message}\n`);
|
|
543
611
|
});
|
|
544
612
|
return server;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/daemon/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/daemon/server.ts"],"names":[],"mappings":"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"}
|
package/dist/hooks/compact.js
CHANGED
|
@@ -14,7 +14,7 @@ export async function runCompactHook(_args = []) {
|
|
|
14
14
|
const projectId = sessionCtx?.project_id
|
|
15
15
|
?? resolveLocalProjectUuid({ directory: git.root, projectName: git.projectName })
|
|
16
16
|
?? null;
|
|
17
|
-
const result = writeCompact({ sessionId, projectId, projectSlug: git.projectName, gitRoot: git.root });
|
|
17
|
+
const result = await writeCompact({ sessionId, projectId, projectSlug: git.projectName, gitRoot: git.root });
|
|
18
18
|
process.stderr.write(`[gramatr] compact saved: ${result.id} (${result.turnCount} turns)\n`);
|
|
19
19
|
process.stdout.write(`${result.summary}\n`);
|
|
20
20
|
return 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compact.js","sourceRoot":"","sources":["../../src/hooks/compact.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,QAAkB,EAAE;IACvD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;QAC5B,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;YAClE,OAAO,CAAC,CAAC;QACX,CAAC;QAED,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;QACvC,MAAM,SAAS,GAAG,UAAU,EAAE,UAAU,IAAI,SAAS,CAAC;QACtD,MAAM,SAAS,GAAG,UAAU,EAAE,UAAU;eACnC,uBAAuB,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC;eAC9E,IAAI,CAAC;QAEV,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"compact.js","sourceRoot":"","sources":["../../src/hooks/compact.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,QAAkB,EAAE;IACvD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;QAC5B,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;YAClE,OAAO,CAAC,CAAC;QACX,CAAC;QAED,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;QACvC,MAAM,SAAS,GAAG,UAAU,EAAE,UAAU,IAAI,SAAS,CAAC;QACtD,MAAM,SAAS,GAAG,UAAU,EAAE,UAAU;eACnC,uBAAuB,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC;eAC9E,IAAI,CAAC;QAEV,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAE7G,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,SAAS,WAAW,CAAC,CAAC;QAC5F,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;QAC5C,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClE,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC"}
|
|
@@ -16,7 +16,7 @@ export declare function writeCompact(opts: {
|
|
|
16
16
|
projectId: string | null;
|
|
17
17
|
projectSlug: string;
|
|
18
18
|
gitRoot: string | null;
|
|
19
|
-
}): CompactResult
|
|
19
|
+
}): Promise<CompactResult>;
|
|
20
20
|
/** Build the injection message for the agent based on client capabilities. */
|
|
21
21
|
export declare function buildCompactInjection(opts: {
|
|
22
22
|
compactId: string;
|