@cmssy/mcp-server 0.89.0 → 0.90.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.
|
@@ -3,7 +3,8 @@ import { dirname, resolve } from "node:path";
|
|
|
3
3
|
import { fileURLToPath } from "node:url";
|
|
4
4
|
import { afterEach, describe, expect, it, vi } from "vitest";
|
|
5
5
|
import { CmssyClient } from "../graphql-client.js";
|
|
6
|
-
import {
|
|
6
|
+
import { createMcpWorkspaceOps } from "../ai-tools-ops.js";
|
|
7
|
+
import { CALL_START_HEADER, CLIENT_HEADER, TOOL_HEADER, clientHeaders, runAsTool, } from "../client-marker.js";
|
|
7
8
|
import { PACKAGE_VERSION } from "../package-version.js";
|
|
8
9
|
function fetchRecordingHeaders() {
|
|
9
10
|
const seen = [];
|
|
@@ -25,13 +26,13 @@ describe("the client marker the backend reads (CMS-1865)", () => {
|
|
|
25
26
|
[CLIENT_HEADER]: "mcp-server/1.2.3",
|
|
26
27
|
});
|
|
27
28
|
});
|
|
28
|
-
it("names the tool on
|
|
29
|
-
const inside = await runAsTool("
|
|
29
|
+
it("names the tool on every request of a tool call and marks only the first as its start (CMS-2004)", async () => {
|
|
30
|
+
const inside = await runAsTool("update_page_settings", async () => [
|
|
30
31
|
clientHeaders("1.2.3"),
|
|
31
32
|
clientHeaders("1.2.3"),
|
|
32
33
|
]);
|
|
33
|
-
expect(inside[
|
|
34
|
-
expect(inside[
|
|
34
|
+
expect(inside.map((headers) => headers[TOOL_HEADER]), "the backend writes the audit entry on the request that mutates, which for a read-modify-write tool is never the first one").toEqual(["update_page_settings", "update_page_settings"]);
|
|
35
|
+
expect(inside.map((headers) => headers[CALL_START_HEADER]), "the tool-call analytics event is one per call, so exactly one request has to say it opened the call").toEqual(["1", "0"]);
|
|
35
36
|
});
|
|
36
37
|
it("keeps two overlapping tool calls apart", async () => {
|
|
37
38
|
const [a, b] = await Promise.all([
|
|
@@ -61,6 +62,33 @@ describe("the client marker the backend reads (CMS-1865)", () => {
|
|
|
61
62
|
});
|
|
62
63
|
expect(seen[1]).not.toHaveProperty(TOOL_HEADER);
|
|
63
64
|
});
|
|
65
|
+
it("names the tool on the write a read-modify-write tool audits (CMS-2004)", async () => {
|
|
66
|
+
const seen = [];
|
|
67
|
+
const fetch = vi.fn(async (_url, init) => {
|
|
68
|
+
const { query } = JSON.parse(init.body);
|
|
69
|
+
seen.push({ query, headers: init.headers });
|
|
70
|
+
return {
|
|
71
|
+
ok: true,
|
|
72
|
+
json: async () => ({
|
|
73
|
+
data: /^\s*mutation/.test(query)
|
|
74
|
+
? { page: { updateSettings: { id: "p-1" } } }
|
|
75
|
+
: { page: { get: { id: "p-1", version: 7 } } },
|
|
76
|
+
}),
|
|
77
|
+
};
|
|
78
|
+
});
|
|
79
|
+
vi.stubGlobal("fetch", fetch);
|
|
80
|
+
const ops = createMcpWorkspaceOps(new CmssyClient("https://api.example", "cs_x", "ws-1"));
|
|
81
|
+
await runAsTool("update_page_settings", () => ops.pages.updateSettings("p-1", { name: "Plans" }));
|
|
82
|
+
expect(seen.map(({ query }) => /^\s*mutation/.test(query))).toEqual([
|
|
83
|
+
false,
|
|
84
|
+
true,
|
|
85
|
+
]);
|
|
86
|
+
expect(seen[1].headers[TOOL_HEADER], "measured blank on production 2026-10-02: the version read took the announcement and the write that the backend audits went out unnamed").toBe("update_page_settings");
|
|
87
|
+
expect([
|
|
88
|
+
seen[0].headers[CALL_START_HEADER],
|
|
89
|
+
seen[1].headers[CALL_START_HEADER],
|
|
90
|
+
]).toEqual(["1", "0"]);
|
|
91
|
+
});
|
|
64
92
|
it("reads the version the package actually ships, not the fallback", () => {
|
|
65
93
|
const here = dirname(fileURLToPath(import.meta.url));
|
|
66
94
|
const shipped = JSON.parse(readFileSync(resolve(here, "../../package.json"), "utf8")).version;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-marker.test.js","sourceRoot":"","sources":["../../src/__tests__/client-marker.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EACL,aAAa,EACb,WAAW,EACX,aAAa,EACb,SAAS,GACV,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,SAAS,qBAAqB;IAC5B,MAAM,IAAI,GAAkC,EAAE,CAAC;IAC/C,MAAM,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,IAAY,EAAE,IAAiB,EAAE,EAAE;QAC5D,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAiC,CAAC,CAAC;QAClD,OAAO;YACL,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;SACpB,CAAC;IAC3B,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACzB,CAAC;AAED,SAAS,CAAC,GAAG,EAAE;IACb,EAAE,CAAC,gBAAgB,EAAE,CAAC;AACxB,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,gDAAgD,EAAE,GAAG,EAAE;IAC9D,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;YACrC,CAAC,aAAa,CAAC,EAAE,kBAAkB;SACpC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"client-marker.test.js","sourceRoot":"","sources":["../../src/__tests__/client-marker.test.ts"],"names":[],"mappings":"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"}
|
package/dist/client-marker.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export declare const CLIENT_HEADER = "x-cmssy-client";
|
|
2
2
|
export declare const TOOL_HEADER = "x-cmssy-mcp-tool";
|
|
3
|
+
export declare const CALL_START_HEADER = "x-cmssy-mcp-call-start";
|
|
3
4
|
export declare const CLIENT_NAME = "mcp-server";
|
|
4
5
|
export declare function runAsTool<T>(tool: string, run: () => Promise<T>): Promise<T>;
|
|
5
6
|
export declare function clientHeaders(version: string): Record<string, string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-marker.d.ts","sourceRoot":"","sources":["../src/client-marker.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,mBAAmB,CAAC;AAC9C,eAAO,MAAM,WAAW,qBAAqB,CAAC;AAC9C,eAAO,MAAM,WAAW,eAAe,CAAC;AASxC,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAE5E;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"client-marker.d.ts","sourceRoot":"","sources":["../src/client-marker.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,mBAAmB,CAAC;AAC9C,eAAO,MAAM,WAAW,qBAAqB,CAAC;AAC9C,eAAO,MAAM,iBAAiB,2BAA2B,CAAC;AAC1D,eAAO,MAAM,WAAW,eAAe,CAAC;AASxC,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAE5E;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAWrE"}
|
package/dist/client-marker.js
CHANGED
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
2
2
|
export const CLIENT_HEADER = "x-cmssy-client";
|
|
3
3
|
export const TOOL_HEADER = "x-cmssy-mcp-tool";
|
|
4
|
+
export const CALL_START_HEADER = "x-cmssy-mcp-call-start";
|
|
4
5
|
export const CLIENT_NAME = "mcp-server";
|
|
5
6
|
const calls = new AsyncLocalStorage();
|
|
6
7
|
export function runAsTool(tool, run) {
|
|
7
|
-
return calls.run({ tool,
|
|
8
|
+
return calls.run({ tool, started: false }, run);
|
|
8
9
|
}
|
|
9
10
|
export function clientHeaders(version) {
|
|
10
11
|
const headers = {
|
|
11
12
|
[CLIENT_HEADER]: `${CLIENT_NAME}/${version}`,
|
|
12
13
|
};
|
|
13
14
|
const call = calls.getStore();
|
|
14
|
-
if (call
|
|
15
|
-
call.announced = true;
|
|
15
|
+
if (call) {
|
|
16
16
|
headers[TOOL_HEADER] = call.tool;
|
|
17
|
+
headers[CALL_START_HEADER] = call.started ? "0" : "1";
|
|
18
|
+
call.started = true;
|
|
17
19
|
}
|
|
18
20
|
return headers;
|
|
19
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-marker.js","sourceRoot":"","sources":["../src/client-marker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,MAAM,CAAC,MAAM,aAAa,GAAG,gBAAgB,CAAC;AAC9C,MAAM,CAAC,MAAM,WAAW,GAAG,kBAAkB,CAAC;AAC9C,MAAM,CAAC,MAAM,WAAW,GAAG,YAAY,CAAC;AAOxC,MAAM,KAAK,GAAG,IAAI,iBAAiB,EAAY,CAAC;AAEhD,MAAM,UAAU,SAAS,CAAI,IAAY,EAAE,GAAqB;IAC9D,OAAO,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"client-marker.js","sourceRoot":"","sources":["../src/client-marker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,MAAM,CAAC,MAAM,aAAa,GAAG,gBAAgB,CAAC;AAC9C,MAAM,CAAC,MAAM,WAAW,GAAG,kBAAkB,CAAC;AAC9C,MAAM,CAAC,MAAM,iBAAiB,GAAG,wBAAwB,CAAC;AAC1D,MAAM,CAAC,MAAM,WAAW,GAAG,YAAY,CAAC;AAOxC,MAAM,KAAK,GAAG,IAAI,iBAAiB,EAAY,CAAC;AAEhD,MAAM,UAAU,SAAS,CAAI,IAAY,EAAE,GAAqB;IAC9D,OAAO,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,MAAM,OAAO,GAA2B;QACtC,CAAC,aAAa,CAAC,EAAE,GAAG,WAAW,IAAI,OAAO,EAAE;KAC7C,CAAC;IACF,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC9B,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QACjC,OAAO,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACtD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
package/package.json
CHANGED