@recombine-ai/bosun 0.13.0 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/bosun.js +7 -0
- package/build/client/_app/immutable/assets/0.b0jhAoSC.css +1 -0
- package/build/client/_app/immutable/assets/0.b0jhAoSC.css.br +0 -0
- package/build/client/_app/immutable/assets/0.b0jhAoSC.css.gz +0 -0
- package/build/client/_app/immutable/chunks/BTX1tKMW.js +1 -0
- package/build/client/_app/immutable/chunks/BTX1tKMW.js.br +0 -0
- package/build/client/_app/immutable/chunks/BTX1tKMW.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BVxLHCs8.js +1 -0
- package/build/client/_app/immutable/chunks/BVxLHCs8.js.br +0 -0
- package/build/client/_app/immutable/chunks/BVxLHCs8.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{De8YgKS3.js → ChVBNPUb.js} +1 -1
- package/build/client/_app/immutable/chunks/ChVBNPUb.js.br +0 -0
- package/build/client/_app/immutable/chunks/ChVBNPUb.js.gz +0 -0
- package/build/client/_app/immutable/chunks/E9rdsnHb.js +1 -0
- package/build/client/_app/immutable/chunks/E9rdsnHb.js.br +0 -0
- package/build/client/_app/immutable/chunks/E9rdsnHb.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Z1_c4us_.js +3 -0
- package/build/client/_app/immutable/chunks/Z1_c4us_.js.br +0 -0
- package/build/client/_app/immutable/chunks/Z1_c4us_.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{Bj8jfBTi.js → lmnC3bvv.js} +1 -1
- package/build/client/_app/immutable/chunks/lmnC3bvv.js.br +0 -0
- package/build/client/_app/immutable/chunks/lmnC3bvv.js.gz +0 -0
- package/build/client/_app/immutable/entry/{app.DK_wVDeR.js → app.BY5DP2K_.js} +2 -2
- package/build/client/_app/immutable/entry/app.BY5DP2K_.js.br +0 -0
- package/build/client/_app/immutable/entry/app.BY5DP2K_.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.BeIIwvvV.js +1 -0
- package/build/client/_app/immutable/entry/start.BeIIwvvV.js.br +0 -0
- package/build/client/_app/immutable/entry/start.BeIIwvvV.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{0.5fEbn14Q.js → 0.Cao0LJwW.js} +1 -1
- package/build/client/_app/immutable/nodes/0.Cao0LJwW.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.Cao0LJwW.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{1.CJrSN8zL.js → 1.Kjgu6yxL.js} +1 -1
- package/build/client/_app/immutable/nodes/1.Kjgu6yxL.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.Kjgu6yxL.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{10.SZwTlOEA.js → 10.yW2mHq85.js} +1 -1
- package/build/client/_app/immutable/nodes/10.yW2mHq85.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.yW2mHq85.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{17.D-KFl7Vk.js → 17.COHkD98p.js} +3 -3
- package/build/client/_app/immutable/nodes/17.COHkD98p.js.br +0 -0
- package/build/client/_app/immutable/nodes/17.COHkD98p.js.gz +0 -0
- package/build/client/_app/immutable/nodes/18.DQVit7Md.js +11 -0
- package/build/client/_app/immutable/nodes/18.DQVit7Md.js.br +0 -0
- package/build/client/_app/immutable/nodes/18.DQVit7Md.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.DVwYttKv.js +35 -0
- package/build/client/_app/immutable/nodes/2.DVwYttKv.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.DVwYttKv.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{3.B1RGTOJ8.js → 3.BhmyTb3R.js} +1 -1
- package/build/client/_app/immutable/nodes/3.BhmyTb3R.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.BhmyTb3R.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{4.D2jcIUpD.js → 4.CxATX0ci.js} +1 -1
- package/build/client/_app/immutable/nodes/4.CxATX0ci.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.CxATX0ci.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{5.CUyCIyRd.js → 5.Dal1qxB1.js} +1 -1
- package/build/client/_app/immutable/nodes/5.Dal1qxB1.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.Dal1qxB1.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{6.B8HsGA2V.js → 6.iAOxBhJw.js} +1 -1
- package/build/client/_app/immutable/nodes/6.iAOxBhJw.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.iAOxBhJw.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{8.jY56-_OU.js → 8.DFhKu3dp.js} +1 -1
- package/build/client/_app/immutable/nodes/8.DFhKu3dp.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.DFhKu3dp.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.DRIEv5m9.js +2 -0
- package/build/client/_app/immutable/nodes/9.DRIEv5m9.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.DRIEv5m9.js.gz +0 -0
- package/build/client/_app/version.json +1 -1
- package/build/client/_app/version.json.br +0 -0
- package/build/client/_app/version.json.gz +0 -0
- package/build/server/chunks/{0-4QCErf9j.js → 0-CIzAMtA3.js} +3 -3
- package/build/server/chunks/{0-4QCErf9j.js.map → 0-CIzAMtA3.js.map} +1 -1
- package/build/server/chunks/{1-Dsjy8Hzc.js → 1-D1heuNbf.js} +2 -2
- package/build/server/chunks/{1-Dsjy8Hzc.js.map → 1-D1heuNbf.js.map} +1 -1
- package/build/server/chunks/{10-8061c8ui.js → 10-CjLtjXyZ.js} +2 -2
- package/build/server/chunks/{10-8061c8ui.js.map → 10-CjLtjXyZ.js.map} +1 -1
- package/build/server/chunks/{17-3_5wsIEX.js → 17-DklEmmOx.js} +4 -4
- package/build/server/chunks/{17-3_5wsIEX.js.map → 17-DklEmmOx.js.map} +1 -1
- package/build/server/chunks/{18-D73Mw140.js → 18-BJS-eRcz.js} +4 -4
- package/build/server/chunks/18-BJS-eRcz.js.map +1 -0
- package/build/server/chunks/{2-DM0VjzFi.js → 2-DCrAVYXs.js} +4 -4
- package/build/server/chunks/2-DCrAVYXs.js.map +1 -0
- package/build/server/chunks/{3-B3zlFGkL.js → 3-BpTqa4DU.js} +2 -2
- package/build/server/chunks/{3-B3zlFGkL.js.map → 3-BpTqa4DU.js.map} +1 -1
- package/build/server/chunks/{4-tESdMZpI.js → 4-B7GjwQzI.js} +2 -2
- package/build/server/chunks/{4-tESdMZpI.js.map → 4-B7GjwQzI.js.map} +1 -1
- package/build/server/chunks/{5-BJMTlq4U.js → 5-XjS__bcp.js} +2 -2
- package/build/server/chunks/{5-BJMTlq4U.js.map → 5-XjS__bcp.js.map} +1 -1
- package/build/server/chunks/{6-CDK2Aia6.js → 6-DWkWptmB.js} +2 -2
- package/build/server/chunks/{6-CDK2Aia6.js.map → 6-DWkWptmB.js.map} +1 -1
- package/build/server/chunks/{8-BJbDytoU.js → 8-_swAx6gL.js} +2 -2
- package/build/server/chunks/{8-BJbDytoU.js.map → 8-_swAx6gL.js.map} +1 -1
- package/build/server/chunks/{9-BNfIeSqk.js → 9-NEe24O4u.js} +4 -4
- package/build/server/chunks/9-NEe24O4u.js.map +1 -0
- package/build/server/chunks/{ChatStepTrace-DQL3qlna.js → ChatStepTrace-CX2Zolmp.js} +21 -8
- package/build/server/chunks/ChatStepTrace-CX2Zolmp.js.map +1 -0
- package/build/server/chunks/{_layout.svelte-DK7yl8vI.js → _layout.svelte-PtdpfgwJ.js} +66 -4
- package/build/server/chunks/_layout.svelte-PtdpfgwJ.js.map +1 -0
- package/build/server/chunks/{_page.svelte-ZWNBigwS.js → _page.svelte-C3gizoSD.js} +7 -4
- package/build/server/chunks/_page.svelte-C3gizoSD.js.map +1 -0
- package/build/server/chunks/{_page.svelte-D6bSXGHX.js → _page.svelte-CoCBnE2l.js} +8 -5
- package/build/server/chunks/_page.svelte-CoCBnE2l.js.map +1 -0
- package/build/server/chunks/{_page.svelte-ej3vdYeF.js → _page.svelte-DZvcjON6.js} +3 -2
- package/build/server/chunks/_page.svelte-DZvcjON6.js.map +1 -0
- package/build/server/chunks/steps-DzZCg39h.js +8 -0
- package/build/server/chunks/steps-DzZCg39h.js.map +1 -0
- package/build/server/index.js +1 -1
- package/build/server/index.js.map +1 -1
- package/build/server/manifest.js +13 -13
- package/build/server/manifest.js.map +1 -1
- package/package.json +4 -4
- package/src/backend/lib/backend-restart.ts +15 -0
- package/src/backend/roleplay/router.ts +42 -5
- package/src/backend/roleplay/schema-file.spec.ts +38 -0
- package/src/backend/roleplay/schema-file.ts +33 -0
- package/src/backend/tests/academy.ts +4 -2
- package/src/backend/tests/analyze.ts +2 -1
- package/src/backend/tests/emulate-agents.ts +13 -21
- package/src/backend/tests/pii-sanitized-test-drafts.spec.ts +162 -0
- package/src/backend/tests/pii-sanitized-test-drafts.ts +106 -0
- package/src/backend/tests/pii-sanitizer.spec.ts +145 -0
- package/src/backend/tests/pii-sanitizer.ts +171 -0
- package/src/backend/tests/router.ts +37 -0
- package/src/lib/agent-catalog.ts +4 -0
- package/src/lib/agents-context.ts +8 -0
- package/src/lib/api-telescope/client.ts +174 -0
- package/src/lib/api-telescope/index.ts +4 -0
- package/src/lib/api-telescope/latency-timeline-view-state.spec.ts +25 -0
- package/src/lib/api-telescope/latency-timeline-view-state.ts +86 -0
- package/src/lib/api-telescope/latency.ts +252 -0
- package/src/lib/api-telescope/source-selection.ts +20 -0
- package/src/lib/api-telescope/sources.server.ts +94 -0
- package/src/lib/api-telescope/types.ts +143 -0
- package/src/lib/components/Button.svelte +62 -0
- package/src/lib/components/CollapseExpand.svelte +425 -0
- package/src/lib/components/CopyTracesDropdown.svelte +118 -0
- package/src/lib/components/Dialog.svelte +69 -0
- package/src/lib/components/Dropdown.svelte +111 -0
- package/src/lib/components/History.svelte +174 -0
- package/src/lib/components/Icon.svelte +94 -0
- package/src/lib/components/Input.svelte +43 -0
- package/src/lib/components/Link.svelte +45 -0
- package/src/lib/components/Modal.svelte +45 -0
- package/src/lib/components/Panel.svelte +12 -0
- package/src/lib/components/PopoverModal.svelte +34 -0
- package/src/lib/components/Popper.svelte +109 -0
- package/src/lib/components/Tab.svelte +91 -0
- package/src/lib/components/Tabs.svelte +140 -0
- package/src/lib/components/agent-colors.ts +70 -0
- package/src/lib/dom/text-selection.ts +97 -0
- package/src/lib/edit/edit-vm.spec.ts +115 -0
- package/src/lib/edit/edit-vm.ts +169 -0
- package/src/lib/edit/edit-workspace-context.ts +56 -0
- package/src/lib/edit/highlight-styles.spec.ts +14 -0
- package/src/lib/edit/prompt-highlighter.spec.ts +80 -0
- package/src/lib/edit/prompt-highlighter.ts +155 -0
- package/src/lib/edit/quote-matching.ts +97 -0
- package/src/lib/monaco/bosun-theme.ts +125 -0
- package/src/lib/monaco/font.ts +2 -0
- package/src/lib/monaco-workers.ts +28 -0
- package/src/lib/steps.ts +19 -0
- package/src/lib/tests/pii-sanitized-test-draft.ts +50 -0
- package/src/lib/trpc-client.ts +16 -0
- package/src/lib/ws-client.ts +144 -0
- package/src/lib/ws-message.ts +150 -0
- package/build/client/_app/immutable/assets/0.B-Br6U4N.css +0 -1
- package/build/client/_app/immutable/assets/0.B-Br6U4N.css.br +0 -0
- package/build/client/_app/immutable/assets/0.B-Br6U4N.css.gz +0 -0
- package/build/client/_app/immutable/chunks/BOuo-4gP.js +0 -1
- package/build/client/_app/immutable/chunks/BOuo-4gP.js.br +0 -0
- package/build/client/_app/immutable/chunks/BOuo-4gP.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bj8jfBTi.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bj8jfBTi.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CX0Ekq8t.js +0 -1
- package/build/client/_app/immutable/chunks/CX0Ekq8t.js.br +0 -0
- package/build/client/_app/immutable/chunks/CX0Ekq8t.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cyj62X2W.js +0 -2
- package/build/client/_app/immutable/chunks/Cyj62X2W.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cyj62X2W.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DSDSeO7L.js +0 -1
- package/build/client/_app/immutable/chunks/DSDSeO7L.js.br +0 -0
- package/build/client/_app/immutable/chunks/DSDSeO7L.js.gz +0 -0
- package/build/client/_app/immutable/chunks/De8YgKS3.js.br +0 -1
- package/build/client/_app/immutable/chunks/De8YgKS3.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.DK_wVDeR.js.br +0 -0
- package/build/client/_app/immutable/entry/app.DK_wVDeR.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.xQy-2aGo.js +0 -1
- package/build/client/_app/immutable/entry/start.xQy-2aGo.js.br +0 -2
- package/build/client/_app/immutable/entry/start.xQy-2aGo.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.5fEbn14Q.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.5fEbn14Q.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.CJrSN8zL.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.CJrSN8zL.js.gz +0 -0
- package/build/client/_app/immutable/nodes/10.SZwTlOEA.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.SZwTlOEA.js.gz +0 -0
- package/build/client/_app/immutable/nodes/17.D-KFl7Vk.js.br +0 -0
- package/build/client/_app/immutable/nodes/17.D-KFl7Vk.js.gz +0 -0
- package/build/client/_app/immutable/nodes/18.DqRdJY9A.js +0 -11
- package/build/client/_app/immutable/nodes/18.DqRdJY9A.js.br +0 -0
- package/build/client/_app/immutable/nodes/18.DqRdJY9A.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.B3Uuk25v.js +0 -35
- package/build/client/_app/immutable/nodes/2.B3Uuk25v.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.B3Uuk25v.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.B1RGTOJ8.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.B1RGTOJ8.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.D2jcIUpD.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.D2jcIUpD.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.CUyCIyRd.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.CUyCIyRd.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.B8HsGA2V.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.B8HsGA2V.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.jY56-_OU.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.jY56-_OU.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.v5dX6L9n.js +0 -2
- package/build/client/_app/immutable/nodes/9.v5dX6L9n.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.v5dX6L9n.js.gz +0 -0
- package/build/server/chunks/18-D73Mw140.js.map +0 -1
- package/build/server/chunks/2-DM0VjzFi.js.map +0 -1
- package/build/server/chunks/9-BNfIeSqk.js.map +0 -1
- package/build/server/chunks/ChatStepTrace-DQL3qlna.js.map +0 -1
- package/build/server/chunks/_layout.svelte-DK7yl8vI.js.map +0 -1
- package/build/server/chunks/_page.svelte-D6bSXGHX.js.map +0 -1
- package/build/server/chunks/_page.svelte-ZWNBigwS.js.map +0 -1
- package/build/server/chunks/_page.svelte-ej3vdYeF.js.map +0 -1
- /package/build/client/_app/immutable/assets/{Popper.CLTyHc88.css → steps.CLTyHc88.css} +0 -0
- /package/build/client/_app/immutable/assets/{Popper.CLTyHc88.css.br → steps.CLTyHc88.css.br} +0 -0
- /package/build/client/_app/immutable/assets/{Popper.CLTyHc88.css.gz → steps.CLTyHc88.css.gz} +0 -0
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { env } from '$env/dynamic/public'
|
|
2
|
+
import type { WsMessage } from './ws-message'
|
|
3
|
+
|
|
4
|
+
export type SimpleHandler = () => void
|
|
5
|
+
export type ErrorHandler = (error: string) => void
|
|
6
|
+
export type MessageHandler = (message: WsMessage) => void
|
|
7
|
+
|
|
8
|
+
class WebSocketClient {
|
|
9
|
+
private ws: WebSocket | null = null
|
|
10
|
+
private openHandler: SimpleHandler | null = null
|
|
11
|
+
private closeHandler: SimpleHandler | null = null
|
|
12
|
+
private errorHandler: ErrorHandler | null = null
|
|
13
|
+
private messageHandler: MessageHandler | null = null
|
|
14
|
+
private retries = 0
|
|
15
|
+
private maxRetries = 5
|
|
16
|
+
private retryDelay = 500
|
|
17
|
+
private retryTimeout: ReturnType<typeof setTimeout> | null = null
|
|
18
|
+
private isOpen = false
|
|
19
|
+
private isDestroyed = false
|
|
20
|
+
private agentsLoaded = false
|
|
21
|
+
|
|
22
|
+
constructor(private wsUrl: string) {}
|
|
23
|
+
|
|
24
|
+
init = () => {
|
|
25
|
+
if (this.isOpen) {
|
|
26
|
+
return
|
|
27
|
+
}
|
|
28
|
+
this.agentsLoaded = false
|
|
29
|
+
console.log(`Initializing websocket connection with [${this.wsUrl}]`)
|
|
30
|
+
try {
|
|
31
|
+
this.ws = new WebSocket(this.wsUrl)
|
|
32
|
+
} catch {
|
|
33
|
+
this.retryConnect()
|
|
34
|
+
return
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
this.isDestroyed = false
|
|
38
|
+
this.ws.onmessage = (event: MessageEvent<string>) => {
|
|
39
|
+
const message = JSON.parse(event.data) as WsMessage
|
|
40
|
+
if (message.channel === 'error') {
|
|
41
|
+
this.errorHandler?.(message.message)
|
|
42
|
+
} else if (message.channel === 'app-events') {
|
|
43
|
+
console.log('MSG:', message.event.type)
|
|
44
|
+
if (message.event.type === 'agents-loaded') {
|
|
45
|
+
this.agentsLoaded = true
|
|
46
|
+
}
|
|
47
|
+
} else if (message.channel === 'log') {
|
|
48
|
+
console.log(`MSG: log [${message.message.severity}]`, message.message.message)
|
|
49
|
+
} else if (message.channel === 'api-call-trace') {
|
|
50
|
+
console.log(
|
|
51
|
+
'MSG: api-call-trace',
|
|
52
|
+
message.trace?.operationName,
|
|
53
|
+
message.trace?.method,
|
|
54
|
+
message.trace?.path
|
|
55
|
+
)
|
|
56
|
+
} else if (message.channel === 'conversational-trace') {
|
|
57
|
+
console.log(
|
|
58
|
+
'MSG: conversational-trace',
|
|
59
|
+
message.trace?.eventName,
|
|
60
|
+
message.trace?.role,
|
|
61
|
+
message.trace?.medium
|
|
62
|
+
)
|
|
63
|
+
}
|
|
64
|
+
this.messageHandler?.(message)
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
this.ws.onerror = (error) => {
|
|
68
|
+
console.error('Websocket error:', error)
|
|
69
|
+
this.ws?.close()
|
|
70
|
+
this.retryConnect()
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
this.ws.onclose = () => {
|
|
74
|
+
console.log('Websocket closed')
|
|
75
|
+
this.isOpen = false
|
|
76
|
+
this.retryConnect()
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
this.ws.onopen = () => {
|
|
80
|
+
this.retries = 0
|
|
81
|
+
this.isOpen = true
|
|
82
|
+
if (this.retryTimeout) {
|
|
83
|
+
clearTimeout(this.retryTimeout)
|
|
84
|
+
}
|
|
85
|
+
this.openHandler?.()
|
|
86
|
+
console.log('Websocket connected')
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
destroy = () => {
|
|
90
|
+
this.isDestroyed = true
|
|
91
|
+
this.ws?.close()
|
|
92
|
+
}
|
|
93
|
+
onOpen = (handler: SimpleHandler) => {
|
|
94
|
+
this.openHandler = handler
|
|
95
|
+
if (this.isOpen) {
|
|
96
|
+
handler()
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
onClose = (handler: SimpleHandler) => {
|
|
100
|
+
this.closeHandler = handler
|
|
101
|
+
if (!this.isOpen) {
|
|
102
|
+
handler()
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
onError = (handler: ErrorHandler) => {
|
|
106
|
+
this.errorHandler = handler
|
|
107
|
+
}
|
|
108
|
+
onMessage = (handler: MessageHandler) => {
|
|
109
|
+
// NOTE: This client currently supports a single message handler.
|
|
110
|
+
// Calling `onMessage` overwrites any previous handler.
|
|
111
|
+
//
|
|
112
|
+
// UI rule (important for the upcoming `/edit` workspace):
|
|
113
|
+
// Subscribe to `wsClient` in ONE place (the Edit shell/layout) and fan out
|
|
114
|
+
// via context/stores. Do not have multiple components call `wsClient.onMessage`.
|
|
115
|
+
this.messageHandler = handler
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
sendMessage = (message: WsMessage) => {
|
|
119
|
+
if (message.channel === 'app-events') {
|
|
120
|
+
// console.log('SND:', message.event.type)
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
this.ws?.send(JSON.stringify(message))
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
isReady = () => this.isOpen && this.agentsLoaded
|
|
127
|
+
|
|
128
|
+
private retryConnect = () => {
|
|
129
|
+
if (this.isDestroyed) return
|
|
130
|
+
if (!this.isOpen && this.retries < this.maxRetries) {
|
|
131
|
+
this.retries++
|
|
132
|
+
this.init()
|
|
133
|
+
this.retryTimeout = setTimeout(this.retryConnect, this.retryDelay)
|
|
134
|
+
} else {
|
|
135
|
+
this.errorHandler?.('WebSocket Error, please reload the browser')
|
|
136
|
+
this.closeHandler?.()
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
const wsHost =
|
|
142
|
+
env.PUBLIC_WS_HOST ??
|
|
143
|
+
`ws://${env.PUBLIC_WS_HOSTNAME ?? 'localhost'}:${env.PUBLIC_WS_PORT ?? '8080'}`
|
|
144
|
+
export const wsClient = new WebSocketClient(wsHost)
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import type { Message } from '@recombine-ai/engine'
|
|
2
|
+
import {
|
|
3
|
+
type ApiCallTrace,
|
|
4
|
+
type StepTrace,
|
|
5
|
+
type ConversationalTrace
|
|
6
|
+
} from '@recombine-ai/telescope'
|
|
7
|
+
|
|
8
|
+
export interface ChatMessage {
|
|
9
|
+
channel: 'chat'
|
|
10
|
+
message: Message
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export type Severity = 'INFO' | 'DEBUG' | 'ERROR' | 'WARNING'
|
|
14
|
+
|
|
15
|
+
export interface LogEntry {
|
|
16
|
+
message: string
|
|
17
|
+
severity: Severity
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export interface LogMessage {
|
|
21
|
+
channel: 'log'
|
|
22
|
+
message: LogEntry
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export interface AppEventMessage {
|
|
26
|
+
channel: 'app-events'
|
|
27
|
+
event: AppEvent
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export interface ErrorMessage {
|
|
31
|
+
channel: 'error'
|
|
32
|
+
message: string
|
|
33
|
+
}
|
|
34
|
+
export interface TraceMessage {
|
|
35
|
+
channel: 'step-trace'
|
|
36
|
+
trace: StepTrace
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export interface ApiCallTraceMessage {
|
|
40
|
+
channel: 'api-call-trace'
|
|
41
|
+
trace: ApiCallTrace
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export interface ConversationalTraceMessage {
|
|
45
|
+
channel: 'conversational-trace'
|
|
46
|
+
trace: ConversationalTrace
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export type WsMessage =
|
|
50
|
+
| ChatMessage
|
|
51
|
+
| LogMessage
|
|
52
|
+
| AppEventMessage
|
|
53
|
+
| ErrorMessage
|
|
54
|
+
| TraceMessage
|
|
55
|
+
| ApiCallTraceMessage
|
|
56
|
+
| ConversationalTraceMessage
|
|
57
|
+
|
|
58
|
+
export interface SelectAgent {
|
|
59
|
+
type: 'select-agent'
|
|
60
|
+
agent: string
|
|
61
|
+
state?: string | null
|
|
62
|
+
region?: string | null
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export interface ReloadProject {
|
|
66
|
+
type: 'reload-project'
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export interface AgentsLoaded {
|
|
70
|
+
type: 'agents-loaded'
|
|
71
|
+
agents: string[]
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export interface ContextUpdated {
|
|
75
|
+
type: 'context-updated'
|
|
76
|
+
context: Record<string, any>
|
|
77
|
+
promptContext?: Record<string, any>
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export interface PromptUpdated {
|
|
81
|
+
type: 'prompt-updated'
|
|
82
|
+
prompt: string
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export type DelayedActions = Record<string, { at: string | null }>
|
|
86
|
+
export interface DelayedActionsUpdated {
|
|
87
|
+
type: 'delayed-actions-updated'
|
|
88
|
+
actions: DelayedActions
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export interface TriggerAction {
|
|
92
|
+
type: 'trigger-action'
|
|
93
|
+
action: string
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
export interface AgentSateHeader {
|
|
97
|
+
id: string
|
|
98
|
+
name: string
|
|
99
|
+
userMessage?: string
|
|
100
|
+
userMessageSender?: Extract<Message['sender'], 'user' | 'system'>
|
|
101
|
+
prev?: string | null
|
|
102
|
+
next?: string | null
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
export interface UpdateSates {
|
|
106
|
+
type: 'update-states'
|
|
107
|
+
states: AgentSateHeader[]
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
export interface StepDef {
|
|
111
|
+
name: string
|
|
112
|
+
type: 'streaming-response' | 'streaming-detect' | 'text'
|
|
113
|
+
prompt: string
|
|
114
|
+
schema?: string
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
export interface AgentPayload {
|
|
118
|
+
id: string
|
|
119
|
+
type: 'text' | 'voice'
|
|
120
|
+
steps: StepDef[]
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
export interface AgentSelected {
|
|
124
|
+
type: 'agent-selected'
|
|
125
|
+
agent: AgentPayload
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
export interface StepSelected {
|
|
129
|
+
type: 'step-selected'
|
|
130
|
+
step: string
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
export interface Hangup {
|
|
134
|
+
type: 'hangup'
|
|
135
|
+
agentId: string
|
|
136
|
+
region: string | null
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
export type AppEvent =
|
|
140
|
+
| SelectAgent
|
|
141
|
+
| ReloadProject
|
|
142
|
+
| AgentsLoaded
|
|
143
|
+
| ContextUpdated
|
|
144
|
+
| DelayedActionsUpdated
|
|
145
|
+
| TriggerAction
|
|
146
|
+
| UpdateSates
|
|
147
|
+
| PromptUpdated
|
|
148
|
+
| AgentSelected
|
|
149
|
+
| StepSelected
|
|
150
|
+
| Hangup
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:DarkerGrotesque,ui-sans-serif,system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}[type=text],input:where(:not([type])),[type=email],[type=url],[type=password],[type=number],[type=date],[type=datetime-local],[type=month],[type=search],[type=tel],[type=time],[type=week],[multiple],textarea,select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#6b7280;border-width:1px;border-radius:0;padding:.5rem .75rem;font-size:1rem;line-height:1.5rem;--tw-shadow: 0 0 #0000}[type=text]:focus,input:where(:not([type])):focus,[type=email]:focus,[type=url]:focus,[type=password]:focus,[type=number]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=month]:focus,[type=search]:focus,[type=tel]:focus,[type=time]:focus,[type=week]:focus,[multiple]:focus,textarea:focus,select:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: #2563eb;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-color:#2563eb}input::-moz-placeholder,textarea::-moz-placeholder{color:#6b7280;opacity:1}input::placeholder,textarea::placeholder{color:#6b7280;opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field{padding-top:0;padding-bottom:0}select{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem;-webkit-print-color-adjust:exact;print-color-adjust:exact}[multiple],[size]:where(select:not([size="1"])){background-image:initial;background-position:initial;background-repeat:unset;background-size:initial;padding-right:.75rem;-webkit-print-color-adjust:unset;print-color-adjust:unset}[type=checkbox],[type=radio]{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;-webkit-print-color-adjust:exact;print-color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0;height:1rem;width:1rem;color:#2563eb;background-color:#fff;border-color:#6b7280;border-width:1px;--tw-shadow: 0 0 #0000}[type=checkbox]{border-radius:0}[type=radio]{border-radius:100%}[type=checkbox]:focus,[type=radio]:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 2px;--tw-ring-offset-color: #fff;--tw-ring-color: #2563eb;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}[type=checkbox]:checked,[type=radio]:checked{border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:center;background-repeat:no-repeat}[type=checkbox]:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e")}@media (forced-colors: active){[type=checkbox]:checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}[type=radio]:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e")}@media (forced-colors: active){[type=radio]:checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}[type=checkbox]:checked:hover,[type=checkbox]:checked:focus,[type=radio]:checked:hover,[type=radio]:checked:focus{border-color:transparent;background-color:currentColor}[type=checkbox]:indeterminate{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:center;background-repeat:no-repeat}@media (forced-colors: active){[type=checkbox]:indeterminate{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}[type=checkbox]:indeterminate:hover,[type=checkbox]:indeterminate:focus{border-color:transparent;background-color:currentColor}[type=file]{background:unset;border-color:inherit;border-width:0;border-radius:0;padding:0;font-size:unset;line-height:inherit}[type=file]:focus{outline:1px solid ButtonText;outline:1px auto -webkit-focus-ring-color}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.inset-2{top:.5rem;right:.5rem;bottom:.5rem;left:.5rem}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.-left-28{left:-7rem}.bottom-0{bottom:0}.bottom-1{bottom:.25rem}.bottom-16{bottom:4rem}.bottom-2{bottom:.5rem}.bottom-full{bottom:100%}.left-0{left:0}.left-1\/2{left:50%}.left-2{left:.5rem}.left-3{left:.75rem}.right-0{right:0}.right-2{right:.5rem}.right-6{right:1.5rem}.top-0{top:0}.top-1{top:.25rem}.top-1\/2{top:50%}.top-2{top:.5rem}.top-full{top:100%}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.z-popover{z-index:1300}.m-0{margin:0}.m-4{margin:1rem}.m-auto{margin:auto}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-3{margin-top:.75rem;margin-bottom:.75rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.ml-1{margin-left:.25rem}.ml-11{margin-left:2.75rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.ml-7{margin-left:1.75rem}.ml-9{margin-left:2.25rem}.ml-auto{margin-left:auto}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mt-0{margin-top:0}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-48{margin-top:12rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.table-cell{display:table-cell}.table-row{display:table-row}.grid{display:grid}.contents{display:contents}.hidden{display:none}.size-5{width:1.25rem;height:1.25rem}.size-6{width:1.5rem;height:1.5rem}.size-7{width:1.75rem;height:1.75rem}.h-0\.5{height:.125rem}.h-14{height:3.5rem}.h-2{height:.5rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-\[55vh\]{height:55vh}.h-\[65vh\]{height:65vh}.h-\[70vh\]{height:70vh}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.h-xl{height:90px}.max-h-56{max-height:14rem}.max-h-60{max-height:15rem}.max-h-96{max-height:24rem}.max-h-\[60vh\]{max-height:60vh}.max-h-\[90vh\]{max-height:90vh}.max-h-\[calc\(90vh-7rem\)\]{max-height:calc(90vh - 7rem)}.min-h-0{min-height:0px}.min-h-11{min-height:2.75rem}.min-h-96{min-height:24rem}.min-h-\[68vh\]{min-height:68vh}.\!w-\[59px\]{width:59px!important}.\!w-\[80vw\]{width:80vw!important}.\!w-\[85vw\]{width:85vw!important}.\!w-\[95vw\]{width:95vw!important}.w-1\/3{width:33.333333%}.w-16{width:4rem}.w-2{width:.5rem}.w-2\/3{width:66.666667%}.w-32{width:8rem}.w-36{width:9rem}.w-4{width:1rem}.w-40{width:10rem}.w-44{width:11rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-50vw{width:50vw}.w-56{width:14rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-80{width:20rem}.w-\[95vw\]{width:95vw}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.w-px{width:1px}.w-xl{width:90px}.min-w-0{min-width:0px}.min-w-32{min-width:8rem}.min-w-fit{min-width:-moz-fit-content;min-width:fit-content}.min-w-full{min-width:100%}.min-w-xl{min-width:90px}.\!max-w-3xl{max-width:48rem!important}.\!max-w-4xl{max-width:56rem!important}.\!max-w-5xl{max-width:64rem!important}.\!max-w-\[90rem\]{max-width:90rem!important}.max-w-2xl{max-width:42rem}.max-w-6xl{max-width:72rem}.max-w-\[28rem\]{max-width:28rem}.max-w-\[34rem\]{max-width:34rem}.max-w-\[70\%\]{max-width:70%}.max-w-\[83\%\]{max-width:83%}.max-w-\[90\%\]{max-width:90%}.max-w-\[min\(26rem\,90vw\)\]{max-width:min(26rem,90vw)}.flex-1{flex:1 1 0%}.flex-none{flex:none}.flex-shrink-0,.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-full{--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[5px\]{--tw-translate-y: 5px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-110{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.select-text{-webkit-user-select:text;-moz-user-select:text;user-select:text}.resize{resize:both}.list-disc{list-style-type:disc}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-\[140px_minmax\(0\,1fr\)\]{grid-template-columns:140px minmax(0,1fr)}.grid-cols-\[18rem\,minmax\(0\,1fr\)\]{grid-template-columns:18rem minmax(0,1fr)}.grid-cols-\[1fr\,2\.25rem\]{grid-template-columns:1fr 2.25rem}.grid-cols-\[2\.25rem\,1fr\]{grid-template-columns:2.25rem 1fr}.grid-cols-\[minmax\(140px\,2fr\)_minmax\(0\,10fr\)_minmax\(0\,11fr\)\]{grid-template-columns:minmax(140px,2fr) minmax(0,10fr) minmax(0,11fr)}.grid-rows-3{grid-template-rows:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.place-items-center{place-items:center}.items-start{align-items:flex-start}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.gap-y-0{row-gap:0px}.gap-y-1{row-gap:.25rem}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.self-center{align-self:center}.justify-self-end{justify-self:end}.justify-self-center{justify-self:center}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-scroll{overflow:scroll}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-hidden{overflow-y:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.text-nowrap{text-wrap:nowrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.\!rounded-none{border-radius:0!important}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:8px}.rounded-md{border-radius:5px}.rounded-none{border-radius:0}.rounded-sm{border-radius:3px}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.\!border{border-width:1px!important}.border{border-width:1px}.border-0{border-width:0px}.border-thin{border-width:.4px}.border-x{border-left-width:1px;border-right-width:1px}.border-b{border-bottom-width:1px}.border-b-0{border-bottom-width:0px}.border-b-thin{border-bottom-width:.4px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-r{border-right-width:1px}.border-r-thin{border-right-width:.4px}.border-t{border-top-width:1px}.border-solid{border-style:solid}.border-dashed{border-style:dashed}.border-none{border-style:none}.\!border-emerald-500{--tw-border-opacity: 1 !important;border-color:rgb(16 185 129 / var(--tw-border-opacity, 1))!important}.\!border-rc-gray-500{--tw-border-opacity: 1 !important;border-color:rgb(75 75 75 / var(--tw-border-opacity, 1))!important}.border-emerald-500{--tw-border-opacity: 1;border-color:rgb(16 185 129 / var(--tw-border-opacity, 1))}.border-gray-600{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity, 1))}.border-rc-gray-110{border-color:#dddddd1a}.border-rc-gray-200\/80{border-color:#afafafcc}.border-rc-gray-300{--tw-border-opacity: 1;border-color:rgb(118 118 118 / var(--tw-border-opacity, 1))}.border-rc-gray-300\/40{border-color:#76767666}.border-rc-gray-500{--tw-border-opacity: 1;border-color:rgb(75 75 75 / var(--tw-border-opacity, 1))}.border-rc-gray-500\/70{border-color:#4b4b4bb3}.border-rc-gray-500\/80{border-color:#4b4b4bcc}.border-rc-gray-600{--tw-border-opacity: 1;border-color:rgb(55 55 55 / var(--tw-border-opacity, 1))}.border-rc-gray-650{--tw-border-opacity: 1;border-color:rgb(38 38 38 / var(--tw-border-opacity, 1))}.border-rc-gray-700{--tw-border-opacity: 1;border-color:rgb(34 34 34 / var(--tw-border-opacity, 1))}.border-rc-gray-700\/50{border-color:#22222280}.border-rc-gray-700\/60{border-color:#2229}.border-rc-green-200{--tw-border-opacity: 1;border-color:rgb(0 181 138 / var(--tw-border-opacity, 1))}.border-rc-green-200\/90{border-color:#00b58ae6}.border-rc-green-450{border-color:#0457431a}.border-rc-red-600{--tw-border-opacity: 1;border-color:rgb(255 102 102 / var(--tw-border-opacity, 1))}.border-red-500{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.border-red-500\/60{border-color:#ef444499}.border-red-500\/70{border-color:#ef4444b3}.border-transparent{border-color:transparent}.border-r-gray-700\/50{border-right-color:#37415180}.border-r-rc-gray-600{--tw-border-opacity: 1;border-right-color:rgb(55 55 55 / var(--tw-border-opacity, 1))}.\!bg-rc-gray-700{--tw-bg-opacity: 1 !important;background-color:rgb(34 34 34 / var(--tw-bg-opacity, 1))!important}.bg-black\/20{background-color:#0003}.bg-black\/50{background-color:#00000080}.bg-black\/60{background-color:#0009}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.bg-gray-600{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity, 1))}.bg-rc-gray-600{--tw-bg-opacity: 1;background-color:rgb(55 55 55 / var(--tw-bg-opacity, 1))}.bg-rc-gray-700{--tw-bg-opacity: 1;background-color:rgb(34 34 34 / var(--tw-bg-opacity, 1))}.bg-rc-gray-700\/45{background-color:#22222273}.bg-rc-gray-700\/60{background-color:#2229}.bg-rc-gray-700\/70{background-color:#222222b3}.bg-rc-gray-800{--tw-bg-opacity: 1;background-color:rgb(29 29 29 / var(--tw-bg-opacity, 1))}.bg-rc-gray-800\/40{background-color:#1d1d1d66}.bg-rc-gray-900{--tw-bg-opacity: 1;background-color:rgb(25 25 25 / var(--tw-bg-opacity, 1))}.bg-rc-gray-900\/40{background-color:#19191966}.bg-rc-gray-900\/60{background-color:#19191999}.bg-rc-gray-900\/95{background-color:#191919f2}.bg-rc-gray-930{background-color:#00000003}.bg-rc-gray-930\/90{background-color:#000000e6}.bg-rc-gray-980{--tw-bg-opacity: 1;background-color:rgb(24 24 24 / var(--tw-bg-opacity, 1))}.bg-rc-green-200{--tw-bg-opacity: 1;background-color:rgb(0 181 138 / var(--tw-bg-opacity, 1))}.bg-rc-green-350{background-color:#09754f99}.bg-rc-green-700{--tw-bg-opacity: 1;background-color:rgb(0 90 69 / var(--tw-bg-opacity, 1))}.bg-rc-green-700\/80{background-color:#005a45cc}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-950\/20{background-color:#450a0a33}.bg-red-950\/30{background-color:#450a0a4d}.bg-red-950\/40{background-color:#450a0a66}.bg-red-950\/90{background-color:#450a0ae6}.bg-transparent{background-color:transparent}.object-contain{-o-object-fit:contain;object-fit:contain}.\!p-2{padding:.5rem!important}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.\!px-0{padding-left:0!important;padding-right:0!important}.\!px-3{padding-left:.75rem!important;padding-right:.75rem!important}.\!py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-8{padding-top:2rem;padding-bottom:2rem}.\!pb-1{padding-bottom:.25rem!important}.\!pl-\[4\.25rem\]{padding-left:4.25rem!important}.\!pl-\[5\.5rem\]{padding-left:5.5rem!important}.\!pr-8{padding-right:2rem!important}.\!pt-\[5px\]{padding-top:5px!important}.pb-1{padding-bottom:.25rem}.pb-16{padding-bottom:4rem}.pb-2{padding-bottom:.5rem}.pb-2\.5{padding-bottom:.625rem}.pb-3{padding-bottom:.75rem}.pb-6{padding-bottom:1.5rem}.pb-xs{padding-bottom:2px}.pl-11{padding-left:2.75rem}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pl-5{padding-left:1.25rem}.pr-1{padding-right:.25rem}.pr-2{padding-right:.5rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pr-8{padding-right:2rem}.pr-80{padding-right:20rem}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-40{padding-top:10rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-justify{text-align:justify}.align-text-bottom{vertical-align:text-bottom}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-sans{font-family:DarkerGrotesque,ui-sans-serif,system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.\!text-base{font-size:.875rem!important;line-height:1.2!important}.text-4xl{font-size:2.25rem;line-height:1.2}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[16px\]{font-size:16px}.text-base{font-size:.875rem;line-height:1.2}.text-lg{font-size:1.125rem;line-height:1.2;letter-spacing:.005em}.text-sm{font-size:.8125rem;line-height:1.25;letter-spacing:.005em}.text-xl{font-size:1.25rem;line-height:.9;letter-spacing:.005em}.text-xs{font-size:.75rem;line-height:1.1;letter-spacing:.01em}.\!font-medium{font-weight:500!important}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.\!leading-6{line-height:1.5rem!important}.leading-6{line-height:1.5rem}.leading-\[1\.2\]{line-height:1.2}.leading-\[30px\]{line-height:30px}.leading-none{line-height:1}.leading-snug{line-height:1.375}.tracking-wide{letter-spacing:.025em}.text-emerald-500{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.text-gray-100{--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity, 1))}.text-gray-200{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-inherit{color:inherit}.text-rc-blue{--tw-text-opacity: 1;color:rgb(86 156 214 / var(--tw-text-opacity, 1))}.text-rc-gray-050{color:#ffffff1a}.text-rc-gray-100{--tw-text-opacity: 1;color:rgb(221 221 221 / var(--tw-text-opacity, 1))}.text-rc-gray-200{--tw-text-opacity: 1;color:rgb(175 175 175 / var(--tw-text-opacity, 1))}.text-rc-gray-200\/70{color:#afafafb3}.text-rc-gray-300{--tw-text-opacity: 1;color:rgb(118 118 118 / var(--tw-text-opacity, 1))}.text-rc-gray-400{--tw-text-opacity: 1;color:rgb(99 99 99 / var(--tw-text-opacity, 1))}.text-rc-gray-400\/70{color:#636363b3}.text-rc-gray-500{--tw-text-opacity: 1;color:rgb(75 75 75 / var(--tw-text-opacity, 1))}.text-rc-green-200{--tw-text-opacity: 1;color:rgb(0 181 138 / var(--tw-text-opacity, 1))}.text-rc-green-400{--tw-text-opacity: 1;color:rgb(4 87 67 / var(--tw-text-opacity, 1))}.text-rc-red-600{--tw-text-opacity: 1;color:rgb(255 102 102 / var(--tw-text-opacity, 1))}.text-rc-red-800{--tw-text-opacity: 1;color:rgb(255 129 101 / var(--tw-text-opacity, 1))}.text-red-100{--tw-text-opacity: 1;color:rgb(254 226 226 / var(--tw-text-opacity, 1))}.text-red-200{--tw-text-opacity: 1;color:rgb(254 202 202 / var(--tw-text-opacity, 1))}.text-red-300{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.text-red-800{--tw-text-opacity: 1;color:rgb(153 27 27 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.placeholder-rc-gray-300::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(118 118 118 / var(--tw-placeholder-opacity, 1))}.placeholder-rc-gray-300::placeholder{--tw-placeholder-opacity: 1;color:rgb(118 118 118 / var(--tw-placeholder-opacity, 1))}.\!accent-rc-gray-600{accent-color:#373737!important}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-65{opacity:.65}.opacity-80{opacity:.8}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_0_1px_rgba\(0\,0\,0\,0\.12\)\]{--tw-shadow: 0 0 0 1px rgba(0,0,0,.12);--tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_0_1px_rgba\(0\,0\,0\,0\.28\)\]{--tw-shadow: 0 0 0 1px rgba(0,0,0,.28);--tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-inner-white-soft{--tw-shadow: inset 0 0 10px 0 rgba(255,255,255,.1);--tw-shadow-colored: inset 0 0 10px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 0 0 1px rgba(118, 118, 118, .4);--tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.ring-0{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-2xl{--tw-backdrop-blur: blur(40px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-3xl{--tw-backdrop-blur: blur(64px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-md{--tw-backdrop-blur: blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-xl{--tw-backdrop-blur: blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.\!duration-75{transition-duration:75ms!important}.duration-100{transition-duration:.1s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-75{transition-duration:75ms}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.analysis-quote{border-radius:2px}.analysis-quote-focus{box-shadow:inset 0 0 0 1px #fecacaf2,inset 0 0 0 3px #dc262640;border-radius:2px}.analysis-quote-l1{background:#dc26262e}.analysis-quote-l2{background:#dc26263d}.analysis-quote-l3{background:#dc26264d}.analysis-quote-l4{background:#dc26265c}.analysis-quote-l5{background:#dc26266b}.analysis-quote-l6{background:#dc26267a}.analysis-quote-l7{background:#dc26268a}.analysis-quote-l8{background:#dc262699}.analysis-quote-l9{background:#dc2626a8}.analysis-quote-l10{background:#dc2626b8}.monaco-editor .test-expected-output{color:#00b58a!important}.monaco-editor .test-expected-json-output{color:#00b58a!important;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace!important}.monaco-editor .test-expected-output-tag{color:#ce9178!important}.placeholder\:text-gray-500::-moz-placeholder{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.placeholder\:text-gray-500::placeholder{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.last\:border-b-0:last-child{border-bottom-width:0px}.checked\:border-rc-gray-200:checked{--tw-border-opacity: 1;border-color:rgb(175 175 175 / var(--tw-border-opacity, 1))}.checked\:bg-rc-gray-600:checked{--tw-bg-opacity: 1;background-color:rgb(55 55 55 / var(--tw-bg-opacity, 1))}.hover\:border:hover{border-width:1px}.hover\:\!border-emerald-500:hover{--tw-border-opacity: 1 !important;border-color:rgb(16 185 129 / var(--tw-border-opacity, 1))!important}.hover\:border-gray-500:hover{--tw-border-opacity: 1;border-color:rgb(107 114 128 / var(--tw-border-opacity, 1))}.hover\:border-rc-gray-200:hover{--tw-border-opacity: 1;border-color:rgb(175 175 175 / var(--tw-border-opacity, 1))}.hover\:border-rc-gray-400:hover{--tw-border-opacity: 1;border-color:rgb(99 99 99 / var(--tw-border-opacity, 1))}.hover\:border-rc-gray-500:hover{--tw-border-opacity: 1;border-color:rgb(75 75 75 / var(--tw-border-opacity, 1))}.hover\:border-rc-green-200:hover{--tw-border-opacity: 1;border-color:rgb(0 181 138 / var(--tw-border-opacity, 1))}.hover\:bg-rc-gray-600:hover{--tw-bg-opacity: 1;background-color:rgb(55 55 55 / var(--tw-bg-opacity, 1))}.hover\:bg-rc-gray-650:hover{--tw-bg-opacity: 1;background-color:rgb(38 38 38 / var(--tw-bg-opacity, 1))}.hover\:bg-rc-gray-700:hover{--tw-bg-opacity: 1;background-color:rgb(34 34 34 / var(--tw-bg-opacity, 1))}.hover\:bg-rc-gray-700\/70:hover{background-color:#222222b3}.hover\:bg-rc-gray-800:hover{--tw-bg-opacity: 1;background-color:rgb(29 29 29 / var(--tw-bg-opacity, 1))}.hover\:bg-rc-gray-800\/40:hover{background-color:#1d1d1d66}.hover\:bg-rc-gray-900:hover{--tw-bg-opacity: 1;background-color:rgb(25 25 25 / var(--tw-bg-opacity, 1))}.hover\:bg-rc-green-250:hover{background-color:#005c3b99}.hover\:bg-rc-green-700:hover{--tw-bg-opacity: 1;background-color:rgb(0 90 69 / var(--tw-bg-opacity, 1))}.hover\:bg-double-gradient:hover{background-image:linear-gradient(0deg,#00000003,#00000003),linear-gradient(0deg,#ffffff0d,#ffffff0d)}.hover\:text-gray-100:hover{--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity, 1))}.hover\:text-gray-200:hover{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.hover\:text-rc-gray-100:hover{--tw-text-opacity: 1;color:rgb(221 221 221 / var(--tw-text-opacity, 1))}.hover\:text-rc-gray-200:hover{--tw-text-opacity: 1;color:rgb(175 175 175 / var(--tw-text-opacity, 1))}.hover\:text-rc-gray-300:hover{--tw-text-opacity: 1;color:rgb(118 118 118 / var(--tw-text-opacity, 1))}.hover\:text-rc-green-100:hover{--tw-text-opacity: 1;color:rgb(147 255 109 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.focus\:\!border-emerald-500:focus{--tw-border-opacity: 1 !important;border-color:rgb(16 185 129 / var(--tw-border-opacity, 1))!important}.focus\:border-gray-500:focus{--tw-border-opacity: 1;border-color:rgb(107 114 128 / var(--tw-border-opacity, 1))}.focus\:border-rc-gray-300:focus{--tw-border-opacity: 1;border-color:rgb(118 118 118 / var(--tw-border-opacity, 1))}.focus\:border-rc-gray-400:focus{--tw-border-opacity: 1;border-color:rgb(99 99 99 / var(--tw-border-opacity, 1))}.focus\:bg-rc-gray-400:focus{--tw-bg-opacity: 1;background-color:rgb(99 99 99 / var(--tw-bg-opacity, 1))}.focus\:bg-rc-gray-700:focus{--tw-bg-opacity: 1;background-color:rgb(34 34 34 / var(--tw-bg-opacity, 1))}.focus\:bg-rc-green-200:focus{--tw-bg-opacity: 1;background-color:rgb(0 181 138 / var(--tw-bg-opacity, 1))}.focus\:bg-double-gradient:focus{background-image:linear-gradient(0deg,#00000003,#00000003),linear-gradient(0deg,#ffffff0d,#ffffff0d)}.focus\:text-gray-100:focus{--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity, 1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-0:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-1:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-rc-gray-300:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(118 118 118 / var(--tw-ring-opacity, 1))}.focus-visible\:border-rc-gray-400:focus-visible{--tw-border-opacity: 1;border-color:rgb(99 99 99 / var(--tw-border-opacity, 1))}.focus-visible\:shadow-none:focus-visible{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:outline:focus-visible{outline-style:solid}.focus-visible\:outline-2:focus-visible{outline-width:2px}.focus-visible\:-outline-offset-2:focus-visible{outline-offset:-2px}.active\:border-rc-gray-200:active{--tw-border-opacity: 1;border-color:rgb(175 175 175 / var(--tw-border-opacity, 1))}.active\:border-rc-gray-400:active{--tw-border-opacity: 1;border-color:rgb(99 99 99 / var(--tw-border-opacity, 1))}.active\:bg-rc-gray-600:active{--tw-bg-opacity: 1;background-color:rgb(55 55 55 / var(--tw-bg-opacity, 1))}.active\:bg-rc-gray-650:active{--tw-bg-opacity: 1;background-color:rgb(38 38 38 / var(--tw-bg-opacity, 1))}.active\:bg-rc-green-250:active{background-color:#005c3b99}.active\:bg-double-gradient:active{background-image:linear-gradient(0deg,#00000003,#00000003),linear-gradient(0deg,#ffffff0d,#ffffff0d)}.active\:text-gray-100:active{--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity, 1))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:cursor-wait:disabled{cursor:wait}.disabled\:opacity-35:disabled{opacity:.35}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-70:disabled{opacity:.7}.disabled\:hover\:bg-transparent:hover:disabled{background-color:transparent}.disabled\:hover\:text-rc-gray-400:hover:disabled{--tw-text-opacity: 1;color:rgb(99 99 99 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-rc-gray-200{--tw-text-opacity: 1;color:rgb(175 175 175 / var(--tw-text-opacity, 1))}.aria-selected\:text-rc-green-200[aria-selected=true]{--tw-text-opacity: 1;color:rgb(0 181 138 / var(--tw-text-opacity, 1))}.aria-selected\:after\:absolute[aria-selected=true]:after{content:var(--tw-content);position:absolute}.aria-selected\:after\:inset-x-0[aria-selected=true]:after{content:var(--tw-content);left:0;right:0}.aria-selected\:after\:bottom-0[aria-selected=true]:after{content:var(--tw-content);bottom:0}.aria-selected\:after\:h-0\.5[aria-selected=true]:after{content:var(--tw-content);height:.125rem}.aria-selected\:after\:bg-rc-green-200[aria-selected=true]:after{content:var(--tw-content);--tw-bg-opacity: 1;background-color:rgb(0 181 138 / var(--tw-bg-opacity, 1))}.aria-selected\:after\:content-\[\'\'\][aria-selected=true]:after{--tw-content: "";content:var(--tw-content)}@media (min-width: 640px){.sm\:max-w-\[80\%\]{max-width:80%}.sm\:max-w-\[85\%\]{max-width:85%}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width: 768px){.md\:max-w-\[70\%\]{max-width:70%}.md\:max-w-\[75\%\]{max-width:75%}}@media (min-width: 1024px){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}body{margin:0;padding:0;font-family:DarkerGrotesque,ui-sans-serif,system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:.875rem;line-height:1.2;font-weight:400;--tw-text-opacity: 1;color:rgb(118 118 118 / var(--tw-text-opacity, 1))}*{margin:0;padding:0;box-sizing:border-box}
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const A=globalThis.__sveltekit_1o7y843.env;var re=Object.create,U=Object.defineProperty,te=Object.getOwnPropertyDescriptor,K=Object.getOwnPropertyNames,ne=Object.getPrototypeOf,oe=Object.prototype.hasOwnProperty,v=(r,e)=>function(){return e||(0,r[K(r)[0]])((e={exports:{}}).exports,e),e.exports},ie=(r,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(var n=K(e),i=0,u=n.length,s;i<u;i++)s=n[i],!oe.call(r,s)&&s!==t&&U(r,s,{get:(c=>e[c]).bind(null,s),enumerable:!(o=te(e,s))||o.enumerable});return r},p=(r,e,t)=>(t=r!=null?re(ne(r)):{},ie(e||!r||!r.__esModule?U(t,"default",{value:r,enumerable:!0}):t,r)),z=v({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/typeof.js"(r,e){function t(o){"@babel/helpers - typeof";return e.exports=t=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(n){return typeof n}:function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},e.exports.__esModule=!0,e.exports.default=e.exports,t(o)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports}}),se=v({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/toPrimitive.js"(r,e){var t=z().default;function o(n,i){if(t(n)!="object"||!n)return n;var u=n[Symbol.toPrimitive];if(u!==void 0){var s=u.call(n,i||"default");if(t(s)!="object")return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return(i==="string"?String:Number)(n)}e.exports=o,e.exports.__esModule=!0,e.exports.default=e.exports}}),ue=v({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/toPropertyKey.js"(r,e){var t=z().default,o=se();function n(i){var u=o(i,"string");return t(u)=="symbol"?u:u+""}e.exports=n,e.exports.__esModule=!0,e.exports.default=e.exports}}),_=v({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/defineProperty.js"(r,e){var t=ue();function o(n,i,u){return(i=t(i))in n?Object.defineProperty(n,i,{value:u,enumerable:!0,configurable:!0,writable:!0}):n[i]=u,n}e.exports=o,e.exports.__esModule=!0,e.exports.default=e.exports}}),y=v({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/objectSpread2.js"(r,e){var t=_();function o(i,u){var s=Object.keys(i);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(i);u&&(c=c.filter(function(a){return Object.getOwnPropertyDescriptor(i,a).enumerable})),s.push.apply(s,c)}return s}function n(i){for(var u=1;u<arguments.length;u++){var s=arguments[u]!=null?arguments[u]:{};u%2?o(Object(s),!0).forEach(function(c){t(i,c,s[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(s)):o(Object(s)).forEach(function(c){Object.defineProperty(i,c,Object.getOwnPropertyDescriptor(s,c))})}return i}e.exports=n,e.exports.__esModule=!0,e.exports.default=e.exports}});function k(r){const e={subscribe(t){let o=null,n=!1,i=!1,u=!1;function s(){if(o===null){u=!0;return}i||(i=!0,typeof o=="function"?o():o&&o.unsubscribe())}return o=r({next(c){var a;n||(a=t.next)===null||a===void 0||a.call(t,c)},error(c){var a;n||(n=!0,(a=t.error)===null||a===void 0||a.call(t,c),s())},complete(){var c;n||(n=!0,(c=t.complete)===null||c===void 0||c.call(t),s())}}),u&&s(),{unsubscribe:s}},pipe(...t){return t.reduce(ce,e)}};return e}function ce(r,e){return e(r)}function ae(r){const e=new AbortController;return new Promise((o,n)=>{let i=!1;function u(){i||(i=!0,s.unsubscribe())}e.signal.addEventListener("abort",()=>{n(e.signal.reason)});const s=r.subscribe({next(c){i=!0,o(c),u()},error(c){n(c)},complete(){e.abort(),u()}})})}function le(r){return e=>{let t=0,o=null;const n=[];function i(){o||(o=e.subscribe({next(s){for(const a of n){var c;(c=a.next)===null||c===void 0||c.call(a,s)}},error(s){for(const a of n){var c;(c=a.error)===null||c===void 0||c.call(a,s)}},complete(){for(const c of n){var s;(s=c.complete)===null||s===void 0||s.call(c)}}}))}function u(){if(t===0&&o){const s=o;o=null,s.unsubscribe()}}return k(s=>(t++,n.push(s),i(),{unsubscribe(){t--,u();const c=n.findIndex(a=>a===s);c>-1&&n.splice(c,1)}}))}}function pe(r){let e=r;const t=[],o=u=>{e!==void 0&&u.next(e),t.push(u)},n=u=>{t.splice(t.indexOf(u),1)},i=k(u=>(o(u),()=>{n(u)}));return i.next=u=>{if(e!==u){e=u;for(const s of t)s.next(u)}},i.get=()=>e,i}function fe(r){return k(e=>{function t(n=0,i=r.op){const u=r.links[n];if(!u)throw new Error("No more links to execute - did you forget to add an ending link?");return u({op:i,next(c){return t(n+1,c)}})}return t().subscribe(e)})}function w(r){return!!r&&!Array.isArray(r)&&typeof r=="object"}function de(){return Object.create(null)}var ye=Object.create,F=Object.defineProperty,ve=Object.getOwnPropertyDescriptor,B=Object.getOwnPropertyNames,be=Object.getPrototypeOf,me=Object.prototype.hasOwnProperty,g=(r,e)=>function(){return e||(0,r[B(r)[0]])((e={exports:{}}).exports,e),e.exports},he=(r,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(var n=B(e),i=0,u=n.length,s;i<u;i++)s=n[i],!me.call(r,s)&&s!==t&&F(r,s,{get:(c=>e[c]).bind(null,s),enumerable:!(o=ve(e,s))||o.enumerable});return r},q=(r,e,t)=>(t=r!=null?ye(be(r)):{},he(F(t,"default",{value:r,enumerable:!0}),r));const J=()=>{},H=r=>{Object.freeze&&Object.freeze(r)};function Y(r,e,t){var o;const n=e.join(".");return(o=t[n])!==null&&o!==void 0||(t[n]=new Proxy(J,{get(i,u){if(!(typeof u!="string"||u==="then"))return Y(r,[...e,u],t)},apply(i,u,s){const c=e[e.length-1];if(c==="valueOf"||c==="toString"||c==="toJSON")return`tRPC.proxy(${e.slice(0,-1).join(".")})`;let a={args:s,path:e};return c==="call"?a={args:s.length>=2?[s[1]]:[],path:e.slice(0,-1)}:c==="apply"&&(a={args:s.length>=2?s[1]:[],path:e.slice(0,-1)}),H(a.args),H(a.path),r(a)}})),t[n]}const xe=r=>Y(r,[],de()),_e=r=>new Proxy(J,{get(e,t){if(t!=="then")return r(t)}});var Q=g({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/typeof.js"(r,e){function t(o){"@babel/helpers - typeof";return e.exports=t=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(n){return typeof n}:function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},e.exports.__esModule=!0,e.exports.default=e.exports,t(o)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports}}),Pe=g({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/toPrimitive.js"(r,e){var t=Q().default;function o(n,i){if(t(n)!="object"||!n)return n;var u=n[Symbol.toPrimitive];if(u!==void 0){var s=u.call(n,i||"default");if(t(s)!="object")return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return(i==="string"?String:Number)(n)}e.exports=o,e.exports.__esModule=!0,e.exports.default=e.exports}}),Oe=g({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/toPropertyKey.js"(r,e){var t=Q().default,o=Pe();function n(i){var u=o(i,"string");return t(u)=="symbol"?u:u+""}e.exports=n,e.exports.__esModule=!0,e.exports.default=e.exports}}),X=g({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/defineProperty.js"(r,e){var t=Oe();function o(n,i,u){return(i=t(i))in n?Object.defineProperty(n,i,{value:u,enumerable:!0,configurable:!0,writable:!0}):n[i]=u,n}e.exports=o,e.exports.__esModule=!0,e.exports.default=e.exports}}),L=g({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/objectSpread2.js"(r,e){var t=X();function o(i,u){var s=Object.keys(i);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(i);u&&(c=c.filter(function(a){return Object.getOwnPropertyDescriptor(i,a).enumerable})),s.push.apply(s,c)}return s}function n(i){for(var u=1;u<arguments.length;u++){var s=arguments[u]!=null?arguments[u]:{};u%2?o(Object(s),!0).forEach(function(c){t(i,c,s[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(s)):o(Object(s)).forEach(function(c){Object.defineProperty(i,c,Object.getOwnPropertyDescriptor(s,c))})}return i}e.exports=n,e.exports.__esModule=!0,e.exports.default=e.exports}});q(L());q(X());var S=q(L());function je(r,e){if("error"in r){const o=e.deserialize(r.error);return{ok:!1,error:(0,S.default)((0,S.default)({},r),{},{error:o})}}return{ok:!0,result:(0,S.default)((0,S.default)({},r.result),(!r.result.type||r.result.type==="data")&&{type:"data",data:e.deserialize(r.result.data)})}}var I=class extends Error{constructor(){super("Unable to transform response from server")}};function we(r,e){let t;try{t=je(r,e)}catch{throw new I}if(!t.ok&&(!w(t.error.error)||typeof t.error.error.code!="number"))throw new I;if(t.ok&&!w(t.result))throw new I;return t}q(L());var T=p(_(),1),P=p(y(),1);function ge(r){return r instanceof C}function Se(r){return w(r)&&w(r.error)&&typeof r.error.code=="number"&&typeof r.error.message=="string"}function Te(r,e){return typeof r=="string"?r:w(r)&&typeof r.message=="string"?r.message:e}var C=class E extends Error{constructor(e,t){var o,n;const i=t==null?void 0:t.cause;super(e,{cause:i}),(0,T.default)(this,"cause",void 0),(0,T.default)(this,"shape",void 0),(0,T.default)(this,"data",void 0),(0,T.default)(this,"meta",void 0),this.meta=t==null?void 0:t.meta,this.cause=i,this.shape=t==null||(o=t.result)===null||o===void 0?void 0:o.error,this.data=t==null||(n=t.result)===null||n===void 0?void 0:n.error.data,this.name="TRPCClientError",Object.setPrototypeOf(this,E.prototype)}static from(e,t={}){const o=e;return ge(o)?(t.meta&&(o.meta=(0,P.default)((0,P.default)({},o.meta),t.meta)),o):Se(o)?new E(o.error.message,(0,P.default)((0,P.default)({},t),{},{result:o,cause:t.cause})):new E(Te(o,"Unknown error"),(0,P.default)((0,P.default)({},t),{},{cause:o}))}};function Ee(r){const e=r;return e?"input"in e?e:{input:e,output:e}:{input:{serialize:t=>t,deserialize:t=>t},output:{serialize:t=>t,deserialize:t=>t}}}const W=r=>typeof r=="function";function Ce(r){if(r)return r;if(typeof window<"u"&&W(window.fetch))return window.fetch;if(typeof globalThis<"u"&&W(globalThis.fetch))return globalThis.fetch;throw new Error("No fetch implementation found")}var j=p(y());function ke(r){return{url:r.url.toString(),fetch:r.fetch,transformer:Ee(r.transformer),methodOverride:r.methodOverride}}function qe(r){const e={};for(let t=0;t<r.length;t++){const o=r[t];e[t]=o}return e}const Ae={query:"GET",mutation:"POST",subscription:"PATCH"};function Z(r){return"input"in r?r.transformer.input.serialize(r.input):qe(r.inputs.map(e=>r.transformer.input.serialize(e)))}const R=r=>{const e=r.url.split("?");let o=e[0].replace(/\/$/,"")+"/"+r.path;const n=[];if(e[1]&&n.push(e[1]),"inputs"in r&&n.push("batch=1"),r.type==="query"||r.type==="subscription"){const i=Z(r);i!==void 0&&r.methodOverride!=="POST"&&n.push(`input=${encodeURIComponent(JSON.stringify(i))}`)}return n.length&&(o+="?"+n.join("&")),o},Ie=r=>{if(r.type==="query"&&r.methodOverride!=="POST")return;const e=Z(r);return e!==void 0?JSON.stringify(e):void 0},Me=r=>D((0,j.default)((0,j.default)({},r),{},{contentTypeHeader:"application/json",getUrl:R,getBody:Ie}));var Re=class extends Error{constructor(){const r="AbortError";super(r),this.name=r,this.message=r}};const De=r=>{var e;if(r!=null&&r.aborted)throw(e=r.throwIfAborted)===null||e===void 0||e.call(r),typeof DOMException<"u"?new DOMException("AbortError","AbortError"):new Re};async function Ne(r){var e,t;De(r.signal);const o=r.getUrl(r),n=r.getBody(r),i=(e=r.methodOverride)!==null&&e!==void 0?e:Ae[r.type],u=await(async()=>{const c=await r.headers();return Symbol.iterator in c?Object.fromEntries(c):c})(),s=(0,j.default)((0,j.default)((0,j.default)({},r.contentTypeHeader&&i!=="GET"?{"content-type":r.contentTypeHeader}:{}),r.trpcAcceptHeader?{[(t=r.trpcAcceptHeaderKey)!==null&&t!==void 0?t:"trpc-accept"]:r.trpcAcceptHeader}:void 0),u);return Ce(r.fetch)(o,{method:i,signal:r.signal,body:n,headers:s})}async function D(r){const e={},t=await Ne(r);e.response=t;const o=await t.json();return e.responseJSON=o,{json:o,meta:e}}function Le(r){return r instanceof Uint8Array||r instanceof Blob}function $e(r){return r instanceof FormData}var O=p(y(),1);const He=r=>{if("input"in r){const{input:e}=r;if($e(e)){if(r.type!=="mutation"&&r.methodOverride!=="POST")throw new Error("FormData is only supported for mutations");return D((0,O.default)((0,O.default)({},r),{},{contentTypeHeader:void 0,getUrl:R,getBody:()=>e}))}if(Le(e)){if(r.type!=="mutation"&&r.methodOverride!=="POST")throw new Error("Octet type input is only supported for mutations");return D((0,O.default)((0,O.default)({},r),{},{contentTypeHeader:"application/octet-stream",getUrl:R,getBody:()=>e}))}}return Me(r)};function We(r){const e=ke(r);return()=>t=>{const{op:o}=t;return k(n=>{const{path:i,input:u,type:s}=o;/* istanbul ignore if -- @preserve */if(s==="subscription")throw new Error("Subscriptions are unsupported by `httpLink` - use `httpSubscriptionLink` or `wsLink`");const c=He((0,O.default)((0,O.default)({},e),{},{type:s,path:i,input:u,signal:o.signal,headers(){return r.headers?typeof r.headers=="function"?r.headers({op:o}):r.headers:{}}}));let a;return c.then(l=>{a=l.meta;const f=we(l.json,e.transformer.output);if(!f.ok){n.error(C.from(f.error,{meta:a}));return}n.next({context:l.meta,result:f.result}),n.complete()}).catch(l=>{n.error(C.from(l,{meta:a}))}),()=>{}})}}p(y(),1);p(y(),1);const V=(r,...e)=>typeof r=="function"?r(...e):r;p(_(),1);function Ge(){let r,e;return{promise:new Promise((o,n)=>{r=o,e=n}),resolve:r,reject:e}}async function Ue(r){const e=await V(r.url);if(!r.connectionParams)return e;const o=`${e.includes("?")?"&":"?"}connectionParams=1`;return e+o}async function Ke(r,e){const t={method:"connectionParams",data:await V(r)};return e.encode(t)}p(_(),1);var h=p(_(),1);function ze(r){const{promise:e,resolve:t,reject:o}=Ge();return r.addEventListener("open",()=>{r.removeEventListener("error",o),t()}),r.addEventListener("error",o),e}function Fe(r,{intervalMs:e,pongTimeoutMs:t}){let o,n;function i(){o=setTimeout(()=>{r.send("PING"),n=setTimeout(()=>{r.close()},t)},e)}function u(){clearTimeout(o),i()}function s(){clearTimeout(n),u()}r.addEventListener("open",i),r.addEventListener("message",({data:c})=>{clearTimeout(o),i(),c==="PONG"&&s()}),r.addEventListener("close",()=>{clearTimeout(o),clearTimeout(n)})}var Be=class N{constructor(e){var t;if((0,h.default)(this,"id",++N.connectCount),(0,h.default)(this,"WebSocketPonyfill",void 0),(0,h.default)(this,"urlOptions",void 0),(0,h.default)(this,"keepAliveOpts",void 0),(0,h.default)(this,"encoder",void 0),(0,h.default)(this,"wsObservable",pe(null)),(0,h.default)(this,"openPromise",null),this.WebSocketPonyfill=(t=e.WebSocketPonyfill)!==null&&t!==void 0?t:WebSocket,!this.WebSocketPonyfill)throw new Error("No WebSocket implementation found - you probably don't want to use this on the server, but if you do you need to pass a `WebSocket`-ponyfill");this.urlOptions=e.urlOptions,this.keepAliveOpts=e.keepAlive,this.encoder=e.encoder}get ws(){return this.wsObservable.get()}set ws(e){this.wsObservable.next(e)}isOpen(){return!!this.ws&&this.ws.readyState===this.WebSocketPonyfill.OPEN&&!this.openPromise}isClosed(){return!!this.ws&&(this.ws.readyState===this.WebSocketPonyfill.CLOSING||this.ws.readyState===this.WebSocketPonyfill.CLOSED)}async open(){var e=this;if(e.openPromise)return e.openPromise;e.id=++N.connectCount;const t=Ue(e.urlOptions).then(o=>new e.WebSocketPonyfill(o));e.openPromise=t.then(async o=>{e.ws=o,o.binaryType="arraybuffer",o.addEventListener("message",function({data:n}){n==="PING"&&this.send("PONG")}),e.keepAliveOpts.enabled&&Fe(o,e.keepAliveOpts),o.addEventListener("close",()=>{e.ws===o&&(e.ws=null)}),await ze(o),e.urlOptions.connectionParams&&o.send(await Ke(e.urlOptions.connectionParams,e.encoder))});try{await e.openPromise}finally{e.openPromise=null}}async close(){var e=this;try{await e.openPromise}finally{var t;(t=e.ws)===null||t===void 0||t.close()}}};(0,h.default)(Be,"connectCount",0);p(_(),1);p(y(),1);var M=p(_(),1),G=p(y(),1),Je=class{constructor(r){(0,M.default)(this,"links",void 0),(0,M.default)(this,"runtime",void 0),(0,M.default)(this,"requestId",void 0),this.requestId=0,this.runtime={},this.links=r.links.map(e=>e(this.runtime))}$request(r){var e;return fe({links:this.links,op:(0,G.default)((0,G.default)({},r),{},{context:(e=r.context)!==null&&e!==void 0?e:{},id:++this.requestId})}).pipe(le())}async requestAsPromise(r){var e=this;try{const t=e.$request(r);return(await ae(t)).result.data}catch(t){throw C.from(t)}}query(r,e,t){return this.requestAsPromise({type:"query",path:r,input:e,context:t==null?void 0:t.context,signal:t==null?void 0:t.signal})}mutation(r,e,t){return this.requestAsPromise({type:"mutation",path:r,input:e,context:t==null?void 0:t.context,signal:t==null?void 0:t.signal})}subscription(r,e,t){return this.$request({type:"subscription",path:r,input:e,context:t.context,signal:t.signal}).subscribe({next(n){switch(n.result.type){case"state":{var i;(i=t.onConnectionStateChange)===null||i===void 0||i.call(t,n.result);break}case"started":{var u;(u=t.onStarted)===null||u===void 0||u.call(t,{context:n.context});break}case"stopped":{var s;(s=t.onStopped)===null||s===void 0||s.call(t);break}case"data":case void 0:{var c;(c=t.onData)===null||c===void 0||c.call(t,n.result.data);break}}},error(n){var i;(i=t.onError)===null||i===void 0||i.call(t,n)},complete(){var n;(n=t.onComplete)===null||n===void 0||n.call(t)}})}};const Ye=Symbol.for("trpc_untypedClient"),Qe={query:"query",mutate:"mutation",subscribe:"subscription"},Xe=r=>Qe[r];function Ze(r){const e=xe(({path:t,args:o})=>{const n=[...t],i=Xe(n.pop()),u=n.join(".");return r[i](u,...o)});return _e(t=>t===Ye?r:e[t])}function Ve(r){const e=new Je(r);return Ze(e)}p(y(),1);p(y(),1);var er=v({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/asyncIterator.js"(r,e){function t(n){var i,u,s,c=2;for(typeof Symbol<"u"&&(u=Symbol.asyncIterator,s=Symbol.iterator);c--;){if(u&&(i=n[u])!=null)return i.call(n);if(s&&(i=n[s])!=null)return new o(i.call(n));u="@@asyncIterator",s="@@iterator"}throw new TypeError("Object is not async iterable")}function o(n){function i(u){if(Object(u)!==u)return Promise.reject(new TypeError(u+" is not an object."));var s=u.done;return Promise.resolve(u.value).then(function(c){return{value:c,done:s}})}return o=function(s){this.s=s,this.n=s.next},o.prototype={s:null,n:null,next:function(){return i(this.n.apply(this.s,arguments))},return:function(s){var c=this.s.return;return c===void 0?Promise.resolve({value:s,done:!0}):i(c.apply(this.s,arguments))},throw:function(s){var c=this.s.return;return c===void 0?Promise.reject(s):i(c.apply(this.s,arguments))}},new o(n)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports}});p(er(),1);p(y(),1);var rr=v({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/usingCtx.js"(r,e){function t(){var o=typeof SuppressedError=="function"?SuppressedError:function(s,c){var a=Error();return a.name="SuppressedError",a.error=s,a.suppressed=c,a},n={},i=[];function u(s,c){if(c!=null){if(Object(c)!==c)throw new TypeError("using declarations can only be used with objects, functions, null, or undefined.");if(s)var a=c[Symbol.asyncDispose||Symbol.for("Symbol.asyncDispose")];if(a===void 0&&(a=c[Symbol.dispose||Symbol.for("Symbol.dispose")],s))var l=a;if(typeof a!="function")throw new TypeError("Object is not disposable.");l&&(a=function(){try{l.call(c)}catch(b){return Promise.reject(b)}}),i.push({v:c,d:a,a:s})}else s&&i.push({d:c,a:s});return c}return{e:n,u:u.bind(null,!1),a:u.bind(null,!0),d:function(){var c,a=this.e,l=0;function f(){for(;c=i.pop();)try{if(!c.a&&l===1)return l=0,i.push(c),Promise.resolve().then(f);if(c.d){var d=c.d.call(c.v);if(c.a)return l|=2,Promise.resolve(d).then(f,b)}else l|=1}catch(x){return b(x)}if(l===1)return a!==n?Promise.reject(a):Promise.resolve();if(a!==n)throw a}function b(d){return a=a!==n?new o(d,a):d,f()}return f()}}}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports}}),ee=v({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/OverloadYield.js"(r,e){function t(o,n){this.v=o,this.k=n}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports}}),tr=v({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/awaitAsyncGenerator.js"(r,e){var t=ee();function o(n){return new t(n,0)}e.exports=o,e.exports.__esModule=!0,e.exports.default=e.exports}}),nr=v({"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/wrapAsyncGenerator.js"(r,e){var t=ee();function o(i){return function(){return new n(i.apply(this,arguments))}}function n(i){var u,s;function c(l,f){try{var b=i[l](f),d=b.value,x=d instanceof t;Promise.resolve(x?d.v:d).then(function(m){if(x){var $=l==="return"?"return":"next";if(!d.k||m.done)return c($,m);m=i[$](m).value}a(b.done?"return":"normal",m)},function(m){c("throw",m)})}catch(m){a("throw",m)}}function a(l,f){switch(l){case"return":u.resolve({value:f,done:!0});break;case"throw":u.reject(f);break;default:u.resolve({value:f,done:!1})}(u=u.next)?c(u.key,u.arg):s=null}this._invoke=function(l,f){return new Promise(function(b,d){var x={key:l,arg:f,resolve:b,reject:d,next:null};s?s=s.next=x:(u=s=x,c(l,f))})},typeof i.return!="function"&&(this.return=void 0)}n.prototype[typeof Symbol=="function"&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},n.prototype.next=function(i){return this._invoke("next",i)},n.prototype.throw=function(i){return this._invoke("throw",i)},n.prototype.return=function(i){return this._invoke("return",i)},e.exports=o,e.exports.__esModule=!0,e.exports.default=e.exports}});p(rr(),1);p(tr(),1);p(nr(),1);p(y(),1);const or=A.PUBLIC_TRPC_URL??`http://${A.PUBLIC_TRPC_HOSTNAME??"localhost"}:${A.PUBLIC_TRPC_PORT??"2022"}`,ir=Ve({links:[We({url:or})]});export{A as e,ir as t};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as ve,f as de}from"./Ca197UDq.js";import{o as me}from"./C39ai1md.js";import{p as he,d as ge,j as ht,c as ye,r as be,y as we,a as xe,w as Oe}from"./CxLomzuE.js";import{s as Ee}from"./BDl2QuyN.js";import{b as Ae}from"./BLu86SbA.js";import{p as nt}from"./CPXdAKdv.js";var B="top",L="bottom",M="right",C="left",jt="auto",pt=[B,L,M,C],Q="start",st="end",Pe="clippingParents",Zt="viewport",at="popper",De="reference",It=pt.reduce(function(e,t){return e.concat([t+"-"+Q,t+"-"+st])},[]),_t=[].concat(pt,[jt]).reduce(function(e,t){return e.concat([t,t+"-"+Q,t+"-"+st])},[]),je="beforeRead",Re="read",Be="afterRead",Ce="beforeMain",ke="main",Te="afterMain",Se="beforeWrite",Le="write",Me="afterWrite",$e=[je,Re,Be,Ce,ke,Te,Se,Le,Me];function V(e){return e?(e.nodeName||"").toLowerCase():null}function T(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function J(e){var t=T(e).Element;return e instanceof t||e instanceof Element}function S(e){var t=T(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function Rt(e){if(typeof ShadowRoot>"u")return!1;var t=T(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function We(e){var t=e.state;Object.keys(t.elements).forEach(function(r){var a=t.styles[r]||{},n=t.attributes[r]||{},s=t.elements[r];!S(s)||!V(s)||(Object.assign(s.style,a),Object.keys(n).forEach(function(p){var i=n[p];i===!1?s.removeAttribute(p):s.setAttribute(p,i===!0?"":i)}))})}function He(e){var t=e.state,r={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,r.popper),t.styles=r,t.elements.arrow&&Object.assign(t.elements.arrow.style,r.arrow),function(){Object.keys(t.elements).forEach(function(a){var n=t.elements[a],s=t.attributes[a]||{},p=Object.keys(t.styles.hasOwnProperty(a)?t.styles[a]:r[a]),i=p.reduce(function(o,c){return o[c]="",o},{});!S(n)||!V(n)||(Object.assign(n.style,i),Object.keys(s).forEach(function(o){n.removeAttribute(o)}))})}}const Ve={name:"applyStyles",enabled:!0,phase:"write",fn:We,effect:He,requires:["computeStyles"]};function H(e){return e.split("-")[0]}var G=Math.max,bt=Math.min,Z=Math.round;function Pt(){var e=navigator.userAgentData;return e!=null&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(t){return t.brand+"/"+t.version}).join(" "):navigator.userAgent}function te(){return!/^((?!chrome|android).)*safari/i.test(Pt())}function _(e,t,r){t===void 0&&(t=!1),r===void 0&&(r=!1);var a=e.getBoundingClientRect(),n=1,s=1;t&&S(e)&&(n=e.offsetWidth>0&&Z(a.width)/e.offsetWidth||1,s=e.offsetHeight>0&&Z(a.height)/e.offsetHeight||1);var p=J(e)?T(e):window,i=p.visualViewport,o=!te()&&r,c=(a.left+(o&&i?i.offsetLeft:0))/n,f=(a.top+(o&&i?i.offsetTop:0))/s,m=a.width/n,h=a.height/s;return{width:m,height:h,top:f,right:c+m,bottom:f+h,left:c,x:c,y:f}}function Bt(e){var t=_(e),r=e.offsetWidth,a=e.offsetHeight;return Math.abs(t.width-r)<=1&&(r=t.width),Math.abs(t.height-a)<=1&&(a=t.height),{x:e.offsetLeft,y:e.offsetTop,width:r,height:a}}function ee(e,t){var r=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(r&&Rt(r)){var a=t;do{if(a&&e.isSameNode(a))return!0;a=a.parentNode||a.host}while(a)}return!1}function N(e){return T(e).getComputedStyle(e)}function Ne(e){return["table","td","th"].indexOf(V(e))>=0}function q(e){return((J(e)?e.ownerDocument:e.document)||window.document).documentElement}function wt(e){return V(e)==="html"?e:e.assignedSlot||e.parentNode||(Rt(e)?e.host:null)||q(e)}function Xt(e){return!S(e)||N(e).position==="fixed"?null:e.offsetParent}function Fe(e){var t=/firefox/i.test(Pt()),r=/Trident/i.test(Pt());if(r&&S(e)){var a=N(e);if(a.position==="fixed")return null}var n=wt(e);for(Rt(n)&&(n=n.host);S(n)&&["html","body"].indexOf(V(n))<0;){var s=N(n);if(s.transform!=="none"||s.perspective!=="none"||s.contain==="paint"||["transform","perspective"].indexOf(s.willChange)!==-1||t&&s.willChange==="filter"||t&&s.filter&&s.filter!=="none")return n;n=n.parentNode}return null}function ct(e){for(var t=T(e),r=Xt(e);r&&Ne(r)&&N(r).position==="static";)r=Xt(r);return r&&(V(r)==="html"||V(r)==="body"&&N(r).position==="static")?t:r||Fe(e)||t}function Ct(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function ot(e,t,r){return G(e,bt(t,r))}function qe(e,t,r){var a=ot(e,t,r);return a>r?r:a}function re(){return{top:0,right:0,bottom:0,left:0}}function ne(e){return Object.assign({},re(),e)}function ae(e,t){return t.reduce(function(r,a){return r[a]=e,r},{})}var Ie=function(t,r){return t=typeof t=="function"?t(Object.assign({},r.rects,{placement:r.placement})):t,ne(typeof t!="number"?t:ae(t,pt))};function Xe(e){var t,r=e.state,a=e.name,n=e.options,s=r.elements.arrow,p=r.modifiersData.popperOffsets,i=H(r.placement),o=Ct(i),c=[C,M].indexOf(i)>=0,f=c?"height":"width";if(!(!s||!p)){var m=Ie(n.padding,r),h=Bt(s),u=o==="y"?B:C,b=o==="y"?L:M,l=r.rects.reference[f]+r.rects.reference[o]-p[o]-r.rects.popper[f],d=p[o]-r.rects.reference[o],w=ct(s),O=w?o==="y"?w.clientHeight||0:w.clientWidth||0:0,E=l/2-d/2,v=m[u],g=O-h[f]-m[b],y=O/2-h[f]/2+E,x=ot(v,y,g),D=o;r.modifiersData[a]=(t={},t[D]=x,t.centerOffset=x-y,t)}}function Ye(e){var t=e.state,r=e.options,a=r.element,n=a===void 0?"[data-popper-arrow]":a;n!=null&&(typeof n=="string"&&(n=t.elements.popper.querySelector(n),!n)||ee(t.elements.popper,n)&&(t.elements.arrow=n))}const ze={name:"arrow",enabled:!0,phase:"main",fn:Xe,effect:Ye,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function tt(e){return e.split("-")[1]}var Ue={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Ge(e,t){var r=e.x,a=e.y,n=t.devicePixelRatio||1;return{x:Z(r*n)/n||0,y:Z(a*n)/n||0}}function Yt(e){var t,r=e.popper,a=e.popperRect,n=e.placement,s=e.variation,p=e.offsets,i=e.position,o=e.gpuAcceleration,c=e.adaptive,f=e.roundOffsets,m=e.isFixed,h=p.x,u=h===void 0?0:h,b=p.y,l=b===void 0?0:b,d=typeof f=="function"?f({x:u,y:l}):{x:u,y:l};u=d.x,l=d.y;var w=p.hasOwnProperty("x"),O=p.hasOwnProperty("y"),E=C,v=B,g=window;if(c){var y=ct(r),x="clientHeight",D="clientWidth";if(y===T(r)&&(y=q(r),N(y).position!=="static"&&i==="absolute"&&(x="scrollHeight",D="scrollWidth")),y=y,n===B||(n===C||n===M)&&s===st){v=L;var P=m&&y===g&&g.visualViewport?g.visualViewport.height:y[x];l-=P-a.height,l*=o?1:-1}if(n===C||(n===B||n===L)&&s===st){E=M;var A=m&&y===g&&g.visualViewport?g.visualViewport.width:y[D];u-=A-a.width,u*=o?1:-1}}var j=Object.assign({position:i},c&&Ue),$=f===!0?Ge({x:u,y:l},T(r)):{x:u,y:l};if(u=$.x,l=$.y,o){var R;return Object.assign({},j,(R={},R[v]=O?"0":"",R[E]=w?"0":"",R.transform=(g.devicePixelRatio||1)<=1?"translate("+u+"px, "+l+"px)":"translate3d("+u+"px, "+l+"px, 0)",R))}return Object.assign({},j,(t={},t[v]=O?l+"px":"",t[E]=w?u+"px":"",t.transform="",t))}function Je(e){var t=e.state,r=e.options,a=r.gpuAcceleration,n=a===void 0?!0:a,s=r.adaptive,p=s===void 0?!0:s,i=r.roundOffsets,o=i===void 0?!0:i,c={placement:H(t.placement),variation:tt(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:n,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,Yt(Object.assign({},c,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:p,roundOffsets:o})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,Yt(Object.assign({},c,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:o})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}const Ke={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:Je,data:{}};var gt={passive:!0};function Qe(e){var t=e.state,r=e.instance,a=e.options,n=a.scroll,s=n===void 0?!0:n,p=a.resize,i=p===void 0?!0:p,o=T(t.elements.popper),c=[].concat(t.scrollParents.reference,t.scrollParents.popper);return s&&c.forEach(function(f){f.addEventListener("scroll",r.update,gt)}),i&&o.addEventListener("resize",r.update,gt),function(){s&&c.forEach(function(f){f.removeEventListener("scroll",r.update,gt)}),i&&o.removeEventListener("resize",r.update,gt)}}const Ze={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:Qe,data:{}};var _e={left:"right",right:"left",bottom:"top",top:"bottom"};function yt(e){return e.replace(/left|right|bottom|top/g,function(t){return _e[t]})}var tr={start:"end",end:"start"};function zt(e){return e.replace(/start|end/g,function(t){return tr[t]})}function kt(e){var t=T(e),r=t.pageXOffset,a=t.pageYOffset;return{scrollLeft:r,scrollTop:a}}function Tt(e){return _(q(e)).left+kt(e).scrollLeft}function er(e,t){var r=T(e),a=q(e),n=r.visualViewport,s=a.clientWidth,p=a.clientHeight,i=0,o=0;if(n){s=n.width,p=n.height;var c=te();(c||!c&&t==="fixed")&&(i=n.offsetLeft,o=n.offsetTop)}return{width:s,height:p,x:i+Tt(e),y:o}}function rr(e){var t,r=q(e),a=kt(e),n=(t=e.ownerDocument)==null?void 0:t.body,s=G(r.scrollWidth,r.clientWidth,n?n.scrollWidth:0,n?n.clientWidth:0),p=G(r.scrollHeight,r.clientHeight,n?n.scrollHeight:0,n?n.clientHeight:0),i=-a.scrollLeft+Tt(e),o=-a.scrollTop;return N(n||r).direction==="rtl"&&(i+=G(r.clientWidth,n?n.clientWidth:0)-s),{width:s,height:p,x:i,y:o}}function St(e){var t=N(e),r=t.overflow,a=t.overflowX,n=t.overflowY;return/auto|scroll|overlay|hidden/.test(r+n+a)}function oe(e){return["html","body","#document"].indexOf(V(e))>=0?e.ownerDocument.body:S(e)&&St(e)?e:oe(wt(e))}function it(e,t){var r;t===void 0&&(t=[]);var a=oe(e),n=a===((r=e.ownerDocument)==null?void 0:r.body),s=T(a),p=n?[s].concat(s.visualViewport||[],St(a)?a:[]):a,i=t.concat(p);return n?i:i.concat(it(wt(p)))}function Dt(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function nr(e,t){var r=_(e,!1,t==="fixed");return r.top=r.top+e.clientTop,r.left=r.left+e.clientLeft,r.bottom=r.top+e.clientHeight,r.right=r.left+e.clientWidth,r.width=e.clientWidth,r.height=e.clientHeight,r.x=r.left,r.y=r.top,r}function Ut(e,t,r){return t===Zt?Dt(er(e,r)):J(t)?nr(t,r):Dt(rr(q(e)))}function ar(e){var t=it(wt(e)),r=["absolute","fixed"].indexOf(N(e).position)>=0,a=r&&S(e)?ct(e):e;return J(a)?t.filter(function(n){return J(n)&&ee(n,a)&&V(n)!=="body"}):[]}function or(e,t,r,a){var n=t==="clippingParents"?ar(e):[].concat(t),s=[].concat(n,[r]),p=s[0],i=s.reduce(function(o,c){var f=Ut(e,c,a);return o.top=G(f.top,o.top),o.right=bt(f.right,o.right),o.bottom=bt(f.bottom,o.bottom),o.left=G(f.left,o.left),o},Ut(e,p,a));return i.width=i.right-i.left,i.height=i.bottom-i.top,i.x=i.left,i.y=i.top,i}function ie(e){var t=e.reference,r=e.element,a=e.placement,n=a?H(a):null,s=a?tt(a):null,p=t.x+t.width/2-r.width/2,i=t.y+t.height/2-r.height/2,o;switch(n){case B:o={x:p,y:t.y-r.height};break;case L:o={x:p,y:t.y+t.height};break;case M:o={x:t.x+t.width,y:i};break;case C:o={x:t.x-r.width,y:i};break;default:o={x:t.x,y:t.y}}var c=n?Ct(n):null;if(c!=null){var f=c==="y"?"height":"width";switch(s){case Q:o[c]=o[c]-(t[f]/2-r[f]/2);break;case st:o[c]=o[c]+(t[f]/2-r[f]/2);break}}return o}function ft(e,t){t===void 0&&(t={});var r=t,a=r.placement,n=a===void 0?e.placement:a,s=r.strategy,p=s===void 0?e.strategy:s,i=r.boundary,o=i===void 0?Pe:i,c=r.rootBoundary,f=c===void 0?Zt:c,m=r.elementContext,h=m===void 0?at:m,u=r.altBoundary,b=u===void 0?!1:u,l=r.padding,d=l===void 0?0:l,w=ne(typeof d!="number"?d:ae(d,pt)),O=h===at?De:at,E=e.rects.popper,v=e.elements[b?O:h],g=or(J(v)?v:v.contextElement||q(e.elements.popper),o,f,p),y=_(e.elements.reference),x=ie({reference:y,element:E,placement:n}),D=Dt(Object.assign({},E,x)),P=h===at?D:y,A={top:g.top-P.top+w.top,bottom:P.bottom-g.bottom+w.bottom,left:g.left-P.left+w.left,right:P.right-g.right+w.right},j=e.modifiersData.offset;if(h===at&&j){var $=j[n];Object.keys(A).forEach(function(R){var I=[M,L].indexOf(R)>=0?1:-1,X=[B,L].indexOf(R)>=0?"y":"x";A[R]+=$[X]*I})}return A}function ir(e,t){t===void 0&&(t={});var r=t,a=r.placement,n=r.boundary,s=r.rootBoundary,p=r.padding,i=r.flipVariations,o=r.allowedAutoPlacements,c=o===void 0?_t:o,f=tt(a),m=f?i?It:It.filter(function(b){return tt(b)===f}):pt,h=m.filter(function(b){return c.indexOf(b)>=0});h.length===0&&(h=m);var u=h.reduce(function(b,l){return b[l]=ft(e,{placement:l,boundary:n,rootBoundary:s,padding:p})[H(l)],b},{});return Object.keys(u).sort(function(b,l){return u[b]-u[l]})}function sr(e){if(H(e)===jt)return[];var t=yt(e);return[zt(e),t,zt(t)]}function fr(e){var t=e.state,r=e.options,a=e.name;if(!t.modifiersData[a]._skip){for(var n=r.mainAxis,s=n===void 0?!0:n,p=r.altAxis,i=p===void 0?!0:p,o=r.fallbackPlacements,c=r.padding,f=r.boundary,m=r.rootBoundary,h=r.altBoundary,u=r.flipVariations,b=u===void 0?!0:u,l=r.allowedAutoPlacements,d=t.options.placement,w=H(d),O=w===d,E=o||(O||!b?[yt(d)]:sr(d)),v=[d].concat(E).reduce(function(K,F){return K.concat(H(F)===jt?ir(t,{placement:F,boundary:f,rootBoundary:m,padding:c,flipVariations:b,allowedAutoPlacements:l}):F)},[]),g=t.rects.reference,y=t.rects.popper,x=new Map,D=!0,P=v[0],A=0;A<v.length;A++){var j=v[A],$=H(j),R=tt(j)===Q,I=[B,L].indexOf($)>=0,X=I?"width":"height",k=ft(t,{placement:j,boundary:f,rootBoundary:m,altBoundary:h,padding:c}),W=I?R?M:C:R?L:B;g[X]>y[X]&&(W=yt(W));var ut=yt(W),Y=[];if(s&&Y.push(k[$]<=0),i&&Y.push(k[W]<=0,k[ut]<=0),Y.every(function(K){return K})){P=j,D=!1;break}x.set(j,Y)}if(D)for(var lt=b?3:1,xt=function(F){var rt=v.find(function(dt){var z=x.get(dt);if(z)return z.slice(0,F).every(function(Ot){return Ot})});if(rt)return P=rt,"break"},et=lt;et>0;et--){var vt=xt(et);if(vt==="break")break}t.placement!==P&&(t.modifiersData[a]._skip=!0,t.placement=P,t.reset=!0)}}const pr={name:"flip",enabled:!0,phase:"main",fn:fr,requiresIfExists:["offset"],data:{_skip:!1}};function Gt(e,t,r){return r===void 0&&(r={x:0,y:0}),{top:e.top-t.height-r.y,right:e.right-t.width+r.x,bottom:e.bottom-t.height+r.y,left:e.left-t.width-r.x}}function Jt(e){return[B,M,L,C].some(function(t){return e[t]>=0})}function cr(e){var t=e.state,r=e.name,a=t.rects.reference,n=t.rects.popper,s=t.modifiersData.preventOverflow,p=ft(t,{elementContext:"reference"}),i=ft(t,{altBoundary:!0}),o=Gt(p,a),c=Gt(i,n,s),f=Jt(o),m=Jt(c);t.modifiersData[r]={referenceClippingOffsets:o,popperEscapeOffsets:c,isReferenceHidden:f,hasPopperEscaped:m},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":f,"data-popper-escaped":m})}const ur={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:cr};function lr(e,t,r){var a=H(e),n=[C,B].indexOf(a)>=0?-1:1,s=typeof r=="function"?r(Object.assign({},t,{placement:e})):r,p=s[0],i=s[1];return p=p||0,i=(i||0)*n,[C,M].indexOf(a)>=0?{x:i,y:p}:{x:p,y:i}}function vr(e){var t=e.state,r=e.options,a=e.name,n=r.offset,s=n===void 0?[0,0]:n,p=_t.reduce(function(f,m){return f[m]=lr(m,t.rects,s),f},{}),i=p[t.placement],o=i.x,c=i.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=o,t.modifiersData.popperOffsets.y+=c),t.modifiersData[a]=p}const dr={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:vr};function mr(e){var t=e.state,r=e.name;t.modifiersData[r]=ie({reference:t.rects.reference,element:t.rects.popper,placement:t.placement})}const hr={name:"popperOffsets",enabled:!0,phase:"read",fn:mr,data:{}};function gr(e){return e==="x"?"y":"x"}function yr(e){var t=e.state,r=e.options,a=e.name,n=r.mainAxis,s=n===void 0?!0:n,p=r.altAxis,i=p===void 0?!1:p,o=r.boundary,c=r.rootBoundary,f=r.altBoundary,m=r.padding,h=r.tether,u=h===void 0?!0:h,b=r.tetherOffset,l=b===void 0?0:b,d=ft(t,{boundary:o,rootBoundary:c,padding:m,altBoundary:f}),w=H(t.placement),O=tt(t.placement),E=!O,v=Ct(w),g=gr(v),y=t.modifiersData.popperOffsets,x=t.rects.reference,D=t.rects.popper,P=typeof l=="function"?l(Object.assign({},t.rects,{placement:t.placement})):l,A=typeof P=="number"?{mainAxis:P,altAxis:P}:Object.assign({mainAxis:0,altAxis:0},P),j=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,$={x:0,y:0};if(y){if(s){var R,I=v==="y"?B:C,X=v==="y"?L:M,k=v==="y"?"height":"width",W=y[v],ut=W+d[I],Y=W-d[X],lt=u?-D[k]/2:0,xt=O===Q?x[k]:D[k],et=O===Q?-D[k]:-x[k],vt=t.elements.arrow,K=u&&vt?Bt(vt):{width:0,height:0},F=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:re(),rt=F[I],dt=F[X],z=ot(0,x[k],K[k]),Ot=E?x[k]/2-lt-z-rt-A.mainAxis:xt-z-rt-A.mainAxis,se=E?-x[k]/2+lt+z+dt+A.mainAxis:et+z+dt+A.mainAxis,Et=t.elements.arrow&&ct(t.elements.arrow),fe=Et?v==="y"?Et.clientTop||0:Et.clientLeft||0:0,Lt=(R=j==null?void 0:j[v])!=null?R:0,pe=W+Ot-Lt-fe,ce=W+se-Lt,Mt=ot(u?bt(ut,pe):ut,W,u?G(Y,ce):Y);y[v]=Mt,$[v]=Mt-W}if(i){var $t,ue=v==="x"?B:C,le=v==="x"?L:M,U=y[g],mt=g==="y"?"height":"width",Wt=U+d[ue],Ht=U-d[le],At=[B,C].indexOf(w)!==-1,Vt=($t=j==null?void 0:j[g])!=null?$t:0,Nt=At?Wt:U-x[mt]-D[mt]-Vt+A.altAxis,Ft=At?U+x[mt]+D[mt]-Vt-A.altAxis:Ht,qt=u&&At?qe(Nt,U,Ft):ot(u?Nt:Wt,U,u?Ft:Ht);y[g]=qt,$[g]=qt-U}t.modifiersData[a]=$}}const br={name:"preventOverflow",enabled:!0,phase:"main",fn:yr,requiresIfExists:["offset"]};function wr(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function xr(e){return e===T(e)||!S(e)?kt(e):wr(e)}function Or(e){var t=e.getBoundingClientRect(),r=Z(t.width)/e.offsetWidth||1,a=Z(t.height)/e.offsetHeight||1;return r!==1||a!==1}function Er(e,t,r){r===void 0&&(r=!1);var a=S(t),n=S(t)&&Or(t),s=q(t),p=_(e,n,r),i={scrollLeft:0,scrollTop:0},o={x:0,y:0};return(a||!a&&!r)&&((V(t)!=="body"||St(s))&&(i=xr(t)),S(t)?(o=_(t,!0),o.x+=t.clientLeft,o.y+=t.clientTop):s&&(o.x=Tt(s))),{x:p.left+i.scrollLeft-o.x,y:p.top+i.scrollTop-o.y,width:p.width,height:p.height}}function Ar(e){var t=new Map,r=new Set,a=[];e.forEach(function(s){t.set(s.name,s)});function n(s){r.add(s.name);var p=[].concat(s.requires||[],s.requiresIfExists||[]);p.forEach(function(i){if(!r.has(i)){var o=t.get(i);o&&n(o)}}),a.push(s)}return e.forEach(function(s){r.has(s.name)||n(s)}),a}function Pr(e){var t=Ar(e);return $e.reduce(function(r,a){return r.concat(t.filter(function(n){return n.phase===a}))},[])}function Dr(e){var t;return function(){return t||(t=new Promise(function(r){Promise.resolve().then(function(){t=void 0,r(e())})})),t}}function jr(e){var t=e.reduce(function(r,a){var n=r[a.name];return r[a.name]=n?Object.assign({},n,a,{options:Object.assign({},n.options,a.options),data:Object.assign({},n.data,a.data)}):a,r},{});return Object.keys(t).map(function(r){return t[r]})}var Kt={placement:"bottom",modifiers:[],strategy:"absolute"};function Qt(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return!t.some(function(a){return!(a&&typeof a.getBoundingClientRect=="function")})}function Rr(e){e===void 0&&(e={});var t=e,r=t.defaultModifiers,a=r===void 0?[]:r,n=t.defaultOptions,s=n===void 0?Kt:n;return function(i,o,c){c===void 0&&(c=s);var f={placement:"bottom",orderedModifiers:[],options:Object.assign({},Kt,s),modifiersData:{},elements:{reference:i,popper:o},attributes:{},styles:{}},m=[],h=!1,u={state:f,setOptions:function(w){var O=typeof w=="function"?w(f.options):w;l(),f.options=Object.assign({},s,f.options,O),f.scrollParents={reference:J(i)?it(i):i.contextElement?it(i.contextElement):[],popper:it(o)};var E=Pr(jr([].concat(a,f.options.modifiers)));return f.orderedModifiers=E.filter(function(v){return v.enabled}),b(),u.update()},forceUpdate:function(){if(!h){var w=f.elements,O=w.reference,E=w.popper;if(Qt(O,E)){f.rects={reference:Er(O,ct(E),f.options.strategy==="fixed"),popper:Bt(E)},f.reset=!1,f.placement=f.options.placement,f.orderedModifiers.forEach(function(A){return f.modifiersData[A.name]=Object.assign({},A.data)});for(var v=0;v<f.orderedModifiers.length;v++){if(f.reset===!0){f.reset=!1,v=-1;continue}var g=f.orderedModifiers[v],y=g.fn,x=g.options,D=x===void 0?{}:x,P=g.name;typeof y=="function"&&(f=y({state:f,options:D,name:P,instance:u})||f)}}}},update:Dr(function(){return new Promise(function(d){u.forceUpdate(),d(f)})}),destroy:function(){l(),h=!0}};if(!Qt(i,o))return u;u.setOptions(c).then(function(d){!h&&c.onFirstUpdate&&c.onFirstUpdate(d)});function b(){f.orderedModifiers.forEach(function(d){var w=d.name,O=d.options,E=O===void 0?{}:O,v=d.effect;if(typeof v=="function"){var g=v({state:f,name:w,instance:u,options:E}),y=function(){};m.push(g||y)}})}function l(){m.forEach(function(d){return d()}),m=[]}return u}}var Br=[Ze,hr,Ke,Ve,dr,pr,br,ze,ur],Cr=Rr({defaultModifiers:Br}),kr=de('<div class="popper svelte-1dn0eza"><!></div>');function Hr(e,t){he(t,!0);let r=nt(t,"referenceEl",3,null),a=nt(t,"placement",3,"bottom-start"),n=nt(t,"offset",19,()=>[0,2]),s=nt(t,"flip",3,!0),p=nt(t,"preventOverflow",3,!0),i=Oe(null),o=null;function c(){if(!r()||!ht(i))return;const l=[];n()&&l.push({name:"offset",options:{offset:n()}}),s()&&l.push({name:"flip",options:{fallbackPlacements:["top-start","bottom-end","top-end"]}}),p()&&l.push({name:"preventOverflow",options:{padding:8}}),o=Cr(r(),ht(i),{placement:a(),modifiers:l})}function f(){o&&o.update()}me(()=>(c(),()=>{o&&(o.destroy(),o=null)})),ge(()=>(r()&&ht(i)&&c(),()=>{o&&(o.destroy(),o=null)}));function m(){f()}var h={update:m},u=kr(),b=ye(u);return Ee(b,()=>t.children),be(u),Ae(u,l=>we(i,l),()=>ht(i)),ve(e,u),xe(h)}export{Hr as P};
|
|
Binary file
|
|
Binary file
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{d as yt,b as Q,a as c,f as g,t as U}from"./Ca197UDq.js";import{a as wt}from"./C39ai1md.js";import{p as kt,f as qe,c as a,j as t,s as v,r as o,t as R,y as k,a as Pt,w as ue,n as d,o as re}from"./CxLomzuE.js";import{s as A}from"./DJriQKD9.js";import{i as S}from"./Buo-57fF.js";import{s as Te,c as Nt}from"./CAjPRvNs.js";import{M as ut}from"./CyvQWZoe.js";import{T as vt,a as pe}from"./BsDZe4N6.js";import{B as ft}from"./CVlsAO8k.js";import{I as St}from"./07xNIa59.js";import{a as Fe,R as Tt}from"./B_K7D6rX.js";import{c as _t}from"./D-B5X35l.js";import{p as be}from"./CPXdAKdv.js";import{t as Rt}from"./BOuo-4gP.js";import{c as jt}from"./Bj8jfBTi.js";function Ct(i={}){const e=i.thresholdPx??4,I=i.dragCursor??"text";let L=0,M=0,j=!1,P=!1,p=null,w=null;function Z(){P=!1,j=!1,p==null||p.style.removeProperty("cursor"),p=null,w==null||w.abort(),w=null}function V(F){if(typeof window>"u"||F.button!==0)return;w==null||w.abort(),w=null,p==null||p.style.removeProperty("cursor"),L=F.clientX,M=F.clientY,j=!1,P=!0,p=F.currentTarget instanceof HTMLElement?F.currentTarget:null;const $=new AbortController;w=$;const ce=fe=>{if(!P||j)return;const T=Math.abs(fe.clientX-L),Ne=Math.abs(fe.clientY-M);T+Ne<e||(j=!0,p==null||p.style.setProperty("cursor",I))},ye=()=>{P=!1,p==null||p.style.removeProperty("cursor"),p=null,$.abort(),w===$&&(w=null)};window.addEventListener("pointermove",ce,{signal:$.signal}),window.addEventListener("pointerup",ye,{signal:$.signal}),window.addEventListener("pointercancel",ye,{signal:$.signal})}function ve(F){return F.detail>0&&j}return{onPointerDown:V,shouldSuppressClick:ve,cleanup:Z}}var Et=g('<span class="text-[13px] leading-none text-rc-gray-400"> </span>'),Ot=g('<div class="rounded-md border border-red-500 bg-red-950/40 p-3 font-mono text-sm text-red-200"> </div>'),Jt=g("<!> <!>",1),Ft=g('<div class="flex flex-col gap-3"><!> <div class="flex flex-wrap items-center justify-between gap-2 text-sm text-rc-gray-200"><div class="flex flex-wrap items-center gap-x-4 gap-y-1"><div><span class="text-rc-gray-400">Timing:</span> </div> <div><span class="text-rc-gray-400">Response time:</span> </div> <div><span class="text-rc-gray-400">URL:</span> </div></div> <!></div> <div><!> <div class="mt-2 h-[55vh]"><!></div></div></div>'),qt=g('<button type="button" class="flex w-full cursor-pointer select-text items-baseline gap-2 truncate rounded-md bg-transparent px-2 py-1 text-left text-sm text-rc-gray-200 hover:bg-rc-gray-800/40"><!> <!> <span> </span></button> <!>',1);function Fr(i,e){kt(e,!0);let I=ue(!1),L=ue("request");const M=Ct();wt(M.cleanup);function j(x){try{if(typeof x=="string"){const h=x.trim();if(!h)return"";const Y=JSON.parse(h);return JSON.stringify(Y,null,2)}}catch{}try{return JSON.stringify(x??null,null,2)}catch{return String(x)}}function P(x){return new Date(x).toISOString()}function p(x){if(typeof x!="number"||!Number.isFinite(x))return null;const h=new Date(x);if(Number.isNaN(h.getTime()))return null;const Y=String(h.getHours()).padStart(2,"0"),me=String(h.getMinutes()).padStart(2,"0"),Pe=String(h.getSeconds()).padStart(2,"0");return`${Y}:${me}:${Pe}`}const w=d(()=>p(e.trace.createdAt)),Z=d(()=>{if(e.trace.error!=null)return e.trace.error;if(!(e.trace.ok===!1||typeof e.trace.status=="number"&&e.trace.status>=400))return;const h=e.trace.response;return h&&typeof h=="object"&&"error"in h&&h.error!=null?h.error:{status:e.trace.status,ok:e.trace.ok}}),V=d(()=>t(Z)!=null),ve=d(()=>`API: ${e.trace.operationName}`),F=d(()=>e.trace.operationName),$=d(()=>typeof e.trace.createdAt!="number"?"—":P(e.trace.createdAt));async function ce(){const x=j(e.trace);try{await navigator.clipboard.writeText(x)}catch(h){console.error("Failed to copy",h)}}const ye=d(()=>j({method:e.trace.method,path:e.trace.path,baseUrl:e.trace.baseUrl,request:e.trace.request})),fe=d(()=>j({status:e.trace.status,ok:e.trace.ok,response:e.trace.response,error:t(Z)})),T=d(()=>t(Z)!=null?j(t(Z)):"");var Ne=qt(),we=qe(Ne),Re=a(we);{let x=d(()=>t(V)?"close":"checkmark"),h=d(()=>t(V)?"self-center text-red-400":"self-center text-rc-green-200");St(Re,{get name(){return t(x)},width:18,height:18,get class(){return t(h)}})}var ke=v(Re,2);{var Ae=x=>{var h=Et(),Y=a(h,!0);o(h),R(()=>A(Y,t(w))),c(x,h)};S(ke,x=>{t(w)&&x(Ae)})}var He=v(ke,2),Xe=a(He,!0);o(He),o(we);var ne=v(we,2);{var le=x=>{ut(x,{get title(){return t(ve)},class:"!w-[85vw] !max-w-5xl",get open(){return t(I)},set open(Y){k(I,Y,!0)},children:Y=>{var me=Ft(),Pe=a(me);{var Me=b=>{var B=Ot(),_=a(B,!0);o(B),R(()=>A(_,t(T))),c(b,B)};S(Pe,b=>{t(T)&&b(Me)})}var _e=v(Pe,2),de=a(_e),De=a(de),Ye=v(a(De));o(De);var Ue=v(De,2),Ke=v(a(Ue));o(Ue);var Be=v(Ue,2),Qe=v(a(Be));o(Be),o(de);var f=v(de,2);ft(f,{variant:"secondary",size:"small",onclick:ce,children:(b,B)=>{re();var _=U("Copy raw trace");c(b,_)},$$slots:{default:!0}}),o(_e);var C=v(_e,2),E=a(C);vt(E,{get value(){return t(L)},ariaLabel:"API trace tabs",onChange:({value:b})=>k(L,b,!0),children:(b,B)=>{var _=Jt(),D=qe(_);pe(D,{value:"request",class:"px-3",children:(ge,Ie)=>{re();var Se=U("Request");c(ge,Se)},$$slots:{default:!0}});var te=v(D,2);pe(te,{value:"response",class:"px-3",children:(ge,Ie)=>{re();var Se=U("Response");c(ge,Se)},$$slots:{default:!0}}),c(b,_)},$$slots:{default:!0}});var z=v(E,2),W=a(z);{var ae=b=>{Fe(b,{get value(){return t(ye)},language:"json",class:"h-full"})},ee=b=>{Fe(b,{get value(){return t(fe)},language:"json",class:"h-full"})};S(W,b=>{t(L)==="request"?b(ae):b(ee,-1)})}o(z),o(C),o(me),R(b=>{A(Ye,` ${t($)??""}`),A(Ke,` ${b??""}`),A(Qe,` ${e.trace.path??""}`)},[()=>typeof e.trace.durationMs=="number"?`${Math.round(e.trace.durationMs)}ms`:"—"]),c(Y,me)},$$slots:{default:!0}})};S(ne,x=>{t(I)&&x(le)})}R(()=>{Te(He,1,Nt(t(V)?"text-red-200":"")),A(Xe,t(F))}),Q("pointerdown",we,function(...x){var h;(h=M.onPointerDown)==null||h.apply(this,x)}),Q("click",we,x=>{M.shouldSuppressClick(x)||k(I,!0)}),c(i,Ne),Pt()}yt(["pointerdown","click"]);function Ht(i){return ot(i)&&ot(i.context)?at(i.context):at(i)}function At(i){if(!(!ot(i)||!ot(i.mocks)))return at(i.mocks)}function at(i){return ot(i)?Ut(i):{}}function ot(i){return!!i&&typeof i=="object"&&!Array.isArray(i)}function Ut(i){try{return structuredClone(i)}catch{try{return JSON.parse(JSON.stringify(i))}catch{return i}}}function Mt(i){return!("operationName"in i)&&!("eventName"in i)}function zt(i){return Mt(i)&&(i.name==="main"||i.name==="mainReply")}function Bt(i,e,I={}){if(e<0)return null;const L=M=>zt(M)?I.requireRenderedPrompt?typeof M.renderedPrompt=="string"&&M.renderedPrompt.trim().length>0:!0:!1;return[...i.slice(0,e)].reverse().find(L)??i.slice(e+1).find(L)??null}function Gt(i,e){return e<=0?null:[...i.slice(0,e)].reverse().map(I=>{var L;return Mt(I)?(L=I.stringifiedConversation)==null?void 0:L.trim():""}).find(Boolean)??null}function Vt({entries:i,trace:e,sourceStep:I,fallbackRuntimeContext:L,requireReceivedContext:M=!1}){const j=i.indexOf(e);if(j===-1)throw new Error("Could not locate the response in its trace history");const P=I??Bt(i,j);if(M&&typeof(P==null?void 0:P.receivedContext)>"u")throw new Error("The source step trace does not have receivedContext");const p=typeof(P==null?void 0:P.stringifiedConversation)=="string"&&P.stringifiedConversation.trim()?P.stringifiedConversation:Gt(i,j)??"",w=(e.content??"").trim(),Z=P&&typeof P.receivedContext<"u"?at(P.receivedContext):Ht(L),V=At(L);return{pinned:"TRUE",step:"main",evaluation_mode:"assertion",context_mode:"replace",assertion_type:"llm-rubric",assertion_value:"",conversation:p,expected_output:w,similarity_threshold:"60",timeout:"0",context:Z,...typeof V<"u"?{mocks:V}:{}}}function Wt(i,{fallbackConversation:e="",fallbackRuntimeContext:I}={}){var p;if(typeof i.receivedContext>"u")throw new Error("The source step trace does not have receivedContext");const L=(i.response??"").trim();if(!L)throw new Error("The source step trace does not have a response");const M=(p=i.stringifiedConversation)!=null&&p.trim()?i.stringifiedConversation:e??"",j=Xt(L)?"json-deep-equal":"assertion",P=At(I);return{pinned:"TRUE",step:i.name,evaluation_mode:j,context_mode:"replace",assertion_type:"llm-rubric",assertion_value:"",conversation:M,expected_output:L,similarity_threshold:"60",timeout:"0",context:at(i.receivedContext),...typeof P<"u"?{mocks:P}:{}}}function Xt(i){try{const e=JSON.parse(i);return typeof e=="object"&&e!==null}catch{return!1}}var Yt=g('<span class="text-[13px] leading-none text-rc-gray-400"> </span>'),Kt=g('<span><span class="cursor-pointer" title="Show prompt-cache calc"> </span></span>'),Qt=g("<span> </span>"),Zt=g('<div class="mb-2 ml-7 max-w-[83%]"><button type="button" class="block w-full cursor-pointer overflow-hidden rounded-lg border border-rc-gray-110 bg-rc-gray-800 p-3 text-left hover:bg-rc-gray-700"><pre class="truncate whitespace-pre font-mono text-sm text-rc-gray-100"> </pre></button> <div class="mt-1 flex items-center"><button type="button" class="inline-flex items-center rounded border-0 bg-transparent px-1 py-0.5 text-rc-gray-400 transition-colors hover:bg-rc-gray-900 hover:text-rc-gray-200 disabled:cursor-not-allowed disabled:opacity-50"> </button></div></div>'),$t=g('<div class="rounded-md border border-red-500 bg-red-950/40 p-3 font-mono text-sm text-red-200"> </div>'),er=g("<!> <!> <!> <!> <!>",1),tr=g('<div class="flex h-full flex-col gap-2"><div class="grid grid-cols-2 gap-2"><div class="flex items-center justify-start"><!></div> <div class="flex items-center justify-end"><!></div></div> <!></div>'),rr=g('<div class="flex flex-col gap-3"><!> <div class="flex flex-wrap items-center gap-x-4 gap-y-1 text-sm text-rc-gray-200"><div><span class="text-rc-gray-400">Timing:</span> </div> <div><span class="text-rc-gray-400">Response time:</span> —</div> <div><span class="text-rc-gray-400">Model:</span> </div></div> <div><!> <div class="mt-2 h-[55vh]"><!></div></div></div>'),nr=g("<!> <!>",1),ar=g('<div class="flex h-[65vh] min-h-0 flex-col gap-2"><!> <div class="min-h-0 flex-1"><!></div></div>'),or=g('<div class="flex w-full select-text items-baseline gap-2 truncate rounded-md bg-transparent px-2 py-1 text-left text-sm text-rc-gray-200 hover:bg-rc-gray-800/40"><button type="button" class="flex min-w-0 cursor-pointer items-baseline gap-2 truncate bg-transparent p-0 text-left text-sm text-rc-gray-200"><!> <!> <span> </span></button> <!> <!></div> <!> <!> <!>',1);function qr(i,e){kt(e,!0);let I=be(e,"region",3,null),L=be(e,"fallbackConversation",3,null),M=ue(!1),j=ue(!1),P=ue("diff"),p=ue("response"),w=ue("idle");const Z=Ct();wt(Z.cleanup);function V(r){return r&&typeof r.renderedPrompt=="string"?r.renderedPrompt:null}function ve(r,n){if(r===n)return r.length;const s=Math.min(r.length,n.length);for(let l=0;l<s;l++)if(r.charCodeAt(l)!==n.charCodeAt(l))return l;return s}function F(r,n){const s=Math.max(r.length,n.length);if(s===0)return 100;const l=ve(r,n);return Math.floor(l/s*100)}function $(r,n){const s=r.length,l=n.length,u=ve(r,n),y=Math.max(s,l),H=y===0?100:Math.floor(u/y*100);return{currentLength:s,baselineLength:l,commonPrefixLength:u,denom:y,similarityPct:H}}function ce(r,n){const u=r.slice(0,600),y=r.slice(Math.max(u.length,r.length-600)),H=Math.max(0,r.length-u.length-y.length);return{length:r.length,head:u,tail:y,omittedChars:H}}function ye(r){const n=r.llmUsage;return!n||typeof n.promptTokens!="number"||!Number.isFinite(n.promptTokens)||n.promptTokens<=0||typeof n.cachedPromptTokens!="number"||!Number.isFinite(n.cachedPromptTokens)||n.cachedPromptTokens<0?null:Math.max(0,Math.min(100,Math.floor(n.cachedPromptTokens/n.promptTokens*100)))}function fe(r){const n=new WeakSet;try{return JSON.stringify(r,(s,l)=>{if(typeof l=="bigint")return l.toString();if(l instanceof Error)return{name:l.name,message:l.message,stack:l.stack};if(typeof l=="object"&&l!==null){if(n.has(l))return"[Circular]";n.add(l)}return l},2)??""}catch{return String(r)}}function T(r){if(r==null)return"";if(typeof r=="string"){const n=r.trim();if(!n)return"";try{return JSON.stringify(JSON.parse(n),null,2)}catch{return r}}return fe(r)}function Ne(r){var se,xe,K;const n=T(r),s=n.split(`
|
|
2
|
-
`);if(s.length<=1)return n;const l=(se=s[0])==null?void 0:se.trim(),u=(xe=s.slice(1).find(it=>it.trim()))==null?void 0:xe.trim();if(!l||!u)return n;const y=l==="["?"]":"}";if(s.length===3&&((K=s.at(-1))==null?void 0:K.trim())===y)return`${l} ${u} ${y}`;const H=u.endsWith("{")?" }":u.endsWith("[")?" ]":"";return`${l} ${u} …${H} ${y}`}function we(r){return new Date(r).toISOString()}function Re(r){if(typeof r!="number"||!Number.isFinite(r))return null;const n=new Date(r);if(Number.isNaN(n.getTime()))return null;const s=String(n.getHours()).padStart(2,"0"),l=String(n.getMinutes()).padStart(2,"0"),u=String(n.getSeconds()).padStart(2,"0");return`${s}:${l}:${u}`}const ke=d(()=>Re(e.trace.createdAt)),Ae=d(()=>e.trace.error!=null),He=d(()=>`AI: ${e.trace.name}`),Xe=d(()=>e.trace.name),ne=d(()=>{if(e.trace.name!=="main")return null;const r=V(e.trace),n=V(e.compareTrace);return r==null||n==null?null:F(r,n)}),le=d(()=>e.trace.name!=="main"?null:ye(e.trace)),x=90,h=90,Y=/<break\b[^>]*\/?>/i,me='<break /> tag disables streaming and increases latency. If pauses are not large enough, use "..." instead.';function Pe(r){return typeof r=="string"&&Y.test(r)}const Me=d(()=>e.trace.name!=="main"?null:t(le)!=null?t(le)===0&&t(ne)!=null&&t(ne)>=h?{text:"0% tokens cached. Cache miss",className:"text-red-200"}:t(le)>=x?{text:`${t(le)}% tokens cached`,className:"text-rc-gray-400"}:{text:`${t(le)}% tokens cached - move dynamic parts of prompt to the bottom`,className:"text-red-200"}:t(ne)!=null?t(ne)>=x?{text:`${t(ne)}%`,className:"text-rc-gray-400"}:{text:`${t(ne)}% cached - move dynamic parts of prompt to the bottom`,className:"text-red-200"}:null),_e=d(()=>Pe(e.trace.response)?{text:"LLM output has <break /> tags",className:"text-red-200"}:null),de=d(()=>{var se;if(e.trace.name!=="main")return null;const r=V(e.trace),n=V(e.compareTrace),s=r!=null&&n!=null?$(r,n):null,l=e.trace.llmUsage??null,u=t(le),y=u===0&&(s==null?void 0:s.similarityPct)!=null&&s.similarityPct>=h;return{version:1,labelSource:u!=null?"llmUsage":t(ne)!=null?"promptSimilarityFallback":"none",thresholds:{okPct:x,cacheMissSimilarityPct:h},inputs:{llmUsage:l,currentRenderedPrompt:r!=null?ce(r):null,baselineRenderedPrompt:n!=null?ce(n):null},computed:{cachedTokensPct:u,promptSimilarityPct:(s==null?void 0:s.similarityPct)??null,promptSimilarity:s,cacheMiss:y},decision:{text:((se=t(Me))==null?void 0:se.text)??null}}}),De=d(()=>t(de)?fe(t(de)):"{}"),Ye=d(()=>V(e.compareTrace)??""),Ue=d(()=>V(e.trace)??""),Ke=d(()=>T(e.trace.response)),Be=d(()=>Ne(e.trace.response)),Qe=d(()=>{if(typeof e.trace.response!="string"||!e.trace.response.trim())return!1;try{const r=JSON.parse(e.trace.response);return typeof r=="object"&&r!==null}catch{return!1}}),f=d(()=>{const r=e.trace.response;if(typeof r!="string")return"json";try{return JSON.parse(r),"json"}catch{return"text"}}),C=d(()=>e.trace.stringifiedConversation??""),E=d(()=>T(e.trace.renderedPrompt)),z=d(()=>T(e.trace.receivedPrompt)),W=d(()=>T(e.trace.receivedContext)),ae=d(()=>T(e.trace.schema)),ee=d(()=>e.trace.error?fe(e.trace.error):"");function b(r){return r==null?"":typeof r=="string"?r:fe(r)}const B=d(()=>b(e.trace.receivedPrompt)),_=d(()=>b(e.trace.renderedPrompt));let D=ue(null),te=ue(null);async function ge(r){try{const n=r==="raw"?t(B):t(_);await navigator.clipboard.writeText(n),k(D,r,!0),t(te)&&clearTimeout(t(te)),k(te,window.setTimeout(()=>{k(D,null),k(te,null)},2e3),!0)}catch(n){console.error("Failed to copy prompt",n)}}function Ie(r,n){var l;const s=new URLSearchParams({step:e.trace.name,test:n});return(l=I())!=null&&l.trim()&&s.set("region",I().trim()),`/edit/${encodeURIComponent(r)}/tests?${s.toString()}`}async function Se(){const r=(e.agentId||"").trim();if(!r||t(w)!=="idle")return;const n=window.open("about:blank","_blank");n&&(n.opener=null),k(w,"adding");try{const s=Wt(e.trace,{fallbackConversation:L(),fallbackRuntimeContext:e.runtimeContext}),l=await Rt.tests.addTest.mutate({agent:r,region:I(),seed:s,mergeContexts:!1}),u=Ie(r,l.id);n?n.location.replace(u):window.open(u,"_blank","noopener"),k(w,"added")}catch(s){n==null||n.close(),console.error("Failed to add step test",s),k(w,"failed")}finally{window.setTimeout(()=>k(w,"idle"),3e3)}}var Ge=or(),O=qe(Ge),m=a(O),J=a(m);{let r=d(()=>t(Ae)?"close":"checkmark"),n=d(()=>t(Ae)?"self-center text-red-400":"self-center text-rc-green-200");St(J,{get name(){return t(r)},width:18,height:18,get class(){return t(n)}})}var X=v(J,2);{var oe=r=>{var n=Yt(),s=a(n,!0);o(n),R(()=>A(s,t(ke))),c(r,n)};S(X,r=>{t(ke)&&r(oe)})}var Le=v(X,2),ze=a(Le);o(Le),o(m);var Ve=v(m,2);{var je=r=>{var n=Kt(),s=a(n),l=a(s,!0);o(s),o(n),R(()=>{Te(n,1,`shrink-0 text-xs ${t(Me).className}`),A(l,t(Me).text)}),Q("click",s,u=>{u.stopPropagation(),!Z.shouldSuppressClick(u)&&t(de)&&(k(P,"diff"),k(j,!0))}),c(r,n)};S(Ve,r=>{t(Me)!=null&&r(je)})}var mt=v(Ve,2);{var gt=r=>{var n=Qt();_t(n,"title",me);var s=a(n,!0);o(n),R(()=>{Te(n,1,`shrink-0 text-xs ${t(_e).className}`),A(s,t(_e).text)}),c(r,n)};S(mt,r=>{t(_e)!=null&&r(gt)})}o(O);var st=v(O,2);{var xt=r=>{var n=Zt(),s=a(n),l=a(s),u=a(l,!0);o(l),o(s);var y=v(s,2),H=a(y),se=a(H,!0);o(H),o(y),o(n),R(xe=>{A(u,t(Be)),H.disabled=xe,A(se,t(w)==="adding"?"Adding…":t(w)==="added"?"Added":t(w)==="failed"?"Failed":"Add test")},[()=>{var xe;return!((xe=e.agentId)!=null&&xe.trim())||typeof e.trace.receivedContext>"u"||t(w)!=="idle"}]),Q("click",s,()=>{k(p,"response"),k(M,!0)}),Q("click",H,Se),c(r,n)};S(st,r=>{t(Qe)&&r(xt)})}var G=v(st,2);{var q=r=>{ut(r,{get title(){return t(He)},class:"!w-[85vw] !max-w-5xl",get open(){return t(M)},set open(s){k(M,s,!0)},children:s=>{var l=rr(),u=a(l);{var y=N=>{var Ee=$t(),Oe=a(Ee,!0);o(Ee),R(()=>A(Oe,t(ee))),c(N,Ee)};S(u,N=>{t(ee)&&N(y)})}var H=v(u,2),se=a(H),xe=v(a(se));o(se);var K=v(se,4),it=v(a(K));o(K),o(H);var Ze=v(H,2),$e=a(Ze);vt($e,{get value(){return t(p)},ariaLabel:"Step trace tabs",onChange:({value:N})=>k(p,N,!0),children:(N,Ee)=>{var Oe=er(),We=qe(Oe);pe(We,{value:"response",class:"px-3",children:(ie,Je)=>{re();var he=U("Response");c(ie,he)},$$slots:{default:!0}});var lt=v(We,2);pe(lt,{value:"conversation",class:"px-3",children:(ie,Je)=>{re();var he=U("Conversation");c(ie,he)},$$slots:{default:!0}});var rt=v(lt,2);pe(rt,{value:"prompt",class:"px-3",children:(ie,Je)=>{re();var he=U("Prompt");c(ie,he)},$$slots:{default:!0}});var dt=v(rt,2);pe(dt,{value:"context",class:"px-3",children:(ie,Je)=>{re();var he=U("Context");c(ie,he)},$$slots:{default:!0}});var pt=v(dt,2);pe(pt,{value:"schema",class:"px-3",children:(ie,Je)=>{re();var he=U("Schema");c(ie,he)},$$slots:{default:!0}}),c(N,Oe)},$$slots:{default:!0}});var ct=v($e,2),et=a(ct);{var bt=N=>{Fe(N,{get value(){return t(Ke)},get language(){return t(f)},class:"h-full"})},tt=N=>{Fe(N,{get value(){return t(C)},language:"text",class:"h-full"})},Dt=N=>{var Ee=tr(),Oe=a(Ee),We=a(Oe),lt=a(We);{let ie=d(()=>!t(B).trim());ft(lt,{variant:"secondary",size:"small",get disabled(){return t(ie)},onclick:()=>ge("raw"),children:(Je,he)=>{re();var nt=U();R(()=>A(nt,t(D)==="raw"?"Copied raw prompt":"Copy raw prompt")),c(Je,nt)},$$slots:{default:!0}})}o(We);var rt=v(We,2),dt=a(rt);{let ie=d(()=>!t(_).trim());ft(dt,{variant:"secondary",size:"small",get disabled(){return t(ie)},onclick:()=>ge("rendered"),children:(Je,he)=>{re();var nt=U();R(()=>A(nt,t(D)==="rendered"?"Copied rendered prompt":"Copy rendered prompt")),c(Je,nt)},$$slots:{default:!0}})}o(rt),o(Oe);var pt=v(Oe,2);Tt(pt,{get original(){return t(z)},get modified(){return t(E)},language:"markdown",class:"min-h-0 flex-1"}),o(Ee),c(N,Ee)},It=N=>{Fe(N,{get value(){return t(W)},language:"json",class:"h-full"})},Lt=N=>{Fe(N,{get value(){return t(ae)},language:"json",class:"h-full"})};S(et,N=>{t(p)==="response"?N(bt):t(p)==="conversation"?N(tt,1):t(p)==="prompt"?N(Dt,2):t(p)==="context"?N(It,3):N(Lt,-1)})}o(ct),o(Ze),o(l),R(N=>{A(xe,` ${N??""}`),A(it,` ${e.trace.model??"—"??""}`)},[()=>typeof e.trace.createdAt=="number"?we(e.trace.createdAt):"—"]),c(s,l)},$$slots:{default:!0}})};S(G,r=>{t(M)&&r(q)})}var Ce=v(G,2);{var ht=r=>{ut(r,{title:"Prompt cache calc",class:"!w-[85vw] !max-w-5xl",get open(){return t(j)},set open(s){k(j,s,!0)},children:s=>{var l=ar(),u=a(l);vt(u,{get value(){return t(P)},ariaLabel:"Prompt cache calc tabs",onChange:({value:K})=>k(P,K,!0),children:(K,it)=>{var Ze=nr(),$e=qe(Ze);pe($e,{value:"diff",class:"px-3",children:(et,bt)=>{re();var tt=U("Diff");c(et,tt)},$$slots:{default:!0}});var ct=v($e,2);pe(ct,{value:"raw",class:"px-3",children:(et,bt)=>{re();var tt=U("Raw");c(et,tt)},$$slots:{default:!0}}),c(K,Ze)},$$slots:{default:!0}});var y=v(u,2),H=a(y);{var se=K=>{Tt(K,{get original(){return t(Ye)},get modified(){return t(Ue)},language:"markdown",class:"h-full"})},xe=K=>{Fe(K,{get value(){return t(De)},language:"json",class:"h-full"})};S(H,K=>{t(P)==="diff"?K(se):K(xe,-1)})}o(y),o(l),c(s,l)},$$slots:{default:!0}})};S(Ce,r=>{t(j)&&r(ht)})}R(()=>{Te(Le,1,Nt(t(Ae)?"text-red-200":"")),A(ze,`AI: ${t(Xe)??""}`)}),Q("pointerdown",m,function(...r){var n;(n=Z.onPointerDown)==null||n.apply(this,r)}),Q("click",m,r=>{Z.shouldSuppressClick(r)||k(M,!0)}),c(i,Ge),Pt()}yt(["pointerdown","click"]);var sr=g('<span class="text-[13px] leading-none text-rc-gray-400"> </span>'),ir=g('<div class="min-w-0 break-words"> </div>'),cr=g('<div class="min-w-0 break-words">Conversation hanged up.</div>'),lr=g('<div class="flex w-full justify-center"><div role="button" tabindex="0"><div class="flex flex-wrap items-baseline gap-x-2 gap-y-0"><!> <!></div></div></div>'),dr=g('<div class="mr-2 mt-1 flex h-5 w-5 shrink-0 items-center justify-center rounded-sm bg-rc-green-700 text-sm uppercase text-rc-gray-100 backdrop-blur-md"> </div>'),ur=g('<button type="button" title="Edit this message" class="mr-2 mt-1 shrink-0 self-start rounded p-1 text-rc-gray-500 opacity-80 transition-colors hover:bg-rc-gray-900 hover:text-rc-gray-200 focus:outline-none focus-visible:outline-none"><!></button>'),vr=g('<div class="mt-1 text-right text-xs text-rc-gray-200/70"> </div>'),fr=g('<button type="button"><!></button>'),mr=g('<button type="button" class="inline-flex items-center text-nowrap rounded border-0 bg-transparent px-1 py-0.5 text-rc-gray-400 transition-colors hover:bg-rc-gray-900 hover:text-rc-gray-200 focus:outline-none focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:bg-transparent disabled:hover:text-rc-gray-400">Analyze</button>'),gr=g('<button type="button" class="inline-flex items-center text-nowrap rounded border-0 bg-transparent px-1 py-0.5 text-rc-gray-400 transition-colors hover:bg-rc-gray-900 hover:text-rc-gray-200 focus:outline-none focus-visible:outline-none">Regenerate</button>'),xr=g('<button type="button" class="inline-flex items-center text-nowrap rounded border-0 bg-transparent px-1 py-0.5 text-rc-gray-400 transition-colors hover:bg-rc-gray-900 hover:text-rc-gray-200 focus:outline-none focus-visible:outline-none">See variants</button>'),hr=g('<div class="mt-1 flex flex-wrap items-center gap-x-2 gap-y-1"><!> <!> <!> <!></div>'),br=g('<!> <!> <div><div role="button" tabindex="0" class="cursor-pointer select-text"><div><div> </div> <!></div></div> <!></div>',1),pr=g('<div class="rounded-md border border-red-500 bg-red-950/40 p-3 font-mono text-sm text-red-200"> </div>'),_r=g("<!> <!>",1),yr=g('<div class="whitespace-pre-wrap break-words rounded-md border border-rc-gray-650 bg-rc-gray-900/60 p-3 text-sm text-rc-gray-100"> </div>'),wr=g('<div class="flex flex-col gap-3"><!> <div class="flex items-center justify-between gap-2 text-sm text-rc-gray-200"><div class="text-rc-gray-400"> </div> <!></div> <div><!> <div class="mt-2 h-[55vh] overflow-auto"><!></div></div></div>'),kr=g("<div><!></div> <!>",1);function Hr(i,e){kt(e,!0);let I=be(e,"region",3,null),L=be(e,"allowAddTest",3,!0),M=be(e,"testSourceStep",3,void 0),j=be(e,"testEntries",3,void 0),P=be(e,"requireTestSourceStep",3,!1),p=be(e,"analyzeDisabled",3,!1),w=be(e,"showSeeVariants",3,!1),Z=be(e,"variantSelectionState",3,"none"),V=be(e,"suppressActionRow",3,!1),ve=ue(!1),F=ue("idle"),$=ue("content");const ce=Ct();wt(ce.cleanup);function ye(f){return f?f.split("/").at(-1)??f:""}function fe(f){const C=ye(f).trim().charAt(0);return C?C.toUpperCase():"?"}const T=d(()=>{var f;return e.trace.eventName==="finished-main-streaming-step"||e.trace.eventName==="sent-message"?"agent":e.trace.role==="system"||((f=e.trace)==null?void 0:f.bosunInputMessageSender)==="system"?"system":(e.trace.role==="user","user")}),Ne=d(()=>t(T)==="agent"?"max-w-[83%]":t(T)==="user"?"max-w-[90%] sm:max-w-[80%] md:max-w-[70%]":t(T)==="system"?"max-w-[90%] sm:max-w-[85%] md:max-w-[75%]":""),we=d(()=>{var f;return(t(T)==="user"||t(T)==="system")&&!!e.onRevert&&((f=e.trace)==null?void 0:f.bosunPrevStateId)!==void 0}),Re=d(()=>e.trace.error!=null),ke=d(()=>Z()==="source");function Ae(){k(ve,!0),k($,"content")}function He(f){var C;if(!ce.shouldSuppressClick(f)){if(t(ke)){(C=e.onSelectInVariantMode)==null||C.call(e,e.trace);return}Ae()}}function Xe(f){if(typeof f!="number"||!Number.isFinite(f))return null;const C=new Date(f);if(Number.isNaN(C.getTime()))return null;const E=String(C.getHours()).padStart(2,"0"),z=String(C.getMinutes()).padStart(2,"0"),W=String(C.getSeconds()).padStart(2,"0");return`${E}:${z}:${W}`}const ne=d(()=>{var f;return Xe((f=e.trace)==null?void 0:f.createdAt)});function le(f){try{return JSON.stringify(f??null,null,2)}catch{return String(f)}}async function x(){try{await navigator.clipboard.writeText(le(e.trace))}catch(f){console.error("Failed to copy",f)}}function h(){return L()&&t(T)==="agent"&&e.trace.eventName!=="transfer-requested"&&(e.trace.eventName==="finished-main-streaming-step"||e.trace.eventName==="sent-message")}function Y(){return!h()||!(e.agentId&&e.agentId.trim())?!1:P()?!!M()&&typeof M().receivedContext<"u":!0}function me(){return t(T)==="agent"&&e.trace.eventName!=="transfer-requested"&&!!(e.agentId&&e.agentId.trim())&&(e.trace.eventName==="finished-main-streaming-step"||e.trace.eventName==="sent-message")}function Pe(){return me()}async function Me(){var C;const f=window.open("about:blank","_blank");f&&(f.opener=null);try{k(F,"idle");const E=(e.agentId||"").trim();if(!E)throw new Error("Agent id is not available; cannot add test");const z=Vt({entries:j()??jt,trace:e.trace,sourceStep:M(),fallbackRuntimeContext:e.context}),W=await Rt.tests.addTest.mutate({agent:E,region:I(),seed:z,mergeContexts:!1});k(F,"ok");const ae=new URLSearchParams({step:z.step||"main",test:W.id});(C=I())!=null&&C.trim()&&ae.set("region",I().trim());const ee=`/edit/${encodeURIComponent(E)}/tests?${ae.toString()}`;f?f.location.replace(ee):window.open(ee,"_blank","noopener"),setTimeout(()=>k(F,"idle"),3e3)}catch(E){f==null||f.close(),console.error("Failed to add test",E),k(F,"error"),setTimeout(()=>k(F,"idle"),4e3)}}var _e=kr(),de=qe(_e);let De;var Ye=a(de);{var Ue=f=>{var C=lr(),E=a(C),z=a(E),W=a(z);{var ae=_=>{var D=sr(),te=a(D,!0);o(D),R(()=>A(te,t(ne))),c(_,D)};S(W,_=>{t(ne)&&_(ae)})}var ee=v(W,2);{var b=_=>{var D=ir(),te=a(D);o(D),R(()=>A(te,`Transfer requested: ${e.trace.content??""}`)),c(_,D)},B=_=>{var D=cr();c(_,D)};S(ee,_=>{e.trace.eventName==="transfer-requested"?_(b):_(B,-1)})}o(z),o(E),o(C),R(()=>Te(E,1,`cursor-pointer select-text rounded-full border border-rc-gray-650 bg-rc-gray-800/40 px-4 py-2 text-sm text-rc-gray-100 ${t(Re)?"border-red-500 bg-red-950/30 text-red-200":""}`)),Q("pointerdown",E,function(..._){var D;(D=ce.onPointerDown)==null||D.apply(this,_)}),Q("click",E,_=>{ce.shouldSuppressClick(_)||Ae()}),c(f,C)},Ke=f=>{var C=br(),E=qe(C);{var z=O=>{var m=dr(),J=a(m,!0);o(m),R((X,oe)=>{_t(m,"title",X),A(J,oe)},[()=>ye(e.agentId),()=>fe(e.agentId)]),c(O,m)};S(E,O=>{t(T)==="agent"&&e.agentId&&O(z)})}var W=v(E,2);{var ae=O=>{var m=ur(),J=a(m);St(J,{name:"undo",width:16,height:16}),o(m),Q("click",m,X=>{var oe;X.stopPropagation(),(oe=e.onRevert)==null||oe.call(e,e.trace)}),c(O,m)};S(W,O=>{t(we)&&O(ae)})}var ee=v(W,2),b=a(ee),B=a(b),_=a(B),D=a(_,!0);o(_);var te=v(_,2);{var ge=O=>{var m=vr(),J=a(m,!0);o(m),R(()=>A(J,t(ne))),c(O,m)};S(te,O=>{t(ne)&&O(ge)})}o(B),o(b);var Ie=v(b,2);{var Se=O=>{var m=hr(),J=a(m);{var X=G=>{var q=fr(),Ce=a(q);{var ht=u=>{var y=U("Added");c(u,y)},r=u=>{var y=U("Failed");c(u,y)},n=u=>{var y=U("Select agent to add test");c(u,y)},s=d(()=>!Y()),l=u=>{var y=U("Add test");c(u,y)};S(Ce,u=>{t(F)==="ok"?u(ht):t(F)==="error"?u(r,1):t(s)?u(n,2):u(l,-1)})}o(q),R((u,y,H)=>{q.disabled=u,_t(q,"title",y),Te(q,1,`inline-flex items-center text-nowrap rounded border-0 bg-transparent px-1 py-0.5 transition-colors focus:outline-none focus-visible:outline-none ${H??""}`)},[()=>!Y()||t(F)!=="idle",()=>Y()?void 0:"Select an agent in the sidebar before adding a test",()=>t(F)!=="idle"||!Y()?"cursor-default text-rc-gray-400":"cursor-pointer text-rc-gray-400 hover:bg-rc-gray-900 hover:text-rc-gray-200"]),Q("click",q,u=>{u.stopPropagation(),Me()}),c(G,q)},oe=d(()=>h());S(J,G=>{t(oe)&&G(X)})}var Le=v(J,2);{var ze=G=>{var q=mr();R(()=>q.disabled=p()),Q("click",q,Ce=>{Ce.stopPropagation(),e.onAnalyze(e.trace)}),c(G,q)},Ve=d(()=>me()&&e.onAnalyze);S(Le,G=>{t(Ve)&&G(ze)})}var je=v(Le,2);{var mt=G=>{var q=gr();Q("click",q,Ce=>{Ce.stopPropagation(),e.onRegenerate(e.trace)}),c(G,q)},gt=d(()=>Pe()&&e.onRegenerate);S(je,G=>{t(gt)&&G(mt)})}var st=v(je,2);{var xt=G=>{var q=xr();Q("click",q,Ce=>{Ce.stopPropagation(),e.onSeeVariants(e.trace)}),c(G,q)};S(st,G=>{w()&&e.onSeeVariants&&G(xt)})}o(m),c(O,m)},Ge=d(()=>!V()&&(me()||h()||Pe()&&e.onRegenerate||w()));S(Ie,O=>{t(Ge)&&O(Se)})}o(ee),R(()=>{Te(ee,1,`min-w-0 ${t(Ne)??""}`),Te(B,1,`rounded-lg ${t(T)==="system"?"justify-between whitespace-pre-line break-words border border-emerald-500 text-emerald-500":t(ke)?"w-full whitespace-pre-line break-words border border-rc-green-450 bg-transparent backdrop-blur-md hover:bg-rc-green-700":t(T)!=="user"?"w-full whitespace-pre-line break-words bg-rc-green-700 backdrop-blur-md":"whitespace-pre-line break-words bg-rc-gray-700"} ${t(T)==="system"||t(ke)?"":"border-thin border-rc-gray-110"} p-2 pt-1 text-rc-gray-100 ${t(Re)?"border-red-500 bg-red-950/30 text-red-200":""}`),A(D,e.trace.content)}),Q("pointerdown",b,function(...O){var m;(m=ce.onPointerDown)==null||m.apply(this,O)}),Q("click",b,He),c(f,C)};S(Ye,f=>{e.trace.eventName==="transfer-requested"||e.trace.eventName==="hangup-requested"?f(Ue):f(Ke,-1)})}o(de);var Be=v(de,2);{var Qe=f=>{{const C=z=>{var W=wr(),ae=a(W);{var ee=m=>{var J=pr(),X=a(J,!0);o(J),R(oe=>A(X,oe),[()=>le(e.trace.error)]),c(m,J)};S(ae,m=>{t(Re)&&m(ee)})}var b=v(ae,2),B=a(b),_=a(B);o(B);var D=v(B,2);ft(D,{variant:"secondary",size:"small",onclick:x,children:(m,J)=>{re();var X=U("Copy raw trace");c(m,X)},$$slots:{default:!0}}),o(b);var te=v(b,2),ge=a(te);vt(ge,{get value(){return t($)},ariaLabel:"Conversational trace tabs",onChange:({value:m})=>k($,m,!0),children:(m,J)=>{var X=_r(),oe=qe(X);pe(oe,{value:"content",class:"px-3",children:(ze,Ve)=>{re();var je=U("Content");c(ze,je)},$$slots:{default:!0}});var Le=v(oe,2);pe(Le,{value:"raw",class:"px-3",children:(ze,Ve)=>{re();var je=U("Raw");c(ze,je)},$$slots:{default:!0}}),c(m,X)},$$slots:{default:!0}});var Ie=v(ge,2),Se=a(Ie);{var Ge=m=>{var J=yr(),X=a(J,!0);o(J),R(()=>A(X,e.trace.content)),c(m,J)},O=m=>{{let J=d(()=>le(e.trace));Fe(m,{get value(){return t(J)},language:"json",class:"h-full"})}};S(Se,m=>{t($)==="content"?m(Ge):m(O,-1)})}o(Ie),o(te),o(W),R(()=>A(_,`${e.trace.role??""} • ${e.trace.medium??""}`)),c(z,W)};let E=d(()=>`Conversation: ${e.trace.eventName}`);ut(f,{get title(){return t(E)},class:"!w-[80vw] !max-w-4xl",get open(){return t(ve)},set open(z){k(ve,z,!0)},children:C,$$slots:{default:!0}})}};S(Be,f=>{t(ve)&&f(Qe)})}R(()=>De=Te(de,1,"group mb-2 flex w-full items-start",null,De,{"justify-end":t(T)==="user"||t(T)==="system"})),c(i,_e),Pt()}yt(["pointerdown","click"]);export{Fr as C,qr as a,Hr as b,Bt as c,at as d,Ht as e,Gt as f,At as m};
|
|
Binary file
|
|
Binary file
|