@opencx/mcp 1.15.11 → 1.15.13
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/add-session-comment.spec.d.ts +2 -0
- package/dist/add-session-comment.spec.d.ts.map +1 -0
- package/dist/add-session-comment.spec.js +108 -0
- package/dist/add-session-comment.spec.js.map +1 -0
- package/dist/schema.d.ts +6398 -4507
- package/dist/schema.d.ts.map +1 -1
- package/dist/server.spec.js +28 -0
- package/dist/server.spec.js.map +1 -1
- package/dist/tools/actions.d.ts.map +1 -1
- package/dist/tools/actions.js +2 -2
- package/dist/tools/actions.js.map +1 -1
- package/dist/tools/autopilot.d.ts.map +1 -1
- package/dist/tools/autopilot.js +15 -4
- package/dist/tools/autopilot.js.map +1 -1
- package/dist/tools/sessions.d.ts.map +1 -1
- package/dist/tools/sessions.js +7 -3
- package/dist/tools/sessions.js.map +1 -1
- package/dist/utils/session-channel.d.ts +2 -2
- package/dist/utils/session-channel.d.ts.map +1 -1
- package/dist/utils/session-channel.js +6 -0
- package/dist/utils/session-channel.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add-session-comment.spec.d.ts","sourceRoot":"","sources":["../src/add-session-comment.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
|
|
2
|
+
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
|
3
|
+
import { InMemoryTransport } from '@modelcontextprotocol/sdk/inMemory.js';
|
|
4
|
+
import { createServer } from './server.js';
|
|
5
|
+
function mockResponse(body, status = 200, statusText = 'OK') {
|
|
6
|
+
return new Response(JSON.stringify(body), { status, statusText });
|
|
7
|
+
}
|
|
8
|
+
function getRequestUrl(call) {
|
|
9
|
+
const arg = call[0];
|
|
10
|
+
if (arg instanceof Request)
|
|
11
|
+
return arg.url;
|
|
12
|
+
return String(arg);
|
|
13
|
+
}
|
|
14
|
+
function getRequestMethod(call) {
|
|
15
|
+
const arg = call[0];
|
|
16
|
+
if (arg instanceof Request)
|
|
17
|
+
return arg.method;
|
|
18
|
+
const opts = call[1];
|
|
19
|
+
return opts.method ?? 'GET';
|
|
20
|
+
}
|
|
21
|
+
async function getRequestBody(call) {
|
|
22
|
+
const arg = call[0];
|
|
23
|
+
if (arg instanceof Request) {
|
|
24
|
+
const text = await arg.clone().text();
|
|
25
|
+
return text ? JSON.parse(text) : undefined;
|
|
26
|
+
}
|
|
27
|
+
const opts = call[1];
|
|
28
|
+
return opts.body ? JSON.parse(opts.body) : undefined;
|
|
29
|
+
}
|
|
30
|
+
describe('add_session_comment tool', () => {
|
|
31
|
+
let client;
|
|
32
|
+
let cleanup;
|
|
33
|
+
let fetchSpy;
|
|
34
|
+
beforeEach(async () => {
|
|
35
|
+
fetchSpy = vi.fn();
|
|
36
|
+
vi.stubGlobal('fetch', fetchSpy);
|
|
37
|
+
const server = createServer('test-api-key', 'https://api.test.com');
|
|
38
|
+
const [clientTransport, serverTransport] = InMemoryTransport.createLinkedPair();
|
|
39
|
+
await server.connect(serverTransport);
|
|
40
|
+
client = new Client({ name: 'test-client', version: '1.0.0' });
|
|
41
|
+
await client.connect(clientTransport);
|
|
42
|
+
cleanup = async () => {
|
|
43
|
+
await client.close();
|
|
44
|
+
await server.close();
|
|
45
|
+
};
|
|
46
|
+
});
|
|
47
|
+
afterEach(async () => {
|
|
48
|
+
await cleanup();
|
|
49
|
+
vi.unstubAllGlobals();
|
|
50
|
+
});
|
|
51
|
+
it('sends thread_id when provided (threaded comment)', async () => {
|
|
52
|
+
const created = { uuid: 'comment-uuid', comment_thread_id: 'thread-uuid' };
|
|
53
|
+
fetchSpy.mockResolvedValueOnce(mockResponse(created, 201, 'Created'));
|
|
54
|
+
await client.callTool({
|
|
55
|
+
name: 'add_session_comment',
|
|
56
|
+
arguments: {
|
|
57
|
+
session_id: 'session-1',
|
|
58
|
+
thread_id: '4f9df1e2-95d7-4b83-a9be-7d2f0a2f7f11',
|
|
59
|
+
content: 'threaded note',
|
|
60
|
+
agent_id: 42,
|
|
61
|
+
},
|
|
62
|
+
});
|
|
63
|
+
expect(fetchSpy).toHaveBeenCalledOnce();
|
|
64
|
+
const call = fetchSpy.mock.calls[0];
|
|
65
|
+
expect(getRequestUrl(call)).toBe('https://api.test.com/chat/sessions/session-1/comments');
|
|
66
|
+
expect(getRequestMethod(call)).toBe('POST');
|
|
67
|
+
expect(await getRequestBody(call)).toEqual({
|
|
68
|
+
thread_id: '4f9df1e2-95d7-4b83-a9be-7d2f0a2f7f11',
|
|
69
|
+
content: 'threaded note',
|
|
70
|
+
agent_id: 42,
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
it('omits thread_id entirely when not provided (session-level note)', async () => {
|
|
74
|
+
const created = { uuid: 'comment-uuid', comment_thread_id: null };
|
|
75
|
+
fetchSpy.mockResolvedValueOnce(mockResponse(created, 201, 'Created'));
|
|
76
|
+
await client.callTool({
|
|
77
|
+
name: 'add_session_comment',
|
|
78
|
+
arguments: {
|
|
79
|
+
session_id: 'session-1',
|
|
80
|
+
content: 'session-level note',
|
|
81
|
+
agent_id: 42,
|
|
82
|
+
},
|
|
83
|
+
});
|
|
84
|
+
expect(fetchSpy).toHaveBeenCalledOnce();
|
|
85
|
+
const call = fetchSpy.mock.calls[0];
|
|
86
|
+
expect(getRequestUrl(call)).toBe('https://api.test.com/chat/sessions/session-1/comments');
|
|
87
|
+
expect(getRequestMethod(call)).toBe('POST');
|
|
88
|
+
const body = await getRequestBody(call);
|
|
89
|
+
expect(body).toEqual({ content: 'session-level note', agent_id: 42 });
|
|
90
|
+
// The key must be ABSENT, not undefined/null — the public API treats a
|
|
91
|
+
// missing thread_id as "session-level note".
|
|
92
|
+
expect(Object.keys(body)).not.toContain('thread_id');
|
|
93
|
+
});
|
|
94
|
+
it('rejects a non-uuid thread_id at the tool input layer', async () => {
|
|
95
|
+
const result = await client.callTool({
|
|
96
|
+
name: 'add_session_comment',
|
|
97
|
+
arguments: {
|
|
98
|
+
session_id: 'session-1',
|
|
99
|
+
thread_id: 'not-a-uuid',
|
|
100
|
+
content: 'bad thread',
|
|
101
|
+
agent_id: 42,
|
|
102
|
+
},
|
|
103
|
+
});
|
|
104
|
+
expect(result.isError).toBe(true);
|
|
105
|
+
expect(fetchSpy).not.toHaveBeenCalled();
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
//# sourceMappingURL=add-session-comment.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add-session-comment.spec.js","sourceRoot":"","sources":["../src/add-session-comment.spec.ts"],"names":[],"mappings":"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"}
|