@burdenoff/mcp-libs 2026.1007.2 → 2026.1007.4
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/index.js +1 -1
- package/dist/modules/conversations/index.cjs +31 -12
- package/dist/modules/conversations/index.cjs.map +1 -1
- package/dist/modules/conversations/index.js +31 -12
- package/dist/modules/conversations/index.js.map +1 -1
- package/dist/modules/fluidgrids/index.cjs +43 -0
- package/dist/modules/fluidgrids/index.cjs.map +1 -1
- package/dist/modules/fluidgrids/index.js +43 -0
- package/dist/modules/fluidgrids/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { McpAuthError, McpInternalError, McpUserError, buildContext, createMcpServer, errorResult, jsonResult, mcpPromptName, mcpResourceUri, mcpToolName, registerTool, textResult } from './chunk-BSNL65PZ.js';
|
|
2
1
|
export { startHttpServer, startStdioServer } from './chunk-JFEQYSWM.js';
|
|
2
|
+
export { McpAuthError, McpInternalError, McpUserError, buildContext, createMcpServer, errorResult, jsonResult, mcpPromptName, mcpResourceUri, mcpToolName, registerTool, textResult } from './chunk-BSNL65PZ.js';
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
|
@@ -52,7 +52,7 @@ Hint: ${hint}` : message;
|
|
|
52
52
|
|
|
53
53
|
// src/modules/conversations/operations.ts
|
|
54
54
|
var LIST_CONVERSATIONS = `
|
|
55
|
-
query ListConversations($filter:
|
|
55
|
+
query ListConversations($filter: ConversationFilter, $first: Int, $after: String) {
|
|
56
56
|
conversations(filter: $filter, first: $first, after: $after) {
|
|
57
57
|
edges { node { id title type description createdAt updatedAt unreadCount } }
|
|
58
58
|
pageInfo { hasNextPage endCursor }
|
|
@@ -62,7 +62,7 @@ var LIST_CONVERSATIONS = `
|
|
|
62
62
|
var GET_CONVERSATION = `
|
|
63
63
|
query GetConversation($id: ID!) {
|
|
64
64
|
conversation(id: $id) {
|
|
65
|
-
id title type description
|
|
65
|
+
id title type description avatar settings
|
|
66
66
|
createdAt updatedAt
|
|
67
67
|
}
|
|
68
68
|
}
|
|
@@ -98,7 +98,7 @@ var LIST_MESSAGES = `
|
|
|
98
98
|
messages(conversationId: $conversationId, filter: $filter, first: $first, after: $after) {
|
|
99
99
|
edges {
|
|
100
100
|
cursor
|
|
101
|
-
node { id conversationId
|
|
101
|
+
node { id conversationId authorId content type metadata createdAt updatedAt }
|
|
102
102
|
}
|
|
103
103
|
pageInfo { hasNextPage endCursor }
|
|
104
104
|
}
|
|
@@ -237,7 +237,7 @@ var GET_THREAD = `
|
|
|
237
237
|
`;
|
|
238
238
|
var GET_OR_CREATE_DIRECT_CONVERSATION = `
|
|
239
239
|
mutation GetOrCreateDirectConversation($userId: ID!) {
|
|
240
|
-
|
|
240
|
+
resolveContextConversation(userId: $userId) {
|
|
241
241
|
id title type createdAt
|
|
242
242
|
}
|
|
243
243
|
}
|
|
@@ -467,17 +467,24 @@ function registerConversationsTools(server, ctx, track) {
|
|
|
467
467
|
title: zod.z.string().describe("Conversation title"),
|
|
468
468
|
description: zod.z.string().optional().describe("Conversation description"),
|
|
469
469
|
type: ConversationTypeEnum.optional().describe("Conversation type (default: GROUP)"),
|
|
470
|
-
|
|
470
|
+
// BOFF-8184: `participantIds` and `workspaceId` are required by
|
|
471
|
+
// `CreateConversationInput!` on the live schema. They must be
|
|
472
|
+
// supplied by the caller; the MCP does not auto-fill workspaceId
|
|
473
|
+
// because the live resolver rejects with `Forbidden` when the
|
|
474
|
+
// request arrives without a verified workspace context.
|
|
475
|
+
participantIds: zod.z.array(zod.z.string()).min(1).describe("Participant user IDs (required, \u2265 1)"),
|
|
476
|
+
workspaceId: zod.z.string().describe("Workspace ID the conversation belongs to (required)")
|
|
471
477
|
}
|
|
472
478
|
},
|
|
473
|
-
async ({ title, description, type, participantIds }) => {
|
|
479
|
+
async ({ title, description, type, participantIds, workspaceId }) => {
|
|
474
480
|
try {
|
|
475
481
|
const input = {
|
|
476
482
|
title,
|
|
477
|
-
type: type ?? "GROUP"
|
|
483
|
+
type: type ?? "GROUP",
|
|
484
|
+
participantIds,
|
|
485
|
+
workspaceId
|
|
478
486
|
};
|
|
479
487
|
if (description !== void 0) input.description = description;
|
|
480
|
-
if (participantIds !== void 0) input.participantIds = participantIds;
|
|
481
488
|
const data = await ctx.gql.workspace.request(CREATE_CONVERSATION, { input });
|
|
482
489
|
return jsonResult(data.createConversation.conversation);
|
|
483
490
|
} catch (error) {
|
|
@@ -545,15 +552,27 @@ function registerConversationsTools(server, ctx, track) {
|
|
|
545
552
|
description: "Send a text message to a conversation. Optionally reply to a parent message.",
|
|
546
553
|
inputSchema: {
|
|
547
554
|
conversationId: zod.z.string().describe("Conversation ID"),
|
|
548
|
-
|
|
555
|
+
// BOFF-8186: `SendMessageInput.content` is `MessageContentInput!` (an
|
|
556
|
+
// object), not a scalar. Accept a `content` object so callers can
|
|
557
|
+
// pass `{ text: "..." }`; the convenience alias `text` below
|
|
558
|
+
// accepts the scalar and wraps it. Object form wins if both are
|
|
559
|
+
// given.
|
|
560
|
+
content: zod.z.record(zod.z.unknown()).optional().describe('Message content as MessageContentInput object (e.g. { text: "..." })'),
|
|
561
|
+
text: zod.z.string().optional().describe("Convenience alias: scalar text wrapped into { text }"),
|
|
549
562
|
parentMessageId: zod.z.string().optional().describe("Parent message ID (for replies)")
|
|
550
563
|
}
|
|
551
564
|
},
|
|
552
|
-
async ({ conversationId, content, parentMessageId }) => {
|
|
565
|
+
async ({ conversationId, content, text, parentMessageId }) => {
|
|
553
566
|
try {
|
|
567
|
+
if (content === void 0 && text === void 0) {
|
|
568
|
+
return errorResult(
|
|
569
|
+
"Provide either `content` (MessageContentInput object) or `text` (scalar convenience alias)"
|
|
570
|
+
);
|
|
571
|
+
}
|
|
572
|
+
const messageContent = content ?? (text !== void 0 ? { text } : {});
|
|
554
573
|
const input = {
|
|
555
574
|
conversationId,
|
|
556
|
-
content,
|
|
575
|
+
content: messageContent,
|
|
557
576
|
type: "TEXT"
|
|
558
577
|
};
|
|
559
578
|
if (parentMessageId !== void 0) input.parentMessageId = parentMessageId;
|
|
@@ -1116,7 +1135,7 @@ function registerThreadAndDirectTools(server, ctx, track) {
|
|
|
1116
1135
|
async ({ userId }) => {
|
|
1117
1136
|
try {
|
|
1118
1137
|
const data = await ctx.gql.workspace.request(GET_OR_CREATE_DIRECT_CONVERSATION, { userId });
|
|
1119
|
-
return jsonResult(data.
|
|
1138
|
+
return jsonResult(data.resolveContextConversation);
|
|
1120
1139
|
} catch (error) {
|
|
1121
1140
|
ctx.logger.error("conversations_get_or_create_direct failed", { error });
|
|
1122
1141
|
return errorResult(`Failed to open direct conversation: ${unwrap(error)}`);
|