@gramatr/mcp 0.11.21 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cache/lru-cache.d.ts.map +1 -1
- package/dist/cache/lru-cache.js +0 -1
- package/dist/cache/lru-cache.js.map +1 -1
- package/dist/config-runtime.d.ts +6 -0
- package/dist/config-runtime.d.ts.map +1 -1
- package/dist/config-runtime.js +9 -0
- package/dist/config-runtime.js.map +1 -1
- package/dist/hooks/lib/client-runtime.d.ts +4 -0
- package/dist/hooks/lib/client-runtime.d.ts.map +1 -1
- package/dist/hooks/lib/client-runtime.js +6 -0
- package/dist/hooks/lib/client-runtime.js.map +1 -1
- package/dist/hooks/lib/compact-writer.d.ts +28 -0
- package/dist/hooks/lib/compact-writer.d.ts.map +1 -0
- package/dist/hooks/lib/compact-writer.js +84 -0
- package/dist/hooks/lib/compact-writer.js.map +1 -0
- package/dist/hooks/lib/formatting-compat.d.ts.map +1 -1
- package/dist/hooks/lib/formatting-compat.js +1 -14
- package/dist/hooks/lib/formatting-compat.js.map +1 -1
- package/dist/hooks/lib/gramatr-hook-utils.d.ts +2 -0
- package/dist/hooks/lib/gramatr-hook-utils.d.ts.map +1 -1
- package/dist/hooks/lib/gramatr-hook-utils.js.map +1 -1
- package/dist/hooks/lib/hook-state.d.ts +21 -0
- package/dist/hooks/lib/hook-state.d.ts.map +1 -1
- package/dist/hooks/lib/hook-state.js +81 -0
- 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 +26 -72
- package/dist/hooks/lib/intelligence.js.map +1 -1
- package/dist/hooks/lib/routing.d.ts +0 -6
- package/dist/hooks/lib/routing.d.ts.map +1 -1
- package/dist/hooks/lib/routing.js +1 -44
- package/dist/hooks/lib/routing.js.map +1 -1
- package/dist/hooks/lib/session-end.d.ts +16 -0
- package/dist/hooks/lib/session-end.d.ts.map +1 -1
- package/dist/hooks/lib/session-end.js +18 -0
- package/dist/hooks/lib/session-end.js.map +1 -1
- package/dist/hooks/lib/types.d.ts +83 -54
- package/dist/hooks/lib/types.d.ts.map +1 -1
- package/dist/hooks/session-end.d.ts.map +1 -1
- package/dist/hooks/session-end.js +38 -1
- package/dist/hooks/session-end.js.map +1 -1
- package/dist/hooks/user-prompt-submit.d.ts.map +1 -1
- package/dist/hooks/user-prompt-submit.js +35 -2
- package/dist/hooks/user-prompt-submit.js.map +1 -1
- package/dist/proxy/tool-proxy.d.ts.map +1 -1
- package/dist/proxy/tool-proxy.js +0 -8
- package/dist/proxy/tool-proxy.js.map +1 -1
- package/package.json +1 -1
- package/scripts/postinstall.mjs +6 -0
- package/dist/intelligence/packet2-fetcher.d.ts +0 -33
- package/dist/intelligence/packet2-fetcher.d.ts.map +0 -1
- package/dist/intelligence/packet2-fetcher.js +0 -106
- package/dist/intelligence/packet2-fetcher.js.map +0 -1
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Packet 2 Auto-Fetcher — automatically fetches enrichment when route_request
|
|
3
|
-
* returns packet_2_status: "required".
|
|
4
|
-
*
|
|
5
|
-
* Flow:
|
|
6
|
-
* 1. Agent calls gramatr_route_request
|
|
7
|
-
* 2. Server returns Packet 1 immediately with enrichment_id
|
|
8
|
-
* 3. This module detects required status, calls gramatr_get_packet_two
|
|
9
|
-
* 4. Merges Packet 2 into the response before returning to agent
|
|
10
|
-
*
|
|
11
|
-
* The agent never has to manually call gramatr_get_packet_two — it just works.
|
|
12
|
-
*/
|
|
13
|
-
import { callRemoteTool } from '../proxy/remote-client.js';
|
|
14
|
-
const MAX_RETRIES = 3;
|
|
15
|
-
const RETRY_DELAY_MS = 500;
|
|
16
|
-
/**
|
|
17
|
-
* Check if a tool result is a route_request response with required Packet 2.
|
|
18
|
-
*/
|
|
19
|
-
export function hasPendingPacket2(result) {
|
|
20
|
-
if (!result.content?.[0]?.text)
|
|
21
|
-
return { pending: false };
|
|
22
|
-
try {
|
|
23
|
-
const data = JSON.parse(result.content[0].text);
|
|
24
|
-
const packet1 = data.packet_1 || {};
|
|
25
|
-
const manifest = packet1.manifest || {};
|
|
26
|
-
const packet2Status = manifest.packet_2_status || data.packet_2_status;
|
|
27
|
-
const enrichmentId = manifest.enrichment_id || data.enrichment_id;
|
|
28
|
-
if (packet2Status === 'required' && enrichmentId) {
|
|
29
|
-
return { pending: true, enrichmentId };
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
catch {
|
|
33
|
-
// Not JSON or not the expected shape
|
|
34
|
-
}
|
|
35
|
-
return { pending: false };
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Fetch Packet 2 enrichment and merge into the original response.
|
|
39
|
-
* Retries up to 3 times with 500ms delay (enrichment may still be generating).
|
|
40
|
-
*/
|
|
41
|
-
export async function fetchAndMergePacket2(result, enrichmentId) {
|
|
42
|
-
let enrichment = null;
|
|
43
|
-
for (let attempt = 0; attempt < MAX_RETRIES; attempt++) {
|
|
44
|
-
try {
|
|
45
|
-
enrichment = await callRemoteTool('gramatr_get_packet_two', {
|
|
46
|
-
enrichment_id: enrichmentId,
|
|
47
|
-
});
|
|
48
|
-
// Check if enrichment is ready
|
|
49
|
-
const enrichResult = enrichment;
|
|
50
|
-
if (enrichResult?.content?.[0]?.text) {
|
|
51
|
-
const enrichData = JSON.parse(enrichResult.content[0].text);
|
|
52
|
-
if (enrichData.status !== 'pending') {
|
|
53
|
-
// Enrichment is ready — merge it
|
|
54
|
-
return mergePackets(result, enrichResult);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
catch {
|
|
59
|
-
// Enrichment call failed — continue with retries
|
|
60
|
-
}
|
|
61
|
-
// Wait before retrying
|
|
62
|
-
if (attempt < MAX_RETRIES - 1) {
|
|
63
|
-
await new Promise((resolve) => setTimeout(resolve, RETRY_DELAY_MS));
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
// Enrichment not ready after retries — return original Packet 1 as-is and
|
|
67
|
-
// leave the required status intact so the caller can keep polling.
|
|
68
|
-
process.stderr.write(`[gramatr-mcp] Packet 2 still required after ${MAX_RETRIES} retries; returning Packet 1 and preserving required status\n`);
|
|
69
|
-
return result;
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Merge Packet 2 enrichment into the Packet 1 response.
|
|
73
|
-
* Adds enrichment data under a `packet_2` key in the response.
|
|
74
|
-
*/
|
|
75
|
-
function mergePackets(packet1, packet2) {
|
|
76
|
-
try {
|
|
77
|
-
const p1Data = JSON.parse(packet1.content[0].text);
|
|
78
|
-
const p2Data = JSON.parse(packet2.content[0].text);
|
|
79
|
-
let packet1Envelope = p1Data.packet_1 || undefined;
|
|
80
|
-
if (!packet1Envelope) {
|
|
81
|
-
packet1Envelope = {};
|
|
82
|
-
p1Data.packet_1 = packet1Envelope;
|
|
83
|
-
}
|
|
84
|
-
let manifest = packet1Envelope.manifest || undefined;
|
|
85
|
-
if (!manifest) {
|
|
86
|
-
manifest = {
|
|
87
|
-
packet_2_status: p1Data.packet_2_status || 'required',
|
|
88
|
-
enrichment_id: p1Data.enrichment_id || null,
|
|
89
|
-
};
|
|
90
|
-
packet1Envelope.manifest = manifest;
|
|
91
|
-
}
|
|
92
|
-
// Merge Packet 2 into Packet 1
|
|
93
|
-
p1Data.packet_2 = p2Data.packet_2 || p2Data;
|
|
94
|
-
p1Data.packet_2_status = 'merged';
|
|
95
|
-
manifest.packet_2_status = 'merged';
|
|
96
|
-
manifest.packet_2_required = true;
|
|
97
|
-
return {
|
|
98
|
-
content: [{ type: 'text', text: JSON.stringify(p1Data) }],
|
|
99
|
-
};
|
|
100
|
-
}
|
|
101
|
-
catch {
|
|
102
|
-
// If merge fails, return Packet 1 unchanged
|
|
103
|
-
return packet1;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
//# sourceMappingURL=packet2-fetcher.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"packet2-fetcher.js","sourceRoot":"","sources":["../../src/intelligence/packet2-fetcher.ts"],"names":[],"mappings":"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"}
|