@powerhousedao/reactor-mcp 6.0.0-dev.153 → 6.0.0-dev.155

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.
Files changed (75) hide show
  1. package/dist/cli.d.mts +1 -0
  2. package/dist/cli.mjs +137 -0
  3. package/dist/cli.mjs.map +1 -0
  4. package/dist/index.d.mts +637 -0
  5. package/dist/index.d.mts.map +1 -0
  6. package/dist/index.mjs +46 -0
  7. package/dist/index.mjs.map +1 -0
  8. package/dist/server-DlxQXYHz.mjs +389 -0
  9. package/dist/server-DlxQXYHz.mjs.map +1 -0
  10. package/package.json +16 -9
  11. package/dist/src/cli.d.ts +0 -2
  12. package/dist/src/cli.d.ts.map +0 -1
  13. package/dist/src/cli.js +0 -10
  14. package/dist/src/cli.js.map +0 -1
  15. package/dist/src/feature-flags.d.ts +0 -2
  16. package/dist/src/feature-flags.d.ts.map +0 -1
  17. package/dist/src/feature-flags.js +0 -9
  18. package/dist/src/feature-flags.js.map +0 -1
  19. package/dist/src/index.d.ts +0 -5
  20. package/dist/src/index.d.ts.map +0 -1
  21. package/dist/src/index.js +0 -5
  22. package/dist/src/index.js.map +0 -1
  23. package/dist/src/logger.d.ts +0 -3
  24. package/dist/src/logger.d.ts.map +0 -1
  25. package/dist/src/logger.js +0 -3
  26. package/dist/src/logger.js.map +0 -1
  27. package/dist/src/mcp-routes.d.ts +0 -19
  28. package/dist/src/mcp-routes.d.ts.map +0 -1
  29. package/dist/src/mcp-routes.js +0 -50
  30. package/dist/src/mcp-routes.js.map +0 -1
  31. package/dist/src/sdk/chat.d.ts +0 -19
  32. package/dist/src/sdk/chat.d.ts.map +0 -1
  33. package/dist/src/sdk/chat.js +0 -60
  34. package/dist/src/sdk/chat.js.map +0 -1
  35. package/dist/src/server.d.ts +0 -9
  36. package/dist/src/server.d.ts.map +0 -1
  37. package/dist/src/server.js +0 -59
  38. package/dist/src/server.js.map +0 -1
  39. package/dist/src/stdio/index.d.ts +0 -7
  40. package/dist/src/stdio/index.d.ts.map +0 -1
  41. package/dist/src/stdio/index.js +0 -64
  42. package/dist/src/stdio/index.js.map +0 -1
  43. package/dist/src/stdio/loader.d.ts +0 -19
  44. package/dist/src/stdio/loader.d.ts.map +0 -1
  45. package/dist/src/stdio/loader.js +0 -90
  46. package/dist/src/stdio/loader.js.map +0 -1
  47. package/dist/src/tools/index.d.ts +0 -3
  48. package/dist/src/tools/index.d.ts.map +0 -1
  49. package/dist/src/tools/index.js +0 -3
  50. package/dist/src/tools/index.js.map +0 -1
  51. package/dist/src/tools/reactor.d.ts +0 -567
  52. package/dist/src/tools/reactor.d.ts.map +0 -1
  53. package/dist/src/tools/reactor.js +0 -458
  54. package/dist/src/tools/reactor.js.map +0 -1
  55. package/dist/src/tools/types.d.ts +0 -24
  56. package/dist/src/tools/types.d.ts.map +0 -1
  57. package/dist/src/tools/types.js +0 -2
  58. package/dist/src/tools/types.js.map +0 -1
  59. package/dist/src/tools/utils.d.ts +0 -23
  60. package/dist/src/tools/utils.d.ts.map +0 -1
  61. package/dist/src/tools/utils.js +0 -99
  62. package/dist/src/tools/utils.js.map +0 -1
  63. package/dist/test/reactor.test.d.ts +0 -2
  64. package/dist/test/reactor.test.d.ts.map +0 -1
  65. package/dist/test/reactor.test.js +0 -458
  66. package/dist/test/reactor.test.js.map +0 -1
  67. package/dist/test/setup-mcp-server.test.d.ts +0 -10
  68. package/dist/test/setup-mcp-server.test.d.ts.map +0 -1
  69. package/dist/test/setup-mcp-server.test.js +0 -172
  70. package/dist/test/setup-mcp-server.test.js.map +0 -1
  71. package/dist/tsconfig.tsbuildinfo +0 -1
  72. package/dist/vitest.config.d.ts +0 -3
  73. package/dist/vitest.config.d.ts.map +0 -1
  74. package/dist/vitest.config.js +0 -9
  75. package/dist/vitest.config.js.map +0 -1
@@ -1,458 +0,0 @@
1
- import { ReactorBuilder, ReactorClientBuilder } from "@powerhousedao/reactor";
2
- import { createReactorMcpProvider } from "@powerhousedao/reactor-mcp";
3
- import { driveDocumentModelModule } from "@powerhousedao/shared/document-drive";
4
- import { documentModelCreateDocument, documentModelDocumentModelModule, } from "document-model";
5
- import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
6
- function getTextContent(result, index = 0) {
7
- const content = result.content[index];
8
- return content.type === "text" ? content.text : "";
9
- }
10
- // Mock reactor client for unit tests
11
- const createMockReactorClient = () => {
12
- const mockClient = {
13
- get: vi.fn(),
14
- getDocumentModelModule: vi.fn(),
15
- getDocumentModelModules: vi.fn().mockResolvedValue({
16
- results: [],
17
- options: { cursor: "", limit: 10 },
18
- }),
19
- createEmpty: vi.fn(),
20
- getChildren: vi.fn().mockResolvedValue({
21
- results: [],
22
- options: { cursor: "", limit: 10 },
23
- }),
24
- deleteDocument: vi.fn(),
25
- execute: vi.fn(),
26
- createDocumentInDrive: vi.fn(),
27
- find: vi.fn().mockResolvedValue({
28
- results: [],
29
- options: { cursor: "", limit: 10 },
30
- }),
31
- rename: vi.fn(),
32
- };
33
- return mockClient;
34
- };
35
- // Create a real reactor client for integration tests
36
- async function createReactorClientModule() {
37
- const reactorBuilder = new ReactorBuilder().withDocumentModels([
38
- documentModelDocumentModelModule,
39
- driveDocumentModelModule,
40
- ]);
41
- const module = await new ReactorClientBuilder()
42
- .withReactorBuilder(reactorBuilder)
43
- .buildModule();
44
- return module;
45
- }
46
- describe("ReactorMcpProvider", () => {
47
- let mockClient;
48
- let reactorModule;
49
- let client;
50
- beforeEach(async () => {
51
- reactorModule = await createReactorClientModule();
52
- client = reactorModule.client;
53
- mockClient = createMockReactorClient();
54
- vi.clearAllMocks();
55
- });
56
- afterEach(() => {
57
- reactorModule.reactor.kill();
58
- });
59
- describe("getDocument tool", () => {
60
- it("should retrieve a document successfully", async () => {
61
- // Create a document using the client
62
- const document = documentModelCreateDocument();
63
- await client.create(document);
64
- const provider = await createReactorMcpProvider({ client });
65
- const result = await provider.tools.getDocument.callback({
66
- id: document.header.id,
67
- });
68
- expect(result.isError).toBeUndefined();
69
- expect(result.structuredContent).toMatchObject({
70
- document: {
71
- header: expect.objectContaining({
72
- id: document.header.id,
73
- documentType: document.header.documentType,
74
- }),
75
- },
76
- });
77
- });
78
- it("should handle errors gracefully", async () => {
79
- const provider = await createReactorMcpProvider({ client });
80
- const result = await provider.tools.getDocument.callback({
81
- id: "non-existent-id",
82
- });
83
- expect(result.isError).toBe(true);
84
- expect(getTextContent(result)).toContain("non-existent-id");
85
- });
86
- it("should handle non-Error exceptions", async () => {
87
- const errorMessage = "String error message";
88
- vi.mocked(mockClient.get).mockRejectedValue(errorMessage);
89
- const provider = await createReactorMcpProvider({ client: mockClient });
90
- const result = await provider.tools.getDocument.callback({
91
- id: "test-id",
92
- });
93
- expect(result.isError).toBe(true);
94
- expect(result.content).toEqual([
95
- {
96
- type: "text",
97
- text: "Error: String error message",
98
- },
99
- ]);
100
- });
101
- });
102
- describe("createDocument tool", () => {
103
- it("should create a document successfully", async () => {
104
- const provider = await createReactorMcpProvider({ client });
105
- const result = await provider.tools.createDocument.callback({
106
- documentType: "powerhouse/document-model",
107
- });
108
- expect(result.isError).toBeUndefined();
109
- expect(result.structuredContent).toMatchObject({
110
- documentId: expect.any(String),
111
- });
112
- });
113
- it("should create a document in a drive when driveId is provided", async () => {
114
- const drive = await client.createEmpty("powerhouse/document-drive");
115
- const provider = await createReactorMcpProvider({ client });
116
- const result = await provider.tools.createDocument.callback({
117
- documentType: "powerhouse/document-model",
118
- driveId: drive.header.id,
119
- });
120
- expect(result.isError).toBeUndefined();
121
- expect(result.structuredContent).toMatchObject({
122
- documentId: expect.any(String),
123
- });
124
- // Verify the document was created and can be retrieved
125
- const documentId = result.structuredContent
126
- .documentId;
127
- const doc = await client.get(documentId);
128
- expect(doc).toBeDefined();
129
- expect(doc.header.documentType).toBe("powerhouse/document-model");
130
- });
131
- it("should create a document in a drive with parentFolder", async () => {
132
- const drive = await client.createEmpty("powerhouse/document-drive");
133
- // Add a folder to the drive using addActions tool (properly formats actions)
134
- const folderId = "test-folder-id";
135
- const provider = await createReactorMcpProvider({ client });
136
- await provider.tools.addActions.callback({
137
- documentId: drive.header.id,
138
- actions: [
139
- {
140
- type: "ADD_FOLDER",
141
- input: { id: folderId, name: "Test Folder" },
142
- scope: "global",
143
- },
144
- ],
145
- });
146
- const result = await provider.tools.createDocument.callback({
147
- documentType: "powerhouse/document-model",
148
- driveId: drive.header.id,
149
- parentFolder: folderId,
150
- });
151
- expect(result.isError).toBeUndefined();
152
- expect(result.structuredContent).toMatchObject({
153
- documentId: expect.any(String),
154
- });
155
- // Verify the document exists
156
- const documentId = result.structuredContent
157
- .documentId;
158
- const doc = await client.get(documentId);
159
- expect(doc).toBeDefined();
160
- expect(doc.header.documentType).toBe("powerhouse/document-model");
161
- });
162
- it("should return error for unknown document type with driveId", async () => {
163
- const drive = await client.createEmpty("powerhouse/document-drive");
164
- const provider = await createReactorMcpProvider({ client });
165
- const result = await provider.tools.createDocument.callback({
166
- documentType: "non-existent/type",
167
- driveId: drive.header.id,
168
- });
169
- expect(result.isError).toBe(true);
170
- expect(getTextContent(result)).toContain("non-existent/type");
171
- });
172
- });
173
- describe("getDocuments tool", () => {
174
- it("should get documents from a drive", async () => {
175
- // Create a drive first
176
- const drive = await client.createEmpty("powerhouse/document-drive");
177
- const provider = await createReactorMcpProvider({ client });
178
- const result = await provider.tools.getDocuments.callback({
179
- parentId: drive.header.id,
180
- });
181
- expect(result.isError).toBeUndefined();
182
- expect(result.structuredContent).toMatchObject({
183
- documentIds: [],
184
- });
185
- });
186
- });
187
- describe("deleteDocument tool", () => {
188
- it("should delete a document successfully", async () => {
189
- const document = documentModelCreateDocument();
190
- await client.create(document);
191
- const provider = await createReactorMcpProvider({ client });
192
- const result = await provider.tools.deleteDocument.callback({
193
- documentId: document.header.id,
194
- });
195
- expect(result.isError).toBeUndefined();
196
- expect(result.structuredContent).toMatchObject({
197
- success: true,
198
- });
199
- });
200
- it("should handle deletion of non-existent document", async () => {
201
- const provider = await createReactorMcpProvider({ client });
202
- const result = await provider.tools.deleteDocument.callback({
203
- documentId: "non-existent-id",
204
- });
205
- // The new reactor throws for non-existent documents
206
- expect(result.structuredContent).toMatchObject({
207
- success: false,
208
- });
209
- });
210
- });
211
- describe("addActions tool", () => {
212
- it("should add an action to a document", async () => {
213
- const document = documentModelCreateDocument();
214
- await client.create(document);
215
- const provider = await createReactorMcpProvider({ client });
216
- const action = documentModelDocumentModelModule.actions.setModelName({
217
- name: "test-doc",
218
- });
219
- const result = await provider.tools.addActions.callback({
220
- documentId: document.header.id,
221
- actions: [action],
222
- });
223
- expect(result.isError).toBeUndefined();
224
- expect(result.structuredContent).toStrictEqual({
225
- success: true,
226
- });
227
- });
228
- it("should add multiple actions to a document", async () => {
229
- const document = documentModelCreateDocument();
230
- await client.create(document);
231
- const provider = await createReactorMcpProvider({ client });
232
- const actions = [
233
- documentModelDocumentModelModule.actions.setModelName({
234
- name: "Test Name 1",
235
- }),
236
- documentModelDocumentModelModule.actions.setModelName({
237
- name: "Test Name 2",
238
- }),
239
- ];
240
- const result = await provider.tools.addActions.callback({
241
- documentId: document.header.id,
242
- actions,
243
- });
244
- expect(result.isError).toBeUndefined();
245
- expect(result.structuredContent).toStrictEqual({
246
- success: true,
247
- });
248
- });
249
- it("should throw error on invalid action type", async () => {
250
- const document = documentModelCreateDocument();
251
- await client.create(document);
252
- const provider = await createReactorMcpProvider({ client });
253
- const result = await provider.tools.addActions.callback({
254
- documentId: document.header.id,
255
- actions: [
256
- {
257
- type: "INVALID_ACTION",
258
- input: {},
259
- scope: "global",
260
- },
261
- ],
262
- });
263
- expect(result.isError).toBe(true);
264
- expect(getTextContent(result)).toContain(`Operation "INVALID_ACTION" is not defined in any module of the document model`);
265
- });
266
- it("should throw error on invalid action input", async () => {
267
- const document = documentModelCreateDocument();
268
- await client.create(document);
269
- const provider = await createReactorMcpProvider({ client });
270
- const result = await provider.tools.addActions.callback({
271
- documentId: document.header.id,
272
- actions: [
273
- {
274
- type: "SET_MODEL_NAME",
275
- input: {
276
- invalidField: "test",
277
- },
278
- scope: "global",
279
- },
280
- ],
281
- });
282
- expect(result.isError).toBe(true);
283
- expect(getTextContent(result)).toContain("Input validation error");
284
- });
285
- it("should throw error on action on non-existent document", async () => {
286
- const provider = await createReactorMcpProvider({ client });
287
- const result = await provider.tools.addActions.callback({
288
- documentId: "non-existent-id",
289
- actions: [
290
- {
291
- type: "SET_NAME",
292
- input: "Test Name",
293
- scope: "global",
294
- },
295
- ],
296
- });
297
- // Action on non-existent document returns an error
298
- expect(result.isError).toBe(true);
299
- expect(getTextContent(result)).toContain("non-existent-id");
300
- });
301
- });
302
- describe("getDrives tool", () => {
303
- it("should list all drives", async () => {
304
- await client.createEmpty("powerhouse/document-drive");
305
- await client.createEmpty("powerhouse/document-drive");
306
- const provider = await createReactorMcpProvider({ client });
307
- const result = await provider.tools.getDrives.callback({});
308
- expect(result.isError).toBeUndefined();
309
- expect(result.structuredContent).toMatchObject({
310
- driveIds: expect.any(Array),
311
- });
312
- expect(result.structuredContent.driveIds.length).toBeGreaterThanOrEqual(2);
313
- });
314
- });
315
- describe("addDrive tool", () => {
316
- it("should add a new drive", async () => {
317
- const provider = await createReactorMcpProvider({ client });
318
- const result = await provider.tools.addDrive.callback({
319
- driveInput: {
320
- global: {
321
- name: "New Test Drive",
322
- icon: "test-icon",
323
- },
324
- },
325
- });
326
- expect(result.isError).toBeUndefined();
327
- expect(result.structuredContent).toMatchObject({
328
- driveId: expect.any(String),
329
- });
330
- const drive = await client.get(result.structuredContent.driveId);
331
- expect(drive).toMatchObject({
332
- header: expect.objectContaining({
333
- documentType: "powerhouse/document-drive",
334
- }),
335
- });
336
- });
337
- it("should add a drive with minimal input", async () => {
338
- const provider = await createReactorMcpProvider({ client });
339
- const result = await provider.tools.addDrive.callback({
340
- driveInput: {
341
- global: {
342
- name: "Minimal Drive",
343
- },
344
- },
345
- });
346
- expect(result.isError).toBeUndefined();
347
- expect(result.structuredContent).toMatchObject({
348
- driveId: expect.any(String),
349
- });
350
- const drive = await client.get(result.structuredContent.driveId);
351
- expect(drive).toMatchObject({
352
- header: expect.objectContaining({
353
- documentType: "powerhouse/document-drive",
354
- }),
355
- });
356
- });
357
- });
358
- describe("getDrive tool", () => {
359
- it("should get a specific drive", async () => {
360
- const drive = await client.createEmpty("powerhouse/document-drive");
361
- const provider = await createReactorMcpProvider({ client });
362
- const result = await provider.tools.getDrive.callback({
363
- driveId: drive.header.id,
364
- });
365
- expect(result.isError).toBeUndefined();
366
- expect(result.structuredContent).toMatchObject({
367
- drive: expect.objectContaining({
368
- header: expect.objectContaining({
369
- documentType: "powerhouse/document-drive",
370
- }),
371
- }),
372
- });
373
- });
374
- });
375
- describe("deleteDrive tool", () => {
376
- it("should delete a drive successfully", async () => {
377
- const drive = await client.createEmpty("powerhouse/document-drive");
378
- const provider = await createReactorMcpProvider({ client });
379
- const result = await provider.tools.deleteDrive.callback({
380
- driveId: drive.header.id,
381
- });
382
- expect(result.isError).toBeUndefined();
383
- expect(result.structuredContent).toMatchObject({
384
- success: true,
385
- });
386
- });
387
- it("should handle deletion of non-existent drive", async () => {
388
- const provider = await createReactorMcpProvider({ client });
389
- const result = await provider.tools.deleteDrive.callback({
390
- driveId: "non-existent-drive-id",
391
- });
392
- // The new reactor throws for non-existent documents
393
- expect(result.structuredContent).toMatchObject({
394
- success: false,
395
- });
396
- });
397
- });
398
- describe("addRemoteDrive tool", () => {
399
- it("should return an error when syncManager is not configured", async () => {
400
- // No syncManager provided
401
- const provider = await createReactorMcpProvider({ client });
402
- const result = await provider.tools.addRemoteDrive.callback({
403
- url: "https://example.com/remote-drive",
404
- options: {
405
- availableOffline: true,
406
- sharingType: "public",
407
- pullFilter: {
408
- branch: ["main"],
409
- documentId: ["doc1", "doc2"],
410
- documentType: ["powerhouse/document-model"],
411
- scope: ["global"],
412
- },
413
- pullInterval: 30000,
414
- },
415
- });
416
- expect(result.isError).toBe(true);
417
- expect(getTextContent(result)).toContain("Remote drive management is not available");
418
- expect(getTextContent(result)).toContain("SyncManager was not configured");
419
- });
420
- });
421
- describe("getDocumentModels tool", () => {
422
- it("should list available document models", async () => {
423
- const provider = await createReactorMcpProvider({ client });
424
- const result = await provider.tools.getDocumentModels.callback({});
425
- expect(result.isError).toBeUndefined();
426
- expect(result.structuredContent).toMatchObject({
427
- documentModels: expect.any(Array),
428
- });
429
- // Should include at least the document model and drive document model
430
- const models = result.structuredContent.documentModels;
431
- expect(models.length).toBeGreaterThanOrEqual(2);
432
- });
433
- });
434
- describe("getDocumentModelSchema tool", () => {
435
- it("should get schema for a document model", async () => {
436
- const provider = await createReactorMcpProvider({ client });
437
- const result = await provider.tools.getDocumentModelSchema.callback({
438
- type: "powerhouse/document-model",
439
- });
440
- expect(result.isError).toBeUndefined();
441
- expect(result.structuredContent).toMatchObject({
442
- schema: expect.objectContaining({
443
- name: expect.any(String),
444
- id: "powerhouse/document-model",
445
- }),
446
- });
447
- });
448
- it("should return error for non-existent document model", async () => {
449
- const provider = await createReactorMcpProvider({ client });
450
- const result = await provider.tools.getDocumentModelSchema.callback({
451
- type: "non-existent/model",
452
- });
453
- expect(result.isError).toBe(true);
454
- expect(getTextContent(result)).toContain("non-existent/model");
455
- });
456
- });
457
- });
458
- //# sourceMappingURL=reactor.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reactor.test.js","sourceRoot":"","sources":["../../test/reactor.test.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- /**
2
- * Unit tests for setupMcpServer (packages/reactor-mcp/src/mcp-routes.ts).
3
- *
4
- * Verifies that:
5
- * - mountNodeRoute is called for POST, GET, and DELETE on /mcp
6
- * - The GET and DELETE handlers return 405 Method Not Allowed
7
- * - The POST handler delegates to the MCP transport (via a mock McpServer)
8
- */
9
- export {};
10
- //# sourceMappingURL=setup-mcp-server.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"setup-mcp-server.test.d.ts","sourceRoot":"","sources":["../../test/setup-mcp-server.test.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}