@ai-agent-forge/agent-forge 0.88.1 → 0.88.3
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/CHANGELOG.md +71 -0
- package/README.md +1 -1
- package/bundled-plugins/agent-loop-policy/agent-forge.json +1 -1
- package/bundled-plugins/agent-loop-policy/plugin.json +1 -1
- package/bundled-plugins/coding-tools/agent-forge.json +1 -1
- package/bundled-plugins/coding-tools/plugin.json +1 -1
- package/bundled-plugins/compaction-policy/agent-forge.json +1 -1
- package/bundled-plugins/compaction-policy/plugin.json +1 -1
- package/bundled-plugins/overflow-policy/agent-forge.json +1 -1
- package/bundled-plugins/overflow-policy/plugin.json +1 -1
- package/bundled-plugins/provider-failover/agent-forge.json +1 -1
- package/bundled-plugins/provider-failover/plugin.json +1 -1
- package/bundled-plugins/retry-policy/agent-forge.json +1 -1
- package/bundled-plugins/retry-policy/plugin.json +1 -1
- package/dist/artifacts/paged-read.d.ts +6 -1
- package/dist/artifacts/paged-read.d.ts.map +1 -1
- package/dist/artifacts/paged-read.js.map +1 -1
- package/dist/bundle/.build-manifest.json +283 -263
- package/dist/bundle/chunks/{anthropic-messages-PLAKXR73.js → anthropic-messages-3FJHRAJL.js} +2 -2
- package/dist/bundle/chunks/anthropic.js +1 -1
- package/dist/bundle/chunks/{azure-openai-responses-OUWQ2AZD.js → azure-openai-responses-GCL47IDS.js} +1 -1
- package/dist/bundle/chunks/bedrock-converse-stream.js +1 -1
- package/dist/bundle/chunks/{chunk-Z72JWUZ4.js → chunk-32YDZI4J.js} +1 -1
- package/dist/bundle/chunks/{chunk-AQLNTW2B.js → chunk-755VNWIF.js} +17 -16
- package/dist/bundle/chunks/{chunk-LZOEQITZ.js → chunk-B42Y2VME.js} +120 -104
- package/dist/bundle/chunks/{chunk-DRQDKNXA.js → chunk-BVVSHK6W.js} +1 -1
- package/dist/bundle/chunks/{chunk-6R7UI4IY.js → chunk-QDLOMKF6.js} +1 -1
- package/dist/bundle/chunks/{chunk-D3ARGZFR.js → chunk-V3ACW7VD.js} +3 -3
- package/dist/bundle/chunks/{google-generative-ai-DLII6DAT.js → google-generative-ai-6BMXWA44.js} +1 -1
- package/dist/bundle/chunks/{google-vertex-G7BZL7GM.js → google-vertex-6H7NLRTK.js} +1 -1
- package/dist/bundle/chunks/image-resize-worker.js +3 -3
- package/dist/bundle/chunks/{mistral-conversations-JXUK24ID.js → mistral-conversations-IXUHSFSJ.js} +1 -1
- package/dist/bundle/chunks/{openai-codex-responses-5GSGFIPG.js → openai-codex-responses-YHUAEVCM.js} +1 -1
- package/dist/bundle/chunks/openai-codex.js +1 -1
- package/dist/bundle/chunks/{openai-completions-EI2I6DTG.js → openai-completions-ULQCFC72.js} +1 -1
- package/dist/bundle/chunks/openai-responses-NLLAJDPS.js +2 -0
- package/dist/bundle/chunks/{openrouter-images-G4GQRUSG.js → openrouter-images-GZZQZXMS.js} +1 -1
- package/dist/bundle/chunks/openrouter.js +1 -1
- package/dist/bundle/chunks/{pi-messages-PWU2VJMR.js → pi-messages-EJTI2EJ3.js} +1 -1
- package/dist/bundle/chunks/virtual-modules-TQWEGNNZ.js +5 -0
- package/dist/bundle/cli.js +1 -1
- package/dist/bundle/client.js +1 -1
- package/dist/bundle/index.js +1 -1
- package/dist/bundle/rpc-entry.js +1 -1
- package/dist/cli/args.d.ts +0 -1
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +1 -4
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/config-selector.d.ts.map +1 -1
- package/dist/cli/config-selector.js +1 -1
- package/dist/cli/config-selector.js.map +1 -1
- package/dist/cli/experimental/cli.d.ts +3 -3
- package/dist/cli/experimental/cli.d.ts.map +1 -1
- package/dist/cli/experimental/cli.js +2 -2
- package/dist/cli/experimental/cli.js.map +1 -1
- package/dist/cli/experimental/commands/agent-forge.d.ts +15 -0
- package/dist/cli/experimental/commands/agent-forge.d.ts.map +1 -0
- package/dist/cli/experimental/commands/{pi.js → agent-forge.js} +4 -4
- package/dist/cli/experimental/commands/agent-forge.js.map +1 -0
- package/dist/cli/plugin-command.d.ts.map +1 -1
- package/dist/cli/plugin-command.js +8 -2
- package/dist/cli/plugin-command.js.map +1 -1
- package/dist/cli/startup-ui.d.ts.map +1 -1
- package/dist/cli/startup-ui.js +1 -1
- package/dist/cli/startup-ui.js.map +1 -1
- package/dist/config.d.ts +4 -4
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +7 -7
- package/dist/config.js.map +1 -1
- package/dist/core/agent-forge-manifest.d.ts +7 -0
- package/dist/core/agent-forge-manifest.d.ts.map +1 -0
- package/dist/core/{pi-manifest.js → agent-forge-manifest.js} +4 -4
- package/dist/core/agent-forge-manifest.js.map +1 -0
- package/dist/core/agent-session-compaction.d.ts +1 -1
- package/dist/core/agent-session-compaction.d.ts.map +1 -1
- package/dist/core/agent-session-compaction.js +3 -3
- package/dist/core/agent-session-compaction.js.map +1 -1
- package/dist/core/agent-session-internal.d.ts +2 -0
- package/dist/core/agent-session-internal.d.ts.map +1 -1
- package/dist/core/agent-session-internal.js.map +1 -1
- package/dist/core/agent-session-lifecycle.d.ts.map +1 -1
- package/dist/core/agent-session-lifecycle.js +12 -1
- package/dist/core/agent-session-lifecycle.js.map +1 -1
- package/dist/core/agent-session-projection.d.ts.map +1 -1
- package/dist/core/agent-session-projection.js +3 -3
- package/dist/core/agent-session-projection.js.map +1 -1
- package/dist/core/agent-session-services.d.ts +3 -1
- package/dist/core/agent-session-services.d.ts.map +1 -1
- package/dist/core/agent-session-services.js +2 -1
- package/dist/core/agent-session-services.js.map +1 -1
- package/dist/core/agent-session-store.d.ts.map +1 -1
- package/dist/core/agent-session-store.js +6 -1
- package/dist/core/agent-session-store.js.map +1 -1
- package/dist/core/agent-session-tools.d.ts.map +1 -1
- package/dist/core/agent-session-tools.js +13 -0
- package/dist/core/agent-session-tools.js.map +1 -1
- package/dist/core/agent-session.d.ts +24 -0
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +58 -4
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
- package/dist/core/compaction/branch-summarization.js +1 -1
- package/dist/core/compaction/branch-summarization.js.map +1 -1
- package/dist/core/experimental.d.ts.map +1 -1
- package/dist/core/experimental.js +1 -3
- package/dist/core/experimental.js.map +1 -1
- package/dist/core/extensions/capability-runtime-store.d.ts +20 -1
- package/dist/core/extensions/capability-runtime-store.d.ts.map +1 -1
- package/dist/core/extensions/capability-runtime-store.js +67 -0
- package/dist/core/extensions/capability-runtime-store.js.map +1 -1
- package/dist/core/extensions/capability-runtime-types.d.ts +14 -0
- package/dist/core/extensions/capability-runtime-types.d.ts.map +1 -1
- package/dist/core/extensions/capability-runtime-types.js +7 -1
- package/dist/core/extensions/capability-runtime-types.js.map +1 -1
- package/dist/core/extensions/capability-runtime.d.ts.map +1 -1
- package/dist/core/extensions/capability-runtime.js +144 -42
- package/dist/core/extensions/capability-runtime.js.map +1 -1
- package/dist/core/extensions/virtual-modules.d.ts.map +1 -1
- package/dist/core/extensions/virtual-modules.js +6 -1
- package/dist/core/extensions/virtual-modules.js.map +1 -1
- package/dist/core/facade/coding-agent-facade.d.ts +1 -1
- package/dist/core/facade/coding-agent-facade.d.ts.map +1 -1
- package/dist/core/facade/coding-agent-facade.js +1 -1
- package/dist/core/facade/coding-agent-facade.js.map +1 -1
- package/dist/core/i18n/locales/zh-cn/cli.d.ts.map +1 -1
- package/dist/core/i18n/locales/zh-cn/cli.js +2 -0
- package/dist/core/i18n/locales/zh-cn/cli.js.map +1 -1
- package/dist/core/i18n/locales/zh-cn/core-contract-final.d.ts +1 -1
- package/dist/core/i18n/locales/zh-cn/core-contract-final.d.ts.map +1 -1
- package/dist/core/i18n/locales/zh-cn/core-contract-final.js +3 -3
- package/dist/core/i18n/locales/zh-cn/core-contract-final.js.map +1 -1
- package/dist/core/i18n/locales/zh-cn/core-contract-plugins.d.ts.map +1 -1
- package/dist/core/i18n/locales/zh-cn/core-contract-plugins.js +1 -1
- package/dist/core/i18n/locales/zh-cn/core-contract-plugins.js.map +1 -1
- package/dist/core/i18n/locales/zh-cn/core-errors.d.ts.map +1 -1
- package/dist/core/i18n/locales/zh-cn/core-errors.js +1 -1
- package/dist/core/i18n/locales/zh-cn/core-errors.js.map +1 -1
- package/dist/core/i18n/locales/zh-cn/index.d.ts.map +1 -1
- package/dist/core/i18n/locales/zh-cn/index.js +2 -0
- package/dist/core/i18n/locales/zh-cn/index.js.map +1 -1
- package/dist/core/i18n/locales/zh-cn/interactive-mode.d.ts.map +1 -1
- package/dist/core/i18n/locales/zh-cn/interactive-mode.js +5 -0
- package/dist/core/i18n/locales/zh-cn/interactive-mode.js.map +1 -1
- package/dist/core/i18n/locales/zh-cn/session-cleanup.d.ts +7 -0
- package/dist/core/i18n/locales/zh-cn/session-cleanup.d.ts.map +1 -0
- package/dist/core/i18n/locales/zh-cn/session-cleanup.js +15 -0
- package/dist/core/i18n/locales/zh-cn/session-cleanup.js.map +1 -0
- package/dist/core/i18n/locales/zh-cn/slash-commands.d.ts.map +1 -1
- package/dist/core/i18n/locales/zh-cn/slash-commands.js +1 -0
- package/dist/core/i18n/locales/zh-cn/slash-commands.js.map +1 -1
- package/dist/core/i18n/locales/zh-cn/tui-components-misc.d.ts.map +1 -1
- package/dist/core/i18n/locales/zh-cn/tui-components-misc.js +2 -0
- package/dist/core/i18n/locales/zh-cn/tui-components-misc.js.map +1 -1
- package/dist/core/model-resolver.d.ts +2 -0
- package/dist/core/model-resolver.d.ts.map +1 -1
- package/dist/core/model-resolver.js +4 -1
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/package-resource-collection.d.ts.map +1 -1
- package/dist/core/package-resource-collection.js +5 -5
- package/dist/core/package-resource-collection.js.map +1 -1
- package/dist/core/provider-composer.d.ts.map +1 -1
- package/dist/core/provider-composer.js +3 -3
- package/dist/core/provider-composer.js.map +1 -1
- package/dist/core/resource-loader.d.ts.map +1 -1
- package/dist/core/resource-loader.js +1 -1
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/core/sdk.d.ts +1 -1
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +30 -8
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/session-cleanup.d.ts +49 -0
- package/dist/core/session-cleanup.d.ts.map +1 -0
- package/dist/core/session-cleanup.js +159 -0
- package/dist/core/session-cleanup.js.map +1 -0
- package/dist/core/session-index.d.ts +75 -0
- package/dist/core/session-index.d.ts.map +1 -0
- package/dist/core/session-index.js +455 -0
- package/dist/core/session-index.js.map +1 -0
- package/dist/core/session-manager.d.ts +9 -0
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +206 -51
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +5 -10
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/slash-commands.d.ts.map +1 -1
- package/dist/core/slash-commands.js +5 -0
- package/dist/core/slash-commands.js.map +1 -1
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +12 -1
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/timings.d.ts.map +1 -1
- package/dist/core/timings.js +1 -3
- package/dist/core/timings.js.map +1 -1
- package/dist/core/tools/capability-mount.d.ts +40 -0
- package/dist/core/tools/capability-mount.d.ts.map +1 -0
- package/dist/core/tools/capability-mount.js +112 -0
- package/dist/core/tools/capability-mount.js.map +1 -0
- package/dist/core/tools/render-utils.d.ts +1 -1
- package/dist/core/tools/render-utils.d.ts.map +1 -1
- package/dist/core/tools/render-utils.js.map +1 -1
- package/dist/core/tools/tool-definition.d.ts +1 -1
- package/dist/core/tools/tool-definition.d.ts.map +1 -1
- package/dist/core/tools/tool-definition.js.map +1 -1
- package/dist/core/trace-retention.d.ts +16 -1
- package/dist/core/trace-retention.d.ts.map +1 -1
- package/dist/core/trace-retention.js +43 -20
- package/dist/core/trace-retention.js.map +1 -1
- package/dist/export-html/ansi-to-html.d.ts.map +1 -0
- package/dist/export-html/ansi-to-html.js.map +1 -0
- package/dist/{core/export-html → export-html}/index.d.ts +1 -1
- package/dist/export-html/index.d.ts.map +1 -0
- package/dist/{core/export-html → export-html}/index.js +5 -5
- package/dist/export-html/index.js.map +1 -0
- package/dist/{core/export-html → export-html}/tool-renderer.d.ts +2 -2
- package/dist/export-html/tool-renderer.d.ts.map +1 -0
- package/dist/export-html/tool-renderer.js.map +1 -0
- package/dist/{modes/interactive → host}/model-catalog-refresh.d.ts +1 -1
- package/dist/host/model-catalog-refresh.d.ts.map +1 -0
- package/dist/{modes/interactive → host}/model-catalog-refresh.js +1 -1
- package/dist/host/model-catalog-refresh.js.map +1 -0
- package/dist/index.d.ts +5 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -12
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +26 -14
- package/dist/main.js.map +1 -1
- package/dist/modes/interactive/components/agents-view.d.ts.map +1 -1
- package/dist/modes/interactive/components/agents-view.js +1 -1
- package/dist/modes/interactive/components/agents-view.js.map +1 -1
- package/dist/modes/interactive/components/armin.d.ts.map +1 -1
- package/dist/modes/interactive/components/armin.js +1 -1
- package/dist/modes/interactive/components/armin.js.map +1 -1
- package/dist/modes/interactive/components/assistant-message.d.ts +6 -0
- package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/assistant-message.js +108 -27
- package/dist/modes/interactive/components/assistant-message.js.map +1 -1
- package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/bash-execution.js +1 -1
- package/dist/modes/interactive/components/bash-execution.js.map +1 -1
- package/dist/modes/interactive/components/bordered-loader.d.ts +1 -1
- package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -1
- package/dist/modes/interactive/components/bordered-loader.js.map +1 -1
- package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/branch-summary-message.js +1 -1
- package/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
- package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/compaction-summary-message.js +1 -1
- package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -1
- package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/config-selector.js +1 -1
- package/dist/modes/interactive/components/config-selector.js.map +1 -1
- package/dist/modes/interactive/components/custom-entry.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-entry.js +1 -1
- package/dist/modes/interactive/components/custom-entry.js.map +1 -1
- package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-message.js +1 -1
- package/dist/modes/interactive/components/custom-message.js.map +1 -1
- package/dist/modes/interactive/components/daxnuts.d.ts.map +1 -1
- package/dist/modes/interactive/components/daxnuts.js +1 -1
- package/dist/modes/interactive/components/daxnuts.js.map +1 -1
- package/dist/modes/interactive/components/dialog-editor.d.ts.map +1 -1
- package/dist/modes/interactive/components/dialog-editor.js +1 -1
- package/dist/modes/interactive/components/dialog-editor.js.map +1 -1
- package/dist/modes/interactive/components/dialog-input.d.ts.map +1 -1
- package/dist/modes/interactive/components/dialog-input.js +1 -1
- package/dist/modes/interactive/components/dialog-input.js.map +1 -1
- package/dist/modes/interactive/components/dialog-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/dialog-selector.js +1 -1
- package/dist/modes/interactive/components/dialog-selector.js.map +1 -1
- package/dist/modes/interactive/components/diff.d.ts.map +1 -1
- package/dist/modes/interactive/components/diff.js +1 -1
- package/dist/modes/interactive/components/diff.js.map +1 -1
- package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -1
- package/dist/modes/interactive/components/dynamic-border.js +1 -1
- package/dist/modes/interactive/components/dynamic-border.js.map +1 -1
- package/dist/modes/interactive/components/first-time-setup.d.ts +1 -1
- package/dist/modes/interactive/components/first-time-setup.d.ts.map +1 -1
- package/dist/modes/interactive/components/first-time-setup.js +1 -1
- package/dist/modes/interactive/components/first-time-setup.js.map +1 -1
- package/dist/modes/interactive/components/footer.d.ts.map +1 -1
- package/dist/modes/interactive/components/footer.js +1 -1
- package/dist/modes/interactive/components/footer.js.map +1 -1
- package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -1
- package/dist/modes/interactive/components/keybinding-hints.js +1 -1
- package/dist/modes/interactive/components/keybinding-hints.js.map +1 -1
- package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
- package/dist/modes/interactive/components/login-dialog.js +1 -1
- package/dist/modes/interactive/components/login-dialog.js.map +1 -1
- package/dist/modes/interactive/components/mermaid.d.ts +1 -1
- package/dist/modes/interactive/components/mermaid.d.ts.map +1 -1
- package/dist/modes/interactive/components/mermaid.js.map +1 -1
- package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/model-selector.js +2 -2
- package/dist/modes/interactive/components/model-selector.js.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.js +1 -1
- package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
- package/dist/modes/interactive/components/plugin-manager-entry.d.ts.map +1 -1
- package/dist/modes/interactive/components/plugin-manager-entry.js +1 -1
- package/dist/modes/interactive/components/plugin-manager-entry.js.map +1 -1
- package/dist/modes/interactive/components/plugin-selection-entry.d.ts.map +1 -1
- package/dist/modes/interactive/components/plugin-selection-entry.js +1 -1
- package/dist/modes/interactive/components/plugin-selection-entry.js.map +1 -1
- package/dist/modes/interactive/components/queue-manager-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/queue-manager-selector.js +1 -1
- package/dist/modes/interactive/components/queue-manager-selector.js.map +1 -1
- package/dist/modes/interactive/components/render-types.d.ts +1 -1
- package/dist/modes/interactive/components/render-types.d.ts.map +1 -1
- package/dist/modes/interactive/components/render-types.js.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.js +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
- package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -1
- package/dist/modes/interactive/components/session-selector-search.js +5 -1
- package/dist/modes/interactive/components/session-selector-search.js.map +1 -1
- package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/session-selector.js +11 -2
- package/dist/modes/interactive/components/session-selector.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector.d.ts +1 -1
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +1 -1
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/components/settings-submenu.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-submenu.js +1 -1
- package/dist/modes/interactive/components/settings-submenu.js.map +1 -1
- package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/show-images-selector.js +1 -1
- package/dist/modes/interactive/components/show-images-selector.js.map +1 -1
- package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/skill-invocation-message.js +1 -1
- package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
- package/dist/modes/interactive/components/status-indicator.d.ts.map +1 -1
- package/dist/modes/interactive/components/status-indicator.js +1 -1
- package/dist/modes/interactive/components/status-indicator.js.map +1 -1
- package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/theme-selector.js +1 -1
- package/dist/modes/interactive/components/theme-selector.js.map +1 -1
- package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/thinking-selector.js +1 -1
- package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
- package/dist/modes/interactive/components/tool-execution.d.ts +19 -0
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-execution.js +139 -4
- package/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/dist/modes/interactive/components/tool-run-group.d.ts +44 -0
- package/dist/modes/interactive/components/tool-run-group.d.ts.map +1 -0
- package/dist/modes/interactive/components/tool-run-group.js +121 -0
- package/dist/modes/interactive/components/tool-run-group.js.map +1 -0
- package/dist/modes/interactive/components/tree-list.d.ts.map +1 -1
- package/dist/modes/interactive/components/tree-list.js +1 -1
- package/dist/modes/interactive/components/tree-list.js.map +1 -1
- package/dist/modes/interactive/components/tree-render.d.ts.map +1 -1
- package/dist/modes/interactive/components/tree-render.js +1 -1
- package/dist/modes/interactive/components/tree-render.js.map +1 -1
- package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/tree-selector.js +1 -1
- package/dist/modes/interactive/components/tree-selector.js.map +1 -1
- package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/user-message-selector.js +1 -1
- package/dist/modes/interactive/components/user-message-selector.js.map +1 -1
- package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/user-message.js +1 -1
- package/dist/modes/interactive/components/user-message.js.map +1 -1
- package/dist/modes/interactive/components/workflow-view.d.ts.map +1 -1
- package/dist/modes/interactive/components/workflow-view.js +1 -1
- package/dist/modes/interactive/components/workflow-view.js.map +1 -1
- package/dist/modes/interactive/interactive-auth.d.ts +1 -1
- package/dist/modes/interactive/interactive-auth.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-auth.js +1 -1
- package/dist/modes/interactive/interactive-auth.js.map +1 -1
- package/dist/modes/interactive/interactive-commands.d.ts +125 -6
- package/dist/modes/interactive/interactive-commands.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-commands.js +698 -4
- package/dist/modes/interactive/interactive-commands.js.map +1 -1
- package/dist/modes/interactive/interactive-events.d.ts +174 -0
- package/dist/modes/interactive/interactive-events.d.ts.map +1 -0
- package/dist/modes/interactive/interactive-events.js +704 -0
- package/dist/modes/interactive/interactive-events.js.map +1 -0
- package/dist/modes/interactive/interactive-format.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-format.js +1 -1
- package/dist/modes/interactive/interactive-format.js.map +1 -1
- package/dist/modes/interactive/interactive-lifecycle.d.ts +94 -0
- package/dist/modes/interactive/interactive-lifecycle.d.ts.map +1 -0
- package/dist/modes/interactive/interactive-lifecycle.js +177 -0
- package/dist/modes/interactive/interactive-lifecycle.js.map +1 -0
- package/dist/modes/interactive/interactive-mode.d.ts +254 -129
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +275 -2101
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/interactive-queues.d.ts +96 -0
- package/dist/modes/interactive/interactive-queues.d.ts.map +1 -0
- package/dist/modes/interactive/interactive-queues.js +183 -0
- package/dist/modes/interactive/interactive-queues.js.map +1 -0
- package/dist/modes/interactive/interactive-selectors.d.ts +95 -5
- package/dist/modes/interactive/interactive-selectors.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-selectors.js +517 -6
- package/dist/modes/interactive/interactive-selectors.js.map +1 -1
- package/dist/modes/interactive/startup-services.d.ts +31 -0
- package/dist/modes/interactive/startup-services.d.ts.map +1 -0
- package/dist/modes/interactive/startup-services.js +123 -0
- package/dist/modes/interactive/startup-services.js.map +1 -0
- package/dist/modes/memory-preheat.d.ts +11 -0
- package/dist/modes/memory-preheat.d.ts.map +1 -0
- package/dist/modes/memory-preheat.js +20 -0
- package/dist/modes/memory-preheat.js.map +1 -0
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-mode.js +3 -1
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/dist/plugins/ecosystem/cli.d.ts.map +1 -1
- package/dist/plugins/ecosystem/cli.js +6 -3
- package/dist/plugins/ecosystem/cli.js.map +1 -1
- package/dist/plugins/ecosystem/node-plugin-bootstrap.d.ts +7 -1
- package/dist/plugins/ecosystem/node-plugin-bootstrap.d.ts.map +1 -1
- package/dist/plugins/ecosystem/node-plugin-bootstrap.js +50 -3
- package/dist/plugins/ecosystem/node-plugin-bootstrap.js.map +1 -1
- package/dist/plugins/ecosystem/plugin-bootstrap.d.ts +28 -16
- package/dist/plugins/ecosystem/plugin-bootstrap.d.ts.map +1 -1
- package/dist/plugins/ecosystem/plugin-bootstrap.js +35 -33
- package/dist/plugins/ecosystem/plugin-bootstrap.js.map +1 -1
- package/dist/profile/plugin-profiles.d.ts +1 -1
- package/dist/profile/plugin-profiles.d.ts.map +1 -1
- package/dist/profile/plugin-profiles.js +18 -0
- package/dist/profile/plugin-profiles.js.map +1 -1
- package/dist/remote/server-assembly.d.ts.map +1 -1
- package/dist/remote/server-assembly.js +7 -2
- package/dist/remote/server-assembly.js.map +1 -1
- package/dist/{profiles → suites}/builtin-suites.d.ts +14 -4
- package/dist/suites/builtin-suites.d.ts.map +1 -0
- package/dist/{profiles → suites}/builtin-suites.js +20 -5
- package/dist/suites/builtin-suites.js.map +1 -0
- package/dist/suites/resolved-agent-profile.d.ts.map +1 -0
- package/dist/suites/resolved-agent-profile.js.map +1 -0
- package/dist/suites/suite-lifecycle.d.ts.map +1 -0
- package/dist/suites/suite-lifecycle.js.map +1 -0
- package/dist/suites/suite-loader.d.ts.map +1 -0
- package/dist/suites/suite-loader.js.map +1 -0
- package/dist/{modes/interactive/theme → theme}/dark.json +1 -1
- package/dist/{modes/interactive/theme → theme}/light.json +1 -1
- package/dist/{modes/interactive/theme → theme}/theme-controller.d.ts +1 -1
- package/dist/theme/theme-controller.d.ts.map +1 -0
- package/dist/{modes/interactive/theme → theme}/theme-controller.js +1 -1
- package/dist/theme/theme-controller.js.map +1 -0
- package/dist/{modes/interactive/theme → theme}/theme.d.ts +1 -1
- package/dist/theme/theme.d.ts.map +1 -0
- package/dist/{modes/interactive/theme → theme}/theme.js +5 -5
- package/dist/theme/theme.js.map +1 -0
- package/docs/compaction.md +7 -7
- package/docs/environment-variables.md +10 -4
- package/docs/keybindings.md +3 -3
- package/docs/models.md +17 -17
- package/docs/packages.md +1 -1
- package/docs/prompt-templates.md +1 -1
- package/docs/rpc.md +2 -2
- package/docs/sdk.md +5 -5
- package/docs/session-format.md +3 -3
- package/docs/settings.md +368 -354
- package/docs/shell-aliases.md +1 -1
- package/docs/skills.md +1 -1
- package/docs/terminal-setup.md +17 -17
- package/docs/themes.md +5 -5
- package/docs/tmux.md +4 -4
- package/docs/tui.md +1 -1
- package/docs/windows.md +1 -1
- package/examples/extensions/bash-spawn-hook/index.ts +1 -1
- package/examples/extensions/dynamic-resources/dynamic.json +1 -1
- package/examples/extensions/with-deps/package-lock.json +2 -2
- package/examples/extensions/with-deps/package.json +1 -6
- package/examples/extensions/with-deps/plugin.json +1 -1
- package/package.json +2 -2
- package/dist/bundle/chunks/openai-responses-AUJQ3NWT.js +0 -2
- package/dist/bundle/chunks/virtual-modules-WF6WRHP7.js +0 -5
- package/dist/cli/experimental/commands/pi.d.ts +0 -15
- package/dist/cli/experimental/commands/pi.d.ts.map +0 -1
- package/dist/cli/experimental/commands/pi.js.map +0 -1
- package/dist/core/export-html/ansi-to-html.d.ts.map +0 -1
- package/dist/core/export-html/ansi-to-html.js.map +0 -1
- package/dist/core/export-html/index.d.ts.map +0 -1
- package/dist/core/export-html/index.js.map +0 -1
- package/dist/core/export-html/tool-renderer.d.ts.map +0 -1
- package/dist/core/export-html/tool-renderer.js.map +0 -1
- package/dist/core/pi-manifest.d.ts +0 -7
- package/dist/core/pi-manifest.d.ts.map +0 -1
- package/dist/core/pi-manifest.js.map +0 -1
- package/dist/modes/interactive/model-catalog-refresh.d.ts.map +0 -1
- package/dist/modes/interactive/model-catalog-refresh.js.map +0 -1
- package/dist/modes/interactive/theme/theme-controller.d.ts.map +0 -1
- package/dist/modes/interactive/theme/theme-controller.js.map +0 -1
- package/dist/modes/interactive/theme/theme.d.ts.map +0 -1
- package/dist/modes/interactive/theme/theme.js.map +0 -1
- package/dist/profiles/builtin-suites.d.ts.map +0 -1
- package/dist/profiles/builtin-suites.js.map +0 -1
- package/dist/profiles/resolved-agent-profile.d.ts.map +0 -1
- package/dist/profiles/resolved-agent-profile.js.map +0 -1
- package/dist/profiles/suite-lifecycle.d.ts.map +0 -1
- package/dist/profiles/suite-lifecycle.js.map +0 -1
- package/dist/profiles/suite-loader.d.ts.map +0 -1
- package/dist/profiles/suite-loader.js.map +0 -1
- package/dist/utils/deprecation.d.ts +0 -4
- package/dist/utils/deprecation.d.ts.map +0 -1
- package/dist/utils/deprecation.js +0 -13
- package/dist/utils/deprecation.js.map +0 -1
- /package/dist/{core/export-html → export-html}/ansi-to-html.d.ts +0 -0
- /package/dist/{core/export-html → export-html}/ansi-to-html.js +0 -0
- /package/dist/{core/export-html → export-html}/template.css +0 -0
- /package/dist/{core/export-html → export-html}/template.html +0 -0
- /package/dist/{core/export-html → export-html}/template.js +0 -0
- /package/dist/{core/export-html → export-html}/tool-renderer.js +0 -0
- /package/dist/{core/export-html → export-html}/vendor/highlight.min.js +0 -0
- /package/dist/{core/export-html → export-html}/vendor/marked.min.js +0 -0
- /package/dist/{profiles → suites}/resolved-agent-profile.d.ts +0 -0
- /package/dist/{profiles → suites}/resolved-agent-profile.js +0 -0
- /package/dist/{profiles → suites}/suite-lifecycle.d.ts +0 -0
- /package/dist/{profiles → suites}/suite-lifecycle.js +0 -0
- /package/dist/{profiles → suites}/suite-loader.d.ts +0 -0
- /package/dist/{profiles → suites}/suite-loader.js +0 -0
- /package/dist/{modes/interactive/theme → theme}/theme-schema.json +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capability-runtime.js","sourceRoot":"","sources":["../../../src/core/extensions/capability-runtime.ts"],"names":[],"mappings":"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","sourcesContent":["import { randomUUID } from \"node:crypto\";\nimport { performance } from \"node:perf_hooks\";\nimport { t } from \"../i18n/index.ts\";\nimport type { AgentCompositionInstanceStateBinding, AgentCompositionLifecycleDispatcher } from \"./agent-composition.ts\";\nimport { createLifecycleRuntime } from \"./capability-runtime-events.ts\";\nimport {\n\tguardedComposition,\n\tguardedCredentials,\n\tguardedInteraction,\n\tguardedOutput,\n\tguardedSession,\n\tRuntimeAgentTask,\n\twithNormalizedToolResultExecute,\n} from \"./capability-runtime-guards.ts\";\nimport { createRuntimeInspector } from \"./capability-runtime-inspect.ts\";\nimport {\n\tassertManifest,\n\tassertPluginCapabilityDeclarations,\n\tassertPluginCapabilityId,\n\tassertPluginCapabilityVersion,\n\tcapabilityKey,\n\tcreatePluginConfig,\n\tisPluginConfigValue,\n\tresolvePluginCapabilityOrder,\n} from \"./capability-runtime-manifest.ts\";\nimport { OutputArtifactError, RuntimeOperation } from \"./capability-runtime-operation.ts\";\nimport { definitionSnapshot, detachedSnapshot } from \"./capability-runtime-snapshot.ts\";\nimport {\n\tassertRegisteredCapabilityActive as assertRegisteredCapabilityState,\n\tcancelOwnedOperations as cancelOwnedOperationsState,\n\tcreateCapabilityRuntimeState,\n\tcreateRevokedCapabilityError,\n\tinvokePluginCapability as invokePluginCapabilityState,\n\tinvokeRegisteredCapability as invokeRegisteredCapabilityState,\n\tinvokeRegisteredCapabilityWithSignal as invokeRegisteredCapabilityWithSignalState,\n\tisRevokedCapabilityError,\n\tobserveUnexpectedAsyncCleanup,\n\ttrackOperation as trackOperationState,\n} from \"./capability-runtime-store.ts\";\nimport { invokeCapabilityTool } from \"./capability-runtime-tool.ts\";\nimport type {\n\tAPIState,\n\tCapabilityRuntime,\n\tCapabilityRuntimeOptions,\n\tQueuedLifecycleDelivery,\n\tRegisteredCapability,\n\tRegisteredPluginCapability,\n\tStateWatcher,\n\tStoredContributionPoint,\n\tStoredLifecycleDefinition,\n\tStoredLifecycleRegistration,\n\tStoredState,\n} from \"./capability-runtime-types.ts\";\nimport {\n\tasHandler,\n\tassertAgentTaskRequest,\n\tassertHost,\n\tcapabilityName,\n\tcontributionPointKey,\n\tlifecycleEventKey,\n\tlifecycleRegistrationKinds,\n\tstableTextCompare,\n\ttoolReadonlySafe,\n\tvalidateCommandDefinition,\n\tvalidateCommandResult,\n\tvalidateContributionPointDefinition,\n\tvalidateExecutionFactsV1,\n\tvalidateLifecycleEventDefinition,\n\tvalidateProviderHeaders,\n\tvalidateRetryScheduleV1,\n} from \"./capability-runtime-validation.ts\";\nimport { PLUGIN_REJECTED_EVENT_ID, PLUGIN_REJECTED_EVENT_VERSION } from \"./lifecycle-catalog.ts\";\nimport { createLifecycleDeliveryQueue, type LifecycleDeliveryQueue } from \"./lifecycle-delivery-queue.ts\";\nimport {\n\ttype AgentCompositionDefinitionBinding,\n\ttype AgentContextCommitRequestV1,\n\ttype AgentHostPrimitivesFactory,\n\ttype AgentLoopHookForV1,\n\ttype AgentLoopHookHandlerV1,\n\ttype AgentTaskCreateRequest,\n\ttype AgentTaskHandle,\n\ttype AgentTaskResultV1,\n\ttype AgentTaskSessionSummaryV1,\n\ttype CapabilityAPI,\n\ttype CapabilityDirectoryAPI,\n\ttype CapabilityHandle,\n\ttype CapabilityProviderHandler,\n\ttype ContributionAPI,\n\ttype ContributionChangeEvent,\n\ttype ContributionEntry,\n\ttype ContributionHandle,\n\ttype ContributionPoint,\n\ttype ContributionPointDefinition,\n\tcreateDisposableRegistration,\n\tcreateEventEnvelope,\n\ttype DiagnosticsAPI,\n\ttype DiagnosticsSpan,\n\ttype DiagnosticsSpanSnapshot,\n\ttype DisposableRegistration,\n\ttype EntryProjection,\n\ttype EventEnvelope,\n\ttype HostCapabilities,\n\ttype LifecycleAfterCommitHandler,\n\ttype LifecycleAPI,\n\ttype LifecycleDeliveryOptions,\n\ttype LifecycleEventDefinition,\n\ttype LifecycleEventReference,\n\ttype LifecycleExecuteHandler,\n\ttype LifecycleObserveHandler,\n\ttype LifecycleRegistrationKind,\n\ttype LifecycleTransformHandler,\n\ttype LoggerAPI,\n\ttype LoggerLevel,\n\ttype LoggerRecord,\n\ttype OperationHandle,\n\ttype OutputArtifactAPI,\n\ttype OutputArtifactChunk,\n\ttype OutputArtifactPutInput,\n\ttype OutputArtifactRef,\n\ttype PluginCapabilityDeclaration,\n\ttype PluginConfigValue,\n\ttype PluginManifest,\n\ttype PluginRejection,\n\ttype RuntimeInspectorAPI,\n\ttype StateAPI,\n\ttype StateChange,\n\ttype StateEntry,\n\ttype StateSetOptions,\n\ttype StreamFnWrapper,\n} from \"./public-api.ts\";\n\nexport { resolvePluginCapabilityOrder } from \"./capability-runtime-manifest.ts\";\nexport type { CapabilityRuntime } from \"./capability-runtime-types.ts\";\nexport { validateExecutionFactsV1, validateRetryScheduleV1 } from \"./capability-runtime-validation.ts\";\n\n/**\n * Parameterized storage view for one state namespace. The owner namespace\n * (api.state / host.state) and each composition instance namespace share one\n * StateAPI code path through this view; only container addressing and identity\n * labels differ.\n */\ninterface StateNamespaceView {\n\t/** Identity used in revision-conflict errors. */\n\treadonly conflictScope: string;\n\t/** Owner identity attached to change records, watcher records, and log fields. */\n\treadonly pluginId: string;\n\t/** Identity used in generated watcher id fallbacks. */\n\treadonly watchScope: string;\n\treadStored(key: string): StoredState | undefined;\n\tlistEntries(): readonly (readonly [string, StoredState])[];\n\tensureNamespace(): Map<string, StoredState>;\n\tensureRevisions(): Map<string, number>;\n\tensureWatchers(): Map<string, StateWatcher>;\n\tremoveWatcher(watchers: Map<string, StateWatcher>, id: string): void;\n\tnotify(change: StateChange): void;\n}\n\n/**\n * 慢事件订阅者观测阈值(毫秒):publish 对单个订阅者的投递耗时超过该值时记一条\n * warn 日志(事件类型 + 订阅 id + 耗时,pluginId 归属订阅者)。纯观测面,不改投递\n * 行为:仍顺序 await、等待完成、不超时打断、不丢弃。每个订阅者在单个 publish 周期\n * 内至多被投递一次,因此天然至多记一条。计时用 performance.now 而非可注入 clock:\n * clock 缺省恒 0(生产不注入),不能作为耗时来源。\n */\nconst SLOW_EVENT_SUBSCRIBER_WARN_MS = 100;\n\n/**\n * streamFnWrapper 注册项(D-082 批 3b 契约 A):在基础注册结构上携带链序元数据。\n * priority 低值更外层(缺省 0);sequence 是运行时内单调递增的注册序,同级\n * wrapper 按注册序稳定排序。唯一写入方是 registerStreamFnWrapper 专用注册路径\n * (store 字段保持基础注册结构类型,store 不感知链序),读取方是\n * getStreamFnWrappers 与 owner 撤销清理。\n */\ninterface StoredStreamFnWrapper extends RegisteredCapability<StreamFnWrapper> {\n\tpriority: number;\n\tsequence: number;\n}\n\nexport function createCapabilityRuntime(\n\tinputHost: HostCapabilities,\n\toptions: CapabilityRuntimeOptions = {},\n): CapabilityRuntime {\n\t// D-075 S4 third batch: the communication/turnContext host services carry\n\t// host-owned callbacks. They must ride by reference (like the trace\n\t// service in CapabilityRuntimeOptions) instead of through the structured\n\t// clone below, which cannot clone functions. Strip them before the\n\t// snapshot and re-attach to the exposed host afterwards. S4 fourth batch:\n\t// memoryStorage joins — its store/ledger factories and vector components\n\t// are host-owned runtime services with the same non-cloneable shape.\n\t// D-082 批 3b: modelCatalog joins — its three members are host closures\n\t// (catalog/credentials read face for the provider-failover load preflight).\n\t// Validate BEFORE destructuring: destructuring a null/non-object host would\n\t// surface a TypeError instead of the contract's validation error.\n\tassertHost(inputHost);\n\tconst { communication, turnContext, memoryStorage, modelCatalog, ...cloneableHost } = inputHost;\n\tconst host = detachedSnapshot(cloneableHost);\n\tassertHost(host);\n\tconst hostWithServices =\n\t\tcommunication === undefined &&\n\t\tturnContext === undefined &&\n\t\tmemoryStorage === undefined &&\n\t\tmodelCatalog === undefined\n\t\t\t? host\n\t\t\t: Object.freeze({\n\t\t\t\t\t...host,\n\t\t\t\t\t...(communication === undefined ? {} : { communication }),\n\t\t\t\t\t...(turnContext === undefined ? {} : { turnContext }),\n\t\t\t\t\t...(memoryStorage === undefined ? {} : { memoryStorage }),\n\t\t\t\t\t...(modelCatalog === undefined ? {} : { modelCatalog }),\n\t\t\t\t});\n\tconst hasSession = host.features.includes(\"session\");\n\tconst hasSessionExport = host.features.includes(\"session-export\");\n\tconst hasSessionRevision = host.features.includes(\"session-revision-v1\");\n\tif (hasSession && !options.session) {\n\t\tthrow new Error(t(\"Host declares session capability without a SessionAPI\"));\n\t}\n\tif (!hasSession && options.session) {\n\t\tthrow new Error(t(\"Host provides a SessionAPI without the session capability\"));\n\t}\n\tif (hasSessionExport && !hasSession) {\n\t\tthrow new Error(t(\"Host declares session-export capability without the session capability\"));\n\t}\n\tif (hasSessionExport && !options.session?.exportArtifact) {\n\t\tthrow new Error(t(\"Host declares session-export capability without SessionAPI.exportArtifact\"));\n\t}\n\tif (hasSessionRevision && !hasSession) {\n\t\tthrow new Error(t(\"Host declares session-revision-v1 capability without the session capability\"));\n\t}\n\tif (hasSessionRevision && !options.session?.getRevision) {\n\t\tthrow new Error(t(\"Host declares session-revision-v1 capability without SessionAPI.getRevision\"));\n\t}\n\tif (host.features.includes(\"agents\") && !options.session) {\n\t\tthrow new Error(t(\"Host declares agents capability without a parent SessionAPI\"));\n\t}\n\tif (\n\t\thost.features.includes(\"agents\") &&\n\t\t!options.agents &&\n\t\toptions.agentSessionReader === undefined &&\n\t\toptions.agentSessionLister === undefined\n\t) {\n\t\tthrow new Error(t(\"Host declares agents capability without an AgentTaskAdapter or a session reader/lister\"));\n\t}\n\tif (options.agents && !host.features.includes(\"agents\")) {\n\t\tthrow new Error(t(\"Host provides an AgentTaskAdapter without the agents capability\"));\n\t}\n\tif (options.agentResults && !host.features.includes(\"agent-result-replay-v1\")) {\n\t\tthrow new Error(t(\"Host provides an agentResults option without the agent-result-replay-v1 capability\"));\n\t}\n\tif (host.features.includes(\"agent-result-replay-v1\") && !options.agentResults) {\n\t\tthrow new Error(t(\"Host declares agent-result-replay-v1 capability without an agentResults option\"));\n\t}\n\tif (host.features.includes(\"credentials\") && !options.credentials) {\n\t\tthrow new Error(t(\"Host declares credentials capability without a CredentialAPI\"));\n\t}\n\tif (options.credentials && !host.features.includes(\"credentials\")) {\n\t\tthrow new Error(t(\"Host provides a CredentialAPI without the credentials capability\"));\n\t}\n\tif (host.features.includes(\"interaction\") && !options.interaction) {\n\t\tthrow new Error(t(\"Host declares interaction capability without an InteractionHostV1\"));\n\t}\n\tif (options.interaction && !host.features.includes(\"interaction\")) {\n\t\tthrow new Error(t(\"Host provides an InteractionHostV1 without the interaction capability\"));\n\t}\n\tif (host.features.includes(\"agent-result-replay-v1\") && !host.features.includes(\"agents\")) {\n\t\tthrow new Error(t(\"Host declares the agent-result-replay-v1 feature without the agents capability\"));\n\t}\n\tconst clock = options.clock ?? (() => 0);\n\t// Per-runtime unique segment for generated agent task ids: without an\n\t// idFactory the id is otherwise a deterministic per-instance sequence, so a\n\t// rebuilt runtime reusing the same owner and sequence would replay over the\n\t// previous generation's durable records under the same key.\n\tconst runtimeInstanceSegment = randomUUID().slice(0, 8);\n\tconst onOutputArtifactCommit = options.onOutputArtifactCommit;\n\tconst toolExecutionContext = options.toolExecutionContext;\n\tconst state = createCapabilityRuntimeState();\n\tconst {\n\t\ttools,\n\t\tskills,\n\t\tretryPolicies,\n\t\tcompactionPolicies,\n\t\toverflowPolicies,\n\t\tbranchSummaryPolicies,\n\t\trunLoopStrategies,\n\t\tloopHooks,\n\t\tcommands,\n\t\toperations,\n\t\trpcMethods,\n\t\tcontextStrategies,\n\t\tpluginCapabilities,\n\t\tproviderHeaderTransforms,\n\t\tstreamFnWrappers,\n\t\tcontributionPoints,\n\t\tlifecycleDefinitions,\n\t\tlifecycleRegistrations,\n\t\tsubscribers,\n\t\tstatuses,\n\t\tpluginRegistrations,\n\t\tapiStates,\n\t\tactiveOwnerTokens,\n\t\toutputArtifacts,\n\t\tstateByOwner,\n\t\tstateRevisionsByOwner,\n\t\tstateWatchers,\n\t\tstateByInstance,\n\t\tstateRevisionsByInstance,\n\t\tstateWatchersByInstance,\n\t\tlogs,\n\t\tspans,\n\t\tlifecycleDeliveryQueues,\n\t\tpluginRejections,\n\t} = state;\n\tconst runtimeState = state;\n\t// 契约 A(D-082 批 3b):store 字段保持基础注册结构类型(store 不感知链序),\n\t// 本运行时经此类型视图写入/读取链序元数据;唯一写入方是 registerStreamFnWrapper\n\t// 专用注册路径,读取方是 getStreamFnWrappers 与 cleanupRegisteredCapabilities。\n\tconst streamFnWrapperRegistry = streamFnWrappers as Map<string, StoredStreamFnWrapper>;\n\tlet subscriptionSequence = 0;\n\tlet operationSequence = 0;\n\tlet agentTaskSequence = 0;\n\t// 活任务集合(设计 子代理运行时 §4.2 中断分级,2026-10-02):runtime 级共享,\n\t// 每个插件 API 的 createAgentTask 入队、任务 dispose 出队;宿主经\n\t// runtime.getActiveAgentTaskCount() 读有界投影。\n\tconst agentTasks = new Set<RuntimeAgentTask>();\n\tlet artifactSequence = 0;\n\tlet contributionSubscriptionSequence = 0;\n\tlet lifecycleRegistrationSequence = 0;\n\tlet stateWatcherSequence = 0;\n\tlet spanSequence = 0;\n\tlet traceSequence = 0;\n\tlet loopHookSequence = 0;\n\tlet streamFnWrapperSequence = 0;\n\n\tconst createRuntimeId = (kind: string, sequence: number, fallback: string): string => {\n\t\tif (!options.idFactory) return fallback;\n\t\tconst id = options.idFactory(kind, sequence);\n\t\tif (typeof id !== \"string\" || !id.trim()) {\n\t\t\tthrow new Error(t(\"Runtime idFactory must return a non-empty string for {kind}\", { kind }));\n\t\t}\n\t\treturn id;\n\t};\n\tconst {\n\t\tdispatchLifecycle,\n\t\treportCapabilityCall,\n\t\treportOperationCancel,\n\t\treportOperationEnd,\n\t\treportOperationStart,\n\t\treportOperationStep,\n\t} = createLifecycleRuntime({\n\t\tstate,\n\t\tclock,\n\t\tcreateRuntimeId,\n\t\tonLifecycleDispatch: options.onLifecycleDispatch,\n\t});\n\tconst inspect = createRuntimeInspector({ state, host });\n\tconst assertRegisteredCapabilityActive = <T>(registered: RegisteredCapability<T>): void =>\n\t\tassertRegisteredCapabilityState(state, registered);\n\tconst invokeRegisteredCapability = async <T, TResult>(\n\t\tregistered: RegisteredCapability<T>,\n\t\tinvoke: (value: T) => TResult | PromiseLike<TResult>,\n\t): Promise<TResult> => invokeRegisteredCapabilityState(state, registered, invoke);\n\tconst invokeRegisteredCapabilityWithSignal = async <T, TResult>(\n\t\tregistered: RegisteredCapability<T>,\n\t\tsignal: AbortSignal | undefined,\n\t\tinvoke: (value: T) => TResult | PromiseLike<TResult>,\n\t): Promise<TResult> => invokeRegisteredCapabilityWithSignalState(state, registered, signal, invoke);\n\tconst invokePluginCapability = async <TResult>(\n\t\tregistered: RegisteredPluginCapability,\n\t\tinput: unknown,\n\t\tsignal: AbortSignal,\n\t): Promise<TResult> => invokePluginCapabilityState(state, registered, input, signal);\n\tconst trackOperation = <TResult>(\n\t\townerTokens: readonly symbol[],\n\t\thandle: OperationHandle<TResult>,\n\t): OperationHandle<TResult> => trackOperationState(state, ownerTokens, handle);\n\tconst cancelOwnedOperations = (ownerToken: symbol, owner: string): void =>\n\t\tcancelOwnedOperationsState(state, ownerToken, owner);\n\n\tconst cleanupArtifacts = (ownerToken: symbol): void => {\n\t\tfor (const [artifactId, artifact] of outputArtifacts) {\n\t\t\tif (artifact.ownerToken === ownerToken) outputArtifacts.delete(artifactId);\n\t\t}\n\t};\n\n\tconst cleanupPluginCapabilities = (ownerToken: symbol): void => {\n\t\tfor (const [key, capability] of pluginCapabilities) {\n\t\t\tif (capability.ownerToken === ownerToken) pluginCapabilities.delete(key);\n\t\t}\n\t};\n\n\tconst cleanupRegisteredCapabilities = (ownerToken: symbol): void => {\n\t\tfor (const registry of [\n\t\t\ttools,\n\t\t\tskills,\n\t\t\tretryPolicies,\n\t\t\tcompactionPolicies,\n\t\t\toverflowPolicies,\n\t\t\tbranchSummaryPolicies,\n\t\t\trunLoopStrategies,\n\t\t\tcommands,\n\t\t\toperations,\n\t\t\trpcMethods,\n\t\t\tcontextStrategies,\n\t\t\tproviderHeaderTransforms,\n\t\t\tstreamFnWrapperRegistry,\n\t\t] as const) {\n\t\t\tfor (const [name, entry] of registry) {\n\t\t\t\tif (entry.ownerToken === ownerToken) {\n\t\t\t\t\tregistry.delete(name);\n\t\t\t\t\tif (registry === tools) notifyToolRegistryChange(entry.owner, name);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor (const [position, entries] of loopHooks) {\n\t\t\tconst remaining = entries.filter((entry) => entry.ownerToken !== ownerToken);\n\t\t\tif (remaining.length === 0) loopHooks.delete(position);\n\t\t\telse if (remaining.length !== entries.length) loopHooks.set(position, remaining);\n\t\t}\n\t\tfor (const [type, handlers] of subscribers) {\n\t\t\tfor (const [id, handler] of handlers) {\n\t\t\t\tif (handler.ownerToken === ownerToken) handlers.delete(id);\n\t\t\t}\n\t\t\tif (handlers.size === 0) subscribers.delete(type);\n\t\t}\n\t\t// 替换链清扫:链中只应存活 owner 的注册。revokeState 先 activeOwnerTokens.delete\n\t\t// 再调用本清理,故此处能正确判定本 owner 已死;死条目在 restoreReplacedTool 弹栈\n\t\t// 时本就会被跳过(同样按 activeOwnerTokens 判定),提前删除不改变任何可观测行为,\n\t\t// 只消除陈旧状态——替换方长期不 dispose 且被替换 owner 已撤销时,链项会一直滞留。\n\t\tfor (const [name, chain] of toolReplacementChains) {\n\t\t\tconst remaining = chain.filter((entry) => activeOwnerTokens.has(entry.ownerToken));\n\t\t\tif (remaining.length === 0) toolReplacementChains.delete(name);\n\t\t\telse if (remaining.length !== chain.length) toolReplacementChains.set(name, remaining);\n\t\t}\n\t};\n\tconst revokeState = (api: CapabilityAPI, state: APIState): void => {\n\t\tstate.active = false;\n\t\tactiveOwnerTokens.delete(state.ownerToken);\n\t\tfor (const instance of state.compositionInstances ?? []) void instance.dispose();\n\t\tstate.compositionInstances?.clear();\n\t\tconst definitionBinding = options.composition as Partial<AgentCompositionDefinitionBinding> | undefined;\n\t\tdefinitionBinding?.disposeDefinitions?.(Array.from(state.compositionDefinitions ?? []));\n\t\tstate.compositionDefinitions?.clear();\n\t\tcancelOwnedOperations(state.ownerToken, state.owner);\n\t\tcleanupArtifacts(state.ownerToken);\n\t\tcleanupStateWatchers(state.ownerToken);\n\t\tcleanupDiagnostics(state.owner);\n\t\tcleanupPluginCapabilities(state.ownerToken);\n\t\tcleanupContributionPoints(state.ownerToken);\n\t\tcleanupLifecycle(state.ownerToken);\n\t\tcleanupRegisteredCapabilities(state.ownerToken);\n\t\tapiStates.delete(api);\n\t};\n\n\tconst cleanupContributionPoints = (ownerToken: symbol): void => {\n\t\tfor (const [key, point] of contributionPoints) {\n\t\t\tif (point.ownerToken === ownerToken) contributionPoints.delete(key);\n\t\t\tfor (const [id, entry] of point.entries) {\n\t\t\t\tif (entry.ownerToken === ownerToken) point.entries.delete(id);\n\t\t\t}\n\t\t\tfor (const [id, subscriber] of point.subscribers) {\n\t\t\t\tif (subscriber.ownerToken === ownerToken) point.subscribers.delete(id);\n\t\t\t}\n\t\t}\n\t};\n\n\tconst closeLifecycleRegistrationQueue = (registration: StoredLifecycleRegistration): void => {\n\t\tconst queue = registration.queue;\n\t\tif (!queue) return;\n\t\tqueue.close();\n\t\tvoid queue\n\t\t\t.drain()\n\t\t\t.then(() => lifecycleDeliveryQueues.delete(queue as LifecycleDeliveryQueue<QueuedLifecycleDelivery<unknown>>));\n\t};\n\tconst cleanupLifecycle = (ownerToken: symbol): void => {\n\t\tfor (const [key, stored] of lifecycleDefinitions) {\n\t\t\tif (stored.ownerToken === ownerToken) lifecycleDefinitions.delete(key);\n\t\t}\n\t\tfor (const [key, registrations] of lifecycleRegistrations) {\n\t\t\tfor (const [id, registration] of registrations) {\n\t\t\t\tif (registration.ownerToken === ownerToken) {\n\t\t\t\t\tcloseLifecycleRegistrationQueue(registration);\n\t\t\t\t\tregistrations.delete(id);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (registrations.size === 0) lifecycleRegistrations.delete(key);\n\t\t}\n\t};\n\n\tconst cleanupStateWatchers = (ownerToken: symbol): void => {\n\t\tfor (const [owner, watchers] of stateWatchers) {\n\t\t\tfor (const [id, watcher] of watchers) if (watcher.ownerToken === ownerToken) watchers.delete(id);\n\t\t\tif (watchers.size === 0) stateWatchers.delete(owner);\n\t\t}\n\t};\n\tconst cleanupDiagnostics = (owner: string): void => {\n\t\tfor (const span of spans.values()) {\n\t\t\tif (span.pluginId === owner && span.status === \"running\") {\n\t\t\t\tspan.status = \"cancelled\";\n\t\t\t\tspan.endedAt = clock();\n\t\t\t}\n\t\t}\n\t};\n\n\tconst assertStateKey = (key: string): void => {\n\t\tif (typeof key !== \"string\" || !key.trim()) throw new Error(t(\"State key must be a non-empty string\"));\n\t};\n\n\tconst assertStateOptions = (options: StateSetOptions | undefined): void => {\n\t\tif (\n\t\t\toptions?.expectedRevision !== undefined &&\n\t\t\t(!Number.isSafeInteger(options.expectedRevision) || options.expectedRevision < 0)\n\t\t) {\n\t\t\tthrow new Error(t(\"State expectedRevision must be a non-negative safe integer\"));\n\t\t}\n\t};\n\n\tconst stateSnapshot = (key: string, state: StoredState): StateEntry =>\n\t\tdetachedSnapshot({ key, revision: state.revision, value: state.value });\n\n\tconst dispatchStateChange = (\n\t\twatchers: Map<string, StateWatcher> | undefined,\n\t\towner: string,\n\t\tchange: StateChange,\n\t): void => {\n\t\tif (!watchers) return;\n\t\tfor (const watcher of watchers.values()) {\n\t\t\tif (watcher.prefix !== undefined && !change.key.startsWith(watcher.prefix)) continue;\n\t\t\tif (!activeOwnerTokens.has(watcher.ownerToken)) continue;\n\t\t\ttry {\n\t\t\t\twatcher.handler(detachedSnapshot(change));\n\t\t\t} catch (error) {\n\t\t\t\trecordLog(\"error\", owner, \"State watcher failed\", { key: change.key }, error);\n\t\t\t}\n\t\t}\n\t};\n\n\tconst notifyStateWatchers = (owner: string, change: StateChange): void =>\n\t\tdispatchStateChange(stateWatchers.get(owner), owner, change);\n\n\tconst recordLog = (\n\t\tlevel: LoggerLevel,\n\t\towner: string,\n\t\tmessage: string,\n\t\tfields?: PluginConfigValue,\n\t\tcause?: unknown,\n\t): void => {\n\t\tif (typeof message !== \"string\" || !message.trim()) throw new Error(t(\"Logger message must be non-empty\"));\n\t\tif (fields !== undefined && !isPluginConfigValue(fields))\n\t\t\tthrow new Error(t(\"Logger fields must be serializable\"));\n\t\tconst record: LoggerRecord = {\n\t\t\tversion: 1,\n\t\t\tlevel,\n\t\t\tmessage,\n\t\t\tpluginId: owner,\n\t\t\ttimestamp: clock(),\n\t\t\t...(options.session === undefined ? {} : { sessionId: options.session.getSessionId() }),\n\t\t\t...(fields === undefined ? {} : { fields: detachedSnapshot(fields) }),\n\t\t\t...(cause === undefined ? {} : { cause: detachedSnapshot(cause) }),\n\t\t};\n\t\tlogs.push(record);\n\t\t// 插件日志宿主转发(设计 §7.2):入环后同步转发一次。回调抛错直接吞掉——\n\t\t// 与 notifyToolRegistryChange 同守\"观察者故障不打断调用方\"的边界,但错误\n\t\t// 通道不同:不引入无读者的计数,也绝不经 recordLog 再记录(回调契约禁止\n\t\t// 内部调用 LoggerAPI,防自递归)。\n\t\tif (options.onLogRecord) {\n\t\t\ttry {\n\t\t\t\toptions.onLogRecord(record);\n\t\t\t} catch {\n\t\t\t\t// Swallowed by contract: a failing host sink must never break the\n\t\t\t\t// logger contract nor recurse back through recordLog.\n\t\t\t}\n\t\t}\n\t};\n\n\t/**\n\t * 工具表变更钩子:宿主注入 onToolRegistryChange 后,工具表每次变更(注册、\n\t * 同名替换、卸载、替换链恢复)同步调用一次。回调失败只记运行时日志,不回传\n\t * 注册/卸载路径——宿主观察者故障不得打断注册本身(与 onOutputArtifactCommit\n\t * 的观察者容错通道一致)。缺省不传 = 行为不变。\n\t */\n\tconst notifyToolRegistryChange = (owner: string, name: string): void => {\n\t\tif (!options.onToolRegistryChange) return;\n\t\ttry {\n\t\t\toptions.onToolRegistryChange();\n\t\t} catch (error) {\n\t\t\trecordLog(\"error\", owner, \"Tool registry change observer failed\", { tool: name }, error);\n\t\t}\n\t};\n\n\tconst ownerStateViewFor = (owner: string): StateNamespaceView => ({\n\t\tconflictScope: owner,\n\t\tpluginId: owner,\n\t\twatchScope: owner,\n\t\treadStored: (key) => stateByOwner.get(owner)?.get(key),\n\t\tlistEntries: () => Array.from(stateByOwner.get(owner)?.entries() ?? []),\n\t\tensureNamespace: () => {\n\t\t\tconst namespace = stateByOwner.get(owner) ?? new Map<string, StoredState>();\n\t\t\tstateByOwner.set(owner, namespace);\n\t\t\treturn namespace;\n\t\t},\n\t\tensureRevisions: () => {\n\t\t\tconst revisions = stateRevisionsByOwner.get(owner) ?? new Map<string, number>();\n\t\t\tstateRevisionsByOwner.set(owner, revisions);\n\t\t\treturn revisions;\n\t\t},\n\t\tensureWatchers: () => {\n\t\t\tconst watchers = stateWatchers.get(owner) ?? new Map<string, StateWatcher>();\n\t\t\tstateWatchers.set(owner, watchers);\n\t\t\treturn watchers;\n\t\t},\n\t\tremoveWatcher: (watchers, id) => {\n\t\t\twatchers.delete(id);\n\t\t\tif (watchers.size === 0) stateWatchers.delete(owner);\n\t\t},\n\t\tnotify: (change) => notifyStateWatchers(owner, change),\n\t});\n\n\tconst instanceStateViewFor = (owner: string, instanceId: string): StateNamespaceView => ({\n\t\tconflictScope: `${owner}/${instanceId}`,\n\t\tpluginId: owner,\n\t\twatchScope: `${owner}/${instanceId}`,\n\t\treadStored: (key) => stateByInstance.get(owner)?.get(instanceId)?.get(key),\n\t\tlistEntries: () => Array.from(stateByInstance.get(owner)?.get(instanceId)?.entries() ?? []),\n\t\tensureNamespace: () => {\n\t\t\tconst ownerNamespaces = stateByInstance.get(owner) ?? new Map<string, Map<string, StoredState>>();\n\t\t\tstateByInstance.set(owner, ownerNamespaces);\n\t\t\tconst namespace = ownerNamespaces.get(instanceId) ?? new Map<string, StoredState>();\n\t\t\townerNamespaces.set(instanceId, namespace);\n\t\t\treturn namespace;\n\t\t},\n\t\tensureRevisions: () => {\n\t\t\tconst ownerRevisions = stateRevisionsByInstance.get(owner) ?? new Map<string, Map<string, number>>();\n\t\t\tstateRevisionsByInstance.set(owner, ownerRevisions);\n\t\t\tconst revisions = ownerRevisions.get(instanceId) ?? new Map<string, number>();\n\t\t\townerRevisions.set(instanceId, revisions);\n\t\t\treturn revisions;\n\t\t},\n\t\tensureWatchers: () => {\n\t\t\tconst ownerWatchers = stateWatchersByInstance.get(owner) ?? new Map<string, Map<string, StateWatcher>>();\n\t\t\tstateWatchersByInstance.set(owner, ownerWatchers);\n\t\t\tconst watchers = ownerWatchers.get(instanceId) ?? new Map<string, StateWatcher>();\n\t\t\townerWatchers.set(instanceId, watchers);\n\t\t\treturn watchers;\n\t\t},\n\t\tremoveWatcher: (watchers, id) => {\n\t\t\twatchers.delete(id);\n\t\t\tif (watchers.size === 0) stateWatchersByInstance.get(owner)?.delete(instanceId);\n\t\t},\n\t\tnotify: (change) => dispatchStateChange(stateWatchersByInstance.get(owner)?.get(instanceId), owner, change),\n\t});\n\n\t/**\n\t * One StateAPI implementation shared by the owner namespace and every\n\t * composition instance namespace: the same key validation, CAS, detached\n\t * snapshots, watcher notification, and registration lifecycle.\n\t */\n\tconst createStateApiFor = (\n\t\tview: StateNamespaceView,\n\t\townerToken: symbol,\n\t\tassertUsable: () => void,\n\t\town: (registration: DisposableRegistration) => DisposableRegistration,\n\t): StateAPI => ({\n\t\tget: (key) => {\n\t\t\tassertUsable();\n\t\t\tassertStateKey(key);\n\t\t\tconst value = view.readStored(key);\n\t\t\treturn value ? stateSnapshot(key, value) : undefined;\n\t\t},\n\t\tset: (key, value, options) => {\n\t\t\tassertUsable();\n\t\t\tassertStateKey(key);\n\t\t\tassertStateOptions(options);\n\t\t\tif (!isPluginConfigValue(value)) throw new Error(t(\"State value must be serializable\"));\n\t\t\tconst namespace = view.ensureNamespace();\n\t\t\tconst revisions = view.ensureRevisions();\n\t\t\tconst currentRevision = revisions.get(key) ?? 0;\n\t\t\tif (options?.expectedRevision !== undefined && options.expectedRevision !== currentRevision)\n\t\t\t\tthrow new Error(\n\t\t\t\t\tt(\"State revision conflict: {conflictScope}/{key}\", { conflictScope: view.conflictScope, key }),\n\t\t\t\t);\n\t\t\tconst revision = currentRevision + 1;\n\t\t\trevisions.set(key, revision);\n\t\t\tnamespace.set(key, { revision, value: detachedSnapshot(value) });\n\t\t\tview.notify({\n\t\t\t\tpluginId: view.pluginId,\n\t\t\t\tkey,\n\t\t\t\trevision,\n\t\t\t\tvalue: detachedSnapshot(value),\n\t\t\t\t...(options?.operationId === undefined ? {} : { operationId: options.operationId }),\n\t\t\t\t...(options?.correlationId === undefined ? {} : { correlationId: options.correlationId }),\n\t\t\t});\n\t\t\treturn revision;\n\t\t},\n\t\tdelete: (key, options) => {\n\t\t\tassertUsable();\n\t\t\tassertStateKey(key);\n\t\t\tassertStateOptions(options);\n\t\t\tconst namespace = view.ensureNamespace();\n\t\t\tconst revisions = view.ensureRevisions();\n\t\t\tconst currentRevision = revisions.get(key) ?? 0;\n\t\t\tif (options?.expectedRevision !== undefined && options.expectedRevision !== currentRevision)\n\t\t\t\tthrow new Error(\n\t\t\t\t\tt(\"State revision conflict: {conflictScope}/{key}\", { conflictScope: view.conflictScope, key }),\n\t\t\t\t);\n\t\t\tconst revision = currentRevision + 1;\n\t\t\trevisions.set(key, revision);\n\t\t\tnamespace.delete(key);\n\t\t\tview.notify({\n\t\t\t\tpluginId: view.pluginId,\n\t\t\t\tkey,\n\t\t\t\trevision,\n\t\t\t\t...(options?.operationId === undefined ? {} : { operationId: options.operationId }),\n\t\t\t\t...(options?.correlationId === undefined ? {} : { correlationId: options.correlationId }),\n\t\t\t});\n\t\t\treturn revision;\n\t\t},\n\t\tlist: (prefix) => {\n\t\t\tassertUsable();\n\t\t\tif (prefix !== undefined && typeof prefix !== \"string\") throw new Error(t(\"State prefix must be a string\"));\n\t\t\treturn view\n\t\t\t\t.listEntries()\n\t\t\t\t.filter(([key]) => prefix === undefined || key.startsWith(prefix))\n\t\t\t\t.sort(([a], [b]) => a.localeCompare(b))\n\t\t\t\t.map(([key, value]) => stateSnapshot(key, value));\n\t\t},\n\t\twatch: (prefix, handler) => {\n\t\t\tassertUsable();\n\t\t\tif (prefix !== undefined && typeof prefix !== \"string\") throw new Error(t(\"State prefix must be a string\"));\n\t\t\tif (typeof handler !== \"function\") throw new Error(t(\"State watcher requires a handler\"));\n\t\t\tconst watchers = view.ensureWatchers();\n\t\t\tconst sequence = ++stateWatcherSequence;\n\t\t\tconst id = createRuntimeId(\"state-watcher\", sequence, `state-watcher:${view.watchScope}:${sequence}`);\n\t\t\twatchers.set(id, { owner: view.pluginId, ownerToken, prefix, handler });\n\t\t\treturn own(\n\t\t\t\tcreateDisposableRegistration(\n\t\t\t\t\t\"state-watcher\",\n\t\t\t\t\t() => {\n\t\t\t\t\t\tview.removeWatcher(watchers, id);\n\t\t\t\t\t},\n\t\t\t\t\tid,\n\t\t\t\t),\n\t\t\t);\n\t\t},\n\t});\n\n\t/**\n\t * Drop one instance namespace (data, revisions, watchers); instance ids are\n\t * unique per composition runtime. Clearing the watch table is defense in\n\t * depth: registrations are tracked to the operation lifecycle and normally\n\t * dispose themselves before the instance does, so the table is usually\n\t * empty here — keep the cleanup in case that tracking ever changes.\n\t */\n\tconst clearInstanceState = (owner: string, instanceId: string): void => {\n\t\tconst namespaces = stateByInstance.get(owner);\n\t\tnamespaces?.delete(instanceId);\n\t\tif (namespaces?.size === 0) stateByInstance.delete(owner);\n\t\tconst revisions = stateRevisionsByInstance.get(owner);\n\t\trevisions?.delete(instanceId);\n\t\tif (revisions?.size === 0) stateRevisionsByInstance.delete(owner);\n\t\tconst watchers = stateWatchersByInstance.get(owner);\n\t\twatchers?.delete(instanceId);\n\t\tif (watchers?.size === 0) stateWatchersByInstance.delete(owner);\n\t};\n\n\t// Instance ids are unique per composition runtime, so one runtime-level\n\t// id-to-owner index lets every registered clearer resolve the namespace that\n\t// must be dropped; clearers from unrelated runtimes find no entry and no-op.\n\tconst instanceStateOwners = new Map<string, string>();\n\tconst clearRegisteredInstanceState = (instanceId: string): void => {\n\t\tconst owner = instanceStateOwners.get(instanceId);\n\t\tif (owner === undefined) return;\n\t\tinstanceStateOwners.delete(instanceId);\n\t\tclearInstanceState(owner, instanceId);\n\t};\n\tif (options.composition) {\n\t\t(options.composition as Partial<AgentCompositionInstanceStateBinding>).addInstanceStateClearer?.(\n\t\t\tclearRegisteredInstanceState,\n\t\t);\n\t}\n\n\tconst validateOutputInput = (input: OutputArtifactPutInput): void => {\n\t\tif (!input || typeof input !== \"object\")\n\t\t\tthrow new OutputArtifactError(\"invalid_ref\", \"Artifact input is required\");\n\t\tfor (const [name, value] of [\n\t\t\t[\"sessionId\", input.sessionId],\n\t\t\t[\"operationId\", input.operationId],\n\t\t\t[\"kind\", input.kind],\n\t\t\t[\"mediaType\", input.mediaType],\n\t\t] as const) {\n\t\t\tif (typeof value !== \"string\" || !value.trim()) {\n\t\t\t\tthrow new OutputArtifactError(\"invalid_ref\", `Artifact ${name} must be a non-empty string`);\n\t\t\t}\n\t\t}\n\t\tif (typeof input.truncated !== \"boolean\") {\n\t\t\tthrow new OutputArtifactError(\"invalid_ref\", \"Artifact truncated must be a boolean\");\n\t\t}\n\t\tif (\n\t\t\t!(input.data instanceof Uint8Array) &&\n\t\t\t(!input.data || typeof input.data[Symbol.asyncIterator] !== \"function\")\n\t\t) {\n\t\t\tthrow new OutputArtifactError(\"invalid_ref\", \"Artifact data must be Uint8Array or AsyncIterable<Uint8Array>\");\n\t\t}\n\t};\n\n\tconst validateOutputRef = (ref: OutputArtifactRef): void => {\n\t\tif (!ref || typeof ref !== \"object\" || typeof ref.artifactId !== \"string\" || !ref.artifactId) {\n\t\t\tthrow new OutputArtifactError(\"invalid_ref\", \"Artifact reference requires a non-empty artifactId\");\n\t\t}\n\t};\n\n\t/**\n\t * 工具表同名替换链:name → 被替换的历史注册(栈,栈顶是最近被替换者)。\n\t * 跨 owner 的重注册把现表项压栈,替换方注册 dispose 时弹出栈顶恢复(多层替换\n\t * 成链,逐层恢复);owner 已失效的记录直接跳过,不把已撤销的注册放回工具表。\n\t */\n\tconst toolReplacementChains = new Map<string, RegisteredCapability<unknown>[]>();\n\tconst restoreReplacedTool = (registry: Map<string, RegisteredCapability<unknown>>, name: string): boolean => {\n\t\tconst chain = toolReplacementChains.get(name);\n\t\twhile (chain !== undefined && chain.length > 0) {\n\t\t\tconst restored = chain.pop();\n\t\t\tif (restored === undefined) break;\n\t\t\tif (chain.length === 0) toolReplacementChains.delete(name);\n\t\t\tif (activeOwnerTokens.has(restored.ownerToken)) {\n\t\t\t\tregistry.set(name, restored);\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t};\n\n\tconst register = <T>(\n\t\tkind: string,\n\t\tname: string,\n\t\tvalue: T,\n\t\towner: string,\n\t\townerToken: symbol,\n\t\tregistry: Map<string, RegisteredCapability<T>>,\n\t\toptions?: { readonly replaceable?: boolean },\n\t): DisposableRegistration => {\n\t\tconst replaceable = options?.replaceable === true;\n\t\tconst tracksToolRegistry = registry === (tools as unknown as Map<string, RegisteredCapability<T>>);\n\t\tconst entry: RegisteredCapability<T> = { owner, ownerToken, value };\n\t\tif (registry.has(name)) {\n\t\t\tif (!replaceable) throw new Error(t(\"{kind} is already registered: {name}\", { kind, name }));\n\t\t\tconst replaced = registry.get(name) as RegisteredCapability<T>;\n\t\t\t// 同 owner 重注册 = 更新自身注册,不进替换链;恢复语义只跨 owner 生效。\n\t\t\tif (replaced.ownerToken !== ownerToken) {\n\t\t\t\tconst chain = toolReplacementChains.get(name) ?? [];\n\t\t\t\tchain.push(replaced as RegisteredCapability<unknown>);\n\t\t\t\ttoolReplacementChains.set(name, chain);\n\t\t\t}\n\t\t}\n\t\tregistry.set(name, entry);\n\t\tif (tracksToolRegistry) notifyToolRegistryChange(owner, name);\n\t\tconst id = `registration:${owner}:${kind}:${name}`;\n\t\treturn createDisposableRegistration(\n\t\t\tkind,\n\t\t\t() => {\n\t\t\t\tconst current = registry.get(name);\n\t\t\t\t// 已被后续注册接手:恢复责任随表项转移,本注册不再动表。\n\t\t\t\tif (current !== undefined && current !== entry) return;\n\t\t\t\tlet changed = current !== undefined;\n\t\t\t\tregistry.delete(name);\n\t\t\t\tif (\n\t\t\t\t\treplaceable &&\n\t\t\t\t\trestoreReplacedTool(registry as unknown as Map<string, RegisteredCapability<unknown>>, name)\n\t\t\t\t) {\n\t\t\t\t\tchanged = true;\n\t\t\t\t}\n\t\t\t\tif (changed && tracksToolRegistry) notifyToolRegistryChange(owner, name);\n\t\t\t},\n\t\t\tid,\n\t\t);\n\t};\n\n\tconst listPluginCapabilities = (options?: { kind?: PluginCapabilityDeclaration[\"kind\"] }) =>\n\t\tArray.from(pluginCapabilities.values())\n\t\t\t.filter((entry) => options?.kind === undefined || entry.declaration.kind === options.kind)\n\t\t\t.sort((left, right) => {\n\t\t\t\tconst leftKey = capabilityKey(left.declaration.id, left.declaration.version);\n\t\t\t\tconst rightKey = capabilityKey(right.declaration.id, right.declaration.version);\n\t\t\t\treturn leftKey < rightKey ? -1 : leftKey > rightKey ? 1 : 0;\n\t\t\t})\n\t\t\t.map((entry) => Object.freeze({ declaration: detachedSnapshot(entry.declaration), owner: entry.owner }));\n\n\tconst assertRequiredPluginCapabilities = (manifest: PluginManifest): void => {\n\t\tfor (const requirement of manifest.requires ?? []) {\n\t\t\tif (pluginCapabilities.has(capabilityKey(requirement.id, requirement.version))) continue;\n\t\t\tif (requirement.optional) continue;\n\t\t\tthrow new Error(\n\t\t\t\tt(\"Plugin capability is required but unavailable: {capabilityId}@{version} ({pluginId})\", {\n\t\t\t\t\tcapabilityId: requirement.id,\n\t\t\t\t\tversion: requirement.version,\n\t\t\t\t\tpluginId: manifest.id,\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\t};\n\n\tconst listContributionEntries = <TValue>(\n\t\tpoint: StoredContributionPoint<TValue>,\n\t): readonly ContributionEntry<TValue>[] =>\n\t\tArray.from(point.entries.values())\n\t\t\t.filter((entry) => activeOwnerTokens.has(entry.ownerToken))\n\t\t\t.sort((left, right) => stableTextCompare(left.id, right.id) || stableTextCompare(left.owner, right.owner))\n\t\t\t.map(({ ownerToken: _, ...entry }) => detachedSnapshot(entry));\n\n\tconst notifyContributionSubscribers = async <TValue>(\n\t\tpoint: StoredContributionPoint<TValue>,\n\t\tevent: ContributionChangeEvent<TValue>,\n\t): Promise<void> => {\n\t\tconst results = await Promise.allSettled(\n\t\t\tArray.from(point.subscribers.values(), (subscriber) => {\n\t\t\t\tif (!activeOwnerTokens.has(subscriber.ownerToken)) return Promise.resolve();\n\t\t\t\treturn Promise.resolve().then(() => subscriber.handler(detachedSnapshot(event)));\n\t\t\t}),\n\t\t);\n\t\tconst failures = results\n\t\t\t.filter((result): result is PromiseRejectedResult => result.status === \"rejected\")\n\t\t\t.map((result) => result.reason);\n\t\tif (failures.length === 1) throw failures[0];\n\t\tif (failures.length > 1)\n\t\t\tthrow new AggregateError(failures, `Contribution event delivery failed: ${event.pointId}`);\n\t};\n\n\tconst contributionPointFor = <TValue>(\n\t\tpoint: StoredContributionPoint<TValue>,\n\t\towner: string,\n\t\townerToken: symbol,\n\t\tassertUsable: () => void,\n\t\town: (registration: DisposableRegistration) => DisposableRegistration,\n\t): ContributionPoint<TValue> => {\n\t\tconst assertPointActive = (): void => {\n\t\t\tassertUsable();\n\t\t\tif (!activeOwnerTokens.has(point.ownerToken)) throw createRevokedCapabilityError(point.owner);\n\t\t};\n\t\tconst pointId = point.definition.id;\n\t\tconst version = point.definition.version;\n\t\tconst lifecycle = point.definition.lifecycle ?? \"observe\";\n\t\treturn Object.freeze({\n\t\t\tid: pointId,\n\t\t\tversion,\n\t\t\tschema: point.definition.schema,\n\t\t\tlifecycle,\n\t\t\tasync add(input: { id: string; value: TValue }): Promise<ContributionHandle> {\n\t\t\t\tassertPointActive();\n\t\t\t\tif (!input || typeof input.id !== \"string\" || !input.id.trim()) {\n\t\t\t\t\tthrow new Error(t(\"Contribution requires a non-empty id: {pointId}\", { pointId }));\n\t\t\t\t}\n\t\t\t\tif (point.entries.has(input.id)) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\tt(\"Contribution is already registered: {pointId}@{version}:{id}\", { pointId, version, id: input.id }),\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tconst value = detachedSnapshot(point.definition.validate(detachedSnapshot(input.value)));\n\t\t\t\tconst entry = Object.freeze({ id: input.id, pointId, version, owner, ownerToken, lifecycle, value });\n\t\t\t\tpoint.entries.set(input.id, entry);\n\t\t\t\tconst registration = own(\n\t\t\t\t\tcreateDisposableRegistration(\n\t\t\t\t\t\t\"contribution\",\n\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\tif (point.entries.get(input.id) !== entry) return;\n\t\t\t\t\t\t\tpoint.entries.delete(input.id);\n\t\t\t\t\t\t\tif (point.subscribers.size === 0) return;\n\t\t\t\t\t\t\treturn notifyContributionSubscribers(point, {\n\t\t\t\t\t\t\t\tpointId,\n\t\t\t\t\t\t\t\tversion,\n\t\t\t\t\t\t\t\taction: \"removed\",\n\t\t\t\t\t\t\t\tcontributionId: input.id,\n\t\t\t\t\t\t\t\towner,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t},\n\t\t\t\t\t\t`registration:${owner}:contribution:${pointId}@${version}:${input.id}`,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t\tawait notifyContributionSubscribers(point, {\n\t\t\t\t\tpointId,\n\t\t\t\t\tversion,\n\t\t\t\t\taction: \"added\",\n\t\t\t\t\tcontributionId: input.id,\n\t\t\t\t\towner,\n\t\t\t\t\tentry: detachedSnapshot({\n\t\t\t\t\t\tid: entry.id,\n\t\t\t\t\t\tpointId: entry.pointId,\n\t\t\t\t\t\tversion: entry.version,\n\t\t\t\t\t\towner: entry.owner,\n\t\t\t\t\t\tlifecycle: entry.lifecycle,\n\t\t\t\t\t\tvalue: entry.value,\n\t\t\t\t\t}),\n\t\t\t\t});\n\t\t\t\treturn Object.freeze({ id: input.id, pointId, version, owner, dispose: () => registration.dispose() });\n\t\t\t},\n\t\t\tasync remove(id: string): Promise<void> {\n\t\t\t\tassertPointActive();\n\t\t\t\tconst entry = point.entries.get(id);\n\t\t\t\tif (!entry)\n\t\t\t\t\tthrow new Error(t(\"Contribution is not registered: {pointId}@{version}:{id}\", { pointId, version, id }));\n\t\t\t\tif (entry.ownerToken !== ownerToken)\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\tt(\"Contribution can only be removed by its owner: {pointId}@{version}:{id}\", {\n\t\t\t\t\t\t\tpointId,\n\t\t\t\t\t\t\tversion,\n\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t}),\n\t\t\t\t\t);\n\t\t\t\tpoint.entries.delete(id);\n\t\t\t\tawait notifyContributionSubscribers(point, {\n\t\t\t\t\tpointId,\n\t\t\t\t\tversion,\n\t\t\t\t\taction: \"removed\",\n\t\t\t\t\tcontributionId: id,\n\t\t\t\t\towner,\n\t\t\t\t});\n\t\t\t},\n\t\t\tlist: () => {\n\t\t\t\tassertPointActive();\n\t\t\t\treturn listContributionEntries(point);\n\t\t\t},\n\t\t\tsubscribe: (handler: (event: ContributionChangeEvent<TValue>) => void | Promise<void>) => {\n\t\t\t\tassertPointActive();\n\t\t\t\tif (typeof handler !== \"function\")\n\t\t\t\t\tthrow new Error(t(\"Contribution subscriber must be callable: {pointId}\", { pointId }));\n\t\t\t\tconst sequence = ++contributionSubscriptionSequence;\n\t\t\t\tconst id = createRuntimeId(\n\t\t\t\t\t\"contribution-subscription\",\n\t\t\t\t\tsequence,\n\t\t\t\t\t`contribution-subscription:${owner}:${pointId}@${version}:${sequence}`,\n\t\t\t\t);\n\t\t\t\tpoint.subscribers.set(id, { ownerToken, handler });\n\t\t\t\treturn own(\n\t\t\t\t\tcreateDisposableRegistration(\n\t\t\t\t\t\t\"contribution-subscription\",\n\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\tpoint.subscribers.delete(id);\n\t\t\t\t\t\t},\n\t\t\t\t\t\tid,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t},\n\t\t});\n\t};\n\n\tconst lifecycleReference = (\n\t\tevent: LifecycleEventDefinition | LifecycleEventReference | string,\n\t\tversion?: number,\n\t): { id: string; version: number } => {\n\t\tif (typeof event === \"string\") {\n\t\t\tif (typeof version !== \"number\" || !Number.isSafeInteger(version) || version < 1) {\n\t\t\t\tthrow new Error(t(\"Lifecycle event version must be provided as a positive safe integer\"));\n\t\t\t}\n\t\t\treturn { id: event, version };\n\t\t}\n\t\tif (!event || typeof event !== \"object\" || typeof event.id !== \"string\" || !event.id.trim()) {\n\t\t\tthrow new Error(t(\"Lifecycle event reference requires a non-empty id\"));\n\t\t}\n\t\tif (!Number.isSafeInteger(event.version) || event.version < 1) {\n\t\t\tthrow new Error(t(\"Lifecycle event version must be a positive safe integer\"));\n\t\t}\n\t\treturn { id: event.id, version: event.version };\n\t};\n\n\tconst lifecycleDefinitionFor = <TData>(\n\t\tevent: LifecycleEventDefinition<TData> | LifecycleEventReference | string,\n\t\tversion?: number,\n\t): StoredLifecycleDefinition<TData> => {\n\t\tconst reference = lifecycleReference(event, version);\n\t\tconst stored = lifecycleDefinitions.get(lifecycleEventKey(reference.id, reference.version)) as\n\t\t\t| StoredLifecycleDefinition<TData>\n\t\t\t| undefined;\n\t\tif (!stored || !activeOwnerTokens.has(stored.ownerToken)) {\n\t\t\tthrow new Error(\n\t\t\t\tt(\"Lifecycle event is not defined: {id}@{version}\", { id: reference.id, version: reference.version }),\n\t\t\t);\n\t\t}\n\t\treturn stored;\n\t};\n\n\tconst lifecycleRegistration = <TData>(\n\t\tkind: LifecycleRegistrationKind,\n\t\tevent: LifecycleEventDefinition<TData> | LifecycleEventReference | string,\n\t\thandler:\n\t\t\t| LifecycleObserveHandler<TData>\n\t\t\t| LifecycleTransformHandler<TData>\n\t\t\t| LifecycleExecuteHandler<TData>\n\t\t\t| LifecycleAfterCommitHandler<TData>,\n\t\tversion: number | undefined,\n\t\towner: string,\n\t\townerToken: symbol,\n\t\tassertUsable: () => void,\n\t\town: (registration: DisposableRegistration) => DisposableRegistration,\n\t\tdeliveryOptions?: LifecycleDeliveryOptions,\n\t): DisposableRegistration => {\n\t\tassertUsable();\n\t\tif (!lifecycleRegistrationKinds.has(kind) || typeof handler !== \"function\") {\n\t\t\tthrow new Error(t(\"Lifecycle {kind} registration requires a callable handler\", { kind }));\n\t\t}\n\t\tconst stored = lifecycleDefinitionFor(event, version);\n\t\tif (stored.definition.allowedRegistrationKinds?.includes(kind) === false) {\n\t\t\tthrow new Error(t(\"Lifecycle {kind} registration is not allowed: {id}\", { kind, id: stored.definition.id }));\n\t\t}\n\t\tif (\n\t\t\tkind === \"transform\" &&\n\t\t\t!(stored.definition.allowedPhases ?? [stored.definition.phase]).includes(\"candidate\")\n\t\t) {\n\t\t\tthrow new Error(t(\"Lifecycle transform requires a candidate event: {id}\", { id: stored.definition.id }));\n\t\t}\n\t\tif (kind === \"execute\" && !(stored.definition.allowedPhases ?? [stored.definition.phase]).includes(\"committed\")) {\n\t\t\tthrow new Error(t(\"Lifecycle execute requires a committed event: {id}\", { id: stored.definition.id }));\n\t\t}\n\t\tif (\n\t\t\tkind === \"after-commit\" &&\n\t\t\t!(stored.definition.allowedPhases ?? [stored.definition.phase]).includes(\"committed\")\n\t\t) {\n\t\t\tthrow new Error(t(\"Lifecycle after-commit requires a committed event: {id}\", { id: stored.definition.id }));\n\t\t}\n\t\tif (deliveryOptions !== undefined && kind !== \"observe\" && kind !== \"after-commit\") {\n\t\t\tthrow new Error(\n\t\t\t\tt(\"Lifecycle delivery options are only supported for observation registrations: {id}\", {\n\t\t\t\t\tid: stored.definition.id,\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\t\tconst key = lifecycleEventKey(stored.definition.id, stored.definition.version);\n\t\tconst sequence = ++lifecycleRegistrationSequence;\n\t\tconst id = createRuntimeId(\"lifecycle-registration\", sequence, `lifecycle:${owner}:${kind}:${key}:${sequence}`);\n\t\tconst registration: StoredLifecycleRegistration<TData> = {\n\t\t\tid,\n\t\t\towner,\n\t\t\townerToken,\n\t\t\tkind,\n\t\t\tsequence: lifecycleRegistrationSequence,\n\t\t\thandler,\n\t\t\tdelivery: Object.freeze({\n\t\t\t\tmode: deliveryOptions === undefined ? \"inline\" : \"bounded-queue\",\n\t\t\t\t...deliveryOptions,\n\t\t\t}),\n\t\t};\n\t\tif (deliveryOptions !== undefined) {\n\t\t\tconst queue = createLifecycleDeliveryQueue<QueuedLifecycleDelivery<TData>>({\n\t\t\t\tmaxPendingEvents: deliveryOptions.maxPendingEvents,\n\t\t\t\tmaxPendingBytes: deliveryOptions.maxPendingBytes,\n\t\t\t\tmeasureBytes: (delivery) => {\n\t\t\t\t\tconst serialized = JSON.stringify(delivery.event);\n\t\t\t\t\tif (serialized === undefined) throw new Error(t(\"Lifecycle event is not serializable\"));\n\t\t\t\t\treturn new TextEncoder().encode(serialized).byteLength || 1;\n\t\t\t\t},\n\t\t\t\tdeliver: (delivery) => {\n\t\t\t\t\tconst registered = {\n\t\t\t\t\t\towner: registration.owner,\n\t\t\t\t\t\townerToken: registration.ownerToken,\n\t\t\t\t\t\tvalue: registration.handler,\n\t\t\t\t\t};\n\t\t\t\t\treturn invokeRegisteredCapabilityWithSignal(registered, delivery.signal, (value) =>\n\t\t\t\t\t\t(value as LifecycleObserveHandler<TData>)(detachedSnapshot(delivery.event), delivery.signal),\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\toverflowCode:\n\t\t\t\t\tstored.definition.id === \"model.stream\"\n\t\t\t\t\t\t? \"model_stream_backpressure_overflow\"\n\t\t\t\t\t\t: \"lifecycle_delivery_backpressure_overflow\",\n\t\t\t});\n\t\t\tregistration.queue = queue;\n\t\t\tlifecycleDeliveryQueues.add(queue as LifecycleDeliveryQueue<QueuedLifecycleDelivery<unknown>>);\n\t\t}\n\t\tconst registrations = lifecycleRegistrations.get(key) ?? new Map<string, StoredLifecycleRegistration>();\n\t\tregistrations.set(id, registration as StoredLifecycleRegistration);\n\t\tlifecycleRegistrations.set(key, registrations);\n\t\treturn own(\n\t\t\tcreateDisposableRegistration(\n\t\t\t\t`lifecycle-${kind}`,\n\t\t\t\t() => {\n\t\t\t\t\tif (registrations.get(id) !== registration) return;\n\t\t\t\t\tconst queue = registration.queue;\n\t\t\t\t\tqueue?.close();\n\t\t\t\t\tif (queue)\n\t\t\t\t\t\tvoid queue\n\t\t\t\t\t\t\t.drain()\n\t\t\t\t\t\t\t.then(() =>\n\t\t\t\t\t\t\t\tlifecycleDeliveryQueues.delete(\n\t\t\t\t\t\t\t\t\tqueue as LifecycleDeliveryQueue<QueuedLifecycleDelivery<unknown>>,\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t);\n\t\t\t\t\tregistrations.delete(id);\n\t\t\t\t\tif (registrations.size === 0) lifecycleRegistrations.delete(key);\n\t\t\t\t},\n\t\t\t\tid,\n\t\t\t),\n\t\t);\n\t};\n\n\tconst apiFor = (manifest: PluginManifest): CapabilityAPI => {\n\t\t// Snapshot the caller-owned manifest before validation so later mutation\n\t\t// cannot alter capability declarations or required-capability checks.\n\t\tconst manifestSnapshot = detachedSnapshot(manifest);\n\t\tassertManifest(manifestSnapshot, host);\n\t\tassertRequiredPluginCapabilities(manifestSnapshot);\n\t\tconst config = createPluginConfig(manifestSnapshot.config);\n\t\tconst apiManifest = detachedSnapshot({ ...manifestSnapshot, config });\n\t\tconst owner = manifestSnapshot.id;\n\t\tconst ownerToken = Symbol(owner);\n\t\tconst state: APIState = {\n\t\t\tactive: true,\n\t\t\towner,\n\t\t\townerToken,\n\t\t\tcompositionInstances: new Set(),\n\t\t\tcompositionDefinitions: new Set(),\n\t\t};\n\t\tactiveOwnerTokens.add(ownerToken);\n\t\tconst assertUsable = (): void => {\n\t\t\tif (!state.active) throw new Error(`Capability API is revoked: ${owner}`);\n\t\t};\n\t\tconst compositionLifecycleDispatcher: AgentCompositionLifecycleDispatcher = (event) => {\n\t\t\t// The dispatcher is captured by this API state and passed to each\n\t\t\t// instance it creates. Never resolve ownership by searching the shared\n\t\t\t// composition runtime: another CapabilityRuntime may use the same one.\n\t\t\tif (!state.active || !activeOwnerTokens.has(ownerToken) || event.owner !== owner) return;\n\t\t\tif (event.event === \"start\") {\n\t\t\t\tstatuses.set(event.operationId, \"running\");\n\t\t\t\treportOperationStart(event.operationId, event.operationKind, [ownerToken]);\n\t\t\t} else if (event.event === \"step\") {\n\t\t\t\tif (event.progress === undefined || event.step === undefined) return;\n\t\t\t\treportOperationStep(event.operationId, event.operationKind, [ownerToken], event.progress, event.step);\n\t\t\t} else if (event.event === \"cancel\") {\n\t\t\t\tstatuses.set(event.operationId, \"cancelled\");\n\t\t\t\treportOperationCancel(event.operationId, event.operationKind, [ownerToken]);\n\t\t\t} else {\n\t\t\t\tconst status = event.status ?? \"failed\";\n\t\t\t\tstatuses.set(event.operationId, status);\n\t\t\t\treportOperationEnd(event.operationId, event.operationKind, status, [ownerToken]);\n\t\t\t}\n\t\t};\n\t\tconst own = (registration: DisposableRegistration): DisposableRegistration => {\n\t\t\tassertUsable();\n\t\t\tconst registrations = pluginRegistrations.get(owner) ?? new Set<DisposableRegistration>();\n\t\t\tregistrations.add(registration);\n\t\t\tpluginRegistrations.set(owner, registrations);\n\t\t\treturn registration;\n\t\t};\n\t\t/**\n\t\t * Counterpart of {@link own} for registrations released by their own\n\t\t * lifecycle (a disposed agent task): a registration set that still holds\n\t\t * them would pin the released resource for the rest of the plugin's life.\n\t\t */\n\t\tconst unown = (registration: DisposableRegistration): void => {\n\t\t\tconst registrations = pluginRegistrations.get(owner);\n\t\t\tif (!registrations) return;\n\t\t\tregistrations.delete(registration);\n\t\t\tif (registrations.size === 0) pluginRegistrations.delete(owner);\n\t\t};\n\t\tconst logger: LoggerAPI = {\n\t\t\tdebug: (message, fields) => {\n\t\t\t\tassertUsable();\n\t\t\t\trecordLog(\"debug\", owner, message, fields);\n\t\t\t},\n\t\t\tinfo: (message, fields) => {\n\t\t\t\tassertUsable();\n\t\t\t\trecordLog(\"info\", owner, message, fields);\n\t\t\t},\n\t\t\twarn: (message, fields) => {\n\t\t\t\tassertUsable();\n\t\t\t\trecordLog(\"warn\", owner, message, fields);\n\t\t\t},\n\t\t\terror: (message, fields, cause) => {\n\t\t\t\tassertUsable();\n\t\t\t\trecordLog(\"error\", owner, message, fields, cause);\n\t\t\t},\n\t\t};\n\t\tconst diagnostics: DiagnosticsAPI = {\n\t\t\tstart: (name, attributes, parentSpanId) => {\n\t\t\t\tassertUsable();\n\t\t\t\tif (typeof name !== \"string\" || !name.trim()) throw new Error(t(\"Diagnostic span name must be non-empty\"));\n\t\t\t\tif (attributes !== undefined && !isPluginConfigValue(attributes))\n\t\t\t\t\tthrow new Error(t(\"Diagnostic attributes must be serializable\"));\n\t\t\t\tif (parentSpanId !== undefined && (typeof parentSpanId !== \"string\" || !parentSpanId.trim()))\n\t\t\t\t\tthrow new Error(t(\"Diagnostic parentSpanId must be non-empty\"));\n\t\t\t\tconst spanSequenceValue = ++spanSequence;\n\t\t\t\tconst spanId = createRuntimeId(\"span\", spanSequenceValue, `span:${owner}:${spanSequenceValue}`);\n\t\t\t\tconst traceId = parentSpanId\n\t\t\t\t\t? (spans.get(parentSpanId)?.traceId ??\n\t\t\t\t\t\t(() => {\n\t\t\t\t\t\t\tconst sequence = ++traceSequence;\n\t\t\t\t\t\t\treturn createRuntimeId(\"trace\", sequence, `trace:${sequence}`);\n\t\t\t\t\t\t})())\n\t\t\t\t\t: (() => {\n\t\t\t\t\t\t\tconst sequence = ++traceSequence;\n\t\t\t\t\t\t\treturn createRuntimeId(\"trace\", sequence, `trace:${sequence}`);\n\t\t\t\t\t\t})();\n\t\t\t\tconst snapshot: DiagnosticsSpanSnapshot = {\n\t\t\t\t\tversion: 1,\n\t\t\t\t\ttraceId,\n\t\t\t\t\tspanId,\n\t\t\t\t\t...(parentSpanId === undefined ? {} : { parentSpanId }),\n\t\t\t\t\tname,\n\t\t\t\t\tpluginId: owner,\n\t\t\t\t\t...(options.session === undefined ? {} : { sessionId: options.session.getSessionId() }),\n\t\t\t\t\tstartedAt: clock(),\n\t\t\t\t\tstatus: \"running\",\n\t\t\t\t\tattributes: detachedSnapshot(attributes ?? {}),\n\t\t\t\t};\n\t\t\t\tspans.set(spanId, snapshot);\n\t\t\t\tlet ended = false;\n\t\t\t\tconst span: DiagnosticsSpan = {\n\t\t\t\t\ttraceId,\n\t\t\t\t\tspanId,\n\t\t\t\t\tannotate(fields) {\n\t\t\t\t\t\tassertUsable();\n\t\t\t\t\t\tif (ended) throw new Error(t(\"Diagnostic span is already ended: {spanId}\", { spanId }));\n\t\t\t\t\t\tif (!fields || typeof fields !== \"object\" || Array.isArray(fields) || !isPluginConfigValue(fields))\n\t\t\t\t\t\t\tthrow new Error(t(\"Diagnostic annotations must be a plain object\"));\n\t\t\t\t\t\tconst current = spans.get(spanId);\n\t\t\t\t\t\tif (!current) throw new Error(t(\"Diagnostic span is not available: {spanId}\", { spanId }));\n\t\t\t\t\t\tcurrent.attributes = detachedSnapshot({\n\t\t\t\t\t\t\t...(current.attributes as Record<string, PluginConfigValue>),\n\t\t\t\t\t\t\t...(fields as Record<string, PluginConfigValue>),\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tend(outcome = { status: \"ok\" }) {\n\t\t\t\t\t\tassertUsable();\n\t\t\t\t\t\tif (ended) throw new Error(t(\"Diagnostic span is already ended: {spanId}\", { spanId }));\n\t\t\t\t\t\tif (![\"ok\", \"error\", \"cancelled\"].includes(outcome.status))\n\t\t\t\t\t\t\tthrow new Error(t(\"Diagnostic span status is invalid\"));\n\t\t\t\t\t\tif (outcome.result !== undefined && !isPluginConfigValue(outcome.result))\n\t\t\t\t\t\t\tthrow new Error(t(\"Diagnostic span result must be serializable\"));\n\t\t\t\t\t\tconst current = spans.get(spanId);\n\t\t\t\t\t\tif (!current) throw new Error(t(\"Diagnostic span is not available: {spanId}\", { spanId }));\n\t\t\t\t\t\tended = true;\n\t\t\t\t\t\tcurrent.status = outcome.status;\n\t\t\t\t\t\tcurrent.endedAt = clock();\n\t\t\t\t\t\tif (outcome.result !== undefined) current.result = detachedSnapshot(outcome.result);\n\t\t\t\t\t\tif (outcome.cause !== undefined) current.cause = detachedSnapshot(outcome.cause);\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t\town(\n\t\t\t\t\tcreateDisposableRegistration(\n\t\t\t\t\t\t\"diagnostic-span\",\n\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\tif (!ended) {\n\t\t\t\t\t\t\t\tconst current = spans.get(spanId);\n\t\t\t\t\t\t\t\tif (current?.status === \"running\") {\n\t\t\t\t\t\t\t\t\tcurrent.status = \"cancelled\";\n\t\t\t\t\t\t\t\t\tcurrent.endedAt = clock();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t`registration:${owner}:diagnostic-span:${spanId}`,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t\treturn span;\n\t\t\t},\n\t\t};\n\t\tconst stateApi: StateAPI = createStateApiFor(ownerStateViewFor(owner), ownerToken, assertUsable, own);\n\t\t/** Instance-private state namespace view for one composition instance; cleared on its disposal. */\n\t\tconst createInstanceStateApi = (instanceOwner: string, instanceId: string): StateAPI =>\n\t\t\tcreateStateApiFor(instanceStateViewFor(instanceOwner, instanceId), ownerToken, assertUsable, own);\n\t\tconst capabilities: CapabilityDirectoryAPI = {\n\t\t\tprovide<TInput = unknown, TResult = unknown>(\n\t\t\t\tdeclaration: PluginCapabilityDeclaration,\n\t\t\t\thandler: CapabilityProviderHandler<TInput, TResult>,\n\t\t\t): DisposableRegistration {\n\t\t\t\tassertUsable();\n\t\t\t\tassertPluginCapabilityDeclarations([declaration], `Plugin capability declaration: ${owner}`);\n\t\t\t\tif (typeof handler !== \"function\")\n\t\t\t\t\tthrow new Error(t(\"Plugin capability provider requires a callable handler\"));\n\t\t\t\tconst declared = manifestSnapshot.provides?.some(\n\t\t\t\t\t(item) =>\n\t\t\t\t\t\titem.id === declaration.id && item.version === declaration.version && item.kind === declaration.kind,\n\t\t\t\t);\n\t\t\t\tif (!declared) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\tt(\"Plugin capability must be declared by its manifest: {id}@{version} ({owner})\", {\n\t\t\t\t\t\t\tid: declaration.id,\n\t\t\t\t\t\t\tversion: declaration.version,\n\t\t\t\t\t\t\towner,\n\t\t\t\t\t\t}),\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tconst key = capabilityKey(declaration.id, declaration.version);\n\t\t\t\tif (pluginCapabilities.has(key)) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\tt(\"Plugin capability is already provided: {id}@{version}\", {\n\t\t\t\t\t\t\tid: declaration.id,\n\t\t\t\t\t\t\tversion: declaration.version,\n\t\t\t\t\t\t}),\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tconst registered: RegisteredPluginCapability = {\n\t\t\t\t\tdeclaration: detachedSnapshot(declaration),\n\t\t\t\t\towner,\n\t\t\t\t\townerToken,\n\t\t\t\t\thandler: handler as CapabilityProviderHandler,\n\t\t\t\t};\n\t\t\t\tpluginCapabilities.set(key, registered);\n\t\t\t\treturn own(\n\t\t\t\t\tcreateDisposableRegistration(\n\t\t\t\t\t\t\"plugin-capability\",\n\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\tif (pluginCapabilities.get(key)?.ownerToken === ownerToken) pluginCapabilities.delete(key);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t`registration:${owner}:plugin-capability:${declaration.id}@${declaration.version}`,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t},\n\t\t\trequire<TResult = unknown>(id: string, requireOptions?: { version?: number }): CapabilityHandle<TResult> {\n\t\t\t\tassertUsable();\n\t\t\t\tassertPluginCapabilityId(id, \"Plugin capability id\");\n\t\t\t\tconst version = requireOptions?.version;\n\t\t\t\tassertPluginCapabilityVersion(version, \"Plugin capability version\");\n\t\t\t\tconst registered = pluginCapabilities.get(capabilityKey(id, version));\n\t\t\t\tif (!registered) throw new Error(t(\"Plugin capability is not available: {id}@{version}\", { id, version }));\n\t\t\t\tconst declaration = detachedSnapshot(registered.declaration);\n\t\t\t\treturn Object.freeze({\n\t\t\t\t\tdeclaration,\n\t\t\t\t\towner: registered.owner,\n\t\t\t\t\tcall: (input: unknown, callOptions?: { signal?: AbortSignal }): OperationHandle<TResult> => {\n\t\t\t\t\t\tassertUsable();\n\t\t\t\t\t\tif (!activeOwnerTokens.has(registered.ownerToken)) {\n\t\t\t\t\t\t\tthrow createRevokedCapabilityError(registered.owner);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst sequence = ++operationSequence;\n\t\t\t\t\t\tconst operationId = createRuntimeId(\n\t\t\t\t\t\t\t\"capability-operation\",\n\t\t\t\t\t\t\tsequence,\n\t\t\t\t\t\t\t`capability:${owner}:${id}@${version}:${sequence}`,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tconst handle = trackOperation(\n\t\t\t\t\t\t\t[ownerToken, registered.ownerToken],\n\t\t\t\t\t\t\tnew RuntimeOperation<TResult>(\n\t\t\t\t\t\t\t\toperationId,\n\t\t\t\t\t\t\t\t(value, context) => invokePluginCapability<TResult>(registered, value, context.signal),\n\t\t\t\t\t\t\t\tdetachedSnapshot(input),\n\t\t\t\t\t\t\t\t(status) => {\n\t\t\t\t\t\t\t\t\tstatuses.set(operationId, status);\n\t\t\t\t\t\t\t\t\tif (status === \"running\") {\n\t\t\t\t\t\t\t\t\t\treportCapabilityCall(\"start\", operationId, owner, registered, [\n\t\t\t\t\t\t\t\t\t\t\townerToken,\n\t\t\t\t\t\t\t\t\t\t\tregistered.ownerToken,\n\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\t\t} else if (status === \"cancelled\") {\n\t\t\t\t\t\t\t\t\t\treportCapabilityCall(\"cancel\", operationId, owner, registered, [\n\t\t\t\t\t\t\t\t\t\t\townerToken,\n\t\t\t\t\t\t\t\t\t\t\tregistered.ownerToken,\n\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t(status) =>\n\t\t\t\t\t\t\t\t\treportCapabilityCall(\n\t\t\t\t\t\t\t\t\t\t\"end\",\n\t\t\t\t\t\t\t\t\t\toperationId,\n\t\t\t\t\t\t\t\t\t\towner,\n\t\t\t\t\t\t\t\t\t\tregistered,\n\t\t\t\t\t\t\t\t\t\t[ownerToken, registered.ownerToken],\n\t\t\t\t\t\t\t\t\t\tstatus,\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t() => false,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t);\n\t\t\t\t\t\tstatuses.set(operationId, handle.status());\n\t\t\t\t\t\tconst signal = callOptions?.signal;\n\t\t\t\t\t\tif (signal) {\n\t\t\t\t\t\t\tif (signal.aborted) void handle.cancel(signal.reason);\n\t\t\t\t\t\t\telse signal.addEventListener(\"abort\", () => void handle.cancel(signal.reason), { once: true });\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn handle;\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t},\n\t\t\tlist: listPluginCapabilities,\n\t\t};\n\t\tconst contributions: ContributionAPI = {\n\t\t\tdefine: <TValue>(definition: ContributionPointDefinition<TValue>): ContributionPoint<TValue> => {\n\t\t\t\tassertUsable();\n\t\t\t\tconst validated = validateContributionPointDefinition(definition);\n\t\t\t\tconst key = contributionPointKey(validated.id, validated.version);\n\t\t\t\tif (contributionPoints.has(key))\n\t\t\t\t\tthrow new Error(t(\"Contribution point is already defined: {key}\", { key }));\n\t\t\t\tconst point: StoredContributionPoint<TValue> = {\n\t\t\t\t\towner,\n\t\t\t\t\townerToken,\n\t\t\t\t\tdefinition: validated,\n\t\t\t\t\tentries: new Map(),\n\t\t\t\t\tsubscribers: new Map(),\n\t\t\t\t};\n\t\t\t\tcontributionPoints.set(key, point as StoredContributionPoint<unknown>);\n\t\t\t\town(\n\t\t\t\t\tcreateDisposableRegistration(\n\t\t\t\t\t\t\"contribution-point\",\n\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\tif (contributionPoints.get(key) === point) contributionPoints.delete(key);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t`registration:${owner}:contribution-point:${key}`,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t\treturn contributionPointFor(point, owner, ownerToken, assertUsable, own);\n\t\t\t},\n\t\t\tget: <TValue>(id: string, version: number): ContributionPoint<TValue> => {\n\t\t\t\tassertUsable();\n\t\t\t\tconst point = contributionPoints.get(contributionPointKey(id, version));\n\t\t\t\tif (!point) throw new Error(`Contribution point is not defined: ${id}@${version}`);\n\t\t\t\treturn contributionPointFor(point as StoredContributionPoint<TValue>, owner, ownerToken, assertUsable, own);\n\t\t\t},\n\t\t\tlist: () =>\n\t\t\t\tArray.from(contributionPoints.values())\n\t\t\t\t\t.filter((point) => activeOwnerTokens.has(point.ownerToken))\n\t\t\t\t\t.sort((left, right) =>\n\t\t\t\t\t\tstableTextCompare(\n\t\t\t\t\t\t\tcontributionPointKey(left.definition.id, left.definition.version),\n\t\t\t\t\t\t\tcontributionPointKey(right.definition.id, right.definition.version),\n\t\t\t\t\t\t),\n\t\t\t\t\t)\n\t\t\t\t\t.map((point) =>\n\t\t\t\t\t\tObject.freeze({\n\t\t\t\t\t\t\tid: point.definition.id,\n\t\t\t\t\t\t\tversion: point.definition.version,\n\t\t\t\t\t\t\tschema: point.definition.schema,\n\t\t\t\t\t\t\tlifecycle: point.definition.lifecycle ?? \"observe\",\n\t\t\t\t\t\t\towner: point.owner,\n\t\t\t\t\t\t}),\n\t\t\t\t\t),\n\t\t};\n\t\tconst createAgentTask = async (request: AgentTaskCreateRequest): Promise<AgentTaskHandle> => {\n\t\t\tassertUsable();\n\t\t\tassertAgentTaskRequest(request);\n\t\t\tconst adapter = options.agents;\n\t\t\tconst session = options.session;\n\t\t\tif (!adapter || !session) throw new Error(t(\"Agent task capability is not available from this host\"));\n\t\t\tconst hostTask = await adapter.create(request);\n\t\t\ttry {\n\t\t\t\tassertUsable();\n\t\t\t} catch (error) {\n\t\t\t\tawait hostTask.dispose();\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\tlet task: RuntimeAgentTask;\n\t\t\tlet registration: DisposableRegistration | undefined;\n\t\t\tlet detachParentCascade: () => void = () => {};\n\t\t\ttry {\n\t\t\t\ttask = new RuntimeAgentTask(\n\t\t\t\t\tcreateRuntimeId(\n\t\t\t\t\t\t\"agent-task\",\n\t\t\t\t\t\t++agentTaskSequence,\n\t\t\t\t\t\t`agent-task:${owner}:${agentTaskSequence}:${runtimeInstanceSegment}`,\n\t\t\t\t\t),\n\t\t\t\t\tsession.getSessionId(),\n\t\t\t\t\trequest,\n\t\t\t\t\thostTask,\n\t\t\t\t\tassertUsable,\n\t\t\t\t\thost.features.includes(\"session-revision-v1\"),\n\t\t\t\t\toptions.agentResults,\n\t\t\t\t\t// Task disposal releases every runtime-side reference — the\n\t\t\t\t\t// live-task set, the parent fence listener and the owner\n\t\t\t\t\t// registration — so a long-lived parent session does not\n\t\t\t\t\t// accumulate settled tasks (and their child session graphs)\n\t\t\t\t\t// until runtime disposal.\n\t\t\t\t\t() => {\n\t\t\t\t\t\tagentTasks.delete(task);\n\t\t\t\t\t\tdetachParentCascade();\n\t\t\t\t\t\tif (registration) unown(registration);\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t} catch (error) {\n\t\t\t\tawait hostTask.dispose();\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\tagentTasks.add(task);\n\t\t\tdetachParentCascade = attachParentCascade(task);\n\t\t\tregistration = own(\n\t\t\t\tcreateDisposableRegistration(\n\t\t\t\t\t\"agent-task\",\n\t\t\t\t\t() => task.dispose(),\n\t\t\t\t\t`registration:${owner}:agent-task:${task.id}`,\n\t\t\t\t),\n\t\t\t);\n\t\t\treturn task;\n\t\t};\n\t\t// Parent-session cancel fence (D-044 §4.2): bind each task once to the\n\t\t// signal current at creation time. Tasks created after the fence already\n\t\t// fired are cancelled immediately; the host refreshes the fence epoch so\n\t\t// later tasks bind to a fresh signal instead of the spent one.\n\t\tconst attachParentCascade = (task: RuntimeAgentTask): (() => void) => {\n\t\t\tconst signal = options.parentSignal?.();\n\t\t\tif (!signal) return () => {};\n\t\t\tconst cancelForParent = (): void => {\n\t\t\t\tvoid task.cancel(\"parent session aborted\").catch(() => {});\n\t\t\t};\n\t\t\tif (signal.aborted) {\n\t\t\t\tcancelForParent();\n\t\t\t\treturn () => {};\n\t\t\t}\n\t\t\tsignal.addEventListener(\"abort\", cancelForParent, { once: true });\n\t\t\t// The fence signal lives as long as its epoch, so the listener must be\n\t\t\t// removable: an unremoved closure would retain the task for the whole\n\t\t\t// epoch even after the task settled and was disposed.\n\t\t\treturn () => signal.removeEventListener(\"abort\", cancelForParent);\n\t\t};\n\t\t/**\n\t\t * Durable replay read: loads the terminal record persisted at settle from\n\t\t * the host-injected durable store. The guarded option pair guarantees the\n\t\t * agentResults option is present whenever the replay feature is declared,\n\t\t * so a missing store only means the host never opted into replay.\n\t\t */\n\t\tconst createAgentResultReader = async (taskId: string): Promise<AgentTaskResultV1 | undefined> => {\n\t\t\tconst record = options.agentResults?.store.loadArtifact({\n\t\t\t\tartifactId: `agent-task:${taskId}`,\n\t\t\t});\n\t\t\treturn record ? (record.data as AgentTaskResultV1) : undefined;\n\t\t};\n\t\t/**\n\t\t * 父→子引导(D-060 S4,程序面):对运行中的 agent task 投递一条有界引导消息。\n\t\t * 只在**本 runtime 的活跃任务**里定位(越界即\"不存在\");宿主会话无 steer 面\n\t\t * 时按任务侧结构化错误透传。\n\t\t */\n\t\tconst createAgentTaskSteer = async (request: { taskId: string; text: string }): Promise<void> => {\n\t\t\tassertUsable();\n\t\t\tconst task = Array.from(agentTasks).find((candidate) => candidate.id === request.taskId);\n\t\t\tif (task === undefined) {\n\t\t\t\tthrow Object.assign(new Error(`no live agent task ${request.taskId} in this runtime`), {\n\t\t\t\t\tcode: \"subagent_unknown_task\",\n\t\t\t\t});\n\t\t\t}\n\t\t\tawait task.steer(request.text);\n\t\t};\n\t\tconst output: OutputArtifactAPI = {\n\t\t\tput: async (input, options) => {\n\t\t\t\tassertUsable();\n\t\t\t\tvalidateOutputInput(input);\n\t\t\t\tconst signal = options?.signal;\n\t\t\t\tconst throwIfAborted = (): void => {\n\t\t\t\t\tif (signal?.aborted) {\n\t\t\t\t\t\tthrow new OutputArtifactError(\n\t\t\t\t\t\t\t\"cancelled\",\n\t\t\t\t\t\t\t`Artifact write cancelled: ${String(signal.reason ?? \"cancelled\")}`,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tthrowIfAborted();\n\t\t\t\tconst chunks: Uint8Array[] = [];\n\t\t\t\tlet sizeBytes = 0;\n\t\t\t\tif (input.data instanceof Uint8Array) {\n\t\t\t\t\tchunks.push(new Uint8Array(input.data));\n\t\t\t\t\tsizeBytes = input.data.byteLength;\n\t\t\t\t} else {\n\t\t\t\t\tfor await (const chunk of input.data) {\n\t\t\t\t\t\tthrowIfAborted();\n\t\t\t\t\t\tif (!(chunk instanceof Uint8Array)) {\n\t\t\t\t\t\t\tthrow new OutputArtifactError(\"invalid_ref\", \"Artifact stream yielded a non-Uint8Array chunk\");\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst copy = new Uint8Array(chunk);\n\t\t\t\t\t\tchunks.push(copy);\n\t\t\t\t\t\tsizeBytes += copy.byteLength;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthrowIfAborted();\n\t\t\t\tconst bytes = new Uint8Array(sizeBytes);\n\t\t\t\tlet offset = 0;\n\t\t\t\tfor (const chunk of chunks) {\n\t\t\t\t\tbytes.set(chunk, offset);\n\t\t\t\t\toffset += chunk.byteLength;\n\t\t\t\t}\n\t\t\t\t// A stream may yield after the plugin has been revoked. Never commit\n\t\t\t\t// bytes after the lifecycle boundary has closed.\n\t\t\t\tassertUsable();\n\t\t\t\tconst sequence = ++artifactSequence;\n\t\t\t\tconst artifactId = createRuntimeId(\"artifact\", sequence, `artifact:${owner}:${sequence}`);\n\t\t\t\tconst ref: OutputArtifactRef = {\n\t\t\t\t\tsessionId: input.sessionId,\n\t\t\t\t\toperationId: input.operationId,\n\t\t\t\t\tartifactId,\n\t\t\t\t\tkind: input.kind,\n\t\t\t\t\tmediaType: input.mediaType,\n\t\t\t\t\tsizeBytes,\n\t\t\t\t\ttruncated: input.truncated,\n\t\t\t\t\tcreatedAt: clock(),\n\t\t\t\t};\n\t\t\t\toutputArtifacts.set(artifactId, { ref, bytes, ownerToken });\n\t\t\t\t// Durable mirroring is a host concern, not a runtime one: the commit\n\t\t\t\t// observer receives the same bytes reachable through stat/read. An\n\t\t\t\t// observer failure is recorded but never fails the committed artifact,\n\t\t\t\t// and cleanup/revoke intentionally do not re-emit (durable records are\n\t\t\t\t// meant to outlive the in-memory lifecycle boundary).\n\t\t\t\tif (onOutputArtifactCommit) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tonOutputArtifactCommit({ ref: { ...ref }, bytes });\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\trecordLog(\"error\", owner, \"Output artifact commit observer failed\", { artifactId }, error);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn { ...ref };\n\t\t\t},\n\t\t\tstat: async (ref) => {\n\t\t\t\tassertUsable();\n\t\t\t\tvalidateOutputRef(ref);\n\t\t\t\tconst artifact = outputArtifacts.get(ref.artifactId);\n\t\t\t\tif (!artifact) {\n\t\t\t\t\tthrow new OutputArtifactError(\"not_found\", `Output artifact is not available: ${ref.artifactId}`);\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\tref.sessionId !== artifact.ref.sessionId ||\n\t\t\t\t\tref.operationId !== artifact.ref.operationId ||\n\t\t\t\t\tref.kind !== artifact.ref.kind ||\n\t\t\t\t\tref.mediaType !== artifact.ref.mediaType ||\n\t\t\t\t\tref.sizeBytes !== artifact.ref.sizeBytes ||\n\t\t\t\t\tref.truncated !== artifact.ref.truncated ||\n\t\t\t\t\tref.createdAt !== artifact.ref.createdAt\n\t\t\t\t) {\n\t\t\t\t\tthrow new OutputArtifactError(\n\t\t\t\t\t\t\"invalid_ref\",\n\t\t\t\t\t\t`Output artifact reference does not match: ${ref.artifactId}`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn { ...artifact.ref };\n\t\t\t},\n\t\t\tread: async (ref, options) => {\n\t\t\t\tassertUsable();\n\t\t\t\tconst stored = await output.stat(ref);\n\t\t\t\tconst artifact = outputArtifacts.get(stored.artifactId);\n\t\t\t\tif (!artifact)\n\t\t\t\t\tthrow new OutputArtifactError(\"not_found\", `Output artifact is not available: ${stored.artifactId}`);\n\t\t\t\tconst offset = options?.offset ?? 0;\n\t\t\t\tconst maxBytes = options?.maxBytes ?? artifact.bytes.byteLength;\n\t\t\t\tif (!Number.isInteger(offset) || offset < 0) {\n\t\t\t\t\tthrow new OutputArtifactError(\"invalid_ref\", \"Artifact read offset must be a non-negative integer\");\n\t\t\t\t}\n\t\t\t\tif (!Number.isInteger(maxBytes) || maxBytes <= 0) {\n\t\t\t\t\tthrow new OutputArtifactError(\"invalid_ref\", \"Artifact read maxBytes must be a positive integer\");\n\t\t\t\t}\n\t\t\t\tconst end = Math.min(offset + maxBytes, artifact.bytes.byteLength);\n\t\t\t\tconst data = artifact.bytes.slice(Math.min(offset, artifact.bytes.byteLength), end);\n\t\t\t\tconst eof = end >= artifact.bytes.byteLength;\n\t\t\t\treturn { data, ...(eof ? {} : { nextOffset: end }), eof } satisfies OutputArtifactChunk;\n\t\t\t},\n\t\t};\n\t\tconst compositionHostPrimitives: AgentHostPrimitivesFactory = ({ instance, operationId, signal }) => {\n\t\t\tconst sessionApi = options.session;\n\t\t\tconst session = sessionApi\n\t\t\t\t? Object.freeze({\n\t\t\t\t\t\tversion: 1 as const,\n\t\t\t\t\t\tgetSessionId: () => sessionApi.getSessionId(),\n\t\t\t\t\t\t...(sessionApi.getRevision ? { getRevision: () => sessionApi.getRevision!() } : {}),\n\t\t\t\t\t\tgetMessages: () => sessionApi.getMessages(),\n\t\t\t\t\t\tgetBranchEntries: () => sessionApi.getBranchEntries(),\n\t\t\t\t\t\tisIdle: () => sessionApi.isIdle(),\n\t\t\t\t\t\tprompt: (text: string) => sessionApi.prompt(text),\n\t\t\t\t\t\t...(sessionApi.steer ? { steer: (text: string) => sessionApi.steer!(text) } : {}),\n\t\t\t\t\t\tabort: () => sessionApi.abort(),\n\t\t\t\t\t\twaitForIdle: () => sessionApi.waitForIdle(),\n\t\t\t\t\t\tappendEntry: (customType: string, data?: unknown) => sessionApi.appendEntry(customType, data),\n\t\t\t\t\t})\n\t\t\t\t: undefined;\n\t\t\tconst context =\n\t\t\t\thost.features.includes(\"context\") && sessionApi?.getContextSnapshot && sessionApi.commitContext\n\t\t\t\t\t? Object.freeze({\n\t\t\t\t\t\t\tversion: 1 as const,\n\t\t\t\t\t\t\tget: <TValue = unknown>() => sessionApi.getContextSnapshot!<TValue>(),\n\t\t\t\t\t\t\tcommit: async <TValue = unknown>(request: AgentContextCommitRequestV1<TValue>) => {\n\t\t\t\t\t\t\t\tif (request.operationId !== operationId) {\n\t\t\t\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\t\t\tt(\"Agent context operationId must match active operation: {operationId}\", {\n\t\t\t\t\t\t\t\t\t\t\toperationId,\n\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn sessionApi.commitContext!({ ...request, signal: request.signal ?? signal });\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t})\n\t\t\t\t\t: undefined;\n\t\t\tconst state = host.features.includes(\"plugin-state-v1\")\n\t\t\t\t? Object.freeze({\n\t\t\t\t\t\t...stateApi,\n\t\t\t\t\t\tset: (key: string, value: PluginConfigValue, options?: Parameters<StateAPI[\"set\"]>[2]) => {\n\t\t\t\t\t\t\tif (options?.operationId !== undefined && options.operationId !== operationId) {\n\t\t\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\t\tt(\"Agent state operationId must match active operation: {operationId}\", { operationId }),\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn stateApi.set(key, value, { ...options, operationId });\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdelete: (key: string, options?: Parameters<StateAPI[\"delete\"]>[1]) => {\n\t\t\t\t\t\t\tif (options?.operationId !== undefined && options.operationId !== operationId) {\n\t\t\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\t\tt(\"Agent state operationId must match active operation: {operationId}\", { operationId }),\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn stateApi.delete(key, { ...options, operationId });\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t\t: undefined;\n\t\t\tconst instanceState = host.features.includes(\"plugin-state-v1\")\n\t\t\t\t? createInstanceStateApi(owner, instance.id)\n\t\t\t\t: undefined;\n\t\t\tconst sessionId = options.session?.getSessionId();\n\t\t\tconst scopedOutput = guardedOutput(output, assertUsable);\n\t\t\tconst artifact =\n\t\t\t\thost.features.includes(\"output-artifacts\") && sessionId !== undefined\n\t\t\t\t\t? Object.freeze({\n\t\t\t\t\t\t\tput: (input: OutputArtifactPutInput, putOptions?: { signal?: AbortSignal }) => {\n\t\t\t\t\t\t\t\tif (input.sessionId !== sessionId || input.operationId !== operationId) {\n\t\t\t\t\t\t\t\t\tthrow new OutputArtifactError(\n\t\t\t\t\t\t\t\t\t\t\"invalid_ref\",\n\t\t\t\t\t\t\t\t\t\t`Agent artifact must use active session and operation: ${operationId}`,\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn scopedOutput.put(input, putOptions);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tstat: async (ref: OutputArtifactRef) => {\n\t\t\t\t\t\t\t\tif (ref.sessionId !== sessionId || ref.operationId !== operationId) {\n\t\t\t\t\t\t\t\t\tthrow new OutputArtifactError(\n\t\t\t\t\t\t\t\t\t\t\"invalid_ref\",\n\t\t\t\t\t\t\t\t\t\t`Agent artifact must use active session and operation: ${operationId}`,\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn scopedOutput.stat(ref);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tread: async (ref: OutputArtifactRef, readOptions?: { offset?: number; maxBytes?: number }) => {\n\t\t\t\t\t\t\t\tif (ref.sessionId !== sessionId || ref.operationId !== operationId) {\n\t\t\t\t\t\t\t\t\tthrow new OutputArtifactError(\n\t\t\t\t\t\t\t\t\t\t\"invalid_ref\",\n\t\t\t\t\t\t\t\t\t\t`Agent artifact must use active session and operation: ${operationId}`,\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn scopedOutput.read(ref, readOptions);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t})\n\t\t\t\t\t: undefined;\n\t\t\tconst modelFacade =\n\t\t\t\toptions.modelRuntime && sessionApi\n\t\t\t\t\t? Object.freeze({\n\t\t\t\t\t\t\tversion: 1 as const,\n\t\t\t\t\t\t\tget facts() {\n\t\t\t\t\t\t\t\tconst runtime = options.modelRuntime!;\n\t\t\t\t\t\t\t\tconst resolved = runtime.getModelFacts();\n\t\t\t\t\t\t\t\tif (!resolved) throw new Error(t(\"No model is set on this session's agent\"));\n\t\t\t\t\t\t\t\treturn resolved;\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tinvocation: {\n\t\t\t\t\t\t\t\tinvoke: async (\n\t\t\t\t\t\t\t\t\tinput: {\n\t\t\t\t\t\t\t\t\t\tversion: 1;\n\t\t\t\t\t\t\t\t\t\tsystemPrompt?: string;\n\t\t\t\t\t\t\t\t\t\tprompt: string;\n\t\t\t\t\t\t\t\t\t\tmaxTokens?: number;\n\t\t\t\t\t\t\t\t\t\tthinkingLevel?: string;\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tsignal: AbortSignal,\n\t\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\t\tconst runtime = options.modelRuntime;\n\t\t\t\t\t\t\t\t\tif (!runtime) throw new Error(t(\"Agent model runtime is not available\"));\n\t\t\t\t\t\t\t\t\treturn runtime.invoke(\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t...(input.systemPrompt === undefined ? {} : { systemPrompt: input.systemPrompt }),\n\t\t\t\t\t\t\t\t\t\t\tprompt: input.prompt,\n\t\t\t\t\t\t\t\t\t\t\t...(input.maxTokens === undefined ? {} : { maxTokens: input.maxTokens }),\n\t\t\t\t\t\t\t\t\t\t\t...(input.thinkingLevel === undefined ? {} : { thinkingLevel: input.thinkingLevel }),\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t{ signal },\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t})\n\t\t\t\t\t: undefined;\n\t\t\tconst toolFacade = host.features.includes(\"tools\")\n\t\t\t\t? Object.freeze({\n\t\t\t\t\t\tversion: 1 as const,\n\t\t\t\t\t\tlistTools: () => {\n\t\t\t\t\t\t\tassertUsable();\n\t\t\t\t\t\t\treturn [...tools.entries()]\n\t\t\t\t\t\t\t\t.filter(([, entry]) => activeOwnerTokens.has(entry.ownerToken))\n\t\t\t\t\t\t\t\t.sort(([left], [right]) => stableTextCompare(left, right))\n\t\t\t\t\t\t\t\t.map(([name, entry]) => ({\n\t\t\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\t\t\tdefinition: definitionSnapshot(entry.value),\n\t\t\t\t\t\t\t\t\tsource: entry.owner,\n\t\t\t\t\t\t\t\t\treadonlySafe: toolReadonlySafe(entry.value),\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t},\n\t\t\t\t\t\tinvokeTool: (name: string, input: unknown, invokeOptions?: { readonly signal?: AbortSignal }) => {\n\t\t\t\t\t\t\tassertUsable();\n\t\t\t\t\t\t\tconst registered = tools.get(name);\n\t\t\t\t\t\t\tif (!registered || !activeOwnerTokens.has(registered.ownerToken)) {\n\t\t\t\t\t\t\t\tthrow new Error(t(\"Agent tool is not registered: {name}\", { name }));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn invokeRegisteredCapability(registered, (value) =>\n\t\t\t\t\t\t\t\tinvokeCapabilityTool(\n\t\t\t\t\t\t\t\t\tasHandler(value, \"Tool\"),\n\t\t\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\t\t\ttoolExecutionContext,\n\t\t\t\t\t\t\t\t\tinvokeOptions?.signal,\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t\t: undefined;\n\t\t\treturn Object.freeze({\n\t\t\t\tversion: 1 as const,\n\t\t\t\t...(session ? { session } : {}),\n\t\t\t\t...(context ? { context } : {}),\n\t\t\t\t...(state ? { state } : {}),\n\t\t\t\t...(instanceState ? { instanceState } : {}),\n\t\t\t\t...(artifact ? { artifact } : {}),\n\t\t\t\t...(modelFacade ? { model: modelFacade } : {}),\n\t\t\t\t...(toolFacade ? { tool: toolFacade } : {}),\n\t\t\t});\n\t\t};\n\t\tconst lifecycle: LifecycleAPI = {\n\t\t\tdefine<TData>(definition: LifecycleEventDefinition<TData>): LifecycleEventDefinition<TData> {\n\t\t\t\tassertUsable();\n\t\t\t\tconst normalized = validateLifecycleEventDefinition(definition);\n\t\t\t\tconst key = lifecycleEventKey(normalized.id, normalized.version);\n\t\t\t\tif (lifecycleDefinitions.has(key)) throw new Error(t(\"Lifecycle event is already defined: {key}\", { key }));\n\t\t\t\tlifecycleDefinitions.set(key, { owner, ownerToken, definition: normalized });\n\t\t\t\tconst registration = own(\n\t\t\t\t\tcreateDisposableRegistration(\n\t\t\t\t\t\t\"lifecycle-definition\",\n\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\tconst current = lifecycleDefinitions.get(key);\n\t\t\t\t\t\t\tif (current?.ownerToken !== ownerToken) return;\n\t\t\t\t\t\t\tlifecycleDefinitions.delete(key);\n\t\t\t\t\t\t\tconst registrations = lifecycleRegistrations.get(key);\n\t\t\t\t\t\t\tif (registrations) {\n\t\t\t\t\t\t\t\tfor (const registration of registrations.values())\n\t\t\t\t\t\t\t\t\tcloseLifecycleRegistrationQueue(registration);\n\t\t\t\t\t\t\t\tlifecycleRegistrations.delete(key);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t`registration:${owner}:lifecycle-definition:${key}`,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t\tvoid registration;\n\t\t\t\treturn normalized;\n\t\t\t},\n\t\t\tget<TData = unknown>(id: string, version: number): LifecycleEventDefinition<TData> {\n\t\t\t\tassertUsable();\n\t\t\t\treturn lifecycleDefinitionFor<TData>({ id, version }).definition;\n\t\t\t},\n\t\t\tregisterObserve<TData = unknown>(\n\t\t\t\tevent: LifecycleEventDefinition<TData> | LifecycleEventReference | string,\n\t\t\t\thandler: LifecycleObserveHandler<TData>,\n\t\t\t\tversion?: number,\n\t\t\t\toptions?: LifecycleDeliveryOptions,\n\t\t\t): DisposableRegistration {\n\t\t\t\treturn lifecycleRegistration(\n\t\t\t\t\t\"observe\",\n\t\t\t\t\tevent,\n\t\t\t\t\thandler,\n\t\t\t\t\tversion,\n\t\t\t\t\towner,\n\t\t\t\t\townerToken,\n\t\t\t\t\tassertUsable,\n\t\t\t\t\town,\n\t\t\t\t\toptions,\n\t\t\t\t);\n\t\t\t},\n\t\t\tregisterTransform<TData = unknown>(\n\t\t\t\tevent: LifecycleEventDefinition<TData> | LifecycleEventReference | string,\n\t\t\t\thandler: LifecycleTransformHandler<TData>,\n\t\t\t\tversion?: number,\n\t\t\t): DisposableRegistration {\n\t\t\t\treturn lifecycleRegistration(\"transform\", event, handler, version, owner, ownerToken, assertUsable, own);\n\t\t\t},\n\t\t\tregisterExecute<TData = unknown>(\n\t\t\t\tevent: LifecycleEventDefinition<TData> | LifecycleEventReference | string,\n\t\t\t\thandler: LifecycleExecuteHandler<TData>,\n\t\t\t\tversion?: number,\n\t\t\t): DisposableRegistration {\n\t\t\t\treturn lifecycleRegistration(\"execute\", event, handler, version, owner, ownerToken, assertUsable, own);\n\t\t\t},\n\t\t\tregisterAfterCommit<TData = unknown>(\n\t\t\t\tevent: LifecycleEventDefinition<TData> | LifecycleEventReference | string,\n\t\t\t\thandler: LifecycleAfterCommitHandler<TData>,\n\t\t\t\tversion?: number,\n\t\t\t\toptions?: LifecycleDeliveryOptions,\n\t\t\t): DisposableRegistration {\n\t\t\t\treturn lifecycleRegistration(\n\t\t\t\t\t\"after-commit\",\n\t\t\t\t\tevent,\n\t\t\t\t\thandler,\n\t\t\t\t\tversion,\n\t\t\t\t\towner,\n\t\t\t\t\townerToken,\n\t\t\t\t\tassertUsable,\n\t\t\t\t\town,\n\t\t\t\t\toptions,\n\t\t\t\t);\n\t\t\t},\n\t\t};\n\t\tconst api: CapabilityAPI = {\n\t\t\tmanifest: apiManifest,\n\t\t\thost: hostWithServices,\n\t\t\tconfig,\n\t\t\t...(host.features.includes(\"logger-v1\") ? { logger } : {}),\n\t\t\t...(host.features.includes(\"diagnostics-v1\") ? { diagnostics } : {}),\n\t\t\t...(host.features.includes(\"plugin-state-v1\") ? { state: stateApi } : {}),\n\t\t\t...(host.features.includes(\"runtime-inspector-v1\")\n\t\t\t\t? { inspector: { snapshot: () => inspect() } satisfies RuntimeInspectorAPI }\n\t\t\t\t: {}),\n\t\t\tcapabilities,\n\t\t\tcontributions,\n\t\t\tlifecycle,\n\t\t\t...(hasSession && options.session\n\t\t\t\t? {\n\t\t\t\t\t\tsession: guardedSession(options.session, assertUsable, {\n\t\t\t\t\t\t\tallowExport: hasSessionExport,\n\t\t\t\t\t\t\tallowRevision: hasSessionRevision,\n\t\t\t\t\t\t}),\n\t\t\t\t\t}\n\t\t\t\t: {}),\n\t\t\t...(host.features.includes(\"output-artifacts\") ? { output: guardedOutput(output, assertUsable) } : {}),\n\t\t\t...(host.features.includes(\"credentials\") && options.credentials\n\t\t\t\t? { credentials: guardedCredentials(options.credentials, assertUsable) }\n\t\t\t\t: {}),\n\t\t\t// agents 成员随 feature 在场即构建(构造期断言已保证 feature/选项配对),\n\t\t\t// 各成员再按宿主注入逐项条件化:任务面跟 adapter,durable replay 跟\n\t\t\t// agentResults 存储,回读面跟 reader/lister。\n\t\t\t...(host.features.includes(\"agents\")\n\t\t\t\t? {\n\t\t\t\t\t\tagents: {\n\t\t\t\t\t\t\t// 任务面(create/steer)只在宿主注入 adapter 时存在;reader/lister-only\n\t\t\t\t\t\t\t// 宿主(承载退役切片 2:pooled 叶子/只读回读)的 agents 只承载回读,\n\t\t\t\t\t\t\t// 委派面由 delegate 的池化装配或宿主 adapter 提供。\n\t\t\t\t\t\t\t...(options.agents === undefined\n\t\t\t\t\t\t\t\t? {}\n\t\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\t\tcreate: createAgentTask,\n\t\t\t\t\t\t\t\t\t\t// 父→子引导(D-060 S4,程序面):运行中任务的有界 steer。\n\t\t\t\t\t\t\t\t\t\tsteer: createAgentTaskSteer,\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t// durable replay 读取跟随 agentResults 存储(与 adapter 无关):\n\t\t\t\t\t\t\t// serve 装配的重建读取面没有 adapter 也必须可用。\n\t\t\t\t\t\t\t...(options.agentResults === undefined ? {} : { result: createAgentResultReader }),\n\t\t\t\t\t\t\t// 会话回读(D-060 S3):宿主注入读取器才暴露;作用域由宿主强制。\n\t\t\t\t\t\t\t...(options.agentSessionReader === undefined\n\t\t\t\t\t\t\t\t? {}\n\t\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\t\tsession: async (sessionId: string) => {\n\t\t\t\t\t\t\t\t\t\t\tassertUsable();\n\t\t\t\t\t\t\t\t\t\t\treturn options.agentSessionReader?.(sessionId);\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t// 子会话盘点(D-060 模型面):宿主注入列举器才暴露;只回本会话的子会话。\n\t\t\t\t\t\t\t...(options.agentSessionLister === undefined\n\t\t\t\t\t\t\t\t? {}\n\t\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\t\tlist: async (): Promise<AgentTaskSessionSummaryV1[]> => {\n\t\t\t\t\t\t\t\t\t\t\tassertUsable();\n\t\t\t\t\t\t\t\t\t\t\treturn options.agentSessionLister?.() ?? [];\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t: {}),\n\t\t\t// Session cancel fence (D-044 §4.2) as a public getter: consulted per\n\t\t\t// call so plugins cascade against the current epoch signal, never a\n\t\t\t// signal captured at API creation time. Absent when the host injects\n\t\t\t// no parentSignal (behavior unchanged).\n\t\t\t...(options.parentSignal === undefined ? {} : { sessionAbortSignal: () => options.parentSignal?.() }),\n\t\t\t// Host trace service (D-075 S4 second batch): the adapter rides\n\t\t\t// `api.trace`, its budget overrides ride `api.traceSinkOptions`.\n\t\t\t// Absent when the host injects no trace service.\n\t\t\t...(options.trace === undefined\n\t\t\t\t? {}\n\t\t\t\t: {\n\t\t\t\t\t\ttrace: options.trace.adapter,\n\t\t\t\t\t\t...(options.trace.options === undefined ? {} : { traceSinkOptions: options.trace.options }),\n\t\t\t\t\t}),\n\t\t\t...(host.features.includes(\"interaction\") && options.interaction\n\t\t\t\t? { interaction: guardedInteraction(options.interaction, owner, assertUsable, own) }\n\t\t\t\t: {}),\n\t\t\t...(host.features.includes(\"agent-composition-v1\") && options.composition\n\t\t\t\t? {\n\t\t\t\t\t\tcomposition: guardedComposition(\n\t\t\t\t\t\t\toptions.composition,\n\t\t\t\t\t\t\tassertUsable,\n\t\t\t\t\t\t\t(instance) => {\n\t\t\t\t\t\t\t\tstate.compositionInstances?.add(instance);\n\t\t\t\t\t\t\t\tinstanceStateOwners.set(instance.id, owner);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t(definition) => state.compositionDefinitions?.add(definition),\n\t\t\t\t\t\t\tcompositionHostPrimitives,\n\t\t\t\t\t\t\tcompositionLifecycleDispatcher,\n\t\t\t\t\t\t\tmanifestSnapshot,\n\t\t\t\t\t\t),\n\t\t\t\t\t}\n\t\t\t\t: {}),\n\t\t\tregisterTool(definition) {\n\t\t\t\tassertUsable();\n\t\t\t\tconst name = capabilityName(definition, \"Tool\");\n\t\t\t\t// 工具是唯一可替换的注册面:同名重注册 = 替换生效(后装载者赢),\n\t\t\t\t// 被替换者入链,替换方 dispose 时逐层恢复(bootstrap 内建与第三方\n\t\t\t\t// 插件因此可共存)。\n\t\t\t\treturn own(register(\"tool\", name, definition, owner, ownerToken, tools, { replaceable: true }));\n\t\t\t},\n\t\t\tregisterCommand(definition) {\n\t\t\t\tassertUsable();\n\t\t\t\tconst command = validateCommandDefinition(definition);\n\t\t\t\treturn own(register(\"command\", command.name, command, owner, ownerToken, commands));\n\t\t\t},\n\t\t\tregisterOperation(name, handler) {\n\t\t\t\tassertUsable();\n\t\t\t\tif (!name) throw new Error(t(\"Operation requires a non-empty name\"));\n\t\t\t\treturn own(register(\"operation\", name, handler, owner, ownerToken, operations));\n\t\t\t},\n\t\t\tregisterRpcMethod(name, handler) {\n\t\t\t\tassertUsable();\n\t\t\t\tif (!name) throw new Error(t(\"RPC method requires a non-empty name\"));\n\t\t\t\treturn own(register(\"rpc\", name, handler, owner, ownerToken, rpcMethods));\n\t\t\t},\n\t\t\tregisterContextStrategy(name, strategy) {\n\t\t\t\tassertUsable();\n\t\t\t\tif (!name) throw new Error(t(\"Context strategy requires a non-empty name\"));\n\t\t\t\treturn own(register(\"context-strategy\", name, strategy, owner, ownerToken, contextStrategies));\n\t\t\t},\n\t\t\tregisterEntryProjection(projection) {\n\t\t\t\tassertUsable();\n\t\t\t\tif (!projection?.customType) throw new Error(t(\"Entry projection requires a non-empty customType\"));\n\t\t\t\tif (typeof projection.project !== \"function\") {\n\t\t\t\t\tthrow new Error(t(\"Entry projection requires a callable project\"));\n\t\t\t\t}\n\t\t\t\t// 转发到宿主 SessionAPI(SessionManager 持有注册表并应用于上下文投影)。\n\t\t\t\t// 宿主未支持时显式失败——第三方与第一方看到同一个错误。\n\t\t\t\tconst register = options.session?.registerEntryProjection;\n\t\t\t\tif (register === undefined) {\n\t\t\t\t\tthrow new Error(t(\"Entry projections require a host with entry projection support\"));\n\t\t\t\t}\n\t\t\t\tconst wrapped: EntryProjection = {\n\t\t\t\t\tcustomType: projection.customType,\n\t\t\t\t\tproject: (entries) => projection.project(entries),\n\t\t\t\t};\n\t\t\t\tconst dispose = register(wrapped);\n\t\t\t\treturn own({\n\t\t\t\t\tid: `entry-projection:${projection.customType}`,\n\t\t\t\t\tkind: \"entry-projection\",\n\t\t\t\t\tdispose: () => {\n\t\t\t\t\t\tdispose();\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t},\n\t\t\tregisterProviderHeaderTransform(name, transform) {\n\t\t\t\tassertUsable();\n\t\t\t\tif (!name) throw new Error(t(\"Provider header transform requires a non-empty name\"));\n\t\t\t\tif (typeof transform !== \"function\") {\n\t\t\t\t\tthrow new Error(t(\"Provider header transform requires a callable transform\"));\n\t\t\t\t}\n\t\t\t\treturn own(\n\t\t\t\t\tregister(\"provider-header-transform\", name, transform, owner, ownerToken, providerHeaderTransforms),\n\t\t\t\t);\n\t\t\t},\n\t\t\tregisterStreamFnWrapper(name, wrapper, wrapperOptions) {\n\t\t\t\tassertUsable();\n\t\t\t\tif (!name) throw new Error(t(\"Stream function wrapper requires a non-empty name\"));\n\t\t\t\tif (typeof wrapper !== \"function\") {\n\t\t\t\t\tthrow new Error(t(\"Stream function wrapper requires a callable wrapper\"));\n\t\t\t\t}\n\t\t\t\t// 契约 A(D-082 批 3b):priority 低值更外层,缺省 0(与既有注册序语义\n\t\t\t\t// 等价——同 priority 保持注册序,先注册最外层)。\n\t\t\t\tconst priority = wrapperOptions?.priority ?? 0;\n\t\t\t\tif (typeof priority !== \"number\" || !Number.isFinite(priority)) {\n\t\t\t\t\tthrow new Error(t(\"Stream function wrapper priority must be a finite number\"));\n\t\t\t\t}\n\t\t\t\tif (streamFnWrapperRegistry.has(name)) {\n\t\t\t\t\tthrow new Error(t(\"{kind} is already registered: {name}\", { kind: \"stream-fn-wrapper\", name }));\n\t\t\t\t}\n\t\t\t\tconst entry: StoredStreamFnWrapper = {\n\t\t\t\t\towner,\n\t\t\t\t\townerToken,\n\t\t\t\t\tvalue: wrapper,\n\t\t\t\t\tpriority,\n\t\t\t\t\tsequence: ++streamFnWrapperSequence,\n\t\t\t\t};\n\t\t\t\tstreamFnWrapperRegistry.set(name, entry);\n\t\t\t\treturn own(\n\t\t\t\t\tcreateDisposableRegistration(\n\t\t\t\t\t\t\"stream-fn-wrapper\",\n\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\tif (streamFnWrapperRegistry.get(name) !== entry) return;\n\t\t\t\t\t\t\tstreamFnWrapperRegistry.delete(name);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t`registration:${owner}:stream-fn-wrapper:${name}`,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t},\n\t\t\tregisterSkill(definition) {\n\t\t\t\tassertUsable();\n\t\t\t\tconst name = capabilityName(definition, \"Skill\");\n\t\t\t\tif (typeof definition.description !== \"string\" || !definition.description.trim()) {\n\t\t\t\t\tthrow new Error(t(\"Skill definition requires a non-empty description\"));\n\t\t\t\t}\n\t\t\t\tif (typeof definition.filePath !== \"string\" || !definition.filePath) {\n\t\t\t\t\tthrow new Error(t(\"Skill definition requires a filePath\"));\n\t\t\t\t}\n\t\t\t\tif (typeof definition.baseDir !== \"string\" || !definition.baseDir) {\n\t\t\t\t\tthrow new Error(t(\"Skill definition requires a baseDir\"));\n\t\t\t\t}\n\t\t\t\treturn own(register(\"skill\", name, definition, owner, ownerToken, skills));\n\t\t\t},\n\t\t\tregisterRetryPolicy(name, policy) {\n\t\t\t\tassertUsable();\n\t\t\t\tif (!name) throw new Error(t(\"Retry policy requires a non-empty name\"));\n\t\t\t\tif (!policy || typeof policy.decide !== \"function\") {\n\t\t\t\t\tthrow new Error(t(\"Retry policy requires a decide function\"));\n\t\t\t\t}\n\t\t\t\treturn own(register(\"retry-policy\", name, policy, owner, ownerToken, retryPolicies));\n\t\t\t},\n\t\t\tregisterCompactionPolicy(name, policy) {\n\t\t\t\tassertUsable();\n\t\t\t\tif (!name) throw new Error(t(\"Compaction policy requires a non-empty name\"));\n\t\t\t\tif (!policy || typeof policy.decide !== \"function\") {\n\t\t\t\t\tthrow new Error(t(\"Compaction policy requires a decide function\"));\n\t\t\t\t}\n\t\t\t\treturn own(register(\"compaction-policy\", name, policy, owner, ownerToken, compactionPolicies));\n\t\t\t},\n\t\t\tregisterOverflowPolicy(name, policy) {\n\t\t\t\tassertUsable();\n\t\t\t\tif (!name) throw new Error(t(\"Overflow policy requires a non-empty name\"));\n\t\t\t\tif (!policy || typeof policy.decide !== \"function\") {\n\t\t\t\t\tthrow new Error(t(\"Overflow policy requires a decide function\"));\n\t\t\t\t}\n\t\t\t\treturn own(register(\"overflow-policy\", name, policy, owner, ownerToken, overflowPolicies));\n\t\t\t},\n\t\t\tregisterBranchSummaryPolicy(name, policy) {\n\t\t\t\tassertUsable();\n\t\t\t\tif (!name) throw new Error(t(\"Branch summary policy requires a non-empty name\"));\n\t\t\t\tif (!policy || typeof policy.summarize !== \"function\") {\n\t\t\t\t\tthrow new Error(t(\"Branch summary policy requires a summarize function\"));\n\t\t\t\t}\n\t\t\t\treturn own(register(\"branch-summary-policy\", name, policy, owner, ownerToken, branchSummaryPolicies));\n\t\t\t},\n\t\t\tregisterLoopHook(position, handler) {\n\t\t\t\tassertUsable();\n\t\t\t\tconst positions: readonly string[] = [\n\t\t\t\t\t\"beforeInput\",\n\t\t\t\t\t\"beforeToolCall\",\n\t\t\t\t\t\"afterToolCall\",\n\t\t\t\t\t\"transformContext\",\n\t\t\t\t\t\"prepareNextTurn\",\n\t\t\t\t\t\"shouldStopAfterTurn\",\n\t\t\t\t];\n\t\t\t\tif (!positions.includes(position)) {\n\t\t\t\t\tthrow new Error(t(\"Agent loop hook position is invalid: {value}\", { value: String(position) }));\n\t\t\t\t}\n\t\t\t\tif (typeof handler !== \"function\") {\n\t\t\t\t\tthrow new Error(t(\"Agent loop hook requires a callable handler\"));\n\t\t\t\t}\n\t\t\t\tconst entries = loopHooks.get(position) ?? [];\n\t\t\t\tloopHooks.set(position, entries);\n\t\t\t\tconst entry: RegisteredCapability<AgentLoopHookHandlerV1> = { owner, ownerToken, value: handler };\n\t\t\t\tentries.push(entry);\n\t\t\t\tconst id = `registration:${owner}:loop-hook:${position}:${++loopHookSequence}`;\n\t\t\t\treturn own(\n\t\t\t\t\tcreateDisposableRegistration(\n\t\t\t\t\t\t\"loop-hook\",\n\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\tconst current = loopHooks.get(position);\n\t\t\t\t\t\t\tif (!current) return;\n\t\t\t\t\t\t\tconst index = current.indexOf(entry);\n\t\t\t\t\t\t\tif (index >= 0) current.splice(index, 1);\n\t\t\t\t\t\t\tif (current.length === 0) loopHooks.delete(position);\n\t\t\t\t\t\t},\n\t\t\t\t\t\tid,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t},\n\t\t\tregisterRunLoopStrategy(name, strategy) {\n\t\t\t\tassertUsable();\n\t\t\t\tif (!name) throw new Error(t(\"Run loop strategy requires a non-empty name\"));\n\t\t\t\tif (!strategy || typeof strategy.decideNextCycle !== \"function\") {\n\t\t\t\t\tthrow new Error(t(\"Run loop strategy requires a decideNextCycle function\"));\n\t\t\t\t}\n\t\t\t\treturn own(register(\"run-loop-strategy\", name, strategy, owner, ownerToken, runLoopStrategies));\n\t\t\t},\n\t\t\tsubscribe(type, handler) {\n\t\t\t\tassertUsable();\n\t\t\t\tif (!type) throw new Error(t(\"Event type requires a non-empty name\"));\n\t\t\t\tconst handlers = subscribers.get(type) ?? new Map();\n\t\t\t\tsubscribers.set(type, handlers);\n\t\t\t\tconst sequence = ++subscriptionSequence;\n\t\t\t\tconst id = createRuntimeId(\"subscription\", sequence, `subscription:${owner}:${type}:${sequence}`);\n\t\t\t\thandlers.set(id, { owner, ownerToken, value: handler as (event: EventEnvelope) => void | Promise<void> });\n\t\t\t\treturn own(\n\t\t\t\t\tcreateDisposableRegistration(\n\t\t\t\t\t\t\"subscription\",\n\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\thandlers.delete(id);\n\t\t\t\t\t\t\tif (handlers.size === 0) subscribers.delete(type);\n\t\t\t\t\t\t},\n\t\t\t\t\t\tid,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t},\n\t\t\tasync publish(event) {\n\t\t\t\tassertUsable();\n\t\t\t\tconst envelope = detachedSnapshot(\n\t\t\t\t\tcreateEventEnvelope(\n\t\t\t\t\t\t{ ...event, source: owner },\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: createRuntimeId(\n\t\t\t\t\t\t\t\t\"event\",\n\t\t\t\t\t\t\t\t++runtimeState.eventSequence,\n\t\t\t\t\t\t\t\t`event:${owner}:${runtimeState.eventSequence}`,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\ttimestamp: clock(),\n\t\t\t\t\t\t},\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t\tconst results: PromiseSettledResult<void>[] = [];\n\t\t\t\tfor (const [subscriptionId, subscriber] of subscribers.get(envelope.type)?.entries() ?? []) {\n\t\t\t\t\tconst startedAt = performance.now();\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait invokeRegisteredCapability(subscriber, (handler) => handler(detachedSnapshot(envelope)));\n\t\t\t\t\t\tresults.push({ status: \"fulfilled\", value: undefined });\n\t\t\t\t\t} catch (reason) {\n\t\t\t\t\t\tresults.push({ status: \"rejected\", reason });\n\t\t\t\t\t} finally {\n\t\t\t\t\t\t// 慢订阅者观测:成功与异常路径都记(异常本身仍走原有隔离通道)。\n\t\t\t\t\t\tconst durationMs = performance.now() - startedAt;\n\t\t\t\t\t\tif (durationMs > SLOW_EVENT_SUBSCRIBER_WARN_MS) {\n\t\t\t\t\t\t\trecordLog(\"warn\", subscriber.owner, \"Slow event subscriber\", {\n\t\t\t\t\t\t\t\teventType: envelope.type,\n\t\t\t\t\t\t\t\tsubscriptionId,\n\t\t\t\t\t\t\t\tdurationMs: Math.round(durationMs),\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tassertUsable();\n\t\t\t\tconst failures = results\n\t\t\t\t\t.filter((result): result is PromiseRejectedResult => result.status === \"rejected\")\n\t\t\t\t\t.map((result) => result.reason)\n\t\t\t\t\t.filter((error) => !isRevokedCapabilityError(error));\n\t\t\t\tif (failures.length === 1) throw failures[0];\n\t\t\t\tif (failures.length > 1)\n\t\t\t\t\tthrow new AggregateError(failures, `Capability event delivery failed: ${envelope.type}`);\n\t\t\t\treturn envelope;\n\t\t\t},\n\t\t\tcall<TResult = unknown>(\n\t\t\t\toperation: string,\n\t\t\t\tinput: unknown,\n\t\t\t\toptions?: { signal?: AbortSignal },\n\t\t\t): OperationHandle<TResult> {\n\t\t\t\tassertUsable();\n\t\t\t\tconst registered = operations.get(operation);\n\t\t\t\tif (!registered) throw new Error(t(\"Operation is not registered: {operation}\", { operation }));\n\t\t\t\tassertRegisteredCapabilityActive(registered);\n\t\t\t\tconst sequence = ++operationSequence;\n\t\t\t\tconst id = createRuntimeId(\"operation\", sequence, `operation:${owner}:${operation}:${sequence}`);\n\t\t\t\tconst handle = trackOperation(\n\t\t\t\t\t[ownerToken, registered.ownerToken],\n\t\t\t\t\tnew RuntimeOperation<TResult>(\n\t\t\t\t\t\tid,\n\t\t\t\t\t\t(value, context) => invokeRegisteredCapability(registered, (handler) => handler(value, context)),\n\t\t\t\t\t\tinput,\n\t\t\t\t\t\t(status) => {\n\t\t\t\t\t\t\tstatuses.set(id, status);\n\t\t\t\t\t\t\tif (status === \"running\") {\n\t\t\t\t\t\t\t\treportOperationStart(id, operation, [ownerToken, registered.ownerToken]);\n\t\t\t\t\t\t\t} else if (status === \"cancelled\") {\n\t\t\t\t\t\t\t\treportOperationCancel(id, operation, [ownerToken, registered.ownerToken]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t(status) => reportOperationEnd(id, operation, status, [ownerToken, registered.ownerToken]),\n\t\t\t\t\t\t(() => {\n\t\t\t\t\t\t\tlet step = 0;\n\t\t\t\t\t\t\treturn (progress) =>\n\t\t\t\t\t\t\t\treportOperationStep(id, operation, [ownerToken, registered.ownerToken], progress, ++step);\n\t\t\t\t\t\t})(),\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t\tstatuses.set(id, handle.status());\n\t\t\t\tconst signal = options?.signal;\n\t\t\t\tif (signal) {\n\t\t\t\t\tif (signal.aborted) void handle.cancel(signal.reason);\n\t\t\t\t\telse\n\t\t\t\t\t\tsignal.addEventListener(\"abort\", () => void handle.cancel(signal.reason), {\n\t\t\t\t\t\t\tonce: true,\n\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn handle;\n\t\t\t},\n\t\t};\n\t\tapiStates.set(api, state);\n\t\treturn api;\n\t};\n\n\treturn {\n\t\thost: hostWithServices,\n\t\tresolvePluginCapabilityOrder,\n\t\tcreateAPI: apiFor,\n\t\trevokeAPI(api) {\n\t\t\tconst state = apiStates.get(api);\n\t\t\tif (state) revokeState(api, state);\n\t\t},\n\t\trevokeAllAPIs() {\n\t\t\tfor (const [api, state] of apiStates) revokeState(api, state);\n\t\t},\n\t\tasync disposeAll() {\n\t\t\tconst owners = [...pluginRegistrations.keys()];\n\t\t\tthis.revokeAllAPIs();\n\t\t\tconst failures: unknown[] = [];\n\t\t\tfor (const owner of owners) {\n\t\t\t\ttry {\n\t\t\t\t\tawait this.disposePlugin(owner);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tfailures.push(error);\n\t\t\t\t}\n\t\t\t}\n\t\t\tawait this.drainLifecycleDeliveries();\n\t\t\tif (failures.length === 1) throw failures[0];\n\t\t\tif (failures.length > 1) throw new AggregateError(failures, \"Capability runtime disposal failed\");\n\t\t},\n\t\tdisposePluginSync(id) {\n\t\t\tfor (const [api, state] of apiStates) if (state.owner === id) revokeState(api, state);\n\t\t\tconst registrations = pluginRegistrations.get(id);\n\t\t\tif (!registrations) return;\n\t\t\tpluginRegistrations.delete(id);\n\t\t\tconst failures: unknown[] = [];\n\t\t\tfor (const registration of registrations) {\n\t\t\t\ttry {\n\t\t\t\t\tconst result = registration.dispose();\n\t\t\t\t\tif (result && typeof (result as PromiseLike<void>).then === \"function\") {\n\t\t\t\t\t\tobserveUnexpectedAsyncCleanup(result as PromiseLike<void>, id);\n\t\t\t\t\t\tthrow new Error(t(\"Capability plugin {id} has asynchronous cleanup; use the async loader\", { id }));\n\t\t\t\t\t}\n\t\t\t\t} catch (error) {\n\t\t\t\t\tfailures.push(error);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (failures.length === 1) throw failures[0];\n\t\t\tif (failures.length > 1) throw new AggregateError(failures, `Capability plugin disposal failed: ${id}`);\n\t\t},\n\t\tasync disposePlugin(id) {\n\t\t\tfor (const [api, state] of apiStates) if (state.owner === id) revokeState(api, state);\n\t\t\tconst registrations = pluginRegistrations.get(id);\n\t\t\tif (!registrations) return;\n\t\t\tpluginRegistrations.delete(id);\n\t\t\tconst failures: unknown[] = [];\n\t\t\tfor (const registration of registrations) {\n\t\t\t\ttry {\n\t\t\t\t\tawait registration.dispose();\n\t\t\t\t} catch (error) {\n\t\t\t\t\tfailures.push(error);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (failures.length === 1) throw failures[0];\n\t\t\tif (failures.length > 1) throw new AggregateError(failures, `Capability plugin disposal failed: ${id}`);\n\t\t},\n\t\tlistTools: () =>\n\t\t\tObject.freeze(\n\t\t\t\tArray.from(tools.entries())\n\t\t\t\t\t.filter(([, entry]) => activeOwnerTokens.has(entry.ownerToken))\n\t\t\t\t\t.sort(([left], [right]) => stableTextCompare(left, right))\n\t\t\t\t\t.map(([name, entry]) =>\n\t\t\t\t\t\tObject.freeze({\n\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\tdefinition: withNormalizedToolResultExecute(definitionSnapshot(entry.value)),\n\t\t\t\t\t\t\tsource: entry.owner,\n\t\t\t\t\t\t\treadonlySafe: toolReadonlySafe(entry.value),\n\t\t\t\t\t\t}),\n\t\t\t\t\t),\n\t\t\t),\n\t\tlistCommands: () =>\n\t\t\tObject.freeze(\n\t\t\t\tArray.from(commands.values())\n\t\t\t\t\t.filter((entry) => activeOwnerTokens.has(entry.ownerToken))\n\t\t\t\t\t.sort(\n\t\t\t\t\t\t(left, right) =>\n\t\t\t\t\t\t\tstableTextCompare(left.value.name, right.value.name) || stableTextCompare(left.owner, right.owner),\n\t\t\t\t\t)\n\t\t\t\t\t.map((entry) => Object.freeze({ definition: definitionSnapshot(entry.value), source: entry.owner })),\n\t\t\t),\n\t\tlistSkills: () =>\n\t\t\tObject.freeze(\n\t\t\t\tArray.from(skills.values())\n\t\t\t\t\t.filter((entry) => activeOwnerTokens.has(entry.ownerToken))\n\t\t\t\t\t.sort(\n\t\t\t\t\t\t(left, right) =>\n\t\t\t\t\t\t\tstableTextCompare(left.value.name, right.value.name) || stableTextCompare(left.owner, right.owner),\n\t\t\t\t\t)\n\t\t\t\t\t.map((entry) => Object.freeze({ definition: definitionSnapshot(entry.value), source: entry.owner })),\n\t\t\t),\n\t\tlistContributionPoints: () =>\n\t\t\tArray.from(contributionPoints.values())\n\t\t\t\t.filter((point) => activeOwnerTokens.has(point.ownerToken))\n\t\t\t\t.sort((left, right) =>\n\t\t\t\t\tstableTextCompare(\n\t\t\t\t\t\tcontributionPointKey(left.definition.id, left.definition.version),\n\t\t\t\t\t\tcontributionPointKey(right.definition.id, right.definition.version),\n\t\t\t\t\t),\n\t\t\t\t)\n\t\t\t\t.map((point) => ({\n\t\t\t\t\tid: point.definition.id,\n\t\t\t\t\tversion: point.definition.version,\n\t\t\t\t\tschema: point.definition.schema,\n\t\t\t\t\tlifecycle: point.definition.lifecycle ?? \"observe\",\n\t\t\t\t\towner: point.owner,\n\t\t\t\t})),\n\t\tlistContributions: (pointId, version) => {\n\t\t\tconst point = contributionPoints.get(contributionPointKey(pointId, version));\n\t\t\tif (!point || !activeOwnerTokens.has(point.ownerToken))\n\t\t\t\tthrow new Error(`Contribution point is not defined: ${pointId}@${version}`);\n\t\t\treturn listContributionEntries(point);\n\t\t},\n\t\thasLifecycleEvent: (id, version) => {\n\t\t\tconst definition = lifecycleDefinitions.get(lifecycleEventKey(id, version));\n\t\t\treturn definition !== undefined && activeOwnerTokens.has(definition.ownerToken);\n\t\t},\n\t\tdispatchLifecycle,\n\t\tasync recordPluginRejection(rejection) {\n\t\t\tconst detached: PluginRejection = Object.freeze({\n\t\t\t\tcode: rejection.code,\n\t\t\t\tmanifestPath: rejection.manifestPath,\n\t\t\t\t...(rejection.pluginId === undefined ? {} : { pluginId: rejection.pluginId }),\n\t\t\t\tmessage: rejection.message,\n\t\t\t});\n\t\t\tpluginRejections.push(detached);\n\t\t\tconst rejectedEventDefinition = lifecycleDefinitions.get(\n\t\t\t\tlifecycleEventKey(PLUGIN_REJECTED_EVENT_ID, PLUGIN_REJECTED_EVENT_VERSION),\n\t\t\t);\n\t\t\tif (!rejectedEventDefinition || !activeOwnerTokens.has(rejectedEventDefinition.ownerToken)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tawait dispatchLifecycle({\n\t\t\t\t\ttype: PLUGIN_REJECTED_EVENT_ID,\n\t\t\t\t\tversion: PLUGIN_REJECTED_EVENT_VERSION,\n\t\t\t\t\tphase: \"committed\",\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tversion: 1,\n\t\t\t\t\t\t...(detached.pluginId === undefined ? {} : { pluginId: detached.pluginId }),\n\t\t\t\t\t\tmanifestPath: detached.manifestPath,\n\t\t\t\t\t\tcode: detached.code,\n\t\t\t\t\t\tmessage: detached.message,\n\t\t\t\t\t},\n\t\t\t\t\tsource: \"capability-runtime\",\n\t\t\t\t});\n\t\t\t} catch {\n\t\t\t\t// The inspector record above is authoritative; lifecycle delivery failures\n\t\t\t\t// surface through runtime reports, never through the startup path.\n\t\t\t}\n\t\t},\n\t\tlistPluginCapabilities,\n\t\tvalidateExecutionFacts: validateExecutionFactsV1,\n\t\tvalidateRetrySchedule: validateRetryScheduleV1,\n\t\thasRetryPolicy: (name) => retryPolicies.has(name),\n\t\tasync classifyRetry(name, request) {\n\t\t\tconst policy = retryPolicies.get(name);\n\t\t\tif (!policy) throw new Error(t(\"Retry policy is not registered: {name}\", { name }));\n\t\t\tif (!policy.value.classify)\n\t\t\t\tthrow new Error(t(\"Retry policy does not support classification: {name}\", { name }));\n\t\t\tconst retryable = await invokeRegisteredCapabilityWithSignal(policy, request.signal, (value) =>\n\t\t\t\tvalue.classify?.(request),\n\t\t\t);\n\t\t\tif (typeof retryable !== \"boolean\") {\n\t\t\t\tthrow new Error(t(\"Retry policy returned an invalid classification: {name}\", { name }));\n\t\t\t}\n\t\t\treturn retryable;\n\t\t},\n\t\tasync decideRetry(name, request) {\n\t\t\tconst policy = retryPolicies.get(name);\n\t\t\tif (!policy) throw new Error(t(\"Retry policy is not registered: {name}\", { name }));\n\t\t\tconst decision = await invokeRegisteredCapabilityWithSignal(policy, request.signal, (value) =>\n\t\t\t\tvalue.decide(request),\n\t\t\t);\n\t\t\tif (!decision || typeof decision.retry !== \"boolean\") {\n\t\t\t\tthrow new Error(t(\"Retry policy returned an invalid decision: {name}\", { name }));\n\t\t\t}\n\t\t\tif (decision.delayMs !== undefined && (!Number.isFinite(decision.delayMs) || decision.delayMs < 0)) {\n\t\t\t\tthrow new Error(t(\"Retry policy returned an invalid delayMs: {name}\", { name }));\n\t\t\t}\n\t\t\treturn decision;\n\t\t},\n\t\thasCompactionPolicy: (name) => compactionPolicies.has(name),\n\t\tasync prepareCompaction(name, request) {\n\t\t\tconst policy = compactionPolicies.get(name);\n\t\t\tif (!policy) throw new Error(t(\"Compaction policy is not registered: {name}\", { name }));\n\t\t\tif (!policy.value.prepare)\n\t\t\t\tthrow new Error(t(\"Compaction policy does not support preparation: {name}\", { name }));\n\t\t\treturn invokeRegisteredCapabilityWithSignal(policy, request.signal, (value) => value.prepare?.(request));\n\t\t},\n\t\thasBranchSummaryPolicy: (name) => branchSummaryPolicies.has(name),\n\t\tasync summarizeBranch(name, request) {\n\t\t\tconst policy = branchSummaryPolicies.get(name);\n\t\t\tif (!policy) throw new Error(t(\"Branch summary policy is not registered: {name}\", { name }));\n\t\t\tconst result = await invokeRegisteredCapabilityWithSignal(policy, request.signal, (value) =>\n\t\t\t\tvalue.summarize(request),\n\t\t\t);\n\t\t\tif (!result || typeof result !== \"object\") {\n\t\t\t\tthrow new Error(t(\"Branch summary policy returned an invalid result: {name}\", { name }));\n\t\t\t}\n\t\t\treturn result;\n\t\t},\n\t\tgetLoopHookChain: (position) => {\n\t\t\tconst entries = loopHooks.get(position);\n\t\t\tif (!entries) return [];\n\t\t\treturn entries\n\t\t\t\t.filter((entry) => activeOwnerTokens.has(entry.ownerToken))\n\t\t\t\t.map((entry) => entry.value) as unknown as readonly AgentLoopHookForV1<typeof position>[];\n\t\t},\n\t\thasRunLoopStrategy: (name) => runLoopStrategies.has(name),\n\t\tasync decideRunLoop(name, request) {\n\t\t\tconst strategy = runLoopStrategies.get(name);\n\t\t\tif (!strategy) throw new Error(t(\"Run loop strategy is not registered: {name}\", { name }));\n\t\t\tconst decision = await invokeRegisteredCapabilityWithSignal(strategy, request.signal, (value) =>\n\t\t\t\tvalue.decideNextCycle(request),\n\t\t\t);\n\t\t\tif (!decision || typeof decision.continueLoop !== \"boolean\") {\n\t\t\t\tthrow new Error(t(\"Run loop strategy returned an invalid decision: {name}\", { name }));\n\t\t\t}\n\t\t\treturn decision;\n\t\t},\n\t\tasync decideCompaction(name, request) {\n\t\t\tconst policy = compactionPolicies.get(name);\n\t\t\tif (!policy) throw new Error(t(\"Compaction policy is not registered: {name}\", { name }));\n\t\t\tconst decision = await invokeRegisteredCapabilityWithSignal(policy, request.signal, (value) =>\n\t\t\t\tvalue.decide(request),\n\t\t\t);\n\t\t\tif (!decision || typeof decision.compact !== \"boolean\") {\n\t\t\t\tthrow new Error(t(\"Compaction policy returned an invalid decision: {name}\", { name }));\n\t\t\t}\n\t\t\tif (decision.retry !== undefined && typeof decision.retry !== \"boolean\") {\n\t\t\t\tthrow new Error(t(\"Compaction policy returned an invalid retry value: {name}\", { name }));\n\t\t\t}\n\t\t\tif (decision.failureMessage !== undefined && typeof decision.failureMessage !== \"string\") {\n\t\t\t\tthrow new Error(t(\"Compaction policy returned an invalid failureMessage: {name}\", { name }));\n\t\t\t}\n\t\t\treturn decision;\n\t\t},\n\t\tasync summarizeCompaction(name, request) {\n\t\t\tconst policy = compactionPolicies.get(name);\n\t\t\tif (!policy) throw new Error(t(\"Compaction policy is not registered: {name}\", { name }));\n\t\t\tif (!policy.value.summarize)\n\t\t\t\tthrow new Error(t(\"Compaction policy does not support summaries: {name}\", { name }));\n\t\t\tconst result = await invokeRegisteredCapabilityWithSignal(policy, request.signal, (value) =>\n\t\t\t\tvalue.summarize?.(request),\n\t\t\t);\n\t\t\tif (\n\t\t\t\t!result ||\n\t\t\t\ttypeof result.summary !== \"string\" ||\n\t\t\t\t!result.summary ||\n\t\t\t\ttypeof result.firstKeptEntryId !== \"string\" ||\n\t\t\t\t!Number.isFinite(result.tokensBefore)\n\t\t\t) {\n\t\t\t\tthrow new Error(t(\"Compaction policy returned an invalid summary: {name}\", { name }));\n\t\t\t}\n\t\t\treturn result;\n\t\t},\n\t\thasOverflowPolicy: (name) => overflowPolicies.has(name),\n\t\tasync decideOverflow(name, request) {\n\t\t\tconst policy = overflowPolicies.get(name);\n\t\t\tif (!policy) throw new Error(t(\"Overflow policy is not registered: {name}\", { name }));\n\t\t\tconst decision = await invokeRegisteredCapabilityWithSignal(policy, request.signal, (value) =>\n\t\t\t\tvalue.decide(request),\n\t\t\t);\n\t\t\tif (\n\t\t\t\t!decision ||\n\t\t\t\ttypeof decision.contextOverflow !== \"boolean\" ||\n\t\t\t\ttypeof decision.recoverableLength !== \"boolean\"\n\t\t\t) {\n\t\t\t\tthrow new Error(t(\"Overflow policy returned an invalid decision: {name}\", { name }));\n\t\t\t}\n\t\t\treturn decision;\n\t\t},\n\t\tasync invokeTool(name, input, options) {\n\t\t\tconst registered = tools.get(name);\n\t\t\tif (!registered) throw new Error(t(\"Tool is not registered: {name}\", { name }));\n\t\t\treturn invokeRegisteredCapability(registered, (value) =>\n\t\t\t\tinvokeCapabilityTool(asHandler(value, \"Tool\"), input, toolExecutionContext, options?.signal),\n\t\t\t);\n\t\t},\n\t\t// 中断分级读面(设计 §4.2,2026-10-02):活任务集合的有界投影。已终态\n\t\t// 任务在显式 dispose 前仍滞留集合(释放钩子语义,见 RuntimeAgentTask),\n\t\t// 因此这里按状态过滤——只计尚未终态的任务。dispose 是多 await 流程,\n\t\t// 任务先置 disposed 再退出集合,中间窗口 status() 会抛——该窗口内的\n\t\t// 任务按非活跃计(宿主按键路径绝不能因投影抛错)。\n\t\tgetActiveAgentTaskCount: () => {\n\t\t\tlet active = 0;\n\t\t\tfor (const task of agentTasks) {\n\t\t\t\tlet status: string | undefined;\n\t\t\t\ttry {\n\t\t\t\t\tstatus = task.status();\n\t\t\t\t} catch {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (status !== \"succeeded\" && status !== \"failed\" && status !== \"cancelled\") active += 1;\n\t\t\t}\n\t\t\treturn active;\n\t\t},\n\t\thasCommand: (name) => commands.has(name),\n\t\tasync invokeCommand(name, args, options) {\n\t\t\tconst registered = commands.get(name);\n\t\t\tif (!registered) throw new Error(t(\"Command is not registered: {name}\", { name }));\n\t\t\treturn validateCommandResult(\n\t\t\t\tawait invokeRegisteredCapability(registered, (value) =>\n\t\t\t\t\tvalue.execute(args, options ?? { signal: new AbortController().signal }),\n\t\t\t\t),\n\t\t\t\tname,\n\t\t\t);\n\t\t},\n\t\thasRpcMethod: (name) => rpcMethods.has(name),\n\t\tasync dispatchRpc(name, input) {\n\t\t\tconst registered = rpcMethods.get(name);\n\t\t\tif (!registered) throw new Error(t(\"RPC method is not registered: {name}\", { name }));\n\t\t\treturn invokeRegisteredCapability(registered, (value) => value(input));\n\t\t},\n\t\thasContextStrategy: (name) => contextStrategies.has(name),\n\t\tasync transformContext(name, context, options) {\n\t\t\tconst strategy = contextStrategies.get(name);\n\t\t\tif (!strategy) throw new Error(t(\"Context strategy is not registered: {name}\", { name }));\n\t\t\treturn invokeRegisteredCapability(strategy, (value) => value.transform(context, options));\n\t\t},\n\t\tasync snapshotContext(name, context, options) {\n\t\t\tconst registered = contextStrategies.get(name);\n\t\t\tif (!registered) throw new Error(t(\"Context strategy is not registered: {name}\", { name }));\n\t\t\tif (!registered.value.snapshot)\n\t\t\t\tthrow new Error(t(\"Context strategy does not support snapshots: {name}\", { name }));\n\t\t\treturn invokeRegisteredCapability(registered, (value) => value.snapshot?.(context, options));\n\t\t},\n\t\tasync restoreContext(name, snapshot, options) {\n\t\t\tconst registered = contextStrategies.get(name);\n\t\t\tif (!registered) throw new Error(t(\"Context strategy is not registered: {name}\", { name }));\n\t\t\tif (!registered.value.restore)\n\t\t\t\tthrow new Error(t(\"Context strategy does not support restore: {name}\", { name }));\n\t\t\treturn invokeRegisteredCapability(registered, (value) => value.restore?.(snapshot, options));\n\t\t},\n\t\tasync replaceContext(name, context, options) {\n\t\t\tconst registered = contextStrategies.get(name);\n\t\t\tif (!registered) throw new Error(t(\"Context strategy is not registered: {name}\", { name }));\n\t\t\tif (!registered.value.replace)\n\t\t\t\tthrow new Error(t(\"Context strategy does not support replacement: {name}\", { name }));\n\t\t\treturn invokeRegisteredCapability(registered, (value) => value.replace?.(context, options));\n\t\t},\n\t\tasync transformProviderHeaders(request) {\n\t\t\tlet headers = validateProviderHeaders(request.headers, \"request\");\n\t\t\tfor (const [name, transform] of providerHeaderTransforms) {\n\t\t\t\theaders = validateProviderHeaders(\n\t\t\t\t\tawait invokeRegisteredCapability(transform, (value) =>\n\t\t\t\t\t\tvalue({\n\t\t\t\t\t\t\tmodel: request.model,\n\t\t\t\t\t\t\t...(request.sessionId === undefined ? {} : { sessionId: request.sessionId }),\n\t\t\t\t\t\t\theaders: { ...headers },\n\t\t\t\t\t\t}),\n\t\t\t\t\t),\n\t\t\t\t\tname,\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn headers;\n\t\t},\n\t\tgetStreamFnWrappers: () =>\n\t\t\tArray.from(streamFnWrapperRegistry.values())\n\t\t\t\t.filter((entry) => activeOwnerTokens.has(entry.ownerToken))\n\t\t\t\t// 契约 A(D-082 批 3b)稳定排序:(priority 升序, 注册序升序)。sequence\n\t\t\t\t// 唯一即全序,同 priority 恒保持注册序(缺省 priority 0 时与既有\n\t\t\t\t// 注册序语义逐点一致)。\n\t\t\t\t.sort((left, right) => left.priority - right.priority || left.sequence - right.sequence)\n\t\t\t\t.map((entry) => entry.value),\n\t\tgetOperationStatus: (id) => statuses.get(id),\n\t\tdrainLifecycleDeliveries: async () => {\n\t\t\twhile (true) {\n\t\t\t\tconst queues = [...lifecycleDeliveryQueues];\n\t\t\t\tif (queues.length === 0) return;\n\t\t\t\tawait Promise.all(queues.map((queue) => queue.drain()));\n\t\t\t\tif (queues.every((queue) => queue.snapshot().pendingEvents === 0)) return;\n\t\t\t}\n\t\t},\n\t\tinspect,\n\t};\n}\n"]}
|
|
1
|
+
{"version":3,"file":"capability-runtime.js","sourceRoot":"","sources":["../../../src/core/extensions/capability-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,CAAC,EAAE,MAAM,kBAAkB,CAAC;AAErC,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EACN,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,+BAA+B,GAC/B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EACN,cAAc,EACd,kCAAkC,EAClC,wBAAwB,EACxB,6BAA6B,EAC7B,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,4BAA4B,GAC5B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC1F,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACxF,OAAO,EACN,gCAAgC,IAAI,+BAA+B,EACnE,qBAAqB,IAAI,0BAA0B,EACnD,4BAA4B,EAC5B,4BAA4B,EAC5B,sBAAsB,IAAI,2BAA2B,EACrD,0BAA0B,IAAI,+BAA+B,EAC7D,oCAAoC,IAAI,yCAAyC,EACjF,wBAAwB,EACxB,6BAA6B,EAC7B,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,IAAI,mBAAmB,GACrC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAcpE,OAAO,EAAE,gCAAgC,EAAE,MAAM,+BAA+B,CAAC;AACjF,OAAO,EACN,SAAS,EACT,sBAAsB,EACtB,UAAU,EACV,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,0BAA0B,EAC1B,iBAAiB,EACjB,gBAAgB,EAChB,yBAAyB,EACzB,qBAAqB,EACrB,mCAAmC,EACnC,wBAAwB,EACxB,gCAAgC,EAChC,uBAAuB,EACvB,uBAAuB,GACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,wBAAwB,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AACjG,OAAO,EAAE,4BAA4B,EAA+B,MAAM,+BAA+B,CAAC;AAC1G,OAAO,EAoBN,4BAA4B,EAC5B,mBAAmB,GAmCnB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,4BAA4B,EAAE,MAAM,kCAAkC,CAAC;AAEhF,OAAO,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAwBvG;;;;;;GAMG;AACH,MAAM,6BAA6B,GAAG,GAAG,CAAC;AAc1C;;GAEG;AACH,MAAM,0BAA0B,GAAG,EAAE,GAAG,IAAI,CAAC;AAE7C,MAAM,uBAAuB,GAAG,IAAI,WAAW,EAAE,CAAC;AAElD;;GAEG;AACH,MAAM,sBAAsB,GAAG,CAAC,YAAoB,EAAc,EAAE,CACnE,uBAAuB,CAAC,MAAM,CAAC,sCAAsC,YAAY,mBAAmB,CAAC,CAAC;AAUvG,MAAM,YAAY,GAAG,CAAC,MAA6B,EAAE,UAAkB,EAAc,EAAE,CAAC;IACvF,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;IACzC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC5B,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC;IAC5B,CAAC;IACD,OAAO,KAAK,CAAC;AAAA,CACb,CAAC;AAEF,qGAAyD;AACzD,MAAM,gBAAgB,GAAG,CAAC,MAA6B,EAAE,MAAc,EAAgB,EAAE,CAAC;IACzF,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,IAAI,SAAS,GAAG,MAAM,CAAC;IACvB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC5B,IAAI,SAAS,IAAI,CAAC;YAAE,MAAM;QAC1B,IAAI,KAAK,CAAC,UAAU,IAAI,SAAS,EAAE,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAClB,SAAS,IAAI,KAAK,CAAC,UAAU,CAAC;QAC/B,CAAC;aAAM,CAAC;YACP,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;YACzC,SAAS,GAAG,CAAC,CAAC;QACf,CAAC;IACF,CAAC;IACD,OAAO,KAAK,CAAC;AAAA,CACb,CAAC;AAEF;;;;GAIG;AACH,MAAM,kBAAkB,GAAG,CAC1B,UAAiC,EACjC,UAAiC,EACjC,UAAkB,EACL,EAAE,CAAC;IAChB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,0BAA0B,EAAE,UAAU,CAAC,CAAC;IACnE,IAAI,OAAO,GAAG,UAAU,GAAG,gCAAgC,CAAC;IAC5D,IAAI,MAAM,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAC7C,IAAI,UAAU,GAAG,gCAAgC,GAAG,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC;IAClF,OAAO,UAAU,GAAG,UAAU,GAAG,SAAS,KAAK,OAAO,EAAE,CAAC;QACxD,OAAO,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;QAC9C,MAAM,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;QACzC,UAAU,GAAG,gCAAgC,GAAG,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC;IAC/E,CAAC;IACD,OAAO,YAAY,CAClB,CAAC,GAAG,gBAAgB,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,EACpE,gCAAgC,CAChC,CAAC;AAAA,CACF,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,wBAAwB,GAAG,KAAK,EACrC,IAA4C,EAC5C,cAA0B,EACQ,EAAE,CAAC;IACrC,IAAI,IAAI,YAAY,UAAU,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,UAAU,IAAI,gCAAgC,EAAE,CAAC;YACzD,OAAO,EAAE,KAAK,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QACvF,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,GAAG,0BAA0B,CAAC;QAC/D,OAAO;YACN,KAAK,EAAE,kBAAkB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC;YAC9E,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,SAAS,EAAE,IAAI;SACf,CAAC;IACH,CAAC;IACD,MAAM,UAAU,GAAiB,EAAE,CAAC;IACpC,MAAM,UAAU,GAAiB,EAAE,CAAC;IACpC,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,MAAM,UAAU,GAAG,CAAC,KAAiB,EAAQ,EAAE,CAAC;QAC/C,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,SAAS,IAAI,KAAK,CAAC,UAAU,CAAC;QAC9B,OAAO,SAAS,GAAG,0BAA0B,EAAE,CAAC;YAC/C,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,QAAQ,GAAG,SAAS,GAAG,0BAA0B,CAAC;YACxD,IAAI,MAAM,CAAC,UAAU,IAAI,QAAQ,EAAE,CAAC;gBACnC,UAAU,CAAC,KAAK,EAAE,CAAC;gBACnB,SAAS,IAAI,MAAM,CAAC,UAAU,CAAC;YAChC,CAAC;iBAAM,CAAC;gBACP,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAC1C,SAAS,IAAI,QAAQ,CAAC;YACvB,CAAC;QACF,CAAC;IAAA,CACD,CAAC;IACF,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;QAChC,cAAc,EAAE,CAAC;QACjB,IAAI,CAAC,CAAC,KAAK,YAAY,UAAU,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,mBAAmB,CAAC,aAAa,EAAE,gDAAgD,CAAC,CAAC;QAChG,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;QACnC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC;QAC9B,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,SAAS;YAAE,SAAS;QACxB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC;QAC7B,IAAI,SAAS,GAAG,gCAAgC;YAAE,SAAS,GAAG,IAAI,CAAC;IACpE,CAAC;IACD,cAAc,EAAE,CAAC;IACjB,IAAI,CAAC,SAAS,EAAE,CAAC;QAChB,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;IAC/E,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,kBAAkB,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAAA,CACtG,CAAC;AAEF,MAAM,UAAU,uBAAuB,CACtC,SAA2B,EAC3B,OAAO,GAA6B,EAAE,EAClB;IACpB,0EAA0E;IAC1E,oEAAoE;IACpE,yEAAyE;IACzE,mEAAmE;IACnE,0EAA0E;IAC1E,2EAAyE;IACzE,qEAAqE;IACrE,2EAAuE;IACvE,4EAA4E;IAC5E,4EAA4E;IAC5E,kEAAkE;IAClE,UAAU,CAAC,SAAS,CAAC,CAAC;IACtB,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,aAAa,EAAE,GAAG,SAAS,CAAC;IAChG,MAAM,IAAI,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAC7C,UAAU,CAAC,IAAI,CAAC,CAAC;IACjB,MAAM,gBAAgB,GACrB,aAAa,KAAK,SAAS;QAC3B,WAAW,KAAK,SAAS;QACzB,aAAa,KAAK,SAAS;QAC3B,YAAY,KAAK,SAAS;QACzB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;YACd,GAAG,IAAI;YACP,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC;YACzD,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;YACrD,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC;YACzD,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC;SACvD,CAAC,CAAC;IACN,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACrD,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAClE,MAAM,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IACzE,IAAI,UAAU,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,uDAAuD,CAAC,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,2DAA2D,CAAC,CAAC,CAAC;IACjF,CAAC;IACD,IAAI,gBAAgB,IAAI,CAAC,UAAU,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,wEAAwE,CAAC,CAAC,CAAC;IAC9F,CAAC;IACD,IAAI,gBAAgB,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,2EAA2E,CAAC,CAAC,CAAC;IACjG,CAAC;IACD,IAAI,kBAAkB,IAAI,CAAC,UAAU,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,6EAA6E,CAAC,CAAC,CAAC;IACnG,CAAC;IACD,IAAI,kBAAkB,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC;QACzD,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,6EAA6E,CAAC,CAAC,CAAC;IACnG,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,6DAA6D,CAAC,CAAC,CAAC;IACnF,CAAC;IACD,IACC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAChC,CAAC,OAAO,CAAC,MAAM;QACf,OAAO,CAAC,kBAAkB,KAAK,SAAS;QACxC,OAAO,CAAC,kBAAkB,KAAK,SAAS,EACvC,CAAC;QACF,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,wFAAwF,CAAC,CAAC,CAAC;IAC9G,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,iEAAiE,CAAC,CAAC,CAAC;IACvF,CAAC;IACD,IAAI,OAAO,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,CAAC;QAC/E,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,oFAAoF,CAAC,CAAC,CAAC;IAC1G,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;QAC/E,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,gFAAgF,CAAC,CAAC,CAAC;IACtG,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,8DAA8D,CAAC,CAAC,CAAC;IACpF,CAAC;IACD,IAAI,OAAO,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,kEAAkE,CAAC,CAAC,CAAC;IACxF,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,mEAAmE,CAAC,CAAC,CAAC;IACzF,CAAC;IACD,IAAI,OAAO,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,uEAAuE,CAAC,CAAC,CAAC;IAC7F,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3F,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,gFAAgF,CAAC,CAAC,CAAC;IACtG,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IACzC,sEAAsE;IACtE,4EAA4E;IAC5E,4EAA4E;IAC5E,4DAA4D;IAC5D,MAAM,sBAAsB,GAAG,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,MAAM,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAC9D,MAAM,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAC1D,MAAM,KAAK,GAAG,4BAA4B,EAAE,CAAC;IAC7C,MAAM,EACL,KAAK,EACL,MAAM,EACN,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,SAAS,EACT,QAAQ,EACR,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,WAAW,EACX,QAAQ,EACR,mBAAmB,EACnB,SAAS,EACT,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,qBAAqB,EACrB,aAAa,EACb,eAAe,EACf,wBAAwB,EACxB,uBAAuB,EACvB,KAAK,EACL,uBAAuB,GACvB,GAAG,KAAK,CAAC;IACV,MAAM,YAAY,GAAG,KAAK,CAAC;IAC3B,wGAAoD;IACpD,0GAAsD;IACtD,6FAAmE;IACnE,MAAM,uBAAuB,GAAG,gBAAsD,CAAC;IACvF,IAAI,oBAAoB,GAAG,CAAC,CAAC;IAC7B,IAAI,iBAAiB,GAAG,CAAC,CAAC;IAC1B,IAAI,iBAAiB,GAAG,CAAC,CAAC;IAC1B,wGAAqD;IACrD,kFAAkD;IAClD,uDAA2C;IAC3C,MAAM,UAAU,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC/C,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,IAAI,gCAAgC,GAAG,CAAC,CAAC;IACzC,IAAI,6BAA6B,GAAG,CAAC,CAAC;IACtC,IAAI,oBAAoB,GAAG,CAAC,CAAC;IAC7B,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,IAAI,uBAAuB,GAAG,CAAC,CAAC;IAEhC,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,QAAgB,EAAE,QAAgB,EAAU,EAAE,CAAC;QACrF,IAAI,CAAC,OAAO,CAAC,SAAS;YAAE,OAAO,QAAQ,CAAC;QACxC,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC7C,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,6DAA6D,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC7F,CAAC;QACD,OAAO,EAAE,CAAC;IAAA,CACV,CAAC;IACF,MAAM,EACL,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,GACnB,GAAG,sBAAsB,CAAC;QAC1B,KAAK;QACL,KAAK;QACL,eAAe;QACf,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;KAChD,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,sBAAsB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,MAAM,gCAAgC,GAAG,CAAI,UAAmC,EAAQ,EAAE,CACzF,+BAA+B,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IACpD,MAAM,0BAA0B,GAAG,KAAK,EACvC,UAAmC,EACnC,MAAoD,EACjC,EAAE,CAAC,+BAA+B,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IAClF,MAAM,oCAAoC,GAAG,KAAK,EACjD,UAAmC,EACnC,MAA+B,EAC/B,MAAoD,EACjC,EAAE,CAAC,yCAAyC,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACpG,MAAM,sBAAsB,GAAG,KAAK,EACnC,UAAsC,EACtC,KAAc,EACd,MAAmB,EACA,EAAE,CAAC,2BAA2B,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACrF,MAAM,cAAc,GAAG,CACtB,WAA8B,EAC9B,MAAgC,EACL,EAAE,CAAC,mBAAmB,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IAC/E,MAAM,qBAAqB,GAAG,CAAC,UAAkB,EAAE,KAAa,EAAQ,EAAE,CACzE,0BAA0B,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IAEtD,MAAM,gBAAgB,GAAG,CAAC,UAAkB,EAAQ,EAAE,CAAC;QACtD,KAAK,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,eAAe,EAAE,CAAC;YACtD,IAAI,QAAQ,CAAC,UAAU,KAAK,UAAU;gBAAE,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC5E,CAAC;IAAA,CACD,CAAC;IAEF,MAAM,yBAAyB,GAAG,CAAC,UAAkB,EAAQ,EAAE,CAAC;QAC/D,KAAK,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,kBAAkB,EAAE,CAAC;YACpD,IAAI,UAAU,CAAC,UAAU,KAAK,UAAU;gBAAE,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1E,CAAC;IAAA,CACD,CAAC;IAEF,MAAM,6BAA6B,GAAG,CAAC,UAAkB,EAAQ,EAAE,CAAC;QACnE,KAAK,MAAM,QAAQ,IAAI;YACtB,KAAK;YACL,MAAM;YACN,aAAa;YACb,kBAAkB;YAClB,gBAAgB;YAChB,qBAAqB;YACrB,iBAAiB;YACjB,QAAQ;YACR,UAAU;YACV,UAAU;YACV,iBAAiB;YACjB,wBAAwB;YACxB,uBAAuB;SACd,EAAE,CAAC;YACZ,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACtC,IAAI,KAAK,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;oBACrC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBACtB,IAAI,QAAQ,KAAK,KAAK;wBAAE,wBAAwB,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBACrE,CAAC;YACF,CAAC;QACF,CAAC;QACD,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,SAAS,EAAE,CAAC;YAC7C,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;YAC7E,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;iBAClD,IAAI,SAAS,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM;gBAAE,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAClF,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,WAAW,EAAE,CAAC;YAC5C,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACtC,IAAI,OAAO,CAAC,UAAU,KAAK,UAAU;oBAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC5D,CAAC;YACD,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC;gBAAE,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnD,CAAC;QACD,kGAAgE;QAChE,0GAAwD;QACxD,gHAAoD;QACpD,mHAAmD;QACnD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,qBAAqB,EAAE,CAAC;YACnD,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;YACnF,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;gBAAE,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;iBAC1D,IAAI,SAAS,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;gBAAE,qBAAqB,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACxF,CAAC;IAAA,CACD,CAAC;IACF,MAAM,WAAW,GAAG,CAAC,GAAkB,EAAE,KAAe,EAAQ,EAAE,CAAC;QAClE,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;QACrB,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC3C,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,oBAAoB,IAAI,EAAE;YAAE,KAAK,QAAQ,CAAC,OAAO,EAAE,CAAC;QACjF,KAAK,CAAC,oBAAoB,EAAE,KAAK,EAAE,CAAC;QACpC,MAAM,iBAAiB,GAAG,OAAO,CAAC,WAAqE,CAAC;QACxG,iBAAiB,EAAE,kBAAkB,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC,CAAC;QACxF,KAAK,CAAC,sBAAsB,EAAE,KAAK,EAAE,CAAC;QACtC,qBAAqB,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QACrD,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACnC,oBAAoB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACvC,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAChC,yBAAyB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC5C,yBAAyB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC5C,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACnC,6BAA6B,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAChD,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAAA,CACtB,CAAC;IAEF,MAAM,yBAAyB,GAAG,CAAC,UAAkB,EAAQ,EAAE,CAAC;QAC/D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,kBAAkB,EAAE,CAAC;YAC/C,IAAI,KAAK,CAAC,UAAU,KAAK,UAAU;gBAAE,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACpE,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBACzC,IAAI,KAAK,CAAC,UAAU,KAAK,UAAU;oBAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC/D,CAAC;YACD,KAAK,MAAM,CAAC,EAAE,EAAE,UAAU,CAAC,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;gBAClD,IAAI,UAAU,CAAC,UAAU,KAAK,UAAU;oBAAE,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACxE,CAAC;QACF,CAAC;IAAA,CACD,CAAC;IAEF,MAAM,+BAA+B,GAAG,CAAC,YAAyC,EAAQ,EAAE,CAAC;QAC5F,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;QACjC,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,KAAK,KAAK;aACR,KAAK,EAAE;aACP,IAAI,CAAC,GAAG,EAAE,CAAC,uBAAuB,CAAC,MAAM,CAAC,KAAiE,CAAC,CAAC,CAAC;IAAA,CAChH,CAAC;IACF,MAAM,gBAAgB,GAAG,CAAC,UAAkB,EAAQ,EAAE,CAAC;QACtD,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,oBAAoB,EAAE,CAAC;YAClD,IAAI,MAAM,CAAC,UAAU,KAAK,UAAU;gBAAE,oBAAoB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACxE,CAAC;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,aAAa,CAAC,IAAI,sBAAsB,EAAE,CAAC;YAC3D,KAAK,MAAM,CAAC,EAAE,EAAE,YAAY,CAAC,IAAI,aAAa,EAAE,CAAC;gBAChD,IAAI,YAAY,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;oBAC5C,+BAA+B,CAAC,YAAY,CAAC,CAAC;oBAC9C,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC1B,CAAC;YACF,CAAC;YACD,IAAI,aAAa,CAAC,IAAI,KAAK,CAAC;gBAAE,sBAAsB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAClE,CAAC;IAAA,CACD,CAAC;IAEF,MAAM,oBAAoB,GAAG,CAAC,UAAkB,EAAQ,EAAE,CAAC;QAC1D,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,aAAa,EAAE,CAAC;YAC/C,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,QAAQ;gBAAE,IAAI,OAAO,CAAC,UAAU,KAAK,UAAU;oBAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACjG,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC;gBAAE,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtD,CAAC;IAAA,CACD,CAAC;IACF,MAAM,kBAAkB,GAAG,CAAC,KAAa,EAAQ,EAAE,CAAC;QACnD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC1D,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;gBAC1B,IAAI,CAAC,OAAO,GAAG,KAAK,EAAE,CAAC;YACxB,CAAC;QACF,CAAC;IAAA,CACD,CAAC;IAEF,MAAM,cAAc,GAAG,CAAC,GAAW,EAAQ,EAAE,CAAC;QAC7C,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC;IAAA,CACvG,CAAC;IAEF,MAAM,kBAAkB,GAAG,CAAC,OAAoC,EAAQ,EAAE,CAAC;QAC1E,IACC,OAAO,EAAE,gBAAgB,KAAK,SAAS;YACvC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,OAAO,CAAC,gBAAgB,GAAG,CAAC,CAAC,EAChF,CAAC;YACF,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,4DAA4D,CAAC,CAAC,CAAC;QAClF,CAAC;IAAA,CACD,CAAC;IAEF,MAAM,aAAa,GAAG,CAAC,GAAW,EAAE,KAAkB,EAAc,EAAE,CACrE,gBAAgB,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IAEzE,MAAM,mBAAmB,GAAG,CAC3B,QAA+C,EAC/C,KAAa,EACb,MAAmB,EACZ,EAAE,CAAC;QACV,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YACzC,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC;gBAAE,SAAS;YACrF,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC;gBAAE,SAAS;YACzD,IAAI,CAAC;gBACJ,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;YAC3C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,sBAAsB,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;YAC/E,CAAC;QACF,CAAC;IAAA,CACD,CAAC;IAEF,MAAM,mBAAmB,GAAG,CAAC,KAAa,EAAE,MAAmB,EAAQ,EAAE,CACxE,mBAAmB,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAE9D,MAAM,SAAS,GAAG,CACjB,KAAkB,EAClB,KAAa,EACb,OAAe,EACf,MAA0B,EAC1B,KAAe,EACR,EAAE,CAAC;QACV,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC;QAC3G,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC;YACvD,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAiB;YAC5B,OAAO,EAAE,CAAC;YACV,KAAK;YACL,OAAO;YACP,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,KAAK,EAAE;YAClB,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;YACvF,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;YACrE,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;SAClE,CAAC;QACF,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC9B,4GAAyC;QACzC,8FAAoD;QACpD,qGAA2C;QAC3C,8CAAwB;QACxB,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACzB,IAAI,CAAC;gBACJ,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC7B,CAAC;YAAC,MAAM,CAAC;gBACR,kEAAkE;gBAClE,sDAAsD;YACvD,CAAC;QACF,CAAC;IAAA,CACD,CAAC;IAEF;;;;;OAKG;IACH,MAAM,wBAAwB,GAAG,CAAC,KAAa,EAAE,IAAY,EAAQ,EAAE,CAAC;QACvE,IAAI,CAAC,OAAO,CAAC,oBAAoB;YAAE,OAAO;QAC1C,IAAI,CAAC;YACJ,OAAO,CAAC,oBAAoB,EAAE,CAAC;QAChC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,sCAAsC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;QAC1F,CAAC;IAAA,CACD,CAAC;IAEF,MAAM,iBAAiB,GAAG,CAAC,KAAa,EAAsB,EAAE,CAAC,CAAC;QACjE,aAAa,EAAE,KAAK;QACpB,QAAQ,EAAE,KAAK;QACf,UAAU,EAAE,KAAK;QACjB,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;QACtD,WAAW,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACvE,eAAe,EAAE,GAAG,EAAE,CAAC;YACtB,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,EAAuB,CAAC;YAC5E,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YACnC,OAAO,SAAS,CAAC;QAAA,CACjB;QACD,eAAe,EAAE,GAAG,EAAE,CAAC;YACtB,MAAM,SAAS,GAAG,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,EAAkB,CAAC;YAChF,qBAAqB,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YAC5C,OAAO,SAAS,CAAC;QAAA,CACjB;QACD,cAAc,EAAE,GAAG,EAAE,CAAC;YACrB,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,EAAwB,CAAC;YAC7E,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YACnC,OAAO,QAAQ,CAAC;QAAA,CAChB;QACD,aAAa,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC;YAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACpB,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC;gBAAE,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAAA,CACrD;QACD,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC;KACtD,CAAC,CAAC;IAEH,MAAM,oBAAoB,GAAG,CAAC,KAAa,EAAE,UAAkB,EAAsB,EAAE,CAAC,CAAC;QACxF,aAAa,EAAE,GAAG,KAAK,IAAI,UAAU,EAAE;QACvC,QAAQ,EAAE,KAAK;QACf,UAAU,EAAE,GAAG,KAAK,IAAI,UAAU,EAAE;QACpC,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;QAC1E,WAAW,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3F,eAAe,EAAE,GAAG,EAAE,CAAC;YACtB,MAAM,eAAe,GAAG,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,EAAoC,CAAC;YAClG,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;YAC5C,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,GAAG,EAAuB,CAAC;YACpF,eAAe,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;YAC3C,OAAO,SAAS,CAAC;QAAA,CACjB;QACD,eAAe,EAAE,GAAG,EAAE,CAAC;YACtB,MAAM,cAAc,GAAG,wBAAwB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,EAA+B,CAAC;YACrG,wBAAwB,CAAC,GAAG,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;YACpD,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,GAAG,EAAkB,CAAC;YAC9E,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;YAC1C,OAAO,SAAS,CAAC;QAAA,CACjB;QACD,cAAc,EAAE,GAAG,EAAE,CAAC;YACrB,MAAM,aAAa,GAAG,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,EAAqC,CAAC;YACzG,uBAAuB,CAAC,GAAG,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;YAClD,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,GAAG,EAAwB,CAAC;YAClF,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YACxC,OAAO,QAAQ,CAAC;QAAA,CAChB;QACD,aAAa,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC;YAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACpB,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC;gBAAE,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QAAA,CAChF;QACD,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,mBAAmB,CAAC,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC;KAC3G,CAAC,CAAC;IAEH;;;;OAIG;IACH,MAAM,iBAAiB,GAAG,CACzB,IAAwB,EACxB,UAAkB,EAClB,YAAwB,EACxB,GAAqE,EAC1D,EAAE,CAAC,CAAC;QACf,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC;YACb,YAAY,EAAE,CAAC;YACf,cAAc,CAAC,GAAG,CAAC,CAAC;YACpB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACnC,OAAO,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAAA,CACrD;QACD,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC;YAC7B,YAAY,EAAE,CAAC;YACf,cAAc,CAAC,GAAG,CAAC,CAAC;YACpB,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAC5B,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC;YACxF,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YACzC,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YACzC,MAAM,eAAe,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAChD,IAAI,OAAO,EAAE,gBAAgB,KAAK,SAAS,IAAI,OAAO,CAAC,gBAAgB,KAAK,eAAe;gBAC1F,MAAM,IAAI,KAAK,CACd,CAAC,CAAC,gDAAgD,EAAE,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,CAC/F,CAAC;YACH,MAAM,QAAQ,GAAG,eAAe,GAAG,CAAC,CAAC;YACrC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAC7B,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACjE,IAAI,CAAC,MAAM,CAAC;gBACX,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,GAAG;gBACH,QAAQ;gBACR,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC;gBAC9B,GAAG,CAAC,OAAO,EAAE,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;gBACnF,GAAG,CAAC,OAAO,EAAE,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC;aACzF,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC;QAAA,CAChB;QACD,MAAM,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC;YACzB,YAAY,EAAE,CAAC;YACf,cAAc,CAAC,GAAG,CAAC,CAAC;YACpB,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YACzC,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YACzC,MAAM,eAAe,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAChD,IAAI,OAAO,EAAE,gBAAgB,KAAK,SAAS,IAAI,OAAO,CAAC,gBAAgB,KAAK,eAAe;gBAC1F,MAAM,IAAI,KAAK,CACd,CAAC,CAAC,gDAAgD,EAAE,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,CAC/F,CAAC;YACH,MAAM,QAAQ,GAAG,eAAe,GAAG,CAAC,CAAC;YACrC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAC7B,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC;gBACX,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,GAAG;gBACH,QAAQ;gBACR,GAAG,CAAC,OAAO,EAAE,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;gBACnF,GAAG,CAAC,OAAO,EAAE,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC;aACzF,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC;QAAA,CAChB;QACD,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;YACjB,YAAY,EAAE,CAAC;YACf,IAAI,MAAM,KAAK,SAAS,IAAI,OAAO,MAAM,KAAK,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC;YAC5G,OAAO,IAAI;iBACT,WAAW,EAAE;iBACb,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,MAAM,KAAK,SAAS,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;iBACjE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;iBACtC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;QAAA,CACnD;QACD,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC;YAC3B,YAAY,EAAE,CAAC;YACf,IAAI,MAAM,KAAK,SAAS,IAAI,OAAO,MAAM,KAAK,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC;YAC5G,IAAI,OAAO,OAAO,KAAK,UAAU;gBAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC;YAC1F,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAG,EAAE,oBAAoB,CAAC;YACxC,MAAM,EAAE,GAAG,eAAe,CAAC,eAAe,EAAE,QAAQ,EAAE,iBAAiB,IAAI,CAAC,UAAU,IAAI,QAAQ,EAAE,CAAC,CAAC;YACtG,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;YACxE,OAAO,GAAG,CACT,4BAA4B,CAC3B,eAAe,EACf,GAAG,EAAE,CAAC;gBACL,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAAA,CACjC,EACD,EAAE,CACF,CACD,CAAC;QAAA,CACF;KACD,CAAC,CAAC;IAEH;;;;;;OAMG;IACH,MAAM,kBAAkB,GAAG,CAAC,KAAa,EAAE,UAAkB,EAAQ,EAAE,CAAC;QACvE,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC9C,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QAC/B,IAAI,UAAU,EAAE,IAAI,KAAK,CAAC;YAAE,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,wBAAwB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACtD,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QAC9B,IAAI,SAAS,EAAE,IAAI,KAAK,CAAC;YAAE,wBAAwB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAClE,MAAM,QAAQ,GAAG,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpD,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QAC7B,IAAI,QAAQ,EAAE,IAAI,KAAK,CAAC;YAAE,uBAAuB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAAA,CAChE,CAAC;IAEF,wEAAwE;IACxE,6EAA6E;IAC7E,6EAA6E;IAC7E,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtD,MAAM,4BAA4B,GAAG,CAAC,UAAkB,EAAQ,EAAE,CAAC;QAClE,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO;QAChC,mBAAmB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACvC,kBAAkB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAAA,CACtC,CAAC;IACF,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,OAAO,CAAC,WAA6D,CAAC,uBAAuB,EAAE,CAC/F,4BAA4B,CAC5B,CAAC;IACH,CAAC;IAED,MAAM,mBAAmB,GAAG,CAAC,KAA6B,EAAQ,EAAE,CAAC;QACpE,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;YACtC,MAAM,IAAI,mBAAmB,CAAC,aAAa,EAAE,4BAA4B,CAAC,CAAC;QAC5E,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI;YAC3B,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC;YAC9B,CAAC,aAAa,EAAE,KAAK,CAAC,WAAW,CAAC;YAClC,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC;YACpB,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC;SACrB,EAAE,CAAC;YACZ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;gBAChD,MAAM,IAAI,mBAAmB,CAAC,aAAa,EAAE,YAAY,IAAI,6BAA6B,CAAC,CAAC;YAC7F,CAAC;QACF,CAAC;QACD,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YAC1C,MAAM,IAAI,mBAAmB,CAAC,aAAa,EAAE,sCAAsC,CAAC,CAAC;QACtF,CAAC;QACD,IACC,CAAC,CAAC,KAAK,CAAC,IAAI,YAAY,UAAU,CAAC;YACnC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,UAAU,CAAC,EACtE,CAAC;YACF,MAAM,IAAI,mBAAmB,CAAC,aAAa,EAAE,+DAA+D,CAAC,CAAC;QAC/G,CAAC;IAAA,CACD,CAAC;IAEF,MAAM,iBAAiB,GAAG,CAAC,GAAsB,EAAQ,EAAE,CAAC;QAC3D,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;YAC9F,MAAM,IAAI,mBAAmB,CAAC,aAAa,EAAE,oDAAoD,CAAC,CAAC;QACpG,CAAC;IAAA,CACD,CAAC;IAEF;;;;OAIG;IACH,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAA2C,CAAC;IACjF,MAAM,mBAAmB,GAAG,CAAC,QAAoD,EAAE,IAAY,EAAW,EAAE,CAAC;QAC5G,MAAM,KAAK,GAAG,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9C,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChD,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YAC7B,IAAI,QAAQ,KAAK,SAAS;gBAAE,MAAM;YAClC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC3D,IAAI,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBAChD,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gBAC7B,OAAO,IAAI,CAAC;YACb,CAAC;QACF,CAAC;QACD,OAAO,KAAK,CAAC;IAAA,CACb,CAAC;IAEF,MAAM,QAAQ,GAAG,CAChB,IAAY,EACZ,IAAY,EACZ,KAAQ,EACR,KAAa,EACb,UAAkB,EAClB,QAA8C,EAC9C,OAA4C,EACnB,EAAE,CAAC;QAC5B,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;QAClD,MAAM,kBAAkB,GAAG,QAAQ,KAAM,KAAyD,CAAC;QACnG,MAAM,KAAK,GAA4B,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;QACpE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,WAAW;gBAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,sCAAsC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC7F,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAA4B,CAAC;YAC/D,kGAA8C;YAC9C,IAAI,QAAQ,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;gBACxC,MAAM,KAAK,GAAG,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACpD,KAAK,CAAC,IAAI,CAAC,QAAyC,CAAC,CAAC;gBACtD,qBAAqB,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACxC,CAAC;QACF,CAAC;QACD,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC1B,IAAI,kBAAkB;YAAE,wBAAwB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC9D,MAAM,EAAE,GAAG,gBAAgB,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACnD,OAAO,4BAA4B,CAClC,IAAI,EACJ,GAAG,EAAE,CAAC;YACL,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACnC,oFAA8B;YAC9B,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK;gBAAE,OAAO;YACvD,IAAI,OAAO,GAAG,OAAO,KAAK,SAAS,CAAC;YACpC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACtB,IACC,WAAW;gBACX,mBAAmB,CAAC,QAAiE,EAAE,IAAI,CAAC,EAC3F,CAAC;gBACF,OAAO,GAAG,IAAI,CAAC;YAChB,CAAC;YACD,IAAI,OAAO,IAAI,kBAAkB;gBAAE,wBAAwB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAAA,CACzE,EACD,EAAE,CACF,CAAC;IAAA,CACF,CAAC;IAEF,MAAM,sBAAsB,GAAG,CAAC,OAAwD,EAAE,EAAE,CAC3F,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC;SACrC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC;SACzF,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC7E,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAChF,OAAO,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAAA,CAC5D,CAAC;SACD,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,gBAAgB,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAE3G,MAAM,gCAAgC,GAAG,CAAC,QAAwB,EAAQ,EAAE,CAAC;QAC5E,KAAK,MAAM,WAAW,IAAI,QAAQ,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;YACnD,IAAI,kBAAkB,CAAC,GAAG,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;gBAAE,SAAS;YACzF,IAAI,WAAW,CAAC,QAAQ;gBAAE,SAAS;YACnC,MAAM,IAAI,KAAK,CACd,CAAC,CAAC,sFAAsF,EAAE;gBACzF,YAAY,EAAE,WAAW,CAAC,EAAE;gBAC5B,OAAO,EAAE,WAAW,CAAC,OAAO;gBAC5B,QAAQ,EAAE,QAAQ,CAAC,EAAE;aACrB,CAAC,CACF,CAAC;QACH,CAAC;IAAA,CACD,CAAC;IAEF,MAAM,uBAAuB,GAAG,CAC/B,KAAsC,EACC,EAAE,CACzC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;SAChC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;SAC1D,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;SACzG,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;IAEjE,MAAM,6BAA6B,GAAG,KAAK,EAC1C,KAAsC,EACtC,KAAsC,EACtB,EAAE,CAAC;QACnB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACvC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC;YACtD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC;gBAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;YAC5E,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAAA,CACjF,CAAC,CACF,CAAC;QACF,MAAM,QAAQ,GAAG,OAAO;aACtB,MAAM,CAAC,CAAC,MAAM,EAAmC,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,UAAU,CAAC;aACjF,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC7C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;YACtB,MAAM,IAAI,cAAc,CAAC,QAAQ,EAAE,uCAAuC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAAA,CAC5F,CAAC;IAEF,MAAM,oBAAoB,GAAG,CAC5B,KAAsC,EACtC,KAAa,EACb,UAAkB,EAClB,YAAwB,EACxB,GAAqE,EACzC,EAAE,CAAC;QAC/B,MAAM,iBAAiB,GAAG,GAAS,EAAE,CAAC;YACrC,YAAY,EAAE,CAAC;YACf,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC;gBAAE,MAAM,4BAA4B,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAAA,CAC9F,CAAC;QACF,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC;QACzC,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,SAAS,IAAI,SAAS,CAAC;QAC1D,OAAO,MAAM,CAAC,MAAM,CAAC;YACpB,EAAE,EAAE,OAAO;YACX,OAAO;YACP,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM;YAC/B,SAAS;YACT,KAAK,CAAC,GAAG,CAAC,KAAoC,EAA+B;gBAC5E,iBAAiB,EAAE,CAAC;gBACpB,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;oBAChE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,iDAAiD,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;gBACpF,CAAC;gBACD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;oBACjC,MAAM,IAAI,KAAK,CACd,CAAC,CAAC,8DAA8D,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CACrG,CAAC;gBACH,CAAC;gBACD,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACzF,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;gBACrG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;gBACnC,MAAM,YAAY,GAAG,GAAG,CACvB,4BAA4B,CAC3B,cAAc,EACd,GAAG,EAAE,CAAC;oBACL,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK;wBAAE,OAAO;oBAClD,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBAC/B,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC;wBAAE,OAAO;oBACzC,OAAO,6BAA6B,CAAC,KAAK,EAAE;wBAC3C,OAAO;wBACP,OAAO;wBACP,MAAM,EAAE,SAAS;wBACjB,cAAc,EAAE,KAAK,CAAC,EAAE;wBACxB,KAAK;qBACL,CAAC,CAAC;gBAAA,CACH,EACD,gBAAgB,KAAK,iBAAiB,OAAO,IAAI,OAAO,IAAI,KAAK,CAAC,EAAE,EAAE,CACtE,CACD,CAAC;gBACF,MAAM,6BAA6B,CAAC,KAAK,EAAE;oBAC1C,OAAO;oBACP,OAAO;oBACP,MAAM,EAAE,OAAO;oBACf,cAAc,EAAE,KAAK,CAAC,EAAE;oBACxB,KAAK;oBACL,KAAK,EAAE,gBAAgB,CAAC;wBACvB,EAAE,EAAE,KAAK,CAAC,EAAE;wBACZ,OAAO,EAAE,KAAK,CAAC,OAAO;wBACtB,OAAO,EAAE,KAAK,CAAC,OAAO;wBACtB,KAAK,EAAE,KAAK,CAAC,KAAK;wBAClB,SAAS,EAAE,KAAK,CAAC,SAAS;wBAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;qBAClB,CAAC;iBACF,CAAC,CAAC;gBACH,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAAA,CACvG;YACD,KAAK,CAAC,MAAM,CAAC,EAAU,EAAiB;gBACvC,iBAAiB,EAAE,CAAC;gBACpB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACpC,IAAI,CAAC,KAAK;oBACT,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,0DAA0D,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;gBAC1G,IAAI,KAAK,CAAC,UAAU,KAAK,UAAU;oBAClC,MAAM,IAAI,KAAK,CACd,CAAC,CAAC,yEAAyE,EAAE;wBAC5E,OAAO;wBACP,OAAO;wBACP,EAAE;qBACF,CAAC,CACF,CAAC;gBACH,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACzB,MAAM,6BAA6B,CAAC,KAAK,EAAE;oBAC1C,OAAO;oBACP,OAAO;oBACP,MAAM,EAAE,SAAS;oBACjB,cAAc,EAAE,EAAE;oBAClB,KAAK;iBACL,CAAC,CAAC;YAAA,CACH;YACD,IAAI,EAAE,GAAG,EAAE,CAAC;gBACX,iBAAiB,EAAE,CAAC;gBACpB,OAAO,uBAAuB,CAAC,KAAK,CAAC,CAAC;YAAA,CACtC;YACD,SAAS,EAAE,CAAC,OAAyE,EAAE,EAAE,CAAC;gBACzF,iBAAiB,EAAE,CAAC;gBACpB,IAAI,OAAO,OAAO,KAAK,UAAU;oBAChC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,qDAAqD,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;gBACxF,MAAM,QAAQ,GAAG,EAAE,gCAAgC,CAAC;gBACpD,MAAM,EAAE,GAAG,eAAe,CACzB,2BAA2B,EAC3B,QAAQ,EACR,6BAA6B,KAAK,IAAI,OAAO,IAAI,OAAO,IAAI,QAAQ,EAAE,CACtE,CAAC;gBACF,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;gBACnD,OAAO,GAAG,CACT,4BAA4B,CAC3B,2BAA2B,EAC3B,GAAG,EAAE,CAAC;oBACL,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAAA,CAC7B,EACD,EAAE,CACF,CACD,CAAC;YAAA,CACF;SACD,CAAC,CAAC;IAAA,CACH,CAAC;IAEF,MAAM,kBAAkB,GAAG,CAC1B,KAAkE,EAClE,OAAgB,EACkB,EAAE,CAAC;QACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/B,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;gBAClF,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,qEAAqE,CAAC,CAAC,CAAC;YAC3F,CAAC;YACD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QAC/B,CAAC;QACD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;YAC7F,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,mDAAmD,CAAC,CAAC,CAAC;QACzE,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;YAC/D,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,yDAAyD,CAAC,CAAC,CAAC;QAC/E,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;IAAA,CAChD,CAAC;IAEF,MAAM,sBAAsB,GAAG,CAC9B,KAAyE,EACzE,OAAgB,EACmB,EAAE,CAAC;QACtC,MAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,oBAAoB,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,OAAO,CAAC,CAE9E,CAAC;QACb,IAAI,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YAC1D,MAAM,IAAI,KAAK,CACd,CAAC,CAAC,gDAAgD,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,CACrG,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAAA,CACd,CAAC;IAEF,MAAM,qBAAqB,GAAG,CAC7B,IAA+B,EAC/B,KAAyE,EACzE,OAIqC,EACrC,OAA2B,EAC3B,KAAa,EACb,UAAkB,EAClB,YAAwB,EACxB,GAAqE,EACrE,eAA0C,EACjB,EAAE,CAAC;QAC5B,YAAY,EAAE,CAAC;QACf,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;YAC5E,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,2DAA2D,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC3F,CAAC;QACD,MAAM,MAAM,GAAG,sBAAsB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACtD,IAAI,MAAM,CAAC,UAAU,CAAC,wBAAwB,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;YAC1E,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,oDAAoD,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC9G,CAAC;QACD,IACC,IAAI,KAAK,WAAW;YACpB,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EACpF,CAAC;YACF,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,sDAAsD,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC1G,CAAC;QACD,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YACjH,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,oDAAoD,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACxG,CAAC;QACD,IACC,IAAI,KAAK,cAAc;YACvB,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EACpF,CAAC;YACF,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,yDAAyD,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC7G,CAAC;QACD,IAAI,eAAe,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;YACpF,MAAM,IAAI,KAAK,CACd,CAAC,CAAC,mFAAmF,EAAE;gBACtF,EAAE,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE;aACxB,CAAC,CACF,CAAC;QACH,CAAC;QACD,MAAM,GAAG,GAAG,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC/E,MAAM,QAAQ,GAAG,EAAE,6BAA6B,CAAC;QACjD,MAAM,EAAE,GAAG,eAAe,CAAC,wBAAwB,EAAE,QAAQ,EAAE,aAAa,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAC,CAAC;QAChH,MAAM,YAAY,GAAuC;YACxD,EAAE;YACF,KAAK;YACL,UAAU;YACV,IAAI;YACJ,QAAQ,EAAE,6BAA6B;YACvC,OAAO;YACP,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC;gBACvB,IAAI,EAAE,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe;gBAChE,GAAG,eAAe;aAClB,CAAC;SACF,CAAC;QACF,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;YACnC,MAAM,KAAK,GAAG,4BAA4B,CAAiC;gBAC1E,gBAAgB,EAAE,eAAe,CAAC,gBAAgB;gBAClD,eAAe,EAAE,eAAe,CAAC,eAAe;gBAChD,YAAY,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;oBAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;oBAClD,IAAI,UAAU,KAAK,SAAS;wBAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC;oBACxF,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC;gBAAA,CAC5D;gBACD,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;oBACtB,MAAM,UAAU,GAAG;wBAClB,KAAK,EAAE,YAAY,CAAC,KAAK;wBACzB,UAAU,EAAE,YAAY,CAAC,UAAU;wBACnC,KAAK,EAAE,YAAY,CAAC,OAAO;qBAC3B,CAAC;oBACF,OAAO,oCAAoC,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CACjF,KAAwC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAC5F,CAAC;gBAAA,CACF;gBACD,YAAY,EACX,MAAM,CAAC,UAAU,CAAC,EAAE,KAAK,cAAc;oBACtC,CAAC,CAAC,oCAAoC;oBACtC,CAAC,CAAC,0CAA0C;aAC9C,CAAC,CAAC;YACH,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC;YAC3B,uBAAuB,CAAC,GAAG,CAAC,KAAiE,CAAC,CAAC;QAChG,CAAC;QACD,MAAM,aAAa,GAAG,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,EAAuC,CAAC;QACxG,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,YAA2C,CAAC,CAAC;QACnE,sBAAsB,CAAC,GAAG,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;QAC/C,OAAO,GAAG,CACT,4BAA4B,CAC3B,aAAa,IAAI,EAAE,EACnB,GAAG,EAAE,CAAC;YACL,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,YAAY;gBAAE,OAAO;YACnD,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;YACjC,KAAK,EAAE,KAAK,EAAE,CAAC;YACf,IAAI,KAAK;gBACR,KAAK,KAAK;qBACR,KAAK,EAAE;qBACP,IAAI,CAAC,GAAG,EAAE,CACV,uBAAuB,CAAC,MAAM,CAC7B,KAAiE,CACjE,CACD,CAAC;YACJ,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACzB,IAAI,aAAa,CAAC,IAAI,KAAK,CAAC;gBAAE,sBAAsB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAAA,CACjE,EACD,EAAE,CACF,CACD,CAAC;IAAA,CACF,CAAC;IAEF,MAAM,MAAM,GAAG,CAAC,QAAwB,EAAiB,EAAE,CAAC;QAC3D,yEAAyE;QACzE,sEAAsE;QACtE,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACpD,cAAc,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;QACvC,gCAAgC,CAAC,gBAAgB,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC3D,MAAM,WAAW,GAAG,gBAAgB,CAAC,EAAE,GAAG,gBAAgB,EAAE,MAAM,EAAE,CAAC,CAAC;QACtE,MAAM,KAAK,GAAG,gBAAgB,CAAC,EAAE,CAAC;QAClC,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,KAAK,GAAa;YACvB,MAAM,EAAE,IAAI;YACZ,KAAK;YACL,UAAU;YACV,oBAAoB,EAAE,IAAI,GAAG,EAAE;YAC/B,sBAAsB,EAAE,IAAI,GAAG,EAAE;SACjC,CAAC;QACF,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAClC,MAAM,YAAY,GAAG,GAAS,EAAE,CAAC;YAChC,IAAI,CAAC,KAAK,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,KAAK,EAAE,CAAC,CAAC;QAAA,CAC1E,CAAC;QACF,MAAM,8BAA8B,GAAwC,CAAC,KAAK,EAAE,EAAE,CAAC;YACtF,kEAAkE;YAClE,uEAAuE;YACvE,uEAAuE;YACvE,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK;gBAAE,OAAO;YACzF,IAAI,KAAK,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;gBAC7B,kBAAkB,CAAC,YAAY,EAAE,KAAK,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;gBAC/D,oBAAoB,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;YAC5E,CAAC;iBAAM,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;gBACnC,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;oBAAE,OAAO;gBACrE,mBAAmB,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACvG,CAAC;iBAAM,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACrC,kBAAkB,CAAC,YAAY,EAAE,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;gBACjE,qBAAqB,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;YAC7E,CAAC;iBAAM,CAAC;gBACP,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,QAAQ,CAAC;gBACxC,kBAAkB,CAAC,YAAY,EAAE,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;gBAC5D,kBAAkB,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;YAClF,CAAC;QAAA,CACD,CAAC;QACF,MAAM,GAAG,GAAG,CAAC,YAAoC,EAA0B,EAAE,CAAC;YAC7E,YAAY,EAAE,CAAC;YACf,MAAM,aAAa,GAAG,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,EAA0B,CAAC;YAC1F,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAChC,mBAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;YAC9C,OAAO,YAAY,CAAC;QAAA,CACpB,CAAC;QACF;;;;WAIG;QACH,MAAM,KAAK,GAAG,CAAC,YAAoC,EAAQ,EAAE,CAAC;YAC7D,MAAM,aAAa,GAAG,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACrD,IAAI,CAAC,aAAa;gBAAE,OAAO;YAC3B,aAAa,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACnC,IAAI,aAAa,CAAC,IAAI,KAAK,CAAC;gBAAE,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAAA,CAChE,CAAC;QACF,MAAM,MAAM,GAAc;YACzB,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC;gBAC3B,YAAY,EAAE,CAAC;gBACf,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YAAA,CAC3C;YACD,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC;gBAC1B,YAAY,EAAE,CAAC;gBACf,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YAAA,CAC1C;YACD,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC;gBAC1B,YAAY,EAAE,CAAC;gBACf,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YAAA,CAC1C;YACD,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;gBAClC,YAAY,EAAE,CAAC;gBACf,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;YAAA,CAClD;SACD,CAAC;QACF,MAAM,WAAW,GAAmB;YACnC,KAAK,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE,CAAC;gBAC1C,YAAY,EAAE,CAAC;gBACf,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;oBAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,wCAAwC,CAAC,CAAC,CAAC;gBAC3G,IAAI,UAAU,KAAK,SAAS,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC;oBAC/D,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,4CAA4C,CAAC,CAAC,CAAC;gBAClE,IAAI,YAAY,KAAK,SAAS,IAAI,CAAC,OAAO,YAAY,KAAK,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;oBAC3F,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,2CAA2C,CAAC,CAAC,CAAC;gBACjE,MAAM,iBAAiB,GAAG,EAAE,YAAY,CAAC;gBACzC,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE,iBAAiB,EAAE,QAAQ,KAAK,IAAI,iBAAiB,EAAE,CAAC,CAAC;gBAChG,MAAM,OAAO,GAAG,YAAY;oBAC3B,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,OAAO;wBAClC,CAAC,GAAG,EAAE,CAAC;4BACN,MAAM,QAAQ,GAAG,EAAE,aAAa,CAAC;4BACjC,OAAO,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,QAAQ,EAAE,CAAC,CAAC;wBAAA,CAC/D,CAAC,EAAE,CAAC;oBACN,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;wBACP,MAAM,QAAQ,GAAG,EAAE,aAAa,CAAC;wBACjC,OAAO,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,QAAQ,EAAE,CAAC,CAAC;oBAAA,CAC/D,CAAC,EAAE,CAAC;gBACP,MAAM,QAAQ,GAA4B;oBACzC,OAAO,EAAE,CAAC;oBACV,OAAO;oBACP,MAAM;oBACN,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC;oBACvD,IAAI;oBACJ,QAAQ,EAAE,KAAK;oBACf,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;oBACvF,SAAS,EAAE,KAAK,EAAE;oBAClB,MAAM,EAAE,SAAS;oBACjB,UAAU,EAAE,gBAAgB,CAAC,UAAU,IAAI,EAAE,CAAC;iBAC9C,CAAC;gBACF,kBAAkB,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACnD,IAAI,KAAK,GAAG,KAAK,CAAC;gBAClB,MAAM,IAAI,GAAoB;oBAC7B,OAAO;oBACP,MAAM;oBACN,QAAQ,CAAC,MAAM,EAAE;wBAChB,YAAY,EAAE,CAAC;wBACf,IAAI,KAAK;4BAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,4CAA4C,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;wBACxF,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC;4BACjG,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,+CAA+C,CAAC,CAAC,CAAC;wBACrE,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;wBAClC,IAAI,CAAC,OAAO;4BAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,4CAA4C,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;wBAC3F,OAAO,CAAC,UAAU,GAAG,gBAAgB,CAAC;4BACrC,GAAI,OAAO,CAAC,UAAgD;4BAC5D,GAAI,MAA4C;yBAChD,CAAC,CAAC;oBAAA,CACH;oBACD,GAAG,CAAC,OAAO,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;wBAC/B,YAAY,EAAE,CAAC;wBACf,IAAI,KAAK;4BAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,4CAA4C,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;wBACxF,IAAI,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;4BACzD,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC;wBACzD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC;4BACvE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,6CAA6C,CAAC,CAAC,CAAC;wBACnE,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;wBAClC,IAAI,CAAC,OAAO;4BAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,4CAA4C,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;wBAC3F,KAAK,GAAG,IAAI,CAAC;wBACb,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;wBAChC,OAAO,CAAC,OAAO,GAAG,KAAK,EAAE,CAAC;wBAC1B,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;4BAAE,OAAO,CAAC,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;wBACpF,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;4BAAE,OAAO,CAAC,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBAAA,CACjF;iBACD,CAAC;gBACF,GAAG,CACF,4BAA4B,CAC3B,iBAAiB,EACjB,GAAG,EAAE,CAAC;oBACL,IAAI,CAAC,KAAK,EAAE,CAAC;wBACZ,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;wBAClC,IAAI,OAAO,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;4BACnC,OAAO,CAAC,MAAM,GAAG,WAAW,CAAC;4BAC7B,OAAO,CAAC,OAAO,GAAG,KAAK,EAAE,CAAC;wBAC3B,CAAC;oBACF,CAAC;gBAAA,CACD,EACD,gBAAgB,KAAK,oBAAoB,MAAM,EAAE,CACjD,CACD,CAAC;gBACF,OAAO,IAAI,CAAC;YAAA,CACZ;SACD,CAAC;QACF,MAAM,QAAQ,GAAa,iBAAiB,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC;QACtG,mGAAmG;QACnG,MAAM,sBAAsB,GAAG,CAAC,aAAqB,EAAE,UAAkB,EAAY,EAAE,CACtF,iBAAiB,CAAC,oBAAoB,CAAC,aAAa,EAAE,UAAU,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC;QACnG,MAAM,YAAY,GAA2B;YAC5C,OAAO,CACN,WAAwC,EACxC,OAAmD,EAC1B;gBACzB,YAAY,EAAE,CAAC;gBACf,kCAAkC,CAAC,CAAC,WAAW,CAAC,EAAE,kCAAkC,KAAK,EAAE,CAAC,CAAC;gBAC7F,IAAI,OAAO,OAAO,KAAK,UAAU;oBAChC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,wDAAwD,CAAC,CAAC,CAAC;gBAC9E,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAC/C,CAAC,IAAI,EAAE,EAAE,CACR,IAAI,CAAC,EAAE,KAAK,WAAW,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,KAAK,WAAW,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,CACrG,CAAC;gBACF,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACf,MAAM,IAAI,KAAK,CACd,CAAC,CAAC,8EAA8E,EAAE;wBACjF,EAAE,EAAE,WAAW,CAAC,EAAE;wBAClB,OAAO,EAAE,WAAW,CAAC,OAAO;wBAC5B,KAAK;qBACL,CAAC,CACF,CAAC;gBACH,CAAC;gBACD,MAAM,GAAG,GAAG,aAAa,CAAC,WAAW,CAAC,EAAE,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;gBAC/D,IAAI,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBACjC,MAAM,IAAI,KAAK,CACd,CAAC,CAAC,uDAAuD,EAAE;wBAC1D,EAAE,EAAE,WAAW,CAAC,EAAE;wBAClB,OAAO,EAAE,WAAW,CAAC,OAAO;qBAC5B,CAAC,CACF,CAAC;gBACH,CAAC;gBACD,MAAM,UAAU,GAA+B;oBAC9C,WAAW,EAAE,gBAAgB,CAAC,WAAW,CAAC;oBAC1C,KAAK;oBACL,UAAU;oBACV,OAAO,EAAE,OAAoC;iBAC7C,CAAC;gBACF,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;gBACxC,OAAO,GAAG,CACT,4BAA4B,CAC3B,mBAAmB,EACnB,GAAG,EAAE,CAAC;oBACL,IAAI,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,UAAU,KAAK,UAAU;wBAAE,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAAA,CAC3F,EACD,gBAAgB,KAAK,sBAAsB,WAAW,CAAC,EAAE,IAAI,WAAW,CAAC,OAAO,EAAE,CAClF,CACD,CAAC;YAAA,CACF;YACD,OAAO,CAAoB,EAAU,EAAE,cAAqC,EAA6B;gBACxG,YAAY,EAAE,CAAC;gBACf,wBAAwB,CAAC,EAAE,EAAE,sBAAsB,CAAC,CAAC;gBACrD,MAAM,OAAO,GAAG,cAAc,EAAE,OAAO,CAAC;gBACxC,6BAA6B,CAAC,OAAO,EAAE,2BAA2B,CAAC,CAAC;gBACpE,MAAM,UAAU,GAAG,kBAAkB,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;gBACtE,IAAI,CAAC,UAAU;oBAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,oDAAoD,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;gBAC3G,MAAM,WAAW,GAAG,gBAAgB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;gBAC7D,OAAO,MAAM,CAAC,MAAM,CAAC;oBACpB,WAAW;oBACX,KAAK,EAAE,UAAU,CAAC,KAAK;oBACvB,IAAI,EAAE,CAAC,KAAc,EAAE,WAAsC,EAA4B,EAAE,CAAC;wBAC3F,YAAY,EAAE,CAAC;wBACf,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;4BACnD,MAAM,4BAA4B,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;wBACtD,CAAC;wBACD,MAAM,QAAQ,GAAG,EAAE,iBAAiB,CAAC;wBACrC,MAAM,WAAW,GAAG,eAAe,CAClC,sBAAsB,EACtB,QAAQ,EACR,cAAc,KAAK,IAAI,EAAE,IAAI,OAAO,IAAI,QAAQ,EAAE,CAClD,CAAC;wBACF,MAAM,MAAM,GAAG,cAAc,CAC5B,CAAC,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,EACnC,IAAI,gBAAgB,CACnB,WAAW,EACX,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,sBAAsB,CAAU,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,EACtF,gBAAgB,CAAC,KAAK,CAAC,EACvB,CAAC,MAAM,EAAE,EAAE,CAAC;4BACX,kBAAkB,CAAC,YAAY,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;4BACtD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gCAC1B,oBAAoB,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE;oCAC7D,UAAU;oCACV,UAAU,CAAC,UAAU;iCACrB,CAAC,CAAC;4BACJ,CAAC;iCAAM,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;gCACnC,oBAAoB,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE;oCAC9D,UAAU;oCACV,UAAU,CAAC,UAAU;iCACrB,CAAC,CAAC;4BACJ,CAAC;wBAAA,CACD,EACD,CAAC,MAAM,EAAE,EAAE,CACV,oBAAoB,CACnB,KAAK,EACL,WAAW,EACX,KAAK,EACL,UAAU,EACV,CAAC,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,EACnC,MAAM,CACN,EACF,GAAG,EAAE,CAAC,KAAK,CACX,CACD,CAAC;wBACF,kBAAkB,CAAC,YAAY,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;wBAC/D,MAAM,MAAM,GAAG,WAAW,EAAE,MAAM,CAAC;wBACnC,IAAI,MAAM,EAAE,CAAC;4BACZ,IAAI,MAAM,CAAC,OAAO;gCAAE,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;;gCACjD,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;wBAChG,CAAC;wBACD,OAAO,MAAM,CAAC;oBAAA,CACd;iBACD,CAAC,CAAC;YAAA,CACH;YACD,IAAI,EAAE,sBAAsB;SAC5B,CAAC;QACF,MAAM,aAAa,GAAoB;YACtC,MAAM,EAAE,CAAS,UAA+C,EAA6B,EAAE,CAAC;gBAC/F,YAAY,EAAE,CAAC;gBACf,MAAM,SAAS,GAAG,mCAAmC,CAAC,UAAU,CAAC,CAAC;gBAClE,MAAM,GAAG,GAAG,oBAAoB,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;gBAClE,IAAI,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC;oBAC9B,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,8CAA8C,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC7E,MAAM,KAAK,GAAoC;oBAC9C,KAAK;oBACL,UAAU;oBACV,UAAU,EAAE,SAAS;oBACrB,OAAO,EAAE,IAAI,GAAG,EAAE;oBAClB,WAAW,EAAE,IAAI,GAAG,EAAE;iBACtB,CAAC;gBACF,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,KAAyC,CAAC,CAAC;gBACvE,GAAG,CACF,4BAA4B,CAC3B,oBAAoB,EACpB,GAAG,EAAE,CAAC;oBACL,IAAI,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK;wBAAE,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAAA,CAC1E,EACD,gBAAgB,KAAK,uBAAuB,GAAG,EAAE,CACjD,CACD,CAAC;gBACF,OAAO,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC;YAAA,CACzE;YACD,GAAG,EAAE,CAAS,EAAU,EAAE,OAAe,EAA6B,EAAE,CAAC;gBACxE,YAAY,EAAE,CAAC;gBACf,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;gBACxE,IAAI,CAAC,KAAK;oBAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,EAAE,IAAI,OAAO,EAAE,CAAC,CAAC;gBACnF,OAAO,oBAAoB,CAAC,KAAwC,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC;YAAA,CAC5G;YACD,IAAI,EAAE,GAAG,EAAE,CACV,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC;iBACrC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;iBAC1D,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACrB,iBAAiB,CAChB,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EACjE,oBAAoB,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CACnE,CACD;iBACA,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACd,MAAM,CAAC,MAAM,CAAC;gBACb,EAAE,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE;gBACvB,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO;gBACjC,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM;gBAC/B,SAAS,EAAE,KAAK,CAAC,UAAU,CAAC,SAAS,IAAI,SAAS;gBAClD,KAAK,EAAE,KAAK,CAAC,KAAK;aAClB,CAAC,CACF;SACH,CAAC;QACF,MAAM,eAAe,GAAG,KAAK,EAAE,OAA+B,EAA4B,EAAE,CAAC;YAC5F,YAAY,EAAE,CAAC;YACf,sBAAsB,CAAC,OAAO,CAAC,CAAC;YAChC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;YAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;YAChC,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,uDAAuD,CAAC,CAAC,CAAC;YACtG,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC/C,IAAI,CAAC;gBACJ,YAAY,EAAE,CAAC;YAChB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACzB,MAAM,KAAK,CAAC;YACb,CAAC;YACD,IAAI,IAAsB,CAAC;YAC3B,IAAI,YAAgD,CAAC;YACrD,IAAI,mBAAmB,GAAe,GAAG,EAAE,CAAC,EAAC,CAAC,CAAC;YAC/C,IAAI,CAAC;gBACJ,IAAI,GAAG,IAAI,gBAAgB,CAC1B,eAAe,CACd,YAAY,EACZ,EAAE,iBAAiB,EACnB,cAAc,KAAK,IAAI,iBAAiB,IAAI,sBAAsB,EAAE,CACpE,EACD,OAAO,CAAC,YAAY,EAAE,EACtB,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAC7C,OAAO,CAAC,YAAY;gBACpB,8DAA4D;gBAC5D,yDAAyD;gBACzD,2DAAyD;gBACzD,4DAA4D;gBAC5D,0BAA0B;gBAC1B,GAAG,EAAE,CAAC;oBACL,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBACxB,mBAAmB,EAAE,CAAC;oBACtB,IAAI,YAAY;wBAAE,KAAK,CAAC,YAAY,CAAC,CAAC;gBAAA,CACtC,CACD,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACzB,MAAM,KAAK,CAAC;YACb,CAAC;YACD,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACrB,mBAAmB,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAChD,YAAY,GAAG,GAAG,CACjB,4BAA4B,CAC3B,YAAY,EACZ,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EACpB,gBAAgB,KAAK,eAAe,IAAI,CAAC,EAAE,EAAE,CAC7C,CACD,CAAC;YACF,OAAO,IAAI,CAAC;QAAA,CACZ,CAAC;QACF,wEAAuE;QACvE,yEAAyE;QACzE,yEAAyE;QACzE,+DAA+D;QAC/D,MAAM,mBAAmB,GAAG,CAAC,IAAsB,EAAgB,EAAE,CAAC;YACrE,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;YACxC,IAAI,CAAC,MAAM;gBAAE,OAAO,GAAG,EAAE,CAAC,EAAC,CAAC,CAAC;YAC7B,MAAM,eAAe,GAAG,GAAS,EAAE,CAAC;gBACnC,KAAK,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAC,CAAC,CAAC,CAAC;YAAA,CAC3D,CAAC;YACF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,eAAe,EAAE,CAAC;gBAClB,OAAO,GAAG,EAAE,CAAC,EAAC,CAAC,CAAC;YACjB,CAAC;YACD,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAClE,uEAAuE;YACvE,sEAAsE;YACtE,sDAAsD;YACtD,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QAAA,CAClE,CAAC;QACF;;;;;WAKG;QACH,MAAM,uBAAuB,GAAG,KAAK,EAAE,MAAc,EAA0C,EAAE,CAAC;YACjG,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC;gBACvD,UAAU,EAAE,cAAc,MAAM,EAAE;aAClC,CAAC,CAAC;YACH,OAAO,MAAM,CAAC,CAAC,CAAE,MAAM,CAAC,IAA0B,CAAC,CAAC,CAAC,SAAS,CAAC;QAAA,CAC/D,CAAC;QACF;;;;WAIG;QACH,MAAM,oBAAoB,GAAG,KAAK,EAAE,OAAyC,EAAiB,EAAE,CAAC;YAChG,YAAY,EAAE,CAAC;YACf,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;YACzF,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACxB,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,sBAAsB,OAAO,CAAC,MAAM,kBAAkB,CAAC,EAAE;oBACtF,IAAI,EAAE,uBAAuB;iBAC7B,CAAC,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAAA,CAC/B,CAAC;QACF,MAAM,MAAM,GAAsB;YACjC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC;gBAC9B,YAAY,EAAE,CAAC;gBACf,mBAAmB,CAAC,KAAK,CAAC,CAAC;gBAC3B,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,CAAC;gBAC/B,MAAM,cAAc,GAAG,GAAS,EAAE,CAAC;oBAClC,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;wBACrB,MAAM,IAAI,mBAAmB,CAC5B,WAAW,EACX,6BAA6B,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,WAAW,CAAC,EAAE,CACnE,CAAC;oBACH,CAAC;gBAAA,CACD,CAAC;gBACF,cAAc,EAAE,CAAC;gBACjB,kFAAgD;gBAChD,qFAAmD;gBACnD,0EAA8B;gBAC9B,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,MAAM,wBAAwB,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;gBACpG,qEAAqE;gBACrE,iDAAiD;gBACjD,YAAY,EAAE,CAAC;gBACf,MAAM,QAAQ,GAAG,EAAE,gBAAgB,CAAC;gBACpC,MAAM,UAAU,GAAG,eAAe,CAAC,UAAU,EAAE,QAAQ,EAAE,YAAY,KAAK,IAAI,QAAQ,EAAE,CAAC,CAAC;gBAC1F,MAAM,GAAG,GAAsB;oBAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,UAAU;oBACV,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,SAAS,EAAE,UAAU;oBACrB,SAAS;oBACT,SAAS,EAAE,KAAK,EAAE;iBAClB,CAAC;gBACF,eAAe,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;gBAC5D,qEAAqE;gBACrE,qEAAqE;gBACrE,uEAAuE;gBACvE,uEAAuE;gBACvE,qEAAqE;gBACrE,uEAAuE;gBACvE,sEAAsE;gBACtE,qEAAqE;gBACrE,qCAAqC;gBACrC,IAAI,sBAAsB,EAAE,CAAC;oBAC5B,IAAI,CAAC;wBACJ,sBAAsB,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;oBACpD,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBAChB,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,wCAAwC,EAAE,EAAE,UAAU,EAAE,EAAE,KAAK,CAAC,CAAC;oBAC5F,CAAC;gBACF,CAAC;gBACD,OAAO,EAAE,GAAG,GAAG,EAAE,CAAC;YAAA,CAClB;YACD,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC;gBACpB,YAAY,EAAE,CAAC;gBACf,iBAAiB,CAAC,GAAG,CAAC,CAAC;gBACvB,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBACrD,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACf,MAAM,IAAI,mBAAmB,CAAC,WAAW,EAAE,qCAAqC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;gBACnG,CAAC;gBACD,IACC,GAAG,CAAC,SAAS,KAAK,QAAQ,CAAC,GAAG,CAAC,SAAS;oBACxC,GAAG,CAAC,WAAW,KAAK,QAAQ,CAAC,GAAG,CAAC,WAAW;oBAC5C,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,GAAG,CAAC,IAAI;oBAC9B,GAAG,CAAC,SAAS,KAAK,QAAQ,CAAC,GAAG,CAAC,SAAS;oBACxC,GAAG,CAAC,SAAS,KAAK,QAAQ,CAAC,GAAG,CAAC,SAAS;oBACxC,GAAG,CAAC,SAAS,KAAK,QAAQ,CAAC,GAAG,CAAC,SAAS;oBACxC,GAAG,CAAC,SAAS,KAAK,QAAQ,CAAC,GAAG,CAAC,SAAS,EACvC,CAAC;oBACF,MAAM,IAAI,mBAAmB,CAC5B,aAAa,EACb,6CAA6C,GAAG,CAAC,UAAU,EAAE,CAC7D,CAAC;gBACH,CAAC;gBACD,OAAO,EAAE,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC;YAAA,CAC3B;YACD,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC;gBAC7B,YAAY,EAAE,CAAC;gBACf,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACtC,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBACxD,IAAI,CAAC,QAAQ;oBACZ,MAAM,IAAI,mBAAmB,CAAC,WAAW,EAAE,qCAAqC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;gBACtG,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC;gBACpC,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC;gBAChE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC7C,MAAM,IAAI,mBAAmB,CAAC,aAAa,EAAE,qDAAqD,CAAC,CAAC;gBACrG,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;oBAClD,MAAM,IAAI,mBAAmB,CAAC,aAAa,EAAE,mDAAmD,CAAC,CAAC;gBACnG,CAAC;gBACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBACnE,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,CAAC;gBACpF,MAAM,GAAG,GAAG,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC;gBAC7C,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAgC,CAAC;YAAA,CACxF;SACD,CAAC;QACF,MAAM,yBAAyB,GAA+B,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;YACpG,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;YACnC,MAAM,OAAO,GAAG,UAAU;gBACzB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;oBACd,OAAO,EAAE,CAAU;oBACnB,YAAY,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,YAAY,EAAE;oBAC7C,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,WAAY,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnF,WAAW,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,WAAW,EAAE;oBAC3C,gBAAgB,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,gBAAgB,EAAE;oBACrD,MAAM,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE;oBACjC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC;oBACjD,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,UAAU,CAAC,KAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjF,KAAK,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE;oBAC/B,WAAW,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,WAAW,EAAE;oBAC3C,WAAW,EAAE,CAAC,UAAkB,EAAE,IAAc,EAAE,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC;iBAC7F,CAAC;gBACH,CAAC,CAAC,SAAS,CAAC;YACb,MAAM,OAAO,GACZ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,UAAU,EAAE,kBAAkB,IAAI,UAAU,CAAC,aAAa;gBAC9F,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;oBACd,OAAO,EAAE,CAAU;oBACnB,GAAG,EAAE,GAAqB,EAAE,CAAC,UAAU,CAAC,kBAAmB,EAAU;oBACrE,MAAM,EAAE,KAAK,EAAoB,OAA4C,EAAE,EAAE,CAAC;wBACjF,IAAI,OAAO,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;4BACzC,MAAM,IAAI,KAAK,CACd,CAAC,CAAC,sEAAsE,EAAE;gCACzE,WAAW;6BACX,CAAC,CACF,CAAC;wBACH,CAAC;wBACD,OAAO,UAAU,CAAC,aAAc,CAAC,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC,CAAC;oBAAA,CACnF;iBACD,CAAC;gBACH,CAAC,CAAC,SAAS,CAAC;YACd,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC;gBACtD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;oBACd,GAAG,QAAQ;oBACX,GAAG,EAAE,CAAC,GAAW,EAAE,KAAwB,EAAE,OAAwC,EAAE,EAAE,CAAC;wBACzF,IAAI,OAAO,EAAE,WAAW,KAAK,SAAS,IAAI,OAAO,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;4BAC/E,MAAM,IAAI,KAAK,CACd,CAAC,CAAC,oEAAoE,EAAE,EAAE,WAAW,EAAE,CAAC,CACxF,CAAC;wBACH,CAAC;wBACD,OAAO,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;oBAAA,CAC7D;oBACD,MAAM,EAAE,CAAC,GAAW,EAAE,OAA2C,EAAE,EAAE,CAAC;wBACrE,IAAI,OAAO,EAAE,WAAW,KAAK,SAAS,IAAI,OAAO,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;4BAC/E,MAAM,IAAI,KAAK,CACd,CAAC,CAAC,oEAAoE,EAAE,EAAE,WAAW,EAAE,CAAC,CACxF,CAAC;wBACH,CAAC;wBACD,OAAO,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;oBAAA,CACzD;iBACD,CAAC;gBACH,CAAC,CAAC,SAAS,CAAC;YACb,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC;gBAC9D,CAAC,CAAC,sBAAsB,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC;gBAC5C,CAAC,CAAC,SAAS,CAAC;YACb,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,EAAE,YAAY,EAAE,CAAC;YAClD,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YACzD,MAAM,QAAQ,GACb,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,SAAS,KAAK,SAAS;gBACpE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;oBACd,GAAG,EAAE,CAAC,KAA6B,EAAE,UAAqC,EAAE,EAAE,CAAC;wBAC9E,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,KAAK,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;4BACxE,MAAM,IAAI,mBAAmB,CAC5B,aAAa,EACb,yDAAyD,WAAW,EAAE,CACtE,CAAC;wBACH,CAAC;wBACD,OAAO,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;oBAAA,CAC3C;oBACD,IAAI,EAAE,KAAK,EAAE,GAAsB,EAAE,EAAE,CAAC;wBACvC,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,GAAG,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;4BACpE,MAAM,IAAI,mBAAmB,CAC5B,aAAa,EACb,yDAAyD,WAAW,EAAE,CACtE,CAAC;wBACH,CAAC;wBACD,OAAO,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAAA,CAC9B;oBACD,IAAI,EAAE,KAAK,EAAE,GAAsB,EAAE,WAAoD,EAAE,EAAE,CAAC;wBAC7F,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,GAAG,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;4BACpE,MAAM,IAAI,mBAAmB,CAC5B,aAAa,EACb,yDAAyD,WAAW,EAAE,CACtE,CAAC;wBACH,CAAC;wBACD,OAAO,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;oBAAA,CAC3C;iBACD,CAAC;gBACH,CAAC,CAAC,SAAS,CAAC;YACd,MAAM,WAAW,GAChB,OAAO,CAAC,YAAY,IAAI,UAAU;gBACjC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;oBACd,OAAO,EAAE,CAAU;oBACnB,IAAI,KAAK,GAAG;wBACX,MAAM,OAAO,GAAG,OAAO,CAAC,YAAa,CAAC;wBACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;wBACzC,IAAI,CAAC,QAAQ;4BAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,yCAAyC,CAAC,CAAC,CAAC;wBAC7E,OAAO,QAAQ,CAAC;oBAAA,CAChB;oBACD,UAAU,EAAE;wBACX,MAAM,EAAE,KAAK,EACZ,KAMC,EACD,MAAmB,EAClB,EAAE,CAAC;4BACJ,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC;4BACrC,IAAI,CAAC,OAAO;gCAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC;4BACzE,OAAO,OAAO,CAAC,MAAM,CACpB;gCACC,GAAG,CAAC,KAAK,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC;gCACjF,MAAM,EAAE,KAAK,CAAC,MAAM;gCACpB,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;gCACxE,GAAG,CAAC,KAAK,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC;6BACpF,EACD,EAAE,MAAM,EAAE,CACV,CAAC;wBAAA,CACF;qBACD;iBACD,CAAC;gBACH,CAAC,CAAC,SAAS,CAAC;YACd,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;gBACjD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;oBACd,OAAO,EAAE,CAAU;oBACnB,SAAS,EAAE,GAAG,EAAE,CAAC;wBAChB,YAAY,EAAE,CAAC;wBACf,OAAO,CAAC,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;6BACzB,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;6BAC9D,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;6BACzD,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;4BACxB,IAAI;4BACJ,UAAU,EAAE,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC;4BAC3C,MAAM,EAAE,KAAK,CAAC,KAAK;4BACnB,YAAY,EAAE,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC;yBAC3C,CAAC,CAAC,CAAC;oBAAA,CACL;oBACD,UAAU,EAAE,CAAC,IAAY,EAAE,KAAc,EAAE,aAAiD,EAAE,EAAE,CAAC;wBAChG,YAAY,EAAE,CAAC;wBACf,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;wBACnC,IAAI,CAAC,UAAU,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;4BAClE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,sCAAsC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;wBACtE,CAAC;wBACD,OAAO,0BAA0B,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,CACvD,oBAAoB,CACnB,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,EACxB,KAAK,EACL,oBAAoB,EACpB,aAAa,EAAE,MAAM,CACrB,CACD,CAAC;oBAAA,CACF;iBACD,CAAC;gBACH,CAAC,CAAC,SAAS,CAAC;YACb,OAAO,MAAM,CAAC,MAAM,CAAC;gBACpB,OAAO,EAAE,CAAU;gBACnB,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/B,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/B,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3B,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3C,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9C,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC3C,CAAC,CAAC;QAAA,CACH,CAAC;QACF,MAAM,SAAS,GAAiB;YAC/B,MAAM,CAAQ,UAA2C,EAAmC;gBAC3F,YAAY,EAAE,CAAC;gBACf,MAAM,UAAU,GAAG,gCAAgC,CAAC,UAAU,CAAC,CAAC;gBAChE,MAAM,GAAG,GAAG,iBAAiB,CAAC,UAAU,CAAC,EAAE,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;gBACjE,IAAI,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,2CAA2C,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC5G,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;gBAC7E,MAAM,YAAY,GAAG,GAAG,CACvB,4BAA4B,CAC3B,sBAAsB,EACtB,GAAG,EAAE,CAAC;oBACL,MAAM,OAAO,GAAG,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBAC9C,IAAI,OAAO,EAAE,UAAU,KAAK,UAAU;wBAAE,OAAO;oBAC/C,oBAAoB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBACjC,MAAM,aAAa,GAAG,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACtD,IAAI,aAAa,EAAE,CAAC;wBACnB,KAAK,MAAM,YAAY,IAAI,aAAa,CAAC,MAAM,EAAE;4BAChD,+BAA+B,CAAC,YAAY,CAAC,CAAC;wBAC/C,sBAAsB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBACpC,CAAC;gBAAA,CACD,EACD,gBAAgB,KAAK,yBAAyB,GAAG,EAAE,CACnD,CACD,CAAC;gBACF,KAAK,YAAY,CAAC;gBAClB,OAAO,UAAU,CAAC;YAAA,CAClB;YACD,GAAG,CAAkB,EAAU,EAAE,OAAe,EAAmC;gBAClF,YAAY,EAAE,CAAC;gBACf,OAAO,sBAAsB,CAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,UAAU,CAAC;YAAA,CACjE;YACD,eAAe,CACd,KAAyE,EACzE,OAAuC,EACvC,OAAgB,EAChB,OAAkC,EACT;gBACzB,OAAO,qBAAqB,CAC3B,SAAS,EACT,KAAK,EACL,OAAO,EACP,OAAO,EACP,KAAK,EACL,UAAU,EACV,YAAY,EACZ,GAAG,EACH,OAAO,CACP,CAAC;YAAA,CACF;YACD,iBAAiB,CAChB,KAAyE,EACzE,OAAyC,EACzC,OAAgB,EACS;gBACzB,OAAO,qBAAqB,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC;YAAA,CACzG;YACD,eAAe,CACd,KAAyE,EACzE,OAAuC,EACvC,OAAgB,EACS;gBACzB,OAAO,qBAAqB,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC;YAAA,CACvG;YACD,mBAAmB,CAClB,KAAyE,EACzE,OAA2C,EAC3C,OAAgB,EAChB,OAAkC,EACT;gBACzB,OAAO,qBAAqB,CAC3B,cAAc,EACd,KAAK,EACL,OAAO,EACP,OAAO,EACP,KAAK,EACL,UAAU,EACV,YAAY,EACZ,GAAG,EACH,OAAO,CACP,CAAC;YAAA,CACF;SACD,CAAC;QACF,MAAM,GAAG,GAAkB;YAC1B,QAAQ,EAAE,WAAW;YACrB,IAAI,EAAE,gBAAgB;YACtB,MAAM;YACN,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1D,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,sBAAsB,CAAC;gBACjD,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,EAAgC,EAAE;gBAC5E,CAAC,CAAC,EAAE,CAAC;YACN,YAAY;YACZ,aAAa;YACb,SAAS;YACT,GAAG,CAAC,UAAU,IAAI,OAAO,CAAC,OAAO;gBAChC,CAAC,CAAC;oBACA,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,YAAY,EAAE;wBACtD,WAAW,EAAE,gBAAgB;wBAC7B,aAAa,EAAE,kBAAkB;qBACjC,CAAC;iBACF;gBACF,CAAC,CAAC,EAAE,CAAC;YACN,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC,WAAW;gBAC/D,CAAC,CAAC,EAAE,WAAW,EAAE,kBAAkB,CAAC,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE;gBACxE,CAAC,CAAC,EAAE,CAAC;YACN,iGAAmD;YACnD,yFAA+C;YAC/C,sDAAsC;YACtC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBACnC,CAAC,CAAC;oBACA,MAAM,EAAE;wBACP,uFAAyD;wBACzD,6FAA6C;wBAC7C,mEAAqC;wBACrC,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS;4BAC/B,CAAC,CAAC,EAAE;4BACJ,CAAC,CAAC;gCACA,MAAM,EAAE,eAAe;gCACvB,gFAAsC;gCACtC,KAAK,EAAE,oBAAoB;6BAC3B,CAAC;wBACJ,6EAAqD;wBACrD,kEAAkC;wBAClC,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,uBAAuB,EAAE,CAAC;wBAClF,4FAAsC;wBACtC,GAAG,CAAC,OAAO,CAAC,kBAAkB,KAAK,SAAS;4BAC3C,CAAC,CAAC,EAAE;4BACJ,CAAC,CAAC;gCACA,OAAO,EAAE,KAAK,EAAE,SAAiB,EAAE,EAAE,CAAC;oCACrC,YAAY,EAAE,CAAC;oCACf,OAAO,OAAO,CAAC,kBAAkB,EAAE,CAAC,SAAS,CAAC,CAAC;gCAAA,CAC/C;6BACD,CAAC;wBACJ,yGAAyC;wBACzC,GAAG,CAAC,OAAO,CAAC,kBAAkB,KAAK,SAAS;4BAC3C,CAAC,CAAC,EAAE;4BACJ,CAAC,CAAC;gCACA,IAAI,EAAE,KAAK,IAA0C,EAAE,CAAC;oCACvD,YAAY,EAAE,CAAC;oCACf,OAAO,OAAO,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,CAAC;gCAAA,CAC5C;6BACD,CAAC;qBACJ;iBACD;gBACF,CAAC,CAAC,EAAE,CAAC;YACN,uEAAsE;YACtE,oEAAoE;YACpE,qEAAqE;YACrE,wCAAwC;YACxC,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,EAAE,CAAC;YACrG,gEAAgE;YAChE,iEAAiE;YACjE,iDAAiD;YACjD,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS;gBAC9B,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC;oBACA,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO;oBAC5B,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;iBAC3F,CAAC;YACJ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC,WAAW;gBAC/D,CAAC,CAAC,EAAE,WAAW,EAAE,kBAAkB,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,CAAC,EAAE;gBACpF,CAAC,CAAC,EAAE,CAAC;YACN,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,sBAAsB,CAAC,IAAI,OAAO,CAAC,WAAW;gBACxE,CAAC,CAAC;oBACA,WAAW,EAAE,kBAAkB,CAC9B,OAAO,CAAC,WAAW,EACnB,YAAY,EACZ,CAAC,QAAQ,EAAE,EAAE,CAAC;wBACb,KAAK,CAAC,oBAAoB,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;wBAC1C,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;oBAAA,CAC5C,EACD,CAAC,UAAU,EAAE,EAAE,CAAC,KAAK,CAAC,sBAAsB,EAAE,GAAG,CAAC,UAAU,CAAC,EAC7D,yBAAyB,EACzB,8BAA8B,EAC9B,gBAAgB,CAChB;iBACD;gBACF,CAAC,CAAC,EAAE,CAAC;YACN,YAAY,CAAC,UAAU,EAAE;gBACxB,YAAY,EAAE,CAAC;gBACf,MAAM,IAAI,GAAG,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;gBAChD,gGAAoC;gBACpC,wFAA4C;gBAC5C,8BAAY;gBACZ,OAAO,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAAA,CAChG;YACD,eAAe,CAAC,UAAU,EAAE;gBAC3B,YAAY,EAAE,CAAC;gBACf,MAAM,OAAO,GAAG,yBAAyB,CAAC,UAAU,CAAC,CAAC;gBACtD,OAAO,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;YAAA,CACpF;YACD,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE;gBAChC,YAAY,EAAE,CAAC;gBACf,IAAI,CAAC,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC;gBACrE,OAAO,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;YAAA,CAChF;YACD,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE;gBAChC,YAAY,EAAE,CAAC;gBACf,IAAI,CAAC,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC;gBACtE,OAAO,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;YAAA,CAC1E;YACD,uBAAuB,CAAC,IAAI,EAAE,QAAQ,EAAE;gBACvC,YAAY,EAAE,CAAC;gBACf,IAAI,CAAC,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,4CAA4C,CAAC,CAAC,CAAC;gBAC5E,OAAO,GAAG,CAAC,QAAQ,CAAC,kBAAkB,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC;YAAA,CAC/F;YACD,uBAAuB,CAAC,UAAU,EAAE;gBACnC,YAAY,EAAE,CAAC;gBACf,IAAI,CAAC,UAAU,EAAE,UAAU;oBAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,kDAAkD,CAAC,CAAC,CAAC;gBACpG,IAAI,OAAO,UAAU,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;oBAC9C,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,8CAA8C,CAAC,CAAC,CAAC;gBACpE,CAAC;gBACD,+FAAmD;gBACnD,oFAA8B;gBAC9B,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,uBAAuB,CAAC;gBAC1D,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBAC5B,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,gEAAgE,CAAC,CAAC,CAAC;gBACtF,CAAC;gBACD,MAAM,OAAO,GAAoB;oBAChC,UAAU,EAAE,UAAU,CAAC,UAAU;oBACjC,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC;iBACjD,CAAC;gBACF,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAClC,OAAO,GAAG,CAAC;oBACV,EAAE,EAAE,oBAAoB,UAAU,CAAC,UAAU,EAAE;oBAC/C,IAAI,EAAE,kBAAkB;oBACxB,OAAO,EAAE,GAAG,EAAE,CAAC;wBACd,OAAO,EAAE,CAAC;oBAAA,CACV;iBACD,CAAC,CAAC;YAAA,CACH;YACD,+BAA+B,CAAC,IAAI,EAAE,SAAS,EAAE;gBAChD,YAAY,EAAE,CAAC;gBACf,IAAI,CAAC,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,qDAAqD,CAAC,CAAC,CAAC;gBACrF,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE,CAAC;oBACrC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,yDAAyD,CAAC,CAAC,CAAC;gBAC/E,CAAC;gBACD,OAAO,GAAG,CACT,QAAQ,CAAC,2BAA2B,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,wBAAwB,CAAC,CACnG,CAAC;YAAA,CACF;YACD,uBAAuB,CAAC,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE;gBACtD,YAAY,EAAE,CAAC;gBACf,IAAI,CAAC,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,mDAAmD,CAAC,CAAC,CAAC;gBACnF,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;oBACnC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,qDAAqD,CAAC,CAAC,CAAC;gBAC3E,CAAC;gBACD,8FAAgD;gBAChD,sEAAgC;gBAChC,MAAM,QAAQ,GAAG,cAAc,EAAE,QAAQ,IAAI,CAAC,CAAC;gBAC/C,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAChE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,0DAA0D,CAAC,CAAC,CAAC;gBAChF,CAAC;gBACD,IAAI,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBACvC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,sCAAsC,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBACjG,CAAC;gBACD,MAAM,KAAK,GAA0B;oBACpC,KAAK;oBACL,UAAU;oBACV,KAAK,EAAE,OAAO;oBACd,QAAQ;oBACR,QAAQ,EAAE,EAAE,uBAAuB;iBACnC,CAAC;gBACF,uBAAuB,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACzC,OAAO,GAAG,CACT,4BAA4B,CAC3B,mBAAmB,EACnB,GAAG,EAAE,CAAC;oBACL,IAAI,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK;wBAAE,OAAO;oBACxD,uBAAuB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAAA,CACrC,EACD,gBAAgB,KAAK,sBAAsB,IAAI,EAAE,CACjD,CACD,CAAC;YAAA,CACF;YACD,aAAa,CAAC,UAAU,EAAE;gBACzB,YAAY,EAAE,CAAC;gBACf,MAAM,IAAI,GAAG,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBACjD,IAAI,OAAO,UAAU,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;oBAClF,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,mDAAmD,CAAC,CAAC,CAAC;gBACzE,CAAC;gBACD,IAAI,OAAO,UAAU,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;oBACrE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC;gBAC5D,CAAC;gBACD,IAAI,OAAO,UAAU,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;oBACnE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC;gBAC3D,CAAC;gBACD,OAAO,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;YAAA,CAC3E;YACD,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE;gBACjC,YAAY,EAAE,CAAC;gBACf,IAAI,CAAC,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,wCAAwC,CAAC,CAAC,CAAC;gBACxE,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;oBACpD,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,yCAAyC,CAAC,CAAC,CAAC;gBAC/D,CAAC;gBACD,OAAO,GAAG,CAAC,QAAQ,CAAC,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC;YAAA,CACrF;YACD,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE;gBACtC,YAAY,EAAE,CAAC;gBACf,IAAI,CAAC,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,6CAA6C,CAAC,CAAC,CAAC;gBAC7E,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;oBACpD,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,8CAA8C,CAAC,CAAC,CAAC;gBACpE,CAAC;gBACD,OAAO,GAAG,CAAC,QAAQ,CAAC,mBAAmB,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,kBAAkB,CAAC,CAAC,CAAC;YAAA,CAC/F;YACD,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE;gBACpC,YAAY,EAAE,CAAC;gBACf,IAAI,CAAC,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,2CAA2C,CAAC,CAAC,CAAC;gBAC3E,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;oBACpD,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,4CAA4C,CAAC,CAAC,CAAC;gBAClE,CAAC;gBACD,OAAO,GAAG,CAAC,QAAQ,CAAC,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC;YAAA,CAC3F;YACD,2BAA2B,CAAC,IAAI,EAAE,MAAM,EAAE;gBACzC,YAAY,EAAE,CAAC;gBACf,IAAI,CAAC,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,iDAAiD,CAAC,CAAC,CAAC;gBACjF,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;oBACvD,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,qDAAqD,CAAC,CAAC,CAAC;gBAC3E,CAAC;gBACD,OAAO,GAAG,CAAC,QAAQ,CAAC,uBAAuB,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,qBAAqB,CAAC,CAAC,CAAC;YAAA,CACtG;YACD,gBAAgB,CAAC,QAAQ,EAAE,OAAO,EAAE;gBACnC,YAAY,EAAE,CAAC;gBACf,MAAM,SAAS,GAAsB;oBACpC,aAAa;oBACb,gBAAgB;oBAChB,eAAe;oBACf,kBAAkB;oBAClB,iBAAiB;oBACjB,qBAAqB;iBACrB,CAAC;gBACF,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACnC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,8CAA8C,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;gBACjG,CAAC;gBACD,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;oBACnC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,6CAA6C,CAAC,CAAC,CAAC;gBACnE,CAAC;gBACD,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAC9C,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBACjC,MAAM,KAAK,GAAiD,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;gBAClG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACpB,MAAM,EAAE,GAAG,gBAAgB,KAAK,cAAc,QAAQ,IAAI,EAAE,gBAAgB,EAAE,CAAC;gBAC/E,OAAO,GAAG,CACT,4BAA4B,CAC3B,WAAW,EACX,GAAG,EAAE,CAAC;oBACL,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBACxC,IAAI,CAAC,OAAO;wBAAE,OAAO;oBACrB,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBACrC,IAAI,KAAK,IAAI,CAAC;wBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;oBACzC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;wBAAE,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAAA,CACrD,EACD,EAAE,CACF,CACD,CAAC;YAAA,CACF;YACD,uBAAuB,CAAC,IAAI,EAAE,QAAQ,EAAE;gBACvC,YAAY,EAAE,CAAC;gBACf,IAAI,CAAC,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,6CAA6C,CAAC,CAAC,CAAC;gBAC7E,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,CAAC,eAAe,KAAK,UAAU,EAAE,CAAC;oBACjE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,uDAAuD,CAAC,CAAC,CAAC;gBAC7E,CAAC;gBACD,OAAO,GAAG,CAAC,QAAQ,CAAC,mBAAmB,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC;YAAA,CAChG;YACD,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE;gBACxB,YAAY,EAAE,CAAC;gBACf,IAAI,CAAC,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC;gBACtE,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;gBACpD,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gBAChC,MAAM,QAAQ,GAAG,EAAE,oBAAoB,CAAC;gBACxC,MAAM,EAAE,GAAG,eAAe,CAAC,cAAc,EAAE,QAAQ,EAAE,gBAAgB,KAAK,IAAI,IAAI,IAAI,QAAQ,EAAE,CAAC,CAAC;gBAClG,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,OAAyD,EAAE,CAAC,CAAC;gBAC1G,OAAO,GAAG,CACT,4BAA4B,CAC3B,cAAc,EACd,GAAG,EAAE,CAAC;oBACL,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBACpB,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC;wBAAE,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAAA,CAClD,EACD,EAAE,CACF,CACD,CAAC;YAAA,CACF;YACD,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE;gBACpB,YAAY,EAAE,CAAC;gBACf,MAAM,QAAQ,GAAG,gBAAgB,CAChC,mBAAmB,CAClB,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAC3B;oBACC,EAAE,EAAE,eAAe,CAClB,OAAO,EACP,EAAE,YAAY,CAAC,aAAa,EAC5B,SAAS,KAAK,IAAI,YAAY,CAAC,aAAa,EAAE,CAC9C;oBACD,SAAS,EAAE,KAAK,EAAE;iBAClB,CACD,CACD,CAAC;gBACF,MAAM,OAAO,GAAiC,EAAE,CAAC;gBACjD,KAAK,MAAM,CAAC,cAAc,EAAE,UAAU,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;oBAC5F,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;oBACpC,IAAI,CAAC;wBACJ,MAAM,0BAA0B,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;wBAC/F,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;oBACzD,CAAC;oBAAC,OAAO,MAAM,EAAE,CAAC;wBACjB,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;oBAC9C,CAAC;4BAAS,CAAC;wBACV,gGAAkC;wBAClC,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;wBACjD,IAAI,UAAU,GAAG,6BAA6B,EAAE,CAAC;4BAChD,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,KAAK,EAAE,uBAAuB,EAAE;gCAC5D,SAAS,EAAE,QAAQ,CAAC,IAAI;gCACxB,cAAc;gCACd,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;6BAClC,CAAC,CAAC;wBACJ,CAAC;oBACF,CAAC;gBACF,CAAC;gBACD,YAAY,EAAE,CAAC;gBACf,MAAM,QAAQ,GAAG,OAAO;qBACtB,MAAM,CAAC,CAAC,MAAM,EAAmC,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,UAAU,CAAC;qBACjF,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;qBAC9B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,CAAC;gBACtD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;oBAAE,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC7C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;oBACtB,MAAM,IAAI,cAAc,CAAC,QAAQ,EAAE,qCAAqC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC1F,OAAO,QAAQ,CAAC;YAAA,CAChB;YACD,IAAI,CACH,SAAiB,EACjB,KAAc,EACd,OAAkC,EACP;gBAC3B,YAAY,EAAE,CAAC;gBACf,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC7C,IAAI,CAAC,UAAU;oBAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,0CAA0C,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;gBAC/F,gCAAgC,CAAC,UAAU,CAAC,CAAC;gBAC7C,MAAM,QAAQ,GAAG,EAAE,iBAAiB,CAAC;gBACrC,MAAM,EAAE,GAAG,eAAe,CAAC,WAAW,EAAE,QAAQ,EAAE,aAAa,KAAK,IAAI,SAAS,IAAI,QAAQ,EAAE,CAAC,CAAC;gBACjG,MAAM,MAAM,GAAG,cAAc,CAC5B,CAAC,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,EACnC,IAAI,gBAAgB,CACnB,EAAE,EACF,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,0BAA0B,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,EAChG,KAAK,EACL,CAAC,MAAM,EAAE,EAAE,CAAC;oBACX,kBAAkB,CAAC,YAAY,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;oBAC7C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;wBAC1B,oBAAoB,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;oBAC1E,CAAC;yBAAM,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;wBACnC,qBAAqB,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;oBAC3E,CAAC;gBAAA,CACD,EACD,CAAC,MAAM,EAAE,EAAE,CAAC,kBAAkB,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,EAC1F,CAAC,GAAG,EAAE,CAAC;oBACN,IAAI,IAAI,GAAG,CAAC,CAAC;oBACb,OAAO,CAAC,QAAQ,EAAE,EAAE,CACnB,mBAAmB,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC;gBAAA,CAC3F,CAAC,EAAE,CACJ,CACD,CAAC;gBACF,kBAAkB,CAAC,YAAY,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;gBACtD,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,CAAC;gBAC/B,IAAI,MAAM,EAAE,CAAC;oBACZ,IAAI,MAAM,CAAC,OAAO;wBAAE,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;;wBAErD,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;4BACzE,IAAI,EAAE,IAAI;yBACV,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO,MAAM,CAAC;YAAA,CACd;SACD,CAAC;QACF,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC1B,OAAO,GAAG,CAAC;IAAA,CACX,CAAC;IAEF,OAAO;QACN,IAAI,EAAE,gBAAgB;QACtB,4BAA4B;QAC5B,SAAS,EAAE,MAAM;QACjB,SAAS,CAAC,GAAG,EAAE;YACd,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,KAAK;gBAAE,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAAA,CACnC;QACD,aAAa,GAAG;YACf,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,SAAS;gBAAE,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAAA,CAC9D;QACD,KAAK,CAAC,UAAU,GAAG;YAClB,MAAM,MAAM,GAAG,CAAC,GAAG,mBAAmB,CAAC,IAAI,EAAE,CAAC,CAAC;YAC/C,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,MAAM,QAAQ,GAAc,EAAE,CAAC;YAC/B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC5B,IAAI,CAAC;oBACJ,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBACjC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBAChB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACtB,CAAC;YACF,CAAC;YACD,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;YACtC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC7C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;gBAAE,MAAM,IAAI,cAAc,CAAC,QAAQ,EAAE,oCAAoC,CAAC,CAAC;QAAA,CAClG;QACD,iBAAiB,CAAC,EAAE,EAAE;YACrB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,SAAS;gBAAE,IAAI,KAAK,CAAC,KAAK,KAAK,EAAE;oBAAE,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACtF,MAAM,aAAa,GAAG,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClD,IAAI,CAAC,aAAa;gBAAE,OAAO;YAC3B,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC/B,MAAM,QAAQ,GAAc,EAAE,CAAC;YAC/B,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;gBAC1C,IAAI,CAAC;oBACJ,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC;oBACtC,IAAI,MAAM,IAAI,OAAQ,MAA4B,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;wBACxE,6BAA6B,CAAC,MAA2B,EAAE,EAAE,CAAC,CAAC;wBAC/D,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,uEAAuE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;oBACrG,CAAC;gBACF,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBAChB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACtB,CAAC;YACF,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC7C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;gBAAE,MAAM,IAAI,cAAc,CAAC,QAAQ,EAAE,sCAAsC,EAAE,EAAE,CAAC,CAAC;QAAA,CACxG;QACD,KAAK,CAAC,aAAa,CAAC,EAAE,EAAE;YACvB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,SAAS;gBAAE,IAAI,KAAK,CAAC,KAAK,KAAK,EAAE;oBAAE,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACtF,MAAM,aAAa,GAAG,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClD,IAAI,CAAC,aAAa;gBAAE,OAAO;YAC3B,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC/B,MAAM,QAAQ,GAAc,EAAE,CAAC;YAC/B,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;gBAC1C,IAAI,CAAC;oBACJ,MAAM,YAAY,CAAC,OAAO,EAAE,CAAC;gBAC9B,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBAChB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACtB,CAAC;YACF,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC7C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;gBAAE,MAAM,IAAI,cAAc,CAAC,QAAQ,EAAE,sCAAsC,EAAE,EAAE,CAAC,CAAC;QAAA,CACxG;QACD,SAAS,EAAE,GAAG,EAAE,CACf,MAAM,CAAC,MAAM,CACZ,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;aACzB,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;aAC9D,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;aACzD,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CACtB,MAAM,CAAC,MAAM,CAAC;YACb,IAAI;YACJ,UAAU,EAAE,+BAA+B,CAAC,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC5E,MAAM,EAAE,KAAK,CAAC,KAAK;YACnB,YAAY,EAAE,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC;SAC3C,CAAC,CACF,CACF;QACF,YAAY,EAAE,GAAG,EAAE,CAClB,MAAM,CAAC,MAAM,CACZ,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;aAC3B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;aAC1D,IAAI,CACJ,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACf,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CACnG;aACA,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CACrG;QACF,UAAU,EAAE,GAAG,EAAE,CAChB,MAAM,CAAC,MAAM,CACZ,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;aACzB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;aAC1D,IAAI,CACJ,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACf,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CACnG;aACA,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CACrG;QACF,sBAAsB,EAAE,GAAG,EAAE,CAC5B,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC;aACrC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;aAC1D,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACrB,iBAAiB,CAChB,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EACjE,oBAAoB,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CACnE,CACD;aACA,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAChB,EAAE,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE;YACvB,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO;YACjC,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM;YAC/B,SAAS,EAAE,KAAK,CAAC,UAAU,CAAC,SAAS,IAAI,SAAS;YAClD,KAAK,EAAE,KAAK,CAAC,KAAK;SAClB,CAAC,CAAC;QACL,iBAAiB,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YAC7E,IAAI,CAAC,KAAK,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC;gBACrD,MAAM,IAAI,KAAK,CAAC,sCAAsC,OAAO,IAAI,OAAO,EAAE,CAAC,CAAC;YAC7E,OAAO,uBAAuB,CAAC,KAAK,CAAC,CAAC;QAAA,CACtC;QACD,iBAAiB,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC;YACnC,MAAM,UAAU,GAAG,oBAAoB,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;YAC5E,OAAO,UAAU,KAAK,SAAS,IAAI,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAAA,CAChF;QACD,uBAAuB,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAC1C,CAAC,KAAK,CAAC,sBAAsB,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC;QACpF,iBAAiB;QACjB,KAAK,CAAC,qBAAqB,CAAC,SAAS,EAAE;YACtC,MAAM,QAAQ,GAAoB,MAAM,CAAC,MAAM,CAAC;gBAC/C,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,YAAY,EAAE,SAAS,CAAC,YAAY;gBACpC,GAAG,CAAC,SAAS,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC;gBAC7E,OAAO,EAAE,SAAS,CAAC,OAAO;aAC1B,CAAC,CAAC;YACH,mBAAmB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YACrC,MAAM,uBAAuB,GAAG,oBAAoB,CAAC,GAAG,CACvD,iBAAiB,CAAC,wBAAwB,EAAE,6BAA6B,CAAC,CAC1E,CAAC;YACF,IAAI,CAAC,uBAAuB,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,uBAAuB,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC5F,OAAO;YACR,CAAC;YACD,IAAI,CAAC;gBACJ,MAAM,iBAAiB,CAAC;oBACvB,IAAI,EAAE,wBAAwB;oBAC9B,OAAO,EAAE,6BAA6B;oBACtC,KAAK,EAAE,WAAW;oBAClB,IAAI,EAAE;wBACL,OAAO,EAAE,CAAC;wBACV,GAAG,CAAC,QAAQ,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC;wBAC3E,YAAY,EAAE,QAAQ,CAAC,YAAY;wBACnC,IAAI,EAAE,QAAQ,CAAC,IAAI;wBACnB,OAAO,EAAE,QAAQ,CAAC,OAAO;qBACzB;oBACD,MAAM,EAAE,oBAAoB;iBAC5B,CAAC,CAAC;YACJ,CAAC;YAAC,MAAM,CAAC;gBACR,2EAA2E;gBAC3E,mEAAmE;YACpE,CAAC;QAAA,CACD;QACD,sBAAsB;QACtB,sBAAsB,EAAE,wBAAwB;QAChD,qBAAqB,EAAE,uBAAuB;QAC9C,cAAc,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;QACjD,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE;YAClC,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACvC,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,wCAAwC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACpF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ;gBACzB,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,sDAAsD,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACtF,MAAM,SAAS,GAAG,MAAM,oCAAoC,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAC9F,KAAK,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CACzB,CAAC;YACF,IAAI,OAAO,SAAS,KAAK,SAAS,EAAE,CAAC;gBACpC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,yDAAyD,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACzF,CAAC;YACD,OAAO,SAAS,CAAC;QAAA,CACjB;QACD,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE;YAChC,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACvC,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,wCAAwC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACpF,MAAM,QAAQ,GAAG,MAAM,oCAAoC,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAC7F,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CACrB,CAAC;YACF,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBACtD,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,mDAAmD,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACnF,CAAC;YACD,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC;gBACpG,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,kDAAkD,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAClF,CAAC;YACD,OAAO,QAAQ,CAAC;QAAA,CAChB;QACD,mBAAmB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC;QAC3D,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE;YACtC,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC5C,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,6CAA6C,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACzF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO;gBACxB,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,wDAAwD,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACxF,OAAO,oCAAoC,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAAA,CACzG;QACD,sBAAsB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC;QACjE,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE;YACpC,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC/C,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,iDAAiD,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC7F,MAAM,MAAM,GAAG,MAAM,oCAAoC,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAC3F,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CACxB,CAAC;YACF,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC3C,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,0DAA0D,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC1F,CAAC;YACD,OAAO,MAAM,CAAC;QAAA,CACd;QACD,gBAAgB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACxC,IAAI,CAAC,OAAO;gBAAE,OAAO,EAAE,CAAC;YACxB,OAAO,OAAO;iBACZ,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;iBAC1D,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAA8D,CAAC;QAAA,CAC3F;QACD,kBAAkB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC;QACzD,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE;YAClC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,CAAC,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,6CAA6C,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC3F,MAAM,QAAQ,GAAG,MAAM,oCAAoC,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAC/F,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAC9B,CAAC;YACF,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC7D,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,wDAAwD,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACxF,CAAC;YACD,OAAO,QAAQ,CAAC;QAAA,CAChB;QACD,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE;YACrC,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC5C,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,6CAA6C,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACzF,MAAM,QAAQ,GAAG,MAAM,oCAAoC,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAC7F,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CACrB,CAAC;YACF,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBACxD,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,wDAAwD,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACxF,CAAC;YACD,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBACzE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,2DAA2D,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC3F,CAAC;YACD,IAAI,QAAQ,CAAC,cAAc,KAAK,SAAS,IAAI,OAAO,QAAQ,CAAC,cAAc,KAAK,QAAQ,EAAE,CAAC;gBAC1F,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,8DAA8D,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC9F,CAAC;YACD,OAAO,QAAQ,CAAC;QAAA,CAChB;QACD,KAAK,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE;YACxC,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC5C,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,6CAA6C,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACzF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS;gBAC1B,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,sDAAsD,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACtF,MAAM,MAAM,GAAG,MAAM,oCAAoC,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAC3F,KAAK,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAC1B,CAAC;YACF,IACC,CAAC,MAAM;gBACP,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;gBAClC,CAAC,MAAM,CAAC,OAAO;gBACf,OAAO,MAAM,CAAC,gBAAgB,KAAK,QAAQ;gBAC3C,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,EACpC,CAAC;gBACF,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,uDAAuD,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACvF,CAAC;YACD,OAAO,MAAM,CAAC;QAAA,CACd;QACD,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC;QACvD,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE;YACnC,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,2CAA2C,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACvF,MAAM,QAAQ,GAAG,MAAM,oCAAoC,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAC7F,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CACrB,CAAC;YACF,IACC,CAAC,QAAQ;gBACT,OAAO,QAAQ,CAAC,eAAe,KAAK,SAAS;gBAC7C,OAAO,QAAQ,CAAC,iBAAiB,KAAK,SAAS,EAC9C,CAAC;gBACF,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,sDAAsD,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACtF,CAAC;YACD,OAAO,QAAQ,CAAC;QAAA,CAChB;QACD,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE;YACtC,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACnC,IAAI,CAAC,UAAU;gBAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,gCAAgC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAChF,OAAO,0BAA0B,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,CACvD,oBAAoB,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,CAAC,CAC5F,CAAC;QAAA,CACF;QACD,iGAA4C;QAC5C,+FAAmD;QACnD,gGAA4C;QAC5C,4FAA8C;QAC9C,2EAA2B;QAC3B,uBAAuB,EAAE,GAAG,EAAE,CAAC;YAC9B,IAAI,MAAM,GAAG,CAAC,CAAC;YACf,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;gBAC/B,IAAI,MAA0B,CAAC;gBAC/B,IAAI,CAAC;oBACJ,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;gBACxB,CAAC;gBAAC,MAAM,CAAC;oBACR,SAAS;gBACV,CAAC;gBACD,IAAI,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,WAAW;oBAAE,MAAM,IAAI,CAAC,CAAC;YAC1F,CAAC;YACD,OAAO,MAAM,CAAC;QAAA,CACd;QACD,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;QACxC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;YACxC,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,CAAC,UAAU;gBAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,mCAAmC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACnF,OAAO,qBAAqB,CAC3B,MAAM,0BAA0B,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,CACtD,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,MAAM,EAAE,IAAI,eAAe,EAAE,CAAC,MAAM,EAAE,CAAC,CACxE,EACD,IAAI,CACJ,CAAC;QAAA,CACF;QACD,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;QAC5C,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE;YAC9B,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,CAAC,UAAU;gBAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,sCAAsC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACtF,OAAO,0BAA0B,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAAA,CACvE;QACD,kBAAkB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC;QACzD,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE;YAC9C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,CAAC,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,4CAA4C,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC1F,OAAO,0BAA0B,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QAAA,CAC1F;QACD,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE;YAC7C,MAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC/C,IAAI,CAAC,UAAU;gBAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,4CAA4C,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC5F,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ;gBAC7B,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,qDAAqD,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACrF,OAAO,0BAA0B,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QAAA,CAC7F;QACD,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE;YAC7C,MAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC/C,IAAI,CAAC,UAAU;gBAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,4CAA4C,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC5F,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO;gBAC5B,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,mDAAmD,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACnF,OAAO,0BAA0B,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;QAAA,CAC7F;QACD,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE;YAC5C,MAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC/C,IAAI,CAAC,UAAU;gBAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,4CAA4C,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC5F,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO;gBAC5B,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,uDAAuD,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACvF,OAAO,0BAA0B,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QAAA,CAC5F;QACD,KAAK,CAAC,wBAAwB,CAAC,OAAO,EAAE;YACvC,IAAI,OAAO,GAAG,uBAAuB,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAClE,KAAK,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,wBAAwB,EAAE,CAAC;gBAC1D,OAAO,GAAG,uBAAuB,CAChC,MAAM,0BAA0B,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CACrD,KAAK,CAAC;oBACL,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;oBAC5E,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE;iBACvB,CAAC,CACF,EACD,IAAI,CACJ,CAAC;YACH,CAAC;YACD,OAAO,OAAO,CAAC;QAAA,CACf;QACD,mBAAmB,EAAE,GAAG,EAAE,CACzB,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC;aAC1C,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC3D,yFAAqD;YACrD,qFAA6C;YAC7C,oCAAc;aACb,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;aACvF,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;QAC9B,kBAAkB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5C,wBAAwB,EAAE,KAAK,IAAI,EAAE,CAAC;YACrC,OAAO,IAAI,EAAE,CAAC;gBACb,MAAM,MAAM,GAAG,CAAC,GAAG,uBAAuB,CAAC,CAAC;gBAC5C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO;gBAChC,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBACxD,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,aAAa,KAAK,CAAC,CAAC;oBAAE,OAAO;YAC3E,CAAC;QAAA,CACD;QACD,OAAO;KACP,CAAC;AAAA,CACF","sourcesContent":["import { randomUUID } from \"node:crypto\";\nimport { performance } from \"node:perf_hooks\";\nimport { t } from \"../i18n/index.ts\";\nimport type { AgentCompositionInstanceStateBinding, AgentCompositionLifecycleDispatcher } from \"./agent-composition.ts\";\nimport { createLifecycleRuntime } from \"./capability-runtime-events.ts\";\nimport {\n\tguardedComposition,\n\tguardedCredentials,\n\tguardedInteraction,\n\tguardedOutput,\n\tguardedSession,\n\tRuntimeAgentTask,\n\twithNormalizedToolResultExecute,\n} from \"./capability-runtime-guards.ts\";\nimport { createRuntimeInspector } from \"./capability-runtime-inspect.ts\";\nimport {\n\tassertManifest,\n\tassertPluginCapabilityDeclarations,\n\tassertPluginCapabilityId,\n\tassertPluginCapabilityVersion,\n\tcapabilityKey,\n\tcreatePluginConfig,\n\tisPluginConfigValue,\n\tresolvePluginCapabilityOrder,\n} from \"./capability-runtime-manifest.ts\";\nimport { OutputArtifactError, RuntimeOperation } from \"./capability-runtime-operation.ts\";\nimport { definitionSnapshot, detachedSnapshot } from \"./capability-runtime-snapshot.ts\";\nimport {\n\tassertRegisteredCapabilityActive as assertRegisteredCapabilityState,\n\tcancelOwnedOperations as cancelOwnedOperationsState,\n\tcreateCapabilityRuntimeState,\n\tcreateRevokedCapabilityError,\n\tinvokePluginCapability as invokePluginCapabilityState,\n\tinvokeRegisteredCapability as invokeRegisteredCapabilityState,\n\tinvokeRegisteredCapabilityWithSignal as invokeRegisteredCapabilityWithSignalState,\n\tisRevokedCapabilityError,\n\tobserveUnexpectedAsyncCleanup,\n\tpushPluginRejection,\n\tpushRuntimeLog,\n\tsetDiagnosticsSpan,\n\tsetOperationStatus,\n\ttrackOperation as trackOperationState,\n} from \"./capability-runtime-store.ts\";\nimport { invokeCapabilityTool } from \"./capability-runtime-tool.ts\";\nimport type {\n\tAPIState,\n\tCapabilityRuntime,\n\tCapabilityRuntimeOptions,\n\tQueuedLifecycleDelivery,\n\tRegisteredCapability,\n\tRegisteredPluginCapability,\n\tStateWatcher,\n\tStoredContributionPoint,\n\tStoredLifecycleDefinition,\n\tStoredLifecycleRegistration,\n\tStoredState,\n} from \"./capability-runtime-types.ts\";\nimport { OUTPUT_ARTIFACT_MAX_BUFFER_BYTES } from \"./capability-runtime-types.ts\";\nimport {\n\tasHandler,\n\tassertAgentTaskRequest,\n\tassertHost,\n\tcapabilityName,\n\tcontributionPointKey,\n\tlifecycleEventKey,\n\tlifecycleRegistrationKinds,\n\tstableTextCompare,\n\ttoolReadonlySafe,\n\tvalidateCommandDefinition,\n\tvalidateCommandResult,\n\tvalidateContributionPointDefinition,\n\tvalidateExecutionFactsV1,\n\tvalidateLifecycleEventDefinition,\n\tvalidateProviderHeaders,\n\tvalidateRetryScheduleV1,\n} from \"./capability-runtime-validation.ts\";\nimport { PLUGIN_REJECTED_EVENT_ID, PLUGIN_REJECTED_EVENT_VERSION } from \"./lifecycle-catalog.ts\";\nimport { createLifecycleDeliveryQueue, type LifecycleDeliveryQueue } from \"./lifecycle-delivery-queue.ts\";\nimport {\n\ttype AgentCompositionDefinitionBinding,\n\ttype AgentContextCommitRequestV1,\n\ttype AgentHostPrimitivesFactory,\n\ttype AgentLoopHookForV1,\n\ttype AgentLoopHookHandlerV1,\n\ttype AgentTaskCreateRequest,\n\ttype AgentTaskHandle,\n\ttype AgentTaskResultV1,\n\ttype AgentTaskSessionSummaryV1,\n\ttype CapabilityAPI,\n\ttype CapabilityDirectoryAPI,\n\ttype CapabilityHandle,\n\ttype CapabilityProviderHandler,\n\ttype ContributionAPI,\n\ttype ContributionChangeEvent,\n\ttype ContributionEntry,\n\ttype ContributionHandle,\n\ttype ContributionPoint,\n\ttype ContributionPointDefinition,\n\tcreateDisposableRegistration,\n\tcreateEventEnvelope,\n\ttype DiagnosticsAPI,\n\ttype DiagnosticsSpan,\n\ttype DiagnosticsSpanSnapshot,\n\ttype DisposableRegistration,\n\ttype EntryProjection,\n\ttype EventEnvelope,\n\ttype HostCapabilities,\n\ttype LifecycleAfterCommitHandler,\n\ttype LifecycleAPI,\n\ttype LifecycleDeliveryOptions,\n\ttype LifecycleEventDefinition,\n\ttype LifecycleEventReference,\n\ttype LifecycleExecuteHandler,\n\ttype LifecycleObserveHandler,\n\ttype LifecycleRegistrationKind,\n\ttype LifecycleTransformHandler,\n\ttype LoggerAPI,\n\ttype LoggerLevel,\n\ttype LoggerRecord,\n\ttype OperationHandle,\n\ttype OutputArtifactAPI,\n\ttype OutputArtifactChunk,\n\ttype OutputArtifactPutInput,\n\ttype OutputArtifactRef,\n\ttype PluginCapabilityDeclaration,\n\ttype PluginConfigValue,\n\ttype PluginManifest,\n\ttype PluginRejection,\n\ttype RuntimeInspectorAPI,\n\ttype StateAPI,\n\ttype StateChange,\n\ttype StateEntry,\n\ttype StateSetOptions,\n\ttype StreamFnWrapper,\n} from \"./public-api.ts\";\n\nexport { resolvePluginCapabilityOrder } from \"./capability-runtime-manifest.ts\";\nexport type { CapabilityRuntime } from \"./capability-runtime-types.ts\";\nexport { validateExecutionFactsV1, validateRetryScheduleV1 } from \"./capability-runtime-validation.ts\";\n\n/**\n * Parameterized storage view for one state namespace. The owner namespace\n * (api.state / host.state) and each composition instance namespace share one\n * StateAPI code path through this view; only container addressing and identity\n * labels differ.\n */\ninterface StateNamespaceView {\n\t/** Identity used in revision-conflict errors. */\n\treadonly conflictScope: string;\n\t/** Owner identity attached to change records, watcher records, and log fields. */\n\treadonly pluginId: string;\n\t/** Identity used in generated watcher id fallbacks. */\n\treadonly watchScope: string;\n\treadStored(key: string): StoredState | undefined;\n\tlistEntries(): readonly (readonly [string, StoredState])[];\n\tensureNamespace(): Map<string, StoredState>;\n\tensureRevisions(): Map<string, number>;\n\tensureWatchers(): Map<string, StateWatcher>;\n\tremoveWatcher(watchers: Map<string, StateWatcher>, id: string): void;\n\tnotify(change: StateChange): void;\n}\n\n/**\n * 慢事件订阅者观测阈值(毫秒):publish 对单个订阅者的投递耗时超过该值时记一条\n * warn 日志(事件类型 + 订阅 id + 耗时,pluginId 归属订阅者)。纯观测面,不改投递\n * 行为:仍顺序 await、等待完成、不超时打断、不丢弃。每个订阅者在单个 publish 周期\n * 内至多被投递一次,因此天然至多记一条。计时用 performance.now 而非可注入 clock:\n * clock 缺省恒 0(生产不注入),不能作为耗时来源。\n */\nconst SLOW_EVENT_SUBSCRIBER_WARN_MS = 100;\n\n/**\n * streamFnWrapper 注册项(D-082 批 3b 契约 A):在基础注册结构上携带链序元数据。\n * priority 低值更外层(缺省 0);sequence 是运行时内单调递增的注册序,同级\n * wrapper 按注册序稳定排序。唯一写入方是 registerStreamFnWrapper 专用注册路径\n * (store 字段保持基础注册结构类型,store 不感知链序),读取方是\n * getStreamFnWrappers 与 owner 撤销清理。\n */\ninterface StoredStreamFnWrapper extends RegisteredCapability<StreamFnWrapper> {\n\tpriority: number;\n\tsequence: number;\n}\n\n/**\n * 超限驻留视图的尾部窗口字节数:超限后驻留视图保留完整流真实末尾这么多字节。\n */\nconst OUTPUT_ARTIFACT_TAIL_BYTES = 64 * 1024;\n\nconst truncationMarkerEncoder = new TextEncoder();\n\n/**\n * 超限标记文本(ASCII):N 是驻留视图未表示的原始流字节数(十进制)。\n */\nconst encodeTruncationMarker = (omittedBytes: number): Uint8Array =>\n\ttruncationMarkerEncoder.encode(`\\n[agent-forge artifact truncated: ${omittedBytes} bytes omitted]\\n`);\n\n/** output.put 的一次驻留结果;bytes 封顶于 OUTPUT_ARTIFACT_MAX_BUFFER_BYTES。 */\ninterface ResidentOutputArtifact {\n\tbytes: Uint8Array;\n\t/** 原始总字节数(含被丢弃部分),恒写入 ref.sizeBytes。 */\n\ttotalBytes: number;\n\ttruncated: boolean;\n}\n\nconst concatChunks = (chunks: readonly Uint8Array[], totalBytes: number): Uint8Array => {\n\tconst bytes = new Uint8Array(totalBytes);\n\tlet offset = 0;\n\tfor (const chunk of chunks) {\n\t\tbytes.set(chunk, offset);\n\t\toffset += chunk.byteLength;\n\t}\n\treturn bytes;\n};\n\n/** 取 chunks 拼接后的前 length 字节(跨 chunk 切片),作为截断视图的 head。 */\nconst takeLeadingBytes = (chunks: readonly Uint8Array[], length: number): Uint8Array[] => {\n\tconst taken: Uint8Array[] = [];\n\tlet remaining = length;\n\tfor (const chunk of chunks) {\n\t\tif (remaining <= 0) break;\n\t\tif (chunk.byteLength <= remaining) {\n\t\t\ttaken.push(chunk);\n\t\t\tremaining -= chunk.byteLength;\n\t\t} else {\n\t\t\ttaken.push(chunk.subarray(0, remaining));\n\t\t\tremaining = 0;\n\t\t}\n\t}\n\treturn taken;\n};\n\n/**\n * 组装 head + 截断标记 + tail 的驻留视图,总长恰为 OUTPUT_ARTIFACT_MAX_BUFFER_BYTES。\n * 标记展示的省略字节数依赖标记自身的字节长度(head = 上限 − tail − marker),\n * 不动点按字节数收敛(标记长度只在十进制进位处变化),两三轮内稳定。\n */\nconst buildTruncatedView = (\n\theadChunks: readonly Uint8Array[],\n\ttailChunks: readonly Uint8Array[],\n\ttotalBytes: number,\n): Uint8Array => {\n\tconst tailBytes = Math.min(OUTPUT_ARTIFACT_TAIL_BYTES, totalBytes);\n\tlet omitted = totalBytes - OUTPUT_ARTIFACT_MAX_BUFFER_BYTES;\n\tlet marker = encodeTruncationMarker(omitted);\n\tlet headLength = OUTPUT_ARTIFACT_MAX_BUFFER_BYTES - tailBytes - marker.byteLength;\n\twhile (totalBytes - headLength - tailBytes !== omitted) {\n\t\tomitted = totalBytes - headLength - tailBytes;\n\t\tmarker = encodeTruncationMarker(omitted);\n\t\theadLength = OUTPUT_ARTIFACT_MAX_BUFFER_BYTES - tailBytes - marker.byteLength;\n\t}\n\treturn concatChunks(\n\t\t[...takeLeadingBytes(headChunks, headLength), marker, ...tailChunks],\n\t\tOUTPUT_ARTIFACT_MAX_BUFFER_BYTES,\n\t);\n};\n\n/**\n * output.put 驻留缓冲(M4 双层限额的缓冲半层):逐字节缓冲直至\n * OUTPUT_ARTIFACT_MAX_BUFFER_BYTES,超限后停止缓冲但仍把 AsyncIterable 完整\n * 消费完——消费端提前返回会把背压和写管道破裂转嫁给上游,语义变化,禁止;\n * 只丢弃数据。尾部窗口始终滑动维持在完整流末尾 OUTPUT_ARTIFACT_TAIL_BYTES。\n * 超限驻留视图 = head + 截断标记 + tail(总长恰为上限);未超限驻留与提交\n * 数据逐字节一致。\n */\nconst bufferOutputArtifactData = async (\n\tdata: Uint8Array | AsyncIterable<Uint8Array>,\n\tthrowIfAborted: () => void,\n): Promise<ResidentOutputArtifact> => {\n\tif (data instanceof Uint8Array) {\n\t\tif (data.byteLength <= OUTPUT_ARTIFACT_MAX_BUFFER_BYTES) {\n\t\t\treturn { bytes: new Uint8Array(data), totalBytes: data.byteLength, truncated: false };\n\t\t}\n\t\tconst tailStart = data.byteLength - OUTPUT_ARTIFACT_TAIL_BYTES;\n\t\treturn {\n\t\t\tbytes: buildTruncatedView([data], [data.subarray(tailStart)], data.byteLength),\n\t\t\ttotalBytes: data.byteLength,\n\t\t\ttruncated: true,\n\t\t};\n\t}\n\tconst headChunks: Uint8Array[] = [];\n\tconst tailChunks: Uint8Array[] = [];\n\tlet tailBytes = 0;\n\tlet headBytes = 0;\n\tlet totalBytes = 0;\n\tlet truncated = false;\n\tconst appendTail = (chunk: Uint8Array): void => {\n\t\ttailChunks.push(chunk);\n\t\ttailBytes += chunk.byteLength;\n\t\twhile (tailBytes > OUTPUT_ARTIFACT_TAIL_BYTES) {\n\t\t\tconst oldest = tailChunks[0];\n\t\t\tconst overflow = tailBytes - OUTPUT_ARTIFACT_TAIL_BYTES;\n\t\t\tif (oldest.byteLength <= overflow) {\n\t\t\t\ttailChunks.shift();\n\t\t\t\ttailBytes -= oldest.byteLength;\n\t\t\t} else {\n\t\t\t\ttailChunks[0] = oldest.subarray(overflow);\n\t\t\t\ttailBytes -= overflow;\n\t\t\t}\n\t\t}\n\t};\n\tfor await (const chunk of data) {\n\t\tthrowIfAborted();\n\t\tif (!(chunk instanceof Uint8Array)) {\n\t\t\tthrow new OutputArtifactError(\"invalid_ref\", \"Artifact stream yielded a non-Uint8Array chunk\");\n\t\t}\n\t\tconst copy = new Uint8Array(chunk);\n\t\ttotalBytes += copy.byteLength;\n\t\tappendTail(copy);\n\t\tif (truncated) continue;\n\t\theadChunks.push(copy);\n\t\theadBytes += copy.byteLength;\n\t\tif (headBytes > OUTPUT_ARTIFACT_MAX_BUFFER_BYTES) truncated = true;\n\t}\n\tthrowIfAborted();\n\tif (!truncated) {\n\t\treturn { bytes: concatChunks(headChunks, totalBytes), totalBytes, truncated };\n\t}\n\treturn { bytes: buildTruncatedView(headChunks, tailChunks, totalBytes), totalBytes, truncated: true };\n};\n\nexport function createCapabilityRuntime(\n\tinputHost: HostCapabilities,\n\toptions: CapabilityRuntimeOptions = {},\n): CapabilityRuntime {\n\t// D-075 S4 third batch: the communication/turnContext host services carry\n\t// host-owned callbacks. They must ride by reference (like the trace\n\t// service in CapabilityRuntimeOptions) instead of through the structured\n\t// clone below, which cannot clone functions. Strip them before the\n\t// snapshot and re-attach to the exposed host afterwards. S4 fourth batch:\n\t// memoryStorage joins — its store/ledger factories and vector components\n\t// are host-owned runtime services with the same non-cloneable shape.\n\t// D-082 批 3b: modelCatalog joins — its three members are host closures\n\t// (catalog/credentials read face for the provider-failover load preflight).\n\t// Validate BEFORE destructuring: destructuring a null/non-object host would\n\t// surface a TypeError instead of the contract's validation error.\n\tassertHost(inputHost);\n\tconst { communication, turnContext, memoryStorage, modelCatalog, ...cloneableHost } = inputHost;\n\tconst host = detachedSnapshot(cloneableHost);\n\tassertHost(host);\n\tconst hostWithServices =\n\t\tcommunication === undefined &&\n\t\tturnContext === undefined &&\n\t\tmemoryStorage === undefined &&\n\t\tmodelCatalog === undefined\n\t\t\t? host\n\t\t\t: Object.freeze({\n\t\t\t\t\t...host,\n\t\t\t\t\t...(communication === undefined ? {} : { communication }),\n\t\t\t\t\t...(turnContext === undefined ? {} : { turnContext }),\n\t\t\t\t\t...(memoryStorage === undefined ? {} : { memoryStorage }),\n\t\t\t\t\t...(modelCatalog === undefined ? {} : { modelCatalog }),\n\t\t\t\t});\n\tconst hasSession = host.features.includes(\"session\");\n\tconst hasSessionExport = host.features.includes(\"session-export\");\n\tconst hasSessionRevision = host.features.includes(\"session-revision-v1\");\n\tif (hasSession && !options.session) {\n\t\tthrow new Error(t(\"Host declares session capability without a SessionAPI\"));\n\t}\n\tif (!hasSession && options.session) {\n\t\tthrow new Error(t(\"Host provides a SessionAPI without the session capability\"));\n\t}\n\tif (hasSessionExport && !hasSession) {\n\t\tthrow new Error(t(\"Host declares session-export capability without the session capability\"));\n\t}\n\tif (hasSessionExport && !options.session?.exportArtifact) {\n\t\tthrow new Error(t(\"Host declares session-export capability without SessionAPI.exportArtifact\"));\n\t}\n\tif (hasSessionRevision && !hasSession) {\n\t\tthrow new Error(t(\"Host declares session-revision-v1 capability without the session capability\"));\n\t}\n\tif (hasSessionRevision && !options.session?.getRevision) {\n\t\tthrow new Error(t(\"Host declares session-revision-v1 capability without SessionAPI.getRevision\"));\n\t}\n\tif (host.features.includes(\"agents\") && !options.session) {\n\t\tthrow new Error(t(\"Host declares agents capability without a parent SessionAPI\"));\n\t}\n\tif (\n\t\thost.features.includes(\"agents\") &&\n\t\t!options.agents &&\n\t\toptions.agentSessionReader === undefined &&\n\t\toptions.agentSessionLister === undefined\n\t) {\n\t\tthrow new Error(t(\"Host declares agents capability without an AgentTaskAdapter or a session reader/lister\"));\n\t}\n\tif (options.agents && !host.features.includes(\"agents\")) {\n\t\tthrow new Error(t(\"Host provides an AgentTaskAdapter without the agents capability\"));\n\t}\n\tif (options.agentResults && !host.features.includes(\"agent-result-replay-v1\")) {\n\t\tthrow new Error(t(\"Host provides an agentResults option without the agent-result-replay-v1 capability\"));\n\t}\n\tif (host.features.includes(\"agent-result-replay-v1\") && !options.agentResults) {\n\t\tthrow new Error(t(\"Host declares agent-result-replay-v1 capability without an agentResults option\"));\n\t}\n\tif (host.features.includes(\"credentials\") && !options.credentials) {\n\t\tthrow new Error(t(\"Host declares credentials capability without a CredentialAPI\"));\n\t}\n\tif (options.credentials && !host.features.includes(\"credentials\")) {\n\t\tthrow new Error(t(\"Host provides a CredentialAPI without the credentials capability\"));\n\t}\n\tif (host.features.includes(\"interaction\") && !options.interaction) {\n\t\tthrow new Error(t(\"Host declares interaction capability without an InteractionHostV1\"));\n\t}\n\tif (options.interaction && !host.features.includes(\"interaction\")) {\n\t\tthrow new Error(t(\"Host provides an InteractionHostV1 without the interaction capability\"));\n\t}\n\tif (host.features.includes(\"agent-result-replay-v1\") && !host.features.includes(\"agents\")) {\n\t\tthrow new Error(t(\"Host declares the agent-result-replay-v1 feature without the agents capability\"));\n\t}\n\tconst clock = options.clock ?? (() => 0);\n\t// Per-runtime unique segment for generated agent task ids: without an\n\t// idFactory the id is otherwise a deterministic per-instance sequence, so a\n\t// rebuilt runtime reusing the same owner and sequence would replay over the\n\t// previous generation's durable records under the same key.\n\tconst runtimeInstanceSegment = randomUUID().slice(0, 8);\n\tconst onOutputArtifactCommit = options.onOutputArtifactCommit;\n\tconst toolExecutionContext = options.toolExecutionContext;\n\tconst state = createCapabilityRuntimeState();\n\tconst {\n\t\ttools,\n\t\tskills,\n\t\tretryPolicies,\n\t\tcompactionPolicies,\n\t\toverflowPolicies,\n\t\tbranchSummaryPolicies,\n\t\trunLoopStrategies,\n\t\tloopHooks,\n\t\tcommands,\n\t\toperations,\n\t\trpcMethods,\n\t\tcontextStrategies,\n\t\tpluginCapabilities,\n\t\tproviderHeaderTransforms,\n\t\tstreamFnWrappers,\n\t\tcontributionPoints,\n\t\tlifecycleDefinitions,\n\t\tlifecycleRegistrations,\n\t\tsubscribers,\n\t\tstatuses,\n\t\tpluginRegistrations,\n\t\tapiStates,\n\t\tactiveOwnerTokens,\n\t\toutputArtifacts,\n\t\tstateByOwner,\n\t\tstateRevisionsByOwner,\n\t\tstateWatchers,\n\t\tstateByInstance,\n\t\tstateRevisionsByInstance,\n\t\tstateWatchersByInstance,\n\t\tspans,\n\t\tlifecycleDeliveryQueues,\n\t} = state;\n\tconst runtimeState = state;\n\t// 契约 A(D-082 批 3b):store 字段保持基础注册结构类型(store 不感知链序),\n\t// 本运行时经此类型视图写入/读取链序元数据;唯一写入方是 registerStreamFnWrapper\n\t// 专用注册路径,读取方是 getStreamFnWrappers 与 cleanupRegisteredCapabilities。\n\tconst streamFnWrapperRegistry = streamFnWrappers as Map<string, StoredStreamFnWrapper>;\n\tlet subscriptionSequence = 0;\n\tlet operationSequence = 0;\n\tlet agentTaskSequence = 0;\n\t// 活任务集合(设计 子代理运行时 §4.2 中断分级,2026-10-02):runtime 级共享,\n\t// 每个插件 API 的 createAgentTask 入队、任务 dispose 出队;宿主经\n\t// runtime.getActiveAgentTaskCount() 读有界投影。\n\tconst agentTasks = new Set<RuntimeAgentTask>();\n\tlet artifactSequence = 0;\n\tlet contributionSubscriptionSequence = 0;\n\tlet lifecycleRegistrationSequence = 0;\n\tlet stateWatcherSequence = 0;\n\tlet spanSequence = 0;\n\tlet traceSequence = 0;\n\tlet loopHookSequence = 0;\n\tlet streamFnWrapperSequence = 0;\n\n\tconst createRuntimeId = (kind: string, sequence: number, fallback: string): string => {\n\t\tif (!options.idFactory) return fallback;\n\t\tconst id = options.idFactory(kind, sequence);\n\t\tif (typeof id !== \"string\" || !id.trim()) {\n\t\t\tthrow new Error(t(\"Runtime idFactory must return a non-empty string for {kind}\", { kind }));\n\t\t}\n\t\treturn id;\n\t};\n\tconst {\n\t\tdispatchLifecycle,\n\t\treportCapabilityCall,\n\t\treportOperationCancel,\n\t\treportOperationEnd,\n\t\treportOperationStart,\n\t\treportOperationStep,\n\t} = createLifecycleRuntime({\n\t\tstate,\n\t\tclock,\n\t\tcreateRuntimeId,\n\t\tonLifecycleDispatch: options.onLifecycleDispatch,\n\t});\n\tconst inspect = createRuntimeInspector({ state, host });\n\tconst assertRegisteredCapabilityActive = <T>(registered: RegisteredCapability<T>): void =>\n\t\tassertRegisteredCapabilityState(state, registered);\n\tconst invokeRegisteredCapability = async <T, TResult>(\n\t\tregistered: RegisteredCapability<T>,\n\t\tinvoke: (value: T) => TResult | PromiseLike<TResult>,\n\t): Promise<TResult> => invokeRegisteredCapabilityState(state, registered, invoke);\n\tconst invokeRegisteredCapabilityWithSignal = async <T, TResult>(\n\t\tregistered: RegisteredCapability<T>,\n\t\tsignal: AbortSignal | undefined,\n\t\tinvoke: (value: T) => TResult | PromiseLike<TResult>,\n\t): Promise<TResult> => invokeRegisteredCapabilityWithSignalState(state, registered, signal, invoke);\n\tconst invokePluginCapability = async <TResult>(\n\t\tregistered: RegisteredPluginCapability,\n\t\tinput: unknown,\n\t\tsignal: AbortSignal,\n\t): Promise<TResult> => invokePluginCapabilityState(state, registered, input, signal);\n\tconst trackOperation = <TResult>(\n\t\townerTokens: readonly symbol[],\n\t\thandle: OperationHandle<TResult>,\n\t): OperationHandle<TResult> => trackOperationState(state, ownerTokens, handle);\n\tconst cancelOwnedOperations = (ownerToken: symbol, owner: string): void =>\n\t\tcancelOwnedOperationsState(state, ownerToken, owner);\n\n\tconst cleanupArtifacts = (ownerToken: symbol): void => {\n\t\tfor (const [artifactId, artifact] of outputArtifacts) {\n\t\t\tif (artifact.ownerToken === ownerToken) outputArtifacts.delete(artifactId);\n\t\t}\n\t};\n\n\tconst cleanupPluginCapabilities = (ownerToken: symbol): void => {\n\t\tfor (const [key, capability] of pluginCapabilities) {\n\t\t\tif (capability.ownerToken === ownerToken) pluginCapabilities.delete(key);\n\t\t}\n\t};\n\n\tconst cleanupRegisteredCapabilities = (ownerToken: symbol): void => {\n\t\tfor (const registry of [\n\t\t\ttools,\n\t\t\tskills,\n\t\t\tretryPolicies,\n\t\t\tcompactionPolicies,\n\t\t\toverflowPolicies,\n\t\t\tbranchSummaryPolicies,\n\t\t\trunLoopStrategies,\n\t\t\tcommands,\n\t\t\toperations,\n\t\t\trpcMethods,\n\t\t\tcontextStrategies,\n\t\t\tproviderHeaderTransforms,\n\t\t\tstreamFnWrapperRegistry,\n\t\t] as const) {\n\t\t\tfor (const [name, entry] of registry) {\n\t\t\t\tif (entry.ownerToken === ownerToken) {\n\t\t\t\t\tregistry.delete(name);\n\t\t\t\t\tif (registry === tools) notifyToolRegistryChange(entry.owner, name);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor (const [position, entries] of loopHooks) {\n\t\t\tconst remaining = entries.filter((entry) => entry.ownerToken !== ownerToken);\n\t\t\tif (remaining.length === 0) loopHooks.delete(position);\n\t\t\telse if (remaining.length !== entries.length) loopHooks.set(position, remaining);\n\t\t}\n\t\tfor (const [type, handlers] of subscribers) {\n\t\t\tfor (const [id, handler] of handlers) {\n\t\t\t\tif (handler.ownerToken === ownerToken) handlers.delete(id);\n\t\t\t}\n\t\t\tif (handlers.size === 0) subscribers.delete(type);\n\t\t}\n\t\t// 替换链清扫:链中只应存活 owner 的注册。revokeState 先 activeOwnerTokens.delete\n\t\t// 再调用本清理,故此处能正确判定本 owner 已死;死条目在 restoreReplacedTool 弹栈\n\t\t// 时本就会被跳过(同样按 activeOwnerTokens 判定),提前删除不改变任何可观测行为,\n\t\t// 只消除陈旧状态——替换方长期不 dispose 且被替换 owner 已撤销时,链项会一直滞留。\n\t\tfor (const [name, chain] of toolReplacementChains) {\n\t\t\tconst remaining = chain.filter((entry) => activeOwnerTokens.has(entry.ownerToken));\n\t\t\tif (remaining.length === 0) toolReplacementChains.delete(name);\n\t\t\telse if (remaining.length !== chain.length) toolReplacementChains.set(name, remaining);\n\t\t}\n\t};\n\tconst revokeState = (api: CapabilityAPI, state: APIState): void => {\n\t\tstate.active = false;\n\t\tactiveOwnerTokens.delete(state.ownerToken);\n\t\tfor (const instance of state.compositionInstances ?? []) void instance.dispose();\n\t\tstate.compositionInstances?.clear();\n\t\tconst definitionBinding = options.composition as Partial<AgentCompositionDefinitionBinding> | undefined;\n\t\tdefinitionBinding?.disposeDefinitions?.(Array.from(state.compositionDefinitions ?? []));\n\t\tstate.compositionDefinitions?.clear();\n\t\tcancelOwnedOperations(state.ownerToken, state.owner);\n\t\tcleanupArtifacts(state.ownerToken);\n\t\tcleanupStateWatchers(state.ownerToken);\n\t\tcleanupDiagnostics(state.owner);\n\t\tcleanupPluginCapabilities(state.ownerToken);\n\t\tcleanupContributionPoints(state.ownerToken);\n\t\tcleanupLifecycle(state.ownerToken);\n\t\tcleanupRegisteredCapabilities(state.ownerToken);\n\t\tapiStates.delete(api);\n\t};\n\n\tconst cleanupContributionPoints = (ownerToken: symbol): void => {\n\t\tfor (const [key, point] of contributionPoints) {\n\t\t\tif (point.ownerToken === ownerToken) contributionPoints.delete(key);\n\t\t\tfor (const [id, entry] of point.entries) {\n\t\t\t\tif (entry.ownerToken === ownerToken) point.entries.delete(id);\n\t\t\t}\n\t\t\tfor (const [id, subscriber] of point.subscribers) {\n\t\t\t\tif (subscriber.ownerToken === ownerToken) point.subscribers.delete(id);\n\t\t\t}\n\t\t}\n\t};\n\n\tconst closeLifecycleRegistrationQueue = (registration: StoredLifecycleRegistration): void => {\n\t\tconst queue = registration.queue;\n\t\tif (!queue) return;\n\t\tqueue.close();\n\t\tvoid queue\n\t\t\t.drain()\n\t\t\t.then(() => lifecycleDeliveryQueues.delete(queue as LifecycleDeliveryQueue<QueuedLifecycleDelivery<unknown>>));\n\t};\n\tconst cleanupLifecycle = (ownerToken: symbol): void => {\n\t\tfor (const [key, stored] of lifecycleDefinitions) {\n\t\t\tif (stored.ownerToken === ownerToken) lifecycleDefinitions.delete(key);\n\t\t}\n\t\tfor (const [key, registrations] of lifecycleRegistrations) {\n\t\t\tfor (const [id, registration] of registrations) {\n\t\t\t\tif (registration.ownerToken === ownerToken) {\n\t\t\t\t\tcloseLifecycleRegistrationQueue(registration);\n\t\t\t\t\tregistrations.delete(id);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (registrations.size === 0) lifecycleRegistrations.delete(key);\n\t\t}\n\t};\n\n\tconst cleanupStateWatchers = (ownerToken: symbol): void => {\n\t\tfor (const [owner, watchers] of stateWatchers) {\n\t\t\tfor (const [id, watcher] of watchers) if (watcher.ownerToken === ownerToken) watchers.delete(id);\n\t\t\tif (watchers.size === 0) stateWatchers.delete(owner);\n\t\t}\n\t};\n\tconst cleanupDiagnostics = (owner: string): void => {\n\t\tfor (const span of spans.values()) {\n\t\t\tif (span.pluginId === owner && span.status === \"running\") {\n\t\t\t\tspan.status = \"cancelled\";\n\t\t\t\tspan.endedAt = clock();\n\t\t\t}\n\t\t}\n\t};\n\n\tconst assertStateKey = (key: string): void => {\n\t\tif (typeof key !== \"string\" || !key.trim()) throw new Error(t(\"State key must be a non-empty string\"));\n\t};\n\n\tconst assertStateOptions = (options: StateSetOptions | undefined): void => {\n\t\tif (\n\t\t\toptions?.expectedRevision !== undefined &&\n\t\t\t(!Number.isSafeInteger(options.expectedRevision) || options.expectedRevision < 0)\n\t\t) {\n\t\t\tthrow new Error(t(\"State expectedRevision must be a non-negative safe integer\"));\n\t\t}\n\t};\n\n\tconst stateSnapshot = (key: string, state: StoredState): StateEntry =>\n\t\tdetachedSnapshot({ key, revision: state.revision, value: state.value });\n\n\tconst dispatchStateChange = (\n\t\twatchers: Map<string, StateWatcher> | undefined,\n\t\towner: string,\n\t\tchange: StateChange,\n\t): void => {\n\t\tif (!watchers) return;\n\t\tfor (const watcher of watchers.values()) {\n\t\t\tif (watcher.prefix !== undefined && !change.key.startsWith(watcher.prefix)) continue;\n\t\t\tif (!activeOwnerTokens.has(watcher.ownerToken)) continue;\n\t\t\ttry {\n\t\t\t\twatcher.handler(detachedSnapshot(change));\n\t\t\t} catch (error) {\n\t\t\t\trecordLog(\"error\", owner, \"State watcher failed\", { key: change.key }, error);\n\t\t\t}\n\t\t}\n\t};\n\n\tconst notifyStateWatchers = (owner: string, change: StateChange): void =>\n\t\tdispatchStateChange(stateWatchers.get(owner), owner, change);\n\n\tconst recordLog = (\n\t\tlevel: LoggerLevel,\n\t\towner: string,\n\t\tmessage: string,\n\t\tfields?: PluginConfigValue,\n\t\tcause?: unknown,\n\t): void => {\n\t\tif (typeof message !== \"string\" || !message.trim()) throw new Error(t(\"Logger message must be non-empty\"));\n\t\tif (fields !== undefined && !isPluginConfigValue(fields))\n\t\t\tthrow new Error(t(\"Logger fields must be serializable\"));\n\t\tconst record: LoggerRecord = {\n\t\t\tversion: 1,\n\t\t\tlevel,\n\t\t\tmessage,\n\t\t\tpluginId: owner,\n\t\t\ttimestamp: clock(),\n\t\t\t...(options.session === undefined ? {} : { sessionId: options.session.getSessionId() }),\n\t\t\t...(fields === undefined ? {} : { fields: detachedSnapshot(fields) }),\n\t\t\t...(cause === undefined ? {} : { cause: detachedSnapshot(cause) }),\n\t\t};\n\t\tpushRuntimeLog(state, record);\n\t\t// 插件日志宿主转发(设计 §7.2):入环后同步转发一次。回调抛错直接吞掉——\n\t\t// 与 notifyToolRegistryChange 同守\"观察者故障不打断调用方\"的边界,但错误\n\t\t// 通道不同:不引入无读者的计数,也绝不经 recordLog 再记录(回调契约禁止\n\t\t// 内部调用 LoggerAPI,防自递归)。\n\t\tif (options.onLogRecord) {\n\t\t\ttry {\n\t\t\t\toptions.onLogRecord(record);\n\t\t\t} catch {\n\t\t\t\t// Swallowed by contract: a failing host sink must never break the\n\t\t\t\t// logger contract nor recurse back through recordLog.\n\t\t\t}\n\t\t}\n\t};\n\n\t/**\n\t * 工具表变更钩子:宿主注入 onToolRegistryChange 后,工具表每次变更(注册、\n\t * 同名替换、卸载、替换链恢复)同步调用一次。回调失败只记运行时日志,不回传\n\t * 注册/卸载路径——宿主观察者故障不得打断注册本身(与 onOutputArtifactCommit\n\t * 的观察者容错通道一致)。缺省不传 = 行为不变。\n\t */\n\tconst notifyToolRegistryChange = (owner: string, name: string): void => {\n\t\tif (!options.onToolRegistryChange) return;\n\t\ttry {\n\t\t\toptions.onToolRegistryChange();\n\t\t} catch (error) {\n\t\t\trecordLog(\"error\", owner, \"Tool registry change observer failed\", { tool: name }, error);\n\t\t}\n\t};\n\n\tconst ownerStateViewFor = (owner: string): StateNamespaceView => ({\n\t\tconflictScope: owner,\n\t\tpluginId: owner,\n\t\twatchScope: owner,\n\t\treadStored: (key) => stateByOwner.get(owner)?.get(key),\n\t\tlistEntries: () => Array.from(stateByOwner.get(owner)?.entries() ?? []),\n\t\tensureNamespace: () => {\n\t\t\tconst namespace = stateByOwner.get(owner) ?? new Map<string, StoredState>();\n\t\t\tstateByOwner.set(owner, namespace);\n\t\t\treturn namespace;\n\t\t},\n\t\tensureRevisions: () => {\n\t\t\tconst revisions = stateRevisionsByOwner.get(owner) ?? new Map<string, number>();\n\t\t\tstateRevisionsByOwner.set(owner, revisions);\n\t\t\treturn revisions;\n\t\t},\n\t\tensureWatchers: () => {\n\t\t\tconst watchers = stateWatchers.get(owner) ?? new Map<string, StateWatcher>();\n\t\t\tstateWatchers.set(owner, watchers);\n\t\t\treturn watchers;\n\t\t},\n\t\tremoveWatcher: (watchers, id) => {\n\t\t\twatchers.delete(id);\n\t\t\tif (watchers.size === 0) stateWatchers.delete(owner);\n\t\t},\n\t\tnotify: (change) => notifyStateWatchers(owner, change),\n\t});\n\n\tconst instanceStateViewFor = (owner: string, instanceId: string): StateNamespaceView => ({\n\t\tconflictScope: `${owner}/${instanceId}`,\n\t\tpluginId: owner,\n\t\twatchScope: `${owner}/${instanceId}`,\n\t\treadStored: (key) => stateByInstance.get(owner)?.get(instanceId)?.get(key),\n\t\tlistEntries: () => Array.from(stateByInstance.get(owner)?.get(instanceId)?.entries() ?? []),\n\t\tensureNamespace: () => {\n\t\t\tconst ownerNamespaces = stateByInstance.get(owner) ?? new Map<string, Map<string, StoredState>>();\n\t\t\tstateByInstance.set(owner, ownerNamespaces);\n\t\t\tconst namespace = ownerNamespaces.get(instanceId) ?? new Map<string, StoredState>();\n\t\t\townerNamespaces.set(instanceId, namespace);\n\t\t\treturn namespace;\n\t\t},\n\t\tensureRevisions: () => {\n\t\t\tconst ownerRevisions = stateRevisionsByInstance.get(owner) ?? new Map<string, Map<string, number>>();\n\t\t\tstateRevisionsByInstance.set(owner, ownerRevisions);\n\t\t\tconst revisions = ownerRevisions.get(instanceId) ?? new Map<string, number>();\n\t\t\townerRevisions.set(instanceId, revisions);\n\t\t\treturn revisions;\n\t\t},\n\t\tensureWatchers: () => {\n\t\t\tconst ownerWatchers = stateWatchersByInstance.get(owner) ?? new Map<string, Map<string, StateWatcher>>();\n\t\t\tstateWatchersByInstance.set(owner, ownerWatchers);\n\t\t\tconst watchers = ownerWatchers.get(instanceId) ?? new Map<string, StateWatcher>();\n\t\t\townerWatchers.set(instanceId, watchers);\n\t\t\treturn watchers;\n\t\t},\n\t\tremoveWatcher: (watchers, id) => {\n\t\t\twatchers.delete(id);\n\t\t\tif (watchers.size === 0) stateWatchersByInstance.get(owner)?.delete(instanceId);\n\t\t},\n\t\tnotify: (change) => dispatchStateChange(stateWatchersByInstance.get(owner)?.get(instanceId), owner, change),\n\t});\n\n\t/**\n\t * One StateAPI implementation shared by the owner namespace and every\n\t * composition instance namespace: the same key validation, CAS, detached\n\t * snapshots, watcher notification, and registration lifecycle.\n\t */\n\tconst createStateApiFor = (\n\t\tview: StateNamespaceView,\n\t\townerToken: symbol,\n\t\tassertUsable: () => void,\n\t\town: (registration: DisposableRegistration) => DisposableRegistration,\n\t): StateAPI => ({\n\t\tget: (key) => {\n\t\t\tassertUsable();\n\t\t\tassertStateKey(key);\n\t\t\tconst value = view.readStored(key);\n\t\t\treturn value ? stateSnapshot(key, value) : undefined;\n\t\t},\n\t\tset: (key, value, options) => {\n\t\t\tassertUsable();\n\t\t\tassertStateKey(key);\n\t\t\tassertStateOptions(options);\n\t\t\tif (!isPluginConfigValue(value)) throw new Error(t(\"State value must be serializable\"));\n\t\t\tconst namespace = view.ensureNamespace();\n\t\t\tconst revisions = view.ensureRevisions();\n\t\t\tconst currentRevision = revisions.get(key) ?? 0;\n\t\t\tif (options?.expectedRevision !== undefined && options.expectedRevision !== currentRevision)\n\t\t\t\tthrow new Error(\n\t\t\t\t\tt(\"State revision conflict: {conflictScope}/{key}\", { conflictScope: view.conflictScope, key }),\n\t\t\t\t);\n\t\t\tconst revision = currentRevision + 1;\n\t\t\trevisions.set(key, revision);\n\t\t\tnamespace.set(key, { revision, value: detachedSnapshot(value) });\n\t\t\tview.notify({\n\t\t\t\tpluginId: view.pluginId,\n\t\t\t\tkey,\n\t\t\t\trevision,\n\t\t\t\tvalue: detachedSnapshot(value),\n\t\t\t\t...(options?.operationId === undefined ? {} : { operationId: options.operationId }),\n\t\t\t\t...(options?.correlationId === undefined ? {} : { correlationId: options.correlationId }),\n\t\t\t});\n\t\t\treturn revision;\n\t\t},\n\t\tdelete: (key, options) => {\n\t\t\tassertUsable();\n\t\t\tassertStateKey(key);\n\t\t\tassertStateOptions(options);\n\t\t\tconst namespace = view.ensureNamespace();\n\t\t\tconst revisions = view.ensureRevisions();\n\t\t\tconst currentRevision = revisions.get(key) ?? 0;\n\t\t\tif (options?.expectedRevision !== undefined && options.expectedRevision !== currentRevision)\n\t\t\t\tthrow new Error(\n\t\t\t\t\tt(\"State revision conflict: {conflictScope}/{key}\", { conflictScope: view.conflictScope, key }),\n\t\t\t\t);\n\t\t\tconst revision = currentRevision + 1;\n\t\t\trevisions.set(key, revision);\n\t\t\tnamespace.delete(key);\n\t\t\tview.notify({\n\t\t\t\tpluginId: view.pluginId,\n\t\t\t\tkey,\n\t\t\t\trevision,\n\t\t\t\t...(options?.operationId === undefined ? {} : { operationId: options.operationId }),\n\t\t\t\t...(options?.correlationId === undefined ? {} : { correlationId: options.correlationId }),\n\t\t\t});\n\t\t\treturn revision;\n\t\t},\n\t\tlist: (prefix) => {\n\t\t\tassertUsable();\n\t\t\tif (prefix !== undefined && typeof prefix !== \"string\") throw new Error(t(\"State prefix must be a string\"));\n\t\t\treturn view\n\t\t\t\t.listEntries()\n\t\t\t\t.filter(([key]) => prefix === undefined || key.startsWith(prefix))\n\t\t\t\t.sort(([a], [b]) => a.localeCompare(b))\n\t\t\t\t.map(([key, value]) => stateSnapshot(key, value));\n\t\t},\n\t\twatch: (prefix, handler) => {\n\t\t\tassertUsable();\n\t\t\tif (prefix !== undefined && typeof prefix !== \"string\") throw new Error(t(\"State prefix must be a string\"));\n\t\t\tif (typeof handler !== \"function\") throw new Error(t(\"State watcher requires a handler\"));\n\t\t\tconst watchers = view.ensureWatchers();\n\t\t\tconst sequence = ++stateWatcherSequence;\n\t\t\tconst id = createRuntimeId(\"state-watcher\", sequence, `state-watcher:${view.watchScope}:${sequence}`);\n\t\t\twatchers.set(id, { owner: view.pluginId, ownerToken, prefix, handler });\n\t\t\treturn own(\n\t\t\t\tcreateDisposableRegistration(\n\t\t\t\t\t\"state-watcher\",\n\t\t\t\t\t() => {\n\t\t\t\t\t\tview.removeWatcher(watchers, id);\n\t\t\t\t\t},\n\t\t\t\t\tid,\n\t\t\t\t),\n\t\t\t);\n\t\t},\n\t});\n\n\t/**\n\t * Drop one instance namespace (data, revisions, watchers); instance ids are\n\t * unique per composition runtime. Clearing the watch table is defense in\n\t * depth: registrations are tracked to the operation lifecycle and normally\n\t * dispose themselves before the instance does, so the table is usually\n\t * empty here — keep the cleanup in case that tracking ever changes.\n\t */\n\tconst clearInstanceState = (owner: string, instanceId: string): void => {\n\t\tconst namespaces = stateByInstance.get(owner);\n\t\tnamespaces?.delete(instanceId);\n\t\tif (namespaces?.size === 0) stateByInstance.delete(owner);\n\t\tconst revisions = stateRevisionsByInstance.get(owner);\n\t\trevisions?.delete(instanceId);\n\t\tif (revisions?.size === 0) stateRevisionsByInstance.delete(owner);\n\t\tconst watchers = stateWatchersByInstance.get(owner);\n\t\twatchers?.delete(instanceId);\n\t\tif (watchers?.size === 0) stateWatchersByInstance.delete(owner);\n\t};\n\n\t// Instance ids are unique per composition runtime, so one runtime-level\n\t// id-to-owner index lets every registered clearer resolve the namespace that\n\t// must be dropped; clearers from unrelated runtimes find no entry and no-op.\n\tconst instanceStateOwners = new Map<string, string>();\n\tconst clearRegisteredInstanceState = (instanceId: string): void => {\n\t\tconst owner = instanceStateOwners.get(instanceId);\n\t\tif (owner === undefined) return;\n\t\tinstanceStateOwners.delete(instanceId);\n\t\tclearInstanceState(owner, instanceId);\n\t};\n\tif (options.composition) {\n\t\t(options.composition as Partial<AgentCompositionInstanceStateBinding>).addInstanceStateClearer?.(\n\t\t\tclearRegisteredInstanceState,\n\t\t);\n\t}\n\n\tconst validateOutputInput = (input: OutputArtifactPutInput): void => {\n\t\tif (!input || typeof input !== \"object\")\n\t\t\tthrow new OutputArtifactError(\"invalid_ref\", \"Artifact input is required\");\n\t\tfor (const [name, value] of [\n\t\t\t[\"sessionId\", input.sessionId],\n\t\t\t[\"operationId\", input.operationId],\n\t\t\t[\"kind\", input.kind],\n\t\t\t[\"mediaType\", input.mediaType],\n\t\t] as const) {\n\t\t\tif (typeof value !== \"string\" || !value.trim()) {\n\t\t\t\tthrow new OutputArtifactError(\"invalid_ref\", `Artifact ${name} must be a non-empty string`);\n\t\t\t}\n\t\t}\n\t\tif (typeof input.truncated !== \"boolean\") {\n\t\t\tthrow new OutputArtifactError(\"invalid_ref\", \"Artifact truncated must be a boolean\");\n\t\t}\n\t\tif (\n\t\t\t!(input.data instanceof Uint8Array) &&\n\t\t\t(!input.data || typeof input.data[Symbol.asyncIterator] !== \"function\")\n\t\t) {\n\t\t\tthrow new OutputArtifactError(\"invalid_ref\", \"Artifact data must be Uint8Array or AsyncIterable<Uint8Array>\");\n\t\t}\n\t};\n\n\tconst validateOutputRef = (ref: OutputArtifactRef): void => {\n\t\tif (!ref || typeof ref !== \"object\" || typeof ref.artifactId !== \"string\" || !ref.artifactId) {\n\t\t\tthrow new OutputArtifactError(\"invalid_ref\", \"Artifact reference requires a non-empty artifactId\");\n\t\t}\n\t};\n\n\t/**\n\t * 工具表同名替换链:name → 被替换的历史注册(栈,栈顶是最近被替换者)。\n\t * 跨 owner 的重注册把现表项压栈,替换方注册 dispose 时弹出栈顶恢复(多层替换\n\t * 成链,逐层恢复);owner 已失效的记录直接跳过,不把已撤销的注册放回工具表。\n\t */\n\tconst toolReplacementChains = new Map<string, RegisteredCapability<unknown>[]>();\n\tconst restoreReplacedTool = (registry: Map<string, RegisteredCapability<unknown>>, name: string): boolean => {\n\t\tconst chain = toolReplacementChains.get(name);\n\t\twhile (chain !== undefined && chain.length > 0) {\n\t\t\tconst restored = chain.pop();\n\t\t\tif (restored === undefined) break;\n\t\t\tif (chain.length === 0) toolReplacementChains.delete(name);\n\t\t\tif (activeOwnerTokens.has(restored.ownerToken)) {\n\t\t\t\tregistry.set(name, restored);\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t};\n\n\tconst register = <T>(\n\t\tkind: string,\n\t\tname: string,\n\t\tvalue: T,\n\t\towner: string,\n\t\townerToken: symbol,\n\t\tregistry: Map<string, RegisteredCapability<T>>,\n\t\toptions?: { readonly replaceable?: boolean },\n\t): DisposableRegistration => {\n\t\tconst replaceable = options?.replaceable === true;\n\t\tconst tracksToolRegistry = registry === (tools as unknown as Map<string, RegisteredCapability<T>>);\n\t\tconst entry: RegisteredCapability<T> = { owner, ownerToken, value };\n\t\tif (registry.has(name)) {\n\t\t\tif (!replaceable) throw new Error(t(\"{kind} is already registered: {name}\", { kind, name }));\n\t\t\tconst replaced = registry.get(name) as RegisteredCapability<T>;\n\t\t\t// 同 owner 重注册 = 更新自身注册,不进替换链;恢复语义只跨 owner 生效。\n\t\t\tif (replaced.ownerToken !== ownerToken) {\n\t\t\t\tconst chain = toolReplacementChains.get(name) ?? [];\n\t\t\t\tchain.push(replaced as RegisteredCapability<unknown>);\n\t\t\t\ttoolReplacementChains.set(name, chain);\n\t\t\t}\n\t\t}\n\t\tregistry.set(name, entry);\n\t\tif (tracksToolRegistry) notifyToolRegistryChange(owner, name);\n\t\tconst id = `registration:${owner}:${kind}:${name}`;\n\t\treturn createDisposableRegistration(\n\t\t\tkind,\n\t\t\t() => {\n\t\t\t\tconst current = registry.get(name);\n\t\t\t\t// 已被后续注册接手:恢复责任随表项转移,本注册不再动表。\n\t\t\t\tif (current !== undefined && current !== entry) return;\n\t\t\t\tlet changed = current !== undefined;\n\t\t\t\tregistry.delete(name);\n\t\t\t\tif (\n\t\t\t\t\treplaceable &&\n\t\t\t\t\trestoreReplacedTool(registry as unknown as Map<string, RegisteredCapability<unknown>>, name)\n\t\t\t\t) {\n\t\t\t\t\tchanged = true;\n\t\t\t\t}\n\t\t\t\tif (changed && tracksToolRegistry) notifyToolRegistryChange(owner, name);\n\t\t\t},\n\t\t\tid,\n\t\t);\n\t};\n\n\tconst listPluginCapabilities = (options?: { kind?: PluginCapabilityDeclaration[\"kind\"] }) =>\n\t\tArray.from(pluginCapabilities.values())\n\t\t\t.filter((entry) => options?.kind === undefined || entry.declaration.kind === options.kind)\n\t\t\t.sort((left, right) => {\n\t\t\t\tconst leftKey = capabilityKey(left.declaration.id, left.declaration.version);\n\t\t\t\tconst rightKey = capabilityKey(right.declaration.id, right.declaration.version);\n\t\t\t\treturn leftKey < rightKey ? -1 : leftKey > rightKey ? 1 : 0;\n\t\t\t})\n\t\t\t.map((entry) => Object.freeze({ declaration: detachedSnapshot(entry.declaration), owner: entry.owner }));\n\n\tconst assertRequiredPluginCapabilities = (manifest: PluginManifest): void => {\n\t\tfor (const requirement of manifest.requires ?? []) {\n\t\t\tif (pluginCapabilities.has(capabilityKey(requirement.id, requirement.version))) continue;\n\t\t\tif (requirement.optional) continue;\n\t\t\tthrow new Error(\n\t\t\t\tt(\"Plugin capability is required but unavailable: {capabilityId}@{version} ({pluginId})\", {\n\t\t\t\t\tcapabilityId: requirement.id,\n\t\t\t\t\tversion: requirement.version,\n\t\t\t\t\tpluginId: manifest.id,\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\t};\n\n\tconst listContributionEntries = <TValue>(\n\t\tpoint: StoredContributionPoint<TValue>,\n\t): readonly ContributionEntry<TValue>[] =>\n\t\tArray.from(point.entries.values())\n\t\t\t.filter((entry) => activeOwnerTokens.has(entry.ownerToken))\n\t\t\t.sort((left, right) => stableTextCompare(left.id, right.id) || stableTextCompare(left.owner, right.owner))\n\t\t\t.map(({ ownerToken: _, ...entry }) => detachedSnapshot(entry));\n\n\tconst notifyContributionSubscribers = async <TValue>(\n\t\tpoint: StoredContributionPoint<TValue>,\n\t\tevent: ContributionChangeEvent<TValue>,\n\t): Promise<void> => {\n\t\tconst results = await Promise.allSettled(\n\t\t\tArray.from(point.subscribers.values(), (subscriber) => {\n\t\t\t\tif (!activeOwnerTokens.has(subscriber.ownerToken)) return Promise.resolve();\n\t\t\t\treturn Promise.resolve().then(() => subscriber.handler(detachedSnapshot(event)));\n\t\t\t}),\n\t\t);\n\t\tconst failures = results\n\t\t\t.filter((result): result is PromiseRejectedResult => result.status === \"rejected\")\n\t\t\t.map((result) => result.reason);\n\t\tif (failures.length === 1) throw failures[0];\n\t\tif (failures.length > 1)\n\t\t\tthrow new AggregateError(failures, `Contribution event delivery failed: ${event.pointId}`);\n\t};\n\n\tconst contributionPointFor = <TValue>(\n\t\tpoint: StoredContributionPoint<TValue>,\n\t\towner: string,\n\t\townerToken: symbol,\n\t\tassertUsable: () => void,\n\t\town: (registration: DisposableRegistration) => DisposableRegistration,\n\t): ContributionPoint<TValue> => {\n\t\tconst assertPointActive = (): void => {\n\t\t\tassertUsable();\n\t\t\tif (!activeOwnerTokens.has(point.ownerToken)) throw createRevokedCapabilityError(point.owner);\n\t\t};\n\t\tconst pointId = point.definition.id;\n\t\tconst version = point.definition.version;\n\t\tconst lifecycle = point.definition.lifecycle ?? \"observe\";\n\t\treturn Object.freeze({\n\t\t\tid: pointId,\n\t\t\tversion,\n\t\t\tschema: point.definition.schema,\n\t\t\tlifecycle,\n\t\t\tasync add(input: { id: string; value: TValue }): Promise<ContributionHandle> {\n\t\t\t\tassertPointActive();\n\t\t\t\tif (!input || typeof input.id !== \"string\" || !input.id.trim()) {\n\t\t\t\t\tthrow new Error(t(\"Contribution requires a non-empty id: {pointId}\", { pointId }));\n\t\t\t\t}\n\t\t\t\tif (point.entries.has(input.id)) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\tt(\"Contribution is already registered: {pointId}@{version}:{id}\", { pointId, version, id: input.id }),\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tconst value = detachedSnapshot(point.definition.validate(detachedSnapshot(input.value)));\n\t\t\t\tconst entry = Object.freeze({ id: input.id, pointId, version, owner, ownerToken, lifecycle, value });\n\t\t\t\tpoint.entries.set(input.id, entry);\n\t\t\t\tconst registration = own(\n\t\t\t\t\tcreateDisposableRegistration(\n\t\t\t\t\t\t\"contribution\",\n\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\tif (point.entries.get(input.id) !== entry) return;\n\t\t\t\t\t\t\tpoint.entries.delete(input.id);\n\t\t\t\t\t\t\tif (point.subscribers.size === 0) return;\n\t\t\t\t\t\t\treturn notifyContributionSubscribers(point, {\n\t\t\t\t\t\t\t\tpointId,\n\t\t\t\t\t\t\t\tversion,\n\t\t\t\t\t\t\t\taction: \"removed\",\n\t\t\t\t\t\t\t\tcontributionId: input.id,\n\t\t\t\t\t\t\t\towner,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t},\n\t\t\t\t\t\t`registration:${owner}:contribution:${pointId}@${version}:${input.id}`,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t\tawait notifyContributionSubscribers(point, {\n\t\t\t\t\tpointId,\n\t\t\t\t\tversion,\n\t\t\t\t\taction: \"added\",\n\t\t\t\t\tcontributionId: input.id,\n\t\t\t\t\towner,\n\t\t\t\t\tentry: detachedSnapshot({\n\t\t\t\t\t\tid: entry.id,\n\t\t\t\t\t\tpointId: entry.pointId,\n\t\t\t\t\t\tversion: entry.version,\n\t\t\t\t\t\towner: entry.owner,\n\t\t\t\t\t\tlifecycle: entry.lifecycle,\n\t\t\t\t\t\tvalue: entry.value,\n\t\t\t\t\t}),\n\t\t\t\t});\n\t\t\t\treturn Object.freeze({ id: input.id, pointId, version, owner, dispose: () => registration.dispose() });\n\t\t\t},\n\t\t\tasync remove(id: string): Promise<void> {\n\t\t\t\tassertPointActive();\n\t\t\t\tconst entry = point.entries.get(id);\n\t\t\t\tif (!entry)\n\t\t\t\t\tthrow new Error(t(\"Contribution is not registered: {pointId}@{version}:{id}\", { pointId, version, id }));\n\t\t\t\tif (entry.ownerToken !== ownerToken)\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\tt(\"Contribution can only be removed by its owner: {pointId}@{version}:{id}\", {\n\t\t\t\t\t\t\tpointId,\n\t\t\t\t\t\t\tversion,\n\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t}),\n\t\t\t\t\t);\n\t\t\t\tpoint.entries.delete(id);\n\t\t\t\tawait notifyContributionSubscribers(point, {\n\t\t\t\t\tpointId,\n\t\t\t\t\tversion,\n\t\t\t\t\taction: \"removed\",\n\t\t\t\t\tcontributionId: id,\n\t\t\t\t\towner,\n\t\t\t\t});\n\t\t\t},\n\t\t\tlist: () => {\n\t\t\t\tassertPointActive();\n\t\t\t\treturn listContributionEntries(point);\n\t\t\t},\n\t\t\tsubscribe: (handler: (event: ContributionChangeEvent<TValue>) => void | Promise<void>) => {\n\t\t\t\tassertPointActive();\n\t\t\t\tif (typeof handler !== \"function\")\n\t\t\t\t\tthrow new Error(t(\"Contribution subscriber must be callable: {pointId}\", { pointId }));\n\t\t\t\tconst sequence = ++contributionSubscriptionSequence;\n\t\t\t\tconst id = createRuntimeId(\n\t\t\t\t\t\"contribution-subscription\",\n\t\t\t\t\tsequence,\n\t\t\t\t\t`contribution-subscription:${owner}:${pointId}@${version}:${sequence}`,\n\t\t\t\t);\n\t\t\t\tpoint.subscribers.set(id, { ownerToken, handler });\n\t\t\t\treturn own(\n\t\t\t\t\tcreateDisposableRegistration(\n\t\t\t\t\t\t\"contribution-subscription\",\n\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\tpoint.subscribers.delete(id);\n\t\t\t\t\t\t},\n\t\t\t\t\t\tid,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t},\n\t\t});\n\t};\n\n\tconst lifecycleReference = (\n\t\tevent: LifecycleEventDefinition | LifecycleEventReference | string,\n\t\tversion?: number,\n\t): { id: string; version: number } => {\n\t\tif (typeof event === \"string\") {\n\t\t\tif (typeof version !== \"number\" || !Number.isSafeInteger(version) || version < 1) {\n\t\t\t\tthrow new Error(t(\"Lifecycle event version must be provided as a positive safe integer\"));\n\t\t\t}\n\t\t\treturn { id: event, version };\n\t\t}\n\t\tif (!event || typeof event !== \"object\" || typeof event.id !== \"string\" || !event.id.trim()) {\n\t\t\tthrow new Error(t(\"Lifecycle event reference requires a non-empty id\"));\n\t\t}\n\t\tif (!Number.isSafeInteger(event.version) || event.version < 1) {\n\t\t\tthrow new Error(t(\"Lifecycle event version must be a positive safe integer\"));\n\t\t}\n\t\treturn { id: event.id, version: event.version };\n\t};\n\n\tconst lifecycleDefinitionFor = <TData>(\n\t\tevent: LifecycleEventDefinition<TData> | LifecycleEventReference | string,\n\t\tversion?: number,\n\t): StoredLifecycleDefinition<TData> => {\n\t\tconst reference = lifecycleReference(event, version);\n\t\tconst stored = lifecycleDefinitions.get(lifecycleEventKey(reference.id, reference.version)) as\n\t\t\t| StoredLifecycleDefinition<TData>\n\t\t\t| undefined;\n\t\tif (!stored || !activeOwnerTokens.has(stored.ownerToken)) {\n\t\t\tthrow new Error(\n\t\t\t\tt(\"Lifecycle event is not defined: {id}@{version}\", { id: reference.id, version: reference.version }),\n\t\t\t);\n\t\t}\n\t\treturn stored;\n\t};\n\n\tconst lifecycleRegistration = <TData>(\n\t\tkind: LifecycleRegistrationKind,\n\t\tevent: LifecycleEventDefinition<TData> | LifecycleEventReference | string,\n\t\thandler:\n\t\t\t| LifecycleObserveHandler<TData>\n\t\t\t| LifecycleTransformHandler<TData>\n\t\t\t| LifecycleExecuteHandler<TData>\n\t\t\t| LifecycleAfterCommitHandler<TData>,\n\t\tversion: number | undefined,\n\t\towner: string,\n\t\townerToken: symbol,\n\t\tassertUsable: () => void,\n\t\town: (registration: DisposableRegistration) => DisposableRegistration,\n\t\tdeliveryOptions?: LifecycleDeliveryOptions,\n\t): DisposableRegistration => {\n\t\tassertUsable();\n\t\tif (!lifecycleRegistrationKinds.has(kind) || typeof handler !== \"function\") {\n\t\t\tthrow new Error(t(\"Lifecycle {kind} registration requires a callable handler\", { kind }));\n\t\t}\n\t\tconst stored = lifecycleDefinitionFor(event, version);\n\t\tif (stored.definition.allowedRegistrationKinds?.includes(kind) === false) {\n\t\t\tthrow new Error(t(\"Lifecycle {kind} registration is not allowed: {id}\", { kind, id: stored.definition.id }));\n\t\t}\n\t\tif (\n\t\t\tkind === \"transform\" &&\n\t\t\t!(stored.definition.allowedPhases ?? [stored.definition.phase]).includes(\"candidate\")\n\t\t) {\n\t\t\tthrow new Error(t(\"Lifecycle transform requires a candidate event: {id}\", { id: stored.definition.id }));\n\t\t}\n\t\tif (kind === \"execute\" && !(stored.definition.allowedPhases ?? [stored.definition.phase]).includes(\"committed\")) {\n\t\t\tthrow new Error(t(\"Lifecycle execute requires a committed event: {id}\", { id: stored.definition.id }));\n\t\t}\n\t\tif (\n\t\t\tkind === \"after-commit\" &&\n\t\t\t!(stored.definition.allowedPhases ?? [stored.definition.phase]).includes(\"committed\")\n\t\t) {\n\t\t\tthrow new Error(t(\"Lifecycle after-commit requires a committed event: {id}\", { id: stored.definition.id }));\n\t\t}\n\t\tif (deliveryOptions !== undefined && kind !== \"observe\" && kind !== \"after-commit\") {\n\t\t\tthrow new Error(\n\t\t\t\tt(\"Lifecycle delivery options are only supported for observation registrations: {id}\", {\n\t\t\t\t\tid: stored.definition.id,\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\t\tconst key = lifecycleEventKey(stored.definition.id, stored.definition.version);\n\t\tconst sequence = ++lifecycleRegistrationSequence;\n\t\tconst id = createRuntimeId(\"lifecycle-registration\", sequence, `lifecycle:${owner}:${kind}:${key}:${sequence}`);\n\t\tconst registration: StoredLifecycleRegistration<TData> = {\n\t\t\tid,\n\t\t\towner,\n\t\t\townerToken,\n\t\t\tkind,\n\t\t\tsequence: lifecycleRegistrationSequence,\n\t\t\thandler,\n\t\t\tdelivery: Object.freeze({\n\t\t\t\tmode: deliveryOptions === undefined ? \"inline\" : \"bounded-queue\",\n\t\t\t\t...deliveryOptions,\n\t\t\t}),\n\t\t};\n\t\tif (deliveryOptions !== undefined) {\n\t\t\tconst queue = createLifecycleDeliveryQueue<QueuedLifecycleDelivery<TData>>({\n\t\t\t\tmaxPendingEvents: deliveryOptions.maxPendingEvents,\n\t\t\t\tmaxPendingBytes: deliveryOptions.maxPendingBytes,\n\t\t\t\tmeasureBytes: (delivery) => {\n\t\t\t\t\tconst serialized = JSON.stringify(delivery.event);\n\t\t\t\t\tif (serialized === undefined) throw new Error(t(\"Lifecycle event is not serializable\"));\n\t\t\t\t\treturn new TextEncoder().encode(serialized).byteLength || 1;\n\t\t\t\t},\n\t\t\t\tdeliver: (delivery) => {\n\t\t\t\t\tconst registered = {\n\t\t\t\t\t\towner: registration.owner,\n\t\t\t\t\t\townerToken: registration.ownerToken,\n\t\t\t\t\t\tvalue: registration.handler,\n\t\t\t\t\t};\n\t\t\t\t\treturn invokeRegisteredCapabilityWithSignal(registered, delivery.signal, (value) =>\n\t\t\t\t\t\t(value as LifecycleObserveHandler<TData>)(detachedSnapshot(delivery.event), delivery.signal),\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\toverflowCode:\n\t\t\t\t\tstored.definition.id === \"model.stream\"\n\t\t\t\t\t\t? \"model_stream_backpressure_overflow\"\n\t\t\t\t\t\t: \"lifecycle_delivery_backpressure_overflow\",\n\t\t\t});\n\t\t\tregistration.queue = queue;\n\t\t\tlifecycleDeliveryQueues.add(queue as LifecycleDeliveryQueue<QueuedLifecycleDelivery<unknown>>);\n\t\t}\n\t\tconst registrations = lifecycleRegistrations.get(key) ?? new Map<string, StoredLifecycleRegistration>();\n\t\tregistrations.set(id, registration as StoredLifecycleRegistration);\n\t\tlifecycleRegistrations.set(key, registrations);\n\t\treturn own(\n\t\t\tcreateDisposableRegistration(\n\t\t\t\t`lifecycle-${kind}`,\n\t\t\t\t() => {\n\t\t\t\t\tif (registrations.get(id) !== registration) return;\n\t\t\t\t\tconst queue = registration.queue;\n\t\t\t\t\tqueue?.close();\n\t\t\t\t\tif (queue)\n\t\t\t\t\t\tvoid queue\n\t\t\t\t\t\t\t.drain()\n\t\t\t\t\t\t\t.then(() =>\n\t\t\t\t\t\t\t\tlifecycleDeliveryQueues.delete(\n\t\t\t\t\t\t\t\t\tqueue as LifecycleDeliveryQueue<QueuedLifecycleDelivery<unknown>>,\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t);\n\t\t\t\t\tregistrations.delete(id);\n\t\t\t\t\tif (registrations.size === 0) lifecycleRegistrations.delete(key);\n\t\t\t\t},\n\t\t\t\tid,\n\t\t\t),\n\t\t);\n\t};\n\n\tconst apiFor = (manifest: PluginManifest): CapabilityAPI => {\n\t\t// Snapshot the caller-owned manifest before validation so later mutation\n\t\t// cannot alter capability declarations or required-capability checks.\n\t\tconst manifestSnapshot = detachedSnapshot(manifest);\n\t\tassertManifest(manifestSnapshot, host);\n\t\tassertRequiredPluginCapabilities(manifestSnapshot);\n\t\tconst config = createPluginConfig(manifestSnapshot.config);\n\t\tconst apiManifest = detachedSnapshot({ ...manifestSnapshot, config });\n\t\tconst owner = manifestSnapshot.id;\n\t\tconst ownerToken = Symbol(owner);\n\t\tconst state: APIState = {\n\t\t\tactive: true,\n\t\t\towner,\n\t\t\townerToken,\n\t\t\tcompositionInstances: new Set(),\n\t\t\tcompositionDefinitions: new Set(),\n\t\t};\n\t\tactiveOwnerTokens.add(ownerToken);\n\t\tconst assertUsable = (): void => {\n\t\t\tif (!state.active) throw new Error(`Capability API is revoked: ${owner}`);\n\t\t};\n\t\tconst compositionLifecycleDispatcher: AgentCompositionLifecycleDispatcher = (event) => {\n\t\t\t// The dispatcher is captured by this API state and passed to each\n\t\t\t// instance it creates. Never resolve ownership by searching the shared\n\t\t\t// composition runtime: another CapabilityRuntime may use the same one.\n\t\t\tif (!state.active || !activeOwnerTokens.has(ownerToken) || event.owner !== owner) return;\n\t\t\tif (event.event === \"start\") {\n\t\t\t\tsetOperationStatus(runtimeState, event.operationId, \"running\");\n\t\t\t\treportOperationStart(event.operationId, event.operationKind, [ownerToken]);\n\t\t\t} else if (event.event === \"step\") {\n\t\t\t\tif (event.progress === undefined || event.step === undefined) return;\n\t\t\t\treportOperationStep(event.operationId, event.operationKind, [ownerToken], event.progress, event.step);\n\t\t\t} else if (event.event === \"cancel\") {\n\t\t\t\tsetOperationStatus(runtimeState, event.operationId, \"cancelled\");\n\t\t\t\treportOperationCancel(event.operationId, event.operationKind, [ownerToken]);\n\t\t\t} else {\n\t\t\t\tconst status = event.status ?? \"failed\";\n\t\t\t\tsetOperationStatus(runtimeState, event.operationId, status);\n\t\t\t\treportOperationEnd(event.operationId, event.operationKind, status, [ownerToken]);\n\t\t\t}\n\t\t};\n\t\tconst own = (registration: DisposableRegistration): DisposableRegistration => {\n\t\t\tassertUsable();\n\t\t\tconst registrations = pluginRegistrations.get(owner) ?? new Set<DisposableRegistration>();\n\t\t\tregistrations.add(registration);\n\t\t\tpluginRegistrations.set(owner, registrations);\n\t\t\treturn registration;\n\t\t};\n\t\t/**\n\t\t * Counterpart of {@link own} for registrations released by their own\n\t\t * lifecycle (a disposed agent task): a registration set that still holds\n\t\t * them would pin the released resource for the rest of the plugin's life.\n\t\t */\n\t\tconst unown = (registration: DisposableRegistration): void => {\n\t\t\tconst registrations = pluginRegistrations.get(owner);\n\t\t\tif (!registrations) return;\n\t\t\tregistrations.delete(registration);\n\t\t\tif (registrations.size === 0) pluginRegistrations.delete(owner);\n\t\t};\n\t\tconst logger: LoggerAPI = {\n\t\t\tdebug: (message, fields) => {\n\t\t\t\tassertUsable();\n\t\t\t\trecordLog(\"debug\", owner, message, fields);\n\t\t\t},\n\t\t\tinfo: (message, fields) => {\n\t\t\t\tassertUsable();\n\t\t\t\trecordLog(\"info\", owner, message, fields);\n\t\t\t},\n\t\t\twarn: (message, fields) => {\n\t\t\t\tassertUsable();\n\t\t\t\trecordLog(\"warn\", owner, message, fields);\n\t\t\t},\n\t\t\terror: (message, fields, cause) => {\n\t\t\t\tassertUsable();\n\t\t\t\trecordLog(\"error\", owner, message, fields, cause);\n\t\t\t},\n\t\t};\n\t\tconst diagnostics: DiagnosticsAPI = {\n\t\t\tstart: (name, attributes, parentSpanId) => {\n\t\t\t\tassertUsable();\n\t\t\t\tif (typeof name !== \"string\" || !name.trim()) throw new Error(t(\"Diagnostic span name must be non-empty\"));\n\t\t\t\tif (attributes !== undefined && !isPluginConfigValue(attributes))\n\t\t\t\t\tthrow new Error(t(\"Diagnostic attributes must be serializable\"));\n\t\t\t\tif (parentSpanId !== undefined && (typeof parentSpanId !== \"string\" || !parentSpanId.trim()))\n\t\t\t\t\tthrow new Error(t(\"Diagnostic parentSpanId must be non-empty\"));\n\t\t\t\tconst spanSequenceValue = ++spanSequence;\n\t\t\t\tconst spanId = createRuntimeId(\"span\", spanSequenceValue, `span:${owner}:${spanSequenceValue}`);\n\t\t\t\tconst traceId = parentSpanId\n\t\t\t\t\t? (spans.get(parentSpanId)?.traceId ??\n\t\t\t\t\t\t(() => {\n\t\t\t\t\t\t\tconst sequence = ++traceSequence;\n\t\t\t\t\t\t\treturn createRuntimeId(\"trace\", sequence, `trace:${sequence}`);\n\t\t\t\t\t\t})())\n\t\t\t\t\t: (() => {\n\t\t\t\t\t\t\tconst sequence = ++traceSequence;\n\t\t\t\t\t\t\treturn createRuntimeId(\"trace\", sequence, `trace:${sequence}`);\n\t\t\t\t\t\t})();\n\t\t\t\tconst snapshot: DiagnosticsSpanSnapshot = {\n\t\t\t\t\tversion: 1,\n\t\t\t\t\ttraceId,\n\t\t\t\t\tspanId,\n\t\t\t\t\t...(parentSpanId === undefined ? {} : { parentSpanId }),\n\t\t\t\t\tname,\n\t\t\t\t\tpluginId: owner,\n\t\t\t\t\t...(options.session === undefined ? {} : { sessionId: options.session.getSessionId() }),\n\t\t\t\t\tstartedAt: clock(),\n\t\t\t\t\tstatus: \"running\",\n\t\t\t\t\tattributes: detachedSnapshot(attributes ?? {}),\n\t\t\t\t};\n\t\t\t\tsetDiagnosticsSpan(runtimeState, spanId, snapshot);\n\t\t\t\tlet ended = false;\n\t\t\t\tconst span: DiagnosticsSpan = {\n\t\t\t\t\ttraceId,\n\t\t\t\t\tspanId,\n\t\t\t\t\tannotate(fields) {\n\t\t\t\t\t\tassertUsable();\n\t\t\t\t\t\tif (ended) throw new Error(t(\"Diagnostic span is already ended: {spanId}\", { spanId }));\n\t\t\t\t\t\tif (!fields || typeof fields !== \"object\" || Array.isArray(fields) || !isPluginConfigValue(fields))\n\t\t\t\t\t\t\tthrow new Error(t(\"Diagnostic annotations must be a plain object\"));\n\t\t\t\t\t\tconst current = spans.get(spanId);\n\t\t\t\t\t\tif (!current) throw new Error(t(\"Diagnostic span is not available: {spanId}\", { spanId }));\n\t\t\t\t\t\tcurrent.attributes = detachedSnapshot({\n\t\t\t\t\t\t\t...(current.attributes as Record<string, PluginConfigValue>),\n\t\t\t\t\t\t\t...(fields as Record<string, PluginConfigValue>),\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tend(outcome = { status: \"ok\" }) {\n\t\t\t\t\t\tassertUsable();\n\t\t\t\t\t\tif (ended) throw new Error(t(\"Diagnostic span is already ended: {spanId}\", { spanId }));\n\t\t\t\t\t\tif (![\"ok\", \"error\", \"cancelled\"].includes(outcome.status))\n\t\t\t\t\t\t\tthrow new Error(t(\"Diagnostic span status is invalid\"));\n\t\t\t\t\t\tif (outcome.result !== undefined && !isPluginConfigValue(outcome.result))\n\t\t\t\t\t\t\tthrow new Error(t(\"Diagnostic span result must be serializable\"));\n\t\t\t\t\t\tconst current = spans.get(spanId);\n\t\t\t\t\t\tif (!current) throw new Error(t(\"Diagnostic span is not available: {spanId}\", { spanId }));\n\t\t\t\t\t\tended = true;\n\t\t\t\t\t\tcurrent.status = outcome.status;\n\t\t\t\t\t\tcurrent.endedAt = clock();\n\t\t\t\t\t\tif (outcome.result !== undefined) current.result = detachedSnapshot(outcome.result);\n\t\t\t\t\t\tif (outcome.cause !== undefined) current.cause = detachedSnapshot(outcome.cause);\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t\town(\n\t\t\t\t\tcreateDisposableRegistration(\n\t\t\t\t\t\t\"diagnostic-span\",\n\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\tif (!ended) {\n\t\t\t\t\t\t\t\tconst current = spans.get(spanId);\n\t\t\t\t\t\t\t\tif (current?.status === \"running\") {\n\t\t\t\t\t\t\t\t\tcurrent.status = \"cancelled\";\n\t\t\t\t\t\t\t\t\tcurrent.endedAt = clock();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t`registration:${owner}:diagnostic-span:${spanId}`,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t\treturn span;\n\t\t\t},\n\t\t};\n\t\tconst stateApi: StateAPI = createStateApiFor(ownerStateViewFor(owner), ownerToken, assertUsable, own);\n\t\t/** Instance-private state namespace view for one composition instance; cleared on its disposal. */\n\t\tconst createInstanceStateApi = (instanceOwner: string, instanceId: string): StateAPI =>\n\t\t\tcreateStateApiFor(instanceStateViewFor(instanceOwner, instanceId), ownerToken, assertUsable, own);\n\t\tconst capabilities: CapabilityDirectoryAPI = {\n\t\t\tprovide<TInput = unknown, TResult = unknown>(\n\t\t\t\tdeclaration: PluginCapabilityDeclaration,\n\t\t\t\thandler: CapabilityProviderHandler<TInput, TResult>,\n\t\t\t): DisposableRegistration {\n\t\t\t\tassertUsable();\n\t\t\t\tassertPluginCapabilityDeclarations([declaration], `Plugin capability declaration: ${owner}`);\n\t\t\t\tif (typeof handler !== \"function\")\n\t\t\t\t\tthrow new Error(t(\"Plugin capability provider requires a callable handler\"));\n\t\t\t\tconst declared = manifestSnapshot.provides?.some(\n\t\t\t\t\t(item) =>\n\t\t\t\t\t\titem.id === declaration.id && item.version === declaration.version && item.kind === declaration.kind,\n\t\t\t\t);\n\t\t\t\tif (!declared) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\tt(\"Plugin capability must be declared by its manifest: {id}@{version} ({owner})\", {\n\t\t\t\t\t\t\tid: declaration.id,\n\t\t\t\t\t\t\tversion: declaration.version,\n\t\t\t\t\t\t\towner,\n\t\t\t\t\t\t}),\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tconst key = capabilityKey(declaration.id, declaration.version);\n\t\t\t\tif (pluginCapabilities.has(key)) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\tt(\"Plugin capability is already provided: {id}@{version}\", {\n\t\t\t\t\t\t\tid: declaration.id,\n\t\t\t\t\t\t\tversion: declaration.version,\n\t\t\t\t\t\t}),\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tconst registered: RegisteredPluginCapability = {\n\t\t\t\t\tdeclaration: detachedSnapshot(declaration),\n\t\t\t\t\towner,\n\t\t\t\t\townerToken,\n\t\t\t\t\thandler: handler as CapabilityProviderHandler,\n\t\t\t\t};\n\t\t\t\tpluginCapabilities.set(key, registered);\n\t\t\t\treturn own(\n\t\t\t\t\tcreateDisposableRegistration(\n\t\t\t\t\t\t\"plugin-capability\",\n\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\tif (pluginCapabilities.get(key)?.ownerToken === ownerToken) pluginCapabilities.delete(key);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t`registration:${owner}:plugin-capability:${declaration.id}@${declaration.version}`,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t},\n\t\t\trequire<TResult = unknown>(id: string, requireOptions?: { version?: number }): CapabilityHandle<TResult> {\n\t\t\t\tassertUsable();\n\t\t\t\tassertPluginCapabilityId(id, \"Plugin capability id\");\n\t\t\t\tconst version = requireOptions?.version;\n\t\t\t\tassertPluginCapabilityVersion(version, \"Plugin capability version\");\n\t\t\t\tconst registered = pluginCapabilities.get(capabilityKey(id, version));\n\t\t\t\tif (!registered) throw new Error(t(\"Plugin capability is not available: {id}@{version}\", { id, version }));\n\t\t\t\tconst declaration = detachedSnapshot(registered.declaration);\n\t\t\t\treturn Object.freeze({\n\t\t\t\t\tdeclaration,\n\t\t\t\t\towner: registered.owner,\n\t\t\t\t\tcall: (input: unknown, callOptions?: { signal?: AbortSignal }): OperationHandle<TResult> => {\n\t\t\t\t\t\tassertUsable();\n\t\t\t\t\t\tif (!activeOwnerTokens.has(registered.ownerToken)) {\n\t\t\t\t\t\t\tthrow createRevokedCapabilityError(registered.owner);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst sequence = ++operationSequence;\n\t\t\t\t\t\tconst operationId = createRuntimeId(\n\t\t\t\t\t\t\t\"capability-operation\",\n\t\t\t\t\t\t\tsequence,\n\t\t\t\t\t\t\t`capability:${owner}:${id}@${version}:${sequence}`,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tconst handle = trackOperation(\n\t\t\t\t\t\t\t[ownerToken, registered.ownerToken],\n\t\t\t\t\t\t\tnew RuntimeOperation<TResult>(\n\t\t\t\t\t\t\t\toperationId,\n\t\t\t\t\t\t\t\t(value, context) => invokePluginCapability<TResult>(registered, value, context.signal),\n\t\t\t\t\t\t\t\tdetachedSnapshot(input),\n\t\t\t\t\t\t\t\t(status) => {\n\t\t\t\t\t\t\t\t\tsetOperationStatus(runtimeState, operationId, status);\n\t\t\t\t\t\t\t\t\tif (status === \"running\") {\n\t\t\t\t\t\t\t\t\t\treportCapabilityCall(\"start\", operationId, owner, registered, [\n\t\t\t\t\t\t\t\t\t\t\townerToken,\n\t\t\t\t\t\t\t\t\t\t\tregistered.ownerToken,\n\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\t\t} else if (status === \"cancelled\") {\n\t\t\t\t\t\t\t\t\t\treportCapabilityCall(\"cancel\", operationId, owner, registered, [\n\t\t\t\t\t\t\t\t\t\t\townerToken,\n\t\t\t\t\t\t\t\t\t\t\tregistered.ownerToken,\n\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t(status) =>\n\t\t\t\t\t\t\t\t\treportCapabilityCall(\n\t\t\t\t\t\t\t\t\t\t\"end\",\n\t\t\t\t\t\t\t\t\t\toperationId,\n\t\t\t\t\t\t\t\t\t\towner,\n\t\t\t\t\t\t\t\t\t\tregistered,\n\t\t\t\t\t\t\t\t\t\t[ownerToken, registered.ownerToken],\n\t\t\t\t\t\t\t\t\t\tstatus,\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t() => false,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t);\n\t\t\t\t\t\tsetOperationStatus(runtimeState, operationId, handle.status());\n\t\t\t\t\t\tconst signal = callOptions?.signal;\n\t\t\t\t\t\tif (signal) {\n\t\t\t\t\t\t\tif (signal.aborted) void handle.cancel(signal.reason);\n\t\t\t\t\t\t\telse signal.addEventListener(\"abort\", () => void handle.cancel(signal.reason), { once: true });\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn handle;\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t},\n\t\t\tlist: listPluginCapabilities,\n\t\t};\n\t\tconst contributions: ContributionAPI = {\n\t\t\tdefine: <TValue>(definition: ContributionPointDefinition<TValue>): ContributionPoint<TValue> => {\n\t\t\t\tassertUsable();\n\t\t\t\tconst validated = validateContributionPointDefinition(definition);\n\t\t\t\tconst key = contributionPointKey(validated.id, validated.version);\n\t\t\t\tif (contributionPoints.has(key))\n\t\t\t\t\tthrow new Error(t(\"Contribution point is already defined: {key}\", { key }));\n\t\t\t\tconst point: StoredContributionPoint<TValue> = {\n\t\t\t\t\towner,\n\t\t\t\t\townerToken,\n\t\t\t\t\tdefinition: validated,\n\t\t\t\t\tentries: new Map(),\n\t\t\t\t\tsubscribers: new Map(),\n\t\t\t\t};\n\t\t\t\tcontributionPoints.set(key, point as StoredContributionPoint<unknown>);\n\t\t\t\town(\n\t\t\t\t\tcreateDisposableRegistration(\n\t\t\t\t\t\t\"contribution-point\",\n\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\tif (contributionPoints.get(key) === point) contributionPoints.delete(key);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t`registration:${owner}:contribution-point:${key}`,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t\treturn contributionPointFor(point, owner, ownerToken, assertUsable, own);\n\t\t\t},\n\t\t\tget: <TValue>(id: string, version: number): ContributionPoint<TValue> => {\n\t\t\t\tassertUsable();\n\t\t\t\tconst point = contributionPoints.get(contributionPointKey(id, version));\n\t\t\t\tif (!point) throw new Error(`Contribution point is not defined: ${id}@${version}`);\n\t\t\t\treturn contributionPointFor(point as StoredContributionPoint<TValue>, owner, ownerToken, assertUsable, own);\n\t\t\t},\n\t\t\tlist: () =>\n\t\t\t\tArray.from(contributionPoints.values())\n\t\t\t\t\t.filter((point) => activeOwnerTokens.has(point.ownerToken))\n\t\t\t\t\t.sort((left, right) =>\n\t\t\t\t\t\tstableTextCompare(\n\t\t\t\t\t\t\tcontributionPointKey(left.definition.id, left.definition.version),\n\t\t\t\t\t\t\tcontributionPointKey(right.definition.id, right.definition.version),\n\t\t\t\t\t\t),\n\t\t\t\t\t)\n\t\t\t\t\t.map((point) =>\n\t\t\t\t\t\tObject.freeze({\n\t\t\t\t\t\t\tid: point.definition.id,\n\t\t\t\t\t\t\tversion: point.definition.version,\n\t\t\t\t\t\t\tschema: point.definition.schema,\n\t\t\t\t\t\t\tlifecycle: point.definition.lifecycle ?? \"observe\",\n\t\t\t\t\t\t\towner: point.owner,\n\t\t\t\t\t\t}),\n\t\t\t\t\t),\n\t\t};\n\t\tconst createAgentTask = async (request: AgentTaskCreateRequest): Promise<AgentTaskHandle> => {\n\t\t\tassertUsable();\n\t\t\tassertAgentTaskRequest(request);\n\t\t\tconst adapter = options.agents;\n\t\t\tconst session = options.session;\n\t\t\tif (!adapter || !session) throw new Error(t(\"Agent task capability is not available from this host\"));\n\t\t\tconst hostTask = await adapter.create(request);\n\t\t\ttry {\n\t\t\t\tassertUsable();\n\t\t\t} catch (error) {\n\t\t\t\tawait hostTask.dispose();\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\tlet task: RuntimeAgentTask;\n\t\t\tlet registration: DisposableRegistration | undefined;\n\t\t\tlet detachParentCascade: () => void = () => {};\n\t\t\ttry {\n\t\t\t\ttask = new RuntimeAgentTask(\n\t\t\t\t\tcreateRuntimeId(\n\t\t\t\t\t\t\"agent-task\",\n\t\t\t\t\t\t++agentTaskSequence,\n\t\t\t\t\t\t`agent-task:${owner}:${agentTaskSequence}:${runtimeInstanceSegment}`,\n\t\t\t\t\t),\n\t\t\t\t\tsession.getSessionId(),\n\t\t\t\t\trequest,\n\t\t\t\t\thostTask,\n\t\t\t\t\tassertUsable,\n\t\t\t\t\thost.features.includes(\"session-revision-v1\"),\n\t\t\t\t\toptions.agentResults,\n\t\t\t\t\t// Task disposal releases every runtime-side reference — the\n\t\t\t\t\t// live-task set, the parent fence listener and the owner\n\t\t\t\t\t// registration — so a long-lived parent session does not\n\t\t\t\t\t// accumulate settled tasks (and their child session graphs)\n\t\t\t\t\t// until runtime disposal.\n\t\t\t\t\t() => {\n\t\t\t\t\t\tagentTasks.delete(task);\n\t\t\t\t\t\tdetachParentCascade();\n\t\t\t\t\t\tif (registration) unown(registration);\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t} catch (error) {\n\t\t\t\tawait hostTask.dispose();\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\tagentTasks.add(task);\n\t\t\tdetachParentCascade = attachParentCascade(task);\n\t\t\tregistration = own(\n\t\t\t\tcreateDisposableRegistration(\n\t\t\t\t\t\"agent-task\",\n\t\t\t\t\t() => task.dispose(),\n\t\t\t\t\t`registration:${owner}:agent-task:${task.id}`,\n\t\t\t\t),\n\t\t\t);\n\t\t\treturn task;\n\t\t};\n\t\t// Parent-session cancel fence (D-044 §4.2): bind each task once to the\n\t\t// signal current at creation time. Tasks created after the fence already\n\t\t// fired are cancelled immediately; the host refreshes the fence epoch so\n\t\t// later tasks bind to a fresh signal instead of the spent one.\n\t\tconst attachParentCascade = (task: RuntimeAgentTask): (() => void) => {\n\t\t\tconst signal = options.parentSignal?.();\n\t\t\tif (!signal) return () => {};\n\t\t\tconst cancelForParent = (): void => {\n\t\t\t\tvoid task.cancel(\"parent session aborted\").catch(() => {});\n\t\t\t};\n\t\t\tif (signal.aborted) {\n\t\t\t\tcancelForParent();\n\t\t\t\treturn () => {};\n\t\t\t}\n\t\t\tsignal.addEventListener(\"abort\", cancelForParent, { once: true });\n\t\t\t// The fence signal lives as long as its epoch, so the listener must be\n\t\t\t// removable: an unremoved closure would retain the task for the whole\n\t\t\t// epoch even after the task settled and was disposed.\n\t\t\treturn () => signal.removeEventListener(\"abort\", cancelForParent);\n\t\t};\n\t\t/**\n\t\t * Durable replay read: loads the terminal record persisted at settle from\n\t\t * the host-injected durable store. The guarded option pair guarantees the\n\t\t * agentResults option is present whenever the replay feature is declared,\n\t\t * so a missing store only means the host never opted into replay.\n\t\t */\n\t\tconst createAgentResultReader = async (taskId: string): Promise<AgentTaskResultV1 | undefined> => {\n\t\t\tconst record = options.agentResults?.store.loadArtifact({\n\t\t\t\tartifactId: `agent-task:${taskId}`,\n\t\t\t});\n\t\t\treturn record ? (record.data as AgentTaskResultV1) : undefined;\n\t\t};\n\t\t/**\n\t\t * 父→子引导(D-060 S4,程序面):对运行中的 agent task 投递一条有界引导消息。\n\t\t * 只在**本 runtime 的活跃任务**里定位(越界即\"不存在\");宿主会话无 steer 面\n\t\t * 时按任务侧结构化错误透传。\n\t\t */\n\t\tconst createAgentTaskSteer = async (request: { taskId: string; text: string }): Promise<void> => {\n\t\t\tassertUsable();\n\t\t\tconst task = Array.from(agentTasks).find((candidate) => candidate.id === request.taskId);\n\t\t\tif (task === undefined) {\n\t\t\t\tthrow Object.assign(new Error(`no live agent task ${request.taskId} in this runtime`), {\n\t\t\t\t\tcode: \"subagent_unknown_task\",\n\t\t\t\t});\n\t\t\t}\n\t\t\tawait task.steer(request.text);\n\t\t};\n\t\tconst output: OutputArtifactAPI = {\n\t\t\tput: async (input, options) => {\n\t\t\t\tassertUsable();\n\t\t\t\tvalidateOutputInput(input);\n\t\t\t\tconst signal = options?.signal;\n\t\t\t\tconst throwIfAborted = (): void => {\n\t\t\t\t\tif (signal?.aborted) {\n\t\t\t\t\t\tthrow new OutputArtifactError(\n\t\t\t\t\t\t\t\"cancelled\",\n\t\t\t\t\t\t\t`Artifact write cancelled: ${String(signal.reason ?? \"cancelled\")}`,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tthrowIfAborted();\n\t\t\t\t// M4 双层限额:驻留缓冲封顶(形态见 bufferOutputArtifactData)。\n\t\t\t\t// sizeBytes/truncated 是运行时计算值——调用方传入的 truncated 只过\n\t\t\t\t// 类型校验,其值在组 ref 处被计算值覆盖,不再生效。\n\t\t\t\tconst { bytes, totalBytes, truncated } = await bufferOutputArtifactData(input.data, throwIfAborted);\n\t\t\t\t// A stream may yield after the plugin has been revoked. Never commit\n\t\t\t\t// bytes after the lifecycle boundary has closed.\n\t\t\t\tassertUsable();\n\t\t\t\tconst sequence = ++artifactSequence;\n\t\t\t\tconst artifactId = createRuntimeId(\"artifact\", sequence, `artifact:${owner}:${sequence}`);\n\t\t\t\tconst ref: OutputArtifactRef = {\n\t\t\t\t\tsessionId: input.sessionId,\n\t\t\t\t\toperationId: input.operationId,\n\t\t\t\t\tartifactId,\n\t\t\t\t\tkind: input.kind,\n\t\t\t\t\tmediaType: input.mediaType,\n\t\t\t\t\tsizeBytes: totalBytes,\n\t\t\t\t\ttruncated,\n\t\t\t\t\tcreatedAt: clock(),\n\t\t\t\t};\n\t\t\t\toutputArtifacts.set(artifactId, { ref, bytes, ownerToken });\n\t\t\t\t// Durable mirroring is a host concern, not a runtime one: the commit\n\t\t\t\t// observer receives the resident buffer reachable through stat/read.\n\t\t\t\t// That buffer is capped at OUTPUT_ARTIFACT_MAX_BUFFER_BYTES, so for an\n\t\t\t\t// oversized artifact the observer intentionally receives the truncated\n\t\t\t\t// head+marker+tail view (durable mirrors persist the truncated view)\n\t\t\t\t// while ref.sizeBytes keeps the original total. An observer failure is\n\t\t\t\t// recorded but never fails the committed artifact, and cleanup/revoke\n\t\t\t\t// intentionally do not re-emit (durable records are meant to outlive\n\t\t\t\t// the in-memory lifecycle boundary).\n\t\t\t\tif (onOutputArtifactCommit) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tonOutputArtifactCommit({ ref: { ...ref }, bytes });\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\trecordLog(\"error\", owner, \"Output artifact commit observer failed\", { artifactId }, error);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn { ...ref };\n\t\t\t},\n\t\t\tstat: async (ref) => {\n\t\t\t\tassertUsable();\n\t\t\t\tvalidateOutputRef(ref);\n\t\t\t\tconst artifact = outputArtifacts.get(ref.artifactId);\n\t\t\t\tif (!artifact) {\n\t\t\t\t\tthrow new OutputArtifactError(\"not_found\", `Output artifact is not available: ${ref.artifactId}`);\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\tref.sessionId !== artifact.ref.sessionId ||\n\t\t\t\t\tref.operationId !== artifact.ref.operationId ||\n\t\t\t\t\tref.kind !== artifact.ref.kind ||\n\t\t\t\t\tref.mediaType !== artifact.ref.mediaType ||\n\t\t\t\t\tref.sizeBytes !== artifact.ref.sizeBytes ||\n\t\t\t\t\tref.truncated !== artifact.ref.truncated ||\n\t\t\t\t\tref.createdAt !== artifact.ref.createdAt\n\t\t\t\t) {\n\t\t\t\t\tthrow new OutputArtifactError(\n\t\t\t\t\t\t\"invalid_ref\",\n\t\t\t\t\t\t`Output artifact reference does not match: ${ref.artifactId}`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn { ...artifact.ref };\n\t\t\t},\n\t\t\tread: async (ref, options) => {\n\t\t\t\tassertUsable();\n\t\t\t\tconst stored = await output.stat(ref);\n\t\t\t\tconst artifact = outputArtifacts.get(stored.artifactId);\n\t\t\t\tif (!artifact)\n\t\t\t\t\tthrow new OutputArtifactError(\"not_found\", `Output artifact is not available: ${stored.artifactId}`);\n\t\t\t\tconst offset = options?.offset ?? 0;\n\t\t\t\tconst maxBytes = options?.maxBytes ?? artifact.bytes.byteLength;\n\t\t\t\tif (!Number.isInteger(offset) || offset < 0) {\n\t\t\t\t\tthrow new OutputArtifactError(\"invalid_ref\", \"Artifact read offset must be a non-negative integer\");\n\t\t\t\t}\n\t\t\t\tif (!Number.isInteger(maxBytes) || maxBytes <= 0) {\n\t\t\t\t\tthrow new OutputArtifactError(\"invalid_ref\", \"Artifact read maxBytes must be a positive integer\");\n\t\t\t\t}\n\t\t\t\tconst end = Math.min(offset + maxBytes, artifact.bytes.byteLength);\n\t\t\t\tconst data = artifact.bytes.slice(Math.min(offset, artifact.bytes.byteLength), end);\n\t\t\t\tconst eof = end >= artifact.bytes.byteLength;\n\t\t\t\treturn { data, ...(eof ? {} : { nextOffset: end }), eof } satisfies OutputArtifactChunk;\n\t\t\t},\n\t\t};\n\t\tconst compositionHostPrimitives: AgentHostPrimitivesFactory = ({ instance, operationId, signal }) => {\n\t\t\tconst sessionApi = options.session;\n\t\t\tconst session = sessionApi\n\t\t\t\t? Object.freeze({\n\t\t\t\t\t\tversion: 1 as const,\n\t\t\t\t\t\tgetSessionId: () => sessionApi.getSessionId(),\n\t\t\t\t\t\t...(sessionApi.getRevision ? { getRevision: () => sessionApi.getRevision!() } : {}),\n\t\t\t\t\t\tgetMessages: () => sessionApi.getMessages(),\n\t\t\t\t\t\tgetBranchEntries: () => sessionApi.getBranchEntries(),\n\t\t\t\t\t\tisIdle: () => sessionApi.isIdle(),\n\t\t\t\t\t\tprompt: (text: string) => sessionApi.prompt(text),\n\t\t\t\t\t\t...(sessionApi.steer ? { steer: (text: string) => sessionApi.steer!(text) } : {}),\n\t\t\t\t\t\tabort: () => sessionApi.abort(),\n\t\t\t\t\t\twaitForIdle: () => sessionApi.waitForIdle(),\n\t\t\t\t\t\tappendEntry: (customType: string, data?: unknown) => sessionApi.appendEntry(customType, data),\n\t\t\t\t\t})\n\t\t\t\t: undefined;\n\t\t\tconst context =\n\t\t\t\thost.features.includes(\"context\") && sessionApi?.getContextSnapshot && sessionApi.commitContext\n\t\t\t\t\t? Object.freeze({\n\t\t\t\t\t\t\tversion: 1 as const,\n\t\t\t\t\t\t\tget: <TValue = unknown>() => sessionApi.getContextSnapshot!<TValue>(),\n\t\t\t\t\t\t\tcommit: async <TValue = unknown>(request: AgentContextCommitRequestV1<TValue>) => {\n\t\t\t\t\t\t\t\tif (request.operationId !== operationId) {\n\t\t\t\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\t\t\tt(\"Agent context operationId must match active operation: {operationId}\", {\n\t\t\t\t\t\t\t\t\t\t\toperationId,\n\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn sessionApi.commitContext!({ ...request, signal: request.signal ?? signal });\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t})\n\t\t\t\t\t: undefined;\n\t\t\tconst state = host.features.includes(\"plugin-state-v1\")\n\t\t\t\t? Object.freeze({\n\t\t\t\t\t\t...stateApi,\n\t\t\t\t\t\tset: (key: string, value: PluginConfigValue, options?: Parameters<StateAPI[\"set\"]>[2]) => {\n\t\t\t\t\t\t\tif (options?.operationId !== undefined && options.operationId !== operationId) {\n\t\t\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\t\tt(\"Agent state operationId must match active operation: {operationId}\", { operationId }),\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn stateApi.set(key, value, { ...options, operationId });\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdelete: (key: string, options?: Parameters<StateAPI[\"delete\"]>[1]) => {\n\t\t\t\t\t\t\tif (options?.operationId !== undefined && options.operationId !== operationId) {\n\t\t\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\t\tt(\"Agent state operationId must match active operation: {operationId}\", { operationId }),\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn stateApi.delete(key, { ...options, operationId });\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t\t: undefined;\n\t\t\tconst instanceState = host.features.includes(\"plugin-state-v1\")\n\t\t\t\t? createInstanceStateApi(owner, instance.id)\n\t\t\t\t: undefined;\n\t\t\tconst sessionId = options.session?.getSessionId();\n\t\t\tconst scopedOutput = guardedOutput(output, assertUsable);\n\t\t\tconst artifact =\n\t\t\t\thost.features.includes(\"output-artifacts\") && sessionId !== undefined\n\t\t\t\t\t? Object.freeze({\n\t\t\t\t\t\t\tput: (input: OutputArtifactPutInput, putOptions?: { signal?: AbortSignal }) => {\n\t\t\t\t\t\t\t\tif (input.sessionId !== sessionId || input.operationId !== operationId) {\n\t\t\t\t\t\t\t\t\tthrow new OutputArtifactError(\n\t\t\t\t\t\t\t\t\t\t\"invalid_ref\",\n\t\t\t\t\t\t\t\t\t\t`Agent artifact must use active session and operation: ${operationId}`,\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn scopedOutput.put(input, putOptions);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tstat: async (ref: OutputArtifactRef) => {\n\t\t\t\t\t\t\t\tif (ref.sessionId !== sessionId || ref.operationId !== operationId) {\n\t\t\t\t\t\t\t\t\tthrow new OutputArtifactError(\n\t\t\t\t\t\t\t\t\t\t\"invalid_ref\",\n\t\t\t\t\t\t\t\t\t\t`Agent artifact must use active session and operation: ${operationId}`,\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn scopedOutput.stat(ref);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tread: async (ref: OutputArtifactRef, readOptions?: { offset?: number; maxBytes?: number }) => {\n\t\t\t\t\t\t\t\tif (ref.sessionId !== sessionId || ref.operationId !== operationId) {\n\t\t\t\t\t\t\t\t\tthrow new OutputArtifactError(\n\t\t\t\t\t\t\t\t\t\t\"invalid_ref\",\n\t\t\t\t\t\t\t\t\t\t`Agent artifact must use active session and operation: ${operationId}`,\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn scopedOutput.read(ref, readOptions);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t})\n\t\t\t\t\t: undefined;\n\t\t\tconst modelFacade =\n\t\t\t\toptions.modelRuntime && sessionApi\n\t\t\t\t\t? Object.freeze({\n\t\t\t\t\t\t\tversion: 1 as const,\n\t\t\t\t\t\t\tget facts() {\n\t\t\t\t\t\t\t\tconst runtime = options.modelRuntime!;\n\t\t\t\t\t\t\t\tconst resolved = runtime.getModelFacts();\n\t\t\t\t\t\t\t\tif (!resolved) throw new Error(t(\"No model is set on this session's agent\"));\n\t\t\t\t\t\t\t\treturn resolved;\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tinvocation: {\n\t\t\t\t\t\t\t\tinvoke: async (\n\t\t\t\t\t\t\t\t\tinput: {\n\t\t\t\t\t\t\t\t\t\tversion: 1;\n\t\t\t\t\t\t\t\t\t\tsystemPrompt?: string;\n\t\t\t\t\t\t\t\t\t\tprompt: string;\n\t\t\t\t\t\t\t\t\t\tmaxTokens?: number;\n\t\t\t\t\t\t\t\t\t\tthinkingLevel?: string;\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tsignal: AbortSignal,\n\t\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\t\tconst runtime = options.modelRuntime;\n\t\t\t\t\t\t\t\t\tif (!runtime) throw new Error(t(\"Agent model runtime is not available\"));\n\t\t\t\t\t\t\t\t\treturn runtime.invoke(\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t...(input.systemPrompt === undefined ? {} : { systemPrompt: input.systemPrompt }),\n\t\t\t\t\t\t\t\t\t\t\tprompt: input.prompt,\n\t\t\t\t\t\t\t\t\t\t\t...(input.maxTokens === undefined ? {} : { maxTokens: input.maxTokens }),\n\t\t\t\t\t\t\t\t\t\t\t...(input.thinkingLevel === undefined ? {} : { thinkingLevel: input.thinkingLevel }),\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t{ signal },\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t})\n\t\t\t\t\t: undefined;\n\t\t\tconst toolFacade = host.features.includes(\"tools\")\n\t\t\t\t? Object.freeze({\n\t\t\t\t\t\tversion: 1 as const,\n\t\t\t\t\t\tlistTools: () => {\n\t\t\t\t\t\t\tassertUsable();\n\t\t\t\t\t\t\treturn [...tools.entries()]\n\t\t\t\t\t\t\t\t.filter(([, entry]) => activeOwnerTokens.has(entry.ownerToken))\n\t\t\t\t\t\t\t\t.sort(([left], [right]) => stableTextCompare(left, right))\n\t\t\t\t\t\t\t\t.map(([name, entry]) => ({\n\t\t\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\t\t\tdefinition: definitionSnapshot(entry.value),\n\t\t\t\t\t\t\t\t\tsource: entry.owner,\n\t\t\t\t\t\t\t\t\treadonlySafe: toolReadonlySafe(entry.value),\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t},\n\t\t\t\t\t\tinvokeTool: (name: string, input: unknown, invokeOptions?: { readonly signal?: AbortSignal }) => {\n\t\t\t\t\t\t\tassertUsable();\n\t\t\t\t\t\t\tconst registered = tools.get(name);\n\t\t\t\t\t\t\tif (!registered || !activeOwnerTokens.has(registered.ownerToken)) {\n\t\t\t\t\t\t\t\tthrow new Error(t(\"Agent tool is not registered: {name}\", { name }));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn invokeRegisteredCapability(registered, (value) =>\n\t\t\t\t\t\t\t\tinvokeCapabilityTool(\n\t\t\t\t\t\t\t\t\tasHandler(value, \"Tool\"),\n\t\t\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\t\t\ttoolExecutionContext,\n\t\t\t\t\t\t\t\t\tinvokeOptions?.signal,\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t\t: undefined;\n\t\t\treturn Object.freeze({\n\t\t\t\tversion: 1 as const,\n\t\t\t\t...(session ? { session } : {}),\n\t\t\t\t...(context ? { context } : {}),\n\t\t\t\t...(state ? { state } : {}),\n\t\t\t\t...(instanceState ? { instanceState } : {}),\n\t\t\t\t...(artifact ? { artifact } : {}),\n\t\t\t\t...(modelFacade ? { model: modelFacade } : {}),\n\t\t\t\t...(toolFacade ? { tool: toolFacade } : {}),\n\t\t\t});\n\t\t};\n\t\tconst lifecycle: LifecycleAPI = {\n\t\t\tdefine<TData>(definition: LifecycleEventDefinition<TData>): LifecycleEventDefinition<TData> {\n\t\t\t\tassertUsable();\n\t\t\t\tconst normalized = validateLifecycleEventDefinition(definition);\n\t\t\t\tconst key = lifecycleEventKey(normalized.id, normalized.version);\n\t\t\t\tif (lifecycleDefinitions.has(key)) throw new Error(t(\"Lifecycle event is already defined: {key}\", { key }));\n\t\t\t\tlifecycleDefinitions.set(key, { owner, ownerToken, definition: normalized });\n\t\t\t\tconst registration = own(\n\t\t\t\t\tcreateDisposableRegistration(\n\t\t\t\t\t\t\"lifecycle-definition\",\n\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\tconst current = lifecycleDefinitions.get(key);\n\t\t\t\t\t\t\tif (current?.ownerToken !== ownerToken) return;\n\t\t\t\t\t\t\tlifecycleDefinitions.delete(key);\n\t\t\t\t\t\t\tconst registrations = lifecycleRegistrations.get(key);\n\t\t\t\t\t\t\tif (registrations) {\n\t\t\t\t\t\t\t\tfor (const registration of registrations.values())\n\t\t\t\t\t\t\t\t\tcloseLifecycleRegistrationQueue(registration);\n\t\t\t\t\t\t\t\tlifecycleRegistrations.delete(key);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t`registration:${owner}:lifecycle-definition:${key}`,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t\tvoid registration;\n\t\t\t\treturn normalized;\n\t\t\t},\n\t\t\tget<TData = unknown>(id: string, version: number): LifecycleEventDefinition<TData> {\n\t\t\t\tassertUsable();\n\t\t\t\treturn lifecycleDefinitionFor<TData>({ id, version }).definition;\n\t\t\t},\n\t\t\tregisterObserve<TData = unknown>(\n\t\t\t\tevent: LifecycleEventDefinition<TData> | LifecycleEventReference | string,\n\t\t\t\thandler: LifecycleObserveHandler<TData>,\n\t\t\t\tversion?: number,\n\t\t\t\toptions?: LifecycleDeliveryOptions,\n\t\t\t): DisposableRegistration {\n\t\t\t\treturn lifecycleRegistration(\n\t\t\t\t\t\"observe\",\n\t\t\t\t\tevent,\n\t\t\t\t\thandler,\n\t\t\t\t\tversion,\n\t\t\t\t\towner,\n\t\t\t\t\townerToken,\n\t\t\t\t\tassertUsable,\n\t\t\t\t\town,\n\t\t\t\t\toptions,\n\t\t\t\t);\n\t\t\t},\n\t\t\tregisterTransform<TData = unknown>(\n\t\t\t\tevent: LifecycleEventDefinition<TData> | LifecycleEventReference | string,\n\t\t\t\thandler: LifecycleTransformHandler<TData>,\n\t\t\t\tversion?: number,\n\t\t\t): DisposableRegistration {\n\t\t\t\treturn lifecycleRegistration(\"transform\", event, handler, version, owner, ownerToken, assertUsable, own);\n\t\t\t},\n\t\t\tregisterExecute<TData = unknown>(\n\t\t\t\tevent: LifecycleEventDefinition<TData> | LifecycleEventReference | string,\n\t\t\t\thandler: LifecycleExecuteHandler<TData>,\n\t\t\t\tversion?: number,\n\t\t\t): DisposableRegistration {\n\t\t\t\treturn lifecycleRegistration(\"execute\", event, handler, version, owner, ownerToken, assertUsable, own);\n\t\t\t},\n\t\t\tregisterAfterCommit<TData = unknown>(\n\t\t\t\tevent: LifecycleEventDefinition<TData> | LifecycleEventReference | string,\n\t\t\t\thandler: LifecycleAfterCommitHandler<TData>,\n\t\t\t\tversion?: number,\n\t\t\t\toptions?: LifecycleDeliveryOptions,\n\t\t\t): DisposableRegistration {\n\t\t\t\treturn lifecycleRegistration(\n\t\t\t\t\t\"after-commit\",\n\t\t\t\t\tevent,\n\t\t\t\t\thandler,\n\t\t\t\t\tversion,\n\t\t\t\t\towner,\n\t\t\t\t\townerToken,\n\t\t\t\t\tassertUsable,\n\t\t\t\t\town,\n\t\t\t\t\toptions,\n\t\t\t\t);\n\t\t\t},\n\t\t};\n\t\tconst api: CapabilityAPI = {\n\t\t\tmanifest: apiManifest,\n\t\t\thost: hostWithServices,\n\t\t\tconfig,\n\t\t\t...(host.features.includes(\"logger-v1\") ? { logger } : {}),\n\t\t\t...(host.features.includes(\"diagnostics-v1\") ? { diagnostics } : {}),\n\t\t\t...(host.features.includes(\"plugin-state-v1\") ? { state: stateApi } : {}),\n\t\t\t...(host.features.includes(\"runtime-inspector-v1\")\n\t\t\t\t? { inspector: { snapshot: () => inspect() } satisfies RuntimeInspectorAPI }\n\t\t\t\t: {}),\n\t\t\tcapabilities,\n\t\t\tcontributions,\n\t\t\tlifecycle,\n\t\t\t...(hasSession && options.session\n\t\t\t\t? {\n\t\t\t\t\t\tsession: guardedSession(options.session, assertUsable, {\n\t\t\t\t\t\t\tallowExport: hasSessionExport,\n\t\t\t\t\t\t\tallowRevision: hasSessionRevision,\n\t\t\t\t\t\t}),\n\t\t\t\t\t}\n\t\t\t\t: {}),\n\t\t\t...(host.features.includes(\"output-artifacts\") ? { output: guardedOutput(output, assertUsable) } : {}),\n\t\t\t...(host.features.includes(\"credentials\") && options.credentials\n\t\t\t\t? { credentials: guardedCredentials(options.credentials, assertUsable) }\n\t\t\t\t: {}),\n\t\t\t// agents 成员随 feature 在场即构建(构造期断言已保证 feature/选项配对),\n\t\t\t// 各成员再按宿主注入逐项条件化:任务面跟 adapter,durable replay 跟\n\t\t\t// agentResults 存储,回读面跟 reader/lister。\n\t\t\t...(host.features.includes(\"agents\")\n\t\t\t\t? {\n\t\t\t\t\t\tagents: {\n\t\t\t\t\t\t\t// 任务面(create/steer)只在宿主注入 adapter 时存在;reader/lister-only\n\t\t\t\t\t\t\t// 宿主(承载退役切片 2:pooled 叶子/只读回读)的 agents 只承载回读,\n\t\t\t\t\t\t\t// 委派面由 delegate 的池化装配或宿主 adapter 提供。\n\t\t\t\t\t\t\t...(options.agents === undefined\n\t\t\t\t\t\t\t\t? {}\n\t\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\t\tcreate: createAgentTask,\n\t\t\t\t\t\t\t\t\t\t// 父→子引导(D-060 S4,程序面):运行中任务的有界 steer。\n\t\t\t\t\t\t\t\t\t\tsteer: createAgentTaskSteer,\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t// durable replay 读取跟随 agentResults 存储(与 adapter 无关):\n\t\t\t\t\t\t\t// serve 装配的重建读取面没有 adapter 也必须可用。\n\t\t\t\t\t\t\t...(options.agentResults === undefined ? {} : { result: createAgentResultReader }),\n\t\t\t\t\t\t\t// 会话回读(D-060 S3):宿主注入读取器才暴露;作用域由宿主强制。\n\t\t\t\t\t\t\t...(options.agentSessionReader === undefined\n\t\t\t\t\t\t\t\t? {}\n\t\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\t\tsession: async (sessionId: string) => {\n\t\t\t\t\t\t\t\t\t\t\tassertUsable();\n\t\t\t\t\t\t\t\t\t\t\treturn options.agentSessionReader?.(sessionId);\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t// 子会话盘点(D-060 模型面):宿主注入列举器才暴露;只回本会话的子会话。\n\t\t\t\t\t\t\t...(options.agentSessionLister === undefined\n\t\t\t\t\t\t\t\t? {}\n\t\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\t\tlist: async (): Promise<AgentTaskSessionSummaryV1[]> => {\n\t\t\t\t\t\t\t\t\t\t\tassertUsable();\n\t\t\t\t\t\t\t\t\t\t\treturn options.agentSessionLister?.() ?? [];\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t: {}),\n\t\t\t// Session cancel fence (D-044 §4.2) as a public getter: consulted per\n\t\t\t// call so plugins cascade against the current epoch signal, never a\n\t\t\t// signal captured at API creation time. Absent when the host injects\n\t\t\t// no parentSignal (behavior unchanged).\n\t\t\t...(options.parentSignal === undefined ? {} : { sessionAbortSignal: () => options.parentSignal?.() }),\n\t\t\t// Host trace service (D-075 S4 second batch): the adapter rides\n\t\t\t// `api.trace`, its budget overrides ride `api.traceSinkOptions`.\n\t\t\t// Absent when the host injects no trace service.\n\t\t\t...(options.trace === undefined\n\t\t\t\t? {}\n\t\t\t\t: {\n\t\t\t\t\t\ttrace: options.trace.adapter,\n\t\t\t\t\t\t...(options.trace.options === undefined ? {} : { traceSinkOptions: options.trace.options }),\n\t\t\t\t\t}),\n\t\t\t...(host.features.includes(\"interaction\") && options.interaction\n\t\t\t\t? { interaction: guardedInteraction(options.interaction, owner, assertUsable, own) }\n\t\t\t\t: {}),\n\t\t\t...(host.features.includes(\"agent-composition-v1\") && options.composition\n\t\t\t\t? {\n\t\t\t\t\t\tcomposition: guardedComposition(\n\t\t\t\t\t\t\toptions.composition,\n\t\t\t\t\t\t\tassertUsable,\n\t\t\t\t\t\t\t(instance) => {\n\t\t\t\t\t\t\t\tstate.compositionInstances?.add(instance);\n\t\t\t\t\t\t\t\tinstanceStateOwners.set(instance.id, owner);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t(definition) => state.compositionDefinitions?.add(definition),\n\t\t\t\t\t\t\tcompositionHostPrimitives,\n\t\t\t\t\t\t\tcompositionLifecycleDispatcher,\n\t\t\t\t\t\t\tmanifestSnapshot,\n\t\t\t\t\t\t),\n\t\t\t\t\t}\n\t\t\t\t: {}),\n\t\t\tregisterTool(definition) {\n\t\t\t\tassertUsable();\n\t\t\t\tconst name = capabilityName(definition, \"Tool\");\n\t\t\t\t// 工具是唯一可替换的注册面:同名重注册 = 替换生效(后装载者赢),\n\t\t\t\t// 被替换者入链,替换方 dispose 时逐层恢复(bootstrap 内建与第三方\n\t\t\t\t// 插件因此可共存)。\n\t\t\t\treturn own(register(\"tool\", name, definition, owner, ownerToken, tools, { replaceable: true }));\n\t\t\t},\n\t\t\tregisterCommand(definition) {\n\t\t\t\tassertUsable();\n\t\t\t\tconst command = validateCommandDefinition(definition);\n\t\t\t\treturn own(register(\"command\", command.name, command, owner, ownerToken, commands));\n\t\t\t},\n\t\t\tregisterOperation(name, handler) {\n\t\t\t\tassertUsable();\n\t\t\t\tif (!name) throw new Error(t(\"Operation requires a non-empty name\"));\n\t\t\t\treturn own(register(\"operation\", name, handler, owner, ownerToken, operations));\n\t\t\t},\n\t\t\tregisterRpcMethod(name, handler) {\n\t\t\t\tassertUsable();\n\t\t\t\tif (!name) throw new Error(t(\"RPC method requires a non-empty name\"));\n\t\t\t\treturn own(register(\"rpc\", name, handler, owner, ownerToken, rpcMethods));\n\t\t\t},\n\t\t\tregisterContextStrategy(name, strategy) {\n\t\t\t\tassertUsable();\n\t\t\t\tif (!name) throw new Error(t(\"Context strategy requires a non-empty name\"));\n\t\t\t\treturn own(register(\"context-strategy\", name, strategy, owner, ownerToken, contextStrategies));\n\t\t\t},\n\t\t\tregisterEntryProjection(projection) {\n\t\t\t\tassertUsable();\n\t\t\t\tif (!projection?.customType) throw new Error(t(\"Entry projection requires a non-empty customType\"));\n\t\t\t\tif (typeof projection.project !== \"function\") {\n\t\t\t\t\tthrow new Error(t(\"Entry projection requires a callable project\"));\n\t\t\t\t}\n\t\t\t\t// 转发到宿主 SessionAPI(SessionManager 持有注册表并应用于上下文投影)。\n\t\t\t\t// 宿主未支持时显式失败——第三方与第一方看到同一个错误。\n\t\t\t\tconst register = options.session?.registerEntryProjection;\n\t\t\t\tif (register === undefined) {\n\t\t\t\t\tthrow new Error(t(\"Entry projections require a host with entry projection support\"));\n\t\t\t\t}\n\t\t\t\tconst wrapped: EntryProjection = {\n\t\t\t\t\tcustomType: projection.customType,\n\t\t\t\t\tproject: (entries) => projection.project(entries),\n\t\t\t\t};\n\t\t\t\tconst dispose = register(wrapped);\n\t\t\t\treturn own({\n\t\t\t\t\tid: `entry-projection:${projection.customType}`,\n\t\t\t\t\tkind: \"entry-projection\",\n\t\t\t\t\tdispose: () => {\n\t\t\t\t\t\tdispose();\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t},\n\t\t\tregisterProviderHeaderTransform(name, transform) {\n\t\t\t\tassertUsable();\n\t\t\t\tif (!name) throw new Error(t(\"Provider header transform requires a non-empty name\"));\n\t\t\t\tif (typeof transform !== \"function\") {\n\t\t\t\t\tthrow new Error(t(\"Provider header transform requires a callable transform\"));\n\t\t\t\t}\n\t\t\t\treturn own(\n\t\t\t\t\tregister(\"provider-header-transform\", name, transform, owner, ownerToken, providerHeaderTransforms),\n\t\t\t\t);\n\t\t\t},\n\t\t\tregisterStreamFnWrapper(name, wrapper, wrapperOptions) {\n\t\t\t\tassertUsable();\n\t\t\t\tif (!name) throw new Error(t(\"Stream function wrapper requires a non-empty name\"));\n\t\t\t\tif (typeof wrapper !== \"function\") {\n\t\t\t\t\tthrow new Error(t(\"Stream function wrapper requires a callable wrapper\"));\n\t\t\t\t}\n\t\t\t\t// 契约 A(D-082 批 3b):priority 低值更外层,缺省 0(与既有注册序语义\n\t\t\t\t// 等价——同 priority 保持注册序,先注册最外层)。\n\t\t\t\tconst priority = wrapperOptions?.priority ?? 0;\n\t\t\t\tif (typeof priority !== \"number\" || !Number.isFinite(priority)) {\n\t\t\t\t\tthrow new Error(t(\"Stream function wrapper priority must be a finite number\"));\n\t\t\t\t}\n\t\t\t\tif (streamFnWrapperRegistry.has(name)) {\n\t\t\t\t\tthrow new Error(t(\"{kind} is already registered: {name}\", { kind: \"stream-fn-wrapper\", name }));\n\t\t\t\t}\n\t\t\t\tconst entry: StoredStreamFnWrapper = {\n\t\t\t\t\towner,\n\t\t\t\t\townerToken,\n\t\t\t\t\tvalue: wrapper,\n\t\t\t\t\tpriority,\n\t\t\t\t\tsequence: ++streamFnWrapperSequence,\n\t\t\t\t};\n\t\t\t\tstreamFnWrapperRegistry.set(name, entry);\n\t\t\t\treturn own(\n\t\t\t\t\tcreateDisposableRegistration(\n\t\t\t\t\t\t\"stream-fn-wrapper\",\n\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\tif (streamFnWrapperRegistry.get(name) !== entry) return;\n\t\t\t\t\t\t\tstreamFnWrapperRegistry.delete(name);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t`registration:${owner}:stream-fn-wrapper:${name}`,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t},\n\t\t\tregisterSkill(definition) {\n\t\t\t\tassertUsable();\n\t\t\t\tconst name = capabilityName(definition, \"Skill\");\n\t\t\t\tif (typeof definition.description !== \"string\" || !definition.description.trim()) {\n\t\t\t\t\tthrow new Error(t(\"Skill definition requires a non-empty description\"));\n\t\t\t\t}\n\t\t\t\tif (typeof definition.filePath !== \"string\" || !definition.filePath) {\n\t\t\t\t\tthrow new Error(t(\"Skill definition requires a filePath\"));\n\t\t\t\t}\n\t\t\t\tif (typeof definition.baseDir !== \"string\" || !definition.baseDir) {\n\t\t\t\t\tthrow new Error(t(\"Skill definition requires a baseDir\"));\n\t\t\t\t}\n\t\t\t\treturn own(register(\"skill\", name, definition, owner, ownerToken, skills));\n\t\t\t},\n\t\t\tregisterRetryPolicy(name, policy) {\n\t\t\t\tassertUsable();\n\t\t\t\tif (!name) throw new Error(t(\"Retry policy requires a non-empty name\"));\n\t\t\t\tif (!policy || typeof policy.decide !== \"function\") {\n\t\t\t\t\tthrow new Error(t(\"Retry policy requires a decide function\"));\n\t\t\t\t}\n\t\t\t\treturn own(register(\"retry-policy\", name, policy, owner, ownerToken, retryPolicies));\n\t\t\t},\n\t\t\tregisterCompactionPolicy(name, policy) {\n\t\t\t\tassertUsable();\n\t\t\t\tif (!name) throw new Error(t(\"Compaction policy requires a non-empty name\"));\n\t\t\t\tif (!policy || typeof policy.decide !== \"function\") {\n\t\t\t\t\tthrow new Error(t(\"Compaction policy requires a decide function\"));\n\t\t\t\t}\n\t\t\t\treturn own(register(\"compaction-policy\", name, policy, owner, ownerToken, compactionPolicies));\n\t\t\t},\n\t\t\tregisterOverflowPolicy(name, policy) {\n\t\t\t\tassertUsable();\n\t\t\t\tif (!name) throw new Error(t(\"Overflow policy requires a non-empty name\"));\n\t\t\t\tif (!policy || typeof policy.decide !== \"function\") {\n\t\t\t\t\tthrow new Error(t(\"Overflow policy requires a decide function\"));\n\t\t\t\t}\n\t\t\t\treturn own(register(\"overflow-policy\", name, policy, owner, ownerToken, overflowPolicies));\n\t\t\t},\n\t\t\tregisterBranchSummaryPolicy(name, policy) {\n\t\t\t\tassertUsable();\n\t\t\t\tif (!name) throw new Error(t(\"Branch summary policy requires a non-empty name\"));\n\t\t\t\tif (!policy || typeof policy.summarize !== \"function\") {\n\t\t\t\t\tthrow new Error(t(\"Branch summary policy requires a summarize function\"));\n\t\t\t\t}\n\t\t\t\treturn own(register(\"branch-summary-policy\", name, policy, owner, ownerToken, branchSummaryPolicies));\n\t\t\t},\n\t\t\tregisterLoopHook(position, handler) {\n\t\t\t\tassertUsable();\n\t\t\t\tconst positions: readonly string[] = [\n\t\t\t\t\t\"beforeInput\",\n\t\t\t\t\t\"beforeToolCall\",\n\t\t\t\t\t\"afterToolCall\",\n\t\t\t\t\t\"transformContext\",\n\t\t\t\t\t\"prepareNextTurn\",\n\t\t\t\t\t\"shouldStopAfterTurn\",\n\t\t\t\t];\n\t\t\t\tif (!positions.includes(position)) {\n\t\t\t\t\tthrow new Error(t(\"Agent loop hook position is invalid: {value}\", { value: String(position) }));\n\t\t\t\t}\n\t\t\t\tif (typeof handler !== \"function\") {\n\t\t\t\t\tthrow new Error(t(\"Agent loop hook requires a callable handler\"));\n\t\t\t\t}\n\t\t\t\tconst entries = loopHooks.get(position) ?? [];\n\t\t\t\tloopHooks.set(position, entries);\n\t\t\t\tconst entry: RegisteredCapability<AgentLoopHookHandlerV1> = { owner, ownerToken, value: handler };\n\t\t\t\tentries.push(entry);\n\t\t\t\tconst id = `registration:${owner}:loop-hook:${position}:${++loopHookSequence}`;\n\t\t\t\treturn own(\n\t\t\t\t\tcreateDisposableRegistration(\n\t\t\t\t\t\t\"loop-hook\",\n\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\tconst current = loopHooks.get(position);\n\t\t\t\t\t\t\tif (!current) return;\n\t\t\t\t\t\t\tconst index = current.indexOf(entry);\n\t\t\t\t\t\t\tif (index >= 0) current.splice(index, 1);\n\t\t\t\t\t\t\tif (current.length === 0) loopHooks.delete(position);\n\t\t\t\t\t\t},\n\t\t\t\t\t\tid,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t},\n\t\t\tregisterRunLoopStrategy(name, strategy) {\n\t\t\t\tassertUsable();\n\t\t\t\tif (!name) throw new Error(t(\"Run loop strategy requires a non-empty name\"));\n\t\t\t\tif (!strategy || typeof strategy.decideNextCycle !== \"function\") {\n\t\t\t\t\tthrow new Error(t(\"Run loop strategy requires a decideNextCycle function\"));\n\t\t\t\t}\n\t\t\t\treturn own(register(\"run-loop-strategy\", name, strategy, owner, ownerToken, runLoopStrategies));\n\t\t\t},\n\t\t\tsubscribe(type, handler) {\n\t\t\t\tassertUsable();\n\t\t\t\tif (!type) throw new Error(t(\"Event type requires a non-empty name\"));\n\t\t\t\tconst handlers = subscribers.get(type) ?? new Map();\n\t\t\t\tsubscribers.set(type, handlers);\n\t\t\t\tconst sequence = ++subscriptionSequence;\n\t\t\t\tconst id = createRuntimeId(\"subscription\", sequence, `subscription:${owner}:${type}:${sequence}`);\n\t\t\t\thandlers.set(id, { owner, ownerToken, value: handler as (event: EventEnvelope) => void | Promise<void> });\n\t\t\t\treturn own(\n\t\t\t\t\tcreateDisposableRegistration(\n\t\t\t\t\t\t\"subscription\",\n\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\thandlers.delete(id);\n\t\t\t\t\t\t\tif (handlers.size === 0) subscribers.delete(type);\n\t\t\t\t\t\t},\n\t\t\t\t\t\tid,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t},\n\t\t\tasync publish(event) {\n\t\t\t\tassertUsable();\n\t\t\t\tconst envelope = detachedSnapshot(\n\t\t\t\t\tcreateEventEnvelope(\n\t\t\t\t\t\t{ ...event, source: owner },\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: createRuntimeId(\n\t\t\t\t\t\t\t\t\"event\",\n\t\t\t\t\t\t\t\t++runtimeState.eventSequence,\n\t\t\t\t\t\t\t\t`event:${owner}:${runtimeState.eventSequence}`,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\ttimestamp: clock(),\n\t\t\t\t\t\t},\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t\tconst results: PromiseSettledResult<void>[] = [];\n\t\t\t\tfor (const [subscriptionId, subscriber] of subscribers.get(envelope.type)?.entries() ?? []) {\n\t\t\t\t\tconst startedAt = performance.now();\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait invokeRegisteredCapability(subscriber, (handler) => handler(detachedSnapshot(envelope)));\n\t\t\t\t\t\tresults.push({ status: \"fulfilled\", value: undefined });\n\t\t\t\t\t} catch (reason) {\n\t\t\t\t\t\tresults.push({ status: \"rejected\", reason });\n\t\t\t\t\t} finally {\n\t\t\t\t\t\t// 慢订阅者观测:成功与异常路径都记(异常本身仍走原有隔离通道)。\n\t\t\t\t\t\tconst durationMs = performance.now() - startedAt;\n\t\t\t\t\t\tif (durationMs > SLOW_EVENT_SUBSCRIBER_WARN_MS) {\n\t\t\t\t\t\t\trecordLog(\"warn\", subscriber.owner, \"Slow event subscriber\", {\n\t\t\t\t\t\t\t\teventType: envelope.type,\n\t\t\t\t\t\t\t\tsubscriptionId,\n\t\t\t\t\t\t\t\tdurationMs: Math.round(durationMs),\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tassertUsable();\n\t\t\t\tconst failures = results\n\t\t\t\t\t.filter((result): result is PromiseRejectedResult => result.status === \"rejected\")\n\t\t\t\t\t.map((result) => result.reason)\n\t\t\t\t\t.filter((error) => !isRevokedCapabilityError(error));\n\t\t\t\tif (failures.length === 1) throw failures[0];\n\t\t\t\tif (failures.length > 1)\n\t\t\t\t\tthrow new AggregateError(failures, `Capability event delivery failed: ${envelope.type}`);\n\t\t\t\treturn envelope;\n\t\t\t},\n\t\t\tcall<TResult = unknown>(\n\t\t\t\toperation: string,\n\t\t\t\tinput: unknown,\n\t\t\t\toptions?: { signal?: AbortSignal },\n\t\t\t): OperationHandle<TResult> {\n\t\t\t\tassertUsable();\n\t\t\t\tconst registered = operations.get(operation);\n\t\t\t\tif (!registered) throw new Error(t(\"Operation is not registered: {operation}\", { operation }));\n\t\t\t\tassertRegisteredCapabilityActive(registered);\n\t\t\t\tconst sequence = ++operationSequence;\n\t\t\t\tconst id = createRuntimeId(\"operation\", sequence, `operation:${owner}:${operation}:${sequence}`);\n\t\t\t\tconst handle = trackOperation(\n\t\t\t\t\t[ownerToken, registered.ownerToken],\n\t\t\t\t\tnew RuntimeOperation<TResult>(\n\t\t\t\t\t\tid,\n\t\t\t\t\t\t(value, context) => invokeRegisteredCapability(registered, (handler) => handler(value, context)),\n\t\t\t\t\t\tinput,\n\t\t\t\t\t\t(status) => {\n\t\t\t\t\t\t\tsetOperationStatus(runtimeState, id, status);\n\t\t\t\t\t\t\tif (status === \"running\") {\n\t\t\t\t\t\t\t\treportOperationStart(id, operation, [ownerToken, registered.ownerToken]);\n\t\t\t\t\t\t\t} else if (status === \"cancelled\") {\n\t\t\t\t\t\t\t\treportOperationCancel(id, operation, [ownerToken, registered.ownerToken]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t(status) => reportOperationEnd(id, operation, status, [ownerToken, registered.ownerToken]),\n\t\t\t\t\t\t(() => {\n\t\t\t\t\t\t\tlet step = 0;\n\t\t\t\t\t\t\treturn (progress) =>\n\t\t\t\t\t\t\t\treportOperationStep(id, operation, [ownerToken, registered.ownerToken], progress, ++step);\n\t\t\t\t\t\t})(),\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t\tsetOperationStatus(runtimeState, id, handle.status());\n\t\t\t\tconst signal = options?.signal;\n\t\t\t\tif (signal) {\n\t\t\t\t\tif (signal.aborted) void handle.cancel(signal.reason);\n\t\t\t\t\telse\n\t\t\t\t\t\tsignal.addEventListener(\"abort\", () => void handle.cancel(signal.reason), {\n\t\t\t\t\t\t\tonce: true,\n\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn handle;\n\t\t\t},\n\t\t};\n\t\tapiStates.set(api, state);\n\t\treturn api;\n\t};\n\n\treturn {\n\t\thost: hostWithServices,\n\t\tresolvePluginCapabilityOrder,\n\t\tcreateAPI: apiFor,\n\t\trevokeAPI(api) {\n\t\t\tconst state = apiStates.get(api);\n\t\t\tif (state) revokeState(api, state);\n\t\t},\n\t\trevokeAllAPIs() {\n\t\t\tfor (const [api, state] of apiStates) revokeState(api, state);\n\t\t},\n\t\tasync disposeAll() {\n\t\t\tconst owners = [...pluginRegistrations.keys()];\n\t\t\tthis.revokeAllAPIs();\n\t\t\tconst failures: unknown[] = [];\n\t\t\tfor (const owner of owners) {\n\t\t\t\ttry {\n\t\t\t\t\tawait this.disposePlugin(owner);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tfailures.push(error);\n\t\t\t\t}\n\t\t\t}\n\t\t\tawait this.drainLifecycleDeliveries();\n\t\t\tif (failures.length === 1) throw failures[0];\n\t\t\tif (failures.length > 1) throw new AggregateError(failures, \"Capability runtime disposal failed\");\n\t\t},\n\t\tdisposePluginSync(id) {\n\t\t\tfor (const [api, state] of apiStates) if (state.owner === id) revokeState(api, state);\n\t\t\tconst registrations = pluginRegistrations.get(id);\n\t\t\tif (!registrations) return;\n\t\t\tpluginRegistrations.delete(id);\n\t\t\tconst failures: unknown[] = [];\n\t\t\tfor (const registration of registrations) {\n\t\t\t\ttry {\n\t\t\t\t\tconst result = registration.dispose();\n\t\t\t\t\tif (result && typeof (result as PromiseLike<void>).then === \"function\") {\n\t\t\t\t\t\tobserveUnexpectedAsyncCleanup(result as PromiseLike<void>, id);\n\t\t\t\t\t\tthrow new Error(t(\"Capability plugin {id} has asynchronous cleanup; use the async loader\", { id }));\n\t\t\t\t\t}\n\t\t\t\t} catch (error) {\n\t\t\t\t\tfailures.push(error);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (failures.length === 1) throw failures[0];\n\t\t\tif (failures.length > 1) throw new AggregateError(failures, `Capability plugin disposal failed: ${id}`);\n\t\t},\n\t\tasync disposePlugin(id) {\n\t\t\tfor (const [api, state] of apiStates) if (state.owner === id) revokeState(api, state);\n\t\t\tconst registrations = pluginRegistrations.get(id);\n\t\t\tif (!registrations) return;\n\t\t\tpluginRegistrations.delete(id);\n\t\t\tconst failures: unknown[] = [];\n\t\t\tfor (const registration of registrations) {\n\t\t\t\ttry {\n\t\t\t\t\tawait registration.dispose();\n\t\t\t\t} catch (error) {\n\t\t\t\t\tfailures.push(error);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (failures.length === 1) throw failures[0];\n\t\t\tif (failures.length > 1) throw new AggregateError(failures, `Capability plugin disposal failed: ${id}`);\n\t\t},\n\t\tlistTools: () =>\n\t\t\tObject.freeze(\n\t\t\t\tArray.from(tools.entries())\n\t\t\t\t\t.filter(([, entry]) => activeOwnerTokens.has(entry.ownerToken))\n\t\t\t\t\t.sort(([left], [right]) => stableTextCompare(left, right))\n\t\t\t\t\t.map(([name, entry]) =>\n\t\t\t\t\t\tObject.freeze({\n\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\tdefinition: withNormalizedToolResultExecute(definitionSnapshot(entry.value)),\n\t\t\t\t\t\t\tsource: entry.owner,\n\t\t\t\t\t\t\treadonlySafe: toolReadonlySafe(entry.value),\n\t\t\t\t\t\t}),\n\t\t\t\t\t),\n\t\t\t),\n\t\tlistCommands: () =>\n\t\t\tObject.freeze(\n\t\t\t\tArray.from(commands.values())\n\t\t\t\t\t.filter((entry) => activeOwnerTokens.has(entry.ownerToken))\n\t\t\t\t\t.sort(\n\t\t\t\t\t\t(left, right) =>\n\t\t\t\t\t\t\tstableTextCompare(left.value.name, right.value.name) || stableTextCompare(left.owner, right.owner),\n\t\t\t\t\t)\n\t\t\t\t\t.map((entry) => Object.freeze({ definition: definitionSnapshot(entry.value), source: entry.owner })),\n\t\t\t),\n\t\tlistSkills: () =>\n\t\t\tObject.freeze(\n\t\t\t\tArray.from(skills.values())\n\t\t\t\t\t.filter((entry) => activeOwnerTokens.has(entry.ownerToken))\n\t\t\t\t\t.sort(\n\t\t\t\t\t\t(left, right) =>\n\t\t\t\t\t\t\tstableTextCompare(left.value.name, right.value.name) || stableTextCompare(left.owner, right.owner),\n\t\t\t\t\t)\n\t\t\t\t\t.map((entry) => Object.freeze({ definition: definitionSnapshot(entry.value), source: entry.owner })),\n\t\t\t),\n\t\tlistContributionPoints: () =>\n\t\t\tArray.from(contributionPoints.values())\n\t\t\t\t.filter((point) => activeOwnerTokens.has(point.ownerToken))\n\t\t\t\t.sort((left, right) =>\n\t\t\t\t\tstableTextCompare(\n\t\t\t\t\t\tcontributionPointKey(left.definition.id, left.definition.version),\n\t\t\t\t\t\tcontributionPointKey(right.definition.id, right.definition.version),\n\t\t\t\t\t),\n\t\t\t\t)\n\t\t\t\t.map((point) => ({\n\t\t\t\t\tid: point.definition.id,\n\t\t\t\t\tversion: point.definition.version,\n\t\t\t\t\tschema: point.definition.schema,\n\t\t\t\t\tlifecycle: point.definition.lifecycle ?? \"observe\",\n\t\t\t\t\towner: point.owner,\n\t\t\t\t})),\n\t\tlistContributions: (pointId, version) => {\n\t\t\tconst point = contributionPoints.get(contributionPointKey(pointId, version));\n\t\t\tif (!point || !activeOwnerTokens.has(point.ownerToken))\n\t\t\t\tthrow new Error(`Contribution point is not defined: ${pointId}@${version}`);\n\t\t\treturn listContributionEntries(point);\n\t\t},\n\t\thasLifecycleEvent: (id, version) => {\n\t\t\tconst definition = lifecycleDefinitions.get(lifecycleEventKey(id, version));\n\t\t\treturn definition !== undefined && activeOwnerTokens.has(definition.ownerToken);\n\t\t},\n\t\thasLifecycleSubscribers: (type, version) =>\n\t\t\t(state.lifecycleRegistrations.get(lifecycleEventKey(type, version))?.size ?? 0) > 0,\n\t\tdispatchLifecycle,\n\t\tasync recordPluginRejection(rejection) {\n\t\t\tconst detached: PluginRejection = Object.freeze({\n\t\t\t\tcode: rejection.code,\n\t\t\t\tmanifestPath: rejection.manifestPath,\n\t\t\t\t...(rejection.pluginId === undefined ? {} : { pluginId: rejection.pluginId }),\n\t\t\t\tmessage: rejection.message,\n\t\t\t});\n\t\t\tpushPluginRejection(state, detached);\n\t\t\tconst rejectedEventDefinition = lifecycleDefinitions.get(\n\t\t\t\tlifecycleEventKey(PLUGIN_REJECTED_EVENT_ID, PLUGIN_REJECTED_EVENT_VERSION),\n\t\t\t);\n\t\t\tif (!rejectedEventDefinition || !activeOwnerTokens.has(rejectedEventDefinition.ownerToken)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tawait dispatchLifecycle({\n\t\t\t\t\ttype: PLUGIN_REJECTED_EVENT_ID,\n\t\t\t\t\tversion: PLUGIN_REJECTED_EVENT_VERSION,\n\t\t\t\t\tphase: \"committed\",\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tversion: 1,\n\t\t\t\t\t\t...(detached.pluginId === undefined ? {} : { pluginId: detached.pluginId }),\n\t\t\t\t\t\tmanifestPath: detached.manifestPath,\n\t\t\t\t\t\tcode: detached.code,\n\t\t\t\t\t\tmessage: detached.message,\n\t\t\t\t\t},\n\t\t\t\t\tsource: \"capability-runtime\",\n\t\t\t\t});\n\t\t\t} catch {\n\t\t\t\t// The inspector record above is authoritative; lifecycle delivery failures\n\t\t\t\t// surface through runtime reports, never through the startup path.\n\t\t\t}\n\t\t},\n\t\tlistPluginCapabilities,\n\t\tvalidateExecutionFacts: validateExecutionFactsV1,\n\t\tvalidateRetrySchedule: validateRetryScheduleV1,\n\t\thasRetryPolicy: (name) => retryPolicies.has(name),\n\t\tasync classifyRetry(name, request) {\n\t\t\tconst policy = retryPolicies.get(name);\n\t\t\tif (!policy) throw new Error(t(\"Retry policy is not registered: {name}\", { name }));\n\t\t\tif (!policy.value.classify)\n\t\t\t\tthrow new Error(t(\"Retry policy does not support classification: {name}\", { name }));\n\t\t\tconst retryable = await invokeRegisteredCapabilityWithSignal(policy, request.signal, (value) =>\n\t\t\t\tvalue.classify?.(request),\n\t\t\t);\n\t\t\tif (typeof retryable !== \"boolean\") {\n\t\t\t\tthrow new Error(t(\"Retry policy returned an invalid classification: {name}\", { name }));\n\t\t\t}\n\t\t\treturn retryable;\n\t\t},\n\t\tasync decideRetry(name, request) {\n\t\t\tconst policy = retryPolicies.get(name);\n\t\t\tif (!policy) throw new Error(t(\"Retry policy is not registered: {name}\", { name }));\n\t\t\tconst decision = await invokeRegisteredCapabilityWithSignal(policy, request.signal, (value) =>\n\t\t\t\tvalue.decide(request),\n\t\t\t);\n\t\t\tif (!decision || typeof decision.retry !== \"boolean\") {\n\t\t\t\tthrow new Error(t(\"Retry policy returned an invalid decision: {name}\", { name }));\n\t\t\t}\n\t\t\tif (decision.delayMs !== undefined && (!Number.isFinite(decision.delayMs) || decision.delayMs < 0)) {\n\t\t\t\tthrow new Error(t(\"Retry policy returned an invalid delayMs: {name}\", { name }));\n\t\t\t}\n\t\t\treturn decision;\n\t\t},\n\t\thasCompactionPolicy: (name) => compactionPolicies.has(name),\n\t\tasync prepareCompaction(name, request) {\n\t\t\tconst policy = compactionPolicies.get(name);\n\t\t\tif (!policy) throw new Error(t(\"Compaction policy is not registered: {name}\", { name }));\n\t\t\tif (!policy.value.prepare)\n\t\t\t\tthrow new Error(t(\"Compaction policy does not support preparation: {name}\", { name }));\n\t\t\treturn invokeRegisteredCapabilityWithSignal(policy, request.signal, (value) => value.prepare?.(request));\n\t\t},\n\t\thasBranchSummaryPolicy: (name) => branchSummaryPolicies.has(name),\n\t\tasync summarizeBranch(name, request) {\n\t\t\tconst policy = branchSummaryPolicies.get(name);\n\t\t\tif (!policy) throw new Error(t(\"Branch summary policy is not registered: {name}\", { name }));\n\t\t\tconst result = await invokeRegisteredCapabilityWithSignal(policy, request.signal, (value) =>\n\t\t\t\tvalue.summarize(request),\n\t\t\t);\n\t\t\tif (!result || typeof result !== \"object\") {\n\t\t\t\tthrow new Error(t(\"Branch summary policy returned an invalid result: {name}\", { name }));\n\t\t\t}\n\t\t\treturn result;\n\t\t},\n\t\tgetLoopHookChain: (position) => {\n\t\t\tconst entries = loopHooks.get(position);\n\t\t\tif (!entries) return [];\n\t\t\treturn entries\n\t\t\t\t.filter((entry) => activeOwnerTokens.has(entry.ownerToken))\n\t\t\t\t.map((entry) => entry.value) as unknown as readonly AgentLoopHookForV1<typeof position>[];\n\t\t},\n\t\thasRunLoopStrategy: (name) => runLoopStrategies.has(name),\n\t\tasync decideRunLoop(name, request) {\n\t\t\tconst strategy = runLoopStrategies.get(name);\n\t\t\tif (!strategy) throw new Error(t(\"Run loop strategy is not registered: {name}\", { name }));\n\t\t\tconst decision = await invokeRegisteredCapabilityWithSignal(strategy, request.signal, (value) =>\n\t\t\t\tvalue.decideNextCycle(request),\n\t\t\t);\n\t\t\tif (!decision || typeof decision.continueLoop !== \"boolean\") {\n\t\t\t\tthrow new Error(t(\"Run loop strategy returned an invalid decision: {name}\", { name }));\n\t\t\t}\n\t\t\treturn decision;\n\t\t},\n\t\tasync decideCompaction(name, request) {\n\t\t\tconst policy = compactionPolicies.get(name);\n\t\t\tif (!policy) throw new Error(t(\"Compaction policy is not registered: {name}\", { name }));\n\t\t\tconst decision = await invokeRegisteredCapabilityWithSignal(policy, request.signal, (value) =>\n\t\t\t\tvalue.decide(request),\n\t\t\t);\n\t\t\tif (!decision || typeof decision.compact !== \"boolean\") {\n\t\t\t\tthrow new Error(t(\"Compaction policy returned an invalid decision: {name}\", { name }));\n\t\t\t}\n\t\t\tif (decision.retry !== undefined && typeof decision.retry !== \"boolean\") {\n\t\t\t\tthrow new Error(t(\"Compaction policy returned an invalid retry value: {name}\", { name }));\n\t\t\t}\n\t\t\tif (decision.failureMessage !== undefined && typeof decision.failureMessage !== \"string\") {\n\t\t\t\tthrow new Error(t(\"Compaction policy returned an invalid failureMessage: {name}\", { name }));\n\t\t\t}\n\t\t\treturn decision;\n\t\t},\n\t\tasync summarizeCompaction(name, request) {\n\t\t\tconst policy = compactionPolicies.get(name);\n\t\t\tif (!policy) throw new Error(t(\"Compaction policy is not registered: {name}\", { name }));\n\t\t\tif (!policy.value.summarize)\n\t\t\t\tthrow new Error(t(\"Compaction policy does not support summaries: {name}\", { name }));\n\t\t\tconst result = await invokeRegisteredCapabilityWithSignal(policy, request.signal, (value) =>\n\t\t\t\tvalue.summarize?.(request),\n\t\t\t);\n\t\t\tif (\n\t\t\t\t!result ||\n\t\t\t\ttypeof result.summary !== \"string\" ||\n\t\t\t\t!result.summary ||\n\t\t\t\ttypeof result.firstKeptEntryId !== \"string\" ||\n\t\t\t\t!Number.isFinite(result.tokensBefore)\n\t\t\t) {\n\t\t\t\tthrow new Error(t(\"Compaction policy returned an invalid summary: {name}\", { name }));\n\t\t\t}\n\t\t\treturn result;\n\t\t},\n\t\thasOverflowPolicy: (name) => overflowPolicies.has(name),\n\t\tasync decideOverflow(name, request) {\n\t\t\tconst policy = overflowPolicies.get(name);\n\t\t\tif (!policy) throw new Error(t(\"Overflow policy is not registered: {name}\", { name }));\n\t\t\tconst decision = await invokeRegisteredCapabilityWithSignal(policy, request.signal, (value) =>\n\t\t\t\tvalue.decide(request),\n\t\t\t);\n\t\t\tif (\n\t\t\t\t!decision ||\n\t\t\t\ttypeof decision.contextOverflow !== \"boolean\" ||\n\t\t\t\ttypeof decision.recoverableLength !== \"boolean\"\n\t\t\t) {\n\t\t\t\tthrow new Error(t(\"Overflow policy returned an invalid decision: {name}\", { name }));\n\t\t\t}\n\t\t\treturn decision;\n\t\t},\n\t\tasync invokeTool(name, input, options) {\n\t\t\tconst registered = tools.get(name);\n\t\t\tif (!registered) throw new Error(t(\"Tool is not registered: {name}\", { name }));\n\t\t\treturn invokeRegisteredCapability(registered, (value) =>\n\t\t\t\tinvokeCapabilityTool(asHandler(value, \"Tool\"), input, toolExecutionContext, options?.signal),\n\t\t\t);\n\t\t},\n\t\t// 中断分级读面(设计 §4.2,2026-10-02):活任务集合的有界投影。已终态\n\t\t// 任务在显式 dispose 前仍滞留集合(释放钩子语义,见 RuntimeAgentTask),\n\t\t// 因此这里按状态过滤——只计尚未终态的任务。dispose 是多 await 流程,\n\t\t// 任务先置 disposed 再退出集合,中间窗口 status() 会抛——该窗口内的\n\t\t// 任务按非活跃计(宿主按键路径绝不能因投影抛错)。\n\t\tgetActiveAgentTaskCount: () => {\n\t\t\tlet active = 0;\n\t\t\tfor (const task of agentTasks) {\n\t\t\t\tlet status: string | undefined;\n\t\t\t\ttry {\n\t\t\t\t\tstatus = task.status();\n\t\t\t\t} catch {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (status !== \"succeeded\" && status !== \"failed\" && status !== \"cancelled\") active += 1;\n\t\t\t}\n\t\t\treturn active;\n\t\t},\n\t\thasCommand: (name) => commands.has(name),\n\t\tasync invokeCommand(name, args, options) {\n\t\t\tconst registered = commands.get(name);\n\t\t\tif (!registered) throw new Error(t(\"Command is not registered: {name}\", { name }));\n\t\t\treturn validateCommandResult(\n\t\t\t\tawait invokeRegisteredCapability(registered, (value) =>\n\t\t\t\t\tvalue.execute(args, options ?? { signal: new AbortController().signal }),\n\t\t\t\t),\n\t\t\t\tname,\n\t\t\t);\n\t\t},\n\t\thasRpcMethod: (name) => rpcMethods.has(name),\n\t\tasync dispatchRpc(name, input) {\n\t\t\tconst registered = rpcMethods.get(name);\n\t\t\tif (!registered) throw new Error(t(\"RPC method is not registered: {name}\", { name }));\n\t\t\treturn invokeRegisteredCapability(registered, (value) => value(input));\n\t\t},\n\t\thasContextStrategy: (name) => contextStrategies.has(name),\n\t\tasync transformContext(name, context, options) {\n\t\t\tconst strategy = contextStrategies.get(name);\n\t\t\tif (!strategy) throw new Error(t(\"Context strategy is not registered: {name}\", { name }));\n\t\t\treturn invokeRegisteredCapability(strategy, (value) => value.transform(context, options));\n\t\t},\n\t\tasync snapshotContext(name, context, options) {\n\t\t\tconst registered = contextStrategies.get(name);\n\t\t\tif (!registered) throw new Error(t(\"Context strategy is not registered: {name}\", { name }));\n\t\t\tif (!registered.value.snapshot)\n\t\t\t\tthrow new Error(t(\"Context strategy does not support snapshots: {name}\", { name }));\n\t\t\treturn invokeRegisteredCapability(registered, (value) => value.snapshot?.(context, options));\n\t\t},\n\t\tasync restoreContext(name, snapshot, options) {\n\t\t\tconst registered = contextStrategies.get(name);\n\t\t\tif (!registered) throw new Error(t(\"Context strategy is not registered: {name}\", { name }));\n\t\t\tif (!registered.value.restore)\n\t\t\t\tthrow new Error(t(\"Context strategy does not support restore: {name}\", { name }));\n\t\t\treturn invokeRegisteredCapability(registered, (value) => value.restore?.(snapshot, options));\n\t\t},\n\t\tasync replaceContext(name, context, options) {\n\t\t\tconst registered = contextStrategies.get(name);\n\t\t\tif (!registered) throw new Error(t(\"Context strategy is not registered: {name}\", { name }));\n\t\t\tif (!registered.value.replace)\n\t\t\t\tthrow new Error(t(\"Context strategy does not support replacement: {name}\", { name }));\n\t\t\treturn invokeRegisteredCapability(registered, (value) => value.replace?.(context, options));\n\t\t},\n\t\tasync transformProviderHeaders(request) {\n\t\t\tlet headers = validateProviderHeaders(request.headers, \"request\");\n\t\t\tfor (const [name, transform] of providerHeaderTransforms) {\n\t\t\t\theaders = validateProviderHeaders(\n\t\t\t\t\tawait invokeRegisteredCapability(transform, (value) =>\n\t\t\t\t\t\tvalue({\n\t\t\t\t\t\t\tmodel: request.model,\n\t\t\t\t\t\t\t...(request.sessionId === undefined ? {} : { sessionId: request.sessionId }),\n\t\t\t\t\t\t\theaders: { ...headers },\n\t\t\t\t\t\t}),\n\t\t\t\t\t),\n\t\t\t\t\tname,\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn headers;\n\t\t},\n\t\tgetStreamFnWrappers: () =>\n\t\t\tArray.from(streamFnWrapperRegistry.values())\n\t\t\t\t.filter((entry) => activeOwnerTokens.has(entry.ownerToken))\n\t\t\t\t// 契约 A(D-082 批 3b)稳定排序:(priority 升序, 注册序升序)。sequence\n\t\t\t\t// 唯一即全序,同 priority 恒保持注册序(缺省 priority 0 时与既有\n\t\t\t\t// 注册序语义逐点一致)。\n\t\t\t\t.sort((left, right) => left.priority - right.priority || left.sequence - right.sequence)\n\t\t\t\t.map((entry) => entry.value),\n\t\tgetOperationStatus: (id) => statuses.get(id),\n\t\tdrainLifecycleDeliveries: async () => {\n\t\t\twhile (true) {\n\t\t\t\tconst queues = [...lifecycleDeliveryQueues];\n\t\t\t\tif (queues.length === 0) return;\n\t\t\t\tawait Promise.all(queues.map((queue) => queue.drain()));\n\t\t\t\tif (queues.every((queue) => queue.snapshot().pendingEvents === 0)) return;\n\t\t\t}\n\t\t},\n\t\tinspect,\n\t};\n}\n"]}
|