@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,403 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool Creation
|
|
3
|
+
*
|
|
4
|
+
* createTool() returns a ToolClass that can be:
|
|
5
|
+
* 1. Passed directly to models: engine.execute({ tools: [MyTool] })
|
|
6
|
+
* 2. Run directly: await MyTool.run(input)
|
|
7
|
+
* 3. Used in JSX: <MyTool />
|
|
8
|
+
*
|
|
9
|
+
* Core tool types (ToolMetadata, ToolDefinition, ExecutableTool, etc.)
|
|
10
|
+
* are defined in types.ts to keep them centralized.
|
|
11
|
+
*/
|
|
12
|
+
import React from "react";
|
|
13
|
+
import type { ExtractArgs, Middleware, Procedure } from "@agentick/kernel";
|
|
14
|
+
import type { ProviderToolOptions, LibraryToolOptions } from "../types";
|
|
15
|
+
import { ToolExecutionType, ToolIntent, type ClientToolDefinition, type ToolDefinition as BaseToolDefinition } from "@agentick/shared/tools";
|
|
16
|
+
import type { ContentBlock } from "@agentick/shared/blocks";
|
|
17
|
+
import { type RecoveryAction, type TickState } from "../component/component";
|
|
18
|
+
import type { TickResult } from "../hooks/types";
|
|
19
|
+
import type { COM } from "../com/object-model";
|
|
20
|
+
import type { COMInput } from "../com/types";
|
|
21
|
+
import type { JSX } from "../jsx/jsx-runtime";
|
|
22
|
+
import type { ComponentBaseProps } from "../jsx/jsx-types";
|
|
23
|
+
import type { CompiledStructure } from "../compiler/types";
|
|
24
|
+
export { ToolIntent, ToolExecutionType, type ToolCall, type ToolResult, type ToolConfirmationResult, } from "@agentick/shared/tools";
|
|
25
|
+
export type { ToolConfirmationResponse } from "@agentick/shared";
|
|
26
|
+
export type { BaseToolDefinition, ClientToolDefinition };
|
|
27
|
+
/**
|
|
28
|
+
* Version-agnostic Zod schema type.
|
|
29
|
+
* Allows different Zod versions to work together without "excessively deep" errors.
|
|
30
|
+
*/
|
|
31
|
+
export interface ZodSchema<T = unknown> {
|
|
32
|
+
parse: (data: unknown) => T;
|
|
33
|
+
safeParse: (data: unknown) => {
|
|
34
|
+
success: boolean;
|
|
35
|
+
data?: T;
|
|
36
|
+
error?: unknown;
|
|
37
|
+
};
|
|
38
|
+
_output: T;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Tool handler function signature.
|
|
42
|
+
* Takes typed input and an optional COM for accessing agent state.
|
|
43
|
+
*
|
|
44
|
+
* When called during agent execution (model calls the tool), `ctx` is provided.
|
|
45
|
+
* When called directly via `MyTool.run(input)`, `ctx` is undefined.
|
|
46
|
+
*/
|
|
47
|
+
export type ToolHandler<TInput = any, TOutput extends ContentBlock[] = ContentBlock[]> = (input: TInput, ctx?: COM) => TOutput | Promise<TOutput>;
|
|
48
|
+
/**
|
|
49
|
+
* Options for createTool().
|
|
50
|
+
*
|
|
51
|
+
* Mirrors ToolMetadata but with additional creation-time options
|
|
52
|
+
* (handler, middleware, component lifecycle hooks).
|
|
53
|
+
*/
|
|
54
|
+
export interface CreateToolOptions<TInput = any, TOutput extends ContentBlock[] = ContentBlock[]> {
|
|
55
|
+
/** Tool name (used by model to call the tool) */
|
|
56
|
+
name: string;
|
|
57
|
+
/** Description shown to the model */
|
|
58
|
+
description: string;
|
|
59
|
+
/** Zod schema for input validation */
|
|
60
|
+
input: ZodSchema<TInput>;
|
|
61
|
+
/**
|
|
62
|
+
* Optional Zod schema for output validation.
|
|
63
|
+
* Used for type-safe tool composition, workflow orchestration,
|
|
64
|
+
* and runtime validation of handler return values.
|
|
65
|
+
*/
|
|
66
|
+
output?: ZodSchema<TOutput>;
|
|
67
|
+
/**
|
|
68
|
+
* Handler function that executes the tool.
|
|
69
|
+
* Receives typed input and an optional COM for accessing agent state.
|
|
70
|
+
*
|
|
71
|
+
* When called during agent execution, `ctx` is provided so the handler
|
|
72
|
+
* can set state, publish to channels, read context, etc.
|
|
73
|
+
* When called directly via `MyTool.run(input)`, `ctx` is undefined.
|
|
74
|
+
*
|
|
75
|
+
* Optional for CLIENT and PROVIDER tools (no server-side execution).
|
|
76
|
+
*
|
|
77
|
+
* @example
|
|
78
|
+
* ```typescript
|
|
79
|
+
* handler: async (input, ctx) => {
|
|
80
|
+
* const result = doSomething(input);
|
|
81
|
+
* ctx?.setState("lastResult", result);
|
|
82
|
+
* return [{ type: "text", text: JSON.stringify(result) }];
|
|
83
|
+
* }
|
|
84
|
+
* ```
|
|
85
|
+
*/
|
|
86
|
+
handler?: ToolHandler<TInput, TOutput>;
|
|
87
|
+
/**
|
|
88
|
+
* Execution type (SERVER, CLIENT, MCP, PROVIDER).
|
|
89
|
+
* Default: SERVER
|
|
90
|
+
*/
|
|
91
|
+
type?: ToolExecutionType;
|
|
92
|
+
/**
|
|
93
|
+
* Tool intent (RENDER, ACTION, COMPUTE).
|
|
94
|
+
* Helps clients decide how to handle/render tool calls.
|
|
95
|
+
* Default: COMPUTE
|
|
96
|
+
*/
|
|
97
|
+
intent?: ToolIntent;
|
|
98
|
+
/**
|
|
99
|
+
* Whether execution should wait for client response.
|
|
100
|
+
* Only applicable for CLIENT type tools.
|
|
101
|
+
* - true: Server pauses until tool_result received (e.g., forms)
|
|
102
|
+
* - false: Server continues with defaultResult (e.g., charts)
|
|
103
|
+
* Default: false
|
|
104
|
+
*/
|
|
105
|
+
requiresResponse?: boolean;
|
|
106
|
+
/**
|
|
107
|
+
* Timeout in ms when waiting for client response.
|
|
108
|
+
* Only applicable when requiresResponse is true.
|
|
109
|
+
* Default: 30000
|
|
110
|
+
*/
|
|
111
|
+
timeout?: number;
|
|
112
|
+
/**
|
|
113
|
+
* Default result when requiresResponse is false.
|
|
114
|
+
* Returned immediately for render tools.
|
|
115
|
+
* Default: [{ type: 'text', text: '[{name} rendered on client]' }]
|
|
116
|
+
*/
|
|
117
|
+
defaultResult?: ContentBlock[];
|
|
118
|
+
/**
|
|
119
|
+
* Whether execution requires user confirmation before running.
|
|
120
|
+
* Applies to any tool type (SERVER, CLIENT, MCP).
|
|
121
|
+
*
|
|
122
|
+
* - boolean: Always require (true) or never require (false)
|
|
123
|
+
* - function: Conditional - receives input, returns whether confirmation needed.
|
|
124
|
+
* Can be async to check persisted "always allow" state.
|
|
125
|
+
* Use Context.get() inside the function to access execution context.
|
|
126
|
+
*
|
|
127
|
+
* Default: false
|
|
128
|
+
*
|
|
129
|
+
* @example
|
|
130
|
+
* ```typescript
|
|
131
|
+
* // Always require confirmation
|
|
132
|
+
* requiresConfirmation: true,
|
|
133
|
+
*
|
|
134
|
+
* // Conditional - check persisted preferences
|
|
135
|
+
* requiresConfirmation: async (input) => {
|
|
136
|
+
* const ctx = context();
|
|
137
|
+
* const prefs = await getPrefs(ctx.user?.id);
|
|
138
|
+
* return !prefs.alwaysAllow.includes('my_tool');
|
|
139
|
+
* },
|
|
140
|
+
* ```
|
|
141
|
+
*/
|
|
142
|
+
requiresConfirmation?: boolean | ((input: TInput) => boolean | Promise<boolean>);
|
|
143
|
+
/**
|
|
144
|
+
* Message to show user when requesting confirmation.
|
|
145
|
+
* Can be a string or a function that receives the input.
|
|
146
|
+
* Default: "Allow {tool_name} to execute?"
|
|
147
|
+
*
|
|
148
|
+
* @example
|
|
149
|
+
* ```typescript
|
|
150
|
+
* confirmationMessage: (input) => `Delete file "${input.path}"?`,
|
|
151
|
+
* ```
|
|
152
|
+
*/
|
|
153
|
+
confirmationMessage?: string | ((input: TInput) => string);
|
|
154
|
+
/**
|
|
155
|
+
* Provider-specific tool options.
|
|
156
|
+
* Keyed by provider name (openai, google, anthropic, etc.).
|
|
157
|
+
* Used by adapters when converting tools.
|
|
158
|
+
*/
|
|
159
|
+
providerOptions?: ProviderToolOptions;
|
|
160
|
+
/**
|
|
161
|
+
* MCP server configuration (for MCP tools).
|
|
162
|
+
*/
|
|
163
|
+
mcpConfig?: {
|
|
164
|
+
serverUrl?: string;
|
|
165
|
+
serverName?: string;
|
|
166
|
+
transport?: "stdio" | "sse" | "websocket";
|
|
167
|
+
[key: string]: any;
|
|
168
|
+
};
|
|
169
|
+
/** Middleware applied to handler execution */
|
|
170
|
+
middleware?: Middleware[];
|
|
171
|
+
onMount?: (ctx: COM) => void | Promise<void>;
|
|
172
|
+
onUnmount?: (ctx: COM) => void | Promise<void>;
|
|
173
|
+
onStart?: (ctx: COM) => void | Promise<void>;
|
|
174
|
+
onTickStart?: (tickState: TickState, ctx: COM) => void | Promise<void>;
|
|
175
|
+
onTickEnd?: (result: TickResult, ctx: COM) => void | Promise<void>;
|
|
176
|
+
onComplete?: (finalState: COMInput, ctx: COM) => void | Promise<void>;
|
|
177
|
+
onError?: (tickState: TickState, ctx: COM) => RecoveryAction | void;
|
|
178
|
+
render?: (tickState: TickState, ctx: COM) => JSX.Element | null;
|
|
179
|
+
onAfterCompile?: (compiled: CompiledStructure, ctx: COM) => void | Promise<void>;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* A ToolClass is both:
|
|
183
|
+
* - An ExecutableTool (via static metadata/run) - can be passed to models
|
|
184
|
+
* - A functional component - can be used in JSX
|
|
185
|
+
*
|
|
186
|
+
* This enables the three usage patterns:
|
|
187
|
+
* - engine.execute({ tools: [MyTool] }) -- passes static metadata/run
|
|
188
|
+
* - await MyTool.run(input) -- calls static run procedure
|
|
189
|
+
* - <MyTool /> -- renders component that registers tool
|
|
190
|
+
*/
|
|
191
|
+
export interface ToolClass<TInput = any> {
|
|
192
|
+
/** Tool metadata (static property) */
|
|
193
|
+
metadata: ToolMetadata<TInput>;
|
|
194
|
+
/** Run procedure (static property). Undefined for client-only tools. */
|
|
195
|
+
run?: Procedure<ToolHandler<TInput>>;
|
|
196
|
+
/** Functional component that registers the tool on mount */
|
|
197
|
+
(props?: ComponentBaseProps): React.ReactElement | null;
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* ToolClass with run guaranteed to be defined (when handler is provided).
|
|
201
|
+
*/
|
|
202
|
+
export interface RunnableToolClass<TInput = any> extends ToolClass<TInput> {
|
|
203
|
+
run: Procedure<ToolHandler<TInput>>;
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Creates a tool that can be passed to models, run directly, or used in JSX.
|
|
207
|
+
*
|
|
208
|
+
* The returned class has static `metadata` and `run` properties making it
|
|
209
|
+
* a valid ExecutableTool, while also being instantiable as a Component.
|
|
210
|
+
*
|
|
211
|
+
* @example
|
|
212
|
+
* ```typescript
|
|
213
|
+
* const Calculator = createTool({
|
|
214
|
+
* name: 'calculator',
|
|
215
|
+
* description: 'Performs mathematical calculations',
|
|
216
|
+
* input: z.object({
|
|
217
|
+
* expression: z.string().describe('Math expression to evaluate')
|
|
218
|
+
* }),
|
|
219
|
+
* handler: async ({ expression }) => {
|
|
220
|
+
* const result = eval(expression);
|
|
221
|
+
* return [{ type: 'text', text: String(result) }];
|
|
222
|
+
* },
|
|
223
|
+
* });
|
|
224
|
+
*
|
|
225
|
+
* // Pattern 1: Pass to model
|
|
226
|
+
* engine.execute({
|
|
227
|
+
* messages: [...],
|
|
228
|
+
* tools: [Calculator],
|
|
229
|
+
* });
|
|
230
|
+
*
|
|
231
|
+
* // Pattern 2: Run directly
|
|
232
|
+
* const result = await Calculator.run({ expression: '2 + 2' });
|
|
233
|
+
*
|
|
234
|
+
* // Pattern 3: Use in JSX (registers tool when component mounts)
|
|
235
|
+
* function MyAgent() {
|
|
236
|
+
* return (
|
|
237
|
+
* <>
|
|
238
|
+
* <Calculator />
|
|
239
|
+
* <Model />
|
|
240
|
+
* </>
|
|
241
|
+
* );
|
|
242
|
+
* }
|
|
243
|
+
* ```
|
|
244
|
+
*
|
|
245
|
+
* @example Client tool (no handler)
|
|
246
|
+
* ```typescript
|
|
247
|
+
* const RenderChart = createTool({
|
|
248
|
+
* name: 'render_chart',
|
|
249
|
+
* description: 'Renders a chart in the UI',
|
|
250
|
+
* input: z.object({
|
|
251
|
+
* type: z.enum(['line', 'bar', 'pie']),
|
|
252
|
+
* data: z.array(z.object({ label: z.string(), value: z.number() })),
|
|
253
|
+
* }),
|
|
254
|
+
* type: ToolExecutionType.CLIENT,
|
|
255
|
+
* intent: ToolIntent.RENDER,
|
|
256
|
+
* requiresResponse: false,
|
|
257
|
+
* defaultResult: [{ type: 'text', text: '[Chart rendered]' }],
|
|
258
|
+
* });
|
|
259
|
+
* ```
|
|
260
|
+
*/
|
|
261
|
+
export declare function createTool<TInput = any, TOutput extends ContentBlock[] = ContentBlock[]>(options: CreateToolOptions<TInput, TOutput> & {
|
|
262
|
+
handler: ToolHandler<TInput>;
|
|
263
|
+
}): RunnableToolClass<TInput>;
|
|
264
|
+
export declare function createTool<TInput = any, TOutput extends ContentBlock[] = ContentBlock[]>(options: CreateToolOptions<TInput, TOutput> & {
|
|
265
|
+
handler?: undefined;
|
|
266
|
+
}): ToolClass<TInput>;
|
|
267
|
+
/**
|
|
268
|
+
* Tool definition in provider-compatible format (JSON Schema).
|
|
269
|
+
* This is what gets passed to model adapters.
|
|
270
|
+
*
|
|
271
|
+
* Extends the base ToolDefinition from @agentick/shared with backend-specific fields.
|
|
272
|
+
*/
|
|
273
|
+
export interface ToolDefinition extends BaseToolDefinition {
|
|
274
|
+
/**
|
|
275
|
+
* Provider-specific tool configurations.
|
|
276
|
+
* Keyed by provider name (e.g., 'openai', 'google', 'anthropic').
|
|
277
|
+
* Adapters will use their provider-specific config when converting tools.
|
|
278
|
+
* Each adapter can extend this type using module augmentation.
|
|
279
|
+
*/
|
|
280
|
+
providerOptions?: ProviderToolOptions;
|
|
281
|
+
/**
|
|
282
|
+
* Library-specific tool configurations.
|
|
283
|
+
* Keyed by library name (e.g., 'ai-sdk', 'langchain', 'llamaindex').
|
|
284
|
+
* Used by adapters for library-specific tool behavior (timeouts, callbacks, etc.).
|
|
285
|
+
* Each adapter can extend this type using module augmentation.
|
|
286
|
+
*/
|
|
287
|
+
libraryOptions?: LibraryToolOptions;
|
|
288
|
+
/**
|
|
289
|
+
* MCP-specific configuration (only relevant if type === 'mcp').
|
|
290
|
+
* Contains connection info and MCP server details.
|
|
291
|
+
*/
|
|
292
|
+
mcpConfig?: {
|
|
293
|
+
serverUrl?: string;
|
|
294
|
+
serverName?: string;
|
|
295
|
+
transport?: "stdio" | "sse" | "websocket";
|
|
296
|
+
[key: string]: any;
|
|
297
|
+
};
|
|
298
|
+
}
|
|
299
|
+
export interface ToolMetadata<TInput = any, TOutput = any> {
|
|
300
|
+
name: string;
|
|
301
|
+
description: string;
|
|
302
|
+
input: ZodSchema<TInput>;
|
|
303
|
+
/**
|
|
304
|
+
* Optional Zod schema for output validation.
|
|
305
|
+
* Used for type-safe tool composition and workflow orchestration.
|
|
306
|
+
*/
|
|
307
|
+
output?: ZodSchema<TOutput>;
|
|
308
|
+
/**
|
|
309
|
+
* Tool execution type. Determines how the tool is executed.
|
|
310
|
+
* Default: SERVER (engine executes tool.run on server).
|
|
311
|
+
*/
|
|
312
|
+
type?: ToolExecutionType;
|
|
313
|
+
/**
|
|
314
|
+
* Tool intent describes what the tool does (render, action, compute).
|
|
315
|
+
* Used by clients to determine how to render/handle tool calls.
|
|
316
|
+
* Default: COMPUTE
|
|
317
|
+
*/
|
|
318
|
+
intent?: ToolIntent;
|
|
319
|
+
/**
|
|
320
|
+
* Whether execution should wait for client response.
|
|
321
|
+
* Only applicable for CLIENT type tools.
|
|
322
|
+
* - true: Server pauses and waits for tool_result from client (e.g., forms)
|
|
323
|
+
* - false: Server continues immediately with defaultResult (e.g., charts)
|
|
324
|
+
* Default: false
|
|
325
|
+
*/
|
|
326
|
+
requiresResponse?: boolean;
|
|
327
|
+
/**
|
|
328
|
+
* Timeout in milliseconds when waiting for client response.
|
|
329
|
+
* Only applicable when requiresResponse is true.
|
|
330
|
+
* Default: 30000 (30 seconds)
|
|
331
|
+
*/
|
|
332
|
+
timeout?: number;
|
|
333
|
+
/**
|
|
334
|
+
* Default result to use when requiresResponse is false.
|
|
335
|
+
* Returned immediately for render tools that don't need client feedback.
|
|
336
|
+
* Default: [{ type: 'text', text: '[{tool_name} rendered on client]' }]
|
|
337
|
+
*/
|
|
338
|
+
defaultResult?: ContentBlock[];
|
|
339
|
+
/**
|
|
340
|
+
* Whether execution requires user confirmation before running.
|
|
341
|
+
* Applies to any tool type (SERVER, CLIENT, MCP).
|
|
342
|
+
*
|
|
343
|
+
* - boolean: Always require (true) or never require (false)
|
|
344
|
+
* - function: Conditional - receives input, returns whether confirmation needed.
|
|
345
|
+
* Can be async to check persisted "always allow" state.
|
|
346
|
+
* Use Context.get() inside the function to access execution context.
|
|
347
|
+
*
|
|
348
|
+
* Default: false
|
|
349
|
+
*/
|
|
350
|
+
requiresConfirmation?: boolean | ((input: any) => boolean | Promise<boolean>);
|
|
351
|
+
/**
|
|
352
|
+
* Message to show user when requesting confirmation.
|
|
353
|
+
* Can be a string or a function that receives the input.
|
|
354
|
+
* Default: "Allow {tool_name} to execute?"
|
|
355
|
+
*/
|
|
356
|
+
confirmationMessage?: string | ((input: any) => string);
|
|
357
|
+
/**
|
|
358
|
+
* Provider-specific tool configurations.
|
|
359
|
+
* Keyed by provider name (e.g., 'openai', 'google', 'anthropic').
|
|
360
|
+
* Preserved when converting to ToolDefinition.
|
|
361
|
+
* Each adapter can extend this type using module augmentation.
|
|
362
|
+
*/
|
|
363
|
+
providerOptions?: ProviderToolOptions;
|
|
364
|
+
/**
|
|
365
|
+
* Library-specific tool configurations.
|
|
366
|
+
* Keyed by library name (e.g., 'ai-sdk', 'langchain', 'llamaindex').
|
|
367
|
+
* Used by adapters for library-specific tool behavior (timeouts, callbacks, etc.).
|
|
368
|
+
* Each adapter can extend this type using module augmentation.
|
|
369
|
+
*/
|
|
370
|
+
libraryOptions?: LibraryToolOptions;
|
|
371
|
+
/**
|
|
372
|
+
* MCP-specific configuration (only relevant if type === 'mcp').
|
|
373
|
+
* Contains connection info and MCP server details.
|
|
374
|
+
*/
|
|
375
|
+
mcpConfig?: {
|
|
376
|
+
serverUrl?: string;
|
|
377
|
+
serverName?: string;
|
|
378
|
+
transport?: "stdio" | "sse" | "websocket";
|
|
379
|
+
[key: string]: any;
|
|
380
|
+
};
|
|
381
|
+
}
|
|
382
|
+
export interface ExecutableTool<THandler extends (input: any, ctx?: COM) => ContentBlock[] | Promise<ContentBlock[]> = (input: any, ctx?: COM) => ContentBlock[] | Promise<ContentBlock[]>> {
|
|
383
|
+
metadata: ToolMetadata<ExtractArgs<THandler>[0]>;
|
|
384
|
+
run?: Procedure<THandler>;
|
|
385
|
+
}
|
|
386
|
+
/**
|
|
387
|
+
* Convert ClientToolDefinition to ToolDefinition for engine use.
|
|
388
|
+
*/
|
|
389
|
+
export declare function clientToolToDefinition(clientTool: ClientToolDefinition): ToolDefinition;
|
|
390
|
+
/**
|
|
391
|
+
* Type guard: checks if a value is a ToolClass.
|
|
392
|
+
*/
|
|
393
|
+
export declare function isToolClass(value: any): value is ToolClass;
|
|
394
|
+
/**
|
|
395
|
+
* Extract ExecutableTool from a ToolClass.
|
|
396
|
+
* Useful when you need just the metadata/run without the component.
|
|
397
|
+
*/
|
|
398
|
+
export declare function toExecutableTool(toolClass: ToolClass): ExecutableTool;
|
|
399
|
+
/**
|
|
400
|
+
* Check if value implements ExecutableTool interface.
|
|
401
|
+
*/
|
|
402
|
+
export declare function isExecutableTool(value: any): value is ExecutableTool;
|
|
403
|
+
//# sourceMappingURL=tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../src/tool/tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool Creation
|
|
3
|
+
*
|
|
4
|
+
* createTool() returns a ToolClass that can be:
|
|
5
|
+
* 1. Passed directly to models: engine.execute({ tools: [MyTool] })
|
|
6
|
+
* 2. Run directly: await MyTool.run(input)
|
|
7
|
+
* 3. Used in JSX: <MyTool />
|
|
8
|
+
*
|
|
9
|
+
* Core tool types (ToolMetadata, ToolDefinition, ExecutableTool, etc.)
|
|
10
|
+
* are defined in types.ts to keep them centralized.
|
|
11
|
+
*/
|
|
12
|
+
import React, { useEffect, useRef } from "react";
|
|
13
|
+
import { createEngineProcedure, isProcedure } from "../procedure";
|
|
14
|
+
import { ToolExecutionType, ToolIntent, } from "@agentick/shared/tools";
|
|
15
|
+
import {} from "../component/component";
|
|
16
|
+
import { useCom, useTickState, useOnTickStart, useOnTickEnd, useAfterCompile } from "../hooks";
|
|
17
|
+
// Re-export for convenience
|
|
18
|
+
export { ToolIntent, ToolExecutionType, } from "@agentick/shared/tools";
|
|
19
|
+
// Implementation
|
|
20
|
+
export function createTool(options) {
|
|
21
|
+
// Build metadata from options
|
|
22
|
+
const metadata = {
|
|
23
|
+
name: options.name,
|
|
24
|
+
description: options.description,
|
|
25
|
+
input: options.input,
|
|
26
|
+
output: options.output,
|
|
27
|
+
type: options.type,
|
|
28
|
+
intent: options.intent,
|
|
29
|
+
requiresResponse: options.requiresResponse,
|
|
30
|
+
timeout: options.timeout,
|
|
31
|
+
defaultResult: options.defaultResult,
|
|
32
|
+
requiresConfirmation: options.requiresConfirmation,
|
|
33
|
+
confirmationMessage: options.confirmationMessage,
|
|
34
|
+
providerOptions: options.providerOptions,
|
|
35
|
+
mcpConfig: options.mcpConfig,
|
|
36
|
+
};
|
|
37
|
+
// Create run procedure if handler is provided
|
|
38
|
+
const run = options.handler
|
|
39
|
+
? isProcedure(options.handler)
|
|
40
|
+
? options.handler
|
|
41
|
+
: createEngineProcedure({
|
|
42
|
+
name: "tool:run", // Low cardinality span name
|
|
43
|
+
metadata: {
|
|
44
|
+
type: "tool",
|
|
45
|
+
toolName: options.name,
|
|
46
|
+
id: options.name,
|
|
47
|
+
operation: "run",
|
|
48
|
+
},
|
|
49
|
+
middleware: options.middleware || [],
|
|
50
|
+
// Execution boundary: tool runs are child executions of the model call
|
|
51
|
+
executionBoundary: "child",
|
|
52
|
+
executionType: "tool",
|
|
53
|
+
}, options.handler)
|
|
54
|
+
: undefined;
|
|
55
|
+
// Create functional component with static tool properties
|
|
56
|
+
// Using a functional component instead of a class ensures compatibility
|
|
57
|
+
// with React's reconciler (class components must extend React.Component)
|
|
58
|
+
const ToolComponent = function ToolComponent(_props) {
|
|
59
|
+
const ctx = useCom();
|
|
60
|
+
// Note: useTickState returns hooks/types.ts TickState, but lifecycle callbacks
|
|
61
|
+
// expect component/component.ts TickState. They're compatible at runtime,
|
|
62
|
+
// so we use type assertion. The hooks version is a simplified subset.
|
|
63
|
+
const tickState = useTickState();
|
|
64
|
+
// Track lifecycle callbacks (should only fire once per component lifecycle)
|
|
65
|
+
const hasCalledMountRef = useRef(false);
|
|
66
|
+
// Call onMount/onStart lifecycle hooks once
|
|
67
|
+
useEffect(() => {
|
|
68
|
+
if (!hasCalledMountRef.current) {
|
|
69
|
+
hasCalledMountRef.current = true;
|
|
70
|
+
if (options.onMount) {
|
|
71
|
+
Promise.resolve(options.onMount(ctx)).catch(console.error);
|
|
72
|
+
}
|
|
73
|
+
if (options.onStart) {
|
|
74
|
+
Promise.resolve(options.onStart(ctx)).catch(console.error);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return () => {
|
|
78
|
+
if (options.onUnmount) {
|
|
79
|
+
Promise.resolve(options.onUnmount(ctx)).catch(console.error);
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
}, [ctx]);
|
|
83
|
+
// Tick lifecycle hooks - data first, ctx last
|
|
84
|
+
if (options.onTickStart) {
|
|
85
|
+
useOnTickStart((hookTickState, hookCtx) => {
|
|
86
|
+
if (options.onTickStart) {
|
|
87
|
+
Promise.resolve(options.onTickStart(hookTickState, hookCtx)).catch(console.error);
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
if (options.onTickEnd) {
|
|
92
|
+
useOnTickEnd((result, hookCtx) => {
|
|
93
|
+
if (options.onTickEnd) {
|
|
94
|
+
Promise.resolve(options.onTickEnd(result, hookCtx)).catch(console.error);
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
if (options.onAfterCompile) {
|
|
99
|
+
useAfterCompile((compiled, hookCtx) => {
|
|
100
|
+
if (options.onAfterCompile) {
|
|
101
|
+
Promise.resolve(options.onAfterCompile(compiled, hookCtx)).catch(console.error);
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
// Render a <tool> element for the collector to find
|
|
106
|
+
// This is the declarative approach - tools are collected from the tree
|
|
107
|
+
const toolElement = React.createElement("tool", {
|
|
108
|
+
name: metadata.name,
|
|
109
|
+
description: metadata.description,
|
|
110
|
+
schema: metadata.input,
|
|
111
|
+
handler: run,
|
|
112
|
+
// Include full metadata for advanced use cases
|
|
113
|
+
metadata,
|
|
114
|
+
});
|
|
115
|
+
// If custom render provided, wrap both tool element and render output
|
|
116
|
+
if (options.render) {
|
|
117
|
+
const renderOutput = options.render(tickState, ctx);
|
|
118
|
+
return React.createElement(React.Fragment, null, toolElement, renderOutput);
|
|
119
|
+
}
|
|
120
|
+
return toolElement;
|
|
121
|
+
};
|
|
122
|
+
// Attach static properties to make it a valid ToolClass
|
|
123
|
+
ToolComponent.metadata = metadata;
|
|
124
|
+
ToolComponent.run = run;
|
|
125
|
+
return ToolComponent;
|
|
126
|
+
}
|
|
127
|
+
// ClientToolDefinition is now exported from '@agentick/shared'
|
|
128
|
+
/**
|
|
129
|
+
* Convert ClientToolDefinition to ToolDefinition for engine use.
|
|
130
|
+
*/
|
|
131
|
+
export function clientToolToDefinition(clientTool) {
|
|
132
|
+
return {
|
|
133
|
+
name: clientTool.name,
|
|
134
|
+
description: clientTool.description,
|
|
135
|
+
input: clientTool.input,
|
|
136
|
+
output: clientTool.output,
|
|
137
|
+
type: ToolExecutionType.CLIENT,
|
|
138
|
+
intent: clientTool.intent ?? ToolIntent.RENDER,
|
|
139
|
+
requiresResponse: clientTool.requiresResponse ?? false,
|
|
140
|
+
timeout: clientTool.timeout ?? 30000,
|
|
141
|
+
defaultResult: clientTool.defaultResult ?? [
|
|
142
|
+
{ type: "text", text: `[${clientTool.name} rendered on client]` },
|
|
143
|
+
],
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
// ============================================================================
|
|
147
|
+
// Utilities
|
|
148
|
+
// ============================================================================
|
|
149
|
+
/**
|
|
150
|
+
* Type guard: checks if a value is a ToolClass.
|
|
151
|
+
*/
|
|
152
|
+
export function isToolClass(value) {
|
|
153
|
+
return value && typeof value === "function" && "metadata" in value && value.metadata?.name;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Extract ExecutableTool from a ToolClass.
|
|
157
|
+
* Useful when you need just the metadata/run without the component.
|
|
158
|
+
*/
|
|
159
|
+
export function toExecutableTool(toolClass) {
|
|
160
|
+
return {
|
|
161
|
+
metadata: toolClass.metadata,
|
|
162
|
+
run: toolClass.run,
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Check if value implements ExecutableTool interface.
|
|
167
|
+
*/
|
|
168
|
+
export function isExecutableTool(value) {
|
|
169
|
+
return (value &&
|
|
170
|
+
typeof value === "object" &&
|
|
171
|
+
"metadata" in value &&
|
|
172
|
+
value.metadata?.name &&
|
|
173
|
+
value.metadata?.description &&
|
|
174
|
+
value.metadata?.input);
|
|
175
|
+
}
|
|
176
|
+
//# sourceMappingURL=tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../../src/tool/tool.ts"],"names":[],"mappings":"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"}
|