@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,547 @@
|
|
|
1
|
+
import { isElement } from "../jsx/jsx-runtime";
|
|
2
|
+
import { Row, Column, List, ListItem } from "../jsx/components/semantic";
|
|
3
|
+
import { isBoundaryProvider, getBoundaryData } from "../state/boundary";
|
|
4
|
+
/**
|
|
5
|
+
* Map of inline element types to their semantic types.
|
|
6
|
+
* Used to convert JSX element types to semantic formatting hints.
|
|
7
|
+
*
|
|
8
|
+
* Design principle:
|
|
9
|
+
* - Capitalized components (Text, Image, Audio, Video, Document) are STRUCTURAL
|
|
10
|
+
* and create native ContentBlocks at the top level
|
|
11
|
+
* - Lowercase HTML elements (img, audio, video) are SEMANTIC and get converted
|
|
12
|
+
* to inline representations (markdown) when nested inside text content
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Single source of truth for semantic element types.
|
|
16
|
+
* These elements are handled automatically when nested inside text content.
|
|
17
|
+
* They should NOT be used at the top level - use structural components instead.
|
|
18
|
+
*/
|
|
19
|
+
const INLINE_SEMANTIC_TYPES = {
|
|
20
|
+
// Inline text formatting
|
|
21
|
+
inlineCode: "code",
|
|
22
|
+
code: "code",
|
|
23
|
+
strong: "strong",
|
|
24
|
+
b: "strong",
|
|
25
|
+
em: "em",
|
|
26
|
+
i: "em",
|
|
27
|
+
mark: "mark",
|
|
28
|
+
u: "underline",
|
|
29
|
+
s: "strikethrough",
|
|
30
|
+
del: "strikethrough",
|
|
31
|
+
sub: "subscript",
|
|
32
|
+
sup: "superscript",
|
|
33
|
+
small: "small",
|
|
34
|
+
// Links and semantic elements
|
|
35
|
+
a: "link",
|
|
36
|
+
q: "quote",
|
|
37
|
+
cite: "citation",
|
|
38
|
+
kbd: "keyboard",
|
|
39
|
+
var: "variable",
|
|
40
|
+
// Block-level semantic containers
|
|
41
|
+
p: "paragraph",
|
|
42
|
+
blockquote: "blockquote",
|
|
43
|
+
// Native HTML media elements (semantic, converted to inline markdown)
|
|
44
|
+
img: "image",
|
|
45
|
+
audio: "audio",
|
|
46
|
+
video: "video",
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Extracts semantic node tree from JSX element or fiber-like structure.
|
|
50
|
+
* Builds a semantic tree structure that preserves formatting information
|
|
51
|
+
* without applying any specific formatting syntax.
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```tsx
|
|
55
|
+
* <Text>Hello <strong>world</strong> with <inlineCode>code</inlineCode></Text>
|
|
56
|
+
* ```
|
|
57
|
+
* Returns:
|
|
58
|
+
* ```typescript
|
|
59
|
+
* {
|
|
60
|
+
* children: [
|
|
61
|
+
* { text: 'Hello ' },
|
|
62
|
+
* { semantic: 'strong', children: [{ text: 'world' }] },
|
|
63
|
+
* { text: ' with ' },
|
|
64
|
+
* { semantic: 'code', children: [{ text: 'code' }] }
|
|
65
|
+
* ]
|
|
66
|
+
* }
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
69
|
+
export function extractSemanticNode(fiber, currentFormatter) {
|
|
70
|
+
const extract = (node, formatterContext) => {
|
|
71
|
+
if (typeof node === "string") {
|
|
72
|
+
return { text: node };
|
|
73
|
+
}
|
|
74
|
+
if (node && typeof node === "object") {
|
|
75
|
+
if (isElement(node)) {
|
|
76
|
+
// Get the element type as a string for lookup
|
|
77
|
+
const typeName = typeof node.type === "string" ? node.type : node.type?.name?.toLowerCase?.() || "";
|
|
78
|
+
// Extract children first
|
|
79
|
+
const children = node.props?.children;
|
|
80
|
+
let childNodes = [];
|
|
81
|
+
if (Array.isArray(children)) {
|
|
82
|
+
childNodes = children.map((child) => extract(child, formatterContext)).flat();
|
|
83
|
+
}
|
|
84
|
+
else if (children !== undefined && children !== null) {
|
|
85
|
+
const extracted = extract(children, formatterContext);
|
|
86
|
+
childNodes = Array.isArray(extracted) ? extracted : [extracted];
|
|
87
|
+
}
|
|
88
|
+
// Check if this is an inline formatting element
|
|
89
|
+
const semanticType = INLINE_SEMANTIC_TYPES[typeName];
|
|
90
|
+
if (semanticType) {
|
|
91
|
+
// For media types, capture props for inline rendering
|
|
92
|
+
if (semanticType === "image" || semanticType === "audio" || semanticType === "video") {
|
|
93
|
+
return {
|
|
94
|
+
semantic: semanticType,
|
|
95
|
+
props: node.props || {},
|
|
96
|
+
children: childNodes,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
// Return semantic node with children
|
|
100
|
+
return {
|
|
101
|
+
semantic: semanticType,
|
|
102
|
+
children: childNodes,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
// Non-semantic element - return children flattened
|
|
106
|
+
return childNodes;
|
|
107
|
+
}
|
|
108
|
+
else if ("text" in node) {
|
|
109
|
+
return { text: node.text };
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return { text: "" };
|
|
113
|
+
};
|
|
114
|
+
const children = [];
|
|
115
|
+
// Extract from props.children
|
|
116
|
+
if (fiber.props?.children) {
|
|
117
|
+
const propsChildren = Array.isArray(fiber.props.children)
|
|
118
|
+
? fiber.props.children
|
|
119
|
+
: [fiber.props.children];
|
|
120
|
+
for (const child of propsChildren) {
|
|
121
|
+
const extracted = extract(child);
|
|
122
|
+
if (Array.isArray(extracted)) {
|
|
123
|
+
children.push(...extracted);
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
children.push(extracted);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
// Also extract from fiber.children (semantic primitives can have children in the fiber tree)
|
|
131
|
+
for (const child of fiber.children) {
|
|
132
|
+
if (child.props?.children) {
|
|
133
|
+
const fiberChildren = Array.isArray(child.props.children)
|
|
134
|
+
? child.props.children
|
|
135
|
+
: [child.props.children];
|
|
136
|
+
for (const fiberChild of fiberChildren) {
|
|
137
|
+
const extracted = extract(fiberChild);
|
|
138
|
+
if (Array.isArray(extracted)) {
|
|
139
|
+
children.push(...extracted);
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
children.push(extracted);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
// Return container with children (even if single child, preserve structure)
|
|
148
|
+
if (children.length === 0) {
|
|
149
|
+
return currentFormatter ? { formatter: currentFormatter, children: [] } : { text: "" };
|
|
150
|
+
}
|
|
151
|
+
// If we have formatter context and no child has formatter, attach it to root
|
|
152
|
+
const hasFormatterInChildren = children.some((n) => n && typeof n === "object" && "formatter" in n && n.formatter !== undefined);
|
|
153
|
+
const rootNode = { children };
|
|
154
|
+
if (currentFormatter && !hasFormatterInChildren) {
|
|
155
|
+
rootNode.formatter = currentFormatter;
|
|
156
|
+
}
|
|
157
|
+
return rootNode;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Extracts semantic node from JSX element (for use in content block registry).
|
|
161
|
+
* Only extracts from props.children (not fiber.children).
|
|
162
|
+
*
|
|
163
|
+
* @param element - The JSX element to extract from
|
|
164
|
+
* @param currentFormatter - The current formatter function (from FormatterBoundary)
|
|
165
|
+
*/
|
|
166
|
+
export function extractSemanticNodeFromElement(element, currentFormatter) {
|
|
167
|
+
const extract = (node, formatterContext) => {
|
|
168
|
+
if (typeof node === "string") {
|
|
169
|
+
return { text: node };
|
|
170
|
+
}
|
|
171
|
+
if (node && typeof node === "object") {
|
|
172
|
+
if (isElement(node)) {
|
|
173
|
+
const typeName = typeof node.type === "string" ? node.type : node.type?.name?.toLowerCase?.() || "";
|
|
174
|
+
// Check for boundary provider (new pattern for XML, Markdown, etc.)
|
|
175
|
+
// Formatter boundaries have value.formatter function
|
|
176
|
+
if (isBoundaryProvider(node.type)) {
|
|
177
|
+
const boundaryData = getBoundaryData(node.type);
|
|
178
|
+
if (boundaryData.class === "formatter") {
|
|
179
|
+
const formatterValue = node.props?.value;
|
|
180
|
+
if (formatterValue?.formatter) {
|
|
181
|
+
const children = node.props?.children;
|
|
182
|
+
let childNodes = [];
|
|
183
|
+
if (Array.isArray(children)) {
|
|
184
|
+
childNodes = children
|
|
185
|
+
.map((child) => extract(child, formatterValue.formatter))
|
|
186
|
+
.flat();
|
|
187
|
+
}
|
|
188
|
+
else if (children !== undefined && children !== null) {
|
|
189
|
+
const extracted = extract(children, formatterValue.formatter);
|
|
190
|
+
childNodes = Array.isArray(extracted) ? extracted : [extracted];
|
|
191
|
+
}
|
|
192
|
+
return {
|
|
193
|
+
formatter: formatterValue.formatter,
|
|
194
|
+
children: childNodes,
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
// Check for wrapper components that return boundary providers (e.g., XML, Markdown functions)
|
|
200
|
+
if (typeof node.type === "function") {
|
|
201
|
+
// Call the component to see what it returns
|
|
202
|
+
const rendered = node.type(node.props);
|
|
203
|
+
// Check if returned element is a boundary provider
|
|
204
|
+
if (rendered &&
|
|
205
|
+
typeof rendered === "object" &&
|
|
206
|
+
"type" in rendered &&
|
|
207
|
+
isBoundaryProvider(rendered.type)) {
|
|
208
|
+
const boundaryData = getBoundaryData(rendered.type);
|
|
209
|
+
if (boundaryData.class === "formatter") {
|
|
210
|
+
const formatterValue = rendered.props?.value;
|
|
211
|
+
if (formatterValue?.formatter) {
|
|
212
|
+
const children = rendered.props?.children || node.props?.children;
|
|
213
|
+
let childNodes = [];
|
|
214
|
+
if (Array.isArray(children)) {
|
|
215
|
+
childNodes = children
|
|
216
|
+
.map((child) => extract(child, formatterValue.formatter))
|
|
217
|
+
.flat();
|
|
218
|
+
}
|
|
219
|
+
else if (children !== undefined && children !== null) {
|
|
220
|
+
const extracted = extract(children, formatterValue.formatter);
|
|
221
|
+
childNodes = Array.isArray(extracted) ? extracted : [extracted];
|
|
222
|
+
}
|
|
223
|
+
return {
|
|
224
|
+
formatter: formatterValue.formatter,
|
|
225
|
+
children: childNodes,
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
// Legacy: Check if returned element is a Renderer (has instance prop)
|
|
231
|
+
// This handles both direct <Renderer> usage and wrappers that return <Renderer>
|
|
232
|
+
if (rendered &&
|
|
233
|
+
typeof rendered === "object" &&
|
|
234
|
+
"props" in rendered &&
|
|
235
|
+
rendered.props?.instance) {
|
|
236
|
+
const rendererInstance = rendered.props.instance;
|
|
237
|
+
// Convert ContentRenderer to Formatter function
|
|
238
|
+
const formatter = (blocks) => rendererInstance.format(blocks);
|
|
239
|
+
const children = rendered.props?.children || node.props?.children;
|
|
240
|
+
let childNodes = [];
|
|
241
|
+
if (Array.isArray(children)) {
|
|
242
|
+
childNodes = children.map((child) => extract(child, formatter)).flat();
|
|
243
|
+
}
|
|
244
|
+
else if (children !== undefined && children !== null) {
|
|
245
|
+
const extracted = extract(children, formatter);
|
|
246
|
+
childNodes = Array.isArray(extracted) ? extracted : [extracted];
|
|
247
|
+
}
|
|
248
|
+
// Return a node with formatter attached - this marks the formatter boundary
|
|
249
|
+
return {
|
|
250
|
+
formatter: formatter,
|
|
251
|
+
children: childNodes,
|
|
252
|
+
};
|
|
253
|
+
}
|
|
254
|
+
// If component returned an element but it's not a Renderer or boundary, extract from it
|
|
255
|
+
// BUT: Avoid infinite recursion when a component returns createElement(itself, props)
|
|
256
|
+
// e.g., Text(props) returns createElement(Text, props) - don't recurse into same type
|
|
257
|
+
if (rendered && typeof rendered === "object" && "type" in rendered) {
|
|
258
|
+
// Skip if the rendered element has the same type as the original - this would loop forever
|
|
259
|
+
// Check both reference equality and name equality (for cross-module scenarios)
|
|
260
|
+
const isSelfReferential = rendered.type === node.type ||
|
|
261
|
+
(typeof rendered.type === "function" &&
|
|
262
|
+
typeof node.type === "function" &&
|
|
263
|
+
rendered.type.name === node.type.name &&
|
|
264
|
+
rendered.type.name !== "");
|
|
265
|
+
if (isSelfReferential) {
|
|
266
|
+
// Instead of recursing, extract from children
|
|
267
|
+
const children = node.props?.children;
|
|
268
|
+
if (children !== undefined && children !== null) {
|
|
269
|
+
if (Array.isArray(children)) {
|
|
270
|
+
return children.map((child) => extract(child, formatterContext)).flat();
|
|
271
|
+
}
|
|
272
|
+
else {
|
|
273
|
+
const extracted = extract(children, formatterContext);
|
|
274
|
+
return Array.isArray(extracted) ? extracted : [extracted];
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
return { text: "" };
|
|
278
|
+
}
|
|
279
|
+
return extract(rendered, formatterContext);
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
// Fallback: Check for Renderer by name (for direct usage when type is not a function)
|
|
283
|
+
if (node.type?.name === "Renderer" || typeName === "renderer") {
|
|
284
|
+
const rendererInstance = node.props?.instance;
|
|
285
|
+
// Convert ContentRenderer to Formatter function if present
|
|
286
|
+
const formatter = rendererInstance
|
|
287
|
+
? (blocks) => rendererInstance.format(blocks)
|
|
288
|
+
: undefined;
|
|
289
|
+
const children = node.props?.children;
|
|
290
|
+
let childNodes = [];
|
|
291
|
+
if (Array.isArray(children)) {
|
|
292
|
+
childNodes = children.map((child) => extract(child, formatter)).flat();
|
|
293
|
+
}
|
|
294
|
+
else if (children !== undefined && children !== null) {
|
|
295
|
+
const extracted = extract(children, formatter);
|
|
296
|
+
childNodes = Array.isArray(extracted) ? extracted : [extracted];
|
|
297
|
+
}
|
|
298
|
+
return {
|
|
299
|
+
formatter: formatter,
|
|
300
|
+
children: childNodes,
|
|
301
|
+
};
|
|
302
|
+
}
|
|
303
|
+
const children = node.props?.children;
|
|
304
|
+
let childNodes = [];
|
|
305
|
+
if (Array.isArray(children)) {
|
|
306
|
+
childNodes = children.map((child) => extract(child, formatterContext)).flat();
|
|
307
|
+
}
|
|
308
|
+
else if (children !== undefined && children !== null) {
|
|
309
|
+
const extracted = extract(children, formatterContext);
|
|
310
|
+
childNodes = Array.isArray(extracted) ? extracted : [extracted];
|
|
311
|
+
}
|
|
312
|
+
const semanticType = INLINE_SEMANTIC_TYPES[typeName];
|
|
313
|
+
if (semanticType) {
|
|
314
|
+
// Only capture props that are actually needed for specific semantic types
|
|
315
|
+
let props;
|
|
316
|
+
if (semanticType === "link" && node.props?.href) {
|
|
317
|
+
props = { href: node.props.href };
|
|
318
|
+
}
|
|
319
|
+
else if ((semanticType === "image" || semanticType === "audio" || semanticType === "video") &&
|
|
320
|
+
node.props) {
|
|
321
|
+
// Capture media-specific props (src, alt, etc.) but exclude children
|
|
322
|
+
props = Object.fromEntries(Object.entries(node.props).filter(([key]) => key !== "children"));
|
|
323
|
+
}
|
|
324
|
+
// For other semantic types (strong, em, code, etc.), no props needed
|
|
325
|
+
return {
|
|
326
|
+
semantic: semanticType,
|
|
327
|
+
...(props && Object.keys(props).length > 0 ? { props } : {}),
|
|
328
|
+
children: childNodes,
|
|
329
|
+
};
|
|
330
|
+
}
|
|
331
|
+
// Unknown element - treat as custom, preserve props and tag name
|
|
332
|
+
if (typeName) {
|
|
333
|
+
return {
|
|
334
|
+
semantic: "custom",
|
|
335
|
+
props: { ...node.props, _tagName: typeName },
|
|
336
|
+
children: childNodes,
|
|
337
|
+
};
|
|
338
|
+
}
|
|
339
|
+
return childNodes;
|
|
340
|
+
}
|
|
341
|
+
else if ("text" in node) {
|
|
342
|
+
return { text: node.text };
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
return { text: "" };
|
|
346
|
+
};
|
|
347
|
+
const props = element.props || {};
|
|
348
|
+
if (props.children !== undefined && props.children !== null) {
|
|
349
|
+
const children = Array.isArray(props.children) ? props.children : [props.children];
|
|
350
|
+
const extracted = children.map((child) => extract(child, currentFormatter)).flat();
|
|
351
|
+
if (extracted.length === 0) {
|
|
352
|
+
return currentFormatter && currentFormatter !== undefined
|
|
353
|
+
? { formatter: currentFormatter, children: [] }
|
|
354
|
+
: { text: "" };
|
|
355
|
+
}
|
|
356
|
+
// If we have formatter context and root doesn't have formatter, attach it
|
|
357
|
+
const rootNode = { children: extracted };
|
|
358
|
+
if (currentFormatter &&
|
|
359
|
+
!extracted.some((n) => n && typeof n === "object" && "formatter" in n)) {
|
|
360
|
+
rootNode.formatter = currentFormatter;
|
|
361
|
+
}
|
|
362
|
+
return rootNode;
|
|
363
|
+
}
|
|
364
|
+
return currentFormatter && currentFormatter !== undefined
|
|
365
|
+
? { formatter: currentFormatter, children: [] }
|
|
366
|
+
: { text: "" };
|
|
367
|
+
}
|
|
368
|
+
/**
|
|
369
|
+
* Extracts plain text from JSX element recursively (no formatting).
|
|
370
|
+
* Used for extracting text from table cells, list items, etc.
|
|
371
|
+
*/
|
|
372
|
+
export function extractTextFromElement(element) {
|
|
373
|
+
const extract = (node) => {
|
|
374
|
+
if (typeof node === "string") {
|
|
375
|
+
return node;
|
|
376
|
+
}
|
|
377
|
+
if (node && typeof node === "object") {
|
|
378
|
+
if (isElement(node)) {
|
|
379
|
+
const children = node.props?.children;
|
|
380
|
+
if (Array.isArray(children)) {
|
|
381
|
+
return children.map(extract).join("");
|
|
382
|
+
}
|
|
383
|
+
else if (children !== undefined && children !== null) {
|
|
384
|
+
return extract(children);
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
else if ("text" in node) {
|
|
388
|
+
return node.text;
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
return "";
|
|
392
|
+
};
|
|
393
|
+
const props = element.props || {};
|
|
394
|
+
if (props.children !== undefined && props.children !== null) {
|
|
395
|
+
const children = Array.isArray(props.children) ? props.children : [props.children];
|
|
396
|
+
return children.map(extract).join("");
|
|
397
|
+
}
|
|
398
|
+
return "";
|
|
399
|
+
}
|
|
400
|
+
/**
|
|
401
|
+
* Extracts cell data from a Row element.
|
|
402
|
+
*/
|
|
403
|
+
function extractRowData(rowElement) {
|
|
404
|
+
const cells = [];
|
|
405
|
+
const alignments = [];
|
|
406
|
+
const props = rowElement.props || {};
|
|
407
|
+
const rawChildren = props.children;
|
|
408
|
+
const children = Array.isArray(rawChildren)
|
|
409
|
+
? rawChildren.flat()
|
|
410
|
+
: rawChildren
|
|
411
|
+
? [rawChildren]
|
|
412
|
+
: [];
|
|
413
|
+
for (const child of children) {
|
|
414
|
+
if (!isElement(child)) {
|
|
415
|
+
// Plain string child
|
|
416
|
+
if (typeof child === "string") {
|
|
417
|
+
cells.push(child);
|
|
418
|
+
alignments.push("left");
|
|
419
|
+
}
|
|
420
|
+
continue;
|
|
421
|
+
}
|
|
422
|
+
if (child.type === Column || child.type === "column") {
|
|
423
|
+
const text = extractTextFromElement(child);
|
|
424
|
+
cells.push(text);
|
|
425
|
+
alignments.push(child.props?.align || "left");
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
return { cells, alignments };
|
|
429
|
+
}
|
|
430
|
+
/**
|
|
431
|
+
* Extracts table structure from a Table JSX element.
|
|
432
|
+
* Handles both props-based (headers/rows) and children-based (Row/Column) definitions.
|
|
433
|
+
*/
|
|
434
|
+
export function extractTableStructure(tableElement) {
|
|
435
|
+
const props = tableElement.props || {};
|
|
436
|
+
// If headers/rows are provided as props, use those directly
|
|
437
|
+
if (props.headers && props.rows) {
|
|
438
|
+
return {
|
|
439
|
+
headers: props.headers,
|
|
440
|
+
rows: props.rows,
|
|
441
|
+
};
|
|
442
|
+
}
|
|
443
|
+
// Otherwise, extract from Row/Column children
|
|
444
|
+
const headers = [];
|
|
445
|
+
const rows = [];
|
|
446
|
+
const alignments = [];
|
|
447
|
+
const rawChildren = props.children;
|
|
448
|
+
const children = Array.isArray(rawChildren)
|
|
449
|
+
? rawChildren.flat()
|
|
450
|
+
: rawChildren
|
|
451
|
+
? [rawChildren]
|
|
452
|
+
: [];
|
|
453
|
+
for (const child of children) {
|
|
454
|
+
if (!isElement(child))
|
|
455
|
+
continue;
|
|
456
|
+
if (child.type === Row || child.type === "row") {
|
|
457
|
+
const rowData = extractRowData(child);
|
|
458
|
+
if (child.props?.header) {
|
|
459
|
+
// This is a header row
|
|
460
|
+
headers.push(...rowData.cells);
|
|
461
|
+
if (rowData.alignments.length > 0 && alignments.length === 0) {
|
|
462
|
+
alignments.push(...rowData.alignments);
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
else {
|
|
466
|
+
rows.push(rowData.cells);
|
|
467
|
+
// Capture alignments from first data row if not already set
|
|
468
|
+
if (rowData.alignments.length > 0 && alignments.length === 0) {
|
|
469
|
+
alignments.push(...rowData.alignments);
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
return {
|
|
475
|
+
headers,
|
|
476
|
+
rows,
|
|
477
|
+
alignments: alignments.length > 0 ? alignments : undefined,
|
|
478
|
+
};
|
|
479
|
+
}
|
|
480
|
+
/**
|
|
481
|
+
* Extracts data from a ListItem element, including nested lists and checked state.
|
|
482
|
+
*/
|
|
483
|
+
function extractListItemData(itemElement) {
|
|
484
|
+
const props = itemElement.props || {};
|
|
485
|
+
const rawChildren = props.children;
|
|
486
|
+
const children = Array.isArray(rawChildren)
|
|
487
|
+
? rawChildren.flat()
|
|
488
|
+
: rawChildren
|
|
489
|
+
? [rawChildren]
|
|
490
|
+
: [];
|
|
491
|
+
let text = "";
|
|
492
|
+
let nested = undefined;
|
|
493
|
+
const checked = props.checked;
|
|
494
|
+
for (const child of children) {
|
|
495
|
+
if (typeof child === "string") {
|
|
496
|
+
text += child;
|
|
497
|
+
}
|
|
498
|
+
else if (isElement(child)) {
|
|
499
|
+
if (child.type === List || child.type === "list") {
|
|
500
|
+
// Nested list
|
|
501
|
+
nested = extractListStructure(child);
|
|
502
|
+
}
|
|
503
|
+
else {
|
|
504
|
+
// Other element - extract text
|
|
505
|
+
text += extractTextFromElement(child);
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
}
|
|
509
|
+
// Return object form if we have nested list or checked state
|
|
510
|
+
if (nested !== undefined || checked !== undefined) {
|
|
511
|
+
return {
|
|
512
|
+
text: text.trim(),
|
|
513
|
+
...(checked !== undefined ? { checked } : {}),
|
|
514
|
+
...(nested !== undefined ? { nested } : {}),
|
|
515
|
+
};
|
|
516
|
+
}
|
|
517
|
+
return text.trim();
|
|
518
|
+
}
|
|
519
|
+
/**
|
|
520
|
+
* Extracts list structure from a List JSX element.
|
|
521
|
+
*/
|
|
522
|
+
export function extractListStructure(listElement) {
|
|
523
|
+
const props = listElement.props || {};
|
|
524
|
+
const ordered = props.ordered === true;
|
|
525
|
+
const task = props.task === true ? true : undefined;
|
|
526
|
+
const items = [];
|
|
527
|
+
const rawChildren = props.children;
|
|
528
|
+
const children = Array.isArray(rawChildren)
|
|
529
|
+
? rawChildren.flat()
|
|
530
|
+
: rawChildren
|
|
531
|
+
? [rawChildren]
|
|
532
|
+
: [];
|
|
533
|
+
for (const child of children) {
|
|
534
|
+
if (!isElement(child)) {
|
|
535
|
+
if (typeof child === "string") {
|
|
536
|
+
items.push(child);
|
|
537
|
+
}
|
|
538
|
+
continue;
|
|
539
|
+
}
|
|
540
|
+
if (child.type === ListItem || child.type === "li" || child.type === "listitem") {
|
|
541
|
+
const itemData = extractListItemData(child);
|
|
542
|
+
items.push(itemData);
|
|
543
|
+
}
|
|
544
|
+
}
|
|
545
|
+
return { ordered, ...(task ? { task } : {}), items };
|
|
546
|
+
}
|
|
547
|
+
//# sourceMappingURL=extractors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extractors.js","sourceRoot":"","sources":["../../src/compiler/extractors.ts"],"names":[],"mappings":"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"}
|