@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,122 @@
|
|
|
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
|
+
// ============================================================================
|
|
15
|
+
// Constants
|
|
16
|
+
// ============================================================================
|
|
17
|
+
/** 历史缓冲大小 */
|
|
18
|
+
const HISTORY_SIZE = 3;
|
|
19
|
+
// ============================================================================
|
|
20
|
+
// Service Implementation
|
|
21
|
+
// ============================================================================
|
|
22
|
+
/**
|
|
23
|
+
* LLM 文本通道服务实现
|
|
24
|
+
*/
|
|
25
|
+
export class LLMOutputChannelService {
|
|
26
|
+
states = new Map();
|
|
27
|
+
// ─────────────────────────────────────────────────────────────
|
|
28
|
+
// 订阅管理
|
|
29
|
+
// ─────────────────────────────────────────────────────────────
|
|
30
|
+
/**
|
|
31
|
+
* 订阅 LLM 文本事件
|
|
32
|
+
*
|
|
33
|
+
* 订阅时立即推送历史消息。
|
|
34
|
+
*/
|
|
35
|
+
subscribe(desktopId, listener) {
|
|
36
|
+
const state = this.getOrCreateState(desktopId);
|
|
37
|
+
state.listeners.add(listener);
|
|
38
|
+
// 立即推送历史消息到新订阅者
|
|
39
|
+
for (const event of state.history) {
|
|
40
|
+
try {
|
|
41
|
+
listener(event);
|
|
42
|
+
}
|
|
43
|
+
catch (e) {
|
|
44
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
45
|
+
console.error('[LLMOutputChannel] Error in history replay:', e);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
// 返回取消订阅函数
|
|
50
|
+
return () => {
|
|
51
|
+
state.listeners.delete(listener);
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
// ─────────────────────────────────────────────────────────────
|
|
55
|
+
// 发布
|
|
56
|
+
// ─────────────────────────────────────────────────────────────
|
|
57
|
+
/**
|
|
58
|
+
* 推送 LLM 文本事件
|
|
59
|
+
* [RFC-020] 支持结构化 payload { reasoning?, content? }
|
|
60
|
+
*/
|
|
61
|
+
push(desktopId, payload, meta) {
|
|
62
|
+
const state = this.getOrCreateState(desktopId);
|
|
63
|
+
// 构建事件
|
|
64
|
+
const event = {
|
|
65
|
+
desktopId,
|
|
66
|
+
timestamp: Date.now(),
|
|
67
|
+
type: 'complete',
|
|
68
|
+
content: payload.content,
|
|
69
|
+
reasoning: payload.reasoning,
|
|
70
|
+
meta
|
|
71
|
+
};
|
|
72
|
+
// 维护历史缓冲 (FIFO)
|
|
73
|
+
state.history.push(event);
|
|
74
|
+
if (state.history.length > HISTORY_SIZE) {
|
|
75
|
+
state.history.shift();
|
|
76
|
+
}
|
|
77
|
+
// 通知所有订阅者
|
|
78
|
+
for (const listener of state.listeners) {
|
|
79
|
+
try {
|
|
80
|
+
listener(event);
|
|
81
|
+
}
|
|
82
|
+
catch (e) {
|
|
83
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
84
|
+
console.error('[LLMOutputChannel] Error in listener:', e);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
// ─────────────────────────────────────────────────────────────
|
|
90
|
+
// 历史查询
|
|
91
|
+
// ─────────────────────────────────────────────────────────────
|
|
92
|
+
/**
|
|
93
|
+
* 获取历史消息
|
|
94
|
+
*/
|
|
95
|
+
getHistory(desktopId) {
|
|
96
|
+
return this.states.get(desktopId)?.history ?? [];
|
|
97
|
+
}
|
|
98
|
+
// ─────────────────────────────────────────────────────────────
|
|
99
|
+
// 生命周期
|
|
100
|
+
// ─────────────────────────────────────────────────────────────
|
|
101
|
+
/**
|
|
102
|
+
* 清理 Desktop 相关资源
|
|
103
|
+
*/
|
|
104
|
+
cleanup(desktopId) {
|
|
105
|
+
this.states.delete(desktopId);
|
|
106
|
+
}
|
|
107
|
+
// ─────────────────────────────────────────────────────────────
|
|
108
|
+
// 内部方法
|
|
109
|
+
// ─────────────────────────────────────────────────────────────
|
|
110
|
+
getOrCreateState(desktopId) {
|
|
111
|
+
let state = this.states.get(desktopId);
|
|
112
|
+
if (!state) {
|
|
113
|
+
state = {
|
|
114
|
+
listeners: new Set(),
|
|
115
|
+
history: []
|
|
116
|
+
};
|
|
117
|
+
this.states.set(desktopId, state);
|
|
118
|
+
}
|
|
119
|
+
return state;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=llm-output-channel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llm-output-channel.js","sourceRoot":"","sources":["../../../src/engine/core/llm-output-channel.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Engine Layer - Desktop Manager Implementation
|
|
3
|
+
*
|
|
4
|
+
* 管理 Desktop 实例的生命周期和并发控制。
|
|
5
|
+
*
|
|
6
|
+
* @module @aotui/runtime/engine/desktop-manager
|
|
7
|
+
*/
|
|
8
|
+
import type { IDesktopManager, LockInfo, DesktopID, AppID, AppState, DesktopStatus, IDesktop, IRuntimeContext } from '../../spi/index.js';
|
|
9
|
+
/**
|
|
10
|
+
* Desktop 管理器实现
|
|
11
|
+
*
|
|
12
|
+
* 封装 Desktop 的创建、存储、锁管理和生命周期控制。
|
|
13
|
+
* Kernel 通过 IDesktopManager 接口与之交互,实现依赖反转。
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* const manager = new DesktopManager();
|
|
18
|
+
* const desktopId = await manager.create();
|
|
19
|
+
* manager.acquireLock(desktopId, 'agent_1');
|
|
20
|
+
* await manager.installDynamicWorkerApp(desktopId, myApp);
|
|
21
|
+
* manager.releaseLock(desktopId, 'agent_1');
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
import { RuntimeConfig } from '../../spi/config/index.js';
|
|
25
|
+
export declare class DesktopManager implements IDesktopManager {
|
|
26
|
+
private desktops;
|
|
27
|
+
private lockService;
|
|
28
|
+
private config;
|
|
29
|
+
constructor(config?: RuntimeConfig);
|
|
30
|
+
create(desktopId?: DesktopID, context?: IRuntimeContext): Promise<DesktopID>;
|
|
31
|
+
destroy(desktopId: DesktopID): Promise<void>;
|
|
32
|
+
has(desktopId: DesktopID): boolean;
|
|
33
|
+
get(desktopId: DesktopID): IDesktop | undefined;
|
|
34
|
+
acquireLock(desktopId: DesktopID, ownerId: string): void;
|
|
35
|
+
releaseLock(desktopId: DesktopID, ownerId: string): void;
|
|
36
|
+
verifyLock(desktopId: DesktopID, ownerId: string): boolean;
|
|
37
|
+
refreshLock(desktopId: DesktopID, ownerId: string): void;
|
|
38
|
+
getLockInfo(desktopId: DesktopID): LockInfo | undefined;
|
|
39
|
+
/**
|
|
40
|
+
* [Worker-Only] 安装 App
|
|
41
|
+
*/
|
|
42
|
+
installDynamicWorkerApp(desktopId: DesktopID, appModulePath: string, options?: {
|
|
43
|
+
workerScriptPath?: string;
|
|
44
|
+
appId?: string;
|
|
45
|
+
name?: string;
|
|
46
|
+
config?: import('../../spi/app/app-config.interface.js').AppLaunchConfig;
|
|
47
|
+
}): Promise<AppID>;
|
|
48
|
+
getAppStates(desktopId: DesktopID): AppState[];
|
|
49
|
+
getDesktopInfo(desktopId: DesktopID): {
|
|
50
|
+
status: DesktopStatus;
|
|
51
|
+
createdAt: number;
|
|
52
|
+
} | undefined;
|
|
53
|
+
suspend(desktopId: DesktopID): Promise<void>;
|
|
54
|
+
resume(desktopId: DesktopID): Promise<void>;
|
|
55
|
+
/**
|
|
56
|
+
* 获取 Desktop 或抛出 E_NOT_FOUND 错误
|
|
57
|
+
*/
|
|
58
|
+
private getDesktopOrThrow;
|
|
59
|
+
}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Engine Layer - Desktop Manager Implementation
|
|
3
|
+
*
|
|
4
|
+
* 管理 Desktop 实例的生命周期和并发控制。
|
|
5
|
+
*
|
|
6
|
+
* @module @aotui/runtime/engine/desktop-manager
|
|
7
|
+
*/
|
|
8
|
+
import { AOTUIError } from '../../spi/core/errors.js';
|
|
9
|
+
import { Desktop } from './desktop.js';
|
|
10
|
+
import { InMemoryLockService } from './services/lock.service.js';
|
|
11
|
+
// ============================================================================
|
|
12
|
+
// Desktop Manager Implementation
|
|
13
|
+
// ============================================================================
|
|
14
|
+
/**
|
|
15
|
+
* Desktop 管理器实现
|
|
16
|
+
*
|
|
17
|
+
* 封装 Desktop 的创建、存储、锁管理和生命周期控制。
|
|
18
|
+
* Kernel 通过 IDesktopManager 接口与之交互,实现依赖反转。
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```typescript
|
|
22
|
+
* const manager = new DesktopManager();
|
|
23
|
+
* const desktopId = await manager.create();
|
|
24
|
+
* manager.acquireLock(desktopId, 'agent_1');
|
|
25
|
+
* await manager.installDynamicWorkerApp(desktopId, myApp);
|
|
26
|
+
* manager.releaseLock(desktopId, 'agent_1');
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
import { RUNTIME_DEFAULTS } from '../../spi/config/index.js';
|
|
30
|
+
export class DesktopManager {
|
|
31
|
+
desktops = new Map();
|
|
32
|
+
lockService;
|
|
33
|
+
config;
|
|
34
|
+
constructor(config) {
|
|
35
|
+
this.config = config ?? RUNTIME_DEFAULTS;
|
|
36
|
+
// [RFC-004] 内部服务组合: 锁管理委托给 InMemoryLockService
|
|
37
|
+
this.lockService = new InMemoryLockService((id) => this.desktops.has(id), { ttlMs: this.config.lock.ttlMs });
|
|
38
|
+
}
|
|
39
|
+
// ─────────────────────────────────────────────────────────────
|
|
40
|
+
// IDesktopRepository 实现
|
|
41
|
+
// ─────────────────────────────────────────────────────────────
|
|
42
|
+
async create(desktopId, context) {
|
|
43
|
+
const desktop = new Desktop(desktopId, { runtimeConfig: this.config, context });
|
|
44
|
+
this.desktops.set(desktop.id, desktop);
|
|
45
|
+
return desktop.id;
|
|
46
|
+
}
|
|
47
|
+
async destroy(desktopId) {
|
|
48
|
+
const desktop = this.desktops.get(desktopId);
|
|
49
|
+
if (desktop) {
|
|
50
|
+
await desktop.dispose();
|
|
51
|
+
this.desktops.delete(desktopId);
|
|
52
|
+
// [RFC-004] 清理关联的锁
|
|
53
|
+
this.lockService.clearLock(desktopId);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
has(desktopId) {
|
|
57
|
+
return this.desktops.has(desktopId);
|
|
58
|
+
}
|
|
59
|
+
get(desktopId) {
|
|
60
|
+
return this.desktops.get(desktopId);
|
|
61
|
+
}
|
|
62
|
+
// ─────────────────────────────────────────────────────────────
|
|
63
|
+
// IDesktopLockService 实现 (Delegate)
|
|
64
|
+
// ─────────────────────────────────────────────────────────────
|
|
65
|
+
acquireLock(desktopId, ownerId) {
|
|
66
|
+
this.lockService.acquireLock(desktopId, ownerId);
|
|
67
|
+
}
|
|
68
|
+
releaseLock(desktopId, ownerId) {
|
|
69
|
+
this.lockService.releaseLock(desktopId, ownerId);
|
|
70
|
+
}
|
|
71
|
+
verifyLock(desktopId, ownerId) {
|
|
72
|
+
return this.lockService.verifyLock(desktopId, ownerId);
|
|
73
|
+
}
|
|
74
|
+
refreshLock(desktopId, ownerId) {
|
|
75
|
+
this.lockService.refreshLock(desktopId, ownerId);
|
|
76
|
+
}
|
|
77
|
+
getLockInfo(desktopId) {
|
|
78
|
+
return this.lockService.getLockInfo(desktopId);
|
|
79
|
+
}
|
|
80
|
+
// ─────────────────────────────────────────────────────────────
|
|
81
|
+
// IAppInstaller 实现
|
|
82
|
+
// ─────────────────────────────────────────────────────────────
|
|
83
|
+
/**
|
|
84
|
+
* [Worker-Only] 安装 App
|
|
85
|
+
*/
|
|
86
|
+
async installDynamicWorkerApp(desktopId, appModulePath, options) {
|
|
87
|
+
const desktop = this.getDesktopOrThrow(desktopId);
|
|
88
|
+
return desktop.installDynamicWorkerApp(appModulePath, options);
|
|
89
|
+
}
|
|
90
|
+
// ─────────────────────────────────────────────────────────────
|
|
91
|
+
// IDesktopStateAccessor 实现
|
|
92
|
+
// ─────────────────────────────────────────────────────────────
|
|
93
|
+
getAppStates(desktopId) {
|
|
94
|
+
const desktop = this.desktops.get(desktopId);
|
|
95
|
+
return desktop?.getAppStates() ?? [];
|
|
96
|
+
}
|
|
97
|
+
getDesktopInfo(desktopId) {
|
|
98
|
+
const desktop = this.desktops.get(desktopId);
|
|
99
|
+
if (!desktop)
|
|
100
|
+
return undefined;
|
|
101
|
+
return {
|
|
102
|
+
status: desktop.status,
|
|
103
|
+
createdAt: desktop.createdAt
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
// ─────────────────────────────────────────────────────────────
|
|
107
|
+
// IDesktopLifecycleController 实现
|
|
108
|
+
// ─────────────────────────────────────────────────────────────
|
|
109
|
+
async suspend(desktopId) {
|
|
110
|
+
const desktop = this.getDesktopOrThrow(desktopId);
|
|
111
|
+
await desktop.suspend();
|
|
112
|
+
}
|
|
113
|
+
async resume(desktopId) {
|
|
114
|
+
const desktop = this.getDesktopOrThrow(desktopId);
|
|
115
|
+
await desktop.resume();
|
|
116
|
+
}
|
|
117
|
+
// ─────────────────────────────────────────────────────────────
|
|
118
|
+
// Internal Helpers
|
|
119
|
+
// ─────────────────────────────────────────────────────────────
|
|
120
|
+
/**
|
|
121
|
+
* 获取 Desktop 或抛出 E_NOT_FOUND 错误
|
|
122
|
+
*/
|
|
123
|
+
getDesktopOrThrow(desktopId) {
|
|
124
|
+
const desktop = this.desktops.get(desktopId);
|
|
125
|
+
if (!desktop) {
|
|
126
|
+
throw new AOTUIError('DESKTOP_NOT_FOUND', { desktopId });
|
|
127
|
+
}
|
|
128
|
+
return desktop;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/engine/core/manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Operation Log Buffer
|
|
3
|
+
*
|
|
4
|
+
* Ring buffer implementation for storing operation execution logs.
|
|
5
|
+
* Maintains separate views for system-level and per-app logs.
|
|
6
|
+
*
|
|
7
|
+
* [RFC-008] Operation Execution Optimization
|
|
8
|
+
*
|
|
9
|
+
* @module @aotui/runtime/engine/core
|
|
10
|
+
*/
|
|
11
|
+
import type { IOperationLogBuffer, OperationLogEntry, AppID } from '../../spi/index.js';
|
|
12
|
+
/**
|
|
13
|
+
* OperationLogBuffer
|
|
14
|
+
*
|
|
15
|
+
* Implements a ring buffer for operation logs with filtering capabilities.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* const buffer = new OperationLogBuffer(50);
|
|
20
|
+
* buffer.push(entry);
|
|
21
|
+
*
|
|
22
|
+
* // Get recent system logs
|
|
23
|
+
* const systemLogs = buffer.getSystemLogs(5);
|
|
24
|
+
*
|
|
25
|
+
* // Get recent app logs
|
|
26
|
+
* const appLogs = buffer.getAppLogs('app_chat' as AppID, 3);
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export declare class OperationLogBuffer implements IOperationLogBuffer {
|
|
30
|
+
private logs;
|
|
31
|
+
private readonly maxSize;
|
|
32
|
+
private logCounter;
|
|
33
|
+
/**
|
|
34
|
+
* Create a new OperationLogBuffer
|
|
35
|
+
*
|
|
36
|
+
* @param maxSize - Maximum number of logs to retain (default: 50)
|
|
37
|
+
*/
|
|
38
|
+
constructor(maxSize?: number);
|
|
39
|
+
/**
|
|
40
|
+
* Generate unique log ID
|
|
41
|
+
*/
|
|
42
|
+
private generateLogId;
|
|
43
|
+
/**
|
|
44
|
+
* Push a new log entry to the buffer
|
|
45
|
+
*
|
|
46
|
+
* Automatically assigns an ID if not provided.
|
|
47
|
+
* Implements ring buffer behavior - oldest entries are removed when full.
|
|
48
|
+
*/
|
|
49
|
+
push(entry: OperationLogEntry): void;
|
|
50
|
+
/**
|
|
51
|
+
* Get recent system-scope logs
|
|
52
|
+
*
|
|
53
|
+
* @param count - Maximum number of logs to return
|
|
54
|
+
* @returns Array of log entries, most recent last
|
|
55
|
+
*/
|
|
56
|
+
getSystemLogs(count: number): OperationLogEntry[];
|
|
57
|
+
/**
|
|
58
|
+
* Get recent logs for a specific app
|
|
59
|
+
*
|
|
60
|
+
* @param appId - The app ID to filter by
|
|
61
|
+
* @param count - Maximum number of logs to return
|
|
62
|
+
* @returns Array of log entries, most recent last
|
|
63
|
+
*/
|
|
64
|
+
getAppLogs(appId: AppID, count: number): OperationLogEntry[];
|
|
65
|
+
/**
|
|
66
|
+
* Get all logs (for debugging)
|
|
67
|
+
*
|
|
68
|
+
* @returns Copy of all log entries
|
|
69
|
+
*/
|
|
70
|
+
getAllLogs(): OperationLogEntry[];
|
|
71
|
+
/**
|
|
72
|
+
* Get the total number of logs currently stored
|
|
73
|
+
*/
|
|
74
|
+
getSize(): number;
|
|
75
|
+
/**
|
|
76
|
+
* Clear all logs
|
|
77
|
+
*/
|
|
78
|
+
clear(): void;
|
|
79
|
+
}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Operation Log Buffer
|
|
3
|
+
*
|
|
4
|
+
* Ring buffer implementation for storing operation execution logs.
|
|
5
|
+
* Maintains separate views for system-level and per-app logs.
|
|
6
|
+
*
|
|
7
|
+
* [RFC-008] Operation Execution Optimization
|
|
8
|
+
*
|
|
9
|
+
* @module @aotui/runtime/engine/core
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* OperationLogBuffer
|
|
13
|
+
*
|
|
14
|
+
* Implements a ring buffer for operation logs with filtering capabilities.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* const buffer = new OperationLogBuffer(50);
|
|
19
|
+
* buffer.push(entry);
|
|
20
|
+
*
|
|
21
|
+
* // Get recent system logs
|
|
22
|
+
* const systemLogs = buffer.getSystemLogs(5);
|
|
23
|
+
*
|
|
24
|
+
* // Get recent app logs
|
|
25
|
+
* const appLogs = buffer.getAppLogs('app_chat' as AppID, 3);
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export class OperationLogBuffer {
|
|
29
|
+
logs = [];
|
|
30
|
+
maxSize;
|
|
31
|
+
logCounter = 0;
|
|
32
|
+
/**
|
|
33
|
+
* Create a new OperationLogBuffer
|
|
34
|
+
*
|
|
35
|
+
* @param maxSize - Maximum number of logs to retain (default: 50)
|
|
36
|
+
*/
|
|
37
|
+
constructor(maxSize = 50) {
|
|
38
|
+
this.maxSize = maxSize;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Generate unique log ID
|
|
42
|
+
*/
|
|
43
|
+
generateLogId() {
|
|
44
|
+
return `log_${++this.logCounter}`;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Push a new log entry to the buffer
|
|
48
|
+
*
|
|
49
|
+
* Automatically assigns an ID if not provided.
|
|
50
|
+
* Implements ring buffer behavior - oldest entries are removed when full.
|
|
51
|
+
*/
|
|
52
|
+
push(entry) {
|
|
53
|
+
// Ensure entry has an ID
|
|
54
|
+
const entryWithId = {
|
|
55
|
+
...entry,
|
|
56
|
+
id: entry.id || this.generateLogId()
|
|
57
|
+
};
|
|
58
|
+
this.logs.push(entryWithId);
|
|
59
|
+
// Ring buffer: remove oldest when exceeding maxSize
|
|
60
|
+
if (this.logs.length > this.maxSize) {
|
|
61
|
+
this.logs.shift();
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Get recent system-scope logs
|
|
66
|
+
*
|
|
67
|
+
* @param count - Maximum number of logs to return
|
|
68
|
+
* @returns Array of log entries, most recent last
|
|
69
|
+
*/
|
|
70
|
+
getSystemLogs(count) {
|
|
71
|
+
return this.logs
|
|
72
|
+
.filter(e => e.scope === 'system')
|
|
73
|
+
.slice(-count);
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Get recent logs for a specific app
|
|
77
|
+
*
|
|
78
|
+
* @param appId - The app ID to filter by
|
|
79
|
+
* @param count - Maximum number of logs to return
|
|
80
|
+
* @returns Array of log entries, most recent last
|
|
81
|
+
*/
|
|
82
|
+
getAppLogs(appId, count) {
|
|
83
|
+
return this.logs
|
|
84
|
+
.filter(e => e.scope === 'app' && e.appId === appId)
|
|
85
|
+
.slice(-count);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Get all logs (for debugging)
|
|
89
|
+
*
|
|
90
|
+
* @returns Copy of all log entries
|
|
91
|
+
*/
|
|
92
|
+
getAllLogs() {
|
|
93
|
+
return [...this.logs];
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Get the total number of logs currently stored
|
|
97
|
+
*/
|
|
98
|
+
getSize() {
|
|
99
|
+
return this.logs.length;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Clear all logs
|
|
103
|
+
*/
|
|
104
|
+
clear() {
|
|
105
|
+
this.logs = [];
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=operation-log-buffer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operation-log-buffer.js","sourceRoot":"","sources":["../../../src/engine/core/operation-log-buffer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,kBAAkB;IACnB,IAAI,GAAwB,EAAE,CAAC;IACtB,OAAO,CAAS;IACzB,UAAU,GAAG,CAAC,CAAC;IAEvB;;;;OAIG;IACH,YAAY,UAAkB,EAAE;QAC5B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED;;OAEG;IACK,aAAa;QACjB,OAAO,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;IACtC,CAAC;IAED;;;;;OAKG;IACH,IAAI,CAAC,KAAwB;QACzB,yBAAyB;QACzB,MAAM,WAAW,GAAsB;YACnC,GAAG,KAAK;YACR,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,aAAa,EAAE;SACvC,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAE5B,oDAAoD;QACpD,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACtB,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,aAAa,CAAC,KAAa;QACvB,OAAO,IAAI,CAAC,IAAI;aACX,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC;aACjC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAED;;;;;;OAMG;IACH,UAAU,CAAC,KAAY,EAAE,KAAa;QAClC,OAAO,IAAI,CAAC,IAAI;aACX,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC;aACnD,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACH,UAAU;QACN,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,OAAO;QACH,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK;QACD,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IACnB,CAAC;CACJ"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Operation Log Formatter
|
|
3
|
+
*
|
|
4
|
+
* Generates semantic, human-readable log messages from operation entries.
|
|
5
|
+
* Follows the WHO/WHEN/WHERE/WHAT pattern for clarity.
|
|
6
|
+
*
|
|
7
|
+
* [RFC-008] Operation Execution Optimization
|
|
8
|
+
*
|
|
9
|
+
* @module @aotui/runtime/engine/core
|
|
10
|
+
*/
|
|
11
|
+
import type { OperationLogEntry, OperationLogParams } from '../../spi/index.js';
|
|
12
|
+
/**
|
|
13
|
+
* Generate a unique log entry ID
|
|
14
|
+
*/
|
|
15
|
+
export declare function generateLogId(): string;
|
|
16
|
+
/**
|
|
17
|
+
* Format an operation log entry into a semantic, human-readable string
|
|
18
|
+
*
|
|
19
|
+
* Format: `HH:MM:SS ✅/❌ [Actor] [Location] [Action] (Duration)`
|
|
20
|
+
*
|
|
21
|
+
* @param entry - The log entry to format
|
|
22
|
+
* @returns Formatted log string
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```typescript
|
|
26
|
+
* const formatted = formatOperationLog(entry);
|
|
27
|
+
* // "15:32:45 ✅ Gemini in System-Chat/ChatView sent message "Hello..." (12ms)"
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export declare function formatOperationLog(entry: OperationLogEntry): string;
|
|
31
|
+
/**
|
|
32
|
+
* Build a complete OperationLogEntry from execution parameters
|
|
33
|
+
*
|
|
34
|
+
* @param params - Operation execution parameters
|
|
35
|
+
* @returns Complete log entry with semantic description
|
|
36
|
+
*/
|
|
37
|
+
export declare function buildOperationLogEntry(params: OperationLogParams): OperationLogEntry;
|
|
38
|
+
/**
|
|
39
|
+
* Format operation logs as Markdown list for snapshot inclusion
|
|
40
|
+
*
|
|
41
|
+
* @param logs - Array of log entries
|
|
42
|
+
* @returns Markdown formatted string
|
|
43
|
+
*/
|
|
44
|
+
export declare function formatLogsAsMarkdown(logs: OperationLogEntry[]): string;
|