@ashlr/hub 3.4.0 → 3.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +107 -1
- package/README.md +3 -0
- package/dist/build-identity.json +2 -2
- package/dist/cli/index.js +11 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/local-runtime.js +40 -9
- package/dist/cli/local-runtime.js.map +1 -1
- package/dist/core/fleet/external-skill-audit.js +1 -1
- package/dist/core/fleet/external-skill-audit.js.map +1 -1
- package/dist/core/local-eval/classify.d.ts +57 -0
- package/dist/core/local-eval/classify.js +121 -0
- package/dist/core/local-eval/classify.js.map +1 -0
- package/dist/core/local-eval/configuration.d.ts +37 -0
- package/dist/core/local-eval/configuration.js +171 -0
- package/dist/core/local-eval/configuration.js.map +1 -0
- package/dist/core/local-eval/index.d.ts +15 -0
- package/dist/core/local-eval/index.js +16 -0
- package/dist/core/local-eval/index.js.map +1 -0
- package/dist/core/local-eval/main.d.ts +31 -0
- package/dist/core/local-eval/main.js +174 -0
- package/dist/core/local-eval/main.js.map +1 -0
- package/dist/core/local-eval/report.d.ts +25 -0
- package/dist/core/local-eval/report.js +157 -0
- package/dist/core/local-eval/report.js.map +1 -0
- package/dist/core/local-eval/runner.d.ts +55 -0
- package/dist/core/local-eval/runner.js +290 -0
- package/dist/core/local-eval/runner.js.map +1 -0
- package/dist/core/local-eval/tasks.d.ts +22 -0
- package/dist/core/local-eval/tasks.js +303 -0
- package/dist/core/local-eval/tasks.js.map +1 -0
- package/dist/core/local-eval/trace.d.ts +67 -0
- package/dist/core/local-eval/trace.js +309 -0
- package/dist/core/local-eval/trace.js.map +1 -0
- package/dist/core/local-eval/types.d.ts +262 -0
- package/dist/core/local-eval/types.js +23 -0
- package/dist/core/local-eval/types.js.map +1 -0
- package/dist/core/local-runtime/llama/anthropic-proxy-host.d.ts +68 -0
- package/dist/core/local-runtime/llama/anthropic-proxy-host.js +120 -0
- package/dist/core/local-runtime/llama/anthropic-proxy-host.js.map +1 -0
- package/dist/core/local-runtime/llama/anthropic-proxy-process.d.ts +15 -0
- package/dist/core/local-runtime/llama/anthropic-proxy-process.js +21 -0
- package/dist/core/local-runtime/llama/anthropic-proxy-process.js.map +1 -0
- package/dist/core/local-runtime/llama/anthropic-proxy.d.ts +2 -1
- package/dist/core/local-runtime/llama/anthropic-proxy.js +14 -6
- package/dist/core/local-runtime/llama/anthropic-proxy.js.map +1 -1
- package/dist/core/local-runtime/llama/anthropic-shim.d.ts +33 -0
- package/dist/core/local-runtime/llama/anthropic-shim.js +59 -0
- package/dist/core/local-runtime/llama/anthropic-shim.js.map +1 -1
- package/dist/core/local-runtime/llama/config.d.ts +123 -6
- package/dist/core/local-runtime/llama/config.js +196 -6
- package/dist/core/local-runtime/llama/config.js.map +1 -1
- package/dist/core/local-runtime/llama/index.d.ts +15 -0
- package/dist/core/local-runtime/llama/index.js +13 -0
- package/dist/core/local-runtime/llama/index.js.map +1 -1
- package/dist/core/local-runtime/llama/paths.d.ts +17 -0
- package/dist/core/local-runtime/llama/paths.js +25 -0
- package/dist/core/local-runtime/llama/paths.js.map +1 -1
- package/dist/core/local-runtime/llama/proxy-invocation.d.ts +101 -0
- package/dist/core/local-runtime/llama/proxy-invocation.js +134 -0
- package/dist/core/local-runtime/llama/proxy-invocation.js.map +1 -0
- package/dist/core/local-runtime/llama/proxy-launchd.d.ts +83 -0
- package/dist/core/local-runtime/llama/proxy-launchd.js +216 -0
- package/dist/core/local-runtime/llama/proxy-launchd.js.map +1 -0
- package/dist/core/local-runtime/llama/shapes.d.ts +2 -1
- package/dist/core/local-runtime/llama/shapes.js +2 -1
- package/dist/core/local-runtime/llama/shapes.js.map +1 -1
- package/dist/core/verse/adapters/claude.js +16 -0
- package/dist/core/verse/adapters/claude.js.map +1 -1
- package/dist/core/verse/adapters/codex.js +60 -2
- package/dist/core/verse/adapters/codex.js.map +1 -1
- package/dist/core/verse/adapters/grok.js +13 -0
- package/dist/core/verse/adapters/grok.js.map +1 -1
- package/dist/core/verse/control-api.d.ts +8 -9
- package/dist/core/verse/control-api.js +14 -114
- package/dist/core/verse/control-api.js.map +1 -1
- package/dist/core/verse/github-api.d.ts +50 -0
- package/dist/core/verse/github-api.js +211 -0
- package/dist/core/verse/github-api.js.map +1 -0
- package/dist/core/verse/github-proposal.d.ts +64 -0
- package/dist/core/verse/github-proposal.js +186 -0
- package/dist/core/verse/github-proposal.js.map +1 -0
- package/dist/core/verse/github-repo.d.ts +104 -0
- package/dist/core/verse/github-repo.js +476 -0
- package/dist/core/verse/github-repo.js.map +1 -0
- package/dist/core/verse/github-types.d.ts +174 -0
- package/dist/core/verse/github-types.js +31 -0
- package/dist/core/verse/github-types.js.map +1 -0
- package/dist/core/verse/mcp-cli-health.d.ts +149 -0
- package/dist/core/verse/mcp-cli-health.js +227 -0
- package/dist/core/verse/mcp-cli-health.js.map +1 -0
- package/dist/core/verse/mcp-control-api.d.ts +68 -0
- package/dist/core/verse/mcp-control-api.js +322 -0
- package/dist/core/verse/mcp-control-api.js.map +1 -0
- package/dist/core/verse/mcp-mutation.d.ts +187 -0
- package/dist/core/verse/mcp-mutation.js +471 -0
- package/dist/core/verse/mcp-mutation.js.map +1 -0
- package/dist/core/verse/mcp-scope.d.ts +114 -0
- package/dist/core/verse/mcp-scope.js +149 -0
- package/dist/core/verse/mcp-scope.js.map +1 -0
- package/dist/core/verse/mcp-seat-view.d.ts +197 -0
- package/dist/core/verse/mcp-seat-view.js +322 -0
- package/dist/core/verse/mcp-seat-view.js.map +1 -0
- package/dist/core/verse/path-guard.d.ts +115 -0
- package/dist/core/verse/path-guard.js +171 -0
- package/dist/core/verse/path-guard.js.map +1 -0
- package/dist/core/verse/seats.js +30 -2
- package/dist/core/verse/seats.js.map +1 -1
- package/dist/core/verse/session-engine.js +60 -1
- package/dist/core/verse/session-engine.js.map +1 -1
- package/dist/core/verse/session-store.js +20 -0
- package/dist/core/verse/session-store.js.map +1 -1
- package/dist/core/verse/types.d.ts +225 -1
- package/dist/core/verse/types.js +26 -0
- package/dist/core/verse/types.js.map +1 -1
- package/dist/core/verse/verse-api.d.ts +16 -1
- package/dist/core/verse/verse-api.js +338 -16
- package/dist/core/verse/verse-api.js.map +1 -1
- package/dist/core/verse/workspaces.d.ts +130 -0
- package/dist/core/verse/workspaces.js +501 -0
- package/dist/core/verse/workspaces.js.map +1 -0
- package/dist/core/web/api.js +23 -0
- package/dist/core/web/api.js.map +1 -1
- package/dist/core/web/public/next/assets/App-BbVoUCIi.js +7 -0
- package/dist/core/web/public/next/assets/App-BbVoUCIi.js.map +1 -0
- package/dist/core/web/public/next/assets/App-Cgi6j1Gk.css +1 -0
- package/dist/core/web/public/next/assets/ApprovalsSection-BW9iVjUa.js +2 -0
- package/dist/core/web/public/next/assets/ApprovalsSection-BW9iVjUa.js.map +1 -0
- package/dist/core/web/public/next/assets/ApprovalsSection-Su-NUTis.css +1 -0
- package/dist/core/web/public/next/assets/AutonomySection-CRqHUhED.js +2 -0
- package/dist/core/web/public/next/assets/AutonomySection-CRqHUhED.js.map +1 -0
- package/dist/core/web/public/next/assets/AutonomySection-Cpk_oEhc.css +1 -0
- package/dist/core/web/public/next/assets/ChatSection-5irrh6Jw.js +80 -0
- package/dist/core/web/public/next/assets/ChatSection-5irrh6Jw.js.map +1 -0
- package/dist/core/web/public/next/assets/ChatSection-LQiAn6Eu.css +1 -0
- package/dist/core/web/public/next/assets/ConfirmDialog-CXevY3Au.js +2 -0
- package/dist/core/web/public/next/assets/ConfirmDialog-CXevY3Au.js.map +1 -0
- package/dist/core/web/public/next/assets/{ConfirmDialog-cYuivhCX.css → ConfirmDialog-Dx15x0Ho.css} +1 -1
- package/dist/core/web/public/next/assets/Dialog-Bn0CgEGz.js +2 -0
- package/dist/core/web/public/next/assets/Dialog-Bn0CgEGz.js.map +1 -0
- package/dist/core/web/public/next/assets/Dialog-tQ8kFulD.css +1 -0
- package/dist/core/web/public/next/assets/DiffViewer-C8HHTnVE.css +1 -0
- package/dist/core/web/public/next/assets/DiffViewer-QKyisN2L.js +7 -0
- package/dist/core/web/public/next/assets/DiffViewer-QKyisN2L.js.map +1 -0
- package/dist/core/web/public/next/assets/{MutationTokenDialog-jWLLCxWn.css → MutationTokenDialog-CrfJ0PdD.css} +1 -1
- package/dist/core/web/public/next/assets/MutationTokenDialog-DbSHPy3w.js +2 -0
- package/dist/core/web/public/next/assets/MutationTokenDialog-DbSHPy3w.js.map +1 -0
- package/dist/core/web/public/next/assets/ResourcePoolConsoleApp-C-PCgCzo.js +7 -0
- package/dist/core/web/public/next/assets/ResourcePoolConsoleApp-C-PCgCzo.js.map +1 -0
- package/dist/core/web/public/next/assets/ResourcePoolConsoleApp-CM_8pJs6.css +1 -0
- package/dist/core/web/public/next/assets/RouteErrorBoundary-Dw8ZjmkS.js +2 -0
- package/dist/core/web/public/next/assets/RouteErrorBoundary-Dw8ZjmkS.js.map +1 -0
- package/dist/core/web/public/next/assets/RouteErrorBoundary-ekyMXAK8.css +1 -0
- package/dist/core/web/public/next/assets/SettingsSection-BII7TTSD.css +1 -0
- package/dist/core/web/public/next/assets/SettingsSection-CWxtTNlD.js +2 -0
- package/dist/core/web/public/next/assets/SettingsSection-CWxtTNlD.js.map +1 -0
- package/dist/core/web/public/next/assets/UniverseConsoleApp-Bk5HipM0.js +2 -0
- package/dist/core/web/public/next/assets/UniverseConsoleApp-Bk5HipM0.js.map +1 -0
- package/dist/core/web/public/next/assets/UniverseConsoleApp-Dh7A-hLD.css +1 -0
- package/dist/core/web/public/next/assets/UniverseView-Bqa8DH57.css +1 -0
- package/dist/core/web/public/next/assets/UniverseView-D8k9q0ce.js +9 -0
- package/dist/core/web/public/next/assets/UniverseView-D8k9q0ce.js.map +1 -0
- package/dist/core/web/public/next/assets/UsageSection-B2E06ZH1.js +2 -0
- package/dist/core/web/public/next/assets/UsageSection-B2E06ZH1.js.map +1 -0
- package/dist/core/web/public/next/assets/UsageSection-DwgNOYvi.css +1 -0
- package/dist/core/web/public/next/assets/VerseConsoleApp-CRfZUV-T.js +3 -0
- package/dist/core/web/public/next/assets/VerseConsoleApp-CRfZUV-T.js.map +1 -0
- package/dist/core/web/public/next/assets/VerseConsoleApp-D2E3mU9a.css +1 -0
- package/dist/core/web/public/next/assets/charts-CsrtT4rk.css +1 -0
- package/dist/core/web/public/next/assets/charts-DSUpczxG.js +2 -0
- package/dist/core/web/public/next/assets/charts-DSUpczxG.js.map +1 -0
- package/dist/core/web/public/next/assets/fleet-model-ClBbQ0Uj.js +2 -0
- package/dist/core/web/public/next/assets/fleet-model-ClBbQ0Uj.js.map +1 -0
- package/dist/core/web/public/next/assets/format-BNYWGJat.js +2 -0
- package/dist/core/web/public/next/assets/format-BNYWGJat.js.map +1 -0
- package/dist/core/web/public/next/assets/global-C4jfYHrj.js +2 -0
- package/dist/core/web/public/next/assets/global-C4jfYHrj.js.map +1 -0
- package/dist/core/web/public/next/assets/global-D463gG1X.css +1 -0
- package/dist/core/web/public/next/assets/icons-BxOX8-XB.js +2 -0
- package/dist/core/web/public/next/assets/icons-BxOX8-XB.js.map +1 -0
- package/dist/core/web/public/next/assets/index-BMRIET7F.js +11 -0
- package/dist/core/web/public/next/assets/index-BMRIET7F.js.map +1 -0
- package/dist/core/web/public/next/assets/queries-AxnVa02h.js +2 -0
- package/dist/core/web/public/next/assets/queries-AxnVa02h.js.map +1 -0
- package/dist/core/web/public/next/assets/use-guarded-action-BO6c94Wp.js +2 -0
- package/dist/core/web/public/next/assets/use-guarded-action-BO6c94Wp.js.map +1 -0
- package/dist/core/web/public/next/assets/verse-model-CvtK6vP6.js +2 -0
- package/dist/core/web/public/next/assets/verse-model-CvtK6vP6.js.map +1 -0
- package/dist/core/web/public/next/assets/workspace-model-cE4LkKpE.js +2 -0
- package/dist/core/web/public/next/assets/workspace-model-cE4LkKpE.js.map +1 -0
- package/dist/core/web/public/next/index.html +1 -1
- package/dist/release-dependency-inventory.json +1 -1
- package/docs/README.md +4 -0
- package/node_modules/marked/README.md +8 -0
- package/node_modules/marked/bin/main.js +12 -11
- package/node_modules/marked/lib/marked.d.ts +88 -25
- package/node_modules/marked/lib/marked.esm.js +50 -44
- package/node_modules/marked/lib/marked.esm.js.map +3 -3
- package/node_modules/marked/lib/marked.umd.js +50 -44
- package/node_modules/marked/lib/marked.umd.js.map +3 -3
- package/node_modules/marked/man/marked.1 +1 -1
- package/node_modules/marked/package.json +21 -21
- package/package.json +13 -8
- package/dist/cli/activation.d.ts +0 -41
- package/dist/cli/activation.js +0 -485
- package/dist/cli/activation.js.map +0 -1
- package/dist/core/fleet/generated-repair-resolution.d.ts +0 -36
- package/dist/core/fleet/generated-repair-resolution.js +0 -245
- package/dist/core/fleet/generated-repair-resolution.js.map +0 -1
- package/dist/core/local-runtime/llama/port.d.ts +0 -17
- package/dist/core/local-runtime/llama/port.js +0 -47
- package/dist/core/local-runtime/llama/port.js.map +0 -1
- package/dist/core/local-runtime/llama/proxy-host.d.ts +0 -54
- package/dist/core/local-runtime/llama/proxy-host.js +0 -159
- package/dist/core/local-runtime/llama/proxy-host.js.map +0 -1
- package/dist/core/local-runtime/llama/proxy-process.d.ts +0 -148
- package/dist/core/local-runtime/llama/proxy-process.js +0 -250
- package/dist/core/local-runtime/llama/proxy-process.js.map +0 -1
- package/dist/core/local-runtime/llama/proxy-record.d.ts +0 -40
- package/dist/core/local-runtime/llama/proxy-record.js +0 -133
- package/dist/core/local-runtime/llama/proxy-record.js.map +0 -1
- package/dist/core/local-runtime/llama/proxy-supervisor.d.ts +0 -118
- package/dist/core/local-runtime/llama/proxy-supervisor.js +0 -511
- package/dist/core/local-runtime/llama/proxy-supervisor.js.map +0 -1
- package/dist/core/web/public/next/assets/App-BCKqSppK.css +0 -1
- package/dist/core/web/public/next/assets/App-LuILXjWG.js +0 -16
- package/dist/core/web/public/next/assets/App-LuILXjWG.js.map +0 -1
- package/dist/core/web/public/next/assets/ApprovalsSection-B_Xor8JH.js +0 -2
- package/dist/core/web/public/next/assets/ApprovalsSection-B_Xor8JH.js.map +0 -1
- package/dist/core/web/public/next/assets/ApprovalsSection-CRP59wSb.css +0 -1
- package/dist/core/web/public/next/assets/AutonomySection-BB8RD-tv.css +0 -1
- package/dist/core/web/public/next/assets/AutonomySection-BEwITtPJ.js +0 -2
- package/dist/core/web/public/next/assets/AutonomySection-BEwITtPJ.js.map +0 -1
- package/dist/core/web/public/next/assets/ChatSection-DrxqhBPK.css +0 -1
- package/dist/core/web/public/next/assets/ChatSection-bRAzlMth.js +0 -77
- package/dist/core/web/public/next/assets/ChatSection-bRAzlMth.js.map +0 -1
- package/dist/core/web/public/next/assets/ConfirmDialog-BqkZdPs_.js +0 -2
- package/dist/core/web/public/next/assets/ConfirmDialog-BqkZdPs_.js.map +0 -1
- package/dist/core/web/public/next/assets/Dialog-CPmedg4S.js +0 -2
- package/dist/core/web/public/next/assets/Dialog-CPmedg4S.js.map +0 -1
- package/dist/core/web/public/next/assets/Dialog-DxN7RgB5.css +0 -1
- package/dist/core/web/public/next/assets/DiffViewer-DmPJbeM_.js +0 -7
- package/dist/core/web/public/next/assets/DiffViewer-DmPJbeM_.js.map +0 -1
- package/dist/core/web/public/next/assets/DiffViewer-hN7X6wGT.css +0 -1
- package/dist/core/web/public/next/assets/Epistemic-DiyMyeaN.css +0 -1
- package/dist/core/web/public/next/assets/Epistemic-M3SxLHjq.js +0 -2
- package/dist/core/web/public/next/assets/Epistemic-M3SxLHjq.js.map +0 -1
- package/dist/core/web/public/next/assets/Meter-CGBsbXUX.css +0 -1
- package/dist/core/web/public/next/assets/Meter-D_X7c9U3.js +0 -2
- package/dist/core/web/public/next/assets/Meter-D_X7c9U3.js.map +0 -1
- package/dist/core/web/public/next/assets/MutationTokenDialog-Ba5ZHu-8.js +0 -2
- package/dist/core/web/public/next/assets/MutationTokenDialog-Ba5ZHu-8.js.map +0 -1
- package/dist/core/web/public/next/assets/RefreshIndicator-O7jUBOmX.css +0 -1
- package/dist/core/web/public/next/assets/RefreshIndicator-vHGpmyzb.js +0 -2
- package/dist/core/web/public/next/assets/RefreshIndicator-vHGpmyzb.js.map +0 -1
- package/dist/core/web/public/next/assets/ResourcePoolConsoleApp-B5g6JEVk.js +0 -7
- package/dist/core/web/public/next/assets/ResourcePoolConsoleApp-B5g6JEVk.js.map +0 -1
- package/dist/core/web/public/next/assets/ResourcePoolConsoleApp-DLl4DbGG.css +0 -1
- package/dist/core/web/public/next/assets/RouteErrorBoundary-BIpdnxp-.css +0 -1
- package/dist/core/web/public/next/assets/RouteErrorBoundary-CroxuKoi.js +0 -2
- package/dist/core/web/public/next/assets/RouteErrorBoundary-CroxuKoi.js.map +0 -1
- package/dist/core/web/public/next/assets/SettingsSection-DGJMdUh2.css +0 -1
- package/dist/core/web/public/next/assets/SettingsSection-p-7FCGfn.js +0 -2
- package/dist/core/web/public/next/assets/SettingsSection-p-7FCGfn.js.map +0 -1
- package/dist/core/web/public/next/assets/Skeleton-4qq4HuJO.js +0 -2
- package/dist/core/web/public/next/assets/Skeleton-4qq4HuJO.js.map +0 -1
- package/dist/core/web/public/next/assets/Skeleton-D2JaTXyv.css +0 -1
- package/dist/core/web/public/next/assets/StatusBadge-BbEdqEGn.js +0 -2
- package/dist/core/web/public/next/assets/StatusBadge-BbEdqEGn.js.map +0 -1
- package/dist/core/web/public/next/assets/StatusBadge-TpDqZf6K.css +0 -1
- package/dist/core/web/public/next/assets/TableView-R6Yeztp1.css +0 -1
- package/dist/core/web/public/next/assets/TableView-nyYs7Sv1.js +0 -2
- package/dist/core/web/public/next/assets/TableView-nyYs7Sv1.js.map +0 -1
- package/dist/core/web/public/next/assets/UniverseConsoleApp-CiZZxRPV.css +0 -1
- package/dist/core/web/public/next/assets/UniverseConsoleApp-DjTpQUrA.js +0 -2
- package/dist/core/web/public/next/assets/UniverseConsoleApp-DjTpQUrA.js.map +0 -1
- package/dist/core/web/public/next/assets/UniverseView-BtApwayT.js +0 -9
- package/dist/core/web/public/next/assets/UniverseView-BtApwayT.js.map +0 -1
- package/dist/core/web/public/next/assets/UniverseView-gBxl6yum.css +0 -1
- package/dist/core/web/public/next/assets/UsageSection-Db99N6ao.js +0 -2
- package/dist/core/web/public/next/assets/UsageSection-Db99N6ao.js.map +0 -1
- package/dist/core/web/public/next/assets/UsageSection-UUYDidOg.css +0 -1
- package/dist/core/web/public/next/assets/VerseConsoleApp-COa3J2dO.js +0 -3
- package/dist/core/web/public/next/assets/VerseConsoleApp-COa3J2dO.js.map +0 -1
- package/dist/core/web/public/next/assets/VerseConsoleApp-mOAXvWa6.css +0 -1
- package/dist/core/web/public/next/assets/fleet-model-DXCfVtNW.js +0 -2
- package/dist/core/web/public/next/assets/fleet-model-DXCfVtNW.js.map +0 -1
- package/dist/core/web/public/next/assets/format-fggwu_Rs.js +0 -2
- package/dist/core/web/public/next/assets/format-fggwu_Rs.js.map +0 -1
- package/dist/core/web/public/next/assets/global-BeRYd1Bu.css +0 -1
- package/dist/core/web/public/next/assets/global-CNVapoV1.js +0 -2
- package/dist/core/web/public/next/assets/global-CNVapoV1.js.map +0 -1
- package/dist/core/web/public/next/assets/index-BkUlX2Se.js +0 -51
- package/dist/core/web/public/next/assets/index-BkUlX2Se.js.map +0 -1
- package/dist/core/web/public/next/assets/index-YNTgDG2b.js +0 -2
- package/dist/core/web/public/next/assets/index-YNTgDG2b.js.map +0 -1
- package/dist/core/web/public/next/assets/queries-C9XS4SYq.js +0 -2
- package/dist/core/web/public/next/assets/queries-C9XS4SYq.js.map +0 -1
- package/dist/core/web/public/next/assets/use-guarded-action-Bqa2v0a-.css +0 -1
- package/dist/core/web/public/next/assets/use-guarded-action-Bql1nA-z.js +0 -2
- package/dist/core/web/public/next/assets/use-guarded-action-Bql1nA-z.js.map +0 -1
- package/dist/core/web/public/next/assets/verse-model-IrNQKtER.js +0 -2
- package/dist/core/web/public/next/assets/verse-model-IrNQKtER.js.map +0 -1
- package/node_modules/which/CHANGELOG.md +0 -166
- /package/node_modules/marked/{LICENSE.md → LICENSE} +0 -0
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import{j as r,r as m}from"./index-BkUlX2Se.js";import{M as $a}from"./MutationTokenDialog-Ba5ZHu-8.js";import{u as La}from"./RouteErrorBoundary-CroxuKoi.js";import{j as Er,f as $n,w as Ln,e as Yt,y as Ma,d as Da,z as Pa,B as za,C as Oa,E as Rs,F as qa,u as Fa,G as Ha,n as Ba,D as Ua,A as Wa}from"./global-CNVapoV1.js";import{D as vr}from"./Dialog-CPmedg4S.js";import{M as Cs}from"./Meter-D_X7c9U3.js";import{s as sn,S as rn,a as Ar,b as Rr,g as Bn,E as Un,i as Ga,f as Cr,p as Wn,c as Va,d as Ka,e as Ya,h as Xa,j as Ir,k as vt,l as Za,m as Xt,n as Qa,o as Ja}from"./verse-model-IrNQKtER.js";import{v as dt,S as $r,P as eo,a as Lr,i as Mr,b as to,f as no,C as so,A as ro,V as ao,T as oo,c as io,d as Is,u as lo,e as co,l as uo,g as ho,r as po,s as fo,h as mo,j as go,k as _o,m as yo,n as xo,o as ko,p as Bt,q as $s,t as Ls,w as Ms}from"./VerseConsoleApp-COa3J2dO.js";import{R as Dr}from"./RefreshIndicator-vHGpmyzb.js";import{S as Ne}from"./Skeleton-4qq4HuJO.js";import{S as Pr}from"./StatusBadge-BbEdqEGn.js";import{p as zr,D as bo,l as wo,t as To}from"./DiffViewer-DmPJbeM_.js";import"./index-YNTgDG2b.js";import"./queries-C9XS4SYq.js";const So={ready:"ready",tight:"tight",exhausted:"blocked","signed-out":"blocked",unknown:"unread"};function Or(e){const t=new Date(e);if(Number.isNaN(t.getTime()))return null;const n=t.toLocaleTimeString([],{hour:"numeric",minute:"2-digit"});return new Date().toDateString()===t.toDateString()?`resets ${n}`:`resets ${t.toLocaleDateString([],{month:"short",day:"numeric"})} at ${n}`}function No(e,t){const n=`${e}_`;let a=t;for(;a.startsWith(n)&&a.length>n.length;)a=a.slice(n.length);return Rr(a)}function Ds(e,t){const n=t.resetDescription??(t.resetsAt===null?null:Or(t.resetsAt));return{id:t.id,label:No(e,t.id),usedPercent:t.limitReached||!t.measured?null:t.usedPercent,limitReached:t.limitReached,resetText:n,resetsAt:t.resetsAt}}function jo(e){const t=typeof e.usedPercent=="number"&&Number.isFinite(e.usedPercent)?Math.max(0,Math.min(100,e.usedPercent)):null,n=t!==null&&t>=100;return{id:e.id,label:Rr(e.id),usedPercent:n?null:t,limitReached:n,resetText:e.resetsAt===null?null:Or(e.resetsAt),resetsAt:e.resetsAt}}function Eo(e){if(e===null)return{phrase:null,title:null};if(e.unlimited)return{phrase:"credits unlimited",title:null};if(!e.hasCredits)return{phrase:null,title:null};if(e.balance===null)return{phrase:"credits available",title:null};const t=Number.parseFloat(e.balance);return Number.isFinite(t)?{phrase:`${t.toFixed(2)} credits left`,title:e.balance}:{phrase:"credits available",title:e.balance}}function vo(e){const t=sn(e),n=e.health.state==="ready",a=t!==null?"blocked":n?"ready":"unread";return{kind:"local",plan:null,cls:a,word:rn[a],summary:t??(n?"runs on this machine":"readiness not reported"),binding:null,others:[],credits:null,creditsTitle:null,notes:e.health.summary===null?[]:[e.health.summary],evidenceSource:null,observedAt:e.health.observedAt,extended:!1}}function Ao(e){const t=Ar(e),n=e.health.windows.map(jo),a=n.find(d=>d.limitReached)??null,s=n.filter(d=>d.usedPercent!==null),i=s.length===0?null:s.reduce((d,p)=>(p.usedPercent??0)>(d.usedPercent??0)?p:d),o=a??i,c=sn(e),u=c!==null?"blocked":t.cls;return{kind:"subscription",plan:null,cls:u,word:rn[u],summary:c??t.text,binding:o,others:o===null?n:n.filter(d=>d.id!==o.id),credits:null,creditsTitle:null,notes:[],evidenceSource:null,observedAt:e.health.observedAt,extended:!1}}function ht(e){if(e.engine==="local")return vo(e);const t=e.capacity;if(t===void 0)return Ao(e);const n=t.windows.map(p=>Ds(e.engine,p)),a=t.binding,s=a===null?null:n.find(p=>p.id===a.id)??Ds(e.engine,a),i=s===null?n:n.filter(p=>p.id!==s.id),o=Eo(t.credits),c=sn(e),u=c!==null?"blocked":So[t.usability];let d;return t.usability==="signed-out"?d="signed out — reconnect this account":c!==null?d=c:s===null?d="no capacity reading":s.limitReached?d=t.usability==="tight"&&o.phrase!==null?`${s.label} limit reached · credits still spendable`:`${s.label} limit reached`:s.usedPercent===null?d="no capacity reading":d=`${Math.round(s.usedPercent)}% of ${s.label} used`,{kind:"subscription",plan:t.planType,cls:u,word:rn[u],summary:d,binding:s,others:i,credits:o.phrase,creditsTitle:o.title,notes:[...t.notes],evidenceSource:t.evidenceSource,observedAt:t.observedAt??e.health.observedAt,extended:!0}}function Ro(e){switch(e){case"collector":return null;case"shared-evidence":return"read from another collector’s shared evidence, not probed here";case"baseline":return"operator-seeded baseline, not a live reading";case"none":return"no evidence source — nothing here was measured";default:return null}}function qr(e,t){const n=[e.label];return t.plan!==null&&n.push(t.plan),n.push(t.word),n.push(t.summary),t.credits!==null&&n.push(t.credits),t.binding?.resetText!=null&&n.push(t.binding.resetText),n.join(" · ")}function Ps(e){return e==="tight"||e==="blocked"}const Co="_chip_rrd6q_8",Io="_chipGlyph_rrd6q_22",$o="_window_rrd6q_35",Lo="_windowLead_rrd6q_36",Mo="_windowLabel_rrd6q_43",Do="_pct_rrd6q_44",Po="_flag_rrd6q_60",zo="_unknownHead_rrd6q_69",Oo="_unknownValue_rrd6q_76",qo="_unknownRule_rrd6q_85",Fo="_reset_rrd6q_93",Ho="_note_rrd6q_104",Bo="_noteHead_rrd6q_110",Uo="_plan_rrd6q_117",Wo="_noteSummary_rrd6q_130",Go="_credits_rrd6q_137",ce={chip:Co,chipGlyph:Io,window:$o,windowLead:Lo,windowLabel:Mo,pct:Do,flag:Po,unknownHead:zo,unknownValue:Oo,unknownRule:qo,reset:Fo,note:Ho,noteHead:Bo,plan:Uo,noteSummary:Wo,credits:Go},Vo={ready:"✓",tight:"◑",blocked:"▮",unread:"?"};function Gn({view:e,title:t}){return r.jsxs("span",{className:ce.chip,"data-capacity":e.cls,title:t??e.summary,children:[r.jsx("span",{className:ce.chipGlyph,"aria-hidden":"true",children:Vo[e.cls]}),e.word]})}function Mn({windowView:e,ariaPrefix:t,prominent:n=!1}){const a=`${t} ${e.label}`;if(e.limitReached)return r.jsxs("div",{className:n?ce.windowLead:ce.window,children:[r.jsx(Cs,{value:100,max:100,tone:"danger",label:r.jsx("span",{className:ce.windowLabel,children:e.label}),valueText:r.jsx("span",{className:ce.flag,children:"limit reached"}),"aria-label":`${a}: the provider flagged this window as rate-limited, so no percentage was measured`}),e.resetText===null?null:r.jsx("p",{className:ce.reset,children:e.resetText})]});if(e.usedPercent===null)return r.jsxs("div",{className:n?ce.windowLead:ce.window,children:[r.jsxs("div",{className:ce.unknownHead,children:[r.jsx("span",{className:ce.windowLabel,children:e.label}),r.jsx("span",{className:ce.unknownValue,children:"no reading"})]}),r.jsx("hr",{className:ce.unknownRule,"aria-hidden":"true"}),e.resetText===null?null:r.jsx("p",{className:ce.reset,children:e.resetText})]});const s=Math.round(e.usedPercent);return r.jsxs("div",{className:n?ce.windowLead:ce.window,children:[r.jsx(Cs,{value:s,max:100,label:r.jsx("span",{className:ce.windowLabel,children:e.label}),valueText:r.jsxs("span",{className:ce.pct,children:[s,"%"]}),"aria-label":`${a} used`}),e.resetText===null?null:r.jsx("p",{className:ce.reset,children:e.resetText})]})}function Ko({seat:e,className:t}){const n=ht(e);return r.jsxs("div",{className:`${ce.note} ${t??""}`,"data-capacity":n.cls,children:[r.jsxs("div",{className:ce.noteHead,children:[r.jsx(Gn,{view:n}),n.plan===null?null:r.jsx("span",{className:ce.plan,children:n.plan}),r.jsx("span",{className:ce.noteSummary,children:n.summary})]}),n.binding===null?null:r.jsx(Mn,{windowView:n.binding,ariaPrefix:e.label,prominent:!0}),n.credits===null?null:r.jsxs("p",{className:ce.credits,title:n.creditsTitle??void 0,children:[n.credits," — credits are independent of the window"]})]})}const Yo="_composer_1q5ss_5",Xo="_box_1q5ss_10",Zo="_textarea_1q5ss_21",Qo="_boxListening_1q5ss_28",Jo="_row_1q5ss_47",ei="_spacer_1q5ss_53",ti="_engineDot_1q5ss_60",ni="_seatField_1q5ss_69",si="_seatFieldCompact_1q5ss_70",ri="_fieldLabel_1q5ss_71",ai="_seatSelect_1q5ss_72",oi="_seatPillWrap_1q5ss_89",ii="_seatPill_1q5ss_89",li="_seatPillText_1q5ss_107",ci="_seatMenu_1q5ss_109",ui="_seatMenuHeading_1q5ss_126",di="_seatMenuEmpty_1q5ss_134",hi="_seatMenuItem_1q5ss_135",pi="_seatMenuText_1q5ss_148",fi="_seatMenuPrimary_1q5ss_149",mi="_seatMenuSecondary_1q5ss_150",gi="_seatMenuCapacity_1q5ss_156",_i="_dictationWrap_1q5ss_167",yi="_dictation_1q5ss_167",xi="_dictationLive_1q5ss_182",ki="_dictationPulse_1q5ss_183",bi="_dictationHint_1q5ss_191",wi="_dictationError_1q5ss_212",Ti="_send_1q5ss_215",Si="_stop_1q5ss_216",Ni="_stopIcon_1q5ss_235",ji="_help_1q5ss_238",Ei="_helpQuiet_1q5ss_246",vi="_helpError_1q5ss_255",Ai="_cost_1q5ss_283",Ri="_costFigure_1q5ss_295",F={composer:Yo,box:Xo,textarea:Zo,boxListening:Qo,row:Jo,spacer:ei,"engine-claude":"_engine-claude_1q5ss_56","engine-codex":"_engine-codex_1q5ss_57","engine-grok":"_engine-grok_1q5ss_58","engine-local":"_engine-local_1q5ss_59",engineDot:ti,seatField:ni,seatFieldCompact:si,fieldLabel:ri,seatSelect:ai,seatPillWrap:oi,seatPill:ii,seatPillText:li,seatMenu:ci,seatMenuHeading:ui,seatMenuEmpty:di,seatMenuItem:hi,seatMenuText:pi,seatMenuPrimary:fi,seatMenuSecondary:mi,seatMenuCapacity:gi,dictationWrap:_i,dictation:yi,dictationLive:xi,dictationPulse:ki,"verse-ring":"_verse-ring_1q5ss_1",dictationHint:bi,dictationError:wi,send:Ti,stop:Si,stopIcon:Ni,help:ji,helpQuiet:Ei,helpError:vi,cost:Ai,costFigure:Ri};function bn(e){return JSON.stringify([e.seatId,e.model])}function Ci(e){try{const t=JSON.parse(e);if(!Array.isArray(t)||t.length!==2)return null;const[n,a]=t;return typeof n!="string"||typeof a!="string"?null:{seatId:n,model:a}}catch{return null}}function zs(e){for(const t of Bn(e))for(const n of t.seats)if(!(n.health.state==="unavailable"||n.models.length===0))return{seatId:n.id,model:n.models[0].id};return null}function Ii({seats:e,value:t,onChange:n,disabled:a=!1,label:s="Seat and model",id:i,compact:o=!1}){const c=m.useId(),u=i??c,d=Bn(e),p=t?bn(t):"",_=t&&e.some(g=>g.id===t.seatId&&g.models.some(N=>N.id===t.model));return r.jsxs("label",{className:`${F.seatField} ${o?F.seatFieldCompact:""}`,htmlFor:u,children:[r.jsx("span",{className:o?"visually-hidden":F.fieldLabel,children:s}),r.jsxs("select",{id:u,className:F.seatSelect,value:_?p:"",disabled:a||d.length===0,"aria-label":o?s:void 0,onChange:g=>{const N=Ci(g.target.value);N&&n(N)},children:[_?null:r.jsx("option",{value:"",disabled:!0,children:d.length===0?"No seats discovered":"Choose a seat…"}),d.map(g=>r.jsx("optgroup",{label:Un[g.engine],children:g.seats.flatMap(N=>{const f=sn(N),y=ht(N),x=f!==null?`unavailable: ${f}`:y.cls==="unread"||y.kind==="local"?null:`${y.plan===null?"":`${y.plan} · `}${y.word} · ${y.summary}`,b=x===null?void 0:x.charAt(0).toUpperCase()+x.slice(1);return N.models.map(w=>r.jsxs("option",{value:bn({seatId:N.id,model:w.id}),disabled:f!==null,title:b,children:[N.label," — ",w.label,x?` (${x})`:""]},bn({seatId:N.id,model:w.id})))})},g.engine))]})]})}const $i="_width_s1zob_1",Li="_form_s1zob_3",Mi="_field_s1zob_4",Di="_label_s1zob_5",Pi="_optional_s1zob_13",zi="_select_s1zob_15",Oi="_input_s1zob_16",qi="_hint_s1zob_40",Fi="_error_s1zob_41",Hi="_actions_s1zob_49",Bi="_cancel_s1zob_50",Ui="_create_s1zob_51",Wi="_capacity_s1zob_72",ye={width:$i,form:Li,field:Mi,label:Di,optional:Pi,select:zi,input:Oi,hint:qi,error:Fi,actions:Hi,cancel:Bi,create:Ui,capacity:Wi},yt="\0other";function Gi({open:e,onClose:t,projects:n,seats:a,initialProjectPath:s,initialSeat:i,busy:o=!1,error:c,onCreate:u}){const d=m.useId(),p=m.useId(),_=m.useId(),g=m.useId(),N=m.useId(),f=m.useRef(null),[y,x]=m.useState(""),[b,w]=m.useState(""),[A,E]=m.useState(null),[P,W]=m.useState(""),[me,oe]=m.useState(null),Q=m.useMemo(()=>[...n].sort((B,ee)=>Number(ee.enrolled)-Number(B.enrolled)||B.name.localeCompare(ee.name)),[n]),G=m.useRef({initialProjectPath:s,initialSeat:i,projects:n,seats:a,sortedProjects:Q});G.current={initialProjectPath:s,initialSeat:i,projects:n,seats:a,sortedProjects:Q},m.useEffect(()=>{if(!e)return;const{initialProjectPath:B,initialSeat:ee,projects:S,seats:I,sortedProjects:D}=G.current,ke=B&&S.some(_e=>_e.path===B)?B:null;x(ke??(B?yt:D[0]?.path??yt)),w(ke?"":B??""),E(ee??zs(I)),W(""),oe(null)},[e]),m.useEffect(()=>{!e||A!==null||a.length===0||E(i??zs(a))},[e,A,a,i]);const de=Er(dt);m.useEffect(()=>{e&&de()},[e,de]);const H=y===yt?b.trim():y,ie=A===null?null:a.find(B=>B.id===A.seatId)??null,J=ie?.health.state==="unavailable",he=!o&&H.length>0&&A!==null&&!J;function se(B){if(B.preventDefault(),!A){oe("Pick a seat first.");return}if(!Ga(H)){oe("Project must be an absolute path to a folder on this machine.");return}oe(null);const ee={projectPath:H,seatId:A.seatId,model:A.model},S=P.trim();S&&(ee.title=S),u(ee)}const Z=me??c??null;return r.jsx(vr,{open:e,onClose:t,titleId:d,title:"New chat",initialFocusRef:f,widthClassName:ye.width,children:r.jsxs("form",{className:ye.form,onSubmit:se,noValidate:!0,children:[r.jsxs("label",{className:ye.field,htmlFor:p,children:[r.jsx("span",{className:ye.label,children:"Project"}),r.jsxs("select",{id:p,ref:f,value:y,onChange:B=>x(B.target.value),className:ye.select,children:[Q.map(B=>r.jsxs("option",{value:B.path,children:[B.name,B.enrolled?"":" (recent)"," — ",B.path]},B.path)),r.jsx("option",{value:yt,children:"Other folder…"})]})]}),y===yt?r.jsxs("label",{className:ye.field,htmlFor:_,children:[r.jsx("span",{className:ye.label,children:"Folder path"}),r.jsx("input",{id:_,className:ye.input,value:b,onChange:B=>w(B.target.value),placeholder:"/absolute/path/to/project",autoComplete:"off",spellCheck:!1})]}):null,r.jsx(Ii,{id:N,seats:a,value:A,onChange:E}),ie===null?null:r.jsx(Ko,{seat:ie,className:ye.capacity}),a.length===0?r.jsx("p",{className:ye.hint,children:"No seats yet — connect an account or start Ollama, then reload."}):null,r.jsxs("label",{className:ye.field,htmlFor:g,children:[r.jsxs("span",{className:ye.label,children:["Title ",r.jsx("span",{className:ye.optional,children:"optional"})]}),r.jsx("input",{id:g,className:ye.input,value:P,onChange:B=>W(B.target.value),placeholder:"Defaults to your first message",maxLength:120})]}),Z?r.jsx("p",{role:"alert",className:ye.error,children:Z}):null,r.jsxs("div",{className:ye.actions,children:[r.jsx("button",{type:"button",className:ye.cancel,onClick:t,children:"Cancel"}),r.jsx("button",{type:"submit",className:ye.create,disabled:!he,children:o?"Creating…":"Start chat"})]})]})})}const Vi="_width_k2wwr_1",Ki="_input_k2wwr_3",Yi="_list_k2wwr_19",Xi="_row_k2wwr_27",Zi="_rowActive_k2wwr_41",Qi="_marker_k2wwr_44",Ji="_rowText_k2wwr_50",el="_rowPrimary_k2wwr_51",tl="_rowSecondary_k2wwr_58",nl="_rowTrailing_k2wwr_67",sl="_emptyRow_k2wwr_76",Ie={width:Vi,input:Ki,list:Yi,row:Xi,rowActive:Zi,marker:Qi,"engine-claude":"_engine-claude_k2wwr_45","engine-codex":"_engine-codex_k2wwr_46","engine-grok":"_engine-grok_k2wwr_47","engine-local":"_engine-local_k2wwr_48",rowText:Ji,rowPrimary:el,rowSecondary:tl,rowTrailing:nl,emptyRow:sl};function rl({open:e,onClose:t,sessions:n,seats:a,projects:s,onSelectSession:i,onNewChat:o}){const c=m.useId(),u=m.useId(),d=m.useRef(null),[p,_]=m.useState(""),[g,N]=m.useState(0);m.useEffect(()=>{e&&(_(""),N(0))},[e]);const f=m.useMemo(()=>{const x=p.trim().toLowerCase(),b=[...n].sort((E,P)=>P.updatedAt.localeCompare(E.updatedAt)).map(E=>({id:`session:${E.id}`,kind:"session",engine:E.engine,primary:E.title||"Untitled chat",secondary:`${Wn(E.projectPath,s)} · ${Va(a,E)} · ${E.model}`,trailing:Cr(E.updatedAt),run:()=>{i(E.id),t()}})),w=a.filter(E=>E.health.state!=="unavailable"&&E.models.length>0).map(E=>({id:`seat:${E.id}`,kind:"seat",engine:E.engine,primary:`New chat on ${E.label}`,secondary:E.models[0].label,trailing:"⌘N",run:()=>{o({seatId:E.id,model:E.models[0].id}),t()}})),A=[...b,...w];return x?A.filter(E=>E.primary.toLowerCase().includes(x)||E.secondary.toLowerCase().includes(x)):A},[p,n,a,s,i,o,t]);m.useEffect(()=>{g>=f.length&&N(0)},[f.length,g]);function y(x){x.key==="ArrowDown"?(x.preventDefault(),N(b=>f.length?(b+1)%f.length:0)):x.key==="ArrowUp"?(x.preventDefault(),N(b=>f.length?(b-1+f.length)%f.length:0)):x.key==="Enter"&&(x.preventDefault(),f[g]?.run())}return r.jsxs(vr,{open:e,onClose:t,titleId:c,title:"Switch chat",initialFocusRef:d,widthClassName:Ie.width,children:[r.jsx("input",{ref:d,className:Ie.input,value:p,placeholder:"Search chats or start one on a seat…",role:"combobox","aria-expanded":"true","aria-controls":u,"aria-activedescendant":f[g]?`${u}-${g}`:void 0,"aria-autocomplete":"list",autoComplete:"off",onChange:x=>{_(x.target.value),N(0)},onKeyDown:y}),r.jsx("ul",{id:u,role:"listbox",className:Ie.list,"aria-label":"Chats and seats",children:f.length===0?r.jsx("li",{className:Ie.emptyRow,children:"Nothing matches."}):f.map((x,b)=>r.jsxs("li",{id:`${u}-${b}`,role:"option","aria-selected":b===g,className:`${Ie.row} ${Ie[`engine-${x.engine}`]??""} ${b===g?Ie.rowActive:""}`,"data-kind":x.kind,onMouseEnter:()=>N(b),onMouseDown:w=>w.preventDefault(),onClick:x.run,children:[r.jsx("span",{className:Ie.marker,"aria-hidden":"true"}),r.jsxs("span",{className:Ie.rowText,children:[r.jsx("span",{className:Ie.rowPrimary,children:x.primary}),r.jsx("span",{className:Ie.rowSecondary,children:x.secondary})]}),r.jsx("span",{className:Ie.rowTrailing,"aria-hidden":"true",children:x.trailing})]},x.id))})]})}const Fr={session:null,events:[],lastSeq:0,loaded:!1,loadError:null,stream:"idle"},Zt=new Map,Dn=new Set;function Hr(){for(const e of Dn)e()}function al(e){return Dn.add(e),()=>Dn.delete(e)}function Qe(e){let t=Zt.get(e);return t||(t={sessionId:e,...Fr},Zt.set(e,t)),t}function pt(e,t){const n=Qe(e);Zt.set(e,{...n,...t}),Hr()}const ol={sessionId:"",...Fr};function Os(e){return e?Qe(e):ol}function il(e,t,n){const a=Qe(e),s=Ur(a.events,n);pt(e,{session:Br(t,s),events:s,lastSeq:s.length?s[s.length-1].seq:0,loaded:!0,loadError:null})}function ll(e,t){pt(e,{loadError:t,loaded:!0})}function Ut(e,t){Qe(e).stream!==t&&pt(e,{stream:t})}function wn(e,t,n){const a=Qe(e);pt(e,{session:Br(t,a.events,n)})}function Br(e,t,n){if(e.status!=="running")return e;let a=-1,s=n??null;if(!n){for(const u of t)(u.type==="user-message"||u.type==="turn-started")&&(a=u.seq,s=u.turnId);if(s===null)return e}let i=null,o=null;for(const u of t)u.seq<=a||(u.type==="error"&&u.turnId===s&&(o=u.message),(u.type==="turn-done"||u.type==="cancelled")&&u.turnId===s&&(i=u));if(!i)return e;const c=i.type==="turn-done"&&!i.ok&&o!==null;return{...e,status:c?"error":"idle",lastError:c?o:null,updatedAt:i.at>e.updatedAt?i.at:e.updatedAt}}function qs(e,t){const n=Qe(e);!n.session||n.session.status===t||pt(e,{session:{...n.session,status:t}})}function cl(e,t){const n=Qe(e);if(!Number.isFinite(t.seq)||n.events.some(i=>i.seq===t.seq))return!1;const a=Ur(n.events,[t]);let s=n.session;if(s)switch(t.type){case"turn-started":s={...s,status:"running",lastError:null,updatedAt:t.at};break;case"usage":s={...s,usage:{inputTokens:s.usage.inputTokens+t.usage.inputTokens,outputTokens:s.usage.outputTokens+t.usage.outputTokens,cacheReadTokens:s.usage.cacheReadTokens+t.usage.cacheReadTokens,cacheCreationTokens:s.usage.cacheCreationTokens+t.usage.cacheCreationTokens,contextTokens:t.usage.contextTokens,contextWindow:t.usage.contextWindow??s.usage.contextWindow},updatedAt:t.at};break;case"turn-done":s={...s,status:t.ok?"idle":s.lastError?"error":"idle",turnCount:s.turnCount+1,nativeSessionId:t.nativeSessionId??s.nativeSessionId,updatedAt:t.at};break;case"error":s={...s,status:"error",lastError:t.message,updatedAt:t.at};break;case"cancelled":s={...s,status:"idle",updatedAt:t.at};break}return pt(e,{events:a,lastSeq:Math.max(n.lastSeq,t.seq),session:s}),!0}function ul(e){Zt.delete(e)&&Hr()}function Ur(e,t){if(t.length===0)return e;const n=new Map;for(const a of e)n.set(a.seq,a);for(const a of t)n.has(a.seq)||n.set(a.seq,a);return[...n.values()].sort((a,s)=>a.seq-s.seq)}function Wr(e,t){const n=Date.parse(e),a=Date.parse(t);return Number.isFinite(n)&&Number.isFinite(a)?Math.max(0,a-n):null}function dl(e){const t=[],n=new Map;let a=null,s=!1,i=null;const o=c=>{a&&(t.push({kind:"assistant",key:a.key,turnId:a.turnId,at:a.at,text:a.text,streaming:c}),a=null)};for(const c of e)switch(c.type){case"user-message":o(!1),t.push({kind:"user",key:`u-${c.seq}`,turnId:c.turnId,at:c.at,text:c.text});break;case"turn-started":s=!0;break;case"text-delta":a&&a.turnId!==c.turnId&&o(!1),a||(a={turnId:c.turnId,at:c.at,text:"",key:`d-${c.seq}`}),a.text+=c.text;break;case"assistant-message":a=null,t.push({kind:"assistant",key:`a-${c.seq}`,turnId:c.turnId,at:c.at,text:c.text,streaming:!1});break;case"thinking":o(!1),t.push({kind:"thinking",key:`t-${c.seq}`,turnId:c.turnId,at:c.at,text:c.text});break;case"tool-use":o(!1),n.set(c.toolUseId,t.length),t.push({kind:"tool",key:`tu-${c.seq}`,turnId:c.turnId,at:c.at,toolUseId:c.toolUseId,name:c.name,input:c.input,result:null,durationMs:null});break;case"tool-result":{const u=n.get(c.toolUseId),d=u===void 0?void 0:t[u];d&&d.kind==="tool"?t[u]={...d,result:{output:c.output,isError:c.isError},durationMs:Wr(d.at,c.at)}:t.push({kind:"tool",key:`tr-${c.seq}`,turnId:c.turnId,at:c.at,toolUseId:c.toolUseId,name:"tool",input:null,result:{output:c.output,isError:c.isError},durationMs:null});break}case"usage":i=c.usage;break;case"error":o(!1),t.push({kind:"error",key:`e-${c.seq}`,turnId:c.turnId,at:c.at,message:c.message});break;case"cancelled":o(!1),s=!1,t.push({kind:"cancelled",key:`c-${c.seq}`,turnId:c.turnId,at:c.at});break;case"turn-done":o(!1),s=!1,t.push({kind:"turn-done",key:`td-${c.seq}`,turnId:c.turnId,at:c.at,ok:c.ok,durationMs:c.durationMs});break}return o(s),{items:t,live:s,usage:i}}function hl(e){const t=[];let n=[];const a=()=>{n.length!==0&&(n.length===1?t.push(n[0]):t.push(pl(n)),n=[])};for(const s of e){if((s.kind==="tool"||s.kind==="thinking")&&(n.length===0||n[0].turnId===s.turnId)){n.push(s);continue}a(),s.kind==="tool"||s.kind==="thinking"?n.push(s):t.push(s)}return a(),t}function pl(e){const t=new Map;let n=0,a=!1;for(const c of e)c.kind==="tool"&&(t.set(c.name,(t.get(c.name)??0)+1),c.result===null?a=!0:c.result.isError&&(n+=1));const s=[...t.values()].reduce((c,u)=>c+u,0),i=[...t.entries()].map(([c,u])=>u>1?`${c} ×${u}`:c).join(", "),o=Wr(e[0].at,e[e.length-1].at);return{kind:"toolGroup",key:`g-${e[0].key}`,turnId:e[0].turnId,at:e[0].at,items:e,toolCount:s,summary:i,errorCount:n,pending:a,spanMs:o}}function Le(e){return e==null||!Number.isFinite(e)?"—":e<1e3?String(Math.round(e)):e<1e6?`${Math.round(e/1e3)}k`:`${(e/1e6).toFixed(1).replace(/\.0$/,"")}M`}const fl="_panel_11q6l_3",ml="_head_11q6l_10",gl="_title_11q6l_22",_l="_close_11q6l_30",yl="_scroll_11q6l_45",xl="_section_11q6l_46",kl="_sectionTitle_11q6l_48",bl="_asOf_11q6l_64",wl="_refresh_11q6l_73",Tl="_count_11q6l_89",Sl="_skeleton_11q6l_90",Nl="_muted_11q6l_91",jl="_engineGroup_11q6l_95",El="_engineTitle_11q6l_96",vl="_seatList_11q6l_102",Al="_models_11q6l_102",Rl="_windows_11q6l_102",Cl="_runningList_11q6l_102",Il="_seat_11q6l_102",$l="_seatHead_11q6l_113",Ll="_seatLabel_11q6l_114",Ml="_seatMeta_11q6l_122",Dl="_seatSummary_11q6l_130",Pl="_plan_11q6l_133",zl="_num_11q6l_134",Ol="_notes_11q6l_138",ql="_seatWindows_11q6l_155",Fl="_credits_11q6l_157",Hl="_more_11q6l_162",Bl="_moreSummary_11q6l_163",Ul="_local_11q6l_189",Wl="_mono_11q6l_190",Gl="_runningRow_11q6l_203",Vl="_runningOpen_11q6l_204",Kl="_runningMeta_11q6l_224",Yl="_runningDot_11q6l_226",Xl="_runningTitle_11q6l_233",Zl="_stop_11q6l_249",Ql="_usage_11q6l_264",M={panel:fl,head:ml,title:gl,close:_l,scroll:yl,section:xl,sectionTitle:kl,asOf:bl,refresh:wl,count:Tl,skeleton:Sl,muted:Nl,engineGroup:jl,engineTitle:El,seatList:vl,models:Al,windows:Rl,runningList:Cl,seat:Il,"engine-claude":"_engine-claude_11q6l_108","engine-codex":"_engine-codex_11q6l_109","engine-grok":"_engine-grok_11q6l_110","engine-local":"_engine-local_11q6l_111",seatHead:$l,seatLabel:Ll,seatMeta:Ml,seatSummary:Dl,plan:Pl,num:zl,notes:Ol,seatWindows:ql,credits:Fl,more:Hl,moreSummary:Bl,local:Ul,mono:Wl,runningRow:Gl,runningOpen:Vl,runningMeta:Kl,runningDot:Yl,"verse-pulse-res":"_verse-pulse-res_11q6l_1",runningTitle:Xl,stop:Zl,usage:Ql};function Jl(e){const[t,n]=m.useState(()=>Date.now());return m.useEffect(()=>{if(!e)return;const a=setInterval(()=>n(Date.now()),1e3);return()=>clearInterval(a)},[e]),t}function ec(e){let t=null;for(const n of e){const a=ht(n).observedAt;a!==null&&(t===null||a>t)&&(t=a)}return t}function tc({seat:e}){const t=ht(e),n=qr(e,t),a=e.contextWindow===null?"ctx n/a":`${Le(e.contextWindow)} ctx`,s=`${e.models.length} model${e.models.length===1?"":"s"}`,i=Ro(t.evidenceSource),o=i===null?t.notes:[...t.notes,i];return r.jsxs("li",{className:`${M.seat} ${M[`engine-${e.engine}`]??""}`,"data-engine":e.engine,"data-capacity":t.cls,children:[r.jsxs("div",{className:M.seatHead,children:[r.jsx("span",{className:M.seatLabel,title:n,children:e.label}),t.kind==="local"?r.jsx(Pr,{status:e.health.state,tone:e.health.state==="ready"?"success":e.health.state==="unavailable"?"danger":"unknown"}):r.jsx(Gn,{view:t,title:n})]}),r.jsxs("div",{className:M.seatMeta,children:[r.jsx("span",{children:Un[e.engine]}),t.plan===null?null:r.jsxs(r.Fragment,{children:[r.jsx("span",{"aria-hidden":"true",children:"·"}),r.jsx("span",{className:M.plan,children:t.plan})]}),r.jsx("span",{"aria-hidden":"true",children:"·"}),r.jsx("span",{children:s}),r.jsx("span",{"aria-hidden":"true",children:"·"}),r.jsx("span",{className:M.num,children:a})]}),t.kind==="local"?r.jsx("p",{className:M.seatSummary,children:t.summary}):t.binding===null?r.jsxs(r.Fragment,{children:[r.jsx("p",{className:M.seatSummary,children:t.summary}),e.health.summary===null||e.health.summary===t.summary?null:r.jsx("p",{className:M.seatSummary,children:e.health.summary})]}):r.jsxs("div",{className:M.seatWindows,children:[r.jsx(Mn,{windowView:t.binding,ariaPrefix:e.label,prominent:!0}),t.others.length===0?null:r.jsxs("details",{className:M.more,children:[r.jsxs("summary",{className:M.moreSummary,children:[t.others.length," more window",t.others.length===1?"":"s"]}),r.jsx("ul",{className:M.windows,children:t.others.map(c=>r.jsx("li",{children:r.jsx(Mn,{windowView:c,ariaPrefix:e.label})},c.id))})]}),t.credits===null?null:r.jsx("p",{className:M.credits,title:t.creditsTitle??void 0,children:t.credits})]}),o.length===0?null:r.jsx("ul",{className:M.notes,children:o.map(c=>r.jsx("li",{children:c},c))})]})}function nc({bootstrap:e,sessions:t,current:n,onStop:a,onOpen:s,onClose:i}){const o=t.filter(f=>f.status==="running"),c=Jl(o.length>0),u=e?Bn(e.seats):[],d=e?.localRuntime.ollama,p=$n(dt),_=Ln(dt),g=e?ec(e.seats):null,N=g===null?null:Ya(g);return r.jsxs("aside",{className:M.panel,"aria-label":"Resources",children:[r.jsxs("header",{className:M.head,children:[r.jsx("h2",{className:M.title,children:"Resources"}),r.jsx("button",{type:"button",className:M.close,onClick:i,"aria-label":"Hide resources",children:"×"})]}),r.jsxs("div",{className:M.scroll,children:[r.jsxs("section",{className:M.section,"aria-labelledby":"verse-res-seats",children:[r.jsxs("h3",{id:"verse-res-seats",className:M.sectionTitle,children:[r.jsx("span",{children:"Seats"}),r.jsx("span",{className:M.asOf,children:N===null?"no reading yet":`as of ${N}`}),p.status==="refreshing"?r.jsx(Dr,{label:"Refreshing seats"}):null,r.jsx("button",{type:"button",className:M.refresh,onClick:_,children:"Refresh"})]}),e?u.length===0?r.jsxs("p",{className:M.muted,children:["No seats discovered. Connect an account with ",r.jsx("code",{children:"ashlr accounts"})," or start Ollama."]}):u.map(f=>r.jsxs("div",{className:M.engineGroup,children:[r.jsx("h4",{className:M.engineTitle,children:Un[f.engine]}),r.jsx("ul",{className:M.seatList,children:f.seats.map(y=>r.jsx(tc,{seat:y},y.id))})]},f.engine)):r.jsxs("div",{className:M.skeleton,children:[r.jsx(Ne,{width:"70%"}),r.jsx(Ne,{width:"50%"}),r.jsx(Ne,{width:"64%"})]})]}),r.jsxs("section",{className:M.section,"aria-labelledby":"verse-res-local",children:[r.jsx("h3",{id:"verse-res-local",className:M.sectionTitle,children:"Local runtime"}),d?r.jsxs("div",{className:M.local,children:[r.jsxs("div",{className:M.seatHead,children:[r.jsx("span",{className:M.seatLabel,children:"Ollama"}),r.jsx(Pr,{status:d.reachable?"ready":"unavailable",tone:d.reachable?"success":"danger",children:d.reachable?"reachable":"unreachable"})]}),r.jsx("p",{className:M.mono,title:d.baseUrl,children:d.baseUrl}),d.reachable?d.models.length>0?r.jsx("ul",{className:M.models,children:d.models.map(f=>r.jsx("li",{children:r.jsx("code",{children:f})},f))}):r.jsx("p",{className:M.muted,children:"No models pulled yet."}):r.jsx("p",{className:M.muted,children:"Start Ollama to enable local seats."})]}):r.jsx(Ne,{width:"60%"})]}),r.jsxs("section",{className:M.section,"aria-labelledby":"verse-res-running",children:[r.jsxs("h3",{id:"verse-res-running",className:M.sectionTitle,children:["Running ",r.jsx("span",{className:M.count,children:o.length})]}),o.length===0?r.jsx("p",{className:M.muted,children:"Nothing running."}):r.jsx("ul",{className:M.runningList,children:o.map(f=>r.jsxs("li",{className:M.runningRow,children:[r.jsxs("button",{type:"button",className:M.runningOpen,onClick:()=>s(f.id),title:f.title,children:[r.jsx("span",{className:M.runningDot,role:"img","aria-label":"Running"}),r.jsx("span",{className:M.runningTitle,children:f.title||"Untitled chat"}),r.jsxs("span",{className:M.runningMeta,children:[Wn(f.projectPath,e?.projects??[])," · ",Ka(c-new Date(f.updatedAt).getTime())]})]}),r.jsx("button",{type:"button",className:M.stop,onClick:()=>a(f.id),"aria-label":`Stop ${f.title||"chat"}`,children:"Stop"})]},f.id))})]}),r.jsxs("section",{className:M.section,"aria-labelledby":"verse-res-usage",children:[r.jsx("h3",{id:"verse-res-usage",className:M.sectionTitle,children:"This chat"}),n?r.jsxs("dl",{className:M.usage,children:[r.jsxs("div",{children:[r.jsx("dt",{children:"Input"}),r.jsx("dd",{children:Le(n.usage.inputTokens)})]}),r.jsxs("div",{children:[r.jsx("dt",{children:"Output"}),r.jsx("dd",{children:Le(n.usage.outputTokens)})]}),r.jsxs("div",{children:[r.jsx("dt",{children:"Cache read"}),r.jsx("dd",{children:Le(n.usage.cacheReadTokens)})]}),r.jsxs("div",{children:[r.jsx("dt",{children:"Cache write"}),r.jsx("dd",{children:Le(n.usage.cacheCreationTokens)})]}),r.jsxs("div",{children:[r.jsx("dt",{children:"Turns"}),r.jsx("dd",{children:n.turnCount})]}),r.jsxs("div",{children:[r.jsx("dt",{children:"Context"}),r.jsxs("dd",{children:[Le(n.usage.contextTokens),n.usage.contextWindow?` / ${Le(n.usage.contextWindow)}`:""]})]})]}):r.jsx("p",{className:M.muted,children:"Select a chat to see its usage."})]})]})]})}const sc="_sidebar_gk0nv_1",rc="_head_gk0nv_9",ac="_search_gk0nv_21",oc="_searchIcon_gk0nv_28",ic="_iconButton_gk0nv_50",lc="_scroll_gk0nv_68",cc="_skeleton_gk0nv_75",uc="_error_gk0nv_76",dc="_empty_gk0nv_95",hc="_emptyTitle_gk0nv_101",pc="_group_gk0nv_103",fc="_groupTitle_gk0nv_104",mc="_groupName_gk0nv_117",gc="_enrolled_gk0nv_118",_c="_list_gk0nv_120",yc="_session_gk0nv_123",xc="_marker_gk0nv_140",kc="_sessionText_gk0nv_151",bc="_running_gk0nv_160",wc="_errored_gk0nv_167",Tc="_seatSpent_gk0nv_182",Sc="_time_gk0nv_194",Nc="_footer_gk0nv_213",jc="_footerButton_gk0nv_221",ae={sidebar:sc,head:rc,search:ac,searchIcon:oc,iconButton:ic,scroll:lc,skeleton:cc,error:uc,empty:dc,emptyTitle:hc,group:pc,groupTitle:fc,groupName:mc,enrolled:gc,list:_c,session:yc,marker:xc,"engine-claude":"_engine-claude_gk0nv_146","engine-codex":"_engine-codex_gk0nv_147","engine-grok":"_engine-grok_gk0nv_148","engine-local":"_engine-local_gk0nv_149",sessionText:kc,running:bc,"verse-pulse":"_verse-pulse_gk0nv_1",errored:wc,seatSpent:Tc,time:Sc,footer:Nc,footerButton:jc};function Ec(e){const{sessions:t,sessionsStatus:n,sessionsError:a,projects:s,seats:i,selectedId:o,query:c,onQuery:u,onSelect:d,onNew:p,onRetry:_,onCollapse:g,onDisconnect:N}=e,f=m.useId(),y=Xa(t,s,c),x=n==="loading"||n==="idle"&&t.length===0;return r.jsxs("nav",{className:ae.sidebar,"aria-label":"Chats",children:[r.jsxs("div",{className:ae.head,children:[r.jsxs("label",{className:ae.search,htmlFor:f,children:[r.jsx("span",{className:ae.searchIcon,"aria-hidden":"true",children:r.jsx($r,{})}),r.jsx("span",{className:"visually-hidden",children:"Search chats"}),r.jsx("input",{id:f,type:"search",value:c,placeholder:"Search chats",autoComplete:"off",onChange:b=>u(b.target.value)})]}),r.jsx("button",{type:"button",className:ae.iconButton,onClick:p,title:"New chat (⌘N)","aria-label":"New chat",children:r.jsx(eo,{})}),r.jsx("button",{type:"button",className:ae.iconButton,onClick:g,title:"Hide chat list","aria-label":"Hide chat list",children:r.jsx(Lr,{})}),n==="refreshing"?r.jsx(Dr,{label:"Refreshing chats"}):null]}),r.jsx("div",{className:ae.scroll,children:x?r.jsxs("div",{className:ae.skeleton,"aria-busy":"true",children:[r.jsx(Ne,{width:"48%"}),r.jsx(Ne,{width:"86%"}),r.jsx(Ne,{width:"74%"}),r.jsx(Ne,{width:"40%"}),r.jsx(Ne,{width:"80%"})]}):n==="error"&&t.length===0?r.jsxs("div",{role:"alert",className:ae.error,children:[r.jsx("p",{children:a??"Could not load chats."}),r.jsx("button",{type:"button",onClick:_,children:"Retry"})]}):y.length===0?r.jsx("div",{className:ae.empty,children:c?r.jsxs("p",{children:["No chats match “",c,"”."]}):r.jsxs(r.Fragment,{children:[r.jsx("p",{className:ae.emptyTitle,children:"No chats yet — ⌘N"}),r.jsx("p",{children:"Start one on any project with any seat."})]})}):y.map(b=>r.jsxs("section",{className:ae.group,"aria-label":b.name,children:[r.jsxs("h2",{className:ae.groupTitle,title:b.projectPath,children:[r.jsx("span",{className:ae.groupName,children:b.name}),b.enrolled?r.jsx("span",{className:ae.enrolled,title:"Enrolled repo",children:"enrolled"}):null]}),r.jsx("ul",{className:ae.list,children:b.sessions.map(w=>{const A=Ir(i,w.seatId),E=A===void 0?null:ht(A),P=w.status==="running"&&E?.cls==="blocked",W=E===null||E.cls==="ready"||E.cls==="unread"?`${w.title} · ${vt(i,w)}`:`${w.title} · ${vt(i,w)} · ${E.summary}`;return r.jsx("li",{children:r.jsxs("button",{type:"button",className:`${ae.session} ${ae[`engine-${w.engine}`]??""}`,"aria-current":w.id===o?"true":void 0,"data-focus-key":`verse-session:${w.id}`,"data-engine":w.engine,onClick:()=>d(w.id),title:W,children:[r.jsx("span",{className:ae.marker,"aria-hidden":"true"}),r.jsx("span",{className:ae.sessionText,children:w.title||"Untitled chat"}),P&&E!==null?r.jsx("span",{className:ae.seatSpent,role:"img","aria-label":`Seat limit reached: ${E.summary}`,children:"▮"}):null,w.status==="running"?r.jsx("span",{className:ae.running,role:"img","aria-label":"Running"}):w.status==="error"?r.jsx("span",{className:ae.errored,role:"img","aria-label":"Last turn failed",children:"!"}):null,r.jsx("time",{className:ae.time,dateTime:w.updatedAt,children:Cr(w.updatedAt)})]})},w.id)})})]},b.projectPath))}),r.jsx("footer",{className:ae.footer,children:r.jsx("button",{type:"button",onClick:N,className:ae.footerButton,children:"Disconnect"})})]})}const vc=["user-message","turn-started","text-delta","assistant-message","thinking","tool-use","tool-result","usage","turn-done","error","cancelled"];function Ac(e){return`${to(e,"/events")}?client=${encodeURIComponent(Da())}`}function Gr(e){return Math.min(1e3*2**e,15e3)}function Rc(e){try{const t=JSON.parse(e);if(!t||typeof t!="object")return null;const n=t;return typeof n.seq!="number"||typeof n.type!="string"?null:t}catch{return null}}function Cc(e){let t=null,n=null,a=0,s=!1;const i=()=>{if(s||typeof EventSource>"u"||Yt().phase!=="authenticated")return;Ut(e,a===0?"connecting":"reconnecting");const o=new EventSource(Ac(e),{withCredentials:!0});t=o,o.onopen=()=>{a=0,Ut(e,"open")};for(const c of vc)o.addEventListener(c,u=>{const d=Rc(u.data);d&&(cl(e,d),(d.type==="turn-done"||d.type==="cancelled"||d.type==="error")&&Mr())});o.onerror=c=>{typeof MessageEvent<"u"&&c instanceof MessageEvent||(o.close(),t===o&&(t=null),!s&&(Ut(e,"reconnecting"),Yt().phase==="authenticated"&&(n=setTimeout(()=>{n=null,a+=1,i()},Gr(a)))))}};return i(),()=>{s=!0,n&&clearTimeout(n),n=null,t?.close(),t=null,Ut(e,"closed")}}function Ic(){let e=null,t=null,n=0,a=!1;const s=()=>{if(a||typeof EventSource>"u"||Yt().phase!=="authenticated")return;const i=new EventSource(Ma(),{withCredentials:!0});e=i,i.onopen=()=>{n=0},i.addEventListener("verse-sessions",()=>Mr()),i.onerror=()=>{i.close(),e===i&&(e=null),!(a||Yt().phase!=="authenticated")&&(t=setTimeout(()=>{t=null,n+=1,s()},Gr(n)))}};return s(),()=>{a=!0,t&&clearTimeout(t),t=null,e?.close(),e=null}}function $c(e,t=0){const n=m.useSyncExternalStore(al,()=>Os(e),()=>Os(e));m.useEffect(()=>{if(!e)return;const s=new AbortController;no(e,s.signal).then(o=>{s.signal.aborted||il(e,o.session,o.events)}).catch(o=>{s.signal.aborted||ll(e,o instanceof Error?o.message:"Could not load this chat.")});const i=Cc(e);return()=>{s.abort(),i()}},[e,t]);const a=m.useMemo(()=>dl(n.events),[n.events]);return m.useMemo(()=>({...n,transcript:a}),[n,a])}const Lc="_workspace_yz289_1",Mc="_header_yz289_11",Dc="_headerSpacer_yz289_23",Pc="_title_yz289_25",zc="_titleButton_yz289_29",Oc="_titleInput_yz289_59",qc="_titleSkeleton_yz289_72",Fc="_seatPill_yz289_81",Hc="_engineDot_yz289_100",Bc="_seatText_yz289_107",Uc="_projectName_yz289_114",Wc="_streamState_yz289_128",Gc="_ghost_yz289_130",Vc="_ghostIcon_yz289_131",Kc="_danger_yz289_132",Yc="_confirm_yz289_158",Xc="_confirmText_yz289_159",Zc="_meter_yz289_170",Qc="_meterTrack_yz289_183",Jc="_meterFill_yz289_191",eu="_meterInline_yz289_196",tu="_meterText_yz289_204",nu="_meterTokens_yz289_213",su="_meterPercent_yz289_217",ru="_emptyState_yz289_221",au="_emptyMark_yz289_232",ou="_emptyTitle_yz289_233",iu="_emptyBody_yz289_240",lu="_emptyButton_yz289_241",cu="_emptyWarn_yz289_257",U={workspace:Lc,header:Mc,headerSpacer:Dc,title:Pc,titleButton:zc,titleInput:Oc,titleSkeleton:qc,seatPill:Fc,engineDot:Hc,seatText:Bc,projectName:Uc,"engine-claude":"_engine-claude_yz289_123","engine-codex":"_engine-codex_yz289_124","engine-grok":"_engine-grok_yz289_125","engine-local":"_engine-local_yz289_126",streamState:Wc,ghost:Gc,ghostIcon:Vc,danger:Kc,confirm:Yc,confirmText:Xc,meter:Zc,"meter-warn":"_meter-warn_yz289_178","meter-danger":"_meter-danger_yz289_179","meter-unknown":"_meter-unknown_yz289_180",meterTrack:Qc,meterFill:Jc,meterInline:eu,meterText:tu,meterTokens:nu,meterPercent:su,emptyState:ru,emptyMark:au,emptyTitle:ou,emptyBody:iu,emptyButton:lu,emptyWarn:cu},Vr=70,Kr=90;function uu(e){return e===null?"unknown":e>=Kr?"danger":e>=Vr?"warn":"ok"}function du({contextTokens:e,contextWindow:t,variant:n="header"}){const a=typeof e=="number"&&Number.isFinite(e)?Math.max(0,e):0,s=typeof t=="number"&&t>0?t:null,i=s?Math.min(100,Math.round(a/s*100)):null,o=uu(i),c=s?`${Le(a)} / ${Le(s)}`:`${Le(a)} / n/a`,u=i===null?"n/a":`${i}%`;return r.jsxs("div",{className:`${U.meter} ${U[`meter-${o}`]??""} ${n==="inline"?U.meterInline:""}`,role:"meter","aria-label":"Context window","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":i??void 0,"aria-valuetext":`${c} (${u})`,title:`Context window — ${c} (${u})`,"data-tone":o,children:[r.jsx("div",{className:U.meterTrack,"aria-hidden":"true",children:r.jsx("div",{className:U.meterFill,style:{width:`${i??0}%`}})}),r.jsxs("span",{className:U.meterText,children:[r.jsx("span",{className:U.meterTokens,children:c}),r.jsx("span",{className:U.meterPercent,children:u})]})]})}const Fs="Use Wispr Flow / Superwhisper — system dictation works in this box";function hu(){const e=globalThis;return e.SpeechRecognition??e.webkitSpeechRecognition??null}function pu({disabled:e=!1,onInterim:t,onFinal:n,onListeningChange:a}){const s=hu(),[i,o]=m.useState(!1),[c,u]=m.useState(null),d=m.useRef(null),p=m.useId(),_=m.useRef({onInterim:t,onFinal:n,onListeningChange:a});_.current={onInterim:t,onFinal:n,onListeningChange:a};const g=m.useCallback(()=>{const f=d.current;if(d.current=null,f){f.onresult=null,f.onend=null,f.onerror=null;try{f.stop()}catch{}}o(!1),_.current.onInterim(""),_.current.onListeningChange?.(!1)},[]),N=m.useCallback(()=>{if(!s||d.current)return;let f;try{f=new s}catch{u("Dictation could not start in this browser.");return}f.lang=navigator.language||"en-US",f.continuous=!0,f.interimResults=!0,f.onresult=y=>{let x="",b="";for(let w=y.resultIndex;w<y.results.length;w+=1){const A=y.results[w];if(!A)continue;const E=A[0]?.transcript??"";A.isFinal?b+=E:x+=E}b&&_.current.onFinal(b.trim()),_.current.onInterim(x)},f.onerror=y=>{const x=y.error??"unknown";x==="not-allowed"||x==="service-not-allowed"?u("Microphone access was denied."):x!=="aborted"&&x!=="no-speech"&&u(`Dictation stopped (${x}).`),g()},f.onend=()=>{d.current===f&&g()},d.current=f,u(null);try{f.start()}catch{d.current=null,u("Dictation could not start in this browser.");return}o(!0),_.current.onListeningChange?.(!0)},[s,g]);return m.useEffect(()=>{if(!i)return;function f(y){y.key==="Escape"&&(y.preventDefault(),g())}return document.addEventListener("keydown",f),()=>document.removeEventListener("keydown",f)},[i,g]),m.useEffect(()=>()=>{const f=d.current;d.current=null;try{f?.abort()}catch{}},[]),s?r.jsxs("span",{className:F.dictationWrap,children:[r.jsxs("button",{type:"button",className:`${F.dictation} ${i?F.dictationLive:""}`,disabled:e&&!i,"aria-pressed":i,"aria-label":i?"Stop dictation (Esc)":"Start dictation",title:i?"Stop dictation (Esc)":"Dictate",onClick:()=>i?g():N(),children:[r.jsx(Hs,{}),i?r.jsx("span",{className:F.dictationPulse,"aria-hidden":"true"}):null]}),c?r.jsx("span",{role:"alert",className:F.dictationError,children:c}):null]}):r.jsxs("span",{className:F.dictationWrap,children:[r.jsxs("button",{type:"button",className:F.dictation,disabled:!0,"aria-disabled":"true","aria-describedby":p,title:Fs,children:[r.jsx(Hs,{}),r.jsx("span",{className:"visually-hidden",children:"Dictation unavailable"})]}),r.jsx("span",{role:"tooltip",id:p,className:F.dictationHint,children:Fs})]})}function Hs(){return r.jsxs("svg",{viewBox:"0 0 20 20",width:"16",height:"16","aria-hidden":"true",focusable:"false",children:[r.jsx("rect",{x:"7",y:"2",width:"6",height:"10",rx:"3",fill:"currentColor"}),r.jsx("path",{d:"M4.5 9.5a5.5 5.5 0 0 0 11 0M10 15v3M7 18h6",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"})]})}const fu=64*1024,mu=400,gu=.4,_u=320;function yu({sessionId:e=null,seats:t,seat:n,engine:a,running:s,disabled:i,disabledReason:o,locked:c,hintSeen:u=!1,contextTokens:d=null,contextWindow:p=null,onSend:_,onStop:g,onSeatChange:N,autoFocus:f=!1}){const[y,x]=m.useState(()=>Pa(e)),[b,w]=m.useState(""),[A,E]=m.useState(!1),[P,W]=m.useState(!1),[me,oe]=m.useState(!1),[Q,G]=m.useState(-1),[de]=m.useState(()=>za(e)),H=m.useRef(de),ie=m.useRef(""),J=m.useRef(null),he=m.useRef(null),se=m.useId(),Z=b?`${y}${y&&!y.endsWith(" ")?" ":""}${b}`:y,B=m.useMemo(()=>new TextEncoder().encode(Z).length>fu,[Z]),ee=!i&&!s&&!A&&Z.trim().length>0&&!B,S=!u&&!me,I=m.useMemo(()=>Oa(Z,d,p,Vr,Kr),[Z,d,p]),D=m.useRef(y),ke=m.useRef(y);ke.current=y;const _e=m.useCallback(()=>{D.current!==ke.current&&(D.current=ke.current,Rs(e,ke.current))},[e]);m.useEffect(()=>{if(D.current===y)return;const z=setTimeout(_e,mu);return()=>clearTimeout(z)},[y,_e]),m.useEffect(()=>(window.addEventListener("beforeunload",_e),()=>{window.removeEventListener("beforeunload",_e),_e()}),[_e]),m.useEffect(()=>{f&&J.current?.focus()},[f]),m.useEffect(()=>{if(!s)return;const z=V=>{V.key!=="."||!V.metaKey&&!V.ctrlKey||V.shiftKey||V.altKey||(V.preventDefault(),g())};return document.addEventListener("keydown",z),()=>document.removeEventListener("keydown",z)},[s,g]),m.useEffect(()=>{if(s||!f)return;const z=document.activeElement,V=z!==null&&z!==J.current&&he.current?.contains(z)===!0;(z===null||z===document.body||!z.isConnected||V)&&J.current?.focus()},[s,f]),m.useEffect(()=>{const z=J.current;if(!z)return;const V=typeof window>"u"?0:window.innerHeight,be=V>0?Math.round(V*gu):_u;z.style.height="auto",z.style.height=`${Math.min(z.scrollHeight,be)}px`},[Z]);const K=m.useCallback(async()=>{if(!ee)return;const z=Z.trim();E(!0);try{await _(z)&&(H.current[H.current.length-1]!==z&&(H.current=[...H.current,z]),qa(e,z),G(-1),ie.current="",x(""),D.current="",ke.current="",Rs(e,""),w(""),oe(!0))}finally{E(!1),J.current?.focus()}},[ee,Z,_,e]);function Fe(z){const V=H.current;if(V.length===0)return!1;if(Q===-1){if(z>0)return!1;ie.current=y;const R=V.length-1;return G(R),x(V[R]),w(""),!0}const be=Q+z;return be<0?!0:be>=V.length?(G(-1),x(ie.current),!0):(G(be),x(V[be]),!0)}function et(z){const V=z.currentTarget,be=V.selectionStart===V.selectionEnd;if(z.key==="Enter"&&!z.shiftKey&&!z.nativeEvent.isComposing){z.preventDefault(),K();return}if(z.key==="Enter"&&(z.metaKey||z.ctrlKey)&&!z.nativeEvent.isComposing){z.preventDefault(),K();return}if(z.key==="ArrowUp"&&be&&(Q!==-1||V.selectionStart===0&&!b)){Fe(-1)&&z.preventDefault();return}z.key==="ArrowDown"&&be&&Q!==-1&&Fe(1)&&z.preventDefault()}const ft=i?o??"Sending is disabled":s?"Draft your next message…":"Message the agent…";return r.jsxs("form",{ref:he,className:F.composer,onSubmit:z=>{z.preventDefault(),K()},"aria-describedby":se,children:[r.jsxs("div",{className:`${F.box} ${P?F.boxListening:""}`,children:[r.jsx("textarea",{ref:J,className:F.textarea,value:Z,rows:1,placeholder:ft,"aria-label":"Message",disabled:i,onChange:z=>{w(""),G(-1),x(z.target.value)},onKeyDown:et}),r.jsxs("div",{className:F.row,children:[r.jsx(xu,{seats:t,seat:n,engine:a,disabled:i,onNewChat:N}),r.jsx("div",{className:F.spacer}),r.jsx(pu,{disabled:i,onInterim:w,onFinal:z=>x(V=>V&&!V.endsWith(" ")?`${V} ${z}`:`${V}${z}`),onListeningChange:W}),s?r.jsxs("button",{type:"button",className:F.stop,onClick:g,title:"Stop the running turn (⌘.)","aria-label":"Stop the running turn",children:[r.jsx("span",{className:F.stopIcon,"aria-hidden":"true"}),"Stop"]},"stop"):r.jsx("button",{type:"submit",className:F.send,disabled:!ee,"aria-label":c?"Send (unlocks first)":"Send message",children:A?"Sending…":c?"Unlock & send":"Send"},"send")]})]}),I?r.jsxs("p",{className:F.cost,"data-tone":I.tone,role:"status",children:[r.jsxs("span",{className:F.costFigure,children:["≈",Le(I.draftTokens)]})," tokens for this message — sending would reach ",r.jsxs("span",{className:F.costFigure,children:[I.projectedPercent,"%"]})," of the context window.",I.tone==="danger"?" Start a new chat to keep the agent sharp.":"",r.jsx("span",{className:"visually-hidden",children:" This is an estimate; the provider counts the real total."})]}):null,r.jsx("p",{id:se,className:`${F.help} ${S||B||P||s||i||Q!==-1?"":F.helpQuiet}`,children:B?r.jsx("span",{role:"alert",className:F.helpError,children:"Message is over 64 KB — trim it before sending."}):P?"Listening… Esc stops dictation.":i&&o?o:s?r.jsxs(r.Fragment,{children:["Reply in progress — your draft stays here · ",r.jsx("kbd",{children:"⌘."})," or Stop interrupts the turn"]}):Q!==-1?r.jsxs(r.Fragment,{children:["Recalled message ",Q+1," of ",H.current.length," · ",r.jsx("kbd",{children:"↓"})," returns to your draft"]}):S?r.jsxs(r.Fragment,{children:[r.jsx("kbd",{children:"Enter"})," sends · ",r.jsx("kbd",{children:"Shift"}),"+",r.jsx("kbd",{children:"Enter"})," new line · ",r.jsx("kbd",{children:"↑"})," recalls · ",r.jsx("kbd",{children:"⌘N"})," new chat · ",r.jsx("kbd",{children:"⌘K"})," switch"]}):null})]})}function xu({seats:e,seat:t,engine:n,disabled:a,onNewChat:s}){const[i,o]=m.useState(!1),c=m.useRef(null),u=m.useRef(null),d=m.useId(),p=ku(e,t.seatId),_=n??p?.engine,g=vt(e,{seatId:t.seatId,engine:_??"claude",model:t.model}),N=e.filter(y=>y.health.state!=="unavailable"&&y.models.length>0);m.useEffect(()=>{if(!i)return;const y=b=>{c.current&&!c.current.contains(b.target)&&o(!1)},x=b=>{b.key==="Escape"&&(b.preventDefault(),o(!1),u.current?.focus())};return document.addEventListener("pointerdown",y),document.addEventListener("keydown",x),()=>{document.removeEventListener("pointerdown",y),document.removeEventListener("keydown",x)}},[i]),m.useEffect(()=>{i&&c.current?.querySelector('[role="menuitem"]')?.focus()},[i]);function f(y){if(y.key!=="ArrowDown"&&y.key!=="ArrowUp")return;const x=Array.from(c.current?.querySelectorAll('[role="menuitem"]')??[]);if(x.length===0)return;y.preventDefault();const b=x.indexOf(document.activeElement),w=y.key==="ArrowDown"?(b+1)%x.length:(b-1+x.length)%x.length;x[w]?.focus()}return r.jsxs("div",{ref:c,className:`${F.seatPillWrap} ${_?F[`engine-${_}`]??"":""}`,children:[r.jsxs("button",{ref:u,type:"button",className:F.seatPill,"data-engine":_,"aria-haspopup":"menu","aria-expanded":i,"aria-controls":i?d:void 0,disabled:a,title:"This chat is bound to one seat — open to start a new chat on another",onClick:()=>o(y=>!y),children:[r.jsx("span",{className:F.engineDot,"aria-hidden":"true"}),r.jsx("span",{className:F.seatPillText,children:g})]}),i?r.jsxs("div",{id:d,role:"menu","aria-label":"Seat",className:F.seatMenu,onKeyDown:f,children:[r.jsxs("p",{className:F.seatMenuHeading,children:["This chat runs on ",r.jsx("strong",{children:g})]}),N.length===0?r.jsx("p",{className:F.seatMenuEmpty,children:"No other seats are available right now."}):null,N.map(y=>{const x=Ar(y);return r.jsxs("button",{type:"button",role:"menuitem",className:`${F.seatMenuItem} ${F[`engine-${y.engine}`]??""}`,"data-capacity":x.cls,onClick:()=>{o(!1),s({seatId:y.id,model:y.models[0].id})},children:[r.jsx("span",{className:F.engineDot,"aria-hidden":"true"}),r.jsxs("span",{className:F.seatMenuText,children:[r.jsxs("span",{className:F.seatMenuPrimary,children:["New chat on ",y.label]}),r.jsxs("span",{className:F.seatMenuSecondary,children:[y.models[0].label,y.id===t.seatId?" · same seat":""]}),x.cls==="unread"?null:r.jsxs("span",{className:F.seatMenuCapacity,children:[rn[x.cls]," · ",x.text]})]})]},y.id)})]}):null]})}function ku(e,t){return e.find(n=>n.id===t)}const Bs=1200;function bu(e,t){const n=e.length,a=t.length;if(n===0&&a===0)return[];if(n===0)return t.map(x=>({kind:"add",text:x}));if(a===0)return e.map(x=>({kind:"del",text:x}));if(n>Bs||a>Bs)return[...e.map(x=>({kind:"del",text:x})),...t.map(x=>({kind:"add",text:x}))];let s=0;for(;s<n&&s<a&&e[s]===t[s];)s++;let i=n-1,o=a-1;for(;i>=s&&o>=s&&e[i]===t[o];)i--,o--;const c=e.slice(s,i+1),u=t.slice(s,o+1),d=c.length,p=u.length,_=p+1,g=new Int32Array((d+1)*_);for(let x=d-1;x>=0;x--)for(let b=p-1;b>=0;b--)g[x*_+b]=c[x]===u[b]?g[(x+1)*_+(b+1)]+1:Math.max(g[(x+1)*_+b],g[x*_+(b+1)]);const N=[];for(let x=0;x<s;x++)N.push({kind:"same",text:e[x]});let f=0,y=0;for(;f<d&&y<p;)c[f]===u[y]?(N.push({kind:"same",text:c[f]}),f++,y++):g[(f+1)*_+y]>=g[f*_+(y+1)]?(N.push({kind:"del",text:c[f]}),f++):(N.push({kind:"add",text:u[y]}),y++);for(;f<d;)N.push({kind:"del",text:c[f++]});for(;y<p;)N.push({kind:"add",text:u[y++]});for(let x=i+1;x<n;x++)N.push({kind:"same",text:e[x]});return N}function wu(e,t){const n=Math.max(0,t.context??3),a=t.oldStart??1,s=t.newStart??1;if(e.length===0||!e.some(p=>p.kind!=="same"))return"";const i=[];let o=a,c=s;for(const p of e)i.push({...p,oldNo:o,newNo:c}),p.kind!=="add"&&o++,p.kind!=="del"&&c++;const u=[];for(let p=0;p<i.length;p++){if(i[p].kind==="same")continue;const _=Math.max(0,p-n),g=Math.min(i.length-1,p+n),N=u[u.length-1];N&&_<=N.to+1?N.to=Math.max(N.to,g):u.push({from:_,to:g})}const d=[`--- a/${t.path}`,`+++ b/${t.path}`];for(const p of u){const _=i.slice(p.from,p.to+1),g=_.filter(b=>b.kind!=="add").length,N=_.filter(b=>b.kind!=="del").length,f=_.find(b=>b.kind!=="add")?.oldNo??a,y=_.find(b=>b.kind!=="del")?.newNo??s,x=t.section?` ${t.section}`:"";d.push(`@@ -${g===0?f-1:f},${g} +${N===0?y-1:y},${N} @@${x}`);for(const b of _)d.push(`${b.kind==="add"?"+":b.kind==="del"?"-":" "}${b.text}`)}return d.join(`
|
|
2
|
-
`)}function Tu(e,t,n){return e===t?"":wu(bu(At(e),At(t)),n)}function At(e){if(e==="")return[];const t=e.split(`
|
|
3
|
-
`);return t[t.length-1]===""&&t.pop(),t}const Su=new Map([["read","read"],["readfile","read"],["read_file","read"],["view","read"],["notebookread","read"],["notebook_read","read"],["cat","read"],["open","read"],["edit","edit"],["multiedit","edit"],["multi_edit","edit"],["notebookedit","edit"],["notebook_edit","edit"],["str_replace","edit"],["str_replace_editor","edit"],["str_replace_based_edit_tool","edit"],["apply_patch","edit"],["patch","edit"],["edit_structural","edit"],["search_replace_regex","edit"],["rename_file","edit"],["update","edit"],["applydiff","edit"],["apply_diff","edit"],["write","create"],["create","create"],["create_file","create"],["writefile","create"],["write_file","create"],["new_file","create"],["delete","delete"],["delete_file","delete"],["remove_file","delete"],["rm","delete"],["bash","command"],["shell","command"],["exec","command"],["run","command"],["run_command","command"],["runcommand","command"],["run_terminal_cmd","command"],["bash_start","command"],["bash_tail","command"],["terminal","command"],["test","command"],["grep","search"],["glob","search"],["search","search"],["find","search"],["codebase_search","search"],["ls","search"],["tree","search"],["list_dir","search"],["task","task"],["agent","task"],["dispatch_agent","task"],["subagent","task"],["webfetch","web"],["websearch","web"],["fetch","web"],["http","web"],["browser","web"]]);function Yr(e){const t=e.split("__").filter(Boolean);return(t[t.length-1]??e).trim().toLowerCase()}function Nu(e){return Su.get(Yr(e))??"other"}function Qt(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:null}function Kt(e){return typeof e=="string"&&e.length>0?e:null}const ju=["file_path","filePath","notebook_path","notebookPath","target_file","path","file","filename","fileName","relative_workspace_path"];function Eu(e){const t=Qt(e);if(!t)return[];const n=[],a=i=>{const o=Kt(i);o&&!n.includes(o)&&n.push(o)};for(const i of ju)a(t[i]);const s=t.paths??t.file_paths??t.files;if(Array.isArray(s))for(const i of s)a(typeof i=="string"?i:Qt(i)?.path);return n}function vu(e){const t=e.split(/[\\/]/).filter(Boolean);return t[t.length-1]??e}function Au(e){const t=e.split(/[\\/]/);return t.pop(),t.join("/")}const Ru=["command","cmd","script","shell_command","commandLine"],Cu=/^[ \t]*(?:exit(?:ed)?[ \t]+(?:with[ \t]+)?(?:code|status)|exit[ \t]*code|exit[ \t]*status|command[ \t]+exited[ \t]+with[ \t]+code)[ \t]*[:=]?[ \t]*(\d{1,3})[ \t]*\.?$/im;function Iu(e){const t=Cu.exec(e);if(!t)return null;const n=Number(t[1]);return Number.isInteger(n)&&n>=0&&n<=255?n:null}const $u=/^diff --git /m,Lu=/^--- (?:a\/|\/dev\/null|[^\n]*\t)/m,Mu=/^\+\+\+ (?:b\/|\/dev\/null|[^\n]*\t)/m,Du=/^@@ -\d+(?:,\d+)? \+\d+(?:,\d+)? @@/m;function Us(e){return e?$u.test(e)?!0:Du.test(e)&&Lu.test(e)&&Mu.test(e):!1}function Ws(e){const t=e.match(/^diff --git /gm);return t?t.length:(e.match(/^--- /gm)??[]).length}function Gs(e){const t=Qt(e);if(!t)return null;const n=t.old_string??t.oldString??t.old_str??t.old??t.search??t.find,a=t.new_string??t.newString??t.new_str??t.new??t.replace??t.replacement;return typeof n!="string"||typeof a!="string"?null:{old:n,next:a}}function Pu(e,t){const n=[];let a=1;return t.forEach((s,i)=>{const o=Tu(s.old,s.next,{path:e,oldStart:a,newStart:a,section:t.length>1?`edit ${i+1} of ${t.length}`:void 0});a+=Math.max(At(s.old).length,At(s.next).length)+8,o&&n.push(o.split(`
|
|
4
|
-
`).slice(2).join(`
|
|
5
|
-
`))}),n.length===0?"":[`--- a/${e}`,`+++ b/${e}`,...n].join(`
|
|
6
|
-
`)}function zu(e,t){const n=At(t);return n.length===0?"":["--- /dev/null",`+++ b/${e}`,`@@ -0,0 +1,${n.length} @@`,...n.map(a=>`+${a}`)].join(`
|
|
7
|
-
`)}const Tn=2e5;function xt(e){return e.length<=Tn?e:`${e.slice(0,Tn)}
|
|
8
|
-
… (${e.length-Tn} more characters not shown)`}const Ou=/\bhas been updated\b|\bsuccessfully (?:over)?written\b|\bupdated successfully\b/i,qu=/\b(?:file )?created successfully\b|\bnew file created\b/i;function Xr({name:e,input:t,result:n}){const a=Yr(e);let s=Nu(e);const i=Qt(t),o=n?.output??"",c=n===null;s==="create"&&n&&Ou.test(o)&&!qu.test(o)&&(s="edit");const u=Eu(t),d=u[0]??null;let p=null;if(i)for(const f of Ru){const y=Kt(i[f]);if(y){p={command:y,exitCode:n?Iu(o):null},s==="other"&&(s="command");break}}let _=null,g=null;if(n&&Us(o)&&(_={text:xt(o),anchored:!0,multiFile:Ws(o)>1,origin:"output"}),!_&&i){const f=Kt(i.patch)??Kt(i.diff);f&&Us(f)&&(_={text:xt(f),anchored:!0,multiFile:Ws(f)>1,origin:"payload"})}if(!_&&i&&d){const f=Gs(i),y=i.edits??i.replacements??i.changes,x=Array.isArray(y)?y.map(Gs).filter(w=>w!==null):[],b=x.length>0?x:f?[f]:[];if(b.length>0){const w=Pu(d,b);w&&(_={text:xt(w),anchored:!1,multiFile:!1,origin:"payload"}),s==="other"&&(s="edit")}}if(!_&&i&&d){const f=typeof i.content=="string"?i.content:typeof i.contents=="string"?i.contents:typeof i.text=="string"&&(s==="create"||s==="edit")?i.text:null;if(f!==null)if(s==="create"){const y=zu(d,f);y&&(_={text:xt(y),anchored:!0,multiFile:!1,origin:"payload"})}else g={path:d,text:xt(f)}}const N=n!==null&&(n.isError||(p?.exitCode??0)>0);return{base:a,action:s,paths:u,command:p,diff:_,written:g,failed:N,pending:c}}function Zr(e){return`verse-tool-${e.replace(/[^A-Za-z0-9_-]/g,"")}`}function Fu(){return{facts:new Map,counts:new Map,toolText:new Map}}function Hu(e,t){const n=t?.facts.get(e.toolUseId);if(n&&!(n.pending&&e.result!==null))return n;const a=Xr({name:e.name,input:e.input,result:e.result});return t&&(t.facts.set(e.toolUseId,a),t.counts.delete(e.toolUseId),t.toolText.delete(e.toolUseId)),a}function Jt(e){return`verse-note-${e.replace(/[^A-Za-z0-9_-]/g,"")}`}function Bu(e){return`verse-turn-${e.replace(/[^A-Za-z0-9_-]/g,"")}`}const Wt={read:0,edit:1,create:2,delete:3};function Qr(e){let t=0,n=0;for(const a of zr(e).files)t+=a.additions,n+=a.deletions;return{additions:t,deletions:n}}function Uu(e,t,n){const a=n?.counts.get(e);if(a)return a;const s=Qr(t);return n?.counts.set(e,s),s}function Wu(e){return e.kind==="tool"?[e]:e.kind==="toolGroup"?e.items.filter(t=>t.kind==="tool"):[]}function Gu(e,t=null){const n=new Map,a=[],s=[];let i=[];const o=()=>{i.length!==0&&(s.push(Vu(i,n,a,t)),i=[])};let c;for(const u of e){const d="turnId"in u?u.turnId:null;(u.kind==="user"||c!==void 0&&d!==null&&d!==c)&&o(),(u.kind==="user"||c===void 0||d!==null)&&(c=d),i.push(u)}return o(),{turns:s,facts:n,errorAnchors:a}}function Vu(e,t,n,a){const s=e[0],i=new Map;let o=0,c=0,u=0,d=null,p="running",_=null,g=null;const N=f=>{u++,d||(d=f),n.push(f)};for(const f of e){f.kind==="user"&&g===null&&(g=f.text);for(const y of Wu(f)){o++;const x=Hu(y,a);t.set(y.toolUseId,x),x.action==="command"&&c++,x.failed&&N(`verse-tool-${y.toolUseId.replace(/[^A-Za-z0-9_-]/g,"")}`);const b=x.action;if(b!=="read"&&b!=="edit"&&b!=="create"&&b!=="delete")continue;const w=x.diff?Uu(y.toolUseId,x.diff.text,a):{additions:0,deletions:0};for(const A of x.paths){const E=i.get(A)??{path:A,reads:0,edits:0,creates:0,deletes:0,action:b,anchorToolUseId:y.toolUseId,additions:0,deletions:0,failed:!1};b==="read"?E.reads++:b==="edit"?E.edits++:b==="create"?E.creates++:E.deletes++,Wt[b]>Wt[E.action]&&(E.action=b,E.anchorToolUseId=y.toolUseId),b!=="read"&&(E.additions+=w.additions,E.deletions+=w.deletions),x.failed&&(E.failed=!0),i.set(A,E)}}switch(f.kind){case"error":N(Jt(f.key)),p="error";break;case"cancelled":p="stopped";break;case"turn-done":_=f.durationMs>0?f.durationMs:_,f.ok?p=p==="running"?"ok":p:p==="running"&&(p="error",N(Jt(f.key)));break}}return{key:s.key,turnId:"turnId"in s?s.turnId:null,items:e,prompt:g,at:s.at,files:[...i.values()].sort((f,y)=>Wt[y.action]-Wt[f.action]||y.additions+y.deletions-(f.additions+f.deletions)||f.path.localeCompare(y.path)),toolCount:o,commandCount:c,errorCount:u,firstErrorAnchor:d,status:p,durationMs:_}}function Ku(e){if(e.length===0)return"";const t={edited:0,created:0,deleted:0,read:0};for(const a of e)a.action==="edit"?t.edited++:a.action==="create"?t.created++:a.action==="delete"?t.deleted++:t.read++;const n=[];return t.created&&n.push(`${t.created} created`),t.edited&&n.push(`${t.edited} edited`),t.deleted&&n.push(`${t.deleted} deleted`),t.read&&n.push(`${t.read} read`),n.join(", ")}const Vs=new WeakMap,Sn=4e3;function Yu(e,t){const n=t?.toolText.get(e.toolUseId);if(n!==void 0)return n;const a=[e.name];if(typeof e.input=="string")a.push(e.input.slice(0,Sn));else if(e.input)try{a.push(JSON.stringify(e.input).slice(0,Sn))}catch{}e.result&&a.push(e.result.output.slice(0,Sn));const s=a.join(`
|
|
9
|
-
`);return t&&e.result&&t.toolText.set(e.toolUseId,s),s}function Xu(e,t=null){const n=Vs.get(e);if(n!==void 0)return n;const a=[],s=o=>{switch(o.kind){case"user":case"assistant":case"thinking":a.push(o.text);break;case"error":a.push(o.message);break;case"tool":a.push(Yu(o,t));break;case"toolGroup":for(const c of o.items)s(c);break}};for(const o of e.items)s(o);const i=a.join(`
|
|
10
|
-
`);return Vs.set(e,i),i}const Ks=48;function Zu(e,t,n=null){const a=t.trim().toLowerCase();if(a.length===0)return[];const s=[];for(const i of e){const o=Xu(i,n),c=o.toLowerCase().indexOf(a);if(c===-1)continue;const u=Math.max(0,c-Ks),d=Math.min(o.length,c+a.length+Ks),p=`${u>0?"…":""}${o.slice(u,d).replace(/\s+/g," ").trim()}${d<o.length?"…":""}`;s.push({turnKey:i.key,snippet:p})}return s}function Qu(e,t=72){const n=e.prompt?.replace(/\s+/g," ").trim();return n?n.length>t?`${n.slice(0,t-1)}…`:n:e.toolCount>0?`${e.toolCount} tool call${e.toolCount===1?"":"s"}`:"Session note"}const Ju="_diff_6z1ga_30",ed="_visuallyHidden_6z1ga_46",td="_diffMulti_6z1ga_58",nd="_diffHead_6z1ga_60",sd="_diffPath_6z1ga_68",rd="_diffOldPath_6z1ga_83",ad="_diffStatus_6z1ga_101",od="_diffStats_6z1ga_110",id="_diffAdd_6z1ga_118",ld="_diffDel_6z1ga_119",cd="_diffNotice_6z1ga_121",ud="_diffEmpty_6z1ga_130",dd="_diffTable_6z1ga_136",hd="_diffNo_6z1ga_121",pd="_diffMarker_6z1ga_30",fd="_diffText_6z1ga_159",md="_diffCode_6z1ga_179",gd="_diffRow_add_6z1ga_181",_d="_diffRow_del_6z1ga_182",yd="_diffRow_context_6z1ga_183",xd="_diffHunkRow_6z1ga_185",kd="_diffHunkHead_6z1ga_192",bd="_diffMore_6z1ga_200",wd="_commandMore_6z1ga_201",Td="_activityMore_6z1ga_202",Sd="_diffUnanchored_6z1ga_221",Nd="_tok_plain_6z1ga_232",jd="_tok_comment_6z1ga_233",Ed="_tok_string_6z1ga_234",vd="_tok_number_6z1ga_235",Ad="_tok_keyword_6z1ga_236",Rd="_command_6z1ga_201",Cd="_commandLine_6z1ga_250",Id="_commandPrompt_6z1ga_257",$d="_commandText_6z1ga_264",Ld="_commandStatus_6z1ga_274",Md="_commandStatusText_6z1ga_282",Dd="_commandMeta_6z1ga_292",Pd="_commandPre_6z1ga_297",zd="_commandPending_6z1ga_309",Od="_activity_6z1ga_202",qd="_activityHead_6z1ga_327",Fd="_activityCount_6z1ga_336",Hd="_activityLabel_6z1ga_343",Bd="_activityBreakdown_6z1ga_350",Ud="_activityList_6z1ga_356",Wd="_activityRow_6z1ga_358",Gd="_activityRule_6z1ga_380",Vd="_activityVerb_6z1ga_375",Kd="_activityFailed_6z1ga_379",Yd="_activityPath_6z1ga_411",Xd="_activityName_6z1ga_419",Zd="_activityDir_6z1ga_420",Qd="_activityTimes_6z1ga_430",Jd="_activityDelta_6z1ga_431",eh="_activityAdd_6z1ga_439",th="_activityDel_6z1ga_431",nh="_nav_6z1ga_446",sh="_navSpacer_6z1ga_457",rh="_navOutlineButton_6z1ga_459",ah="_navChevron_6z1ga_473",oh="_navCount_6z1ga_475",ih="_navWord_6z1ga_481",lh="_navSearch_6z1ga_488",ch="_navSearchIcon_6z1ga_512",uh="_navMatches_6z1ga_525",dh="_navStep_6z1ga_532",hh="_navError_6z1ga_545",ph="_navErrorGlyph_6z1ga_563",fh="_outline_6z1ga_568",mh="_outlineEmpty_6z1ga_582",gh="_outlineList_6z1ga_587",_h="_outlineRow_6z1ga_588",yh="_outlineIndex_6z1ga_602",xh="_outlineBody_6z1ga_609",kh="_outlineTitle_6z1ga_610",bh="_outlineSnippet_6z1ga_617",wh="_outlineMeta_6z1ga_627",Th="_outlineStatus_6z1ga_631",v={diff:Ju,visuallyHidden:ed,diffMulti:td,diffHead:nd,diffPath:sd,diffOldPath:rd,diffStatus:ad,diffStats:od,diffAdd:id,diffDel:ld,diffNotice:cd,diffEmpty:ud,diffTable:dd,diffNo:hd,diffMarker:pd,diffText:fd,diffCode:md,diffRow_add:gd,diffRow_del:_d,diffRow_context:yd,diffHunkRow:xd,diffHunkHead:kd,diffMore:bd,commandMore:wd,activityMore:Td,diffUnanchored:Sd,tok_plain:Nd,tok_comment:jd,tok_string:Ed,tok_number:vd,tok_keyword:Ad,command:Rd,commandLine:Cd,commandPrompt:Id,commandText:$d,commandStatus:Ld,commandStatusText:Md,commandMeta:Dd,commandPre:Pd,commandPending:zd,activity:Od,activityHead:qd,activityCount:Fd,activityLabel:Hd,activityBreakdown:Bd,activityList:Ud,activityRow:Wd,activityRule:Gd,activityVerb:Vd,activityFailed:Kd,activityPath:Yd,activityName:Xd,activityDir:Zd,activityTimes:Qd,activityDelta:Jd,activityAdd:eh,activityDel:th,nav:nh,navSpacer:sh,navOutlineButton:rh,navChevron:ah,navCount:oh,navWord:ih,navSearch:lh,navSearchIcon:ch,navMatches:uh,navStep:dh,navError:hh,navErrorGlyph:ph,outline:fh,outlineEmpty:mh,outlineList:gh,outlineRow:_h,outlineIndex:yh,outlineBody:xh,outlineTitle:kh,outlineSnippet:bh,outlineMeta:wh,outlineStatus:Th},Ys=8,Xs={read:"read",edit:"edited",create:"created",delete:"deleted"};function Sh({files:e,onJump:t}){const[n,a]=m.useState(!1);if(e.length===0)return null;const s=n||e.length<=Ys?e:e.slice(0,Ys),i=e.length-s.length;return r.jsxs("section",{className:v.activity,"aria-label":"Files this turn touched",children:[r.jsxs("h3",{className:v.activityHead,children:[r.jsx("span",{className:v.activityCount,children:e.length}),r.jsxs("span",{className:v.activityLabel,children:["file",e.length===1?"":"s"]}),r.jsx("span",{className:v.activityBreakdown,children:Ku(e)})]}),r.jsx("ul",{className:v.activityList,children:s.map(o=>{const c=o.reads+o.edits+o.creates+o.deletes,u=`${Xs[o.action]} ${o.path}${c>1?`, ${c} calls`:""}${o.additions||o.deletions?`, +${o.additions} −${o.deletions}`:""}${o.failed?", a call on this file failed":""}`;return r.jsx("li",{children:r.jsxs("button",{type:"button",className:v.activityRow,"data-action":o.action,"data-failed":o.failed?"true":void 0,onClick:()=>t(o.anchorToolUseId),"aria-label":u,title:o.path,children:[r.jsx("span",{className:v.activityRule,"aria-hidden":"true"}),r.jsx("span",{className:v.activityVerb,children:Xs[o.action]}),r.jsxs("span",{className:v.activityPath,children:[r.jsx("span",{className:v.activityName,children:vu(o.path)}),r.jsx("span",{className:v.activityDir,children:Au(o.path)})]}),o.failed?r.jsx("span",{className:v.activityFailed,"aria-hidden":"true",children:"! failed"}):null,c>1?r.jsxs("span",{className:v.activityTimes,children:["×",c]}):null,r.jsxs("span",{className:v.activityDelta,children:[o.additions>0?r.jsxs("span",{className:v.activityAdd,children:["+",o.additions]}):null,o.deletions>0?r.jsxs("span",{className:v.activityDel,children:["−",o.deletions]}):null]})]})},o.path)})}),i>0||n?r.jsx("button",{type:"button",className:v.activityMore,"aria-expanded":n,onClick:()=>a(o=>!o),children:n?"Show fewer files":`Show ${i} more file${i===1?"":"s"}`}):null]})}const Zs={running:"•",ok:"",error:"!",stopped:"×"},Nh={running:"running",ok:"completed",error:"failed",stopped:"stopped"};function jh(e){const{turns:t,query:n,onQuery:a,matches:s,matchIndex:i,onStepMatch:o,errorCount:c,onJumpError:u,onJumpTurn:d,focusToken:p}=e,[_,g]=m.useState(!1),N=m.useRef(null),f=m.useId(),y=m.useId(),x=n.trim().length>0;m.useEffect(()=>{p>0&&(N.current?.focus(),N.current?.select())},[p]),m.useEffect(()=>{if(!_)return;const A=E=>{E.key==="Escape"&&g(!1)};return document.addEventListener("keydown",A),()=>document.removeEventListener("keydown",A)},[_]);const b=x?t.filter(A=>s.some(E=>E.turnKey===A.key)):t,w=A=>s.find(E=>E.turnKey===A)?.snippet??null;return r.jsxs("div",{className:v.nav,children:[r.jsxs("button",{type:"button",className:v.navOutlineButton,"aria-expanded":_,"aria-controls":_?f:void 0,onClick:()=>g(A=>!A),children:[r.jsx("span",{className:v.navChevron,"data-open":_?"true":void 0,"aria-hidden":"true",children:r.jsx(so,{size:12})}),r.jsx("span",{className:v.navCount,children:t.length}),r.jsxs("span",{className:v.navWord,children:["turn",t.length===1?"":"s"]})]}),r.jsxs("label",{className:v.navSearch,htmlFor:y,children:[r.jsx("span",{className:v.navSearchIcon,"aria-hidden":"true",children:r.jsx($r,{size:12})}),r.jsx("span",{className:"visually-hidden",children:"Search this chat"}),r.jsx("input",{ref:N,id:y,type:"search",value:n,placeholder:"Find in chat",autoComplete:"off",onChange:A=>a(A.target.value),onKeyDown:A=>{A.key==="Enter"?(A.preventDefault(),o(A.shiftKey?-1:1)):A.key==="Escape"&&(A.preventDefault(),a(""))}})]}),x?r.jsx("span",{className:v.navMatches,role:"status",children:s.length===0?"no matches":`${i<0?1:i+1} of ${s.length}`}):null,x&&s.length>0?r.jsxs("span",{className:v.navStep,children:[r.jsx("button",{type:"button",onClick:()=>o(-1),"aria-label":"Previous match",title:"Previous match (Shift+Enter)",children:"↑"}),r.jsx("button",{type:"button",onClick:()=>o(1),"aria-label":"Next match",title:"Next match (Enter)",children:"↓"})]}):null,r.jsx("span",{className:v.navSpacer}),c>0?r.jsxs("button",{type:"button",className:v.navError,onClick:u,children:[r.jsx("span",{className:v.navErrorGlyph,"aria-hidden":"true",children:"!"}),c," error",c===1?"":"s",r.jsx("span",{className:"visually-hidden",children:" — jump to the first one"})]}):null,_?r.jsx("div",{id:f,className:v.outline,role:"group","aria-label":"Turns in this chat",children:b.length===0?r.jsxs("p",{className:v.outlineEmpty,children:["No turn matches “",n.trim(),"”."]}):r.jsx("ol",{className:v.outlineList,children:b.map(A=>{const E=t.indexOf(A)+1,P=w(A.key);return r.jsx("li",{children:r.jsxs("button",{type:"button",className:v.outlineRow,"data-status":A.status,onClick:()=>{g(!1),d(A.key)},children:[r.jsx("span",{className:v.outlineIndex,children:E}),r.jsxs("span",{className:v.outlineBody,children:[r.jsx("span",{className:v.outlineTitle,children:Qu(A)}),P?r.jsx("span",{className:v.outlineSnippet,children:P}):null,r.jsxs("span",{className:v.outlineMeta,children:[A.toolCount>0?`${A.toolCount} tool${A.toolCount===1?"":"s"}`:"no tools",A.files.length>0?` · ${A.files.length} file${A.files.length===1?"":"s"}`:"",A.status!=="ok"?` · ${Nh[A.status]}`:""]})]}),Zs[A.status]?r.jsx("span",{className:v.outlineStatus,"aria-hidden":"true",children:Zs[A.status]}):null]})},A.key)})})}):null]})}/*! @license DOMPurify 3.4.15 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.15/LICENSE */function Qs(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function Eh(e){if(Array.isArray(e))return e}function vh(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var a,s,i,o,c=[],u=!0,d=!1;try{if(i=(n=n.call(e)).next,t!==0)for(;!(u=(a=i.call(n)).done)&&(c.push(a.value),c.length!==t);u=!0);}catch(p){d=!0,s=p}finally{try{if(!u&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(d)throw s}}return c}}function Ah(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
11
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Rh(e,t){return Eh(e)||vh(e,t)||Ch(e,t)||Ah()}function Ch(e,t){if(e){if(typeof e=="string")return Qs(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Qs(e,t):void 0}}const Jr=Object.entries,Js=Object.setPrototypeOf,Ih=Object.isFrozen,$h=Object.getPrototypeOf,Lh=Object.getOwnPropertyDescriptor;let ge=Object.freeze,xe=Object.seal,ct=Object.create,ea=typeof Reflect<"u"&&Reflect,Pn=ea.apply,zn=ea.construct;ge||(ge=function(t){return t});xe||(xe=function(t){return t});Pn||(Pn=function(t,n){for(var a=arguments.length,s=new Array(a>2?a-2:0),i=2;i<a;i++)s[i-2]=arguments[i];return t.apply(n,s)});zn||(zn=function(t){for(var n=arguments.length,a=new Array(n>1?n-1:0),s=1;s<n;s++)a[s-1]=arguments[s];return new t(...a)});const Xe=fe(Array.prototype.forEach),Mh=fe(Array.prototype.lastIndexOf),er=fe(Array.prototype.pop),kt=fe(Array.prototype.push),Dh=fe(Array.prototype.splice),ut=Array.isArray,Nt=fe(String.prototype.toLowerCase),Nn=fe(String.prototype.toString),tr=fe(String.prototype.match),bt=fe(String.prototype.replace),nr=fe(String.prototype.indexOf),Ph=fe(String.prototype.trim),zh=fe(Number.prototype.toString),Oh=fe(Boolean.prototype.toString),sr=typeof BigInt>"u"?null:fe(BigInt.prototype.toString),rr=typeof Symbol>"u"?null:fe(Symbol.prototype.toString),Ae=fe(Object.prototype.hasOwnProperty),wt=fe(Object.prototype.toString),we=fe(RegExp.prototype.test),Ye=qh(TypeError);function fe(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);for(var n=arguments.length,a=new Array(n>1?n-1:0),s=1;s<n;s++)a[s-1]=arguments[s];return Pn(e,t,a)}}function qh(e){return function(){for(var t=arguments.length,n=new Array(t),a=0;a<t;a++)n[a]=arguments[a];return zn(e,n)}}function Y(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Nt;if(Js&&Js(e,null),!ut(t))return e;let a=t.length;for(;a--;){let s=t[a];if(typeof s=="string"){const i=n(s);i!==s&&(Ih(t)||(t[a]=i),s=i)}e[s]=!0}return e}function Fh(e){for(let t=0;t<e.length;t++)Ae(e,t)||(e[t]=null);return e}function Ce(e){const t=ct(null);for(const a of Jr(e)){var n=Rh(a,2);const s=n[0],i=n[1];Ae(e,s)&&(ut(i)?t[s]=Fh(i):i&&typeof i=="object"&&i.constructor===Object?t[s]=Ce(i):t[s]=i)}return t}function Hh(e){switch(typeof e){case"string":return e;case"number":return zh(e);case"boolean":return Oh(e);case"bigint":return sr?sr(e):"0";case"symbol":return rr?rr(e):"Symbol()";case"undefined":return wt(e);case"function":case"object":{if(e===null)return wt(e);const t=e,n=$e(t,"toString");if(typeof n=="function"){const a=n(t);return typeof a=="string"?a:wt(a)}return wt(e)}default:return wt(e)}}function $e(e,t){for(;e!==null;){const a=Lh(e,t);if(a){if(a.get)return fe(a.get);if(typeof a.value=="function")return fe(a.value)}e=$h(e)}function n(){return null}return n}function Bh(e){try{return we(e,""),!0}catch{return!1}}const ar=ge(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","shadow","slot","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),jn=ge(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","enterkeyhint","exportparts","filter","font","g","glyph","glyphref","hkern","image","inputmode","line","lineargradient","marker","mask","metadata","mpath","part","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),En=ge(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),Uh=ge(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),vn=ge(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),Wh=ge(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),or=ge(["#text"]),ir=ge(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","command","commandfor","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","exportparts","face","for","headers","height","hidden","high","href","hreflang","id","inert","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","part","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","slot","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns"]),An=ge(["accent-height","accumulate","additive","alignment-baseline","amplitude","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dominant-baseline","dur","edgemode","elevation","end","exponent","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","intercept","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","mask-type","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","pointer-events","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","slope","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-orientation","text-rendering","textlength","type","u1","u2","unicode","values","vector-effect","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),lr=ge(["accent","accentunder","align","bevelled","close","columnalign","columnlines","columnspacing","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lquote","lspace","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),Gt=ge(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),Gh=xe(/{{[\w\W]*|^[\w\W]*}}/g),Vh=xe(/<%[\w\W]*|^[\w\W]*%>/g),Kh=xe(/\${[\w\W]*/g),Yh=xe(/^data-[\-\w.\u00B7-\uFFFF]+$/),Xh=xe(/^aria-[\-\w]+$/),cr=xe(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),Zh=xe(/^(?:\w+script|data):/i),Qh=xe(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Jh=xe(/^html$/i),ep=xe(/^[a-z][.\w]*(-[.\w]+)+$/i),ur=xe(/<[/\w!]/g),dr=xe(/<[/\w]/g),tp=xe(/<\/no(script|embed|frames)/i),np=xe(/\/>/i),Re={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},ta=["style","script","xmp","iframe","noembed","noframes","plaintext","noscript"],sp=ge(Y({},ta)),rp=(function(){const e={};return Xe(ta,t=>{e[t]=xe(new RegExp("</"+t+"(?=[\\t\\n\\f\\r />])","i"))}),ge(e)})(),ap=function(){return typeof window>"u"?null:window},op=function(t,n){if(typeof t!="object"||typeof t.createPolicy!="function")return null;let a=null;const s="data-tt-policy-suffix";n&&n.hasAttribute(s)&&(a=n.getAttribute(s));const i="dompurify"+(a?"#"+a:"");try{return t.createPolicy(i,{createHTML(o){return o},createScriptURL(o){return o}})}catch{return console.warn("TrustedTypes policy "+i+" could not be created."),null}},hr=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},We=function(t,n,a,s){return Ae(t,n)&&ut(t[n])?Y(s.base?Ce(s.base):{},t[n],s.transform):a},Rn=function(t,n,a){const s=Ae(t,n)?t[n]:void 0;return s&&typeof s=="object"?Ce(s):a()};function na(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:ap();const t=T=>na(T);if(t.version="3.4.15",t.removed=[],!e||!e.document||e.document.nodeType!==Re.document||!e.Element)return t.isSupported=!1,t;let n=e.document;const a=n,s=a.currentScript;e.DocumentFragment;const i=e.HTMLTemplateElement,o=e.Node,c=e.Element,u=e.NodeFilter,d=e.NamedNodeMap;d===void 0&&(e.NamedNodeMap||e.MozNamedAttrMap),e.HTMLFormElement;const p=e.DOMParser,_=e.trustedTypes,g=c.prototype,N=$e(g,"cloneNode"),f=$e(g,"remove"),y=$e(g,"removeAttributeNode"),x=$e(g,"nextSibling"),b=$e(g,"childNodes"),w=$e(g,"parentNode"),A=$e(g,"shadowRoot"),E=$e(g,"attributes"),P=o&&o.prototype?$e(o.prototype,"nodeType"):null,W=o&&o.prototype?$e(o.prototype,"nodeName"):null,me=o&&o.prototype?$e(o.prototype,"ownerDocument"):null,oe=function(l){return P?P(l):l.nodeType},Q=function(l){return W?W(l):l.nodeName};if(typeof i=="function"){const T=n.createElement("template");T.content&&T.content.ownerDocument&&(n=T.content.ownerDocument)}let G,de="",H,ie=!1,J=0;const he=function(){if(J>0)throw Ye('A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.')},se=function(l){he(),J++;try{return G.createHTML(l)}finally{J--}},Z=function(l){he(),J++;try{return G.createScriptURL(l)}finally{J--}},B=function(){return ie||(H=op(_,s),ie=!0),H},ee=n,S=ee.implementation,I=ee.createNodeIterator,D=ee.createDocumentFragment,ke=ee.getElementsByTagName,_e=a.importNode;let K=hr();t.isSupported=typeof Jr=="function"&&typeof w=="function"&&S&&S.createHTMLDocument!==void 0;const Fe=Gh,et=Vh,ft=Kh,z=Yh,V=Xh,be=Zh,R=Qh,L=ep;let le=cr,q=null;const Te=Y({},[...ar,...jn,...En,...vn,...or]);let te=null;const tt=Y({},[...ir,...An,...lr,...Gt]);let Pe=Object.seal(ct(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),mt=null,ns=null;const He=Object.seal(ct(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}}));let ss=!0,ln=!0,rs=!1,as=!0,Be=!1,Ge=!0,Ve=!1,cn=!1,Ct=null,It=null,un=!1,nt=!1,$t=!1,Lt=!1,os=!0,is=!1;const ls="user-content-";let dn=!0,hn=!1,st={},rt=null;const cs=Y({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","selectedcontent","style","svg","template","thead","title","video","xmp"]);let us=null;const ds=Y({},["audio","video","img","source","image","track"]);let hs=null;const ps=Y({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Mt="http://www.w3.org/1998/Math/MathML",Dt="http://www.w3.org/2000/svg",ze="http://www.w3.org/1999/xhtml";let at=ze,pn=!1,fn=null;const _a=Y({},[Mt,Dt,ze],Nn),fs=ge(["mi","mo","mn","ms","mtext"]);let mn=Y({},fs);const ms=ge(["annotation-xml"]);let gn=Y({},ms);const ya=Y({},["title","style","font","a","script"]);let gt=null;const xa=["application/xhtml+xml","text/html"],ka="text/html";let pe=null,ot=null;const ba=n.createElement("form"),gs=function(l){return l instanceof RegExp||l instanceof Function},_n=function(){let l=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(ot&&ot===l)return;(!l||typeof l!="object")&&(l={}),l=Ce(l),gt=xa.indexOf(l.PARSER_MEDIA_TYPE)===-1?ka:l.PARSER_MEDIA_TYPE,pe=gt==="application/xhtml+xml"?Nn:Nt,q=We(l,"ALLOWED_TAGS",Te,{transform:pe}),te=We(l,"ALLOWED_ATTR",tt,{transform:pe}),fn=We(l,"ALLOWED_NAMESPACES",_a,{transform:Nn}),hs=We(l,"ADD_URI_SAFE_ATTR",ps,{transform:pe,base:ps}),us=We(l,"ADD_DATA_URI_TAGS",ds,{transform:pe,base:ds}),rt=We(l,"FORBID_CONTENTS",cs,{transform:pe}),mt=We(l,"FORBID_TAGS",Ce({}),{transform:pe}),ns=We(l,"FORBID_ATTR",Ce({}),{transform:pe}),st=Ae(l,"USE_PROFILES")?l.USE_PROFILES&&typeof l.USE_PROFILES=="object"?Ce(l.USE_PROFILES):l.USE_PROFILES:!1,ss=l.ALLOW_ARIA_ATTR!==!1,ln=l.ALLOW_DATA_ATTR!==!1,rs=l.ALLOW_UNKNOWN_PROTOCOLS||!1,as=l.ALLOW_SELF_CLOSE_IN_ATTR!==!1,Be=l.SAFE_FOR_TEMPLATES||!1,Ge=l.SAFE_FOR_XML!==!1,Ve=l.WHOLE_DOCUMENT||!1,nt=l.RETURN_DOM||!1,$t=l.RETURN_DOM_FRAGMENT||!1,Lt=l.RETURN_TRUSTED_TYPE||!1,un=l.FORCE_BODY||!1,os=l.SANITIZE_DOM!==!1,is=l.SANITIZE_NAMED_PROPS||!1,dn=l.KEEP_CONTENT!==!1,hn=l.IN_PLACE||!1,le=Bh(l.ALLOWED_URI_REGEXP)?l.ALLOWED_URI_REGEXP:cr,at=typeof l.NAMESPACE=="string"?l.NAMESPACE:ze,mn=Rn(l,"MATHML_TEXT_INTEGRATION_POINTS",()=>Y({},fs)),gn=Rn(l,"HTML_INTEGRATION_POINTS",()=>Y({},ms));const h=Rn(l,"CUSTOM_ELEMENT_HANDLING",()=>ct(null));if(Pe=ct(null),Ae(h,"tagNameCheck")&&gs(h.tagNameCheck)&&(Pe.tagNameCheck=h.tagNameCheck),Ae(h,"attributeNameCheck")&&gs(h.attributeNameCheck)&&(Pe.attributeNameCheck=h.attributeNameCheck),Ae(h,"allowCustomizedBuiltInElements")&&typeof h.allowCustomizedBuiltInElements=="boolean"&&(Pe.allowCustomizedBuiltInElements=h.allowCustomizedBuiltInElements),xe(Pe),Be&&(ln=!1),$t&&(nt=!0),st&&(q=Y({},or),te=ct(null),st.html===!0&&(Y(q,ar),Y(te,ir)),st.svg===!0&&(Y(q,jn),Y(te,An),Y(te,Gt)),st.svgFilters===!0&&(Y(q,En),Y(te,An),Y(te,Gt)),st.mathMl===!0&&(Y(q,vn),Y(te,lr),Y(te,Gt))),He.tagCheck=null,He.attributeCheck=null,Ae(l,"ADD_TAGS")&&(typeof l.ADD_TAGS=="function"?He.tagCheck=l.ADD_TAGS:ut(l.ADD_TAGS)&&(q===Te&&(q=Ce(q)),Y(q,l.ADD_TAGS,pe))),Ae(l,"ADD_ATTR")&&(typeof l.ADD_ATTR=="function"?He.attributeCheck=l.ADD_ATTR:ut(l.ADD_ATTR)&&(te===tt&&(te=Ce(te)),Y(te,l.ADD_ATTR,pe))),Ae(l,"ADD_FORBID_CONTENTS")&&ut(l.ADD_FORBID_CONTENTS)&&(rt===cs&&(rt=Ce(rt)),Y(rt,l.ADD_FORBID_CONTENTS,pe)),dn&&(q["#text"]=!0),Ve&&Y(q,["html","head","body"]),q.table&&(Y(q,["tbody"]),delete mt.tbody),l.TRUSTED_TYPES_POLICY){if(typeof l.TRUSTED_TYPES_POLICY.createHTML!="function")throw Ye('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof l.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw Ye('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');const k=G;G=l.TRUSTED_TYPES_POLICY;try{de=se("")}catch(C){throw G=k,C}}else l.TRUSTED_TYPES_POLICY===null?(G=void 0,de=""):(G===void 0&&(G=B()),G&&typeof de=="string"&&(de=se("")));ge&&ge(l),ot=l},_s=Y({},[...jn,...En,...Uh]),ys=Y({},[...vn,...Wh]),wa=function(l,h,k){return h.namespaceURI===ze?l==="svg":h.namespaceURI===Mt?l==="svg"&&(k==="annotation-xml"||mn[k]):!!_s[l]},Ta=function(l,h,k){return h.namespaceURI===ze?l==="math":h.namespaceURI===Dt?l==="math"&&gn[k]:!!ys[l]},Sa=function(l,h,k){return h.namespaceURI===Dt&&!gn[k]||h.namespaceURI===Mt&&!mn[k]?!1:!ys[l]&&(ya[l]||!_s[l])},Na=function(l){let h=w(l);(!h||!h.tagName)&&(h={namespaceURI:at,tagName:"template"});const k=Nt(l.tagName),C=Nt(h.tagName);return fn[l.namespaceURI]?l.namespaceURI===Dt?wa(k,h,C):l.namespaceURI===Mt?Ta(k,h,C):l.namespaceURI===ze?Sa(k,h,C):!!(gt==="application/xhtml+xml"&&fn[l.namespaceURI]):!1},Ue=function(l){kt(t.removed,{element:l});try{w(l).removeChild(l)}catch{if(f(l),!w(l))throw Ye("a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place")}},xs=function(l,h,k){try{y(l,h)}catch{try{l.removeAttribute(k)}catch{}}},Pt=function(l){zt(l);const h=b(l);if(h){const C=[];Xe(h,$=>{kt(C,$)}),Xe(C,$=>{try{f($)}catch{}})}const k=E(l);if(k)for(let C=k.length-1;C>=0;--C){const $=k[C],O=$&&$.name;typeof O=="string"&&xs(l,$,O)}},Ke=function(l,h,k){if(!k)try{k=h.getAttributeNode(l)}catch{k=null}kt(t.removed,{attribute:k||null,from:h});try{k?y(h,k):h.removeAttribute(l)}catch{try{h.removeAttribute(l)}catch{}}if(l==="is")if(nt||$t)try{Ue(h)}catch{}else try{h.setAttribute(l,"")}catch{}},ja=function(l){const h=E(l);if(h)for(let k=h.length-1;k>=0;--k){const C=h[k],$=C&&C.name;typeof $!="string"||te[pe($)]||xs(l,C,$)}},zt=function(l){const h=[l];for(;h.length>0;){const k=h.pop();oe(k)===Re.element&&ja(k);const $=b(k);if($)for(let O=$.length-1;O>=0;--O)h.push($[O])}},ks=function(l,h){return Ge?l==="patchsrc"?!0:l==="for"&&h!=="label"&&h!=="output":!1},Ea=function(l){if(!Ge)return;const h=[l];for(;h.length>0;){const k=h.pop(),C=oe(k);if(C===Re.processingInstruction||C===Re.comment&&we(dr,k.data)){try{f(k)}catch{}continue}if(C===Re.element){const O=k,re=pe(Q(k));try{O.hasAttribute&&O.hasAttribute("patchsrc")&&O.removeAttribute("patchsrc"),O.hasAttribute&&O.hasAttribute("for")&&ks("for",re)&&O.removeAttribute("for")}catch{}}const $=b(k);if($)for(let O=$.length-1;O>=0;--O)h.push($[O])}},bs=function(l){let h=null,k=null;if(un)l="<remove></remove>"+l;else{const O=tr(l,/^[\r\n\t ]+/);k=O&&O[0]}gt==="application/xhtml+xml"&&at===ze&&(l='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+l+"</body></html>");const C=G?se(l):l;if(at===ze)try{h=new p().parseFromString(C,gt)}catch{}if(!h||!h.documentElement){h=S.createDocument(at,"template",null);try{h.documentElement.innerHTML=pn?de:C}catch{}}const $=h.body||h.documentElement;return l&&k&&$.insertBefore(n.createTextNode(k),$.childNodes[0]||null),at===ze?ke.call(h,Ve?"html":"body")[0]:Ve?h.documentElement:$},ws=function(l){const h=me?me(l):l.ownerDocument;return I.call(h||l,l,u.SHOW_ELEMENT|u.SHOW_COMMENT|u.SHOW_TEXT|u.SHOW_PROCESSING_INSTRUCTION|u.SHOW_CDATA_SECTION,null)},Ot=function(l){return l=bt(l,Fe," "),l=bt(l,et," "),l=bt(l,ft," "),l},yn=function(l){var h;l.normalize();const k=me?me(l):l.ownerDocument,C=I.call(k||l,l,u.SHOW_TEXT|u.SHOW_COMMENT|u.SHOW_CDATA_SECTION|u.SHOW_PROCESSING_INSTRUCTION,null);let $=C.nextNode();for(;$;)$.data=Ot($.data),$=C.nextNode();const O=(h=l.querySelectorAll)===null||h===void 0?void 0:h.call(l,"template");O&&Xe(O,re=>{it(re.content)&&yn(re.content)})},qt=function(l){const h=W?W(l):null;return typeof h!="string"||pe(h)!=="form"?!1:typeof l.nodeName!="string"||typeof l.textContent!="string"||typeof l.removeChild!="function"||l.attributes!==E(l)||typeof l.removeAttribute!="function"||typeof l.removeAttributeNode!="function"||typeof l.getAttributeNode!="function"||typeof l.setAttribute!="function"||typeof l.namespaceURI!="string"||typeof l.insertBefore!="function"||typeof l.hasChildNodes!="function"||l.nodeType!==P(l)||l.childNodes!==b(l)},it=function(l){if(!P||typeof l!="object"||l===null)return!1;try{return P(l)===Re.documentFragment}catch{return!1}},_t=function(l){if(!P||typeof l!="object"||l===null)return!1;try{return typeof P(l)=="number"}catch{return!1}};function Oe(T,l,h){T.length!==0&&Xe(T,k=>{k.call(t,l,h,ot)})}const va=function(l,h){return!!(Ge&&l.hasChildNodes()&&!_t(l.firstElementChild)&&we(ur,l.textContent)&&we(ur,l.innerHTML)||Ge&&l.namespaceURI===ze&&sp[h]&&(_t(l.firstElementChild)||typeof l.textContent=="string"&&we(rp[h],l.textContent))||l.nodeType===Re.processingInstruction||Ge&&l.nodeType===Re.comment&&we(dr,l.data))},Ft=function(l,h){if(l instanceof RegExp)return we(l,h);if(l instanceof Function){for(var k=arguments.length,C=new Array(k>2?k-2:0),$=2;$<k;$++)C[$-2]=arguments[$];return!!l(h,...C)}return!1},Aa=function(l,h,k){if(!mt[h]&&Es(h)&&Ft(Pe.tagNameCheck,h))return!1;if(dn&&!rt[h]){const C=w(l),$=b(l);if($&&C){const O=$.length;for(let re=O-1;re>=0;--re){const ue=l===k?N($[re],!0):$[re];C.insertBefore(ue,x(l))}}}return Ue(l),!0},Ts=function(l,h,k,C){return l.length===0?h:h===k||h===C?Ce(h):h},Ss=function(l,h){return l===h||w(l)!==null?!1:(hn&&zt(l),!0)},Ns=function(l,h){if(Oe(K.beforeSanitizeElements,l,null),Ss(l,h))return!0;if(qt(l))return Ue(l),!0;const k=pe(Q(l));if(q=Ts(K.uponSanitizeElement,q,Te,Ct),Oe(K.uponSanitizeElement,l,{tagName:k,allowedTags:q}),Ss(l,h))return!0;if(va(l,k))return Ue(l),!0;if(mt[k]||!(He.tagCheck instanceof Function&&He.tagCheck(k))&&!q[k]){const $=Aa(l,k,h);return $===!1&&Oe(K.afterSanitizeElements,l,null),$}if(oe(l)===Re.element&&!Na(l)||(k==="noscript"||k==="noembed"||k==="noframes")&&we(tp,l.innerHTML))return Ue(l),!0;if(Be&&l.nodeType===Re.text){const $=Ot(l.textContent);l.textContent!==$&&(kt(t.removed,{element:l.cloneNode()}),l.textContent=$)}return Oe(K.afterSanitizeElements,l,null),!1},js=function(l,h,k){if(ns[h]||ks(h,l)||os&&(h==="id"||h==="name")&&(k in n||k in ba))return!1;const C=te[h]||He.attributeCheck instanceof Function&&He.attributeCheck(h,l);return ln&&we(z,h)||ss&&we(V,h)?!0:C?hs[h]||we(le,bt(k,R,""))||(h==="src"||h==="xlink:href"||h==="href")&&l!=="script"&&nr(k,"data:")===0&&us[l]||rs&&!we(be,bt(k,R,""))?!0:!k:Es(l)&&Ft(Pe.tagNameCheck,l)&&Ft(Pe.attributeNameCheck,h,l)||h==="is"&&Pe.allowCustomizedBuiltInElements&&Ft(Pe.tagNameCheck,k)},Ra=Y({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),Es=function(l){return!Ra[Nt(l)]&&we(L,l)},Ca=function(l,h,k,C){if(G&&typeof _=="object"&&typeof _.getAttributeType=="function"&&!k)switch(_.getAttributeType(l,h)){case"TrustedHTML":return se(C);case"TrustedScriptURL":return Z(C)}return C},Ia=function(l,h,k,C){try{return k?l.setAttributeNS(k,h,C):l.setAttribute(h,C),qt(l)?(Ue(l),!1):!0}catch{return Ke(h,l),!1}},vs=function(l){Oe(K.beforeSanitizeAttributes,l,null);const h=l.attributes;if(!h||qt(l))return;te=Ts(K.uponSanitizeAttribute,te,tt,It);const k={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:te,forceKeepAttr:void 0};let C=h.length;const $=pe(l.nodeName);for(;C--;){const O=h[C],re=O.name,ue=O.namespaceURI,Ee=O.value,ve=pe(re),kn=Ee;let Se=re==="value"?kn:Ph(kn),As=!1;if(k.attrName=ve,k.attrValue=Se,k.keepAttr=!0,k.forceKeepAttr=void 0,Oe(K.uponSanitizeAttribute,l,k),Se=k.attrValue,is&&(ve==="id"||ve==="name")&&nr(Se,ls)!==0&&(Ke(re,l,O),Se=ls+Se,As=!0),Ge&&we(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,Se)){Ke(re,l,O);continue}if(ve==="attributename"&&tr(Se,"href")){Ke(re,l,O);continue}if(!k.forceKeepAttr){if(!k.keepAttr){Ke(re,l,O);continue}if(!as&&we(np,Se)){Ke(re,l,O);continue}if(Be&&(Se=Ot(Se)),!js($,ve,Se)){Ke(re,l,O);continue}Se=Ca($,ve,ue,Se),Se!==kn&&Ia(l,re,ue,Se)&&As&&er(t.removed)}}Oe(K.afterSanitizeAttributes,l,null)},Ht=function(l){let h=null;const k=ws(l);for(Oe(K.beforeSanitizeShadowDOM,l,null);h=k.nextNode();)if(Oe(K.uponSanitizeShadowNode,h,null),Ns(h,l),vs(h),it(h.content)&&Ht(h.content),oe(h)===Re.element){const C=A(h);it(C)&&(xn(C),Ht(C))}Oe(K.afterSanitizeShadowDOM,l,null)},xn=function(l){const h=[{node:l,shadow:null}];for(;h.length>0;){const k=h.pop();if(k.shadow){Ht(k.shadow);continue}const C=k.node,O=oe(C)===Re.element,re=b(C);if(re)for(let ue=re.length-1;ue>=0;--ue)h.push({node:re[ue],shadow:null});if(O){const ue=W?W(C):null;if(typeof ue=="string"&&pe(ue)==="template"){const Ee=C.content;it(Ee)&&h.push({node:Ee,shadow:null})}}if(O){const ue=A(C);it(ue)&&h.push({node:null,shadow:ue},{node:ue,shadow:null})}}};return t.sanitize=function(T){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},h=null,k=null,C=null,$=null;if(pn=!T,pn&&(T="<!-->"),typeof T!="string"&&!_t(T)&&(T=Hh(T),typeof T!="string"))throw Ye("dirty is not a string, aborting");if(!t.isSupported)return T;cn?(q=Ct,te=It):_n(l),(K.uponSanitizeElement.length>0||K.uponSanitizeAttribute.length>0)&&(q=Ce(q)),K.uponSanitizeAttribute.length>0&&(te=Ce(te)),t.removed=[];const O=hn&&typeof T!="string"&&_t(T);if(O){Ea(T);const Ee=Q(T);if(typeof Ee=="string"){const ve=pe(Ee);if(!q[ve]||mt[ve])throw Pt(T),Ye("root node is forbidden and cannot be sanitized in-place")}if(qt(T))throw Pt(T),Ye("root node is clobbered and cannot be sanitized in-place");try{xn(T)}catch(ve){throw Pt(T),ve}}else if(_t(T))h=bs("<!---->"),k=h.ownerDocument.importNode(T,!0),k.nodeType===Re.element&&k.nodeName==="BODY"||k.nodeName==="HTML"?h=k:h.appendChild(k),xn(h);else{if(!nt&&!Be&&!Ve&&T.indexOf("<")===-1)return G&&Lt?se(T):T;if(h=bs(T),!h)return nt?null:Lt?de:""}h&&un&&Ue(h.firstChild);const re=O?T:h;try{const Ee=ws(re);for(;C=Ee.nextNode();)Ns(C,re),vs(C),it(C.content)&&Ht(C.content)}catch(Ee){throw O&&(Pt(T),Xe(t.removed,ve=>{ve.element&&zt(ve.element)})),Ee}if(O)return Xe(t.removed,Ee=>{Ee.element&&zt(Ee.element)}),Be&&yn(T),T;if(nt){if(Be&&yn(h),$t)for($=D.call(h.ownerDocument);h.firstChild;)$.appendChild(h.firstChild);else $=h;return(te.shadowroot||te.shadowrootmode)&&($=_e.call(a,$,!0)),$}let ue=Ve?h.outerHTML:h.innerHTML;return Ve&&q["!doctype"]&&h.ownerDocument&&h.ownerDocument.doctype&&h.ownerDocument.doctype.name&&we(Jh,h.ownerDocument.doctype.name)&&(ue="<!DOCTYPE "+h.ownerDocument.doctype.name+`>
|
|
12
|
-
`+ue),Be&&(ue=Ot(ue)),G&&Lt?se(ue):ue},t.setConfig=function(){let T=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};_n(T),cn=!0,Ct=q,It=te},t.clearConfig=function(){ot=null,cn=!1,Ct=null,It=null,G=H,de=""},t.isValidAttribute=function(T,l,h){ot||_n({});const k=pe(T),C=pe(l);return js(k,C,h)},t.addHook=function(T,l){typeof l=="function"&&Ae(K,T)&&kt(K[T],l)},t.removeHook=function(T,l){if(Ae(K,T)){if(l!==void 0){const h=Mh(K[T],l);return h===-1?void 0:Dh(K[T],h,1)[0]}return er(K[T])}},t.removeHooks=function(T){Ae(K,T)&&(K[T]=[])},t.removeAllHooks=function(){K=hr()},t}var sa=na();function Vn(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var Je=Vn();function ra(e){Je=e}var Et={exec:()=>null};function X(e,t=""){let n=typeof e=="string"?e:e.source,a={replace:(s,i)=>{let o=typeof i=="string"?i:i.source;return o=o.replace(je.caret,"$1"),n=n.replace(s,o),a},getRegex:()=>new RegExp(n,t)};return a}var ip=(()=>{try{return!!new RegExp("(?<=1)(?<!1)")}catch{return!1}})(),je={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>new RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}#`),htmlBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}<(?:[a-z].*>|!--)`,"i")},lp=/^(?:[ \t]*(?:\n|$))+/,cp=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,up=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,Rt=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,dp=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,Kn=/(?:[*+-]|\d{1,9}[.)])/,aa=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,oa=X(aa).replace(/bull/g,Kn).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),hp=X(aa).replace(/bull/g,Kn).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),Yn=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,pp=/^[^\n]+/,Xn=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,fp=X(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",Xn).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),mp=X(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,Kn).getRegex(),an="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",Zn=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,gp=X("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",Zn).replace("tag",an).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),ia=X(Yn).replace("hr",Rt).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",an).getRegex(),_p=X(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",ia).getRegex(),Qn={blockquote:_p,code:cp,def:fp,fences:up,heading:dp,hr:Rt,html:gp,lheading:oa,list:mp,newline:lp,paragraph:ia,table:Et,text:pp},pr=X("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",Rt).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",an).getRegex(),yp={...Qn,lheading:hp,table:pr,paragraph:X(Yn).replace("hr",Rt).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",pr).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",an).getRegex()},xp={...Qn,html:X(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",Zn).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:Et,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:X(Yn).replace("hr",Rt).replace("heading",` *#{1,6} *[^
|
|
13
|
-
]`).replace("lheading",oa).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},kp=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,bp=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,la=/^( {2,}|\\)\n(?!\s*$)/,wp=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,on=/[\p{P}\p{S}]/u,Jn=/[\s\p{P}\p{S}]/u,ca=/[^\s\p{P}\p{S}]/u,Tp=X(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,Jn).getRegex(),ua=/(?!~)[\p{P}\p{S}]/u,Sp=/(?!~)[\s\p{P}\p{S}]/u,Np=/(?:[^\s\p{P}\p{S}]|~)/u,jp=X(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",ip?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),da=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,Ep=X(da,"u").replace(/punct/g,on).getRegex(),vp=X(da,"u").replace(/punct/g,ua).getRegex(),ha="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",Ap=X(ha,"gu").replace(/notPunctSpace/g,ca).replace(/punctSpace/g,Jn).replace(/punct/g,on).getRegex(),Rp=X(ha,"gu").replace(/notPunctSpace/g,Np).replace(/punctSpace/g,Sp).replace(/punct/g,ua).getRegex(),Cp=X("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,ca).replace(/punctSpace/g,Jn).replace(/punct/g,on).getRegex(),Ip=X(/\\(punct)/,"gu").replace(/punct/g,on).getRegex(),$p=X(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),Lp=X(Zn).replace("(?:-->|$)","-->").getRegex(),Mp=X("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",Lp).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),en=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+[^`]*?`+(?!`)|[^\[\]\\`])*?/,Dp=X(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",en).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),pa=X(/^!?\[(label)\]\[(ref)\]/).replace("label",en).replace("ref",Xn).getRegex(),fa=X(/^!?\[(ref)\](?:\[\])?/).replace("ref",Xn).getRegex(),Pp=X("reflink|nolink(?!\\()","g").replace("reflink",pa).replace("nolink",fa).getRegex(),fr=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,es={_backpedal:Et,anyPunctuation:Ip,autolink:$p,blockSkip:jp,br:la,code:bp,del:Et,emStrongLDelim:Ep,emStrongRDelimAst:Ap,emStrongRDelimUnd:Cp,escape:kp,link:Dp,nolink:fa,punctuation:Tp,reflink:pa,reflinkSearch:Pp,tag:Mp,text:wp,url:Et},zp={...es,link:X(/^!?\[(label)\]\((.*?)\)/).replace("label",en).getRegex(),reflink:X(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",en).getRegex()},On={...es,emStrongRDelimAst:Rp,emStrongLDelim:vp,url:X(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",fr).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:X(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol",fr).getRegex()},Op={...On,br:X(la).replace("{2,}","*").getRegex(),text:X(On.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},Vt={normal:Qn,gfm:yp,pedantic:xp},Tt={normal:es,gfm:On,breaks:Op,pedantic:zp},qp={"&":"&","<":"<",">":">",'"':""","'":"'"},mr=e=>qp[e];function qe(e,t){if(t){if(je.escapeTest.test(e))return e.replace(je.escapeReplace,mr)}else if(je.escapeTestNoEncode.test(e))return e.replace(je.escapeReplaceNoEncode,mr);return e}function gr(e){try{e=encodeURI(e).replace(je.percentDecode,"%")}catch{return null}return e}function _r(e,t){let n=e.replace(je.findPipe,(i,o,c)=>{let u=!1,d=o;for(;--d>=0&&c[d]==="\\";)u=!u;return u?"|":" |"}),a=n.split(je.splitPipe),s=0;if(a[0].trim()||a.shift(),a.length>0&&!a.at(-1)?.trim()&&a.pop(),t)if(a.length>t)a.splice(t);else for(;a.length<t;)a.push("");for(;s<a.length;s++)a[s]=a[s].trim().replace(je.slashPipe,"|");return a}function St(e,t,n){let a=e.length;if(a===0)return"";let s=0;for(;s<a&&e.charAt(a-s-1)===t;)s++;return e.slice(0,a-s)}function Fp(e,t){if(e.indexOf(t[1])===-1)return-1;let n=0;for(let a=0;a<e.length;a++)if(e[a]==="\\")a++;else if(e[a]===t[0])n++;else if(e[a]===t[1]&&(n--,n<0))return a;return n>0?-2:-1}function yr(e,t,n,a,s){let i=t.href,o=t.title||null,c=e[1].replace(s.other.outputLinkReplace,"$1");a.state.inLink=!0;let u={type:e[0].charAt(0)==="!"?"image":"link",raw:n,href:i,title:o,text:c,tokens:a.inlineTokens(c)};return a.state.inLink=!1,u}function Hp(e,t,n){let a=e.match(n.other.indentCodeCompensation);if(a===null)return t;let s=a[1];return t.split(`
|
|
14
|
-
`).map(i=>{let o=i.match(n.other.beginningSpace);if(o===null)return i;let[c]=o;return c.length>=s.length?i.slice(s.length):i}).join(`
|
|
15
|
-
`)}var tn=class{options;rules;lexer;constructor(e){this.options=e||Je}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let n=t[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?n:St(n,`
|
|
16
|
-
`)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let n=t[0],a=Hp(n,t[3]||"",this.rules);return{type:"code",raw:n,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):t[2],text:a}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let n=t[2].trim();if(this.rules.other.endingHash.test(n)){let a=St(n,"#");(this.options.pedantic||!a||this.rules.other.endingSpaceChar.test(a))&&(n=a.trim())}return{type:"heading",raw:t[0],depth:t[1].length,text:n,tokens:this.lexer.inline(n)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:St(t[0],`
|
|
17
|
-
`)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let n=St(t[0],`
|
|
18
|
-
`).split(`
|
|
19
|
-
`),a="",s="",i=[];for(;n.length>0;){let o=!1,c=[],u;for(u=0;u<n.length;u++)if(this.rules.other.blockquoteStart.test(n[u]))c.push(n[u]),o=!0;else if(!o)c.push(n[u]);else break;n=n.slice(u);let d=c.join(`
|
|
20
|
-
`),p=d.replace(this.rules.other.blockquoteSetextReplace,`
|
|
21
|
-
$1`).replace(this.rules.other.blockquoteSetextReplace2,"");a=a?`${a}
|
|
22
|
-
${d}`:d,s=s?`${s}
|
|
23
|
-
${p}`:p;let _=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(p,i,!0),this.lexer.state.top=_,n.length===0)break;let g=i.at(-1);if(g?.type==="code")break;if(g?.type==="blockquote"){let N=g,f=N.raw+`
|
|
24
|
-
`+n.join(`
|
|
25
|
-
`),y=this.blockquote(f);i[i.length-1]=y,a=a.substring(0,a.length-N.raw.length)+y.raw,s=s.substring(0,s.length-N.text.length)+y.text;break}else if(g?.type==="list"){let N=g,f=N.raw+`
|
|
26
|
-
`+n.join(`
|
|
27
|
-
`),y=this.list(f);i[i.length-1]=y,a=a.substring(0,a.length-g.raw.length)+y.raw,s=s.substring(0,s.length-N.raw.length)+y.raw,n=f.substring(i.at(-1).raw.length).split(`
|
|
28
|
-
`);continue}}return{type:"blockquote",raw:a,tokens:i,text:s}}}list(e){let t=this.rules.block.list.exec(e);if(t){let n=t[1].trim(),a=n.length>1,s={type:"list",raw:"",ordered:a,start:a?+n.slice(0,-1):"",loose:!1,items:[]};n=a?`\\d{1,9}\\${n.slice(-1)}`:`\\${n}`,this.options.pedantic&&(n=a?n:"[*+-]");let i=this.rules.other.listItemRegex(n),o=!1;for(;e;){let u=!1,d="",p="";if(!(t=i.exec(e))||this.rules.block.hr.test(e))break;d=t[0],e=e.substring(d.length);let _=t[2].split(`
|
|
29
|
-
`,1)[0].replace(this.rules.other.listReplaceTabs,x=>" ".repeat(3*x.length)),g=e.split(`
|
|
30
|
-
`,1)[0],N=!_.trim(),f=0;if(this.options.pedantic?(f=2,p=_.trimStart()):N?f=t[1].length+1:(f=t[2].search(this.rules.other.nonSpaceChar),f=f>4?1:f,p=_.slice(f),f+=t[1].length),N&&this.rules.other.blankLine.test(g)&&(d+=g+`
|
|
31
|
-
`,e=e.substring(g.length+1),u=!0),!u){let x=this.rules.other.nextBulletRegex(f),b=this.rules.other.hrRegex(f),w=this.rules.other.fencesBeginRegex(f),A=this.rules.other.headingBeginRegex(f),E=this.rules.other.htmlBeginRegex(f);for(;e;){let P=e.split(`
|
|
32
|
-
`,1)[0],W;if(g=P,this.options.pedantic?(g=g.replace(this.rules.other.listReplaceNesting," "),W=g):W=g.replace(this.rules.other.tabCharGlobal," "),w.test(g)||A.test(g)||E.test(g)||x.test(g)||b.test(g))break;if(W.search(this.rules.other.nonSpaceChar)>=f||!g.trim())p+=`
|
|
33
|
-
`+W.slice(f);else{if(N||_.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||w.test(_)||A.test(_)||b.test(_))break;p+=`
|
|
34
|
-
`+g}!N&&!g.trim()&&(N=!0),d+=P+`
|
|
35
|
-
`,e=e.substring(P.length+1),_=W.slice(f)}}s.loose||(o?s.loose=!0:this.rules.other.doubleBlankLine.test(d)&&(o=!0));let y=null;this.options.gfm&&(y=this.rules.other.listIsTask.exec(p),y&&(p=p.replace(this.rules.other.listReplaceTask,""))),s.items.push({type:"list_item",raw:d,task:!!y,loose:!1,text:p,tokens:[]}),s.raw+=d}let c=s.items.at(-1);if(c)c.raw=c.raw.trimEnd(),c.text=c.text.trimEnd();else return;s.raw=s.raw.trimEnd();for(let u of s.items){if(this.lexer.state.top=!1,u.tokens=this.lexer.blockTokens(u.text,[]),u.task){let d=this.rules.other.listTaskCheckbox.exec(u.raw);if(d){let p={type:"checkbox",raw:d[0]+" ",checked:d[0]!=="[ ]"};u.checked=p.checked,s.loose?u.tokens[0]&&["paragraph","text"].includes(u.tokens[0].type)&&"tokens"in u.tokens[0]&&u.tokens[0].tokens?(u.tokens[0].raw=p.raw+u.tokens[0].raw,u.tokens[0].text=p.raw+u.tokens[0].text,u.tokens[0].tokens.unshift(p)):u.tokens.unshift({type:"paragraph",raw:p.raw,text:p.raw,tokens:[p]}):u.tokens.unshift(p)}}if(!s.loose){let d=u.tokens.filter(_=>_.type==="space"),p=d.length>0&&d.some(_=>this.rules.other.anyLine.test(_.raw));s.loose=p}}if(s.loose)for(let u of s.items){u.loose=!0;for(let d of u.tokens)d.type==="text"&&(d.type="paragraph")}return s}}html(e){let t=this.rules.block.html.exec(e);if(t)return{type:"html",block:!0,raw:t[0],pre:t[1]==="pre"||t[1]==="script"||t[1]==="style",text:t[0]}}def(e){let t=this.rules.block.def.exec(e);if(t){let n=t[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),a=t[2]?t[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",s=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):t[3];return{type:"def",tag:n,raw:t[0],href:a,title:s}}}table(e){let t=this.rules.block.table.exec(e);if(!t||!this.rules.other.tableDelimiter.test(t[2]))return;let n=_r(t[1]),a=t[2].replace(this.rules.other.tableAlignChars,"").split("|"),s=t[3]?.trim()?t[3].replace(this.rules.other.tableRowBlankLine,"").split(`
|
|
36
|
-
`):[],i={type:"table",raw:t[0],header:[],align:[],rows:[]};if(n.length===a.length){for(let o of a)this.rules.other.tableAlignRight.test(o)?i.align.push("right"):this.rules.other.tableAlignCenter.test(o)?i.align.push("center"):this.rules.other.tableAlignLeft.test(o)?i.align.push("left"):i.align.push(null);for(let o=0;o<n.length;o++)i.header.push({text:n[o],tokens:this.lexer.inline(n[o]),header:!0,align:i.align[o]});for(let o of s)i.rows.push(_r(o,i.header.length).map((c,u)=>({text:c,tokens:this.lexer.inline(c),header:!1,align:i.align[u]})));return i}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t)return{type:"heading",raw:t[0],depth:t[2].charAt(0)==="="?1:2,text:t[1],tokens:this.lexer.inline(t[1])}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let n=t[1].charAt(t[1].length-1)===`
|
|
37
|
-
`?t[1].slice(0,-1):t[1];return{type:"paragraph",raw:t[0],text:n,tokens:this.lexer.inline(n)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:"text",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:"escape",raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let n=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(n)){if(!this.rules.other.endAngleBracket.test(n))return;let i=St(n.slice(0,-1),"\\");if((n.length-i.length)%2===0)return}else{let i=Fp(t[2],"()");if(i===-2)return;if(i>-1){let o=(t[0].indexOf("!")===0?5:4)+t[1].length+i;t[2]=t[2].substring(0,i),t[0]=t[0].substring(0,o).trim(),t[3]=""}}let a=t[2],s="";if(this.options.pedantic){let i=this.rules.other.pedanticHrefTitle.exec(a);i&&(a=i[1],s=i[3])}else s=t[3]?t[3].slice(1,-1):"";return a=a.trim(),this.rules.other.startAngleBracket.test(a)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(n)?a=a.slice(1):a=a.slice(1,-1)),yr(t,{href:a&&a.replace(this.rules.inline.anyPunctuation,"$1"),title:s&&s.replace(this.rules.inline.anyPunctuation,"$1")},t[0],this.lexer,this.rules)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let a=(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal," "),s=t[a.toLowerCase()];if(!s){let i=n[0].charAt(0);return{type:"text",raw:i,text:i}}return yr(n,s,n[0],this.lexer,this.rules)}}emStrong(e,t,n=""){let a=this.rules.inline.emStrongLDelim.exec(e);if(!(!a||a[3]&&n.match(this.rules.other.unicodeAlphaNumeric))&&(!(a[1]||a[2])||!n||this.rules.inline.punctuation.exec(n))){let s=[...a[0]].length-1,i,o,c=s,u=0,d=a[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(d.lastIndex=0,t=t.slice(-1*e.length+s);(a=d.exec(t))!=null;){if(i=a[1]||a[2]||a[3]||a[4]||a[5]||a[6],!i)continue;if(o=[...i].length,a[3]||a[4]){c+=o;continue}else if((a[5]||a[6])&&s%3&&!((s+o)%3)){u+=o;continue}if(c-=o,c>0)continue;o=Math.min(o,o+c+u);let p=[...a[0]][0].length,_=e.slice(0,s+a.index+p+o);if(Math.min(s,o)%2){let N=_.slice(1,-1);return{type:"em",raw:_,text:N,tokens:this.lexer.inlineTokens(N)}}let g=_.slice(2,-2);return{type:"strong",raw:_,text:g,tokens:this.lexer.inlineTokens(g)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let n=t[2].replace(this.rules.other.newLineCharGlobal," "),a=this.rules.other.nonSpaceChar.test(n),s=this.rules.other.startingSpaceChar.test(n)&&this.rules.other.endingSpaceChar.test(n);return a&&s&&(n=n.substring(1,n.length-1)),{type:"codespan",raw:t[0],text:n}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}del(e){let t=this.rules.inline.del.exec(e);if(t)return{type:"del",raw:t[0],text:t[2],tokens:this.lexer.inlineTokens(t[2])}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let n,a;return t[2]==="@"?(n=t[1],a="mailto:"+n):(n=t[1],a=n),{type:"link",raw:t[0],text:n,href:a,tokens:[{type:"text",raw:n,text:n}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let n,a;if(t[2]==="@")n=t[0],a="mailto:"+n;else{let s;do s=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??"";while(s!==t[0]);n=t[0],t[1]==="www."?a="http://"+t[0]:a=t[0]}return{type:"link",raw:t[0],text:n,href:a,tokens:[{type:"text",raw:n,text:n}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let n=this.lexer.state.inRawBlock;return{type:"text",raw:t[0],text:t[0],escaped:n}}}},Me=class qn{tokens;options;state;tokenizer;inlineQueue;constructor(t){this.tokens=[],this.tokens.links=Object.create(null),this.options=t||Je,this.options.tokenizer=this.options.tokenizer||new tn,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let n={other:je,block:Vt.normal,inline:Tt.normal};this.options.pedantic?(n.block=Vt.pedantic,n.inline=Tt.pedantic):this.options.gfm&&(n.block=Vt.gfm,this.options.breaks?n.inline=Tt.breaks:n.inline=Tt.gfm),this.tokenizer.rules=n}static get rules(){return{block:Vt,inline:Tt}}static lex(t,n){return new qn(n).lex(t)}static lexInline(t,n){return new qn(n).inlineTokens(t)}lex(t){t=t.replace(je.carriageReturn,`
|
|
38
|
-
`),this.blockTokens(t,this.tokens);for(let n=0;n<this.inlineQueue.length;n++){let a=this.inlineQueue[n];this.inlineTokens(a.src,a.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(t,n=[],a=!1){for(this.options.pedantic&&(t=t.replace(je.tabCharGlobal," ").replace(je.spaceLine,""));t;){let s;if(this.options.extensions?.block?.some(o=>(s=o.call({lexer:this},t,n))?(t=t.substring(s.raw.length),n.push(s),!0):!1))continue;if(s=this.tokenizer.space(t)){t=t.substring(s.raw.length);let o=n.at(-1);s.raw.length===1&&o!==void 0?o.raw+=`
|
|
39
|
-
`:n.push(s);continue}if(s=this.tokenizer.code(t)){t=t.substring(s.raw.length);let o=n.at(-1);o?.type==="paragraph"||o?.type==="text"?(o.raw+=(o.raw.endsWith(`
|
|
40
|
-
`)?"":`
|
|
41
|
-
`)+s.raw,o.text+=`
|
|
42
|
-
`+s.text,this.inlineQueue.at(-1).src=o.text):n.push(s);continue}if(s=this.tokenizer.fences(t)){t=t.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.heading(t)){t=t.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.hr(t)){t=t.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.blockquote(t)){t=t.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.list(t)){t=t.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.html(t)){t=t.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.def(t)){t=t.substring(s.raw.length);let o=n.at(-1);o?.type==="paragraph"||o?.type==="text"?(o.raw+=(o.raw.endsWith(`
|
|
43
|
-
`)?"":`
|
|
44
|
-
`)+s.raw,o.text+=`
|
|
45
|
-
`+s.raw,this.inlineQueue.at(-1).src=o.text):this.tokens.links[s.tag]||(this.tokens.links[s.tag]={href:s.href,title:s.title},n.push(s));continue}if(s=this.tokenizer.table(t)){t=t.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.lheading(t)){t=t.substring(s.raw.length),n.push(s);continue}let i=t;if(this.options.extensions?.startBlock){let o=1/0,c=t.slice(1),u;this.options.extensions.startBlock.forEach(d=>{u=d.call({lexer:this},c),typeof u=="number"&&u>=0&&(o=Math.min(o,u))}),o<1/0&&o>=0&&(i=t.substring(0,o+1))}if(this.state.top&&(s=this.tokenizer.paragraph(i))){let o=n.at(-1);a&&o?.type==="paragraph"?(o.raw+=(o.raw.endsWith(`
|
|
46
|
-
`)?"":`
|
|
47
|
-
`)+s.raw,o.text+=`
|
|
48
|
-
`+s.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=o.text):n.push(s),a=i.length!==t.length,t=t.substring(s.raw.length);continue}if(s=this.tokenizer.text(t)){t=t.substring(s.raw.length);let o=n.at(-1);o?.type==="text"?(o.raw+=(o.raw.endsWith(`
|
|
49
|
-
`)?"":`
|
|
50
|
-
`)+s.raw,o.text+=`
|
|
51
|
-
`+s.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=o.text):n.push(s);continue}if(t){let o="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(o);break}else throw new Error(o)}}return this.state.top=!0,n}inline(t,n=[]){return this.inlineQueue.push({src:t,tokens:n}),n}inlineTokens(t,n=[]){let a=t,s=null;if(this.tokens.links){let u=Object.keys(this.tokens.links);if(u.length>0)for(;(s=this.tokenizer.rules.inline.reflinkSearch.exec(a))!=null;)u.includes(s[0].slice(s[0].lastIndexOf("[")+1,-1))&&(a=a.slice(0,s.index)+"["+"a".repeat(s[0].length-2)+"]"+a.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(s=this.tokenizer.rules.inline.anyPunctuation.exec(a))!=null;)a=a.slice(0,s.index)+"++"+a.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let i;for(;(s=this.tokenizer.rules.inline.blockSkip.exec(a))!=null;)i=s[2]?s[2].length:0,a=a.slice(0,s.index+i)+"["+"a".repeat(s[0].length-i-2)+"]"+a.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);a=this.options.hooks?.emStrongMask?.call({lexer:this},a)??a;let o=!1,c="";for(;t;){o||(c=""),o=!1;let u;if(this.options.extensions?.inline?.some(p=>(u=p.call({lexer:this},t,n))?(t=t.substring(u.raw.length),n.push(u),!0):!1))continue;if(u=this.tokenizer.escape(t)){t=t.substring(u.raw.length),n.push(u);continue}if(u=this.tokenizer.tag(t)){t=t.substring(u.raw.length),n.push(u);continue}if(u=this.tokenizer.link(t)){t=t.substring(u.raw.length),n.push(u);continue}if(u=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(u.raw.length);let p=n.at(-1);u.type==="text"&&p?.type==="text"?(p.raw+=u.raw,p.text+=u.text):n.push(u);continue}if(u=this.tokenizer.emStrong(t,a,c)){t=t.substring(u.raw.length),n.push(u);continue}if(u=this.tokenizer.codespan(t)){t=t.substring(u.raw.length),n.push(u);continue}if(u=this.tokenizer.br(t)){t=t.substring(u.raw.length),n.push(u);continue}if(u=this.tokenizer.del(t)){t=t.substring(u.raw.length),n.push(u);continue}if(u=this.tokenizer.autolink(t)){t=t.substring(u.raw.length),n.push(u);continue}if(!this.state.inLink&&(u=this.tokenizer.url(t))){t=t.substring(u.raw.length),n.push(u);continue}let d=t;if(this.options.extensions?.startInline){let p=1/0,_=t.slice(1),g;this.options.extensions.startInline.forEach(N=>{g=N.call({lexer:this},_),typeof g=="number"&&g>=0&&(p=Math.min(p,g))}),p<1/0&&p>=0&&(d=t.substring(0,p+1))}if(u=this.tokenizer.inlineText(d)){t=t.substring(u.raw.length),u.raw.slice(-1)!=="_"&&(c=u.raw.slice(-1)),o=!0;let p=n.at(-1);p?.type==="text"?(p.raw+=u.raw,p.text+=u.text):n.push(u);continue}if(t){let p="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(p);break}else throw new Error(p)}}return n}},nn=class{options;parser;constructor(e){this.options=e||Je}space(e){return""}code({text:e,lang:t,escaped:n}){let a=(t||"").match(je.notSpaceStart)?.[0],s=e.replace(je.endingNewline,"")+`
|
|
52
|
-
`;return a?'<pre><code class="language-'+qe(a)+'">'+(n?s:qe(s,!0))+`</code></pre>
|
|
53
|
-
`:"<pre><code>"+(n?s:qe(s,!0))+`</code></pre>
|
|
54
|
-
`}blockquote({tokens:e}){return`<blockquote>
|
|
55
|
-
${this.parser.parse(e)}</blockquote>
|
|
56
|
-
`}html({text:e}){return e}def(e){return""}heading({tokens:e,depth:t}){return`<h${t}>${this.parser.parseInline(e)}</h${t}>
|
|
57
|
-
`}hr(e){return`<hr>
|
|
58
|
-
`}list(e){let t=e.ordered,n=e.start,a="";for(let o=0;o<e.items.length;o++){let c=e.items[o];a+=this.listitem(c)}let s=t?"ol":"ul",i=t&&n!==1?' start="'+n+'"':"";return"<"+s+i+`>
|
|
59
|
-
`+a+"</"+s+`>
|
|
60
|
-
`}listitem(e){return`<li>${this.parser.parse(e.tokens)}</li>
|
|
61
|
-
`}checkbox({checked:e}){return"<input "+(e?'checked="" ':"")+'disabled="" type="checkbox"> '}paragraph({tokens:e}){return`<p>${this.parser.parseInline(e)}</p>
|
|
62
|
-
`}table(e){let t="",n="";for(let s=0;s<e.header.length;s++)n+=this.tablecell(e.header[s]);t+=this.tablerow({text:n});let a="";for(let s=0;s<e.rows.length;s++){let i=e.rows[s];n="";for(let o=0;o<i.length;o++)n+=this.tablecell(i[o]);a+=this.tablerow({text:n})}return a&&(a=`<tbody>${a}</tbody>`),`<table>
|
|
63
|
-
<thead>
|
|
64
|
-
`+t+`</thead>
|
|
65
|
-
`+a+`</table>
|
|
66
|
-
`}tablerow({text:e}){return`<tr>
|
|
67
|
-
${e}</tr>
|
|
68
|
-
`}tablecell(e){let t=this.parser.parseInline(e.tokens),n=e.header?"th":"td";return(e.align?`<${n} align="${e.align}">`:`<${n}>`)+t+`</${n}>
|
|
69
|
-
`}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${qe(e,!0)}</code>`}br(e){return"<br>"}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,tokens:n}){let a=this.parser.parseInline(n),s=gr(e);if(s===null)return a;e=s;let i='<a href="'+e+'"';return t&&(i+=' title="'+qe(t)+'"'),i+=">"+a+"</a>",i}image({href:e,title:t,text:n,tokens:a}){a&&(n=this.parser.parseInline(a,this.parser.textRenderer));let s=gr(e);if(s===null)return qe(n);e=s;let i=`<img src="${e}" alt="${n}"`;return t&&(i+=` title="${qe(t)}"`),i+=">",i}text(e){return"tokens"in e&&e.tokens?this.parser.parseInline(e.tokens):"escaped"in e&&e.escaped?e.text:qe(e.text)}},ts=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return""+e}image({text:e}){return""+e}br(){return""}checkbox({raw:e}){return e}},De=class Fn{options;renderer;textRenderer;constructor(t){this.options=t||Je,this.options.renderer=this.options.renderer||new nn,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new ts}static parse(t,n){return new Fn(n).parse(t)}static parseInline(t,n){return new Fn(n).parseInline(t)}parse(t){let n="";for(let a=0;a<t.length;a++){let s=t[a];if(this.options.extensions?.renderers?.[s.type]){let o=s,c=this.options.extensions.renderers[o.type].call({parser:this},o);if(c!==!1||!["space","hr","heading","code","table","blockquote","list","html","def","paragraph","text"].includes(o.type)){n+=c||"";continue}}let i=s;switch(i.type){case"space":{n+=this.renderer.space(i);break}case"hr":{n+=this.renderer.hr(i);break}case"heading":{n+=this.renderer.heading(i);break}case"code":{n+=this.renderer.code(i);break}case"table":{n+=this.renderer.table(i);break}case"blockquote":{n+=this.renderer.blockquote(i);break}case"list":{n+=this.renderer.list(i);break}case"checkbox":{n+=this.renderer.checkbox(i);break}case"html":{n+=this.renderer.html(i);break}case"def":{n+=this.renderer.def(i);break}case"paragraph":{n+=this.renderer.paragraph(i);break}case"text":{n+=this.renderer.text(i);break}default:{let o='Token with "'+i.type+'" type was not found.';if(this.options.silent)return console.error(o),"";throw new Error(o)}}}return n}parseInline(t,n=this.renderer){let a="";for(let s=0;s<t.length;s++){let i=t[s];if(this.options.extensions?.renderers?.[i.type]){let c=this.options.extensions.renderers[i.type].call({parser:this},i);if(c!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(i.type)){a+=c||"";continue}}let o=i;switch(o.type){case"escape":{a+=n.text(o);break}case"html":{a+=n.html(o);break}case"link":{a+=n.link(o);break}case"image":{a+=n.image(o);break}case"checkbox":{a+=n.checkbox(o);break}case"strong":{a+=n.strong(o);break}case"em":{a+=n.em(o);break}case"codespan":{a+=n.codespan(o);break}case"br":{a+=n.br(o);break}case"del":{a+=n.del(o);break}case"text":{a+=n.text(o);break}default:{let c='Token with "'+o.type+'" type was not found.';if(this.options.silent)return console.error(c),"";throw new Error(c)}}}return a}},jt=class{options;block;constructor(e){this.options=e||Je}static passThroughHooks=new Set(["preprocess","postprocess","processAllTokens","emStrongMask"]);static passThroughHooksRespectAsync=new Set(["preprocess","postprocess","processAllTokens"]);preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(){return this.block?Me.lex:Me.lexInline}provideParser(){return this.block?De.parse:De.parseInline}},Bp=class{defaults=Vn();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=De;Renderer=nn;TextRenderer=ts;Lexer=Me;Tokenizer=tn;Hooks=jt;constructor(...e){this.use(...e)}walkTokens(e,t){let n=[];for(let a of e)switch(n=n.concat(t.call(this,a)),a.type){case"table":{let s=a;for(let i of s.header)n=n.concat(this.walkTokens(i.tokens,t));for(let i of s.rows)for(let o of i)n=n.concat(this.walkTokens(o.tokens,t));break}case"list":{let s=a;n=n.concat(this.walkTokens(s.items,t));break}default:{let s=a;this.defaults.extensions?.childTokens?.[s.type]?this.defaults.extensions.childTokens[s.type].forEach(i=>{let o=s[i].flat(1/0);n=n.concat(this.walkTokens(o,t))}):s.tokens&&(n=n.concat(this.walkTokens(s.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(n=>{let a={...n};if(a.async=this.defaults.async||a.async||!1,n.extensions&&(n.extensions.forEach(s=>{if(!s.name)throw new Error("extension name required");if("renderer"in s){let i=t.renderers[s.name];i?t.renderers[s.name]=function(...o){let c=s.renderer.apply(this,o);return c===!1&&(c=i.apply(this,o)),c}:t.renderers[s.name]=s.renderer}if("tokenizer"in s){if(!s.level||s.level!=="block"&&s.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let i=t[s.level];i?i.unshift(s.tokenizer):t[s.level]=[s.tokenizer],s.start&&(s.level==="block"?t.startBlock?t.startBlock.push(s.start):t.startBlock=[s.start]:s.level==="inline"&&(t.startInline?t.startInline.push(s.start):t.startInline=[s.start]))}"childTokens"in s&&s.childTokens&&(t.childTokens[s.name]=s.childTokens)}),a.extensions=t),n.renderer){let s=this.defaults.renderer||new nn(this.defaults);for(let i in n.renderer){if(!(i in s))throw new Error(`renderer '${i}' does not exist`);if(["options","parser"].includes(i))continue;let o=i,c=n.renderer[o],u=s[o];s[o]=(...d)=>{let p=c.apply(s,d);return p===!1&&(p=u.apply(s,d)),p||""}}a.renderer=s}if(n.tokenizer){let s=this.defaults.tokenizer||new tn(this.defaults);for(let i in n.tokenizer){if(!(i in s))throw new Error(`tokenizer '${i}' does not exist`);if(["options","rules","lexer"].includes(i))continue;let o=i,c=n.tokenizer[o],u=s[o];s[o]=(...d)=>{let p=c.apply(s,d);return p===!1&&(p=u.apply(s,d)),p}}a.tokenizer=s}if(n.hooks){let s=this.defaults.hooks||new jt;for(let i in n.hooks){if(!(i in s))throw new Error(`hook '${i}' does not exist`);if(["options","block"].includes(i))continue;let o=i,c=n.hooks[o],u=s[o];jt.passThroughHooks.has(i)?s[o]=d=>{if(this.defaults.async&&jt.passThroughHooksRespectAsync.has(i))return(async()=>{let _=await c.call(s,d);return u.call(s,_)})();let p=c.call(s,d);return u.call(s,p)}:s[o]=(...d)=>{if(this.defaults.async)return(async()=>{let _=await c.apply(s,d);return _===!1&&(_=await u.apply(s,d)),_})();let p=c.apply(s,d);return p===!1&&(p=u.apply(s,d)),p}}a.hooks=s}if(n.walkTokens){let s=this.defaults.walkTokens,i=n.walkTokens;a.walkTokens=function(o){let c=[];return c.push(i.call(this,o)),s&&(c=c.concat(s.call(this,o))),c}}this.defaults={...this.defaults,...a}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return Me.lex(e,t??this.defaults)}parser(e,t){return De.parse(e,t??this.defaults)}parseMarkdown(e){return(t,n)=>{let a={...n},s={...this.defaults,...a},i=this.onError(!!s.silent,!!s.async);if(this.defaults.async===!0&&a.async===!1)return i(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof t>"u"||t===null)return i(new Error("marked(): input parameter is undefined or null"));if(typeof t!="string")return i(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected"));if(s.hooks&&(s.hooks.options=s,s.hooks.block=e),s.async)return(async()=>{let o=s.hooks?await s.hooks.preprocess(t):t,c=await(s.hooks?await s.hooks.provideLexer():e?Me.lex:Me.lexInline)(o,s),u=s.hooks?await s.hooks.processAllTokens(c):c;s.walkTokens&&await Promise.all(this.walkTokens(u,s.walkTokens));let d=await(s.hooks?await s.hooks.provideParser():e?De.parse:De.parseInline)(u,s);return s.hooks?await s.hooks.postprocess(d):d})().catch(i);try{s.hooks&&(t=s.hooks.preprocess(t));let o=(s.hooks?s.hooks.provideLexer():e?Me.lex:Me.lexInline)(t,s);s.hooks&&(o=s.hooks.processAllTokens(o)),s.walkTokens&&this.walkTokens(o,s.walkTokens);let c=(s.hooks?s.hooks.provideParser():e?De.parse:De.parseInline)(o,s);return s.hooks&&(c=s.hooks.postprocess(c)),c}catch(o){return i(o)}}}onError(e,t){return n=>{if(n.message+=`
|
|
70
|
-
Please report this to https://github.com/markedjs/marked.`,e){let a="<p>An error occurred:</p><pre>"+qe(n.message+"",!0)+"</pre>";return t?Promise.resolve(a):a}if(t)return Promise.reject(n);throw n}}},Ze=new Bp;function ne(e,t){return Ze.parse(e,t)}ne.options=ne.setOptions=function(e){return Ze.setOptions(e),ne.defaults=Ze.defaults,ra(ne.defaults),ne};ne.getDefaults=Vn;ne.defaults=Je;ne.use=function(...e){return Ze.use(...e),ne.defaults=Ze.defaults,ra(ne.defaults),ne};ne.walkTokens=function(e,t){return Ze.walkTokens(e,t)};ne.parseInline=Ze.parseInline;ne.Parser=De;ne.parser=De.parse;ne.Renderer=nn;ne.TextRenderer=ts;ne.Lexer=Me;ne.lexer=Me.lex;ne.Tokenizer=tn;ne.Hooks=jt;ne.parse=ne;ne.options;ne.setOptions;ne.use;ne.walkTokens;ne.parseInline;De.parse;Me.lex;const Up="_transcriptWrap_yy5uu_5",Wp="_transcript_yy5uu_5",Gp="_list_yy5uu_14",Vp="_item_yy5uu_24",Kp="_skeleton_yy5uu_26",Yp="_skeletonUser_yy5uu_38",Xp="_loadError_yy5uu_39",Zp="_empty_yy5uu_62",Qp="_emptyTitle_yy5uu_63",Jp="_emptyBody_yy5uu_72",ef="_user_yy5uu_75",tf="_userText_yy5uu_76",nf="_assistant_yy5uu_87",sf="_markdown_yy5uu_31",rf="_codeHead_yy5uu_182",af="_codeLang_yy5uu_199",of="_copy_yy5uu_198",lf="_caret_yy5uu_224",cf="_streaming_yy5uu_225",uf="_thinking_yy5uu_238",df="_thinkingSummary_yy5uu_239",hf="_thinkingBody_yy5uu_251",pf="_tool_yy5uu_262",ff="_toolRun_yy5uu_263",mf="_toolLine_yy5uu_265",gf="_toolArg_yy5uu_283",_f="_toolState_yy5uu_283",yf="_toolGlyph_yy5uu_294",xf="_toolName_yy5uu_304",kf="_toolFailed_yy5uu_328",bf="_toolBody_yy5uu_331",wf="_toolRunBody_yy5uu_332",Tf="_toolRunList_yy5uu_339",Sf="_toolLabel_yy5uu_341",Nf="_toolPre_yy5uu_350",jf="_toolPending_yy5uu_365",Ef="_note_yy5uu_368",vf="_noteError_yy5uu_374",Af="_meta_yy5uu_375",Rf="_noteDuration_yy5uu_376",Cf="_metaText_yy5uu_380",If="_jump_yy5uu_387",$f="_jumpUnseen_yy5uu_410",Lf="_turn_yy5uu_435",Mf="_turnItems_yy5uu_457",Df="_turnErrorJump_yy5uu_493",Pf="_toolDelta_yy5uu_511",zf="_toolAdd_yy5uu_519",Of="_toolDel_yy5uu_511",qf="_toolNote_yy5uu_522",j={transcriptWrap:Up,transcript:Wp,list:Gp,item:Vp,skeleton:Kp,skeletonUser:Yp,loadError:Xp,empty:Zp,emptyTitle:Qp,emptyBody:Jp,user:ef,userText:tf,assistant:nf,markdown:sf,codeHead:rf,codeLang:af,copy:of,caret:lf,streaming:cf,thinking:uf,thinkingSummary:df,thinkingBody:hf,tool:pf,toolRun:ff,toolLine:mf,toolArg:gf,toolState:_f,toolGlyph:yf,toolName:xf,toolFailed:kf,toolBody:bf,toolRunBody:wf,toolRunList:Tf,toolLabel:Sf,toolPre:Nf,toolPending:jf,note:Ef,noteError:vf,meta:Af,noteDuration:Rf,metaText:Cf,jump:If,jumpUnseen:$f,turn:Lf,turnItems:Mf,turnErrorJump:Df,toolDelta:Pf,toolAdd:zf,toolDel:Of,toolNote:qf};let xr=!1;function Ff(){xr||(xr=!0,sa.addHook("afterSanitizeAttributes",e=>{e.tagName==="A"&&(e.setAttribute("target","_blank"),e.setAttribute("rel","noopener noreferrer"))}))}const Hf={USE_PROFILES:{html:!0},ADD_ATTR:["target"],FORBID_TAGS:["style","form","input","button","iframe","object","embed"]};function Bf(e){Ff();const t=ne.parse(e,{async:!1,gfm:!0,breaks:!1});return sa.sanitize(t,Hf)}const kr="Copy",Uf="Copied";function Wf(e){return/(?:^|\s)(?:language|lang)-([\w+#.-]+)/.exec(e?.className??"")?.[1]??""}function Gf({text:e,streaming:t=!1}){const n=m.useMemo(()=>Bf(e),[e]),a=m.useRef(null);m.useEffect(()=>{const i=a.current;if(i)for(const o of i.querySelectorAll("pre")){if(o.querySelector("[data-code-head]"))continue;const c=document.createElement("div");c.className=j.codeHead,c.setAttribute("data-code-head","");const u=Wf(o.querySelector("code")),d=document.createElement("span");d.className=j.codeLang,d.textContent=u,c.append(d);const p=document.createElement("button");p.type="button",p.className=j.copy,p.setAttribute("data-copy",""),p.setAttribute("aria-label","Copy code"),p.textContent=kr,c.append(p),o.prepend(c)}},[n]);function s(i){const c=i.target?.closest("[data-copy]");if(!c)return;i.preventDefault();const u=c.closest("pre"),d=u?.querySelector("code"),p=u?.querySelector("[data-code-head]"),_=d?d.textContent??"":Array.from(u?.childNodes??[]).filter(g=>g!==p).map(g=>g.textContent??"").join("");Vf(_).then(g=>{c.textContent=g?Uf:"Copy failed",setTimeout(()=>{c.textContent=kr},1500)})}return r.jsx("div",{ref:a,className:`${j.markdown} ${t?j.streaming:""}`,onClick:s,dangerouslySetInnerHTML:{__html:n}})}async function Vf(e){try{if(navigator.clipboard?.writeText)return await navigator.clipboard.writeText(e),!0}catch{}try{const t=document.createElement("textarea");t.value=e,t.setAttribute("readonly",""),t.style.position="fixed",t.style.opacity="0",document.body.append(t),t.select();const n=document.execCommand("copy");return t.remove(),n}catch{return!1}}const Kf=/\u001B\[[0-9;:?]*[ -/]*[@-~]/g,Yf=/\u001B\][\s\S]*?(?:\u0007|\u001B\\)/g,Xf=/\u001B[@-Z\\-_]/g,Zf=/[\u0000-\u0008\u000B\u000C\u000E-\u001F\u007F]/g;function Qf(e){return e.includes("\x1B")}function Jf(e){return e.replace(Yf,"").replace(Kf,"").replace(Xf,"").replace(Zf,"")}function em(e){return e.includes("\r")?e.split(`
|
|
71
|
-
`).map(t=>{if(!t.includes("\r"))return t;let n="";for(const a of t.split("\r"))n=a.length>=n.length?a:a+n.slice(a.length);return n}).join(`
|
|
72
|
-
`):e}function tm(e){return em(Jf(e)).replace(/[ \t]+$/gm,"").replace(/\n+$/,"")}function br(e){if(e.length===0)return 0;let t=1;for(let n=0;n<e.length;n++)e.charCodeAt(n)===10&&t++;return t}function nm(e,t){const n=e.split(`
|
|
73
|
-
`);return n.length<=t?{head:e,hidden:0}:{head:n.slice(0,t).join(`
|
|
74
|
-
`),hidden:n.length-t}}const sm=20,Cn=2e5;function rm({command:e,output:t,isError:n,pending:a,body:s}){const[i,o]=m.useState(!1),c=m.useMemo(()=>{const g=tm(t);return g.length>Cn?`${g.slice(0,Cn)}
|
|
75
|
-
… (${g.length-Cn} more characters not shown)`:g},[t]),{head:u,hidden:d}=m.useMemo(()=>nm(c,sm),[c]),p=i?c:u,_=e?.exitCode??null;return r.jsxs("div",{className:v.command,"data-failed":n?"true":void 0,children:[e?r.jsxs("div",{className:v.commandLine,children:[r.jsx("span",{className:v.commandPrompt,"aria-hidden":"true",children:"$"}),r.jsx("code",{className:v.commandText,children:e.command})]}):null,r.jsxs("div",{className:v.commandStatus,children:[r.jsx("span",{className:v.commandStatusText,"data-tone":a?"pending":n?"bad":"ok",children:a?"running…":_!==null?`exit ${_}`:n?"failed — no exit code reported":"completed — no exit code reported"}),!a&&!s&&c.length===0?r.jsx("span",{className:v.commandMeta,children:"no output"}):null,!a&&!s&&c.length>0?r.jsxs("span",{className:v.commandMeta,children:[br(c)," line",br(c)===1?"":"s",Qf(t)?" · colour codes stripped":""]}):null]}),a?r.jsx("p",{className:v.commandPending,children:"Waiting for the command to finish…"}):s||(c.length>0?r.jsxs(r.Fragment,{children:[r.jsx("pre",{className:v.commandPre,children:p}),d>0?r.jsx("button",{type:"button",className:v.commandMore,"aria-expanded":i,onClick:()=>o(g=>!g),children:i?"Collapse output":`Show ${d} more line${d===1?"":"s"}`}):null]}):null)]})}const am=28,om=18,wr=4e3;function Tr({diff:e,path:t=null}){const n=m.useMemo(()=>zr(e.text),[e.text]);if(n.files.length===0)return null;if(e.multiFile||n.files.length>1)return r.jsx("div",{className:v.diffMulti,children:r.jsx(bo,{diff:e.text,proposalKind:"tool call"})});const a=n.files[0];return r.jsx(lm,{file:a,anchored:e.anchored,path:t??a.displayPath})}function im(e){switch(e.status){case"renamed":return"Renamed. The contents did not change, so there are no lines to show.";case"added":return"New file. It was added with no contents to diff against.";case"deleted":return"Deleted. The file is gone, so there are no lines to show.";default:return null}}function lm({file:e,anchored:t,path:n}){const[a,s]=m.useState(!1),i=wo(n),o=m.useMemo(()=>cm(e.hunks),[e.hunks]),c=o.length>am,u=c&&!a?o.slice(0,om):o,d=o.length-u.length,p=e.status==="renamed"?e.oldPath:null,_=im(e);return r.jsxs("div",{className:v.diff,"data-anchored":t?"true":"false","data-status":e.status,children:[r.jsxs("div",{className:v.diffHead,children:[p?r.jsxs("span",{className:v.diffOldPath,title:p,children:[p,r.jsx("span",{className:v.visuallyHidden,children:" renamed to"})]}):null,r.jsx("span",{className:v.diffPath,title:n,children:n}),e.status!=="modified"?r.jsx("span",{className:v.diffStatus,children:e.status}):null,r.jsxs("span",{className:v.diffStats,children:[e.additions>0?r.jsxs("span",{className:v.diffAdd,children:["+",e.additions]}):null,e.deletions>0?r.jsxs("span",{className:v.diffDel,children:["−",e.deletions]}):null]})]}),e.unparsedNotice?r.jsx("pre",{className:v.diffNotice,children:e.unparsedNotice}):null,o.length===0?r.jsx("p",{className:v.diffEmpty,children:_??"No line-level changes in this call."}):r.jsxs(r.Fragment,{children:[r.jsx("table",{className:v.diffTable,children:r.jsx("tbody",{children:u.map(g=>g.kind==="hunk"?r.jsxs("tr",{className:v.diffHunkRow,children:[t?r.jsx("td",{className:v.diffNo,"aria-hidden":"true"}):null,r.jsx("td",{className:v.diffMarker,"aria-hidden":"true"}),r.jsx("td",{className:v.diffHunkHead,children:g.label})]},g.key):r.jsxs("tr",{className:v[`diffRow_${g.line.kind}`],children:[t?r.jsx("td",{className:v.diffNo,children:g.line.newLineNo??g.line.oldLineNo??""}):null,r.jsx("td",{className:v.diffMarker,"aria-hidden":"true",children:g.line.kind==="add"?"+":g.line.kind==="del"?"−":""}),r.jsx("td",{className:v.diffText,children:r.jsx(um,{text:g.line.text,lang:i})})]},g.key))})}),c?r.jsx("button",{type:"button",className:v.diffMore,onClick:()=>s(g=>!g),"aria-expanded":a,children:a?"Collapse diff":`Show ${d} more line${d===1?"":"s"}`}):null]}),t?null:r.jsx("p",{className:v.diffUnanchored,children:"Line numbers are not shown — this tool call reported what it replaced, not where in the file."})]})}function cm(e){const t=[];let n=!1;return e.forEach((a,s)=>{if(n)return;const i=a.header.replace(/^@@[^@]*@@/,"").trim();(i||e.length>1)&&t.push({kind:"hunk",key:`h${s}`,label:i||`hunk ${s+1}`});for(let o=0;o<a.lines.length;o++){if(t.length>=wr){n=!0,t.push({kind:"hunk",key:"truncated",label:`diff truncated at ${wr} lines`});return}t.push({kind:"line",key:`h${s}l${o}`,line:a.lines[o]})}}),t}function um({text:e,lang:t}){const n=To(e,t);return r.jsx("code",{className:v.diffCode,children:n.map((a,s)=>r.jsx("span",{className:v[`tok_${a.kind}`],children:a.text},s))})}const In=2e4;function ma({name:e,input:t,result:n,toolUseId:a,durationMs:s=null,facts:i}){const o=m.useMemo(()=>i??Xr({name:e,input:t,result:n}),[i,e,t,n]),c=Za(t),u=o.failed||n?.isError===!0,d=n===null,p=d?"running":u?"error":s!==null&&s>0?Xt(s):"done",_=m.useMemo(()=>o.diff?Qr(o.diff.text):null,[o.diff]),g=n?n.output.length>In?`${n.output.slice(0,In)}
|
|
76
|
-
… (${n.output.length-In} more characters)`:n.output:"";return r.jsxs("details",{id:Zr(a),className:`${j.tool} ${u?j.toolFailed:""}`,"data-state-key":`tool:${a}`,"data-action":o.action,children:[r.jsxs("summary",{className:j.toolLine,"aria-label":`${e}${c?`: ${c}`:""} (${p})`,children:[r.jsx("span",{className:j.toolGlyph,"aria-hidden":"true"}),r.jsx("span",{className:j.toolName,children:e}),c?r.jsx("span",{className:j.toolArg,title:c,children:c}):null,_&&(_.additions>0||_.deletions>0)?r.jsxs("span",{className:j.toolDelta,"aria-hidden":"true",children:[_.additions>0?r.jsxs("span",{className:j.toolAdd,children:["+",_.additions]}):null,_.deletions>0?r.jsxs("span",{className:j.toolDel,children:["−",_.deletions]}):null]}):null,r.jsx("span",{className:j.toolState,children:p})]}),r.jsx("div",{className:j.toolBody,children:r.jsx(dm,{input:t,output:g,facts:o,pending:d,isError:u})})]})}function dm({input:e,output:t,facts:n,pending:a,isError:s}){return n.command?r.jsx(rm,{command:n.command,output:t,isError:s,pending:a,body:n.diff?r.jsx(Tr,{diff:n.diff,path:n.paths[0]??null}):void 0}):n.diff?r.jsxs(r.Fragment,{children:[r.jsx(Tr,{diff:n.diff,path:n.paths[0]??null}),a?r.jsx("p",{className:j.toolPending,children:"Waiting for the tool to finish…"}):null,s&&t?r.jsxs("section",{children:[r.jsx("h4",{className:j.toolLabel,children:"Error"}),r.jsx("pre",{className:j.toolPre,children:t})]}):null]}):n.written?r.jsxs(r.Fragment,{children:[r.jsxs("section",{children:[r.jsxs("h4",{className:j.toolLabel,children:["Contents written to ",n.written.path]}),r.jsx("pre",{className:j.toolPre,children:n.written.text}),r.jsx("p",{className:j.toolNote,children:"The previous contents were not in this tool call, so there is nothing to diff against."})]}),r.jsxs("section",{children:[r.jsx("h4",{className:j.toolLabel,children:s?"Error":"Result"}),a?r.jsx("p",{className:j.toolPending,children:"Waiting for the tool to finish…"}):r.jsx("pre",{className:j.toolPre,children:t||"(empty)"})]})]}):r.jsxs(r.Fragment,{children:[e!=null?r.jsxs("section",{children:[r.jsx("h4",{className:j.toolLabel,children:"Input"}),r.jsx("pre",{className:j.toolPre,children:Qa(e)})]}):null,r.jsxs("section",{children:[r.jsx("h4",{className:j.toolLabel,children:s?"Error":"Result"}),a?r.jsx("p",{className:j.toolPending,children:"Waiting for the tool to finish…"}):r.jsx("pre",{className:j.toolPre,children:t||"(empty)"})]})]})}const hm=48,Sr=3,pm=1400;function fm({transcript:e,loaded:t,loadError:n,onRetry:a,emptyHint:s}){const i=m.useRef(null),o=m.useRef(new Map),c=m.useRef(null),[u,d]=m.useState(!0),[p,_]=m.useState(!1),[g,N]=m.useState(""),[f,y]=m.useState(-1),[x,b]=m.useState(0),w=m.useRef(0),A=m.useRef(Fu()),E=m.useMemo(()=>hl(e.items),[e.items]),P=m.useMemo(()=>Gu(E,A.current),[E]),W=m.useMemo(()=>Zu(P.turns,g,A.current),[P.turns,g]),me=m.useMemo(()=>new Set(W.map(S=>S.turnKey)),[W]),oe=m.useMemo(()=>{const S=new Set;let I=null;for(const D of e.items)D.kind==="turn-done"&&!D.ok&&I&&I.turnId===D.turnId&&(I.kind==="cancelled"||I.kind==="error")&&S.add(D.key),I={turnId:D.turnId,kind:D.kind};return S},[e.items]),Q=m.useCallback((S="auto")=>{const I=i.current;I&&(typeof I.scrollTo=="function"?I.scrollTo({top:I.scrollHeight,behavior:S}):I.scrollTop=I.scrollHeight)},[]);function G(){const S=i.current;if(!S)return;const D=S.scrollHeight-S.scrollTop-S.clientHeight<=hm;d(D),D&&_(!1)}const de=m.useCallback(S=>{S&&(d(!1),typeof S.scrollIntoView=="function"&&S.scrollIntoView({block:"center",behavior:"smooth"}),typeof S.focus=="function"&&S.focus({preventScroll:!0}),S.setAttribute("data-flash","true"),c.current&&clearTimeout(c.current),c.current=setTimeout(()=>S.removeAttribute("data-flash"),pm))},[]);m.useEffect(()=>()=>{c.current&&clearTimeout(c.current)},[]);const H=m.useCallback(S=>{de(o.current.get(S)??null)},[de]),ie=m.useCallback(S=>{const I=i.current?.ownerDocument?.getElementById(S)??null;if(I){for(let D=I;D&&(D instanceof HTMLDetailsElement&&(D.open=!0),D!==i.current);D=D.parentElement);de(I)}},[de]),J=m.useCallback(S=>ie(Zr(S)),[ie]),he=m.useCallback(()=>{const S=P.errorAnchors[0];S&&ie(S)},[P.errorAnchors,ie]),se=m.useCallback(S=>{if(W.length===0)return;const I=f<0?S>0?0:W.length-1:(f+S+W.length)%W.length;y(I),H(W[I].turnKey)},[W,f,H]);m.useEffect(()=>{y(-1)},[g]);const Z=m.useCallback(S=>{const I=P.turns;if(I.length===0)return;const D=i.current?.ownerDocument?.activeElement,ke=D instanceof HTMLElement?D.getAttribute("data-turn-key"):null,_e=ke?I.findIndex(Fe=>Fe.key===ke):-1,K=_e<0?S>0?0:I.length-1:Math.max(0,Math.min(I.length-1,_e+S));H(I[K].key)},[P.turns,H]);m.useEffect(()=>{if(P.turns.length===0)return;const S=I=>{const D=I.target,ke=D instanceof HTMLTextAreaElement||D instanceof HTMLInputElement||D?.isContentEditable===!0;if((I.metaKey||I.ctrlKey)&&!I.shiftKey&&!I.altKey&&I.key.toLowerCase()==="f"){if(P.turns.length<Sr)return;I.preventDefault(),b(_e=>_e+1);return}I.altKey&&!I.metaKey&&!I.ctrlKey&&!ke&&(I.key==="ArrowDown"?(I.preventDefault(),Z(1)):I.key==="ArrowUp"&&(I.preventDefault(),Z(-1)))};return document.addEventListener("keydown",S),()=>document.removeEventListener("keydown",S)},[P.turns.length,Z]);function B(S){S.target?.hasAttribute("data-turn-key")&&(S.key==="ArrowDown"?(S.preventDefault(),Z(1)):S.key==="ArrowUp"?(S.preventDefault(),Z(-1)):S.key==="Home"?(S.preventDefault(),H(P.turns[0].key)):S.key==="End"&&(S.preventDefault(),H(P.turns[P.turns.length-1].key)))}if(m.useLayoutEffect(()=>{const S=e.items.length,I=e.items[S-1],D=S!==w.current||I?.kind==="assistant"&&I.streaming;w.current=S,D&&(u?Q():_(!0))},[e,u,Q]),m.useEffect(()=>{t&&Q()},[t,Q]),!t&&!n)return r.jsx("div",{className:j.transcript,"aria-busy":"true",children:r.jsxs("div",{className:j.skeleton,children:[r.jsx("div",{className:j.skeletonUser,children:r.jsx(Ne,{width:"42%"})}),r.jsx(Ne,{width:"88%"}),r.jsx(Ne,{width:"72%"}),r.jsx(Ne,{width:"80%"}),r.jsx("div",{className:j.skeletonUser,children:r.jsx(Ne,{width:"30%"})}),r.jsx(Ne,{width:"64%"})]})});if(n)return r.jsx("div",{className:j.transcript,children:r.jsxs("div",{role:"alert",className:j.loadError,children:[r.jsx("p",{children:n}),a?r.jsx("button",{type:"button",onClick:a,children:"Retry"}):null]})});const ee=f>=0?W[f]?.turnKey??null:null;return r.jsxs("div",{className:j.transcriptWrap,children:[P.turns.length>=Sr?r.jsx(jh,{turns:P.turns,query:g,onQuery:N,matches:W,matchIndex:f,onStepMatch:se,errorCount:P.errorAnchors.length,onJumpError:he,onJumpTurn:H,focusToken:x}):null,r.jsxs("div",{ref:i,className:j.transcript,onScroll:G,role:"log","aria-live":"polite","aria-relevant":"additions text",children:[e.items.length===0?r.jsxs("div",{className:j.empty,children:[r.jsx("p",{className:j.emptyTitle,children:"Say something to begin."}),r.jsx("p",{className:j.emptyBody,children:s??"The agent can read and edit this project. Ask for a change, a review, or an explanation."})]}):null,r.jsxs("ol",{className:j.list,onKeyDown:B,children:[P.turns.map((S,I)=>r.jsxs("li",{id:Bu(S.key),ref:D=>{D?o.current.set(S.key,D):o.current.delete(S.key)},className:j.turn,"data-turn-key":S.key,"data-status":S.status,"data-match":me.has(S.key)?S.key===ee?"active":"true":void 0,tabIndex:-1,"aria-label":`Turn ${I+1} of ${P.turns.length}`,children:[r.jsx("ol",{className:j.turnItems,children:S.items.map(D=>mm(D,P.facts,oe))}),S.files.length>0?r.jsx(Sh,{files:S.files,onJump:J}):null,S.errorCount>0&&S.firstErrorAnchor?r.jsxs("button",{type:"button",className:j.turnErrorJump,onClick:()=>ie(S.firstErrorAnchor),children:[S.errorCount," failure",S.errorCount===1?"":"s"," in this turn — jump to the first"]}):null]},S.key)),e.live&&!e.items.some(S=>S.kind==="assistant"&&S.streaming)?r.jsx("li",{className:`${j.item} ${j.assistant}`,"data-kind":"pending","aria-label":"Waiting for the agent",children:r.jsx("span",{className:j.caret,"aria-hidden":"true"})}):null]})]}),u?null:r.jsxs("button",{type:"button",className:`${j.jump} ${p?j.jumpUnseen:""}`,onClick:()=>{d(!0),_(!1),Q("smooth")},children:[r.jsx(ro,{size:12})," Jump to latest"]})]})}function mm(e,t,n){switch(e.kind){case"user":return r.jsx("li",{className:`${j.item} ${j.user}`,"data-kind":"user",children:r.jsx("div",{className:j.userText,children:e.text})},e.key);case"assistant":return r.jsx("li",{className:`${j.item} ${j.assistant}`,"data-kind":"assistant","data-streaming":e.streaming||void 0,children:r.jsx(Gf,{text:e.text,streaming:e.streaming})},e.key);case"thinking":return r.jsx("li",{className:j.item,"data-kind":"thinking",children:r.jsx(ga,{item:e})},e.key);case"tool":return r.jsx("li",{className:j.item,"data-kind":"tool",children:r.jsx(ma,{name:e.name,input:e.input,result:e.result,toolUseId:e.toolUseId,durationMs:e.durationMs,facts:t.get(e.toolUseId)})},e.key);case"toolGroup":return r.jsx("li",{className:j.item,"data-kind":"tool-group",children:r.jsx(gm,{item:e,facts:t})},e.key);case"error":return r.jsx("li",{className:j.item,"data-kind":"error",children:r.jsx("div",{id:Jt(e.key),role:"alert",className:`${j.note} ${j.noteError}`,children:e.message})},e.key);case"cancelled":return r.jsx("li",{className:j.item,"data-kind":"cancelled",children:r.jsx("div",{className:j.note,children:"Stopped."})},e.key);case"turn-done":return e.ok||n.has(e.key)?e.durationMs>0?r.jsx("li",{className:`${j.item} ${j.meta}`,"data-kind":"turn-done",children:r.jsx("span",{className:j.metaText,children:Xt(e.durationMs)})},e.key):null:r.jsx("li",{className:j.item,"data-kind":"turn-done",children:r.jsxs("div",{id:Jt(e.key),className:`${j.note} ${j.noteError}`,children:["Turn ended without a result (",r.jsx("span",{className:j.noteDuration,children:Xt(e.durationMs)}),")."]})},e.key);default:return null}}function ga({item:e}){return r.jsxs("details",{className:j.thinking,"data-state-key":`thinking:${e.key}`,children:[r.jsx("summary",{className:j.thinkingSummary,children:"Thinking"}),r.jsx("div",{className:j.thinkingBody,children:e.text})]})}function gm({item:e,facts:t}){const n=e.pending?"running":e.errorCount>0?`${e.errorCount} failed`:e.spanMs!==null&&e.spanMs>0?Xt(e.spanMs):"done",a=`${e.toolCount} tool${e.toolCount===1?"":"s"}`;return r.jsxs("details",{className:`${j.toolRun} ${e.errorCount>0?j.toolFailed:""}`,"data-state-key":`toolgroup:${e.key}`,children:[r.jsxs("summary",{className:j.toolLine,"aria-label":`${a}: ${e.summary} (${n})`,children:[r.jsx("span",{className:j.toolGlyph,"aria-hidden":"true"}),r.jsx("span",{className:j.toolName,children:a}),e.summary?r.jsx("span",{className:j.toolArg,title:e.summary,children:e.summary}):null,r.jsx("span",{className:j.toolState,children:n})]}),r.jsx("div",{className:j.toolRunBody,children:r.jsx("ol",{className:j.toolRunList,children:e.items.map(s=>r.jsx("li",{"data-member":s.kind,children:s.kind==="tool"?r.jsx(ma,{name:s.name,input:s.input,result:s.result,toolUseId:s.toolUseId,durationMs:s.durationMs,facts:t.get(s.toolUseId)}):r.jsx(ga,{item:s})},s.key))})})]})}const _m=3e4;function ym(e=!0){const t=Er(dt);m.useEffect(()=>{if(!e)return;const n=()=>{typeof document<"u"&&document.visibilityState==="hidden"||t()},a=window.setInterval(n,_m);return document.addEventListener("visibilitychange",n),()=>{window.clearInterval(a),document.removeEventListener("visibilitychange",n)}},[e,t])}function xm(e){const{view:t,seats:n,projects:a,dispatchEnabled:s,locked:i,hasAnySessions:o,onSend:c,onStop:u,onRename:d,onDelete:p,onSeatChange:_,onNew:g,onRetry:N,sidebarCollapsed:f,onToggleSidebar:y,resourcesOpen:x,onToggleResources:b}=e,w=t.session,[A,E]=m.useState(!1),[P,W]=m.useState(""),[me,oe]=m.useState(!1),[Q,G]=m.useState(!1),de=m.useRef(null),H=m.useId();ym(),m.useEffect(()=>{E(!1),oe(!1)},[t.sessionId]),m.useEffect(()=>{A&&de.current?.select()},[A]);const ie=r.jsx(r.Fragment,{children:f?r.jsx("button",{type:"button",className:U.ghostIcon,onClick:y,title:"Show chat list","aria-label":"Show chat list",children:r.jsx(Lr,{})}):null});if(!t.sessionId)return r.jsxs("section",{className:U.workspace,"aria-label":"Chat",children:[r.jsxs("header",{className:U.header,"data-app-region":"drag",children:[ie,r.jsx("div",{className:U.headerSpacer}),r.jsx(Nr,{open:x,onToggle:b})]}),r.jsxs("div",{className:U.emptyState,children:[r.jsx("span",{className:U.emptyMark,"aria-hidden":"true",children:r.jsx(ao,{size:36})}),r.jsx("h1",{className:U.emptyTitle,children:o?"Pick a chat, or start a new one":"No chats yet — ⌘N"}),r.jsx("p",{className:U.emptyBody,children:"Open a project, choose a seat — a Claude or Codex account, Grok, or a local Ollama model — and talk to an agent that can edit that project."}),r.jsxs("button",{type:"button",className:U.emptyButton,onClick:g,children:["New chat ",r.jsx("kbd",{children:"⌘N"})]}),s?null:r.jsxs("p",{className:U.emptyWarn,role:"status",children:["This server was started without dispatch, so chats are read-only here. Run ",r.jsx("code",{children:"ashlr verse"})," to enable sending."]})]})]});async function J(){const D=P.trim();if(E(!1),!(!w||!D||D===w.title)){G(!0);try{await d(D)}finally{G(!1)}}}function he(D){D.key==="Enter"?(D.preventDefault(),J()):D.key==="Escape"&&(D.preventDefault(),E(!1))}const se=w?.status==="running",Z=w?Ja(n,w):null,B=w?Ir(n,w.seatId)??null:null,ee=B===null?null:ht(B),S=w===null?"":`${B===null||ee===null?vt(n,w):qr(B,ee)} · ${w.projectPath}`,I=s?null:"Sending is disabled: this server was started without dispatch.";return r.jsxs("section",{className:U.workspace,"aria-labelledby":H,children:[r.jsxs("header",{className:U.header,"data-app-region":"drag",children:[ie,w?A?r.jsx("input",{ref:de,className:U.titleInput,value:P,"aria-label":"Chat title",onChange:D=>W(D.target.value),onBlur:()=>{J()},onKeyDown:he,maxLength:120}):r.jsx("h1",{id:H,className:U.title,children:r.jsx("button",{type:"button",className:U.titleButton,title:"Rename chat",disabled:Q||!s,onClick:()=>{W(w.title),E(!0)},children:w.title||"Untitled chat"})}):r.jsx("h1",{id:H,className:`${U.title} skeleton ${U.titleSkeleton}`,"aria-label":"Loading chat"}),w?r.jsxs("span",{className:`${U.seatPill} ${U[`engine-${w.engine}`]??""}`,"data-engine":w.engine,"data-seat-capacity":ee!==null&&Ps(ee.cls)?ee.cls:void 0,title:S,children:[r.jsx("span",{className:U.engineDot,"aria-hidden":"true"}),r.jsx("span",{className:U.seatText,children:vt(n,w)}),r.jsx("span",{className:U.projectName,children:Wn(w.projectPath,a)}),ee!==null&&Ps(ee.cls)?r.jsx(Gn,{view:ee}):null]}):null,r.jsx("div",{className:U.headerSpacer}),t.stream==="reconnecting"?r.jsx("span",{className:U.streamState,role:"status",children:"reconnecting…"}):null,w?r.jsx(du,{contextTokens:w.usage.contextTokens,contextWindow:Z}):null,w?me?r.jsxs("span",{className:U.confirm,role:"group","aria-label":"Confirm delete",children:[r.jsx("span",{className:U.confirmText,children:"Delete this chat?"}),r.jsx("button",{type:"button",className:U.danger,disabled:Q,onClick:async()=>{G(!0);try{await p()||oe(!1)}finally{G(!1)}},children:"Delete"}),r.jsx("button",{type:"button",className:U.ghost,onClick:()=>oe(!1),children:"Keep"})]}):r.jsx("button",{type:"button",className:U.ghostIcon,onClick:()=>oe(!0),disabled:!s||se,"aria-label":"Delete chat",title:se?"Stop the turn before deleting":"Delete chat",children:r.jsx(oo,{})}):null,r.jsx(Nr,{open:x,onToggle:b})]}),r.jsx(fm,{transcript:t.transcript,loaded:t.loaded,loadError:t.loadError,onRetry:N}),w?r.jsx(yu,{sessionId:w.id,seats:n,seat:{seatId:w.seatId,model:w.model},engine:w.engine,running:se,disabled:!s,disabledReason:I,locked:i,hintSeen:w.turnCount>0,contextTokens:w.usage.contextTokens,contextWindow:Z,onSend:c,onStop:u,onSeatChange:_,autoFocus:!0},w.id):null]})}function Nr({open:e,onToggle:t}){return r.jsx("button",{type:"button",className:U.ghostIcon,onClick:t,"aria-pressed":e,title:e?"Hide resources":"Show resources","aria-label":"Resources",children:r.jsx(io,{})})}const km="_chat_fzgvr_6",bm="_main_fzgvr_30",wm="_banner_fzgvr_40",Tm="_bannerWarn_fzgvr_41",Sm="_resize_fzgvr_75",Nm="_scrim_fzgvr_94",lt={chat:km,main:bm,banner:wm,bannerWarn:Tm,resize:Sm,scrim:Nm},Hn="ashlr.verse.selected.v1";function jm(){try{return localStorage.getItem(Hn)}catch{return null}}function jr(e){return e instanceof Ua?"This server was started without dispatch — run `ashlr verse` to chat.":e instanceof Wa?e.status===409?"A turn is already running in this chat. Stop it first.":e.status===413?"That message is too large (64 KB max).":e.status===401?"Mutation token was rejected. Unlock again with the token ashlr verse printed.":e.message:e instanceof Error?e.message:"Something went wrong."}function Hm(){const e=$n(dt),t=$n(Is),n=Ln(Is),a=Ln(dt),s=Fa(),i=La(),o=lo(),[c,u]=m.useState(jm),[d,p]=m.useState(""),[_,g]=m.useState({open:!1}),[N,f]=m.useState(!1),[y,x]=m.useState(null),[b,w]=m.useState(!1),[A,E]=m.useState(0),[P,W]=m.useState({open:!1,reason:""}),me=m.useRef(null),oe=m.useRef(null),Q=m.useMemo(()=>e.data?.seats??[],[e.data]),G=m.useMemo(()=>e.data?.projects??[],[e.data]),de=e.data?.dispatchEnabled??!0,H=$c(c,A),ie=m.useMemo(()=>{const R=t.data??e.data?.sessions??[];if(!H.session)return R;const L=H.session;return R.some(le=>le.id===L.id)?R.map(le=>le.id===L.id?L:le):[L,...R]},[t.data,e.data,H.session]),J=m.useCallback(R=>{u(R);try{R?localStorage.setItem(Hn,R):localStorage.removeItem(Hn)}catch{}},[]);m.useEffect(()=>{!c||!t.data||!t.data.some(R=>R.id===c)&&!H.session&&J(null)},[c,t.data,H.session,J]),m.useEffect(()=>Ic(),[]);const he=m.useCallback((R,L)=>s.hasHold?L():new Promise(le=>{me.current={run:()=>{L().then(le)},cancel:()=>le(null)},W({open:!0,reason:R})}),[s.hasHold]),se=m.useCallback(R=>{R instanceof co||i.show(jr(R),"danger")},[i]),Z=m.useCallback((R={})=>{x(null);const L=H.session,le=R.projectPath!==void 0?R.projectPath:L?.projectPath??null,q=L&&le===L.projectPath?{seatId:L.seatId,model:L.model}:null,Te=R.seat??q??uo(le);g({open:!0,projectPath:le,seat:Te})},[H.session]),B=m.useCallback(async R=>{await he("Starting a chat spawns an agent process for this project.",async()=>{f(!0),x(null);try{const L=await ho(R);po(L.projectPath,{seatId:L.seatId,model:L.model}),wn(L.id,L),g({open:!1}),J(L.id),i.show(`Started “${L.title}”`,"success")}catch(L){x(jr(L))}finally{f(!1)}})},[he,J,i]),ee=m.useCallback(async R=>{const L=c;return L?await he("Sending a message runs the agent against this project.",async()=>{qs(L,"running");try{const q=await fo(L,R);return wn(L,q.session,q.turnId),!0}catch(q){return qs(L,"idle"),se(q),!1}})===!0:!1},[c,he,se]),S=m.useCallback((R=c)=>{R&&he("Stopping the running turn.",async()=>{try{await mo(R)}catch(L){se(L)}})},[c,he,se]),I=m.useCallback(async R=>{const L=c;return L?await he("Renaming a chat.",async()=>{try{const q=await go(L,R);return wn(L,q),!0}catch(q){return se(q),!1}})===!0:!1},[c,he,se]),D=m.useCallback(async()=>{const R=c;return R?await he("Deleting a chat removes its transcript from disk.",async()=>{try{return await _o(R),ul(R),Ha(R),J(null),i.show("Chat deleted.","neutral"),!0}catch(le){return se(le),!1}})===!0:!1},[c,he,se,J,i]),ke=m.useCallback(R=>{const L=H.session;L&&(Z({projectPath:L.projectPath,seat:R}),i.show("Chats are bound to one seat — starting a new chat on the same project.","neutral"))},[H.session,Z,i]),_e=m.useRef(0);m.useEffect(()=>{const R=o.command;!R||R.nonce===_e.current||(_e.current=R.nonce,R.name==="quick-switcher"?w(!0):Z(),yo())},[o.command,H.session,Z]);const K=m.useCallback((R,L)=>{R==="sidebar"?xo(L):ko(L)},[]);function Fe(R){return L=>{const le=R==="sidebar"?Ls:Ms,q=R==="sidebar"?o.sidebarWidth:o.resourcesWidth,Te=R==="sidebar"?L.key==="ArrowRight":L.key==="ArrowLeft",te=R==="sidebar"?L.key==="ArrowLeft":L.key==="ArrowRight",tt=Te?q+20:te?q-20:L.key==="Home"?le.min:L.key==="End"?le.max:null;tt!==null&&(L.preventDefault(),K(R,tt))}}function et(R){const L=R==="sidebar"?Ls:Ms,le=R==="sidebar"?o.sidebarWidth:o.resourcesWidth;return r.jsx("div",{className:lt.resize,role:"separator",tabIndex:0,"aria-orientation":"vertical","aria-label":R==="sidebar"?"Resize chat list":"Resize resources panel","aria-valuemin":L.min,"aria-valuemax":L.max,"aria-valuenow":le,onKeyDown:Fe(R),onPointerDown:q=>{oe.current={id:q.pointerId,x:q.clientX,start:le,side:R},q.currentTarget.setPointerCapture?.(q.pointerId)},onPointerMove:q=>{const Te=oe.current;if(!Te||Te.id!==q.pointerId)return;const te=q.clientX-Te.x;K(Te.side,Te.side==="sidebar"?Te.start+te:Te.start-te)},onPointerUp:()=>{oe.current=null},onPointerCancel:()=>{oe.current=null}})}const ft={"--verse-sidebar-width":`${o.sidebarWidth}px`,"--verse-resources-width":`${o.resourcesWidth}px`},z=e.data?!e.data.dispatchEnabled:!1,V=o.resourcesOpen,be=o.sidebarCollapsed;return r.jsxs("div",{className:lt.chat,style:ft,"data-sidebar":be?"collapsed":"open","data-resources":V?"open":"closed",children:[r.jsx(Ec,{sessions:ie,sessionsStatus:t.status,sessionsError:t.error?.message??null,projects:G,seats:Q,selectedId:c,query:d,onQuery:p,onSelect:R=>{J(R),window.matchMedia?.("(max-width: 760px)")?.matches===!0&&Bt(!0)},onNew:()=>Z(),onRetry:()=>{n(),a()},onCollapse:()=>Bt(!0),onDisconnect:()=>{Ba()}}),et("sidebar"),r.jsx("button",{type:"button",className:lt.scrim,"aria-label":"Close chat list",tabIndex:-1,onClick:()=>Bt(!0)}),r.jsxs("div",{className:lt.main,children:[e.status==="error"&&!e.data?r.jsxs("div",{role:"alert",className:lt.banner,children:[r.jsx("span",{children:e.error?.message??"Could not load Verse."}),r.jsx("button",{type:"button",onClick:a,children:"Retry"})]}):z?r.jsxs("div",{role:"status",className:lt.bannerWarn,children:["Read-only: this server was started without dispatch. Run ",r.jsx("code",{children:"ashlr verse"})," to send messages."]}):null,r.jsx(xm,{view:H,seats:Q,projects:G,dispatchEnabled:de,locked:!s.hasHold,hasAnySessions:ie.length>0,onSend:ee,onStop:()=>S(),onRename:I,onDelete:D,onSeatChange:ke,onNew:()=>Z(),onRetry:()=>E(R=>R+1),sidebarCollapsed:be,onToggleSidebar:()=>Bt(!be),resourcesOpen:V,onToggleResources:()=>$s(!V)})]}),V?r.jsxs(r.Fragment,{children:[et("resources"),r.jsx(nc,{bootstrap:e.data,sessions:ie,current:H.session,onStop:R=>S(R),onOpen:J,onClose:()=>$s(!1)})]}):null,r.jsx(Gi,{open:_.open,onClose:()=>g({open:!1}),projects:G,seats:Q,initialProjectPath:_.projectPath??null,initialSeat:_.seat??null,busy:N,error:y,onCreate:B}),r.jsx(rl,{open:b,onClose:()=>w(!1),sessions:ie,seats:Q,projects:G,onSelectSession:J,onNewChat:R=>Z({projectPath:H.session?.projectPath??null,seat:R})}),r.jsx($a,{open:P.open,reason:P.reason,tokenLabel:"Mutation token",tokenHelp:"the mutation token ashlr verse printed",onClose:()=>{W({open:!1,reason:""});const R=me.current;R&&setTimeout(()=>{me.current===R&&(me.current=null,R.cancel())},0)},onUnlocked:()=>{const R=me.current;me.current=null,R?.run()}})]})}export{Hm as ChatSection};
|
|
77
|
-
//# sourceMappingURL=ChatSection-bRAzlMth.js.map
|