@powerhousedao/reactor-mcp 4.1.0-dev.4 → 4.1.0-dev.7

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.
@@ -1,4 +1,4 @@
1
- import { z } from "zod";
1
+ import { camelCase } from "change-case";
2
2
  export class InvalidToolOutputError extends Error {
3
3
  constructor(zodError) {
4
4
  super("Invalid tool output\n" + zodError.message);
@@ -15,27 +15,17 @@ export class InvalidToolOutputError extends Error {
15
15
  * callback throws an error, the result will have isError set to true and the error message in the content.
16
16
  */
17
17
  export function toolWithCallback(tool, toolCallback) {
18
- const outputSchema = tool.outputSchema
19
- ? z.object(tool.outputSchema)
20
- : undefined;
21
18
  const wrappedCallback = async (args) => {
22
19
  try {
23
20
  const result = await toolCallback(args);
24
- const validResult = outputSchema?.safeParse(result);
25
- if (validResult && !validResult.success) {
26
- throw new InvalidToolOutputError(validResult.error);
27
- }
28
21
  return {
29
- content: outputSchema
30
- ? []
31
- : [
32
- {
33
- type: "text",
34
- text: JSON.stringify(result),
35
- mimeType: "application/json",
36
- },
37
- ],
38
- structuredContent: outputSchema ? result : undefined,
22
+ content: [
23
+ {
24
+ type: "text",
25
+ text: JSON.stringify(result),
26
+ },
27
+ ],
28
+ structuredContent: result,
39
29
  };
40
30
  }
41
31
  catch (error) {
@@ -48,9 +38,6 @@ export function toolWithCallback(tool, toolCallback) {
48
38
  text: `Error: ${errorString}`,
49
39
  },
50
40
  ],
51
- structuredContent: {
52
- error: errorString,
53
- },
54
41
  };
55
42
  }
56
43
  };
@@ -59,4 +46,55 @@ export function toolWithCallback(tool, toolCallback) {
59
46
  callback: wrappedCallback,
60
47
  };
61
48
  }
49
+ export function validateDocumentModelAction(documentModelModule, action) {
50
+ const errors = [];
51
+ const documentModelState = documentModelModule.documentModel;
52
+ // Get the latest specification
53
+ if (!documentModelState.specifications ||
54
+ documentModelState.specifications.length === 0) {
55
+ errors.push("Document model has no specifications");
56
+ return { isValid: false, errors };
57
+ }
58
+ const latestSpec = documentModelState.specifications[documentModelState.specifications.length - 1];
59
+ // Search through modules to find the operation that matches the action type (in SCREAMING_SNAKE_CASE)
60
+ let operation = null;
61
+ for (const module of latestSpec.modules) {
62
+ const foundOp = module.operations.find((op) => op.name === action.type);
63
+ if (foundOp) {
64
+ operation = foundOp;
65
+ break;
66
+ }
67
+ }
68
+ if (!operation) {
69
+ errors.push(`Operation "${action.type}" is not defined in any module of the document model`);
70
+ return { isValid: false, errors };
71
+ }
72
+ // Convert action type from SCREAMING_SNAKE_CASE to camelCase to match action creators
73
+ const camelCaseActionType = camelCase(action.type);
74
+ // Check if action creator exists in documentModelModule.actions
75
+ const actionCreator = documentModelModule.actions[camelCaseActionType];
76
+ if (!actionCreator) {
77
+ errors.push(`Action creator "${camelCaseActionType}" for action type "${action.type}" is not defined in documentModelDocumentModelModule.actions`);
78
+ return { isValid: false, errors };
79
+ }
80
+ // Validate the operation using the action creator. TODO: Use document model exported validators directly
81
+ let inputError = null;
82
+ try {
83
+ actionCreator(action.input);
84
+ }
85
+ catch (e) {
86
+ inputError = e instanceof Error ? e : new Error(JSON.stringify(e));
87
+ }
88
+ if (inputError) {
89
+ errors.push(`Input validation error: ${inputError.message}`);
90
+ }
91
+ // Validate scope if operation defines one
92
+ if (operation.scope && action.scope !== operation.scope) {
93
+ errors.push(`Action scope "${action.scope}" does not match operation scope "${operation.scope}"`);
94
+ }
95
+ return {
96
+ isValid: errors.length === 0,
97
+ errors,
98
+ };
99
+ }
62
100
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/mcp/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAC/C,YAAY,QAAoB;QAC9B,KAAK,CAAC,uBAAuB,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;QACrC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;IACxB,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAC9B,IAAO,EACP,YAIgD;IAEhD,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY;QACpC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;QAC7B,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,eAAe,GAAG,KAAK,EAAE,IAAwC,EAAE,EAAE;QACzE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;YAExC,MAAM,WAAW,GAAG,YAAY,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;YACpD,IAAI,WAAW,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;gBACxC,MAAM,IAAI,sBAAsB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACtD,CAAC;YACD,OAAO;gBACL,OAAO,EAAE,YAAY;oBACnB,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC;wBACE;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;4BAC5B,QAAQ,EAAE,kBAAkB;yBAC7B;qBACF;gBACL,iBAAiB,EAAE,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;aACnB,CAAC;QACtC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,WAAW,GACf,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACzD,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,UAAU,WAAW,EAAE;qBAC9B;iBACF;gBACD,iBAAiB,EAAE;oBACjB,KAAK,EAAE,WAAW;iBACnB;aACgC,CAAC;QACtC,CAAC;IACH,CAAC,CAAC;IACF,OAAO;QACL,GAAG,IAAI;QACP,QAAQ,EAAE,eAAe;KAC1B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/mcp/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { Provider } from "ai";
2
+ export interface ChatMessage {
3
+ role: "user" | "assistant" | "system";
4
+ content: string;
5
+ }
6
+ export interface ChatOptions {
7
+ provider?: Provider;
8
+ model?: string;
9
+ systemPrompt?: string;
10
+ }
11
+ export declare class LLMChat {
12
+ private provider;
13
+ private model;
14
+ private systemPrompt;
15
+ constructor(options?: ChatOptions);
16
+ sendMessage(messages: ChatMessage[]): Promise<string>;
17
+ streamMessage(messages: ChatMessage[], onChunk: (chunk: string) => void): Promise<void>;
18
+ }
19
+ //# sourceMappingURL=chat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../../src/sdk/chat.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAgB,QAAQ,EAAE,MAAM,IAAI,CAAC;AAEjD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,YAAY,CAAS;gBAEjB,OAAO,GAAE,WAAgB;IAU/B,WAAW,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAyBrD,aAAa,CACjB,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAC/B,OAAO,CAAC,IAAI,CAAC;CAqBjB"}
@@ -0,0 +1,59 @@
1
+ import { createOpenAI } from "@ai-sdk/openai";
2
+ import { streamText } from "ai";
3
+ export class LLMChat {
4
+ provider;
5
+ model;
6
+ systemPrompt;
7
+ constructor(options = {}) {
8
+ this.provider =
9
+ options.provider ||
10
+ createOpenAI({
11
+ apiKey: process.env.OPENAI_API_KEY || "",
12
+ });
13
+ this.model = options.model || "gpt-4-turbo";
14
+ this.systemPrompt = options.systemPrompt || "You are a helpful assistant.";
15
+ }
16
+ async sendMessage(messages) {
17
+ try {
18
+ const coreMessages = messages.map((msg) => ({
19
+ role: msg.role,
20
+ content: msg.content,
21
+ }));
22
+ const result = streamText({
23
+ model: this.provider.languageModel(this.model),
24
+ system: this.systemPrompt,
25
+ messages: coreMessages,
26
+ });
27
+ let fullResponse = "";
28
+ for await (const textPart of result.textStream) {
29
+ fullResponse += textPart;
30
+ }
31
+ return fullResponse;
32
+ }
33
+ catch (error) {
34
+ console.error("Error sending message to LLM:", error);
35
+ throw error;
36
+ }
37
+ }
38
+ async streamMessage(messages, onChunk) {
39
+ try {
40
+ const coreMessages = messages.map((msg) => ({
41
+ role: msg.role,
42
+ content: msg.content,
43
+ }));
44
+ const result = streamText({
45
+ model: this.provider.languageModel(this.model),
46
+ system: this.systemPrompt,
47
+ messages: coreMessages,
48
+ });
49
+ for await (const textPart of result.textStream) {
50
+ onChunk(textPart);
51
+ }
52
+ }
53
+ catch (error) {
54
+ console.error("Error streaming message from LLM:", error);
55
+ throw error;
56
+ }
57
+ }
58
+ }
59
+ //# sourceMappingURL=chat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../../src/sdk/chat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAchC,MAAM,OAAO,OAAO;IACV,QAAQ,CAAW;IACnB,KAAK,CAAS;IACd,YAAY,CAAS;IAE7B,YAAY,UAAuB,EAAE;QACnC,IAAI,CAAC,QAAQ;YACX,OAAO,CAAC,QAAQ;gBAChB,YAAY,CAAC;oBACX,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE;iBACzC,CAAC,CAAC;QACL,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,aAAa,CAAC;QAC5C,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,8BAA8B,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,QAAuB;QACvC,IAAI,CAAC;YACH,MAAM,YAAY,GAAmB,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC1D,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,OAAO,EAAE,GAAG,CAAC,OAAO;aACrB,CAAC,CAAC,CAAC;YAEJ,MAAM,MAAM,GAAG,UAAU,CAAC;gBACxB,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;gBAC9C,MAAM,EAAE,IAAI,CAAC,YAAY;gBACzB,QAAQ,EAAE,YAAY;aACvB,CAAC,CAAC;YAEH,IAAI,YAAY,GAAG,EAAE,CAAC;YACtB,IAAI,KAAK,EAAE,MAAM,QAAQ,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBAC/C,YAAY,IAAI,QAAQ,CAAC;YAC3B,CAAC;YAED,OAAO,YAAY,CAAC;QACtB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;YACtD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,QAAuB,EACvB,OAAgC;QAEhC,IAAI,CAAC;YACH,MAAM,YAAY,GAAmB,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC1D,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,OAAO,EAAE,GAAG,CAAC,OAAO;aACrB,CAAC,CAAC,CAAC;YAEJ,MAAM,MAAM,GAAG,UAAU,CAAC;gBACxB,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;gBAC9C,MAAM,EAAE,IAAI,CAAC,YAAY;gBACzB,QAAQ,EAAE,YAAY;aACvB,CAAC,CAAC;YAEH,IAAI,KAAK,EAAE,MAAM,QAAQ,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBAC/C,OAAO,CAAC,QAAQ,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;YAC1D,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
@@ -1,4 +1,5 @@
1
1
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
- import { type IReactorMcp, type IDocumentModelMcp } from "./reactor.js";
3
- export declare function createServer(reactor: IReactorMcp & IDocumentModelMcp): McpServer;
2
+ import { type IDocumentDriveServer } from "document-drive";
3
+ export declare const ReactorMcpInstructions = "MUST BE USED when creating, updating or deleting documents or document-models for the Powerhouse/Vetra ecosystem.\nThere are 5 main concepts to know of: \n- Document Model: A template for creating documents. It defines the schema and allowed operations for a type of document.\n- Document: An instance of a document model. It contains actual data following the structure defined by the document model and can be changed using operations.\n- Drive: A document of type \"powerhouse/document-drive\" which represents a collection of documents and folders. To add documents to a drive, use the \"addActions\" tool with an \"ADD_FILE\" action.\n- Action: A proposed change to a document. It is a JSON object with the action name and input that defines the action to be taken on the document. Should be dispatched by calling the \"addActions\" tool.\n- Operation: A change done to a document. It contains the action object plus additional metadata such as the index of the operation in the document history, the timestamp it was added, the hash of the resulting document data, the number of operations skipped, and the error message if the operation failed. Actions dispatched with \"addActions\" get converted into an operation.\n\nWhen planning to add multiple actions to a document, try to reduce the number of \"addActions\" calls to a minimum by adding multiple actions at once.\nUnless the user specifies otherwise, and a drive with slug \"vetra\" is available, add newly created documents to it.\n\nExamples:\n<example>Context: User needs to create a new document model for their application. user: 'I need to create a user profile document model with fields for name, email, and preferences' assistant: 'I'll use the reactor-mcp-server to help you create this document model.' <commentary>Since the user is requesting document model creation, use the reactor-mcp-document-expert agent to ensure proper reactor-mcp tool usage.</commentary></example> <example>Context: User is building a content management system and needs create documents for certain types of document models. user: 'Can you help me create example documents for blog posts and categories document models?' assistant: 'Let me use the reactor-mcp-server to create these documents using the appropriate reactor-mcp tool calls.' <commentary>Document model creation requires the reactor-mcp-server tool calls to ensure compliance.</commentary></example>\n<example>Context: User needs to create a new document instance of a given document model. user: 'I need to create a demo user profile document' assistant: 'I'll use the reactor-mcp-server to help you create this document with example values.' <commentary>Since the user is requesting document model creation, use the reactor-mcp-document-expert agent to ensure proper reactor-mcp tool usage.</commentary></example> <example>Context: User is building a content management system and needs create documents for certain types of document models. user: 'Can you help me create example documents for blog posts and categories document models?' assistant: 'Let me use the reactor-mcp-server to create these documents using the appropriate reactor-mcp tool calls.' <commentary>Document creation requires the reactor-mcp-server tool calls to ensure compliance.</commentary></example>\n";
4
+ export declare function createServer(reactor: IDocumentDriveServer): Promise<McpServer>;
4
5
  //# sourceMappingURL=server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAEV,MAAM,yCAAyC,CAAC;AAQjD,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAyQxE,wBAAgB,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,iBAAiB,aAylBpE"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAE3D,eAAO,MAAM,sBAAsB,quGAclC,CAAC;AAEF,wBAAsB,YAAY,CAAC,OAAO,EAAE,oBAAoB,sBAuD/D"}