@gramatr/mcp 0.7.5 → 0.7.10

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.
Files changed (74) hide show
  1. package/dist/bin/gramatr-mcp.d.ts +5 -0
  2. package/dist/bin/gramatr-mcp.d.ts.map +1 -1
  3. package/dist/bin/gramatr-mcp.js +125 -2
  4. package/dist/bin/gramatr-mcp.js.map +1 -1
  5. package/dist/bin/setup.d.ts +16 -1
  6. package/dist/bin/setup.d.ts.map +1 -1
  7. package/dist/bin/setup.js +585 -2
  8. package/dist/bin/setup.js.map +1 -1
  9. package/dist/hooks/lib/feedback.d.ts +0 -2
  10. package/dist/hooks/lib/feedback.d.ts.map +1 -1
  11. package/dist/hooks/lib/feedback.js +18 -19
  12. package/dist/hooks/lib/feedback.js.map +1 -1
  13. package/dist/hooks/lib/formatting-compat.d.ts.map +1 -1
  14. package/dist/hooks/lib/formatting-compat.js +82 -55
  15. package/dist/hooks/lib/formatting-compat.js.map +1 -1
  16. package/dist/hooks/lib/gramatr-hook-utils.d.ts +0 -59
  17. package/dist/hooks/lib/gramatr-hook-utils.d.ts.map +1 -1
  18. package/dist/hooks/lib/gramatr-hook-utils.js +1 -212
  19. package/dist/hooks/lib/gramatr-hook-utils.js.map +1 -1
  20. package/dist/hooks/lib/hook-state.d.ts +159 -0
  21. package/dist/hooks/lib/hook-state.d.ts.map +1 -0
  22. package/dist/hooks/lib/hook-state.js +430 -0
  23. package/dist/hooks/lib/hook-state.js.map +1 -0
  24. package/dist/hooks/lib/intelligence.d.ts.map +1 -1
  25. package/dist/hooks/lib/intelligence.js +112 -88
  26. package/dist/hooks/lib/intelligence.js.map +1 -1
  27. package/dist/hooks/lib/routing.d.ts +2 -2
  28. package/dist/hooks/lib/routing.d.ts.map +1 -1
  29. package/dist/hooks/lib/routing.js +71 -25
  30. package/dist/hooks/lib/routing.js.map +1 -1
  31. package/dist/hooks/lib/session-end.d.ts +7 -0
  32. package/dist/hooks/lib/session-end.d.ts.map +1 -1
  33. package/dist/hooks/lib/session-end.js +33 -16
  34. package/dist/hooks/lib/session-end.js.map +1 -1
  35. package/dist/hooks/lib/session.d.ts +7 -38
  36. package/dist/hooks/lib/session.d.ts.map +1 -1
  37. package/dist/hooks/lib/session.js +43 -87
  38. package/dist/hooks/lib/session.js.map +1 -1
  39. package/dist/hooks/lib/types.d.ts +174 -36
  40. package/dist/hooks/lib/types.d.ts.map +1 -1
  41. package/dist/hooks/session-end.d.ts.map +1 -1
  42. package/dist/hooks/session-end.js +53 -45
  43. package/dist/hooks/session-end.js.map +1 -1
  44. package/dist/hooks/session-start.d.ts.map +1 -1
  45. package/dist/hooks/session-start.js +87 -77
  46. package/dist/hooks/session-start.js.map +1 -1
  47. package/dist/hooks/stop.d.ts.map +1 -1
  48. package/dist/hooks/stop.js +1 -10
  49. package/dist/hooks/stop.js.map +1 -1
  50. package/dist/hooks/user-prompt-submit.d.ts.map +1 -1
  51. package/dist/hooks/user-prompt-submit.js +57 -68
  52. package/dist/hooks/user-prompt-submit.js.map +1 -1
  53. package/dist/intelligence/packet2-fetcher.d.ts +3 -3
  54. package/dist/intelligence/packet2-fetcher.js +8 -8
  55. package/dist/intelligence/packet2-fetcher.js.map +1 -1
  56. package/dist/proxy/local-client.d.ts +49 -0
  57. package/dist/proxy/local-client.d.ts.map +1 -0
  58. package/dist/proxy/local-client.js +135 -0
  59. package/dist/proxy/local-client.js.map +1 -0
  60. package/dist/server/hooks-listener.d.ts +32 -0
  61. package/dist/server/hooks-listener.d.ts.map +1 -0
  62. package/dist/server/hooks-listener.js +144 -0
  63. package/dist/server/hooks-listener.js.map +1 -0
  64. package/dist/server/server.d.ts.map +1 -1
  65. package/dist/server/server.js +16 -1
  66. package/dist/server/server.js.map +1 -1
  67. package/dist/setup/instructions.js +13 -0
  68. package/dist/setup/instructions.js.map +1 -1
  69. package/dist/setup/integrations.js +3 -3
  70. package/dist/setup/integrations.js.map +1 -1
  71. package/dist/setup/web-connector.d.ts.map +1 -1
  72. package/dist/setup/web-connector.js +4 -0
  73. package/dist/setup/web-connector.js.map +1 -1
  74. package/package.json +5 -2
@@ -1,4 +1,5 @@
1
- import { callMcpToolDetailed, resolveMcpUrl, saveLastClassification, } from './gramatr-hook-utils.js';
1
+ import { setLatestClassification } from './hook-state.js';
2
+ import { callTool } from '../../proxy/local-client.js';
2
3
  export const MIN_PROMPT_LENGTH = 10;
3
4
  export const TRIVIAL_PATTERNS = /^(hi|hey|hello|yo|ok|yes|no|thanks|thank you|sure|yep|nope|k|bye|quit|exit)\b/i;
4
5
  export function shouldSkipPromptRouting(prompt) {
@@ -6,23 +7,53 @@ export function shouldSkipPromptRouting(prompt) {
6
7
  return trimmed.length < MIN_PROMPT_LENGTH || TRIVIAL_PATTERNS.test(trimmed);
7
8
  }
8
9
  export async function routePrompt(options) {
9
- const result = await callMcpToolDetailed('gramatr_route_request', {
10
+ const timeoutMs = options.timeoutMs ?? 15000;
11
+ const args = {
10
12
  prompt: options.prompt,
11
13
  ...(options.projectId ? { project_id: options.projectId } : {}),
12
14
  ...(options.sessionId ? { session_id: options.sessionId } : {}),
13
15
  ...(options.includeStatusline ? { include_statusline: true } : {}),
14
16
  ...(options.statuslineSize ? { statusline_size: options.statuslineSize } : {}),
15
- }, options.timeoutMs ?? 15000);
16
- return {
17
- route: result.data,
18
- error: result.error,
19
17
  };
18
+ try {
19
+ const timeoutPromise = new Promise((_, reject) => setTimeout(() => reject(new Error(`timeout after ${timeoutMs}ms`)), timeoutMs));
20
+ const raw = await Promise.race([
21
+ callTool('gramatr_route_request', args),
22
+ timeoutPromise,
23
+ ]);
24
+ const text = raw?.content?.[0]?.text;
25
+ if (!text) {
26
+ return { route: null, error: { reason: 'parse_error', detail: 'Empty response from proxy' } };
27
+ }
28
+ return { route: JSON.parse(text), error: null };
29
+ }
30
+ catch (error) {
31
+ const detail = error instanceof Error ? error.message : String(error);
32
+ if (detail.includes('timeout')) {
33
+ return { route: null, error: { reason: 'timeout', detail } };
34
+ }
35
+ if (detail.includes('401') || detail.toLowerCase().includes('unauthorized')) {
36
+ return { route: null, error: { reason: 'auth', detail } };
37
+ }
38
+ if (detail.includes('ECONNREFUSED') || detail.includes('fetch') || detail.includes('network')) {
39
+ return { route: null, error: { reason: 'network_error', detail } };
40
+ }
41
+ return { route: null, error: { reason: 'http_error', detail } };
42
+ }
20
43
  }
21
- export async function fetchEnrichment(enrichmentId, timeoutMs = 2000) {
44
+ export async function fetchEnrichment(enrichmentId, timeoutMs = 5000) {
22
45
  try {
23
- const result = await callMcpToolDetailed('gramatr_get_enrichment', { enrichment_id: enrichmentId, timeout_ms: timeoutMs }, timeoutMs + 1000);
24
- if (result.data && result.data.status === 'ready') {
25
- return result.data;
46
+ const timeoutPromise = new Promise((_, reject) => setTimeout(() => reject(new Error(`timeout after ${timeoutMs + 1000}ms`)), timeoutMs + 1000));
47
+ const raw = await Promise.race([
48
+ callTool('gramatr_get_enrichment', { enrichment_id: enrichmentId, timeout_ms: timeoutMs }),
49
+ timeoutPromise,
50
+ ]);
51
+ const text = raw?.content?.[0]?.text;
52
+ if (!text)
53
+ return null;
54
+ const result = JSON.parse(text);
55
+ if (result.status === 'ready') {
56
+ return result;
26
57
  }
27
58
  return null;
28
59
  }
@@ -48,7 +79,7 @@ export function describeRoutingFailure(error) {
48
79
  return {
49
80
  title: 'Routing request could not reach the gramatr MCP endpoint.',
50
81
  detail: error.detail,
51
- action: `Verify connectivity to ${resolveMcpUrl()}.`,
82
+ action: 'Verify connectivity to the gramatr server (GRAMATR_URL env or ~/.gramatr.json).',
52
83
  };
53
84
  case 'http_error':
54
85
  case 'mcp_error':
@@ -58,27 +89,42 @@ export function describeRoutingFailure(error) {
58
89
  return {
59
90
  title: 'Routing request failed before intelligence could be injected.',
60
91
  detail: error.detail,
61
- action: `Inspect the response from ${resolveMcpUrl()} and the gramatr_route_request handler.`,
92
+ action: 'Inspect the gramatr_route_request handler response. Check GRAMATR_URL and auth token.',
62
93
  };
63
94
  }
64
95
  }
65
96
  export function persistClassificationResult(options) {
66
- saveLastClassification(options.rootDir, {
67
- timestamp: new Date().toISOString(),
68
- original_prompt: options.prompt,
69
- effort_level: options.route?.classification?.effort_level || null,
70
- intent_type: options.route?.classification?.intent_type || null,
71
- confidence: options.route?.classification?.confidence ?? null,
72
- memory_tier: options.route?.classification?.memory_tier || null,
73
- memory_scope: options.route?.classification?.memory_scope
74
- || options.route?.routing_signals?.memory_scope
75
- || null,
76
- classifier_model: options.route?.execution_summary?.classifier_model || null,
97
+ const packet1 = options.route?.packet_1;
98
+ const classification = packet1?.classification || options.route?.classification;
99
+ const executionSummary = packet1?.execution_summary || options.route?.execution_summary;
100
+ const routingSignals = packet1?.routing_signals || options.route?.routing_signals;
101
+ const tokenSavings = packet1?.token_savings || options.route?.token_savings;
102
+ const memoryContext = packet1?.memory_context || options.route?.memory_context;
103
+ setLatestClassification({
104
+ session_id: options.sessionId,
105
+ classifier_model: executionSummary?.classifier_model || null,
106
+ classifier_time_ms: executionSummary?.classifier_time_ms || null,
107
+ tokens_saved: tokenSavings?.total_saved || tokenSavings?.tokens_saved || 0,
108
+ savings_ratio: tokenSavings?.savings_ratio || null,
109
+ effort: classification?.effort_level || null,
110
+ intent: classification?.intent_type || null,
111
+ confidence: classification?.confidence ?? null,
112
+ memory_delivered: memoryContext?.results?.length || null,
77
113
  downstream_model: options.downstreamModel || null,
78
- client_type: options.clientType,
79
- agent_name: options.agentName,
114
+ server_version: executionSummary?.server_version || null,
115
+ stage_timing: executionSummary?.stage_timing
116
+ ? JSON.stringify(executionSummary.stage_timing)
117
+ : null,
118
+ recorded_at: Date.now(),
119
+ original_prompt: options.prompt,
80
120
  pending_feedback: true,
81
121
  feedback_submitted_at: null,
122
+ client_type: options.clientType,
123
+ agent_name: options.agentName,
124
+ memory_tier: classification?.memory_tier || null,
125
+ memory_scope: classification?.memory_scope
126
+ || routingSignals?.memory_scope
127
+ || null,
82
128
  });
83
129
  }
84
130
  //# sourceMappingURL=routing.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"routing.js","sourceRoot":"","sources":["../../../src/hooks/lib/routing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routing.js","sourceRoot":"","sources":["../../../src/hooks/lib/routing.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,13 @@ export interface EndRemoteSessionOptions {
10
10
  projectId: string;
11
11
  summary: string;
12
12
  toolCallCount: number;
13
+ reason?: string;
14
+ gitBranch?: string;
15
+ gitRemote?: string;
16
+ clientType?: string;
17
+ agentName?: string;
18
+ startedAt?: string;
19
+ commitLog?: string | null;
13
20
  }
14
21
  export interface SessionEndResult {
15
22
  ok: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"session-end.d.ts","sourceRoot":"","sources":["../../../src/hooks/lib/session-end.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,OAAO,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAWtF;AAED,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,gBAAgB,CAAC,CAc3B"}
1
+ {"version":3,"file":"session-end.d.ts","sourceRoot":"","sources":["../../../src/hooks/lib/session-end.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,OAAO,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IAEtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAWtF;AAED,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,gBAAgB,CAAC,CAqB3B"}
@@ -1,21 +1,38 @@
1
- import { callMcpToolDetailed } from './gramatr-hook-utils.js';
1
+ import { callTool } from '../../proxy/local-client.js';
2
2
  export async function flushTurns(options) {
3
- const result = await callMcpToolDetailed('gramatr_batch_save_turns', {
4
- session_id: options.sessionId,
5
- project_id: options.projectId,
6
- turns: options.turns,
7
- }, 15000);
8
- return { ok: result.data !== null, hadError: result.error !== null };
3
+ try {
4
+ await callTool('gramatr_batch_save_turns', {
5
+ session_id: options.sessionId,
6
+ project_id: options.projectId,
7
+ turns: options.turns,
8
+ });
9
+ return { ok: true, hadError: false };
10
+ }
11
+ catch {
12
+ return { ok: false, hadError: true };
13
+ }
9
14
  }
10
15
  export async function endRemoteSession(options) {
11
- const result = await callMcpToolDetailed('gramatr_session_end', {
12
- entity_id: options.entityId,
13
- session_id: options.sessionId,
14
- interaction_id: options.interactionId,
15
- project_id: options.projectId,
16
- summary: options.summary,
17
- tool_call_count: options.toolCallCount,
18
- }, 15000);
19
- return { ok: result.data !== null, hadError: result.error !== null };
16
+ try {
17
+ await callTool('gramatr_session_end', {
18
+ entity_id: options.entityId,
19
+ session_id: options.sessionId,
20
+ interaction_id: options.interactionId,
21
+ project_id: options.projectId,
22
+ summary: options.summary,
23
+ tool_call_count: options.toolCallCount,
24
+ ...(options.reason !== undefined && { reason: options.reason }),
25
+ ...(options.gitBranch !== undefined && { git_branch: options.gitBranch }),
26
+ ...(options.gitRemote !== undefined && { git_remote: options.gitRemote }),
27
+ ...(options.clientType !== undefined && { client_type: options.clientType }),
28
+ ...(options.agentName !== undefined && { agent_name: options.agentName }),
29
+ ...(options.startedAt !== undefined && { started_at: options.startedAt }),
30
+ ...(options.commitLog !== undefined && { commit_log: options.commitLog }),
31
+ });
32
+ return { ok: true, hadError: false };
33
+ }
34
+ catch {
35
+ return { ok: false, hadError: true };
36
+ }
20
37
  }
21
38
  //# sourceMappingURL=session-end.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-end.js","sourceRoot":"","sources":["../../../src/hooks/lib/session-end.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAsB9D,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAA0B;IACzD,MAAM,MAAM,GAAG,MAAM,mBAAmB,CACtC,0BAA0B,EAC1B;QACE,UAAU,EAAE,OAAO,CAAC,SAAS;QAC7B,UAAU,EAAE,OAAO,CAAC,SAAS;QAC7B,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,EACD,KAAK,CACN,CAAC;IACF,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;AACvE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAgC;IAEhC,MAAM,MAAM,GAAG,MAAM,mBAAmB,CACtC,qBAAqB,EACrB;QACE,SAAS,EAAE,OAAO,CAAC,QAAQ;QAC3B,UAAU,EAAE,OAAO,CAAC,SAAS;QAC7B,cAAc,EAAE,OAAO,CAAC,aAAa;QACrC,UAAU,EAAE,OAAO,CAAC,SAAS;QAC7B,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,eAAe,EAAE,OAAO,CAAC,aAAa;KACvC,EACD,KAAK,CACN,CAAC;IACF,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;AACvE,CAAC"}
1
+ {"version":3,"file":"session-end.js","sourceRoot":"","sources":["../../../src/hooks/lib/session-end.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AA8BvD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAA0B;IACzD,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,0BAA0B,EAAE;YACzC,UAAU,EAAE,OAAO,CAAC,SAAS;YAC7B,UAAU,EAAE,OAAO,CAAC,SAAS;YAC7B,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC,CAAC;QACH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACvC,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAgC;IAEhC,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,qBAAqB,EAAE;YACpC,SAAS,EAAE,OAAO,CAAC,QAAQ;YAC3B,UAAU,EAAE,OAAO,CAAC,SAAS;YAC7B,cAAc,EAAE,OAAO,CAAC,aAAa;YACrC,UAAU,EAAE,OAAO,CAAC,SAAS;YAC7B,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,eAAe,EAAE,OAAO,CAAC,aAAa;YACtC,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;YAC/D,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;YACzE,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;YACzE,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;YAC5E,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;YACzE,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;YACzE,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;SAC1E,CAAC,CAAC;QACH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACvC,CAAC;AACH,CAAC"}
@@ -8,36 +8,15 @@ export interface PreparedProjectSession {
8
8
  hasRestoreContext: boolean;
9
9
  created: boolean;
10
10
  }
11
- export interface CurrentProjectContextPayload {
12
- type: 'git_project' | 'non_git';
13
- session_id: string;
14
- project_name: string;
15
- working_directory: string;
16
- session_start: string;
17
- gramatr_config_path: string;
18
- project_entity_id: string | null;
19
- action_required: string;
20
- project_id?: string;
21
- git_root?: string;
22
- git_branch?: string;
23
- git_commit?: string;
24
- git_remote?: string;
25
- restore_needed?: boolean;
26
- }
27
- export declare function getSharedStateDir(): string;
28
- export declare function getCurrentProjectContextPath(): string;
29
- export declare function getLastSessionCommitsPath(): string;
30
- export declare function getSessionHistoryLogPath(): string;
31
11
  export declare function normalizeSessionStartResponse(response: SessionStartResponse | null | undefined): {
32
12
  interactionId: string | null;
33
13
  entityId: string | null;
34
14
  resumed: boolean;
35
15
  handoffContext: string | null;
16
+ recentSessions: import('./types.js').RemoteSessionRecord[];
36
17
  };
37
18
  export declare function prepareProjectSessionState(options: {
38
19
  git: GitContext;
39
- sessionId: string;
40
- transcriptPath: string;
41
20
  }): PreparedProjectSession;
42
21
  export declare function startRemoteSession(options: {
43
22
  clientType: string;
@@ -45,24 +24,14 @@ export declare function startRemoteSession(options: {
45
24
  projectId: string;
46
25
  projectName?: string;
47
26
  gitRemote: string;
27
+ gitBranch?: string;
48
28
  directory: string;
49
29
  }): Promise<SessionStartResponse | null>;
50
30
  export declare function loadProjectHandoff(projectId: string): Promise<HandoffResponse | null>;
31
+ /**
32
+ * Persist the server-resolved project_id back to settings.json.
33
+ * The server may assign a stable UUID the first time a project is registered;
34
+ * storing it locally ensures all subsequent sessions use the same ID.
35
+ */
51
36
  export declare function persistSessionRegistration(rootDir: string, response: SessionStartResponse | null): GmtrConfig | null;
52
- export declare function writeCurrentProjectContextFile(payload: CurrentProjectContextPayload): void;
53
- export declare function buildGitProjectContextPayload(options: {
54
- git: GitContext;
55
- sessionId: string;
56
- workingDirectory: string;
57
- sessionStart: string;
58
- projectId: string;
59
- projectEntityId: string | null;
60
- restoreNeeded: boolean;
61
- }): CurrentProjectContextPayload;
62
- export declare function buildNonGitProjectContextPayload(options: {
63
- cwd: string;
64
- sessionId: string;
65
- sessionStart: string;
66
- projectEntityId: string | null;
67
- }): CurrentProjectContextPayload;
68
37
  //# sourceMappingURL=session.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/hooks/lib/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/hooks/lib/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,UAAU,EACf,KAAK,UAAU,EAKhB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAGxE,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,UAAU,CAAC;IACnB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,aAAa,EAAE,OAAO,CAAC;IACvB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,oBAAoB,GAAG,IAAI,GAAG,SAAS,GAChD;IACD,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,cAAc,EAAE,OAAO,YAAY,EAAE,mBAAmB,EAAE,CAAC;CAC5D,CAQA;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE;IAClD,GAAG,EAAE,UAAU,CAAC;CACjB,GAAG,sBAAsB,CA2CzB;AAED,wBAAsB,kBAAkB,CAAC,OAAO,EAAE;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAgBvC;AAED,wBAAsB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAW3F;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,oBAAoB,GAAG,IAAI,GAAG,UAAU,GAAG,IAAI,CAcpH"}
@@ -1,29 +1,17 @@
1
- import { existsSync, mkdirSync, writeFileSync } from 'fs';
2
- import { basename, join } from 'path';
3
- import { callMcpTool, createDefaultConfig, deriveProjectId, migrateConfig, now, readGmtrConfig, writeGmtrConfig, } from './gramatr-hook-utils.js';
4
- import { getGramatrDirFromEnv, getHomeDir } from '../../config-runtime.js';
5
- export function getSharedStateDir() {
6
- return join(getGramatrDirFromEnv() || join(getHomeDir(), '.gramatr'), '.state');
7
- }
8
- export function getCurrentProjectContextPath() {
9
- return join(getSharedStateDir(), 'current-project-context.json');
10
- }
11
- export function getLastSessionCommitsPath() {
12
- return join(getSharedStateDir(), 'last-session-commits.txt');
13
- }
14
- export function getSessionHistoryLogPath() {
15
- return join(getSharedStateDir(), 'session-history.log');
16
- }
1
+ import { createDefaultConfig, deriveProjectId, migrateConfig, now, readGmtrConfig, writeGmtrConfig, } from './gramatr-hook-utils.js';
2
+ import { callTool } from '../../proxy/local-client.js';
3
+ import { migrateProjectId } from './hook-state.js';
17
4
  export function normalizeSessionStartResponse(response) {
18
5
  return {
19
6
  interactionId: response?.interaction_id || response?.interactionId || null,
20
7
  entityId: response?.entity_id || response?.entityId || null,
21
8
  resumed: response?.interaction_resumed === true || response?.interactionResumed === true,
22
9
  handoffContext: response?.handoff_context || response?.handoffContext || null,
10
+ recentSessions: response?.recent_sessions ?? [],
23
11
  };
24
12
  }
25
13
  export function prepareProjectSessionState(options) {
26
- const { git, sessionId, transcriptPath } = options;
14
+ const { git } = options;
27
15
  const timestamp = now();
28
16
  let config = readGmtrConfig(git.root);
29
17
  let created = false;
@@ -33,7 +21,6 @@ export function prepareProjectSessionState(options) {
33
21
  const projectId = existingProjectId || deriveProjectId(git.remote, git.projectName);
34
22
  if (config) {
35
23
  config = migrateConfig(config, projectId);
36
- config.last_session_id = sessionId;
37
24
  config.project_id = projectId;
38
25
  // Store reference metadata alongside the project_id so we can
39
26
  // reconnect to the right project even if the UUID is opaque.
@@ -42,15 +29,6 @@ export function prepareProjectSessionState(options) {
42
29
  local_path: git.root,
43
30
  display_name: git.projectName,
44
31
  };
45
- config.current_session = {
46
- ...config.current_session,
47
- session_id: sessionId,
48
- transcript_path: transcriptPath,
49
- last_updated: timestamp,
50
- token_limit: 200000,
51
- };
52
- config.continuity_stats = config.continuity_stats || {};
53
- config.continuity_stats.total_sessions = (config.continuity_stats.total_sessions || 0) + 1;
54
32
  config.metadata = config.metadata || {};
55
33
  config.metadata.updated = timestamp;
56
34
  }
@@ -59,8 +37,6 @@ export function prepareProjectSessionState(options) {
59
37
  projectId,
60
38
  projectName: git.projectName,
61
39
  gitRemote: git.remote,
62
- sessionId,
63
- transcriptPath,
64
40
  });
65
41
  created = true;
66
42
  }
@@ -75,74 +51,54 @@ export function prepareProjectSessionState(options) {
75
51
  };
76
52
  }
77
53
  export async function startRemoteSession(options) {
78
- return (await callMcpTool('gramatr_session_start', {
79
- client_type: options.clientType,
80
- project_id: options.projectId,
81
- ...(options.projectName ? { project_name: options.projectName } : {}),
82
- git_remote: options.gitRemote,
83
- directory: options.directory,
84
- ...(options.sessionId ? { session_id: options.sessionId } : {}),
85
- }, 15000));
54
+ try {
55
+ const raw = await callTool('gramatr_session_start', {
56
+ client_type: options.clientType,
57
+ project_id: options.projectId,
58
+ ...(options.projectName ? { project_name: options.projectName } : {}),
59
+ git_remote: options.gitRemote,
60
+ ...(options.gitBranch ? { git_branch: options.gitBranch } : {}),
61
+ directory: options.directory,
62
+ ...(options.sessionId ? { session_id: options.sessionId } : {}),
63
+ });
64
+ const text = raw?.content?.[0]?.text;
65
+ return text ? JSON.parse(text) : null;
66
+ }
67
+ catch {
68
+ return null;
69
+ }
86
70
  }
87
71
  export async function loadProjectHandoff(projectId) {
88
- return (await callMcpTool('gramatr_load_handoff', { project_id: projectId }, 15000));
72
+ try {
73
+ const raw = await callTool('gramatr_load_handoff', { project_id: projectId });
74
+ const text = raw?.content?.[0]?.text;
75
+ return text ? JSON.parse(text) : null;
76
+ }
77
+ catch {
78
+ return null;
79
+ }
89
80
  }
81
+ /**
82
+ * Persist the server-resolved project_id back to settings.json.
83
+ * The server may assign a stable UUID the first time a project is registered;
84
+ * storing it locally ensures all subsequent sessions use the same ID.
85
+ */
90
86
  export function persistSessionRegistration(rootDir, response) {
91
- const normalized = normalizeSessionStartResponse(response);
92
- if (!normalized.interactionId && !normalized.entityId)
93
- return readGmtrConfig(rootDir);
94
87
  const config = readGmtrConfig(rootDir);
95
88
  if (!config)
96
89
  return null;
97
- config.current_session = config.current_session || {};
98
- if (normalized.interactionId)
99
- config.current_session.interaction_id = normalized.interactionId;
100
- if (normalized.entityId)
101
- config.current_session.gramatr_entity_id = normalized.entityId;
102
- // Persist server-resolved project_id (may be a UUID assigned by the server).
103
- // This is the key migration point: once the server returns a UUID, we store
104
- // it locally so all subsequent sessions use the stable ID.
105
90
  if (response?.project_id && response.project_id !== config.project_id) {
91
+ const oldProjectId = config.project_id;
106
92
  config.project_id = response.project_id;
93
+ writeGmtrConfig(rootDir, config);
94
+ // Backfill local session_log rows so count/lookup queries use the stable UUID
95
+ if (oldProjectId) {
96
+ try {
97
+ migrateProjectId(oldProjectId, response.project_id);
98
+ }
99
+ catch { /* non-critical */ }
100
+ }
107
101
  }
108
- writeGmtrConfig(rootDir, config);
109
102
  return config;
110
103
  }
111
- export function writeCurrentProjectContextFile(payload) {
112
- const stateDir = getSharedStateDir();
113
- if (!existsSync(stateDir))
114
- mkdirSync(stateDir, { recursive: true });
115
- const contextFile = getCurrentProjectContextPath();
116
- writeFileSync(contextFile, JSON.stringify(payload, null, 2) + '\n');
117
- }
118
- export function buildGitProjectContextPayload(options) {
119
- return {
120
- type: 'git_project',
121
- session_id: options.sessionId,
122
- project_name: options.git.projectName,
123
- project_id: options.projectId,
124
- git_root: options.git.root,
125
- git_branch: options.git.branch,
126
- git_commit: options.git.commit,
127
- git_remote: options.git.remote,
128
- working_directory: options.workingDirectory,
129
- session_start: options.sessionStart,
130
- gramatr_config_path: join(options.git.root, '.gramatr', 'settings.json'),
131
- project_entity_id: options.projectEntityId,
132
- restore_needed: options.restoreNeeded,
133
- action_required: 'check_or_create_project_entity',
134
- };
135
- }
136
- export function buildNonGitProjectContextPayload(options) {
137
- return {
138
- type: 'non_git',
139
- session_id: options.sessionId,
140
- project_name: basename(options.cwd),
141
- working_directory: options.cwd,
142
- session_start: options.sessionStart,
143
- gramatr_config_path: join(options.cwd, '.gramatr', 'settings.json'),
144
- project_entity_id: options.projectEntityId,
145
- action_required: 'gramatr_init_needed',
146
- };
147
- }
148
104
  //# sourceMappingURL=session.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/hooks/lib/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/hooks/lib/session.ts"],"names":[],"mappings":"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"}