@gramatr/mcp 0.7.10 → 0.7.14
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/__mocks__/bun-sqlite.d.ts +35 -0
- package/dist/__mocks__/bun-sqlite.d.ts.map +1 -0
- package/dist/__mocks__/bun-sqlite.js +89 -0
- package/dist/__mocks__/bun-sqlite.js.map +1 -0
- package/dist/bin/build-mcpb.d.ts +2 -5
- package/dist/bin/build-mcpb.d.ts.map +1 -1
- package/dist/bin/build-mcpb.js +20 -43
- package/dist/bin/build-mcpb.js.map +1 -1
- package/dist/bin/gramatr-mcp.d.ts +10 -2
- package/dist/bin/gramatr-mcp.d.ts.map +1 -1
- package/dist/bin/gramatr-mcp.js +73 -15
- package/dist/bin/gramatr-mcp.js.map +1 -1
- package/dist/bin/login.d.ts.map +1 -1
- package/dist/bin/login.js +5 -0
- package/dist/bin/login.js.map +1 -1
- package/dist/bin/setup.d.ts +13 -10
- package/dist/bin/setup.d.ts.map +1 -1
- package/dist/bin/setup.js +88 -42
- package/dist/bin/setup.js.map +1 -1
- package/dist/cache/lru-cache.js +1 -1
- package/dist/config-runtime.d.ts +13 -0
- package/dist/config-runtime.d.ts.map +1 -1
- package/dist/config-runtime.js +24 -0
- package/dist/config-runtime.js.map +1 -1
- package/dist/gramatr +0 -0
- package/dist/hooks/input-validator.d.ts.map +1 -1
- package/dist/hooks/input-validator.js +27 -9
- package/dist/hooks/input-validator.js.map +1 -1
- package/dist/hooks/lib/client-runtime.d.ts +7 -0
- package/dist/hooks/lib/client-runtime.d.ts.map +1 -0
- package/dist/hooks/lib/client-runtime.js +22 -0
- package/dist/hooks/lib/client-runtime.js.map +1 -0
- package/dist/hooks/lib/hook-state.d.ts +7 -2
- package/dist/hooks/lib/hook-state.d.ts.map +1 -1
- package/dist/hooks/lib/hook-state.js +56 -35
- package/dist/hooks/lib/hook-state.js.map +1 -1
- package/dist/hooks/lib/intelligence.d.ts.map +1 -1
- package/dist/hooks/lib/intelligence.js +281 -427
- package/dist/hooks/lib/intelligence.js.map +1 -1
- package/dist/hooks/lib/routing.d.ts +6 -1
- package/dist/hooks/lib/routing.d.ts.map +1 -1
- package/dist/hooks/lib/routing.js +35 -11
- package/dist/hooks/lib/routing.js.map +1 -1
- package/dist/hooks/lib/session.d.ts.map +1 -1
- package/dist/hooks/lib/session.js +3 -4
- package/dist/hooks/lib/session.js.map +1 -1
- package/dist/hooks/lib/tool-envelope.d.ts +9 -0
- package/dist/hooks/lib/tool-envelope.d.ts.map +1 -0
- package/dist/hooks/lib/tool-envelope.js +24 -0
- package/dist/hooks/lib/tool-envelope.js.map +1 -0
- package/dist/hooks/lib/types.d.ts +7 -0
- package/dist/hooks/lib/types.d.ts.map +1 -1
- package/dist/hooks/lib/version.d.ts.map +1 -1
- package/dist/hooks/lib/version.js +3 -0
- package/dist/hooks/lib/version.js.map +1 -1
- package/dist/hooks/rating-capture.d.ts.map +1 -1
- package/dist/hooks/rating-capture.js +7 -2
- package/dist/hooks/rating-capture.js.map +1 -1
- package/dist/hooks/session-end.d.ts.map +1 -1
- package/dist/hooks/session-end.js +8 -6
- package/dist/hooks/session-end.js.map +1 -1
- package/dist/hooks/session-start.d.ts.map +1 -1
- package/dist/hooks/session-start.js +39 -13
- package/dist/hooks/session-start.js.map +1 -1
- package/dist/hooks/stop.d.ts.map +1 -1
- package/dist/hooks/stop.js +18 -6
- package/dist/hooks/stop.js.map +1 -1
- package/dist/hooks/user-prompt-submit.d.ts.map +1 -1
- package/dist/hooks/user-prompt-submit.js +24 -11
- package/dist/hooks/user-prompt-submit.js.map +1 -1
- package/dist/intelligence/packet2-fetcher.d.ts +2 -2
- package/dist/intelligence/packet2-fetcher.d.ts.map +1 -1
- package/dist/intelligence/packet2-fetcher.js +24 -5
- package/dist/intelligence/packet2-fetcher.js.map +1 -1
- package/dist/intelligence/session-manager.d.ts.map +1 -1
- package/dist/intelligence/session-manager.js +25 -1
- package/dist/intelligence/session-manager.js.map +1 -1
- package/dist/proxy/tool-proxy.d.ts.map +1 -1
- package/dist/proxy/tool-proxy.js +57 -11
- package/dist/proxy/tool-proxy.js.map +1 -1
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +8 -9
- package/dist/server/server.js.map +1 -1
- package/dist/setup/instructions.d.ts +2 -2
- package/dist/setup/instructions.d.ts.map +1 -1
- package/dist/setup/instructions.js +35 -11
- package/dist/setup/instructions.js.map +1 -1
- package/dist/setup/integrations.d.ts +1 -1
- package/dist/setup/integrations.d.ts.map +1 -1
- package/dist/setup/integrations.js +7 -4
- package/dist/setup/integrations.js.map +1 -1
- package/dist/setup/targets.d.ts +1 -1
- package/dist/setup/targets.d.ts.map +1 -1
- package/dist/setup/targets.js +2 -3
- package/dist/setup/targets.js.map +1 -1
- package/dist/setup/web-connector.d.ts.map +1 -1
- package/dist/setup/web-connector.js +3 -1
- package/dist/setup/web-connector.js.map +1 -1
- package/package.json +10 -7
package/dist/cache/lru-cache.js
CHANGED
package/dist/config-runtime.d.ts
CHANGED
|
@@ -77,4 +77,17 @@ export declare function isGramatrEnrichEnabledFromEnv(): boolean;
|
|
|
77
77
|
* 2. `CLAUDE_MODEL`
|
|
78
78
|
*/
|
|
79
79
|
export declare function getClaudeModelFromEnv(): string | null;
|
|
80
|
+
/**
|
|
81
|
+
* Packet delivery mode for hook enrichment.
|
|
82
|
+
*
|
|
83
|
+
* - `wait` (default): block briefly for Packet 2 and return merged context
|
|
84
|
+
* - `instant`: return Packet 1 immediately and let the model fetch Packet 2
|
|
85
|
+
*/
|
|
86
|
+
export declare function getGramatrPacketModeFromEnv(): 'wait' | 'instant';
|
|
87
|
+
/**
|
|
88
|
+
* Max wait time for Packet 2 readiness in milliseconds.
|
|
89
|
+
*
|
|
90
|
+
* Defaults to 20000ms. Invalid values fall back to default.
|
|
91
|
+
*/
|
|
92
|
+
export declare function getGramatrPacket2WaitMsFromEnv(defaultMs?: number): number;
|
|
80
93
|
//# sourceMappingURL=config-runtime.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-runtime.d.ts","sourceRoot":"","sources":["../src/config-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,GAAG,IAAI,CAMtD;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,GAAG,IAAI,CAGpD;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,GAAG,IAAI,CAGpD;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAMnC;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAKlE;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,IAAI,OAAO,CAEvD;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,GAAG,IAAI,CAMrD"}
|
|
1
|
+
{"version":3,"file":"config-runtime.d.ts","sourceRoot":"","sources":["../src/config-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,GAAG,IAAI,CAMtD;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,GAAG,IAAI,CAGpD;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,GAAG,IAAI,CAGpD;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAMnC;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAKlE;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,IAAI,OAAO,CAEvD;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,GAAG,IAAI,CAMrD;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,IAAI,MAAM,GAAG,SAAS,CAIhE;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAAC,SAAS,SAAQ,GAAG,MAAM,CAKxE"}
|
package/dist/config-runtime.js
CHANGED
|
@@ -115,4 +115,28 @@ export function getClaudeModelFromEnv() {
|
|
|
115
115
|
return claude;
|
|
116
116
|
return null;
|
|
117
117
|
}
|
|
118
|
+
/**
|
|
119
|
+
* Packet delivery mode for hook enrichment.
|
|
120
|
+
*
|
|
121
|
+
* - `wait` (default): block briefly for Packet 2 and return merged context
|
|
122
|
+
* - `instant`: return Packet 1 immediately and let the model fetch Packet 2
|
|
123
|
+
*/
|
|
124
|
+
export function getGramatrPacketModeFromEnv() {
|
|
125
|
+
const raw = process.env.GRAMATR_PACKET_MODE?.trim().toLowerCase();
|
|
126
|
+
if (raw === 'instant')
|
|
127
|
+
return 'instant';
|
|
128
|
+
return 'wait';
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Max wait time for Packet 2 readiness in milliseconds.
|
|
132
|
+
*
|
|
133
|
+
* Defaults to 20000ms. Invalid values fall back to default.
|
|
134
|
+
*/
|
|
135
|
+
export function getGramatrPacket2WaitMsFromEnv(defaultMs = 20000) {
|
|
136
|
+
const raw = process.env.GRAMATR_PACKET2_WAIT_MS;
|
|
137
|
+
if (!raw || raw.length === 0)
|
|
138
|
+
return defaultMs;
|
|
139
|
+
const parsed = Number.parseInt(raw, 10);
|
|
140
|
+
return Number.isFinite(parsed) && parsed > 0 ? parsed : defaultMs;
|
|
141
|
+
}
|
|
118
142
|
//# sourceMappingURL=config-runtime.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-runtime.js","sourceRoot":"","sources":["../src/config-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH;;;;;;;;;;GAUG;AACH,MAAM,UAAU,sBAAsB;IACpC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IAC1C,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC;IAClD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAC1C,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC;IAC/C,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB;IAClC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;IACpC,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB;IAClC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;IACpC,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU;IACxB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;IAC9B,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;IAC5C,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,WAAW,CAAC;IAC9D,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,SAAiB;IACxD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IACxC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC/C,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACxC,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AACpE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,6BAA6B;IAC3C,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,GAAG,CAAC;AAC5C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB;IACnC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IAC9C,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACxD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IACxC,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC;IAC/C,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
1
|
+
{"version":3,"file":"config-runtime.js","sourceRoot":"","sources":["../src/config-runtime.ts"],"names":[],"mappings":"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"}
|
package/dist/gramatr
ADDED
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-validator.d.ts","sourceRoot":"","sources":["../../src/hooks/input-validator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"input-validator.d.ts","sourceRoot":"","sources":["../../src/hooks/input-validator.ts"],"names":[],"mappings":"AA4EA,wBAAsB,qBAAqB,CAAC,KAAK,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAkBjF"}
|
|
@@ -18,43 +18,61 @@ function validate(toolName, input) {
|
|
|
18
18
|
const shortName = extractToolShortName(toolName);
|
|
19
19
|
const rules = TOOL_INPUT_RULES[shortName];
|
|
20
20
|
if (!rules || rules.length === 0)
|
|
21
|
-
return {
|
|
21
|
+
return { allow: true };
|
|
22
22
|
for (const rule of rules) {
|
|
23
23
|
const value = input[rule.field];
|
|
24
24
|
if (value === undefined || value === null || value === '') {
|
|
25
|
-
return {
|
|
25
|
+
return { allow: false, reason: `Missing required field "${rule.field}" for ${shortName}. Provide a non-empty value.` };
|
|
26
26
|
}
|
|
27
27
|
if (rule.validValues && typeof value === 'string') {
|
|
28
28
|
const validSet = rule.field === 'entity_type' ? ENTITY_TYPE_SET : new Set(rule.validValues);
|
|
29
29
|
if (!validSet.has(value)) {
|
|
30
|
-
return {
|
|
30
|
+
return { allow: false, reason: `Invalid ${rule.field}="${value}" for ${shortName}. Valid values: ${rule.validValues.join(', ')}` };
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
if ('entity_type' in input && typeof input.entity_type === 'string' && !ENTITY_TYPE_SET.has(input.entity_type)) {
|
|
35
35
|
return {
|
|
36
|
-
|
|
36
|
+
allow: false,
|
|
37
37
|
reason: `Invalid entity_type="${input.entity_type}". Call gramatr_list_entity_types for the full list.`,
|
|
38
38
|
};
|
|
39
39
|
}
|
|
40
|
-
return {
|
|
40
|
+
return { allow: true };
|
|
41
|
+
}
|
|
42
|
+
function buildPreToolUseOutput(allow, reason) {
|
|
43
|
+
if (allow) {
|
|
44
|
+
return {
|
|
45
|
+
hookSpecificOutput: {
|
|
46
|
+
hookEventName: 'PreToolUse',
|
|
47
|
+
permissionDecision: 'allow',
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
return {
|
|
52
|
+
hookSpecificOutput: {
|
|
53
|
+
hookEventName: 'PreToolUse',
|
|
54
|
+
permissionDecision: 'deny',
|
|
55
|
+
permissionDecisionReason: reason || 'Tool call blocked by gramatr input validation.',
|
|
56
|
+
},
|
|
57
|
+
};
|
|
41
58
|
}
|
|
42
59
|
export async function runInputValidatorHook(_args = []) {
|
|
43
60
|
const raw = await readStdin(2000);
|
|
44
61
|
if (!raw.trim()) {
|
|
45
|
-
process.stdout.write(JSON.stringify(
|
|
62
|
+
process.stdout.write(JSON.stringify(buildPreToolUseOutput(true)));
|
|
46
63
|
return 0;
|
|
47
64
|
}
|
|
48
65
|
try {
|
|
49
66
|
const input = JSON.parse(raw);
|
|
50
67
|
if (!input.tool_name || !input.tool_input) {
|
|
51
|
-
process.stdout.write(JSON.stringify(
|
|
68
|
+
process.stdout.write(JSON.stringify(buildPreToolUseOutput(true)));
|
|
52
69
|
return 0;
|
|
53
70
|
}
|
|
54
|
-
|
|
71
|
+
const result = validate(input.tool_name, input.tool_input);
|
|
72
|
+
process.stdout.write(JSON.stringify(buildPreToolUseOutput(result.allow, result.reason)));
|
|
55
73
|
}
|
|
56
74
|
catch {
|
|
57
|
-
process.stdout.write(JSON.stringify(
|
|
75
|
+
process.stdout.write(JSON.stringify(buildPreToolUseOutput(true)));
|
|
58
76
|
}
|
|
59
77
|
return 0;
|
|
60
78
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-validator.js","sourceRoot":"","sources":["../../src/hooks/input-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"input-validator.js","sourceRoot":"","sources":["../../src/hooks/input-validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export interface HookClientRuntime {
|
|
2
|
+
clientType: 'claude_code' | 'codex' | 'gemini_cli';
|
|
3
|
+
agentName: 'Claude Code' | 'Codex' | 'Gemini CLI';
|
|
4
|
+
modeFlag: '--claude' | '--codex' | '--gemini';
|
|
5
|
+
}
|
|
6
|
+
export declare function resolveHookClientRuntime(args?: string[]): HookClientRuntime;
|
|
7
|
+
//# sourceMappingURL=client-runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-runtime.d.ts","sourceRoot":"","sources":["../../../src/hooks/lib/client-runtime.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,aAAa,GAAG,OAAO,GAAG,YAAY,CAAC;IACnD,SAAS,EAAE,aAAa,GAAG,OAAO,GAAG,YAAY,CAAC;IAClD,QAAQ,EAAE,UAAU,GAAG,SAAS,GAAG,UAAU,CAAC;CAC/C;AAED,wBAAgB,wBAAwB,CAAC,IAAI,GAAE,MAAM,EAAO,GAAG,iBAAiB,CAoB/E"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export function resolveHookClientRuntime(args = []) {
|
|
2
|
+
if (args.includes('--codex')) {
|
|
3
|
+
return {
|
|
4
|
+
clientType: 'codex',
|
|
5
|
+
agentName: 'Codex',
|
|
6
|
+
modeFlag: '--codex',
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
if (args.includes('--gemini')) {
|
|
10
|
+
return {
|
|
11
|
+
clientType: 'gemini_cli',
|
|
12
|
+
agentName: 'Gemini CLI',
|
|
13
|
+
modeFlag: '--gemini',
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
return {
|
|
17
|
+
clientType: 'claude_code',
|
|
18
|
+
agentName: 'Claude Code',
|
|
19
|
+
modeFlag: '--claude',
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=client-runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-runtime.js","sourceRoot":"","sources":["../../../src/hooks/lib/client-runtime.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,wBAAwB,CAAC,OAAiB,EAAE;IAC1D,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,OAAO;YACL,UAAU,EAAE,OAAO;YACnB,SAAS,EAAE,OAAO;YAClB,QAAQ,EAAE,SAAS;SACpB,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,OAAO;YACL,UAAU,EAAE,YAAY;YACxB,SAAS,EAAE,YAAY;YACvB,QAAQ,EAAE,UAAU;SACrB,CAAC;IACJ,CAAC;IACD,OAAO;QACL,UAAU,EAAE,aAAa;QACzB,SAAS,EAAE,aAAa;QACxB,QAAQ,EAAE,UAAU;KACrB,CAAC;AACJ,CAAC"}
|
|
@@ -114,8 +114,13 @@ export declare function isFilesystemAvailable(): boolean;
|
|
|
114
114
|
export declare function hydrateSessionContextFromServer(sessionId: string): Promise<void>;
|
|
115
115
|
/** Write current project/session context so other hooks can read it. */
|
|
116
116
|
export declare function setSessionContext(ctx: SessionContext): void;
|
|
117
|
-
/**
|
|
118
|
-
|
|
117
|
+
/**
|
|
118
|
+
* Read session context.
|
|
119
|
+
*
|
|
120
|
+
* Prefer an exact session-id match when provided. Fallback to the most-recent
|
|
121
|
+
* row preserves legacy behavior for callers that do not pass a session id.
|
|
122
|
+
*/
|
|
123
|
+
export declare function getSessionContext(sessionId?: string): SessionContext | null;
|
|
119
124
|
/** Append one turn record. Called once per user-prompt-submit invocation. */
|
|
120
125
|
export declare function appendTurn(turn: TurnRecord): void;
|
|
121
126
|
/** Return all turns for a session and delete them atomically. Called at session-end. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-state.d.ts","sourceRoot":"","sources":["../../../src/hooks/lib/hook-state.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"hook-state.d.ts","sourceRoot":"","sources":["../../../src/hooks/lib/hook-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AASH,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,QAAQ;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IAEpB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,8EAA8E;AAC9E,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AA2JD,8DAA8D;AAC9D,wBAAgB,OAAO,IAAI,IAAI,CAG9B;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,CAI/C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,+BAA+B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA6DtF;AAID,wEAAwE;AACxE,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI,CAW3D;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAY3E;AAID,6EAA6E;AAC7E,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAOjD;AAED,wFAAwF;AACxF,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,EAAE,CAO1D;AAID,+DAA+D;AAC/D,wBAAgB,eAAe,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAKlD;AAED,6FAA6F;AAC7F,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,EAAE,CAO5D;AAID,gEAAgE;AAChE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAkB1E;AAED,2DAA2D;AAC3D,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI,CAMtF;AAED,wDAAwD;AACxD,wBAAgB,mCAAmC,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAOjG;AAID,2FAA2F;AAC3F,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAS7D;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC,eAAe,EAC/E,YAAY,GAAG,gBAAgB,GAAG,WAAW,GAAG,aAAa,GAAG,YAAY,GAAG,UAAU,CAC1F,GAAG,IAAI,CAaP;AAED,2EAA2E;AAC3E,wBAAgB,qBAAqB,IAAI,MAAM,GAAG,IAAI,CAKrD;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,mBAAmB,EAAE,GAAG,IAAI,CAyB9E;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAMnF;AAED,wFAAwF;AACxF,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAK5E;AAED,qEAAqE;AACrE,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAKhE"}
|
|
@@ -7,12 +7,20 @@
|
|
|
7
7
|
*
|
|
8
8
|
* Set GRAMATR_STATE_DB=:memory: in tests to avoid touching the filesystem.
|
|
9
9
|
*/
|
|
10
|
-
import Database from '
|
|
10
|
+
import { Database } from 'bun:sqlite';
|
|
11
11
|
import { existsSync, mkdirSync } from 'node:fs';
|
|
12
12
|
import { dirname, join } from 'node:path';
|
|
13
13
|
import { getGramatrDirFromEnv, getHomeDir } from '../../config-runtime.js';
|
|
14
14
|
// ── DB singleton ──
|
|
15
15
|
let _db = null;
|
|
16
|
+
/**
|
|
17
|
+
* Prefix all keys of a plain object with @ for bun:sqlite named parameter binding.
|
|
18
|
+
* bun:sqlite requires the param prefix (@, $, :) to be present in the object key,
|
|
19
|
+
* e.g. { '@session_id': val } for a query using @session_id.
|
|
20
|
+
*/
|
|
21
|
+
function p(obj) {
|
|
22
|
+
return Object.fromEntries(Object.entries(obj).map(([k, v]) => [`@${k}`, v]));
|
|
23
|
+
}
|
|
16
24
|
/** Set to false if the state DB directory cannot be created or the file cannot be opened. */
|
|
17
25
|
let _filesystemAvailable = true;
|
|
18
26
|
function getDbPath() {
|
|
@@ -42,8 +50,8 @@ function getDb() {
|
|
|
42
50
|
_filesystemAvailable = false;
|
|
43
51
|
_db = new Database(':memory:');
|
|
44
52
|
}
|
|
45
|
-
_db.
|
|
46
|
-
_db.
|
|
53
|
+
_db.exec('PRAGMA journal_mode = WAL');
|
|
54
|
+
_db.exec('PRAGMA synchronous = NORMAL');
|
|
47
55
|
_db.exec(`
|
|
48
56
|
CREATE TABLE IF NOT EXISTS session_context (
|
|
49
57
|
session_id TEXT PRIMARY KEY,
|
|
@@ -239,7 +247,7 @@ export async function hydrateSessionContextFromServer(sessionId) {
|
|
|
239
247
|
// ── Session context — cross-hook IPC ──
|
|
240
248
|
/** Write current project/session context so other hooks can read it. */
|
|
241
249
|
export function setSessionContext(ctx) {
|
|
242
|
-
getDb().
|
|
250
|
+
getDb().query(`
|
|
243
251
|
INSERT OR REPLACE INTO session_context
|
|
244
252
|
(session_id, project_id, interaction_id, entity_id, project_name, git_root,
|
|
245
253
|
git_branch, git_remote, working_directory, session_start, updated_at,
|
|
@@ -248,55 +256,68 @@ export function setSessionContext(ctx) {
|
|
|
248
256
|
(@session_id, @project_id, @interaction_id, @entity_id, @project_name, @git_root,
|
|
249
257
|
@git_branch, @git_remote, @working_directory, @session_start, @updated_at,
|
|
250
258
|
@client_type, @agent_name)
|
|
251
|
-
`).run(ctx);
|
|
259
|
+
`).run(p(ctx));
|
|
252
260
|
}
|
|
253
|
-
/**
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
261
|
+
/**
|
|
262
|
+
* Read session context.
|
|
263
|
+
*
|
|
264
|
+
* Prefer an exact session-id match when provided. Fallback to the most-recent
|
|
265
|
+
* row preserves legacy behavior for callers that do not pass a session id.
|
|
266
|
+
*/
|
|
267
|
+
export function getSessionContext(sessionId) {
|
|
268
|
+
const db = getDb();
|
|
269
|
+
if (sessionId && sessionId !== 'unknown') {
|
|
270
|
+
const scoped = db
|
|
271
|
+
.query('SELECT * FROM session_context WHERE session_id = ? ORDER BY updated_at DESC LIMIT 1')
|
|
272
|
+
.get(sessionId);
|
|
273
|
+
if (scoped)
|
|
274
|
+
return scoped;
|
|
275
|
+
}
|
|
276
|
+
const row = db
|
|
277
|
+
.query('SELECT * FROM session_context ORDER BY updated_at DESC LIMIT 1')
|
|
257
278
|
.get();
|
|
258
279
|
return row ?? null;
|
|
259
280
|
}
|
|
260
281
|
// ── Turns — per-prompt metadata accumulated across user-prompt-submit calls ──
|
|
261
282
|
/** Append one turn record. Called once per user-prompt-submit invocation. */
|
|
262
283
|
export function appendTurn(turn) {
|
|
263
|
-
getDb().
|
|
284
|
+
getDb().query(`
|
|
264
285
|
INSERT INTO turns
|
|
265
286
|
(session_id, turn_number, timestamp, prompt, effort_level, intent_type, confidence, tokens_saved)
|
|
266
287
|
VALUES
|
|
267
288
|
(@session_id, @turn_number, @timestamp, @prompt, @effort_level, @intent_type, @confidence, @tokens_saved)
|
|
268
|
-
`).run(turn);
|
|
289
|
+
`).run(p(turn));
|
|
269
290
|
}
|
|
270
291
|
/** Return all turns for a session and delete them atomically. Called at session-end. */
|
|
271
292
|
export function flushTurns(sessionId) {
|
|
272
293
|
const db = getDb();
|
|
273
294
|
const rows = db
|
|
274
|
-
.
|
|
295
|
+
.query('SELECT * FROM turns WHERE session_id = ? ORDER BY id')
|
|
275
296
|
.all(sessionId);
|
|
276
|
-
db.
|
|
297
|
+
db.query('DELETE FROM turns WHERE session_id = ?').run(sessionId);
|
|
277
298
|
return rows;
|
|
278
299
|
}
|
|
279
300
|
// ── Op history — tool call log accumulated per session ──
|
|
280
301
|
/** Append one op record. Called once per gramatr tool call. */
|
|
281
302
|
export function appendOpHistory(op) {
|
|
282
|
-
getDb().
|
|
303
|
+
getDb().query(`
|
|
283
304
|
INSERT INTO op_history (session_id, tool, time_ms, tokens_saved, timestamp)
|
|
284
305
|
VALUES (@session_id, @tool, @time_ms, @tokens_saved, @timestamp)
|
|
285
|
-
`).run(op);
|
|
306
|
+
`).run(p(op));
|
|
286
307
|
}
|
|
287
308
|
/** Return all op records for a session and delete them atomically. Called at session-end. */
|
|
288
309
|
export function flushOpHistory(sessionId) {
|
|
289
310
|
const db = getDb();
|
|
290
311
|
const rows = db
|
|
291
|
-
.
|
|
312
|
+
.query('SELECT * FROM op_history WHERE session_id = ? ORDER BY id')
|
|
292
313
|
.all(sessionId);
|
|
293
|
-
db.
|
|
314
|
+
db.query('DELETE FROM op_history WHERE session_id = ?').run(sessionId);
|
|
294
315
|
return rows;
|
|
295
316
|
}
|
|
296
317
|
// ── Latest classification — for statusline display and feedback ──
|
|
297
318
|
/** Overwrite the latest classification result for a session. */
|
|
298
319
|
export function setLatestClassification(record) {
|
|
299
|
-
getDb().
|
|
320
|
+
getDb().query(`
|
|
300
321
|
INSERT OR REPLACE INTO latest_classification
|
|
301
322
|
(session_id, classifier_model, classifier_time_ms, tokens_saved, savings_ratio,
|
|
302
323
|
effort, intent, confidence, memory_delivered, downstream_model,
|
|
@@ -309,15 +330,15 @@ export function setLatestClassification(record) {
|
|
|
309
330
|
@server_version, @stage_timing, @recorded_at,
|
|
310
331
|
@original_prompt, @pending_feedback, @feedback_submitted_at,
|
|
311
332
|
@client_type, @agent_name, @memory_tier, @memory_scope)
|
|
312
|
-
`).run({
|
|
333
|
+
`).run(p({
|
|
313
334
|
...record,
|
|
314
335
|
pending_feedback: record.pending_feedback ? 1 : 0,
|
|
315
|
-
});
|
|
336
|
+
}));
|
|
316
337
|
}
|
|
317
338
|
/** Read the latest classification record for a session. */
|
|
318
339
|
export function getLatestClassification(sessionId) {
|
|
319
340
|
const row = getDb()
|
|
320
|
-
.
|
|
341
|
+
.query('SELECT * FROM latest_classification WHERE session_id = ?')
|
|
321
342
|
.get(sessionId);
|
|
322
343
|
if (!row)
|
|
323
344
|
return null;
|
|
@@ -326,7 +347,7 @@ export function getLatestClassification(sessionId) {
|
|
|
326
347
|
/** Mark pending feedback as submitted for a session. */
|
|
327
348
|
export function markClassificationFeedbackSubmitted(sessionId, submittedAt) {
|
|
328
349
|
const ts = submittedAt ?? new Date().toISOString();
|
|
329
|
-
getDb().
|
|
350
|
+
getDb().query(`
|
|
330
351
|
UPDATE latest_classification
|
|
331
352
|
SET pending_feedback = 0, feedback_submitted_at = ?
|
|
332
353
|
WHERE session_id = ?
|
|
@@ -335,14 +356,14 @@ export function markClassificationFeedbackSubmitted(sessionId, submittedAt) {
|
|
|
335
356
|
// ── Session log — persistent history across sessions ──
|
|
336
357
|
/** Append a session-end entry. Replaces session-history.log + last-session-commits.txt. */
|
|
337
358
|
export function appendSessionLog(entry) {
|
|
338
|
-
getDb().
|
|
359
|
+
getDb().query(`
|
|
339
360
|
INSERT INTO session_log
|
|
340
361
|
(session_id, project_id, ended_at, reason, commit_log,
|
|
341
362
|
interaction_id, entity_id, client_type, agent_name, synced_at)
|
|
342
363
|
VALUES
|
|
343
364
|
(@session_id, @project_id, @ended_at, @reason, @commit_log,
|
|
344
365
|
@interaction_id, @entity_id, @client_type, @agent_name, @synced_at)
|
|
345
|
-
`).run(entry);
|
|
366
|
+
`).run(p(entry));
|
|
346
367
|
}
|
|
347
368
|
/**
|
|
348
369
|
* Return the most recent session log entry for a project.
|
|
@@ -350,7 +371,7 @@ export function appendSessionLog(entry) {
|
|
|
350
371
|
*/
|
|
351
372
|
export function getLastSessionForProject(projectId) {
|
|
352
373
|
const row = getDb()
|
|
353
|
-
.
|
|
374
|
+
.query(`
|
|
354
375
|
SELECT session_id, interaction_id, entity_id, client_type, agent_name, ended_at
|
|
355
376
|
FROM session_log
|
|
356
377
|
WHERE project_id = ?
|
|
@@ -363,7 +384,7 @@ export function getLastSessionForProject(projectId) {
|
|
|
363
384
|
/** Return the commit log from the most recent session that had commits. */
|
|
364
385
|
export function getLastSessionCommits() {
|
|
365
386
|
const row = getDb()
|
|
366
|
-
.
|
|
387
|
+
.query('SELECT commit_log FROM session_log WHERE commit_log IS NOT NULL ORDER BY id DESC LIMIT 1')
|
|
367
388
|
.get();
|
|
368
389
|
return row?.commit_log ?? null;
|
|
369
390
|
}
|
|
@@ -376,7 +397,7 @@ export function upsertSessionsFromServer(sessions) {
|
|
|
376
397
|
if (sessions.length === 0)
|
|
377
398
|
return;
|
|
378
399
|
const syncedAt = new Date().toISOString();
|
|
379
|
-
const stmt = getDb().
|
|
400
|
+
const stmt = getDb().query(`
|
|
380
401
|
INSERT OR IGNORE INTO session_log
|
|
381
402
|
(session_id, project_id, ended_at, reason, commit_log,
|
|
382
403
|
interaction_id, entity_id, client_type, agent_name, synced_at)
|
|
@@ -385,7 +406,7 @@ export function upsertSessionsFromServer(sessions) {
|
|
|
385
406
|
@interaction_id, @entity_id, @client_type, @agent_name, @synced_at)
|
|
386
407
|
`);
|
|
387
408
|
for (const s of sessions) {
|
|
388
|
-
stmt.run({
|
|
409
|
+
stmt.run(p({
|
|
389
410
|
session_id: s.client_session_id ?? s.id,
|
|
390
411
|
project_id: null,
|
|
391
412
|
ended_at: s.ended_at ?? null,
|
|
@@ -396,7 +417,7 @@ export function upsertSessionsFromServer(sessions) {
|
|
|
396
417
|
client_type: s.client_type ?? null,
|
|
397
418
|
agent_name: s.agent_name ?? null,
|
|
398
419
|
synced_at: syncedAt,
|
|
399
|
-
});
|
|
420
|
+
}));
|
|
400
421
|
}
|
|
401
422
|
}
|
|
402
423
|
/**
|
|
@@ -408,22 +429,22 @@ export function upsertSessionsFromServer(sessions) {
|
|
|
408
429
|
export function migrateProjectId(oldProjectId, newProjectId) {
|
|
409
430
|
if (oldProjectId === newProjectId)
|
|
410
431
|
return 0;
|
|
411
|
-
const
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
return
|
|
432
|
+
const db = getDb();
|
|
433
|
+
db.query('UPDATE session_log SET project_id = ? WHERE project_id = ?').run(newProjectId, oldProjectId);
|
|
434
|
+
const row = db.query('SELECT changes() as changes').get();
|
|
435
|
+
return row?.changes ?? 0;
|
|
415
436
|
}
|
|
416
437
|
/** Mark a local session as synced to the server after a successful session-end call. */
|
|
417
438
|
export function markSessionSynced(sessionId, syncedAt) {
|
|
418
439
|
const ts = syncedAt ?? new Date().toISOString();
|
|
419
440
|
getDb()
|
|
420
|
-
.
|
|
441
|
+
.query('UPDATE session_log SET synced_at = ? WHERE session_id = ?')
|
|
421
442
|
.run(ts, sessionId);
|
|
422
443
|
}
|
|
423
444
|
/** Count total sessions for a project (for "Session #N" display). */
|
|
424
445
|
export function getProjectSessionCount(projectId) {
|
|
425
446
|
const row = getDb()
|
|
426
|
-
.
|
|
447
|
+
.query('SELECT COUNT(*) as cnt FROM session_log WHERE project_id = ?')
|
|
427
448
|
.get(projectId);
|
|
428
449
|
return row?.cnt ?? 0;
|
|
429
450
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-state.js","sourceRoot":"","sources":["../../../src/hooks/lib/hook-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,QAAQ,MAAM,
|
|
1
|
+
{"version":3,"file":"hook-state.js","sourceRoot":"","sources":["../../../src/hooks/lib/hook-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intelligence.d.ts","sourceRoot":"","sources":["../../../src/hooks/lib/intelligence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAwC,aAAa,EAAE,MAAM,YAAY,CAAC;AAEtF,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,aAAa,GAAG,cAAc,GAAG,aAAa,GAAG,SAAS,CAAC;IACxF,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;
|
|
1
|
+
{"version":3,"file":"intelligence.d.ts","sourceRoot":"","sources":["../../../src/hooks/lib/intelligence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAwC,aAAa,EAAE,MAAM,YAAY,CAAC;AAEtF,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,aAAa,GAAG,cAAc,GAAG,aAAa,GAAG,SAAS,CAAC;IACxF,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAgHF,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAuBnE;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GACzC,IAAI,CAmBN;AA4ID,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,aAAa,EACnB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAC1C,MAAM,CAmGR;AAED,wBAAgB,UAAU,CACxB,IAAI,EAAE,aAAa,GAAG,IAAI,EAC1B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,aAAa,GAAG,IAAI,GAChC,IAAI,CA8BN"}
|