@contextq/mcp 2.0.0 → 2.1.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/README.md +3 -3
- package/dist/index.js +7 -209
- package/package.json +11 -14
- package/dist/index.d.ts +0 -2
- package/dist/index.js.map +0 -1
- package/dist/tools.d.ts +0 -23
- package/dist/tools.js +0 -2543
- package/dist/tools.js.map +0 -1
- package/dist/tools.profile.test.d.ts +0 -14
- package/dist/tools.profile.test.js +0 -133
- package/dist/tools.profile.test.js.map +0 -1
- package/dist/tools.trace.test.d.ts +0 -11
- package/dist/tools.trace.test.js +0 -75
- package/dist/tools.trace.test.js.map +0 -1
- package/dist/trace-context.d.ts +0 -44
- package/dist/trace-context.js +0 -90
- package/dist/trace-context.js.map +0 -1
- package/dist/trace-context.test.d.ts +0 -6
- package/dist/trace-context.test.js +0 -86
- package/dist/trace-context.test.js.map +0 -1
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tests for T558's stdio-transport trace-context module.
|
|
3
|
-
* Run: npx tsx --test mcp/src/trace-context.test.ts (from repo root), or
|
|
4
|
-
* npx tsx --test src/trace-context.test.ts (from mcp/).
|
|
5
|
-
*/
|
|
6
|
-
import { test } from "node:test";
|
|
7
|
-
import assert from "node:assert/strict";
|
|
8
|
-
import { isValidTraceparent, extractTraceContext, traceContextStorage } from "./trace-context.js";
|
|
9
|
-
const VALID_TRACEPARENT = "00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01";
|
|
10
|
-
const VALID_TRACE_ID = "4bf92f3577b34da6a3ce929d0e0e4736";
|
|
11
|
-
test("isValidTraceparent accepts a well-formed W3C traceparent", () => {
|
|
12
|
-
assert.equal(isValidTraceparent(VALID_TRACEPARENT), true);
|
|
13
|
-
});
|
|
14
|
-
test("isValidTraceparent rejects malformed values rather than throwing", () => {
|
|
15
|
-
assert.equal(isValidTraceparent(undefined), false);
|
|
16
|
-
assert.equal(isValidTraceparent(null), false);
|
|
17
|
-
assert.equal(isValidTraceparent(123), false);
|
|
18
|
-
assert.equal(isValidTraceparent(""), false);
|
|
19
|
-
assert.equal(isValidTraceparent("garbage"), false);
|
|
20
|
-
// Reserved-invalid version.
|
|
21
|
-
assert.equal(isValidTraceparent("ff-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01"), false);
|
|
22
|
-
// All-zero trace-id / parent-id sentinels.
|
|
23
|
-
assert.equal(isValidTraceparent("00-00000000000000000000000000000000-00f067aa0ba902b7-01"), false);
|
|
24
|
-
assert.equal(isValidTraceparent("00-4bf92f3577b34da6a3ce929d0e0e4736-0000000000000000-01"), false);
|
|
25
|
-
// Uppercase hex rejected.
|
|
26
|
-
assert.equal(isValidTraceparent("00-4BF92F3577B34DA6A3CE929D0E0E4736-00f067aa0ba902b7-01"), false);
|
|
27
|
-
// Wrong field length.
|
|
28
|
-
assert.equal(isValidTraceparent("00-abcd-00f067aa0ba902b7-01"), false);
|
|
29
|
-
});
|
|
30
|
-
test("extractTraceContext returns null for absent or non-object _meta", () => {
|
|
31
|
-
assert.equal(extractTraceContext(undefined), null);
|
|
32
|
-
assert.equal(extractTraceContext(null), null);
|
|
33
|
-
assert.equal(extractTraceContext("not-an-object"), null);
|
|
34
|
-
assert.equal(extractTraceContext({}), null);
|
|
35
|
-
});
|
|
36
|
-
test("extractTraceContext returns null when traceparent is malformed, even with tracestate/baggage present", () => {
|
|
37
|
-
const result = extractTraceContext({
|
|
38
|
-
traceparent: "not-valid",
|
|
39
|
-
tracestate: "vendor=1",
|
|
40
|
-
baggage: "userId=1",
|
|
41
|
-
});
|
|
42
|
-
assert.equal(result, null);
|
|
43
|
-
});
|
|
44
|
-
test("extractTraceContext returns the parsed context for a valid traceparent, with optional tracestate/baggage", () => {
|
|
45
|
-
const result = extractTraceContext({
|
|
46
|
-
traceparent: VALID_TRACEPARENT,
|
|
47
|
-
tracestate: "congo=t61rcWkgMzE",
|
|
48
|
-
baggage: "userId=alice",
|
|
49
|
-
});
|
|
50
|
-
assert.deepEqual(result, {
|
|
51
|
-
traceId: VALID_TRACE_ID,
|
|
52
|
-
traceparent: VALID_TRACEPARENT,
|
|
53
|
-
tracestate: "congo=t61rcWkgMzE",
|
|
54
|
-
baggage: "userId=alice",
|
|
55
|
-
});
|
|
56
|
-
});
|
|
57
|
-
test("extractTraceContext defaults tracestate/baggage to null when absent, without failing the whole extraction", () => {
|
|
58
|
-
const result = extractTraceContext({ traceparent: VALID_TRACEPARENT });
|
|
59
|
-
assert.deepEqual(result, {
|
|
60
|
-
traceId: VALID_TRACE_ID,
|
|
61
|
-
traceparent: VALID_TRACEPARENT,
|
|
62
|
-
tracestate: null,
|
|
63
|
-
baggage: null,
|
|
64
|
-
});
|
|
65
|
-
});
|
|
66
|
-
test("traceContextStorage.run isolates the store across overlapping async calls", async () => {
|
|
67
|
-
const ctxA = extractTraceContext({ traceparent: VALID_TRACEPARENT });
|
|
68
|
-
const ctxB = extractTraceContext({
|
|
69
|
-
traceparent: "00-11111111111111111111111111111111-2222222222222222-01",
|
|
70
|
-
});
|
|
71
|
-
const seenA = [];
|
|
72
|
-
const seenB = [];
|
|
73
|
-
const runA = traceContextStorage.run(ctxA, async () => {
|
|
74
|
-
seenA.push(traceContextStorage.getStore()?.traceId);
|
|
75
|
-
await new Promise((resolve) => setTimeout(resolve, 20));
|
|
76
|
-
seenA.push(traceContextStorage.getStore()?.traceId);
|
|
77
|
-
});
|
|
78
|
-
const runB = traceContextStorage.run(ctxB, async () => {
|
|
79
|
-
await new Promise((resolve) => setTimeout(resolve, 5));
|
|
80
|
-
seenB.push(traceContextStorage.getStore()?.traceId);
|
|
81
|
-
});
|
|
82
|
-
await Promise.all([runA, runB]);
|
|
83
|
-
assert.deepEqual(seenA, [VALID_TRACE_ID, VALID_TRACE_ID]);
|
|
84
|
-
assert.deepEqual(seenB, ["11111111111111111111111111111111"]);
|
|
85
|
-
});
|
|
86
|
-
//# sourceMappingURL=trace-context.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"trace-context.test.js","sourceRoot":"","sources":["../src/trace-context.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,MAAM,MAAM,oBAAoB,CAAC;AAExC,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAElG,MAAM,iBAAiB,GAAG,yDAAyD,CAAC;AACpF,MAAM,cAAc,GAAG,kCAAkC,CAAC;AAE1D,IAAI,CAAC,0DAA0D,EAAE,GAAG,EAAE;IACpE,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,EAAE,IAAI,CAAC,CAAC;AAC5D,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,kEAAkE,EAAE,GAAG,EAAE;IAC5E,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC;IACnD,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;IAC9C,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;IAC7C,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IAC5C,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC;IACnD,4BAA4B;IAC5B,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,yDAAyD,CAAC,EAAE,KAAK,CAAC,CAAC;IACnG,2CAA2C;IAC3C,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,yDAAyD,CAAC,EAAE,KAAK,CAAC,CAAC;IACnG,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,yDAAyD,CAAC,EAAE,KAAK,CAAC,CAAC;IACnG,0BAA0B;IAC1B,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,yDAAyD,CAAC,EAAE,KAAK,CAAC,CAAC;IACnG,sBAAsB;IACtB,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,6BAA6B,CAAC,EAAE,KAAK,CAAC,CAAC;AACzE,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iEAAiE,EAAE,GAAG,EAAE;IAC3E,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC;IACnD,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IAC9C,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,eAAe,CAAC,EAAE,IAAI,CAAC,CAAC;IACzD,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;AAC9C,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,sGAAsG,EAAE,GAAG,EAAE;IAChH,MAAM,MAAM,GAAG,mBAAmB,CAAC;QACjC,WAAW,EAAE,WAAW;QACxB,UAAU,EAAE,UAAU;QACtB,OAAO,EAAE,UAAU;KACpB,CAAC,CAAC;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,0GAA0G,EAAE,GAAG,EAAE;IACpH,MAAM,MAAM,GAAG,mBAAmB,CAAC;QACjC,WAAW,EAAE,iBAAiB;QAC9B,UAAU,EAAE,mBAAmB;QAC/B,OAAO,EAAE,cAAc;KACxB,CAAC,CAAC;IACH,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE;QACvB,OAAO,EAAE,cAAc;QACvB,WAAW,EAAE,iBAAiB;QAC9B,UAAU,EAAE,mBAAmB;QAC/B,OAAO,EAAE,cAAc;KACxB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,2GAA2G,EAAE,GAAG,EAAE;IACrH,MAAM,MAAM,GAAG,mBAAmB,CAAC,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC,CAAC;IACvE,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE;QACvB,OAAO,EAAE,cAAc;QACvB,WAAW,EAAE,iBAAiB;QAC9B,UAAU,EAAE,IAAI;QAChB,OAAO,EAAE,IAAI;KACd,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,2EAA2E,EAAE,KAAK,IAAI,EAAE;IAC3F,MAAM,IAAI,GAAG,mBAAmB,CAAC,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC,CAAC;IACrE,MAAM,IAAI,GAAG,mBAAmB,CAAC;QAC/B,WAAW,EAAE,yDAAyD;KACvE,CAAC,CAAC;IAEH,MAAM,KAAK,GAA8B,EAAE,CAAC;IAC5C,MAAM,KAAK,GAA8B,EAAE,CAAC;IAE5C,MAAM,IAAI,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;QACpD,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;QACxD,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QACvD,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAEhC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC;IAC1D,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,kCAAkC,CAAC,CAAC,CAAC;AAChE,CAAC,CAAC,CAAC"}
|