@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,346 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Logger - Structured logging with automatic context injection
|
|
3
|
+
*
|
|
4
|
+
* Built on pino for performance, with automatic injection of:
|
|
5
|
+
* - Execution context (executionId, threadId, userId, tick)
|
|
6
|
+
* - OpenTelemetry trace/span IDs for log-trace correlation
|
|
7
|
+
* - Custom metadata
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* import { Logger } from './core';
|
|
12
|
+
*
|
|
13
|
+
* // Configure once at app start
|
|
14
|
+
* Logger.configure({
|
|
15
|
+
* level: 'info',
|
|
16
|
+
* transport: {
|
|
17
|
+
* targets: [
|
|
18
|
+
* { target: 'pino-pretty', options: { colorize: true } },
|
|
19
|
+
* { target: 'pino/file', options: { destination: './app.log' } },
|
|
20
|
+
* ],
|
|
21
|
+
* },
|
|
22
|
+
* });
|
|
23
|
+
*
|
|
24
|
+
* // Use anywhere - context is auto-injected
|
|
25
|
+
* const log = Logger.get();
|
|
26
|
+
* log.info('Processing request');
|
|
27
|
+
*
|
|
28
|
+
* // Create scoped child logger
|
|
29
|
+
* const toolLog = Logger.for('CalculatorTool');
|
|
30
|
+
* toolLog.debug('Executing', { expression: '2+2' });
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
import pino, {} from "pino";
|
|
34
|
+
import { Context } from "./context";
|
|
35
|
+
// =============================================================================
|
|
36
|
+
// Implementation
|
|
37
|
+
// =============================================================================
|
|
38
|
+
let globalLogger = null;
|
|
39
|
+
let globalConfig = {};
|
|
40
|
+
/**
|
|
41
|
+
* Default context fields extractor.
|
|
42
|
+
* Only extracts well-defined KernelContext properties.
|
|
43
|
+
* Does NOT make assumptions about user/metadata structure.
|
|
44
|
+
*/
|
|
45
|
+
const defaultContextFieldsExtractor = (ctx) => {
|
|
46
|
+
const fields = {};
|
|
47
|
+
// Core KernelContext fields (well-defined)
|
|
48
|
+
if (ctx.requestId)
|
|
49
|
+
fields.request_id = ctx.requestId;
|
|
50
|
+
if (ctx.traceId)
|
|
51
|
+
fields.trace_id = ctx.traceId;
|
|
52
|
+
// Procedure context (well-defined)
|
|
53
|
+
if (ctx.procedurePid)
|
|
54
|
+
fields.procedure_id = ctx.procedurePid;
|
|
55
|
+
if (ctx.procedureNode?.name)
|
|
56
|
+
fields.procedure_name = ctx.procedureNode.name;
|
|
57
|
+
if (ctx.origin?.name)
|
|
58
|
+
fields.origin_procedure = ctx.origin.name;
|
|
59
|
+
return fields;
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* Extract context fields for logging.
|
|
63
|
+
* Called on every log to inject current execution context.
|
|
64
|
+
*/
|
|
65
|
+
function getContextFields(config) {
|
|
66
|
+
if (config.includeContext === false) {
|
|
67
|
+
return {};
|
|
68
|
+
}
|
|
69
|
+
const ctx = Context.tryGet();
|
|
70
|
+
if (!ctx) {
|
|
71
|
+
return {};
|
|
72
|
+
}
|
|
73
|
+
// Use custom extractor or default
|
|
74
|
+
const extractor = config.contextFields ?? defaultContextFieldsExtractor;
|
|
75
|
+
return extractor(ctx);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Create pino logger options from config.
|
|
79
|
+
*/
|
|
80
|
+
function createPinoOptions(config) {
|
|
81
|
+
const isDev = process.env.NODE_ENV !== "production";
|
|
82
|
+
const usePretty = config.prettyPrint ?? isDev;
|
|
83
|
+
const options = {
|
|
84
|
+
level: config.level ?? "info",
|
|
85
|
+
base: config.base ?? { pid: process.pid },
|
|
86
|
+
// Mixin runs on every log to inject context
|
|
87
|
+
mixin: () => {
|
|
88
|
+
const contextFields = getContextFields(config);
|
|
89
|
+
const customFields = config.mixin?.() ?? {};
|
|
90
|
+
return { ...contextFields, ...customFields };
|
|
91
|
+
},
|
|
92
|
+
// Timestamp in ISO format
|
|
93
|
+
timestamp: pino.stdTimeFunctions.isoTime,
|
|
94
|
+
};
|
|
95
|
+
// Transport configuration
|
|
96
|
+
if (config.transport) {
|
|
97
|
+
options.transport = config.transport;
|
|
98
|
+
}
|
|
99
|
+
else if (usePretty) {
|
|
100
|
+
options.transport = {
|
|
101
|
+
target: "pino-pretty",
|
|
102
|
+
options: {
|
|
103
|
+
colorize: true,
|
|
104
|
+
translateTime: "SYS:standard",
|
|
105
|
+
ignore: "pid,hostname",
|
|
106
|
+
},
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
return options;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Wrap pino logger to match KernelLogger interface.
|
|
113
|
+
*/
|
|
114
|
+
function wrapLogger(pinoLogger) {
|
|
115
|
+
return {
|
|
116
|
+
trace: pinoLogger.trace.bind(pinoLogger),
|
|
117
|
+
debug: pinoLogger.debug.bind(pinoLogger),
|
|
118
|
+
info: pinoLogger.info.bind(pinoLogger),
|
|
119
|
+
warn: pinoLogger.warn.bind(pinoLogger),
|
|
120
|
+
error: pinoLogger.error.bind(pinoLogger),
|
|
121
|
+
fatal: pinoLogger.fatal.bind(pinoLogger),
|
|
122
|
+
child(bindings) {
|
|
123
|
+
return wrapLogger(pinoLogger.child(bindings));
|
|
124
|
+
},
|
|
125
|
+
get level() {
|
|
126
|
+
return pinoLogger.level;
|
|
127
|
+
},
|
|
128
|
+
isLevelEnabled(level) {
|
|
129
|
+
return pinoLogger.isLevelEnabled(level);
|
|
130
|
+
},
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Get or create the global logger instance.
|
|
135
|
+
*/
|
|
136
|
+
function getOrCreateGlobalLogger() {
|
|
137
|
+
if (!globalLogger) {
|
|
138
|
+
globalLogger = pino(createPinoOptions(globalConfig));
|
|
139
|
+
}
|
|
140
|
+
return globalLogger;
|
|
141
|
+
}
|
|
142
|
+
// =============================================================================
|
|
143
|
+
// Public API
|
|
144
|
+
// =============================================================================
|
|
145
|
+
/**
|
|
146
|
+
* Logger singleton for Tentickle applications.
|
|
147
|
+
*
|
|
148
|
+
* Provides structured logging with automatic context injection from the
|
|
149
|
+
* current execution context (via AsyncLocalStorage).
|
|
150
|
+
*
|
|
151
|
+
* @example
|
|
152
|
+
* ```typescript
|
|
153
|
+
* // Configure at app startup
|
|
154
|
+
* Logger.configure({ level: 'debug' });
|
|
155
|
+
*
|
|
156
|
+
* // Get logger (context auto-injected)
|
|
157
|
+
* const log = Logger.get();
|
|
158
|
+
* log.info('Request received');
|
|
159
|
+
*
|
|
160
|
+
* // Create child logger for a component
|
|
161
|
+
* const componentLog = Logger.for('MyComponent');
|
|
162
|
+
* componentLog.debug('Initializing');
|
|
163
|
+
*
|
|
164
|
+
* // Or from an object (uses constructor name)
|
|
165
|
+
* class MyTool {
|
|
166
|
+
* private log = Logger.for(this);
|
|
167
|
+
* }
|
|
168
|
+
* ```
|
|
169
|
+
*/
|
|
170
|
+
export const Logger = {
|
|
171
|
+
/**
|
|
172
|
+
* Configure the global logger.
|
|
173
|
+
* Should be called once at application startup.
|
|
174
|
+
*
|
|
175
|
+
* @param config Logger configuration
|
|
176
|
+
*
|
|
177
|
+
* @example
|
|
178
|
+
* ```typescript
|
|
179
|
+
* Logger.configure({
|
|
180
|
+
* level: process.env.LOG_LEVEL ?? 'info',
|
|
181
|
+
* transport: {
|
|
182
|
+
* targets: [
|
|
183
|
+
* { target: 'pino-pretty', options: { colorize: true } },
|
|
184
|
+
* { target: 'pino/file', options: { destination: './logs/app.log' } },
|
|
185
|
+
* ],
|
|
186
|
+
* },
|
|
187
|
+
* });
|
|
188
|
+
* ```
|
|
189
|
+
*/
|
|
190
|
+
configure(config) {
|
|
191
|
+
// Replace or merge with existing config
|
|
192
|
+
if (config.replace) {
|
|
193
|
+
globalConfig = config;
|
|
194
|
+
}
|
|
195
|
+
else {
|
|
196
|
+
globalConfig = { ...globalConfig, ...config };
|
|
197
|
+
}
|
|
198
|
+
// Handle contextFields composition
|
|
199
|
+
if (config.contextFields) {
|
|
200
|
+
globalConfig.contextFields = composeContextFields(defaultContextFields, config.contextFields);
|
|
201
|
+
}
|
|
202
|
+
else if (!globalConfig.contextFields) {
|
|
203
|
+
globalConfig.contextFields = defaultContextFields;
|
|
204
|
+
}
|
|
205
|
+
globalLogger = pino(createPinoOptions(globalConfig));
|
|
206
|
+
},
|
|
207
|
+
/**
|
|
208
|
+
* Get the global logger instance.
|
|
209
|
+
* Context is automatically injected into every log.
|
|
210
|
+
*
|
|
211
|
+
* @returns KernelLogger instance
|
|
212
|
+
*
|
|
213
|
+
* @example
|
|
214
|
+
* ```typescript
|
|
215
|
+
* const log = Logger.get();
|
|
216
|
+
* log.info('Processing', { items: 5 });
|
|
217
|
+
* // Output includes executionId, userId, trace_id, etc.
|
|
218
|
+
* ```
|
|
219
|
+
*/
|
|
220
|
+
get() {
|
|
221
|
+
return wrapLogger(getOrCreateGlobalLogger());
|
|
222
|
+
},
|
|
223
|
+
/**
|
|
224
|
+
* Create a child logger scoped to a component or name.
|
|
225
|
+
*
|
|
226
|
+
* @param nameOrComponent Component name or object (uses constructor.name)
|
|
227
|
+
* @returns Child logger with component binding
|
|
228
|
+
*
|
|
229
|
+
* @example
|
|
230
|
+
* ```typescript
|
|
231
|
+
* // With string name
|
|
232
|
+
* const log = Logger.for('CalculatorTool');
|
|
233
|
+
*
|
|
234
|
+
* // With object (uses class name)
|
|
235
|
+
* class MyAgent {
|
|
236
|
+
* private log = Logger.for(this);
|
|
237
|
+
* }
|
|
238
|
+
* ```
|
|
239
|
+
*/
|
|
240
|
+
for(nameOrComponent) {
|
|
241
|
+
const name = typeof nameOrComponent === "string" ? nameOrComponent : nameOrComponent.constructor.name;
|
|
242
|
+
return wrapLogger(getOrCreateGlobalLogger().child({ component: name }));
|
|
243
|
+
},
|
|
244
|
+
/**
|
|
245
|
+
* Create a child logger with custom bindings.
|
|
246
|
+
*
|
|
247
|
+
* @param bindings Key-value pairs to include in every log
|
|
248
|
+
* @returns Child logger with bindings
|
|
249
|
+
*
|
|
250
|
+
* @example
|
|
251
|
+
* ```typescript
|
|
252
|
+
* const requestLog = Logger.child({ request_id: req.id });
|
|
253
|
+
* requestLog.info('Handling request');
|
|
254
|
+
* ```
|
|
255
|
+
*/
|
|
256
|
+
child(bindings) {
|
|
257
|
+
return wrapLogger(getOrCreateGlobalLogger().child(bindings));
|
|
258
|
+
},
|
|
259
|
+
/**
|
|
260
|
+
* Create a standalone logger instance with custom config.
|
|
261
|
+
* Does not affect the global logger.
|
|
262
|
+
*
|
|
263
|
+
* @param config Logger configuration
|
|
264
|
+
* @returns New logger instance
|
|
265
|
+
*
|
|
266
|
+
* @example
|
|
267
|
+
* ```typescript
|
|
268
|
+
* const auditLog = Logger.create({
|
|
269
|
+
* level: 'info',
|
|
270
|
+
* transport: { target: 'pino/file', options: { destination: './audit.log' } },
|
|
271
|
+
* });
|
|
272
|
+
* ```
|
|
273
|
+
*/
|
|
274
|
+
create(config = {}) {
|
|
275
|
+
return wrapLogger(pino(createPinoOptions(config)));
|
|
276
|
+
},
|
|
277
|
+
/**
|
|
278
|
+
* Get the current log level.
|
|
279
|
+
*/
|
|
280
|
+
get level() {
|
|
281
|
+
return getOrCreateGlobalLogger().level;
|
|
282
|
+
},
|
|
283
|
+
/**
|
|
284
|
+
* Set the log level at runtime.
|
|
285
|
+
*
|
|
286
|
+
* @param level New log level
|
|
287
|
+
*/
|
|
288
|
+
setLevel(level) {
|
|
289
|
+
getOrCreateGlobalLogger().level = level;
|
|
290
|
+
},
|
|
291
|
+
/**
|
|
292
|
+
* Check if a level is enabled.
|
|
293
|
+
*
|
|
294
|
+
* @param level Log level to check
|
|
295
|
+
* @returns true if the level is enabled
|
|
296
|
+
*/
|
|
297
|
+
isLevelEnabled(level) {
|
|
298
|
+
return getOrCreateGlobalLogger().isLevelEnabled(level);
|
|
299
|
+
},
|
|
300
|
+
/**
|
|
301
|
+
* Reset the global logger (mainly for testing).
|
|
302
|
+
*/
|
|
303
|
+
reset() {
|
|
304
|
+
globalLogger = null;
|
|
305
|
+
globalConfig = {};
|
|
306
|
+
},
|
|
307
|
+
};
|
|
308
|
+
// =============================================================================
|
|
309
|
+
// Helpers
|
|
310
|
+
// =============================================================================
|
|
311
|
+
/**
|
|
312
|
+
* Compose multiple context field extractors into one.
|
|
313
|
+
* Later extractors override earlier ones for the same keys.
|
|
314
|
+
*
|
|
315
|
+
* @example
|
|
316
|
+
* ```typescript
|
|
317
|
+
* import { composeContextFields, defaultContextFields } from './core';
|
|
318
|
+
*
|
|
319
|
+
* Logger.configure({
|
|
320
|
+
* contextFields: composeContextFields(
|
|
321
|
+
* defaultContextFields, // Core kernel fields
|
|
322
|
+
* (ctx) => ({ // Your custom fields
|
|
323
|
+
* tenantId: ctx.user?.tenantId,
|
|
324
|
+
* threadId: ctx.metadata?.threadId,
|
|
325
|
+
* executionId: ctx.metadata?.executionId,
|
|
326
|
+
* }),
|
|
327
|
+
* ),
|
|
328
|
+
* });
|
|
329
|
+
* ```
|
|
330
|
+
*/
|
|
331
|
+
export function composeContextFields(...extractors) {
|
|
332
|
+
return (ctx) => {
|
|
333
|
+
const result = {};
|
|
334
|
+
for (const extractor of extractors) {
|
|
335
|
+
Object.assign(result, extractor(ctx));
|
|
336
|
+
}
|
|
337
|
+
return result;
|
|
338
|
+
};
|
|
339
|
+
}
|
|
340
|
+
/**
|
|
341
|
+
* The default context fields extractor.
|
|
342
|
+
* Exports core KernelContext fields only.
|
|
343
|
+
* Use with composeContextFields to extend.
|
|
344
|
+
*/
|
|
345
|
+
export const defaultContextFields = defaultContextFieldsExtractor;
|
|
346
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/core/logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { type KernelContext } from "./context";
|
|
2
|
+
/**
|
|
3
|
+
* Helper functions for working with metrics.
|
|
4
|
+
* Supports both flat and nested metric structures via dot notation.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Add a metric value (accumulates).
|
|
8
|
+
* Supports dot notation for nested paths: 'usage.inputTokens'
|
|
9
|
+
*/
|
|
10
|
+
export declare function addMetric(ctx: KernelContext, key: string, value: number): void;
|
|
11
|
+
/**
|
|
12
|
+
* Set a metric value (overwrites).
|
|
13
|
+
* Supports dot notation for nested paths: 'usage.inputTokens'
|
|
14
|
+
*/
|
|
15
|
+
export declare function setMetric(ctx: KernelContext, key: string, value: number): void;
|
|
16
|
+
/**
|
|
17
|
+
* Get a metric value.
|
|
18
|
+
* Supports dot notation for nested paths: 'usage.inputTokens'
|
|
19
|
+
*/
|
|
20
|
+
export declare function getMetric(ctx: KernelContext, key: string): number;
|
|
21
|
+
/**
|
|
22
|
+
* Add usage metrics from a usage object.
|
|
23
|
+
* Converts nested structure to flat dot-notation keys.
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* addUsageMetrics(ctx, { inputTokens: 100, outputTokens: 50 });
|
|
27
|
+
* // Sets: ctx.metrics['usage.inputTokens'] = 100
|
|
28
|
+
* // ctx.metrics['usage.outputTokens'] = 50
|
|
29
|
+
*/
|
|
30
|
+
export declare function addUsageMetrics(ctx: KernelContext, usage: Record<string, number>): void;
|
|
31
|
+
/**
|
|
32
|
+
* Get usage metrics as an object.
|
|
33
|
+
* Converts flat dot-notation keys back to nested structure.
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* const usage = getUsageMetrics(ctx);
|
|
37
|
+
* // Returns: { inputTokens: 100, outputTokens: 50 }
|
|
38
|
+
*/
|
|
39
|
+
export declare function getUsageMetrics(ctx: KernelContext): Record<string, number>;
|
|
40
|
+
//# sourceMappingURL=metrics-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics-helpers.d.ts","sourceRoot":"","sources":["../../src/core/metrics-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C;;;GAGG;AAEH;;;GAGG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAK9E;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAK9E;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CASvF;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAc1E"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import {} from "./context";
|
|
2
|
+
/**
|
|
3
|
+
* Helper functions for working with metrics.
|
|
4
|
+
* Supports both flat and nested metric structures via dot notation.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Add a metric value (accumulates).
|
|
8
|
+
* Supports dot notation for nested paths: 'usage.inputTokens'
|
|
9
|
+
*/
|
|
10
|
+
export function addMetric(ctx, key, value) {
|
|
11
|
+
if (!ctx.metrics) {
|
|
12
|
+
ctx.metrics = {};
|
|
13
|
+
}
|
|
14
|
+
ctx.metrics[key] = (ctx.metrics[key] || 0) + value;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Set a metric value (overwrites).
|
|
18
|
+
* Supports dot notation for nested paths: 'usage.inputTokens'
|
|
19
|
+
*/
|
|
20
|
+
export function setMetric(ctx, key, value) {
|
|
21
|
+
if (!ctx.metrics) {
|
|
22
|
+
ctx.metrics = {};
|
|
23
|
+
}
|
|
24
|
+
ctx.metrics[key] = value;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Get a metric value.
|
|
28
|
+
* Supports dot notation for nested paths: 'usage.inputTokens'
|
|
29
|
+
*/
|
|
30
|
+
export function getMetric(ctx, key) {
|
|
31
|
+
return ctx.metrics?.[key] || 0;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Add usage metrics from a usage object.
|
|
35
|
+
* Converts nested structure to flat dot-notation keys.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* addUsageMetrics(ctx, { inputTokens: 100, outputTokens: 50 });
|
|
39
|
+
* // Sets: ctx.metrics['usage.inputTokens'] = 100
|
|
40
|
+
* // ctx.metrics['usage.outputTokens'] = 50
|
|
41
|
+
*/
|
|
42
|
+
export function addUsageMetrics(ctx, usage) {
|
|
43
|
+
if (!ctx.metrics) {
|
|
44
|
+
ctx.metrics = {};
|
|
45
|
+
}
|
|
46
|
+
for (const [key, value] of Object.entries(usage)) {
|
|
47
|
+
const metricKey = `usage.${key}`;
|
|
48
|
+
ctx.metrics[metricKey] = (ctx.metrics[metricKey] || 0) + value;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Get usage metrics as an object.
|
|
53
|
+
* Converts flat dot-notation keys back to nested structure.
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* const usage = getUsageMetrics(ctx);
|
|
57
|
+
* // Returns: { inputTokens: 100, outputTokens: 50 }
|
|
58
|
+
*/
|
|
59
|
+
export function getUsageMetrics(ctx) {
|
|
60
|
+
if (!ctx.metrics) {
|
|
61
|
+
return {};
|
|
62
|
+
}
|
|
63
|
+
const usage = {};
|
|
64
|
+
for (const [key, value] of Object.entries(ctx.metrics)) {
|
|
65
|
+
if (key.startsWith("usage.")) {
|
|
66
|
+
const usageKey = key.substring(6); // Remove 'usage.' prefix
|
|
67
|
+
usage[usageKey] = value;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return usage;
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=metrics-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics-helpers.js","sourceRoot":"","sources":["../../src/core/metrics-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,MAAM,WAAW,CAAC;AAE/C;;;GAGG;AAEH;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,GAAkB,EAAE,GAAW,EAAE,KAAa;IACtE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACjB,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC;IACnB,CAAC;IACD,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;AACrD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,GAAkB,EAAE,GAAW,EAAE,KAAa;IACtE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACjB,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC;IACnB,CAAC;IACD,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAC3B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,GAAkB,EAAE,GAAW;IACvD,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,GAAkB,EAAE,KAA6B;IAC/E,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACjB,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC;IACnB,CAAC;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,MAAM,SAAS,GAAG,SAAS,GAAG,EAAE,CAAC;QACjC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;IACjE,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,GAAkB;IAChD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,KAAK,GAA2B,EAAE,CAAC;IACzC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QACvD,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,yBAAyB;YAC5D,KAAK,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenTelemetry provider for Tentickle telemetry.
|
|
3
|
+
*
|
|
4
|
+
* Creates a TelemetryProvider that wraps the standard @opentelemetry/api,
|
|
5
|
+
* eliminating boilerplate for users who already have OTel configured.
|
|
6
|
+
*
|
|
7
|
+
* @module @tentickle/kernel/otel-provider
|
|
8
|
+
*/
|
|
9
|
+
import type { TelemetryProvider } from "./telemetry";
|
|
10
|
+
export interface OTelProviderOptions {
|
|
11
|
+
/**
|
|
12
|
+
* Service name for traces and metrics.
|
|
13
|
+
* @default 'tentickle'
|
|
14
|
+
*/
|
|
15
|
+
serviceName?: string;
|
|
16
|
+
/**
|
|
17
|
+
* Service version for traces and metrics.
|
|
18
|
+
*/
|
|
19
|
+
serviceVersion?: string;
|
|
20
|
+
/**
|
|
21
|
+
* Custom tracer name (if different from serviceName).
|
|
22
|
+
*/
|
|
23
|
+
tracerName?: string;
|
|
24
|
+
/**
|
|
25
|
+
* Custom meter name (if different from serviceName).
|
|
26
|
+
*/
|
|
27
|
+
meterName?: string;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Create an OpenTelemetry provider from the standard @opentelemetry/api.
|
|
31
|
+
*
|
|
32
|
+
* Requires `@opentelemetry/api` to be installed and configured in your app.
|
|
33
|
+
* This function dynamically imports OTel to avoid hard dependencies.
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```typescript
|
|
37
|
+
* import { Telemetry, createOTelProvider } from './core';
|
|
38
|
+
*
|
|
39
|
+
* // Basic usage - just works if OTel is configured
|
|
40
|
+
* Telemetry.setProvider(createOTelProvider());
|
|
41
|
+
*
|
|
42
|
+
* // With options
|
|
43
|
+
* Telemetry.setProvider(createOTelProvider({
|
|
44
|
+
* serviceName: 'my-agent-service',
|
|
45
|
+
* serviceVersion: '1.0.0',
|
|
46
|
+
* }));
|
|
47
|
+
* ```
|
|
48
|
+
*
|
|
49
|
+
* @param options - Configuration options
|
|
50
|
+
* @returns A TelemetryProvider that wraps OpenTelemetry
|
|
51
|
+
* @throws Error if @opentelemetry/api is not installed
|
|
52
|
+
*/
|
|
53
|
+
export declare function createOTelProvider(options?: OTelProviderOptions): TelemetryProvider;
|
|
54
|
+
//# sourceMappingURL=otel-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"otel-provider.d.ts","sourceRoot":"","sources":["../../src/core/otel-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAA4B,MAAM,aAAa,CAAC;AAE/E,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,mBAAwB,GAAG,iBAAiB,CAsFvF"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenTelemetry provider for Tentickle telemetry.
|
|
3
|
+
*
|
|
4
|
+
* Creates a TelemetryProvider that wraps the standard @opentelemetry/api,
|
|
5
|
+
* eliminating boilerplate for users who already have OTel configured.
|
|
6
|
+
*
|
|
7
|
+
* @module @tentickle/kernel/otel-provider
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Create an OpenTelemetry provider from the standard @opentelemetry/api.
|
|
11
|
+
*
|
|
12
|
+
* Requires `@opentelemetry/api` to be installed and configured in your app.
|
|
13
|
+
* This function dynamically imports OTel to avoid hard dependencies.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* import { Telemetry, createOTelProvider } from './core';
|
|
18
|
+
*
|
|
19
|
+
* // Basic usage - just works if OTel is configured
|
|
20
|
+
* Telemetry.setProvider(createOTelProvider());
|
|
21
|
+
*
|
|
22
|
+
* // With options
|
|
23
|
+
* Telemetry.setProvider(createOTelProvider({
|
|
24
|
+
* serviceName: 'my-agent-service',
|
|
25
|
+
* serviceVersion: '1.0.0',
|
|
26
|
+
* }));
|
|
27
|
+
* ```
|
|
28
|
+
*
|
|
29
|
+
* @param options - Configuration options
|
|
30
|
+
* @returns A TelemetryProvider that wraps OpenTelemetry
|
|
31
|
+
* @throws Error if @opentelemetry/api is not installed
|
|
32
|
+
*/
|
|
33
|
+
export function createOTelProvider(options = {}) {
|
|
34
|
+
// Dynamic require - fails gracefully if not installed
|
|
35
|
+
let otel;
|
|
36
|
+
try {
|
|
37
|
+
otel = require("@opentelemetry/api");
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
throw new Error("createOTelProvider requires @opentelemetry/api to be installed. " +
|
|
41
|
+
"Run: pnpm add @opentelemetry/api");
|
|
42
|
+
}
|
|
43
|
+
const serviceName = options.serviceName ?? "tentickle";
|
|
44
|
+
const tracerName = options.tracerName ?? serviceName;
|
|
45
|
+
const meterName = options.meterName ?? serviceName;
|
|
46
|
+
const tracer = otel.trace.getTracer(tracerName, options.serviceVersion);
|
|
47
|
+
const meter = otel.metrics.getMeter(meterName, options.serviceVersion);
|
|
48
|
+
// Cache for counters and histograms to avoid recreating them
|
|
49
|
+
const counters = new Map();
|
|
50
|
+
const histograms = new Map();
|
|
51
|
+
return {
|
|
52
|
+
startTrace(name) {
|
|
53
|
+
const span = tracer.startSpan(name);
|
|
54
|
+
const ctx = otel.trace.setSpan(otel.context.active(), span);
|
|
55
|
+
otel.context.with(ctx, () => { });
|
|
56
|
+
return span.spanContext().traceId;
|
|
57
|
+
},
|
|
58
|
+
startSpan(name) {
|
|
59
|
+
const parentContext = otel.context.active();
|
|
60
|
+
const span = tracer.startSpan(name, undefined, parentContext);
|
|
61
|
+
return {
|
|
62
|
+
end: () => span.end(),
|
|
63
|
+
setAttribute: (key, value) => span.setAttribute(key, value),
|
|
64
|
+
recordError: (error) => {
|
|
65
|
+
span.recordException(error);
|
|
66
|
+
span.setStatus({ code: otel.SpanStatusCode.ERROR, message: error?.message });
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
},
|
|
70
|
+
recordError(error) {
|
|
71
|
+
const span = otel.trace.getActiveSpan();
|
|
72
|
+
if (span) {
|
|
73
|
+
span.recordException(error);
|
|
74
|
+
span.setStatus({ code: otel.SpanStatusCode.ERROR, message: error?.message });
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
endTrace() {
|
|
78
|
+
const span = otel.trace.getActiveSpan();
|
|
79
|
+
span?.end();
|
|
80
|
+
},
|
|
81
|
+
getCounter(name, unit, description) {
|
|
82
|
+
const key = `${name}:${unit}:${description}`;
|
|
83
|
+
let counter = counters.get(key);
|
|
84
|
+
if (!counter) {
|
|
85
|
+
const otelCounter = meter.createCounter(name, { unit, description });
|
|
86
|
+
counter = {
|
|
87
|
+
add: (value, attributes) => otelCounter.add(value, attributes),
|
|
88
|
+
};
|
|
89
|
+
counters.set(key, counter);
|
|
90
|
+
}
|
|
91
|
+
return counter;
|
|
92
|
+
},
|
|
93
|
+
getHistogram(name, unit, description) {
|
|
94
|
+
const key = `${name}:${unit}:${description}`;
|
|
95
|
+
let histogram = histograms.get(key);
|
|
96
|
+
if (!histogram) {
|
|
97
|
+
const otelHistogram = meter.createHistogram(name, { unit, description });
|
|
98
|
+
histogram = {
|
|
99
|
+
record: (value, attributes) => otelHistogram.record(value, attributes),
|
|
100
|
+
};
|
|
101
|
+
histograms.set(key, histogram);
|
|
102
|
+
}
|
|
103
|
+
return histogram;
|
|
104
|
+
},
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=otel-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"otel-provider.js","sourceRoot":"","sources":["../../src/core/otel-provider.ts"],"names":[],"mappings":"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"}
|