@aotui/runtime 1.0.0
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/dist/adapters/aotui-driven-source.d.ts +106 -0
- package/dist/adapters/aotui-driven-source.js +549 -0
- package/dist/adapters/aotui-driven-source.js.map +1 -0
- package/dist/adapters/bridge/index.d.ts +94 -0
- package/dist/adapters/bridge/index.js +199 -0
- package/dist/adapters/bridge/index.js.map +1 -0
- package/dist/adapters/index.d.ts +7 -0
- package/dist/adapters/index.js +8 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/session/index.d.ts +7 -0
- package/dist/adapters/session/index.js +2 -0
- package/dist/adapters/session/index.js.map +1 -0
- package/dist/adapters/session/session.d.ts +46 -0
- package/dist/adapters/session/session.js +76 -0
- package/dist/adapters/session/session.js.map +1 -0
- package/dist/adapters/session/types.d.ts +52 -0
- package/dist/adapters/session/types.js +7 -0
- package/dist/adapters/session/types.js.map +1 -0
- package/dist/adapters/system-instruction.d.ts +9 -0
- package/dist/adapters/system-instruction.js +434 -0
- package/dist/adapters/system-instruction.js.map +1 -0
- package/dist/benchmarks/dom-engine-comparison.d.ts +1 -0
- package/dist/benchmarks/dom-engine-comparison.js +84 -0
- package/dist/benchmarks/dom-engine-comparison.js.map +1 -0
- package/dist/benchmarks/shadow-dom-check.d.ts +1 -0
- package/dist/benchmarks/shadow-dom-check.js +44 -0
- package/dist/benchmarks/shadow-dom-check.js.map +1 -0
- package/dist/cli.d.ts +17 -0
- package/dist/cli.js +314 -0
- package/dist/cli.js.map +1 -0
- package/dist/engine/app/config.d.ts +81 -0
- package/dist/engine/app/config.js +32 -0
- package/dist/engine/app/config.js.map +1 -0
- package/dist/engine/app/index.d.ts +14 -0
- package/dist/engine/app/index.js +33 -0
- package/dist/engine/app/index.js.map +1 -0
- package/dist/engine/app/manager.d.ts +194 -0
- package/dist/engine/app/manager.js +340 -0
- package/dist/engine/app/manager.js.map +1 -0
- package/dist/engine/app/registry.d.ts +138 -0
- package/dist/engine/app/registry.js +473 -0
- package/dist/engine/app/registry.js.map +1 -0
- package/dist/engine/app/worker-app-host.service.d.ts +62 -0
- package/dist/engine/app/worker-app-host.service.js +189 -0
- package/dist/engine/app/worker-app-host.service.js.map +1 -0
- package/dist/engine/app/worker-host.d.ts +139 -0
- package/dist/engine/app/worker-host.js +397 -0
- package/dist/engine/app/worker-host.js.map +1 -0
- package/dist/engine/app/worker-pool.d.ts +45 -0
- package/dist/engine/app/worker-pool.js +122 -0
- package/dist/engine/app/worker-pool.js.map +1 -0
- package/dist/engine/app/worker-sandbox.d.ts +152 -0
- package/dist/engine/app/worker-sandbox.js +290 -0
- package/dist/engine/app/worker-sandbox.js.map +1 -0
- package/dist/engine/core/desktop-logger.d.ts +69 -0
- package/dist/engine/core/desktop-logger.js +124 -0
- package/dist/engine/core/desktop-logger.js.map +1 -0
- package/dist/engine/core/desktop.d.ts +208 -0
- package/dist/engine/core/desktop.js +351 -0
- package/dist/engine/core/desktop.js.map +1 -0
- package/dist/engine/core/index.d.ts +12 -0
- package/dist/engine/core/index.js +28 -0
- package/dist/engine/core/index.js.map +1 -0
- package/dist/engine/core/llm-output-channel.d.ts +45 -0
- package/dist/engine/core/llm-output-channel.js +122 -0
- package/dist/engine/core/llm-output-channel.js.map +1 -0
- package/dist/engine/core/manager.d.ts +59 -0
- package/dist/engine/core/manager.js +131 -0
- package/dist/engine/core/manager.js.map +1 -0
- package/dist/engine/core/operation-log-buffer.d.ts +79 -0
- package/dist/engine/core/operation-log-buffer.js +108 -0
- package/dist/engine/core/operation-log-buffer.js.map +1 -0
- package/dist/engine/core/operation-log-formatter.d.ts +44 -0
- package/dist/engine/core/operation-log-formatter.js +180 -0
- package/dist/engine/core/operation-log-formatter.js.map +1 -0
- package/dist/engine/core/services/lock.service.d.ts +33 -0
- package/dist/engine/core/services/lock.service.js +99 -0
- package/dist/engine/core/services/lock.service.js.map +1 -0
- package/dist/engine/core/signal-bus.d.ts +84 -0
- package/dist/engine/core/signal-bus.js +160 -0
- package/dist/engine/core/signal-bus.js.map +1 -0
- package/dist/engine/core/signal-service.d.ts +42 -0
- package/dist/engine/core/signal-service.js +58 -0
- package/dist/engine/core/signal-service.js.map +1 -0
- package/dist/engine/system/dispatcher.d.ts +18 -0
- package/dist/engine/system/dispatcher.js +48 -0
- package/dist/engine/system/dispatcher.js.map +1 -0
- package/dist/engine/system/index.d.ts +10 -0
- package/dist/engine/system/index.js +20 -0
- package/dist/engine/system/index.js.map +1 -0
- package/dist/engine/system/operations/index.d.ts +26 -0
- package/dist/engine/system/operations/index.js +38 -0
- package/dist/engine/system/operations/index.js.map +1 -0
- package/dist/engine/system/operations/registry.d.ts +62 -0
- package/dist/engine/system/operations/registry.js +101 -0
- package/dist/engine/system/operations/registry.js.map +1 -0
- package/dist/engine/system/operations/system/close-app.d.ts +13 -0
- package/dist/engine/system/operations/system/close-app.js +43 -0
- package/dist/engine/system/operations/system/close-app.js.map +1 -0
- package/dist/engine/system/operations/system/dismount-view.d.ts +13 -0
- package/dist/engine/system/operations/system/dismount-view.js +48 -0
- package/dist/engine/system/operations/system/dismount-view.js.map +1 -0
- package/dist/engine/system/operations/system/index.d.ts +6 -0
- package/dist/engine/system/operations/system/index.js +7 -0
- package/dist/engine/system/operations/system/index.js.map +1 -0
- package/dist/engine/system/operations/system/open-app.d.ts +13 -0
- package/dist/engine/system/operations/system/open-app.js +43 -0
- package/dist/engine/system/operations/system/open-app.js.map +1 -0
- package/dist/engine/system/registry.d.ts +36 -0
- package/dist/engine/system/registry.js +101 -0
- package/dist/engine/system/registry.js.map +1 -0
- package/dist/engine/view/index.d.ts +13 -0
- package/dist/engine/view/index.js +20 -0
- package/dist/engine/view/index.js.map +1 -0
- package/dist/engine/view/manager.d.ts +42 -0
- package/dist/engine/view/manager.js +57 -0
- package/dist/engine/view/manager.js.map +1 -0
- package/dist/engine/view/snapshot/builder.d.ts +34 -0
- package/dist/engine/view/snapshot/builder.js +119 -0
- package/dist/engine/view/snapshot/builder.js.map +1 -0
- package/dist/engine/view/snapshot/formatter.d.ts +76 -0
- package/dist/engine/view/snapshot/formatter.js +297 -0
- package/dist/engine/view/snapshot/formatter.js.map +1 -0
- package/dist/engine/view/snapshot/index.d.ts +8 -0
- package/dist/engine/view/snapshot/index.js +8 -0
- package/dist/engine/view/snapshot/index.js.map +1 -0
- package/dist/engine/view/snapshot/templates.d.ts +41 -0
- package/dist/engine/view/snapshot/templates.js +317 -0
- package/dist/engine/view/snapshot/templates.js.map +1 -0
- package/dist/engine/view/transformer/__tests__/visitors/test-utils.d.ts +1 -0
- package/dist/engine/view/transformer/__tests__/visitors/test-utils.js +14 -0
- package/dist/engine/view/transformer/__tests__/visitors/test-utils.js.map +1 -0
- package/dist/engine/view/transformer/helpers.d.ts +19 -0
- package/dist/engine/view/transformer/helpers.js +32 -0
- package/dist/engine/view/transformer/helpers.js.map +1 -0
- package/dist/engine/view/transformer/index.d.ts +40 -0
- package/dist/engine/view/transformer/index.js +38 -0
- package/dist/engine/view/transformer/index.js.map +1 -0
- package/dist/engine/view/transformer/pure.d.ts +17 -0
- package/dist/engine/view/transformer/pure.js +124 -0
- package/dist/engine/view/transformer/pure.js.map +1 -0
- package/dist/engine/view/transformer/types.d.ts +31 -0
- package/dist/engine/view/transformer/types.js +16 -0
- package/dist/engine/view/transformer/types.js.map +1 -0
- package/dist/engine/view/transformer/visitors/application.visitor.d.ts +8 -0
- package/dist/engine/view/transformer/visitors/application.visitor.js +37 -0
- package/dist/engine/view/transformer/visitors/application.visitor.js.map +1 -0
- package/dist/engine/view/transformer/visitors/html.visitor.d.ts +8 -0
- package/dist/engine/view/transformer/visitors/html.visitor.js +161 -0
- package/dist/engine/view/transformer/visitors/html.visitor.js.map +1 -0
- package/dist/engine/view/transformer/visitors/index.d.ts +12 -0
- package/dist/engine/view/transformer/visitors/index.js +27 -0
- package/dist/engine/view/transformer/visitors/index.js.map +1 -0
- package/dist/engine/view/transformer/visitors/interface.d.ts +53 -0
- package/dist/engine/view/transformer/visitors/interface.js +8 -0
- package/dist/engine/view/transformer/visitors/interface.js.map +1 -0
- package/dist/engine/view/transformer/visitors/operation.visitor.d.ts +9 -0
- package/dist/engine/view/transformer/visitors/operation.visitor.js +122 -0
- package/dist/engine/view/transformer/visitors/operation.visitor.js.map +1 -0
- package/dist/engine/view/transformer/visitors/view-link.visitor.d.ts +15 -0
- package/dist/engine/view/transformer/visitors/view-link.visitor.js +98 -0
- package/dist/engine/view/transformer/visitors/view-link.visitor.js.map +1 -0
- package/dist/engine/view/transformer/visitors/view.visitor.d.ts +8 -0
- package/dist/engine/view/transformer/visitors/view.visitor.js +43 -0
- package/dist/engine/view/transformer/visitors/view.visitor.js.map +1 -0
- package/dist/engine/view/types.d.ts +70 -0
- package/dist/engine/view/types.js +17 -0
- package/dist/engine/view/types.js.map +1 -0
- package/dist/facades/facades.d.ts +40 -0
- package/dist/facades/facades.js +66 -0
- package/dist/facades/facades.js.map +1 -0
- package/dist/facades/index.d.ts +13 -0
- package/dist/facades/index.js +15 -0
- package/dist/facades/index.js.map +1 -0
- package/dist/factory/createKernel.d.ts +37 -0
- package/dist/factory/createKernel.js +42 -0
- package/dist/factory/createKernel.js.map +1 -0
- package/dist/factory/index.d.ts +9 -0
- package/dist/factory/index.js +10 -0
- package/dist/factory/index.js.map +1 -0
- package/dist/index.d.ts +35 -0
- package/dist/index.js +69 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/browser.d.ts +20 -0
- package/dist/internal/browser.js +20 -0
- package/dist/internal/browser.js.map +1 -0
- package/dist/kernel/index.d.ts +120 -0
- package/dist/kernel/index.js +328 -0
- package/dist/kernel/index.js.map +1 -0
- package/dist/spi/app/aoapp.d.ts +86 -0
- package/dist/spi/app/aoapp.js +39 -0
- package/dist/spi/app/aoapp.js.map +1 -0
- package/dist/spi/app/app-config.interface.d.ts +9 -0
- package/dist/spi/app/app-config.interface.js +2 -0
- package/dist/spi/app/app-config.interface.js.map +1 -0
- package/dist/spi/app/app-factory.interface.d.ts +78 -0
- package/dist/spi/app/app-factory.interface.js +49 -0
- package/dist/spi/app/app-factory.interface.js.map +1 -0
- package/dist/spi/app/app-kernel.interface.d.ts +139 -0
- package/dist/spi/app/app-kernel.interface.js +2 -0
- package/dist/spi/app/app-kernel.interface.js.map +1 -0
- package/dist/spi/app/app.interface.d.ts +84 -0
- package/dist/spi/app/app.interface.js +8 -0
- package/dist/spi/app/app.interface.js.map +1 -0
- package/dist/spi/app/index.d.ts +26 -0
- package/dist/spi/app/index.js +13 -0
- package/dist/spi/app/index.js.map +1 -0
- package/dist/spi/app/public-types.d.ts +309 -0
- package/dist/spi/app/public-types.js +17 -0
- package/dist/spi/app/public-types.js.map +1 -0
- package/dist/spi/app/ref-exporter.interface.d.ts +23 -0
- package/dist/spi/app/ref-exporter.interface.js +10 -0
- package/dist/spi/app/ref-exporter.interface.js.map +1 -0
- package/dist/spi/app/store.interface.d.ts +45 -0
- package/dist/spi/app/store.interface.js +11 -0
- package/dist/spi/app/store.interface.js.map +1 -0
- package/dist/spi/app/view-context-core.interface.d.ts +50 -0
- package/dist/spi/app/view-context-core.interface.js +8 -0
- package/dist/spi/app/view-context-core.interface.js.map +1 -0
- package/dist/spi/app/view-context-ext.interface.d.ts +79 -0
- package/dist/spi/app/view-context-ext.interface.js +19 -0
- package/dist/spi/app/view-context-ext.interface.js.map +1 -0
- package/dist/spi/app/view-factory.interface.d.ts +46 -0
- package/dist/spi/app/view-factory.interface.js +2 -0
- package/dist/spi/app/view-factory.interface.js.map +1 -0
- package/dist/spi/app/view-link.types.d.ts +136 -0
- package/dist/spi/app/view-link.types.js +19 -0
- package/dist/spi/app/view-link.types.js.map +1 -0
- package/dist/spi/app/view-tree.interface.d.ts +254 -0
- package/dist/spi/app/view-tree.interface.js +13 -0
- package/dist/spi/app/view-tree.interface.js.map +1 -0
- package/dist/spi/app/view.interface.d.ts +122 -0
- package/dist/spi/app/view.interface.js +15 -0
- package/dist/spi/app/view.interface.js.map +1 -0
- package/dist/spi/bridge/bridge.interface.d.ts +118 -0
- package/dist/spi/bridge/bridge.interface.js +32 -0
- package/dist/spi/bridge/bridge.interface.js.map +1 -0
- package/dist/spi/bridge/index.d.ts +8 -0
- package/dist/spi/bridge/index.js +9 -0
- package/dist/spi/bridge/index.js.map +1 -0
- package/dist/spi/component-factory.interface.d.ts +123 -0
- package/dist/spi/component-factory.interface.js +15 -0
- package/dist/spi/component-factory.interface.js.map +1 -0
- package/dist/spi/config/define-config.d.ts +31 -0
- package/dist/spi/config/define-config.js +72 -0
- package/dist/spi/config/define-config.js.map +1 -0
- package/dist/spi/config/domains/bridge.config.d.ts +21 -0
- package/dist/spi/config/domains/bridge.config.js +10 -0
- package/dist/spi/config/domains/bridge.config.js.map +1 -0
- package/dist/spi/config/domains/lock.config.d.ts +20 -0
- package/dist/spi/config/domains/lock.config.js +10 -0
- package/dist/spi/config/domains/lock.config.js.map +1 -0
- package/dist/spi/config/domains/logger.config.d.ts +28 -0
- package/dist/spi/config/domains/logger.config.js +11 -0
- package/dist/spi/config/domains/logger.config.js.map +1 -0
- package/dist/spi/config/domains/snapshot.config.d.ts +20 -0
- package/dist/spi/config/domains/snapshot.config.js +10 -0
- package/dist/spi/config/domains/snapshot.config.js.map +1 -0
- package/dist/spi/config/domains/transform.config.d.ts +28 -0
- package/dist/spi/config/domains/transform.config.js +11 -0
- package/dist/spi/config/domains/transform.config.js.map +1 -0
- package/dist/spi/config/domains/worker.config.d.ts +54 -0
- package/dist/spi/config/domains/worker.config.js +15 -0
- package/dist/spi/config/domains/worker.config.js.map +1 -0
- package/dist/spi/config/index.d.ts +16 -0
- package/dist/spi/config/index.js +18 -0
- package/dist/spi/config/index.js.map +1 -0
- package/dist/spi/config/types.d.ts +38 -0
- package/dist/spi/config/types.js +7 -0
- package/dist/spi/config/types.js.map +1 -0
- package/dist/spi/config/validate.d.ts +12 -0
- package/dist/spi/config/validate.js +90 -0
- package/dist/spi/config/validate.js.map +1 -0
- package/dist/spi/core/errors.d.ts +117 -0
- package/dist/spi/core/errors.js +233 -0
- package/dist/spi/core/errors.js.map +1 -0
- package/dist/spi/core/id-factory.d.ts +85 -0
- package/dist/spi/core/id-factory.js +119 -0
- package/dist/spi/core/id-factory.js.map +1 -0
- package/dist/spi/core/index.d.ts +21 -0
- package/dist/spi/core/index.js +25 -0
- package/dist/spi/core/index.js.map +1 -0
- package/dist/spi/core/llm-output.d.ts +74 -0
- package/dist/spi/core/llm-output.js +12 -0
- package/dist/spi/core/llm-output.js.map +1 -0
- package/dist/spi/core/operation-log.d.ts +133 -0
- package/dist/spi/core/operation-log.js +13 -0
- package/dist/spi/core/operation-log.js.map +1 -0
- package/dist/spi/core/operations.d.ts +198 -0
- package/dist/spi/core/operations.js +13 -0
- package/dist/spi/core/operations.js.map +1 -0
- package/dist/spi/core/signals.d.ts +16 -0
- package/dist/spi/core/signals.js +7 -0
- package/dist/spi/core/signals.js.map +1 -0
- package/dist/spi/core/snapshot.d.ts +77 -0
- package/dist/spi/core/snapshot.js +18 -0
- package/dist/spi/core/snapshot.js.map +1 -0
- package/dist/spi/core/tool-call.d.ts +60 -0
- package/dist/spi/core/tool-call.js +10 -0
- package/dist/spi/core/tool-call.js.map +1 -0
- package/dist/spi/core/types.d.ts +68 -0
- package/dist/spi/core/types.js +8 -0
- package/dist/spi/core/types.js.map +1 -0
- package/dist/spi/index.d.ts +31 -0
- package/dist/spi/index.js +57 -0
- package/dist/spi/index.js.map +1 -0
- package/dist/spi/runtime/app-host.interface.d.ts +142 -0
- package/dist/spi/runtime/app-host.interface.js +10 -0
- package/dist/spi/runtime/app-host.interface.js.map +1 -0
- package/dist/spi/runtime/app-installer.interface.d.ts +33 -0
- package/dist/spi/runtime/app-installer.interface.js +2 -0
- package/dist/spi/runtime/app-installer.interface.js.map +1 -0
- package/dist/spi/runtime/context.interface.d.ts +10 -0
- package/dist/spi/runtime/context.interface.js +2 -0
- package/dist/spi/runtime/context.interface.js.map +1 -0
- package/dist/spi/runtime/desktop-context.interface.d.ts +45 -0
- package/dist/spi/runtime/desktop-context.interface.js +10 -0
- package/dist/spi/runtime/desktop-context.interface.js.map +1 -0
- package/dist/spi/runtime/desktop-dom.interface.d.ts +48 -0
- package/dist/spi/runtime/desktop-dom.interface.js +13 -0
- package/dist/spi/runtime/desktop-dom.interface.js.map +1 -0
- package/dist/spi/runtime/desktop-lifecycle.interface.d.ts +23 -0
- package/dist/spi/runtime/desktop-lifecycle.interface.js +2 -0
- package/dist/spi/runtime/desktop-lifecycle.interface.js.map +1 -0
- package/dist/spi/runtime/desktop-lock.interface.d.ts +50 -0
- package/dist/spi/runtime/desktop-lock.interface.js +2 -0
- package/dist/spi/runtime/desktop-lock.interface.js.map +1 -0
- package/dist/spi/runtime/desktop-manager.interface.d.ts +22 -0
- package/dist/spi/runtime/desktop-manager.interface.js +13 -0
- package/dist/spi/runtime/desktop-manager.interface.js.map +1 -0
- package/dist/spi/runtime/desktop-repository.interface.d.ts +8 -0
- package/dist/spi/runtime/desktop-repository.interface.js +2 -0
- package/dist/spi/runtime/desktop-repository.interface.js.map +1 -0
- package/dist/spi/runtime/desktop-state-accessor.interface.d.ts +22 -0
- package/dist/spi/runtime/desktop-state-accessor.interface.js +2 -0
- package/dist/spi/runtime/desktop-state-accessor.interface.js.map +1 -0
- package/dist/spi/runtime/dispatcher.interface.d.ts +34 -0
- package/dist/spi/runtime/dispatcher.interface.js +10 -0
- package/dist/spi/runtime/dispatcher.interface.js.map +1 -0
- package/dist/spi/runtime/index.d.ts +28 -0
- package/dist/spi/runtime/index.js +11 -0
- package/dist/spi/runtime/index.js.map +1 -0
- package/dist/spi/runtime/kernel.interface.d.ts +221 -0
- package/dist/spi/runtime/kernel.interface.js +7 -0
- package/dist/spi/runtime/kernel.interface.js.map +1 -0
- package/dist/spi/runtime/llm-output-channel.interface.d.ts +81 -0
- package/dist/spi/runtime/llm-output-channel.interface.js +12 -0
- package/dist/spi/runtime/llm-output-channel.interface.js.map +1 -0
- package/dist/spi/runtime/signal.interface.d.ts +80 -0
- package/dist/spi/runtime/signal.interface.js +9 -0
- package/dist/spi/runtime/signal.interface.js.map +1 -0
- package/dist/spi/runtime/snapshot.interface.d.ts +126 -0
- package/dist/spi/runtime/snapshot.interface.js +14 -0
- package/dist/spi/runtime/snapshot.interface.js.map +1 -0
- package/dist/spi/runtime/transformer.interface.d.ts +47 -0
- package/dist/spi/runtime/transformer.interface.js +10 -0
- package/dist/spi/runtime/transformer.interface.js.map +1 -0
- package/dist/spi/runtime/worker-message.interface.d.ts +80 -0
- package/dist/spi/runtime/worker-message.interface.js +49 -0
- package/dist/spi/runtime/worker-message.interface.js.map +1 -0
- package/dist/spi/runtime/worker-runtime.interface.d.ts +177 -0
- package/dist/spi/runtime/worker-runtime.interface.js +14 -0
- package/dist/spi/runtime/worker-runtime.interface.js.map +1 -0
- package/dist/spi/worker-protocol/index.d.ts +26 -0
- package/dist/spi/worker-protocol/index.js +29 -0
- package/dist/spi/worker-protocol/index.js.map +1 -0
- package/dist/spi/worker-protocol/messages.d.ts +257 -0
- package/dist/spi/worker-protocol/messages.js +42 -0
- package/dist/spi/worker-protocol/messages.js.map +1 -0
- package/dist/spi/worker-protocol/types.d.ts +12 -0
- package/dist/spi/worker-protocol/types.js +16 -0
- package/dist/spi/worker-protocol/types.js.map +1 -0
- package/dist/worker-runtime/app-kernel/AppKernel.d.ts +178 -0
- package/dist/worker-runtime/app-kernel/AppKernel.js +622 -0
- package/dist/worker-runtime/app-kernel/AppKernel.js.map +1 -0
- package/dist/worker-runtime/app-kernel/index.d.ts +23 -0
- package/dist/worker-runtime/app-kernel/index.js +23 -0
- package/dist/worker-runtime/app-kernel/index.js.map +1 -0
- package/dist/worker-runtime/app-kernel/view-registry.d.ts +85 -0
- package/dist/worker-runtime/app-kernel/view-registry.js +119 -0
- package/dist/worker-runtime/app-kernel/view-registry.js.map +1 -0
- package/dist/worker-runtime/app-kernel/view-tree.d.ts +222 -0
- package/dist/worker-runtime/app-kernel/view-tree.js +682 -0
- package/dist/worker-runtime/app-kernel/view-tree.js.map +1 -0
- package/dist/worker-runtime/index.d.ts +16 -0
- package/dist/worker-runtime/index.js +731 -0
- package/dist/worker-runtime/index.js.map +1 -0
- package/package.json +67 -0
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SPI Layer - ViewLink Types
|
|
3
|
+
*
|
|
4
|
+
* [RFC-006] ViewLink/View ID 解耦设计的核心类型定义。
|
|
5
|
+
*
|
|
6
|
+
* 三层 ID 体系:
|
|
7
|
+
* - ViewID: App 全局唯一,Runtime BFS 分配 (view_0, view_1, ...)
|
|
8
|
+
* - LinkID: 父 View 内唯一,开发者 prefix + SDK 自动索引 (CD_0, CD_1, ...)
|
|
9
|
+
* - UniqueID: 开发者提供的业务 ID,用于跨快照匹配 (conversation:conv_456)
|
|
10
|
+
*
|
|
11
|
+
* @module @aotui/runtime/spi/app/view-link
|
|
12
|
+
*/
|
|
13
|
+
import type { ViewID } from '../core/types.js';
|
|
14
|
+
import type { IView } from './view.interface.js';
|
|
15
|
+
/**
|
|
16
|
+
* ViewLink 注册信息
|
|
17
|
+
*
|
|
18
|
+
* 当 ViewLink 组件渲染时,向 Runtime 注册此信息。
|
|
19
|
+
* 包含创建 View 所需的所有数据。
|
|
20
|
+
*/
|
|
21
|
+
export interface LinkEntry {
|
|
22
|
+
/**
|
|
23
|
+
* LinkID - 父 View 内唯一
|
|
24
|
+
*
|
|
25
|
+
* 格式: `${prefix}_${index}` 或显式指定
|
|
26
|
+
* 示例: "ConversationDetail_0", "settings_panel"
|
|
27
|
+
*/
|
|
28
|
+
linkId: string;
|
|
29
|
+
/**
|
|
30
|
+
* UniqueID - 业务唯一标识
|
|
31
|
+
*
|
|
32
|
+
* 由开发者基于业务数据提供,用于跨快照匹配 ViewLink 和 View。
|
|
33
|
+
* 匹配键: ViewType + UniqueID
|
|
34
|
+
*
|
|
35
|
+
* 示例: "conv_456", "order_789"
|
|
36
|
+
*/
|
|
37
|
+
uniqueId: string;
|
|
38
|
+
/**
|
|
39
|
+
* View 类型名称
|
|
40
|
+
*
|
|
41
|
+
* 来自 IViewFactory.displayName
|
|
42
|
+
* 与 uniqueId 组合形成跨快照匹配键
|
|
43
|
+
*/
|
|
44
|
+
viewType: string;
|
|
45
|
+
/**
|
|
46
|
+
* 父 View ID
|
|
47
|
+
*/
|
|
48
|
+
parentViewId: ViewID;
|
|
49
|
+
/**
|
|
50
|
+
* View 工厂函数
|
|
51
|
+
*/
|
|
52
|
+
factory: (viewId: string, props?: Record<string, unknown>) => IView;
|
|
53
|
+
/**
|
|
54
|
+
* 传递给 View 的 Props (对 Agent 隐藏)
|
|
55
|
+
*/
|
|
56
|
+
props?: Record<string, unknown>;
|
|
57
|
+
/**
|
|
58
|
+
* 显示标签 (用于 ViewTree 渲染)
|
|
59
|
+
*/
|
|
60
|
+
label?: string;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* View 绑定信息
|
|
64
|
+
*
|
|
65
|
+
* 当 View 通过 ViewLink 被 mount 时,记录绑定关系。
|
|
66
|
+
* 用于幂等 mount 和跨快照匹配。
|
|
67
|
+
*/
|
|
68
|
+
export interface ViewBinding {
|
|
69
|
+
/**
|
|
70
|
+
* 分配的 ViewID
|
|
71
|
+
*/
|
|
72
|
+
viewId: ViewID;
|
|
73
|
+
/**
|
|
74
|
+
* 绑定的 UniqueID
|
|
75
|
+
*/
|
|
76
|
+
uniqueId: string;
|
|
77
|
+
/**
|
|
78
|
+
* View 类型名称
|
|
79
|
+
*/
|
|
80
|
+
viewType: string;
|
|
81
|
+
/**
|
|
82
|
+
* 父 View ID
|
|
83
|
+
*/
|
|
84
|
+
parentViewId: ViewID;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* 匹配键:ViewType + UniqueID
|
|
88
|
+
*
|
|
89
|
+
* 用于在 Map 中查找绑定关系
|
|
90
|
+
*/
|
|
91
|
+
export type BindingKey = `${string}:${string}`;
|
|
92
|
+
/**
|
|
93
|
+
* 创建匹配键
|
|
94
|
+
*/
|
|
95
|
+
export declare function createBindingKey(viewType: string, uniqueId: string): BindingKey;
|
|
96
|
+
/**
|
|
97
|
+
* Mount 操作参数 (V2)
|
|
98
|
+
*
|
|
99
|
+
* [RFC-006] 新的 mount 操作需要指定父 View 和 LinkID
|
|
100
|
+
*/
|
|
101
|
+
export interface MountViewArgsV2 {
|
|
102
|
+
/**
|
|
103
|
+
* App ID
|
|
104
|
+
*/
|
|
105
|
+
app_id: string;
|
|
106
|
+
/**
|
|
107
|
+
* 父 View ID (ViewLink 所在的 View)
|
|
108
|
+
*/
|
|
109
|
+
parent_view: string;
|
|
110
|
+
/**
|
|
111
|
+
* Link ID (父 View 内唯一)
|
|
112
|
+
*/
|
|
113
|
+
link_id: string;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Mount 操作结果
|
|
117
|
+
*/
|
|
118
|
+
export interface MountViewResult {
|
|
119
|
+
/**
|
|
120
|
+
* 挂载的 View ID
|
|
121
|
+
*/
|
|
122
|
+
viewId: ViewID;
|
|
123
|
+
/**
|
|
124
|
+
* 执行的动作
|
|
125
|
+
* - MOUNTED: 新创建并挂载
|
|
126
|
+
* - ALREADY_MOUNTED: 已存在,幂等返回
|
|
127
|
+
*/
|
|
128
|
+
action: 'MOUNTED' | 'ALREADY_MOUNTED';
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Dismount 操作参数 (不变)
|
|
132
|
+
*/
|
|
133
|
+
export interface DismountViewArgs {
|
|
134
|
+
app_id: string;
|
|
135
|
+
view_id: string;
|
|
136
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SPI Layer - ViewLink Types
|
|
3
|
+
*
|
|
4
|
+
* [RFC-006] ViewLink/View ID 解耦设计的核心类型定义。
|
|
5
|
+
*
|
|
6
|
+
* 三层 ID 体系:
|
|
7
|
+
* - ViewID: App 全局唯一,Runtime BFS 分配 (view_0, view_1, ...)
|
|
8
|
+
* - LinkID: 父 View 内唯一,开发者 prefix + SDK 自动索引 (CD_0, CD_1, ...)
|
|
9
|
+
* - UniqueID: 开发者提供的业务 ID,用于跨快照匹配 (conversation:conv_456)
|
|
10
|
+
*
|
|
11
|
+
* @module @aotui/runtime/spi/app/view-link
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* 创建匹配键
|
|
15
|
+
*/
|
|
16
|
+
export function createBindingKey(viewType, uniqueId) {
|
|
17
|
+
return `${viewType}:${uniqueId}`;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=view-link.types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"view-link.types.js","sourceRoot":"","sources":["../../../src/spi/app/view-link.types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAkGH;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAgB,EAAE,QAAgB;IAC/D,OAAO,GAAG,QAAQ,IAAI,QAAQ,EAAgB,CAAC;AACnD,CAAC"}
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SPI Layer - IViewTree Interface
|
|
3
|
+
*
|
|
4
|
+
* Defines the contract for View tree management.
|
|
5
|
+
* SDK should depend on this interface, not the Engine implementation.
|
|
6
|
+
*
|
|
7
|
+
* [B1 FIX] Extracted from engine/view/types.ts to SPI layer
|
|
8
|
+
* for proper dependency inversion.
|
|
9
|
+
*
|
|
10
|
+
* [RFC-011] Extended with ViewLink and Mountable methods.
|
|
11
|
+
*/
|
|
12
|
+
import type { ViewID } from '../core/types.js';
|
|
13
|
+
import type { IView, IViewContext } from './view.interface.js';
|
|
14
|
+
import type { LinkEntry } from './view-link.types.js';
|
|
15
|
+
/**
|
|
16
|
+
* View 树节点
|
|
17
|
+
*
|
|
18
|
+
* 封装 View 及其在树中的位置信息
|
|
19
|
+
*/
|
|
20
|
+
export interface ViewNode {
|
|
21
|
+
/** View 实例 */
|
|
22
|
+
readonly view: IView;
|
|
23
|
+
/** 父节点 ID (根节点为 null) */
|
|
24
|
+
readonly parentId: ViewID | null;
|
|
25
|
+
/** 子节点 ID 列表 */
|
|
26
|
+
readonly childIds: readonly ViewID[];
|
|
27
|
+
/** 是否已 mount */
|
|
28
|
+
mounted: boolean;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* [RFC-006] Mountable View Entry
|
|
32
|
+
*
|
|
33
|
+
* 存储尚未实例化的可挂载视图信息。
|
|
34
|
+
* 当 ViewLink 注册时,只缓存工厂和属性;
|
|
35
|
+
* 当 Agent 调用 mount_view 时,才实际创建 View 实例。
|
|
36
|
+
*/
|
|
37
|
+
export interface MountableViewEntry {
|
|
38
|
+
/** View 工厂函数 */
|
|
39
|
+
factory: (viewId: string, props?: Record<string, unknown>) => IView;
|
|
40
|
+
/** 初始化属性 */
|
|
41
|
+
props?: Record<string, unknown>;
|
|
42
|
+
/** 父视图 ID */
|
|
43
|
+
parentId: ViewID;
|
|
44
|
+
/** 显示标签 */
|
|
45
|
+
label?: string;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* ViewContext 工厂函数类型
|
|
49
|
+
*
|
|
50
|
+
* 由 App 提供,用于为每个 View 创建运行上下文。
|
|
51
|
+
*/
|
|
52
|
+
export type ViewContextFactory = (viewId: ViewID) => IViewContext;
|
|
53
|
+
/**
|
|
54
|
+
* View 树接口
|
|
55
|
+
*
|
|
56
|
+
* 维护 App 的完整 View 层级结构。
|
|
57
|
+
*
|
|
58
|
+
* [P1 FIX] SDK 必须实现此接口来管理其内部 View 状态。
|
|
59
|
+
* Runtime 不提供此接口的实现,而是通过 DOM Snapshot 获取 View 结构。
|
|
60
|
+
*
|
|
61
|
+
* SSOT (Single Source of Truth):
|
|
62
|
+
* - SDK: 只有 ViewTree 实体,管理 View 实例生命周期。
|
|
63
|
+
* - Runtime: 通过 DOM 投影观察 View 结构。
|
|
64
|
+
*
|
|
65
|
+
* View 树结构示例:
|
|
66
|
+
* ```
|
|
67
|
+
* - [Navigation](view:view_0, mounted)
|
|
68
|
+
* - [Conversations](view:view_1, mounted)
|
|
69
|
+
* - [Johnny Chat](view:view_3, mounted)
|
|
70
|
+
* - [Group Chat](view:view_4)
|
|
71
|
+
* - [Contacts](view:view_2)
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
export interface IViewTree {
|
|
75
|
+
/** 根节点 ID */
|
|
76
|
+
readonly rootId: ViewID | null;
|
|
77
|
+
/**
|
|
78
|
+
* 获取节点
|
|
79
|
+
*/
|
|
80
|
+
getNode(viewId: ViewID): ViewNode | undefined;
|
|
81
|
+
/**
|
|
82
|
+
* 获取 View
|
|
83
|
+
*/
|
|
84
|
+
getView(viewId: ViewID): IView | undefined;
|
|
85
|
+
/**
|
|
86
|
+
* 添加 View 到树
|
|
87
|
+
*
|
|
88
|
+
* @param view - View 实例
|
|
89
|
+
* @param parentId - 父节点 ID (根节点传 null)
|
|
90
|
+
*/
|
|
91
|
+
addView(view: IView, parentId: ViewID | null): void;
|
|
92
|
+
/**
|
|
93
|
+
* 移除 View (及其子树)
|
|
94
|
+
*/
|
|
95
|
+
removeView(viewId: ViewID): void;
|
|
96
|
+
/**
|
|
97
|
+
* Mount View
|
|
98
|
+
*
|
|
99
|
+
* 调用 view.onMount() 并标记为 mounted
|
|
100
|
+
*/
|
|
101
|
+
mountView(viewId: ViewID): Promise<void>;
|
|
102
|
+
/**
|
|
103
|
+
* Dismount View
|
|
104
|
+
*
|
|
105
|
+
* 先 dismount 所有子 View,再调用 view.onDismount()
|
|
106
|
+
*/
|
|
107
|
+
dismountView(viewId: ViewID): Promise<void>;
|
|
108
|
+
/**
|
|
109
|
+
* 获取所有已 mount 的 View
|
|
110
|
+
*/
|
|
111
|
+
getMountedViews(): IView[];
|
|
112
|
+
/**
|
|
113
|
+
* 获取 View 的完整路径 (从根到此节点)
|
|
114
|
+
*/
|
|
115
|
+
getPath(viewId: ViewID): ViewID[];
|
|
116
|
+
/**
|
|
117
|
+
* 获取子 View
|
|
118
|
+
*/
|
|
119
|
+
getChildren(viewId: ViewID): IView[];
|
|
120
|
+
/**
|
|
121
|
+
* 渲染 View Tree 状态
|
|
122
|
+
*
|
|
123
|
+
* 输出 TUI 格式:
|
|
124
|
+
* ```
|
|
125
|
+
* ## Application View Tree
|
|
126
|
+
* - [Navigation](view:view_0, mounted)
|
|
127
|
+
* - [Conversations](view:view_1, mounted)
|
|
128
|
+
* - [Contacts](view:view_2)
|
|
129
|
+
* ```
|
|
130
|
+
*/
|
|
131
|
+
renderTree(): string;
|
|
132
|
+
/**
|
|
133
|
+
* 渲染所有已 mount 的 View 内容
|
|
134
|
+
*/
|
|
135
|
+
renderMountedViews(): string;
|
|
136
|
+
/**
|
|
137
|
+
* 注册可挂载视图 (V1 Legacy)
|
|
138
|
+
*
|
|
139
|
+
* @param viewId - 预生成的 View ID
|
|
140
|
+
* @param parentId - 父视图 ID
|
|
141
|
+
* @param factory - View 工厂函数
|
|
142
|
+
* @param props - 初始化属性
|
|
143
|
+
* @param label - 显示标签
|
|
144
|
+
*/
|
|
145
|
+
registerMountableView(viewId: ViewID, parentId: ViewID, factory: (viewId: string, props?: Record<string, unknown>) => IView, props?: Record<string, unknown>, label?: string): void;
|
|
146
|
+
/**
|
|
147
|
+
* 注销可挂载视图
|
|
148
|
+
*/
|
|
149
|
+
unregisterMountableView(viewId: ViewID): void;
|
|
150
|
+
/**
|
|
151
|
+
* 获取可挂载视图条目
|
|
152
|
+
*/
|
|
153
|
+
getMountableEntry(viewId: ViewID): MountableViewEntry | undefined;
|
|
154
|
+
/**
|
|
155
|
+
* 挂载已注册的可挂载视图
|
|
156
|
+
*/
|
|
157
|
+
mountMountableView(viewId: ViewID): Promise<void>;
|
|
158
|
+
/**
|
|
159
|
+
* 检查是否为已注册但未实例化的可挂载视图
|
|
160
|
+
*/
|
|
161
|
+
isMountableView(viewId: ViewID): boolean;
|
|
162
|
+
/**
|
|
163
|
+
* 获取父视图下所有未挂载的子视图 ID
|
|
164
|
+
*/
|
|
165
|
+
getMountableChildren(parentId: ViewID): ViewID[];
|
|
166
|
+
/**
|
|
167
|
+
* 分配唯一的 LinkID
|
|
168
|
+
*
|
|
169
|
+
* @param parentId - 父视图 ID
|
|
170
|
+
* @param prefix - ID 前缀 (通常是 viewType)
|
|
171
|
+
* @returns 生成的 LinkID (如 "Chat_0")
|
|
172
|
+
*/
|
|
173
|
+
allocateLinkId(parentId: ViewID, prefix: string): string;
|
|
174
|
+
/**
|
|
175
|
+
* 注册 ViewLink
|
|
176
|
+
*
|
|
177
|
+
* @param parentId - 父视图 ID
|
|
178
|
+
* @param entry - Link 条目数据
|
|
179
|
+
*/
|
|
180
|
+
registerLink(parentId: ViewID, entry: LinkEntry): void;
|
|
181
|
+
/**
|
|
182
|
+
* 注销 ViewLink
|
|
183
|
+
*
|
|
184
|
+
* @param parentId - 父视图 ID
|
|
185
|
+
* @param linkId - Link ID
|
|
186
|
+
*/
|
|
187
|
+
unregisterLink(parentId: ViewID, linkId: string): void;
|
|
188
|
+
/**
|
|
189
|
+
* 获取绑定的 ViewID
|
|
190
|
+
*
|
|
191
|
+
* 通过 ViewType + UniqueID 组合查找已挂载的 View。
|
|
192
|
+
* 用于跨 Snapshot 的视图匹配。
|
|
193
|
+
*
|
|
194
|
+
* @param viewType - 视图类型
|
|
195
|
+
* @param uniqueId - 唯一标识符
|
|
196
|
+
* @returns 已绑定的 ViewID,未找到返回 undefined
|
|
197
|
+
*/
|
|
198
|
+
getBoundViewId(viewType: string, uniqueId: string): ViewID | undefined;
|
|
199
|
+
/**
|
|
200
|
+
* 通过 ViewLink 挂载视图
|
|
201
|
+
*
|
|
202
|
+
* 当 Agent 执行 mount(parent_view, link_id) 时调用。
|
|
203
|
+
*
|
|
204
|
+
* @param parentId - 父视图 ID
|
|
205
|
+
* @param linkId - Link ID
|
|
206
|
+
* @returns 挂载后的 ViewID
|
|
207
|
+
*/
|
|
208
|
+
mountByLink(parentId: ViewID, linkId: string): Promise<ViewID>;
|
|
209
|
+
/**
|
|
210
|
+
* 获取父视图下所有 Link 条目
|
|
211
|
+
*
|
|
212
|
+
* @param parentId - 父视图 ID
|
|
213
|
+
* @returns Link 条目列表
|
|
214
|
+
*/
|
|
215
|
+
getLinksInParent(parentId: ViewID): LinkEntry[];
|
|
216
|
+
/**
|
|
217
|
+
* 重置 Link 计数器
|
|
218
|
+
*
|
|
219
|
+
* 在每次渲染周期开始时调用。
|
|
220
|
+
*
|
|
221
|
+
* @param parentId - 父视图 ID
|
|
222
|
+
*/
|
|
223
|
+
resetLinkCounters(parentId: ViewID): void;
|
|
224
|
+
/**
|
|
225
|
+
* 清除父视图下所有 Links
|
|
226
|
+
*
|
|
227
|
+
* 当父视图被卸载时调用。
|
|
228
|
+
*
|
|
229
|
+
* @param parentId - 父视图 ID
|
|
230
|
+
*/
|
|
231
|
+
clearLinksForParent(parentId: ViewID): void;
|
|
232
|
+
/**
|
|
233
|
+
* 注册组件模式View (from SDK's View component)
|
|
234
|
+
*
|
|
235
|
+
* Component-mode Views:
|
|
236
|
+
* - Are registered directly without parent (flat structure)
|
|
237
|
+
* - Manage their own mounted state via React lifecycle
|
|
238
|
+
* - Don't participate in traditional ViewTree hierarchy
|
|
239
|
+
*
|
|
240
|
+
* This method unifies View storage, making ViewTree the single source of truth
|
|
241
|
+
* for both traditional-mode and component-mode Views.
|
|
242
|
+
*
|
|
243
|
+
* @param view - IView instance created by createInlineView()
|
|
244
|
+
*/
|
|
245
|
+
registerComponentView(view: IView): void;
|
|
246
|
+
/**
|
|
247
|
+
* 注销组件模式View
|
|
248
|
+
*
|
|
249
|
+
* Called when SDK View component unmounts (via useLayoutEffect cleanup)
|
|
250
|
+
*
|
|
251
|
+
* @param viewId - View ID to unregister
|
|
252
|
+
*/
|
|
253
|
+
unregisterComponentView(viewId: ViewID): void;
|
|
254
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SPI Layer - IViewTree Interface
|
|
3
|
+
*
|
|
4
|
+
* Defines the contract for View tree management.
|
|
5
|
+
* SDK should depend on this interface, not the Engine implementation.
|
|
6
|
+
*
|
|
7
|
+
* [B1 FIX] Extracted from engine/view/types.ts to SPI layer
|
|
8
|
+
* for proper dependency inversion.
|
|
9
|
+
*
|
|
10
|
+
* [RFC-011] Extended with ViewLink and Mountable methods.
|
|
11
|
+
*/
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=view-tree.interface.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"view-tree.interface.js","sourceRoot":"","sources":["../../../src/spi/app/view-tree.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SPI Layer - IView Interface
|
|
3
|
+
*
|
|
4
|
+
* [H1 FIX] 从 Engine 层提取的 View 接口定义。
|
|
5
|
+
*
|
|
6
|
+
* View 是 App 内部的 UI 组件单元。每个 View:
|
|
7
|
+
* - 有自己的数据状态
|
|
8
|
+
* - 有自己的操作集合 (operations)
|
|
9
|
+
* - 可以被 mount/dismount
|
|
10
|
+
* - 处理针对自己的操作
|
|
11
|
+
*
|
|
12
|
+
* @module @aotui/runtime/spi
|
|
13
|
+
*/
|
|
14
|
+
import type { OperationID, ViewID } from '../core/types.js';
|
|
15
|
+
import type { OperationResult } from '../core/operations.js';
|
|
16
|
+
import type { IViewContextCore } from './view-context-core.interface.js';
|
|
17
|
+
/**
|
|
18
|
+
* Level 2: View 运行上下文 (Full Contract)
|
|
19
|
+
*
|
|
20
|
+
* SDK 内部使用的完整上下文,包含生命周期管理能力。
|
|
21
|
+
* 继承自 Core 契约。
|
|
22
|
+
*/
|
|
23
|
+
export interface IViewContext extends IViewContextCore {
|
|
24
|
+
/**
|
|
25
|
+
* [Option D] 标记 View 为 dirty
|
|
26
|
+
*
|
|
27
|
+
* Runtime 会在收到 DOM_UPDATE 后检查 dirty 标记,才实际发送 UpdateSignal。
|
|
28
|
+
*/
|
|
29
|
+
markDirty(): void;
|
|
30
|
+
/**
|
|
31
|
+
* 请求 mount 子 View
|
|
32
|
+
*/
|
|
33
|
+
mountChildView(viewId: ViewID): Promise<void>;
|
|
34
|
+
/**
|
|
35
|
+
* 请求 dismount 子 View
|
|
36
|
+
*/
|
|
37
|
+
dismountChildView(viewId: ViewID): Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* Register a dynamic child view
|
|
40
|
+
*
|
|
41
|
+
* Called by `<ChildView>` component to register a dynamically created view.
|
|
42
|
+
* The system assigns a sequential ViewID (view_0, view_1, ...).
|
|
43
|
+
*
|
|
44
|
+
* @param view - The IView instance to register
|
|
45
|
+
* @returns The assigned ViewID
|
|
46
|
+
*/
|
|
47
|
+
registerChildView(view: IView): ViewID;
|
|
48
|
+
/**
|
|
49
|
+
* Unregister a dynamic child view
|
|
50
|
+
*
|
|
51
|
+
* Called when `<ChildView>` unmounts. Dismounts and removes the view.
|
|
52
|
+
*
|
|
53
|
+
* @param viewId - The ViewID to unregister
|
|
54
|
+
*/
|
|
55
|
+
unregisterChildView(viewId: ViewID): void;
|
|
56
|
+
}
|
|
57
|
+
import type { IViewContextMountable } from './view-context-ext.interface.js';
|
|
58
|
+
/**
|
|
59
|
+
* Level 2+3: Full ViewContext (Composite Type)
|
|
60
|
+
*
|
|
61
|
+
* SDK 内部使用的完整上下文,包含 Core + Full + Mountable 所有能力。
|
|
62
|
+
* 用于 AppRuntime 创建的实际 context 对象。
|
|
63
|
+
*/
|
|
64
|
+
export type IViewContextFull = IViewContext & IViewContextMountable;
|
|
65
|
+
/**
|
|
66
|
+
* AOTUI View 接口
|
|
67
|
+
*
|
|
68
|
+
* View 是 App 内部的 UI 组件单元。每个 View:
|
|
69
|
+
* - 有自己的数据状态
|
|
70
|
+
* - 有自己的操作集合 (operations)
|
|
71
|
+
* - 可以被 mount/dismount
|
|
72
|
+
* - 处理针对自己的操作
|
|
73
|
+
*/
|
|
74
|
+
export interface IView {
|
|
75
|
+
/** View 唯一标识符 (developer-specified in component mode) */
|
|
76
|
+
readonly id: ViewID;
|
|
77
|
+
/** View 显示名称 (开发者定义的语义名称) */
|
|
78
|
+
readonly name?: string;
|
|
79
|
+
/**
|
|
80
|
+
* View 的显示名称,用于调试、日志和开发工具。
|
|
81
|
+
* @optional
|
|
82
|
+
*/
|
|
83
|
+
readonly displayName?: string;
|
|
84
|
+
/**
|
|
85
|
+
* View 类型 (用于Tool聚合)
|
|
86
|
+
*
|
|
87
|
+
* Multiple views can share the same type.
|
|
88
|
+
* Used for grouping tools by view type in Snapshot.
|
|
89
|
+
*
|
|
90
|
+
* @optional
|
|
91
|
+
* @example "FileDetail", "UserProfile", "Workspace"
|
|
92
|
+
*/
|
|
93
|
+
readonly type?: string;
|
|
94
|
+
/**
|
|
95
|
+
* 由 Runtime 调用设置 ID (可选,框架内部使用)
|
|
96
|
+
*/
|
|
97
|
+
setId?(newId: ViewID): void;
|
|
98
|
+
/**
|
|
99
|
+
* View 被 mount 时调用
|
|
100
|
+
*
|
|
101
|
+
* @param context - View 运行上下文
|
|
102
|
+
*/
|
|
103
|
+
onMount(context: IViewContext): Promise<void>;
|
|
104
|
+
/**
|
|
105
|
+
* View 被 dismount 时调用
|
|
106
|
+
*/
|
|
107
|
+
onDismount(): Promise<void>;
|
|
108
|
+
/**
|
|
109
|
+
* 处理针对此 View 的操作
|
|
110
|
+
*
|
|
111
|
+
* @param operation - 操作名称 (如 'send_message')
|
|
112
|
+
* @param args - 操作参数
|
|
113
|
+
* @returns 操作执行结果
|
|
114
|
+
*/
|
|
115
|
+
onOperation(operation: OperationID, args: Record<string, unknown>): Promise<OperationResult>;
|
|
116
|
+
/**
|
|
117
|
+
* 渲染 View 内容
|
|
118
|
+
*
|
|
119
|
+
* 返回 TUI Markdown 格式的内容
|
|
120
|
+
*/
|
|
121
|
+
render(): string;
|
|
122
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SPI Layer - IView Interface
|
|
3
|
+
*
|
|
4
|
+
* [H1 FIX] 从 Engine 层提取的 View 接口定义。
|
|
5
|
+
*
|
|
6
|
+
* View 是 App 内部的 UI 组件单元。每个 View:
|
|
7
|
+
* - 有自己的数据状态
|
|
8
|
+
* - 有自己的操作集合 (operations)
|
|
9
|
+
* - 可以被 mount/dismount
|
|
10
|
+
* - 处理针对自己的操作
|
|
11
|
+
*
|
|
12
|
+
* @module @aotui/runtime/spi
|
|
13
|
+
*/
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=view.interface.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"view.interface.js","sourceRoot":"","sources":["../../../src/spi/app/view.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IBridge - Agent 与 Runtime 的 I/O 边界
|
|
3
|
+
*
|
|
4
|
+
* 这是 Agent(或 AgentDriver)与 AOTUI Runtime 交互的唯一接口。
|
|
5
|
+
*
|
|
6
|
+
* 设计原则:
|
|
7
|
+
* - 完全解耦:不暴露 Kernel 内部类型(如 SnapshotID)
|
|
8
|
+
* - 可替换:支持 Mock、HTTP、WebSocket 等多种实现
|
|
9
|
+
* - 简单:只提供 Agent 真正需要的能力
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* // 获取快照
|
|
14
|
+
* const snapshot = await bridge.getSnapshot();
|
|
15
|
+
* console.log(snapshot.markup);
|
|
16
|
+
*
|
|
17
|
+
* // 执行操作
|
|
18
|
+
* const results = await bridge.execute(
|
|
19
|
+
* [{ name: 'send_message', args: { content: 'Hello' }, context: {} }],
|
|
20
|
+
* snapshot.id
|
|
21
|
+
* );
|
|
22
|
+
*
|
|
23
|
+
* // 订阅更新
|
|
24
|
+
* const unsubscribe = bridge.subscribe(() => {
|
|
25
|
+
* console.log('Desktop updated');
|
|
26
|
+
* });
|
|
27
|
+
* ```
|
|
28
|
+
*
|
|
29
|
+
* @module @aotui/runtime/spi/bridge
|
|
30
|
+
*/
|
|
31
|
+
import type { Operation, OperationResult } from '../core/operations.js';
|
|
32
|
+
import type { SnapshotID } from '../core/types.js';
|
|
33
|
+
import type { LLMOutputEventMeta } from '../core/llm-output.js';
|
|
34
|
+
/**
|
|
35
|
+
* Agent 可见的快照
|
|
36
|
+
*
|
|
37
|
+
* 与内部的 CachedSnapshot 不同,这是面向外部消费者的简化视图。
|
|
38
|
+
* 不暴露 Runtime 内部类型,只提供 Agent 需要的信息。
|
|
39
|
+
*/
|
|
40
|
+
export interface BridgeSnapshot {
|
|
41
|
+
/** 快照唯一标识(用于 execute 时绑定操作) */
|
|
42
|
+
readonly id: string;
|
|
43
|
+
/** TUI Markdown 内容 */
|
|
44
|
+
readonly markup: string;
|
|
45
|
+
/** 快照生成时间戳 (ms) */
|
|
46
|
+
readonly timestamp: number;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* IBridge - Agent 与 Runtime 的 I/O 边界
|
|
50
|
+
*
|
|
51
|
+
* 职责:
|
|
52
|
+
* 1. 获取/释放 Snapshot(Agent 视图)
|
|
53
|
+
* 2. 执行 Operations
|
|
54
|
+
* 3. 订阅更新信号
|
|
55
|
+
*
|
|
56
|
+
* 实现者:
|
|
57
|
+
* - Bridge(标准实现,依赖 IKernel)
|
|
58
|
+
* - MockBridge(测试用)
|
|
59
|
+
* - HttpBridge(远程调用,未来扩展)
|
|
60
|
+
*/
|
|
61
|
+
export interface IBridge {
|
|
62
|
+
/**
|
|
63
|
+
* 获取当前 Desktop 的最新快照
|
|
64
|
+
*
|
|
65
|
+
* 每次调用都会生成新的快照。调用者应在操作完成后
|
|
66
|
+
* 调用 releaseSnapshot() 释放资源(可选)。
|
|
67
|
+
*
|
|
68
|
+
* @returns 最新的 Desktop 快照
|
|
69
|
+
*/
|
|
70
|
+
getSnapshot(): Promise<BridgeSnapshot>;
|
|
71
|
+
/**
|
|
72
|
+
* 释放快照资源
|
|
73
|
+
*
|
|
74
|
+
* 可选方法。如果不调用,快照将在 TTL 后自动过期。
|
|
75
|
+
* 显式释放可以更快回收内存。
|
|
76
|
+
*
|
|
77
|
+
* @param snapshotId - 要释放的快照 ID
|
|
78
|
+
*/
|
|
79
|
+
releaseSnapshot?(snapshotId: string): void;
|
|
80
|
+
/**
|
|
81
|
+
* 执行一批操作
|
|
82
|
+
*
|
|
83
|
+
* 所有操作绑定到同一个 snapshotId,保证时间安全。
|
|
84
|
+
* 当 Agent 执行操作时调用此方法。
|
|
85
|
+
*
|
|
86
|
+
* @param operations - 要执行的操作列表
|
|
87
|
+
* @param snapshotId - 基于哪个快照执行
|
|
88
|
+
*/
|
|
89
|
+
executeOperations(operations: Operation[], snapshotId: SnapshotID): Promise<OperationResult[]>;
|
|
90
|
+
/**
|
|
91
|
+
* 推送 LLM 文本到 Runtime (RFC-011)
|
|
92
|
+
*
|
|
93
|
+
* [RFC-020] 支持结构化格式,包含 reasoning 和 content
|
|
94
|
+
* 用于将 LLM 的思考过程或回复文本实时推送到 Desktop。
|
|
95
|
+
* 可选方法 - 老版本 Bridge 实现不受影响。
|
|
96
|
+
*
|
|
97
|
+
* @param payload - 结构化内容 { reasoning?: 思考过程, content?: 最终回复 }
|
|
98
|
+
* @param type - 事件类型 (complete=完整消息, chunk=流式片段预留)
|
|
99
|
+
* @param meta - 可选元数据 (model, role)
|
|
100
|
+
* @since RFC-011, RFC-020
|
|
101
|
+
*/
|
|
102
|
+
pushLLMOutput?(payload: {
|
|
103
|
+
reasoning?: string;
|
|
104
|
+
content?: string;
|
|
105
|
+
}, type: 'complete', meta?: LLMOutputEventMeta): void;
|
|
106
|
+
/**
|
|
107
|
+
* 订阅 Desktop 状态变化
|
|
108
|
+
*
|
|
109
|
+
* 当 Desktop 中的任何 App 触发 UpdateSignal 时,
|
|
110
|
+
* 注册的 listener 会被调用。
|
|
111
|
+
*
|
|
112
|
+
* 典型用法:收到更新后重新获取快照。
|
|
113
|
+
*
|
|
114
|
+
* @param listener - 状态变化回调(无参数,调用者应自行获取新快照)
|
|
115
|
+
* @returns 取消订阅函数
|
|
116
|
+
*/
|
|
117
|
+
subscribe(listener: () => void): () => void;
|
|
118
|
+
}
|