@copilotkit/web-inspector
Advanced tools
+28
-0
@@ -348,2 +348,10 @@ import { Anchor } from "./lib/types.cjs"; | ||
| private coreUnsubscribe; | ||
| private _memories; | ||
| private _memoriesLoading; | ||
| private _memoriesError; | ||
| private _memoriesAvailable; | ||
| private _memoriesRealtimeStatus; | ||
| private _memoryUnsub; | ||
| private _memorySubscribed; | ||
| private _memoryStoreUnsupported; | ||
| private runtimeStatus; | ||
@@ -420,2 +428,3 @@ private coreProperties; | ||
| private getThreadsTelemetryProps; | ||
| private getMemoriesTelemetryProps; | ||
| private getIntelligenceSignupUrl; | ||
@@ -432,2 +441,12 @@ private getTalkToEngineerUrl; | ||
| private attachToCore; | ||
| /** | ||
| * Lazily subscribes to the singleton memory store the first time the user | ||
| * activates the Memories tab. This is deferred out of `attachToCore` because | ||
| * `core.getMemoryStore()` is what creates + starts the store and opens | ||
| * realtime — doing it on attach would start memory for apps that never use | ||
| * it. Idempotent: repeated tab activations are guarded by | ||
| * `_memorySubscribed`. On an older @copilotkit/core without `getMemoryStore`, | ||
| * records the unsupported state so the teaser can guide an SDK upgrade. | ||
| */ | ||
| private ensureMemorySubscription; | ||
| private detachFromCore; | ||
@@ -536,2 +555,11 @@ private teardownAgentSubscriptions; | ||
| private renderThreadsLockedView; | ||
| /** | ||
| * Renders the realtime-connection indicator in the memory-store header. | ||
| * Only `"connected"` shows the live (green-dot) state; `"connecting"` shows a | ||
| * muted amber "reconnecting" and `"unavailable"` a muted grey "offline", so | ||
| * the indicator never claims "live" over a frozen snapshot once the realtime | ||
| * socket has permanently given up. | ||
| */ | ||
| private renderMemoryRealtimeIndicator; | ||
| private renderMemoriesView; | ||
| private renderThreadsView; | ||
@@ -538,0 +566,0 @@ private renderEventsTable; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.d.cts","names":[],"sources":["../src/index.ts"],"mappings":"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"} | ||
| {"version":3,"file":"index.d.cts","names":[],"sources":["../src/index.ts"],"mappings":"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"} |
+28
-0
@@ -348,2 +348,10 @@ import { Anchor } from "./lib/types.mjs"; | ||
| private coreUnsubscribe; | ||
| private _memories; | ||
| private _memoriesLoading; | ||
| private _memoriesError; | ||
| private _memoriesAvailable; | ||
| private _memoriesRealtimeStatus; | ||
| private _memoryUnsub; | ||
| private _memorySubscribed; | ||
| private _memoryStoreUnsupported; | ||
| private runtimeStatus; | ||
@@ -420,2 +428,3 @@ private coreProperties; | ||
| private getThreadsTelemetryProps; | ||
| private getMemoriesTelemetryProps; | ||
| private getIntelligenceSignupUrl; | ||
@@ -432,2 +441,12 @@ private getTalkToEngineerUrl; | ||
| private attachToCore; | ||
| /** | ||
| * Lazily subscribes to the singleton memory store the first time the user | ||
| * activates the Memories tab. This is deferred out of `attachToCore` because | ||
| * `core.getMemoryStore()` is what creates + starts the store and opens | ||
| * realtime — doing it on attach would start memory for apps that never use | ||
| * it. Idempotent: repeated tab activations are guarded by | ||
| * `_memorySubscribed`. On an older @copilotkit/core without `getMemoryStore`, | ||
| * records the unsupported state so the teaser can guide an SDK upgrade. | ||
| */ | ||
| private ensureMemorySubscription; | ||
| private detachFromCore; | ||
@@ -536,2 +555,11 @@ private teardownAgentSubscriptions; | ||
| private renderThreadsLockedView; | ||
| /** | ||
| * Renders the realtime-connection indicator in the memory-store header. | ||
| * Only `"connected"` shows the live (green-dot) state; `"connecting"` shows a | ||
| * muted amber "reconnecting" and `"unavailable"` a muted grey "offline", so | ||
| * the indicator never claims "live" over a frozen snapshot once the realtime | ||
| * socket has permanently given up. | ||
| */ | ||
| private renderMemoryRealtimeIndicator; | ||
| private renderMemoriesView; | ||
| private renderThreadsView; | ||
@@ -538,0 +566,0 @@ private renderEventsTable; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.d.mts","names":[],"sources":["../src/index.ts"],"mappings":"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"} | ||
| {"version":3,"file":"index.d.mts","names":[],"sources":["../src/index.ts"],"mappings":"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"} |
@@ -14,3 +14,4 @@ const require_persistence = require('./persistence.cjs'); | ||
| threadsEmptyEnabledViewed: "oss.inspector.threads_empty_enabled_viewed", | ||
| threadsEnabledViewed: "oss.inspector.threads_enabled_viewed" | ||
| threadsEnabledViewed: "oss.inspector.threads_enabled_viewed", | ||
| memoriesTabClicked: "oss.inspector.memories_tab_clicked" | ||
| }; | ||
@@ -23,3 +24,3 @@ const TELEMETRY_INGEST_URL = "https://telemetry.copilotkit.ai/ingest"; | ||
| function isThreadsTelemetryEvent(event) { | ||
| return event === TELEMETRY_EVENTS.threadsTabClicked || event === TELEMETRY_EVENTS.threadsLockedViewed || event === TELEMETRY_EVENTS.threadsIntelligenceSignupClicked || event === TELEMETRY_EVENTS.threadsTalkToEngineerClicked || event === TELEMETRY_EVENTS.talkToEngineerClicked || event === TELEMETRY_EVENTS.threadsEmptyEnabledViewed || event === TELEMETRY_EVENTS.threadsEnabledViewed; | ||
| return event === TELEMETRY_EVENTS.threadsTabClicked || event === TELEMETRY_EVENTS.threadsLockedViewed || event === TELEMETRY_EVENTS.threadsIntelligenceSignupClicked || event === TELEMETRY_EVENTS.threadsTalkToEngineerClicked || event === TELEMETRY_EVENTS.talkToEngineerClicked || event === TELEMETRY_EVENTS.threadsEmptyEnabledViewed || event === TELEMETRY_EVENTS.threadsEnabledViewed || event === TELEMETRY_EVENTS.memoriesTabClicked; | ||
| } | ||
@@ -103,2 +104,5 @@ function getRuntimeUrlType(runtimeUrl) { | ||
| } | ||
| function trackMemoriesTabClicked(props = {}) { | ||
| track(TELEMETRY_EVENTS.memoriesTabClicked, props); | ||
| } | ||
| /** | ||
@@ -174,2 +178,3 @@ * Returns the inspector's anonymous distinct-ID for cross-domain | ||
| exports.trackBannerViewed = trackBannerViewed; | ||
| exports.trackMemoriesTabClicked = trackMemoriesTabClicked; | ||
| exports.trackTalkToEngineerClicked = trackTalkToEngineerClicked; | ||
@@ -176,0 +181,0 @@ exports.trackThreadsEmptyEnabledViewed = trackThreadsEmptyEnabledViewed; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"telemetry.cjs","names":["isTelemetryOptedOut","getOrCreateTelemetryDistinctId","hasTelemetryDisclosureBeenShown"],"sources":["../../src/lib/telemetry.ts"],"sourcesContent":["// Inspector-side anonymous telemetry. V1 events fire from index.ts for\n// banner and thread-inspection interactions. POSTs directly from the browser\n// to the CopilotKit telemetry sink at `telemetry.copilotkit.ai/ingest`,\n// where a Lambda fan-out forwards events to PostHog / Reo / Scarf.\n//\n// The endpoint URL is intentionally clearly named so it's obvious in\n// DevTools / Network tab — transparency for opt-in users.\n//\n// Privacy invariants enforced here:\n// - We never send message content, agent state, prompts, completions,\n// or banner markdown. Properties are scoped to event metadata only\n// (banner_id/timestamp, cta location). Reviewers should grep call\n// sites for any unintended payload.\n// - The opt-out short-circuits before any network call. There is no\n// buffer, no retry queue.\n// - All errors are swallowed; telemetry must never break the host app.\n\nimport {\n getOrCreateTelemetryDistinctId,\n hasTelemetryDisclosureBeenShown,\n isTelemetryOptedOut,\n markTelemetryDisclosureShown,\n} from \"./persistence.js\";\nimport packageJson from \"../../package.json\" with { type: \"json\" };\n\n// V1 funnel events. Namespaced `oss.inspector.*` so the lambda's\n// owned-prefix gate (oss-path-to-production) can accept them server-side\n// without a per-event sink deploy.\nexport const TELEMETRY_EVENTS = {\n bannerViewed: \"oss.inspector.banner_viewed\",\n bannerClicked: \"oss.inspector.banner_clicked\",\n threadsTabClicked: \"oss.inspector.threads_tab_clicked\",\n threadsLockedViewed: \"oss.inspector.threads_locked_viewed\",\n threadsIntelligenceSignupClicked:\n \"oss.inspector.threads_intelligence_signup_clicked\",\n threadsTalkToEngineerClicked:\n \"oss.inspector.threads_talk_to_engineer_clicked\",\n talkToEngineerClicked: \"oss.inspector.talk_to_engineer_clicked\",\n threadsEmptyEnabledViewed: \"oss.inspector.threads_empty_enabled_viewed\",\n threadsEnabledViewed: \"oss.inspector.threads_enabled_viewed\",\n} as const;\n\nexport type TelemetryEvent =\n (typeof TELEMETRY_EVENTS)[keyof typeof TELEMETRY_EVENTS];\n\n// Per the OSS-96 ticket — the URL is intentionally clearly named for\n// transparency in the network tab.\nexport const TELEMETRY_INGEST_URL = \"https://telemetry.copilotkit.ai/ingest\";\n\n// Surfaced in console disclosure and the in-product opt-out panel.\n// Keep in sync with the canonical telemetry docs page on main\n// (`docs/content/docs/(root)/(other)/telemetry/index.mdx`).\n// Mirror constant: packages/runtime/src/lib/telemetry-disclosure.ts\nexport const TELEMETRY_DOCS_URL = \"https://docs.copilotkit.ai/telemetry\";\n\nconst PACKAGE_NAME = \"@copilotkit/web-inspector\";\nconst PACKAGE_VERSION = packageJson.version;\n\n// 3-second cap so a slow gateway can't hang the host app. Matches the\n// runtime's existing scarf-client convention.\nconst FETCH_TIMEOUT_MS = 3000;\n\nfunction isThreadsTelemetryEvent(event: TelemetryEvent): boolean {\n return (\n event === TELEMETRY_EVENTS.threadsTabClicked ||\n event === TELEMETRY_EVENTS.threadsLockedViewed ||\n event === TELEMETRY_EVENTS.threadsIntelligenceSignupClicked ||\n event === TELEMETRY_EVENTS.threadsTalkToEngineerClicked ||\n event === TELEMETRY_EVENTS.talkToEngineerClicked ||\n event === TELEMETRY_EVENTS.threadsEmptyEnabledViewed ||\n event === TELEMETRY_EVENTS.threadsEnabledViewed\n );\n}\n\nexport type RuntimeUrlType =\n | \"missing\"\n | \"relative\"\n | \"localhost\"\n | \"same_origin\"\n | \"remote\"\n | \"invalid\";\n\nexport function getRuntimeUrlType(\n runtimeUrl: string | undefined,\n): RuntimeUrlType {\n if (!runtimeUrl) return \"missing\";\n if (runtimeUrl.startsWith(\"/\") && !runtimeUrl.startsWith(\"//\")) {\n return \"relative\";\n }\n\n try {\n const baseHref =\n typeof window !== \"undefined\"\n ? window.location.href\n : \"https://copilotkit.ai\";\n const url = new URL(runtimeUrl, baseHref);\n const baseUrl = new URL(baseHref);\n const hostname = url.hostname.toLowerCase();\n\n if (\n hostname === \"localhost\" ||\n hostname === \"127.0.0.1\" ||\n hostname === \"[::1]\"\n ) {\n return \"localhost\";\n }\n\n return url.origin === baseUrl.origin ? \"same_origin\" : \"remote\";\n } catch {\n return \"invalid\";\n }\n}\n\n/**\n * Fire-and-forget telemetry send. Returns synchronously; the network\n * call is dispatched in the background and any failure is swallowed.\n *\n * Short-circuits when the user has opted out. Does NOT itself trigger\n * the first-run disclosure — call `maybeShowDisclosure()` from the\n * inspector's mount lifecycle instead.\n */\nexport function track(\n event: TelemetryEvent,\n properties: Record<string, unknown> = {},\n): void {\n if (isTelemetryOptedOut()) return;\n\n const distinctId = getOrCreateTelemetryDistinctId();\n const threadsProperties = isThreadsTelemetryEvent(event)\n ? {\n package_name: PACKAGE_NAME,\n package_version: PACKAGE_VERSION,\n inspector_distinct_id: distinctId,\n }\n : {};\n let body: string;\n try {\n body = JSON.stringify({\n event,\n properties: {\n ...properties,\n ...threadsProperties,\n distinct_id: distinctId,\n },\n package: {\n name: PACKAGE_NAME,\n ...(isThreadsTelemetryEvent(event) ? { version: PACKAGE_VERSION } : {}),\n },\n ts: Math.floor(Date.now() / 1000),\n });\n } catch {\n return;\n }\n\n void postBestEffort(TELEMETRY_INGEST_URL, body, distinctId);\n}\n\n// --- Typed per-event helpers ---\n// These enforce the known property shape for each V1 event at the call\n// site, so callers can't accidentally include PII under a wrong key.\n\nexport function trackBannerViewed(props: {\n banner_id: string;\n cta_label?: string;\n}): void {\n track(TELEMETRY_EVENTS.bannerViewed, props);\n}\n\nexport function trackBannerClicked(props: {\n banner_id: string;\n cta: \"body\" | \"dismiss\";\n cta_label?: string;\n}): void {\n track(TELEMETRY_EVENTS.bannerClicked, props);\n}\n\nexport type InspectorThreadTelemetryProps = {\n package_name?: typeof PACKAGE_NAME;\n package_version?: string;\n inspector_distinct_id?: string;\n posthog_distinct_id?: string;\n intelligence_status?:\n | \"intelligence_not_enabled\"\n | \"intelligence_enabled\"\n | \"unknown\";\n thread_service_status?: \"unavailable\" | \"available\" | \"unknown\" | \"error\";\n license_status?:\n | \"valid\"\n | \"none\"\n | \"expired\"\n | \"expiring\"\n | \"invalid\"\n | \"unknown\";\n runtime_mode?: \"sse\" | \"intelligence\";\n runtime_url_type?: RuntimeUrlType;\n cta_surface?:\n | \"threads_locked\"\n | \"threads_header\"\n | \"threads_empty\"\n | \"threads_populated\";\n cta?: \"signup\" | \"talk_to_engineer\";\n telemetry_disabled?: boolean;\n thread_count?: number;\n};\n\nexport function trackThreadsTabClicked(\n props: InspectorThreadTelemetryProps = {},\n): void {\n track(TELEMETRY_EVENTS.threadsTabClicked, props);\n}\n\nexport function trackThreadsLockedViewed(\n props: InspectorThreadTelemetryProps,\n): void {\n track(TELEMETRY_EVENTS.threadsLockedViewed, props);\n}\n\nexport function trackThreadsIntelligenceSignupClicked(\n props: InspectorThreadTelemetryProps,\n): void {\n track(TELEMETRY_EVENTS.threadsIntelligenceSignupClicked, props);\n}\n\nexport function trackThreadsTalkToEngineerClicked(\n props: InspectorThreadTelemetryProps,\n): void {\n track(TELEMETRY_EVENTS.threadsTalkToEngineerClicked, props);\n}\n\nexport function trackTalkToEngineerClicked(\n props: InspectorThreadTelemetryProps,\n): void {\n track(TELEMETRY_EVENTS.talkToEngineerClicked, props);\n}\n\nexport function trackThreadsEmptyEnabledViewed(\n props: InspectorThreadTelemetryProps,\n): void {\n track(TELEMETRY_EVENTS.threadsEmptyEnabledViewed, props);\n}\n\nexport function trackThreadsEnabledViewed(\n props: InspectorThreadTelemetryProps,\n): void {\n track(TELEMETRY_EVENTS.threadsEnabledViewed, props);\n}\n\n/**\n * Returns the inspector's anonymous distinct-ID for cross-domain\n * propagation onto outbound banner-CTA links, or `null` when the user\n * is opted out.\n *\n * The website / Ops API reads this query param on signup-flow landing\n * pages and calls `posthog.alias(...)` to merge the inspector's anon\n * ID with the website's anon ID, enabling the\n * `banner_viewed → banner_clicked → signup_attributed` funnel.\n * `identify()` itself is out of scope here (it happens on signup, in\n * the website / Ops API).\n *\n * Opt-out short-circuits this too: if the user has opted out, we do\n * NOT leak an anon ID across domains.\n */\nexport function getTelemetryDistinctIdForUrl(): string | null {\n if (isTelemetryOptedOut()) return null;\n return getOrCreateTelemetryDistinctId();\n}\n\n/**\n * Seeds the anonymous distinct-ID into localStorage on inspector mount\n * so it is ready for cross-domain propagation onto banner-CTA links\n * even before the first event fires. No-op when the user has opted out.\n */\nexport function ensureTelemetryDistinctId(): void {\n if (isTelemetryOptedOut()) return;\n getOrCreateTelemetryDistinctId();\n}\n\n/**\n * Fires the one-time console disclosure on inspector mount, when the\n * user is not opted out and hasn't seen it before. Idempotent across\n * calls within a single session because `markTelemetryDisclosureShown`\n * persists to localStorage.\n *\n * If the user is opted out, we deliberately do nothing and do NOT mark\n * the flag — so a future opt-in flips back to \"first run\" behavior.\n */\nexport function maybeShowDisclosure(): void {\n if (isTelemetryOptedOut()) return;\n if (hasTelemetryDisclosureBeenShown()) return;\n // eslint-disable-next-line no-console\n console.info(\n `[CopilotKit Inspector] anonymous interaction telemetry enabled — see ${TELEMETRY_DOCS_URL} to opt out.`,\n );\n markTelemetryDisclosureShown();\n}\n\nexport { isTelemetryOptedOut };\n\nasync function postBestEffort(\n url: string,\n body: string,\n distinctId: string,\n): Promise<void> {\n if (typeof fetch === \"undefined\") return;\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), FETCH_TIMEOUT_MS);\n try {\n await fetch(url, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-CopilotKit-Telemetry-Id\": distinctId,\n },\n body,\n signal: controller.signal,\n // No credentials / no Authorization header — anonymous endpoint.\n });\n } catch {\n // Silent failure — telemetry must not break the application.\n } finally {\n clearTimeout(timeoutId);\n }\n}\n"],"mappings":"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"} | ||
| {"version":3,"file":"telemetry.cjs","names":["isTelemetryOptedOut","getOrCreateTelemetryDistinctId","hasTelemetryDisclosureBeenShown"],"sources":["../../src/lib/telemetry.ts"],"sourcesContent":["// Inspector-side anonymous telemetry. V1 events fire from index.ts for\n// banner and thread-inspection interactions. POSTs directly from the browser\n// to the CopilotKit telemetry sink at `telemetry.copilotkit.ai/ingest`,\n// where a Lambda fan-out forwards events to PostHog / Reo / Scarf.\n//\n// The endpoint URL is intentionally clearly named so it's obvious in\n// DevTools / Network tab — transparency for opt-in users.\n//\n// Privacy invariants enforced here:\n// - We never send message content, agent state, prompts, completions,\n// or banner markdown. Properties are scoped to event metadata only\n// (banner_id/timestamp, cta location). Reviewers should grep call\n// sites for any unintended payload.\n// - The opt-out short-circuits before any network call. There is no\n// buffer, no retry queue.\n// - All errors are swallowed; telemetry must never break the host app.\n\nimport {\n getOrCreateTelemetryDistinctId,\n hasTelemetryDisclosureBeenShown,\n isTelemetryOptedOut,\n markTelemetryDisclosureShown,\n} from \"./persistence.js\";\nimport packageJson from \"../../package.json\" with { type: \"json\" };\n\n// V1 funnel events. Namespaced `oss.inspector.*` so the lambda's\n// owned-prefix gate (oss-path-to-production) can accept them server-side\n// without a per-event sink deploy.\nexport const TELEMETRY_EVENTS = {\n bannerViewed: \"oss.inspector.banner_viewed\",\n bannerClicked: \"oss.inspector.banner_clicked\",\n threadsTabClicked: \"oss.inspector.threads_tab_clicked\",\n threadsLockedViewed: \"oss.inspector.threads_locked_viewed\",\n threadsIntelligenceSignupClicked:\n \"oss.inspector.threads_intelligence_signup_clicked\",\n threadsTalkToEngineerClicked:\n \"oss.inspector.threads_talk_to_engineer_clicked\",\n talkToEngineerClicked: \"oss.inspector.talk_to_engineer_clicked\",\n threadsEmptyEnabledViewed: \"oss.inspector.threads_empty_enabled_viewed\",\n threadsEnabledViewed: \"oss.inspector.threads_enabled_viewed\",\n memoriesTabClicked: \"oss.inspector.memories_tab_clicked\",\n} as const;\n\nexport type TelemetryEvent =\n (typeof TELEMETRY_EVENTS)[keyof typeof TELEMETRY_EVENTS];\n\n// Per the OSS-96 ticket — the URL is intentionally clearly named for\n// transparency in the network tab.\nexport const TELEMETRY_INGEST_URL = \"https://telemetry.copilotkit.ai/ingest\";\n\n// Surfaced in console disclosure and the in-product opt-out panel.\n// Keep in sync with the canonical telemetry docs page on main\n// (`docs/content/docs/(root)/(other)/telemetry/index.mdx`).\n// Mirror constant: packages/runtime/src/lib/telemetry-disclosure.ts\nexport const TELEMETRY_DOCS_URL = \"https://docs.copilotkit.ai/telemetry\";\n\nconst PACKAGE_NAME = \"@copilotkit/web-inspector\";\nconst PACKAGE_VERSION = packageJson.version;\n\n// 3-second cap so a slow gateway can't hang the host app. Matches the\n// runtime's existing scarf-client convention.\nconst FETCH_TIMEOUT_MS = 3000;\n\nfunction isThreadsTelemetryEvent(event: TelemetryEvent): boolean {\n return (\n event === TELEMETRY_EVENTS.threadsTabClicked ||\n event === TELEMETRY_EVENTS.threadsLockedViewed ||\n event === TELEMETRY_EVENTS.threadsIntelligenceSignupClicked ||\n event === TELEMETRY_EVENTS.threadsTalkToEngineerClicked ||\n event === TELEMETRY_EVENTS.talkToEngineerClicked ||\n event === TELEMETRY_EVENTS.threadsEmptyEnabledViewed ||\n event === TELEMETRY_EVENTS.threadsEnabledViewed ||\n event === TELEMETRY_EVENTS.memoriesTabClicked\n );\n}\n\nexport type RuntimeUrlType =\n | \"missing\"\n | \"relative\"\n | \"localhost\"\n | \"same_origin\"\n | \"remote\"\n | \"invalid\";\n\nexport function getRuntimeUrlType(\n runtimeUrl: string | undefined,\n): RuntimeUrlType {\n if (!runtimeUrl) return \"missing\";\n if (runtimeUrl.startsWith(\"/\") && !runtimeUrl.startsWith(\"//\")) {\n return \"relative\";\n }\n\n try {\n const baseHref =\n typeof window !== \"undefined\"\n ? window.location.href\n : \"https://copilotkit.ai\";\n const url = new URL(runtimeUrl, baseHref);\n const baseUrl = new URL(baseHref);\n const hostname = url.hostname.toLowerCase();\n\n if (\n hostname === \"localhost\" ||\n hostname === \"127.0.0.1\" ||\n hostname === \"[::1]\"\n ) {\n return \"localhost\";\n }\n\n return url.origin === baseUrl.origin ? \"same_origin\" : \"remote\";\n } catch {\n return \"invalid\";\n }\n}\n\n/**\n * Fire-and-forget telemetry send. Returns synchronously; the network\n * call is dispatched in the background and any failure is swallowed.\n *\n * Short-circuits when the user has opted out. Does NOT itself trigger\n * the first-run disclosure — call `maybeShowDisclosure()` from the\n * inspector's mount lifecycle instead.\n */\nexport function track(\n event: TelemetryEvent,\n properties: Record<string, unknown> = {},\n): void {\n if (isTelemetryOptedOut()) return;\n\n const distinctId = getOrCreateTelemetryDistinctId();\n const threadsProperties = isThreadsTelemetryEvent(event)\n ? {\n package_name: PACKAGE_NAME,\n package_version: PACKAGE_VERSION,\n inspector_distinct_id: distinctId,\n }\n : {};\n let body: string;\n try {\n body = JSON.stringify({\n event,\n properties: {\n ...properties,\n ...threadsProperties,\n distinct_id: distinctId,\n },\n package: {\n name: PACKAGE_NAME,\n ...(isThreadsTelemetryEvent(event) ? { version: PACKAGE_VERSION } : {}),\n },\n ts: Math.floor(Date.now() / 1000),\n });\n } catch {\n return;\n }\n\n void postBestEffort(TELEMETRY_INGEST_URL, body, distinctId);\n}\n\n// --- Typed per-event helpers ---\n// These enforce the known property shape for each V1 event at the call\n// site, so callers can't accidentally include PII under a wrong key.\n\nexport function trackBannerViewed(props: {\n banner_id: string;\n cta_label?: string;\n}): void {\n track(TELEMETRY_EVENTS.bannerViewed, props);\n}\n\nexport function trackBannerClicked(props: {\n banner_id: string;\n cta: \"body\" | \"dismiss\";\n cta_label?: string;\n}): void {\n track(TELEMETRY_EVENTS.bannerClicked, props);\n}\n\nexport type InspectorThreadTelemetryProps = {\n package_name?: typeof PACKAGE_NAME;\n package_version?: string;\n inspector_distinct_id?: string;\n posthog_distinct_id?: string;\n intelligence_status?:\n | \"intelligence_not_enabled\"\n | \"intelligence_enabled\"\n | \"unknown\";\n thread_service_status?: \"unavailable\" | \"available\" | \"unknown\" | \"error\";\n license_status?:\n | \"valid\"\n | \"none\"\n | \"expired\"\n | \"expiring\"\n | \"invalid\"\n | \"unknown\";\n runtime_mode?: \"sse\" | \"intelligence\";\n runtime_url_type?: RuntimeUrlType;\n cta_surface?:\n | \"threads_locked\"\n | \"threads_header\"\n | \"threads_empty\"\n | \"threads_populated\";\n cta?: \"signup\" | \"talk_to_engineer\";\n telemetry_disabled?: boolean;\n thread_count?: number;\n};\n\nexport function trackThreadsTabClicked(\n props: InspectorThreadTelemetryProps = {},\n): void {\n track(TELEMETRY_EVENTS.threadsTabClicked, props);\n}\n\nexport function trackThreadsLockedViewed(\n props: InspectorThreadTelemetryProps,\n): void {\n track(TELEMETRY_EVENTS.threadsLockedViewed, props);\n}\n\nexport function trackThreadsIntelligenceSignupClicked(\n props: InspectorThreadTelemetryProps,\n): void {\n track(TELEMETRY_EVENTS.threadsIntelligenceSignupClicked, props);\n}\n\nexport function trackThreadsTalkToEngineerClicked(\n props: InspectorThreadTelemetryProps,\n): void {\n track(TELEMETRY_EVENTS.threadsTalkToEngineerClicked, props);\n}\n\nexport function trackTalkToEngineerClicked(\n props: InspectorThreadTelemetryProps,\n): void {\n track(TELEMETRY_EVENTS.talkToEngineerClicked, props);\n}\n\nexport function trackThreadsEmptyEnabledViewed(\n props: InspectorThreadTelemetryProps,\n): void {\n track(TELEMETRY_EVENTS.threadsEmptyEnabledViewed, props);\n}\n\nexport function trackThreadsEnabledViewed(\n props: InspectorThreadTelemetryProps,\n): void {\n track(TELEMETRY_EVENTS.threadsEnabledViewed, props);\n}\n\nexport type InspectorMemoryTelemetryProps = {\n package_name?: typeof PACKAGE_NAME;\n package_version?: string;\n inspector_distinct_id?: string;\n posthog_distinct_id?: string;\n memory_count?: number;\n available?: boolean;\n};\n\nexport function trackMemoriesTabClicked(\n props: InspectorMemoryTelemetryProps = {},\n): void {\n track(TELEMETRY_EVENTS.memoriesTabClicked, props);\n}\n\n/**\n * Returns the inspector's anonymous distinct-ID for cross-domain\n * propagation onto outbound banner-CTA links, or `null` when the user\n * is opted out.\n *\n * The website / Ops API reads this query param on signup-flow landing\n * pages and calls `posthog.alias(...)` to merge the inspector's anon\n * ID with the website's anon ID, enabling the\n * `banner_viewed → banner_clicked → signup_attributed` funnel.\n * `identify()` itself is out of scope here (it happens on signup, in\n * the website / Ops API).\n *\n * Opt-out short-circuits this too: if the user has opted out, we do\n * NOT leak an anon ID across domains.\n */\nexport function getTelemetryDistinctIdForUrl(): string | null {\n if (isTelemetryOptedOut()) return null;\n return getOrCreateTelemetryDistinctId();\n}\n\n/**\n * Seeds the anonymous distinct-ID into localStorage on inspector mount\n * so it is ready for cross-domain propagation onto banner-CTA links\n * even before the first event fires. No-op when the user has opted out.\n */\nexport function ensureTelemetryDistinctId(): void {\n if (isTelemetryOptedOut()) return;\n getOrCreateTelemetryDistinctId();\n}\n\n/**\n * Fires the one-time console disclosure on inspector mount, when the\n * user is not opted out and hasn't seen it before. Idempotent across\n * calls within a single session because `markTelemetryDisclosureShown`\n * persists to localStorage.\n *\n * If the user is opted out, we deliberately do nothing and do NOT mark\n * the flag — so a future opt-in flips back to \"first run\" behavior.\n */\nexport function maybeShowDisclosure(): void {\n if (isTelemetryOptedOut()) return;\n if (hasTelemetryDisclosureBeenShown()) return;\n // eslint-disable-next-line no-console\n console.info(\n `[CopilotKit Inspector] anonymous interaction telemetry enabled — see ${TELEMETRY_DOCS_URL} to opt out.`,\n );\n markTelemetryDisclosureShown();\n}\n\nexport { isTelemetryOptedOut };\n\nasync function postBestEffort(\n url: string,\n body: string,\n distinctId: string,\n): Promise<void> {\n if (typeof fetch === \"undefined\") return;\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), FETCH_TIMEOUT_MS);\n try {\n await fetch(url, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-CopilotKit-Telemetry-Id\": distinctId,\n },\n body,\n signal: controller.signal,\n // No credentials / no Authorization header — anonymous endpoint.\n });\n } catch {\n // Silent failure — telemetry must not break the application.\n } finally {\n clearTimeout(timeoutId);\n }\n}\n"],"mappings":";;;;AA4BA,MAAa,mBAAmB;CAC9B,cAAc;CACd,eAAe;CACf,mBAAmB;CACnB,qBAAqB;CACrB,kCACE;CACF,8BACE;CACF,uBAAuB;CACvB,2BAA2B;CAC3B,sBAAsB;CACtB,oBAAoB;CACrB;AAOD,MAAa,uBAAuB;AAMpC,MAAa,qBAAqB;AAElC,MAAM,eAAe;AACrB,MAAM;AAIN,MAAM,mBAAmB;AAEzB,SAAS,wBAAwB,OAAgC;AAC/D,QACE,UAAU,iBAAiB,qBAC3B,UAAU,iBAAiB,uBAC3B,UAAU,iBAAiB,oCAC3B,UAAU,iBAAiB,gCAC3B,UAAU,iBAAiB,yBAC3B,UAAU,iBAAiB,6BAC3B,UAAU,iBAAiB,wBAC3B,UAAU,iBAAiB;;AAY/B,SAAgB,kBACd,YACgB;AAChB,KAAI,CAAC,WAAY,QAAO;AACxB,KAAI,WAAW,WAAW,IAAI,IAAI,CAAC,WAAW,WAAW,KAAK,CAC5D,QAAO;AAGT,KAAI;EACF,MAAM,WACJ,OAAO,WAAW,cACd,OAAO,SAAS,OAChB;EACN,MAAM,MAAM,IAAI,IAAI,YAAY,SAAS;EACzC,MAAM,UAAU,IAAI,IAAI,SAAS;EACjC,MAAM,WAAW,IAAI,SAAS,aAAa;AAE3C,MACE,aAAa,eACb,aAAa,eACb,aAAa,QAEb,QAAO;AAGT,SAAO,IAAI,WAAW,QAAQ,SAAS,gBAAgB;SACjD;AACN,SAAO;;;;;;;;;;;AAYX,SAAgB,MACd,OACA,aAAsC,EAAE,EAClC;AACN,KAAIA,yCAAqB,CAAE;CAE3B,MAAM,aAAaC,oDAAgC;CACnD,MAAM,oBAAoB,wBAAwB,MAAM,GACpD;EACE,cAAc;EACd,iBAAiB;EACjB,uBAAuB;EACxB,GACD,EAAE;CACN,IAAI;AACJ,KAAI;AACF,SAAO,KAAK,UAAU;GACpB;GACA,YAAY;IACV,GAAG;IACH,GAAG;IACH,aAAa;IACd;GACD,SAAS;IACP,MAAM;IACN,GAAI,wBAAwB,MAAM,GAAG,EAAE,SAAS,iBAAiB,GAAG,EAAE;IACvE;GACD,IAAI,KAAK,MAAM,KAAK,KAAK,GAAG,IAAK;GAClC,CAAC;SACI;AACN;;AAGF,CAAK,eAAe,sBAAsB,MAAM,WAAW;;AAO7D,SAAgB,kBAAkB,OAGzB;AACP,OAAM,iBAAiB,cAAc,MAAM;;AAG7C,SAAgB,mBAAmB,OAI1B;AACP,OAAM,iBAAiB,eAAe,MAAM;;AAgC9C,SAAgB,uBACd,QAAuC,EAAE,EACnC;AACN,OAAM,iBAAiB,mBAAmB,MAAM;;AAGlD,SAAgB,yBACd,OACM;AACN,OAAM,iBAAiB,qBAAqB,MAAM;;AAGpD,SAAgB,sCACd,OACM;AACN,OAAM,iBAAiB,kCAAkC,MAAM;;AAGjE,SAAgB,kCACd,OACM;AACN,OAAM,iBAAiB,8BAA8B,MAAM;;AAG7D,SAAgB,2BACd,OACM;AACN,OAAM,iBAAiB,uBAAuB,MAAM;;AAGtD,SAAgB,+BACd,OACM;AACN,OAAM,iBAAiB,2BAA2B,MAAM;;AAG1D,SAAgB,0BACd,OACM;AACN,OAAM,iBAAiB,sBAAsB,MAAM;;AAYrD,SAAgB,wBACd,QAAuC,EAAE,EACnC;AACN,OAAM,iBAAiB,oBAAoB,MAAM;;;;;;;;;;;;;;;;;AAkBnD,SAAgB,+BAA8C;AAC5D,KAAID,yCAAqB,CAAE,QAAO;AAClC,QAAOC,oDAAgC;;;;;;;AAQzC,SAAgB,4BAAkC;AAChD,KAAID,yCAAqB,CAAE;AAC3B,qDAAgC;;;;;;;;;;;AAYlC,SAAgB,sBAA4B;AAC1C,KAAIA,yCAAqB,CAAE;AAC3B,KAAIE,qDAAiC,CAAE;AAEvC,SAAQ,KACN,wEAAwE,mBAAmB,cAC5F;AACD,mDAA8B;;AAKhC,eAAe,eACb,KACA,MACA,YACe;AACf,KAAI,OAAO,UAAU,YAAa;CAClC,MAAM,aAAa,IAAI,iBAAiB;CACxC,MAAM,YAAY,iBAAiB,WAAW,OAAO,EAAE,iBAAiB;AACxE,KAAI;AACF,QAAM,MAAM,KAAK;GACf,QAAQ;GACR,SAAS;IACP,gBAAgB;IAChB,6BAA6B;IAC9B;GACD;GACA,QAAQ,WAAW;GAEpB,CAAC;SACI,WAEE;AACR,eAAa,UAAU"} |
@@ -14,3 +14,4 @@ import { getOrCreateTelemetryDistinctId, hasTelemetryDisclosureBeenShown, isTelemetryOptedOut, markTelemetryDisclosureShown } from "./persistence.mjs"; | ||
| threadsEmptyEnabledViewed: "oss.inspector.threads_empty_enabled_viewed", | ||
| threadsEnabledViewed: "oss.inspector.threads_enabled_viewed" | ||
| threadsEnabledViewed: "oss.inspector.threads_enabled_viewed", | ||
| memoriesTabClicked: "oss.inspector.memories_tab_clicked" | ||
| }; | ||
@@ -23,3 +24,3 @@ const TELEMETRY_INGEST_URL = "https://telemetry.copilotkit.ai/ingest"; | ||
| function isThreadsTelemetryEvent(event) { | ||
| return event === TELEMETRY_EVENTS.threadsTabClicked || event === TELEMETRY_EVENTS.threadsLockedViewed || event === TELEMETRY_EVENTS.threadsIntelligenceSignupClicked || event === TELEMETRY_EVENTS.threadsTalkToEngineerClicked || event === TELEMETRY_EVENTS.talkToEngineerClicked || event === TELEMETRY_EVENTS.threadsEmptyEnabledViewed || event === TELEMETRY_EVENTS.threadsEnabledViewed; | ||
| return event === TELEMETRY_EVENTS.threadsTabClicked || event === TELEMETRY_EVENTS.threadsLockedViewed || event === TELEMETRY_EVENTS.threadsIntelligenceSignupClicked || event === TELEMETRY_EVENTS.threadsTalkToEngineerClicked || event === TELEMETRY_EVENTS.talkToEngineerClicked || event === TELEMETRY_EVENTS.threadsEmptyEnabledViewed || event === TELEMETRY_EVENTS.threadsEnabledViewed || event === TELEMETRY_EVENTS.memoriesTabClicked; | ||
| } | ||
@@ -103,2 +104,5 @@ function getRuntimeUrlType(runtimeUrl) { | ||
| } | ||
| function trackMemoriesTabClicked(props = {}) { | ||
| track(TELEMETRY_EVENTS.memoriesTabClicked, props); | ||
| } | ||
| /** | ||
@@ -167,3 +171,3 @@ * Returns the inspector's anonymous distinct-ID for cross-domain | ||
| //#endregion | ||
| export { TELEMETRY_DOCS_URL, ensureTelemetryDistinctId, getRuntimeUrlType, getTelemetryDistinctIdForUrl, maybeShowDisclosure, trackBannerClicked, trackBannerViewed, trackTalkToEngineerClicked, trackThreadsEmptyEnabledViewed, trackThreadsEnabledViewed, trackThreadsIntelligenceSignupClicked, trackThreadsLockedViewed, trackThreadsTabClicked, trackThreadsTalkToEngineerClicked }; | ||
| export { TELEMETRY_DOCS_URL, ensureTelemetryDistinctId, getRuntimeUrlType, getTelemetryDistinctIdForUrl, maybeShowDisclosure, trackBannerClicked, trackBannerViewed, trackMemoriesTabClicked, trackTalkToEngineerClicked, trackThreadsEmptyEnabledViewed, trackThreadsEnabledViewed, trackThreadsIntelligenceSignupClicked, trackThreadsLockedViewed, trackThreadsTabClicked, trackThreadsTalkToEngineerClicked }; | ||
| //# sourceMappingURL=telemetry.mjs.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"telemetry.mjs","names":["packageJson.version"],"sources":["../../src/lib/telemetry.ts"],"sourcesContent":["// Inspector-side anonymous telemetry. V1 events fire from index.ts for\n// banner and thread-inspection interactions. POSTs directly from the browser\n// to the CopilotKit telemetry sink at `telemetry.copilotkit.ai/ingest`,\n// where a Lambda fan-out forwards events to PostHog / Reo / Scarf.\n//\n// The endpoint URL is intentionally clearly named so it's obvious in\n// DevTools / Network tab — transparency for opt-in users.\n//\n// Privacy invariants enforced here:\n// - We never send message content, agent state, prompts, completions,\n// or banner markdown. Properties are scoped to event metadata only\n// (banner_id/timestamp, cta location). Reviewers should grep call\n// sites for any unintended payload.\n// - The opt-out short-circuits before any network call. There is no\n// buffer, no retry queue.\n// - All errors are swallowed; telemetry must never break the host app.\n\nimport {\n getOrCreateTelemetryDistinctId,\n hasTelemetryDisclosureBeenShown,\n isTelemetryOptedOut,\n markTelemetryDisclosureShown,\n} from \"./persistence.js\";\nimport packageJson from \"../../package.json\" with { type: \"json\" };\n\n// V1 funnel events. Namespaced `oss.inspector.*` so the lambda's\n// owned-prefix gate (oss-path-to-production) can accept them server-side\n// without a per-event sink deploy.\nexport const TELEMETRY_EVENTS = {\n bannerViewed: \"oss.inspector.banner_viewed\",\n bannerClicked: \"oss.inspector.banner_clicked\",\n threadsTabClicked: \"oss.inspector.threads_tab_clicked\",\n threadsLockedViewed: \"oss.inspector.threads_locked_viewed\",\n threadsIntelligenceSignupClicked:\n \"oss.inspector.threads_intelligence_signup_clicked\",\n threadsTalkToEngineerClicked:\n \"oss.inspector.threads_talk_to_engineer_clicked\",\n talkToEngineerClicked: \"oss.inspector.talk_to_engineer_clicked\",\n threadsEmptyEnabledViewed: \"oss.inspector.threads_empty_enabled_viewed\",\n threadsEnabledViewed: \"oss.inspector.threads_enabled_viewed\",\n} as const;\n\nexport type TelemetryEvent =\n (typeof TELEMETRY_EVENTS)[keyof typeof TELEMETRY_EVENTS];\n\n// Per the OSS-96 ticket — the URL is intentionally clearly named for\n// transparency in the network tab.\nexport const TELEMETRY_INGEST_URL = \"https://telemetry.copilotkit.ai/ingest\";\n\n// Surfaced in console disclosure and the in-product opt-out panel.\n// Keep in sync with the canonical telemetry docs page on main\n// (`docs/content/docs/(root)/(other)/telemetry/index.mdx`).\n// Mirror constant: packages/runtime/src/lib/telemetry-disclosure.ts\nexport const TELEMETRY_DOCS_URL = \"https://docs.copilotkit.ai/telemetry\";\n\nconst PACKAGE_NAME = \"@copilotkit/web-inspector\";\nconst PACKAGE_VERSION = packageJson.version;\n\n// 3-second cap so a slow gateway can't hang the host app. Matches the\n// runtime's existing scarf-client convention.\nconst FETCH_TIMEOUT_MS = 3000;\n\nfunction isThreadsTelemetryEvent(event: TelemetryEvent): boolean {\n return (\n event === TELEMETRY_EVENTS.threadsTabClicked ||\n event === TELEMETRY_EVENTS.threadsLockedViewed ||\n event === TELEMETRY_EVENTS.threadsIntelligenceSignupClicked ||\n event === TELEMETRY_EVENTS.threadsTalkToEngineerClicked ||\n event === TELEMETRY_EVENTS.talkToEngineerClicked ||\n event === TELEMETRY_EVENTS.threadsEmptyEnabledViewed ||\n event === TELEMETRY_EVENTS.threadsEnabledViewed\n );\n}\n\nexport type RuntimeUrlType =\n | \"missing\"\n | \"relative\"\n | \"localhost\"\n | \"same_origin\"\n | \"remote\"\n | \"invalid\";\n\nexport function getRuntimeUrlType(\n runtimeUrl: string | undefined,\n): RuntimeUrlType {\n if (!runtimeUrl) return \"missing\";\n if (runtimeUrl.startsWith(\"/\") && !runtimeUrl.startsWith(\"//\")) {\n return \"relative\";\n }\n\n try {\n const baseHref =\n typeof window !== \"undefined\"\n ? window.location.href\n : \"https://copilotkit.ai\";\n const url = new URL(runtimeUrl, baseHref);\n const baseUrl = new URL(baseHref);\n const hostname = url.hostname.toLowerCase();\n\n if (\n hostname === \"localhost\" ||\n hostname === \"127.0.0.1\" ||\n hostname === \"[::1]\"\n ) {\n return \"localhost\";\n }\n\n return url.origin === baseUrl.origin ? \"same_origin\" : \"remote\";\n } catch {\n return \"invalid\";\n }\n}\n\n/**\n * Fire-and-forget telemetry send. Returns synchronously; the network\n * call is dispatched in the background and any failure is swallowed.\n *\n * Short-circuits when the user has opted out. Does NOT itself trigger\n * the first-run disclosure — call `maybeShowDisclosure()` from the\n * inspector's mount lifecycle instead.\n */\nexport function track(\n event: TelemetryEvent,\n properties: Record<string, unknown> = {},\n): void {\n if (isTelemetryOptedOut()) return;\n\n const distinctId = getOrCreateTelemetryDistinctId();\n const threadsProperties = isThreadsTelemetryEvent(event)\n ? {\n package_name: PACKAGE_NAME,\n package_version: PACKAGE_VERSION,\n inspector_distinct_id: distinctId,\n }\n : {};\n let body: string;\n try {\n body = JSON.stringify({\n event,\n properties: {\n ...properties,\n ...threadsProperties,\n distinct_id: distinctId,\n },\n package: {\n name: PACKAGE_NAME,\n ...(isThreadsTelemetryEvent(event) ? { version: PACKAGE_VERSION } : {}),\n },\n ts: Math.floor(Date.now() / 1000),\n });\n } catch {\n return;\n }\n\n void postBestEffort(TELEMETRY_INGEST_URL, body, distinctId);\n}\n\n// --- Typed per-event helpers ---\n// These enforce the known property shape for each V1 event at the call\n// site, so callers can't accidentally include PII under a wrong key.\n\nexport function trackBannerViewed(props: {\n banner_id: string;\n cta_label?: string;\n}): void {\n track(TELEMETRY_EVENTS.bannerViewed, props);\n}\n\nexport function trackBannerClicked(props: {\n banner_id: string;\n cta: \"body\" | \"dismiss\";\n cta_label?: string;\n}): void {\n track(TELEMETRY_EVENTS.bannerClicked, props);\n}\n\nexport type InspectorThreadTelemetryProps = {\n package_name?: typeof PACKAGE_NAME;\n package_version?: string;\n inspector_distinct_id?: string;\n posthog_distinct_id?: string;\n intelligence_status?:\n | \"intelligence_not_enabled\"\n | \"intelligence_enabled\"\n | \"unknown\";\n thread_service_status?: \"unavailable\" | \"available\" | \"unknown\" | \"error\";\n license_status?:\n | \"valid\"\n | \"none\"\n | \"expired\"\n | \"expiring\"\n | \"invalid\"\n | \"unknown\";\n runtime_mode?: \"sse\" | \"intelligence\";\n runtime_url_type?: RuntimeUrlType;\n cta_surface?:\n | \"threads_locked\"\n | \"threads_header\"\n | \"threads_empty\"\n | \"threads_populated\";\n cta?: \"signup\" | \"talk_to_engineer\";\n telemetry_disabled?: boolean;\n thread_count?: number;\n};\n\nexport function trackThreadsTabClicked(\n props: InspectorThreadTelemetryProps = {},\n): void {\n track(TELEMETRY_EVENTS.threadsTabClicked, props);\n}\n\nexport function trackThreadsLockedViewed(\n props: InspectorThreadTelemetryProps,\n): void {\n track(TELEMETRY_EVENTS.threadsLockedViewed, props);\n}\n\nexport function trackThreadsIntelligenceSignupClicked(\n props: InspectorThreadTelemetryProps,\n): void {\n track(TELEMETRY_EVENTS.threadsIntelligenceSignupClicked, props);\n}\n\nexport function trackThreadsTalkToEngineerClicked(\n props: InspectorThreadTelemetryProps,\n): void {\n track(TELEMETRY_EVENTS.threadsTalkToEngineerClicked, props);\n}\n\nexport function trackTalkToEngineerClicked(\n props: InspectorThreadTelemetryProps,\n): void {\n track(TELEMETRY_EVENTS.talkToEngineerClicked, props);\n}\n\nexport function trackThreadsEmptyEnabledViewed(\n props: InspectorThreadTelemetryProps,\n): void {\n track(TELEMETRY_EVENTS.threadsEmptyEnabledViewed, props);\n}\n\nexport function trackThreadsEnabledViewed(\n props: InspectorThreadTelemetryProps,\n): void {\n track(TELEMETRY_EVENTS.threadsEnabledViewed, props);\n}\n\n/**\n * Returns the inspector's anonymous distinct-ID for cross-domain\n * propagation onto outbound banner-CTA links, or `null` when the user\n * is opted out.\n *\n * The website / Ops API reads this query param on signup-flow landing\n * pages and calls `posthog.alias(...)` to merge the inspector's anon\n * ID with the website's anon ID, enabling the\n * `banner_viewed → banner_clicked → signup_attributed` funnel.\n * `identify()` itself is out of scope here (it happens on signup, in\n * the website / Ops API).\n *\n * Opt-out short-circuits this too: if the user has opted out, we do\n * NOT leak an anon ID across domains.\n */\nexport function getTelemetryDistinctIdForUrl(): string | null {\n if (isTelemetryOptedOut()) return null;\n return getOrCreateTelemetryDistinctId();\n}\n\n/**\n * Seeds the anonymous distinct-ID into localStorage on inspector mount\n * so it is ready for cross-domain propagation onto banner-CTA links\n * even before the first event fires. No-op when the user has opted out.\n */\nexport function ensureTelemetryDistinctId(): void {\n if (isTelemetryOptedOut()) return;\n getOrCreateTelemetryDistinctId();\n}\n\n/**\n * Fires the one-time console disclosure on inspector mount, when the\n * user is not opted out and hasn't seen it before. Idempotent across\n * calls within a single session because `markTelemetryDisclosureShown`\n * persists to localStorage.\n *\n * If the user is opted out, we deliberately do nothing and do NOT mark\n * the flag — so a future opt-in flips back to \"first run\" behavior.\n */\nexport function maybeShowDisclosure(): void {\n if (isTelemetryOptedOut()) return;\n if (hasTelemetryDisclosureBeenShown()) return;\n // eslint-disable-next-line no-console\n console.info(\n `[CopilotKit Inspector] anonymous interaction telemetry enabled — see ${TELEMETRY_DOCS_URL} to opt out.`,\n );\n markTelemetryDisclosureShown();\n}\n\nexport { isTelemetryOptedOut };\n\nasync function postBestEffort(\n url: string,\n body: string,\n distinctId: string,\n): Promise<void> {\n if (typeof fetch === \"undefined\") return;\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), FETCH_TIMEOUT_MS);\n try {\n await fetch(url, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-CopilotKit-Telemetry-Id\": distinctId,\n },\n body,\n signal: controller.signal,\n // No credentials / no Authorization header — anonymous endpoint.\n });\n } catch {\n // Silent failure — telemetry must not break the application.\n } finally {\n clearTimeout(timeoutId);\n }\n}\n"],"mappings":"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"} | ||
| {"version":3,"file":"telemetry.mjs","names":["packageJson.version"],"sources":["../../src/lib/telemetry.ts"],"sourcesContent":["// Inspector-side anonymous telemetry. V1 events fire from index.ts for\n// banner and thread-inspection interactions. POSTs directly from the browser\n// to the CopilotKit telemetry sink at `telemetry.copilotkit.ai/ingest`,\n// where a Lambda fan-out forwards events to PostHog / Reo / Scarf.\n//\n// The endpoint URL is intentionally clearly named so it's obvious in\n// DevTools / Network tab — transparency for opt-in users.\n//\n// Privacy invariants enforced here:\n// - We never send message content, agent state, prompts, completions,\n// or banner markdown. Properties are scoped to event metadata only\n// (banner_id/timestamp, cta location). Reviewers should grep call\n// sites for any unintended payload.\n// - The opt-out short-circuits before any network call. There is no\n// buffer, no retry queue.\n// - All errors are swallowed; telemetry must never break the host app.\n\nimport {\n getOrCreateTelemetryDistinctId,\n hasTelemetryDisclosureBeenShown,\n isTelemetryOptedOut,\n markTelemetryDisclosureShown,\n} from \"./persistence.js\";\nimport packageJson from \"../../package.json\" with { type: \"json\" };\n\n// V1 funnel events. Namespaced `oss.inspector.*` so the lambda's\n// owned-prefix gate (oss-path-to-production) can accept them server-side\n// without a per-event sink deploy.\nexport const TELEMETRY_EVENTS = {\n bannerViewed: \"oss.inspector.banner_viewed\",\n bannerClicked: \"oss.inspector.banner_clicked\",\n threadsTabClicked: \"oss.inspector.threads_tab_clicked\",\n threadsLockedViewed: \"oss.inspector.threads_locked_viewed\",\n threadsIntelligenceSignupClicked:\n \"oss.inspector.threads_intelligence_signup_clicked\",\n threadsTalkToEngineerClicked:\n \"oss.inspector.threads_talk_to_engineer_clicked\",\n talkToEngineerClicked: \"oss.inspector.talk_to_engineer_clicked\",\n threadsEmptyEnabledViewed: \"oss.inspector.threads_empty_enabled_viewed\",\n threadsEnabledViewed: \"oss.inspector.threads_enabled_viewed\",\n memoriesTabClicked: \"oss.inspector.memories_tab_clicked\",\n} as const;\n\nexport type TelemetryEvent =\n (typeof TELEMETRY_EVENTS)[keyof typeof TELEMETRY_EVENTS];\n\n// Per the OSS-96 ticket — the URL is intentionally clearly named for\n// transparency in the network tab.\nexport const TELEMETRY_INGEST_URL = \"https://telemetry.copilotkit.ai/ingest\";\n\n// Surfaced in console disclosure and the in-product opt-out panel.\n// Keep in sync with the canonical telemetry docs page on main\n// (`docs/content/docs/(root)/(other)/telemetry/index.mdx`).\n// Mirror constant: packages/runtime/src/lib/telemetry-disclosure.ts\nexport const TELEMETRY_DOCS_URL = \"https://docs.copilotkit.ai/telemetry\";\n\nconst PACKAGE_NAME = \"@copilotkit/web-inspector\";\nconst PACKAGE_VERSION = packageJson.version;\n\n// 3-second cap so a slow gateway can't hang the host app. Matches the\n// runtime's existing scarf-client convention.\nconst FETCH_TIMEOUT_MS = 3000;\n\nfunction isThreadsTelemetryEvent(event: TelemetryEvent): boolean {\n return (\n event === TELEMETRY_EVENTS.threadsTabClicked ||\n event === TELEMETRY_EVENTS.threadsLockedViewed ||\n event === TELEMETRY_EVENTS.threadsIntelligenceSignupClicked ||\n event === TELEMETRY_EVENTS.threadsTalkToEngineerClicked ||\n event === TELEMETRY_EVENTS.talkToEngineerClicked ||\n event === TELEMETRY_EVENTS.threadsEmptyEnabledViewed ||\n event === TELEMETRY_EVENTS.threadsEnabledViewed ||\n event === TELEMETRY_EVENTS.memoriesTabClicked\n );\n}\n\nexport type RuntimeUrlType =\n | \"missing\"\n | \"relative\"\n | \"localhost\"\n | \"same_origin\"\n | \"remote\"\n | \"invalid\";\n\nexport function getRuntimeUrlType(\n runtimeUrl: string | undefined,\n): RuntimeUrlType {\n if (!runtimeUrl) return \"missing\";\n if (runtimeUrl.startsWith(\"/\") && !runtimeUrl.startsWith(\"//\")) {\n return \"relative\";\n }\n\n try {\n const baseHref =\n typeof window !== \"undefined\"\n ? window.location.href\n : \"https://copilotkit.ai\";\n const url = new URL(runtimeUrl, baseHref);\n const baseUrl = new URL(baseHref);\n const hostname = url.hostname.toLowerCase();\n\n if (\n hostname === \"localhost\" ||\n hostname === \"127.0.0.1\" ||\n hostname === \"[::1]\"\n ) {\n return \"localhost\";\n }\n\n return url.origin === baseUrl.origin ? \"same_origin\" : \"remote\";\n } catch {\n return \"invalid\";\n }\n}\n\n/**\n * Fire-and-forget telemetry send. Returns synchronously; the network\n * call is dispatched in the background and any failure is swallowed.\n *\n * Short-circuits when the user has opted out. Does NOT itself trigger\n * the first-run disclosure — call `maybeShowDisclosure()` from the\n * inspector's mount lifecycle instead.\n */\nexport function track(\n event: TelemetryEvent,\n properties: Record<string, unknown> = {},\n): void {\n if (isTelemetryOptedOut()) return;\n\n const distinctId = getOrCreateTelemetryDistinctId();\n const threadsProperties = isThreadsTelemetryEvent(event)\n ? {\n package_name: PACKAGE_NAME,\n package_version: PACKAGE_VERSION,\n inspector_distinct_id: distinctId,\n }\n : {};\n let body: string;\n try {\n body = JSON.stringify({\n event,\n properties: {\n ...properties,\n ...threadsProperties,\n distinct_id: distinctId,\n },\n package: {\n name: PACKAGE_NAME,\n ...(isThreadsTelemetryEvent(event) ? { version: PACKAGE_VERSION } : {}),\n },\n ts: Math.floor(Date.now() / 1000),\n });\n } catch {\n return;\n }\n\n void postBestEffort(TELEMETRY_INGEST_URL, body, distinctId);\n}\n\n// --- Typed per-event helpers ---\n// These enforce the known property shape for each V1 event at the call\n// site, so callers can't accidentally include PII under a wrong key.\n\nexport function trackBannerViewed(props: {\n banner_id: string;\n cta_label?: string;\n}): void {\n track(TELEMETRY_EVENTS.bannerViewed, props);\n}\n\nexport function trackBannerClicked(props: {\n banner_id: string;\n cta: \"body\" | \"dismiss\";\n cta_label?: string;\n}): void {\n track(TELEMETRY_EVENTS.bannerClicked, props);\n}\n\nexport type InspectorThreadTelemetryProps = {\n package_name?: typeof PACKAGE_NAME;\n package_version?: string;\n inspector_distinct_id?: string;\n posthog_distinct_id?: string;\n intelligence_status?:\n | \"intelligence_not_enabled\"\n | \"intelligence_enabled\"\n | \"unknown\";\n thread_service_status?: \"unavailable\" | \"available\" | \"unknown\" | \"error\";\n license_status?:\n | \"valid\"\n | \"none\"\n | \"expired\"\n | \"expiring\"\n | \"invalid\"\n | \"unknown\";\n runtime_mode?: \"sse\" | \"intelligence\";\n runtime_url_type?: RuntimeUrlType;\n cta_surface?:\n | \"threads_locked\"\n | \"threads_header\"\n | \"threads_empty\"\n | \"threads_populated\";\n cta?: \"signup\" | \"talk_to_engineer\";\n telemetry_disabled?: boolean;\n thread_count?: number;\n};\n\nexport function trackThreadsTabClicked(\n props: InspectorThreadTelemetryProps = {},\n): void {\n track(TELEMETRY_EVENTS.threadsTabClicked, props);\n}\n\nexport function trackThreadsLockedViewed(\n props: InspectorThreadTelemetryProps,\n): void {\n track(TELEMETRY_EVENTS.threadsLockedViewed, props);\n}\n\nexport function trackThreadsIntelligenceSignupClicked(\n props: InspectorThreadTelemetryProps,\n): void {\n track(TELEMETRY_EVENTS.threadsIntelligenceSignupClicked, props);\n}\n\nexport function trackThreadsTalkToEngineerClicked(\n props: InspectorThreadTelemetryProps,\n): void {\n track(TELEMETRY_EVENTS.threadsTalkToEngineerClicked, props);\n}\n\nexport function trackTalkToEngineerClicked(\n props: InspectorThreadTelemetryProps,\n): void {\n track(TELEMETRY_EVENTS.talkToEngineerClicked, props);\n}\n\nexport function trackThreadsEmptyEnabledViewed(\n props: InspectorThreadTelemetryProps,\n): void {\n track(TELEMETRY_EVENTS.threadsEmptyEnabledViewed, props);\n}\n\nexport function trackThreadsEnabledViewed(\n props: InspectorThreadTelemetryProps,\n): void {\n track(TELEMETRY_EVENTS.threadsEnabledViewed, props);\n}\n\nexport type InspectorMemoryTelemetryProps = {\n package_name?: typeof PACKAGE_NAME;\n package_version?: string;\n inspector_distinct_id?: string;\n posthog_distinct_id?: string;\n memory_count?: number;\n available?: boolean;\n};\n\nexport function trackMemoriesTabClicked(\n props: InspectorMemoryTelemetryProps = {},\n): void {\n track(TELEMETRY_EVENTS.memoriesTabClicked, props);\n}\n\n/**\n * Returns the inspector's anonymous distinct-ID for cross-domain\n * propagation onto outbound banner-CTA links, or `null` when the user\n * is opted out.\n *\n * The website / Ops API reads this query param on signup-flow landing\n * pages and calls `posthog.alias(...)` to merge the inspector's anon\n * ID with the website's anon ID, enabling the\n * `banner_viewed → banner_clicked → signup_attributed` funnel.\n * `identify()` itself is out of scope here (it happens on signup, in\n * the website / Ops API).\n *\n * Opt-out short-circuits this too: if the user has opted out, we do\n * NOT leak an anon ID across domains.\n */\nexport function getTelemetryDistinctIdForUrl(): string | null {\n if (isTelemetryOptedOut()) return null;\n return getOrCreateTelemetryDistinctId();\n}\n\n/**\n * Seeds the anonymous distinct-ID into localStorage on inspector mount\n * so it is ready for cross-domain propagation onto banner-CTA links\n * even before the first event fires. No-op when the user has opted out.\n */\nexport function ensureTelemetryDistinctId(): void {\n if (isTelemetryOptedOut()) return;\n getOrCreateTelemetryDistinctId();\n}\n\n/**\n * Fires the one-time console disclosure on inspector mount, when the\n * user is not opted out and hasn't seen it before. Idempotent across\n * calls within a single session because `markTelemetryDisclosureShown`\n * persists to localStorage.\n *\n * If the user is opted out, we deliberately do nothing and do NOT mark\n * the flag — so a future opt-in flips back to \"first run\" behavior.\n */\nexport function maybeShowDisclosure(): void {\n if (isTelemetryOptedOut()) return;\n if (hasTelemetryDisclosureBeenShown()) return;\n // eslint-disable-next-line no-console\n console.info(\n `[CopilotKit Inspector] anonymous interaction telemetry enabled — see ${TELEMETRY_DOCS_URL} to opt out.`,\n );\n markTelemetryDisclosureShown();\n}\n\nexport { isTelemetryOptedOut };\n\nasync function postBestEffort(\n url: string,\n body: string,\n distinctId: string,\n): Promise<void> {\n if (typeof fetch === \"undefined\") return;\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), FETCH_TIMEOUT_MS);\n try {\n await fetch(url, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-CopilotKit-Telemetry-Id\": distinctId,\n },\n body,\n signal: controller.signal,\n // No credentials / no Authorization header — anonymous endpoint.\n });\n } catch {\n // Silent failure — telemetry must not break the application.\n } finally {\n clearTimeout(timeoutId);\n }\n}\n"],"mappings":";;;;AA4BA,MAAa,mBAAmB;CAC9B,cAAc;CACd,eAAe;CACf,mBAAmB;CACnB,qBAAqB;CACrB,kCACE;CACF,8BACE;CACF,uBAAuB;CACvB,2BAA2B;CAC3B,sBAAsB;CACtB,oBAAoB;CACrB;AAOD,MAAa,uBAAuB;AAMpC,MAAa,qBAAqB;AAElC,MAAM,eAAe;AACrB,MAAM,kBAAkBA;AAIxB,MAAM,mBAAmB;AAEzB,SAAS,wBAAwB,OAAgC;AAC/D,QACE,UAAU,iBAAiB,qBAC3B,UAAU,iBAAiB,uBAC3B,UAAU,iBAAiB,oCAC3B,UAAU,iBAAiB,gCAC3B,UAAU,iBAAiB,yBAC3B,UAAU,iBAAiB,6BAC3B,UAAU,iBAAiB,wBAC3B,UAAU,iBAAiB;;AAY/B,SAAgB,kBACd,YACgB;AAChB,KAAI,CAAC,WAAY,QAAO;AACxB,KAAI,WAAW,WAAW,IAAI,IAAI,CAAC,WAAW,WAAW,KAAK,CAC5D,QAAO;AAGT,KAAI;EACF,MAAM,WACJ,OAAO,WAAW,cACd,OAAO,SAAS,OAChB;EACN,MAAM,MAAM,IAAI,IAAI,YAAY,SAAS;EACzC,MAAM,UAAU,IAAI,IAAI,SAAS;EACjC,MAAM,WAAW,IAAI,SAAS,aAAa;AAE3C,MACE,aAAa,eACb,aAAa,eACb,aAAa,QAEb,QAAO;AAGT,SAAO,IAAI,WAAW,QAAQ,SAAS,gBAAgB;SACjD;AACN,SAAO;;;;;;;;;;;AAYX,SAAgB,MACd,OACA,aAAsC,EAAE,EAClC;AACN,KAAI,qBAAqB,CAAE;CAE3B,MAAM,aAAa,gCAAgC;CACnD,MAAM,oBAAoB,wBAAwB,MAAM,GACpD;EACE,cAAc;EACd,iBAAiB;EACjB,uBAAuB;EACxB,GACD,EAAE;CACN,IAAI;AACJ,KAAI;AACF,SAAO,KAAK,UAAU;GACpB;GACA,YAAY;IACV,GAAG;IACH,GAAG;IACH,aAAa;IACd;GACD,SAAS;IACP,MAAM;IACN,GAAI,wBAAwB,MAAM,GAAG,EAAE,SAAS,iBAAiB,GAAG,EAAE;IACvE;GACD,IAAI,KAAK,MAAM,KAAK,KAAK,GAAG,IAAK;GAClC,CAAC;SACI;AACN;;AAGF,CAAK,eAAe,sBAAsB,MAAM,WAAW;;AAO7D,SAAgB,kBAAkB,OAGzB;AACP,OAAM,iBAAiB,cAAc,MAAM;;AAG7C,SAAgB,mBAAmB,OAI1B;AACP,OAAM,iBAAiB,eAAe,MAAM;;AAgC9C,SAAgB,uBACd,QAAuC,EAAE,EACnC;AACN,OAAM,iBAAiB,mBAAmB,MAAM;;AAGlD,SAAgB,yBACd,OACM;AACN,OAAM,iBAAiB,qBAAqB,MAAM;;AAGpD,SAAgB,sCACd,OACM;AACN,OAAM,iBAAiB,kCAAkC,MAAM;;AAGjE,SAAgB,kCACd,OACM;AACN,OAAM,iBAAiB,8BAA8B,MAAM;;AAG7D,SAAgB,2BACd,OACM;AACN,OAAM,iBAAiB,uBAAuB,MAAM;;AAGtD,SAAgB,+BACd,OACM;AACN,OAAM,iBAAiB,2BAA2B,MAAM;;AAG1D,SAAgB,0BACd,OACM;AACN,OAAM,iBAAiB,sBAAsB,MAAM;;AAYrD,SAAgB,wBACd,QAAuC,EAAE,EACnC;AACN,OAAM,iBAAiB,oBAAoB,MAAM;;;;;;;;;;;;;;;;;AAkBnD,SAAgB,+BAA8C;AAC5D,KAAI,qBAAqB,CAAE,QAAO;AAClC,QAAO,gCAAgC;;;;;;;AAQzC,SAAgB,4BAAkC;AAChD,KAAI,qBAAqB,CAAE;AAC3B,iCAAgC;;;;;;;;;;;AAYlC,SAAgB,sBAA4B;AAC1C,KAAI,qBAAqB,CAAE;AAC3B,KAAI,iCAAiC,CAAE;AAEvC,SAAQ,KACN,wEAAwE,mBAAmB,cAC5F;AACD,+BAA8B;;AAKhC,eAAe,eACb,KACA,MACA,YACe;AACf,KAAI,OAAO,UAAU,YAAa;CAClC,MAAM,aAAa,IAAI,iBAAiB;CACxC,MAAM,YAAY,iBAAiB,WAAW,OAAO,EAAE,iBAAiB;AACxE,KAAI;AACF,QAAM,MAAM,KAAK;GACf,QAAQ;GACR,SAAS;IACP,gBAAgB;IAChB,6BAA6B;IAC9B;GACD;GACA,QAAQ,WAAW;GAEpB,CAAC;SACI,WAEE;AACR,eAAa,UAAU"} |
+1
-1
| //#region package.json | ||
| var version = "1.62.2"; | ||
| var version = "1.62.3"; | ||
@@ -5,0 +5,0 @@ //#endregion |
+1
-1
| //#region package.json | ||
| var version = "1.62.2"; | ||
| var version = "1.62.3"; | ||
@@ -4,0 +4,0 @@ //#endregion |
+2
-2
| { | ||
| "name": "@copilotkit/web-inspector", | ||
| "version": "1.62.2", | ||
| "version": "1.62.3", | ||
| "description": "Lit-based web component for the CopilotKit web inspector", | ||
@@ -30,3 +30,3 @@ "repository": { | ||
| "marked": "^12.0.2", | ||
| "@copilotkit/core": "1.62.2" | ||
| "@copilotkit/core": "1.62.3" | ||
| }, | ||
@@ -33,0 +33,0 @@ "devDependencies": { |
+18
-1
@@ -41,2 +41,3 @@ // Inspector-side anonymous telemetry. V1 events fire from index.ts for | ||
| threadsEnabledViewed: "oss.inspector.threads_enabled_viewed", | ||
| memoriesTabClicked: "oss.inspector.memories_tab_clicked", | ||
| } as const; | ||
@@ -72,3 +73,4 @@ | ||
| event === TELEMETRY_EVENTS.threadsEmptyEnabledViewed || | ||
| event === TELEMETRY_EVENTS.threadsEnabledViewed | ||
| event === TELEMETRY_EVENTS.threadsEnabledViewed || | ||
| event === TELEMETRY_EVENTS.memoriesTabClicked | ||
| ); | ||
@@ -250,2 +252,17 @@ } | ||
| export type InspectorMemoryTelemetryProps = { | ||
| package_name?: typeof PACKAGE_NAME; | ||
| package_version?: string; | ||
| inspector_distinct_id?: string; | ||
| posthog_distinct_id?: string; | ||
| memory_count?: number; | ||
| available?: boolean; | ||
| }; | ||
| export function trackMemoriesTabClicked( | ||
| props: InspectorMemoryTelemetryProps = {}, | ||
| ): void { | ||
| track(TELEMETRY_EVENTS.memoriesTabClicked, props); | ||
| } | ||
| /** | ||
@@ -252,0 +269,0 @@ * Returns the inspector's anonymous distinct-ID for cross-domain |
| /*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */ | ||
| @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-amber-50:oklch(98.7% .022 95.277);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-800:oklch(47.3% .137 46.201);--color-amber-900:oklch(41.4% .112 45.904);--color-green-100:oklch(96.2% .044 156.743);--color-green-700:oklch(52.7% .154 150.069);--color-green-800:oklch(44.8% .119 151.328);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-700:oklch(50.8% .118 165.612);--color-sky-50:oklch(97.7% .013 236.62);--color-sky-200:oklch(90.1% .058 230.902);--color-sky-700:oklch(50% .134 242.749);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-violet-50:oklch(96.9% .016 293.756);--color-violet-200:oklch(89.4% .057 293.283);--color-violet-700:oklch(49.1% .27 292.581);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-700:oklch(49.6% .265 301.924);--color-fuchsia-50:oklch(97.7% .017 320.058);--color-fuchsia-200:oklch(90.3% .076 319.62);--color-fuchsia-700:oklch(51.8% .253 323.949);--color-rose-50:oklch(96.9% .015 12.422);--color-rose-200:oklch(89.2% .058 10.001);--color-rose-500:oklch(64.5% .246 16.439);--color-rose-700:oklch(51.4% .222 16.935);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--color-slate-950:oklch(12.9% .042 264.695);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-md:28rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--font-weight-medium:500;--font-weight-semibold:600;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--blur-sm:8px;--blur-md:12px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}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;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:host{font-family:var(--font-sans);color:var(--color-slate-900);background-color:#0000;display:block}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.top-0{top:calc(var(--spacing)*0)}.right-0{right:calc(var(--spacing)*0)}.right-1{right:calc(var(--spacing)*1)}.bottom-1{bottom:calc(var(--spacing)*1)}.left-0{left:calc(var(--spacing)*0)}.z-10{z-index:10}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.m-0{margin:calc(var(--spacing)*0)}.mx-4{margin-inline:calc(var(--spacing)*4)}.my-1{margin-block:calc(var(--spacing)*1)}.my-3{margin-block:calc(var(--spacing)*3)}.mt-0\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-1\.5{margin-top:calc(var(--spacing)*1.5)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.ml-auto{margin-left:auto}.box-border{box-sizing:border-box}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-1\.5{height:calc(var(--spacing)*1.5)}.h-3{height:calc(var(--spacing)*3)}.h-3\.5{height:calc(var(--spacing)*3.5)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-8{height:calc(var(--spacing)*8)}.h-10{height:calc(var(--spacing)*10)}.h-12{height:calc(var(--spacing)*12)}.h-full{height:100%}.max-h-64{max-height:calc(var(--spacing)*64)}.w-1\.5{width:calc(var(--spacing)*1.5)}.w-3{width:calc(var(--spacing)*3)}.w-3\.5{width:calc(var(--spacing)*3.5)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-8{width:calc(var(--spacing)*8)}.w-10{width:calc(var(--spacing)*10)}.w-12{width:calc(var(--spacing)*12)}.w-40{width:calc(var(--spacing)*40)}.w-auto{width:auto}.w-full{width:100%}.max-w-\[240px\]{max-width:240px}.max-w-md{max-width:var(--container-md)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-\[160px\]{min-width:160px}.min-w-\[200px\]{min-width:200px}.flex-1{flex:1}.flex-shrink,.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.table-fixed{table-layout:fixed}.border-collapse{border-collapse:collapse}.-translate-y-\[2px\]{--tw-translate-y:calc(2px*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-nwse-resize{cursor:nwse-resize}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize{resize:both}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px*var(--tw-divide-y-reverse));border-bottom-width:calc(1px*calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-gray-200>:not(:last-child)){border-color:var(--color-gray-200)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-amber-200{border-color:var(--color-amber-200)}.border-blue-200{border-color:var(--color-blue-200)}.border-emerald-200{border-color:var(--color-emerald-200)}.border-fuchsia-200{border-color:var(--color-fuchsia-200)}.border-gray-100{border-color:var(--color-gray-100)}.border-gray-200{border-color:var(--color-gray-200)}.border-purple-200{border-color:var(--color-purple-200)}.border-rose-200{border-color:var(--color-rose-200)}.border-sky-200{border-color:var(--color-sky-200)}.border-slate-200{border-color:var(--color-slate-200)}.border-violet-200{border-color:var(--color-violet-200)}.border-white\/20{border-color:#fff3}@supports (color:color-mix(in lab, red, red)){.border-white\/20{border-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.bg-amber-50{background-color:var(--color-amber-50)}.bg-amber-100{background-color:var(--color-amber-100)}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-emerald-50{background-color:var(--color-emerald-50)}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-fuchsia-50{background-color:var(--color-fuchsia-50)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-50\/50{background-color:#f9fafb80}@supports (color:color-mix(in lab, red, red)){.bg-gray-50\/50{background-color:color-mix(in oklab,var(--color-gray-50)50%,transparent)}}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-gray-800{background-color:var(--color-gray-800)}.bg-gray-900{background-color:var(--color-gray-900)}.bg-green-100{background-color:var(--color-green-100)}.bg-purple-50{background-color:var(--color-purple-50)}.bg-rose-50{background-color:var(--color-rose-50)}.bg-rose-500{background-color:var(--color-rose-500)}.bg-sky-50{background-color:var(--color-sky-50)}.bg-slate-900{background-color:var(--color-slate-900)}.bg-slate-950\/95{background-color:#020618f2}@supports (color:color-mix(in lab, red, red)){.bg-slate-950\/95{background-color:color-mix(in oklab,var(--color-slate-950)95%,transparent)}}.bg-violet-50{background-color:var(--color-violet-50)}.bg-white{background-color:var(--color-white)}.bg-white\/60{background-color:#fff9}@supports (color:color-mix(in lab, red, red)){.bg-white\/60{background-color:color-mix(in oklab,var(--color-white)60%,transparent)}}.bg-white\/95{background-color:#fffffff2}@supports (color:color-mix(in lab, red, red)){.bg-white\/95{background-color:color-mix(in oklab,var(--color-white)95%,transparent)}}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-1\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-2\.5{padding-block:calc(var(--spacing)*2.5)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-8{padding-block:calc(var(--spacing)*8)}.py-10{padding-block:calc(var(--spacing)*10)}.text-center{text-align:center}.text-left{text-align:left}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.break-words{overflow-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-600{color:var(--color-amber-600)}.text-amber-700{color:var(--color-amber-700)}.text-amber-800{color:var(--color-amber-800)}.text-amber-900{color:var(--color-amber-900)}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-blue-800{color:var(--color-blue-800)}.text-emerald-700{color:var(--color-emerald-700)}.text-fuchsia-700{color:var(--color-fuchsia-700)}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.text-green-700{color:var(--color-green-700)}.text-green-800{color:var(--color-green-800)}.text-purple-700{color:var(--color-purple-700)}.text-rose-700{color:var(--color-rose-700)}.text-sky-700{color:var(--color-sky-700)}.text-slate-500{color:var(--color-slate-500)}.text-slate-700{color:var(--color-slate-700)}.text-slate-800{color:var(--color-slate-800)}.text-slate-900{color:var(--color-slate-900)}.text-violet-700{color:var(--color-violet-700)}.text-white{color:var(--color-white)}.italic{font-style:italic}.underline{text-decoration-line:underline}.opacity-0{opacity:0}.opacity-80{opacity:.8}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-black\/5{--tw-ring-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.ring-black\/5{--tw-ring-color:color-mix(in oklab,var(--color-black)5%,transparent)}}.ring-transparent{--tw-ring-color:transparent}.ring-white\/10{--tw-ring-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.ring-white\/10{--tw-ring-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.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-md{--tw-backdrop-blur:blur(var(--blur-md));-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(var(--blur-sm));-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,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}.hover\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\:border-gray-300:hover{border-color:var(--color-gray-300)}.hover\:border-white\/30:hover{border-color:#ffffff4d}@supports (color:color-mix(in lab, red, red)){.hover\:border-white\/30:hover{border-color:color-mix(in oklab,var(--color-white)30%,transparent)}}.hover\:bg-blue-50\/50:hover{background-color:#eff6ff80}@supports (color:color-mix(in lab, red, red)){.hover\:bg-blue-50\/50:hover{background-color:color-mix(in oklab,var(--color-blue-50)50%,transparent)}}.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-gray-200:hover{background-color:var(--color-gray-200)}.hover\:bg-gray-800:hover{background-color:var(--color-gray-800)}.hover\:bg-slate-900\/95:hover{background-color:#0f172bf2}@supports (color:color-mix(in lab, red, red)){.hover\:bg-slate-900\/95:hover{background-color:color-mix(in oklab,var(--color-slate-900)95%,transparent)}}.hover\:text-gray-600:hover{color:var(--color-gray-600)}.hover\:text-gray-900:hover{color:var(--color-gray-900)}.hover\:text-slate-900:hover{color:var(--color-slate-900)}}.focus\:border-gray-300:focus{border-color:var(--color-gray-300)}.focus\:bg-gray-50:focus{background-color:var(--color-gray-50)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-gray-200:focus{--tw-ring-color:var(--color-gray-200)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:outline:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-\[\#BEC2FF\]:focus-visible{outline-color:#bec2ff}.focus-visible\:outline-gray-300:focus-visible{outline-color:var(--color-gray-300)}.focus-visible\:outline-gray-400:focus-visible{outline-color:var(--color-gray-400)}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}@media (min-width:48rem){.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.\[\&\>svg\]\:\!h-8>svg{height:calc(var(--spacing)*8)!important}.\[\&\>svg\]\:\!w-8>svg{width:calc(var(--spacing)*8)!important}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@keyframes pulse{50%{opacity:.5}} | ||
| @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-amber-50:oklch(98.7% .022 95.277);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-800:oklch(47.3% .137 46.201);--color-amber-900:oklch(41.4% .112 45.904);--color-green-100:oklch(96.2% .044 156.743);--color-green-700:oklch(52.7% .154 150.069);--color-green-800:oklch(44.8% .119 151.328);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-700:oklch(50.8% .118 165.612);--color-sky-50:oklch(97.7% .013 236.62);--color-sky-200:oklch(90.1% .058 230.902);--color-sky-700:oklch(50% .134 242.749);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-violet-50:oklch(96.9% .016 293.756);--color-violet-200:oklch(89.4% .057 293.283);--color-violet-700:oklch(49.1% .27 292.581);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-700:oklch(49.6% .265 301.924);--color-fuchsia-50:oklch(97.7% .017 320.058);--color-fuchsia-200:oklch(90.3% .076 319.62);--color-fuchsia-700:oklch(51.8% .253 323.949);--color-rose-50:oklch(96.9% .015 12.422);--color-rose-200:oklch(89.2% .058 10.001);--color-rose-500:oklch(64.5% .246 16.439);--color-rose-700:oklch(51.4% .222 16.935);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--color-slate-950:oklch(12.9% .042 264.695);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-md:28rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--font-weight-medium:500;--font-weight-semibold:600;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--blur-sm:8px;--blur-md:12px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}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;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:host{font-family:var(--font-sans);color:var(--color-slate-900);background-color:#0000;display:block}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.top-0{top:calc(var(--spacing)*0)}.right-0{right:calc(var(--spacing)*0)}.right-1{right:calc(var(--spacing)*1)}.bottom-1{bottom:calc(var(--spacing)*1)}.left-0{left:calc(var(--spacing)*0)}.z-10{z-index:10}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.m-0{margin:calc(var(--spacing)*0)}.mx-4{margin-inline:calc(var(--spacing)*4)}.my-1{margin-block:calc(var(--spacing)*1)}.my-3{margin-block:calc(var(--spacing)*3)}.mt-0\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-1\.5{margin-top:calc(var(--spacing)*1.5)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.ml-auto{margin-left:auto}.box-border{box-sizing:border-box}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-1\.5{height:calc(var(--spacing)*1.5)}.h-3{height:calc(var(--spacing)*3)}.h-3\.5{height:calc(var(--spacing)*3.5)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-8{height:calc(var(--spacing)*8)}.h-10{height:calc(var(--spacing)*10)}.h-12{height:calc(var(--spacing)*12)}.h-full{height:100%}.max-h-64{max-height:calc(var(--spacing)*64)}.w-1\.5{width:calc(var(--spacing)*1.5)}.w-3{width:calc(var(--spacing)*3)}.w-3\.5{width:calc(var(--spacing)*3.5)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-8{width:calc(var(--spacing)*8)}.w-10{width:calc(var(--spacing)*10)}.w-12{width:calc(var(--spacing)*12)}.w-40{width:calc(var(--spacing)*40)}.w-auto{width:auto}.w-full{width:100%}.max-w-\[240px\]{max-width:240px}.max-w-md{max-width:var(--container-md)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-\[160px\]{min-width:160px}.min-w-\[200px\]{min-width:200px}.flex-1{flex:1}.flex-shrink,.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.table-fixed{table-layout:fixed}.border-collapse{border-collapse:collapse}.-translate-y-\[2px\]{--tw-translate-y:calc(2px*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-nwse-resize{cursor:nwse-resize}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize{resize:both}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px*var(--tw-divide-y-reverse));border-bottom-width:calc(1px*calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-gray-200>:not(:last-child)){border-color:var(--color-gray-200)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-amber-200{border-color:var(--color-amber-200)}.border-blue-200{border-color:var(--color-blue-200)}.border-emerald-200{border-color:var(--color-emerald-200)}.border-fuchsia-200{border-color:var(--color-fuchsia-200)}.border-gray-100{border-color:var(--color-gray-100)}.border-gray-200{border-color:var(--color-gray-200)}.border-purple-200{border-color:var(--color-purple-200)}.border-rose-200{border-color:var(--color-rose-200)}.border-sky-200{border-color:var(--color-sky-200)}.border-slate-200{border-color:var(--color-slate-200)}.border-violet-200{border-color:var(--color-violet-200)}.border-white\/20{border-color:#fff3}@supports (color:color-mix(in lab, red, red)){.border-white\/20{border-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.bg-amber-50{background-color:var(--color-amber-50)}.bg-amber-100{background-color:var(--color-amber-100)}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-emerald-50{background-color:var(--color-emerald-50)}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-fuchsia-50{background-color:var(--color-fuchsia-50)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-50\/50{background-color:#f9fafb80}@supports (color:color-mix(in lab, red, red)){.bg-gray-50\/50{background-color:color-mix(in oklab,var(--color-gray-50)50%,transparent)}}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-gray-800{background-color:var(--color-gray-800)}.bg-gray-900{background-color:var(--color-gray-900)}.bg-green-100{background-color:var(--color-green-100)}.bg-purple-50{background-color:var(--color-purple-50)}.bg-rose-50{background-color:var(--color-rose-50)}.bg-rose-500{background-color:var(--color-rose-500)}.bg-sky-50{background-color:var(--color-sky-50)}.bg-slate-900{background-color:var(--color-slate-900)}.bg-slate-950\/95{background-color:#020618f2}@supports (color:color-mix(in lab, red, red)){.bg-slate-950\/95{background-color:color-mix(in oklab,var(--color-slate-950)95%,transparent)}}.bg-violet-50{background-color:var(--color-violet-50)}.bg-white{background-color:var(--color-white)}.bg-white\/60{background-color:#fff9}@supports (color:color-mix(in lab, red, red)){.bg-white\/60{background-color:color-mix(in oklab,var(--color-white)60%,transparent)}}.bg-white\/95{background-color:#fffffff2}@supports (color:color-mix(in lab, red, red)){.bg-white\/95{background-color:color-mix(in oklab,var(--color-white)95%,transparent)}}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-1\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-2\.5{padding-block:calc(var(--spacing)*2.5)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-8{padding-block:calc(var(--spacing)*8)}.py-10{padding-block:calc(var(--spacing)*10)}.text-center{text-align:center}.text-left{text-align:left}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.break-words{overflow-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-600{color:var(--color-amber-600)}.text-amber-700{color:var(--color-amber-700)}.text-amber-800{color:var(--color-amber-800)}.text-amber-900{color:var(--color-amber-900)}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-blue-800{color:var(--color-blue-800)}.text-emerald-700{color:var(--color-emerald-700)}.text-fuchsia-700{color:var(--color-fuchsia-700)}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.text-green-700{color:var(--color-green-700)}.text-green-800{color:var(--color-green-800)}.text-purple-700{color:var(--color-purple-700)}.text-rose-700{color:var(--color-rose-700)}.text-sky-700{color:var(--color-sky-700)}.text-slate-500{color:var(--color-slate-500)}.text-slate-700{color:var(--color-slate-700)}.text-slate-800{color:var(--color-slate-800)}.text-slate-900{color:var(--color-slate-900)}.text-violet-700{color:var(--color-violet-700)}.text-white{color:var(--color-white)}.italic{font-style:italic}.underline{text-decoration-line:underline}.opacity-0{opacity:0}.opacity-80{opacity:.8}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-black\/5{--tw-ring-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.ring-black\/5{--tw-ring-color:color-mix(in oklab,var(--color-black)5%,transparent)}}.ring-transparent{--tw-ring-color:transparent}.ring-white\/10{--tw-ring-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.ring-white\/10{--tw-ring-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.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-md{--tw-backdrop-blur:blur(var(--blur-md));-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(var(--blur-sm));-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,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}.hover\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\:border-gray-300:hover{border-color:var(--color-gray-300)}.hover\:border-white\/30:hover{border-color:#ffffff4d}@supports (color:color-mix(in lab, red, red)){.hover\:border-white\/30:hover{border-color:color-mix(in oklab,var(--color-white)30%,transparent)}}.hover\:bg-blue-50\/50:hover{background-color:#eff6ff80}@supports (color:color-mix(in lab, red, red)){.hover\:bg-blue-50\/50:hover{background-color:color-mix(in oklab,var(--color-blue-50)50%,transparent)}}.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-gray-200:hover{background-color:var(--color-gray-200)}.hover\:bg-gray-800:hover{background-color:var(--color-gray-800)}.hover\:bg-slate-900\/95:hover{background-color:#0f172bf2}@supports (color:color-mix(in lab, red, red)){.hover\:bg-slate-900\/95:hover{background-color:color-mix(in oklab,var(--color-slate-900)95%,transparent)}}.hover\:text-gray-600:hover{color:var(--color-gray-600)}.hover\:text-gray-900:hover{color:var(--color-gray-900)}.hover\:text-slate-900:hover{color:var(--color-slate-900)}}.focus\:border-gray-300:focus{border-color:var(--color-gray-300)}.focus\:bg-gray-50:focus{background-color:var(--color-gray-50)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-gray-200:focus{--tw-ring-color:var(--color-gray-200)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:outline:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-\[\#BEC2FF\]:focus-visible{outline-color:#bec2ff}.focus-visible\:outline-gray-300:focus-visible{outline-color:var(--color-gray-300)}.focus-visible\:outline-gray-400:focus-visible{outline-color:var(--color-gray-400)}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}@media (min-width:48rem){.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.\[\&\>svg\]\:\!h-8>svg{height:calc(var(--spacing)*8)!important}.\[\&\>svg\]\:\!w-8>svg{width:calc(var(--spacing)*8)!important}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@keyframes pulse{50%{opacity:.5}} |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
AI-detected potential code anomaly
Supply chain riskAI has identified unusual behaviors that may pose a security risk.
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
3085878
8.29%37290
11.63%48
54.84%+ Added
+ Added
- Removed
- Removed
Updated