@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,208 @@
|
|
|
1
|
+
import type { IDesktop, DesktopID, AppID, ViewID, UpdateSignal, AppState, DesktopStatus, OperationPayload, IAppHostService, ISignalService, ILLMOutputChannelService, IRuntimeContext } from '../../spi/index.js';
|
|
2
|
+
import { SignalBus, type SignalOutputStream } from './signal-bus.js';
|
|
3
|
+
import { DesktopLogger, type LogEntry } from './desktop-logger.js';
|
|
4
|
+
import { AppManager, type InstalledApp } from '../app/index.js';
|
|
5
|
+
import { ViewManager } from '../view/index.js';
|
|
6
|
+
import { RuntimeConfig } from '../../spi/config/index.js';
|
|
7
|
+
export { SignalOutputStream } from './signal-bus.js';
|
|
8
|
+
export { LogEntry } from './desktop-logger.js';
|
|
9
|
+
export { InstalledApp } from '../app/index.js';
|
|
10
|
+
/**
|
|
11
|
+
* Desktop 构造参数
|
|
12
|
+
*
|
|
13
|
+
* [Option B] 支持新的 Service 接口注入
|
|
14
|
+
*/
|
|
15
|
+
export interface DesktopOptions {
|
|
16
|
+
/** 使用外部 SignalBus (默认创建内部实例) - 向后兼容 */
|
|
17
|
+
signalBus?: SignalBus;
|
|
18
|
+
/** 使用外部 DesktopLogger (默认创建内部实例) */
|
|
19
|
+
logger?: DesktopLogger;
|
|
20
|
+
/** 使用外部 AppManager (默认创建内部实例) - 向后兼容 */
|
|
21
|
+
appManager?: AppManager;
|
|
22
|
+
/** 使用外部 ViewManager (默认创建内部实例) */
|
|
23
|
+
viewManager?: ViewManager;
|
|
24
|
+
/** [Option B] 使用外部 IAppHostService */
|
|
25
|
+
appHostService?: IAppHostService;
|
|
26
|
+
/** [Option B] 使用外部 ISignalService */
|
|
27
|
+
signalService?: ISignalService;
|
|
28
|
+
runtimeConfig?: RuntimeConfig;
|
|
29
|
+
/** 使用外部 ILLMOutputChannelService */
|
|
30
|
+
llmOutputChannelService?: ILLMOutputChannelService;
|
|
31
|
+
context?: IRuntimeContext;
|
|
32
|
+
}
|
|
33
|
+
export declare class Desktop implements IDesktop {
|
|
34
|
+
readonly id: DesktopID;
|
|
35
|
+
readonly createdAt: number;
|
|
36
|
+
readonly context?: IRuntimeContext;
|
|
37
|
+
private _status;
|
|
38
|
+
private _disposed;
|
|
39
|
+
private _isDraining;
|
|
40
|
+
private signalBus;
|
|
41
|
+
private logger;
|
|
42
|
+
private appManager;
|
|
43
|
+
private viewManager;
|
|
44
|
+
private appHostService;
|
|
45
|
+
private signalService;
|
|
46
|
+
private config;
|
|
47
|
+
private llmOutputChannel;
|
|
48
|
+
constructor(id?: DesktopID, options?: DesktopOptions);
|
|
49
|
+
get status(): DesktopStatus;
|
|
50
|
+
get output(): SignalOutputStream;
|
|
51
|
+
getLLMOutputChannel(): ILLMOutputChannelService;
|
|
52
|
+
broadcastLLMOutput(payload: {
|
|
53
|
+
reasoning?: string;
|
|
54
|
+
content?: string;
|
|
55
|
+
}, type: 'complete', meta?: {
|
|
56
|
+
model?: string;
|
|
57
|
+
providerId?: string;
|
|
58
|
+
modelId?: string;
|
|
59
|
+
usage?: {
|
|
60
|
+
promptTokens: number;
|
|
61
|
+
completionTokens: number;
|
|
62
|
+
totalTokens: number;
|
|
63
|
+
};
|
|
64
|
+
}): void;
|
|
65
|
+
openApp(appId: AppID): Promise<void>;
|
|
66
|
+
closeApp(appId: AppID): Promise<void>;
|
|
67
|
+
collapseApp(appId: AppID): Promise<void>;
|
|
68
|
+
showApp(appId: AppID): Promise<void>;
|
|
69
|
+
dismountView(appId: AppID, viewId: ViewID): Promise<void>;
|
|
70
|
+
hideView(appId: AppID, viewId: ViewID): Promise<void>;
|
|
71
|
+
showView(appId: AppID, viewId: ViewID): Promise<void>;
|
|
72
|
+
/**
|
|
73
|
+
* [RFC-006] Mount view via ViewLink
|
|
74
|
+
*
|
|
75
|
+
* Called when Agent uses V2 mount API: mount(parent_view, link_id)
|
|
76
|
+
*/
|
|
77
|
+
mountViewByLink(appId: AppID, parentViewId: ViewID, linkId: string): Promise<void>;
|
|
78
|
+
/**
|
|
79
|
+
* Get Window object (for ViewManager)
|
|
80
|
+
*/
|
|
81
|
+
/**
|
|
82
|
+
* [Worker-Only] Install Dynamic Worker App
|
|
83
|
+
*
|
|
84
|
+
* App runs in a dedicated Worker Thread via IPC.
|
|
85
|
+
*/
|
|
86
|
+
installDynamicWorkerApp(appModulePath: string, options?: {
|
|
87
|
+
workerScriptPath?: string;
|
|
88
|
+
appId?: string;
|
|
89
|
+
name?: string;
|
|
90
|
+
/** [RFC-013] App description for Agent */
|
|
91
|
+
description?: string;
|
|
92
|
+
/** App 是什么 */
|
|
93
|
+
whatItIs?: string;
|
|
94
|
+
/** 什么时候用 */
|
|
95
|
+
whenToUse?: string;
|
|
96
|
+
config?: import('../../spi/app/app-config.interface.js').AppLaunchConfig;
|
|
97
|
+
/** [RFC-014] App Role */
|
|
98
|
+
promptRole?: 'user' | 'assistant';
|
|
99
|
+
}): Promise<string>;
|
|
100
|
+
/**
|
|
101
|
+
* [RFC-014] 注册待启动 App (懒加载)
|
|
102
|
+
*/
|
|
103
|
+
registerPendingApp(options: {
|
|
104
|
+
appId?: string;
|
|
105
|
+
name?: string;
|
|
106
|
+
description?: string;
|
|
107
|
+
whatItIs?: string;
|
|
108
|
+
whenToUse?: string;
|
|
109
|
+
modulePath: string;
|
|
110
|
+
workerScriptPath?: string;
|
|
111
|
+
/** [RFC-014] App Role */
|
|
112
|
+
promptRole?: 'user' | 'assistant';
|
|
113
|
+
}): Promise<string>;
|
|
114
|
+
/**
|
|
115
|
+
* Get Snapshot Fragments from all Apps
|
|
116
|
+
*
|
|
117
|
+
* When Worker-Side Transformation is enabled, Worker executes Transformer directly.
|
|
118
|
+
* This method aggregates cached Markdown + IndexMap + ViewTree from all workers.
|
|
119
|
+
*
|
|
120
|
+
* [RFC-007] Added viewTree for Application View Tree section
|
|
121
|
+
*
|
|
122
|
+
* @returns Snapshot Fragments from all apps, or empty array
|
|
123
|
+
*/
|
|
124
|
+
getSnapshotFragments(): {
|
|
125
|
+
appId: AppID;
|
|
126
|
+
markup: string;
|
|
127
|
+
indexMap: Record<string, unknown>;
|
|
128
|
+
views?: Array<{
|
|
129
|
+
viewId: ViewID;
|
|
130
|
+
viewType: string;
|
|
131
|
+
viewName?: string;
|
|
132
|
+
markup: string;
|
|
133
|
+
timestamp: number;
|
|
134
|
+
}>;
|
|
135
|
+
viewTree?: string;
|
|
136
|
+
timestamp?: number;
|
|
137
|
+
}[];
|
|
138
|
+
/**
|
|
139
|
+
* 获取 App 信息
|
|
140
|
+
* @param appId - App ID
|
|
141
|
+
* @returns App 信息 (name, etc.) 或 undefined
|
|
142
|
+
*/
|
|
143
|
+
getAppInfo(appId: AppID): {
|
|
144
|
+
name?: string;
|
|
145
|
+
} | undefined;
|
|
146
|
+
/**
|
|
147
|
+
* 暂停 Desktop
|
|
148
|
+
* 会调用所有动态 App 的 onPause()
|
|
149
|
+
*/
|
|
150
|
+
suspend(): Promise<void>;
|
|
151
|
+
/**
|
|
152
|
+
* 恢复 Desktop
|
|
153
|
+
* 会调用所有动态 App 的 onResume()
|
|
154
|
+
*/
|
|
155
|
+
resume(): Promise<void>;
|
|
156
|
+
getAppStates(): AppState[];
|
|
157
|
+
/**
|
|
158
|
+
* 获取已安装应用列表 (用于 SnapshotBuilder)
|
|
159
|
+
*/
|
|
160
|
+
getInstalledApps(): InstalledApp[];
|
|
161
|
+
/**
|
|
162
|
+
* Get System Logs (for <desktop> area)
|
|
163
|
+
*/
|
|
164
|
+
getSystemLogs(): LogEntry[];
|
|
165
|
+
/**
|
|
166
|
+
* Get App Operation Logs (for <application> <info> area)
|
|
167
|
+
*/
|
|
168
|
+
getAppOperationLogs(appId: AppID): LogEntry[];
|
|
169
|
+
/**
|
|
170
|
+
* Log System Message
|
|
171
|
+
*/
|
|
172
|
+
logSystem(message: string, level?: 'info' | 'warn' | 'error'): void;
|
|
173
|
+
/**
|
|
174
|
+
* Log App Operation
|
|
175
|
+
*/
|
|
176
|
+
logAppOperation(appId: AppID, message: string, level?: 'info' | 'warn' | 'error'): void;
|
|
177
|
+
/**
|
|
178
|
+
* 获取动态 App ID 列表(用于序列化恢复)
|
|
179
|
+
*/
|
|
180
|
+
getDynamicAppIds(): AppID[];
|
|
181
|
+
/**
|
|
182
|
+
* [RFC-014] 等待所有 App 关闭完成
|
|
183
|
+
*
|
|
184
|
+
* 关闭所有 App 并等待 Worker 清理。
|
|
185
|
+
* 调用后 Desktop 进入 draining 状态。
|
|
186
|
+
*/
|
|
187
|
+
drain(): Promise<void>;
|
|
188
|
+
/**
|
|
189
|
+
* [RFC-015] Delete Desktop
|
|
190
|
+
*
|
|
191
|
+
* 1. 触发 App onDelete 清理数据
|
|
192
|
+
* 2. 调用 drain 关闭 Worker
|
|
193
|
+
* 3. 清理 Desktop 资源
|
|
194
|
+
*/
|
|
195
|
+
delete(): Promise<void>;
|
|
196
|
+
dispose(): Promise<void>;
|
|
197
|
+
/**
|
|
198
|
+
* Dispatch Operation to App Container
|
|
199
|
+
*
|
|
200
|
+
* Desktop is responsible for converting Operation Payload to DOM Events (or IPC messages)
|
|
201
|
+
* and sending them to the App.
|
|
202
|
+
*
|
|
203
|
+
* [Worker-Only] For WorkerSandbox, use IPC instead of CustomEvent
|
|
204
|
+
* [P0-1 FIX] Now returns the actual OperationResult from the Worker
|
|
205
|
+
*/
|
|
206
|
+
dispatchOperation(appId: AppID, payload: OperationPayload): Promise<import('../../spi/index.js').OperationResult>;
|
|
207
|
+
emitSignal(reason: UpdateSignal['reason']): void;
|
|
208
|
+
}
|
|
@@ -0,0 +1,351 @@
|
|
|
1
|
+
import { createDesktopId, createSnapshotId, createOperationId } from '../../spi/index.js';
|
|
2
|
+
import { AOTUIError, failedResult } from '../../spi/core/errors.js';
|
|
3
|
+
import { SignalBus, createSignalOutputStream } from './signal-bus.js';
|
|
4
|
+
import { DesktopLogger } from './desktop-logger.js';
|
|
5
|
+
import { AppManager } from '../app/index.js';
|
|
6
|
+
import { ViewManager } from '../view/index.js';
|
|
7
|
+
import { LLMOutputChannelService } from './llm-output-channel.js';
|
|
8
|
+
import { RUNTIME_DEFAULTS } from '../../spi/config/index.js';
|
|
9
|
+
// Desktop now explicitly implements IDesktopDOM for type safety
|
|
10
|
+
export class Desktop {
|
|
11
|
+
id;
|
|
12
|
+
createdAt;
|
|
13
|
+
// [RFC-026] Runtime Context
|
|
14
|
+
context;
|
|
15
|
+
_status = 'active';
|
|
16
|
+
_disposed = false;
|
|
17
|
+
_isDraining = false; // [RFC-014] Draining 状态标志
|
|
18
|
+
// Use injected SignalBus or create internal instance
|
|
19
|
+
signalBus;
|
|
20
|
+
// Use injected DesktopLogger or create internal instance
|
|
21
|
+
logger;
|
|
22
|
+
// Use injected AppManager or create internal instance
|
|
23
|
+
appManager;
|
|
24
|
+
// Use injected ViewManager or create internal instance
|
|
25
|
+
viewManager;
|
|
26
|
+
// [Option B] New Service interfaces
|
|
27
|
+
appHostService = null;
|
|
28
|
+
signalService = null;
|
|
29
|
+
config;
|
|
30
|
+
// [RFC-011] LLM Output Channel Service
|
|
31
|
+
llmOutputChannel;
|
|
32
|
+
constructor(id, options) {
|
|
33
|
+
this.id = id ?? createDesktopId();
|
|
34
|
+
this.createdAt = Date.now();
|
|
35
|
+
this.config = options?.runtimeConfig ?? RUNTIME_DEFAULTS;
|
|
36
|
+
this.context = options?.context;
|
|
37
|
+
// Desktop is Headless (No Mirror DOM)
|
|
38
|
+
// [Option B] 新 Service 接口注入
|
|
39
|
+
this.appHostService = options?.appHostService ?? null;
|
|
40
|
+
this.signalService = options?.signalService ?? null;
|
|
41
|
+
// 向后兼容: 使用 SignalBus 或从 SignalService 获取
|
|
42
|
+
if (options?.signalBus) {
|
|
43
|
+
this.signalBus = options.signalBus;
|
|
44
|
+
}
|
|
45
|
+
else if (this.signalService && this.signalService.getBus) {
|
|
46
|
+
this.signalBus = this.signalService.getBus();
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
this.signalBus = new SignalBus();
|
|
50
|
+
}
|
|
51
|
+
this.logger = options?.logger || new DesktopLogger({
|
|
52
|
+
maxSystemLogs: this.config.logger.maxSystemLogs,
|
|
53
|
+
maxAppLogs: this.config.logger.maxAppLogs
|
|
54
|
+
});
|
|
55
|
+
this.appManager = options?.appManager || new AppManager(this);
|
|
56
|
+
this.viewManager = options?.viewManager || new ViewManager();
|
|
57
|
+
// [RFC-011] LLM Output Channel Service
|
|
58
|
+
this.llmOutputChannel = options?.llmOutputChannelService ?? new LLMOutputChannelService();
|
|
59
|
+
this.logSystem('Desktop initialized.');
|
|
60
|
+
if (this.context) {
|
|
61
|
+
this.logSystem(`Context injected: ${JSON.stringify(Object.keys(this.context.env))}`);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
get status() {
|
|
65
|
+
return this._status;
|
|
66
|
+
}
|
|
67
|
+
// Delegate to SignalBus
|
|
68
|
+
get output() {
|
|
69
|
+
return createSignalOutputStream(this.signalBus, this.id);
|
|
70
|
+
}
|
|
71
|
+
// [RFC-011] Expose LLM Output Channel for Bridge access
|
|
72
|
+
getLLMOutputChannel() {
|
|
73
|
+
return this.llmOutputChannel;
|
|
74
|
+
}
|
|
75
|
+
// [RFC-011] Broadcast LLM text to all Workers
|
|
76
|
+
// [RFC-020] Now accepts structured payload
|
|
77
|
+
broadcastLLMOutput(payload, type, meta) {
|
|
78
|
+
this.appManager.broadcastLLMOutput(payload, type, meta);
|
|
79
|
+
}
|
|
80
|
+
// --- System Commands (App) ---
|
|
81
|
+
async openApp(appId) {
|
|
82
|
+
return this.appManager.openApp(appId);
|
|
83
|
+
}
|
|
84
|
+
async closeApp(appId) {
|
|
85
|
+
return this.appManager.closeApp(appId);
|
|
86
|
+
}
|
|
87
|
+
async collapseApp(appId) {
|
|
88
|
+
return this.appManager.collapseApp(appId);
|
|
89
|
+
}
|
|
90
|
+
async showApp(appId) {
|
|
91
|
+
return this.appManager.showApp(appId);
|
|
92
|
+
}
|
|
93
|
+
// --- System Commands (View) ---
|
|
94
|
+
// Delegate to ViewManager
|
|
95
|
+
async dismountView(appId, viewId) {
|
|
96
|
+
// [Worker-Only] Use IPC for Worker Apps
|
|
97
|
+
const sandbox = this.appManager.getWorkerSandbox(appId);
|
|
98
|
+
if (sandbox) {
|
|
99
|
+
await sandbox.dismountView(viewId);
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
await this.viewManager.dismount(appId, viewId);
|
|
103
|
+
}
|
|
104
|
+
this.emitSignal('dom_mutation'); // Notify after view state change
|
|
105
|
+
}
|
|
106
|
+
async hideView(appId, viewId) {
|
|
107
|
+
await this.viewManager.hide(appId, viewId);
|
|
108
|
+
this.emitSignal('dom_mutation'); // Notify after view state change
|
|
109
|
+
}
|
|
110
|
+
async showView(appId, viewId) {
|
|
111
|
+
await this.viewManager.show(appId, viewId);
|
|
112
|
+
this.emitSignal('dom_mutation'); // Notify after view state change
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* [RFC-006] Mount view via ViewLink
|
|
116
|
+
*
|
|
117
|
+
* Called when Agent uses V2 mount API: mount(parent_view, link_id)
|
|
118
|
+
*/
|
|
119
|
+
async mountViewByLink(appId, parentViewId, linkId) {
|
|
120
|
+
// [Worker-Only] Use IPC for Worker Apps
|
|
121
|
+
const sandbox = this.appManager.getWorkerSandbox(appId);
|
|
122
|
+
if (sandbox) {
|
|
123
|
+
await sandbox.mountViewByLink(parentViewId, linkId);
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
// Non-worker apps: delegate to ViewManager (fallback)
|
|
127
|
+
await this.viewManager.mountByLink(appId, parentViewId, linkId);
|
|
128
|
+
}
|
|
129
|
+
this.emitSignal('dom_mutation'); // Notify after view state change
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Get Window object (for ViewManager)
|
|
133
|
+
*/
|
|
134
|
+
// --- Core Methods ---
|
|
135
|
+
/**
|
|
136
|
+
* [Worker-Only] Install Dynamic Worker App
|
|
137
|
+
*
|
|
138
|
+
* App runs in a dedicated Worker Thread via IPC.
|
|
139
|
+
*/
|
|
140
|
+
async installDynamicWorkerApp(appModulePath, options) {
|
|
141
|
+
// [RFC-026] Merge Runtime Context into AppLaunchConfig
|
|
142
|
+
// Priority: App Specific Config > Runtime Context
|
|
143
|
+
// Note: We inject env vars from context into config.env if not present
|
|
144
|
+
let mergedConfig = options?.config;
|
|
145
|
+
if (this.context?.env) {
|
|
146
|
+
mergedConfig = mergedConfig || {};
|
|
147
|
+
// Inject all env vars from context
|
|
148
|
+
for (const [key, value] of Object.entries(this.context.env)) {
|
|
149
|
+
if (mergedConfig[key] === undefined) {
|
|
150
|
+
mergedConfig[key] = value;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
return this.appManager.install(appModulePath, {
|
|
155
|
+
workerScriptPath: options?.workerScriptPath, // Now optional, AppManager/AppWorkerHost will use default
|
|
156
|
+
appId: options?.appId,
|
|
157
|
+
name: options?.name,
|
|
158
|
+
description: options?.description, // [RFC-013]
|
|
159
|
+
whatItIs: options?.whatItIs,
|
|
160
|
+
whenToUse: options?.whenToUse,
|
|
161
|
+
config: mergedConfig, // [RFC-026] Injected Config
|
|
162
|
+
runtimeConfig: this.config, // [RFC-005] Pass Runtime Config
|
|
163
|
+
promptRole: options?.promptRole
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* [RFC-014] 注册待启动 App (懒加载)
|
|
168
|
+
*/
|
|
169
|
+
async registerPendingApp(options) {
|
|
170
|
+
return this.appManager.registerPendingApp({
|
|
171
|
+
appId: options.appId,
|
|
172
|
+
name: options.name,
|
|
173
|
+
description: options.description,
|
|
174
|
+
whatItIs: options.whatItIs,
|
|
175
|
+
whenToUse: options.whenToUse,
|
|
176
|
+
modulePath: options.modulePath,
|
|
177
|
+
workerScriptPath: options.workerScriptPath,
|
|
178
|
+
promptRole: options.promptRole
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Get Snapshot Fragments from all Apps
|
|
183
|
+
*
|
|
184
|
+
* When Worker-Side Transformation is enabled, Worker executes Transformer directly.
|
|
185
|
+
* This method aggregates cached Markdown + IndexMap + ViewTree from all workers.
|
|
186
|
+
*
|
|
187
|
+
* [RFC-007] Added viewTree for Application View Tree section
|
|
188
|
+
*
|
|
189
|
+
* @returns Snapshot Fragments from all apps, or empty array
|
|
190
|
+
*/
|
|
191
|
+
getSnapshotFragments() {
|
|
192
|
+
if (this._disposed)
|
|
193
|
+
throw new AOTUIError('DESKTOP_DISPOSED', { desktopId: this.id });
|
|
194
|
+
const fragments = [];
|
|
195
|
+
for (const [appId, worker] of this.appManager.getAllWorkers()) {
|
|
196
|
+
const fragment = worker.getSnapshotFragment();
|
|
197
|
+
if (fragment) {
|
|
198
|
+
fragments.push({
|
|
199
|
+
appId,
|
|
200
|
+
markup: fragment.markup,
|
|
201
|
+
indexMap: fragment.indexMap,
|
|
202
|
+
views: fragment.views,
|
|
203
|
+
viewTree: fragment.viewTree, // [RFC-007]
|
|
204
|
+
timestamp: fragment.timestamp,
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
return fragments;
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* 获取 App 信息
|
|
212
|
+
* @param appId - App ID
|
|
213
|
+
* @returns App 信息 (name, etc.) 或 undefined
|
|
214
|
+
*/
|
|
215
|
+
getAppInfo(appId) {
|
|
216
|
+
if (this._disposed)
|
|
217
|
+
throw new AOTUIError('DESKTOP_DISPOSED', { desktopId: this.id });
|
|
218
|
+
const worker = this.appManager.getAllWorkers().get(appId);
|
|
219
|
+
if (worker) {
|
|
220
|
+
return { name: worker.name };
|
|
221
|
+
}
|
|
222
|
+
return undefined;
|
|
223
|
+
}
|
|
224
|
+
// --- Lifecycle Methods ---
|
|
225
|
+
/**
|
|
226
|
+
* 暂停 Desktop
|
|
227
|
+
* 会调用所有动态 App 的 onPause()
|
|
228
|
+
*/
|
|
229
|
+
async suspend() {
|
|
230
|
+
this._status = 'suspended';
|
|
231
|
+
this.signalBus.stopObserving(this.id);
|
|
232
|
+
await this.appManager.pauseAll();
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* 恢复 Desktop
|
|
236
|
+
* 会调用所有动态 App 的 onResume()
|
|
237
|
+
*/
|
|
238
|
+
async resume() {
|
|
239
|
+
if (this._status === 'suspended') {
|
|
240
|
+
this._status = 'active';
|
|
241
|
+
await this.appManager.resumeAll();
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
getAppStates() {
|
|
245
|
+
return this.appManager.getAppStates();
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* 获取已安装应用列表 (用于 SnapshotBuilder)
|
|
249
|
+
*/
|
|
250
|
+
getInstalledApps() {
|
|
251
|
+
return this.appManager.getInstalledApps();
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Get System Logs (for <desktop> area)
|
|
255
|
+
*/
|
|
256
|
+
getSystemLogs() {
|
|
257
|
+
return this.logger.getSystemLogs(this.id);
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Get App Operation Logs (for <application> <info> area)
|
|
261
|
+
*/
|
|
262
|
+
getAppOperationLogs(appId) {
|
|
263
|
+
return this.logger.getAppLogs(this.id, appId);
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Log System Message
|
|
267
|
+
*/
|
|
268
|
+
logSystem(message, level = 'info') {
|
|
269
|
+
this.logger.logSystem(this.id, message, level);
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Log App Operation
|
|
273
|
+
*/
|
|
274
|
+
logAppOperation(appId, message, level = 'info') {
|
|
275
|
+
this.logger.logApp(this.id, appId, message, level);
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* 获取动态 App ID 列表(用于序列化恢复)
|
|
279
|
+
*/
|
|
280
|
+
getDynamicAppIds() {
|
|
281
|
+
return this.appManager.getDynamicAppIds();
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* [RFC-014] 等待所有 App 关闭完成
|
|
285
|
+
*
|
|
286
|
+
* 关闭所有 App 并等待 Worker 清理。
|
|
287
|
+
* 调用后 Desktop 进入 draining 状态。
|
|
288
|
+
*/
|
|
289
|
+
async drain() {
|
|
290
|
+
if (this._disposed || this._isDraining)
|
|
291
|
+
return;
|
|
292
|
+
this._isDraining = true;
|
|
293
|
+
this.logSystem('Desktop draining: closing all apps...');
|
|
294
|
+
// 关闭所有 App(等待 Worker 清理)
|
|
295
|
+
await this.appManager.closeAll();
|
|
296
|
+
this.logSystem('Desktop drained: all apps closed.');
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* [RFC-015] Delete Desktop
|
|
300
|
+
*
|
|
301
|
+
* 1. 触发 App onDelete 清理数据
|
|
302
|
+
* 2. 调用 drain 关闭 Worker
|
|
303
|
+
* 3. 清理 Desktop 资源
|
|
304
|
+
*/
|
|
305
|
+
async delete() {
|
|
306
|
+
if (this._disposed)
|
|
307
|
+
return;
|
|
308
|
+
this.logSystem('Desktop deleting: cleaning up app data...');
|
|
309
|
+
// 1. 触发 App 数据清理
|
|
310
|
+
await this.appManager.deleteAll();
|
|
311
|
+
// 2. 标记为 draining (避免重复 close)
|
|
312
|
+
this._isDraining = true;
|
|
313
|
+
// 3. 销毁 Desktop
|
|
314
|
+
await this.dispose();
|
|
315
|
+
this.logSystem('Desktop deleted.');
|
|
316
|
+
}
|
|
317
|
+
async dispose() {
|
|
318
|
+
if (this._disposed)
|
|
319
|
+
return;
|
|
320
|
+
// [RFC-014] 确保 drain 过
|
|
321
|
+
if (!this._isDraining) {
|
|
322
|
+
await this.drain();
|
|
323
|
+
}
|
|
324
|
+
this._disposed = true;
|
|
325
|
+
this.signalBus.cleanup(this.id);
|
|
326
|
+
}
|
|
327
|
+
// --- Internals ---
|
|
328
|
+
/**
|
|
329
|
+
* Dispatch Operation to App Container
|
|
330
|
+
*
|
|
331
|
+
* Desktop is responsible for converting Operation Payload to DOM Events (or IPC messages)
|
|
332
|
+
* and sending them to the App.
|
|
333
|
+
*
|
|
334
|
+
* [Worker-Only] For WorkerSandbox, use IPC instead of CustomEvent
|
|
335
|
+
* [P0-1 FIX] Now returns the actual OperationResult from the Worker
|
|
336
|
+
*/
|
|
337
|
+
async dispatchOperation(appId, payload) {
|
|
338
|
+
const sandbox = this.appManager.getWorkerSandbox(appId);
|
|
339
|
+
if (!sandbox) {
|
|
340
|
+
return failedResult('APP_NOT_FOUND', { appId, desktopId: this.id });
|
|
341
|
+
}
|
|
342
|
+
// WorkerSandbox Mode: Dispatch operation via IPC
|
|
343
|
+
// [P0-1 FIX] Return the actual result from executeOperation
|
|
344
|
+
return await sandbox.executeOperation(createOperationId(payload.operation), payload.args || {}, createSnapshotId(payload.context.snapshotId || ''), payload.context.viewId);
|
|
345
|
+
}
|
|
346
|
+
// Delegate to SignalBus
|
|
347
|
+
emitSignal(reason) {
|
|
348
|
+
this.signalBus.emitSignal(this.id, reason);
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
//# sourceMappingURL=desktop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"desktop.js","sourceRoot":"","sources":["../../../src/engine/core/desktop.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core Domain
|
|
3
|
+
*
|
|
4
|
+
* 包含 Desktop 编排、信号总线及日志服务。
|
|
5
|
+
*
|
|
6
|
+
* @module @aotui/runtime/engine/core
|
|
7
|
+
*/
|
|
8
|
+
export { Desktop, type InstalledApp, type LogEntry } from './desktop.js';
|
|
9
|
+
export { DesktopManager } from './manager.js';
|
|
10
|
+
export { DesktopLogger, type DesktopLoggerOptions, type LogLevel } from './desktop-logger.js';
|
|
11
|
+
export { SignalBus, createSignalOutputStream, type SignalListener, type SignalBusOptions, type SignalOutputStream } from './signal-bus.js';
|
|
12
|
+
export { SignalServiceImpl } from './signal-service.js';
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core Domain
|
|
3
|
+
*
|
|
4
|
+
* 包含 Desktop 编排、信号总线及日志服务。
|
|
5
|
+
*
|
|
6
|
+
* @module @aotui/runtime/engine/core
|
|
7
|
+
*/
|
|
8
|
+
// ============================================================================
|
|
9
|
+
// Desktop - 核心编排
|
|
10
|
+
// ============================================================================
|
|
11
|
+
export { Desktop } from './desktop.js';
|
|
12
|
+
// ============================================================================
|
|
13
|
+
// DesktopManager - Desktop 工厂
|
|
14
|
+
// ============================================================================
|
|
15
|
+
export { DesktopManager } from './manager.js';
|
|
16
|
+
// ============================================================================
|
|
17
|
+
// DesktopLogger - 日志服务
|
|
18
|
+
// ============================================================================
|
|
19
|
+
export { DesktopLogger } from './desktop-logger.js';
|
|
20
|
+
// ============================================================================
|
|
21
|
+
// SignalBus - 信号总线
|
|
22
|
+
// ============================================================================
|
|
23
|
+
export { SignalBus, createSignalOutputStream } from './signal-bus.js';
|
|
24
|
+
// ============================================================================
|
|
25
|
+
// SignalService - ISignalService 实现 (Option B)
|
|
26
|
+
// ============================================================================
|
|
27
|
+
export { SignalServiceImpl } from './signal-service.js';
|
|
28
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/engine/core/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAC/E,OAAO,EAAE,OAAO,EAAoC,MAAM,cAAc,CAAC;AAEzE,+EAA+E;AAC/E,8BAA8B;AAC9B,+EAA+E;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,+EAA+E;AAC/E,uBAAuB;AACvB,+EAA+E;AAC/E,OAAO,EAAE,aAAa,EAA4C,MAAM,qBAAqB,CAAC;AAE9F,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAC/E,OAAO,EACH,SAAS,EACT,wBAAwB,EAI3B,MAAM,iBAAiB,CAAC;AAEzB,+EAA+E;AAC/E,+CAA+C;AAC/C,+EAA+E;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LLMOutputChannelService - LLM 文本输出通道
|
|
3
|
+
*
|
|
4
|
+
* [RFC-011] LLM Output Output Channel
|
|
5
|
+
*
|
|
6
|
+
* 管理 Desktop 级别的 LLM 文本发布订阅。
|
|
7
|
+
* 支持历史缓冲,新订阅者可获取最近 N 条消息。
|
|
8
|
+
*
|
|
9
|
+
* 职责:
|
|
10
|
+
* - 管理 per-Desktop 的订阅者
|
|
11
|
+
* - 维护历史消息缓冲 (默认 3 条)
|
|
12
|
+
* - 在 Desktop cleanup 时释放资源
|
|
13
|
+
*/
|
|
14
|
+
import type { DesktopID } from '../../spi/core/types.js';
|
|
15
|
+
import type { LLMOutputEvent, LLMOutputListener, LLMOutputEventMeta } from '../../spi/core/llm-output.js';
|
|
16
|
+
import type { ILLMOutputChannelService } from '../../spi/runtime/llm-output-channel.interface.js';
|
|
17
|
+
/**
|
|
18
|
+
* LLM 文本通道服务实现
|
|
19
|
+
*/
|
|
20
|
+
export declare class LLMOutputChannelService implements ILLMOutputChannelService {
|
|
21
|
+
private states;
|
|
22
|
+
/**
|
|
23
|
+
* 订阅 LLM 文本事件
|
|
24
|
+
*
|
|
25
|
+
* 订阅时立即推送历史消息。
|
|
26
|
+
*/
|
|
27
|
+
subscribe(desktopId: DesktopID, listener: LLMOutputListener): () => void;
|
|
28
|
+
/**
|
|
29
|
+
* 推送 LLM 文本事件
|
|
30
|
+
* [RFC-020] 支持结构化 payload { reasoning?, content? }
|
|
31
|
+
*/
|
|
32
|
+
push(desktopId: DesktopID, payload: {
|
|
33
|
+
reasoning?: string;
|
|
34
|
+
content?: string;
|
|
35
|
+
}, meta?: LLMOutputEventMeta): void;
|
|
36
|
+
/**
|
|
37
|
+
* 获取历史消息
|
|
38
|
+
*/
|
|
39
|
+
getHistory(desktopId: DesktopID): LLMOutputEvent[];
|
|
40
|
+
/**
|
|
41
|
+
* 清理 Desktop 相关资源
|
|
42
|
+
*/
|
|
43
|
+
cleanup(desktopId: DesktopID): void;
|
|
44
|
+
private getOrCreateState;
|
|
45
|
+
}
|