@agentick/core 0.0.1
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/LICENSE +21 -0
- package/README.md +875 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/.tsbuildinfo.build +1 -0
- package/dist/agent.d.ts +32 -0
- package/dist/agent.d.ts.map +1 -0
- package/dist/agent.js +26 -0
- package/dist/agent.js.map +1 -0
- package/dist/agentick-instance.d.ts +285 -0
- package/dist/agentick-instance.d.ts.map +1 -0
- package/dist/agentick-instance.js +700 -0
- package/dist/agentick-instance.js.map +1 -0
- package/dist/aidk-instance.d.ts +294 -0
- package/dist/aidk-instance.d.ts.map +1 -0
- package/dist/aidk-instance.js +340 -0
- package/dist/aidk-instance.js.map +1 -0
- package/dist/app/session-store.d.ts +57 -0
- package/dist/app/session-store.d.ts.map +1 -0
- package/dist/app/session-store.js +87 -0
- package/dist/app/session-store.js.map +1 -0
- package/dist/app/session.d.ts +209 -0
- package/dist/app/session.d.ts.map +1 -0
- package/dist/app/session.js +2131 -0
- package/dist/app/session.js.map +1 -0
- package/dist/app/sqlite-session-store.d.ts +60 -0
- package/dist/app/sqlite-session-store.d.ts.map +1 -0
- package/dist/app/sqlite-session-store.js +234 -0
- package/dist/app/sqlite-session-store.js.map +1 -0
- package/dist/app/types.d.ts +1461 -0
- package/dist/app/types.d.ts.map +1 -0
- package/dist/app/types.js +14 -0
- package/dist/app/types.js.map +1 -0
- package/dist/app.d.ts +79 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +83 -0
- package/dist/app.js.map +1 -0
- package/dist/channels/adapters/index.d.ts +2 -0
- package/dist/channels/adapters/index.d.ts.map +1 -0
- package/dist/channels/adapters/index.js +2 -0
- package/dist/channels/adapters/index.js.map +1 -0
- package/dist/channels/adapters/redis.d.ts +77 -0
- package/dist/channels/adapters/redis.d.ts.map +1 -0
- package/dist/channels/adapters/redis.js +259 -0
- package/dist/channels/adapters/redis.js.map +1 -0
- package/dist/channels/index.d.ts +38 -0
- package/dist/channels/index.d.ts.map +1 -0
- package/dist/channels/index.js +38 -0
- package/dist/channels/index.js.map +1 -0
- package/dist/channels/service.d.ts +684 -0
- package/dist/channels/service.d.ts.map +1 -0
- package/dist/channels/service.js +870 -0
- package/dist/channels/service.js.map +1 -0
- package/dist/channels/transports/index.d.ts +4 -0
- package/dist/channels/transports/index.d.ts.map +1 -0
- package/dist/channels/transports/index.js +4 -0
- package/dist/channels/transports/index.js.map +1 -0
- package/dist/channels/transports/socketio.d.ts +98 -0
- package/dist/channels/transports/socketio.d.ts.map +1 -0
- package/dist/channels/transports/socketio.js +246 -0
- package/dist/channels/transports/socketio.js.map +1 -0
- package/dist/channels/transports/streamable-http.d.ts +107 -0
- package/dist/channels/transports/streamable-http.d.ts.map +1 -0
- package/dist/channels/transports/streamable-http.js +353 -0
- package/dist/channels/transports/streamable-http.js.map +1 -0
- package/dist/channels/transports/websocket.d.ts +117 -0
- package/dist/channels/transports/websocket.d.ts.map +1 -0
- package/dist/channels/transports/websocket.js +416 -0
- package/dist/channels/transports/websocket.js.map +1 -0
- package/dist/com/index.d.ts +29 -0
- package/dist/com/index.d.ts.map +1 -0
- package/dist/com/index.js +29 -0
- package/dist/com/index.js.map +1 -0
- package/dist/com/object-model.d.ts +634 -0
- package/dist/com/object-model.d.ts.map +1 -0
- package/dist/com/object-model.js +963 -0
- package/dist/com/object-model.js.map +1 -0
- package/dist/com/types.d.ts +192 -0
- package/dist/com/types.d.ts.map +1 -0
- package/dist/com/types.js +1 -0
- package/dist/com/types.js.map +1 -0
- package/dist/compiler/collector.d.ts +16 -0
- package/dist/compiler/collector.d.ts.map +1 -0
- package/dist/compiler/collector.js +388 -0
- package/dist/compiler/collector.js.map +1 -0
- package/dist/compiler/content-block-registry.d.ts +11 -0
- package/dist/compiler/content-block-registry.d.ts.map +1 -0
- package/dist/compiler/content-block-registry.js +312 -0
- package/dist/compiler/content-block-registry.js.map +1 -0
- package/dist/compiler/extractors.d.ts +68 -0
- package/dist/compiler/extractors.d.ts.map +1 -0
- package/dist/compiler/extractors.js +547 -0
- package/dist/compiler/extractors.js.map +1 -0
- package/dist/compiler/fiber-compiler.d.ts +203 -0
- package/dist/compiler/fiber-compiler.d.ts.map +1 -0
- package/dist/compiler/fiber-compiler.js +498 -0
- package/dist/compiler/fiber-compiler.js.map +1 -0
- package/dist/compiler/fiber.d.ts +61 -0
- package/dist/compiler/fiber.d.ts.map +1 -0
- package/dist/compiler/fiber.js +244 -0
- package/dist/compiler/fiber.js.map +1 -0
- package/dist/compiler/index.d.ts +18 -0
- package/dist/compiler/index.d.ts.map +1 -0
- package/dist/compiler/index.js +38 -0
- package/dist/compiler/index.js.map +1 -0
- package/dist/compiler/scheduler.d.ts +95 -0
- package/dist/compiler/scheduler.d.ts.map +1 -0
- package/dist/compiler/scheduler.js +138 -0
- package/dist/compiler/scheduler.js.map +1 -0
- package/dist/compiler/structure-renderer.d.ts +42 -0
- package/dist/compiler/structure-renderer.d.ts.map +1 -0
- package/dist/compiler/structure-renderer.js +189 -0
- package/dist/compiler/structure-renderer.js.map +1 -0
- package/dist/compiler/types.d.ts +96 -0
- package/dist/compiler/types.d.ts.map +1 -0
- package/dist/compiler/types.js +19 -0
- package/dist/compiler/types.js.map +1 -0
- package/dist/component/component-hooks.d.ts +68 -0
- package/dist/component/component-hooks.d.ts.map +1 -0
- package/dist/component/component-hooks.js +112 -0
- package/dist/component/component-hooks.js.map +1 -0
- package/dist/component/component.d.ts +314 -0
- package/dist/component/component.d.ts.map +1 -0
- package/dist/component/component.js +64 -0
- package/dist/component/component.js.map +1 -0
- package/dist/component/index.d.ts +47 -0
- package/dist/component/index.d.ts.map +1 -0
- package/dist/component/index.js +47 -0
- package/dist/component/index.js.map +1 -0
- package/dist/component/tentickle-component.d.ts +185 -0
- package/dist/component/tentickle-component.d.ts.map +1 -0
- package/dist/component/tentickle-component.js +182 -0
- package/dist/component/tentickle-component.js.map +1 -0
- package/dist/content/index.d.ts +12 -0
- package/dist/content/index.d.ts.map +1 -0
- package/dist/content/index.js +17 -0
- package/dist/content/index.js.map +1 -0
- package/dist/context/index.d.ts +51 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/index.js +69 -0
- package/dist/context/index.js.map +1 -0
- package/dist/core/channel-helpers.d.ts +31 -0
- package/dist/core/channel-helpers.d.ts.map +1 -0
- package/dist/core/channel-helpers.js +62 -0
- package/dist/core/channel-helpers.js.map +1 -0
- package/dist/core/channel.d.ts +164 -0
- package/dist/core/channel.d.ts.map +1 -0
- package/dist/core/channel.js +199 -0
- package/dist/core/channel.js.map +1 -0
- package/dist/core/context.d.ts +412 -0
- package/dist/core/context.d.ts.map +1 -0
- package/dist/core/context.js +290 -0
- package/dist/core/context.js.map +1 -0
- package/dist/core/event-buffer.d.ts +212 -0
- package/dist/core/event-buffer.d.ts.map +1 -0
- package/dist/core/event-buffer.js +346 -0
- package/dist/core/event-buffer.js.map +1 -0
- package/dist/core/execution-helpers.d.ts +179 -0
- package/dist/core/execution-helpers.d.ts.map +1 -0
- package/dist/core/execution-helpers.js +212 -0
- package/dist/core/execution-helpers.js.map +1 -0
- package/dist/core/execution-tracker.d.ts +53 -0
- package/dist/core/execution-tracker.d.ts.map +1 -0
- package/dist/core/execution-tracker.js +309 -0
- package/dist/core/execution-tracker.js.map +1 -0
- package/dist/core/index.d.ts +58 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +58 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/logger.d.ts +341 -0
- package/dist/core/logger.d.ts.map +1 -0
- package/dist/core/logger.js +346 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/metrics-helpers.d.ts +40 -0
- package/dist/core/metrics-helpers.d.ts.map +1 -0
- package/dist/core/metrics-helpers.js +72 -0
- package/dist/core/metrics-helpers.js.map +1 -0
- package/dist/core/otel-provider.d.ts +54 -0
- package/dist/core/otel-provider.d.ts.map +1 -0
- package/dist/core/otel-provider.js +107 -0
- package/dist/core/otel-provider.js.map +1 -0
- package/dist/core/procedure-graph.d.ts +136 -0
- package/dist/core/procedure-graph.d.ts.map +1 -0
- package/dist/core/procedure-graph.js +272 -0
- package/dist/core/procedure-graph.js.map +1 -0
- package/dist/core/procedure.d.ts +755 -0
- package/dist/core/procedure.d.ts.map +1 -0
- package/dist/core/procedure.js +899 -0
- package/dist/core/procedure.js.map +1 -0
- package/dist/core/stream.d.ts +106 -0
- package/dist/core/stream.d.ts.map +1 -0
- package/dist/core/stream.js +186 -0
- package/dist/core/stream.js.map +1 -0
- package/dist/core/telemetry.d.ts +182 -0
- package/dist/core/telemetry.d.ts.map +1 -0
- package/dist/core/telemetry.js +124 -0
- package/dist/core/telemetry.js.map +1 -0
- package/dist/engine/client-tool-coordinator.d.ts +50 -0
- package/dist/engine/client-tool-coordinator.d.ts.map +1 -0
- package/dist/engine/client-tool-coordinator.js +121 -0
- package/dist/engine/client-tool-coordinator.js.map +1 -0
- package/dist/engine/engine-events.d.ts +117 -0
- package/dist/engine/engine-events.d.ts.map +1 -0
- package/dist/engine/engine-events.js +178 -0
- package/dist/engine/engine-events.js.map +1 -0
- package/dist/engine/engine-response.d.ts +48 -0
- package/dist/engine/engine-response.d.ts.map +1 -0
- package/dist/engine/engine-response.js +2 -0
- package/dist/engine/engine-response.js.map +1 -0
- package/dist/engine/execution-graph.d.ts +104 -0
- package/dist/engine/execution-graph.d.ts.map +1 -0
- package/dist/engine/execution-graph.js +257 -0
- package/dist/engine/execution-graph.js.map +1 -0
- package/dist/engine/execution-handle.d.ts +212 -0
- package/dist/engine/execution-handle.d.ts.map +1 -0
- package/dist/engine/execution-handle.js +602 -0
- package/dist/engine/execution-handle.js.map +1 -0
- package/dist/engine/execution-types.d.ts +248 -0
- package/dist/engine/execution-types.d.ts.map +1 -0
- package/dist/engine/execution-types.js +23 -0
- package/dist/engine/execution-types.js.map +1 -0
- package/dist/engine/index.d.ts +21 -0
- package/dist/engine/index.d.ts.map +1 -0
- package/dist/engine/index.js +23 -0
- package/dist/engine/index.js.map +1 -0
- package/dist/engine/tool-confirmation-coordinator.d.ts +74 -0
- package/dist/engine/tool-confirmation-coordinator.d.ts.map +1 -0
- package/dist/engine/tool-confirmation-coordinator.js +137 -0
- package/dist/engine/tool-confirmation-coordinator.js.map +1 -0
- package/dist/engine/tool-executor.d.ts +127 -0
- package/dist/engine/tool-executor.d.ts.map +1 -0
- package/dist/engine/tool-executor.js +363 -0
- package/dist/engine/tool-executor.js.map +1 -0
- package/dist/hibernation/index.d.ts +126 -0
- package/dist/hibernation/index.d.ts.map +1 -0
- package/dist/hibernation/index.js +127 -0
- package/dist/hibernation/index.js.map +1 -0
- package/dist/hooks/base-hook-registry.d.ts +41 -0
- package/dist/hooks/base-hook-registry.d.ts.map +1 -0
- package/dist/hooks/base-hook-registry.js +76 -0
- package/dist/hooks/base-hook-registry.js.map +1 -0
- package/dist/hooks/com-state.d.ts +40 -0
- package/dist/hooks/com-state.d.ts.map +1 -0
- package/dist/hooks/com-state.js +90 -0
- package/dist/hooks/com-state.js.map +1 -0
- package/dist/hooks/context-info.d.ts +139 -0
- package/dist/hooks/context-info.d.ts.map +1 -0
- package/dist/hooks/context-info.js +115 -0
- package/dist/hooks/context-info.js.map +1 -0
- package/dist/hooks/context-internal.d.ts +21 -0
- package/dist/hooks/context-internal.d.ts.map +1 -0
- package/dist/hooks/context-internal.js +20 -0
- package/dist/hooks/context-internal.js.map +1 -0
- package/dist/hooks/context.d.ts +64 -0
- package/dist/hooks/context.d.ts.map +1 -0
- package/dist/hooks/context.js +83 -0
- package/dist/hooks/context.js.map +1 -0
- package/dist/hooks/data.d.ts +33 -0
- package/dist/hooks/data.d.ts.map +1 -0
- package/dist/hooks/data.js +84 -0
- package/dist/hooks/data.js.map +1 -0
- package/dist/hooks/formatter-context.d.ts +34 -0
- package/dist/hooks/formatter-context.d.ts.map +1 -0
- package/dist/hooks/formatter-context.js +34 -0
- package/dist/hooks/formatter-context.js.map +1 -0
- package/dist/hooks/hook-registry.d.ts +45 -0
- package/dist/hooks/hook-registry.d.ts.map +1 -0
- package/dist/hooks/hook-registry.js +109 -0
- package/dist/hooks/hook-registry.js.map +1 -0
- package/dist/hooks/index.d.ts +20 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +47 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/knob.d.ts +87 -0
- package/dist/hooks/knob.d.ts.map +1 -0
- package/dist/hooks/knob.js +129 -0
- package/dist/hooks/knob.js.map +1 -0
- package/dist/hooks/knobs-component.d.ts +70 -0
- package/dist/hooks/knobs-component.d.ts.map +1 -0
- package/dist/hooks/knobs-component.js +300 -0
- package/dist/hooks/knobs-component.js.map +1 -0
- package/dist/hooks/lifecycle.d.ts +158 -0
- package/dist/hooks/lifecycle.d.ts.map +1 -0
- package/dist/hooks/lifecycle.js +217 -0
- package/dist/hooks/lifecycle.js.map +1 -0
- package/dist/hooks/message-context.d.ts +101 -0
- package/dist/hooks/message-context.d.ts.map +1 -0
- package/dist/hooks/message-context.js +145 -0
- package/dist/hooks/message-context.js.map +1 -0
- package/dist/hooks/policy-context.d.ts.map +1 -0
- package/dist/hooks/runtime-context.d.ts +122 -0
- package/dist/hooks/runtime-context.d.ts.map +1 -0
- package/dist/hooks/runtime-context.js +149 -0
- package/dist/hooks/runtime-context.js.map +1 -0
- package/dist/hooks/signal.d.ts +267 -0
- package/dist/hooks/signal.d.ts.map +1 -0
- package/dist/hooks/signal.js +825 -0
- package/dist/hooks/signal.js.map +1 -0
- package/dist/hooks/types.d.ts +179 -0
- package/dist/hooks/types.d.ts.map +1 -0
- package/dist/hooks/types.js +5 -0
- package/dist/hooks/types.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +50 -0
- package/dist/index.js.map +1 -0
- package/dist/jsx/components/agent.d.ts +64 -0
- package/dist/jsx/components/agent.d.ts.map +1 -0
- package/dist/jsx/components/agent.js +80 -0
- package/dist/jsx/components/agent.js.map +1 -0
- package/dist/jsx/components/complete.d.ts +65 -0
- package/dist/jsx/components/complete.d.ts.map +1 -0
- package/dist/jsx/components/complete.js +64 -0
- package/dist/jsx/components/complete.js.map +1 -0
- package/dist/jsx/components/content.d.ts +98 -0
- package/dist/jsx/components/content.d.ts.map +1 -0
- package/dist/jsx/components/content.js +51 -0
- package/dist/jsx/components/content.js.map +1 -0
- package/dist/jsx/components/harness.d.ts +118 -0
- package/dist/jsx/components/harness.d.ts.map +1 -0
- package/dist/jsx/components/harness.js +117 -0
- package/dist/jsx/components/harness.js.map +1 -0
- package/dist/jsx/components/index.d.ts +11 -0
- package/dist/jsx/components/index.d.ts.map +1 -0
- package/dist/jsx/components/index.js +11 -0
- package/dist/jsx/components/index.js.map +1 -0
- package/dist/jsx/components/markdown.d.ts +31 -0
- package/dist/jsx/components/markdown.d.ts.map +1 -0
- package/dist/jsx/components/markdown.js +17 -0
- package/dist/jsx/components/markdown.js.map +1 -0
- package/dist/jsx/components/messages.d.ts +283 -0
- package/dist/jsx/components/messages.d.ts.map +1 -0
- package/dist/jsx/components/messages.js +257 -0
- package/dist/jsx/components/messages.js.map +1 -0
- package/dist/jsx/components/model.d.ts +94 -0
- package/dist/jsx/components/model.d.ts.map +1 -0
- package/dist/jsx/components/model.js +96 -0
- package/dist/jsx/components/model.js.map +1 -0
- package/dist/jsx/components/primitives.d.ts +117 -0
- package/dist/jsx/components/primitives.d.ts.map +1 -0
- package/dist/jsx/components/primitives.js +83 -0
- package/dist/jsx/components/primitives.js.map +1 -0
- package/dist/jsx/components/renderer.d.ts +24 -0
- package/dist/jsx/components/renderer.d.ts.map +1 -0
- package/dist/jsx/components/renderer.js +11 -0
- package/dist/jsx/components/renderer.js.map +1 -0
- package/dist/jsx/components/semantic.d.ts +155 -0
- package/dist/jsx/components/semantic.d.ts.map +1 -0
- package/dist/jsx/components/semantic.js +39 -0
- package/dist/jsx/components/semantic.js.map +1 -0
- package/dist/jsx/components/timeline.d.ts +157 -0
- package/dist/jsx/components/timeline.d.ts.map +1 -0
- package/dist/jsx/components/timeline.js +357 -0
- package/dist/jsx/components/timeline.js.map +1 -0
- package/dist/jsx/components/token-budget.d.ts +70 -0
- package/dist/jsx/components/token-budget.d.ts.map +1 -0
- package/dist/jsx/components/token-budget.js +135 -0
- package/dist/jsx/components/token-budget.js.map +1 -0
- package/dist/jsx/components/xml.d.ts +27 -0
- package/dist/jsx/components/xml.d.ts.map +1 -0
- package/dist/jsx/components/xml.js +17 -0
- package/dist/jsx/components/xml.js.map +1 -0
- package/dist/jsx/index.d.ts +58 -0
- package/dist/jsx/index.d.ts.map +1 -0
- package/dist/jsx/index.js +59 -0
- package/dist/jsx/index.js.map +1 -0
- package/dist/jsx/jsx-runtime.d.ts +370 -0
- package/dist/jsx/jsx-runtime.d.ts.map +1 -0
- package/dist/jsx/jsx-runtime.js +79 -0
- package/dist/jsx/jsx-runtime.js.map +1 -0
- package/dist/jsx/jsx-types.d.ts +23 -0
- package/dist/jsx/jsx-types.d.ts.map +1 -0
- package/dist/jsx/jsx-types.js +1 -0
- package/dist/jsx/jsx-types.js.map +1 -0
- package/dist/mcp/client.d.ts +46 -0
- package/dist/mcp/client.d.ts.map +1 -0
- package/dist/mcp/client.js +138 -0
- package/dist/mcp/client.js.map +1 -0
- package/dist/mcp/component.d.ts +95 -0
- package/dist/mcp/component.d.ts.map +1 -0
- package/dist/mcp/component.js +185 -0
- package/dist/mcp/component.js.map +1 -0
- package/dist/mcp/create-mcp-tool.d.ts +191 -0
- package/dist/mcp/create-mcp-tool.d.ts.map +1 -0
- package/dist/mcp/create-mcp-tool.js +228 -0
- package/dist/mcp/create-mcp-tool.js.map +1 -0
- package/dist/mcp/index.d.ts +49 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +48 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/service.d.ts +39 -0
- package/dist/mcp/service.d.ts.map +1 -0
- package/dist/mcp/service.js +77 -0
- package/dist/mcp/service.js.map +1 -0
- package/dist/mcp/tool.d.ts +55 -0
- package/dist/mcp/tool.d.ts.map +1 -0
- package/dist/mcp/tool.js +119 -0
- package/dist/mcp/tool.js.map +1 -0
- package/dist/mcp/types.d.ts +72 -0
- package/dist/mcp/types.d.ts.map +1 -0
- package/dist/mcp/types.js +6 -0
- package/dist/mcp/types.js.map +1 -0
- package/dist/middleware/defaults.d.ts +9 -0
- package/dist/middleware/defaults.d.ts.map +1 -0
- package/dist/middleware/defaults.js +47 -0
- package/dist/middleware/defaults.js.map +1 -0
- package/dist/model/adapter-helpers.d.ts +161 -0
- package/dist/model/adapter-helpers.d.ts.map +1 -0
- package/dist/model/adapter-helpers.js +351 -0
- package/dist/model/adapter-helpers.js.map +1 -0
- package/dist/model/adapter.d.ts +399 -0
- package/dist/model/adapter.d.ts.map +1 -0
- package/dist/model/adapter.js +497 -0
- package/dist/model/adapter.js.map +1 -0
- package/dist/model/index.d.ts +54 -0
- package/dist/model/index.d.ts.map +1 -0
- package/dist/model/index.js +55 -0
- package/dist/model/index.js.map +1 -0
- package/dist/model/model-hooks.d.ts +45 -0
- package/dist/model/model-hooks.d.ts.map +1 -0
- package/dist/model/model-hooks.js +24 -0
- package/dist/model/model-hooks.js.map +1 -0
- package/dist/model/model.d.ts +302 -0
- package/dist/model/model.d.ts.map +1 -0
- package/dist/model/model.js +20 -0
- package/dist/model/model.js.map +1 -0
- package/dist/model/simple-adapter.d.ts +176 -0
- package/dist/model/simple-adapter.d.ts.map +1 -0
- package/dist/model/simple-adapter.js +264 -0
- package/dist/model/simple-adapter.js.map +1 -0
- package/dist/model/stream-accumulator.d.ts +284 -0
- package/dist/model/stream-accumulator.d.ts.map +1 -0
- package/dist/model/stream-accumulator.js +532 -0
- package/dist/model/stream-accumulator.js.map +1 -0
- package/dist/model/utils/index.d.ts +2 -0
- package/dist/model/utils/index.d.ts.map +1 -0
- package/dist/model/utils/index.js +2 -0
- package/dist/model/utils/index.js.map +1 -0
- package/dist/model/utils/language-model.d.ts +26 -0
- package/dist/model/utils/language-model.d.ts.map +1 -0
- package/dist/model/utils/language-model.js +706 -0
- package/dist/model/utils/language-model.js.map +1 -0
- package/dist/procedure/index.d.ts +20 -0
- package/dist/procedure/index.d.ts.map +1 -0
- package/dist/procedure/index.js +19 -0
- package/dist/procedure/index.js.map +1 -0
- package/dist/reconciler/devtools-bridge.d.ts +40 -0
- package/dist/reconciler/devtools-bridge.d.ts.map +1 -0
- package/dist/reconciler/devtools-bridge.js +79 -0
- package/dist/reconciler/devtools-bridge.js.map +1 -0
- package/dist/reconciler/host-config.d.ts +39 -0
- package/dist/reconciler/host-config.d.ts.map +1 -0
- package/dist/reconciler/host-config.js +195 -0
- package/dist/reconciler/host-config.js.map +1 -0
- package/dist/reconciler/index.d.ts +7 -0
- package/dist/reconciler/index.d.ts.map +1 -0
- package/dist/reconciler/index.js +7 -0
- package/dist/reconciler/index.js.map +1 -0
- package/dist/reconciler/reconciler.d.ts +47 -0
- package/dist/reconciler/reconciler.d.ts.map +1 -0
- package/dist/reconciler/reconciler.js +89 -0
- package/dist/reconciler/reconciler.js.map +1 -0
- package/dist/reconciler/types.d.ts +86 -0
- package/dist/reconciler/types.d.ts.map +1 -0
- package/dist/reconciler/types.js +37 -0
- package/dist/reconciler/types.js.map +1 -0
- package/dist/renderers/base.d.ts +98 -0
- package/dist/renderers/base.d.ts.map +1 -0
- package/dist/renderers/base.js +82 -0
- package/dist/renderers/base.js.map +1 -0
- package/dist/renderers/index.d.ts +31 -0
- package/dist/renderers/index.d.ts.map +1 -0
- package/dist/renderers/index.js +31 -0
- package/dist/renderers/index.js.map +1 -0
- package/dist/renderers/markdown.d.ts +48 -0
- package/dist/renderers/markdown.d.ts.map +1 -0
- package/dist/renderers/markdown.js +432 -0
- package/dist/renderers/markdown.js.map +1 -0
- package/dist/renderers/types.d.ts +7 -0
- package/dist/renderers/types.d.ts.map +1 -0
- package/dist/renderers/types.js +7 -0
- package/dist/renderers/types.js.map +1 -0
- package/dist/renderers/xml.d.ts +49 -0
- package/dist/renderers/xml.d.ts.map +1 -0
- package/dist/renderers/xml.js +444 -0
- package/dist/renderers/xml.js.map +1 -0
- package/dist/state/boundary.d.ts +347 -0
- package/dist/state/boundary.d.ts.map +1 -0
- package/dist/state/boundary.js +341 -0
- package/dist/state/boundary.js.map +1 -0
- package/dist/state/context.d.ts +138 -0
- package/dist/state/context.d.ts.map +1 -0
- package/dist/state/context.js +139 -0
- package/dist/state/context.js.map +1 -0
- package/dist/state/hooks.d.ts +798 -0
- package/dist/state/hooks.d.ts.map +1 -0
- package/dist/state/hooks.js +1437 -0
- package/dist/state/hooks.js.map +1 -0
- package/dist/state/index.d.ts +72 -0
- package/dist/state/index.d.ts.map +1 -0
- package/dist/state/index.js +73 -0
- package/dist/state/index.js.map +1 -0
- package/dist/state/signal.d.ts +223 -0
- package/dist/state/signal.d.ts.map +1 -0
- package/dist/state/signal.js +699 -0
- package/dist/state/signal.js.map +1 -0
- package/dist/state/use-state.d.ts +210 -0
- package/dist/state/use-state.d.ts.map +1 -0
- package/dist/state/use-state.js +327 -0
- package/dist/state/use-state.js.map +1 -0
- package/dist/tentickle-instance.d.ts +285 -0
- package/dist/tentickle-instance.d.ts.map +1 -0
- package/dist/tentickle-instance.js +700 -0
- package/dist/tentickle-instance.js.map +1 -0
- package/dist/testing/act.d.ts +59 -0
- package/dist/testing/act.d.ts.map +1 -0
- package/dist/testing/act.js +92 -0
- package/dist/testing/act.js.map +1 -0
- package/dist/testing/async-helpers.d.ts +99 -0
- package/dist/testing/async-helpers.d.ts.map +1 -0
- package/dist/testing/async-helpers.js +193 -0
- package/dist/testing/async-helpers.js.map +1 -0
- package/dist/testing/compile-agent.d.ts +101 -0
- package/dist/testing/compile-agent.d.ts.map +1 -0
- package/dist/testing/compile-agent.js +136 -0
- package/dist/testing/compile-agent.js.map +1 -0
- package/dist/testing/index.d.ts +57 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +59 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/mock-app.d.ts +163 -0
- package/dist/testing/mock-app.d.ts.map +1 -0
- package/dist/testing/mock-app.js +393 -0
- package/dist/testing/mock-app.js.map +1 -0
- package/dist/testing/mocks.d.ts +142 -0
- package/dist/testing/mocks.d.ts.map +1 -0
- package/dist/testing/mocks.js +191 -0
- package/dist/testing/mocks.js.map +1 -0
- package/dist/testing/render-agent.d.ts +146 -0
- package/dist/testing/render-agent.d.ts.map +1 -0
- package/dist/testing/render-agent.js +200 -0
- package/dist/testing/render-agent.js.map +1 -0
- package/dist/testing/test-adapter.d.ts +157 -0
- package/dist/testing/test-adapter.d.ts.map +1 -0
- package/dist/testing/test-adapter.js +297 -0
- package/dist/testing/test-adapter.js.map +1 -0
- package/dist/testing/test-model.d.ts +132 -0
- package/dist/testing/test-model.d.ts.map +1 -0
- package/dist/testing/test-model.js +260 -0
- package/dist/testing/test-model.js.map +1 -0
- package/dist/tool/index.d.ts +61 -0
- package/dist/tool/index.d.ts.map +1 -0
- package/dist/tool/index.js +63 -0
- package/dist/tool/index.js.map +1 -0
- package/dist/tool/tool-hooks.d.ts +45 -0
- package/dist/tool/tool-hooks.d.ts.map +1 -0
- package/dist/tool/tool-hooks.js +35 -0
- package/dist/tool/tool-hooks.js.map +1 -0
- package/dist/tool/tool.d.ts +403 -0
- package/dist/tool/tool.d.ts.map +1 -0
- package/dist/tool/tool.js +176 -0
- package/dist/tool/tool.js.map +1 -0
- package/dist/types.d.ts +442 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +97 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/abort-utils.d.ts +5 -0
- package/dist/utils/abort-utils.d.ts.map +1 -0
- package/dist/utils/abort-utils.js +50 -0
- package/dist/utils/abort-utils.js.map +1 -0
- package/dist/utils/classify-error.d.ts +19 -0
- package/dist/utils/classify-error.d.ts.map +1 -0
- package/dist/utils/classify-error.js +77 -0
- package/dist/utils/classify-error.js.map +1 -0
- package/dist/utils/index.d.ts +21 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +21 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/normalization.d.ts +6 -0
- package/dist/utils/normalization.d.ts.map +1 -0
- package/dist/utils/normalization.js +103 -0
- package/dist/utils/normalization.js.map +1 -0
- package/dist/utils/registry.d.ts +15 -0
- package/dist/utils/registry.d.ts.map +1 -0
- package/dist/utils/registry.js +28 -0
- package/dist/utils/registry.js.map +1 -0
- package/dist/utils/schema.d.ts +7 -0
- package/dist/utils/schema.d.ts.map +1 -0
- package/dist/utils/schema.js +13 -0
- package/dist/utils/schema.js.map +1 -0
- package/dist/utils/token-estimate.d.ts +87 -0
- package/dist/utils/token-estimate.d.ts.map +1 -0
- package/dist/utils/token-estimate.js +199 -0
- package/dist/utils/token-estimate.js.map +1 -0
- package/dist/v2/reconciler/host-config.d.ts +31 -0
- package/dist/v2/reconciler/host-config.d.ts.map +1 -0
- package/dist/v2/reconciler/host-config.js +197 -0
- package/dist/v2/reconciler/host-config.js.map +1 -0
- package/dist/v2/reconciler/index.d.ts +7 -0
- package/dist/v2/reconciler/index.d.ts.map +1 -0
- package/dist/v2/reconciler/index.js +7 -0
- package/dist/v2/reconciler/index.js.map +1 -0
- package/dist/v2/reconciler/reconciler.d.ts +39 -0
- package/dist/v2/reconciler/reconciler.d.ts.map +1 -0
- package/dist/v2/reconciler/reconciler.js +54 -0
- package/dist/v2/reconciler/reconciler.js.map +1 -0
- package/dist/v2/reconciler/types.d.ts +64 -0
- package/dist/v2/reconciler/types.d.ts.map +1 -0
- package/dist/v2/reconciler/types.js +20 -0
- package/dist/v2/reconciler/types.js.map +1 -0
- package/dist/v2/renderers/index.d.ts +7 -0
- package/dist/v2/renderers/index.d.ts.map +1 -0
- package/dist/v2/renderers/index.js +7 -0
- package/dist/v2/renderers/index.js.map +1 -0
- package/dist/v2/renderers/markdown.d.ts +16 -0
- package/dist/v2/renderers/markdown.d.ts.map +1 -0
- package/dist/v2/renderers/markdown.js +65 -0
- package/dist/v2/renderers/markdown.js.map +1 -0
- package/dist/v2/renderers/types.d.ts +26 -0
- package/dist/v2/renderers/types.d.ts.map +1 -0
- package/dist/v2/renderers/types.js +6 -0
- package/dist/v2/renderers/types.js.map +1 -0
- package/dist/v2/renderers/xml.d.ts +17 -0
- package/dist/v2/renderers/xml.d.ts.map +1 -0
- package/dist/v2/renderers/xml.js +73 -0
- package/dist/v2/renderers/xml.js.map +1 -0
- package/package.json +49 -0
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tool Creation
|
|
3
|
+
*
|
|
4
|
+
* Factory functions for creating MCP tools that work like regular tools:
|
|
5
|
+
* - Pass to models: engine.execute({ tools: [tool] })
|
|
6
|
+
* - Run directly: await tool.run(input)
|
|
7
|
+
* - Use in JSX: <MyMCPTool />
|
|
8
|
+
*
|
|
9
|
+
* Three main entry points:
|
|
10
|
+
* 1. createMCPTool() - Component factory with discovery, for JSX usage
|
|
11
|
+
* 2. createMCPToolFromDefinition() - Direct creation from known definition
|
|
12
|
+
* 3. discoverMCPTools() - Batch discovery of all tools on a server
|
|
13
|
+
*/
|
|
14
|
+
import React from "react";
|
|
15
|
+
import { MCPClient } from "./client";
|
|
16
|
+
import { MCPService } from "./service";
|
|
17
|
+
import { MCPTool } from "./tool";
|
|
18
|
+
import { MCPToolComponent } from "./component";
|
|
19
|
+
// ============================================================================
|
|
20
|
+
// Config Utilities
|
|
21
|
+
// ============================================================================
|
|
22
|
+
/**
|
|
23
|
+
* Normalizes Cursor-style config to full MCPConfig.
|
|
24
|
+
*
|
|
25
|
+
* Cursor-style: { command: 'npx', args: [...], env: {...} }
|
|
26
|
+
* Full MCPConfig: { serverName, transport, connection: {...} }
|
|
27
|
+
*/
|
|
28
|
+
export function normalizeMCPConfig(serverName, config) {
|
|
29
|
+
// Already a full MCPConfig
|
|
30
|
+
if ("transport" in config && "connection" in config) {
|
|
31
|
+
return config;
|
|
32
|
+
}
|
|
33
|
+
// Convert Cursor-style to MCPConfig (assumes stdio transport)
|
|
34
|
+
const c = config;
|
|
35
|
+
return {
|
|
36
|
+
serverName,
|
|
37
|
+
transport: "stdio",
|
|
38
|
+
connection: {
|
|
39
|
+
command: c.command,
|
|
40
|
+
args: c.args || [],
|
|
41
|
+
env: c.env,
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Merges base config with runtime overrides.
|
|
47
|
+
* Runtime values take precedence.
|
|
48
|
+
*/
|
|
49
|
+
export function mergeMCPConfig(base, runtime) {
|
|
50
|
+
if (!runtime)
|
|
51
|
+
return base;
|
|
52
|
+
return {
|
|
53
|
+
...base,
|
|
54
|
+
...runtime,
|
|
55
|
+
connection: {
|
|
56
|
+
...base.connection,
|
|
57
|
+
...runtime.connection,
|
|
58
|
+
},
|
|
59
|
+
auth: runtime.auth || base.auth,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Creates an MCP tool component that discovers and registers on mount.
|
|
64
|
+
*
|
|
65
|
+
* Use this when you need:
|
|
66
|
+
* - Dynamic discovery at runtime
|
|
67
|
+
* - Runtime configuration (auth tokens)
|
|
68
|
+
* - JSX-based tool declaration
|
|
69
|
+
*
|
|
70
|
+
* @example Basic usage
|
|
71
|
+
* ```tsx
|
|
72
|
+
* const ReadFile = createMCPTool({
|
|
73
|
+
* server: 'filesystem',
|
|
74
|
+
* config: { command: 'npx', args: ['-y', '@modelcontextprotocol/server-filesystem', '/path'] },
|
|
75
|
+
* toolName: 'read_file',
|
|
76
|
+
* });
|
|
77
|
+
*
|
|
78
|
+
* function MyAgent() {
|
|
79
|
+
* return (
|
|
80
|
+
* <>
|
|
81
|
+
* <ReadFile />
|
|
82
|
+
* <Model />
|
|
83
|
+
* </>
|
|
84
|
+
* );
|
|
85
|
+
* }
|
|
86
|
+
* ```
|
|
87
|
+
*
|
|
88
|
+
* @example With runtime auth
|
|
89
|
+
* ```tsx
|
|
90
|
+
* const APITool = createMCPTool({
|
|
91
|
+
* server: 'api',
|
|
92
|
+
* config: { transport: 'sse', connection: { url: 'https://api.example.com/mcp' } },
|
|
93
|
+
* toolName: 'query',
|
|
94
|
+
* });
|
|
95
|
+
*
|
|
96
|
+
* // Runtime config from user context
|
|
97
|
+
* <APITool runtimeConfig={{ auth: { type: 'bearer', token: userToken } }} />
|
|
98
|
+
* ```
|
|
99
|
+
*/
|
|
100
|
+
export function createMCPTool(options) {
|
|
101
|
+
// Return a functional component that wraps MCPToolComponent with merged props
|
|
102
|
+
const SingleMCPToolComponent = (props) => {
|
|
103
|
+
// Build merged props
|
|
104
|
+
const mergedProps = {
|
|
105
|
+
server: props?.server ?? options.server,
|
|
106
|
+
config: props?.config ?? options.config,
|
|
107
|
+
// If toolName specified, only include that tool; otherwise include first tool
|
|
108
|
+
include: options.toolName ? [options.toolName] : undefined,
|
|
109
|
+
toolPrefix: props?.toolPrefix ?? options.toolPrefix,
|
|
110
|
+
mcpClient: props?.client ?? options.client,
|
|
111
|
+
runtimeConfig: props?.runtimeConfig ?? options.runtimeConfig,
|
|
112
|
+
// Pass lifecycle hooks from options
|
|
113
|
+
onMount: options.onMount,
|
|
114
|
+
onUnmount: options.onUnmount,
|
|
115
|
+
onStart: options.onStart,
|
|
116
|
+
onTickStart: options.onTickStart,
|
|
117
|
+
onTickEnd: options.onTickEnd,
|
|
118
|
+
onComplete: options.onComplete,
|
|
119
|
+
onError: options.onError,
|
|
120
|
+
};
|
|
121
|
+
return React.createElement(MCPToolComponent, mergedProps);
|
|
122
|
+
};
|
|
123
|
+
return SingleMCPToolComponent;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Creates an ExecutableTool from an MCP tool definition.
|
|
127
|
+
*
|
|
128
|
+
* Use this when you already have:
|
|
129
|
+
* - An active MCPClient connection
|
|
130
|
+
* - The tool definition from discovery
|
|
131
|
+
*
|
|
132
|
+
* @example
|
|
133
|
+
* ```typescript
|
|
134
|
+
* const client = new MCPClient();
|
|
135
|
+
* const service = new MCPService(client);
|
|
136
|
+
*
|
|
137
|
+
* // Connect and discover
|
|
138
|
+
* const config: MCPConfig = {
|
|
139
|
+
* serverName: 'filesystem',
|
|
140
|
+
* transport: 'stdio',
|
|
141
|
+
* connection: { command: 'npx', args: [...] }
|
|
142
|
+
* };
|
|
143
|
+
* const tools = await service.connectAndDiscover(config);
|
|
144
|
+
*
|
|
145
|
+
* // Create specific tool
|
|
146
|
+
* const readFile = createMCPToolFromDefinition({
|
|
147
|
+
* client,
|
|
148
|
+
* config,
|
|
149
|
+
* definition: tools.find(t => t.name === 'read_file')!,
|
|
150
|
+
* });
|
|
151
|
+
*
|
|
152
|
+
* // Pass to model
|
|
153
|
+
* engine.execute({ tools: [readFile] });
|
|
154
|
+
*
|
|
155
|
+
* // Or run directly
|
|
156
|
+
* const result = await readFile.run({ path: '/file.txt' });
|
|
157
|
+
* ```
|
|
158
|
+
*/
|
|
159
|
+
export function createMCPToolFromDefinition(options) {
|
|
160
|
+
const { client, config, definition } = options;
|
|
161
|
+
const name = options.name || definition.name;
|
|
162
|
+
const mcpConfig = {
|
|
163
|
+
serverName: config.serverName,
|
|
164
|
+
serverUrl: config.connection.url,
|
|
165
|
+
transport: config.transport,
|
|
166
|
+
};
|
|
167
|
+
return new MCPTool(client, config.serverName, { ...definition, name }, mcpConfig);
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Discovers all tools from an MCP server and creates ExecutableTools.
|
|
171
|
+
*
|
|
172
|
+
* Use this for batch tool registration or when you need all tools
|
|
173
|
+
* from a server without JSX.
|
|
174
|
+
*
|
|
175
|
+
* @example Basic discovery
|
|
176
|
+
* ```typescript
|
|
177
|
+
* const tools = await discoverMCPTools({
|
|
178
|
+
* config: {
|
|
179
|
+
* serverName: 'filesystem',
|
|
180
|
+
* transport: 'stdio',
|
|
181
|
+
* connection: { command: 'npx', args: [...] }
|
|
182
|
+
* },
|
|
183
|
+
* });
|
|
184
|
+
*
|
|
185
|
+
* // Pass all to model
|
|
186
|
+
* engine.execute({ tools });
|
|
187
|
+
* ```
|
|
188
|
+
*
|
|
189
|
+
* @example With filtering
|
|
190
|
+
* ```typescript
|
|
191
|
+
* const tools = await discoverMCPTools({
|
|
192
|
+
* config,
|
|
193
|
+
* include: ['read_file', 'list_directory'], // Only these
|
|
194
|
+
* toolPrefix: 'fs_',
|
|
195
|
+
* });
|
|
196
|
+
* ```
|
|
197
|
+
*
|
|
198
|
+
* @example Register with COM
|
|
199
|
+
* ```typescript
|
|
200
|
+
* const tools = await discoverMCPTools({ config });
|
|
201
|
+
* tools.forEach(tool => ctx.addTool(tool));
|
|
202
|
+
* ```
|
|
203
|
+
*/
|
|
204
|
+
export async function discoverMCPTools(options) {
|
|
205
|
+
const { config } = options;
|
|
206
|
+
const client = options.client ?? new MCPClient();
|
|
207
|
+
const service = new MCPService(client);
|
|
208
|
+
// Discover
|
|
209
|
+
let definitions = await service.connectAndDiscover(config);
|
|
210
|
+
// Filter
|
|
211
|
+
if (options.include?.length) {
|
|
212
|
+
definitions = definitions.filter((t) => options.include.includes(t.name));
|
|
213
|
+
}
|
|
214
|
+
else if (options.exclude?.length) {
|
|
215
|
+
definitions = definitions.filter((t) => !options.exclude.includes(t.name));
|
|
216
|
+
}
|
|
217
|
+
// Create tools
|
|
218
|
+
return definitions.map((def) => {
|
|
219
|
+
const name = options.toolPrefix ? `${options.toolPrefix}${def.name}` : def.name;
|
|
220
|
+
return createMCPToolFromDefinition({
|
|
221
|
+
client,
|
|
222
|
+
config,
|
|
223
|
+
definition: def,
|
|
224
|
+
name,
|
|
225
|
+
});
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
//# sourceMappingURL=create-mcp-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-mcp-tool.js","sourceRoot":"","sources":["../../src/mcp/create-mcp-tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* # Agentick MCP (Model Context Protocol)
|
|
3
|
+
*
|
|
4
|
+
* Integration with MCP servers for external tool execution.
|
|
5
|
+
* MCP allows agents to use tools provided by external servers.
|
|
6
|
+
*
|
|
7
|
+
* ## Features
|
|
8
|
+
*
|
|
9
|
+
* - **MCPClient** - Connect to MCP servers
|
|
10
|
+
* - **MCPService** - Manage multiple MCP connections
|
|
11
|
+
* - **Tool Discovery** - Auto-discover tools from MCP servers
|
|
12
|
+
* - **Tool Components** - Use MCP tools as JSX components
|
|
13
|
+
*
|
|
14
|
+
* ## Quick Start
|
|
15
|
+
*
|
|
16
|
+
* ```typescript
|
|
17
|
+
* import { discoverMCPTools } from 'agentick/mcp';
|
|
18
|
+
*
|
|
19
|
+
* // Discover tools from an MCP server
|
|
20
|
+
* const tools = await discoverMCPTools({
|
|
21
|
+
* server: {
|
|
22
|
+
* command: 'npx',
|
|
23
|
+
* args: ['-y', '@modelcontextprotocol/server-filesystem'],
|
|
24
|
+
* },
|
|
25
|
+
* });
|
|
26
|
+
*
|
|
27
|
+
* // Use in an agent
|
|
28
|
+
* const MyAgent = () => (
|
|
29
|
+
* <>
|
|
30
|
+
* <System>You can read and write files.</System>
|
|
31
|
+
* {tools.map(tool => <Tool key={tool.name} tool={tool} />)}
|
|
32
|
+
* </>
|
|
33
|
+
* );
|
|
34
|
+
* ```
|
|
35
|
+
*
|
|
36
|
+
* @see {@link MCPClient} - MCP server client
|
|
37
|
+
* @see {@link MCPService} - MCP connection manager
|
|
38
|
+
* @see {@link discoverMCPTools} - Tool discovery
|
|
39
|
+
*
|
|
40
|
+
* @module agentick/mcp
|
|
41
|
+
*/
|
|
42
|
+
export * from "./types";
|
|
43
|
+
export * from "./client";
|
|
44
|
+
export * from "./service";
|
|
45
|
+
export * from "./tool";
|
|
46
|
+
export { MCPToolComponent, MCPTool } from "./component";
|
|
47
|
+
export { createMCPTool, createMCPToolFromDefinition, discoverMCPTools, normalizeMCPConfig, mergeMCPConfig, } from "./create-mcp-tool";
|
|
48
|
+
export type { CreateMCPToolOptions, CreateMCPToolFromDefinitionOptions, DiscoverMCPToolsOptions, } from "./create-mcp-tool";
|
|
49
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EACL,aAAa,EACb,2BAA2B,EAC3B,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,GACf,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,oBAAoB,EACpB,kCAAkC,EAClC,uBAAuB,GACxB,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* # Agentick MCP (Model Context Protocol)
|
|
3
|
+
*
|
|
4
|
+
* Integration with MCP servers for external tool execution.
|
|
5
|
+
* MCP allows agents to use tools provided by external servers.
|
|
6
|
+
*
|
|
7
|
+
* ## Features
|
|
8
|
+
*
|
|
9
|
+
* - **MCPClient** - Connect to MCP servers
|
|
10
|
+
* - **MCPService** - Manage multiple MCP connections
|
|
11
|
+
* - **Tool Discovery** - Auto-discover tools from MCP servers
|
|
12
|
+
* - **Tool Components** - Use MCP tools as JSX components
|
|
13
|
+
*
|
|
14
|
+
* ## Quick Start
|
|
15
|
+
*
|
|
16
|
+
* ```typescript
|
|
17
|
+
* import { discoverMCPTools } from 'agentick/mcp';
|
|
18
|
+
*
|
|
19
|
+
* // Discover tools from an MCP server
|
|
20
|
+
* const tools = await discoverMCPTools({
|
|
21
|
+
* server: {
|
|
22
|
+
* command: 'npx',
|
|
23
|
+
* args: ['-y', '@modelcontextprotocol/server-filesystem'],
|
|
24
|
+
* },
|
|
25
|
+
* });
|
|
26
|
+
*
|
|
27
|
+
* // Use in an agent
|
|
28
|
+
* const MyAgent = () => (
|
|
29
|
+
* <>
|
|
30
|
+
* <System>You can read and write files.</System>
|
|
31
|
+
* {tools.map(tool => <Tool key={tool.name} tool={tool} />)}
|
|
32
|
+
* </>
|
|
33
|
+
* );
|
|
34
|
+
* ```
|
|
35
|
+
*
|
|
36
|
+
* @see {@link MCPClient} - MCP server client
|
|
37
|
+
* @see {@link MCPService} - MCP connection manager
|
|
38
|
+
* @see {@link discoverMCPTools} - Tool discovery
|
|
39
|
+
*
|
|
40
|
+
* @module agentick/mcp
|
|
41
|
+
*/
|
|
42
|
+
export * from "./types";
|
|
43
|
+
export * from "./client";
|
|
44
|
+
export * from "./service";
|
|
45
|
+
export * from "./tool";
|
|
46
|
+
export { MCPToolComponent, MCPTool } from "./component";
|
|
47
|
+
export { createMCPTool, createMCPToolFromDefinition, discoverMCPTools, normalizeMCPConfig, mergeMCPConfig, } from "./create-mcp-tool";
|
|
48
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EACL,aAAa,EACb,2BAA2B,EAC3B,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,GACf,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Service
|
|
3
|
+
*
|
|
4
|
+
* Manages MCP server connections, tool discovery, and registration.
|
|
5
|
+
* Uses the official @modelcontextprotocol/sdk Client.
|
|
6
|
+
*/
|
|
7
|
+
import type { Client } from "@modelcontextprotocol/sdk/client";
|
|
8
|
+
import type { MCPClient } from "./client";
|
|
9
|
+
import type { MCPConfig, MCPToolDefinition } from "./types";
|
|
10
|
+
import type { COM } from "../com/object-model";
|
|
11
|
+
/**
|
|
12
|
+
* MCP Service handles discovery and registration of MCP tools
|
|
13
|
+
*/
|
|
14
|
+
export declare class MCPService {
|
|
15
|
+
private mcpClient;
|
|
16
|
+
constructor(mcpClient: MCPClient);
|
|
17
|
+
connect(config: MCPConfig): Promise<Client>;
|
|
18
|
+
disconnect(serverName: string): Promise<void>;
|
|
19
|
+
disconnectAll(): Promise<void>;
|
|
20
|
+
/**
|
|
21
|
+
* Connect to an MCP server and discover its tools using SDK
|
|
22
|
+
*/
|
|
23
|
+
connectAndDiscover(config: MCPConfig): Promise<MCPToolDefinition[]>;
|
|
24
|
+
/**
|
|
25
|
+
* Discover tools from an MCP server and register them with the COM
|
|
26
|
+
*/
|
|
27
|
+
discoverAndRegister(config: MCPConfig, ctx: COM): Promise<void>;
|
|
28
|
+
listTools(serverName: string): Promise<MCPToolDefinition[]>;
|
|
29
|
+
/**
|
|
30
|
+
* Register a single MCP tool (useful for manual registration)
|
|
31
|
+
*/
|
|
32
|
+
registerMCPTool(config: MCPConfig, mcpToolDef: MCPToolDefinition, ctx: COM): Promise<void>;
|
|
33
|
+
/**
|
|
34
|
+
* Disconnect from an MCP server and remove its tools.
|
|
35
|
+
* Finds tools belonging to this server by checking metadata.mcpConfig.serverName.
|
|
36
|
+
*/
|
|
37
|
+
disconnectAndUnregister(serverName: string, ctx: COM): Promise<void>;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/mcp/service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAE/C;;GAEG;AACH,qBAAa,UAAU;IACT,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,SAAS;IAElC,OAAO,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;IAI3C,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7C,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAIpC;;OAEG;IACG,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAMzE;;OAEG;IACG,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAc/D,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAIjE;;OAEG;IACG,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,iBAAiB,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAUhG;;;OAGG;IACG,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;CAc3E"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Service
|
|
3
|
+
*
|
|
4
|
+
* Manages MCP server connections, tool discovery, and registration.
|
|
5
|
+
* Uses the official @modelcontextprotocol/sdk Client.
|
|
6
|
+
*/
|
|
7
|
+
import { MCPTool } from "./tool";
|
|
8
|
+
/**
|
|
9
|
+
* MCP Service handles discovery and registration of MCP tools
|
|
10
|
+
*/
|
|
11
|
+
export class MCPService {
|
|
12
|
+
mcpClient;
|
|
13
|
+
constructor(mcpClient) {
|
|
14
|
+
this.mcpClient = mcpClient;
|
|
15
|
+
}
|
|
16
|
+
async connect(config) {
|
|
17
|
+
return await this.mcpClient.connect(config);
|
|
18
|
+
}
|
|
19
|
+
async disconnect(serverName) {
|
|
20
|
+
await this.mcpClient.disconnect(serverName);
|
|
21
|
+
}
|
|
22
|
+
async disconnectAll() {
|
|
23
|
+
await this.mcpClient.disconnectAll();
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Connect to an MCP server and discover its tools using SDK
|
|
27
|
+
*/
|
|
28
|
+
async connectAndDiscover(config) {
|
|
29
|
+
await this.connect(config);
|
|
30
|
+
return await this.listTools(config.serverName);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Discover tools from an MCP server and register them with the COM
|
|
34
|
+
*/
|
|
35
|
+
async discoverAndRegister(config, ctx) {
|
|
36
|
+
const tools = await this.connectAndDiscover(config);
|
|
37
|
+
for (const mcpToolDef of tools) {
|
|
38
|
+
const tool = new MCPTool(this.mcpClient, config.serverName, mcpToolDef, {
|
|
39
|
+
serverUrl: config.connection.url,
|
|
40
|
+
serverName: config.serverName,
|
|
41
|
+
transport: config.transport,
|
|
42
|
+
});
|
|
43
|
+
await ctx.addTool(tool);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
async listTools(serverName) {
|
|
47
|
+
return await this.mcpClient.listTools(serverName);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Register a single MCP tool (useful for manual registration)
|
|
51
|
+
*/
|
|
52
|
+
async registerMCPTool(config, mcpToolDef, ctx) {
|
|
53
|
+
const tool = new MCPTool(this.mcpClient, config.serverName, mcpToolDef, {
|
|
54
|
+
serverUrl: config.connection.url,
|
|
55
|
+
serverName: config.serverName,
|
|
56
|
+
transport: config.transport,
|
|
57
|
+
});
|
|
58
|
+
await ctx.addTool(tool);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Disconnect from an MCP server and remove its tools.
|
|
62
|
+
* Finds tools belonging to this server by checking metadata.mcpConfig.serverName.
|
|
63
|
+
*/
|
|
64
|
+
async disconnectAndUnregister(serverName, ctx) {
|
|
65
|
+
// Find all tools that belong to this MCP server
|
|
66
|
+
const allTools = ctx.getTools();
|
|
67
|
+
const toolsToRemove = allTools
|
|
68
|
+
.filter((tool) => tool.metadata.mcpConfig?.serverName === serverName)
|
|
69
|
+
.map((tool) => tool.metadata.name);
|
|
70
|
+
// Remove each tool from the COM
|
|
71
|
+
for (const toolName of toolsToRemove) {
|
|
72
|
+
ctx.removeTool(toolName);
|
|
73
|
+
}
|
|
74
|
+
await this.disconnect(serverName);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/mcp/service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAIjC;;GAEG;AACH,MAAM,OAAO,UAAU;IACD;IAApB,YAAoB,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;IAAG,CAAC;IAE5C,KAAK,CAAC,OAAO,CAAC,MAAiB;QAC7B,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,UAAkB;QACjC,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CAAC,MAAiB;QACxC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAE3B,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB,CAAC,MAAiB,EAAE,GAAQ;QACnD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAEpD,KAAK,MAAM,UAAU,IAAI,KAAK,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE;gBACtE,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG;gBAChC,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,SAAS,EAAE,MAAM,CAAC,SAAS;aAC5B,CAAC,CAAC;YAEH,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,UAAkB;QAChC,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,MAAiB,EAAE,UAA6B,EAAE,GAAQ;QAC9E,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE;YACtE,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG;YAChC,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC,CAAC;QAEH,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,uBAAuB,CAAC,UAAkB,EAAE,GAAQ;QACxD,gDAAgD;QAChD,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;QAChC,MAAM,aAAa,GAAG,QAAQ;aAC3B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,KAAK,UAAU,CAAC;aACpE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAErC,gCAAgC;QAChC,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE,CAAC;YACrC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC3B,CAAC;QAED,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;CACF"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tool
|
|
3
|
+
*
|
|
4
|
+
* Wraps an MCP server tool as an ExecutableTool.
|
|
5
|
+
* The tool forwards execution to the MCP server via MCPClient.
|
|
6
|
+
*/
|
|
7
|
+
import { type ToolMetadata, type ExecutableTool, type ToolHandler } from "../tool/tool";
|
|
8
|
+
import type { ContentBlock } from "@agentick/shared";
|
|
9
|
+
import type { MCPClient } from "./client";
|
|
10
|
+
import type { MCPToolDefinition } from "./types";
|
|
11
|
+
import { z } from "zod";
|
|
12
|
+
import type { Procedure } from "@agentick/kernel";
|
|
13
|
+
/**
|
|
14
|
+
* Converts MCP JSON Schema to Zod schema.
|
|
15
|
+
* Basic conversion - supports common types.
|
|
16
|
+
*/
|
|
17
|
+
export declare function mcpSchemaToZod(schema: MCPToolDefinition["inputSchema"]): z.ZodSchema;
|
|
18
|
+
/**
|
|
19
|
+
* Normalize MCP tool result to ContentBlock[].
|
|
20
|
+
*/
|
|
21
|
+
export declare function normalizeResult(result: any): ContentBlock[];
|
|
22
|
+
/**
|
|
23
|
+
* MCP tool configuration stored in metadata.mcpConfig.
|
|
24
|
+
*/
|
|
25
|
+
export interface MCPToolConfig {
|
|
26
|
+
serverUrl?: string;
|
|
27
|
+
serverName?: string;
|
|
28
|
+
transport?: "stdio" | "sse" | "websocket";
|
|
29
|
+
[key: string]: any;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* MCPTool wraps an MCP server tool as an ExecutableTool.
|
|
33
|
+
*
|
|
34
|
+
* This class is used internally by MCP creation functions.
|
|
35
|
+
* For most use cases, prefer `createMCPTool()` or `discoverMCPTools()`.
|
|
36
|
+
*
|
|
37
|
+
* @example Direct usage (advanced)
|
|
38
|
+
* ```typescript
|
|
39
|
+
* const tool = new MCPTool(mcpClient, 'server-name', toolDefinition, mcpConfig);
|
|
40
|
+
*
|
|
41
|
+
* // Register with COM
|
|
42
|
+
* ctx.addTool(tool);
|
|
43
|
+
*
|
|
44
|
+
* // Or execute directly
|
|
45
|
+
* const result = await tool.run({ path: '/file.txt' });
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
export declare class MCPTool<THandler extends ToolHandler = ToolHandler> implements ExecutableTool<THandler> {
|
|
49
|
+
private mcpClient;
|
|
50
|
+
private serverName;
|
|
51
|
+
readonly metadata: ToolMetadata<Parameters<THandler>[0]>;
|
|
52
|
+
readonly run: Procedure<THandler>;
|
|
53
|
+
constructor(mcpClient: MCPClient, serverName: string, mcpToolDefinition: MCPToolDefinition, mcpConfig?: MCPToolConfig);
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../src/mcp/tool.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,WAAW,EAEjB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAOlD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,iBAAiB,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,SAAS,CAyCpF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,GAAG,GAAG,YAAY,EAAE,CAa3D;AAMD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,WAAW,CAAC;IAC1C,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,OAAO,CAClB,QAAQ,SAAS,WAAW,GAAG,WAAW,CAC1C,YAAW,cAAc,CAAC,QAAQ,CAAC;IAKjC,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,UAAU;IALpB,SAAgB,QAAQ,EAAE,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChE,SAAgB,GAAG,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;gBAG/B,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,MAAM,EAC1B,iBAAiB,EAAE,iBAAiB,EACpC,SAAS,CAAC,EAAE,aAAa;CAoC5B"}
|
package/dist/mcp/tool.js
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tool
|
|
3
|
+
*
|
|
4
|
+
* Wraps an MCP server tool as an ExecutableTool.
|
|
5
|
+
* The tool forwards execution to the MCP server via MCPClient.
|
|
6
|
+
*/
|
|
7
|
+
import { ToolExecutionType, } from "../tool/tool";
|
|
8
|
+
import { z } from "zod";
|
|
9
|
+
import { createEngineProcedure } from "../procedure";
|
|
10
|
+
// ============================================================================
|
|
11
|
+
// Schema Conversion
|
|
12
|
+
// ============================================================================
|
|
13
|
+
/**
|
|
14
|
+
* Converts MCP JSON Schema to Zod schema.
|
|
15
|
+
* Basic conversion - supports common types.
|
|
16
|
+
*/
|
|
17
|
+
export function mcpSchemaToZod(schema) {
|
|
18
|
+
const properties = schema.properties || {};
|
|
19
|
+
const required = schema.required || [];
|
|
20
|
+
const shape = {};
|
|
21
|
+
for (const [key, prop] of Object.entries(properties)) {
|
|
22
|
+
let zType;
|
|
23
|
+
switch (prop.type) {
|
|
24
|
+
case "string":
|
|
25
|
+
zType = z.string();
|
|
26
|
+
break;
|
|
27
|
+
case "number":
|
|
28
|
+
case "integer":
|
|
29
|
+
zType = z.number();
|
|
30
|
+
break;
|
|
31
|
+
case "boolean":
|
|
32
|
+
zType = z.boolean();
|
|
33
|
+
break;
|
|
34
|
+
case "array":
|
|
35
|
+
zType = z.array(z.any());
|
|
36
|
+
break;
|
|
37
|
+
case "object":
|
|
38
|
+
zType = z.record(z.string(), z.any());
|
|
39
|
+
break;
|
|
40
|
+
default:
|
|
41
|
+
zType = z.any();
|
|
42
|
+
}
|
|
43
|
+
if (prop.description) {
|
|
44
|
+
zType = zType.describe(prop.description);
|
|
45
|
+
}
|
|
46
|
+
if (!required.includes(key)) {
|
|
47
|
+
zType = zType.optional();
|
|
48
|
+
}
|
|
49
|
+
shape[key] = zType;
|
|
50
|
+
}
|
|
51
|
+
return z.object(shape);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Normalize MCP tool result to ContentBlock[].
|
|
55
|
+
*/
|
|
56
|
+
export function normalizeResult(result) {
|
|
57
|
+
if (typeof result === "string") {
|
|
58
|
+
return [{ type: "text", text: result }];
|
|
59
|
+
}
|
|
60
|
+
if (result && typeof result === "object") {
|
|
61
|
+
if (Array.isArray(result.content)) {
|
|
62
|
+
return result.content;
|
|
63
|
+
}
|
|
64
|
+
return [{ type: "text", text: JSON.stringify(result, null, 2) }];
|
|
65
|
+
}
|
|
66
|
+
return [{ type: "text", text: String(result) }];
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* MCPTool wraps an MCP server tool as an ExecutableTool.
|
|
70
|
+
*
|
|
71
|
+
* This class is used internally by MCP creation functions.
|
|
72
|
+
* For most use cases, prefer `createMCPTool()` or `discoverMCPTools()`.
|
|
73
|
+
*
|
|
74
|
+
* @example Direct usage (advanced)
|
|
75
|
+
* ```typescript
|
|
76
|
+
* const tool = new MCPTool(mcpClient, 'server-name', toolDefinition, mcpConfig);
|
|
77
|
+
*
|
|
78
|
+
* // Register with COM
|
|
79
|
+
* ctx.addTool(tool);
|
|
80
|
+
*
|
|
81
|
+
* // Or execute directly
|
|
82
|
+
* const result = await tool.run({ path: '/file.txt' });
|
|
83
|
+
* ```
|
|
84
|
+
*/
|
|
85
|
+
export class MCPTool {
|
|
86
|
+
mcpClient;
|
|
87
|
+
serverName;
|
|
88
|
+
metadata;
|
|
89
|
+
run;
|
|
90
|
+
constructor(mcpClient, serverName, mcpToolDefinition, mcpConfig) {
|
|
91
|
+
this.mcpClient = mcpClient;
|
|
92
|
+
this.serverName = serverName;
|
|
93
|
+
// Convert MCP schema to Zod
|
|
94
|
+
const zodSchema = mcpSchemaToZod(mcpToolDefinition.inputSchema);
|
|
95
|
+
// Build metadata
|
|
96
|
+
this.metadata = {
|
|
97
|
+
name: mcpToolDefinition.name,
|
|
98
|
+
description: mcpToolDefinition.description,
|
|
99
|
+
input: zodSchema,
|
|
100
|
+
type: ToolExecutionType.MCP,
|
|
101
|
+
mcpConfig: mcpConfig,
|
|
102
|
+
};
|
|
103
|
+
// Create procedure that forwards to MCP server
|
|
104
|
+
this.run = createEngineProcedure({
|
|
105
|
+
name: "tool:run", // Low cardinality span name (same as regular tools)
|
|
106
|
+
metadata: {
|
|
107
|
+
type: "mcp",
|
|
108
|
+
toolName: mcpToolDefinition.name,
|
|
109
|
+
id: mcpToolDefinition.name,
|
|
110
|
+
operation: "run",
|
|
111
|
+
server: this.serverName,
|
|
112
|
+
},
|
|
113
|
+
}, (async (input) => {
|
|
114
|
+
const result = await this.mcpClient.callTool(this.serverName, mcpToolDefinition.name, input);
|
|
115
|
+
return normalizeResult(result);
|
|
116
|
+
}));
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../../src/mcp/tool.ts"],"names":[],"mappings":"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"}
|