{"version":3,"sources":["../../../src/bridges/langchain/bridge.ts","../../../src/bridges/langchain/wrapper.ts"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["/**\n * LangChain Bridge for GQP\n * Creates LangChain tools from GQP graph\n */\n\nimport type { GQP } from \"../../core/engine.js\";\nimport type { ToolCallParams, ToolCallResult } from \"../../core/types.js\";\n\n/**\n * LangChain tool options\n */\nexport interface LangChainBridgeOptions {\n  /** Custom tool name */\n  name?: string;\n  /** Custom description */\n  description?: string;\n  /** Description style */\n  descriptionStyle?: \"concise\" | \"verbose\";\n  /** Max traversal depth */\n  maxDepth?: number;\n  /** Enable cursor for session continuity */\n  enableCursor?: boolean;\n}\n\n/**\n * Zod schema for the GQP tool\n * This is created at runtime to avoid requiring zod as a dependency\n */\nfunction createZodSchema(): {\n  schema: unknown;\n  zodImport: typeof import(\"zod\") | null;\n} {\n  try {\n    // Dynamic require to make zod optional\n    // eslint-disable-next-line @typescript-eslint/no-require-imports\n    const zod = require(\"zod\");\n    const z = zod.z || zod;\n\n    const schema = z.object({\n      action: z.enum([\"explore\", \"navigate\", \"query\", \"introspect\"]),\n      node: z.string().optional(),\n      query: z.string().optional(),\n      filters: z.record(z.string(), z.unknown()).optional(),\n      options: z\n        .object({\n          limit: z.number().optional().default(10),\n          offset: z.number().optional().default(0),\n          include: z.array(z.string()).optional(),\n        })\n        .optional(),\n      cursorId: z.string().optional(),\n    });\n\n    return { schema, zodImport: zod };\n  } catch {\n    return { schema: null, zodImport: null };\n  }\n}\n\n/**\n * Create a LangChain DynamicStructuredTool from GQP\n *\n * @example\n * ```typescript\n * import { createTool } from '@mzhub/gqp/langchain';\n * import { ChatOpenAI } from 'langchain/chat_models/openai';\n *\n * const tool = createTool(graph);\n *\n * const agent = createToolCallingAgent({\n *   llm: new ChatOpenAI({ modelName: 'gpt-4' }),\n *   tools: [tool]\n * });\n * ```\n */\nexport async function createTool(\n  graph: GQP,\n  options: LangChainBridgeOptions = {},\n): Promise<unknown> {\n  // Dynamic import to make langchain optional\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  const { DynamicStructuredTool } =\n    (await import(\"@langchain/core/tools\")) as any;\n\n  const toolDef = graph.getToolDefinition();\n  const { schema } = createZodSchema();\n\n  if (!schema) {\n    throw new Error(\n      \"zod is required for LangChain integration. Install it with: npm install zod\",\n    );\n  }\n\n  const name = options.name || toolDef.name;\n\n  let description = options.description || toolDef.description;\n  if (options.descriptionStyle === \"concise\") {\n    description =\n      \"Navigate and query data using a graph interface. Use explore to discover data, navigate to focus on a node, query to search.\";\n  }\n\n  return new DynamicStructuredTool({\n    name,\n    description,\n    schema,\n    func: async (params: ToolCallParams): Promise<string> => {\n      const result = await graph.handleToolCall(params);\n      return JSON.stringify(result, null, 2);\n    },\n  });\n}\n\n/**\n * Create multiple LangChain tools (one per action) for simpler agent interactions\n */\nexport async function createActionTools(\n  graph: GQP,\n  options: LangChainBridgeOptions = {},\n): Promise<unknown[]> {\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  const { DynamicStructuredTool } =\n    (await import(\"@langchain/core/tools\")) as any;\n  const { zodImport } = createZodSchema();\n\n  if (!zodImport) {\n    throw new Error(\"zod is required for LangChain integration\");\n  }\n\n  const z = zodImport.z || zodImport;\n  const tools: unknown[] = [];\n\n  // Explore tool\n  tools.push(\n    new DynamicStructuredTool({\n      name: options.name ? `${options.name}_explore` : \"explore_data\",\n      description:\n        \"Discover available data nodes. Call this first to see what data is available.\",\n      schema: z.object({}),\n      func: async (): Promise<string> => {\n        const result = await graph.handleToolCall({ action: \"explore\" });\n        return JSON.stringify(result, null, 2);\n      },\n    }),\n  );\n\n  // Navigate tool\n  tools.push(\n    new DynamicStructuredTool({\n      name: options.name ? `${options.name}_navigate` : \"navigate_to_node\",\n      description:\n        \"Focus on a specific data node to see its fields and relations. Use this after exploring.\",\n      schema: z.object({\n        node: z.string().describe(\"Name of the node to navigate to\"),\n      }),\n      func: async (params: { node: string }): Promise<string> => {\n        const result = await graph.handleToolCall({\n          action: \"navigate\",\n          node: params.node,\n        });\n        return JSON.stringify(result, null, 2);\n      },\n    }),\n  );\n\n  // Query tool\n  tools.push(\n    new DynamicStructuredTool({\n      name: options.name ? `${options.name}_query` : \"query_data\",\n      description:\n        \"Search and filter data within a node. Use filters to narrow results.\",\n      schema: z.object({\n        node: z.string().describe(\"Name of the node to query\"),\n        query: z.string().optional().describe(\"Semantic search query\"),\n        filters: z\n          .record(z.string(), z.unknown())\n          .optional()\n          .describe(\"Field filters\"),\n        limit: z.number().optional().default(10).describe(\"Max results\"),\n      }),\n      func: async (params: {\n        node: string;\n        query?: string;\n        filters?: Record<string, unknown>;\n        limit?: number;\n      }): Promise<string> => {\n        const result = await graph.handleToolCall({\n          action: \"query\",\n          node: params.node,\n          query: params.query,\n          filters: params.filters,\n          options: { limit: params.limit },\n        });\n        return JSON.stringify(result, null, 2);\n      },\n    }),\n  );\n\n  return tools;\n}\n\n/**\n * Create a simple function wrapper for use with LangChain\n * This is useful when you want to handle the tool definition yourself\n */\nexport function createToolFunction(\n  graph: GQP,\n): (params: ToolCallParams) => Promise<ToolCallResult> {\n  return async (params) => graph.handleToolCall(params);\n}\n\n/**\n * Get tool definition in LangChain format\n */\nexport function getToolDefinition(\n  graph: GQP,\n  options: LangChainBridgeOptions = {},\n): {\n  name: string;\n  description: string;\n  parameters: object;\n} {\n  const toolDef = graph.getToolDefinition();\n\n  return {\n    name: options.name || toolDef.name,\n    description: options.description || toolDef.description,\n    parameters: toolDef.inputSchema,\n  };\n}\n","export interface WrappedTool {\n  /** The actual tool instance (DynamicStructuredTool or similar) */\n  tool: unknown;\n  /** Tool name */\n  name: string;\n  /** Tool description */\n  description: string;\n  /** Tool schema/parameters (zod schema) */\n  schema?: unknown;\n}\n\n/**\n * A node in the tool graph\n */\nexport interface ToolGraphNode {\n  /** Human-readable description of this node */\n  description?: string;\n  /** Map of operation names to tools */\n  tools: Record<string, WrappedTool | unknown>;\n  /** Relations to other nodes */\n  relations?: Record<string, string>;\n}\n\n/**\n * Full tool graph configuration\n */\nexport interface ToolGraph {\n  [nodeName: string]: ToolGraphNode;\n}\n\n/**\n * Configuration for wrapTools\n */\nexport interface WrapToolsConfig {\n  /** The tool graph structure */\n  graph: ToolGraph;\n  /** Custom tool name (default: navigate_tools) */\n  toolName?: string;\n  /** Custom tool description */\n  toolDescription?: string;\n}\n\n/**\n * Result from tool wrapper operations\n */\nexport interface WrapperResult {\n  [key: string]: unknown;\n}\n\n/**\n * Tool Graph Wrapper - the core engine for tool consolidation\n */\nexport class ToolGraphWrapper {\n  private graph: ToolGraph;\n  private toolIndex: Map<\n    string,\n    { node: string; operation: string; tool: unknown }\n  > = new Map();\n\n  constructor(graph: ToolGraph) {\n    this.graph = graph;\n    this.buildIndex();\n  }\n\n  /**\n   * Build an index of all tools for fast lookup\n   */\n  private buildIndex(): void {\n    for (const [nodeName, node] of Object.entries(this.graph)) {\n      for (const [opName, tool] of Object.entries(node.tools)) {\n        const key = `${nodeName}.${opName}`;\n        this.toolIndex.set(key, { node: nodeName, operation: opName, tool });\n      }\n    }\n  }\n\n  /**\n   * Explore: Show available nodes\n   */\n  explore(): WrapperResult {\n    const nodes = Object.entries(this.graph).map(([name, node]) => ({\n      name,\n      description: node.description,\n      operations: Object.keys(node.tools),\n      relations: node.relations ? Object.keys(node.relations) : [],\n    }));\n\n    return {\n      availableNodes: nodes,\n      message:\n        \"Use navigate to see operations for a specific node, or execute to run a tool directly.\",\n      totalNodes: nodes.length,\n    };\n  }\n\n  /**\n   * Navigate: Show operations for a specific node\n   */\n  navigate(nodeName: string): WrapperResult {\n    const node = this.graph[nodeName];\n    if (!node) {\n      throw new Error(\n        `Unknown node: \"${nodeName}\". Use explore to see available nodes.`,\n      );\n    }\n\n    const operations = Object.entries(node.tools).map(([opName, tool]) => {\n      const wrappedTool = this.extractToolInfo(tool);\n      return {\n        name: opName,\n        description: wrappedTool.description,\n        parameters: this.schemaToParams(wrappedTool.schema),\n      };\n    });\n\n    const relations = node.relations\n      ? Object.entries(node.relations).map(([name, target]) => ({\n          name,\n          target,\n        }))\n      : [];\n\n    return {\n      currentNode: nodeName,\n      description: node.description,\n      operations,\n      relations,\n      message: `Use execute with node=\"${nodeName}\" and operation=\"<op>\" to run a tool.`,\n    };\n  }\n\n  /**\n   * Execute: Run the actual tool\n   */\n  async execute(\n    nodeName: string,\n    operation: string,\n    params: Record<string, unknown> = {},\n  ): Promise<WrapperResult> {\n    const key = `${nodeName}.${operation}`;\n    const entry = this.toolIndex.get(key);\n\n    if (!entry) {\n      const node = this.graph[nodeName];\n      if (!node) {\n        throw new Error(`Unknown node: \"${nodeName}\"`);\n      }\n      const available = Object.keys(node.tools).join(\", \");\n      throw new Error(\n        `Unknown operation: \"${operation}\". Available: ${available}`,\n      );\n    }\n\n    const tool = entry.tool as {\n      invoke?: (params: unknown) => Promise<unknown>;\n      func?: (params: unknown) => Promise<unknown>;\n    };\n\n    // Call the actual tool\n    let result: unknown;\n    if (typeof tool.invoke === \"function\") {\n      result = await tool.invoke(params);\n    } else if (typeof tool.func === \"function\") {\n      result = await tool.func(params);\n    } else if (typeof tool === \"function\") {\n      result = await (tool as (params: unknown) => Promise<unknown>)(params);\n    } else {\n      throw new Error(`Tool \"${key}\" is not callable`);\n    }\n\n    // Parse result if it's a JSON string\n    if (typeof result === \"string\") {\n      try {\n        result = JSON.parse(result);\n      } catch {\n        // Keep as string if not valid JSON\n      }\n    }\n\n    return {\n      node: nodeName,\n      operation,\n      data: result,\n      suggestions: this.getSuggestions(nodeName),\n    };\n  }\n\n  /**\n   * Get suggestions for next actions based on current node\n   */\n  private getSuggestions(nodeName: string): string[] {\n    const node = this.graph[nodeName];\n    if (!node) return [];\n\n    const suggestions: string[] = [];\n\n    // Suggest related nodes\n    if (node.relations) {\n      for (const [relName, target] of Object.entries(node.relations)) {\n        suggestions.push(`Navigate to ${target} (${relName})`);\n      }\n    }\n\n    return suggestions.slice(0, 3);\n  }\n\n  /**\n   * Extract tool info from various tool formats\n   */\n  private extractToolInfo(tool: unknown): WrappedTool {\n    const t = tool as Record<string, unknown>;\n\n    return {\n      tool,\n      name: (t.name as string) || \"unknown\",\n      description: (t.description as string) || \"\",\n      schema: t.schema,\n    };\n  }\n\n  /**\n   * Convert zod schema to simple parameter description\n   */\n  private schemaToParams(schema: unknown): Record<string, string> | undefined {\n    if (!schema) return undefined;\n\n    const s = schema as {\n      shape?: Record<\n        string,\n        { description?: string; _def?: { typeName?: string } }\n      >;\n    };\n    if (!s.shape) return undefined;\n\n    const params: Record<string, string> = {};\n    for (const [key, value] of Object.entries(s.shape)) {\n      const type = value._def?.typeName?.replace(\"Zod\", \"\") || \"unknown\";\n      const desc = value.description || \"\";\n      params[key] = desc ? `${type} - ${desc}` : type;\n    }\n\n    return params;\n  }\n\n  /**\n   * Get tool definition for the wrapper\n   */\n  getToolDefinition(\n    name: string,\n    description: string,\n  ): { name: string; description: string; inputSchema: object } {\n    return {\n      name,\n      description,\n      inputSchema: {\n        type: \"object\",\n        properties: {\n          action: {\n            type: \"string\",\n            enum: [\"explore\", \"navigate\", \"execute\"],\n            description:\n              \"Action to perform: explore (list nodes), navigate (see node details), execute (run a tool)\",\n          },\n          node: {\n            type: \"string\",\n            description: \"Node name (required for navigate/execute)\",\n          },\n          operation: {\n            type: \"string\",\n            description: \"Operation name (required for execute)\",\n          },\n          params: {\n            type: \"object\",\n            description: \"Parameters to pass to the tool (for execute)\",\n            additionalProperties: true,\n          },\n        },\n        required: [\"action\"],\n      },\n    };\n  }\n\n  /**\n   * Handle a tool call\n   */\n  async handleToolCall(params: {\n    action: \"explore\" | \"navigate\" | \"execute\";\n    node?: string;\n    operation?: string;\n    params?: Record<string, unknown>;\n  }): Promise<WrapperResult> {\n    switch (params.action) {\n      case \"explore\":\n        return this.explore();\n\n      case \"navigate\":\n        if (!params.node) {\n          throw new Error(\"node is required for navigate action\");\n        }\n        return this.navigate(params.node);\n\n      case \"execute\":\n        if (!params.node || !params.operation) {\n          throw new Error(\"node and operation are required for execute action\");\n        }\n        return this.execute(params.node, params.operation, params.params || {});\n\n      default:\n        throw new Error(\n          `Unknown action: ${(params as { action: string }).action}`,\n        );\n    }\n  }\n}\n\n/**\n * Input parameters for wrapper tool\n */\ninterface WrapToolParams {\n  action: \"explore\" | \"navigate\" | \"execute\";\n  node?: string;\n  operation?: string;\n  params?: Record<string, unknown>;\n}\n\n/**\n * Wrap existing LangChain tools into ONE navigable interface\n *\n * @example\n * ```typescript\n * import { wrapTools } from '@mzhub/gqp/langchain';\n * import {\n *   searchProductsTool,\n *   getProductDetailsTool,\n *   searchVendorsTool,\n *   listOrdersTool\n * } from './tools';\n *\n * const gqpTool = await wrapTools({\n *   graph: {\n *     Product: {\n *       description: 'Product catalog',\n *       tools: {\n *         search: searchProductsTool,\n *         getDetails: getProductDetailsTool\n *       },\n *       relations: {\n *         vendor: 'Vendor'\n *       }\n *     },\n *     Vendor: {\n *       description: 'Vendor search',\n *       tools: {\n *         search: searchVendorsTool\n *       }\n *     },\n *     Order: {\n *       description: 'Order history',\n *       tools: {\n *         list: listOrdersTool\n *       }\n *     }\n *   }\n * });\n *\n * // Now use ONE tool instead of many\n * const agent = createReactAgent({\n *   llm,\n *   tools: [\n *     gqpTool,           // Wraps all read tools\n *     createOrderTool,   // Keep action tools separate\n *   ]\n * });\n * ```\n */\nexport async function wrapTools(config: WrapToolsConfig): Promise<unknown> {\n  // Dynamic import to make langchain optional\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  const { DynamicStructuredTool } =\n    (await import(\"@langchain/core/tools\")) as any;\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  const { z } = (await import(\"zod\")) as any;\n\n  const wrapper = new ToolGraphWrapper(config.graph);\n\n  const toolName = config.toolName || \"navigate_tools\";\n  const toolDescription =\n    config.toolDescription ||\n    \"Navigate and execute available tools using a graph interface. \" +\n      \"Use explore to see available nodes, navigate to see operations for a node, \" +\n      \"and execute to run a specific tool.\";\n\n  return new DynamicStructuredTool({\n    name: toolName,\n    description: toolDescription,\n    schema: z.object({\n      action: z\n        .enum([\"explore\", \"navigate\", \"execute\"])\n        .describe(\n          \"Action: explore (list nodes), navigate (see node details), execute (run tool)\",\n        ),\n      node: z.string().optional().describe(\"Node name (for navigate/execute)\"),\n      operation: z.string().optional().describe(\"Operation name (for execute)\"),\n      params: z\n        .record(z.string(), z.unknown())\n        .optional()\n        .describe(\"Tool parameters (for execute)\"),\n    }),\n    func: async (params: WrapToolParams): Promise<string> => {\n      const result = await wrapper.handleToolCall(params);\n      return JSON.stringify(result, null, 2);\n    },\n  });\n}\n\n/**\n * Create wrapper without LangChain dependency (for other frameworks)\n */\nexport function createToolWrapper(config: WrapToolsConfig): ToolGraphWrapper {\n  return new ToolGraphWrapper(config.graph);\n}\n"]}