@webless/agent 0.3.2 → 0.4.1

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/react/styles/tokens.css","../src/react/styles/widget.css","../src/react/styles/page-shift.css","../src/react/components/ToolTimeline/ToolTimeline.css","../src/react/components/AgentActivityBubble/AgentActivityBubble.css","../src/react/components/Composer/Composer.css","../src/react/components/FollowUpChips/FollowUpChips.css","../src/react/components/MessageBubble/MessageBubble.css","../src/react/components/AgentRail/AgentRail.css","../src/react/components/AssistEdgeTab/AssistEdgeTab.css"],"sourcesContent":[":root {\n --as-rail-max-width: 450px;\n --as-brand: #6f16ff;\n --as-brand-soft: #f3edff;\n --as-brand-light: #c4b0ff;\n --as-brand-deep: #12043e;\n --as-surface: #ffffff;\n --as-surface-muted: #f4f6fb;\n --as-text: #171b2a;\n --as-text-muted: #5a6378;\n --as-text-subtle: #8a94a8;\n --as-border: rgb(42 51 70 / 0.1);\n --as-visitor-bubble: #6f16ff;\n --as-visitor-text: #ffffff;\n --as-success: #18794e;\n --as-danger: #c94b63;\n --as-radius-sm: 8px;\n --as-radius-md: 12px;\n --as-radius-lg: 16px;\n --as-font-body: \"Mulish\", \"Avenir Next\", \"Segoe UI\", sans-serif;\n --as-font-display: \"Space Grotesk\", sans-serif;\n --as-shadow-rail: 0 0 0 1px rgb(42 51 70 / 0.06), -8px 0 24px -12px rgb(18 4 62 / 0.12);\n --as-z-rail: 40;\n --as-z-mobile: 1000;\n}\n\n.webless-agent-root,\n.webless-agent-root *,\n.webless-agent-root *::before,\n.webless-agent-root *::after {\n box-sizing: border-box;\n}\n\n.webless-agent-root {\n font-family: var(--as-font-body);\n color: var(--as-text);\n -webkit-font-smoothing: antialiased;\n}\n\n.webless-agent-root button,\n.webless-agent-root input,\n.webless-agent-root textarea {\n font: inherit;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .webless-agent-root *,\n .webless-agent-root *::before,\n .webless-agent-root *::after {\n animation-duration: 0.01ms !important;\n animation-iteration-count: 1 !important;\n transition-duration: 0.01ms !important;\n }\n}\n",".webless-agent-root {\n --rail-track: var(--as-rail-max-width);\n --rail-ease: cubic-bezier(0.22, 1, 0.36, 1);\n --rail-duration: 420ms;\n position: fixed;\n inset: 0;\n pointer-events: none;\n z-index: var(--as-z-mobile);\n}\n\n.webless-agent-root__shell {\n position: fixed;\n inset: 0;\n display: grid;\n grid-template-columns: minmax(0, 1fr) var(--rail-track);\n pointer-events: none;\n transition: grid-template-columns var(--rail-duration) var(--rail-ease);\n}\n\n.webless-agent-root__rail-slot {\n grid-column: 2;\n min-width: 0;\n height: 100%;\n overflow: hidden;\n justify-self: end;\n pointer-events: auto;\n transform: translateX(0);\n opacity: 1;\n transition:\n transform var(--rail-duration) var(--rail-ease),\n opacity 220ms ease;\n}\n\n.webless-agent-root__shell--collapsed {\n --rail-track: 0px;\n}\n\n.webless-agent-root__shell--collapsed .webless-agent-root__rail-slot {\n transform: translateX(100%);\n opacity: 0;\n pointer-events: none;\n}\n\n.webless-agent-root__shell--expanded:not(.webless-agent-root__shell--collapsed) {\n --rail-track: 0px;\n}\n\n.webless-agent-root__shell--expanded:not(.webless-agent-root__shell--collapsed) .webless-agent-root__rail-slot {\n position: fixed;\n inset: 0;\n width: 100%;\n height: 100%;\n overflow: visible;\n transform: none;\n opacity: 1;\n pointer-events: none;\n z-index: 1;\n}\n\n.webless-agent-root__shell--expanded:not(.webless-agent-root__shell--collapsed) .webless-agent-root__backdrop {\n position: fixed;\n inset: 0;\n z-index: 0;\n border: none;\n padding: 0;\n margin: 0;\n background: rgb(18 4 62 / 0.18);\n cursor: pointer;\n pointer-events: auto;\n}\n\n.webless-agent-root__shell--expanded:not(.webless-agent-root__shell--collapsed) .agent-rail {\n pointer-events: auto;\n width: 95vw;\n min-width: 0;\n max-width: none;\n height: 95dvh;\n max-height: 95dvh;\n}\n\n.webless-agent-root__rail-slot .agent-rail {\n min-width: 0;\n width: var(--as-rail-max-width);\n max-width: none;\n height: 100%;\n}\n\n@media (max-width: 767px) {\n .webless-agent-root__shell {\n grid-template-columns: 1fr;\n }\n\n .webless-agent-root__shell:not(.webless-agent-root__shell--collapsed) .webless-agent-root__rail-slot {\n grid-column: 1;\n position: fixed;\n inset: 0;\n width: 100%;\n height: 100%;\n transform: none;\n opacity: 1;\n pointer-events: auto;\n z-index: calc(var(--as-z-mobile) + 1);\n }\n}\n","html.webless-agent-page-shift {\n transition: margin-right 420ms cubic-bezier(0.22, 1, 0.36, 1);\n}\n\n@media (prefers-reduced-motion: reduce) {\n html.webless-agent-page-shift {\n transition: none;\n }\n}\n",".tool-timeline {\n width: fit-content;\n max-width: 100%;\n}\n\n.tool-timeline--inline {\n background: transparent;\n border: none;\n border-radius: 0;\n padding: 0;\n}\n\n.tool-timeline:not(.tool-timeline--inline) {\n background: var(--as-surface-muted);\n border: 1px solid var(--as-border);\n border-radius: var(--as-radius-md);\n padding: 12px;\n}\n\n.agent-status {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n min-width: 0;\n animation: agent-status-in 0.22s cubic-bezier(0.22, 1, 0.36, 1);\n}\n\n@keyframes agent-status-in {\n from {\n opacity: 0;\n transform: translateY(4px);\n }\n\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.agent-status__icon {\n width: 16px;\n height: 16px;\n display: grid;\n place-items: center;\n flex-shrink: 0;\n margin-top: 2px;\n color: var(--as-brand);\n}\n\n.agent-status__icon--error {\n font-size: 12px;\n font-weight: 700;\n color: var(--as-danger);\n}\n\n.agent-status__spinner {\n width: 14px;\n height: 14px;\n animation: as-spin 0.9s linear infinite;\n}\n\n@keyframes as-spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n.agent-status__copy {\n display: flex;\n flex-direction: column;\n gap: 2px;\n min-width: 0;\n}\n\n.agent-status__label {\n font-size: 13px;\n font-weight: 500;\n line-height: 1.4;\n color: var(--as-text-muted);\n word-break: break-word;\n}\n\n.agent-status__detail {\n font-size: 12px;\n line-height: 1.35;\n color: var(--as-text-subtle);\n word-break: break-word;\n}\n\n.tool-timeline__streaming-text {\n display: inline-block;\n width: fit-content;\n max-width: 100%;\n font-size: 13px;\n line-height: 1.5;\n color: var(--as-text);\n word-break: break-word;\n margin: 0;\n padding: 10px 12px;\n background: var(--as-surface-muted);\n border: 1px solid var(--as-border);\n border-radius: var(--as-radius-md);\n border-bottom-left-radius: 4px;\n}\n\n.tool-timeline__streaming-text:not(:first-child) {\n margin-top: 10px;\n}\n\n.tool-timeline__cursor {\n display: inline-block;\n width: 2px;\n height: 14px;\n margin-left: 1px;\n vertical-align: text-bottom;\n background: var(--as-brand);\n animation: as-blink 1s step-end infinite;\n}\n\n@keyframes as-blink {\n 50% {\n opacity: 0;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .agent-status {\n animation: none;\n }\n\n .agent-status__spinner {\n animation: none;\n }\n}\n",".agent-activity-bubble {\n align-self: flex-start;\n width: 100%;\n max-width: 100%;\n display: flex;\n flex-direction: column;\n align-items: stretch;\n gap: 8px;\n}\n\n.agent-activity-bubble__status {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 0;\n color: var(--as-text-muted);\n font-size: 12px;\n font-weight: 650;\n}\n\n.agent-activity-bubble__pulse {\n width: 7px;\n height: 7px;\n border-radius: 999px;\n background: var(--as-success);\n}\n\n.agent-activity-bubble__pulse.is-active {\n background: var(--as-brand);\n box-shadow: 0 0 0 4px color-mix(in srgb, var(--as-brand) 12%, transparent);\n animation: agent-activity-pulse 1.8s ease-in-out infinite;\n}\n\n.agent-activity-bubble__pulse.is-error {\n background: var(--as-danger);\n box-shadow: none;\n}\n\n.agent-activity-bubble__details {\n overflow: hidden;\n border: 1px solid var(--as-border);\n border-radius: var(--as-radius-md);\n background: color-mix(\n in srgb,\n var(--as-surface-muted) 62%,\n var(--as-surface)\n );\n}\n\n.agent-activity-bubble__details summary {\n display: flex;\n align-items: center;\n min-height: 36px;\n padding: 0 11px;\n color: var(--as-text-muted);\n cursor: pointer;\n font-size: 12px;\n font-weight: 650;\n list-style: none;\n}\n\n.agent-activity-bubble__details summary::-webkit-details-marker {\n display: none;\n}\n\n.agent-activity-bubble__details summary::after {\n content: \"+\";\n margin-left: auto;\n color: var(--as-text-subtle);\n font-size: 16px;\n font-weight: 400;\n}\n\n.agent-activity-bubble__details[open] summary::after {\n content: \"−\";\n}\n\n.agent-activity-bubble__steps {\n display: grid;\n gap: 0;\n margin: 0;\n padding: 0 11px 10px;\n list-style: none;\n}\n\n.agent-activity-bubble__step {\n position: relative;\n display: grid;\n grid-template-columns: 20px minmax(0, 1fr);\n gap: 8px;\n min-height: 36px;\n padding: 5px 0;\n}\n\n.agent-activity-bubble__step:not(:last-child)::after {\n position: absolute;\n top: 25px;\n bottom: -5px;\n left: 7px;\n width: 1px;\n background: var(--as-border);\n content: \"\";\n}\n\n.agent-activity-bubble__step-icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n margin-top: 2px;\n border: 1px solid var(--as-border);\n border-radius: 999px;\n background: var(--as-surface);\n color: var(--as-success);\n font-size: 10px;\n font-weight: 800;\n}\n\n.agent-activity-bubble__step[data-state=\"active\"]\n .agent-activity-bubble__step-icon {\n border: 4px solid color-mix(in srgb, var(--as-brand) 18%, var(--as-surface));\n background: var(--as-brand);\n}\n\n.agent-activity-bubble__step[data-state=\"error\"]\n .agent-activity-bubble__step-icon {\n border-color: color-mix(in srgb, var(--as-danger) 30%, transparent);\n background: color-mix(in srgb, var(--as-danger) 8%, var(--as-surface));\n color: var(--as-danger);\n}\n\n.agent-activity-bubble__step-copy {\n display: grid;\n gap: 2px;\n min-width: 0;\n}\n\n.agent-activity-bubble__step-copy strong {\n overflow: hidden;\n color: var(--as-text);\n font-size: 12px;\n font-weight: 650;\n line-height: 1.35;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.agent-activity-bubble__step-copy small {\n color: var(--as-text-subtle);\n font-size: 11px;\n line-height: 1.35;\n}\n\n@keyframes agent-activity-pulse {\n 50% {\n opacity: 0.55;\n }\n}\n",".composer {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.composer__field {\n display: flex;\n align-items: flex-end;\n gap: 6px;\n padding: 6px;\n border: 1px solid var(--as-border);\n border-radius: var(--as-radius-lg);\n background: var(--as-surface-muted);\n}\n\n.composer__field:focus-within {\n border-color: rgb(111 22 255 / 0.35);\n box-shadow: 0 0 0 3px rgb(111 22 255 / 0.1);\n}\n\n.composer__input {\n flex: 1;\n min-width: 0;\n border: none;\n background: transparent;\n resize: none;\n padding: 8px 6px 8px 8px;\n font-size: 13px;\n line-height: 1.45;\n color: var(--as-text);\n max-height: 96px;\n}\n\n.composer__input::placeholder {\n color: var(--as-text-subtle);\n}\n\n.composer__input:focus {\n outline: none;\n}\n\n.composer__send {\n appearance: none;\n border: none;\n width: 34px;\n height: 34px;\n border-radius: 999px;\n background: var(--as-brand);\n color: #fff;\n display: grid;\n place-items: center;\n cursor: pointer;\n flex-shrink: 0;\n transition: opacity 0.15s ease, transform 0.15s ease;\n}\n\n.composer__send:hover:not(:disabled) {\n transform: translateY(-1px);\n}\n\n.composer__send:disabled {\n opacity: 0.45;\n cursor: not-allowed;\n}\n\n.composer__send svg {\n width: 14px;\n height: 14px;\n}\n\n.composer--dock .composer__field {\n align-items: center;\n padding: 5px 5px 5px 13px;\n background: var(--as-surface-muted);\n border: 1px solid var(--as-border);\n border-radius: 999px;\n box-shadow: none;\n}\n\n.composer--dock .composer__field:focus-within {\n border-color: rgb(111 22 255 / 0.35);\n box-shadow: 0 0 0 3px rgb(111 22 255 / 0.1);\n}\n\n.composer--dock .composer__input {\n padding: 11px 0;\n font-size: 15px;\n max-height: 48px;\n}\n\n.composer--dock .composer__send {\n width: 40px;\n height: 40px;\n}\n\n.composer--dock .composer__send svg {\n width: 15px;\n height: 15px;\n}\n",".followups {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.followups__label {\n font-size: 12px;\n font-weight: 700;\n color: var(--as-text-subtle);\n letter-spacing: 0.02em;\n}\n\n.followups__list {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.followups__chip {\n appearance: none;\n border: 1px solid var(--as-border);\n background: var(--as-surface);\n color: var(--as-text);\n font-size: 13px;\n font-weight: 600;\n line-height: 1.4;\n text-align: left;\n border-radius: var(--as-radius-sm);\n padding: 10px 12px;\n cursor: pointer;\n transition: border-color 0.15s ease, background 0.15s ease;\n word-break: break-word;\n}\n\n.followups__chip:hover:not(:disabled) {\n border-color: rgb(111 22 255 / 0.25);\n background: var(--as-brand-soft);\n}\n\n.followups__chip:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.followups--dock {\n width: 100%;\n gap: 0;\n}\n\n.followups__scroll {\n display: flex;\n gap: 8px;\n justify-content: flex-start;\n overflow-x: auto;\n padding: 2px;\n scrollbar-width: none;\n -ms-overflow-style: none;\n}\n\n.followups__scroll::-webkit-scrollbar {\n display: none;\n}\n\n.followups__chip--dock {\n display: inline-flex;\n align-items: center;\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n padding: 8px 12px;\n border-radius: 999px;\n font-size: 12px;\n font-weight: 600;\n white-space: nowrap;\n text-align: left;\n}\n",".message-bubble {\n display: flex;\n flex-direction: column;\n gap: 8px;\n max-width: 92%;\n}\n\n.message-bubble--visitor {\n align-self: flex-end;\n align-items: flex-end;\n}\n\n.message-bubble--agent {\n align-self: flex-start;\n align-items: flex-start;\n max-width: 100%;\n}\n\n.message-bubble__text {\n margin: 0;\n padding: 10px 12px;\n border-radius: var(--as-radius-md);\n font-size: 13px;\n line-height: 1.5;\n word-break: break-word;\n}\n\n.message-bubble--visitor .message-bubble__text {\n background: var(--as-visitor-bubble);\n color: var(--as-visitor-text);\n border-bottom-right-radius: 4px;\n}\n\n.message-bubble--agent .message-bubble__text {\n background: var(--as-surface-muted);\n color: var(--as-text);\n border: 1px solid var(--as-border);\n border-bottom-left-radius: 4px;\n}\n\n.message-bubble__markdown > :first-child {\n margin-top: 0;\n}\n\n.message-bubble__markdown > :last-child {\n margin-bottom: 0;\n}\n\n.message-bubble__markdown p,\n.message-bubble__markdown ol,\n.message-bubble__markdown ul {\n margin: 0 0 8px;\n}\n\n.message-bubble__markdown ol,\n.message-bubble__markdown ul {\n padding-left: 20px;\n}\n\n.message-bubble__markdown ol {\n list-style: decimal outside;\n}\n\n.message-bubble__markdown ul {\n list-style: disc outside;\n}\n\n.message-bubble__markdown [data-streamdown=\"strong\"] {\n font-weight: 650;\n}\n\n.message-bubble__markdown li + li {\n margin-top: 4px;\n}\n\n.message-bubble__markdown [data-streamdown=\"link\"] {\n padding: 0;\n border: 0;\n background: transparent;\n color: inherit;\n font: inherit;\n text-decoration: underline;\n text-underline-offset: 2px;\n}\n\n.message-bubble__markdown code {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;\n font-size: 0.92em;\n}\n",".agent-rail {\n --rail-width: var(--as-rail-max-width);\n display: flex;\n flex-direction: column;\n width: var(--rail-width);\n max-width: var(--rail-width);\n min-width: var(--rail-width);\n height: 100%;\n max-height: 100dvh;\n overflow: hidden;\n background: var(--as-surface);\n border-left: 1px solid var(--as-border);\n box-shadow: var(--as-shadow-rail);\n color: var(--as-text);\n font-family: var(--as-font-body);\n position: relative;\n z-index: var(--as-z-rail);\n}\n\n.agent-rail__header {\n flex-shrink: 0;\n display: flex;\n flex-direction: column;\n gap: 10px;\n padding: 14px;\n}\n\n.agent-rail__brand-row {\n display: grid;\n grid-template-columns: 32px 1fr 32px;\n align-items: center;\n min-height: 32px;\n min-width: 0;\n}\n\n.agent-rail__identity {\n grid-column: 2;\n grid-row: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n min-width: 0;\n}\n\n.agent-rail__brand-label {\n overflow: hidden;\n font-family: var(--as-font-display);\n font-size: 14px;\n font-weight: 600;\n letter-spacing: -0.01em;\n line-height: 1;\n text-align: center;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.agent-rail__brand-mark {\n position: relative;\n width: 24px;\n height: 24px;\n flex: 0 0 24px;\n border-radius: 8px;\n}\n\n.agent-rail__brand-logo {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n border-radius: inherit;\n background: var(--as-surface);\n object-fit: contain;\n}\n\n.agent-rail__brand-mark {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n background: var(--as-brand);\n color: var(--as-visitor-text);\n font-size: 11px;\n font-weight: 750;\n}\n\n.agent-rail__brand-spacer {\n width: 32px;\n height: 32px;\n}\n\n.agent-rail__collapse,\n.agent-rail__close,\n.agent-rail__expand {\n appearance: none;\n border: none;\n background: transparent;\n color: var(--as-text-subtle);\n width: 32px;\n height: 32px;\n margin: 0;\n padding: 0;\n border-radius: 8px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n flex-shrink: 0;\n grid-row: 1;\n}\n\n.agent-rail__collapse,\n.agent-rail__close {\n grid-column: 1;\n justify-self: start;\n}\n\n.agent-rail__expand {\n grid-column: 3;\n justify-self: end;\n}\n\n.agent-rail__collapse:hover,\n.agent-rail__close:hover,\n.agent-rail__expand:hover {\n background: var(--as-surface-muted);\n color: var(--as-text);\n}\n\n.agent-rail__collapse svg,\n.agent-rail__close svg,\n.agent-rail__expand svg {\n width: 16px;\n height: 16px;\n}\n\n.agent-rail__transcript {\n flex: 1 1 auto;\n min-height: 0;\n overflow-y: auto;\n overflow-x: hidden;\n overscroll-behavior: contain;\n padding: 14px 12px;\n display: flex;\n flex-direction: column;\n gap: 14px;\n scroll-behavior: smooth;\n -webkit-overflow-scrolling: touch;\n}\n\n.agent-rail__timeline-slot,\n.agent-rail__followups-slot {\n flex-shrink: 0;\n}\n\n.agent-rail__composer-wrap {\n flex-shrink: 0;\n padding: 12px 12px 14px;\n border-top: 1px solid var(--as-border);\n background: var(--as-surface);\n}\n\n.agent-rail__footer {\n margin-top: 8px;\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.agent-rail__footer-disclaimer {\n margin: 0;\n text-align: center;\n font-size: 11px;\n color: var(--as-text-subtle);\n line-height: 1.35;\n}\n\n.agent-rail__footer-note {\n margin: 0;\n text-align: center;\n font-size: 11px;\n color: var(--as-text-subtle);\n line-height: 1.35;\n}\n\n.agent-rail--mobile-fullscreen {\n position: fixed;\n inset: 0;\n width: 100%;\n max-width: none;\n min-width: 0;\n height: 100dvh;\n max-height: 100dvh;\n overflow: hidden;\n z-index: var(--as-z-mobile);\n border-left: none;\n box-shadow: none;\n}\n\n.agent-rail--expanded {\n position: fixed;\n top: 50%;\n left: 50%;\n width: 95vw;\n height: 95dvh;\n max-width: none;\n min-width: 0;\n max-height: 95dvh;\n transform: translate(-50%, -50%);\n z-index: calc(var(--as-z-mobile) + 1);\n background: var(--as-surface);\n border: 1px solid var(--as-border);\n border-radius: var(--as-radius-lg);\n box-shadow: 0 0 0 1px rgb(42 51 70 / 0.04),\n 0 28px 80px -24px rgb(18 4 62 / 0.35);\n transition: width 320ms cubic-bezier(0.22, 1, 0.36, 1),\n height 320ms cubic-bezier(0.22, 1, 0.36, 1),\n transform 320ms cubic-bezier(0.22, 1, 0.36, 1),\n border-radius 320ms cubic-bezier(0.22, 1, 0.36, 1),\n box-shadow 320ms cubic-bezier(0.22, 1, 0.36, 1);\n overflow: hidden;\n}\n\n.agent-rail--expanded .agent-rail__header,\n.agent-rail--expanded .agent-rail__transcript,\n.agent-rail--expanded .agent-rail__dock-wrap {\n background: var(--as-surface);\n}\n\n.agent-rail--expanded .agent-rail__transcript {\n padding: 20px 24px 25px;\n align-items: center;\n}\n\n.agent-rail--expanded .agent-rail__transcript .message-bubble {\n width: 85%;\n max-width: 85%;\n}\n\n.agent-rail--expanded .agent-rail__transcript .message-bubble__text {\n font-size: 16px;\n padding: 12px 14px;\n}\n\n.agent-rail--expanded .agent-rail__transcript .tool-timeline__streaming-text {\n font-size: 16px;\n padding: 12px 14px;\n}\n\n.agent-rail--expanded .agent-rail__transcript .message-bubble--visitor {\n align-self: center;\n align-items: flex-end;\n}\n\n.agent-rail--expanded .agent-rail__transcript .message-bubble--agent {\n align-self: center;\n align-items: flex-start;\n}\n\n.agent-rail--expanded .agent-rail__transcript .agent-activity-bubble,\n.agent-rail--expanded .agent-rail__transcript [role=\"alert\"] {\n align-self: center;\n align-items: flex-start;\n width: 85%;\n max-width: 85%;\n}\n\n.agent-rail--expanded .agent-rail__dock-wrap {\n flex-shrink: 0;\n width: 70%;\n max-width: 70%;\n align-self: center;\n padding: 18px 0 24px;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 10px;\n}\n\n.agent-rail--expanded .agent-rail__dock-followups {\n width: 100%;\n}\n\n.agent-rail--expanded .agent-rail__dock-followups .followups__scroll {\n justify-content: flex-start;\n}\n\n.agent-rail--expanded .agent-rail__dock {\n display: flex;\n flex-direction: column;\n gap: 10px;\n width: 100%;\n padding: 12px;\n border: 1px solid var(--as-border);\n border-radius: calc(var(--as-radius-lg) + 4px);\n background: var(--as-surface);\n}\n\n.agent-rail--expanded .agent-rail__footer {\n margin-top: 0;\n width: 100%;\n}\n\n.agent-rail--mobile-fullscreen .agent-rail__close {\n display: grid;\n}\n\n.agent-rail--mobile-fullscreen .agent-rail__collapse {\n display: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .agent-rail--expanded {\n transition: none;\n }\n}\n\n@media (max-width: 767px) {\n .agent-rail {\n position: fixed;\n inset: 0;\n width: 100%;\n max-width: none;\n min-width: 0;\n height: 100dvh;\n max-height: 100dvh;\n overflow: hidden;\n z-index: var(--as-z-mobile);\n border-left: none;\n box-shadow: none;\n }\n\n .agent-rail .agent-rail__close {\n display: grid;\n }\n\n .agent-rail .agent-rail__collapse {\n display: none;\n }\n}\n\n@media (min-width: 768px) {\n .agent-rail .agent-rail__close {\n display: none !important;\n }\n}\n",".assist-edge-tab {\n --tab-ink: var(--as-brand);\n --tab-fill: #fff;\n --tab-line: rgb(111 22 255 / 0.35);\n --tab-along: 50%;\n --tab-inset: 0px;\n position: fixed;\n top: auto;\n right: auto;\n bottom: auto;\n left: auto;\n z-index: calc(var(--as-z-rail) + 1);\n appearance: none;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n border: 1px solid var(--tab-line);\n background: var(--tab-fill);\n color: var(--tab-ink);\n cursor: pointer;\n opacity: 0;\n pointer-events: none;\n box-shadow: -6px 0 20px -12px rgb(18 4 62 / 0.28);\n transition: transform 420ms cubic-bezier(0.22, 1, 0.36, 1), opacity 240ms ease,\n box-shadow 180ms ease;\n}\n\n.assist-edge-tab.is-visible {\n opacity: 1;\n pointer-events: auto;\n}\n\n.assist-edge-tab:focus-visible {\n outline: 2px solid var(--as-brand);\n outline-offset: 3px;\n}\n\n.assist-edge-tab svg {\n width: 16px;\n height: 16px;\n flex-shrink: 0;\n}\n\n.assist-edge-tab__sparkles {\n width: 18px;\n height: 16px;\n}\n\n.assist-edge-tab__mark {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n flex: 0 0 20px;\n}\n\n.assist-edge-tab__logo {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n border-radius: 6px;\n background: var(--tab-fill);\n object-fit: contain;\n}\n\n.assist-edge-tab__label {\n font-family: var(--as-font-display);\n font-size: 13px;\n font-weight: 600;\n letter-spacing: 0.02em;\n line-height: 1;\n white-space: nowrap;\n}\n\n.assist-edge-tab--right,\n.assist-edge-tab--left {\n flex-direction: column;\n width: 40px;\n min-height: 168px;\n padding: 14px 0 12px;\n}\n\n.assist-edge-tab--right .assist-edge-tab__label,\n.assist-edge-tab--left .assist-edge-tab__label {\n writing-mode: vertical-rl;\n transform: rotate(180deg);\n}\n\n.assist-edge-tab--top,\n.assist-edge-tab--bottom {\n flex-direction: row;\n height: 40px;\n min-width: 168px;\n width: auto;\n padding: 0 14px;\n}\n\n.assist-edge-tab--right {\n top: var(--tab-along);\n right: var(--tab-inset);\n border-right: none;\n border-radius: 999px 0 0 999px;\n transform: translateY(-50%) translateX(calc(100% + 18px));\n}\n\n.assist-edge-tab--right.is-visible {\n transform: translateY(-50%) translateX(0);\n}\n\n.assist-edge-tab--right.is-visible:hover {\n transform: translateY(-50%) translateX(-2px);\n}\n\n.assist-edge-tab--left {\n top: var(--tab-along);\n left: var(--tab-inset);\n border-left: none;\n border-radius: 0 999px 999px 0;\n transform: translateY(-50%) translateX(calc(-100% - 18px));\n}\n\n.assist-edge-tab--left.is-visible {\n transform: translateY(-50%) translateX(0);\n}\n\n.assist-edge-tab--left.is-visible:hover {\n transform: translateY(-50%) translateX(2px);\n}\n\n.assist-edge-tab--top {\n left: var(--tab-along);\n top: var(--tab-inset);\n border-top: none;\n border-radius: 0 0 999px 999px;\n transform: translateX(-50%) translateY(calc(-100% - 18px));\n}\n\n.assist-edge-tab--top.is-visible {\n transform: translateX(-50%) translateY(0);\n}\n\n.assist-edge-tab--top.is-visible:hover {\n transform: translateX(-50%) translateY(2px);\n}\n\n.assist-edge-tab--bottom {\n left: var(--tab-along);\n bottom: var(--tab-inset);\n border-bottom: none;\n border-radius: 999px 999px 0 0;\n transform: translateX(-50%) translateY(calc(100% + 18px));\n}\n\n.assist-edge-tab--bottom.is-visible {\n transform: translateX(-50%) translateY(0);\n}\n\n.assist-edge-tab--bottom.is-visible:hover {\n transform: translateX(-50%) translateY(-2px);\n}\n\n.assist-edge-tab--outline {\n --tab-fill: #f7f6fa;\n --tab-line: rgb(111 22 255 / 0.45);\n}\n\n.assist-edge-tab--outline.assist-edge-tab--right,\n.assist-edge-tab--outline.assist-edge-tab--left {\n min-height: 176px;\n border-radius: 999px;\n border-right: 1px solid var(--tab-line);\n border-left: 1px solid var(--tab-line);\n}\n\n.assist-edge-tab--outline.assist-edge-tab--top,\n.assist-edge-tab--outline.assist-edge-tab--bottom {\n border-radius: 999px;\n border-top: 1px solid var(--tab-line);\n border-bottom: 1px solid var(--tab-line);\n}\n\n.assist-edge-tab--ask {\n --tab-fill: #efe8fb;\n --tab-line: transparent;\n}\n\n.assist-edge-tab--ask.assist-edge-tab--right,\n.assist-edge-tab--ask.assist-edge-tab--left {\n min-height: 196px;\n width: 42px;\n}\n\n.assist-edge-tab--ask.assist-edge-tab--right {\n border-radius: 18px 0 0 18px;\n}\n\n.assist-edge-tab--ask.assist-edge-tab--left {\n border-radius: 0 18px 18px 0;\n}\n\n.assist-edge-tab--fill {\n --tab-fill: var(--as-brand);\n --tab-ink: #fff;\n --tab-line: transparent;\n box-shadow: -8px 0 22px -10px rgb(111 22 255 / 0.55);\n}\n\n.assist-edge-tab--fill.assist-edge-tab--right,\n.assist-edge-tab--fill.assist-edge-tab--left {\n min-height: 180px;\n}\n\n.assist-edge-tab__dots {\n display: grid;\n grid-template-columns: repeat(3, 3px);\n gap: 3px;\n}\n\n.assist-edge-tab--top .assist-edge-tab__dots,\n.assist-edge-tab--bottom .assist-edge-tab__dots {\n grid-template-columns: repeat(4, 3px);\n grid-template-rows: repeat(3, 3px);\n}\n\n.assist-edge-tab__dots i {\n width: 3px;\n height: 3px;\n border-radius: 999px;\n background: currentColor;\n opacity: 0.55;\n}\n\n@media (max-width: 767px) {\n .assist-edge-tab {\n z-index: calc(var(--as-z-mobile) + 2);\n }\n\n .assist-edge-tab--right,\n .assist-edge-tab--left {\n min-height: 148px;\n width: 36px;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .assist-edge-tab,\n .assist-edge-tab.is-visible,\n .assist-edge-tab.is-visible:hover {\n transition: none;\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/react/styles/tokens.css","../src/react/styles/widget.css","../src/react/styles/page-shift.css","../src/react/components/ToolTimeline/ToolTimeline.css","../src/react/components/AgentActivityBubble/AgentActivityBubble.css","../src/react/components/Composer/Composer.css","../src/react/components/FollowUpChips/FollowUpChips.css","../src/react/components/MessageBubble/MessageBubble.css","../src/react/components/AgentRail/AgentRail.css","../src/react/components/AssistEdgeTab/AssistEdgeTab.css"],"sourcesContent":[":root {\n --as-rail-max-width: 450px;\n --as-brand: #6f16ff;\n --as-brand-soft: #f3edff;\n --as-brand-light: #c4b0ff;\n --as-brand-deep: #12043e;\n --as-surface: #ffffff;\n --as-surface-muted: #f4f6fb;\n --as-text: #171b2a;\n --as-text-muted: #5a6378;\n --as-text-subtle: #8a94a8;\n --as-border: rgb(42 51 70 / 0.1);\n --as-visitor-bubble: #6f16ff;\n --as-visitor-text: #ffffff;\n --as-success: #18794e;\n --as-danger: #c94b63;\n --as-radius-sm: 8px;\n --as-radius-md: 12px;\n --as-radius-lg: 16px;\n --as-font-body: \"Mulish\", \"Avenir Next\", \"Segoe UI\", sans-serif;\n --as-font-display: \"Space Grotesk\", sans-serif;\n --as-shadow-rail: 0 0 0 1px color-mix(in srgb, var(--as-text) 6%, transparent),\n -8px 0 28px -14px color-mix(in srgb, var(--as-text) 22%, transparent);\n --as-z-rail: 40;\n --as-z-mobile: 1000;\n}\n\n.webless-agent-root,\n.webless-agent-root *,\n.webless-agent-root *::before,\n.webless-agent-root *::after {\n box-sizing: border-box;\n}\n\n.webless-agent-root {\n font-family: var(--as-font-body);\n color: var(--as-text);\n -webkit-font-smoothing: antialiased;\n}\n\n.webless-agent-root button,\n.webless-agent-root input,\n.webless-agent-root textarea {\n font: inherit;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .webless-agent-root *,\n .webless-agent-root *::before,\n .webless-agent-root *::after {\n animation-duration: 0.01ms !important;\n animation-iteration-count: 1 !important;\n transition-duration: 0.01ms !important;\n }\n}\n",".webless-agent-root {\n --rail-track: var(--as-rail-max-width);\n --rail-ease: cubic-bezier(0.22, 1, 0.36, 1);\n --rail-duration: 420ms;\n position: fixed;\n inset: 0;\n pointer-events: none;\n z-index: var(--as-z-mobile);\n isolation: isolate;\n}\n\n.webless-agent-root__shell {\n position: fixed;\n inset: 0;\n display: grid;\n grid-template-columns: minmax(0, 1fr) var(--rail-track);\n pointer-events: none;\n transition: grid-template-columns var(--rail-duration) var(--rail-ease);\n}\n\n.webless-agent-root__rail-slot {\n grid-column: 2;\n min-width: 0;\n height: 100%;\n overflow: hidden;\n justify-self: end;\n pointer-events: auto;\n transform: translateX(0);\n opacity: 1;\n transition: transform var(--rail-duration) var(--rail-ease),\n opacity 220ms ease;\n}\n\n.webless-agent-root__shell--collapsed {\n --rail-track: 0px;\n}\n\n.webless-agent-root__shell--collapsed .webless-agent-root__rail-slot {\n transform: translateX(100%);\n opacity: 0;\n pointer-events: none;\n}\n\n.webless-agent-root__shell--expanded:not(\n .webless-agent-root__shell--collapsed\n ) {\n --rail-track: 0px;\n}\n\n.webless-agent-root__shell--expanded:not(.webless-agent-root__shell--collapsed)\n .webless-agent-root__rail-slot {\n position: fixed;\n inset: 0;\n width: 100%;\n height: 100%;\n overflow: visible;\n transform: none;\n opacity: 1;\n pointer-events: none;\n z-index: 1;\n}\n\n.webless-agent-root__backdrop {\n position: fixed;\n inset: 0;\n z-index: 0;\n border: none;\n padding: 0;\n margin: 0;\n background: color-mix(in srgb, var(--as-text) 18%, transparent);\n cursor: pointer;\n pointer-events: auto;\n}\n\n.webless-agent-root__backdrop--mobile {\n background: color-mix(in srgb, var(--as-text) 24%, transparent);\n -webkit-backdrop-filter: blur(1.5px);\n backdrop-filter: blur(1.5px);\n touch-action: none;\n}\n\n.webless-agent-root__shell--expanded:not(.webless-agent-root__shell--collapsed)\n .agent-rail {\n pointer-events: auto;\n}\n\n.webless-agent-root__rail-slot\n .agent-rail:not(.agent-rail--expanded):not(.agent-rail--mobile-fullscreen) {\n min-width: 0;\n width: var(--as-rail-max-width);\n max-width: none;\n height: 100%;\n}\n\n@media (max-width: 767px) {\n .webless-agent-root__shell {\n grid-template-columns: 1fr;\n }\n\n .webless-agent-root__shell:not(.webless-agent-root__shell--collapsed)\n .webless-agent-root__rail-slot {\n grid-column: 1;\n position: fixed;\n inset: 0;\n width: 100%;\n height: 100%;\n transform: none;\n opacity: 1;\n pointer-events: none;\n z-index: calc(var(--as-z-mobile) + 1);\n }\n\n .webless-agent-root__rail-slot .agent-rail {\n width: 100%;\n pointer-events: auto;\n }\n}\n","html.webless-agent-page-shift {\n transition: margin-right 420ms cubic-bezier(0.22, 1, 0.36, 1);\n}\n\n@media (prefers-reduced-motion: reduce) {\n html.webless-agent-page-shift {\n transition: none;\n }\n}\n",".tool-timeline {\n width: fit-content;\n max-width: 100%;\n}\n\n.tool-timeline--inline {\n background: transparent;\n border: none;\n border-radius: 0;\n padding: 0;\n}\n\n.tool-timeline:not(.tool-timeline--inline) {\n background: var(--as-surface-muted);\n border: 1px solid var(--as-border);\n border-radius: var(--as-radius-md);\n padding: 12px;\n}\n\n.agent-status {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n min-width: 0;\n animation: agent-status-in 0.22s cubic-bezier(0.22, 1, 0.36, 1);\n}\n\n@keyframes agent-status-in {\n from {\n opacity: 0;\n transform: translateY(4px);\n }\n\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.agent-status__icon {\n width: 16px;\n height: 16px;\n display: grid;\n place-items: center;\n flex-shrink: 0;\n margin-top: 2px;\n color: var(--as-brand);\n}\n\n.agent-status__icon--error {\n font-size: 12px;\n font-weight: 700;\n color: var(--as-danger);\n}\n\n.agent-status__spinner {\n width: 14px;\n height: 14px;\n animation: as-spin 0.9s linear infinite;\n}\n\n@keyframes as-spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n.agent-status__copy {\n display: flex;\n flex-direction: column;\n gap: 2px;\n min-width: 0;\n}\n\n.agent-status__label {\n font-size: 13px;\n font-weight: 500;\n line-height: 1.4;\n color: var(--as-text-muted);\n word-break: break-word;\n}\n\n.agent-status__detail {\n font-size: 12px;\n line-height: 1.35;\n color: var(--as-text-subtle);\n word-break: break-word;\n}\n\n.tool-timeline__streaming-text {\n display: inline-block;\n width: fit-content;\n max-width: 100%;\n font-size: 13px;\n line-height: 1.5;\n color: var(--as-text);\n word-break: break-word;\n margin: 0;\n padding: 10px 12px;\n background: var(--as-surface-muted);\n border: 1px solid var(--as-border);\n border-radius: var(--as-radius-md);\n border-bottom-left-radius: 4px;\n}\n\n.tool-timeline__streaming-text:not(:first-child) {\n margin-top: 10px;\n}\n\n.tool-timeline__cursor {\n display: inline-block;\n width: 2px;\n height: 14px;\n margin-left: 1px;\n vertical-align: text-bottom;\n background: var(--as-brand);\n animation: as-blink 1s step-end infinite;\n}\n\n@keyframes as-blink {\n 50% {\n opacity: 0;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .agent-status {\n animation: none;\n }\n\n .agent-status__spinner {\n animation: none;\n }\n}\n",".agent-activity-bubble {\n display: flex;\n width: 100%;\n max-width: 100%;\n flex-direction: column;\n align-self: flex-start;\n align-items: stretch;\n gap: 9px;\n}\n\n.agent-activity-bubble__status {\n display: flex;\n align-items: center;\n gap: 9px;\n margin: 0;\n color: var(--as-text-muted);\n font-size: 12px;\n font-weight: 650;\n line-height: 1.4;\n}\n\n.agent-activity-bubble__pulse {\n width: 8px;\n height: 8px;\n flex: 0 0 8px;\n border-radius: 999px;\n background: var(--as-success);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--as-success) 10%, transparent);\n}\n\n.agent-activity-bubble__pulse.is-active {\n background: var(--as-brand);\n box-shadow: 0 0 0 4px color-mix(in srgb, var(--as-brand) 12%, transparent);\n animation: agent-activity-pulse 1.8s ease-in-out infinite;\n}\n\n.agent-activity-bubble__pulse.is-error {\n background: var(--as-danger);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--as-danger) 10%, transparent);\n}\n\n.agent-activity-bubble__details {\n overflow: hidden;\n border: 1px solid var(--as-border);\n border-radius: 14px;\n background: color-mix(\n in srgb,\n var(--as-surface-muted) 48%,\n var(--as-surface)\n );\n}\n\n.agent-activity-bubble__details summary {\n display: flex;\n min-height: 42px;\n align-items: center;\n padding: 0 13px;\n color: var(--as-text-muted);\n cursor: pointer;\n font-size: 12px;\n font-weight: 650;\n list-style: none;\n}\n\n.agent-activity-bubble__details summary::-webkit-details-marker {\n display: none;\n}\n\n.agent-activity-bubble__details summary::after {\n width: 20px;\n height: 20px;\n margin-left: auto;\n border-radius: 999px;\n color: var(--as-text-subtle);\n content: \"+\";\n font-size: 17px;\n font-weight: 400;\n line-height: 19px;\n text-align: center;\n}\n\n.agent-activity-bubble__details summary:hover::after {\n background: var(--as-surface-muted);\n color: var(--as-text);\n}\n\n.agent-activity-bubble__details[open] summary::after {\n content: \"−\";\n}\n\n.agent-activity-bubble__steps {\n display: grid;\n gap: 0;\n margin: 0;\n padding: 1px 13px 13px;\n list-style: none;\n}\n\n.agent-activity-bubble__step {\n position: relative;\n display: grid;\n min-height: 48px;\n grid-template-columns: 28px minmax(0, 1fr);\n align-items: flex-start;\n gap: 10px;\n padding: 6px 0;\n}\n\n.agent-activity-bubble__step:not(:last-child)::after {\n position: absolute;\n top: 32px;\n bottom: -8px;\n left: 13px;\n width: 1px;\n background: var(--as-border);\n content: \"\";\n}\n\n.agent-activity-bubble__step-icon {\n position: relative;\n z-index: 1;\n display: inline-flex;\n width: 28px;\n height: 28px;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n border: 1px solid var(--as-border);\n border-radius: 9px;\n background: var(--as-surface);\n color: var(--as-text-muted);\n font-size: 11px;\n font-weight: 750;\n}\n\n.agent-activity-bubble__step-icon svg {\n width: 15px;\n height: 15px;\n}\n\n.agent-activity-bubble__step-icon img {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n border-radius: inherit;\n background: var(--as-surface);\n object-fit: contain;\n}\n\n.agent-activity-bubble__step[data-kind=\"specialist\"]\n .agent-activity-bubble__step-icon {\n border-color: color-mix(in srgb, var(--as-brand) 18%, var(--as-border));\n background: var(--as-brand-soft);\n color: var(--as-brand);\n}\n\n.agent-activity-bubble__step[data-state=\"active\"]\n .agent-activity-bubble__step-icon {\n border-color: color-mix(in srgb, var(--as-brand) 36%, var(--as-border));\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--as-brand) 8%, transparent);\n}\n\n.agent-activity-bubble__step[data-state=\"completed\"]\n .agent-activity-bubble__step-icon::after {\n position: absolute;\n right: -2px;\n bottom: -2px;\n display: grid;\n width: 11px;\n height: 11px;\n place-items: center;\n border: 2px solid var(--as-surface);\n border-radius: 999px;\n background: var(--as-success);\n color: #fff;\n content: \"✓\";\n font-size: 7px;\n line-height: 1;\n}\n\n.agent-activity-bubble__step[data-state=\"error\"]\n .agent-activity-bubble__step-icon {\n border-color: color-mix(in srgb, var(--as-danger) 30%, var(--as-border));\n background: color-mix(in srgb, var(--as-danger) 7%, var(--as-surface));\n color: var(--as-danger);\n}\n\n.agent-activity-bubble__step-copy {\n display: grid;\n min-width: 0;\n gap: 3px;\n padding-top: 2px;\n}\n\n.agent-activity-bubble__step-heading {\n display: flex;\n min-width: 0;\n align-items: baseline;\n gap: 7px;\n}\n\n.agent-activity-bubble__step-heading strong {\n overflow: hidden;\n color: var(--as-text);\n font-size: 12px;\n font-weight: 680;\n line-height: 1.35;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.agent-activity-bubble__step-heading small {\n flex: 0 0 auto;\n color: var(--as-text-subtle);\n font-size: 10px;\n font-weight: 550;\n line-height: 1.35;\n}\n\n.agent-activity-bubble__step-detail {\n color: var(--as-text-subtle);\n font-size: 11px;\n line-height: 1.4;\n}\n\n@keyframes agent-activity-pulse {\n 50% {\n opacity: 0.55;\n }\n}\n",".composer {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.composer__field {\n display: flex;\n align-items: flex-end;\n gap: 6px;\n padding: 6px;\n border: 1px solid var(--as-border);\n border-radius: 16px;\n background: var(--as-surface);\n box-shadow: 0 1px 2px color-mix(in srgb, var(--as-text) 5%, transparent);\n}\n\n.composer__field:focus-within {\n border-color: color-mix(in srgb, var(--as-brand) 42%, var(--as-border));\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--as-brand) 10%, transparent);\n}\n\n.composer__input {\n flex: 1;\n min-width: 0;\n border: none;\n background: transparent;\n resize: none;\n field-sizing: content;\n padding: 8px 6px 8px 8px;\n font-size: 13px;\n line-height: 1.45;\n color: var(--as-text);\n max-height: 96px;\n}\n\n.composer__input::placeholder {\n color: var(--as-text-subtle);\n}\n\n.composer__input:focus {\n outline: none;\n}\n\n.composer__send {\n appearance: none;\n border: none;\n width: 34px;\n height: 34px;\n border-radius: 999px;\n background: var(--as-brand);\n color: var(--as-visitor-text);\n display: grid;\n place-items: center;\n cursor: pointer;\n flex-shrink: 0;\n transition: opacity 0.15s ease, transform 0.15s ease;\n}\n\n.composer__send:hover:not(:disabled) {\n transform: translateY(-1px);\n}\n\n.composer__send:disabled {\n opacity: 0.45;\n cursor: not-allowed;\n}\n\n.composer__send svg {\n width: 14px;\n height: 14px;\n}\n\n.composer--dock .composer__field {\n align-items: center;\n padding: 5px 5px 5px 13px;\n background: var(--as-surface);\n border: 1px solid var(--as-border);\n border-radius: 999px;\n box-shadow: none;\n}\n\n.composer--dock .composer__field:focus-within {\n border-color: color-mix(in srgb, var(--as-brand) 42%, var(--as-border));\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--as-brand) 10%, transparent);\n}\n\n.composer--dock .composer__input {\n padding: 11px 0;\n font-size: 15px;\n max-height: 48px;\n}\n\n.composer--dock .composer__send {\n width: 40px;\n height: 40px;\n}\n\n.composer--dock .composer__send svg {\n width: 15px;\n height: 15px;\n}\n",".followups {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.followups__label {\n font-size: 11px;\n font-weight: 650;\n color: var(--as-text-subtle);\n letter-spacing: 0.055em;\n text-transform: uppercase;\n}\n\n.followups__list {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.followups__chip {\n appearance: none;\n border: 1px solid var(--as-border);\n background: var(--as-surface);\n color: var(--as-text);\n font-size: 13px;\n position: relative;\n font-weight: 580;\n line-height: 1.4;\n text-align: left;\n border-radius: 12px;\n padding: 11px 34px 11px 12px;\n cursor: pointer;\n transition: border-color 0.15s ease, background 0.15s ease;\n word-break: break-word;\n}\n\n.followups__chip::after {\n position: absolute;\n top: 50%;\n right: 13px;\n color: var(--as-text-subtle);\n content: \"→\";\n font-size: 13px;\n transform: translateY(-50%);\n transition: transform 150ms ease, color 150ms ease;\n}\n\n.followups__chip:hover:not(:disabled) {\n border-color: color-mix(in srgb, var(--as-brand) 28%, var(--as-border));\n background: var(--as-brand-soft);\n}\n\n.followups__chip:hover:not(:disabled)::after {\n color: var(--as-brand);\n transform: translate(2px, -50%);\n}\n\n.followups__chip:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.followups--dock {\n width: 100%;\n gap: 0;\n}\n\n.followups__scroll {\n display: flex;\n gap: 8px;\n justify-content: flex-start;\n overflow-x: auto;\n padding: 2px;\n scrollbar-width: none;\n -ms-overflow-style: none;\n}\n\n.followups__scroll::-webkit-scrollbar {\n display: none;\n}\n\n.followups__chip--dock {\n display: inline-flex;\n align-items: center;\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n padding: 8px 12px;\n border-radius: 999px;\n font-size: 12px;\n font-weight: 600;\n white-space: nowrap;\n text-align: left;\n}\n\n.followups__chip--dock::after {\n display: none;\n}\n",".message-bubble {\n display: flex;\n flex-direction: column;\n gap: 8px;\n max-width: 86%;\n}\n\n.message-bubble--visitor {\n align-self: flex-end;\n align-items: flex-end;\n}\n\n.message-bubble--agent {\n align-self: flex-start;\n align-items: flex-start;\n max-width: 100%;\n}\n\n.message-bubble__text {\n margin: 0;\n padding: 10px 12px;\n border-radius: 14px;\n font-size: 14px;\n line-height: 1.55;\n word-break: break-word;\n}\n\n.message-bubble--visitor .message-bubble__text {\n background: var(--as-visitor-bubble);\n color: var(--as-visitor-text);\n border-bottom-right-radius: 5px;\n}\n\n.message-bubble--agent .message-bubble__text {\n width: 100%;\n padding: 0;\n border: none;\n border-radius: 0;\n background: transparent;\n color: var(--as-text);\n}\n\n.message-bubble__markdown > :first-child {\n margin-top: 0;\n}\n\n.message-bubble__markdown > :last-child {\n margin-bottom: 0;\n}\n\n.message-bubble__markdown p,\n.message-bubble__markdown ol,\n.message-bubble__markdown ul {\n margin: 0 0 8px;\n}\n\n.message-bubble__markdown ol,\n.message-bubble__markdown ul {\n padding-left: 20px;\n}\n\n.message-bubble__markdown ol {\n list-style: decimal outside;\n}\n\n.message-bubble__markdown ul {\n list-style: disc outside;\n}\n\n.message-bubble__markdown [data-streamdown=\"strong\"] {\n font-weight: 650;\n}\n\n.message-bubble__markdown li + li {\n margin-top: 4px;\n}\n\n.message-bubble__markdown [data-streamdown=\"link\"] {\n padding: 0;\n border: 0;\n background: transparent;\n color: var(--as-brand);\n font: inherit;\n text-decoration: underline;\n text-underline-offset: 2px;\n}\n\n.message-bubble__markdown code {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;\n font-size: 0.92em;\n}\n",".agent-rail {\n --rail-width: var(--as-rail-max-width);\n position: relative;\n z-index: var(--as-z-rail);\n display: flex;\n width: var(--rail-width);\n min-width: var(--rail-width);\n max-width: var(--rail-width);\n height: 100%;\n max-height: 100dvh;\n flex-direction: column;\n overflow: hidden;\n border-left: 1px solid var(--as-border);\n background: var(--as-surface);\n box-shadow: var(--as-shadow-rail);\n color: var(--as-text);\n font-family: var(--as-font-body);\n}\n\n.agent-rail:focus {\n outline: none;\n}\n\n.agent-rail__header {\n position: relative;\n z-index: 1;\n flex-shrink: 0;\n padding: 12px 14px;\n border-bottom: 1px solid var(--as-border);\n background: color-mix(\n in srgb,\n var(--as-surface) 96%,\n var(--as-surface-muted)\n );\n}\n\n.agent-rail__brand-row {\n display: grid;\n min-width: 0;\n min-height: 36px;\n grid-template-columns: 36px minmax(0, 1fr) auto;\n align-items: center;\n gap: 8px;\n}\n\n.agent-rail__identity {\n grid-column: 2;\n display: flex;\n min-width: 0;\n align-items: center;\n justify-content: center;\n gap: 8px;\n}\n\n.agent-rail__brand-label {\n overflow: hidden;\n font-family: var(--as-font-display);\n font-size: 14px;\n font-weight: 650;\n letter-spacing: -0.015em;\n line-height: 1.2;\n text-align: center;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.agent-rail__brand-mark,\n.agent-rail__welcome-mark {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n background: var(--as-brand);\n color: var(--as-visitor-text);\n font-weight: 750;\n}\n\n.agent-rail__brand-mark {\n width: 25px;\n height: 25px;\n flex-basis: 25px;\n border-radius: 8px;\n font-size: 11px;\n}\n\n.agent-rail__brand-logo,\n.agent-rail__welcome-logo {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n border-radius: inherit;\n background: var(--as-surface);\n object-fit: contain;\n}\n\n.agent-rail__brand-spacer {\n width: 36px;\n height: 36px;\n}\n\n.agent-rail__actions {\n grid-column: 3;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 2px;\n}\n\n.agent-rail__collapse,\n.agent-rail__close,\n.agent-rail__new-chat,\n.agent-rail__expand {\n appearance: none;\n display: inline-flex;\n width: 36px;\n height: 36px;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n margin: 0;\n padding: 0;\n border: none;\n border-radius: 10px;\n background: transparent;\n color: var(--as-text-muted);\n cursor: pointer;\n transition: background 150ms ease, color 150ms ease, opacity 150ms ease;\n}\n\n.agent-rail__collapse,\n.agent-rail__close {\n grid-column: 1;\n justify-self: start;\n}\n\n.agent-rail__collapse:hover,\n.agent-rail__close:hover,\n.agent-rail__new-chat:hover:not(:disabled),\n.agent-rail__expand:hover {\n background: var(--as-surface-muted);\n color: var(--as-text);\n}\n\n.agent-rail__collapse:focus-visible,\n.agent-rail__close:focus-visible,\n.agent-rail__new-chat:focus-visible,\n.agent-rail__expand:focus-visible {\n outline: 2px solid var(--as-brand);\n outline-offset: 1px;\n}\n\n.agent-rail__new-chat:disabled {\n opacity: 0.32;\n cursor: default;\n}\n\n.agent-rail__collapse svg,\n.agent-rail__close svg,\n.agent-rail__new-chat svg,\n.agent-rail__expand svg {\n width: 17px;\n height: 17px;\n}\n\n.agent-rail__transcript {\n min-height: 0;\n flex: 1 1 auto;\n overflow-x: hidden;\n overflow-y: auto;\n overscroll-behavior: contain;\n background: var(--as-surface);\n scroll-behavior: smooth;\n scrollbar-color: color-mix(in srgb, var(--as-text) 18%, transparent)\n transparent;\n scrollbar-width: thin;\n -webkit-overflow-scrolling: touch;\n}\n\n.agent-rail__thread {\n display: flex;\n width: 100%;\n min-height: 100%;\n flex-direction: column;\n gap: 16px;\n margin: 0 auto;\n padding: 20px 16px 26px;\n}\n\n.agent-rail__welcome {\n display: flex;\n min-height: 100%;\n flex: 1 0 auto;\n flex-direction: column;\n justify-content: center;\n gap: 22px;\n padding: 28px 2px 18px;\n}\n\n.agent-rail__welcome-mark {\n width: 42px;\n height: 42px;\n border-radius: 13px;\n box-shadow: 0 8px 24px -14px color-mix(in srgb, var(--as-brand) 70%, transparent);\n font-size: 16px;\n}\n\n.agent-rail__welcome-copy {\n display: grid;\n gap: 9px;\n}\n\n.agent-rail__welcome-copy h2 {\n margin: 0;\n color: var(--as-text);\n font-family: var(--as-font-display);\n font-size: clamp(21px, 3vw, 25px);\n font-weight: 650;\n letter-spacing: -0.035em;\n line-height: 1.15;\n}\n\n.agent-rail__welcome-copy p {\n max-width: 42ch;\n margin: 0;\n color: var(--as-text-muted);\n font-size: 13px;\n line-height: 1.55;\n}\n\n.agent-rail__timeline-slot,\n.agent-rail__followups-slot {\n flex-shrink: 0;\n}\n\n.agent-rail__error {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n padding: 12px;\n border: 1px solid color-mix(in srgb, var(--as-danger) 24%, var(--as-border));\n border-radius: var(--as-radius-md);\n background: color-mix(in srgb, var(--as-danger) 6%, var(--as-surface));\n color: var(--as-text);\n}\n\n.agent-rail__error div {\n display: grid;\n gap: 3px;\n min-width: 0;\n}\n\n.agent-rail__error strong {\n font-size: 12px;\n font-weight: 700;\n}\n\n.agent-rail__error p {\n margin: 0;\n color: var(--as-text-muted);\n font-size: 12px;\n line-height: 1.4;\n}\n\n.agent-rail__error button {\n appearance: none;\n flex: 0 0 auto;\n padding: 7px 10px;\n border: 1px solid color-mix(in srgb, var(--as-brand) 26%, var(--as-border));\n border-radius: 999px;\n background: var(--as-surface);\n color: var(--as-text);\n cursor: pointer;\n font-size: 12px;\n font-weight: 650;\n}\n\n.agent-rail__error button:hover {\n background: var(--as-brand-soft);\n}\n\n.agent-rail__error button:focus-visible {\n outline: 2px solid var(--as-brand);\n outline-offset: 2px;\n}\n\n.agent-rail__composer-wrap {\n position: relative;\n z-index: 1;\n flex-shrink: 0;\n padding: 12px 14px 13px;\n border-top: 1px solid var(--as-border);\n background: color-mix(\n in srgb,\n var(--as-surface) 96%,\n var(--as-surface-muted)\n );\n}\n\n.agent-rail__footer {\n margin-top: 7px;\n}\n\n.agent-rail__footer p {\n margin: 0;\n color: var(--as-text-subtle);\n font-size: 10.5px;\n line-height: 1.35;\n text-align: center;\n}\n\n.agent-rail--expanded {\n position: fixed;\n top: 50%;\n left: 50%;\n z-index: calc(var(--as-z-mobile) + 1);\n width: min(960px, calc(100vw - 48px));\n min-width: 0;\n max-width: 960px;\n height: min(860px, calc(100dvh - 48px));\n max-height: calc(100dvh - 48px);\n overflow: hidden;\n transform: translate(-50%, -50%);\n border: 1px solid var(--as-border);\n border-radius: 22px;\n background: var(--as-surface);\n box-shadow: 0 1px 2px color-mix(in srgb, var(--as-text) 8%, transparent),\n 0 32px 90px -30px color-mix(in srgb, var(--as-text) 46%, transparent);\n transition: width 320ms cubic-bezier(0.22, 1, 0.36, 1),\n height 320ms cubic-bezier(0.22, 1, 0.36, 1),\n transform 320ms cubic-bezier(0.22, 1, 0.36, 1),\n border-radius 320ms cubic-bezier(0.22, 1, 0.36, 1),\n box-shadow 320ms cubic-bezier(0.22, 1, 0.36, 1);\n}\n\n.agent-rail--expanded .agent-rail__thread {\n max-width: 760px;\n padding: 28px 24px 36px;\n}\n\n.agent-rail--expanded .agent-rail__welcome {\n width: 100%;\n max-width: 680px;\n margin: 0 auto;\n}\n\n.agent-rail--expanded .agent-rail__composer-wrap {\n padding: 16px 24px 18px;\n}\n\n.agent-rail--expanded .agent-rail__composer-wrap > .composer,\n.agent-rail--expanded .agent-rail__footer {\n width: min(712px, 100%);\n margin-right: auto;\n margin-left: auto;\n}\n\n.agent-rail--expanded .agent-rail__footer {\n margin-top: 8px;\n}\n\n.agent-rail--mobile-fullscreen {\n position: fixed;\n inset: auto 0 0;\n z-index: calc(var(--as-z-mobile) + 1);\n width: 100%;\n min-width: 0;\n max-width: none;\n height: min(78dvh, 720px);\n min-height: min(520px, calc(100dvh - 12px));\n max-height: calc(100dvh - 8px);\n overflow: hidden;\n border: 1px solid var(--as-border);\n border-bottom: none;\n border-radius: 22px 22px 0 0;\n background: var(--as-surface);\n box-shadow: 0 -24px 72px -28px\n color-mix(in srgb, var(--as-text) 42%, transparent);\n}\n\n.agent-rail--mobile-fullscreen .agent-rail__header {\n padding-top: 16px;\n}\n\n.agent-rail--mobile-fullscreen .agent-rail__brand-row {\n grid-template-columns: minmax(0, 1fr) auto 40px;\n}\n\n.agent-rail--mobile-fullscreen .agent-rail__identity {\n grid-column: 1;\n justify-content: flex-start;\n}\n\n.agent-rail--mobile-fullscreen .agent-rail__actions {\n grid-column: 2;\n}\n\n.agent-rail--mobile-fullscreen .agent-rail__close {\n grid-column: 3;\n grid-row: 1;\n justify-self: end;\n}\n\n.agent-rail--mobile-fullscreen .agent-rail__close,\n.agent-rail--mobile-fullscreen .agent-rail__new-chat {\n width: 40px;\n height: 40px;\n}\n\n.agent-rail--mobile-fullscreen .agent-rail__header::before {\n position: absolute;\n top: 7px;\n left: 50%;\n width: 34px;\n height: 4px;\n border-radius: 999px;\n background: color-mix(in srgb, var(--as-text) 16%, transparent);\n content: \"\";\n transform: translateX(-50%);\n}\n\n.agent-rail--mobile-fullscreen .agent-rail__thread {\n padding: 20px 16px 24px;\n}\n\n.agent-rail--mobile-fullscreen .agent-rail__welcome {\n padding-top: 20px;\n padding-bottom: 12px;\n}\n\n.agent-rail--mobile-fullscreen .agent-rail__composer-wrap {\n padding: 11px 12px max(12px, env(safe-area-inset-bottom));\n}\n\n.agent-rail--mobile-fullscreen .agent-rail__close {\n display: inline-flex;\n}\n\n.agent-rail--mobile-fullscreen .agent-rail__collapse {\n display: none;\n}\n\n@media (max-width: 767px) {\n .agent-rail:not(.agent-rail--mobile-fullscreen) {\n width: 100%;\n min-width: 0;\n max-width: none;\n }\n\n .agent-rail .agent-rail__close {\n display: inline-flex;\n }\n\n .agent-rail .agent-rail__collapse,\n .agent-rail .agent-rail__expand {\n display: none;\n }\n\n .agent-rail__welcome-copy h2 {\n font-size: 23px;\n }\n\n .agent-rail__error {\n align-items: flex-start;\n flex-direction: column;\n }\n}\n\n@media (max-width: 767px) and (max-height: 620px) {\n .agent-rail--mobile-fullscreen {\n height: calc(100dvh - 8px);\n }\n\n .agent-rail--mobile-fullscreen .agent-rail__welcome {\n justify-content: flex-start;\n }\n}\n\n@media (min-width: 768px) {\n .agent-rail .agent-rail__close {\n display: none !important;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .agent-rail--expanded {\n transition: none;\n }\n}\n",".assist-edge-tab {\n --tab-ink: var(--as-brand);\n --tab-fill: #fff;\n --tab-line: rgb(111 22 255 / 0.35);\n --tab-along: 50%;\n --tab-inset: 0px;\n position: fixed;\n top: auto;\n right: auto;\n bottom: auto;\n left: auto;\n z-index: calc(var(--as-z-rail) + 1);\n appearance: none;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n border: 1px solid var(--tab-line);\n background: var(--tab-fill);\n color: var(--tab-ink);\n cursor: pointer;\n opacity: 0;\n pointer-events: none;\n box-shadow: -6px 0 20px -12px color-mix(in srgb, var(--as-text) 28%, transparent);\n transition: transform 420ms cubic-bezier(0.22, 1, 0.36, 1), opacity 240ms ease,\n box-shadow 180ms ease;\n}\n\n.assist-edge-tab.is-visible {\n opacity: 1;\n pointer-events: auto;\n}\n\n.assist-edge-tab:focus-visible {\n outline: 2px solid var(--as-brand);\n outline-offset: 3px;\n}\n\n.assist-edge-tab svg {\n width: 16px;\n height: 16px;\n flex-shrink: 0;\n}\n\n.assist-edge-tab__sparkles {\n width: 18px;\n height: 16px;\n}\n\n.assist-edge-tab__mark {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n flex: 0 0 20px;\n}\n\n.assist-edge-tab__logo {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n border-radius: 6px;\n background: var(--tab-fill);\n object-fit: contain;\n}\n\n.assist-edge-tab__label {\n font-family: var(--as-font-display);\n font-size: 13px;\n font-weight: 600;\n letter-spacing: 0.02em;\n line-height: 1;\n white-space: nowrap;\n}\n\n.assist-edge-tab--right,\n.assist-edge-tab--left {\n flex-direction: column;\n width: 40px;\n min-height: 168px;\n padding: 14px 0 12px;\n}\n\n.assist-edge-tab--right .assist-edge-tab__label,\n.assist-edge-tab--left .assist-edge-tab__label {\n writing-mode: vertical-rl;\n transform: rotate(180deg);\n}\n\n.assist-edge-tab--top,\n.assist-edge-tab--bottom {\n flex-direction: row;\n height: 40px;\n min-width: 168px;\n width: auto;\n padding: 0 14px;\n}\n\n.assist-edge-tab--right {\n top: var(--tab-along);\n right: var(--tab-inset);\n border-right: none;\n border-radius: 999px 0 0 999px;\n transform: translateY(-50%) translateX(calc(100% + 18px));\n}\n\n.assist-edge-tab--right.is-visible {\n transform: translateY(-50%) translateX(0);\n}\n\n.assist-edge-tab--right.is-visible:hover {\n transform: translateY(-50%) translateX(-2px);\n}\n\n.assist-edge-tab--left {\n top: var(--tab-along);\n left: var(--tab-inset);\n border-left: none;\n border-radius: 0 999px 999px 0;\n transform: translateY(-50%) translateX(calc(-100% - 18px));\n}\n\n.assist-edge-tab--left.is-visible {\n transform: translateY(-50%) translateX(0);\n}\n\n.assist-edge-tab--left.is-visible:hover {\n transform: translateY(-50%) translateX(2px);\n}\n\n.assist-edge-tab--top {\n left: var(--tab-along);\n top: var(--tab-inset);\n border-top: none;\n border-radius: 0 0 999px 999px;\n transform: translateX(-50%) translateY(calc(-100% - 18px));\n}\n\n.assist-edge-tab--top.is-visible {\n transform: translateX(-50%) translateY(0);\n}\n\n.assist-edge-tab--top.is-visible:hover {\n transform: translateX(-50%) translateY(2px);\n}\n\n.assist-edge-tab--bottom {\n left: var(--tab-along);\n bottom: var(--tab-inset);\n border-bottom: none;\n border-radius: 999px 999px 0 0;\n transform: translateX(-50%) translateY(calc(100% + 18px));\n}\n\n.assist-edge-tab--bottom.is-visible {\n transform: translateX(-50%) translateY(0);\n}\n\n.assist-edge-tab--bottom.is-visible:hover {\n transform: translateX(-50%) translateY(-2px);\n}\n\n.assist-edge-tab--outline {\n --tab-fill: #f7f6fa;\n --tab-line: rgb(111 22 255 / 0.45);\n}\n\n.assist-edge-tab--outline.assist-edge-tab--right,\n.assist-edge-tab--outline.assist-edge-tab--left {\n min-height: 176px;\n border-radius: 999px;\n border-right: 1px solid var(--tab-line);\n border-left: 1px solid var(--tab-line);\n}\n\n.assist-edge-tab--outline.assist-edge-tab--top,\n.assist-edge-tab--outline.assist-edge-tab--bottom {\n border-radius: 999px;\n border-top: 1px solid var(--tab-line);\n border-bottom: 1px solid var(--tab-line);\n}\n\n.assist-edge-tab--ask {\n --tab-fill: #efe8fb;\n --tab-line: transparent;\n}\n\n.assist-edge-tab--ask.assist-edge-tab--right,\n.assist-edge-tab--ask.assist-edge-tab--left {\n min-height: 196px;\n width: 42px;\n}\n\n.assist-edge-tab--ask.assist-edge-tab--right {\n border-radius: 18px 0 0 18px;\n}\n\n.assist-edge-tab--ask.assist-edge-tab--left {\n border-radius: 0 18px 18px 0;\n}\n\n.assist-edge-tab--fill {\n --tab-fill: var(--as-brand);\n --tab-ink: #fff;\n --tab-line: transparent;\n box-shadow: -8px 0 22px -10px color-mix(in srgb, var(--as-brand) 55%, transparent);\n}\n\n.assist-edge-tab--fill.assist-edge-tab--right,\n.assist-edge-tab--fill.assist-edge-tab--left {\n min-height: 180px;\n}\n\n.assist-edge-tab__dots {\n display: grid;\n grid-template-columns: repeat(3, 3px);\n gap: 3px;\n}\n\n.assist-edge-tab--top .assist-edge-tab__dots,\n.assist-edge-tab--bottom .assist-edge-tab__dots {\n grid-template-columns: repeat(4, 3px);\n grid-template-rows: repeat(3, 3px);\n}\n\n.assist-edge-tab__dots i {\n width: 3px;\n height: 3px;\n border-radius: 999px;\n background: currentColor;\n opacity: 0.55;\n}\n\n@media (max-width: 767px) {\n .assist-edge-tab {\n z-index: calc(var(--as-z-mobile) + 2);\n }\n\n .assist-edge-tab--right,\n .assist-edge-tab--left {\n min-height: 148px;\n width: 36px;\n }\n\n .assist-edge-tab--mobile,\n .assist-edge-tab--mobile.assist-edge-tab--right,\n .assist-edge-tab--mobile.assist-edge-tab--left,\n .assist-edge-tab--mobile.assist-edge-tab--top,\n .assist-edge-tab--mobile.assist-edge-tab--bottom {\n top: auto;\n right: max(14px, env(safe-area-inset-right));\n bottom: max(14px, env(safe-area-inset-bottom));\n left: auto;\n width: auto;\n min-width: 0;\n max-width: min(220px, calc(100vw - 28px));\n height: 48px;\n min-height: 48px;\n padding: 0 17px 0 13px;\n flex-direction: row;\n justify-content: center;\n gap: 9px;\n border: 1px solid color-mix(in srgb, var(--as-brand) 18%, var(--as-border));\n border-radius: 999px;\n background: var(--as-surface);\n color: var(--as-text);\n box-shadow: 0 1px 2px color-mix(in srgb, var(--as-text) 8%, transparent),\n 0 12px 32px -12px color-mix(in srgb, var(--as-text) 32%, transparent);\n transform: translateY(calc(100% + 24px));\n }\n\n .assist-edge-tab--mobile.is-visible,\n .assist-edge-tab--mobile.is-visible:hover {\n transform: translateY(0);\n }\n\n .assist-edge-tab--mobile.is-visible:hover {\n box-shadow: 0 1px 2px color-mix(in srgb, var(--as-text) 8%, transparent),\n 0 14px 36px -12px color-mix(in srgb, var(--as-text) 38%, transparent);\n }\n\n .assist-edge-tab--mobile .assist-edge-tab__mark {\n width: 22px;\n height: 22px;\n flex-basis: 22px;\n border-radius: 7px;\n background: var(--as-brand);\n color: var(--as-visitor-text);\n font-size: 10px;\n font-weight: 750;\n }\n\n .assist-edge-tab--mobile .assist-edge-tab__label {\n min-width: 0;\n overflow: hidden;\n color: var(--as-text);\n font-size: 14px;\n letter-spacing: -0.01em;\n text-overflow: ellipsis;\n white-space: nowrap;\n writing-mode: initial;\n transform: none;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .assist-edge-tab,\n .assist-edge-tab.is-visible,\n .assist-edge-tab.is-visible:hover {\n transition: none;\n }\n}\n"],"mappings":"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","names":[]}
package/dist/embed.d.cts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { Root } from 'react-dom/client';
2
- import { f as AgentTagManifest, N as NormalizedAgentTagManifest } from './manifest-oc_3zCSC.cjs';
3
- export { a as AgentIndexVersion, b as AgentMountStrategy, c as AgentPlacementConfig, d as AgentTabSide, e as AgentTabVariant, D as DEFAULT_AGENT_PLACEMENT, n as normalizeAgentPlacement, j as normalizeAgentTagManifest } from './manifest-oc_3zCSC.cjs';
2
+ import { f as AgentTagManifest, N as NormalizedAgentTagManifest } from './manifest-C8l7WUf6.cjs';
3
+ export { a as AgentIndexVersion, b as AgentMountStrategy, c as AgentPlacementConfig, d as AgentTabSide, e as AgentTabVariant, D as DEFAULT_AGENT_PLACEMENT, n as normalizeAgentPlacement, j as normalizeAgentTagManifest } from './manifest-C8l7WUf6.cjs';
4
4
  import 'react';
5
5
 
6
6
  type AgentRuntimeHandle = {
package/dist/embed.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { Root } from 'react-dom/client';
2
- import { f as AgentTagManifest, N as NormalizedAgentTagManifest } from './manifest-oc_3zCSC.js';
3
- export { a as AgentIndexVersion, b as AgentMountStrategy, c as AgentPlacementConfig, d as AgentTabSide, e as AgentTabVariant, D as DEFAULT_AGENT_PLACEMENT, n as normalizeAgentPlacement, j as normalizeAgentTagManifest } from './manifest-oc_3zCSC.js';
2
+ import { f as AgentTagManifest, N as NormalizedAgentTagManifest } from './manifest-C8l7WUf6.js';
3
+ export { a as AgentIndexVersion, b as AgentMountStrategy, c as AgentPlacementConfig, d as AgentTabSide, e as AgentTabVariant, D as DEFAULT_AGENT_PLACEMENT, n as normalizeAgentPlacement, j as normalizeAgentTagManifest } from './manifest-C8l7WUf6.js';
4
4
  import 'react';
5
5
 
6
6
  type AgentRuntimeHandle = {
package/dist/embed.js CHANGED
@@ -7,7 +7,7 @@ import {
7
7
  normalizeAgentPlacement,
8
8
  openAgentPanel,
9
9
  resolveAgentRuntimeConfig
10
- } from "./chunk-APNF27K2.js";
10
+ } from "./chunk-SVWXFDV3.js";
11
11
 
12
12
  // src/embed/mount.tsx
13
13
  import { createRoot } from "react-dom/client";
package/dist/index.cjs CHANGED
@@ -312,13 +312,15 @@ function emitWorkItem(item, handlers, workItems) {
312
312
  handlers.onWork?.(item);
313
313
  handlers.onStep?.(item.label, item.detail);
314
314
  }
315
- function completePlanning(handlers, workItems) {
315
+ function completePlanning(handlers, workItems, nextItems = []) {
316
316
  const planning = workItems.get("planning");
317
317
  if (!planning || planning.state !== "active") return;
318
+ const specialists = nextItems.filter((item) => item.kind === "specialist");
319
+ const detail = specialists.length === 1 ? `Delegating to ${specialists[0]?.label}` : specialists.length > 1 ? `Delegating to ${specialists.length} specialists` : nextItems.some((item) => item.kind === "search") ? "Using built-in Search & Discovery" : "Picked the best way to help";
318
320
  emitWorkItem(
319
321
  {
320
322
  ...planning,
321
- detail: "Picked the best way to help",
323
+ detail,
322
324
  state: "completed"
323
325
  },
324
326
  handlers,
@@ -368,11 +370,12 @@ function applyWorkEvent(event, handlers, workItems) {
368
370
  return;
369
371
  }
370
372
  if (event.type === "actions.requested") {
371
- completePlanning(handlers, workItems);
372
- for (const action of event.data.actions) {
373
+ const nextItems = event.data.actions.flatMap((action) => {
373
374
  const item = requestedWorkItem(action);
374
- if (item) emitWorkItem(item, handlers, workItems);
375
- }
375
+ return item ? [item] : [];
376
+ });
377
+ completePlanning(handlers, workItems, nextItems);
378
+ for (const item of nextItems) emitWorkItem(item, handlers, workItems);
376
379
  return;
377
380
  }
378
381
  if (event.type === "subagent.called") {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/runtime/client.ts","../src/runtime/capability.ts","../src/runtime/config.ts","../src/runtime/session-store.ts","../src/runtime/errors.ts","../src/runtime/health.ts"],"sourcesContent":["export { createAgentClient } from \"./runtime/client\";\nexport {\n DEFAULT_RUNTIME_ORIGIN,\n agentHealthUrl,\n buildEveHost,\n resolveAgentRuntimeConfig,\n} from \"./runtime/config\";\nexport { formatAgentError } from \"./runtime/errors\";\nexport { pingAgentHealth } from \"./runtime/health\";\nexport {\n buildAgentStorageKeyPrefix,\n clearPersistedAgentSession,\n clearVisitorSessionId,\n getOrCreateVisitorSessionId,\n loadPersistedAgentSession,\n savePersistedAgentSession,\n} from \"./runtime/session-store\";\nexport type { SessionStoreOptions } from \"./runtime/session-store\";\nexport type {\n AgentClient,\n AgentClientOptions,\n AgentHealthResult,\n AgentIndexVersion,\n AgentRuntimeConfig,\n AgentResumeTurnOptions,\n AgentSendTurnOptions,\n AgentStreamHandlers,\n AgentWorkItem,\n PersistedAgentSession,\n} from \"./runtime/types\";\n","import {\n Client,\n ClientError,\n type ClientSession,\n type MessageResponse,\n type MessageStreamEvent,\n} from \"eve/client\";\nimport {\n createAgentRuntimeCapability,\n type AgentRuntimeCapability,\n withCapabilityRefresh,\n} from \"./capability\";\nimport { resolveAgentRuntimeConfig } from \"./config\";\nimport {\n buildAgentStorageKeyPrefix,\n clearPersistedAgentSession,\n getOrCreateVisitorSessionId,\n loadPersistedAgentSession,\n savePersistedAgentSession,\n type SessionStoreOptions,\n} from \"./session-store\";\nimport type {\n AgentClient,\n AgentClientOptions,\n AgentIndexVersion,\n AgentResumeTurnOptions,\n AgentSendTurnOptions,\n AgentStreamHandlers,\n AgentWorkItem,\n} from \"./types\";\n\nfunction isTurnBoundary(event: MessageStreamEvent) {\n return (\n event.type === \"session.waiting\" ||\n event.type === \"session.completed\" ||\n event.type === \"session.failed\"\n );\n}\n\nfunction applyMessageEvent(\n event: MessageStreamEvent,\n rendered: string,\n handlers: AgentStreamHandlers,\n workItems: Map<string, AgentWorkItem>\n) {\n applyWorkEvent(event, handlers, workItems);\n\n if (event.type === \"session.failed\") {\n throw new Error(event.data.message || event.data.code);\n }\n\n if (event.type === \"message.completed\") {\n handlers.onComplete?.();\n }\n\n if (event.type !== \"message.appended\") return rendered;\n\n const { messageDelta, messageSoFar } = event.data;\n let delta = messageDelta;\n let next = rendered;\n if (messageSoFar.startsWith(rendered)) {\n delta = messageSoFar.slice(rendered.length);\n next = messageSoFar;\n } else if (messageDelta) {\n next += messageDelta;\n }\n if (delta) handlers.onDelta(delta);\n return next;\n}\n\nfunction latestTurnEvents(events: readonly MessageStreamEvent[]) {\n let startIndex = -1;\n for (let index = events.length - 1; index >= 0; index -= 1) {\n if (events[index]?.type === \"message.received\") {\n startIndex = index;\n break;\n }\n }\n return startIndex >= 0 ? events.slice(startIndex) : [];\n}\n\nfunction renderTurn(events: readonly MessageStreamEvent[]) {\n let rendered = \"\";\n for (const event of events) {\n if (event.type !== \"message.appended\") continue;\n const { messageDelta, messageSoFar } = event.data;\n if (messageSoFar.startsWith(rendered)) {\n rendered = messageSoFar;\n } else if (messageDelta) {\n rendered += messageDelta;\n }\n }\n return rendered;\n}\n\nfunction emitWorkItem(\n item: AgentWorkItem,\n handlers: AgentStreamHandlers,\n workItems: Map<string, AgentWorkItem>\n) {\n workItems.set(item.id, item);\n handlers.onWork?.(item);\n handlers.onStep?.(item.label, item.detail);\n}\n\nfunction completePlanning(\n handlers: AgentStreamHandlers,\n workItems: Map<string, AgentWorkItem>\n) {\n const planning = workItems.get(\"planning\");\n if (!planning || planning.state !== \"active\") return;\n emitWorkItem(\n {\n ...planning,\n detail: \"Picked the best way to help\",\n state: \"completed\",\n },\n handlers,\n workItems\n );\n}\n\nfunction specialistNameFromInput(input: Readonly<Record<string, unknown>>) {\n const message = input.message;\n if (typeof message !== \"string\") return undefined;\n const match = /^Webless-Agent-Name:\\s*(.+)$/imu.exec(message);\n return match?.[1]?.trim() || undefined;\n}\n\nfunction requestedWorkItem(\n action: Extract<\n Extract<\n MessageStreamEvent,\n { type: \"actions.requested\" }\n >[\"data\"][\"actions\"][number],\n { callId: string }\n >\n): AgentWorkItem | null {\n if (action.kind === \"tool-call\" && action.toolName === \"search_discovery\") {\n return {\n id: action.callId,\n kind: \"search\",\n label: \"Search & Discovery\",\n detail: \"Searching this site\",\n state: \"active\",\n };\n }\n\n if (\n action.kind === \"subagent-call\" ||\n action.kind === \"remote-agent-call\" ||\n (action.kind === \"tool-call\" && action.toolName === \"agent\")\n ) {\n const name = specialistNameFromInput(action.input) ?? \"Specialist\";\n return {\n id: action.callId,\n kind: \"specialist\",\n label: name,\n detail: \"Reviewing your question\",\n state: \"active\",\n };\n }\n\n return null;\n}\n\nexport function applyWorkEvent(\n event: MessageStreamEvent,\n handlers: AgentStreamHandlers,\n workItems: Map<string, AgentWorkItem>\n) {\n if (event.type === \"step.started\" && workItems.size === 0) {\n emitWorkItem(\n {\n id: \"planning\",\n kind: \"planning\",\n label: \"Understanding your question\",\n state: \"active\",\n },\n handlers,\n workItems\n );\n return;\n }\n\n if (event.type === \"actions.requested\") {\n completePlanning(handlers, workItems);\n for (const action of event.data.actions) {\n const item = requestedWorkItem(action);\n if (item) emitWorkItem(item, handlers, workItems);\n }\n return;\n }\n\n if (event.type === \"subagent.called\") {\n completePlanning(handlers, workItems);\n const current = workItems.get(event.data.callId);\n if (!current) {\n emitWorkItem(\n {\n id: event.data.callId,\n kind: \"specialist\",\n label: event.data.name || \"Specialist\",\n detail: \"Reviewing your question\",\n state: \"active\",\n },\n handlers,\n workItems\n );\n }\n return;\n }\n\n if (event.type === \"subagent.completed\") {\n const current = workItems.get(event.data.callId);\n if (!current) return;\n emitWorkItem(\n {\n ...current,\n detail: \"Guidance received\",\n state: \"completed\",\n },\n handlers,\n workItems\n );\n return;\n }\n\n if (event.type !== \"action.result\") return;\n const { result, status } = event.data;\n const current = workItems.get(result.callId);\n if (!current) return;\n const failed = status !== \"completed\" || result.isError === true;\n emitWorkItem(\n {\n ...current,\n detail: failed\n ? \"Couldn’t complete; continuing with available information\"\n : current.kind === \"search\"\n ? \"Found relevant site content\"\n : \"Guidance received\",\n state: failed ? \"error\" : \"completed\",\n },\n handlers,\n workItems\n );\n}\n\nclass AgentSession {\n private client: Client | undefined;\n private clientHost: string | undefined;\n private session: ClientSession | undefined;\n private activeResponse: MessageResponse | undefined;\n private readonly capability: AgentRuntimeCapability;\n\n constructor(\n private readonly indexId: string,\n private readonly version: AgentIndexVersion,\n private readonly runtimeOrigin: string,\n private readonly visitorSessionId: string,\n private readonly storeOptions: SessionStoreOptions,\n previewBuildId?: string,\n getUnpublishedPreviewGrant?: () => Promise<string>\n ) {\n this.capability = createAgentRuntimeCapability({\n getUnpublishedPreviewGrant,\n indexId,\n previewBuildId,\n runtimeOrigin,\n version,\n visitorSessionId,\n });\n }\n\n getActiveSessionId(): string | undefined {\n return (\n this.session?.state.sessionId ??\n loadPersistedAgentSession(this.visitorSessionId, this.storeOptions)\n ?.sessionId\n );\n }\n\n reset() {\n if (this.activeResponse) {\n void this.activeResponse.cancel().catch(() => {});\n } else {\n void this.session?.cancel().catch(() => {});\n }\n this.activeResponse = undefined;\n this.session = undefined;\n this.capability.invalidate();\n clearPersistedAgentSession(this.visitorSessionId, this.storeOptions);\n }\n\n private persistSessionCursor(session: ClientSession) {\n savePersistedAgentSession(\n this.visitorSessionId,\n session.state.sessionId,\n session.state.streamIndex,\n this.storeOptions\n );\n }\n\n private ensureClient(): Client {\n const config = resolveAgentRuntimeConfig({\n indexId: this.indexId,\n version: this.version,\n runtimeOrigin: this.runtimeOrigin,\n });\n if (!config.indexId) {\n throw new Error(\"indexId is required.\");\n }\n\n if (this.client && this.clientHost === config.host) {\n return this.client;\n }\n\n this.activeResponse = undefined;\n this.session = undefined;\n this.client = new Client({\n auth: { bearer: () => this.capability.getAccessToken() },\n host: config.host,\n redirect: \"error\",\n });\n this.clientHost = config.host;\n return this.client;\n }\n\n private attachPersistedSession(client: Client): ClientSession | undefined {\n const persisted = loadPersistedAgentSession(\n this.visitorSessionId,\n this.storeOptions\n );\n if (!persisted?.sessionId) return undefined;\n\n return client.sessions.attach(persisted.sessionId, {\n streamIndex: persisted.streamIndex,\n });\n }\n\n async sendTurn(\n message: string,\n signal: AbortSignal,\n handlers: AgentStreamHandlers\n ): Promise<string> {\n const client = this.ensureClient();\n let response: MessageResponse | undefined;\n let session = this.session ?? this.attachPersistedSession(client);\n\n if (session) {\n this.session = session;\n try {\n const activeSession = session;\n response = await withCapabilityRefresh(this.capability, () =>\n activeSession.send(message, { signal })\n );\n } catch (error) {\n if (\n error instanceof ClientError &&\n error.status === 409 &&\n error.code === \"session_not_active\"\n ) {\n clearPersistedAgentSession(this.visitorSessionId, this.storeOptions);\n this.session = undefined;\n session = undefined;\n } else {\n throw error;\n }\n }\n }\n\n if (!response) {\n const created = await withCapabilityRefresh(this.capability, () =>\n client.sessions.create({ message, signal })\n );\n response = created.response;\n session = created.session;\n this.session = session;\n this.persistSessionCursor(session);\n }\n\n this.activeResponse = response;\n let streamIndex = session?.state.streamIndex ?? 0;\n let rendered = \"\";\n const workItems = new Map<string, AgentWorkItem>();\n\n try {\n for await (const event of response) {\n if (signal.aborted) break;\n rendered = applyMessageEvent(event, rendered, handlers, workItems);\n streamIndex += 1;\n if (session) {\n savePersistedAgentSession(\n this.visitorSessionId,\n session.state.sessionId,\n streamIndex,\n this.storeOptions\n );\n }\n }\n } finally {\n this.activeResponse = undefined;\n if (session) {\n this.persistSessionCursor(session);\n }\n }\n\n if (!rendered.trim() && !signal.aborted) {\n throw new Error(\"Empty response from runtime\");\n }\n\n return rendered.trim();\n }\n\n async resumeTurn(\n message: string,\n signal: AbortSignal,\n handlers: AgentStreamHandlers,\n initialText = \"\"\n ): Promise<string | null> {\n const persisted = loadPersistedAgentSession(\n this.visitorSessionId,\n this.storeOptions\n );\n if (!persisted) return null;\n\n const client = this.ensureClient();\n const attached = client.sessions.attach(persisted.sessionId, {\n streamIndex: persisted.streamIndex,\n });\n const snapshot = await withCapabilityRefresh(this.capability, () =>\n attached.snapshot({ signal })\n );\n const turnEvents = latestTurnEvents(snapshot.events);\n const received = turnEvents[0];\n if (\n received?.type !== \"message.received\" ||\n received.data.message !== message\n ) {\n return null;\n }\n let rendered = renderTurn(turnEvents);\n const workItems = new Map<string, AgentWorkItem>();\n for (const event of turnEvents) {\n applyWorkEvent(event, handlers, workItems);\n }\n\n if (rendered.startsWith(initialText)) {\n const missedText = rendered.slice(initialText.length);\n if (missedText) handlers.onDelta(missedText);\n } else if (initialText.startsWith(rendered)) {\n rendered = initialText;\n } else if (!initialText.startsWith(rendered)) {\n rendered = initialText + rendered;\n }\n\n let session = client.sessions.attach(snapshot.session.sessionId, {\n streamIndex: snapshot.session.streamIndex,\n });\n this.session = session;\n this.persistSessionCursor(session);\n\n let snapshotBoundary: MessageStreamEvent | undefined;\n for (let index = turnEvents.length - 1; index >= 0; index -= 1) {\n const event = turnEvents[index];\n if (event && isTurnBoundary(event)) {\n snapshotBoundary = event;\n break;\n }\n }\n if (snapshotBoundary) {\n if (snapshotBoundary.type === \"session.failed\") {\n throw new Error(\n snapshotBoundary.data.message || snapshotBoundary.data.code\n );\n }\n handlers.onComplete?.();\n if (!rendered.trim()) throw new Error(\"Empty response from runtime\");\n return rendered.trim();\n }\n\n let streamIndex = snapshot.session.streamIndex;\n for await (const event of session.stream({ signal })) {\n if (signal.aborted) break;\n rendered = applyMessageEvent(event, rendered, handlers, workItems);\n streamIndex += 1;\n savePersistedAgentSession(\n this.visitorSessionId,\n session.state.sessionId,\n streamIndex,\n this.storeOptions\n );\n if (isTurnBoundary(event)) break;\n }\n\n session = client.sessions.attach(session.state.sessionId, { streamIndex });\n this.session = session;\n this.persistSessionCursor(session);\n\n if (!rendered.trim() && !signal.aborted) {\n throw new Error(\"Empty response from runtime\");\n }\n return rendered.trim();\n }\n\n cancelActive() {\n if (this.activeResponse) {\n this.activeResponse.cancel().catch(() => {});\n } else {\n this.session?.cancel().catch(() => {});\n }\n }\n}\n\nexport function createAgentClient(options: AgentClientOptions): AgentClient {\n const indexId = options.indexId.trim();\n if (!indexId) {\n throw new Error(\"indexId is required.\");\n }\n\n const version = options.version ?? \"published\";\n const runtimeOrigin = resolveAgentRuntimeConfig({\n indexId,\n runtimeOrigin: options.runtimeOrigin,\n version,\n }).origin;\n const storeOptions: SessionStoreOptions = {\n storageKeyPrefix:\n options.storageKeyPrefix?.trim() ||\n buildAgentStorageKeyPrefix({\n customerId: options.customerId,\n indexId,\n version,\n runtimeOrigin,\n }),\n };\n const visitorSessionId =\n options.visitorSessionId?.trim() ||\n getOrCreateVisitorSessionId(storeOptions);\n\n const session = new AgentSession(\n indexId,\n version,\n runtimeOrigin,\n visitorSessionId,\n storeOptions,\n options.previewBuildId,\n options.getUnpublishedPreviewGrant\n );\n\n return {\n indexId,\n version,\n runtimeOrigin,\n visitorSessionId,\n sendTurn: (message, sendOptions: AgentSendTurnOptions) =>\n session.sendTurn(\n message,\n sendOptions.signal ?? new AbortController().signal,\n sendOptions.handlers\n ),\n resumeTurn: (resumeOptions: AgentResumeTurnOptions) =>\n session.resumeTurn(\n resumeOptions.message,\n resumeOptions.signal ?? new AbortController().signal,\n resumeOptions.handlers,\n resumeOptions.initialText\n ),\n reset: () => session.reset(),\n cancelActive: () => session.cancelActive(),\n getActiveSessionId: () => session.getActiveSessionId(),\n };\n}\n","import { ClientError } from \"eve/client\";\nimport type { AgentIndexVersion } from \"./types\";\n\ntype RuntimeCapability = {\n accessToken: string;\n refreshAt: number;\n};\n\ntype AgentRuntimeCapabilityOptions = {\n getUnpublishedPreviewGrant?: () => Promise<string>;\n indexId: string;\n previewBuildId?: string;\n runtimeOrigin: string;\n version: AgentIndexVersion;\n visitorSessionId: string;\n fetchImplementation?: typeof fetch;\n now?: () => number;\n};\n\nconst MAX_REFRESH_SKEW_MS = 30_000;\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction parseBootstrapResponse(\n value: unknown,\n indexId: string,\n now: number\n): RuntimeCapability {\n if (\n !isRecord(value) ||\n value.apiVersion !== \"webless.ai/agent-runtime-bootstrap/v1\" ||\n typeof value.accessToken !== \"string\" ||\n !value.accessToken ||\n typeof value.expiresAt !== \"string\" ||\n !isRecord(value.identity) ||\n value.identity.indexId !== indexId ||\n typeof value.identity.revision !== \"string\" ||\n !value.identity.revision ||\n typeof value.identity.tenantId !== \"string\" ||\n !value.identity.tenantId ||\n typeof value.origin !== \"string\" ||\n !value.origin ||\n value.tokenType !== \"Bearer\" ||\n typeof value.visitorSubject !== \"string\" ||\n !value.visitorSubject\n ) {\n throw new Error(\"Agent Runtime returned an invalid access response.\");\n }\n\n const expiresAt = Date.parse(value.expiresAt);\n if (!Number.isFinite(expiresAt) || expiresAt <= now) {\n throw new Error(\"Agent Runtime returned an expired access response.\");\n }\n\n const refreshSkew = Math.min(\n MAX_REFRESH_SKEW_MS,\n Math.floor((expiresAt - now) / 10)\n );\n return {\n accessToken: value.accessToken,\n refreshAt: expiresAt - refreshSkew,\n };\n}\n\nasync function readBootstrapError(response: Response): Promise<string> {\n const fallback = `Agent Runtime is unavailable (${response.status}).`;\n try {\n const value: unknown = await response.json();\n return isRecord(value) && typeof value.error === \"string\" && value.error\n ? value.error\n : fallback;\n } catch {\n return fallback;\n }\n}\n\nexport function createAgentRuntimeCapability(\n options: AgentRuntimeCapabilityOptions\n) {\n const fetchImplementation = options.fetchImplementation ?? fetch;\n const now = options.now ?? Date.now;\n let capability: RuntimeCapability | undefined;\n let generation = 0;\n let pendingBootstrap: Promise<RuntimeCapability> | undefined;\n\n const bootstrap = async (): Promise<RuntimeCapability> => {\n let previewGrant: string | undefined;\n const previewBuildId = options.previewBuildId?.trim();\n if (options.version === \"unpublished\") {\n previewGrant = previewBuildId\n ? undefined\n : (await options.getUnpublishedPreviewGrant?.())?.trim();\n if (!previewGrant && !previewBuildId) {\n throw new Error(\n \"Unpublished preview authorization is required to use the Agent Runtime preview.\"\n );\n }\n }\n\n const response = await fetchImplementation(\n `${options.runtimeOrigin}/webless/v1/bootstrap`,\n {\n body: JSON.stringify({\n clientSessionId: options.visitorSessionId,\n indexId: options.indexId,\n ...(previewBuildId ? { previewBuildId } : {}),\n ...(previewGrant ? { previewGrant } : {}),\n version: options.version,\n }),\n headers: { \"content-type\": \"application/json\" },\n method: \"POST\",\n }\n );\n if (!response.ok) {\n throw new Error(await readBootstrapError(response));\n }\n\n let value: unknown;\n try {\n value = await response.json();\n } catch {\n throw new Error(\"Agent Runtime returned an invalid access response.\");\n }\n return parseBootstrapResponse(value, options.indexId, now());\n };\n\n const getAccessToken = async (): Promise<string> => {\n if (capability && capability.refreshAt > now()) {\n return capability.accessToken;\n }\n\n const requestedGeneration = generation;\n if (!pendingBootstrap) {\n const trackedBootstrap = bootstrap().finally(() => {\n if (pendingBootstrap === trackedBootstrap) {\n pendingBootstrap = undefined;\n }\n });\n pendingBootstrap = trackedBootstrap;\n }\n\n const nextCapability = await pendingBootstrap;\n if (requestedGeneration !== generation) {\n return getAccessToken();\n }\n\n capability = nextCapability;\n return capability.accessToken;\n };\n\n return {\n getAccessToken,\n invalidate: () => {\n capability = undefined;\n generation += 1;\n pendingBootstrap = undefined;\n },\n };\n}\n\nexport type AgentRuntimeCapability = ReturnType<\n typeof createAgentRuntimeCapability\n>;\n\nexport async function withCapabilityRefresh<T>(\n capability: AgentRuntimeCapability,\n request: () => Promise<T>\n): Promise<T> {\n try {\n return await request();\n } catch (error) {\n if (!(error instanceof ClientError) || error.status !== 401) {\n throw error;\n }\n capability.invalidate();\n return await request();\n }\n}\n","import type { AgentIndexVersion, AgentRuntimeConfig } from \"./types\";\n\nexport const DEFAULT_RUNTIME_ORIGIN = \"https://runtime.staging.webless.ai\";\n\nconst trimTrailingSlash = (value: string) => value.replace(/\\/+$/, \"\");\n\nexport function buildEveHost(\n origin: string,\n indexId: string,\n version: AgentIndexVersion = \"published\",\n): string {\n const base = trimTrailingSlash(origin);\n const searchParams = new URLSearchParams({ indexId: indexId.trim() });\n if (version === \"unpublished\") {\n searchParams.set(\"version\", version);\n }\n return `${base}?${searchParams.toString()}`;\n}\n\nexport function resolveAgentRuntimeConfig(input: {\n indexId: string;\n runtimeOrigin?: string;\n version?: AgentIndexVersion;\n}): AgentRuntimeConfig {\n const origin = trimTrailingSlash(input.runtimeOrigin?.trim() || DEFAULT_RUNTIME_ORIGIN);\n const resolvedIndexId = input.indexId.trim();\n const version = input.version ?? \"published\";\n\n return {\n origin,\n indexId: resolvedIndexId,\n version,\n host: resolvedIndexId ? buildEveHost(origin, resolvedIndexId, version) : origin,\n };\n}\n\nexport function agentHealthUrl(runtimeOrigin?: string): string {\n const origin = trimTrailingSlash(runtimeOrigin?.trim() || DEFAULT_RUNTIME_ORIGIN);\n return `${origin}/eve/v1/health`;\n}\n","import type { AgentIndexVersion, PersistedAgentSession } from \"./types\";\n\nconst DEFAULT_STORAGE_KEY_PREFIX = \"webless:agent\";\n\nexport type SessionStoreOptions = {\n storageKeyPrefix?: string;\n};\n\nfunction normalizeRuntimeOrigin(runtimeOrigin?: string) {\n const trimmed = runtimeOrigin?.trim();\n if (!trimmed) return \"_\";\n return trimmed.replace(/\\/+$/, \"\");\n}\n\nexport function buildAgentStorageKeyPrefix(input: {\n customerId?: string;\n indexId: string;\n runtimeOrigin?: string;\n version?: AgentIndexVersion;\n}) {\n const customerId = input.customerId?.trim() || \"_\";\n const indexId = input.indexId.trim();\n if (!indexId) {\n throw new Error(\"indexId is required to build agent storage keys.\");\n }\n\n const versionSuffix = input.version === \"unpublished\" ? \":unpublished\" : \"\";\n return `${DEFAULT_STORAGE_KEY_PREFIX}:${customerId}:${indexId}${versionSuffix}:${normalizeRuntimeOrigin(input.runtimeOrigin)}`;\n}\n\nfunction createSessionId(): string {\n if (typeof crypto !== \"undefined\" && typeof crypto.randomUUID === \"function\") {\n return crypto.randomUUID();\n }\n return `sess_${Math.random().toString(36).slice(2)}${Date.now().toString(36)}`;\n}\n\nfunction resolvePrefix(options?: SessionStoreOptions) {\n return options?.storageKeyPrefix?.trim() || DEFAULT_STORAGE_KEY_PREFIX;\n}\n\nexport function getOrCreateVisitorSessionId(options?: SessionStoreOptions): string {\n const prefix = resolvePrefix(options);\n const visitorKey = `${prefix}:visitorSessionId`;\n\n if (typeof sessionStorage === \"undefined\") {\n return createSessionId();\n }\n\n const existing = sessionStorage.getItem(visitorKey)?.trim();\n if (existing) return existing;\n\n const next = createSessionId();\n sessionStorage.setItem(visitorKey, next);\n return next;\n}\n\nexport function clearVisitorSessionId(options?: SessionStoreOptions) {\n if (typeof sessionStorage === \"undefined\") return;\n\n const prefix = resolvePrefix(options);\n sessionStorage.removeItem(`${prefix}:visitorSessionId`);\n}\n\nfunction runtimeSessionIdKey(visitorSessionId: string, prefix: string) {\n return `${prefix}:eve:${visitorSessionId}:sessionId`;\n}\n\nfunction runtimeStreamIndexKey(visitorSessionId: string, prefix: string) {\n return `${prefix}:eve:${visitorSessionId}:streamIndex`;\n}\n\nexport function loadPersistedAgentSession(\n visitorSessionId: string,\n options?: SessionStoreOptions,\n): PersistedAgentSession | null {\n if (typeof sessionStorage === \"undefined\" || !visitorSessionId.trim()) return null;\n\n const prefix = resolvePrefix(options);\n const sessionId = sessionStorage.getItem(runtimeSessionIdKey(visitorSessionId, prefix))?.trim();\n if (!sessionId) return null;\n\n const rawIndex = sessionStorage.getItem(runtimeStreamIndexKey(visitorSessionId, prefix));\n const streamIndex = rawIndex ? Number.parseInt(rawIndex, 10) : 0;\n\n return {\n sessionId,\n streamIndex: Number.isFinite(streamIndex) && streamIndex >= 0 ? streamIndex : 0,\n };\n}\n\nexport function savePersistedAgentSession(\n visitorSessionId: string,\n sessionId: string,\n streamIndex: number,\n options?: SessionStoreOptions,\n) {\n if (typeof sessionStorage === \"undefined\" || !visitorSessionId.trim() || !sessionId.trim()) {\n return;\n }\n\n const prefix = resolvePrefix(options);\n sessionStorage.setItem(runtimeSessionIdKey(visitorSessionId, prefix), sessionId);\n sessionStorage.setItem(\n runtimeStreamIndexKey(visitorSessionId, prefix),\n String(Math.max(0, streamIndex)),\n );\n}\n\nexport function clearPersistedAgentSession(\n visitorSessionId: string,\n options?: SessionStoreOptions,\n) {\n if (typeof sessionStorage === \"undefined\" || !visitorSessionId.trim()) return;\n const prefix = resolvePrefix(options);\n sessionStorage.removeItem(runtimeSessionIdKey(visitorSessionId, prefix));\n sessionStorage.removeItem(runtimeStreamIndexKey(visitorSessionId, prefix));\n}\n","import { ClientError } from \"eve/client\";\n\nconst TRANSIENT_AGENT_ERROR_MESSAGE =\n \"I couldn’t finish that answer. Please try again.\";\nconst PREVIEW_AUTHORIZATION_ERROR_MESSAGE =\n \"This preview could not be authorized. Open the latest preview from Webless.\";\n\nfunction isTransientRuntimeMessage(message: string) {\n const normalized = message.trim().toLowerCase();\n return (\n normalized.includes(\"empty response from runtime\") ||\n normalized.includes(\"failed to fetch\") ||\n normalized.includes(\"networkerror\") ||\n normalized.includes(\"load failed\")\n );\n}\n\nfunction isPreviewAuthorizationMessage(message: string) {\n const normalized = message.trim().toLowerCase();\n return (\n normalized.includes(\"unpublished preview authorization\") ||\n normalized.includes(\"unpublished preview grant\") ||\n normalized.includes(\"agent studio preview grant\") ||\n normalized.includes(\"preview authorization\")\n );\n}\n\nexport function formatAgentError(error: unknown): string {\n if (error instanceof ClientError) {\n if (error.status === 401 && error.code === \"index_required\") {\n return \"Missing indexId — pass a published index id to createAgentClient().\";\n }\n if (error.status === 403 && error.code === \"agent_unavailable\") {\n return \"Agent unavailable for this index (disabled or unpublished).\";\n }\n if (error.status === 409 && error.code === \"session_not_active\") {\n return \"Session expired — send a new message to start again.\";\n }\n if (error.message && isPreviewAuthorizationMessage(error.message)) {\n return PREVIEW_AUTHORIZATION_ERROR_MESSAGE;\n }\n if (\n error.status >= 500 ||\n (error.message && isTransientRuntimeMessage(error.message))\n ) {\n return TRANSIENT_AGENT_ERROR_MESSAGE;\n }\n return error.message || \"This assistant is unavailable right now.\";\n }\n if (error instanceof DOMException && error.name === \"AbortError\") {\n return \"\";\n }\n if (error instanceof Error) {\n if (isPreviewAuthorizationMessage(error.message)) {\n return PREVIEW_AUTHORIZATION_ERROR_MESSAGE;\n }\n return isTransientRuntimeMessage(error.message)\n ? TRANSIENT_AGENT_ERROR_MESSAGE\n : error.message;\n }\n return TRANSIENT_AGENT_ERROR_MESSAGE;\n}\n","import { formatAgentError } from \"./errors\";\nimport { agentHealthUrl } from \"./config\";\nimport type { AgentHealthResult } from \"./types\";\n\nexport async function pingAgentHealth(\n runtimeOrigin?: string,\n fetchImpl: typeof fetch = fetch,\n): Promise<AgentHealthResult> {\n const healthUrl = agentHealthUrl(runtimeOrigin);\n\n try {\n const response = await fetchImpl(healthUrl, {\n headers: { Accept: \"application/json\" },\n cache: \"no-store\",\n });\n if (!response.ok) {\n return { ok: false, detail: `Health check failed (${response.status})` };\n }\n const payload = (await response.json()) as { status?: string; ok?: boolean };\n if (payload.ok === true) {\n return { ok: true, detail: payload.status ?? \"ready\" };\n }\n return { ok: false, detail: \"Runtime health response was not ok\" };\n } catch (error) {\n return { ok: false, detail: formatAgentError(error) || \"Health check failed\" };\n }\n}\n"],"mappings":"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","names":["import_client","current","import_client"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/runtime/client.ts","../src/runtime/capability.ts","../src/runtime/config.ts","../src/runtime/session-store.ts","../src/runtime/errors.ts","../src/runtime/health.ts"],"sourcesContent":["export { createAgentClient } from \"./runtime/client\";\nexport {\n DEFAULT_RUNTIME_ORIGIN,\n agentHealthUrl,\n buildEveHost,\n resolveAgentRuntimeConfig,\n} from \"./runtime/config\";\nexport { formatAgentError } from \"./runtime/errors\";\nexport { pingAgentHealth } from \"./runtime/health\";\nexport {\n buildAgentStorageKeyPrefix,\n clearPersistedAgentSession,\n clearVisitorSessionId,\n getOrCreateVisitorSessionId,\n loadPersistedAgentSession,\n savePersistedAgentSession,\n} from \"./runtime/session-store\";\nexport type { SessionStoreOptions } from \"./runtime/session-store\";\nexport type {\n AgentClient,\n AgentClientOptions,\n AgentHealthResult,\n AgentIndexVersion,\n AgentRuntimeConfig,\n AgentResumeTurnOptions,\n AgentSendTurnOptions,\n AgentStreamHandlers,\n AgentWorkItem,\n PersistedAgentSession,\n} from \"./runtime/types\";\n","import {\n Client,\n ClientError,\n type ClientSession,\n type MessageResponse,\n type MessageStreamEvent,\n} from \"eve/client\";\nimport {\n createAgentRuntimeCapability,\n type AgentRuntimeCapability,\n withCapabilityRefresh,\n} from \"./capability\";\nimport { resolveAgentRuntimeConfig } from \"./config\";\nimport {\n buildAgentStorageKeyPrefix,\n clearPersistedAgentSession,\n getOrCreateVisitorSessionId,\n loadPersistedAgentSession,\n savePersistedAgentSession,\n type SessionStoreOptions,\n} from \"./session-store\";\nimport type {\n AgentClient,\n AgentClientOptions,\n AgentIndexVersion,\n AgentResumeTurnOptions,\n AgentSendTurnOptions,\n AgentStreamHandlers,\n AgentWorkItem,\n} from \"./types\";\n\nfunction isTurnBoundary(event: MessageStreamEvent) {\n return (\n event.type === \"session.waiting\" ||\n event.type === \"session.completed\" ||\n event.type === \"session.failed\"\n );\n}\n\nfunction applyMessageEvent(\n event: MessageStreamEvent,\n rendered: string,\n handlers: AgentStreamHandlers,\n workItems: Map<string, AgentWorkItem>\n) {\n applyWorkEvent(event, handlers, workItems);\n\n if (event.type === \"session.failed\") {\n throw new Error(event.data.message || event.data.code);\n }\n\n if (event.type === \"message.completed\") {\n handlers.onComplete?.();\n }\n\n if (event.type !== \"message.appended\") return rendered;\n\n const { messageDelta, messageSoFar } = event.data;\n let delta = messageDelta;\n let next = rendered;\n if (messageSoFar.startsWith(rendered)) {\n delta = messageSoFar.slice(rendered.length);\n next = messageSoFar;\n } else if (messageDelta) {\n next += messageDelta;\n }\n if (delta) handlers.onDelta(delta);\n return next;\n}\n\nfunction latestTurnEvents(events: readonly MessageStreamEvent[]) {\n let startIndex = -1;\n for (let index = events.length - 1; index >= 0; index -= 1) {\n if (events[index]?.type === \"message.received\") {\n startIndex = index;\n break;\n }\n }\n return startIndex >= 0 ? events.slice(startIndex) : [];\n}\n\nfunction renderTurn(events: readonly MessageStreamEvent[]) {\n let rendered = \"\";\n for (const event of events) {\n if (event.type !== \"message.appended\") continue;\n const { messageDelta, messageSoFar } = event.data;\n if (messageSoFar.startsWith(rendered)) {\n rendered = messageSoFar;\n } else if (messageDelta) {\n rendered += messageDelta;\n }\n }\n return rendered;\n}\n\nfunction emitWorkItem(\n item: AgentWorkItem,\n handlers: AgentStreamHandlers,\n workItems: Map<string, AgentWorkItem>\n) {\n workItems.set(item.id, item);\n handlers.onWork?.(item);\n handlers.onStep?.(item.label, item.detail);\n}\n\nfunction completePlanning(\n handlers: AgentStreamHandlers,\n workItems: Map<string, AgentWorkItem>,\n nextItems: readonly AgentWorkItem[] = []\n) {\n const planning = workItems.get(\"planning\");\n if (!planning || planning.state !== \"active\") return;\n const specialists = nextItems.filter((item) => item.kind === \"specialist\");\n const detail =\n specialists.length === 1\n ? `Delegating to ${specialists[0]?.label}`\n : specialists.length > 1\n ? `Delegating to ${specialists.length} specialists`\n : nextItems.some((item) => item.kind === \"search\")\n ? \"Using built-in Search & Discovery\"\n : \"Picked the best way to help\";\n emitWorkItem(\n {\n ...planning,\n detail,\n state: \"completed\",\n },\n handlers,\n workItems\n );\n}\n\nfunction specialistNameFromInput(input: Readonly<Record<string, unknown>>) {\n const message = input.message;\n if (typeof message !== \"string\") return undefined;\n const match = /^Webless-Agent-Name:\\s*(.+)$/imu.exec(message);\n return match?.[1]?.trim() || undefined;\n}\n\nfunction requestedWorkItem(\n action: Extract<\n Extract<\n MessageStreamEvent,\n { type: \"actions.requested\" }\n >[\"data\"][\"actions\"][number],\n { callId: string }\n >\n): AgentWorkItem | null {\n if (action.kind === \"tool-call\" && action.toolName === \"search_discovery\") {\n return {\n id: action.callId,\n kind: \"search\",\n label: \"Search & Discovery\",\n detail: \"Searching this site\",\n state: \"active\",\n };\n }\n\n if (\n action.kind === \"subagent-call\" ||\n action.kind === \"remote-agent-call\" ||\n (action.kind === \"tool-call\" && action.toolName === \"agent\")\n ) {\n const name = specialistNameFromInput(action.input) ?? \"Specialist\";\n return {\n id: action.callId,\n kind: \"specialist\",\n label: name,\n detail: \"Reviewing your question\",\n state: \"active\",\n };\n }\n\n return null;\n}\n\nexport function applyWorkEvent(\n event: MessageStreamEvent,\n handlers: AgentStreamHandlers,\n workItems: Map<string, AgentWorkItem>\n) {\n if (event.type === \"step.started\" && workItems.size === 0) {\n emitWorkItem(\n {\n id: \"planning\",\n kind: \"planning\",\n label: \"Understanding your question\",\n state: \"active\",\n },\n handlers,\n workItems\n );\n return;\n }\n\n if (event.type === \"actions.requested\") {\n const nextItems = event.data.actions.flatMap((action) => {\n const item = requestedWorkItem(action);\n return item ? [item] : [];\n });\n completePlanning(handlers, workItems, nextItems);\n for (const item of nextItems) emitWorkItem(item, handlers, workItems);\n return;\n }\n\n if (event.type === \"subagent.called\") {\n completePlanning(handlers, workItems);\n const current = workItems.get(event.data.callId);\n if (!current) {\n emitWorkItem(\n {\n id: event.data.callId,\n kind: \"specialist\",\n label: event.data.name || \"Specialist\",\n detail: \"Reviewing your question\",\n state: \"active\",\n },\n handlers,\n workItems\n );\n }\n return;\n }\n\n if (event.type === \"subagent.completed\") {\n const current = workItems.get(event.data.callId);\n if (!current) return;\n emitWorkItem(\n {\n ...current,\n detail: \"Guidance received\",\n state: \"completed\",\n },\n handlers,\n workItems\n );\n return;\n }\n\n if (event.type !== \"action.result\") return;\n const { result, status } = event.data;\n const current = workItems.get(result.callId);\n if (!current) return;\n const failed = status !== \"completed\" || result.isError === true;\n emitWorkItem(\n {\n ...current,\n detail: failed\n ? \"Couldn’t complete; continuing with available information\"\n : current.kind === \"search\"\n ? \"Found relevant site content\"\n : \"Guidance received\",\n state: failed ? \"error\" : \"completed\",\n },\n handlers,\n workItems\n );\n}\n\nclass AgentSession {\n private client: Client | undefined;\n private clientHost: string | undefined;\n private session: ClientSession | undefined;\n private activeResponse: MessageResponse | undefined;\n private readonly capability: AgentRuntimeCapability;\n\n constructor(\n private readonly indexId: string,\n private readonly version: AgentIndexVersion,\n private readonly runtimeOrigin: string,\n private readonly visitorSessionId: string,\n private readonly storeOptions: SessionStoreOptions,\n previewBuildId?: string,\n getUnpublishedPreviewGrant?: () => Promise<string>\n ) {\n this.capability = createAgentRuntimeCapability({\n getUnpublishedPreviewGrant,\n indexId,\n previewBuildId,\n runtimeOrigin,\n version,\n visitorSessionId,\n });\n }\n\n getActiveSessionId(): string | undefined {\n return (\n this.session?.state.sessionId ??\n loadPersistedAgentSession(this.visitorSessionId, this.storeOptions)\n ?.sessionId\n );\n }\n\n reset() {\n if (this.activeResponse) {\n void this.activeResponse.cancel().catch(() => {});\n } else {\n void this.session?.cancel().catch(() => {});\n }\n this.activeResponse = undefined;\n this.session = undefined;\n this.capability.invalidate();\n clearPersistedAgentSession(this.visitorSessionId, this.storeOptions);\n }\n\n private persistSessionCursor(session: ClientSession) {\n savePersistedAgentSession(\n this.visitorSessionId,\n session.state.sessionId,\n session.state.streamIndex,\n this.storeOptions\n );\n }\n\n private ensureClient(): Client {\n const config = resolveAgentRuntimeConfig({\n indexId: this.indexId,\n version: this.version,\n runtimeOrigin: this.runtimeOrigin,\n });\n if (!config.indexId) {\n throw new Error(\"indexId is required.\");\n }\n\n if (this.client && this.clientHost === config.host) {\n return this.client;\n }\n\n this.activeResponse = undefined;\n this.session = undefined;\n this.client = new Client({\n auth: { bearer: () => this.capability.getAccessToken() },\n host: config.host,\n redirect: \"error\",\n });\n this.clientHost = config.host;\n return this.client;\n }\n\n private attachPersistedSession(client: Client): ClientSession | undefined {\n const persisted = loadPersistedAgentSession(\n this.visitorSessionId,\n this.storeOptions\n );\n if (!persisted?.sessionId) return undefined;\n\n return client.sessions.attach(persisted.sessionId, {\n streamIndex: persisted.streamIndex,\n });\n }\n\n async sendTurn(\n message: string,\n signal: AbortSignal,\n handlers: AgentStreamHandlers\n ): Promise<string> {\n const client = this.ensureClient();\n let response: MessageResponse | undefined;\n let session = this.session ?? this.attachPersistedSession(client);\n\n if (session) {\n this.session = session;\n try {\n const activeSession = session;\n response = await withCapabilityRefresh(this.capability, () =>\n activeSession.send(message, { signal })\n );\n } catch (error) {\n if (\n error instanceof ClientError &&\n error.status === 409 &&\n error.code === \"session_not_active\"\n ) {\n clearPersistedAgentSession(this.visitorSessionId, this.storeOptions);\n this.session = undefined;\n session = undefined;\n } else {\n throw error;\n }\n }\n }\n\n if (!response) {\n const created = await withCapabilityRefresh(this.capability, () =>\n client.sessions.create({ message, signal })\n );\n response = created.response;\n session = created.session;\n this.session = session;\n this.persistSessionCursor(session);\n }\n\n this.activeResponse = response;\n let streamIndex = session?.state.streamIndex ?? 0;\n let rendered = \"\";\n const workItems = new Map<string, AgentWorkItem>();\n\n try {\n for await (const event of response) {\n if (signal.aborted) break;\n rendered = applyMessageEvent(event, rendered, handlers, workItems);\n streamIndex += 1;\n if (session) {\n savePersistedAgentSession(\n this.visitorSessionId,\n session.state.sessionId,\n streamIndex,\n this.storeOptions\n );\n }\n }\n } finally {\n this.activeResponse = undefined;\n if (session) {\n this.persistSessionCursor(session);\n }\n }\n\n if (!rendered.trim() && !signal.aborted) {\n throw new Error(\"Empty response from runtime\");\n }\n\n return rendered.trim();\n }\n\n async resumeTurn(\n message: string,\n signal: AbortSignal,\n handlers: AgentStreamHandlers,\n initialText = \"\"\n ): Promise<string | null> {\n const persisted = loadPersistedAgentSession(\n this.visitorSessionId,\n this.storeOptions\n );\n if (!persisted) return null;\n\n const client = this.ensureClient();\n const attached = client.sessions.attach(persisted.sessionId, {\n streamIndex: persisted.streamIndex,\n });\n const snapshot = await withCapabilityRefresh(this.capability, () =>\n attached.snapshot({ signal })\n );\n const turnEvents = latestTurnEvents(snapshot.events);\n const received = turnEvents[0];\n if (\n received?.type !== \"message.received\" ||\n received.data.message !== message\n ) {\n return null;\n }\n let rendered = renderTurn(turnEvents);\n const workItems = new Map<string, AgentWorkItem>();\n for (const event of turnEvents) {\n applyWorkEvent(event, handlers, workItems);\n }\n\n if (rendered.startsWith(initialText)) {\n const missedText = rendered.slice(initialText.length);\n if (missedText) handlers.onDelta(missedText);\n } else if (initialText.startsWith(rendered)) {\n rendered = initialText;\n } else if (!initialText.startsWith(rendered)) {\n rendered = initialText + rendered;\n }\n\n let session = client.sessions.attach(snapshot.session.sessionId, {\n streamIndex: snapshot.session.streamIndex,\n });\n this.session = session;\n this.persistSessionCursor(session);\n\n let snapshotBoundary: MessageStreamEvent | undefined;\n for (let index = turnEvents.length - 1; index >= 0; index -= 1) {\n const event = turnEvents[index];\n if (event && isTurnBoundary(event)) {\n snapshotBoundary = event;\n break;\n }\n }\n if (snapshotBoundary) {\n if (snapshotBoundary.type === \"session.failed\") {\n throw new Error(\n snapshotBoundary.data.message || snapshotBoundary.data.code\n );\n }\n handlers.onComplete?.();\n if (!rendered.trim()) throw new Error(\"Empty response from runtime\");\n return rendered.trim();\n }\n\n let streamIndex = snapshot.session.streamIndex;\n for await (const event of session.stream({ signal })) {\n if (signal.aborted) break;\n rendered = applyMessageEvent(event, rendered, handlers, workItems);\n streamIndex += 1;\n savePersistedAgentSession(\n this.visitorSessionId,\n session.state.sessionId,\n streamIndex,\n this.storeOptions\n );\n if (isTurnBoundary(event)) break;\n }\n\n session = client.sessions.attach(session.state.sessionId, { streamIndex });\n this.session = session;\n this.persistSessionCursor(session);\n\n if (!rendered.trim() && !signal.aborted) {\n throw new Error(\"Empty response from runtime\");\n }\n return rendered.trim();\n }\n\n cancelActive() {\n if (this.activeResponse) {\n this.activeResponse.cancel().catch(() => {});\n } else {\n this.session?.cancel().catch(() => {});\n }\n }\n}\n\nexport function createAgentClient(options: AgentClientOptions): AgentClient {\n const indexId = options.indexId.trim();\n if (!indexId) {\n throw new Error(\"indexId is required.\");\n }\n\n const version = options.version ?? \"published\";\n const runtimeOrigin = resolveAgentRuntimeConfig({\n indexId,\n runtimeOrigin: options.runtimeOrigin,\n version,\n }).origin;\n const storeOptions: SessionStoreOptions = {\n storageKeyPrefix:\n options.storageKeyPrefix?.trim() ||\n buildAgentStorageKeyPrefix({\n customerId: options.customerId,\n indexId,\n version,\n runtimeOrigin,\n }),\n };\n const visitorSessionId =\n options.visitorSessionId?.trim() ||\n getOrCreateVisitorSessionId(storeOptions);\n\n const session = new AgentSession(\n indexId,\n version,\n runtimeOrigin,\n visitorSessionId,\n storeOptions,\n options.previewBuildId,\n options.getUnpublishedPreviewGrant\n );\n\n return {\n indexId,\n version,\n runtimeOrigin,\n visitorSessionId,\n sendTurn: (message, sendOptions: AgentSendTurnOptions) =>\n session.sendTurn(\n message,\n sendOptions.signal ?? new AbortController().signal,\n sendOptions.handlers\n ),\n resumeTurn: (resumeOptions: AgentResumeTurnOptions) =>\n session.resumeTurn(\n resumeOptions.message,\n resumeOptions.signal ?? new AbortController().signal,\n resumeOptions.handlers,\n resumeOptions.initialText\n ),\n reset: () => session.reset(),\n cancelActive: () => session.cancelActive(),\n getActiveSessionId: () => session.getActiveSessionId(),\n };\n}\n","import { ClientError } from \"eve/client\";\nimport type { AgentIndexVersion } from \"./types\";\n\ntype RuntimeCapability = {\n accessToken: string;\n refreshAt: number;\n};\n\ntype AgentRuntimeCapabilityOptions = {\n getUnpublishedPreviewGrant?: () => Promise<string>;\n indexId: string;\n previewBuildId?: string;\n runtimeOrigin: string;\n version: AgentIndexVersion;\n visitorSessionId: string;\n fetchImplementation?: typeof fetch;\n now?: () => number;\n};\n\nconst MAX_REFRESH_SKEW_MS = 30_000;\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction parseBootstrapResponse(\n value: unknown,\n indexId: string,\n now: number\n): RuntimeCapability {\n if (\n !isRecord(value) ||\n value.apiVersion !== \"webless.ai/agent-runtime-bootstrap/v1\" ||\n typeof value.accessToken !== \"string\" ||\n !value.accessToken ||\n typeof value.expiresAt !== \"string\" ||\n !isRecord(value.identity) ||\n value.identity.indexId !== indexId ||\n typeof value.identity.revision !== \"string\" ||\n !value.identity.revision ||\n typeof value.identity.tenantId !== \"string\" ||\n !value.identity.tenantId ||\n typeof value.origin !== \"string\" ||\n !value.origin ||\n value.tokenType !== \"Bearer\" ||\n typeof value.visitorSubject !== \"string\" ||\n !value.visitorSubject\n ) {\n throw new Error(\"Agent Runtime returned an invalid access response.\");\n }\n\n const expiresAt = Date.parse(value.expiresAt);\n if (!Number.isFinite(expiresAt) || expiresAt <= now) {\n throw new Error(\"Agent Runtime returned an expired access response.\");\n }\n\n const refreshSkew = Math.min(\n MAX_REFRESH_SKEW_MS,\n Math.floor((expiresAt - now) / 10)\n );\n return {\n accessToken: value.accessToken,\n refreshAt: expiresAt - refreshSkew,\n };\n}\n\nasync function readBootstrapError(response: Response): Promise<string> {\n const fallback = `Agent Runtime is unavailable (${response.status}).`;\n try {\n const value: unknown = await response.json();\n return isRecord(value) && typeof value.error === \"string\" && value.error\n ? value.error\n : fallback;\n } catch {\n return fallback;\n }\n}\n\nexport function createAgentRuntimeCapability(\n options: AgentRuntimeCapabilityOptions\n) {\n const fetchImplementation = options.fetchImplementation ?? fetch;\n const now = options.now ?? Date.now;\n let capability: RuntimeCapability | undefined;\n let generation = 0;\n let pendingBootstrap: Promise<RuntimeCapability> | undefined;\n\n const bootstrap = async (): Promise<RuntimeCapability> => {\n let previewGrant: string | undefined;\n const previewBuildId = options.previewBuildId?.trim();\n if (options.version === \"unpublished\") {\n previewGrant = previewBuildId\n ? undefined\n : (await options.getUnpublishedPreviewGrant?.())?.trim();\n if (!previewGrant && !previewBuildId) {\n throw new Error(\n \"Unpublished preview authorization is required to use the Agent Runtime preview.\"\n );\n }\n }\n\n const response = await fetchImplementation(\n `${options.runtimeOrigin}/webless/v1/bootstrap`,\n {\n body: JSON.stringify({\n clientSessionId: options.visitorSessionId,\n indexId: options.indexId,\n ...(previewBuildId ? { previewBuildId } : {}),\n ...(previewGrant ? { previewGrant } : {}),\n version: options.version,\n }),\n headers: { \"content-type\": \"application/json\" },\n method: \"POST\",\n }\n );\n if (!response.ok) {\n throw new Error(await readBootstrapError(response));\n }\n\n let value: unknown;\n try {\n value = await response.json();\n } catch {\n throw new Error(\"Agent Runtime returned an invalid access response.\");\n }\n return parseBootstrapResponse(value, options.indexId, now());\n };\n\n const getAccessToken = async (): Promise<string> => {\n if (capability && capability.refreshAt > now()) {\n return capability.accessToken;\n }\n\n const requestedGeneration = generation;\n if (!pendingBootstrap) {\n const trackedBootstrap = bootstrap().finally(() => {\n if (pendingBootstrap === trackedBootstrap) {\n pendingBootstrap = undefined;\n }\n });\n pendingBootstrap = trackedBootstrap;\n }\n\n const nextCapability = await pendingBootstrap;\n if (requestedGeneration !== generation) {\n return getAccessToken();\n }\n\n capability = nextCapability;\n return capability.accessToken;\n };\n\n return {\n getAccessToken,\n invalidate: () => {\n capability = undefined;\n generation += 1;\n pendingBootstrap = undefined;\n },\n };\n}\n\nexport type AgentRuntimeCapability = ReturnType<\n typeof createAgentRuntimeCapability\n>;\n\nexport async function withCapabilityRefresh<T>(\n capability: AgentRuntimeCapability,\n request: () => Promise<T>\n): Promise<T> {\n try {\n return await request();\n } catch (error) {\n if (!(error instanceof ClientError) || error.status !== 401) {\n throw error;\n }\n capability.invalidate();\n return await request();\n }\n}\n","import type { AgentIndexVersion, AgentRuntimeConfig } from \"./types\";\n\nexport const DEFAULT_RUNTIME_ORIGIN = \"https://runtime.staging.webless.ai\";\n\nconst trimTrailingSlash = (value: string) => value.replace(/\\/+$/, \"\");\n\nexport function buildEveHost(\n origin: string,\n indexId: string,\n version: AgentIndexVersion = \"published\",\n): string {\n const base = trimTrailingSlash(origin);\n const searchParams = new URLSearchParams({ indexId: indexId.trim() });\n if (version === \"unpublished\") {\n searchParams.set(\"version\", version);\n }\n return `${base}?${searchParams.toString()}`;\n}\n\nexport function resolveAgentRuntimeConfig(input: {\n indexId: string;\n runtimeOrigin?: string;\n version?: AgentIndexVersion;\n}): AgentRuntimeConfig {\n const origin = trimTrailingSlash(input.runtimeOrigin?.trim() || DEFAULT_RUNTIME_ORIGIN);\n const resolvedIndexId = input.indexId.trim();\n const version = input.version ?? \"published\";\n\n return {\n origin,\n indexId: resolvedIndexId,\n version,\n host: resolvedIndexId ? buildEveHost(origin, resolvedIndexId, version) : origin,\n };\n}\n\nexport function agentHealthUrl(runtimeOrigin?: string): string {\n const origin = trimTrailingSlash(runtimeOrigin?.trim() || DEFAULT_RUNTIME_ORIGIN);\n return `${origin}/eve/v1/health`;\n}\n","import type { AgentIndexVersion, PersistedAgentSession } from \"./types\";\n\nconst DEFAULT_STORAGE_KEY_PREFIX = \"webless:agent\";\n\nexport type SessionStoreOptions = {\n storageKeyPrefix?: string;\n};\n\nfunction normalizeRuntimeOrigin(runtimeOrigin?: string) {\n const trimmed = runtimeOrigin?.trim();\n if (!trimmed) return \"_\";\n return trimmed.replace(/\\/+$/, \"\");\n}\n\nexport function buildAgentStorageKeyPrefix(input: {\n customerId?: string;\n indexId: string;\n runtimeOrigin?: string;\n version?: AgentIndexVersion;\n}) {\n const customerId = input.customerId?.trim() || \"_\";\n const indexId = input.indexId.trim();\n if (!indexId) {\n throw new Error(\"indexId is required to build agent storage keys.\");\n }\n\n const versionSuffix = input.version === \"unpublished\" ? \":unpublished\" : \"\";\n return `${DEFAULT_STORAGE_KEY_PREFIX}:${customerId}:${indexId}${versionSuffix}:${normalizeRuntimeOrigin(input.runtimeOrigin)}`;\n}\n\nfunction createSessionId(): string {\n if (typeof crypto !== \"undefined\" && typeof crypto.randomUUID === \"function\") {\n return crypto.randomUUID();\n }\n return `sess_${Math.random().toString(36).slice(2)}${Date.now().toString(36)}`;\n}\n\nfunction resolvePrefix(options?: SessionStoreOptions) {\n return options?.storageKeyPrefix?.trim() || DEFAULT_STORAGE_KEY_PREFIX;\n}\n\nexport function getOrCreateVisitorSessionId(options?: SessionStoreOptions): string {\n const prefix = resolvePrefix(options);\n const visitorKey = `${prefix}:visitorSessionId`;\n\n if (typeof sessionStorage === \"undefined\") {\n return createSessionId();\n }\n\n const existing = sessionStorage.getItem(visitorKey)?.trim();\n if (existing) return existing;\n\n const next = createSessionId();\n sessionStorage.setItem(visitorKey, next);\n return next;\n}\n\nexport function clearVisitorSessionId(options?: SessionStoreOptions) {\n if (typeof sessionStorage === \"undefined\") return;\n\n const prefix = resolvePrefix(options);\n sessionStorage.removeItem(`${prefix}:visitorSessionId`);\n}\n\nfunction runtimeSessionIdKey(visitorSessionId: string, prefix: string) {\n return `${prefix}:eve:${visitorSessionId}:sessionId`;\n}\n\nfunction runtimeStreamIndexKey(visitorSessionId: string, prefix: string) {\n return `${prefix}:eve:${visitorSessionId}:streamIndex`;\n}\n\nexport function loadPersistedAgentSession(\n visitorSessionId: string,\n options?: SessionStoreOptions,\n): PersistedAgentSession | null {\n if (typeof sessionStorage === \"undefined\" || !visitorSessionId.trim()) return null;\n\n const prefix = resolvePrefix(options);\n const sessionId = sessionStorage.getItem(runtimeSessionIdKey(visitorSessionId, prefix))?.trim();\n if (!sessionId) return null;\n\n const rawIndex = sessionStorage.getItem(runtimeStreamIndexKey(visitorSessionId, prefix));\n const streamIndex = rawIndex ? Number.parseInt(rawIndex, 10) : 0;\n\n return {\n sessionId,\n streamIndex: Number.isFinite(streamIndex) && streamIndex >= 0 ? streamIndex : 0,\n };\n}\n\nexport function savePersistedAgentSession(\n visitorSessionId: string,\n sessionId: string,\n streamIndex: number,\n options?: SessionStoreOptions,\n) {\n if (typeof sessionStorage === \"undefined\" || !visitorSessionId.trim() || !sessionId.trim()) {\n return;\n }\n\n const prefix = resolvePrefix(options);\n sessionStorage.setItem(runtimeSessionIdKey(visitorSessionId, prefix), sessionId);\n sessionStorage.setItem(\n runtimeStreamIndexKey(visitorSessionId, prefix),\n String(Math.max(0, streamIndex)),\n );\n}\n\nexport function clearPersistedAgentSession(\n visitorSessionId: string,\n options?: SessionStoreOptions,\n) {\n if (typeof sessionStorage === \"undefined\" || !visitorSessionId.trim()) return;\n const prefix = resolvePrefix(options);\n sessionStorage.removeItem(runtimeSessionIdKey(visitorSessionId, prefix));\n sessionStorage.removeItem(runtimeStreamIndexKey(visitorSessionId, prefix));\n}\n","import { ClientError } from \"eve/client\";\n\nconst TRANSIENT_AGENT_ERROR_MESSAGE =\n \"I couldn’t finish that answer. Please try again.\";\nconst PREVIEW_AUTHORIZATION_ERROR_MESSAGE =\n \"This preview could not be authorized. Open the latest preview from Webless.\";\n\nfunction isTransientRuntimeMessage(message: string) {\n const normalized = message.trim().toLowerCase();\n return (\n normalized.includes(\"empty response from runtime\") ||\n normalized.includes(\"failed to fetch\") ||\n normalized.includes(\"networkerror\") ||\n normalized.includes(\"load failed\")\n );\n}\n\nfunction isPreviewAuthorizationMessage(message: string) {\n const normalized = message.trim().toLowerCase();\n return (\n normalized.includes(\"unpublished preview authorization\") ||\n normalized.includes(\"unpublished preview grant\") ||\n normalized.includes(\"agent studio preview grant\") ||\n normalized.includes(\"preview authorization\")\n );\n}\n\nexport function formatAgentError(error: unknown): string {\n if (error instanceof ClientError) {\n if (error.status === 401 && error.code === \"index_required\") {\n return \"Missing indexId — pass a published index id to createAgentClient().\";\n }\n if (error.status === 403 && error.code === \"agent_unavailable\") {\n return \"Agent unavailable for this index (disabled or unpublished).\";\n }\n if (error.status === 409 && error.code === \"session_not_active\") {\n return \"Session expired — send a new message to start again.\";\n }\n if (error.message && isPreviewAuthorizationMessage(error.message)) {\n return PREVIEW_AUTHORIZATION_ERROR_MESSAGE;\n }\n if (\n error.status >= 500 ||\n (error.message && isTransientRuntimeMessage(error.message))\n ) {\n return TRANSIENT_AGENT_ERROR_MESSAGE;\n }\n return error.message || \"This assistant is unavailable right now.\";\n }\n if (error instanceof DOMException && error.name === \"AbortError\") {\n return \"\";\n }\n if (error instanceof Error) {\n if (isPreviewAuthorizationMessage(error.message)) {\n return PREVIEW_AUTHORIZATION_ERROR_MESSAGE;\n }\n return isTransientRuntimeMessage(error.message)\n ? TRANSIENT_AGENT_ERROR_MESSAGE\n : error.message;\n }\n return TRANSIENT_AGENT_ERROR_MESSAGE;\n}\n","import { formatAgentError } from \"./errors\";\nimport { agentHealthUrl } from \"./config\";\nimport type { AgentHealthResult } from \"./types\";\n\nexport async function pingAgentHealth(\n runtimeOrigin?: string,\n fetchImpl: typeof fetch = fetch,\n): Promise<AgentHealthResult> {\n const healthUrl = agentHealthUrl(runtimeOrigin);\n\n try {\n const response = await fetchImpl(healthUrl, {\n headers: { Accept: \"application/json\" },\n cache: \"no-store\",\n });\n if (!response.ok) {\n return { ok: false, detail: `Health check failed (${response.status})` };\n }\n const payload = (await response.json()) as { status?: string; ok?: boolean };\n if (payload.ok === true) {\n return { ok: true, detail: payload.status ?? \"ready\" };\n }\n return { ok: false, detail: \"Runtime health response was not ok\" };\n } catch (error) {\n return { ok: false, detail: formatAgentError(error) || \"Health check failed\" };\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,IAAAA,iBAMO;;;ACNP,oBAA4B;AAmB5B,IAAM,sBAAsB;AAE5B,SAAS,SAAS,OAAkD;AAClE,SAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK;AAC5E;AAEA,SAAS,uBACP,OACA,SACA,KACmB;AACnB,MACE,CAAC,SAAS,KAAK,KACf,MAAM,eAAe,2CACrB,OAAO,MAAM,gBAAgB,YAC7B,CAAC,MAAM,eACP,OAAO,MAAM,cAAc,YAC3B,CAAC,SAAS,MAAM,QAAQ,KACxB,MAAM,SAAS,YAAY,WAC3B,OAAO,MAAM,SAAS,aAAa,YACnC,CAAC,MAAM,SAAS,YAChB,OAAO,MAAM,SAAS,aAAa,YACnC,CAAC,MAAM,SAAS,YAChB,OAAO,MAAM,WAAW,YACxB,CAAC,MAAM,UACP,MAAM,cAAc,YACpB,OAAO,MAAM,mBAAmB,YAChC,CAAC,MAAM,gBACP;AACA,UAAM,IAAI,MAAM,oDAAoD;AAAA,EACtE;AAEA,QAAM,YAAY,KAAK,MAAM,MAAM,SAAS;AAC5C,MAAI,CAAC,OAAO,SAAS,SAAS,KAAK,aAAa,KAAK;AACnD,UAAM,IAAI,MAAM,oDAAoD;AAAA,EACtE;AAEA,QAAM,cAAc,KAAK;AAAA,IACvB;AAAA,IACA,KAAK,OAAO,YAAY,OAAO,EAAE;AAAA,EACnC;AACA,SAAO;AAAA,IACL,aAAa,MAAM;AAAA,IACnB,WAAW,YAAY;AAAA,EACzB;AACF;AAEA,eAAe,mBAAmB,UAAqC;AACrE,QAAM,WAAW,iCAAiC,SAAS,MAAM;AACjE,MAAI;AACF,UAAM,QAAiB,MAAM,SAAS,KAAK;AAC3C,WAAO,SAAS,KAAK,KAAK,OAAO,MAAM,UAAU,YAAY,MAAM,QAC/D,MAAM,QACN;AAAA,EACN,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEO,SAAS,6BACd,SACA;AACA,QAAM,sBAAsB,QAAQ,uBAAuB;AAC3D,QAAM,MAAM,QAAQ,OAAO,KAAK;AAChC,MAAI;AACJ,MAAI,aAAa;AACjB,MAAI;AAEJ,QAAM,YAAY,YAAwC;AACxD,QAAI;AACJ,UAAM,iBAAiB,QAAQ,gBAAgB,KAAK;AACpD,QAAI,QAAQ,YAAY,eAAe;AACrC,qBAAe,iBACX,UACC,MAAM,QAAQ,6BAA6B,IAAI,KAAK;AACzD,UAAI,CAAC,gBAAgB,CAAC,gBAAgB;AACpC,cAAM,IAAI;AAAA,UACR;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,UAAM,WAAW,MAAM;AAAA,MACrB,GAAG,QAAQ,aAAa;AAAA,MACxB;AAAA,QACE,MAAM,KAAK,UAAU;AAAA,UACnB,iBAAiB,QAAQ;AAAA,UACzB,SAAS,QAAQ;AAAA,UACjB,GAAI,iBAAiB,EAAE,eAAe,IAAI,CAAC;AAAA,UAC3C,GAAI,eAAe,EAAE,aAAa,IAAI,CAAC;AAAA,UACvC,SAAS,QAAQ;AAAA,QACnB,CAAC;AAAA,QACD,SAAS,EAAE,gBAAgB,mBAAmB;AAAA,QAC9C,QAAQ;AAAA,MACV;AAAA,IACF;AACA,QAAI,CAAC,SAAS,IAAI;AAChB,YAAM,IAAI,MAAM,MAAM,mBAAmB,QAAQ,CAAC;AAAA,IACpD;AAEA,QAAI;AACJ,QAAI;AACF,cAAQ,MAAM,SAAS,KAAK;AAAA,IAC9B,QAAQ;AACN,YAAM,IAAI,MAAM,oDAAoD;AAAA,IACtE;AACA,WAAO,uBAAuB,OAAO,QAAQ,SAAS,IAAI,CAAC;AAAA,EAC7D;AAEA,QAAM,iBAAiB,YAA6B;AAClD,QAAI,cAAc,WAAW,YAAY,IAAI,GAAG;AAC9C,aAAO,WAAW;AAAA,IACpB;AAEA,UAAM,sBAAsB;AAC5B,QAAI,CAAC,kBAAkB;AACrB,YAAM,mBAAmB,UAAU,EAAE,QAAQ,MAAM;AACjD,YAAI,qBAAqB,kBAAkB;AACzC,6BAAmB;AAAA,QACrB;AAAA,MACF,CAAC;AACD,yBAAmB;AAAA,IACrB;AAEA,UAAM,iBAAiB,MAAM;AAC7B,QAAI,wBAAwB,YAAY;AACtC,aAAO,eAAe;AAAA,IACxB;AAEA,iBAAa;AACb,WAAO,WAAW;AAAA,EACpB;AAEA,SAAO;AAAA,IACL;AAAA,IACA,YAAY,MAAM;AAChB,mBAAa;AACb,oBAAc;AACd,yBAAmB;AAAA,IACrB;AAAA,EACF;AACF;AAMA,eAAsB,sBACpB,YACA,SACY;AACZ,MAAI;AACF,WAAO,MAAM,QAAQ;AAAA,EACvB,SAAS,OAAO;AACd,QAAI,EAAE,iBAAiB,8BAAgB,MAAM,WAAW,KAAK;AAC3D,YAAM;AAAA,IACR;AACA,eAAW,WAAW;AACtB,WAAO,MAAM,QAAQ;AAAA,EACvB;AACF;;;ACjLO,IAAM,yBAAyB;AAEtC,IAAM,oBAAoB,CAAC,UAAkB,MAAM,QAAQ,QAAQ,EAAE;AAE9D,SAAS,aACd,QACA,SACA,UAA6B,aACrB;AACR,QAAM,OAAO,kBAAkB,MAAM;AACrC,QAAM,eAAe,IAAI,gBAAgB,EAAE,SAAS,QAAQ,KAAK,EAAE,CAAC;AACpE,MAAI,YAAY,eAAe;AAC7B,iBAAa,IAAI,WAAW,OAAO;AAAA,EACrC;AACA,SAAO,GAAG,IAAI,IAAI,aAAa,SAAS,CAAC;AAC3C;AAEO,SAAS,0BAA0B,OAInB;AACrB,QAAM,SAAS,kBAAkB,MAAM,eAAe,KAAK,KAAK,sBAAsB;AACtF,QAAM,kBAAkB,MAAM,QAAQ,KAAK;AAC3C,QAAM,UAAU,MAAM,WAAW;AAEjC,SAAO;AAAA,IACL;AAAA,IACA,SAAS;AAAA,IACT;AAAA,IACA,MAAM,kBAAkB,aAAa,QAAQ,iBAAiB,OAAO,IAAI;AAAA,EAC3E;AACF;AAEO,SAAS,eAAe,eAAgC;AAC7D,QAAM,SAAS,kBAAkB,eAAe,KAAK,KAAK,sBAAsB;AAChF,SAAO,GAAG,MAAM;AAClB;;;ACrCA,IAAM,6BAA6B;AAMnC,SAAS,uBAAuB,eAAwB;AACtD,QAAM,UAAU,eAAe,KAAK;AACpC,MAAI,CAAC,QAAS,QAAO;AACrB,SAAO,QAAQ,QAAQ,QAAQ,EAAE;AACnC;AAEO,SAAS,2BAA2B,OAKxC;AACD,QAAM,aAAa,MAAM,YAAY,KAAK,KAAK;AAC/C,QAAM,UAAU,MAAM,QAAQ,KAAK;AACnC,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,kDAAkD;AAAA,EACpE;AAEA,QAAM,gBAAgB,MAAM,YAAY,gBAAgB,iBAAiB;AACzE,SAAO,GAAG,0BAA0B,IAAI,UAAU,IAAI,OAAO,GAAG,aAAa,IAAI,uBAAuB,MAAM,aAAa,CAAC;AAC9H;AAEA,SAAS,kBAA0B;AACjC,MAAI,OAAO,WAAW,eAAe,OAAO,OAAO,eAAe,YAAY;AAC5E,WAAO,OAAO,WAAW;AAAA,EAC3B;AACA,SAAO,QAAQ,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC,GAAG,KAAK,IAAI,EAAE,SAAS,EAAE,CAAC;AAC9E;AAEA,SAAS,cAAc,SAA+B;AACpD,SAAO,SAAS,kBAAkB,KAAK,KAAK;AAC9C;AAEO,SAAS,4BAA4B,SAAuC;AACjF,QAAM,SAAS,cAAc,OAAO;AACpC,QAAM,aAAa,GAAG,MAAM;AAE5B,MAAI,OAAO,mBAAmB,aAAa;AACzC,WAAO,gBAAgB;AAAA,EACzB;AAEA,QAAM,WAAW,eAAe,QAAQ,UAAU,GAAG,KAAK;AAC1D,MAAI,SAAU,QAAO;AAErB,QAAM,OAAO,gBAAgB;AAC7B,iBAAe,QAAQ,YAAY,IAAI;AACvC,SAAO;AACT;AAEO,SAAS,sBAAsB,SAA+B;AACnE,MAAI,OAAO,mBAAmB,YAAa;AAE3C,QAAM,SAAS,cAAc,OAAO;AACpC,iBAAe,WAAW,GAAG,MAAM,mBAAmB;AACxD;AAEA,SAAS,oBAAoB,kBAA0B,QAAgB;AACrE,SAAO,GAAG,MAAM,QAAQ,gBAAgB;AAC1C;AAEA,SAAS,sBAAsB,kBAA0B,QAAgB;AACvE,SAAO,GAAG,MAAM,QAAQ,gBAAgB;AAC1C;AAEO,SAAS,0BACd,kBACA,SAC8B;AAC9B,MAAI,OAAO,mBAAmB,eAAe,CAAC,iBAAiB,KAAK,EAAG,QAAO;AAE9E,QAAM,SAAS,cAAc,OAAO;AACpC,QAAM,YAAY,eAAe,QAAQ,oBAAoB,kBAAkB,MAAM,CAAC,GAAG,KAAK;AAC9F,MAAI,CAAC,UAAW,QAAO;AAEvB,QAAM,WAAW,eAAe,QAAQ,sBAAsB,kBAAkB,MAAM,CAAC;AACvF,QAAM,cAAc,WAAW,OAAO,SAAS,UAAU,EAAE,IAAI;AAE/D,SAAO;AAAA,IACL;AAAA,IACA,aAAa,OAAO,SAAS,WAAW,KAAK,eAAe,IAAI,cAAc;AAAA,EAChF;AACF;AAEO,SAAS,0BACd,kBACA,WACA,aACA,SACA;AACA,MAAI,OAAO,mBAAmB,eAAe,CAAC,iBAAiB,KAAK,KAAK,CAAC,UAAU,KAAK,GAAG;AAC1F;AAAA,EACF;AAEA,QAAM,SAAS,cAAc,OAAO;AACpC,iBAAe,QAAQ,oBAAoB,kBAAkB,MAAM,GAAG,SAAS;AAC/E,iBAAe;AAAA,IACb,sBAAsB,kBAAkB,MAAM;AAAA,IAC9C,OAAO,KAAK,IAAI,GAAG,WAAW,CAAC;AAAA,EACjC;AACF;AAEO,SAAS,2BACd,kBACA,SACA;AACA,MAAI,OAAO,mBAAmB,eAAe,CAAC,iBAAiB,KAAK,EAAG;AACvE,QAAM,SAAS,cAAc,OAAO;AACpC,iBAAe,WAAW,oBAAoB,kBAAkB,MAAM,CAAC;AACvE,iBAAe,WAAW,sBAAsB,kBAAkB,MAAM,CAAC;AAC3E;;;AHtFA,SAAS,eAAe,OAA2B;AACjD,SACE,MAAM,SAAS,qBACf,MAAM,SAAS,uBACf,MAAM,SAAS;AAEnB;AAEA,SAAS,kBACP,OACA,UACA,UACA,WACA;AACA,iBAAe,OAAO,UAAU,SAAS;AAEzC,MAAI,MAAM,SAAS,kBAAkB;AACnC,UAAM,IAAI,MAAM,MAAM,KAAK,WAAW,MAAM,KAAK,IAAI;AAAA,EACvD;AAEA,MAAI,MAAM,SAAS,qBAAqB;AACtC,aAAS,aAAa;AAAA,EACxB;AAEA,MAAI,MAAM,SAAS,mBAAoB,QAAO;AAE9C,QAAM,EAAE,cAAc,aAAa,IAAI,MAAM;AAC7C,MAAI,QAAQ;AACZ,MAAI,OAAO;AACX,MAAI,aAAa,WAAW,QAAQ,GAAG;AACrC,YAAQ,aAAa,MAAM,SAAS,MAAM;AAC1C,WAAO;AAAA,EACT,WAAW,cAAc;AACvB,YAAQ;AAAA,EACV;AACA,MAAI,MAAO,UAAS,QAAQ,KAAK;AACjC,SAAO;AACT;AAEA,SAAS,iBAAiB,QAAuC;AAC/D,MAAI,aAAa;AACjB,WAAS,QAAQ,OAAO,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG;AAC1D,QAAI,OAAO,KAAK,GAAG,SAAS,oBAAoB;AAC9C,mBAAa;AACb;AAAA,IACF;AAAA,EACF;AACA,SAAO,cAAc,IAAI,OAAO,MAAM,UAAU,IAAI,CAAC;AACvD;AAEA,SAAS,WAAW,QAAuC;AACzD,MAAI,WAAW;AACf,aAAW,SAAS,QAAQ;AAC1B,QAAI,MAAM,SAAS,mBAAoB;AACvC,UAAM,EAAE,cAAc,aAAa,IAAI,MAAM;AAC7C,QAAI,aAAa,WAAW,QAAQ,GAAG;AACrC,iBAAW;AAAA,IACb,WAAW,cAAc;AACvB,kBAAY;AAAA,IACd;AAAA,EACF;AACA,SAAO;AACT;AAEA,SAAS,aACP,MACA,UACA,WACA;AACA,YAAU,IAAI,KAAK,IAAI,IAAI;AAC3B,WAAS,SAAS,IAAI;AACtB,WAAS,SAAS,KAAK,OAAO,KAAK,MAAM;AAC3C;AAEA,SAAS,iBACP,UACA,WACA,YAAsC,CAAC,GACvC;AACA,QAAM,WAAW,UAAU,IAAI,UAAU;AACzC,MAAI,CAAC,YAAY,SAAS,UAAU,SAAU;AAC9C,QAAM,cAAc,UAAU,OAAO,CAAC,SAAS,KAAK,SAAS,YAAY;AACzE,QAAM,SACJ,YAAY,WAAW,IACnB,iBAAiB,YAAY,CAAC,GAAG,KAAK,KACtC,YAAY,SAAS,IACrB,iBAAiB,YAAY,MAAM,iBACnC,UAAU,KAAK,CAAC,SAAS,KAAK,SAAS,QAAQ,IAC/C,sCACA;AACN;AAAA,IACE;AAAA,MACE,GAAG;AAAA,MACH;AAAA,MACA,OAAO;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEA,SAAS,wBAAwB,OAA0C;AACzE,QAAM,UAAU,MAAM;AACtB,MAAI,OAAO,YAAY,SAAU,QAAO;AACxC,QAAM,QAAQ,kCAAkC,KAAK,OAAO;AAC5D,SAAO,QAAQ,CAAC,GAAG,KAAK,KAAK;AAC/B;AAEA,SAAS,kBACP,QAOsB;AACtB,MAAI,OAAO,SAAS,eAAe,OAAO,aAAa,oBAAoB;AACzE,WAAO;AAAA,MACL,IAAI,OAAO;AAAA,MACX,MAAM;AAAA,MACN,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,OAAO;AAAA,IACT;AAAA,EACF;AAEA,MACE,OAAO,SAAS,mBAChB,OAAO,SAAS,uBACf,OAAO,SAAS,eAAe,OAAO,aAAa,SACpD;AACA,UAAM,OAAO,wBAAwB,OAAO,KAAK,KAAK;AACtD,WAAO;AAAA,MACL,IAAI,OAAO;AAAA,MACX,MAAM;AAAA,MACN,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,OAAO;AAAA,IACT;AAAA,EACF;AAEA,SAAO;AACT;AAEO,SAAS,eACd,OACA,UACA,WACA;AACA,MAAI,MAAM,SAAS,kBAAkB,UAAU,SAAS,GAAG;AACzD;AAAA,MACE;AAAA,QACE,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,OAAO;AAAA,QACP,OAAO;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,IACF;AACA;AAAA,EACF;AAEA,MAAI,MAAM,SAAS,qBAAqB;AACtC,UAAM,YAAY,MAAM,KAAK,QAAQ,QAAQ,CAAC,WAAW;AACvD,YAAM,OAAO,kBAAkB,MAAM;AACrC,aAAO,OAAO,CAAC,IAAI,IAAI,CAAC;AAAA,IAC1B,CAAC;AACD,qBAAiB,UAAU,WAAW,SAAS;AAC/C,eAAW,QAAQ,UAAW,cAAa,MAAM,UAAU,SAAS;AACpE;AAAA,EACF;AAEA,MAAI,MAAM,SAAS,mBAAmB;AACpC,qBAAiB,UAAU,SAAS;AACpC,UAAMC,WAAU,UAAU,IAAI,MAAM,KAAK,MAAM;AAC/C,QAAI,CAACA,UAAS;AACZ;AAAA,QACE;AAAA,UACE,IAAI,MAAM,KAAK;AAAA,UACf,MAAM;AAAA,UACN,OAAO,MAAM,KAAK,QAAQ;AAAA,UAC1B,QAAQ;AAAA,UACR,OAAO;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AACA;AAAA,EACF;AAEA,MAAI,MAAM,SAAS,sBAAsB;AACvC,UAAMA,WAAU,UAAU,IAAI,MAAM,KAAK,MAAM;AAC/C,QAAI,CAACA,SAAS;AACd;AAAA,MACE;AAAA,QACE,GAAGA;AAAA,QACH,QAAQ;AAAA,QACR,OAAO;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,IACF;AACA;AAAA,EACF;AAEA,MAAI,MAAM,SAAS,gBAAiB;AACpC,QAAM,EAAE,QAAQ,OAAO,IAAI,MAAM;AACjC,QAAM,UAAU,UAAU,IAAI,OAAO,MAAM;AAC3C,MAAI,CAAC,QAAS;AACd,QAAM,SAAS,WAAW,eAAe,OAAO,YAAY;AAC5D;AAAA,IACE;AAAA,MACE,GAAG;AAAA,MACH,QAAQ,SACJ,kEACA,QAAQ,SAAS,WACjB,gCACA;AAAA,MACJ,OAAO,SAAS,UAAU;AAAA,IAC5B;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEA,IAAM,eAAN,MAAmB;AAAA,EAOjB,YACmB,SACA,SACA,eACA,kBACA,cACjB,gBACA,4BACA;AAPiB;AACA;AACA;AACA;AACA;AAIjB,SAAK,aAAa,6BAA6B;AAAA,MAC7C;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAhBmB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAXX;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACS;AAAA,EAqBjB,qBAAyC;AACvC,WACE,KAAK,SAAS,MAAM,aACpB,0BAA0B,KAAK,kBAAkB,KAAK,YAAY,GAC9D;AAAA,EAER;AAAA,EAEA,QAAQ;AACN,QAAI,KAAK,gBAAgB;AACvB,WAAK,KAAK,eAAe,OAAO,EAAE,MAAM,MAAM;AAAA,MAAC,CAAC;AAAA,IAClD,OAAO;AACL,WAAK,KAAK,SAAS,OAAO,EAAE,MAAM,MAAM;AAAA,MAAC,CAAC;AAAA,IAC5C;AACA,SAAK,iBAAiB;AACtB,SAAK,UAAU;AACf,SAAK,WAAW,WAAW;AAC3B,+BAA2B,KAAK,kBAAkB,KAAK,YAAY;AAAA,EACrE;AAAA,EAEQ,qBAAqB,SAAwB;AACnD;AAAA,MACE,KAAK;AAAA,MACL,QAAQ,MAAM;AAAA,MACd,QAAQ,MAAM;AAAA,MACd,KAAK;AAAA,IACP;AAAA,EACF;AAAA,EAEQ,eAAuB;AAC7B,UAAM,SAAS,0BAA0B;AAAA,MACvC,SAAS,KAAK;AAAA,MACd,SAAS,KAAK;AAAA,MACd,eAAe,KAAK;AAAA,IACtB,CAAC;AACD,QAAI,CAAC,OAAO,SAAS;AACnB,YAAM,IAAI,MAAM,sBAAsB;AAAA,IACxC;AAEA,QAAI,KAAK,UAAU,KAAK,eAAe,OAAO,MAAM;AAClD,aAAO,KAAK;AAAA,IACd;AAEA,SAAK,iBAAiB;AACtB,SAAK,UAAU;AACf,SAAK,SAAS,IAAI,sBAAO;AAAA,MACvB,MAAM,EAAE,QAAQ,MAAM,KAAK,WAAW,eAAe,EAAE;AAAA,MACvD,MAAM,OAAO;AAAA,MACb,UAAU;AAAA,IACZ,CAAC;AACD,SAAK,aAAa,OAAO;AACzB,WAAO,KAAK;AAAA,EACd;AAAA,EAEQ,uBAAuB,QAA2C;AACxE,UAAM,YAAY;AAAA,MAChB,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AACA,QAAI,CAAC,WAAW,UAAW,QAAO;AAElC,WAAO,OAAO,SAAS,OAAO,UAAU,WAAW;AAAA,MACjD,aAAa,UAAU;AAAA,IACzB,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,SACJ,SACA,QACA,UACiB;AACjB,UAAM,SAAS,KAAK,aAAa;AACjC,QAAI;AACJ,QAAI,UAAU,KAAK,WAAW,KAAK,uBAAuB,MAAM;AAEhE,QAAI,SAAS;AACX,WAAK,UAAU;AACf,UAAI;AACF,cAAM,gBAAgB;AACtB,mBAAW,MAAM;AAAA,UAAsB,KAAK;AAAA,UAAY,MACtD,cAAc,KAAK,SAAS,EAAE,OAAO,CAAC;AAAA,QACxC;AAAA,MACF,SAAS,OAAO;AACd,YACE,iBAAiB,8BACjB,MAAM,WAAW,OACjB,MAAM,SAAS,sBACf;AACA,qCAA2B,KAAK,kBAAkB,KAAK,YAAY;AACnE,eAAK,UAAU;AACf,oBAAU;AAAA,QACZ,OAAO;AACL,gBAAM;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAEA,QAAI,CAAC,UAAU;AACb,YAAM,UAAU,MAAM;AAAA,QAAsB,KAAK;AAAA,QAAY,MAC3D,OAAO,SAAS,OAAO,EAAE,SAAS,OAAO,CAAC;AAAA,MAC5C;AACA,iBAAW,QAAQ;AACnB,gBAAU,QAAQ;AAClB,WAAK,UAAU;AACf,WAAK,qBAAqB,OAAO;AAAA,IACnC;AAEA,SAAK,iBAAiB;AACtB,QAAI,cAAc,SAAS,MAAM,eAAe;AAChD,QAAI,WAAW;AACf,UAAM,YAAY,oBAAI,IAA2B;AAEjD,QAAI;AACF,uBAAiB,SAAS,UAAU;AAClC,YAAI,OAAO,QAAS;AACpB,mBAAW,kBAAkB,OAAO,UAAU,UAAU,SAAS;AACjE,uBAAe;AACf,YAAI,SAAS;AACX;AAAA,YACE,KAAK;AAAA,YACL,QAAQ,MAAM;AAAA,YACd;AAAA,YACA,KAAK;AAAA,UACP;AAAA,QACF;AAAA,MACF;AAAA,IACF,UAAE;AACA,WAAK,iBAAiB;AACtB,UAAI,SAAS;AACX,aAAK,qBAAqB,OAAO;AAAA,MACnC;AAAA,IACF;AAEA,QAAI,CAAC,SAAS,KAAK,KAAK,CAAC,OAAO,SAAS;AACvC,YAAM,IAAI,MAAM,6BAA6B;AAAA,IAC/C;AAEA,WAAO,SAAS,KAAK;AAAA,EACvB;AAAA,EAEA,MAAM,WACJ,SACA,QACA,UACA,cAAc,IACU;AACxB,UAAM,YAAY;AAAA,MAChB,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AACA,QAAI,CAAC,UAAW,QAAO;AAEvB,UAAM,SAAS,KAAK,aAAa;AACjC,UAAM,WAAW,OAAO,SAAS,OAAO,UAAU,WAAW;AAAA,MAC3D,aAAa,UAAU;AAAA,IACzB,CAAC;AACD,UAAM,WAAW,MAAM;AAAA,MAAsB,KAAK;AAAA,MAAY,MAC5D,SAAS,SAAS,EAAE,OAAO,CAAC;AAAA,IAC9B;AACA,UAAM,aAAa,iBAAiB,SAAS,MAAM;AACnD,UAAM,WAAW,WAAW,CAAC;AAC7B,QACE,UAAU,SAAS,sBACnB,SAAS,KAAK,YAAY,SAC1B;AACA,aAAO;AAAA,IACT;AACA,QAAI,WAAW,WAAW,UAAU;AACpC,UAAM,YAAY,oBAAI,IAA2B;AACjD,eAAW,SAAS,YAAY;AAC9B,qBAAe,OAAO,UAAU,SAAS;AAAA,IAC3C;AAEA,QAAI,SAAS,WAAW,WAAW,GAAG;AACpC,YAAM,aAAa,SAAS,MAAM,YAAY,MAAM;AACpD,UAAI,WAAY,UAAS,QAAQ,UAAU;AAAA,IAC7C,WAAW,YAAY,WAAW,QAAQ,GAAG;AAC3C,iBAAW;AAAA,IACb,WAAW,CAAC,YAAY,WAAW,QAAQ,GAAG;AAC5C,iBAAW,cAAc;AAAA,IAC3B;AAEA,QAAI,UAAU,OAAO,SAAS,OAAO,SAAS,QAAQ,WAAW;AAAA,MAC/D,aAAa,SAAS,QAAQ;AAAA,IAChC,CAAC;AACD,SAAK,UAAU;AACf,SAAK,qBAAqB,OAAO;AAEjC,QAAI;AACJ,aAAS,QAAQ,WAAW,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG;AAC9D,YAAM,QAAQ,WAAW,KAAK;AAC9B,UAAI,SAAS,eAAe,KAAK,GAAG;AAClC,2BAAmB;AACnB;AAAA,MACF;AAAA,IACF;AACA,QAAI,kBAAkB;AACpB,UAAI,iBAAiB,SAAS,kBAAkB;AAC9C,cAAM,IAAI;AAAA,UACR,iBAAiB,KAAK,WAAW,iBAAiB,KAAK;AAAA,QACzD;AAAA,MACF;AACA,eAAS,aAAa;AACtB,UAAI,CAAC,SAAS,KAAK,EAAG,OAAM,IAAI,MAAM,6BAA6B;AACnE,aAAO,SAAS,KAAK;AAAA,IACvB;AAEA,QAAI,cAAc,SAAS,QAAQ;AACnC,qBAAiB,SAAS,QAAQ,OAAO,EAAE,OAAO,CAAC,GAAG;AACpD,UAAI,OAAO,QAAS;AACpB,iBAAW,kBAAkB,OAAO,UAAU,UAAU,SAAS;AACjE,qBAAe;AACf;AAAA,QACE,KAAK;AAAA,QACL,QAAQ,MAAM;AAAA,QACd;AAAA,QACA,KAAK;AAAA,MACP;AACA,UAAI,eAAe,KAAK,EAAG;AAAA,IAC7B;AAEA,cAAU,OAAO,SAAS,OAAO,QAAQ,MAAM,WAAW,EAAE,YAAY,CAAC;AACzE,SAAK,UAAU;AACf,SAAK,qBAAqB,OAAO;AAEjC,QAAI,CAAC,SAAS,KAAK,KAAK,CAAC,OAAO,SAAS;AACvC,YAAM,IAAI,MAAM,6BAA6B;AAAA,IAC/C;AACA,WAAO,SAAS,KAAK;AAAA,EACvB;AAAA,EAEA,eAAe;AACb,QAAI,KAAK,gBAAgB;AACvB,WAAK,eAAe,OAAO,EAAE,MAAM,MAAM;AAAA,MAAC,CAAC;AAAA,IAC7C,OAAO;AACL,WAAK,SAAS,OAAO,EAAE,MAAM,MAAM;AAAA,MAAC,CAAC;AAAA,IACvC;AAAA,EACF;AACF;AAEO,SAAS,kBAAkB,SAA0C;AAC1E,QAAM,UAAU,QAAQ,QAAQ,KAAK;AACrC,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,sBAAsB;AAAA,EACxC;AAEA,QAAM,UAAU,QAAQ,WAAW;AACnC,QAAM,gBAAgB,0BAA0B;AAAA,IAC9C;AAAA,IACA,eAAe,QAAQ;AAAA,IACvB;AAAA,EACF,CAAC,EAAE;AACH,QAAM,eAAoC;AAAA,IACxC,kBACE,QAAQ,kBAAkB,KAAK,KAC/B,2BAA2B;AAAA,MACzB,YAAY,QAAQ;AAAA,MACpB;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACL;AACA,QAAM,mBACJ,QAAQ,kBAAkB,KAAK,KAC/B,4BAA4B,YAAY;AAE1C,QAAM,UAAU,IAAI;AAAA,IAClB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU,CAAC,SAAS,gBAClB,QAAQ;AAAA,MACN;AAAA,MACA,YAAY,UAAU,IAAI,gBAAgB,EAAE;AAAA,MAC5C,YAAY;AAAA,IACd;AAAA,IACF,YAAY,CAAC,kBACX,QAAQ;AAAA,MACN,cAAc;AAAA,MACd,cAAc,UAAU,IAAI,gBAAgB,EAAE;AAAA,MAC9C,cAAc;AAAA,MACd,cAAc;AAAA,IAChB;AAAA,IACF,OAAO,MAAM,QAAQ,MAAM;AAAA,IAC3B,cAAc,MAAM,QAAQ,aAAa;AAAA,IACzC,oBAAoB,MAAM,QAAQ,mBAAmB;AAAA,EACvD;AACF;;;AIvkBA,IAAAC,iBAA4B;AAE5B,IAAM,gCACJ;AACF,IAAM,sCACJ;AAEF,SAAS,0BAA0B,SAAiB;AAClD,QAAM,aAAa,QAAQ,KAAK,EAAE,YAAY;AAC9C,SACE,WAAW,SAAS,6BAA6B,KACjD,WAAW,SAAS,iBAAiB,KACrC,WAAW,SAAS,cAAc,KAClC,WAAW,SAAS,aAAa;AAErC;AAEA,SAAS,8BAA8B,SAAiB;AACtD,QAAM,aAAa,QAAQ,KAAK,EAAE,YAAY;AAC9C,SACE,WAAW,SAAS,mCAAmC,KACvD,WAAW,SAAS,2BAA2B,KAC/C,WAAW,SAAS,4BAA4B,KAChD,WAAW,SAAS,uBAAuB;AAE/C;AAEO,SAAS,iBAAiB,OAAwB;AACvD,MAAI,iBAAiB,4BAAa;AAChC,QAAI,MAAM,WAAW,OAAO,MAAM,SAAS,kBAAkB;AAC3D,aAAO;AAAA,IACT;AACA,QAAI,MAAM,WAAW,OAAO,MAAM,SAAS,qBAAqB;AAC9D,aAAO;AAAA,IACT;AACA,QAAI,MAAM,WAAW,OAAO,MAAM,SAAS,sBAAsB;AAC/D,aAAO;AAAA,IACT;AACA,QAAI,MAAM,WAAW,8BAA8B,MAAM,OAAO,GAAG;AACjE,aAAO;AAAA,IACT;AACA,QACE,MAAM,UAAU,OACf,MAAM,WAAW,0BAA0B,MAAM,OAAO,GACzD;AACA,aAAO;AAAA,IACT;AACA,WAAO,MAAM,WAAW;AAAA,EAC1B;AACA,MAAI,iBAAiB,gBAAgB,MAAM,SAAS,cAAc;AAChE,WAAO;AAAA,EACT;AACA,MAAI,iBAAiB,OAAO;AAC1B,QAAI,8BAA8B,MAAM,OAAO,GAAG;AAChD,aAAO;AAAA,IACT;AACA,WAAO,0BAA0B,MAAM,OAAO,IAC1C,gCACA,MAAM;AAAA,EACZ;AACA,SAAO;AACT;;;ACzDA,eAAsB,gBACpB,eACA,YAA0B,OACE;AAC5B,QAAM,YAAY,eAAe,aAAa;AAE9C,MAAI;AACF,UAAM,WAAW,MAAM,UAAU,WAAW;AAAA,MAC1C,SAAS,EAAE,QAAQ,mBAAmB;AAAA,MACtC,OAAO;AAAA,IACT,CAAC;AACD,QAAI,CAAC,SAAS,IAAI;AAChB,aAAO,EAAE,IAAI,OAAO,QAAQ,wBAAwB,SAAS,MAAM,IAAI;AAAA,IACzE;AACA,UAAM,UAAW,MAAM,SAAS,KAAK;AACrC,QAAI,QAAQ,OAAO,MAAM;AACvB,aAAO,EAAE,IAAI,MAAM,QAAQ,QAAQ,UAAU,QAAQ;AAAA,IACvD;AACA,WAAO,EAAE,IAAI,OAAO,QAAQ,qCAAqC;AAAA,EACnE,SAAS,OAAO;AACd,WAAO,EAAE,IAAI,OAAO,QAAQ,iBAAiB,KAAK,KAAK,sBAAsB;AAAA,EAC/E;AACF;","names":["import_client","current","import_client"]}
package/dist/index.js CHANGED
@@ -277,13 +277,15 @@ function emitWorkItem(item, handlers, workItems) {
277
277
  handlers.onWork?.(item);
278
278
  handlers.onStep?.(item.label, item.detail);
279
279
  }
280
- function completePlanning(handlers, workItems) {
280
+ function completePlanning(handlers, workItems, nextItems = []) {
281
281
  const planning = workItems.get("planning");
282
282
  if (!planning || planning.state !== "active") return;
283
+ const specialists = nextItems.filter((item) => item.kind === "specialist");
284
+ const detail = specialists.length === 1 ? `Delegating to ${specialists[0]?.label}` : specialists.length > 1 ? `Delegating to ${specialists.length} specialists` : nextItems.some((item) => item.kind === "search") ? "Using built-in Search & Discovery" : "Picked the best way to help";
283
285
  emitWorkItem(
284
286
  {
285
287
  ...planning,
286
- detail: "Picked the best way to help",
288
+ detail,
287
289
  state: "completed"
288
290
  },
289
291
  handlers,
@@ -333,11 +335,12 @@ function applyWorkEvent(event, handlers, workItems) {
333
335
  return;
334
336
  }
335
337
  if (event.type === "actions.requested") {
336
- completePlanning(handlers, workItems);
337
- for (const action of event.data.actions) {
338
+ const nextItems = event.data.actions.flatMap((action) => {
338
339
  const item = requestedWorkItem(action);
339
- if (item) emitWorkItem(item, handlers, workItems);
340
- }
340
+ return item ? [item] : [];
341
+ });
342
+ completePlanning(handlers, workItems, nextItems);
343
+ for (const item of nextItems) emitWorkItem(item, handlers, workItems);
341
344
  return;
342
345
  }
343
346
  if (event.type === "subagent.called") {