@elizaos/shared 2.0.0-beta.1 → 2.0.3-beta.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/api/agent-api-types.d.ts +210 -0
- package/api/agent-api-types.d.ts.map +1 -0
- package/api/agent-api-types.js +11 -0
- package/api/agent-api-types.js.map +1 -0
- package/api/http-helpers.d.ts +3 -0
- package/api/http-helpers.d.ts.map +1 -0
- package/api/http-helpers.js +2 -0
- package/api/http-helpers.js.map +1 -0
- package/api/route-helpers.d.ts +2 -0
- package/api/route-helpers.d.ts.map +1 -0
- package/app-hero-art.d.ts.map +1 -0
- package/app-hero-art.js +344 -0
- package/app-hero-art.js.map +1 -0
- package/brand/index.d.ts +130 -0
- package/brand/index.d.ts.map +1 -0
- package/brand/index.js +126 -0
- package/brand/index.js.map +1 -0
- package/brand-classic/index.d.ts +158 -0
- package/brand-classic/index.d.ts.map +1 -0
- package/brand-classic/index.js +91 -0
- package/brand-classic/index.js.map +1 -0
- package/character-language.d.ts +16 -0
- package/character-language.d.ts.map +1 -0
- package/character-language.js +58 -0
- package/character-language.js.map +1 -0
- package/character-presets.characters.d.ts +22 -0
- package/character-presets.characters.d.ts.map +1 -0
- package/character-presets.characters.js +2617 -0
- package/character-presets.characters.js.map +1 -0
- package/character-presets.d.ts +42 -0
- package/character-presets.d.ts.map +1 -0
- package/character-presets.js +176 -0
- package/character-presets.js.map +1 -0
- package/character-presets.shared.d.ts +2 -0
- package/character-presets.shared.d.ts.map +1 -0
- package/character-presets.shared.js +8 -0
- package/character-presets.shared.js.map +1 -0
- package/checkout/index.d.ts +48 -0
- package/checkout/index.d.ts.map +1 -0
- package/checkout/index.js +59 -0
- package/checkout/index.js.map +1 -0
- package/cli/parse-duration.d.ts.map +1 -0
- package/cli/parse-duration.js +26 -0
- package/cli/parse-duration.js.map +1 -0
- package/config/allowed-hosts.js +44 -0
- package/config/allowed-hosts.js.map +1 -0
- package/config/api-key-prefix-hints.d.ts +24 -0
- package/config/api-key-prefix-hints.d.ts.map +1 -0
- package/config/api-key-prefix-hints.js +26 -0
- package/config/api-key-prefix-hints.js.map +1 -0
- package/config/app-config.d.ts +274 -0
- package/config/app-config.d.ts.map +1 -0
- package/config/app-config.js +64 -0
- package/config/app-config.js.map +1 -0
- package/config/app-manifest.d.ts.map +1 -0
- package/config/app-manifest.js +115 -0
- package/config/app-manifest.js.map +1 -0
- package/config/boot-config-store.d.ts +71 -0
- package/config/boot-config-store.d.ts.map +1 -0
- package/config/boot-config-store.js +77 -0
- package/config/boot-config-store.js.map +1 -0
- package/config/branding.d.ts +53 -0
- package/config/branding.d.ts.map +1 -0
- package/config/branding.js +23 -0
- package/config/branding.js.map +1 -0
- package/config/cloud-only.d.ts +8 -0
- package/config/cloud-only.d.ts.map +1 -0
- package/config/cloud-only.js +26 -0
- package/config/cloud-only.js.map +1 -0
- package/config/config-catalog.d.ts.map +1 -0
- package/config/config-catalog.js +719 -0
- package/config/config-catalog.js.map +1 -0
- package/config/config.js +23 -0
- package/config/config.js.map +1 -0
- package/config/distribution-profile.js +29 -0
- package/config/distribution-profile.js.map +1 -0
- package/config/env-vars.d.ts.map +1 -0
- package/config/index.d.ts +12 -0
- package/config/index.d.ts.map +1 -0
- package/config/index.js +15 -0
- package/config/index.js.map +1 -0
- package/config/plugin-auto-enable-engine.js +45 -0
- package/config/plugin-auto-enable-engine.js.map +1 -0
- package/config/plugin-manifest.d.ts.map +1 -0
- package/config/plugin-manifest.js +281 -0
- package/config/plugin-manifest.js.map +1 -0
- package/config/runtime-mode.d.ts.map +1 -0
- package/config/runtime-mode.js +107 -0
- package/config/runtime-mode.js.map +1 -0
- package/config/types.agent-defaults.d.ts +388 -0
- package/config/types.agent-defaults.d.ts.map +1 -0
- package/config/types.agents.d.ts +119 -0
- package/config/types.agents.d.ts.map +1 -0
- package/config/types.eliza.d.ts +689 -0
- package/config/types.eliza.d.ts.map +1 -0
- package/config/types.messages.d.ts +176 -0
- package/config/types.messages.d.ts.map +1 -0
- package/config/types.tools.d.ts +400 -0
- package/config/types.tools.d.ts.map +1 -0
- package/config/ui-spec.d.ts +164 -0
- package/config/ui-spec.d.ts.map +1 -0
- package/config/zod-schema.agent-runtime.d.ts +1087 -0
- package/config/zod-schema.core.d.ts +1048 -0
- package/connectors.d.ts +5 -0
- package/connectors.d.ts.map +1 -0
- package/connectors.js +73 -0
- package/connectors.js.map +1 -0
- package/contracts/agent-routes.d.ts +63 -0
- package/contracts/agent-routes.d.ts.map +1 -0
- package/contracts/agent-routes.js +55 -0
- package/contracts/agent-routes.js.map +1 -0
- package/contracts/app-permissions-routes.d.ts +148 -0
- package/contracts/app-permissions-routes.d.ts.map +1 -0
- package/contracts/app-permissions-routes.js +96 -0
- package/contracts/app-permissions-routes.js.map +1 -0
- package/contracts/app-permissions.d.ts +122 -0
- package/contracts/app-permissions.d.ts.map +1 -0
- package/contracts/app-permissions.js +163 -0
- package/contracts/app-permissions.js.map +1 -0
- package/contracts/apps-favorites-routes.d.ts +44 -0
- package/contracts/apps-favorites-routes.d.ts.map +1 -0
- package/contracts/apps-favorites-routes.js +48 -0
- package/contracts/apps-favorites-routes.js.map +1 -0
- package/contracts/apps-lifecycle-routes.d.ts +185 -0
- package/contracts/apps-lifecycle-routes.d.ts.map +1 -0
- package/contracts/apps-lifecycle-routes.js +204 -0
- package/contracts/apps-lifecycle-routes.js.map +1 -0
- package/contracts/apps-loading-routes.d.ts +64 -0
- package/contracts/apps-loading-routes.d.ts.map +1 -0
- package/contracts/apps-loading-routes.js +65 -0
- package/contracts/apps-loading-routes.js.map +1 -0
- package/contracts/apps-runs-routes.d.ts +33 -0
- package/contracts/apps-runs-routes.d.ts.map +1 -0
- package/contracts/apps-runs-routes.js +38 -0
- package/contracts/apps-runs-routes.js.map +1 -0
- package/contracts/apps.d.ts +1159 -0
- package/contracts/apps.d.ts.map +1 -0
- package/contracts/apps.js +400 -0
- package/contracts/apps.js.map +1 -0
- package/contracts/auth-routes.d.ts +23 -0
- package/contracts/auth-routes.d.ts.map +1 -0
- package/contracts/auth-routes.js +25 -0
- package/contracts/auth-routes.js.map +1 -0
- package/contracts/calendar.d.ts +181 -0
- package/contracts/calendar.d.ts.map +1 -0
- package/contracts/calendar.js +19 -0
- package/contracts/calendar.js.map +1 -0
- package/contracts/character-routes.d.ts +70 -0
- package/contracts/character-routes.d.ts.map +1 -0
- package/contracts/character-routes.js +49 -0
- package/contracts/character-routes.js.map +1 -0
- package/contracts/cloud-coding-containers.d.ts +432 -0
- package/contracts/cloud-coding-containers.d.ts.map +1 -0
- package/contracts/cloud-coding-containers.js +135 -0
- package/contracts/cloud-coding-containers.js.map +1 -0
- package/contracts/cloud-topology.js +72 -0
- package/contracts/cloud-topology.js.map +1 -0
- package/contracts/connector-routes.d.ts +39 -0
- package/contracts/connector-routes.d.ts.map +1 -0
- package/contracts/connector-routes.js +50 -0
- package/contracts/connector-routes.js.map +1 -0
- package/contracts/content-pack.d.ts +131 -0
- package/contracts/content-pack.d.ts.map +1 -0
- package/contracts/content-pack.js +103 -0
- package/contracts/conversation-routes.d.ts +191 -0
- package/contracts/conversation-routes.d.ts.map +1 -0
- package/contracts/conversation-routes.js +106 -0
- package/contracts/conversation-routes.js.map +1 -0
- package/contracts/diagnostics-routes.d.ts +33 -0
- package/contracts/diagnostics-routes.d.ts.map +1 -0
- package/contracts/diagnostics-routes.js +26 -0
- package/contracts/diagnostics-routes.js.map +1 -0
- package/contracts/first-run-options.d.ts +531 -0
- package/contracts/first-run-options.d.ts.map +1 -0
- package/contracts/first-run-options.js +1186 -0
- package/contracts/first-run-options.js.map +1 -0
- package/contracts/first-run-routes.d.ts +167 -0
- package/contracts/first-run-routes.d.ts.map +1 -0
- package/contracts/first-run-routes.js +115 -0
- package/contracts/first-run-routes.js.map +1 -0
- package/contracts/health.d.ts +30 -0
- package/contracts/health.d.ts.map +1 -0
- package/contracts/health.js +29 -0
- package/contracts/health.js.map +1 -0
- package/contracts/inbox-routes.d.ts +37 -0
- package/contracts/inbox-routes.d.ts.map +1 -0
- package/contracts/inbox-routes.js +44 -0
- package/contracts/inbox-routes.js.map +1 -0
- package/contracts/index.d.ts +42 -0
- package/contracts/index.d.ts.map +1 -0
- package/contracts/index.js +42 -0
- package/contracts/index.js.map +1 -0
- package/contracts/memory-routes.d.ts +27 -0
- package/contracts/memory-routes.d.ts.map +1 -0
- package/contracts/memory-routes.js +23 -0
- package/contracts/memory-routes.js.map +1 -0
- package/contracts/misc-routes.d.ts +192 -0
- package/contracts/misc-routes.d.ts.map +1 -0
- package/contracts/misc-routes.js +155 -0
- package/contracts/misc-routes.js.map +1 -0
- package/contracts/permissions-routes.d.ts +31 -0
- package/contracts/permissions-routes.d.ts.map +1 -0
- package/contracts/permissions-routes.js +34 -0
- package/contracts/permissions-routes.js.map +1 -0
- package/contracts/permissions.d.ts +109 -0
- package/contracts/permissions.d.ts.map +1 -0
- package/contracts/permissions.js +41 -0
- package/contracts/permissions.js.map +1 -0
- package/contracts/personal-assistant.d.ts +2931 -0
- package/contracts/personal-assistant.d.ts.map +1 -0
- package/contracts/personal-assistant.js +583 -0
- package/contracts/personal-assistant.js.map +1 -0
- package/contracts/plugin-routes.d.ts +105 -0
- package/contracts/plugin-routes.d.ts.map +1 -0
- package/contracts/plugin-routes.js +81 -0
- package/contracts/plugin-routes.js.map +1 -0
- package/contracts/relationships-routes.d.ts +23 -0
- package/contracts/relationships-routes.d.ts.map +1 -0
- package/contracts/relationships-routes.js +22 -0
- package/contracts/relationships-routes.js.map +1 -0
- package/contracts/service-routing.d.ts +49 -0
- package/contracts/service-routing.d.ts.map +1 -0
- package/contracts/service-routing.js +403 -0
- package/contracts/service-routing.js.map +1 -0
- package/contracts/skills-routes.d.ts +116 -0
- package/contracts/skills-routes.d.ts.map +1 -0
- package/contracts/skills-routes.js +115 -0
- package/contracts/skills-routes.js.map +1 -0
- package/contracts/subscription-routes.d.ts +47 -0
- package/contracts/subscription-routes.d.ts.map +1 -0
- package/contracts/subscription-routes.js +50 -0
- package/contracts/subscription-routes.js.map +1 -0
- package/contracts/tail-routes.d.ts +78 -0
- package/contracts/tail-routes.d.ts.map +1 -0
- package/contracts/tail-routes.js +63 -0
- package/contracts/tail-routes.js.map +1 -0
- package/contracts/theme.d.ts +134 -0
- package/contracts/theme.d.ts.map +1 -0
- package/contracts/theme.js +132 -0
- package/contracts/theme.js.map +1 -0
- package/contracts/update-status.d.ts +100 -0
- package/contracts/update-status.d.ts.map +1 -0
- package/contracts/update-status.js +45 -0
- package/contracts/update-status.js.map +1 -0
- package/contracts/wallet-routes.d.ts +82 -0
- package/contracts/wallet-routes.d.ts.map +1 -0
- package/contracts/wallet-routes.js +49 -0
- package/contracts/wallet-routes.js.map +1 -0
- package/contracts/wallet.d.ts +57 -0
- package/contracts/wallet.d.ts.map +1 -0
- package/contracts/wallet.js +200 -0
- package/contracts/wallet.js.map +1 -0
- package/contracts/workbench-routes.d.ts +231 -0
- package/contracts/workbench-routes.d.ts.map +1 -0
- package/contracts/workbench-routes.js +183 -0
- package/contracts/workbench-routes.js.map +1 -0
- package/db/drizzle-database.d.ts +13 -0
- package/db/drizzle-database.d.ts.map +1 -0
- package/db/drizzle-database.js +2 -0
- package/db/drizzle-database.js.map +1 -0
- package/dev-settings-banner-style.d.ts +14 -0
- package/dev-settings-banner-style.js +58 -0
- package/dev-settings-banner-style.js.map +1 -0
- package/dev-settings-figlet-heading.d.ts.map +1 -0
- package/dev-settings-figlet-heading.js +49 -0
- package/dev-settings-figlet-heading.js.map +1 -0
- package/elizacloud/base-url.d.ts +6 -0
- package/elizacloud/base-url.d.ts.map +1 -0
- package/elizacloud/base-url.js +65 -0
- package/elizacloud/base-url.js.map +1 -0
- package/elizacloud/cloud-provisioning.d.ts +9 -0
- package/elizacloud/cloud-provisioning.d.ts.map +1 -0
- package/elizacloud/cloud-provisioning.js +25 -0
- package/elizacloud/cloud-provisioning.js.map +1 -0
- package/elizacloud/cloud-secrets.d.ts +23 -0
- package/elizacloud/cloud-secrets.d.ts.map +1 -0
- package/elizacloud/cloud-secrets.js +51 -0
- package/elizacloud/cloud-secrets.js.map +1 -0
- package/elizacloud/index.d.ts +6 -0
- package/elizacloud/index.d.ts.map +1 -0
- package/elizacloud/index.js +6 -0
- package/elizacloud/index.js.map +1 -0
- package/elizacloud/is-cloud-reachable.d.ts +19 -0
- package/elizacloud/is-cloud-reachable.d.ts.map +1 -0
- package/elizacloud/is-cloud-reachable.js +44 -0
- package/elizacloud/is-cloud-reachable.js.map +1 -0
- package/elizacloud/server-cloud-tts.d.ts +21 -0
- package/elizacloud/server-cloud-tts.d.ts.map +1 -0
- package/elizacloud/server-cloud-tts.js +293 -0
- package/elizacloud/server-cloud-tts.js.map +1 -0
- package/email-classification/email-classifier.d.ts +57 -0
- package/email-classification/email-classifier.d.ts.map +1 -0
- package/email-classification/email-classifier.js +348 -0
- package/email-classification/email-classifier.js.map +1 -0
- package/email-classification/index.d.ts +12 -0
- package/email-classification/index.d.ts.map +1 -0
- package/email-classification/index.js +12 -0
- package/email-classification/index.js.map +1 -0
- package/email-classification/wrap-untrusted-email-content.d.ts +15 -0
- package/email-classification/wrap-untrusted-email-content.d.ts.map +1 -0
- package/email-classification/wrap-untrusted-email-content.js +24 -0
- package/email-classification/wrap-untrusted-email-content.js.map +1 -0
- package/env-utils.d.ts +11 -0
- package/env-utils.d.ts.map +1 -0
- package/env-utils.js +11 -0
- package/env-utils.js.map +1 -0
- package/events/index.d.ts +68 -0
- package/events/index.d.ts.map +1 -0
- package/events/index.js +53 -0
- package/events/index.js.map +1 -0
- package/events.d.ts +2 -0
- package/events.d.ts.map +1 -0
- package/events.js +2 -0
- package/events.js.map +1 -0
- package/format-error.d.ts +15 -0
- package/format-error.d.ts.map +1 -0
- package/format-error.js +17 -0
- package/format-error.js.map +1 -0
- package/hardware-catalog/index.d.ts +204 -0
- package/hardware-catalog/index.d.ts.map +1 -0
- package/hardware-catalog/index.js +174 -0
- package/hardware-catalog/index.js.map +1 -0
- package/i18n/generated/validation-keyword-data.d.ts +3054 -0
- package/i18n/generated/validation-keyword-data.d.ts.map +1 -0
- package/i18n/generated/validation-keyword-data.js +3058 -0
- package/i18n/generated/validation-keyword-data.js.map +1 -0
- package/i18n/keyword-matching.d.ts.map +1 -0
- package/i18n/keyword-matching.js +116 -0
- package/i18n/keyword-matching.js.map +1 -0
- package/index.d.ts +106 -0
- package/index.d.ts.map +1 -0
- package/index.js +139 -0
- package/index.js.map +1 -0
- package/knowledge-graph/entity-types.d.ts +135 -0
- package/knowledge-graph/entity-types.d.ts.map +1 -0
- package/knowledge-graph/entity-types.js +75 -0
- package/knowledge-graph/entity-types.js.map +1 -0
- package/knowledge-graph/index.d.ts +13 -0
- package/knowledge-graph/index.d.ts.map +1 -0
- package/knowledge-graph/index.js +13 -0
- package/knowledge-graph/index.js.map +1 -0
- package/knowledge-graph/merge.d.ts +76 -0
- package/knowledge-graph/merge.d.ts.map +1 -0
- package/knowledge-graph/merge.js +175 -0
- package/knowledge-graph/merge.js.map +1 -0
- package/knowledge-graph/relationship-types.d.ts +105 -0
- package/knowledge-graph/relationship-types.d.ts.map +1 -0
- package/knowledge-graph/relationship-types.js +114 -0
- package/knowledge-graph/relationship-types.js.map +1 -0
- package/lifeops-constants/index.d.ts +9 -0
- package/lifeops-constants/index.d.ts.map +1 -0
- package/lifeops-constants/index.js +9 -0
- package/lifeops-constants/index.js.map +1 -0
- package/lifeops-constants/service-constants.d.ts +79 -0
- package/lifeops-constants/service-constants.d.ts.map +1 -0
- package/lifeops-constants/service-constants.js +123 -0
- package/lifeops-constants/service-constants.js.map +1 -0
- package/lifeops-normalize/index.d.ts +12 -0
- package/lifeops-normalize/index.d.ts.map +1 -0
- package/lifeops-normalize/index.js +12 -0
- package/lifeops-normalize/index.js.map +1 -0
- package/lifeops-normalize/service-error.d.ts +14 -0
- package/lifeops-normalize/service-error.d.ts.map +1 -0
- package/lifeops-normalize/service-error.js +19 -0
- package/lifeops-normalize/service-error.js.map +1 -0
- package/lifeops-normalize/service-normalize.d.ts +38 -0
- package/lifeops-normalize/service-normalize.d.ts.map +1 -0
- package/lifeops-normalize/service-normalize.js +205 -0
- package/lifeops-normalize/service-normalize.js.map +1 -0
- package/lifeops-normalize/time-zone.d.ts +12 -0
- package/lifeops-normalize/time-zone.d.ts.map +1 -0
- package/lifeops-normalize/time-zone.js +29 -0
- package/lifeops-normalize/time-zone.js.map +1 -0
- package/local-inference/catalog.d.ts +122 -0
- package/local-inference/catalog.d.ts.map +1 -0
- package/local-inference/catalog.js +534 -0
- package/local-inference/catalog.js.map +1 -0
- package/local-inference/device-fit.d.ts +73 -0
- package/local-inference/device-fit.d.ts.map +1 -0
- package/local-inference/device-fit.js +155 -0
- package/local-inference/device-fit.js.map +1 -0
- package/local-inference/gpu-profiles.d.ts +110 -0
- package/local-inference/gpu-profiles.d.ts.map +1 -0
- package/local-inference/gpu-profiles.js +191 -0
- package/local-inference/gpu-profiles.js.map +1 -0
- package/local-inference/hf-proxy.d.ts +43 -0
- package/local-inference/hf-proxy.d.ts.map +1 -0
- package/local-inference/hf-proxy.js +50 -0
- package/local-inference/hf-proxy.js.map +1 -0
- package/local-inference/hub-auth.d.ts +26 -0
- package/local-inference/hub-auth.d.ts.map +1 -0
- package/local-inference/hub-auth.js +48 -0
- package/local-inference/hub-auth.js.map +1 -0
- package/local-inference/index.d.ts +26 -0
- package/local-inference/index.d.ts.map +1 -0
- package/local-inference/index.js +23 -0
- package/local-inference/index.js.map +1 -0
- package/local-inference/manifest-signature.d.ts +61 -0
- package/local-inference/manifest-signature.d.ts.map +1 -0
- package/local-inference/manifest-signature.js +129 -0
- package/local-inference/manifest-signature.js.map +1 -0
- package/local-inference/network-policy.d.ts +115 -0
- package/local-inference/network-policy.d.ts.map +1 -0
- package/local-inference/network-policy.js +154 -0
- package/local-inference/network-policy.js.map +1 -0
- package/local-inference/paths.d.ts +24 -0
- package/local-inference/paths.js +40 -0
- package/local-inference/providers-types.d.ts +56 -0
- package/local-inference/providers-types.d.ts.map +1 -0
- package/local-inference/providers-types.js +19 -0
- package/local-inference/providers-types.js.map +1 -0
- package/local-inference/routing-preferences.d.ts +42 -0
- package/local-inference/routing-preferences.d.ts.map +1 -0
- package/local-inference/routing-preferences.js +96 -0
- package/local-inference/routing-preferences.js.map +1 -0
- package/local-inference/runtime-class.d.ts +29 -0
- package/local-inference/runtime-class.d.ts.map +1 -0
- package/local-inference/runtime-class.js +30 -0
- package/local-inference/runtime-class.js.map +1 -0
- package/local-inference/throughput.d.ts +74 -0
- package/local-inference/throughput.d.ts.map +1 -0
- package/local-inference/throughput.js +84 -0
- package/local-inference/throughput.js.map +1 -0
- package/local-inference/types.d.ts +548 -0
- package/local-inference/types.d.ts.map +1 -0
- package/local-inference/types.js +22 -0
- package/local-inference/types.js.map +1 -0
- package/local-inference/voice-models.d.ts +156 -0
- package/local-inference/voice-models.d.ts.map +1 -0
- package/local-inference/voice-models.js +769 -0
- package/local-inference/voice-models.js.map +1 -0
- package/local-inference-gpu/gpu-overrides.d.ts +97 -0
- package/local-inference-gpu/gpu-overrides.d.ts.map +1 -0
- package/local-inference-gpu/gpu-overrides.js +76 -0
- package/local-inference-gpu/gpu-overrides.js.map +1 -0
- package/local-inference-gpu/gpu-profile-loader.d.ts +83 -0
- package/local-inference-gpu/gpu-profile-loader.d.ts.map +1 -0
- package/local-inference-gpu/gpu-profile-loader.js +196 -0
- package/local-inference-gpu/gpu-profile-loader.js.map +1 -0
- package/local-inference-gpu/gpu-profile-schema.d.ts +208 -0
- package/local-inference-gpu/gpu-profile-schema.d.ts.map +1 -0
- package/local-inference-gpu/gpu-profile-schema.js +123 -0
- package/local-inference-gpu/gpu-profile-schema.js.map +1 -0
- package/local-inference-gpu/gpu-tier-detect.d.ts +61 -0
- package/local-inference-gpu/gpu-tier-detect.d.ts.map +1 -0
- package/local-inference-gpu/gpu-tier-detect.js +93 -0
- package/local-inference-gpu/gpu-tier-detect.js.map +1 -0
- package/local-inference-gpu/gpu-tier-profiles.d.ts +110 -0
- package/local-inference-gpu/gpu-tier-profiles.d.ts.map +1 -0
- package/local-inference-gpu/gpu-tier-profiles.js +235 -0
- package/local-inference-gpu/gpu-tier-profiles.js.map +1 -0
- package/loopback-trust.d.ts +73 -0
- package/loopback-trust.d.ts.map +1 -0
- package/loopback-trust.js +241 -0
- package/loopback-trust.js.map +1 -0
- package/package.json +208 -30
- package/restart.d.ts +28 -0
- package/restart.d.ts.map +1 -0
- package/restart.js +30 -0
- package/restart.js.map +1 -0
- package/runtime-env.d.ts +84 -0
- package/runtime-env.d.ts.map +1 -0
- package/runtime-env.js +270 -0
- package/runtime-env.js.map +1 -0
- package/self-edit.d.ts +64 -0
- package/self-edit.d.ts.map +1 -0
- package/self-edit.js +133 -0
- package/self-edit.js.map +1 -0
- package/settings-debug.d.ts +9 -0
- package/settings-debug.d.ts.map +1 -0
- package/settings-debug.js +9 -0
- package/settings-debug.js.map +1 -0
- package/spoken-text.d.ts.map +1 -0
- package/spoken-text.js +58 -0
- package/spoken-text.js.map +1 -0
- package/steward-session-client/index.d.ts +150 -0
- package/steward-session-client/index.d.ts.map +1 -0
- package/steward-session-client/index.js +192 -0
- package/steward-session-client/index.js.map +1 -0
- package/steward-session-client/steward-oauth-pkce.d.ts +24 -0
- package/steward-session-client/steward-oauth-pkce.d.ts.map +1 -0
- package/steward-session-client/steward-oauth-pkce.js +105 -0
- package/steward-session-client/steward-oauth-pkce.js.map +1 -0
- package/test-env-config.d.ts +81 -0
- package/test-env-config.d.ts.map +1 -0
- package/test-env-config.js +125 -0
- package/test-env-config.js.map +1 -0
- package/test-support/test-helpers.d.ts +79 -0
- package/test-support/test-helpers.d.ts.map +1 -0
- package/test-support/test-helpers.js +341 -0
- package/test-support/test-helpers.js.map +1 -0
- package/transcripts.d.ts +141 -0
- package/transcripts.d.ts.map +1 -0
- package/transcripts.js +162 -0
- package/transcripts.js.map +1 -0
- package/type-guards.d.ts +7 -0
- package/type-guards.d.ts.map +1 -0
- package/type-guards.js +27 -0
- package/type-guards.js.map +1 -0
- package/types/index.d.ts +654 -0
- package/types/index.d.ts.map +1 -0
- package/utils/assistant-text.d.ts +13 -0
- package/utils/assistant-text.d.ts.map +1 -0
- package/utils/assistant-text.js +292 -0
- package/utils/assistant-text.js.map +1 -0
- package/utils/browser-tab-kit-types.d.ts +81 -0
- package/utils/browser-tab-kit-types.js +23 -0
- package/utils/browser-tabs-renderer-registry.d.ts +56 -0
- package/utils/browser-tabs-renderer-registry.d.ts.map +1 -0
- package/utils/browser-tabs-renderer-registry.js +1282 -0
- package/utils/browser-tabs-renderer-registry.js.map +1 -0
- package/utils/documents-upload-image.js +147 -0
- package/utils/documents-upload-image.js.map +1 -0
- package/utils/env.d.ts +35 -0
- package/utils/env.d.ts.map +1 -0
- package/utils/env.js +133 -0
- package/utils/env.js.map +1 -0
- package/utils/errors.d.ts +14 -0
- package/utils/errors.d.ts.map +1 -0
- package/utils/errors.js +23 -0
- package/utils/errors.js.map +1 -0
- package/utils/exec-safety.d.ts.map +1 -0
- package/utils/exec-safety.js +25 -0
- package/utils/exec-safety.js.map +1 -0
- package/utils/format.d.ts +85 -0
- package/utils/format.d.ts.map +1 -0
- package/utils/format.js +140 -0
- package/utils/format.js.map +1 -0
- package/utils/log-prefix.d.ts.map +1 -0
- package/utils/log-prefix.js +44 -0
- package/utils/log-prefix.js.map +1 -0
- package/utils/name-tokens.d.ts +24 -0
- package/utils/name-tokens.js +37 -0
- package/utils/namespace-defaults.d.ts +10 -0
- package/utils/namespace-defaults.d.ts.map +1 -0
- package/utils/namespace-defaults.js +17 -0
- package/utils/namespace-defaults.js.map +1 -0
- package/utils/number-parsing.d.ts.map +1 -0
- package/utils/number-parsing.js +57 -0
- package/utils/number-parsing.js.map +1 -0
- package/utils/permission-deep-links.d.ts +35 -0
- package/utils/permission-deep-links.d.ts.map +1 -0
- package/utils/permission-deep-links.js +95 -0
- package/utils/permission-deep-links.js.map +1 -0
- package/utils/serialise.js +22 -0
- package/utils/serialise.js.map +1 -0
- package/utils/sql-compat.js +112 -0
- package/utils/sql-compat.js.map +1 -0
- package/utils/streaming-text.d.ts +9 -0
- package/utils/streaming-text.d.ts.map +1 -0
- package/utils/streaming-text.js +116 -0
- package/utils/streaming-text.js.map +1 -0
- package/utils/string-hash.d.ts +11 -0
- package/utils/string-hash.d.ts.map +1 -0
- package/utils/string-hash.js +17 -0
- package/utils/string-hash.js.map +1 -0
- package/utils/tts-debug.d.ts +10 -0
- package/utils/tts-debug.d.ts.map +1 -0
- package/utils/tts-debug.js +73 -0
- package/utils/tts-debug.js.map +1 -0
- package/view-hero-art.d.ts +75 -0
- package/view-hero-art.d.ts.map +1 -0
- package/view-hero-art.js +354 -0
- package/view-hero-art.js.map +1 -0
- package/voice/first-sentence-snip.d.ts +68 -0
- package/voice/first-sentence-snip.d.ts.map +1 -0
- package/voice/first-sentence-snip.js +284 -0
- package/voice/first-sentence-snip.js.map +1 -0
- package/voice/owner-inference.d.ts +57 -0
- package/voice/owner-inference.d.ts.map +1 -0
- package/voice/owner-inference.js +73 -0
- package/voice/owner-inference.js.map +1 -0
- package/voice/respond-gate.d.ts +88 -0
- package/voice/respond-gate.d.ts.map +1 -0
- package/voice/respond-gate.js +139 -0
- package/voice/respond-gate.js.map +1 -0
- package/voice/voice-cancellation-token.d.ts +127 -0
- package/voice/voice-cancellation-token.d.ts.map +1 -0
- package/voice/voice-cancellation-token.js +186 -0
- package/voice/voice-cancellation-token.js.map +1 -0
- package/voice-eot.d.ts +42 -0
- package/voice-eot.d.ts.map +1 -0
- package/voice-eot.js +158 -0
- package/voice-eot.js.map +1 -0
- package/voice-wer.d.ts +19 -0
- package/voice-wer.d.ts.map +1 -0
- package/voice-wer.js +42 -0
- package/voice-wer.js.map +1 -0
- package/voice.d.ts +55 -0
- package/voice.d.ts.map +1 -0
- package/voice.js +337 -0
- package/voice.js.map +1 -0
- package/dist/api/chat-contracts.d.ts +0 -2
- package/dist/api/chat-contracts.d.ts.map +0 -1
- package/dist/api/chat-contracts.js +0 -2
- package/dist/api/chat-contracts.js.map +0 -1
- package/dist/api/http-helpers.d.ts +0 -50
- package/dist/api/http-helpers.d.ts.map +0 -1
- package/dist/api/http-helpers.js +0 -168
- package/dist/api/http-helpers.js.map +0 -1
- package/dist/api/route-helpers.d.ts +0 -16
- package/dist/api/route-helpers.d.ts.map +0 -1
- package/dist/app-hero-art.d.ts.map +0 -1
- package/dist/app-hero-art.js +0 -358
- package/dist/app-hero-art.js.map +0 -1
- package/dist/cli/parse-duration.d.ts.map +0 -1
- package/dist/cli/parse-duration.js +0 -28
- package/dist/cli/parse-duration.js.map +0 -1
- package/dist/config/allowed-hosts.js +0 -44
- package/dist/config/allowed-hosts.js.map +0 -1
- package/dist/config/api-key-prefix-hints.d.ts +0 -25
- package/dist/config/api-key-prefix-hints.d.ts.map +0 -1
- package/dist/config/api-key-prefix-hints.js +0 -27
- package/dist/config/api-key-prefix-hints.js.map +0 -1
- package/dist/config/app-config.d.ts +0 -273
- package/dist/config/app-config.d.ts.map +0 -1
- package/dist/config/app-config.js +0 -32
- package/dist/config/app-config.js.map +0 -1
- package/dist/config/app-manifest.d.ts.map +0 -1
- package/dist/config/app-manifest.js +0 -109
- package/dist/config/app-manifest.js.map +0 -1
- package/dist/config/boot-config-react.d.ts +0 -5
- package/dist/config/boot-config-react.d.ts.map +0 -1
- package/dist/config/boot-config-react.js +0 -8
- package/dist/config/boot-config-react.js.map +0 -1
- package/dist/config/boot-config-store.d.ts +0 -74
- package/dist/config/boot-config-store.d.ts.map +0 -1
- package/dist/config/boot-config-store.js +0 -121
- package/dist/config/boot-config-store.js.map +0 -1
- package/dist/config/branding-react.d.ts +0 -4
- package/dist/config/branding-react.d.ts.map +0 -1
- package/dist/config/branding-react.js +0 -12
- package/dist/config/branding-react.js.map +0 -1
- package/dist/config/branding.d.ts +0 -53
- package/dist/config/branding.d.ts.map +0 -1
- package/dist/config/branding.js +0 -23
- package/dist/config/branding.js.map +0 -1
- package/dist/config/cloud-only.d.ts +0 -6
- package/dist/config/cloud-only.d.ts.map +0 -1
- package/dist/config/cloud-only.js +0 -16
- package/dist/config/cloud-only.js.map +0 -1
- package/dist/config/config-catalog.d.ts.map +0 -1
- package/dist/config/config-catalog.js +0 -710
- package/dist/config/config-catalog.js.map +0 -1
- package/dist/config/config.js +0 -23
- package/dist/config/config.js.map +0 -1
- package/dist/config/distribution-profile.js +0 -29
- package/dist/config/distribution-profile.js.map +0 -1
- package/dist/config/env-vars.d.ts.map +0 -1
- package/dist/config/index.d.ts +0 -14
- package/dist/config/index.d.ts.map +0 -1
- package/dist/config/index.js +0 -17
- package/dist/config/index.js.map +0 -1
- package/dist/config/plugin-auto-enable-engine.js +0 -45
- package/dist/config/plugin-auto-enable-engine.js.map +0 -1
- package/dist/config/plugin-manifest.d.ts.map +0 -1
- package/dist/config/plugin-manifest.js +0 -272
- package/dist/config/plugin-manifest.js.map +0 -1
- package/dist/config/runtime-mode.d.ts.map +0 -1
- package/dist/config/runtime-mode.js +0 -103
- package/dist/config/runtime-mode.js.map +0 -1
- package/dist/config/types.agent-defaults.d.ts +0 -383
- package/dist/config/types.agent-defaults.d.ts.map +0 -1
- package/dist/config/types.agents.d.ts +0 -114
- package/dist/config/types.agents.d.ts.map +0 -1
- package/dist/config/types.eliza.d.ts +0 -689
- package/dist/config/types.eliza.d.ts.map +0 -1
- package/dist/config/types.messages.d.ts +0 -176
- package/dist/config/types.messages.d.ts.map +0 -1
- package/dist/config/types.tools.d.ts +0 -400
- package/dist/config/types.tools.d.ts.map +0 -1
- package/dist/config/ui-spec.d.ts +0 -164
- package/dist/config/ui-spec.d.ts.map +0 -1
- package/dist/config/zod-schema.agent-runtime.d.ts +0 -1087
- package/dist/config/zod-schema.core.d.ts +0 -1048
- package/dist/connectors.d.ts +0 -2
- package/dist/connectors.d.ts.map +0 -1
- package/dist/connectors.js +0 -2
- package/dist/connectors.js.map +0 -1
- package/dist/contracts/apps.d.ts +0 -279
- package/dist/contracts/apps.d.ts.map +0 -1
- package/dist/contracts/apps.js +0 -218
- package/dist/contracts/apps.js.map +0 -1
- package/dist/contracts/cloud-topology.js +0 -72
- package/dist/contracts/cloud-topology.js.map +0 -1
- package/dist/contracts/content-pack.d.ts +0 -131
- package/dist/contracts/content-pack.d.ts.map +0 -1
- package/dist/contracts/content-pack.js +0 -103
- package/dist/contracts/health.d.ts +0 -30
- package/dist/contracts/health.d.ts.map +0 -1
- package/dist/contracts/health.js +0 -29
- package/dist/contracts/health.js.map +0 -1
- package/dist/contracts/index.d.ts +0 -16
- package/dist/contracts/index.d.ts.map +0 -1
- package/dist/contracts/index.js +0 -16
- package/dist/contracts/index.js.map +0 -1
- package/dist/contracts/lifeops.d.ts +0 -3140
- package/dist/contracts/lifeops.d.ts.map +0 -1
- package/dist/contracts/lifeops.js +0 -587
- package/dist/contracts/lifeops.js.map +0 -1
- package/dist/contracts/onboarding.d.ts +0 -507
- package/dist/contracts/onboarding.d.ts.map +0 -1
- package/dist/contracts/onboarding.js +0 -1141
- package/dist/contracts/onboarding.js.map +0 -1
- package/dist/contracts/permissions.d.ts +0 -121
- package/dist/contracts/permissions.d.ts.map +0 -1
- package/dist/contracts/permissions.js +0 -31
- package/dist/contracts/permissions.js.map +0 -1
- package/dist/contracts/service-routing.d.ts +0 -155
- package/dist/contracts/service-routing.d.ts.map +0 -1
- package/dist/contracts/service-routing.js +0 -395
- package/dist/contracts/service-routing.js.map +0 -1
- package/dist/contracts/theme.d.ts +0 -136
- package/dist/contracts/theme.d.ts.map +0 -1
- package/dist/contracts/theme.js +0 -134
- package/dist/contracts/theme.js.map +0 -1
- package/dist/contracts/wallet.d.ts +0 -622
- package/dist/contracts/wallet.d.ts.map +0 -1
- package/dist/contracts/wallet.js +0 -194
- package/dist/contracts/wallet.js.map +0 -1
- package/dist/dev-settings-banner-style.d.ts +0 -14
- package/dist/dev-settings-banner-style.js +0 -58
- package/dist/dev-settings-banner-style.js.map +0 -1
- package/dist/dev-settings-figlet-heading.d.ts.map +0 -1
- package/dist/dev-settings-figlet-heading.js +0 -56
- package/dist/dev-settings-figlet-heading.js.map +0 -1
- package/dist/env-utils.d.ts +0 -2
- package/dist/env-utils.d.ts.map +0 -1
- package/dist/env-utils.js +0 -13
- package/dist/env-utils.js.map +0 -1
- package/dist/events/index.d.ts +0 -62
- package/dist/events/index.d.ts.map +0 -1
- package/dist/events/index.js +0 -52
- package/dist/events/index.js.map +0 -1
- package/dist/format-error.d.ts +0 -14
- package/dist/format-error.d.ts.map +0 -1
- package/dist/format-error.js +0 -18
- package/dist/format-error.js.map +0 -1
- package/dist/i18n/generated/validation-keyword-data.d.ts +0 -3080
- package/dist/i18n/generated/validation-keyword-data.d.ts.map +0 -1
- package/dist/i18n/generated/validation-keyword-data.js +0 -3084
- package/dist/i18n/generated/validation-keyword-data.js.map +0 -1
- package/dist/i18n/keyword-matching.d.ts.map +0 -1
- package/dist/i18n/keyword-matching.js +0 -113
- package/dist/i18n/keyword-matching.js.map +0 -1
- package/dist/index.d.ts +0 -93
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -105
- package/dist/index.js.map +0 -1
- package/dist/local-inference/index.d.ts +0 -16
- package/dist/local-inference/index.d.ts.map +0 -1
- package/dist/local-inference/index.js +0 -16
- package/dist/local-inference/index.js.map +0 -1
- package/dist/local-inference/paths.d.ts +0 -24
- package/dist/local-inference/paths.js +0 -40
- package/dist/local-inference/routing-preferences.d.ts +0 -31
- package/dist/local-inference/routing-preferences.d.ts.map +0 -1
- package/dist/local-inference/routing-preferences.js +0 -73
- package/dist/local-inference/routing-preferences.js.map +0 -1
- package/dist/local-inference/types.d.ts +0 -62
- package/dist/local-inference/types.d.ts.map +0 -1
- package/dist/local-inference/types.js +0 -25
- package/dist/local-inference/types.js.map +0 -1
- package/dist/onboarding-presets.characters.d.ts +0 -22
- package/dist/onboarding-presets.characters.d.ts.map +0 -1
- package/dist/onboarding-presets.characters.js +0 -2617
- package/dist/onboarding-presets.characters.js.map +0 -1
- package/dist/onboarding-presets.d.ts +0 -40
- package/dist/onboarding-presets.d.ts.map +0 -1
- package/dist/onboarding-presets.js +0 -181
- package/dist/onboarding-presets.js.map +0 -1
- package/dist/onboarding-presets.shared.d.ts +0 -2
- package/dist/onboarding-presets.shared.d.ts.map +0 -1
- package/dist/onboarding-presets.shared.js +0 -8
- package/dist/onboarding-presets.shared.js.map +0 -1
- package/dist/package.json +0 -50
- package/dist/restart.d.ts +0 -27
- package/dist/restart.d.ts.map +0 -1
- package/dist/restart.js +0 -29
- package/dist/restart.js.map +0 -1
- package/dist/runtime-env.d.ts +0 -84
- package/dist/runtime-env.d.ts.map +0 -1
- package/dist/runtime-env.js +0 -262
- package/dist/runtime-env.js.map +0 -1
- package/dist/self-edit.d.ts +0 -64
- package/dist/self-edit.d.ts.map +0 -1
- package/dist/self-edit.js +0 -133
- package/dist/self-edit.js.map +0 -1
- package/dist/settings-debug.d.ts +0 -20
- package/dist/settings-debug.d.ts.map +0 -1
- package/dist/settings-debug.js +0 -122
- package/dist/settings-debug.js.map +0 -1
- package/dist/spoken-text.d.ts.map +0 -1
- package/dist/spoken-text.js +0 -57
- package/dist/spoken-text.js.map +0 -1
- package/dist/test-support/test-helpers.d.ts +0 -112
- package/dist/test-support/test-helpers.d.ts.map +0 -1
- package/dist/test-support/test-helpers.js +0 -416
- package/dist/test-support/test-helpers.js.map +0 -1
- package/dist/themes/index.d.ts +0 -7
- package/dist/themes/index.d.ts.map +0 -1
- package/dist/themes/index.js +0 -6
- package/dist/themes/index.js.map +0 -1
- package/dist/themes/presets.d.ts +0 -15
- package/dist/themes/presets.d.ts.map +0 -1
- package/dist/themes/presets.js +0 -789
- package/dist/themes/presets.js.map +0 -1
- package/dist/type-guards.d.ts +0 -30
- package/dist/type-guards.d.ts.map +0 -1
- package/dist/type-guards.js +0 -50
- package/dist/type-guards.js.map +0 -1
- package/dist/types/index.d.ts +0 -655
- package/dist/types/index.d.ts.map +0 -1
- package/dist/utils/assistant-text.d.ts +0 -2
- package/dist/utils/assistant-text.d.ts.map +0 -1
- package/dist/utils/assistant-text.js +0 -168
- package/dist/utils/assistant-text.js.map +0 -1
- package/dist/utils/browser-tab-kit-types.d.ts +0 -81
- package/dist/utils/browser-tab-kit-types.js +0 -23
- package/dist/utils/browser-tabs-renderer-registry.d.ts +0 -56
- package/dist/utils/browser-tabs-renderer-registry.d.ts.map +0 -1
- package/dist/utils/browser-tabs-renderer-registry.js +0 -962
- package/dist/utils/browser-tabs-renderer-registry.js.map +0 -1
- package/dist/utils/documents-upload-image.js +0 -147
- package/dist/utils/documents-upload-image.js.map +0 -1
- package/dist/utils/env.d.ts +0 -34
- package/dist/utils/env.d.ts.map +0 -1
- package/dist/utils/env.js +0 -131
- package/dist/utils/env.js.map +0 -1
- package/dist/utils/errors.d.ts +0 -13
- package/dist/utils/errors.d.ts.map +0 -1
- package/dist/utils/errors.js +0 -26
- package/dist/utils/errors.js.map +0 -1
- package/dist/utils/exec-safety.d.ts.map +0 -1
- package/dist/utils/exec-safety.js +0 -22
- package/dist/utils/exec-safety.js.map +0 -1
- package/dist/utils/format.d.ts +0 -66
- package/dist/utils/format.d.ts.map +0 -1
- package/dist/utils/format.js +0 -122
- package/dist/utils/format.js.map +0 -1
- package/dist/utils/index.d.ts +0 -12
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/index.js +0 -12
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/log-prefix.d.ts.map +0 -1
- package/dist/utils/log-prefix.js +0 -54
- package/dist/utils/log-prefix.js.map +0 -1
- package/dist/utils/name-tokens.d.ts +0 -24
- package/dist/utils/name-tokens.js +0 -37
- package/dist/utils/namespace-defaults.d.ts +0 -6
- package/dist/utils/namespace-defaults.d.ts.map +0 -1
- package/dist/utils/namespace-defaults.js +0 -16
- package/dist/utils/namespace-defaults.js.map +0 -1
- package/dist/utils/number-parsing.d.ts.map +0 -1
- package/dist/utils/number-parsing.js +0 -52
- package/dist/utils/number-parsing.js.map +0 -1
- package/dist/utils/permission-deep-links.d.ts +0 -34
- package/dist/utils/permission-deep-links.d.ts.map +0 -1
- package/dist/utils/permission-deep-links.js +0 -84
- package/dist/utils/permission-deep-links.js.map +0 -1
- package/dist/utils/serialise.js +0 -22
- package/dist/utils/serialise.js.map +0 -1
- package/dist/utils/sql-compat.js +0 -112
- package/dist/utils/sql-compat.js.map +0 -1
- package/dist/utils/streaming-text.d.ts +0 -9
- package/dist/utils/streaming-text.d.ts.map +0 -1
- package/dist/utils/streaming-text.js +0 -113
- package/dist/utils/streaming-text.js.map +0 -1
- package/dist/utils/tts-debug.d.ts +0 -9
- package/dist/utils/tts-debug.d.ts.map +0 -1
- package/dist/utils/tts-debug.js +0 -70
- package/dist/utils/tts-debug.js.map +0 -1
- package/dist/voice.d.ts +0 -40
- package/dist/voice.d.ts.map +0 -1
- package/dist/voice.js +0 -296
- package/dist/voice.js.map +0 -1
- /package/{dist/api → api}/route-helpers.js +0 -0
- /package/{dist/api → api}/route-helpers.js.map +0 -0
- /package/{dist/app-hero-art.d.ts → app-hero-art.d.ts} +0 -0
- /package/{dist/awareness → awareness}/index.d.ts +0 -0
- /package/{dist/awareness → awareness}/index.d.ts.map +0 -0
- /package/{dist/awareness → awareness}/index.js +0 -0
- /package/{dist/awareness → awareness}/index.js.map +0 -0
- /package/{dist/awareness → awareness}/registry.d.ts +0 -0
- /package/{dist/awareness → awareness}/registry.d.ts.map +0 -0
- /package/{dist/awareness → awareness}/registry.js +0 -0
- /package/{dist/awareness → awareness}/registry.js.map +0 -0
- /package/{dist/cli → cli}/parse-duration.d.ts +0 -0
- /package/{dist/config → config}/allowed-hosts.d.ts +0 -0
- /package/{dist/config → config}/allowed-hosts.d.ts.map +0 -0
- /package/{dist/config → config}/app-manifest.d.ts +0 -0
- /package/{dist/config → config}/boot-config.d.ts +0 -0
- /package/{dist/config → config}/boot-config.d.ts.map +0 -0
- /package/{dist/config → config}/boot-config.js +0 -0
- /package/{dist/config → config}/boot-config.js.map +0 -0
- /package/{dist/config → config}/config-catalog.d.ts +0 -0
- /package/{dist/config → config}/config-paths.d.ts +0 -0
- /package/{dist/config → config}/config-paths.d.ts.map +0 -0
- /package/{dist/config → config}/config-paths.js +0 -0
- /package/{dist/config → config}/config-paths.js.map +0 -0
- /package/{dist/config → config}/config.d.ts +0 -0
- /package/{dist/config → config}/config.d.ts.map +0 -0
- /package/{dist/config → config}/distribution-profile.d.ts +0 -0
- /package/{dist/config → config}/distribution-profile.d.ts.map +0 -0
- /package/{dist/config → config}/env-vars.d.ts +0 -0
- /package/{dist/config → config}/env-vars.js +0 -0
- /package/{dist/config → config}/env-vars.js.map +0 -0
- /package/{dist/config → config}/plugin-auto-enable-engine.d.ts +0 -0
- /package/{dist/config → config}/plugin-auto-enable-engine.d.ts.map +0 -0
- /package/{dist/config → config}/plugin-auto-enable.d.ts +0 -0
- /package/{dist/config → config}/plugin-auto-enable.d.ts.map +0 -0
- /package/{dist/config → config}/plugin-auto-enable.js +0 -0
- /package/{dist/config → config}/plugin-auto-enable.js.map +0 -0
- /package/{dist/config → config}/plugin-manifest.d.ts +0 -0
- /package/{dist/config → config}/plugin-ui-spec.d.ts +0 -0
- /package/{dist/config → config}/plugin-ui-spec.d.ts.map +0 -0
- /package/{dist/config → config}/plugin-ui-spec.js +0 -0
- /package/{dist/config → config}/plugin-ui-spec.js.map +0 -0
- /package/{dist/config → config}/runtime-mode.d.ts +0 -0
- /package/{dist/config → config}/runtime-overrides.d.ts +0 -0
- /package/{dist/config → config}/runtime-overrides.d.ts.map +0 -0
- /package/{dist/config → config}/runtime-overrides.js +0 -0
- /package/{dist/config → config}/runtime-overrides.js.map +0 -0
- /package/{dist/config → config}/schema.d.ts +0 -0
- /package/{dist/config → config}/schema.d.ts.map +0 -0
- /package/{dist/config → config}/schema.js +0 -0
- /package/{dist/config → config}/schema.js.map +0 -0
- /package/{dist/config → config}/types.agent-defaults.js +0 -0
- /package/{dist/config → config}/types.agent-defaults.js.map +0 -0
- /package/{dist/config → config}/types.agents.js +0 -0
- /package/{dist/config → config}/types.agents.js.map +0 -0
- /package/{dist/config → config}/types.d.ts +0 -0
- /package/{dist/config → config}/types.d.ts.map +0 -0
- /package/{dist/config → config}/types.eliza.js +0 -0
- /package/{dist/config → config}/types.eliza.js.map +0 -0
- /package/{dist/config → config}/types.gateway.d.ts +0 -0
- /package/{dist/config → config}/types.gateway.d.ts.map +0 -0
- /package/{dist/config → config}/types.gateway.js +0 -0
- /package/{dist/config → config}/types.gateway.js.map +0 -0
- /package/{dist/config → config}/types.hooks.d.ts +0 -0
- /package/{dist/config → config}/types.hooks.d.ts.map +0 -0
- /package/{dist/config → config}/types.hooks.js +0 -0
- /package/{dist/config → config}/types.hooks.js.map +0 -0
- /package/{dist/config → config}/types.js +0 -0
- /package/{dist/config → config}/types.js.map +0 -0
- /package/{dist/config → config}/types.messages.js +0 -0
- /package/{dist/config → config}/types.messages.js.map +0 -0
- /package/{dist/config → config}/types.tools.js +0 -0
- /package/{dist/config → config}/types.tools.js.map +0 -0
- /package/{dist/config → config}/ui-spec.js +0 -0
- /package/{dist/config → config}/ui-spec.js.map +0 -0
- /package/{dist/config → config}/wechat-config.d.ts +0 -0
- /package/{dist/config → config}/wechat-config.d.ts.map +0 -0
- /package/{dist/config → config}/wechat-config.js +0 -0
- /package/{dist/config → config}/wechat-config.js.map +0 -0
- /package/{dist/config → config}/zod-schema.agent-runtime.d.ts.map +0 -0
- /package/{dist/config → config}/zod-schema.agent-runtime.js +0 -0
- /package/{dist/config → config}/zod-schema.agent-runtime.js.map +0 -0
- /package/{dist/config → config}/zod-schema.core.d.ts.map +0 -0
- /package/{dist/config → config}/zod-schema.core.js +0 -0
- /package/{dist/config → config}/zod-schema.core.js.map +0 -0
- /package/{dist/connector-cred-types.d.ts → connector-cred-types.d.ts} +0 -0
- /package/{dist/connector-cred-types.d.ts.map → connector-cred-types.d.ts.map} +0 -0
- /package/{dist/connector-cred-types.js → connector-cred-types.js} +0 -0
- /package/{dist/connector-cred-types.js.map → connector-cred-types.js.map} +0 -0
- /package/{dist/contracts → contracts}/awareness.d.ts +0 -0
- /package/{dist/contracts → contracts}/awareness.d.ts.map +0 -0
- /package/{dist/contracts → contracts}/awareness.js +0 -0
- /package/{dist/contracts → contracts}/awareness.js.map +0 -0
- /package/{dist/contracts → contracts}/cloud-topology.d.ts +0 -0
- /package/{dist/contracts → contracts}/cloud-topology.d.ts.map +0 -0
- /package/{dist/contracts → contracts}/config.d.ts +0 -0
- /package/{dist/contracts → contracts}/config.d.ts.map +0 -0
- /package/{dist/contracts → contracts}/config.js +0 -0
- /package/{dist/contracts → contracts}/config.js.map +0 -0
- /package/{dist/contracts → contracts}/content-pack.js.map +0 -0
- /package/{dist/contracts → contracts}/drop.d.ts +0 -0
- /package/{dist/contracts → contracts}/drop.d.ts.map +0 -0
- /package/{dist/contracts → contracts}/drop.js +0 -0
- /package/{dist/contracts → contracts}/drop.js.map +0 -0
- /package/{dist/contracts → contracts}/feature-result.d.ts +0 -0
- /package/{dist/contracts → contracts}/feature-result.d.ts.map +0 -0
- /package/{dist/contracts → contracts}/feature-result.js +0 -0
- /package/{dist/contracts → contracts}/feature-result.js.map +0 -0
- /package/{dist/contracts → contracts}/inbox.d.ts +0 -0
- /package/{dist/contracts → contracts}/inbox.d.ts.map +0 -0
- /package/{dist/contracts → contracts}/inbox.js +0 -0
- /package/{dist/contracts → contracts}/inbox.js.map +0 -0
- /package/{dist/contracts → contracts}/lifeops-connector-degradation.d.ts +0 -0
- /package/{dist/contracts → contracts}/lifeops-connector-degradation.d.ts.map +0 -0
- /package/{dist/contracts → contracts}/lifeops-connector-degradation.js +0 -0
- /package/{dist/contracts → contracts}/lifeops-connector-degradation.js.map +0 -0
- /package/{dist/contracts → contracts}/verification.d.ts +0 -0
- /package/{dist/contracts → contracts}/verification.d.ts.map +0 -0
- /package/{dist/contracts → contracts}/verification.js +0 -0
- /package/{dist/contracts → contracts}/verification.js.map +0 -0
- /package/{dist/dev-settings-banner-style.d.ts.map → dev-settings-banner-style.d.ts.map} +0 -0
- /package/{dist/dev-settings-figlet-heading.d.ts → dev-settings-figlet-heading.d.ts} +0 -0
- /package/{dist/dev-settings-table.d.ts → dev-settings-table.d.ts} +0 -0
- /package/{dist/dev-settings-table.d.ts.map → dev-settings-table.d.ts.map} +0 -0
- /package/{dist/dev-settings-table.js → dev-settings-table.js} +0 -0
- /package/{dist/dev-settings-table.js.map → dev-settings-table.js.map} +0 -0
- /package/{dist/i18n → i18n}/keyword-matching.d.ts +0 -0
- /package/{dist/i18n → i18n}/validation-keywords.d.ts +0 -0
- /package/{dist/i18n → i18n}/validation-keywords.d.ts.map +0 -0
- /package/{dist/i18n → i18n}/validation-keywords.js +0 -0
- /package/{dist/i18n → i18n}/validation-keywords.js.map +0 -0
- /package/{dist/local-inference → local-inference}/paths.d.ts.map +0 -0
- /package/{dist/local-inference → local-inference}/paths.js.map +0 -0
- /package/{dist/local-inference → local-inference}/verify.d.ts +0 -0
- /package/{dist/local-inference → local-inference}/verify.d.ts.map +0 -0
- /package/{dist/local-inference → local-inference}/verify.js +0 -0
- /package/{dist/local-inference → local-inference}/verify.js.map +0 -0
- /package/{dist/platform → platform}/is-native-server.d.ts +0 -0
- /package/{dist/platform → platform}/is-native-server.d.ts.map +0 -0
- /package/{dist/platform → platform}/is-native-server.js +0 -0
- /package/{dist/platform → platform}/is-native-server.js.map +0 -0
- /package/{dist/recent-messages-state.d.ts → recent-messages-state.d.ts} +0 -0
- /package/{dist/recent-messages-state.d.ts.map → recent-messages-state.d.ts.map} +0 -0
- /package/{dist/recent-messages-state.js → recent-messages-state.js} +0 -0
- /package/{dist/recent-messages-state.js.map → recent-messages-state.js.map} +0 -0
- /package/{dist/spoken-text.d.ts → spoken-text.d.ts} +0 -0
- /package/{dist/terminal → terminal}/links.d.ts +0 -0
- /package/{dist/terminal → terminal}/links.d.ts.map +0 -0
- /package/{dist/terminal → terminal}/links.js +0 -0
- /package/{dist/terminal → terminal}/links.js.map +0 -0
- /package/{dist/terminal → terminal}/palette.d.ts +0 -0
- /package/{dist/terminal → terminal}/palette.d.ts.map +0 -0
- /package/{dist/terminal → terminal}/palette.js +0 -0
- /package/{dist/terminal → terminal}/palette.js.map +0 -0
- /package/{dist/terminal → terminal}/theme.d.ts +0 -0
- /package/{dist/terminal → terminal}/theme.d.ts.map +0 -0
- /package/{dist/terminal → terminal}/theme.js +0 -0
- /package/{dist/terminal → terminal}/theme.js.map +0 -0
- /package/{dist/test-support → test-support}/process-helpers.d.ts +0 -0
- /package/{dist/test-support → test-support}/process-helpers.d.ts.map +0 -0
- /package/{dist/test-support → test-support}/process-helpers.js +0 -0
- /package/{dist/test-support → test-support}/process-helpers.js.map +0 -0
- /package/{dist/types → types}/index.js +0 -0
- /package/{dist/types → types}/index.js.map +0 -0
- /package/{dist/utils → utils}/asset-url.d.ts +0 -0
- /package/{dist/utils → utils}/asset-url.d.ts.map +0 -0
- /package/{dist/utils → utils}/asset-url.js +0 -0
- /package/{dist/utils → utils}/asset-url.js.map +0 -0
- /package/{dist/utils → utils}/browser-tab-kit-types.d.ts.map +0 -0
- /package/{dist/utils → utils}/browser-tab-kit-types.js.map +0 -0
- /package/{dist/utils → utils}/character-message-examples.d.ts +0 -0
- /package/{dist/utils → utils}/character-message-examples.d.ts.map +0 -0
- /package/{dist/utils → utils}/character-message-examples.js +0 -0
- /package/{dist/utils → utils}/character-message-examples.js.map +0 -0
- /package/{dist/utils → utils}/cloud-status.d.ts +0 -0
- /package/{dist/utils → utils}/cloud-status.d.ts.map +0 -0
- /package/{dist/utils → utils}/cloud-status.js +0 -0
- /package/{dist/utils → utils}/cloud-status.js.map +0 -0
- /package/{dist/utils → utils}/documents-upload-image.d.ts +0 -0
- /package/{dist/utils → utils}/documents-upload-image.d.ts.map +0 -0
- /package/{dist/utils → utils}/eliza-cloud-model-route.d.ts +0 -0
- /package/{dist/utils → utils}/eliza-cloud-model-route.d.ts.map +0 -0
- /package/{dist/utils → utils}/eliza-cloud-model-route.js +0 -0
- /package/{dist/utils → utils}/eliza-cloud-model-route.js.map +0 -0
- /package/{dist/utils → utils}/eliza-globals.d.ts +0 -0
- /package/{dist/utils → utils}/eliza-globals.d.ts.map +0 -0
- /package/{dist/utils → utils}/eliza-globals.js +0 -0
- /package/{dist/utils → utils}/eliza-globals.js.map +0 -0
- /package/{dist/utils → utils}/eliza-root.d.ts +0 -0
- /package/{dist/utils → utils}/eliza-root.d.ts.map +0 -0
- /package/{dist/utils → utils}/eliza-root.js +0 -0
- /package/{dist/utils → utils}/eliza-root.js.map +0 -0
- /package/{dist/utils → utils}/exec-safety.d.ts +0 -0
- /package/{dist/utils → utils}/labels.d.ts +0 -0
- /package/{dist/utils → utils}/labels.d.ts.map +0 -0
- /package/{dist/utils → utils}/labels.js +0 -0
- /package/{dist/utils → utils}/labels.js.map +0 -0
- /package/{dist/utils → utils}/log-prefix.d.ts +0 -0
- /package/{dist/utils → utils}/name-tokens.d.ts.map +0 -0
- /package/{dist/utils → utils}/name-tokens.js.map +0 -0
- /package/{dist/utils → utils}/number-parsing.d.ts +0 -0
- /package/{dist/utils → utils}/owner-name.d.ts +0 -0
- /package/{dist/utils → utils}/owner-name.d.ts.map +0 -0
- /package/{dist/utils → utils}/owner-name.js +0 -0
- /package/{dist/utils → utils}/owner-name.js.map +0 -0
- /package/{dist/utils → utils}/rate-limiter.d.ts +0 -0
- /package/{dist/utils → utils}/rate-limiter.d.ts.map +0 -0
- /package/{dist/utils → utils}/rate-limiter.js +0 -0
- /package/{dist/utils → utils}/rate-limiter.js.map +0 -0
- /package/{dist/utils → utils}/serialise.d.ts +0 -0
- /package/{dist/utils → utils}/serialise.d.ts.map +0 -0
- /package/{dist/utils → utils}/sql-compat.d.ts +0 -0
- /package/{dist/utils → utils}/sql-compat.d.ts.map +0 -0
- /package/{dist/utils → utils}/subscription-auth.d.ts +0 -0
- /package/{dist/utils → utils}/subscription-auth.d.ts.map +0 -0
- /package/{dist/utils → utils}/subscription-auth.js +0 -0
- /package/{dist/utils → utils}/subscription-auth.js.map +0 -0
- /package/{dist/utils → utils}/trajectory-format.d.ts +0 -0
- /package/{dist/utils → utils}/trajectory-format.d.ts.map +0 -0
- /package/{dist/utils → utils}/trajectory-format.js +0 -0
- /package/{dist/utils → utils}/trajectory-format.js.map +0 -0
- /package/{dist/validation-keywords.d.ts → validation-keywords.d.ts} +0 -0
- /package/{dist/validation-keywords.d.ts.map → validation-keywords.d.ts.map} +0 -0
- /package/{dist/validation-keywords.js → validation-keywords.js} +0 -0
- /package/{dist/validation-keywords.js.map → validation-keywords.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assistant-text.d.ts","sourceRoot":"","sources":["../../src/utils/assistant-text.ts"],"names":[],"mappings":"AA0PA;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA6CtE;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMnE"}
|
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
const STAGE_DIRECTION_FIRST_WORDS = new Set([
|
|
2
|
+
"beam",
|
|
3
|
+
"beams",
|
|
4
|
+
"beaming",
|
|
5
|
+
"blink",
|
|
6
|
+
"blinks",
|
|
7
|
+
"blinking",
|
|
8
|
+
"blush",
|
|
9
|
+
"blushes",
|
|
10
|
+
"blushing",
|
|
11
|
+
"bow",
|
|
12
|
+
"bows",
|
|
13
|
+
"bowing",
|
|
14
|
+
"breathe",
|
|
15
|
+
"breathes",
|
|
16
|
+
"breathing",
|
|
17
|
+
"cheer",
|
|
18
|
+
"cheers",
|
|
19
|
+
"cheering",
|
|
20
|
+
"chuckle",
|
|
21
|
+
"chuckles",
|
|
22
|
+
"chuckling",
|
|
23
|
+
"clap",
|
|
24
|
+
"claps",
|
|
25
|
+
"clapping",
|
|
26
|
+
"cry",
|
|
27
|
+
"cries",
|
|
28
|
+
"crying",
|
|
29
|
+
"curtsy",
|
|
30
|
+
"curtsies",
|
|
31
|
+
"curtsying",
|
|
32
|
+
"dance",
|
|
33
|
+
"dances",
|
|
34
|
+
"dancing",
|
|
35
|
+
"frown",
|
|
36
|
+
"frowns",
|
|
37
|
+
"frowning",
|
|
38
|
+
"gasp",
|
|
39
|
+
"gasps",
|
|
40
|
+
"gasping",
|
|
41
|
+
"gesture",
|
|
42
|
+
"gestures",
|
|
43
|
+
"gesturing",
|
|
44
|
+
"giggle",
|
|
45
|
+
"giggles",
|
|
46
|
+
"giggling",
|
|
47
|
+
"glance",
|
|
48
|
+
"glances",
|
|
49
|
+
"glancing",
|
|
50
|
+
"grin",
|
|
51
|
+
"grins",
|
|
52
|
+
"grinning",
|
|
53
|
+
"laugh",
|
|
54
|
+
"laughs",
|
|
55
|
+
"laughing",
|
|
56
|
+
"lean",
|
|
57
|
+
"leans",
|
|
58
|
+
"leaning",
|
|
59
|
+
"look",
|
|
60
|
+
"looks",
|
|
61
|
+
"looking",
|
|
62
|
+
"nod",
|
|
63
|
+
"nods",
|
|
64
|
+
"nodding",
|
|
65
|
+
"pause",
|
|
66
|
+
"pauses",
|
|
67
|
+
"pausing",
|
|
68
|
+
"point",
|
|
69
|
+
"points",
|
|
70
|
+
"pointing",
|
|
71
|
+
"pose",
|
|
72
|
+
"poses",
|
|
73
|
+
"posing",
|
|
74
|
+
"pout",
|
|
75
|
+
"pouts",
|
|
76
|
+
"pouting",
|
|
77
|
+
"raise",
|
|
78
|
+
"raises",
|
|
79
|
+
"raising",
|
|
80
|
+
"shrug",
|
|
81
|
+
"shrugs",
|
|
82
|
+
"shrugging",
|
|
83
|
+
"sigh",
|
|
84
|
+
"sighs",
|
|
85
|
+
"sighing",
|
|
86
|
+
"smile",
|
|
87
|
+
"smiles",
|
|
88
|
+
"smiling",
|
|
89
|
+
"smirk",
|
|
90
|
+
"smirks",
|
|
91
|
+
"smirking",
|
|
92
|
+
"spin",
|
|
93
|
+
"spins",
|
|
94
|
+
"spinning",
|
|
95
|
+
"stare",
|
|
96
|
+
"stares",
|
|
97
|
+
"staring",
|
|
98
|
+
"stretch",
|
|
99
|
+
"stretches",
|
|
100
|
+
"stretching",
|
|
101
|
+
"sway",
|
|
102
|
+
"sways",
|
|
103
|
+
"swaying",
|
|
104
|
+
"tilt",
|
|
105
|
+
"tilts",
|
|
106
|
+
"tilting",
|
|
107
|
+
"wave",
|
|
108
|
+
"waves",
|
|
109
|
+
"waving",
|
|
110
|
+
"whisper",
|
|
111
|
+
"whispers",
|
|
112
|
+
"whispering",
|
|
113
|
+
"wink",
|
|
114
|
+
"winks",
|
|
115
|
+
"winking",
|
|
116
|
+
"yawn",
|
|
117
|
+
"yawns",
|
|
118
|
+
"yawning",
|
|
119
|
+
]);
|
|
120
|
+
function collapseInlineWhitespace(input) {
|
|
121
|
+
return input.replace(/[ \t]+/g, " ").trim();
|
|
122
|
+
}
|
|
123
|
+
function looksLikeStageDirection(input) {
|
|
124
|
+
const normalized = collapseInlineWhitespace(input).trim();
|
|
125
|
+
if (!normalized || normalized.length > 100)
|
|
126
|
+
return false;
|
|
127
|
+
// biome-ignore lint/suspicious/noControlCharactersInRegex: intentional ASCII-range check to reject non-ASCII input
|
|
128
|
+
if (/[^\x00-\x7F]/.test(normalized)) {
|
|
129
|
+
return false;
|
|
130
|
+
}
|
|
131
|
+
const wordMatch = normalized.match(/^[^\w]*([A-Za-z]+)/);
|
|
132
|
+
if (!wordMatch)
|
|
133
|
+
return false;
|
|
134
|
+
const firstWord = wordMatch[1].toLowerCase();
|
|
135
|
+
return STAGE_DIRECTION_FIRST_WORDS.has(firstWord);
|
|
136
|
+
}
|
|
137
|
+
function stripWrappedStageDirections(input, pattern) {
|
|
138
|
+
return input.replace(pattern, (match, inner, offset, source) => {
|
|
139
|
+
const prev = source[offset - 1] ?? "";
|
|
140
|
+
const next = source[offset + match.length] ?? "";
|
|
141
|
+
const hasSafeLeftBoundary = offset === 0 || /[\s([{>"'“‘.!?,;:-]/.test(prev);
|
|
142
|
+
const hasSafeRightBoundary = offset + match.length >= source.length ||
|
|
143
|
+
/[\s)\]}<"'”’.!?,;:-]/.test(next);
|
|
144
|
+
if (!hasSafeLeftBoundary ||
|
|
145
|
+
!hasSafeRightBoundary ||
|
|
146
|
+
!looksLikeStageDirection(inner)) {
|
|
147
|
+
return match;
|
|
148
|
+
}
|
|
149
|
+
return " ";
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
function tidyAssistantTextSpacing(input) {
|
|
153
|
+
const safe = input.length > 200_000 ? input.slice(0, 200_000) : input;
|
|
154
|
+
return safe
|
|
155
|
+
.replace(/[ \t]+\n/g, "\n")
|
|
156
|
+
.replace(/\n[ \t]+/g, "\n")
|
|
157
|
+
.replace(/[ \t]{2,}/g, " ")
|
|
158
|
+
.replace(/ ?([,.;!?])/g, "$1")
|
|
159
|
+
.replace(/\(\s+/g, "(")
|
|
160
|
+
.replace(/\s+\)/g, ")");
|
|
161
|
+
}
|
|
162
|
+
function tryParseObject(input) {
|
|
163
|
+
try {
|
|
164
|
+
const parsed = JSON.parse(input);
|
|
165
|
+
return parsed && typeof parsed === "object" && !Array.isArray(parsed)
|
|
166
|
+
? parsed
|
|
167
|
+
: null;
|
|
168
|
+
}
|
|
169
|
+
catch {
|
|
170
|
+
return null;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
function isResponseHandlerPayload(value) {
|
|
174
|
+
const shouldRespond = value.shouldRespond;
|
|
175
|
+
return (typeof value.replyText === "string" &&
|
|
176
|
+
(shouldRespond === "RESPOND" ||
|
|
177
|
+
shouldRespond === "IGNORE" ||
|
|
178
|
+
shouldRespond === "STOP" ||
|
|
179
|
+
Array.isArray(value.contexts) ||
|
|
180
|
+
Array.isArray(value.intents) ||
|
|
181
|
+
Array.isArray(value.threadOps) ||
|
|
182
|
+
Array.isArray(value.candidateActionNames)));
|
|
183
|
+
}
|
|
184
|
+
// Structural keys an elizaOS reply object may legitimately carry alongside the
|
|
185
|
+
// user-facing `reply`. When a parsed object's keys are ALL within this set and
|
|
186
|
+
// it has a string `reply`, the model emitted its whole response object as text
|
|
187
|
+
// (e.g. `{"reply":"107"}` or `{"reply":"…","action":"NONE"}`) — unwrap it. The
|
|
188
|
+
// allow-list keeps us from stripping real chat content that merely happens to be
|
|
189
|
+
// JSON with a `reply` field plus unrelated data.
|
|
190
|
+
const REPLY_PAYLOAD_KEYS = new Set([
|
|
191
|
+
"reply",
|
|
192
|
+
"response",
|
|
193
|
+
"text",
|
|
194
|
+
"message",
|
|
195
|
+
"thought",
|
|
196
|
+
"action",
|
|
197
|
+
"actions",
|
|
198
|
+
"simple",
|
|
199
|
+
"providers",
|
|
200
|
+
"evaluators",
|
|
201
|
+
"inReplyTo",
|
|
202
|
+
"attachments",
|
|
203
|
+
]);
|
|
204
|
+
// The model wraps its answer under `reply` or `response` (the key drifts by
|
|
205
|
+
// model/image — both observed on cloud agents). Return the primitive value from
|
|
206
|
+
// whichever is present, but only when EVERY key is a known response-shape key,
|
|
207
|
+
// so ordinary chat text that merely contains JSON is never rewritten. Allows a
|
|
208
|
+
// primitive value (`{"reply":42}` / `{"response":true}`), not just strings;
|
|
209
|
+
// objects/arrays aren't user-facing text and are rejected.
|
|
210
|
+
const PRIMARY_REPLY_KEYS = ["reply", "response"];
|
|
211
|
+
function getSimpleReplyValue(value) {
|
|
212
|
+
let found;
|
|
213
|
+
for (const key of PRIMARY_REPLY_KEYS) {
|
|
214
|
+
const candidate = value[key];
|
|
215
|
+
if (typeof candidate === "string" ||
|
|
216
|
+
typeof candidate === "number" ||
|
|
217
|
+
typeof candidate === "boolean") {
|
|
218
|
+
found = candidate;
|
|
219
|
+
break;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
if (found === undefined)
|
|
223
|
+
return null;
|
|
224
|
+
for (const key of Object.keys(value)) {
|
|
225
|
+
if (!REPLY_PAYLOAD_KEYS.has(key))
|
|
226
|
+
return null;
|
|
227
|
+
}
|
|
228
|
+
return String(found);
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Extracts the user-facing reply from a response-handler payload that leaked as
|
|
232
|
+
* plain text. Local models can emit tool arguments as text when function-call
|
|
233
|
+
* transport is unavailable, for example:
|
|
234
|
+
*
|
|
235
|
+
* "RESPOND", "contexts": ["simple"], "replyText": "Hello"
|
|
236
|
+
*
|
|
237
|
+
* That string is valid object content once the first value is named
|
|
238
|
+
* `shouldRespond`, so parse that shape without touching ordinary chat text.
|
|
239
|
+
*/
|
|
240
|
+
export function extractAssistantReplyText(input) {
|
|
241
|
+
if (typeof input !== "string")
|
|
242
|
+
return null;
|
|
243
|
+
const trimmed = input.trim();
|
|
244
|
+
// Shape 1: a leaked response-handler payload keyed by `replyText` — either the
|
|
245
|
+
// full object or a bare argument fragment (`"RESPOND", "replyText": "Hi"`).
|
|
246
|
+
if (trimmed.includes("replyText")) {
|
|
247
|
+
const candidates = [trimmed];
|
|
248
|
+
if (!trimmed.startsWith("{") && !trimmed.startsWith("[")) {
|
|
249
|
+
candidates.push(`{"shouldRespond":${trimmed}}`);
|
|
250
|
+
if (trimmed.endsWith("}")) {
|
|
251
|
+
candidates.push(`{"shouldRespond":${trimmed.slice(0, -1)}}`);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
for (const candidate of candidates) {
|
|
255
|
+
const parsed = tryParseObject(candidate);
|
|
256
|
+
if (!parsed || !isResponseHandlerPayload(parsed))
|
|
257
|
+
continue;
|
|
258
|
+
const replyText = parsed.replyText.trim();
|
|
259
|
+
if (!replyText)
|
|
260
|
+
return null;
|
|
261
|
+
return stripAssistantStageDirections(replyText).trim() || null;
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
// Shape 2: the model emitted its whole reply object as text, e.g.
|
|
265
|
+
// `{"reply":"107"}`, `{"response":"54"}`, or `{"reply":"…","action":"NONE"}`
|
|
266
|
+
// (observed from gpt-oss/glm on cloud agents; the wrapper key drifts between
|
|
267
|
+
// `reply` and `response`). Only unwrap a well-formed object whose keys are all
|
|
268
|
+
// known response-shape keys, so ordinary chat text that merely contains JSON
|
|
269
|
+
// is never rewritten.
|
|
270
|
+
if (trimmed.startsWith("{") &&
|
|
271
|
+
trimmed.endsWith("}") &&
|
|
272
|
+
(trimmed.includes('"reply"') || trimmed.includes('"response"'))) {
|
|
273
|
+
const parsed = tryParseObject(trimmed);
|
|
274
|
+
const reply = parsed ? getSimpleReplyValue(parsed) : null;
|
|
275
|
+
if (reply !== null) {
|
|
276
|
+
const trimmedReply = reply.trim();
|
|
277
|
+
if (!trimmedReply)
|
|
278
|
+
return null;
|
|
279
|
+
return stripAssistantStageDirections(trimmedReply).trim() || null;
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
return null;
|
|
283
|
+
}
|
|
284
|
+
export function stripAssistantStageDirections(input) {
|
|
285
|
+
if (typeof input !== "string")
|
|
286
|
+
return "";
|
|
287
|
+
let normalized = input;
|
|
288
|
+
normalized = stripWrappedStageDirections(normalized, /\*([^*\n]+)\*/g);
|
|
289
|
+
normalized = stripWrappedStageDirections(normalized, /_([^_\n]+)_/g);
|
|
290
|
+
return tidyAssistantTextSpacing(normalized);
|
|
291
|
+
}
|
|
292
|
+
//# sourceMappingURL=assistant-text.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assistant-text.js","sourceRoot":"","sources":["../../src/utils/assistant-text.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Typed contract for the in-tab kit installed by BROWSER_TAB_PRELOAD_SCRIPT.
|
|
3
|
+
*
|
|
4
|
+
* The kit lives at `window.__elizaTabKit` inside every <electrobun-webview>
|
|
5
|
+
* tab and provides:
|
|
6
|
+
* - a visual cursor overlay the user sees moving as the agent works,
|
|
7
|
+
* - faithful pointer-event sequences (vs the bare `element.click()` of the
|
|
8
|
+
* legacy command path),
|
|
9
|
+
* - keyboard-accurate typing that triggers React controlled-input change
|
|
10
|
+
* detection.
|
|
11
|
+
*
|
|
12
|
+
* The host (running in the main webview) calls these via short
|
|
13
|
+
* `tag.executeJavascript(...)` snippets that reference `window.__elizaTabKit.*`.
|
|
14
|
+
* The original `__elizaTabExec(requestId, script)` channel is unchanged — the
|
|
15
|
+
* kit is additive.
|
|
16
|
+
*
|
|
17
|
+
* Synthetic events have `isTrusted === false` (not forge-able from script).
|
|
18
|
+
* That's acceptable for React-driven sites and most Web3 UIs; sites that
|
|
19
|
+
* specifically gate on `isTrusted` cannot be driven by this kit; callers must
|
|
20
|
+
* use a CDP-backed browser automation path for those pages.
|
|
21
|
+
*/
|
|
22
|
+
export interface BrowserTabKitCursorPoint {
|
|
23
|
+
x: number;
|
|
24
|
+
y: number;
|
|
25
|
+
}
|
|
26
|
+
export interface BrowserTabKitMoveOptions {
|
|
27
|
+
/** Animation duration in ms; defaults to 220. */
|
|
28
|
+
durationMs?: number;
|
|
29
|
+
}
|
|
30
|
+
export interface BrowserTabKitDispatchOptions {
|
|
31
|
+
/** Center of the click in viewport CSS pixels. Defaults to element center. */
|
|
32
|
+
x?: number;
|
|
33
|
+
y?: number;
|
|
34
|
+
/** Mouse button: 0 = primary, 1 = middle, 2 = secondary. Default 0. */
|
|
35
|
+
button?: 0 | 1 | 2;
|
|
36
|
+
/** True for double-click semantics. */
|
|
37
|
+
doubleClick?: boolean;
|
|
38
|
+
}
|
|
39
|
+
export interface BrowserTabKitTypeOptions {
|
|
40
|
+
/** Per-character delay in ms (uniform). Defaults to 18. */
|
|
41
|
+
perCharDelayMs?: number;
|
|
42
|
+
/** True to clear the existing value first. */
|
|
43
|
+
replace?: boolean;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Fully-formed RPC surface attached to `window.__elizaTabKit` inside every
|
|
47
|
+
* agent-driven tab. Methods are async (returning Promise) when they involve
|
|
48
|
+
* animation or fetch; sync otherwise.
|
|
49
|
+
*/
|
|
50
|
+
export interface BrowserTabKit {
|
|
51
|
+
cursor: {
|
|
52
|
+
moveTo: (target: BrowserTabKitCursorPoint, options?: BrowserTabKitMoveOptions) => Promise<void>;
|
|
53
|
+
click: (target: BrowserTabKitCursorPoint) => Promise<void>;
|
|
54
|
+
highlight: (element: Element, durationMs?: number) => void;
|
|
55
|
+
show: () => void;
|
|
56
|
+
hide: () => void;
|
|
57
|
+
};
|
|
58
|
+
dispatchPointerSequence: (target: Element, options?: BrowserTabKitDispatchOptions) => Promise<void>;
|
|
59
|
+
typeRealistic: (target: Element, text: string, options?: BrowserTabKitTypeOptions) => Promise<void>;
|
|
60
|
+
/**
|
|
61
|
+
* Populate an `<input type=file>` from a URL or data: URI by fetching the
|
|
62
|
+
* bytes, wrapping them in a File, and assigning via DataTransfer. Real
|
|
63
|
+
* browser file inputs cannot be set from script otherwise — security
|
|
64
|
+
* sandbox blocks direct .files assignment of arbitrary paths. DataTransfer
|
|
65
|
+
* is the standard workaround that fires the file's `change` event.
|
|
66
|
+
*/
|
|
67
|
+
setFileInput: (target: HTMLInputElement, url: string, options?: {
|
|
68
|
+
fileName?: string;
|
|
69
|
+
mimeType?: string;
|
|
70
|
+
}) => Promise<{
|
|
71
|
+
name: string;
|
|
72
|
+
size: number;
|
|
73
|
+
type: string;
|
|
74
|
+
}>;
|
|
75
|
+
}
|
|
76
|
+
declare global {
|
|
77
|
+
interface Window {
|
|
78
|
+
__elizaTabKit?: BrowserTabKit;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=browser-tab-kit-types.d.ts.map
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Typed contract for the in-tab kit installed by BROWSER_TAB_PRELOAD_SCRIPT.
|
|
3
|
+
*
|
|
4
|
+
* The kit lives at `window.__elizaTabKit` inside every <electrobun-webview>
|
|
5
|
+
* tab and provides:
|
|
6
|
+
* - a visual cursor overlay the user sees moving as the agent works,
|
|
7
|
+
* - faithful pointer-event sequences (vs the bare `element.click()` of the
|
|
8
|
+
* legacy command path),
|
|
9
|
+
* - keyboard-accurate typing that triggers React controlled-input change
|
|
10
|
+
* detection.
|
|
11
|
+
*
|
|
12
|
+
* The host (running in the main webview) calls these via short
|
|
13
|
+
* `tag.executeJavascript(...)` snippets that reference `window.__elizaTabKit.*`.
|
|
14
|
+
* The original `__elizaTabExec(requestId, script)` channel is unchanged — the
|
|
15
|
+
* kit is additive.
|
|
16
|
+
*
|
|
17
|
+
* Synthetic events have `isTrusted === false` (not forge-able from script).
|
|
18
|
+
* That's acceptable for React-driven sites and most Web3 UIs; sites that
|
|
19
|
+
* specifically gate on `isTrusted` cannot be driven by this kit; callers must
|
|
20
|
+
* use a CDP-backed browser automation path for those pages.
|
|
21
|
+
*/
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=browser-tab-kit-types.js.map
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Window-global handshake between the BrowserWorkspaceView React component
|
|
3
|
+
* (which owns the live <electrobun-webview> tag refs) and the Electrobun
|
|
4
|
+
* preload bridge (which holds the Electroview RPC handlers that bun calls
|
|
5
|
+
* into for evaluate/snapshot on a tab).
|
|
6
|
+
*
|
|
7
|
+
* Mirror of the type declared in
|
|
8
|
+
* platforms/electrobun/src/bridge/browser-tabs-renderer-registry.ts — both
|
|
9
|
+
* read/write the same `window.__ELIZA_BROWSER_TABS_REGISTRY__` key.
|
|
10
|
+
*/
|
|
11
|
+
export type BrowserTabsRendererImpl = {
|
|
12
|
+
evaluate: (id: string, script: string, timeoutMs: number) => Promise<{
|
|
13
|
+
ok: boolean;
|
|
14
|
+
result?: unknown;
|
|
15
|
+
error?: string;
|
|
16
|
+
}>;
|
|
17
|
+
getTabRect: (id: string) => Promise<{
|
|
18
|
+
x: number;
|
|
19
|
+
y: number;
|
|
20
|
+
width: number;
|
|
21
|
+
height: number;
|
|
22
|
+
} | null>;
|
|
23
|
+
};
|
|
24
|
+
declare const REGISTRY_KEY: "__ELIZA_BROWSER_TABS_REGISTRY__";
|
|
25
|
+
/**
|
|
26
|
+
* Preload script string injected into every <electrobun-webview> tab so the
|
|
27
|
+
* host page (running in the main webview) can request a script evaluation
|
|
28
|
+
* via tag.executeJavascript and receive the result back via the
|
|
29
|
+
* `host-message` event channel.
|
|
30
|
+
*
|
|
31
|
+
* Runs inside the OOPIF (the tab's content) before any page scripts. Two
|
|
32
|
+
* surfaces are installed:
|
|
33
|
+
*
|
|
34
|
+
* 1. `window.__elizaTabExec(requestId, script)` — the eval-bridge entry
|
|
35
|
+
* that the renderer uses for arbitrary script evaluation. Results
|
|
36
|
+
* return via `__electrobunSendToHost`. `__electrobunSendToHost`
|
|
37
|
+
* JSON-stringifies the payload, so we pre-clone via
|
|
38
|
+
* `JSON.parse(JSON.stringify(...))` to surface unserializable results
|
|
39
|
+
* as a structured `{ __unserializable, type, repr }` marker rather
|
|
40
|
+
* than letting the native send silently drop them or throw.
|
|
41
|
+
*
|
|
42
|
+
* 2. `window.__elizaTabKit` — see browser-tab-kit-types.ts. Visual cursor
|
|
43
|
+
* overlay + faithful pointer-event sequences + React-compatible
|
|
44
|
+
* typing. Used by the agent's realistic-* subactions so the user can
|
|
45
|
+
* watch the cursor move and so events fire correctly on controlled
|
|
46
|
+
* inputs.
|
|
47
|
+
*/
|
|
48
|
+
export declare const BROWSER_TAB_PRELOAD_SCRIPT = "\n(() => {\n const send = (payload) => {\n try {\n if (typeof window.__electrobunSendToHost === \"function\") {\n window.__electrobunSendToHost(payload);\n }\n } catch (_err) {\n // No fallback \u2014 if the host bridge is missing, swallow.\n }\n };\n\n const describeValue = (value) => {\n if (value === null) return \"null\";\n const t = typeof value;\n if (t !== \"object\") return t;\n try {\n const ctor = value && value.constructor && value.constructor.name;\n return ctor || \"object\";\n } catch {\n return \"object\";\n }\n };\n\n const toCloneable = (value) => {\n if (value === undefined) return undefined;\n try {\n return JSON.parse(JSON.stringify(value));\n } catch (_err) {\n let repr;\n try {\n repr = String(value);\n } catch {\n repr = \"[unprintable value]\";\n }\n return {\n __unserializable: true,\n type: describeValue(value),\n repr,\n };\n }\n };\n\n window.__elizaTabExec = (requestId, script) => {\n let value;\n try {\n // Indirect eval gives the script the global scope, matching the\n // behaviour of webview.executeJavascript on a top-level webview.\n value = (0, eval)(script);\n } catch (err) {\n send({\n type: \"__elizaTabExecResult\",\n requestId,\n ok: false,\n error: err && err.message ? String(err.message) : String(err),\n });\n return;\n }\n\n Promise.resolve(value)\n .then((resolved) => {\n send({\n type: \"__elizaTabExecResult\",\n requestId,\n ok: true,\n result: toCloneable(resolved),\n });\n })\n .catch((err) => {\n send({\n type: \"__elizaTabExecResult\",\n requestId,\n ok: false,\n error: err && err.message ? String(err.message) : String(err),\n });\n });\n };\n\n // \u2500\u2500 Visual cursor + realistic event kit \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n // Installed lazily to avoid touching the DOM before the page is ready.\n // Idempotent \u2014 re-running just returns the existing kit.\n let kit = null;\n const ensureKit = () => {\n if (kit) return kit;\n if (!document || !document.documentElement) return null;\n\n let cursorRoot = null;\n let cursorVisible = false;\n let cursorPos = { x: 0, y: 0 };\n let activeAnim = 0;\n\n const easeOut = (t) => {\n // Approximation of cubic-bezier(.22,.61,.36,1) \u2014 a brief ease-out.\n const c = 1 - t;\n return 1 - c * c * c;\n };\n\n const buildCursorRoot = () => {\n const root = document.createElement(\"div\");\n root.setAttribute(\"aria-hidden\", \"true\");\n root.setAttribute(\"data-eliza-cursor\", \"1\");\n root.style.cssText = [\n \"position:fixed\",\n \"left:0\",\n \"top:0\",\n \"width:0\",\n \"height:0\",\n \"pointer-events:none\",\n \"z-index:2147483647\",\n \"display:none\",\n \"transform:translate3d(0,0,0)\",\n \"will-change:transform\",\n ].join(\";\");\n // Inline SVG arrow + ripple ring. The arrow uses a soft drop-shadow\n // so it stays visible against any page background.\n root.innerHTML = [\n \"<svg width='28' height='28' viewBox='0 0 28 28' style='display:block;filter:drop-shadow(0 1px 2px rgba(0,0,0,0.45));'>\",\n \" <path d='M3 2 L3 22 L9 16 L13 25 L16 23 L12 14 L20 14 Z' fill='#ffffff' stroke='#111111' stroke-width='1' stroke-linejoin='round'/>\",\n \"</svg>\",\n \"<div data-eliza-cursor-ripple style='position:absolute;left:-12px;top:-12px;width:24px;height:24px;border-radius:50%;border:2px solid #38bdf8;opacity:0;transform:scale(0.4);transition:transform 220ms ease-out, opacity 220ms ease-out;pointer-events:none;'></div>\",\n ].join(\"\");\n return root;\n };\n\n const ensureCursorRoot = () => {\n if (cursorRoot && cursorRoot.isConnected) return cursorRoot;\n cursorRoot = buildCursorRoot();\n document.documentElement.appendChild(cursorRoot);\n return cursorRoot;\n };\n\n const showCursor = () => {\n cursorVisible = true;\n const root = ensureCursorRoot();\n root.style.display = \"block\";\n };\n const hideCursor = () => {\n cursorVisible = false;\n if (cursorRoot) cursorRoot.style.display = \"none\";\n };\n\n const placeCursor = (x, y) => {\n cursorPos = { x, y };\n const root = ensureCursorRoot();\n root.style.transform = \"translate3d(\" + x + \"px,\" + y + \"px,0)\";\n };\n\n const moveTo = (target, options) =>\n new Promise((resolve) => {\n const root = ensureCursorRoot();\n if (!cursorVisible) {\n showCursor();\n // Snap to current pos so the first move animates from where we are.\n placeCursor(cursorPos.x || target.x, cursorPos.y || target.y);\n }\n const startX = cursorPos.x;\n const startY = cursorPos.y;\n const endX = target.x;\n const endY = target.y;\n const dur = Math.max(40, Math.min(2000, (options && options.durationMs) || 220));\n const startedAt = performance.now();\n const animId = ++activeAnim;\n const step = (now) => {\n if (animId !== activeAnim) return; // Superseded by another move.\n const t = Math.min(1, (now - startedAt) / dur);\n const eased = easeOut(t);\n placeCursor(startX + (endX - startX) * eased, startY + (endY - startY) * eased);\n if (t < 1) {\n requestAnimationFrame(step);\n } else {\n resolve();\n }\n };\n requestAnimationFrame(step);\n });\n\n const playRipple = () => {\n const root = ensureCursorRoot();\n const ripple = root.querySelector(\"[data-eliza-cursor-ripple]\");\n if (!ripple) return;\n ripple.style.transition = \"none\";\n ripple.style.opacity = \"0.85\";\n ripple.style.transform = \"scale(0.4)\";\n // Force layout so the next frame animates.\n void ripple.offsetWidth;\n ripple.style.transition = \"transform 320ms ease-out, opacity 320ms ease-out\";\n ripple.style.opacity = \"0\";\n ripple.style.transform = \"scale(1.6)\";\n };\n\n const clickAt = (target) => moveTo(target).then(() => {\n playRipple();\n });\n\n const highlight = (element, durationMs) => {\n if (!element || !element.style) return;\n const prevOutline = element.style.outline;\n const prevOutlineOffset = element.style.outlineOffset;\n const prevTransition = element.style.transition;\n element.style.transition = \"outline-color 180ms ease-out\";\n element.style.outline = \"2px solid #38bdf8\";\n element.style.outlineOffset = \"2px\";\n const dur = Math.max(120, Math.min(2000, durationMs || 360));\n setTimeout(() => {\n element.style.outline = prevOutline;\n element.style.outlineOffset = prevOutlineOffset;\n element.style.transition = prevTransition;\n }, dur);\n };\n\n const elementCenter = (element) => {\n const rect = element.getBoundingClientRect();\n return {\n x: rect.left + rect.width / 2,\n y: rect.top + rect.height / 2,\n };\n };\n\n const fireMouseEvent = (target, type, x, y, button, buttons) => {\n // view is intentionally omitted \u2014 JSDOM rejects window references at\n // construction time, real browsers fill view in during dispatch, and\n // React synthetic events don't depend on it.\n const event = new MouseEvent(type, {\n bubbles: true,\n cancelable: true,\n composed: true,\n button: button,\n buttons: buttons,\n clientX: x,\n clientY: y,\n screenX: x,\n screenY: y,\n });\n target.dispatchEvent(event);\n };\n\n const firePointerEvent = (target, type, x, y, button, buttons) => {\n let event;\n try {\n event = new PointerEvent(type, {\n bubbles: true,\n cancelable: true,\n composed: true,\n pointerId: 1,\n pointerType: \"mouse\",\n isPrimary: true,\n button: button,\n buttons: buttons,\n clientX: x,\n clientY: y,\n screenX: x,\n screenY: y,\n });\n } catch (_err) {\n // Older WebKit may not have PointerEvent; fall back to mouse only.\n return;\n }\n target.dispatchEvent(event);\n };\n\n const dispatchPointerSequence = (target, options) => {\n if (!target) return Promise.resolve();\n const opts = options || {};\n const center = elementCenter(target);\n const x = typeof opts.x === \"number\" ? opts.x : center.x;\n const y = typeof opts.y === \"number\" ? opts.y : center.y;\n const button = typeof opts.button === \"number\" ? opts.button : 0;\n\n return moveTo({ x: x, y: y }).then(() => {\n firePointerEvent(target, \"pointerover\", x, y, button, 0);\n fireMouseEvent(target, \"mouseover\", x, y, button, 0);\n firePointerEvent(target, \"pointermove\", x, y, button, 0);\n fireMouseEvent(target, \"mousemove\", x, y, button, 0);\n firePointerEvent(target, \"pointerdown\", x, y, button, 1);\n fireMouseEvent(target, \"mousedown\", x, y, button, 1);\n // Most form controls expect focus between mousedown and click.\n if (typeof target.focus === \"function\") {\n try { target.focus({ preventScroll: true }); } catch (_e) { try { target.focus(); } catch (_e2) {} }\n }\n firePointerEvent(target, \"pointerup\", x, y, button, 0);\n fireMouseEvent(target, \"mouseup\", x, y, button, 0);\n fireMouseEvent(target, \"click\", x, y, button, 0);\n if (opts.doubleClick) {\n fireMouseEvent(target, \"dblclick\", x, y, button, 0);\n }\n playRipple();\n });\n };\n\n // React's controlled inputs check the value setter against the\n // prototype's own descriptor to detect \"real\" user input. Mutating\n // .value directly bypasses that. This helper sets value via the\n // prototype descriptor so React/Preact/Solid all see the change.\n const setNativeValue = (element, value) => {\n const proto = Object.getPrototypeOf(element);\n const protoDesc = proto ? Object.getOwnPropertyDescriptor(proto, \"value\") : null;\n const ownDesc = Object.getOwnPropertyDescriptor(element, \"value\");\n if (protoDesc && protoDesc.set && (!ownDesc || ownDesc.set !== protoDesc.set)) {\n protoDesc.set.call(element, value);\n } else {\n element.value = value;\n }\n };\n\n const fireKey = (target, type, key) => {\n const isChar = key.length === 1;\n const code = isChar\n ? (/[a-z]/i.test(key) ? \"Key\" + key.toUpperCase() : (\"Digit\" + key))\n : key;\n const init = {\n key: key,\n code: code,\n bubbles: true,\n cancelable: true,\n composed: true,\n };\n try {\n target.dispatchEvent(new KeyboardEvent(type, init));\n } catch (_err) {\n // KeyboardEvent always exists in modern browsers; ignore.\n }\n };\n\n const typeRealistic = (target, text, options) => {\n if (!target) return Promise.resolve();\n const opts = options || {};\n const delay = Math.max(0, Math.min(200, typeof opts.perCharDelayMs === \"number\" ? opts.perCharDelayMs : 18));\n try { target.focus({ preventScroll: true }); } catch (_e) { try { target.focus(); } catch (_e2) {} }\n if (opts.replace) {\n try {\n if (typeof target.setSelectionRange === \"function\") {\n target.setSelectionRange(0, (target.value || \"\").length);\n }\n } catch (_e) {}\n setNativeValue(target, \"\");\n target.dispatchEvent(new Event(\"input\", { bubbles: true, composed: true }));\n }\n\n const chars = Array.from(text);\n let index = 0;\n const sleep = (ms) => new Promise((r) => setTimeout(r, ms));\n\n const stepOne = () => {\n if (index >= chars.length) return Promise.resolve();\n const ch = chars[index++];\n fireKey(target, \"keydown\", ch);\n try {\n target.dispatchEvent(new InputEvent(\"beforeinput\", { bubbles: true, cancelable: true, composed: true, data: ch, inputType: \"insertText\" }));\n } catch (_e) {}\n const next = (target.value || \"\") + ch;\n setNativeValue(target, next);\n try {\n target.dispatchEvent(new InputEvent(\"input\", { bubbles: true, composed: true, data: ch, inputType: \"insertText\" }));\n } catch (_e) {\n target.dispatchEvent(new Event(\"input\", { bubbles: true, composed: true }));\n }\n fireKey(target, \"keyup\", ch);\n if (delay > 0) return sleep(delay).then(stepOne);\n return Promise.resolve().then(stepOne);\n };\n\n return stepOne().then(() => {\n target.dispatchEvent(new Event(\"change\", { bubbles: true, composed: true }));\n });\n };\n\n const setFileInput = async (target, url, options) => {\n if (!target || target.tagName !== \"INPUT\" || target.type !== \"file\") {\n throw new Error(\"setFileInput requires an HTMLInputElement of type=file\");\n }\n const opts = options || {};\n const response = await fetch(url, { credentials: \"omit\" });\n if (!response.ok) {\n throw new Error(\"setFileInput fetch failed: HTTP \" + response.status);\n }\n const blob = await response.blob();\n const mimeType = opts.mimeType || blob.type || \"application/octet-stream\";\n const ext = (() => {\n if (/png/i.test(mimeType)) return \"png\";\n if (/jpe?g/i.test(mimeType)) return \"jpg\";\n if (/webp/i.test(mimeType)) return \"webp\";\n if (/gif/i.test(mimeType)) return \"gif\";\n return \"bin\";\n })();\n const fileName = opts.fileName || \"upload-\" + Date.now() + \".\" + ext;\n const file = new File([blob], fileName, { type: mimeType });\n // The DataTransfer constructor is supported in WebKit, Blink, and\n // Gecko; this is the standard \"set <input type=file> from script\"\n // workaround. Direct .files= assignment is sandbox-blocked.\n const dt = new DataTransfer();\n dt.items.add(file);\n target.files = dt.files;\n try { target.focus({ preventScroll: true }); } catch (_e) {}\n target.dispatchEvent(new Event(\"input\", { bubbles: true, composed: true }));\n target.dispatchEvent(new Event(\"change\", { bubbles: true, composed: true }));\n return { name: file.name, size: file.size, type: file.type };\n };\n\n kit = {\n cursor: {\n moveTo: moveTo,\n click: clickAt,\n highlight: highlight,\n show: showCursor,\n hide: hideCursor,\n },\n dispatchPointerSequence: dispatchPointerSequence,\n typeRealistic: typeRealistic,\n setFileInput: setFileInput,\n };\n window.__elizaTabKit = kit;\n return kit;\n };\n\n // Defer first-time installation until the document is parseable.\n if (document && document.documentElement) {\n ensureKit();\n } else if (typeof document !== \"undefined\") {\n document.addEventListener(\"DOMContentLoaded\", () => ensureKit(), { once: true });\n }\n // Also re-install after navigations within the same OOPIF (in case the\n // document was replaced and our cursor root went with it).\n if (typeof window !== \"undefined\") {\n window.addEventListener(\"pageshow\", () => ensureKit());\n }\n\n // \u2500\u2500 Wallet provider shims \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n // Inject EIP-1193 (window.ethereum) and Phantom-shaped (window.solana,\n // window.phantom.solana) wallet adapters that route every call through\n // __electrobunSendToHost to the React host, which forwards to the\n // existing client.sendBrowserWalletTransaction /\n // client.sendBrowserSolanaTransaction / etc. The host calls back into\n // the tab via tag.executeJavascript(\"window.__elizaWalletReply(...)\")\n // to deliver responses.\n //\n // Without this, launchpad pages in our <electrobun-webview> tabs see no\n // wallet provider and refuse to connect.\n if (typeof window !== \"undefined\" && !window.__elizaWalletInstalled) {\n window.__elizaWalletInstalled = true;\n\n const walletPending = new Map();\n let nextWalletReq = 1;\n\n window.__elizaWalletReply = (requestId, payload) => {\n const entry = walletPending.get(requestId);\n if (!entry) return;\n walletPending.delete(requestId);\n if (payload && typeof payload === \"object\" && payload.error) {\n entry.reject(new Error(String(payload.error)));\n } else {\n entry.resolve(payload && typeof payload === \"object\" ? payload.result : payload);\n }\n };\n\n const callHost = (protocol, method, params) =>\n new Promise((resolve, reject) => {\n if (typeof window.__electrobunSendToHost !== \"function\") {\n reject(new Error(\"Wallet bridge unavailable: not running in an Eliza tab.\"));\n return;\n }\n const requestId = nextWalletReq++;\n walletPending.set(requestId, { resolve: resolve, reject: reject });\n // Include the page's origin/hostname so the host can show a\n // \"<domain> wants to ...\" consent dialog without an extra eval\n // round-trip.\n let originValue;\n let hostnameValue;\n try {\n originValue = location.origin;\n hostnameValue = location.hostname;\n } catch (_e) {\n originValue = \"\";\n hostnameValue = \"\";\n }\n window.__electrobunSendToHost({\n type: \"__elizaWalletRequest\",\n requestId: requestId,\n protocol: protocol,\n method: method,\n params: params,\n origin: originValue,\n hostname: hostnameValue,\n });\n });\n\n // Shared wallet-picker icon. Inline so wallet discovery never depends on\n // network availability.\n const ELIZA_WALLET_ICON =\n \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIj48cmVjdCB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHJ4PSI2IiBmaWxsPSIjNmY1Y2ZmIi8+PHRleHQgeD0iNTAlIiB5PSI2OCUiIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxzYW5zLXNlcmlmIiBmb250LXNpemU9IjE2IiBmb250LXdlaWdodD0iNzAwIiBmaWxsPSIjZmZmIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj5NPC90ZXh0Pjwvc3ZnPg==\";\n\n // \u2500\u2500 EIP-1193 \u2500\u2500\n const DEFAULT_EVM_RPCS = {\n \"1\": \"https://eth.llamarpc.com\",\n \"56\": \"https://bsc-dataseed.bnbchain.org\",\n \"8453\": \"https://mainnet.base.org\",\n \"10\": \"https://mainnet.optimism.io\",\n \"42161\": \"https://arb1.arbitrum.io/rpc\",\n \"137\": \"https://polygon-rpc.com\",\n };\n const SUPPORTED_EVM_CHAIN_IDS = Object.keys(DEFAULT_EVM_RPCS);\n let evmChainId = 1;\n const parseChainId = (value) => {\n if (typeof value === \"number\" && Number.isFinite(value)) return value;\n if (typeof value !== \"string\") return null;\n const trimmed = value.trim();\n if (!trimmed) return null;\n const parsed = trimmed.startsWith(\"0x\") ? Number.parseInt(trimmed.slice(2), 16) : Number(trimmed);\n return Number.isFinite(parsed) && parsed > 0 ? parsed : null;\n };\n const formatChainId = (value) => \"0x\" + value.toString(16);\n const isSupportedEvmChainId = (value) => SUPPORTED_EVM_CHAIN_IDS.indexOf(String(value)) >= 0;\n const unsupportedEvmChainError = (value) =>\n \"Unsupported EVM chain \" + value + \". Supported chain IDs: \" + SUPPORTED_EVM_CHAIN_IDS.join(\", \") + \".\";\n const rpc = (method, params) => {\n const rpcUrl = DEFAULT_EVM_RPCS[String(evmChainId)];\n if (!rpcUrl) {\n return Promise.reject(new Error(\"No public RPC configured for chain \" + evmChainId + \".\"));\n }\n return fetch(rpcUrl, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n jsonrpc: \"2.0\",\n id: Date.now(),\n method: method,\n params: params || [],\n }),\n })\n .then((r) => r.json())\n .then((payload) => {\n if (payload && payload.error) {\n throw new Error(payload.error.message || \"RPC request failed.\");\n }\n return payload ? payload.result : null;\n });\n };\n const eventListeners = { accountsChanged: new Set(), chainChanged: new Set(), connect: new Set(), disconnect: new Set() };\n const ethereum = {\n isMetaMask: true,\n isEliza: true,\n isElizaWallet: true,\n selectedAddress: null,\n chainId: formatChainId(evmChainId),\n _events: eventListeners,\n request: (args) => {\n if (!args || typeof args.method !== \"string\") {\n return Promise.reject(new Error(\"EIP-1193 request requires {method, params}\"));\n }\n const method = args.method;\n const params = args.params;\n if (method === \"eth_chainId\") {\n return Promise.resolve(formatChainId(evmChainId));\n }\n if (method === \"net_version\") {\n return Promise.resolve(String(evmChainId));\n }\n if (method === \"wallet_addEthereumChain\") {\n const arr = Array.isArray(params) ? params : [params];\n const next = arr[0] && typeof arr[0] === \"object\" ? parseChainId(arr[0].chainId) : null;\n if (next && isSupportedEvmChainId(next)) {\n evmChainId = next;\n ethereum.chainId = formatChainId(evmChainId);\n }\n return Promise.resolve(null);\n }\n if (method === \"wallet_switchEthereumChain\") {\n const arr = Array.isArray(params) ? params : [params];\n const next = arr[0] && typeof arr[0] === \"object\" ? parseChainId(arr[0].chainId) : null;\n if (!next) {\n return Promise.reject(new Error(\"wallet_switchEthereumChain requires a valid chainId.\"));\n }\n if (!isSupportedEvmChainId(next)) {\n return Promise.reject(new Error(unsupportedEvmChainError(next)));\n }\n return callHost(\"evm\", method, params).then((result) => {\n evmChainId = next;\n ethereum.chainId = formatChainId(evmChainId);\n for (const listener of Array.from(eventListeners.chainChanged)) {\n try { listener(ethereum.chainId); } catch (_e) {}\n }\n return result;\n });\n }\n if (method === \"eth_requestAccounts\") {\n return callHost(\"evm\", method, params).then((accounts) => {\n ethereum.selectedAddress = Array.isArray(accounts) ? (accounts[0] || null) : null;\n for (const listener of Array.from(eventListeners.accountsChanged)) {\n try { listener(accounts); } catch (_e) {}\n }\n if (ethereum.selectedAddress) {\n for (const listener of Array.from(eventListeners.connect)) {\n try { listener({ chainId: ethereum.chainId }); } catch (_e) {}\n }\n }\n return accounts;\n });\n }\n if (\n method === \"eth_accounts\" ||\n method === \"personal_sign\" ||\n method === \"eth_sign\" ||\n method === \"eth_sendTransaction\" ||\n method === \"eth_signTypedData\" ||\n method === \"eth_signTypedData_v3\" ||\n method === \"eth_signTypedData_v4\"\n ) {\n return callHost(\"evm\", method, params);\n }\n return rpc(method, params);\n },\n enable: function () {\n return this.request({ method: \"eth_requestAccounts\" });\n },\n send: function (methodOrPayload, paramsOrCallback) {\n // Legacy send shapes \u2014 best-effort polyfill.\n if (typeof methodOrPayload === \"string\") {\n return this.request({ method: methodOrPayload, params: paramsOrCallback });\n }\n if (methodOrPayload && typeof methodOrPayload === \"object\") {\n return this.request({ method: methodOrPayload.method, params: methodOrPayload.params });\n }\n return Promise.reject(new Error(\"Unsupported send shape.\"));\n },\n sendAsync: function (payload, callback) {\n this.request({ method: payload.method, params: payload.params })\n .then((result) => callback(null, { jsonrpc: \"2.0\", id: payload.id, result: result }))\n .catch((err) => callback(err, null));\n },\n on: (event, listener) => {\n const set = eventListeners[event];\n if (set) set.add(listener);\n },\n removeListener: (event, listener) => {\n const set = eventListeners[event];\n if (set) set.delete(listener);\n },\n };\n\n window.__elizaWalletEmit = (event, payload) => {\n const set = eventListeners[event];\n if (!set) return;\n for (const listener of Array.from(set)) {\n try { listener(payload); } catch (_e) {}\n }\n };\n\n try {\n Object.defineProperty(window, \"ethereum\", {\n value: ethereum,\n writable: true,\n configurable: true,\n });\n } catch (_err) {\n // Some pages freeze window.ethereum after their wallet detected it;\n // fall back to direct assignment when defineProperty is blocked.\n try { window.ethereum = ethereum; } catch (_e) {}\n }\n\n // \u2500\u2500 Solana (Phantom-shaped + Wallet Standard) \u2500\u2500\n const solanaListeners = { connect: new Set(), disconnect: new Set(), accountChanged: new Set() };\n const B58 = \"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz\";\n const base58Decode = (value) => {\n const bytes = [0];\n for (let i = 0; i < value.length; i += 1) {\n const c = B58.indexOf(value[i]);\n if (c < 0) throw new Error(\"invalid base58\");\n let carry = c;\n for (let j = 0; j < bytes.length; j += 1) {\n carry += bytes[j] * 58;\n bytes[j] = carry & 0xff;\n carry >>= 8;\n }\n while (carry) {\n bytes.push(carry & 0xff);\n carry >>= 8;\n }\n }\n for (let k = 0; k < value.length && value[k] === \"1\"; k += 1) bytes.push(0);\n return new Uint8Array(bytes.reverse());\n };\n const base64ToBytes = (base64) => {\n const bin = atob(base64);\n const bytes = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; i += 1) bytes[i] = bin.charCodeAt(i);\n return bytes;\n };\n const bytesToBase64 = (bytes) => {\n let binary = \"\";\n for (let i = 0; i < bytes.length; i += 1) binary += String.fromCharCode(bytes[i]);\n return btoa(binary);\n };\n const normalizeSolanaCluster = (value) => {\n if (typeof value !== \"string\") return null;\n const lower = value.toLowerCase();\n if (lower.indexOf(\"devnet\") >= 0) return \"devnet\";\n if (lower.indexOf(\"testnet\") >= 0) return \"testnet\";\n if (lower.indexOf(\"mainnet\") >= 0) return \"mainnet\";\n return null;\n };\n const makeSolanaHostParams = (transactionBase64, context) => {\n const chain =\n context && typeof context.chain === \"string\" && context.chain.trim()\n ? context.chain.trim()\n : null;\n const cluster =\n normalizeSolanaCluster(context && context.cluster) ||\n normalizeSolanaCluster(chain) ||\n normalizeSolanaCluster(context && context.network) ||\n normalizeSolanaCluster(context && context.rpcEndpoint);\n const params = { transactionBase64: transactionBase64 };\n if (cluster) params.cluster = cluster;\n if (chain) params.chain = chain;\n if (context && typeof context.description === \"string\" && context.description.trim()) {\n params.description = context.description.trim();\n } else if (chain) {\n params.description = \"Solana transaction on \" + chain;\n } else if (cluster) {\n params.description = \"Solana transaction on \" + cluster;\n }\n return params;\n };\n const getSolanaTransactionContext = (transaction, options) => {\n const context = {};\n const candidates = [options, transaction];\n for (const candidate of candidates) {\n if (!candidate || typeof candidate !== \"object\") continue;\n if (typeof candidate.chain === \"string\") context.chain = candidate.chain;\n if (typeof candidate.cluster === \"string\") context.cluster = candidate.cluster;\n if (typeof candidate.network === \"string\") context.network = candidate.network;\n if (typeof candidate.rpcEndpoint === \"string\") context.rpcEndpoint = candidate.rpcEndpoint;\n if (typeof candidate.description === \"string\") context.description = candidate.description;\n }\n return context;\n };\n const makePublicKey = (base58) => {\n if (!base58) return null;\n const bytes = base58Decode(base58);\n const obj = {\n toBase58: () => base58,\n toString: () => base58,\n toBytes: () => new Uint8Array(bytes),\n toBuffer: () => new Uint8Array(bytes),\n equals: (other) => other && typeof other.toBase58 === \"function\" && other.toBase58() === base58,\n };\n return obj;\n };\n const solana = {\n isPhantom: true,\n isEliza: true,\n publicKey: null,\n isConnected: false,\n connect: async function (options) {\n const _options = options;\n const result = await callHost(\"solana\", \"connect\", null);\n if (result && typeof result.publicKey === \"string\") {\n this.publicKey = makePublicKey(result.publicKey);\n this.isConnected = true;\n for (const listener of Array.from(solanaListeners.connect)) {\n try { listener(this.publicKey); } catch (_e) {}\n }\n }\n return { publicKey: this.publicKey };\n },\n disconnect: async function () {\n this.publicKey = null;\n this.isConnected = false;\n for (const listener of Array.from(solanaListeners.disconnect)) {\n try { listener(); } catch (_e) {}\n }\n },\n signMessage: async function (message, _encoding) {\n const bytes = message instanceof Uint8Array ? message : new TextEncoder().encode(String(message));\n const messageBase64 = bytesToBase64(bytes);\n const result = await callHost(\"solana\", \"signMessage\", { messageBase64: messageBase64 });\n if (!result || typeof result.signatureBase64 !== \"string\") {\n throw new Error(\"Solana signMessage returned no signature.\");\n }\n return { signature: base64ToBytes(result.signatureBase64), publicKey: this.publicKey };\n },\n signTransaction: async function (transaction, options) {\n const transactionBase64 = await serializeTransactionForHost(transaction);\n const result = await callHost(\"solana\", \"signTransaction\", makeSolanaHostParams(transactionBase64, getSolanaTransactionContext(transaction, options)));\n if (!result || typeof result.signedTransactionBase64 !== \"string\") {\n throw new Error(\"Solana signTransaction returned no signed tx.\");\n }\n return deserializeTransactionFromHost(result.signedTransactionBase64, transaction);\n },\n signAndSendTransaction: async function (transaction, options) {\n const transactionBase64 = await serializeTransactionForHost(transaction);\n const result = await callHost(\"solana\", \"signAndSendTransaction\", makeSolanaHostParams(transactionBase64, getSolanaTransactionContext(transaction, options)));\n if (!result || typeof result.signature !== \"string\") {\n throw new Error(\"Solana signAndSendTransaction returned no signature.\");\n }\n return { signature: result.signature };\n },\n signAllTransactions: async function (transactions) {\n const out = [];\n for (const tx of transactions) {\n out.push(await this.signTransaction(tx));\n }\n return out;\n },\n on: (event, listener) => {\n const set = solanaListeners[event];\n if (set) set.add(listener);\n },\n off: (event, listener) => {\n const set = solanaListeners[event];\n if (set) set.delete(listener);\n },\n removeListener: (event, listener) => {\n const set = solanaListeners[event];\n if (set) set.delete(listener);\n },\n };\n\n // Helper: serialize a Solana Transaction-like object to base64. We\n // accept a few common shapes \u2014 the launchpad usually hands us either\n // a VersionedTransaction (has .serialize()) or a legacy Transaction\n // (has .serialize({verifySignatures:false})).\n async function serializeTransactionForHost(transaction) {\n if (!transaction) throw new Error(\"signTransaction requires a transaction\");\n try {\n let bytes;\n if (typeof transaction.serialize === \"function\") {\n // Legacy Transaction.serialize() throws if signatures aren't\n // present yet; pass {verifySignatures:false}. VersionedTransaction\n // ignores the option so it's safe either way.\n bytes = transaction.serialize({ verifySignatures: false, requireAllSignatures: false });\n } else if (transaction instanceof Uint8Array) {\n bytes = transaction;\n } else {\n throw new Error(\"Unsupported transaction shape for Eliza wallet bridge\");\n }\n return bytesToBase64(bytes);\n } catch (err) {\n throw err instanceof Error ? err : new Error(String(err));\n }\n }\n\n // Best-effort: hand the signed bytes back as the same transaction class\n // the caller gave us. Wallet adapters expect Phantom's signTransaction to\n // return a Transaction/VersionedTransaction, not only serialized bytes.\n function deserializeTransactionFromHost(base64, original) {\n const bytes = base64ToBytes(base64);\n const ctor = original && original.constructor;\n try {\n if (ctor && typeof ctor.deserialize === \"function\") {\n return ctor.deserialize(bytes);\n }\n } catch (_err) {}\n try {\n if (ctor && typeof ctor.from === \"function\") {\n return ctor.from(bytes);\n }\n } catch (_err) {}\n return {\n serialize: () => bytes,\n __signedBytes: bytes,\n };\n }\n\n function makeWalletStandardAccount(publicKeyString) {\n const publicKey = base58Decode(publicKeyString);\n return {\n address: publicKeyString,\n publicKey: publicKey,\n chains: [\"solana:mainnet\", \"solana:devnet\", \"solana:testnet\"],\n features: [\n \"standard:connect\",\n \"standard:disconnect\",\n \"standard:events\",\n \"solana:signMessage\",\n \"solana:signTransaction\",\n \"solana:signAndSendTransaction\",\n ],\n label: \"Eliza Wallet\",\n };\n }\n\n function registerWalletStandard() {\n let account = null;\n const ensureAccount = async () => {\n if (!solana.publicKey || !solana.isConnected) {\n await solana.connect();\n }\n const address = solana.publicKey && solana.publicKey.toBase58();\n if (!address) throw new Error(\"Solana wallet did not connect.\");\n account = makeWalletStandardAccount(address);\n return account;\n };\n const wallet = {\n version: \"1.0.0\",\n name: \"Eliza Wallet\",\n icon: ELIZA_WALLET_ICON,\n chains: [\"solana:mainnet\", \"solana:devnet\", \"solana:testnet\"],\n get accounts() {\n return account ? [account] : [];\n },\n features: {\n \"standard:connect\": {\n version: \"1.0.0\",\n connect: async () => ({ accounts: [await ensureAccount()] }),\n },\n \"standard:disconnect\": {\n version: \"1.0.0\",\n disconnect: async () => {\n await solana.disconnect();\n account = null;\n },\n },\n \"standard:events\": {\n version: \"1.0.0\",\n on: (event, listener) => {\n if (event === \"change\") {\n solanaListeners.accountChanged.add(listener);\n return () => solanaListeners.accountChanged.delete(listener);\n }\n return () => {};\n },\n },\n \"solana:signMessage\": {\n version: \"1.0.0\",\n signMessage: async (input) => {\n await ensureAccount();\n const inputs = Array.isArray(input) ? input : [input];\n return Promise.all(inputs.map(async (entry) => {\n const result = await callHost(\"solana\", \"signMessage\", {\n messageBase64: bytesToBase64(entry.message),\n });\n return {\n signedMessage: entry.message,\n signature: base64ToBytes(result.signatureBase64),\n signatureType: \"ed25519\",\n };\n }));\n },\n },\n \"solana:signTransaction\": {\n version: \"1.0.0\",\n supportedTransactionVersions: [\"legacy\", 0],\n signTransaction: async (input) => {\n await ensureAccount();\n const inputs = Array.isArray(input) ? input : [input];\n return Promise.all(inputs.map(async (entry) => {\n const result = await callHost(\"solana\", \"signTransaction\", {\n transactionBase64: bytesToBase64(entry.transaction),\n ...(entry.chain ? { chain: entry.chain } : {}),\n ...(normalizeSolanaCluster(entry.chain) ? { cluster: normalizeSolanaCluster(entry.chain) } : {}),\n ...(entry.chain ? { description: \"Wallet Standard transaction on \" + entry.chain } : {}),\n });\n return { signedTransaction: base64ToBytes(result.signedTransactionBase64) };\n }));\n },\n },\n \"solana:signAndSendTransaction\": {\n version: \"1.0.0\",\n supportedTransactionVersions: [\"legacy\", 0],\n signAndSendTransaction: async (input) => {\n await ensureAccount();\n const inputs = Array.isArray(input) ? input : [input];\n return Promise.all(inputs.map(async (entry) => {\n const result = await callHost(\"solana\", \"signAndSendTransaction\", {\n transactionBase64: bytesToBase64(entry.transaction),\n ...(entry.chain ? { chain: entry.chain } : {}),\n ...(normalizeSolanaCluster(entry.chain) ? { cluster: normalizeSolanaCluster(entry.chain) } : {}),\n ...(entry.chain ? { description: \"Wallet Standard transaction on \" + entry.chain } : {}),\n });\n return { signature: base58Decode(result.signature) };\n }));\n },\n },\n },\n };\n const register = (api) => {\n try {\n api.register(wallet);\n } catch (_err) {}\n };\n const fireRegister = () => {\n try {\n window.dispatchEvent(new CustomEvent(\"wallet-standard:register-wallet\", { detail: register }));\n } catch (_err) {}\n };\n try {\n window.addEventListener(\"wallet-standard:app-ready\", (event) => {\n if (event && event.detail) register(event.detail);\n });\n } catch (_err) {}\n fireRegister();\n if (document.readyState === \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", fireRegister, { once: true });\n }\n window.addEventListener(\"load\", fireRegister);\n }\n\n registerWalletStandard();\n\n try {\n Object.defineProperty(window, \"solana\", {\n value: solana,\n writable: true,\n configurable: true,\n });\n } catch (_err) {\n try { window.solana = solana; } catch (_e) {}\n }\n try {\n const phantomNs = window.phantom || {};\n phantomNs.solana = solana;\n window.phantom = phantomNs;\n } catch (_err) {}\n\n // Announce the provider per EIP-6963 (https://eips.ethereum.org/EIPS/eip-6963).\n // Keys:\n // uuid \u2014 stable per-installation identifier; we use a fixed value\n // because dApps key wallet selection on it. Changing this would\n // make every dApp forget the user's previous choice.\n // rdns \u2014 reverse-DNS namespace for the wallet brand.\n const announceEthereum = () => {\n try {\n const detail = Object.freeze({\n info: Object.freeze({\n name: \"Eliza\",\n uuid: \"ai.eliza.wallet:1\",\n icon: ELIZA_WALLET_ICON,\n rdns: \"ai.eliza.wallet\",\n }),\n provider: ethereum,\n });\n window.dispatchEvent(new CustomEvent(\"eip6963:announceProvider\", { detail: detail }));\n } catch (_err) {}\n };\n window.addEventListener(\"eip6963:requestProvider\", announceEthereum);\n setTimeout(announceEthereum, 0);\n }\n\n // \u2500\u2500 Vault autofill shim \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n // Detect login forms on each tab page, ask the host to look up saved\n // credentials for the current domain, and (with user consent) fill the\n // username/password inputs. Mirrors the wallet shim's request/reply\n // pattern: tab\u2192host via __electrobunSendToHost; host\u2192tab via\n // tag.executeJavascript(\"window.__elizaVaultReply(...)\").\n //\n // The host (BrowserWorkspaceView) is responsible for showing a consent\n // prompt before returning credentials. The tab never autofills without\n // a host response carrying explicit field values.\n if (typeof window !== \"undefined\" && !window.__elizaVaultInstalled) {\n window.__elizaVaultInstalled = true;\n\n const vaultPending = new Map();\n let nextVaultReq = 1;\n\n window.__elizaVaultReply = (requestId, payload) => {\n const entry = vaultPending.get(requestId);\n if (!entry) return;\n vaultPending.delete(requestId);\n try {\n if (payload && typeof payload === \"object\" && payload.error) {\n entry.reject(new Error(String(payload.error)));\n return;\n }\n entry.resolve(payload && typeof payload === \"object\" ? payload : null);\n } catch (_e) {\n // Listener errors must not bubble up into the tab page.\n }\n };\n\n function cssSelectorFor(el) {\n if (!el || el.nodeType !== 1) return null;\n if (el.id) {\n // Document.querySelector('#\u2026') only works when the id is a valid\n // selector token. For complex ids fall through to the structural\n // path so we never produce an unparsable selector.\n if (/^[A-Za-z][A-Za-z0-9_-]*$/.test(el.id)) {\n return \"#\" + el.id;\n }\n }\n const parts = [];\n let node = el;\n let depth = 0;\n while (node && node.nodeType === 1 && depth < 6) {\n let part = node.tagName.toLowerCase();\n const parent = node.parentElement;\n if (parent) {\n const sameTag = Array.from(parent.children).filter(\n (c) => c.tagName === node.tagName,\n );\n if (sameTag.length > 1) {\n const idx = sameTag.indexOf(node) + 1;\n part += \":nth-of-type(\" + idx + \")\";\n }\n }\n parts.unshift(part);\n if (parent === document.body || !parent) break;\n node = parent;\n depth += 1;\n }\n return parts.join(\" > \");\n }\n\n function findPrecedingTextInput(passwordInput) {\n // Walk previous form-field siblings/ancestors looking for a text\n // or email input that's likely the username.\n const root = passwordInput.form || document.body;\n const candidates = root.querySelectorAll(\n 'input[type=\"text\"], input[type=\"email\"], input:not([type])',\n );\n let lastBefore = null;\n for (const el of candidates) {\n if (\n el.compareDocumentPosition(passwordInput) &\n Node.DOCUMENT_POSITION_FOLLOWING\n ) {\n lastBefore = el;\n }\n }\n return lastBefore;\n }\n\n function setNativeInputValue(input, value) {\n // React (and other VDOM frameworks) overrides the value setter on\n // HTMLInputElement.prototype to track changes. Calling the prototype\n // setter directly bypasses that, then dispatching input + change\n // events re-notifies the framework so controlled inputs see the\n // update.\n const proto = Object.getPrototypeOf(input);\n const desc = Object.getOwnPropertyDescriptor(proto, \"value\");\n if (desc && typeof desc.set === \"function\") {\n desc.set.call(input, value);\n } else {\n input.value = value;\n }\n input.dispatchEvent(new Event(\"input\", { bubbles: true }));\n input.dispatchEvent(new Event(\"change\", { bubbles: true }));\n }\n\n function fillFields(fields) {\n if (!fields || typeof fields !== \"object\") return;\n for (const selector of Object.keys(fields)) {\n const value = fields[selector];\n if (typeof value !== \"string\" || value.length === 0) continue;\n let target = null;\n try {\n target = document.querySelector(selector);\n } catch (_e) {\n target = null;\n }\n if (!target) continue;\n setNativeInputValue(target, value);\n }\n }\n\n const callHost = (domain, url, fieldHints) =>\n new Promise((resolve, reject) => {\n if (typeof window.__electrobunSendToHost !== \"function\") {\n reject(\n new Error(\"Vault autofill bridge unavailable: not in an Eliza tab.\"),\n );\n return;\n }\n const requestId = nextVaultReq++;\n vaultPending.set(requestId, { resolve: resolve, reject: reject });\n window.__electrobunSendToHost({\n type: \"__elizaVaultAutofillRequest\",\n requestId: requestId,\n domain: domain,\n url: url,\n fieldHints: fieldHints,\n });\n });\n\n function scanLoginForms() {\n const passwords = document.querySelectorAll(\n 'input[type=\"password\"]:not([data-eliza-vault-scanned])',\n );\n for (const pw of passwords) {\n pw.setAttribute(\"data-eliza-vault-scanned\", \"1\");\n const form = pw.form;\n const userInput =\n (form &&\n form.querySelector(\n 'input[type=\"email\"], input[name*=\"user\" i], input[name*=\"email\" i], input[name*=\"login\" i]',\n )) ||\n findPrecedingTextInput(pw);\n const fieldHints = [];\n const pwSelector = cssSelectorFor(pw);\n if (userInput) {\n const userSelector = cssSelectorFor(userInput);\n if (userSelector) {\n fieldHints.push({ kind: \"username\", selector: userSelector });\n }\n }\n if (pwSelector) {\n fieldHints.push({ kind: \"password\", selector: pwSelector });\n }\n if (fieldHints.length === 0) continue;\n callHost(location.hostname, location.href, fieldHints)\n .then((payload) => {\n if (payload && payload.fields) fillFields(payload.fields);\n })\n .catch(() => {\n // User denied, no match, or bridge unavailable. Leave fields\n // alone so the user can type credentials manually.\n });\n }\n }\n\n let scanTimer = null;\n function ensureVaultScan() {\n if (scanTimer) clearTimeout(scanTimer);\n scanTimer = setTimeout(() => {\n scanTimer = null;\n scanLoginForms();\n }, 250);\n }\n\n if (typeof window !== \"undefined\") {\n window.addEventListener(\"pageshow\", ensureVaultScan);\n }\n if (typeof MutationObserver === \"function\" && document.documentElement) {\n const obs = new MutationObserver(ensureVaultScan);\n obs.observe(document.documentElement, {\n childList: true,\n subtree: true,\n });\n }\n if (document && document.readyState !== \"loading\") {\n ensureVaultScan();\n } else if (typeof document !== \"undefined\") {\n document.addEventListener(\"DOMContentLoaded\", () => ensureVaultScan(), {\n once: true,\n });\n }\n }\n})();\n";
|
|
49
|
+
declare global {
|
|
50
|
+
interface Window {
|
|
51
|
+
[REGISTRY_KEY]?: BrowserTabsRendererImpl;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
export declare function setBrowserTabsRendererImpl(impl: BrowserTabsRendererImpl | null): void;
|
|
55
|
+
export {};
|
|
56
|
+
//# sourceMappingURL=browser-tabs-renderer-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-tabs-renderer-registry.d.ts","sourceRoot":"","sources":["../../src/utils/browser-tabs-renderer-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,EAAE,CACR,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,KACd,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChE,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;QAClC,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG,IAAI,CAAC,CAAC;CACX,CAAC;AAEF,QAAA,MAAM,YAAY,EAAG,iCAA0C,CAAC;AAEhE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,0BAA0B,uxhDAotCtC,CAAC;AAEF,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,CAAC,YAAY,CAAC,CAAC,EAAE,uBAAuB,CAAC;KAC1C;CACF;AAED,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,uBAAuB,GAAG,IAAI,GACnC,IAAI,CAON"}
|