cli-jaw 2.17.38 → 2.17.39
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/README.md +40 -1
- package/dist/bin/commands/chat.js +19 -2
- package/dist/bin/commands/chat.js.map +1 -1
- package/dist/bin/commands/dashboard.js +27 -10
- package/dist/bin/commands/dashboard.js.map +1 -1
- package/dist/bin/commands/init.js +10 -1
- package/dist/bin/commands/init.js.map +1 -1
- package/dist/bin/commands/tui/activity-answer-read.js +122 -0
- package/dist/bin/commands/tui/activity-answer-read.js.map +1 -0
- package/dist/bin/commands/tui/activity-fallback.js +40 -0
- package/dist/bin/commands/tui/activity-fallback.js.map +1 -0
- package/dist/bin/commands/tui/activity-handler.js +273 -0
- package/dist/bin/commands/tui/activity-handler.js.map +1 -0
- package/dist/bin/commands/tui/activity-history.js +245 -0
- package/dist/bin/commands/tui/activity-history.js.map +1 -0
- package/dist/bin/commands/tui/activity-http.js +88 -0
- package/dist/bin/commands/tui/activity-http.js.map +1 -0
- package/dist/bin/commands/tui/activity-replay.js +250 -0
- package/dist/bin/commands/tui/activity-replay.js.map +1 -0
- package/dist/bin/commands/tui/api.js +48 -1
- package/dist/bin/commands/tui/api.js.map +1 -1
- package/dist/bin/commands/tui/channel.js +11 -1
- package/dist/bin/commands/tui/channel.js.map +1 -1
- package/dist/bin/commands/tui/fullscreen-mode.js +78 -12
- package/dist/bin/commands/tui/fullscreen-mode.js.map +1 -1
- package/dist/bin/commands/tui/input-handler.js +7 -0
- package/dist/bin/commands/tui/input-handler.js.map +1 -1
- package/dist/bin/commands/tui/overlays.js +6 -3
- package/dist/bin/commands/tui/overlays.js.map +1 -1
- package/dist/bin/commands/tui/renderer.js +27 -15
- package/dist/bin/commands/tui/renderer.js.map +1 -1
- package/dist/bin/commands/tui/types.js.map +1 -1
- package/dist/bin/commands/tui/ws-handler.js +158 -13
- package/dist/bin/commands/tui/ws-handler.js.map +1 -1
- package/dist/server.js +2 -0
- package/dist/server.js.map +1 -1
- package/dist/src/agent/claude-runtime-pool.js +386 -0
- package/dist/src/agent/claude-runtime-pool.js.map +1 -0
- package/dist/src/agent/claude-runtime-run.js +366 -0
- package/dist/src/agent/claude-runtime-run.js.map +1 -0
- package/dist/src/agent/codex-app-events.js +3 -1
- package/dist/src/agent/codex-app-events.js.map +1 -1
- package/dist/src/agent/events/claude.js +11 -9
- package/dist/src/agent/events/claude.js.map +1 -1
- package/dist/src/agent/events/codex.js +2 -0
- package/dist/src/agent/events/codex.js.map +1 -1
- package/dist/src/agent/events/cursor.js +49 -21
- package/dist/src/agent/events/cursor.js.map +1 -1
- package/dist/src/agent/events/grok.js +33 -5
- package/dist/src/agent/events/grok.js.map +1 -1
- package/dist/src/agent/events/helpers.js +9 -0
- package/dist/src/agent/events/helpers.js.map +1 -1
- package/dist/src/agent/events/index.js +13 -1
- package/dist/src/agent/events/index.js.map +1 -1
- package/dist/src/agent/events/opencode.js +65 -1
- package/dist/src/agent/events/opencode.js.map +1 -1
- package/dist/src/agent/lifecycle-handler.js +185 -62
- package/dist/src/agent/lifecycle-handler.js.map +1 -1
- package/dist/src/agent/merge-tool-log.js +77 -0
- package/dist/src/agent/merge-tool-log.js.map +1 -0
- package/dist/src/agent/native-runtime-run.js +235 -0
- package/dist/src/agent/native-runtime-run.js.map +1 -0
- package/dist/src/agent/pi-runtime.js +468 -101
- package/dist/src/agent/pi-runtime.js.map +1 -1
- package/dist/src/agent/prompt-context.js +88 -2
- package/dist/src/agent/prompt-context.js.map +1 -1
- package/dist/src/agent/runtime/acp/callbacks.js +223 -0
- package/dist/src/agent/runtime/acp/callbacks.js.map +1 -0
- package/dist/src/agent/runtime/acp/config.js +182 -0
- package/dist/src/agent/runtime/acp/config.js.map +1 -0
- package/dist/src/agent/runtime/acp/connection.js +254 -0
- package/dist/src/agent/runtime/acp/connection.js.map +1 -0
- package/dist/src/agent/runtime/acp/content.js +63 -0
- package/dist/src/agent/runtime/acp/content.js.map +1 -0
- package/dist/src/agent/runtime/acp/cursor-session.js +92 -0
- package/dist/src/agent/runtime/acp/cursor-session.js.map +1 -0
- package/dist/src/agent/runtime/acp/grok-control.js +3 -0
- package/dist/src/agent/runtime/acp/grok-control.js.map +1 -0
- package/dist/src/agent/runtime/acp/grok-events.js +28 -0
- package/dist/src/agent/runtime/acp/grok-events.js.map +1 -0
- package/dist/src/agent/runtime/acp/grok-options.js +63 -0
- package/dist/src/agent/runtime/acp/grok-options.js.map +1 -0
- package/dist/src/agent/runtime/acp/grok-session.js +118 -0
- package/dist/src/agent/runtime/acp/grok-session.js.map +1 -0
- package/dist/src/agent/runtime/acp/notification-queue.js +107 -0
- package/dist/src/agent/runtime/acp/notification-queue.js.map +1 -0
- package/dist/src/agent/runtime/acp/permissions.js +133 -0
- package/dist/src/agent/runtime/acp/permissions.js.map +1 -0
- package/dist/src/agent/runtime/acp/projection.js +162 -0
- package/dist/src/agent/runtime/acp/projection.js.map +1 -0
- package/dist/src/agent/runtime/acp/replacement-turn.js +187 -0
- package/dist/src/agent/runtime/acp/replacement-turn.js.map +1 -0
- package/dist/src/agent/runtime/acp/replacement.js +159 -0
- package/dist/src/agent/runtime/acp/replacement.js.map +1 -0
- package/dist/src/agent/runtime/acp/runtime-session.js +245 -0
- package/dist/src/agent/runtime/acp/runtime-session.js.map +1 -0
- package/dist/src/agent/runtime/acp/session.js +426 -0
- package/dist/src/agent/runtime/acp/session.js.map +1 -0
- package/dist/src/agent/runtime/acp/wire.js +46 -0
- package/dist/src/agent/runtime/acp/wire.js.map +1 -0
- package/dist/src/agent/runtime/claude-run-controls.js +41 -0
- package/dist/src/agent/runtime/claude-run-controls.js.map +1 -0
- package/dist/src/agent/runtime/claude-sdk-children.js +405 -0
- package/dist/src/agent/runtime/claude-sdk-children.js.map +1 -0
- package/dist/src/agent/runtime/claude-sdk-close.js +43 -0
- package/dist/src/agent/runtime/claude-sdk-close.js.map +1 -0
- package/dist/src/agent/runtime/claude-sdk-content.js +42 -0
- package/dist/src/agent/runtime/claude-sdk-content.js.map +1 -0
- package/dist/src/agent/runtime/claude-sdk-events.js +337 -0
- package/dist/src/agent/runtime/claude-sdk-events.js.map +1 -0
- package/dist/src/agent/runtime/claude-sdk-hooks.js +32 -0
- package/dist/src/agent/runtime/claude-sdk-hooks.js.map +1 -0
- package/dist/src/agent/runtime/claude-sdk-input.js +58 -0
- package/dist/src/agent/runtime/claude-sdk-input.js.map +1 -0
- package/dist/src/agent/runtime/claude-sdk-loader.js +21 -0
- package/dist/src/agent/runtime/claude-sdk-loader.js.map +1 -0
- package/dist/src/agent/runtime/claude-sdk-messages.js +133 -0
- package/dist/src/agent/runtime/claude-sdk-messages.js.map +1 -0
- package/dist/src/agent/runtime/claude-sdk-metadata.js +40 -0
- package/dist/src/agent/runtime/claude-sdk-metadata.js.map +1 -0
- package/dist/src/agent/runtime/claude-sdk-options.js +70 -0
- package/dist/src/agent/runtime/claude-sdk-options.js.map +1 -0
- package/dist/src/agent/runtime/claude-sdk-owners.js +113 -0
- package/dist/src/agent/runtime/claude-sdk-owners.js.map +1 -0
- package/dist/src/agent/runtime/claude-sdk-permissions.js +283 -0
- package/dist/src/agent/runtime/claude-sdk-permissions.js.map +1 -0
- package/dist/src/agent/runtime/claude-sdk-process.js +72 -0
- package/dist/src/agent/runtime/claude-sdk-process.js.map +1 -0
- package/dist/src/agent/runtime/claude-sdk-roots.js +103 -0
- package/dist/src/agent/runtime/claude-sdk-roots.js.map +1 -0
- package/dist/src/agent/runtime/claude-sdk-session.js +518 -0
- package/dist/src/agent/runtime/claude-sdk-session.js.map +1 -0
- package/dist/src/agent/runtime/codex-projection.js +126 -0
- package/dist/src/agent/runtime/codex-projection.js.map +1 -0
- package/dist/src/agent/runtime/events.js +39 -0
- package/dist/src/agent/runtime/events.js.map +1 -0
- package/dist/src/agent/runtime/grok-main.js +7 -0
- package/dist/src/agent/runtime/grok-main.js.map +1 -0
- package/dist/src/agent/runtime/outcome.js +28 -0
- package/dist/src/agent/runtime/outcome.js.map +1 -0
- package/dist/src/agent/runtime/pi-projection.js +97 -0
- package/dist/src/agent/runtime/pi-projection.js.map +1 -0
- package/dist/src/agent/runtime/pi-raw-trace.js +87 -0
- package/dist/src/agent/runtime/pi-raw-trace.js.map +1 -0
- package/dist/src/agent/runtime/pi-turn.js +159 -0
- package/dist/src/agent/runtime/pi-turn.js.map +1 -0
- package/dist/src/agent/runtime/print-activity.js +47 -0
- package/dist/src/agent/runtime/print-activity.js.map +1 -0
- package/dist/src/agent/runtime/print-projection.js +51 -0
- package/dist/src/agent/runtime/print-projection.js.map +1 -0
- package/dist/src/agent/runtime/projection.js +283 -0
- package/dist/src/agent/runtime/projection.js.map +1 -0
- package/dist/src/agent/runtime/replace-turn.js +36 -0
- package/dist/src/agent/runtime/replace-turn.js.map +1 -0
- package/dist/src/agent/runtime/requests.js +207 -0
- package/dist/src/agent/runtime/requests.js.map +1 -0
- package/dist/src/agent/runtime/selection.js +31 -0
- package/dist/src/agent/runtime/selection.js.map +1 -0
- package/dist/src/agent/runtime/session.js +2 -0
- package/dist/src/agent/runtime/session.js.map +1 -0
- package/dist/src/agent/runtime-pool-contract.js +2 -0
- package/dist/src/agent/runtime-pool-contract.js.map +1 -0
- package/dist/src/agent/runtime-pool.js +317 -9
- package/dist/src/agent/runtime-pool.js.map +1 -1
- package/dist/src/agent/session-persistence.js +10 -2
- package/dist/src/agent/session-persistence.js.map +1 -1
- package/dist/src/agent/spawn.js +990 -143
- package/dist/src/agent/spawn.js.map +1 -1
- package/dist/src/agent/steer-input-guard.js +33 -0
- package/dist/src/agent/steer-input-guard.js.map +1 -0
- package/dist/src/cli/acp-client.js +20 -21
- package/dist/src/cli/acp-client.js.map +1 -1
- package/dist/src/cli/handlers-runtime.js +21 -12
- package/dist/src/cli/handlers-runtime.js.map +1 -1
- package/dist/src/cli/registry.js +2 -0
- package/dist/src/cli/registry.js.map +1 -1
- package/dist/src/cli/tui/activity-answer.js +97 -0
- package/dist/src/cli/tui/activity-answer.js.map +1 -0
- package/dist/src/cli/tui/activity-history.js +364 -0
- package/dist/src/cli/tui/activity-history.js.map +1 -0
- package/dist/src/cli/tui/activity-linear.js +29 -0
- package/dist/src/cli/tui/activity-linear.js.map +1 -0
- package/dist/src/cli/tui/activity-terminal-text.js +111 -0
- package/dist/src/cli/tui/activity-terminal-text.js.map +1 -0
- package/dist/src/cli/tui/activity.js +95 -0
- package/dist/src/cli/tui/activity.js.map +1 -0
- package/dist/src/cli/tui/cell-width.js +41 -0
- package/dist/src/cli/tui/cell-width.js.map +1 -0
- package/dist/src/cli/tui/events.js +15 -0
- package/dist/src/cli/tui/events.js.map +1 -1
- package/dist/src/cli/tui/keymap.js +2 -0
- package/dist/src/cli/tui/keymap.js.map +1 -1
- package/dist/src/cli/tui/render/composer-box.js +12 -14
- package/dist/src/cli/tui/render/composer-box.js.map +1 -1
- package/dist/src/cli/tui/render/viewport.js +9 -5
- package/dist/src/cli/tui/render/viewport.js.map +1 -1
- package/dist/src/cli/tui/renderers.js +119 -139
- package/dist/src/cli/tui/renderers.js.map +1 -1
- package/dist/src/cli/tui/settings-screen.js +11 -0
- package/dist/src/cli/tui/settings-screen.js.map +1 -1
- package/dist/src/cli/tui/store.js +3 -0
- package/dist/src/cli/tui/store.js.map +1 -1
- package/dist/src/cli/tui/transcript.js +68 -0
- package/dist/src/cli/tui/transcript.js.map +1 -1
- package/dist/src/core/bus.js +8 -0
- package/dist/src/core/bus.js.map +1 -1
- package/dist/src/core/chat-sessions.js +1 -0
- package/dist/src/core/chat-sessions.js.map +1 -1
- package/dist/src/core/compact.js +10 -3
- package/dist/src/core/compact.js.map +1 -1
- package/dist/src/core/config.js +21 -0
- package/dist/src/core/config.js.map +1 -1
- package/dist/src/core/db.js +26 -0
- package/dist/src/core/db.js.map +1 -1
- package/dist/src/core/runtime-settings.js +44 -3
- package/dist/src/core/runtime-settings.js.map +1 -1
- package/dist/src/core/session-ops.js +40 -9
- package/dist/src/core/session-ops.js.map +1 -1
- package/dist/src/core/settings-merge.js +31 -1
- package/dist/src/core/settings-merge.js.map +1 -1
- package/dist/src/core/settings-watch.js +8 -1
- package/dist/src/core/settings-watch.js.map +1 -1
- package/dist/src/discord/bot.js +28 -9
- package/dist/src/discord/bot.js.map +1 -1
- package/dist/src/discord/send-only-client.js +4 -0
- package/dist/src/discord/send-only-client.js.map +1 -1
- package/dist/src/manager/routes/telegram-hub.js +2 -1
- package/dist/src/manager/routes/telegram-hub.js.map +1 -1
- package/dist/src/manager/scan.js +12 -0
- package/dist/src/manager/scan.js.map +1 -1
- package/dist/src/manager/server.js +89 -13
- package/dist/src/manager/server.js.map +1 -1
- package/dist/src/manager/telegram-hub/hub-bot.js +9 -3
- package/dist/src/manager/telegram-hub/hub-bot.js.map +1 -1
- package/dist/src/orchestrator/collect.js +80 -6
- package/dist/src/orchestrator/collect.js.map +1 -1
- package/dist/src/orchestrator/gateway.js +13 -10
- package/dist/src/orchestrator/gateway.js.map +1 -1
- package/dist/src/orchestrator/pipeline.js +68 -29
- package/dist/src/orchestrator/pipeline.js.map +1 -1
- package/dist/src/orchestrator/request-registry.js +2 -0
- package/dist/src/orchestrator/request-registry.js.map +1 -1
- package/dist/src/orchestrator/scope.js +15 -0
- package/dist/src/orchestrator/scope.js.map +1 -1
- package/dist/src/routes/memory.js +2 -2
- package/dist/src/routes/memory.js.map +1 -1
- package/dist/src/routes/messages.js +51 -18
- package/dist/src/routes/messages.js.map +1 -1
- package/dist/src/routes/orchestrate.js +29 -17
- package/dist/src/routes/orchestrate.js.map +1 -1
- package/dist/src/routes/runtime-request-notices.js +23 -0
- package/dist/src/routes/runtime-request-notices.js.map +1 -0
- package/dist/src/routes/runtime-requests.js +43 -0
- package/dist/src/routes/runtime-requests.js.map +1 -0
- package/dist/src/routes/settings.js +7 -1
- package/dist/src/routes/settings.js.map +1 -1
- package/dist/src/routes/traces.js +93 -6
- package/dist/src/routes/traces.js.map +1 -1
- package/dist/src/shared/activity-read.js +158 -0
- package/dist/src/shared/activity-read.js.map +1 -0
- package/dist/src/shared/activity-replay.js +279 -0
- package/dist/src/shared/activity-replay.js.map +1 -0
- package/dist/src/shared/activity-state.js +144 -0
- package/dist/src/shared/activity-state.js.map +1 -0
- package/dist/src/shared/isolated-qa.js +132 -0
- package/dist/src/shared/isolated-qa.js.map +1 -0
- package/dist/src/shared/presentation.js +21 -0
- package/dist/src/shared/presentation.js.map +1 -0
- package/dist/src/shared/runtime-contract.js +2 -0
- package/dist/src/shared/runtime-contract.js.map +1 -0
- package/dist/src/shared/runtime-event-parse.js +99 -0
- package/dist/src/shared/runtime-event-parse.js.map +1 -0
- package/dist/src/shared/runtime-request-notice.js +9 -0
- package/dist/src/shared/runtime-request-notice.js.map +1 -0
- package/dist/src/shared/tool-log-sanitize.js +11 -5
- package/dist/src/shared/tool-log-sanitize.js.map +1 -1
- package/dist/src/slack/bot.js +20 -7
- package/dist/src/slack/bot.js.map +1 -1
- package/dist/src/slack/send-only-client.js +3 -0
- package/dist/src/slack/send-only-client.js.map +1 -1
- package/dist/src/telegram/bot.js +27 -5
- package/dist/src/telegram/bot.js.map +1 -1
- package/dist/src/telegram/rich-message.js +47 -1
- package/dist/src/telegram/rich-message.js.map +1 -1
- package/dist/src/trace/activity-control.js +87 -0
- package/dist/src/trace/activity-control.js.map +1 -0
- package/dist/src/trace/activity-journal.js +155 -0
- package/dist/src/trace/activity-journal.js.map +1 -0
- package/dist/src/trace/activity-retention.js +55 -0
- package/dist/src/trace/activity-retention.js.map +1 -0
- package/dist/src/trace/runtime-body-codec.js +162 -0
- package/dist/src/trace/runtime-body-codec.js.map +1 -0
- package/dist/src/trace/store.js +65 -22
- package/dist/src/trace/store.js.map +1 -1
- package/package.json +8 -5
- package/public/css/activity.css +211 -0
- package/public/css/chat-search.css +13 -1
- package/public/css/chat.css +10 -0
- package/public/css/native-requests.css +55 -0
- package/public/css/trace-drawer.css +15 -8
- package/public/dist/assets/AdvancedExport-q4DnVxpT.js +1 -0
- package/public/dist/assets/Agent-CI1AfYOA.js +1 -0
- package/public/dist/assets/Browser-D9kwPJfN.js +1 -0
- package/public/dist/assets/BrowserPanel-CVZyvbth.js +3 -0
- package/public/dist/assets/{ChannelEnablementControl-B9KiYDZZ.js → ChannelEnablementControl-BkxeZonM.js} +1 -1
- package/public/dist/assets/ChannelsDiscord-CulKFTiX.js +1 -0
- package/public/dist/assets/ChannelsSlack-D09H8GKC.js +1 -0
- package/public/dist/assets/ChannelsTelegram-yA_NMLfM.js +1 -0
- package/public/dist/assets/CodeCanvas-DUaLWPBe.js +3 -0
- package/public/dist/assets/{DashboardEmbeddingSection-CIOwsVB5.js → DashboardEmbeddingSection-R9vUu9X2.js} +1 -1
- package/public/dist/assets/{DashboardMeta-D6nJsY8n.js → DashboardMeta-BKutQ9Ps.js} +1 -1
- package/public/dist/assets/DesignPanel-CE5jvzt4.js +2 -0
- package/public/dist/assets/{DiffPanel-ZaDoV7qS.js → DiffPanel-D9Cch5FG.js} +2 -2
- package/public/dist/assets/Display-BPYZ295k.js +1 -0
- package/public/dist/assets/DocPanel-DvtFw8AP.js +1 -0
- package/public/dist/assets/{Employees-CR41RcWo.js → Employees-bxErTlcA.js} +1 -1
- package/public/dist/assets/FolderPanel-u2YeiFFr.js +3 -0
- package/public/dist/assets/HealthBadge-CDPKdSXc.js +1 -0
- package/public/dist/assets/{Heartbeat-CD1R95Kv.js → Heartbeat-BCt4mFWz.js} +1 -1
- package/public/dist/assets/{InlineWarn-B3bJfG-Z.js → InlineWarn-DakL-ThS.js} +1 -1
- package/public/dist/assets/MarkdownRenderer-Cc3DeHvm.js +1 -0
- package/public/dist/assets/MarkdownRenderer-DzN66XVb.js +15 -0
- package/public/dist/assets/{Mcp-DSIEQZfH.js → Mcp-Cp1ffHWt.js} +2 -2
- package/public/dist/assets/{Memory-CpZIdE1o.js → Memory-Rq4fHjZv.js} +1 -1
- package/public/dist/assets/MilkdownWysiwygEditor-xObhviw7.js +160 -0
- package/public/dist/assets/ModelProvider-BNDxlWHC.js +1 -0
- package/public/dist/assets/Network-D_OYGb_C.js +1 -0
- package/public/dist/assets/NotesGraphWorkspace-DO9LtVGF.js +1 -0
- package/public/dist/assets/PanelLayoutProvider-BFxal5fZ.js +1 -0
- package/public/dist/assets/Permissions-DZ3ADB4i.js +1 -0
- package/public/dist/assets/Permissions-wj06yuy6.js +1 -0
- package/public/dist/assets/Profile-BQiNETCP.js +1 -0
- package/public/dist/assets/Prompts-DrMb2Kom.js +1 -0
- package/public/dist/assets/{SpeechKeys-CIq4c1iz.js → SpeechKeys-DqMhN-bl.js} +1 -1
- package/public/dist/assets/{TelegramHub-BrCeAZEf.js → TelegramHub-BSZ3xTdS.js} +1 -1
- package/public/dist/assets/TerminalPanel-Dwfd6Mhs.js +16 -0
- package/public/dist/assets/TerminalPanel-muGat3B1.css +1 -0
- package/public/dist/assets/{abnfDiagram-VCTEODGH-DOF68zXc.js → abnfDiagram-VCTEODGH-Bh3YzulT.js} +1 -1
- package/public/dist/assets/api-CLHen33W.js +1 -0
- package/public/dist/assets/api-CUtiCd2-.js +1 -0
- package/public/dist/assets/{apl-CYLd9I-9.js → apl-gfMMiTNf.js} +1 -1
- package/public/dist/assets/app-Dskscukr.css +1 -0
- package/public/dist/assets/app-ckFtOSgc.js +55 -0
- package/public/dist/assets/architecture-7GRP2DOG-Bp3iCG16.js +1 -0
- package/public/dist/assets/architectureDiagram-5GKGNRK7-COhidFYz.js +36 -0
- package/public/dist/assets/asciiarmor-C_eisQCp.js +1 -0
- package/public/dist/assets/{asn1-BlhHp3qx.js → asn1-DCl_8MCW.js} +1 -1
- package/public/dist/assets/{asterisk-Q0-IBwUt.js → asterisk-BEn0Cwpx.js} +1 -1
- package/public/dist/assets/{bgtask-badge-Cu1w7rg2.js → bgtask-badge-BmSGU6nQ.js} +1 -1
- package/public/dist/assets/bgtask-badge-DKpNEyny.js +1 -0
- package/public/dist/assets/{blockDiagram-OSKFZWR5-CRNzDJwU.js → blockDiagram-OSKFZWR5--OxgY2yr.js} +4 -4
- package/public/dist/assets/bounded-api-DdpT93LB.js +1 -0
- package/public/dist/assets/{bounded-set-DXkYOGnQ.js → bounded-set-BELTet1M.js} +1 -1
- package/public/dist/assets/c4Diagram-7LVT6UL2-C0DocmNb.js +38 -0
- package/public/dist/assets/channel-DO94Q0oH.js +1 -0
- package/public/dist/assets/chunk-2Q5K7J3B-C1jixKkw.js +1 -0
- package/public/dist/assets/{chunk-2ZTRR5NV-DF9qGbFc.js → chunk-2ZTRR5NV-BFt7Dm5O.js} +1 -1
- package/public/dist/assets/chunk-3NF5O7KM-FbOqoUnr.js +168 -0
- package/public/dist/assets/{chunk-3Z5EZCMW-D-umBnbE.js → chunk-3Z5EZCMW-udVqggne.js} +1 -1
- package/public/dist/assets/{chunk-4HAMMTFA-BzeIXjef.js → chunk-4HAMMTFA-UBUVs5kk.js} +2 -2
- package/public/dist/assets/{chunk-5V3GS4D5-DB7RMaO_.js → chunk-5V3GS4D5-ecLo0f1p.js} +1 -1
- package/public/dist/assets/{chunk-5VM5RSS4-CEUkek2W.js → chunk-5VM5RSS4-ZNzvKenW.js} +1 -1
- package/public/dist/assets/{chunk-6AZGARVD-qPN7cVYY.js → chunk-6AZGARVD-Cou1D2Ji.js} +1 -1
- package/public/dist/assets/{chunk-6EIED4P4-Bt6lS0r9.js → chunk-6EIED4P4-DeqPLKcQ.js} +1 -1
- package/public/dist/assets/{chunk-6K3QC6MW-BC_6hNGf.js → chunk-6K3QC6MW-Cn9odKk7.js} +1 -1
- package/public/dist/assets/{chunk-6TQVIW2G-NQr1OdRE.js → chunk-6TQVIW2G-IVBzI7O8.js} +1 -1
- package/public/dist/assets/{chunk-747NJXEK-CukETSeX.js → chunk-747NJXEK-Bxgd5wfl.js} +1 -1
- package/public/dist/assets/{chunk-75Z2AOVW-BLiFJXcr.js → chunk-75Z2AOVW-B1-fK2mN.js} +1 -1
- package/public/dist/assets/chunk-CLGD4ZFX-CotBINqH.js +1 -0
- package/public/dist/assets/{chunk-DU6HZSFF-CqT8wcBs.js → chunk-DU6HZSFF-vsD_dO7e.js} +3 -3
- package/public/dist/assets/{chunk-F27PBJKO-Ccrogyxp.js → chunk-F27PBJKO-C3O21Si2.js} +1 -1
- package/public/dist/assets/{chunk-FOHPRMQF--f9XSh-3.js → chunk-FOHPRMQF-CoA4358r.js} +35 -35
- package/public/dist/assets/{chunk-GMAD6QVW-BJLz4nC-.js → chunk-GMAD6QVW-BSVfzVP1.js} +2 -2
- package/public/dist/assets/chunk-GVQU2GXP-CsYaquup.js +1 -0
- package/public/dist/assets/chunk-H2I77ZZE-ytBKuGMS.js +1 -0
- package/public/dist/assets/{chunk-HLEWEB6X-BKWwzzZJ.js → chunk-HLEWEB6X-bHrMh27k.js} +3 -3
- package/public/dist/assets/{chunk-I5DQTOEV-B46sdKHC.js → chunk-I5DQTOEV-BYKVfZyL.js} +1 -1
- package/public/dist/assets/{chunk-ICYGCRZG-CSu4gXtC.js → chunk-ICYGCRZG-hvV-gq8M.js} +1 -1
- package/public/dist/assets/{chunk-IH6LHLGP-B2m3mWfU.js → chunk-IH6LHLGP-DTNFuJiP.js} +1 -1
- package/public/dist/assets/{chunk-JWPE2WC7-D-FE5omP.js → chunk-JWPE2WC7-DVXcaiue.js} +1 -1
- package/public/dist/assets/{chunk-KI3K4JFJ-Bfn6wbch.js → chunk-KI3K4JFJ-B4ZziqcX.js} +1 -1
- package/public/dist/assets/chunk-L3NEJ4N5-DxbPaCWe.js +1 -0
- package/public/dist/assets/{chunk-LNGE3PJU-Dyjtq0ks.js → chunk-LNGE3PJU-5-SxdO55.js} +7 -7
- package/public/dist/assets/chunk-LQGUR6SS-C7emO-i3.js +2 -0
- package/public/dist/assets/chunk-OSK3NFVY-D_HWIC0H.js +10 -0
- package/public/dist/assets/{chunk-OUJLGHUK-DkWSHliq.js → chunk-OUJLGHUK-CTWiVXba.js} +1 -1
- package/public/dist/assets/{chunk-P2QGCYS3-B-9ymCdr.js → chunk-P2QGCYS3-D9LpOEME.js} +1 -1
- package/public/dist/assets/{chunk-POPQ4Y6H-Df0_Odad.js → chunk-POPQ4Y6H-BzSgf7pO.js} +1 -1
- package/public/dist/assets/{chunk-PWAF6VOD-B1cuaLs-.js → chunk-PWAF6VOD-CqSJPGBE.js} +1 -1
- package/public/dist/assets/{chunk-SVP7TREG-DCh4QTp-.js → chunk-SVP7TREG-NOSK04BT.js} +1 -1
- package/public/dist/assets/{chunk-UY3FDG6J--uyeDRt4.js → chunk-UY3FDG6J-BVPsKpVN.js} +1 -1
- package/public/dist/assets/{chunk-X3CZISLH-C1s9nTVF.js → chunk-X3CZISLH-ChyOdCnY.js} +1 -1
- package/public/dist/assets/{chunk-XHIXRSVI-CQtpMKYq.js → chunk-XHIXRSVI-CQipzMEr.js} +1 -1
- package/public/dist/assets/chunk-XXDRQBXY-Uq2wLB4L.js +1 -0
- package/public/dist/assets/{chunk-ZLD2IHE6-DOKyEMMC.js → chunk-ZLD2IHE6-CWSP7frq.js} +3 -3
- package/public/dist/assets/classDiagram-CYGNFDIV-C1ssjdiH.js +1 -0
- package/public/dist/assets/classDiagram-v2-TLXNO2FR-C1ssjdiH.js +1 -0
- package/public/dist/assets/clike-D_6L3tnO.js +1 -0
- package/public/dist/assets/cmake-84nbDH0I.js +1 -0
- package/public/dist/assets/cobol-DHLQUbN7.js +1 -0
- package/public/dist/assets/coffeescript-De_zI4J0.js +1 -0
- package/public/dist/assets/commonlisp-DgAKBe0r.js +1 -0
- package/public/dist/assets/{constants-BfYYzHNr.js → constants-TRkDoXvF.js} +1 -1
- package/public/dist/assets/{copy-text-Dy0kfmb9.js → copy-text-WsUHYigB.js} +1 -1
- package/public/dist/assets/cose-bilkent-JH36ORCC-BqCMCbxR.js +1 -0
- package/public/dist/assets/crystal-Bsdphhtm.js +1 -0
- package/public/dist/assets/css-CnaYoQib.js +1 -0
- package/public/dist/assets/cynefin-OW5HDTMX-57vG-IQU.js +1 -0
- package/public/dist/assets/cynefinDiagram-5FMLGOSQ-UAM-DZmU.js +62 -0
- package/public/dist/assets/cytoscape.esm-Ql0ZPabT.js +321 -0
- package/public/dist/assets/{d-BfHF1VVF.js → d-DWkQyNnU.js} +1 -1
- package/public/dist/assets/dagre-Fg-GCROL.js +1 -0
- package/public/dist/assets/{dagre-OS7QT2EB-c-JkA4ju.js → dagre-OS7QT2EB-CflcJHKB.js} +2 -2
- package/public/dist/assets/{diagram-S7CK7UJ4-CgObZnGW.js → diagram-S7CK7UJ4-Dzl9sLZD.js} +1 -1
- package/public/dist/assets/{diagram-UQ7AKVKN-DTiko3yH.js → diagram-UQ7AKVKN-BhpfQUAt.js} +2 -2
- package/public/dist/assets/{diagram-VSXAHHWV-BtwoQsOH.js → diagram-VSXAHHWV-CnuHIxOm.js} +1 -1
- package/public/dist/assets/{diagram-VX7I27RA-BvFpphqo.js → diagram-VX7I27RA-CQzbjtqd.js} +13 -13
- package/public/dist/assets/{diagram-Z3DM3KII-Zq8iJClC.js → diagram-Z3DM3KII-DR3Ie5C2.js} +1 -1
- package/public/dist/assets/dist--wUCkuiC.js +9 -0
- package/public/dist/assets/dist-B2ugUS7T.js +1 -0
- package/public/dist/assets/dist-B6-H00Bu.js +1 -0
- package/public/dist/assets/{dist-CD7tjeNO.js → dist-B_o5XbiL.js} +1 -1
- package/public/dist/assets/{dist-D8Zky4R1.js → dist-Bn361Kgk.js} +2 -2
- package/public/dist/assets/{dist-BspKh_Zg.js → dist-Box-O1ow.js} +1 -1
- package/public/dist/assets/dist-Bp7q5-Qc.js +39 -0
- package/public/dist/assets/dist-C9i-hLBK.js +1 -0
- package/public/dist/assets/{dist-JnCmAxGR.js → dist-CGUtB2hn.js} +1 -1
- package/public/dist/assets/dist-CHO5CBK1.js +1 -0
- package/public/dist/assets/dist-CJNnOuaA.js +1 -0
- package/public/dist/assets/dist-CPYD5RoF.js +1 -0
- package/public/dist/assets/dist-CW1HDUim.js +1 -0
- package/public/dist/assets/dist-Cbkb9LHa.js +1 -0
- package/public/dist/assets/dist-CcmA2WLJ.js +2 -0
- package/public/dist/assets/dist-ClT6EIJP.js +1 -0
- package/public/dist/assets/dist-D011G-p-.js +13 -0
- package/public/dist/assets/dist-DBX5LjYY.js +6 -0
- package/public/dist/assets/dist-DBpt7gM8.js +1 -0
- package/public/dist/assets/{dist-CgIOBybm.js → dist-DJGc9cyj.js} +1 -1
- package/public/dist/assets/{dist-CTpw6PFT.js → dist-DUl4SBwX.js} +1 -1
- package/public/dist/assets/{dist-DKd_hdkE.js → dist-DWvaIPaS.js} +1 -1
- package/public/dist/assets/{dist-DS7cuuIk.js → dist-Ds6qQDMC.js} +1 -1
- package/public/dist/assets/dist-Dxy8kUAu.js +1 -0
- package/public/dist/assets/{dist-Bg80xGMJ.js → dist-OaQUa3cd.js} +1 -1
- package/public/dist/assets/dist-Ohtnri73.js +11 -0
- package/public/dist/assets/dist-TN2_Nms3.js +2 -0
- package/public/dist/assets/dist-XM8qpb8C.js +1 -0
- package/public/dist/assets/dist-Y0iINzVl.js +1 -0
- package/public/dist/assets/{dist-uSfGXqs6.js → dist-kYfyPZP9.js} +1 -1
- package/public/dist/assets/{dist-D3ShDeDU.js → dist-lsEiXLAb.js} +1 -1
- package/public/dist/assets/{dockerfile-DkX5AHzr.js → dockerfile-DJkHQgkl.js} +1 -1
- package/public/dist/assets/{dylan-BQ0i5j3T.js → dylan-BCDoL_-p.js} +1 -1
- package/public/dist/assets/{ebnfDiagram-PWID7BFC-_fcO3z5G.js → ebnfDiagram-PWID7BFC-D_FcQuZg.js} +1 -1
- package/public/dist/assets/{ecl-oXh4vhiy.js → ecl-BVIeWmwY.js} +1 -1
- package/public/dist/assets/{employees-qLLnQlAv.js → employees-BJRRI3rV.js} +3 -3
- package/public/dist/assets/{erDiagram-2YWLMYGG-YIq0Go-p.js → erDiagram-2YWLMYGG-CLpGDU8-.js} +3 -3
- package/public/dist/assets/{erlang-GRIYhTbY.js → erlang-BV0c4Hdn.js} +1 -1
- package/public/dist/assets/{error-normalize-CLRJh19F.js → error-normalize-UHvG8s92.js} +1 -1
- package/public/dist/assets/esm-Q6VOkDbn.js +4 -0
- package/public/dist/assets/eventmodeling-NTZA5JFV-Dz1yjNT-.js +1 -0
- package/public/dist/assets/{factor-Xro2mWdw.js → factor-LKH5gN8L.js} +1 -1
- package/public/dist/assets/fields-CSdFjOgg.js +1 -0
- package/public/dist/assets/flowDiagram-T62WH6J4-jooH4x9e.js +1 -0
- package/public/dist/assets/forth-D6RzAl64.js +1 -0
- package/public/dist/assets/ganttDiagram-EL5Y4UJY-B9_NJDV6.js +292 -0
- package/public/dist/assets/gitGraph-4MIJSDKK-NIO2XoGv.js +1 -0
- package/public/dist/assets/{gitGraphDiagram-WWUBYQGX-Bg3OM_0S.js → gitGraphDiagram-WWUBYQGX-BO0vc7Qh.js} +4 -4
- package/public/dist/assets/graphlib-CGJNr7IJ.js +1 -0
- package/public/dist/assets/groovy-CUpZ7dEl.js +1 -0
- package/public/dist/assets/{haxe-BrZpr4Ca.js → haxe-DjVOVvNP.js} +1 -1
- package/public/dist/assets/idb-cache-BRpjf_a8.js +1 -0
- package/public/dist/assets/idb-cache-CFBnPfHz.js +1 -0
- package/public/dist/assets/iframe-renderer-BngLCbh9.js +1 -0
- package/public/dist/assets/iframe-renderer-CFD7rXuQ.js +142 -0
- package/public/dist/assets/info-A6RAGUB7-yRMwEr76.js +1 -0
- package/public/dist/assets/{infoDiagram-FKFFQAWI-Dbi9pIPw.js → infoDiagram-FKFFQAWI-BM2g31_p.js} +1 -1
- package/public/dist/assets/{ishikawaDiagram-5VMMS53U-C1FUP-sO.js → ishikawaDiagram-5VMMS53U-BZvjesKs.js} +2 -2
- package/public/dist/assets/javascript-B9I2pbsP.js +1 -0
- package/public/dist/assets/javascript-DctB8BJo.js +1 -0
- package/public/dist/assets/{journeyDiagram-EYS64GPL-CaEEa3uT.js → journeyDiagram-EYS64GPL-CqtePaqZ.js} +3 -3
- package/public/dist/assets/{jsx-runtime-CYoNlHAD.js → jsx-runtime-CkEUZM6i.js} +1 -1
- package/public/dist/assets/{kanban-definition-UXKFOSKX-DQjqFxtj.js → kanban-definition-UXKFOSKX-ChZA_T7a.js} +5 -5
- package/public/dist/assets/katex-DL-Py6bk.js +1 -0
- package/public/dist/assets/{lua-CxVmDfKg.js → lua-zbJo2mq3.js} +1 -1
- package/public/dist/assets/manager-Bfy42VgJ.css +1 -0
- package/public/dist/assets/manager-CTX6I1Jk.js +13 -0
- package/public/dist/assets/memory-BXcwokaP.js +1 -0
- package/public/dist/assets/{memory-I_6c8skr.js → memory-D2wwkOUi.js} +10 -10
- package/public/dist/assets/mermaid-loader-Beqble_i.js +1 -0
- package/public/dist/assets/{mermaid-parser.core-CBiGpWk6.js → mermaid-parser.core-J035_CYr.js} +1 -1
- package/public/dist/assets/{mermaid-preprocess-4oGDpf1X.js → mermaid-preprocess-D8xe5R2A.js} +1 -1
- package/public/dist/assets/mermaid.core-D1YZrgc_.js +11 -0
- package/public/dist/assets/mermaid.core-DSXunyto.js +1 -0
- package/public/dist/assets/message-history-C2JH-y2v.js +1 -0
- package/public/dist/assets/message-history-CYp7fqXy.js +4 -0
- package/public/dist/assets/{mindmap-definition-THT77NOG-CXOyjall.js → mindmap-definition-THT77NOG-C4c47DPO.js} +3 -3
- package/public/dist/assets/{mumps-BdPrWvs5.js → mumps-BSzj6Xyz.js} +1 -1
- package/public/dist/assets/{nginx-C7cLiM4x.js → nginx-8H7HVH4w.js} +1 -1
- package/public/dist/assets/{notes-graph-settings-Cl4lMj-A.js → notes-graph-settings-BUoTzvqs.js} +1 -1
- package/public/dist/assets/{nsis-iX94j4T9.js → nsis-CfSuhXs5.js} +1 -1
- package/public/dist/assets/{ntriples-DLMpvgb1.js → ntriples-B9h1VB_g.js} +1 -1
- package/public/dist/assets/packet-AYTQ26CC-BreuCLNh.js +1 -0
- package/public/dist/assets/{page-shell-DZ1lls_P.js → page-shell-Bs0RBRoD.js} +1 -1
- package/public/dist/assets/{pegDiagram-XKGWAZYB-DVD3P7WU.js → pegDiagram-XKGWAZYB-BHiELbRn.js} +1 -1
- package/public/dist/assets/perl-BkSkiI9m.js +1 -0
- package/public/dist/assets/pi-settings-B7e38HJP.js +1 -0
- package/public/dist/assets/{pi-settings-DEuKgvIj.js → pi-settings-BmvRWRpc.js} +1 -1
- package/public/dist/assets/pie-WAS4IAKB-Co3_rQ80.js +1 -0
- package/public/dist/assets/{pieDiagram-E7YTZNPT-DEH6UJP4.js → pieDiagram-E7YTZNPT-BEKTktaH.js} +2 -2
- package/public/dist/assets/{powershell-Dfw2t4-B.js → powershell-BcIto6Sf.js} +1 -1
- package/public/dist/assets/preload-helper-CfbQpVni.js +1 -0
- package/public/dist/assets/presentation-DWHWElFr.js +1 -0
- package/public/dist/assets/presentation-preference-BYEPPRPg.js +1 -0
- package/public/dist/assets/presentation-preference-D9u6LD07.js +1 -0
- package/public/dist/assets/{pug-C8nPBT90.js → pug-CqqUmdG7.js} +1 -1
- package/public/dist/assets/puppet-BZyAS7I4.js +1 -0
- package/public/dist/assets/python-B_1Jd8HM.js +1 -0
- package/public/dist/assets/{quadrantDiagram-AXDQQJYC-CAbCNOON.js → quadrantDiagram-AXDQQJYC-CeJGAkDA.js} +2 -2
- package/public/dist/assets/r-CxDmU1I4.js +1 -0
- package/public/dist/assets/radar-RG4KPBEZ-C2cOxc85.js +1 -0
- package/public/dist/assets/railroad-74A4TZTK-BZ4umY4g.js +1 -0
- package/public/dist/assets/railroad-abnf-HS5TGJTU-DxbXiuYs.js +1 -0
- package/public/dist/assets/railroad-ebnf-LZEXJU2U-Bthp2_-B.js +1 -0
- package/public/dist/assets/railroad-peg-WCYAUIDC-YcQ4ouxQ.js +1 -0
- package/public/dist/assets/{railroadDiagram-O6MQD6OU-CEs81LrU.js → railroadDiagram-O6MQD6OU-CsT34rgN.js} +1 -1
- package/public/dist/assets/{render-Cc0Y43E3.js → render-DRweFDYR.js} +13 -13
- package/public/dist/assets/{requirementDiagram-IS5BZ75X-DsPApdKv.js → requirementDiagram-IS5BZ75X-4PwTKQWK.js} +2 -2
- package/public/dist/assets/rolldown-runtime-hePW80VL.js +1 -0
- package/public/dist/assets/{rough.esm-DQG0wzX4.js → rough.esm-Dy-Kn_BL.js} +1 -1
- package/public/dist/assets/ruby-BjXV7-Qa.js +1 -0
- package/public/dist/assets/{sankeyDiagram-P5KCCOFB-Im52Eou9.js → sankeyDiagram-P5KCCOFB-BykRKMDj.js} +2 -2
- package/public/dist/assets/scheme-D9qYN0V5.js +1 -0
- package/public/dist/assets/sequenceDiagram-WJ2MYXX4-Dyj787ok.js +162 -0
- package/public/dist/assets/settings-2diaN51W.js +1 -0
- package/public/dist/assets/{settings-DpjZSu2J.js → settings-DuqNWkxS.js} +3 -3
- package/public/dist/assets/settings-client-CSHmzyxv.js +1 -0
- package/public/dist/assets/settings-core-CIPKFBNN.js +162 -0
- package/public/dist/assets/settings-core-DiYr5EbU.js +1 -0
- package/public/dist/assets/{shell-BBoIO9l0.js → shell-DwuoZtxw.js} +1 -1
- package/public/dist/assets/sidebar-DumxhgAD.js +49 -0
- package/public/dist/assets/{sieve-8oEe6gDx.js → sieve-tLWDfEkZ.js} +1 -1
- package/public/dist/assets/{simple-mode-BNw0K2rL.js → simple-mode-DXiLM1-G.js} +1 -1
- package/public/dist/assets/{sizeCapture-INFHLROL-D9Rpk-aA.js → sizeCapture-INFHLROL-B0uUizjq.js} +1 -1
- package/public/dist/assets/skills-CCXE-bXK.js +1 -0
- package/public/dist/assets/skills-D3AfzYbP.js +12 -0
- package/public/dist/assets/slash-commands-Cn9AWqF6.js +1 -0
- package/public/dist/assets/slash-commands-DCHYDCYa.js +20 -0
- package/public/dist/assets/solr-B78wSQJQ.js +1 -0
- package/public/dist/assets/sql-DuQMFDvy.js +1 -0
- package/public/dist/assets/state-Dl-xxPoS.js +1 -0
- package/public/dist/assets/{stateDiagram-XQSTLZYL-B5CxGVqv.js → stateDiagram-XQSTLZYL-6p5Yrm8S.js} +1 -1
- package/public/dist/assets/stateDiagram-v2-IH3M54BS-DfXrMbZg.js +1 -0
- package/public/dist/assets/{stex-32iK7T_9.js → stex-DNzd62Q_.js} +1 -1
- package/public/dist/assets/{stylus-C689wDNM.js → stylus-BOVgKnng.js} +1 -1
- package/public/dist/assets/swimlanes-V6O3JKXN-Pyw_hrrE.js +1 -0
- package/public/dist/assets/swimlanesDiagram-JKAHXJPX-R-OHp34K.js +8 -0
- package/public/dist/assets/textile-C4jVoHG1.js +1 -0
- package/public/dist/assets/tiki-AK6FwT8q.js +1 -0
- package/public/dist/assets/timeline-definition-24CTP7MA-V_LwIXs0.js +120 -0
- package/public/dist/assets/toml-BPTmHmyx.js +1 -0
- package/public/dist/assets/trace-drawer-B05Fa2ja.js +20 -0
- package/public/dist/assets/treeView-Q6P3EWNA-CDjnLfDO.js +1 -0
- package/public/dist/assets/treemap-WGGIJYW6-CbGUwvA1.js +1 -0
- package/public/dist/assets/{ttcn-CPOduycD.js → ttcn-PPSTk1ow.js} +1 -1
- package/public/dist/assets/{ttcn-cfg-DmA__-R_.js → ttcn-cfg-2b4Gb5sE.js} +1 -1
- package/public/dist/assets/turtle-Cx3rYX2g.js +1 -0
- package/public/dist/assets/ui-BO9pdl-p.js +1 -0
- package/public/dist/assets/ui-CCXcKDL5.js +2 -0
- package/public/dist/assets/vendor-render-Cmfl_oW8.js +383 -0
- package/public/dist/assets/vendor-render-DSSkXCir.css +1 -0
- package/public/dist/assets/vendor-utils-C1xaEGmb.js +1 -0
- package/public/dist/assets/{vennDiagram-4TSXK5OY-fVndHq7T.js → vennDiagram-4TSXK5OY-ZagiHlwi.js} +3 -3
- package/public/dist/assets/{verilog-DMw8DKoT.js → verilog-CjI9Y6RI.js} +1 -1
- package/public/dist/assets/vhdl-kS471soi.js +1 -0
- package/public/dist/assets/wardley-WFR3VGLG-Cj73o4Iq.js +1 -0
- package/public/dist/assets/{wardleyDiagram-VM6X3IG4-CXIfS7ZF.js → wardleyDiagram-VM6X3IG4-BBAHdIq-.js} +35 -35
- package/public/dist/assets/wiki-link-resolver-CbJATnBn.js +22 -0
- package/public/dist/assets/wiki-link-suggestions-BcEfThgf.js +2 -0
- package/public/dist/assets/{xquery-CYbd_YmJ.js → xquery-BKJx4mf9.js} +1 -1
- package/public/dist/assets/{xychartDiagram-S5SC5T6Z-CqC-Uvuc.js → xychartDiagram-S5SC5T6Z-C43SenTd.js} +4 -4
- package/public/dist/assets/z80-Co3PbHdE.js +1 -0
- package/public/dist/index.html +4 -4
- package/public/dist/manager/index.html +3 -3
- package/public/index.html +3 -1
- package/public/js/api.ts +2 -2
- package/public/js/bounded-api.ts +49 -0
- package/public/js/features/activity-discovery.ts +142 -0
- package/public/js/features/activity-history.ts +334 -0
- package/public/js/features/activity-http.ts +17 -0
- package/public/js/features/activity-live.ts +330 -0
- package/public/js/features/activity-view.ts +218 -0
- package/public/js/features/chat-messages.ts +13 -4
- package/public/js/features/idb-cache.ts +37 -3
- package/public/js/features/message-history.ts +144 -16
- package/public/js/features/message-item-html.ts +7 -3
- package/public/js/features/native-request-bridge.ts +133 -0
- package/public/js/features/native-requests.ts +337 -0
- package/public/js/features/presentation-preference.ts +52 -0
- package/public/js/features/process-block.ts +35 -1
- package/public/js/features/process-log-adapter.ts +11 -1
- package/public/js/features/settings-core.ts +20 -1
- package/public/js/features/settings-types.ts +5 -1
- package/public/js/features/trace-drawer.ts +145 -43
- package/public/js/features/ui-status.ts +5 -0
- package/public/js/state.ts +3 -0
- package/public/js/ui.ts +41 -8
- package/public/js/virtual-scroll.ts +66 -4
- package/public/js/ws.ts +324 -29
- package/public/manager/src/settings/fields/SelectField.tsx +7 -5
- package/public/manager/src/settings/pages/Agent.tsx +3 -2
- package/public/manager/src/settings/pages/Display.tsx +100 -19
- package/public/manager/src/settings/pages/ModelProvider.tsx +133 -45
- package/public/manager/src/settings/pages/Permissions.tsx +18 -10
- package/public/manager/src/settings/pages/components/PerCliRow.tsx +42 -6
- package/public/manager/src/settings/pages/components/PiProfileDialog.tsx +59 -6
- package/public/manager/src/settings/pages/components/agent/PermissionQuickSection.tsx +9 -6
- package/public/manager/src/settings/pages/components/agent/agent-meta.ts +3 -0
- package/public/manager/src/settings/pages/components/runtime-transport-field.tsx +68 -0
- package/public/manager/src/settings-controls.css +43 -0
- package/public/manager/src/settings-shell.css +21 -1
- package/scripts/bundle-sidecar.sh +282 -37
- package/scripts/check-sidecar-smoke.mjs +250 -137
- package/scripts/sidecar-smoke-probe.mjs +171 -0
- package/public/dist/assets/AdvancedExport-tXydxVAh.js +0 -1
- package/public/dist/assets/Agent-CHaTUS7c.js +0 -1
- package/public/dist/assets/Browser-Dm5J1gXP.js +0 -1
- package/public/dist/assets/BrowserPanel-0b3deLGR.js +0 -3
- package/public/dist/assets/ChannelsDiscord-D6jmfyHe.js +0 -1
- package/public/dist/assets/ChannelsSlack-BcykASIN.js +0 -1
- package/public/dist/assets/ChannelsTelegram-XkNtVi8o.js +0 -1
- package/public/dist/assets/CodeCanvas-D-JH2Ikl.js +0 -3
- package/public/dist/assets/DesignPanel-SuUOoyQN.js +0 -2
- package/public/dist/assets/Display-B25HqCMH.js +0 -1
- package/public/dist/assets/DocPanel-qiqo6365.js +0 -1
- package/public/dist/assets/FolderPanel-BkggPdTP.js +0 -3
- package/public/dist/assets/HealthBadge-D7BQ-LHD.js +0 -1
- package/public/dist/assets/MarkdownRenderer-DZ-hWmCB.js +0 -15
- package/public/dist/assets/MarkdownRenderer-uwE0Wam5.js +0 -1
- package/public/dist/assets/MilkdownWysiwygEditor-DanGAZL5.js +0 -160
- package/public/dist/assets/ModelProvider-tL42E5dy.js +0 -1
- package/public/dist/assets/Network-ByNu-VCZ.js +0 -1
- package/public/dist/assets/NotesGraphWorkspace-Be6ctzYE.js +0 -1
- package/public/dist/assets/PanelLayoutProvider-B9fYsunp.js +0 -1
- package/public/dist/assets/Permissions-B-74b-nO.js +0 -1
- package/public/dist/assets/Permissions-x_6_kLC1.js +0 -1
- package/public/dist/assets/Profile-Bf9-QN2Y.js +0 -1
- package/public/dist/assets/Prompts-DGDw56NQ.js +0 -1
- package/public/dist/assets/TerminalPanel-DdE69MNo.css +0 -1
- package/public/dist/assets/TerminalPanel-gXH7bTXQ.js +0 -36
- package/public/dist/assets/api-DNnX8m0u.js +0 -1
- package/public/dist/assets/api-tVoG39dL.js +0 -1
- package/public/dist/assets/app-CXraFyoA.js +0 -55
- package/public/dist/assets/app-DuyLYRC6.css +0 -1
- package/public/dist/assets/architecture-7GRP2DOG-DxLizWvy.js +0 -1
- package/public/dist/assets/architectureDiagram-5GKGNRK7-BpxFEoT5.js +0 -36
- package/public/dist/assets/asciiarmor-7YwhfGDq.js +0 -1
- package/public/dist/assets/bgtask-badge-BjyAbBio.js +0 -1
- package/public/dist/assets/c4Diagram-7LVT6UL2-Bg0DdRYW.js +0 -38
- package/public/dist/assets/channel-BjgXjYj8.js +0 -1
- package/public/dist/assets/chunk-2Q5K7J3B-BClkI2P5.js +0 -1
- package/public/dist/assets/chunk-3NF5O7KM-DXOprKA_.js +0 -168
- package/public/dist/assets/chunk-CLGD4ZFX-B5zkZ8n6.js +0 -1
- package/public/dist/assets/chunk-GVQU2GXP-BlVn1fMW.js +0 -1
- package/public/dist/assets/chunk-H2I77ZZE-BXf4_vA2.js +0 -1
- package/public/dist/assets/chunk-L3NEJ4N5-FGXu31jw.js +0 -1
- package/public/dist/assets/chunk-LQGUR6SS-qUTD5FMI.js +0 -2
- package/public/dist/assets/chunk-OSK3NFVY-CrXjNywV.js +0 -10
- package/public/dist/assets/chunk-XXDRQBXY-DEwmqeYc.js +0 -1
- package/public/dist/assets/classDiagram-CYGNFDIV-hbaxbeYd.js +0 -1
- package/public/dist/assets/classDiagram-v2-TLXNO2FR-_OfX3b6Y.js +0 -1
- package/public/dist/assets/clike-BcV5UqGE.js +0 -1
- package/public/dist/assets/cmake-DhPsEu0W.js +0 -1
- package/public/dist/assets/cobol-BEekiT-v.js +0 -1
- package/public/dist/assets/coffeescript-Bgk4ZVWF.js +0 -1
- package/public/dist/assets/commonlisp-Dw4PRJwx.js +0 -1
- package/public/dist/assets/cose-bilkent-JH36ORCC-HnUYAhwC.js +0 -1
- package/public/dist/assets/crystal-CJ-iCD_G.js +0 -1
- package/public/dist/assets/css-BDUaiSMY.js +0 -1
- package/public/dist/assets/cynefin-OW5HDTMX-VXYSLvft.js +0 -1
- package/public/dist/assets/cynefinDiagram-5FMLGOSQ-D0dmg5fA.js +0 -62
- package/public/dist/assets/cytoscape.esm-CS3SmpXd.js +0 -321
- package/public/dist/assets/dagre-DDTOgfwg.js +0 -1
- package/public/dist/assets/dist-BCCaGGDY.js +0 -1
- package/public/dist/assets/dist-BPE4W9iX.js +0 -6
- package/public/dist/assets/dist-BQMBTYXL.js +0 -1
- package/public/dist/assets/dist-BaPGPaX4.js +0 -1
- package/public/dist/assets/dist-CBnlLSQZ.js +0 -1
- package/public/dist/assets/dist-CINTuhik.js +0 -2
- package/public/dist/assets/dist-CX7KjpF3.js +0 -39
- package/public/dist/assets/dist-CczLsP0o.js +0 -9
- package/public/dist/assets/dist-CdfDDy4r.js +0 -1
- package/public/dist/assets/dist-Cl_pRobr.js +0 -1
- package/public/dist/assets/dist-CruwQXwE.js +0 -1
- package/public/dist/assets/dist-CvE8Qa9r.js +0 -2
- package/public/dist/assets/dist-Cy3mcP1e.js +0 -1
- package/public/dist/assets/dist-CzCFEnHw.js +0 -1
- package/public/dist/assets/dist-D2h9T4I9.js +0 -13
- package/public/dist/assets/dist-DLOg6n0b.js +0 -1
- package/public/dist/assets/dist-DW0I56_o.js +0 -1
- package/public/dist/assets/dist-TombgBki.js +0 -11
- package/public/dist/assets/dist-hBRIxDzG.js +0 -1
- package/public/dist/assets/dist-z5Z70wW8.js +0 -1
- package/public/dist/assets/esm-CT1xxdH5.js +0 -4
- package/public/dist/assets/eventmodeling-NTZA5JFV-Csqcv5T_.js +0 -1
- package/public/dist/assets/fields-E1L8aEhU.js +0 -1
- package/public/dist/assets/flowDiagram-T62WH6J4-Del9dfOW.js +0 -1
- package/public/dist/assets/forth-DNnBFTm6.js +0 -1
- package/public/dist/assets/ganttDiagram-EL5Y4UJY-CezfIvti.js +0 -292
- package/public/dist/assets/gitGraph-4MIJSDKK-D_1mlgPm.js +0 -1
- package/public/dist/assets/graphlib-Cjg_soTo.js +0 -1
- package/public/dist/assets/groovy-Cm4gdIYU.js +0 -1
- package/public/dist/assets/idb-cache-B5PX63p7.js +0 -1
- package/public/dist/assets/idb-cache-lOntwU3S.js +0 -1
- package/public/dist/assets/iframe-renderer-BLP8Army.js +0 -1
- package/public/dist/assets/iframe-renderer-vuNrU6aI.js +0 -142
- package/public/dist/assets/info-A6RAGUB7-ce7F80NR.js +0 -1
- package/public/dist/assets/javascript-DD7UxIxH.js +0 -1
- package/public/dist/assets/javascript-DZFdG8BN.js +0 -1
- package/public/dist/assets/katex-BoGadFcG.js +0 -1
- package/public/dist/assets/manager-BspQvGAC.js +0 -13
- package/public/dist/assets/manager-Cmu0aKPb.css +0 -1
- package/public/dist/assets/memory-CRji7xpO.js +0 -1
- package/public/dist/assets/mermaid-loader-BcReSszT.js +0 -1
- package/public/dist/assets/mermaid.core-BJIXJ0Ir.js +0 -11
- package/public/dist/assets/mermaid.core-J6tiqiVK.js +0 -1
- package/public/dist/assets/message-history-C1ThtA4i.js +0 -1
- package/public/dist/assets/message-history-CXg12lcd.js +0 -1
- package/public/dist/assets/packet-AYTQ26CC-86oNpyWh.js +0 -1
- package/public/dist/assets/perl-DfpfXWOH.js +0 -1
- package/public/dist/assets/pi-settings-5HVg1sXJ.js +0 -1
- package/public/dist/assets/pie-WAS4IAKB-CMzmzfvT.js +0 -1
- package/public/dist/assets/preload-helper-DFYRRz9w.js +0 -1
- package/public/dist/assets/puppet-DnsvBfcg.js +0 -1
- package/public/dist/assets/python-mfoZJSDM.js +0 -1
- package/public/dist/assets/r-FO7GgXB8.js +0 -1
- package/public/dist/assets/radar-RG4KPBEZ-CsDBxCx4.js +0 -1
- package/public/dist/assets/railroad-74A4TZTK-B6s85Oul.js +0 -1
- package/public/dist/assets/railroad-abnf-HS5TGJTU-jnABoAnr.js +0 -1
- package/public/dist/assets/railroad-ebnf-LZEXJU2U-C_VWXbk9.js +0 -1
- package/public/dist/assets/railroad-peg-WCYAUIDC-y3jeoP_s.js +0 -1
- package/public/dist/assets/rolldown-runtime-XQCOJYun.js +0 -1
- package/public/dist/assets/ruby-Cg1fwXaw.js +0 -1
- package/public/dist/assets/scheme-DGFmPoR2.js +0 -1
- package/public/dist/assets/sequenceDiagram-WJ2MYXX4-BChOR6yh.js +0 -162
- package/public/dist/assets/settings-B2Ix6Y7k.js +0 -1
- package/public/dist/assets/settings-client-D9KY2Ufl.js +0 -1
- package/public/dist/assets/settings-core-Bkb0BoYY.js +0 -1
- package/public/dist/assets/settings-core-DWYQIIoe.js +0 -162
- package/public/dist/assets/sidebar-C8WKweCz.js +0 -49
- package/public/dist/assets/skills-QWf6vRIB.js +0 -12
- package/public/dist/assets/skills-bEGqvmiQ.js +0 -1
- package/public/dist/assets/slash-commands-BbA0Y1up.js +0 -1
- package/public/dist/assets/slash-commands-qD6yScsx.js +0 -20
- package/public/dist/assets/solr-BwGyzi2H.js +0 -1
- package/public/dist/assets/sql-B6Phvk1R.js +0 -1
- package/public/dist/assets/state-DxpgDKMO.js +0 -1
- package/public/dist/assets/stateDiagram-v2-IH3M54BS-BmdRqxzy.js +0 -1
- package/public/dist/assets/swimlanes-V6O3JKXN-Ckem4dQh.js +0 -1
- package/public/dist/assets/swimlanesDiagram-JKAHXJPX-DW_0PiOk.js +0 -8
- package/public/dist/assets/textile-xOWO1SH7.js +0 -1
- package/public/dist/assets/tiki-OG7n6UAo.js +0 -1
- package/public/dist/assets/timeline-definition-24CTP7MA-CJRsjFnd.js +0 -120
- package/public/dist/assets/toml-DkxT-aUR.js +0 -1
- package/public/dist/assets/trace-drawer-Ct8sP4j-.js +0 -15
- package/public/dist/assets/treeView-Q6P3EWNA-ChnMvz2a.js +0 -1
- package/public/dist/assets/treemap-WGGIJYW6-DZJ4jE42.js +0 -1
- package/public/dist/assets/turtle-CEzrJHdY.js +0 -1
- package/public/dist/assets/ui-BZxyyJUk.js +0 -1
- package/public/dist/assets/ui-xoW9x-Pz.js +0 -2
- package/public/dist/assets/vendor-render-BpGO1zp3.js +0 -383
- package/public/dist/assets/vendor-render-kIxHrxDV.css +0 -1
- package/public/dist/assets/vendor-utils-BUFU5ypz.js +0 -1
- package/public/dist/assets/vhdl-M4wLPuJt.js +0 -1
- package/public/dist/assets/wardley-WFR3VGLG-CGM_JiX0.js +0 -1
- package/public/dist/assets/wiki-link-resolver-BGpGBLMp.js +0 -22
- package/public/dist/assets/wiki-link-suggestions-cvpqJp6c.js +0 -2
- package/public/dist/assets/z80-nGsPT_fm.js +0 -1
- /package/public/dist/assets/{agent-meta-KPnVam9G.js → agent-meta-WqLP4HPi.js} +0 -0
- /package/public/dist/assets/{api-FOqKQ9fm.js → api-B9RiiOMM.js} +0 -0
- /package/public/dist/assets/{brainfuck-CM8jf4Gu.js → brainfuck-D5EjA2JK.js} +0 -0
- /package/public/dist/assets/{chunk-Y2CYZVJY-DlLjK0OJ.js → chunk-Y2CYZVJY-DsF7k-Jl.js} +0 -0
- /package/public/dist/assets/{clojure-XHu9GAjV.js → clojure-BflJGmDX.js} +0 -0
- /package/public/dist/assets/{cypher-CJ05ZgAu.js → cypher-p9eYesGn.js} +0 -0
- /package/public/dist/assets/{desktop-bridge-DtydAvqu.js → desktop-bridge-DbRfkg8l.js} +0 -0
- /package/public/dist/assets/{diff-BVcHwfdB.js → diff-ChtP43wD.js} +0 -0
- /package/public/dist/assets/{dtd-Bg0TgBY9.js → dtd-DTF72YNO.js} +0 -0
- /package/public/dist/assets/{ebnf-QSFUkOiT.js → ebnf-D4c0_ac3.js} +0 -0
- /package/public/dist/assets/{eiffel-S15DDWzw.js → eiffel-BEjRio4Q.js} +0 -0
- /package/public/dist/assets/{elm-B746ZFPi.js → elm-Cshzl8qu.js} +0 -0
- /package/public/dist/assets/{fcl-DjQMeb0v.js → fcl-ClOhbFR7.js} +0 -0
- /package/public/dist/assets/{folder-drag-payload-CJ0dxhZa.js → folder-drag-payload-BhV9yzhH.js} +0 -0
- /package/public/dist/assets/{fortran-yg6K9z9n.js → fortran-Bt6PBEDR.js} +0 -0
- /package/public/dist/assets/{gas-fbsH19hy.js → gas-BHEdbvp9.js} +0 -0
- /package/public/dist/assets/{gherkin-BCy9haeT.js → gherkin-oBAE_ms0.js} +0 -0
- /package/public/dist/assets/{haskell-Dq28dVw2.js → haskell-BRsoo5mP.js} +0 -0
- /package/public/dist/assets/{http-B3zr0y0o.js → http-CLVgA2GD.js} +0 -0
- /package/public/dist/assets/{idl-C9CL9hdG.js → idl-BUZw3wgd.js} +0 -0
- /package/public/dist/assets/{julia-CjwfSXBk.js → julia-CQfgDRfP.js} +0 -0
- /package/public/dist/assets/{livescript-vRjI6jFU.js → livescript-BXxG0Yva.js} +0 -0
- /package/public/dist/assets/{locale-DC-ZsWOf.js → locale-B9w_kUtW.js} +0 -0
- /package/public/dist/assets/{mathematica-DJZPFt8k.js → mathematica-u8YMmbU0.js} +0 -0
- /package/public/dist/assets/{mbox-CxBBnlIA.js → mbox-BEMVcqjs.js} +0 -0
- /package/public/dist/assets/{mirc-CBWc0vcU.js → mirc-C9zpzAZU.js} +0 -0
- /package/public/dist/assets/{mllike-DYddHpeS.js → mllike-B45xgp2S.js} +0 -0
- /package/public/dist/assets/{modelica-B94rrYMn.js → modelica-CqHI_q-D.js} +0 -0
- /package/public/dist/assets/{mscgen-D0PO0iPT.js → mscgen-qgSLujhx.js} +0 -0
- /package/public/dist/assets/{octave-DeJPElAr.js → octave-D2Q8cUp1.js} +0 -0
- /package/public/dist/assets/{oz-4dtXWqwe.js → oz-BwTct_5T.js} +0 -0
- /package/public/dist/assets/{pascal-TdeXcL-o.js → pascal-Dp_KdFgX.js} +0 -0
- /package/public/dist/assets/{path-utils-QbjARuCC.js → path-utils-B6vBr0DD.js} +0 -0
- /package/public/dist/assets/{pig-xQ4essgV.js → pig-AF4Hwhju.js} +0 -0
- /package/public/dist/assets/{properties-CrJLOvU2.js → properties-C357ku5U.js} +0 -0
- /package/public/dist/assets/{protobuf-BYv78GYU.js → protobuf-D1ij_kNL.js} +0 -0
- /package/public/dist/assets/{provider-icons-CXA2mnPO.js → provider-icons-Det0fC-4.js} +0 -0
- /package/public/dist/assets/{q-BrTIu4PU.js → q-B9NhS7L_.js} +0 -0
- /package/public/dist/assets/{rpm-D8Wbdep5.js → rpm-gpDK5sbt.js} +0 -0
- /package/public/dist/assets/{sas-Ch1GEx-n.js → sas-C2OyD2Y6.js} +0 -0
- /package/public/dist/assets/{settings-types-DPhhM-cj.js → settings-types-B09BmpYe.js} +0 -0
- /package/public/dist/assets/{smalltalk-ChbxX23N.js → smalltalk-BLp5-jwC.js} +0 -0
- /package/public/dist/assets/{sparql-D9wgprRx.js → sparql-Dz-mlCAC.js} +0 -0
- /package/public/dist/assets/{spreadsheet-BySehl32.js → spreadsheet-CTIncYxj.js} +0 -0
- /package/public/dist/assets/{swift-DZwxTp-L.js → swift-DKB6_1j6.js} +0 -0
- /package/public/dist/assets/{tcl-BSOjIY_8.js → tcl-BGfruO1u.js} +0 -0
- /package/public/dist/assets/{tiddlywiki-B8jhOxrf.js → tiddlywiki-VlUiK86J.js} +0 -0
- /package/public/dist/assets/{troff-vE5gOX7Y.js → troff-C2dAgh7P.js} +0 -0
- /package/public/dist/assets/{vb-Cii5IQTv.js → vb-BthdM_4N.js} +0 -0
- /package/public/dist/assets/{vbscript-DcZWGZ_S.js → vbscript-D9f6rSsU.js} +0 -0
- /package/public/dist/assets/{velocity-BEag7EnK.js → velocity-CqftRsjg.js} +0 -0
- /package/public/dist/assets/{vendor-icons-Begb5v1n.js → vendor-icons-CNcMX6Ac.js} +0 -0
- /package/public/dist/assets/{w3c-keyname-hgmz1BF7.js → w3c-keyname-BOAvb0qz.js} +0 -0
- /package/public/dist/assets/{webidl-CjehKbx5.js → webidl-D5jiJvOU.js} +0 -0
- /package/public/dist/assets/{yacas-ClBNsli2.js → yacas-CXXgtw0p.js} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{n as t,t as n}from"./jsx-runtime-CkEUZM6i.js";import{t as r}from"./error-normalize-UHvG8s92.js";import{a as i,i as a,n as o,r as s,t as c}from"./page-shell-Bs0RBRoD.js";import{a as l,i as u,n as d,r as f,s as p}from"./fields-CSdFjOgg.js";import{a as m,i as h,n as g,r as _}from"./agent-meta-WqLP4HPi.js";import{t as v}from"./path-utils-B6vBr0DD.js";var y=e(t(),1),b=n(),x=[`basic`,`openai`,`anthropic`,`vertex`],S=`[hidden], [inert], [aria-disabled="true"], fieldset[disabled]`;function C(e){return Array.from(e.querySelectorAll(`button, input, select, textarea, a[href], [tabindex]`)).filter(e=>{if(e.tabIndex<0||e.matches(`:disabled`)||e.closest(S))return!1;for(let t=e;t;t=t.parentElement){let e=t.ownerDocument.defaultView?.getComputedStyle(t);if(e?.display===`none`||e?.visibility===`hidden`||e?.visibility===`collapse`)return!1}return!0})}function w(e){return e===`anthropic`?`https://api.anthropic.com/v1/messages`:e===`vertex`?`https://LOCATION-aiplatform.googleapis.com/v1`:`http://127.0.0.1:18645/v1`}function T({client:e,pi:t,provider:n,model:r,onClose:i,onRegistered:a}){let o=(0,y.useRef)(null),s=(0,y.useMemo)(()=>t?.profiles?.find(e=>e.id===n)||t?.profiles?.[0],[t,n]),[c,l]=(0,y.useState)(s?.mode||`basic`),[d,f]=(0,y.useState)(s?.id||n||`progrok`),[m,h]=(0,y.useState)(s?.endpoint||w(c)),[g,_]=(0,y.useState)(r||s?.model||`grok-composer-2.5-fast`),[v,T]=(0,y.useState)(``),[E,D]=(0,y.useState)(!1),[O,k]=(0,y.useState)(null);(0,y.useEffect)(()=>{let e=o.current;if(!e||e.closest(S))return;let t=e.ownerDocument.activeElement,n=C(e);return(n.find(e=>e.id===`pi-profile-id`)??n[0])?.focus(),()=>{t instanceof HTMLElement&&t.isConnected&&!t.matches(`:disabled`)&&!t.closest(S)&&t.focus({preventScroll:!0})}},[]),(0,y.useEffect)(()=>{h(e=>e||w(c))},[c]);let A=e=>{let t=o.current;if(!(!t||t.closest(S)||e.defaultPrevented)){if(e.key===`Escape`)e.preventDefault(),e.stopPropagation(),i();else if(e.key===`Tab`){let n=C(t),r=n[0],i=n.at(-1),a=t.ownerDocument.activeElement;(!r||!n.some(e=>e===a)||(e.shiftKey?a===r:a===i))&&(e.preventDefault(),(e.shiftKey?i??t:r??t).focus())}}},j=async()=>{let t=o.current,n=t?.querySelector(`.settings-action-save`);t&&n&&t.ownerDocument.activeElement===n&&!t.closest(S)&&C(t).find(e=>e!==n)?.focus(),D(!0),k(null);try{let t=(await e.post(`/api/pi/profiles/register`,{id:d,label:d,mode:c,endpoint:m,model:g,apiKey:v})).data;a({provider:d,model:g,models:t.models||[],pi:t.settings?.pi}),i()}catch(e){k(e instanceof Error?e.message:String(e))}finally{D(!1)}};return(0,b.jsx)(`div`,{className:`settings-memory-modal settings-pi-modal`,ref:o,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`pi-profile-title`,tabIndex:-1,onKeyDown:A,children:(0,b.jsxs)(`div`,{className:`settings-memory-modal-card`,children:[(0,b.jsxs)(`header`,{className:`settings-memory-modal-header`,children:[(0,b.jsx)(`h3`,{id:`pi-profile-title`,children:`Pi Settings`}),(0,b.jsx)(`button`,{type:`button`,className:`settings-action settings-action-discard`,onClick:i,children:`Close`})]}),(0,b.jsxs)(`div`,{className:`settings-page-form`,children:[(0,b.jsx)(u,{id:`pi-profile-mode`,label:`Mode`,value:c,options:x.map(e=>({value:e,label:e})),onChange:e=>l(e)}),(0,b.jsx)(p,{id:`pi-profile-id`,label:`Provider`,value:d,onChange:f,placeholder:`progrok`}),(0,b.jsx)(p,{id:`pi-profile-endpoint`,label:`Endpoint`,value:m,onChange:h,placeholder:w(c)}),(0,b.jsx)(p,{id:`pi-profile-model`,label:`Model`,value:g,onChange:_,placeholder:`grok-composer-2.5-fast`}),(0,b.jsx)(p,{id:`pi-profile-key`,label:`API Key`,value:v,onChange:T,placeholder:s?.apiKeySet?`set (${s.apiKeyLast4||`****`})`:`empty for local proxy`}),(0,b.jsx)(`p`,{className:`settings-empty`,children:`Default: grok-composer-2.5-fast. Bare grok-composer-2.5 currently has no verified team access.`}),O?(0,b.jsx)(`p`,{className:`settings-field-error`,role:`alert`,children:O}):null,(0,b.jsx)(`button`,{type:`button`,className:`settings-action settings-action-save`,disabled:E,onClick:()=>void j(),children:E?`Registering...`:`Register`})]})]})})}function E(e,t,n=``){let r=new Set;n&&r.add(n);for(let n of e?.discoveredModels?.[t]||[])r.add(n);let i=e?.profiles?.find(e=>e.id===t);return i?.model&&r.add(i.model),[...r]}function D(e,t=``){let n=new Set;t&&n.add(t);for(let t of e?.profiles||[])n.add(t.id);return[...n]}function O(e){return e===`cursor`||e===`grok`||e===`claude`}function k(e){return e===`native`||e===`print`}var A=`unrecognized`,j=[{value:`native`,label:`Native session (opt-in)`},{value:`print`,label:`Print compatibility`}];function M({cli:e,original:t,dirty:n,disabled:r=!1,setEntry:i}){let a=O(e)?`perCli.${e}.transport`:null,o=(0,y.useSyncExternalStore)(n.subscribe,()=>a===null?void 0:n.pending.get(a)),s=(0,y.useRef)(r);(0,y.useLayoutEffect)(()=>(s.current=r,()=>{s.current=!0}),[r]);let c=t===void 0?`print`:t,l=o?o.value:c,d=k(l);return a===null?null:(0,b.jsxs)(`div`,{children:[(0,b.jsx)(u,{id:`percli-${e}-transport`,label:`Runtime transport`,value:d?l:A,options:d?j:[...j,{value:A,label:`Unrecognized transport`}],disabled:r,error:d?null:`Choose a supported runtime transport.`,onChange:e=>{!s.current&&k(e)&&i(a,{value:e,original:c,valid:!0})}}),d?null:(0,b.jsx)(`p`,{className:`settings-field-error`,role:`alert`,children:`Stored runtime transport is unrecognized.`}),(0,b.jsx)(`p`,{className:`settings-percli-note`,children:`Applies to the next run. Independent of Activity / Legacy presentation.`}),l===`native`?(0,b.jsx)(`p`,{className:`settings-percli-note`,children:e===`claude`?`Claude native supports Auto / Safe permissions.`:`Native requires Auto-only permissions; no native worker assignments.`}):null]})}function N(e,t,n=!0){return{value:e,original:t,valid:n}}function P({cli:e,meta:t,original:n,value:r,setValue:i,setEntry:a,dirty:o,disabled:s=!1,client:c,pi:d,setPi:f,onPiRegistered:m}){let h=`percli-${e}-models`,v=e===`pi`,[x,S]=(0,y.useState)(!1),C=(0,y.useRef)(s);(0,y.useLayoutEffect)(()=>(C.current=s,()=>{C.current=!0}),[s]);let w=r.provider||t.defaultProvider||t.providers?.[0]||`claude`,k=v?E(d,w,r.model||``):[],A=!v&&(t.providers?.length??0)>0,j=v?k:A?t.modelsByProvider?.[w]??t.models:t.models,P=A?t.effortsByProvider?.[w]??t.efforts:void 0,F=_(t,r.model||``,P,A?w:void 0);return(0,b.jsxs)(`div`,{className:`settings-percli-row`,"data-cli":e,children:[(0,b.jsx)(`h3`,{className:`settings-percli-title`,children:t.label}),(0,b.jsxs)(`div`,{className:`settings-percli-grid${v?` settings-percli-grid--pi`:``}`,children:[v&&D(d,w).length?(0,b.jsx)(u,{id:`percli-${e}-provider`,label:`Provider`,disabled:s,value:w,options:D(d,w).map(e=>({value:e,label:e})),onChange:t=>{if(C.current)return;let o=E(d,t),s=o.includes(r.model||``)?r.model||``:o[0]||``;i({...r,provider:t,model:s}),a(`perCli.${e}.provider`,N(t,n.provider??`progrok`)),a(`perCli.${e}.model`,N(s,n.model??``))}}):A?(0,b.jsx)(u,{id:`percli-${e}-provider`,label:`Provider`,disabled:s,value:w,options:(t.providers??[]).map(e=>({value:e,label:e})),onChange:o=>{if(C.current)return;let s=t.modelsByProvider?.[o]??[],c=t.effortsByProvider?.[o]??[],l=s.includes(r.model||``)?r.model||``:s[0]||``,u=g(t,l,r.effort??``,c,o);i({...r,provider:o,model:l,effort:u}),a(`perCli.${e}.provider`,N(o,n.provider??t.defaultProvider??`claude`)),a(`perCli.${e}.model`,N(l,n.model??``)),a(`perCli.${e}.effort`,N(u,n.effort??``))}}):null,(0,b.jsxs)(`div`,{className:`settings-percli-model`,children:[v&&j.length>0?(0,b.jsx)(u,{id:`percli-${e}-model`,label:`Model`,disabled:s,value:r.model??j[0]??``,options:j.map(e=>({value:e,label:e})),onChange:o=>{if(C.current)return;let s=g(t,o,r.effort??``,P,A?w:void 0);i({...r,model:o,effort:s}),a(`perCli.${e}.model`,N(o,n.model??``)),s!==(r.effort??``)&&a(`perCli.${e}.effort`,N(s,n.effort??``))}}):(0,b.jsx)(p,{id:`percli-${e}-model`,label:`Model`,disabled:s,value:r.model??``,onChange:t=>{C.current||(i({...r,model:t}),a(`perCli.${e}.model`,N(t,n.model??``)))},placeholder:j[0]??`model id`}),t.modelNote?(0,b.jsx)(`p`,{className:`settings-percli-note`,children:t.modelNote}):null,j.length>0?(0,b.jsx)(`datalist`,{id:h,children:j.map(e=>(0,b.jsx)(`option`,{value:e},e))}):null]}),F.length>0?(0,b.jsxs)(`div`,{className:`settings-percli-effort`,children:[(0,b.jsx)(u,{id:`percli-${e}-effort`,label:`Effort`,disabled:s,value:r.effort??``,options:[{value:``,label:`(default)`},...F.map(e=>({value:e,label:e}))],onChange:t=>{C.current||(i({...r,effort:t}),a(`perCli.${e}.effort`,N(t,n.effort??``)))}}),t.effortNote?(0,b.jsx)(`p`,{className:`settings-percli-note`,children:t.effortNote}):null]}):t.effortNote?(0,b.jsx)(`p`,{className:`settings-percli-note settings-percli-note--effort`,children:t.effortNote}):null,O(e)?(0,b.jsx)(M,{cli:e,original:n.transport,dirty:o,disabled:s,setEntry:a}):null,(0,b.jsx)(l,{id:`percli-${e}-fastmode`,label:`Fast mode`,disabled:s,value:!!r.fastMode,onChange:t=>{C.current||(i({...r,fastMode:t}),a(`perCli.${e}.fastMode`,N(t,!!n.fastMode)))}}),v&&c?(0,b.jsx)(`button`,{type:`button`,className:`settings-action`,disabled:s,onClick:()=>{C.current||S(!0)},children:`Settings`}):null]}),v&&c&&x?(0,b.jsx)(`div`,{inert:s,"aria-busy":s,children:(0,b.jsx)(T,{client:c,pi:d,provider:w,model:r.model||`grok-composer-2.5-fast`,onClose:()=>S(!1),onRegistered:t=>{if(m){m(t);return}if(C.current)return;let{provider:o,model:s,pi:c}=t;c&&f&&f(c),i({...r,provider:o,model:s}),a(`perCli.${e}.provider`,N(o,n.provider??`progrok`)),a(`perCli.${e}.model`,N(s,n.model??``))}})}):null]})}var F=e=>e===`fallbackOrder`||e.startsWith(`perCli.`);function I(e){let t=e&&typeof e==`object`&&`data`in e?e.data:e;if(!t||typeof t!=`object`||Array.isArray(t))throw Error(`Invalid settings response. Refresh before retrying.`);return t}function ee(e){return[...e].sort((e,t)=>e===`pi`?-1:t===`pi`?1:e===`ai-e`?t===`pi`?1:-1:t===`ai-e`?e===`pi`?-1:1:0)}function te(e){let t=new Set;for(let n of Object.keys(e.activeOverrides||{}))t.add(n);for(let n of Object.keys(e.perCli||{}))t.add(n);let n={};for(let e of t)n[e]={model:``,effort:``};return{activeOverrides:n}}function L({port:e,client:t,dirty:n,registerSave:l}){let u=(0,y.useMemo)(()=>({client:t,port:e,dirty:n}),[t,e,n]),p=(0,y.useRef)(null),g=(0,y.useRef)(null),_=(0,y.useRef)(0),x=(0,y.useMemo)(()=>({...t,get:async(e,n)=>({instance:u,value:await t.get(e,n)})}),[t,u]),{state:S,refresh:C,setData:w}=i(x,`/api/settings`,[e]),T=(0,y.useMemo)(()=>S.kind===`ready`?S.data.instance===u?{kind:`ready`,data:S.data.value}:{kind:`loading`}:S,[S,u]),E=(0,y.useCallback)(e=>w({instance:u,value:e}),[u,w]),[D,O]=(0,y.useState)({}),[k,A]=(0,y.useState)(void 0),[j,M]=(0,y.useState)([]),[N,L]=(0,y.useState)({}),[R,z]=(0,y.useState)(!1),[B,V]=(0,y.useState)(null),[ne,H]=(0,y.useState)(null),[U,W]=(0,y.useState)(!1),[re,G]=(0,y.useState)(null);(0,y.useLayoutEffect)(()=>(p.current=u,g.current=null,++_.current,W(!1),z(!1),H(null),V(null),G(null),()=>{p.current=null,g.current=null,++_.current}),[u]);let K=(0,y.useCallback)(()=>p.current===u&&!g.current,[u]),q=(0,y.useCallback)(async()=>{if(p.current!==u)return;let e=++_.current;try{let n=await t.get(`/api/cli-registry`);if(p.current!==u||e!==_.current)return;let r=n&&typeof n==`object`&&`data`in n?n.data:n;G(m(r))}catch{p.current===u&&e===_.current&&G(null)}},[t,u]);(0,y.useEffect)(()=>{q()},[q]),(0,y.useEffect)(()=>{if(T.kind!==`ready`)return;let e={...T.data.perCli||{}},t=Object.fromEntries(Object.entries(n.saveBundle()).filter(([e])=>F(e))),r=v(t).perCli;if(r&&typeof r==`object`&&!Array.isArray(r))for(let[t,n]of Object.entries(r))n&&typeof n==`object`&&!Array.isArray(n)&&(e[t]={...e[t],...n});O(e),A(T.data.pi),M([...T.data.fallbackOrder||[]]);let i=e.codex||{},a={};typeof i.contextWindowSize==`number`&&(a.contextWindowSize=i.contextWindowSize),typeof i.contextWindowCompactLimit==`number`&&(a.contextWindowCompactLimit=i.contextWindowCompactLimit),L(a)},[T,n]);let ie=(0,y.useCallback)(e=>{if(p.current!==u)return;let t=T.kind===`ready`?T.data.perCli?.pi:void 0;e.pi&&A(e.pi),O(t=>({...t,pi:{...t.pi,provider:e.provider,model:e.model}})),n.set(`perCli.pi.provider`,{value:e.provider,original:t?.provider??`progrok`,valid:!0}),n.set(`perCli.pi.model`,{value:e.model,original:t?.model??``,valid:!0})},[n,u,T]);(0,y.useEffect)(()=>()=>{for(let e of Array.from(n.pending.keys()))F(e)&&n.remove(e)},[n,u]);let J=(0,y.useCallback)((e,t)=>{K()&&F(e)&&n.set(e,t)},[n,K]),Y=(0,y.useCallback)(()=>{if(p.current!==u)return Promise.resolve();let e=g.current;if(e)return e.kind===`save`?e.promise:Promise.reject(Error(`Wait for the active override reset before saving.`));let r=Object.fromEntries(Object.entries(n.saveBundle()).filter(([e])=>F(e)));if(Object.keys(r).length===0)return Promise.resolve();let i=v(r),a=new Map([...n.pending].filter(([e])=>Object.hasOwn(r,e)));W(!0),H(null);let o={instance:u,kind:`save`,promise:Promise.resolve()};return o.promise=Promise.resolve().then(async()=>{if(p.current!==u)return;let e=await t.put(`/api/settings`,i);if(p.current!==u)return;let r=I(e);for(let[e,t]of a)n.pending.get(e)===t&&n.remove(e);E(r),await C(),await q()}).catch(e=>{if(p.current===u)throw e}).finally(()=>{g.current===o&&(g.current=null),p.current===u&&W(!1)}),g.current=o,o.promise},[t,n,u,q,C,E]);(0,y.useEffect)(()=>{if(l)return l(Y),()=>l(null)},[l,Y]);let ae=(0,y.useCallback)(()=>{if(!K()||T.kind!==`ready`||!window.confirm(`Reset all active overrides?`))return;z(!0),V(null);let e=te(T.data),n={instance:u,kind:`reset`,promise:Promise.resolve()};return n.promise=Promise.resolve().then(async()=>{if(p.current!==u)return;let n=await t.put(`/api/settings`,e);if(p.current!==u)return;let r=I(n);E(r),await C()}).catch(e=>{p.current===u&&V(r(e))}).finally(()=>{g.current===n&&(g.current=null),p.current===u&&z(!1)}),g.current=n,n.promise},[K,t,u,C,E,T]);if(T.kind===`loading`)return(0,b.jsx)(o,{});if(T.kind===`offline`)return(0,b.jsx)(s,{port:e});if(T.kind===`error`)return(0,b.jsx)(c,{message:T.message});let X=T.data,Z=X.perCli||{},oe=ee(Object.keys(Z)),Q=Z.codex||{},se=X.activeOverrides||{},$=Object.entries(se);return(0,b.jsxs)(`form`,{className:`settings-page-form`,onSubmit:e=>{e.preventDefault(),Y().catch(e=>{p.current===u&&H(r(e))})},children:[ne?(0,b.jsx)(c,{message:ne}):null,(0,b.jsx)(a,{title:`Model defaults`,hint:`Per-CLI model and runtime defaults. Runtime transport applies to the next run; display and permissions stay separate.`,children:oe.length===0?(0,b.jsx)(`p`,{className:`settings-empty`,children:`No CLIs registered for this instance.`}):oe.map(e=>(0,b.jsx)(P,{cli:e,meta:h(e,re),original:Z[e]||{},value:D[e]||Z[e]||{},dirty:n,disabled:U||R,setValue:t=>{K()&&O({...D,[e]:t})},setEntry:J,client:t,pi:k,setPi:e=>{K()&&A(e)},onPiRegistered:ie},e))}),Z.codex?(0,b.jsxs)(a,{title:`Codex context window`,hint:`Codex-only sliders. Other CLIs ignore these values.`,children:[(0,b.jsx)(f,{id:`model-codex-ctx`,label:`Context window size`,disabled:U||R,value:N.contextWindowSize??(typeof Q.contextWindowSize==`number`?Q.contextWindowSize:1e6),min:0,step:1e4,onChange:e=>{K()&&(L({...N,contextWindowSize:e}),J(`perCli.codex.contextWindowSize`,{value:e,original:Q.contextWindowSize??1e6,valid:Number.isFinite(e)&&e>=0}))}}),(0,b.jsx)(f,{id:`model-codex-compact`,label:`Compact limit`,disabled:U||R,value:N.contextWindowCompactLimit??(typeof Q.contextWindowCompactLimit==`number`?Q.contextWindowCompactLimit:9e5),min:0,step:1e4,onChange:e=>{K()&&(L({...N,contextWindowCompactLimit:e}),J(`perCli.codex.contextWindowCompactLimit`,{value:e,original:Q.contextWindowCompactLimit??9e5,valid:Number.isFinite(e)&&e>=0}))}})]}):null,(0,b.jsx)(a,{title:`Fallback order`,hint:`Order of CLIs used when the active CLI fails. Press Enter to add a chip; Backspace to remove the last.`,children:(0,b.jsx)(d,{id:`model-fallbackOrder`,label:`Fallback order`,disabled:U||R,value:j,onChange:e=>{K()&&(M(e),J(`fallbackOrder`,{value:e,original:X.fallbackOrder||[],valid:!0}))},placeholder:`cli name`})}),(0,b.jsxs)(a,{title:`Active overrides`,hint:`Per-session overrides applied on top of per-CLI defaults.`,children:[$.length===0?(0,b.jsx)(`p`,{className:`settings-empty`,children:`No active overrides.`}):(0,b.jsxs)(`table`,{className:`settings-overrides-table`,children:[(0,b.jsx)(`thead`,{children:(0,b.jsxs)(`tr`,{children:[(0,b.jsx)(`th`,{scope:`col`,children:`CLI`}),(0,b.jsx)(`th`,{scope:`col`,children:`Model`}),(0,b.jsx)(`th`,{scope:`col`,children:`Effort`})]})}),(0,b.jsx)(`tbody`,{children:$.map(([e,t])=>(0,b.jsxs)(`tr`,{children:[(0,b.jsx)(`td`,{children:e}),(0,b.jsx)(`td`,{children:(0,b.jsx)(`code`,{children:t?.model||`—`})}),(0,b.jsx)(`td`,{children:(0,b.jsx)(`code`,{children:t?.effort||`—`})})]},e))})]}),(0,b.jsxs)(`div`,{className:`settings-overrides-actions`,children:[(0,b.jsx)(`button`,{type:`button`,className:`settings-action settings-action-discard`,onClick:()=>void ae(),disabled:U||R||$.length===0,children:R?`Resetting…`:`Reset overrides`}),B?(0,b.jsx)(`span`,{className:`settings-field-error`,role:`alert`,children:B}):null]})]})]})}export{te as buildResetOverridesPatch,L as default,ee as orderModelCliKeys};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{n as t,t as n}from"./jsx-runtime-CkEUZM6i.js";import{a as r,i,n as a,r as o,t as s}from"./page-shell-Bs0RBRoD.js";import{a as c,i as l,s as u}from"./fields-CSdFjOgg.js";import{t as d}from"./InlineWarn-DakL-ThS.js";import{t as f}from"./path-utils-B6vBr0DD.js";var p=e(t(),1),m=n(),h=[`off`,`http-only`,`full`];function g(e){return e===`off`||e===`http-only`||e===`full`}var _=[`network.bindHost`,`network.lanBypass`,`network.remoteAccess.mode`,`network.remoteAccess.trustProxies`,`network.remoteAccess.trustForwardedFor`,`network.remoteAccess.publicOriginHint`],v=[{value:`127.0.0.1`,label:`127.0.0.1 — loopback only (recommended)`},{value:`0.0.0.0`,label:`0.0.0.0 — all interfaces (LAN exposed)`}],y=[{value:`off`,label:`off — block remote requests`},{value:`http-only`,label:`http-only — read-only HTTP from remote`},{value:`full`,label:`full — HTTP + WebSocket from remote`}];function b(e){let t={};return e.bindHost!==void 0&&(t.bindHost=e.bindHost),e.lanBypass!==void 0&&(t.lanBypass=e.lanBypass),t.remoteAccess={...e.remoteAccess??{}},t}function x(e){let t=(e||``).trim();if(t===``)return{kind:`empty`};let n;try{n=new URL(t)}catch{return{kind:`invalid`,reason:`Must be an absolute URL (https://… or http://…).`}}return n.protocol!==`http:`&&n.protocol!==`https:`?{kind:`invalid`,reason:`Only http:// or https:// origins are accepted.`}:n.hostname?n.pathname&&n.pathname!==`/`?{kind:`invalid`,reason:`Origin must not include a path.`}:n.search||n.hash?{kind:`invalid`,reason:`Origin must not include query or hash.`}:{kind:`valid`,origin:n.origin}:{kind:`invalid`,reason:`Origin must include a host.`}}function S(e){let t=(e.locationHost||``).toLowerCase().split(`:`)[0]||``;return t===``||t===`localhost`||t===`127.0.0.1`||t===`::1`||e.currentMode===e.nextMode?!1:e.nextMode===`off`}function C({port:e,client:t,dirty:n,registerSave:h}){let{state:C,refresh:w,setData:T}=r(t,`/api/settings`),[E,D]=(0,p.useState)({});(0,p.useEffect)(()=>{if(C.kind===`ready`){let e=C.data.network??{};D(b(e))}},[C]),(0,p.useEffect)(()=>()=>{for(let e of _)n.remove(e)},[n]);let O=(0,p.useCallback)((e,t)=>n.set(e,t),[n]),k=(0,p.useMemo)(()=>C.kind===`ready`?C.data.network??{}:{},[C]),A=k.remoteAccess??{},j=E.remoteAccess??{},M=E.bindHost??k.bindHost??`127.0.0.1`,N=!!(E.lanBypass??k.lanBypass),P=g(j.mode)?j.mode:g(A.mode)?A.mode:`off`,F=P!==`off`,I=!!(j.trustProxies??A.trustProxies),L=!!(j.trustForwardedFor??A.trustForwardedFor),R=j.publicOriginHint??A.publicOriginHint??``,z=x(R),B=S({currentMode:g(A.mode)?A.mode:`off`,nextMode:P,locationHost:typeof window<`u`?window.location.host:``}),V=(0,p.useCallback)(async()=>{let e=n.saveBundle();if(Object.keys(e).length===0||B&&typeof window<`u`&&!window.confirm(`You are accessing this dashboard over a remote origin. Saving with remote access "off" will lock you out. Continue?`))return;let r=f(e),i=await t.put(`/api/settings`,r),a=i&&typeof i==`object`&&`data`in i?i.data:i;n.clear();let o=a.network??{};D(b(o)),T(a),await w()},[t,n,B,w,T]);if((0,p.useEffect)(()=>{if(h)return h(V),()=>h(null)},[h,V]),C.kind===`loading`)return(0,m.jsx)(a,{});if(C.kind===`offline`)return(0,m.jsx)(o,{port:e});if(C.kind===`error`)return(0,m.jsx)(s,{message:C.message});let H=(E.bindHost??k.bindHost)!==(k.bindHost??`127.0.0.1`);return(0,m.jsxs)(`form`,{className:`settings-page-form`,onSubmit:e=>{e.preventDefault(),V()},children:[(0,m.jsxs)(i,{title:`Bind`,hint:`Listening interface for /i/${e}. Changes require an instance restart.`,children:[(0,m.jsx)(l,{id:`network-bindHost`,label:`Bind host`,value:M,options:v,onChange:e=>{D({...E,bindHost:e}),O(`network.bindHost`,{value:e,original:k.bindHost??`127.0.0.1`,valid:!0})}}),M===`0.0.0.0`&&(0,m.jsxs)(d,{children:[`Listening on `,(0,m.jsx)(`code`,{children:`0.0.0.0`}),` exposes this instance's API to anyone on your LAN. Pair with auth + firewall rules.`]}),H&&(0,m.jsx)(d,{tone:`info`,children:`Restart the instance for the new bind host to take effect.`}),(0,m.jsx)(c,{id:`network-lanBypass`,label:`LAN bypass`,description:`Skip auth checks for clients on the same LAN.`,value:N,onChange:e=>{D({...E,lanBypass:e}),O(`network.lanBypass`,{value:e,original:!!k.lanBypass,valid:!0})}}),N&&(0,m.jsx)(d,{children:`LAN bypass disables auth for any client on the same network. Only enable on a trusted network.`})]}),(0,m.jsxs)(i,{title:`Remote access`,hint:`Mode controls what reaches the API from outside the loopback interface.`,children:[(0,m.jsx)(l,{id:`network-remoteAccess-mode`,label:`Remote access mode`,value:P,options:y,onChange:e=>{g(e)&&(D({...E,remoteAccess:{...j,mode:e}}),O(`network.remoteAccess.mode`,{value:e,original:g(A.mode)?A.mode:`off`,valid:!0}))}}),(0,m.jsxs)(`p`,{className:`settings-section-hint`,children:[(0,m.jsx)(`strong`,{children:`off`}),` — only loopback can talk to the API.`,` `,(0,m.jsx)(`strong`,{children:`http-only`}),` — remote can issue HTTP requests but no WebSocket upgrades. `,(0,m.jsx)(`strong`,{children:`full`}),` — HTTP + WebSocket open to remote (use with auth).`]}),B&&(0,m.jsxs)(d,{role:`alert`,children:[`Saving will close remote access while you're connected from`,(0,m.jsxs)(`code`,{children:[` `,typeof window<`u`?window.location.host:``,` `]}),`— you will be locked out. Reach the dashboard over loopback first.`]}),F&&(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(c,{id:`network-remoteAccess-trustProxies`,label:`Trust proxies`,description:`Honor proxy headers when computing the client origin.`,value:I,onChange:e=>{D({...E,remoteAccess:{...j,trustProxies:e}}),O(`network.remoteAccess.trustProxies`,{value:e,original:!!A.trustProxies,valid:!0})}}),(0,m.jsx)(c,{id:`network-remoteAccess-trustForwardedFor`,label:`Trust X-Forwarded-For`,description:`Use X-Forwarded-For for the client IP. Only enable behind a known proxy.`,value:L,onChange:e=>{D({...E,remoteAccess:{...j,trustForwardedFor:e}}),O(`network.remoteAccess.trustForwardedFor`,{value:e,original:!!A.trustForwardedFor,valid:!0})}}),L&&!I&&(0,m.jsx)(d,{children:`Trusting X-Forwarded-For without trusting the proxy chain lets any client spoof its IP. Enable "Trust proxies" too.`}),(0,m.jsx)(u,{id:`network-remoteAccess-publicOriginHint`,label:`Public origin hint`,value:R,placeholder:`https://your-tunnel-url`,error:z.kind===`invalid`?z.reason:null,onChange:e=>{D({...E,remoteAccess:{...j,publicOriginHint:e}});let t=x(e);O(`network.remoteAccess.publicOriginHint`,{value:t.kind===`valid`?t.origin:e,original:A.publicOriginHint??``,valid:t.kind!==`invalid`})}})]})]})]})}export{h as REMOTE_ACCESS_MODES,C as default,S as detectSelfLockoutRisk,g as isRemoteAccessMode,x as parsePublicOriginHint};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{n as t,t as n}from"./jsx-runtime-CkEUZM6i.js";import{a as r,i,n as a,o,r as s,t as c}from"./notes-graph-settings-BUoTzvqs.js";import{B as l,Bt as u,Ft as d,It as f,Lt as p,Nt as m,Pt as h,V as g,zt as _}from"./vendor-utils-C1xaEGmb.js";var v=e(t(),1);function y(e){return{nodeSize:e.nodeSize,linkDistance:e.linkDistance,chargeStrength:e.chargeStrength,labelDensity:e.labelDensity,showArrows:e.showArrows,animate:e.animate}}function b(e,t){let n=e.kind===`tag`?5:e.kind===`missing`||e.kind===`ambiguous`?6:7,r=Math.sqrt(Math.max(0,e.degree))*2.4;return Math.min(26,Math.max(4,(n+r)*t.nodeSize))}function x(e,t,n){return e.kind===`missing`||e.kind===`ambiguous`?t>=.45:e.kind===`tag`?n.labelDensity>.35&&t>=.65:n.labelDensity>=.75?t>=.35:n.labelDensity>=.45?e.degree>0&&t>=.6:e.degree>=2&&t>=.85}var S=n();function C(e,t){let n=e.id===t?` is-selected`:``;return`notes-graph-node notes-graph-node-${e.kind}${n}`}function w(e){return`notes-graph-link notes-graph-link-${e.status}${e.virtual?` is-virtual`:``}`}function T(e){let t=(0,v.useRef)(null),n=(0,v.useRef)(null),r=(0,v.useRef)(e.onNavigate),[i,a]=(0,v.useState)({width:900,height:650});r.current=e.onNavigate;let o=(0,v.useMemo)(()=>y(e.settings),[e.settings]);return(0,v.useEffect)(()=>{let e=n.current;if(!e)return;let t=()=>{let t=e.getBoundingClientRect();a({width:Math.max(320,Math.floor(t.width||900)),height:Math.max(320,Math.floor(t.height||650))})};if(t(),typeof window.ResizeObserver!=`function`)return;let r=new window.ResizeObserver(t);return r.observe(e),()=>r.disconnect()},[]),(0,v.useEffect)(()=>{let n=t.current;if(!n)return;let a=u(n);if(a.selectAll(`*`).remove(),a.attr(`viewBox`,`0 0 ${i.width} ${i.height}`),e.data.nodes.length===0)return;let s=window.matchMedia?.(`(prefers-reduced-motion: reduce)`).matches??!1,c=e.data.nodes.map(e=>({...e})),v=new Map(c.map(e=>[e.id,e])),y=e.data.edges.flatMap(e=>{let t=v.get(e.source),n=v.get(e.target),r={raw:e.raw,status:e.status,...e.resolvedPath?{resolvedPath:e.resolvedPath}:{},...e.virtual?{virtual:e.virtual}:{}};return t&&n?[{...r,source:t,target:n}]:[]});a.append(`defs`).append(`marker`).attr(`id`,`notes-graph-arrow`).attr(`viewBox`,`0 -5 10 10`).attr(`refX`,15).attr(`refY`,0).attr(`markerWidth`,6).attr(`markerHeight`,6).attr(`orient`,`auto`).append(`path`).attr(`d`,`M0,-5L10,0L0,5`).attr(`fill`,`currentColor`);let S=a.append(`g`).attr(`class`,`notes-graph-viewport`),T=S.append(`g`).attr(`class`,`notes-graph-links`).selectAll(`line`).data(y).join(`line`).attr(`class`,w).attr(`marker-end`,o.showArrows?`url(#notes-graph-arrow)`:null),E=S.append(`g`).attr(`class`,`notes-graph-nodes`).selectAll(`g`).data(c).join(`g`).attr(`class`,t=>C(t,e.selectedPath)).attr(`tabindex`,e=>e.kind===`note`?0:-1).attr(`role`,e=>e.kind===`note`?`button`:`img`).attr(`aria-label`,e=>`${e.title}, ${e.kind}, ${e.degree} links`).on(`click`,(e,t)=>{t.kind===`note`&&t.path&&r.current(t.path)}).on(`keydown`,(e,t)=>{t.kind===`note`&&t.path&&(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),r.current(t.path))});E.append(`circle`).attr(`r`,e=>b(e,o)).attr(`fill`,e=>e.groupColor??null),E.append(`text`).attr(`class`,`notes-graph-label`).attr(`x`,e=>b(e,o)+8).attr(`y`,4).text(e=>e.title),E.append(`title`).text(e=>e.groupLabel?`${e.title} · ${e.groupLabel}`:e.title);let D=h(c).force(`link`,d(y).id(e=>e.id).distance(o.linkDistance)).force(`charge`,m().strength(o.chargeStrength)).force(`center`,p(i.width/2,i.height/2)).force(`collision`,f().radius(e=>b(e,o)+8));function O(){T.attr(`x1`,e=>e.source.x??0).attr(`y1`,e=>e.source.y??0).attr(`x2`,e=>e.target.x??0).attr(`y2`,e=>e.target.y??0),E.attr(`transform`,e=>`translate(${e.x??i.width/2},${e.y??i.height/2})`)}let k=l().scaleExtent([.18,5]).on(`zoom`,e=>{S.attr(`transform`,e.transform),E.classed(`is-label-visible`,t=>x(t,e.transform.k,o))});a.call(k);let A=g.translate(0,0).scale(1);a.call(k.transform,A);let j=_().on(`start`,(e,t)=>{!e.active&&o.animate&&!s&&D.alphaTarget(.25).restart(),t.fx=t.x,t.fy=t.y}).on(`drag`,(e,t)=>{t.fx=e.x,t.fy=e.y}).on(`end`,(e,t)=>{e.active||D.alphaTarget(0),t.fx=null,t.fy=null});return E.call(j),o.animate&&!s?D.on(`tick`,O):(D.tick(120),O(),D.stop()),()=>{D.stop(),a.on(`.zoom`,null)}},[e.data,e.selectedPath,i,o,e.fitToken]),(0,S.jsxs)(`div`,{ref:n,className:`notes-graph-canvas`,"data-empty":e.data.nodes.length===0?`true`:`false`,children:[e.data.nodes.length===0?(0,S.jsx)(`div`,{className:`notes-graph-empty-state`,children:`No matching graph nodes`}):null,(0,S.jsx)(`svg`,{ref:t,className:`notes-graph-svg`,"aria-label":`Notes graph`})]})}function E(e){return e===`filters`?`Filters`:e===`display`?`Display`:e===`forces`?`Forces`:`Groups`}function D(e,t){return{...e,...t,collapsedSections:t.collapsedSections??e.collapsedSections,groups:t.groups??e.groups}}function O(e){return(0,S.jsxs)(`label`,{className:`notes-graph-toggle${e.disabled?` is-disabled`:``}`,children:[(0,S.jsx)(`span`,{children:e.label}),(0,S.jsx)(`input`,{type:`checkbox`,checked:e.checked,disabled:e.disabled,onChange:t=>e.onChange(t.currentTarget.checked)})]})}function k(e){let{settings:t}=e;function n(n){e.onChange(D(t,n))}function i(e){n({[e]:!t[e]})}function o(e){n({collapsedSections:{...t.collapsedSections,[e]:!t.collapsedSections[e]}})}function c(e,r){n({groups:t.groups.map(t=>t.id===e?{...t,...r}:t)})}function l(){n({groups:[...t.groups,r(t.groups.length,t.query)]})}function u(e){n({groups:t.groups.filter(t=>t.id!==e)})}return(0,S.jsxs)(`aside`,{className:`notes-graph-controls`,"aria-label":`Graph controls`,children:[(0,S.jsxs)(`header`,{className:`notes-graph-controls-header`,children:[(0,S.jsxs)(`div`,{children:[(0,S.jsx)(`h3`,{children:`Graph`}),(0,S.jsx)(`span`,{children:e.selectedPath?`Focus-ready`:`Global view`})]}),(0,S.jsx)(`button`,{type:`button`,className:`notes-graph-icon-button`,onClick:e.onClose,"aria-label":`Close graph controls`,children:`X`})]}),s.map(r=>(0,S.jsxs)(`section`,{className:`notes-graph-control-section`,children:[(0,S.jsxs)(`button`,{type:`button`,className:`notes-graph-section-toggle`,onClick:()=>o(r),"aria-expanded":!t.collapsedSections[r],children:[(0,S.jsx)(`span`,{children:E(r)}),(0,S.jsx)(`span`,{children:t.collapsedSections[r]?`+`:`-`})]}),!t.collapsedSections[r]&&r===`filters`?(0,S.jsxs)(`div`,{className:`notes-graph-control-body`,children:[(0,S.jsxs)(`label`,{className:`notes-graph-field`,children:[(0,S.jsx)(`span`,{children:`Search`}),(0,S.jsx)(`input`,{value:t.query,onChange:e=>n({query:e.currentTarget.value}),placeholder:`title, path:, tag:, kind:`})]}),(0,S.jsx)(O,{label:`Existing files only`,checked:t.existingFilesOnly,onChange:()=>i(`existingFilesOnly`)}),(0,S.jsx)(O,{label:`Show orphans`,checked:t.showOrphans,onChange:()=>i(`showOrphans`)}),(0,S.jsx)(O,{label:`Show tags`,checked:t.showTags,onChange:()=>i(`showTags`)}),(0,S.jsx)(O,{label:`Show attachments`,checked:t.showAttachments,onChange:()=>i(`showAttachments`)}),(0,S.jsx)(O,{label:`Focus selected`,checked:t.focusSelected,disabled:!e.selectedPath,onChange:()=>i(`focusSelected`)}),(0,S.jsxs)(`label`,{className:`notes-graph-field`,children:[(0,S.jsxs)(`span`,{children:[`Depth `,t.focusDepth]}),(0,S.jsx)(`input`,{type:`range`,min:`1`,max:`4`,value:t.focusDepth,disabled:!t.focusSelected||!e.selectedPath,onChange:e=>n({focusDepth:Number(e.currentTarget.value)})})]})]}):null,!t.collapsedSections[r]&&r===`display`?(0,S.jsxs)(`div`,{className:`notes-graph-control-body`,children:[(0,S.jsxs)(`label`,{className:`notes-graph-field`,children:[(0,S.jsxs)(`span`,{children:[`Node size `,t.nodeSize.toFixed(1)]}),(0,S.jsx)(`input`,{type:`range`,min:`0.6`,max:`2`,step:`0.1`,value:t.nodeSize,onChange:e=>n({nodeSize:Number(e.currentTarget.value)})})]}),(0,S.jsxs)(`label`,{className:`notes-graph-field`,children:[(0,S.jsxs)(`span`,{children:[`Labels `,Math.round(t.labelDensity*100),`%`]}),(0,S.jsx)(`input`,{type:`range`,min:`0`,max:`1`,step:`0.05`,value:t.labelDensity,onChange:e=>n({labelDensity:Number(e.currentTarget.value)})})]}),(0,S.jsx)(O,{label:`Show arrows`,checked:t.showArrows,onChange:()=>i(`showArrows`)}),(0,S.jsx)(O,{label:`Animate`,checked:t.animate,onChange:()=>i(`animate`)})]}):null,!t.collapsedSections[r]&&r===`forces`?(0,S.jsxs)(`div`,{className:`notes-graph-control-body`,children:[(0,S.jsxs)(`label`,{className:`notes-graph-field`,children:[(0,S.jsxs)(`span`,{children:[`Link distance `,t.linkDistance]}),(0,S.jsx)(`input`,{type:`range`,min:`40`,max:`240`,value:t.linkDistance,onChange:e=>n({linkDistance:Number(e.currentTarget.value)})})]}),(0,S.jsxs)(`label`,{className:`notes-graph-field`,children:[(0,S.jsxs)(`span`,{children:[`Repel `,Math.abs(t.chargeStrength)]}),(0,S.jsx)(`input`,{type:`range`,min:`-800`,max:`-20`,value:t.chargeStrength,onChange:e=>n({chargeStrength:Number(e.currentTarget.value)})})]}),(0,S.jsxs)(`div`,{className:`notes-graph-control-row`,children:[(0,S.jsx)(`button`,{type:`button`,onClick:e.onFit,children:`Fit`}),(0,S.jsx)(`button`,{type:`button`,onClick:e.onReset,children:`Reset`})]})]}):null,!t.collapsedSections[r]&&r===`groups`?(0,S.jsxs)(`div`,{className:`notes-graph-control-body`,children:[(0,S.jsx)(O,{label:`Query groups`,checked:t.groupMode===`query`,onChange:e=>n({groupMode:e?`query`:`off`})}),(0,S.jsx)(`div`,{className:`notes-graph-groups`,children:t.groups.map((e,t)=>(0,S.jsxs)(`div`,{className:`notes-graph-group-row`,children:[(0,S.jsx)(`input`,{className:`notes-graph-color`,type:`color`,value:e.color,onChange:t=>c(e.id,{color:t.currentTarget.value})}),(0,S.jsx)(`input`,{value:e.label,onChange:t=>c(e.id,{label:t.currentTarget.value}),"aria-label":`Group ${t+1} label`}),(0,S.jsx)(`input`,{value:e.query,onChange:t=>c(e.id,{query:t.currentTarget.value}),"aria-label":`Group ${t+1} query`}),(0,S.jsx)(`button`,{type:`button`,onClick:()=>c(e.id,{enabled:!e.enabled}),"aria-pressed":e.enabled,children:e.enabled?`On`:`Off`}),(0,S.jsx)(`button`,{type:`button`,className:`notes-graph-icon-button`,onClick:()=>u(e.id),"aria-label":`Remove ${e.label}`,children:`X`})]},e.id))}),(0,S.jsx)(`div`,{className:`notes-graph-swatches`,"aria-label":`Group color presets`,children:a.map(e=>(0,S.jsx)(`span`,{style:{background:e}},e))}),(0,S.jsx)(`button`,{type:`button`,onClick:l,children:`Add group`})]}):null]},r))]})}var A={note:0,tag:1,missing:2,ambiguous:3,attachment:4};function j(e){return e.trim().replace(/^#/,``).toLowerCase()}function M(e){return`tag:${j(e)}`}function N(e,t){let n=[e.id,e.title,e.path??``];return t&&n.push(t.title,t.path,...t.aliases,...t.tags),n.filter(Boolean).map(e=>e.toLowerCase())}function P(e,t,n){let r=e.toLowerCase();if(r.startsWith(`kind:`))return t.kind===r.slice(5);if(r.startsWith(`path:`))return(t.path??t.id).toLowerCase().includes(r.slice(5));if(r.startsWith(`tag:`)){let e=j(r.slice(4));return e?t.kind===`tag`?j(t.title).includes(e)||t.id.includes(e):!!n?.tags.some(t=>j(t).includes(e)):!0}return N(t,n).some(e=>e.includes(r))}function F(e,t,n){let r=e.trim().split(/\s+/).filter(Boolean);return r.length===0||r.every(e=>P(e,t,n))}function I(e,t,n){if(n.groupMode!==`off`)return n.groups.find(n=>n.enabled&&F(n.query,e,t))}function L(e,t){let n=new Map;for(let t of e.graph.nodes)n.set(t.id,{...t});for(let t of e.notes)n.has(t.path)||n.set(t.path,{id:t.path,title:t.title,kind:`note`,path:t.path});let r=e.graph.edges.map(e=>({...e}));if(t.showTags)for(let t of e.notes)for(let e of t.tags){let i=j(e);if(!i)continue;let a=M(i);n.has(a)||n.set(a,{id:a,title:`#${i}`,kind:`tag`}),r.push({source:t.path,target:a,raw:`#${i}`,status:`resolved`,resolvedPath:t.path})}return{nodes:[...n.values()],edges:r}}function R(e){let t=new Map;for(let n of e)t.set(n.source,(t.get(n.source)??0)+1),t.set(n.target,(t.get(n.target)??0)+1);return t}function z(e,t,n){let r=new Map;for(let t of e)r.has(t.source)||r.set(t.source,new Set),r.has(t.target)||r.set(t.target,new Set),r.get(t.source)?.add(t.target),r.get(t.target)?.add(t.source);let i=new Set([t]),a=new Set([t]);for(let e=0;e<n;e+=1){let e=new Set;for(let t of a)for(let n of r.get(t)??[])i.has(n)||(i.add(n),e.add(n));if(a=e,a.size===0)break}return i}function B(e,t){return A[e.kind]-A[t.kind]||e.title.localeCompare(t.title)||e.id.localeCompare(t.id)}function V(e,t,n){if(!e)return{nodes:[],edges:[],noteCount:0,linkCount:0,missingCount:0,tagCount:0,hiddenCount:0};let r=new Map(e.notes.map(e=>[e.path,e])),i=L(e,t),a=i.nodes.filter(e=>t.existingFilesOnly&&(e.kind===`missing`||e.kind===`ambiguous`)||!t.showTags&&e.kind===`tag`||!t.showAttachments&&e.kind===`attachment`?!1:F(t.query,e,r.get(e.path??e.id))),o=new Set(a.map(e=>e.id)),s=i.edges.filter(e=>o.has(e.source)&&o.has(e.target));if(!t.showOrphans){let e=R(s);a=a.filter(t=>t.id===n||(e.get(t.id)??0)>0||t.kind!==`note`),o=new Set(a.map(e=>e.id)),s=s.filter(e=>o.has(e.source)&&o.has(e.target))}if(t.focusSelected&&n&&o.has(n)){let e=z(s,n,t.focusDepth);a=a.filter(t=>e.has(t.id)),o=new Set(a.map(e=>e.id)),s=s.filter(e=>o.has(e.source)&&o.has(e.target))}let c=R(s),l=a.map(e=>{let n=r.get(e.path??e.id),i=I(e,n,t);return{...e,degree:c.get(e.id)??0,...i?{groupColor:i.color,groupLabel:i.label}:{},searchMatch:F(t.query,e,n)}}).sort(B),u=new Set(l.map(e=>e.id)),d=s.filter(e=>u.has(e.source)&&u.has(e.target)).map(e=>({...e,virtual:e.target.startsWith(`tag:`)||e.source.startsWith(`tag:`)})).sort((e,t)=>e.source.localeCompare(t.source)||e.target.localeCompare(t.target)||e.raw.localeCompare(t.raw));return{nodes:l,edges:d,noteCount:l.filter(e=>e.kind===`note`).length,linkCount:d.filter(e=>!e.virtual).length,missingCount:l.filter(e=>e.kind===`missing`||e.kind===`ambiguous`).length,tagCount:l.filter(e=>e.kind===`tag`).length,hiddenCount:i.nodes.length-l.length}}var H={dataPlane:`dashboard-notes-api`,shellPanels:`render-only`};function U(){return i(c)}function W(e){let[t,n]=(0,v.useState)(()=>o(e.settings??U())),[r,i]=(0,v.useState)(0),a=(0,v.useRef)(null);(0,v.useEffect)(()=>{n(o(e.settings??U()))},[e.settings]),(0,v.useEffect)(()=>()=>{a.current!=null&&window.clearTimeout(a.current)},[]);function s(t,r=!1){if(n(t),e.onSettingsChange){if(a.current!=null&&window.clearTimeout(a.current),r){e.onSettingsChange(t);return}a.current=window.setTimeout(()=>e.onSettingsChange?.(t),140)}}function c(){s(U(),!0),i(e=>e+1)}function l(){s({...t,panelOpen:!1},!0)}function u(){s({...t,panelOpen:!0},!0)}let d=(0,v.useMemo)(()=>V(e.vaultIndex,t,e.selectedPath),[e.vaultIndex,t,e.selectedPath]);return(0,S.jsxs)(`div`,{className:`notes-graph-workspace${t.panelOpen?` has-controls`:``}`,children:[(0,S.jsxs)(`header`,{className:`notes-graph-toolbar`,children:[(0,S.jsxs)(`div`,{className:`notes-graph-counts`,"aria-live":`polite`,children:[(0,S.jsx)(`strong`,{children:d.noteCount}),` notes`,(0,S.jsxs)(`span`,{children:[d.linkCount,` links`]}),(0,S.jsxs)(`span`,{children:[d.missingCount,` unresolved`]}),d.tagCount>0?(0,S.jsxs)(`span`,{children:[d.tagCount,` tags`]}):null]}),(0,S.jsxs)(`div`,{className:`notes-graph-actions`,children:[(0,S.jsx)(`button`,{type:`button`,onClick:()=>i(e=>e+1),children:`Fit`}),(0,S.jsx)(`button`,{type:`button`,onClick:c,children:`Reset`}),t.panelOpen?null:(0,S.jsx)(`button`,{type:`button`,onClick:u,children:`Controls`})]})]}),(0,S.jsxs)(`div`,{className:`notes-graph-body`,children:[(0,S.jsx)(T,{data:d,selectedPath:e.selectedPath,settings:t,fitToken:r,onNavigate:e.onNavigate}),t.panelOpen?(0,S.jsx)(k,{settings:t,selectedPath:e.selectedPath,onChange:e=>s(e),onReset:c,onFit:()=>i(e=>e+1),onClose:l}):null]})]})}export{H as NOTES_GRAPH_RUNTIME_BOUNDARY,W as NotesGraphWorkspace};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{n as t,t as n}from"./jsx-runtime-CkEUZM6i.js";var r=e(t(),1),i=null,a={register(e){return i=e,()=>{i===e&&(i=null)}},dispatch(e){return i?.(e)??!1}},o=[`terminal`,`browser`,`logs`,`activity`],s=9999,c=[`files`,`diff`,`browser`,`design`],l={files:`Files`,diff:`Diff`,browser:`Browser`,design:`Design`},u=[`files`,`browser`,`design`],d=`Working tree`,f=.5,p=n();function m(e){return u.includes(e)}function h(e,t){return e===`diff`?`right-diff`:`right-${e}-${t??1}`}function g(e,t){return e===`diff`?d:`${l[e]} ${t??1}`}function _(e,t,n){if(t===`diff`){let t=e.openTabs.find(e=>e.kind===`diff`);if(t)return{...e,activeTabId:t.id};let r={id:h(`diff`),kind:`diff`,title:n?.title??l.diff,specificName:n?.specificName??`Working tree`,...n?.sourceLabel?{sourceLabel:n.sourceLabel}:{}};return{...e,openTabs:[...e.openTabs,r],activeTabId:r.id}}let r=e.openTabs.filter(e=>e.kind===t).reduce((e,t)=>Math.max(e,t.ordinal??1),0),i=Math.max(e.nextOrdinalByKind[t]??1,r+1),a={id:h(t,i),kind:t,title:n?.title??l[t],specificName:n?.specificName??g(t,i),ordinal:i,...n?.sourceLabel?{sourceLabel:n.sourceLabel}:{}},o=m(t)?{...e.nextOrdinalByKind,[t]:i+1}:e.nextOrdinalByKind;return{openTabs:[...e.openTabs,a],activeTabId:a.id,nextOrdinalByKind:o}}function v(e,t){let n=e.openTabs.find(e=>e.kind===t);return n?{...e,activeTabId:n.id}:_(e,t)}function y(e,t){return e.openTabs.find(e=>e.id===t)?{...e,activeTabId:t}:e}function b(e,t,n){let r=e.openTabs.findIndex(e=>e.id===t);if(r===-1)return e;let i=e.openTabs[r],a={...i,...n.title===void 0?{}:{title:n.title},...n.specificName===void 0?{}:{specificName:n.specificName},...n.sourceLabel===void 0?{}:{sourceLabel:n.sourceLabel}};if(a.title===i.title&&a.specificName===i.specificName&&a.sourceLabel===i.sourceLabel)return e;let o=[...e.openTabs];return o[r]=a,{...e,openTabs:o}}function x(e){if(!e)return null;let t=e.replace(/\\/g,`/`).replace(/\/+$/,``).split(`/`).filter(Boolean);return t[t.length-1]??null}function S(e,t){return x(t.activeFilePath)??x(t.folderRootPath)??g(`files`,e.ordinal)}function C(e,t,n){let r=e.openTabs.findIndex(e=>e.id===t&&e.kind===`files`);if(r===-1)return e;let i=e.openTabs[r],a={...i.files,...n},o=S(i,a),s=a.activeFilePath??a.folderRootPath??void 0,c=[...e.openTabs];return c[r]={...i,files:a,specificName:o,...s?{sourceLabel:s}:{}},{...e,openTabs:c}}function w(e,t,n,r){let i=e.openTabs.find(e=>e.id===t&&e.kind===`files`);return i?r===`follow-instance`?C(e,t,{repoRootPath:n,repoRootMode:`instance`}):r===`instance`&&i.files?.repoRootMode===`manual`?e:C(e,t,{repoRootPath:n,repoRootMode:r}):e}function T(e){let t=e.openTabs.find(t=>t.id===e.activeTabId);return t?.kind===`files`?t:e.openTabs.find(e=>e.kind===`files`)??null}function E(e,t){let n=e,r=T(n);return r?n=y(n,r.id):(n=_(n,`files`),r=n.openTabs[n.openTabs.length-1]??null),r?C(n,r.id,{activeFilePath:t}):n}function D(e,t){let n=e,r=T(n);return r?n=y(n,r.id):(n=_(n,`files`),r=n.openTabs[n.openTabs.length-1]??null),r?C(n,r.id,{folderRootPath:t,repoRootPath:null,repoRootMode:`instance`}):n}function O(e){if(!e)return null;try{return new URL(e).hostname.replace(/^www\./,``)||null}catch{return null}}function k(e,t,n){let r=e.openTabs.findIndex(e=>e.id===t&&e.kind===`browser`);if(r===-1)return e;let i=e.openTabs[r],a=n.url??i.browser?.url,o=n.title?.trim()||O(a)||g(`browser`,i.ordinal),s={...i,...a?{browser:{...i.browser,url:a}}:{},specificName:o,...a?{sourceLabel:a}:{}};if(s.specificName===i.specificName&&s.sourceLabel===i.sourceLabel&&s.browser?.url===i.browser?.url)return e;let c=[...e.openTabs];return c[r]=s,{...e,openTabs:c}}function A(e,t,n){let r=e.openTabs.findIndex(e=>e.id===t&&e.kind===`design`);if(r===-1)return e;let i=e.openTabs[r],a={...i.design};if(n.pageId!==void 0&&(a.pageId=n.pageId),n.zoom!==void 0&&(a.zoom=n.zoom),n.projectKey!==void 0&&(a.projectKey===void 0||a.projectKey===null)&&(a.projectKey=n.projectKey),a.pageId===i.design?.pageId&&a.projectKey===i.design?.projectKey&&a.zoom===i.design?.zoom)return e;let o=[...e.openTabs];return o[r]={...i,design:a},{...e,openTabs:o}}function j(e,t){let n=_(e,`browser`),r=n.openTabs[n.openTabs.length-1];return r?k(n,r.id,{url:t}):n}function M(e,t){let n=e.openTabs.findIndex(e=>e.id===t);if(n===-1)return e;let r=e.openTabs.filter(e=>e.id!==t),i=e.activeTabId;if(e.activeTabId===t){if(r.length===0)i=null;else{let e=Math.min(n,r.length-1);i=(n>0?r[n-1]:r[e])?.id??null}}return{openTabs:r,activeTabId:i,nextOrdinalByKind:e.nextOrdinalByKind}}function N(e){return e<=.12?`folder-only`:e>=.88?`file-only`:`split`}function P(e){return typeof e!=`number`||!Number.isFinite(e)?f:Math.max(0,Math.min(1,e))}function F(e){if(e.mode!==`folder-only`)return e;let t=e.lastSplitRatio||.5;return{mode:`split`,splitRatio:t,lastSplitRatio:t}}function I(e){return typeof e!=`number`||!Number.isFinite(e)?480:Math.min(s,Math.max(260,Math.round(e)))}function L(e){return typeof e!=`number`||!Number.isFinite(e)?320:Math.min(520,Math.max(180,Math.round(e)))}function R(e){let t={...e};t.width=I(t.width);let n=t.tabs.openTabs.filter(e=>c.includes(e.kind));return n.length!==t.tabs.openTabs.length&&(t.tabs={...t.tabs,openTabs:n}),t.tabs.activeTabId&&!n.find(e=>e.id===t.tabs.activeTabId)&&(t.tabs={...t.tabs,activeTabId:n[0]?.id??null}),!t.tabs.activeTabId&&n.length>0&&(t.tabs={...t.tabs,activeTabId:n[0].id}),t.tabs.openTabs.length===0&&t.open&&(t.open=!1),t}function z(e,t){switch(t.type){case`SET_RIGHT_OPEN`:return{...e,rightPanel:{...e.rightPanel,open:t.open}};case`SET_RIGHT_WIDTH`:return{...e,rightPanel:{...e.rightPanel,width:I(t.width)}};case`FOCUS_OR_CREATE_FIRST_RIGHT_SIDEBAR_TAB`:{let n=v(e.rightPanel.tabs,t.kind);return{...e,rightPanel:{...e.rightPanel,open:!0,tabs:n}}}case`CREATE_RIGHT_SIDEBAR_TAB`:{let n=_(e.rightPanel.tabs,t.kind,t.tab);return{...e,rightPanel:{...e.rightPanel,open:!0,tabs:n}}}case`ACTIVATE_RIGHT_SIDEBAR_TAB`:{let n=y(e.rightPanel.tabs,t.tabId);return{...e,rightPanel:{...e.rightPanel,tabs:n}}}case`SET_RIGHT_SIDEBAR_TAB_META`:{let n=b(e.rightPanel.tabs,t.tabId,t.patch);return n===e.rightPanel.tabs?e:{...e,rightPanel:{...e.rightPanel,tabs:n}}}case`CLOSE_RIGHT_SIDEBAR_TAB`:{let n=M(e.rightPanel.tabs,t.tabId),r=n.openTabs.length>0;return{...e,rightPanel:{...e.rightPanel,open:r,tabs:n}}}case`OPEN_FILE_IN_FILES_TAB`:{let n=E(e.rightPanel.tabs,t.path);return{...e,rightPanel:{...e.rightPanel,open:!0,tabs:n,fileFolderLayout:F(e.rightPanel.fileFolderLayout)}}}case`OPEN_FOLDER_IN_FILES_TAB`:{let n=D(e.rightPanel.tabs,t.path);return{...e,rightPanel:{...e.rightPanel,open:!0,tabs:n}}}case`SET_FILES_TAB_FILE`:{let n=C(e.rightPanel.tabs,t.tabId,{activeFilePath:t.path});if(n===e.rightPanel.tabs)return e;let r=t.path?F(e.rightPanel.fileFolderLayout):e.rightPanel.fileFolderLayout;return{...e,rightPanel:{...e.rightPanel,tabs:n,fileFolderLayout:r}}}case`SET_FILES_TAB_ROOT`:{let n=C(e.rightPanel.tabs,t.tabId,{folderRootPath:t.path,repoRootPath:null,repoRootMode:`instance`});return n===e.rightPanel.tabs?e:{...e,rightPanel:{...e.rightPanel,tabs:n}}}case`SET_FILES_TAB_REPO_ROOT`:{let n=w(e.rightPanel.tabs,t.tabId,t.path,t.mode);return n===e.rightPanel.tabs?e:{...e,rightPanel:{...e.rightPanel,tabs:n}}}case`SET_BROWSER_TAB_STATE`:{let n={};t.url!==void 0&&(n.url=t.url),t.title!==void 0&&(n.title=t.title);let r=k(e.rightPanel.tabs,t.tabId,n);return r===e.rightPanel.tabs?e:{...e,rightPanel:{...e.rightPanel,tabs:r}}}case`OPEN_BROWSER_MODULE_TAB`:{let n=j(e.rightPanel.tabs,t.url);return{...e,rightPanel:{...e.rightPanel,open:!0,tabs:n}}}case`SET_DESIGN_TAB_STATE`:{let n=A(e.rightPanel.tabs,t.tabId,t.patch);return n===e.rightPanel.tabs?e:{...e,rightPanel:{...e.rightPanel,tabs:n}}}case`SET_FILE_FOLDER_SPLIT_RATIO`:{let n=P(t.ratio),r=N(n),i=r===`split`?n:e.rightPanel.fileFolderLayout.lastSplitRatio;return{...e,rightPanel:{...e.rightPanel,fileFolderLayout:{mode:r,splitRatio:n,lastSplitRatio:i}}}}case`SET_FILE_FOLDER_VIEW_MODE`:{let n=e.rightPanel.fileFolderLayout;if(t.mode===n.mode)return e;let r=n.splitRatio,i=n.lastSplitRatio;return t.mode===`folder-only`?r=0:t.mode===`file-only`?r=1:(r=i||.5,i=r),{...e,rightPanel:{...e.rightPanel,fileFolderLayout:{mode:t.mode,splitRatio:r,lastSplitRatio:i}}}}case`RESTORE_FILE_FOLDER_SPLIT`:{let t=e.rightPanel.fileFolderLayout.lastSplitRatio||.5;return{...e,rightPanel:{...e.rightPanel,fileFolderLayout:{mode:`split`,splitRatio:t,lastSplitRatio:t}}}}case`SET_BOTTOM_OPEN`:return{...e,bottomPanel:{...e.bottomPanel,open:t.open}};case`SET_BOTTOM_HEIGHT`:return{...e,bottomPanel:{...e.bottomPanel,height:L(t.height)}};case`OPEN_BOTTOM_TAB`:{let n=e.bottomPanel,r=n.tabs.includes(t.tab)?n.tabs:[...n.tabs,t.tab];return{...e,bottomPanel:{...n,open:!0,tabs:r,activeTab:t.tab}}}case`CLOSE_BOTTOM_TAB`:{let n=e.bottomPanel,r=n.tabs.filter(e=>e!==t.tab),i=n.activeTab===t.tab?r[0]??null:n.activeTab,a=r.length>0;return{...e,bottomPanel:{...n,tabs:r,activeTab:i,open:a}}}case`SET_BOTTOM_ACTIVE_TAB`:return{...e,bottomPanel:{...e.bottomPanel,activeTab:t.tab}};case`HYDRATE`:{let n=t.state,r=R({...e.rightPanel,...n.rightPanel}),i={...e.bottomPanel,...n.bottomPanel};return i.height=L(i.height),i.tabs=(i.tabs??[]).filter(e=>o.includes(e)),i.activeTab!==null&&!i.tabs.includes(i.activeTab)&&(i.activeTab=i.tabs[0]??null),{rightPanel:r,bottomPanel:i}}default:return e}}var B={rightPanel:{open:!1,width:480,tabs:{openTabs:[],activeTabId:null,nextOrdinalByKind:{}},fileFolderLayout:{mode:`split`,splitRatio:f,lastSplitRatio:f}},bottomPanel:{open:!1,height:320,tabs:[],activeTab:null}},V=(0,r.createContext)(null);function H(e){let t=window;t.__cliJawPendingTerminalActions=[...t.__cliJawPendingTerminalActions??[],e],window.setTimeout(()=>{document.dispatchEvent(new CustomEvent(`jaw:shortcut-action`,{detail:`flushTerminalShortcutQueue`}))},0)}function U(e){let{tabs:t}=e.rightPanel;return t.activeTabId?t.openTabs.find(e=>e.id===t.activeTabId)?.kind??null:null}function W(e){let[t,n]=(0,r.useReducer)(z,B),i=(0,r.useRef)(!1);(0,r.useEffect)(()=>{e.initialPanelState&&!i.current&&(i.current=!0,n({type:`HYDRATE`,state:e.initialPanelState}))},[e.initialPanelState]);let o=(0,r.useRef)(e.onStateChange);o.current=e.onStateChange,(0,r.useEffect)(()=>{if(!o.current)return;let e=setTimeout(()=>o.current?.(t),300);return()=>clearTimeout(e)},[t]);let s=t.rightPanel.open&&t.rightPanel.tabs.openTabs.length>0&&t.rightPanel.tabs.activeTabId!==null,c=U(t);(0,r.useEffect)(()=>a.register(e=>{switch(e){case`toggleBottomPanel`:return t.bottomPanel.open?n({type:`SET_BOTTOM_OPEN`,open:!1}):n({type:`OPEN_BOTTOM_TAB`,tab:`terminal`}),!0;case`toggleRightPanel`:return n(s?{type:`SET_RIGHT_OPEN`,open:!1}:{type:`FOCUS_OR_CREATE_FIRST_RIGHT_SIDEBAR_TAB`,kind:`files`}),!0;case`focusTerminal`:return n({type:`OPEN_BOTTOM_TAB`,tab:`terminal`}),H(`focusTerminal`),!0;case`newTerminalSession`:return n({type:`OPEN_BOTTOM_TAB`,tab:`terminal`}),H(`newTerminalSession`),!0;case`openDiff`:return n({type:`FOCUS_OR_CREATE_FIRST_RIGHT_SIDEBAR_TAB`,kind:`diff`}),!0;case`openFolderTree`:return n({type:`FOCUS_OR_CREATE_FIRST_RIGHT_SIDEBAR_TAB`,kind:`files`}),!0;case`closeActiveBottomTab`:return t.bottomPanel.activeTab&&n({type:`CLOSE_BOTTOM_TAB`,tab:t.bottomPanel.activeTab}),!0;default:return!1}}),[t.bottomPanel.open,t.bottomPanel.activeTab,s]);let l=(0,r.useMemo)(()=>({state:t,dispatch:n,effectiveRightOpen:s,activeRightTabKind:c}),[t,s,c]);return(0,p.jsx)(V.Provider,{value:l,children:e.children})}function G(){let e=(0,r.useContext)(V);if(!e)throw Error(`usePanelLayout must be used within PanelLayoutProvider`);return e}function K(){let{dispatch:e,state:t}=G();return(0,r.useMemo)(()=>({focusOrCreateFirstRightSidebarTab:t=>e({type:`FOCUS_OR_CREATE_FIRST_RIGHT_SIDEBAR_TAB`,kind:t}),createRightSidebarTab:(t,n)=>e({type:`CREATE_RIGHT_SIDEBAR_TAB`,kind:t,...n?{tab:n}:{}}),activateRightSidebarTab:t=>e({type:`ACTIVATE_RIGHT_SIDEBAR_TAB`,tabId:t}),setRightSidebarTabMeta:(t,n)=>e({type:`SET_RIGHT_SIDEBAR_TAB_META`,tabId:t,patch:n}),closeRightSidebarTab:t=>e({type:`CLOSE_RIGHT_SIDEBAR_TAB`,tabId:t}),setRightWidth:t=>e({type:`SET_RIGHT_WIDTH`,width:t}),setFileFolderSplitRatio:t=>e({type:`SET_FILE_FOLDER_SPLIT_RATIO`,ratio:t}),setFileFolderViewMode:t=>e({type:`SET_FILE_FOLDER_VIEW_MODE`,mode:t}),restoreFileFolderSplit:()=>e({type:`RESTORE_FILE_FOLDER_SPLIT`}),toggleRightPanel:()=>t.rightPanel.open&&t.rightPanel.tabs.openTabs.length>0?e({type:`SET_RIGHT_OPEN`,open:!1}):e({type:`FOCUS_OR_CREATE_FIRST_RIGHT_SIDEBAR_TAB`,kind:`files`}),openBottomTab:t=>e({type:`OPEN_BOTTOM_TAB`,tab:t}),closeBottomTab:t=>e({type:`CLOSE_BOTTOM_TAB`,tab:t}),setBottomActiveTab:t=>e({type:`SET_BOTTOM_ACTIVE_TAB`,tab:t}),setBottomHeight:t=>e({type:`SET_BOTTOM_HEIGHT`,height:t}),toggleBottomPanel:()=>t.bottomPanel.open?e({type:`SET_BOTTOM_OPEN`,open:!1}):e({type:`OPEN_BOTTOM_TAB`,tab:`terminal`}),hydrate:t=>e({type:`HYDRATE`,state:t})}),[e,t.rightPanel.open,t.bottomPanel.open])}export{f as a,c,G as i,l,N as n,d as o,K as r,u as s,W as t,a as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{n as t,t as n}from"./jsx-runtime-CkEUZM6i.js";import{a as r,i,n as a,r as o,t as s}from"./page-shell-Bs0RBRoD.js";import{i as c,n as l}from"./fields-CSdFjOgg.js";import{t as u}from"./InlineWarn-DakL-ThS.js";var d=e(t(),1),f=n(),p=/^[a-zA-Z0-9._:*-]+$/,m=[`bash`,`read`,`write`,`edit`,`mcp.*`];function h(e){return e===`auto`?`Auto`:e===`safe`?`Safe`:e==null?`Not provided`:Array.isArray(e)&&e.every(e=>typeof e==`string`)?`Custom (${e.length} ${e.length===1?`entry`:`entries`})`:`Unrecognized`}function g(e){return e===`auto`}function _(e){return g(e)?{mode:`auto`}:Array.isArray(e)?{mode:`custom`,tokens:e.filter(e=>typeof e==`string`).map(e=>e.trim()).filter(e=>e.length>0)}:{mode:`unknown`}}function v(e){return typeof e!=`string`||e.length===0||e.length>64?!1:p.test(e)}function y(e){return Array.isArray(e)&&e.length>0?Array.from(new Set(e.filter(v))):[...m]}function b(e){return e.length!==0&&e.every(v)}var x=[{value:`auto`,label:`Auto — runtime resolves the allowlist`},{value:`custom`,label:`Custom — explicit allowlist below`}];function S({port:e,client:t,dirty:n,registerSave:p}){let{state:m,refresh:g,setData:S}=r(t,`/api/settings`),[C,w]=(0,d.useState)(`auto`),[T,E]=(0,d.useState)([]),D=(0,d.useMemo)(()=>m.kind===`ready`?_(m.data.permissions):null,[m]);(0,d.useEffect)(()=>{if(m.kind!==`ready`)return;let e=_(m.data.permissions);e.mode===`custom`?(w(`custom`),E(e.tokens)):(w(`auto`),E([]))},[m]),(0,d.useEffect)(()=>()=>{n.remove(`permissions`)},[n]);let O=(0,d.useCallback)(e=>n.set(`permissions`,e),[n]),k=(0,d.useMemo)(()=>D&&D.mode===`custom`?D.tokens:`auto`,[D]),A=(0,d.useCallback)(e=>{if(e===`auto`){w(`auto`),E([]),O({value:`auto`,original:k,valid:!0});return}if(e===`custom`){w(`custom`);let e=D&&D.mode===`custom`&&D.tokens.length>0?[...D.tokens]:y(null);E(e),O({value:e,original:k,valid:b(e)})}},[D,k,O]),j=(0,d.useCallback)(e=>{let t=e.map(e=>e.trim()).filter(e=>e.length>0);E(t),O({value:t,original:k,valid:b(t)})},[k,O]),M=(0,d.useCallback)(async()=>{let e=n.saveBundle();if(Object.keys(e).length===0)return;let r=await t.put(`/api/settings`,e),i=r&&typeof r==`object`&&`data`in r?r.data:r;n.clear();let a=_(i.permissions);a.mode===`custom`?(w(`custom`),E(a.tokens)):(w(`auto`),E([])),S(i),await g()},[t,n,g,S]);if((0,d.useEffect)(()=>{if(p)return p(M),()=>p(null)},[p,M]),m.kind===`loading`)return(0,f.jsx)(a,{});if(m.kind===`offline`)return(0,f.jsx)(o,{port:e});if(m.kind===`error`)return(0,f.jsx)(s,{message:m.message});let N=T.filter(e=>!v(e)),P=N.length>0,F=C===`custom`&&T.length===0,I=h(m.data.permissions);return(0,f.jsxs)(`form`,{className:`settings-page-form`,onSubmit:e=>e.preventDefault(),children:[(0,f.jsxs)(i,{title:`Permissions`,hint:`Selecting a value changes the draft. Save applies it.`,children:[(0,f.jsx)(c,{id:`permissions-mode`,label:`Change policy to`,value:C,options:x,onChange:A}),C===`custom`&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(l,{id:`permissions-allowlist`,label:`Allowlist`,value:T,onChange:j,placeholder:`bash, read, mcp.*`,error:P?`Invalid token${N.length===1?``:`s`}: ${N.join(`, `)}`:F?`Allowlist cannot be empty in Custom mode.`:null}),(0,f.jsxs)(`p`,{className:`settings-section-hint`,children:[`Each chip is a permission token. Examples: `,(0,f.jsx)(`code`,{children:`bash`}),`,`,(0,f.jsx)(`code`,{children:` read`}),`, `,(0,f.jsx)(`code`,{children:` write`}),`, `,(0,f.jsx)(`code`,{children:` mcp.*`}),`.`]}),F&&(0,f.jsx)(u,{role:`alert`,children:`Saving with an empty Custom allowlist would deny every action. Add at least one token or switch back to Auto.`})]})]}),(0,f.jsxs)(i,{title:`Saved policy`,hint:`Reflects the saved snapshot from /api/settings.`,children:[(0,f.jsxs)(`p`,{className:`settings-readonly-line`,children:[(0,f.jsx)(`span`,{className:`settings-field-label`,children:`Configured policy:`}),` `,(0,f.jsx)(`span`,{children:I})]}),D?.mode===`unknown`?(0,f.jsx)(`p`,{className:`settings-section-hint`,children:`Use Agent to change this configured policy.`}):null]})]})}export{g as a,v as i,h as n,_ as o,b as r,y as s,S as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as e,i as t,n,o as r,r as i,s as a,t as o}from"./Permissions-DZ3ADB4i.js";export{n as configuredPolicyLabel,o as default,i as isAllowlistValid,t as isPermissionToken,e as isPermissionsAuto,r as parsePermissionsValue,a as seedAutoAllowlist};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{n as t,t as n}from"./jsx-runtime-CkEUZM6i.js";import{a as r,i,n as a,r as o,t as s}from"./page-shell-Bs0RBRoD.js";import{a as c,i as l}from"./fields-CSdFjOgg.js";import{t as u}from"./path-utils-B6vBr0DD.js";var d=e(t(),1),f=n(),p=`image/png,image/jpeg,image/webp,image/gif`;function m({kind:e,port:t}){let[n,r]=(0,d.useState)(null),[i,a]=(0,d.useState)(!1),[o,s]=(0,d.useState)(null),c=(0,d.useRef)(null);(0,d.useEffect)(()=>{let n=!1;return s(null),r(null),fetch(`/i/${t}/api/avatar`).then(e=>e.ok?e.json():Promise.reject(Error(`avatar HTTP ${e.status}`))).then(t=>{if(n)return;let i=(`data`in t&&t.data?t.data:t)[e]||null;r(i)}).catch(e=>{n||s(e instanceof Error?e.message:String(e))}),()=>{n=!0}},[e,t]);let l=()=>c.current?.click(),u=async n=>{a(!0),s(null);try{let i=await n.arrayBuffer(),a=n.type||`application/octet-stream`,o=await fetch(`/i/${t}/api/avatar/${e}/upload`,{method:`POST`,headers:{"content-type":a,"x-filename":encodeURIComponent(n.name)},body:i});if(!o.ok){let e=await o.text().catch(()=>``);throw Error(`upload failed: ${o.status} ${e}`)}let s=await o.json(),c=`data`in s&&s.data?s.data:s;r(c)}catch(e){s(e instanceof Error?e.message:String(e))}finally{a(!1),c.current&&(c.current.value=``)}},m=async()=>{a(!0),s(null);try{let n=await fetch(`/i/${t}/api/avatar/${e}/image`,{method:`DELETE`});if(!n.ok)throw Error(`clear failed: ${n.status}`);let i=await n.json(),a=`data`in i&&i.data?i.data:i;r(a)}catch(e){s(e instanceof Error?e.message:String(e))}finally{a(!1)}},h=n&&n.kind===`image`?`/i/${t}${n.imageUrl}`:null,g=e===`agent`?`Agent avatar`:`User avatar`;return(0,f.jsxs)(`div`,{className:`settings-avatar-card`,children:[(0,f.jsx)(`div`,{className:`settings-avatar-preview`,"aria-label":`${g} preview`,children:h?(0,f.jsx)(`img`,{src:h,alt:`${g} current`}):(0,f.jsx)(`span`,{className:`settings-avatar-placeholder`,"aria-hidden":`true`,children:e===`agent`?`🦈`:`👤`})}),(0,f.jsxs)(`div`,{className:`settings-avatar-controls`,children:[(0,f.jsx)(`span`,{className:`settings-field-label`,children:g}),(0,f.jsx)(`input`,{ref:c,type:`file`,accept:p,style:{display:`none`},onChange:e=>{let t=e.target.files?.[0];t&&u(t)}}),(0,f.jsxs)(`div`,{className:`settings-avatar-buttons`,children:[(0,f.jsx)(`button`,{type:`button`,className:`settings-action settings-action-secondary`,onClick:l,disabled:i,children:i?`Working…`:`Upload image`}),h?(0,f.jsx)(`button`,{type:`button`,className:`settings-action settings-action-discard`,onClick:()=>void m(),disabled:i,children:`Clear`}):null]}),o?(0,f.jsx)(`span`,{className:`settings-field-error`,role:`alert`,children:o}):null]})]})}var h=[{value:`ko`,label:`한국어 (ko)`},{value:`en`,label:`English (en)`},{value:`ja`,label:`日本語 (ja)`},{value:`zh`,label:`中文 (zh)`}];function g({port:e,client:t,dirty:n,registerSave:p}){let{state:g,refresh:_,setData:v}=r(t,`/api/settings`),[y,b]=(0,d.useState)({});(0,d.useEffect)(()=>{g.kind===`ready`&&b(g.data)},[g]),(0,d.useEffect)(()=>()=>{for(let e of Array.from(n.pending.keys()))(e===`locale`||e===`showReasoning`)&&n.remove(e)},[n]);let x=(0,d.useCallback)((e,t)=>n.set(e,t),[n]),S=(0,d.useCallback)(async()=>{let e=n.saveBundle();if(Object.keys(e).length===0)return;let r=u(e),i=await t.put(`/api/settings`,r),a=i&&typeof i==`object`&&`data`in i?i.data:i;n.clear(),b(a),v(a),await _()},[t,n,_,v]);if((0,d.useEffect)(()=>{if(p)return p(S),()=>p(null)},[p,S]),g.kind===`loading`)return(0,f.jsx)(a,{});if(g.kind===`offline`)return(0,f.jsx)(o,{port:e});if(g.kind===`error`)return(0,f.jsx)(s,{message:g.message});let C=g.data;return(0,f.jsxs)(`form`,{className:`settings-page-form`,onSubmit:e=>{e.preventDefault(),S()},children:[(0,f.jsxs)(i,{title:`Profile`,hint:`Identity and display preferences for this instance.`,children:[(0,f.jsx)(l,{id:`profile-locale`,label:`Locale`,value:y.locale??C.locale??`ko`,options:h,onChange:e=>{b({...y,locale:e}),x(`locale`,{value:e,original:C.locale??`ko`,valid:!0})}}),(0,f.jsx)(c,{id:`profile-showReasoning`,label:`Show reasoning traces`,value:!!(y.showReasoning??C.showReasoning),onChange:e=>{b({...y,showReasoning:e}),x(`showReasoning`,{value:e,original:!!C.showReasoning,valid:!0})}})]}),(0,f.jsxs)(i,{title:`Avatars`,hint:`Uploads write to the instance's home folder.`,children:[(0,f.jsx)(m,{kind:`agent`,port:e}),(0,f.jsx)(m,{kind:`user`,port:e})]})]})}export{g as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{n as t,t as n}from"./jsx-runtime-CkEUZM6i.js";import{a as r,i,n as a,r as o,t as s}from"./page-shell-Bs0RBRoD.js";import{t as c}from"./InlineWarn-DakL-ThS.js";var l=e(t(),1),u=n(),d=`prompt.system`;function f(e){return`prompt.template.${e}`}function p(e){return!e||!Array.isArray(e.templates)?[]:e.templates.filter(e=>!!e&&typeof e.id==`string`&&typeof e.content==`string`)}function m(e){let t=p(e),n=e?.tree,r=[],i=new Set;if(Array.isArray(n)){for(let e of n)if(e&&Array.isArray(e.children))for(let n of e.children){if(i.has(n))continue;let a=t.find(e=>e.id===n);if(!a)continue;let o=e.emoji?`${e.emoji} ${e.label} · `:`${e.label} · `;r.push({value:a.id,label:`${o}${a.id}`}),i.add(n)}}for(let e of t)i.has(e.id)||(r.push({value:e.id,label:e.id}),i.add(e.id));return r}function h(e,t){return p(e).find(e=>e.id===t)??null}function g({port:e,client:t,dirty:n,registerSave:g}){let _=r(t,`/api/prompt`),v=r(t,`/api/prompt-templates`),[y,b]=(0,l.useState)(``),[x,S]=(0,l.useState)(null),[C,w]=(0,l.useState)(``),T=(0,l.useMemo)(()=>_.state.kind===`ready`?_.state.data?.content??``:``,[_.state]),E=(0,l.useMemo)(()=>v.state.kind===`ready`?v.state.data:null,[v.state]),D=(0,l.useMemo)(()=>m(E),[E]),O=(0,l.useRef)(new Set);(0,l.useEffect)(()=>{_.state.kind===`ready`&&b(_.state.data?.content??``)},[_.state]),(0,l.useEffect)(()=>{if(!E||x!==null)return;let e=p(E);if(e.length===0)return;let t=D[0]?.value??e[0].id;S(t);let n=h(E,t);w(n?.content??``)},[E,D,x]),(0,l.useEffect)(()=>()=>{n.remove(d);for(let e of O.current)n.remove(e)},[n]);let k=(0,l.useCallback)((e,t)=>{n.set(e,t),O.current.add(e)},[n]),A=(0,l.useCallback)(e=>{b(e),n.set(d,{value:e,original:T,valid:!0})},[n,T]),j=(0,l.useCallback)(e=>{if(!x)return;w(e);let t=h(E,x)?.content??``;k(f(x),{value:e,original:t,valid:!0})},[x,k,E]),M=(0,l.useCallback)(e=>{if(!x||e===x)return;let t=f(x);if(n.pending.get(t)&&typeof window<`u`&&!window.confirm(`You have unsaved edits to "${x}". Switching will keep them pending — Save will write all dirty templates.`))return;S(e);let r=f(e),i=n.pending.get(r),a=h(E,e)?.content??``;w(i&&typeof i.value==`string`?i.value:a)},[x,n,E]),N=(0,l.useCallback)(async()=>{let e=n.saveBundle(),r=[];d in e&&r.push(t.put(`/api/prompt`,{content:e[d]}));for(let[n,i]of Object.entries(e)){if(!n.startsWith(`prompt.template.`))continue;let e=n.slice(16);r.push(t.put(`/api/prompt-templates/${e}`,{content:i}))}if(r.length!==0){for(let e of r)await e;n.clear(),O.current.clear(),await Promise.all([_.refresh(),v.refresh()])}},[t,n,_,v]);if((0,l.useEffect)(()=>{if(g)return g(N),()=>g(null)},[g,N]),_.state.kind===`loading`||v.state.kind===`loading`)return(0,u.jsx)(a,{});if(_.state.kind===`offline`||v.state.kind===`offline`)return(0,u.jsx)(o,{port:e});if(_.state.kind===`error`)return(0,u.jsx)(s,{message:_.state.message});if(v.state.kind===`error`)return(0,u.jsx)(s,{message:v.state.message});let P=p(E),F=x?h(E,x)?.content??``:``,I=x!==null&&C!==F;return(0,u.jsxs)(`form`,{className:`settings-page-form`,onSubmit:e=>e.preventDefault(),children:[(0,u.jsxs)(i,{title:`System prompt`,hint:`The agent's a2/system prompt. Saved to a2.md; regenerates the merged b prompt.`,children:[(0,u.jsxs)(`label`,{className:`settings-field settings-field-text`,htmlFor:`prompt-system-body`,children:[(0,u.jsx)(`span`,{className:`settings-field-label`,children:`a2.md`}),(0,u.jsx)(`textarea`,{id:`prompt-system-body`,className:`settings-field-monospace`,value:y,rows:14,spellCheck:!1,onChange:e=>A(e.target.value)})]}),y!==T&&(0,u.jsx)(`p`,{className:`settings-section-hint`,children:`Pending edits to a2.md.`})]}),(0,u.jsx)(i,{title:`Templates`,hint:`Edit individual prompt template bodies. Saving regenerates b automatically.`,children:P.length===0?(0,u.jsx)(c,{tone:`info`,children:`No templates returned by /api/prompt-templates.`}):(0,u.jsxs)(u.Fragment,{children:[(0,u.jsxs)(`label`,{className:`settings-field settings-field-select`,htmlFor:`prompt-template-select`,children:[(0,u.jsx)(`span`,{className:`settings-field-label`,children:`Template`}),(0,u.jsx)(`select`,{id:`prompt-template-select`,value:x??``,onChange:e=>M(e.target.value),children:D.map(e=>(0,u.jsx)(`option`,{value:e.value,children:e.label},e.value))})]}),(0,u.jsxs)(`label`,{className:`settings-field settings-field-text`,htmlFor:`prompt-template-body`,children:[(0,u.jsx)(`span`,{className:`settings-field-label`,children:x?`${x}.md`:`Template body`}),(0,u.jsx)(`textarea`,{id:`prompt-template-body`,className:`settings-field-monospace`,value:C,rows:16,spellCheck:!1,disabled:!x,onChange:e=>j(e.target.value)})]}),I&&(0,u.jsxs)(`p`,{className:`settings-section-hint`,children:[`Pending edits to `,x,`.md.`]})]})})]})}export{m as buildTemplateOptions,g as default,h as findTemplate,p as flattenTemplates,f as templateDirtyKey};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{n as t,t as n}from"./jsx-runtime-CkEUZM6i.js";import{a as r,i,n as a,r as o,t as s}from"./page-shell-Bs0RBRoD.js";import{i as c,o as l,s as u,t as d}from"./fields-CSdFjOgg.js";import{t as f}from"./path-utils-B6vBr0DD.js";var p=e(t(),1),m=n();function h({title:e,hint:t,children:n}){return(0,m.jsxs)(`fieldset`,{className:`settings-engine-subsection`,children:[(0,m.jsx)(`legend`,{className:`settings-engine-subsection-legend`,children:e}),t?(0,m.jsx)(`p`,{className:`settings-engine-subsection-hint`,children:t}):null,(0,m.jsx)(`div`,{className:`settings-engine-subsection-body`,children:n})]})}var g=[`auto`,`gemini`,`openai`,`whisper`,`vertex`],_={auto:`Auto (try in order)`,gemini:`Gemini`,openai:`OpenAI`,whisper:`Whisper (local MLX)`,vertex:`Vertex AI`};function v(e){return e===`auto`?[`gemini`,`openai`,`whisper`,`vertex`]:[e]}function y(e){if(e.trim()===``)return{valid:!0,error:null};try{return JSON.parse(e),{valid:!0,error:null}}catch(e){return{valid:!1,error:e instanceof Error?e.message:`Invalid JSON`}}}var b=[`stt.engine`,`stt.geminiApiKey`,`stt.geminiModel`,`stt.openaiApiKey`,`stt.openaiBaseUrl`,`stt.openaiModel`,`stt.whisperModel`,`stt.vertexConfig`];function x(e){return g.includes(e)?e:`auto`}function S({port:e,client:t,dirty:n,registerSave:S}){let{state:C,refresh:w,setData:T}=r(t,`/api/settings`),[E,D]=(0,p.useState)(`auto`),[O,k]=(0,p.useState)(``),[A,j]=(0,p.useState)(``),[M,N]=(0,p.useState)(``),[P,F]=(0,p.useState)(``),[I,L]=(0,p.useState)(``),[R,z]=(0,p.useState)(``),[B,V]=(0,p.useState)(``),[H,U]=(0,p.useState)(null);(0,p.useEffect)(()=>{if(C.kind!==`ready`)return;let e=C.data.stt||{};D(x(e.engine)),k(``),j(e.geminiModel??``),N(``),F(e.openaiBaseUrl??``),L(e.openaiModel??``),z(e.whisperModel??``),V(e.vertexConfig??``),U(null)},[C]),(0,p.useEffect)(()=>()=>{for(let e of b)n.remove(e)},[n]);let W=(0,p.useCallback)((e,t)=>n.set(e,t),[n]),G=(0,p.useMemo)(()=>C.kind===`ready`&&C.data.stt||{},[C]),K=(0,p.useCallback)(async()=>{let e=n.saveBundle();if(Object.keys(e).length===0)return;let r=f(e),i=await t.put(`/api/settings`,r),a=i&&typeof i==`object`&&`data`in i?i.data:i;n.clear(),T(a);let o=a.stt||{};D(x(o.engine)),k(``),j(o.geminiModel??``),N(``),F(o.openaiBaseUrl??``),L(o.openaiModel??``),z(o.whisperModel??``),V(o.vertexConfig??``),U(null),await w()},[t,n,w,T]);if((0,p.useEffect)(()=>{if(S)return S(K),()=>S(null)},[S,K]),C.kind===`loading`)return(0,m.jsx)(a,{});if(C.kind===`offline`)return(0,m.jsx)(o,{port:e});if(C.kind===`error`)return(0,m.jsx)(s,{message:C.message});let q=v(E),J=q.includes(`gemini`),Y=q.includes(`openai`),X=q.includes(`whisper`),Z=q.includes(`vertex`),Q=G.geminiKeySet?`••••••••${G.geminiKeyLast4??``}`:`(empty)`,$=G.openaiKeySet?`••••••••${G.openaiKeyLast4??``}`:`(empty)`;return(0,m.jsxs)(`form`,{className:`settings-page-form`,onSubmit:e=>{e.preventDefault(),K()},children:[(0,m.jsx)(i,{title:`Engine`,hint:`Pick a single engine, or 'auto' to fall back through the ladder.`,children:(0,m.jsx)(c,{id:`stt-engine`,label:`Speech-to-text engine`,value:E,options:g.map(e=>({value:e,label:_[e]})),onChange:e=>{let t=x(e);D(t),W(`stt.engine`,{value:t,original:x(G.engine),valid:!0})}})}),J?(0,m.jsx)(i,{title:`Gemini`,hint:`Google AI Studio key. Used by the Gemini transcription path.`,children:(0,m.jsxs)(h,{title:`Credentials`,children:[(0,m.jsx)(l,{id:`stt-gemini-key`,label:`API key`,value:O,placeholder:Q,onChange:e=>{if(k(e),e.length===0){n.remove(`stt.geminiApiKey`);return}W(`stt.geminiApiKey`,{value:e,original:``,valid:!0})}}),(0,m.jsx)(u,{id:`stt-gemini-model`,label:`Model`,value:A,placeholder:`gemini-2.5-flash-lite`,onChange:e=>{j(e),W(`stt.geminiModel`,{value:e,original:G.geminiModel??``,valid:!0})}})]})}):null,Y?(0,m.jsx)(i,{title:`OpenAI`,hint:`Compatible with OpenAI-style transcription endpoints (incl. self-hosted).`,children:(0,m.jsxs)(h,{title:`Credentials`,children:[(0,m.jsx)(l,{id:`stt-openai-key`,label:`API key`,value:M,placeholder:$,onChange:e=>{if(N(e),e.length===0){n.remove(`stt.openaiApiKey`);return}W(`stt.openaiApiKey`,{value:e,original:``,valid:!0})}}),(0,m.jsx)(u,{id:`stt-openai-base-url`,label:`Base URL (optional)`,value:P,placeholder:`https://api.openai.com/v1`,onChange:e=>{F(e),W(`stt.openaiBaseUrl`,{value:e,original:G.openaiBaseUrl??``,valid:!0})}}),(0,m.jsx)(u,{id:`stt-openai-model`,label:`Model`,value:I,placeholder:`whisper-1`,onChange:e=>{L(e),W(`stt.openaiModel`,{value:e,original:G.openaiModel??``,valid:!0})}})]})}):null,X?(0,m.jsx)(i,{title:`Whisper (local MLX)`,hint:`Runs on-device via mlx-whisper. No API key required.`,children:(0,m.jsx)(h,{title:`Model`,children:(0,m.jsx)(u,{id:`stt-whisper-model`,label:`Model identifier`,value:R,placeholder:`mlx-community/whisper-large-v3-mlx`,onChange:e=>{z(e),W(`stt.whisperModel`,{value:e,original:G.whisperModel??``,valid:!0})}})})}):null,Z?(0,m.jsx)(i,{title:`Vertex AI`,hint:`Service-account credentials JSON for Google Cloud Vertex transcription.`,children:(0,m.jsxs)(h,{title:`Service account`,hint:`Paste the service-account credentials JSON. Treated as a secret — invalid JSON refuses to save.`,children:[(0,m.jsx)(d,{id:`stt-vertex-config`,label:`Credentials JSON`,value:B,onChange:(e,t)=>{let n=typeof e==`string`?e:e==null?``:JSON.stringify(e);V(n);let r=y(n);U(t?null:r.error),W(`stt.vertexConfig`,{value:n,original:G.vertexConfig??``,valid:t&&r.valid})}}),H?(0,m.jsx)(`p`,{className:`settings-field-error`,role:`alert`,children:H}):null]})}):null,(0,m.jsx)(i,{title:`Probe`,hint:`A live mic-test isn't available yet — verify by triggering speech-to-text from the active channel.`,children:(0,m.jsx)(`p`,{className:`settings-section-hint`,children:`No backend self-test endpoint is exposed for speech today; this lands as a Phase 9 polish.`})})]})}export{g as STT_ENGINES,S as default,v as revealsForEngine,y as validateVertexConfig};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{n as t,t as n}from"./jsx-runtime-CkEUZM6i.js";import{a as r,i,n as a,t as o}from"./page-shell-Bs0RBRoD.js";import{a as s,o as c,s as l}from"./fields-CSdFjOgg.js";var u=e(t(),1),d=n(),f=3457,p=3506;function m(){return{async get(e){let t=await fetch(e);if(!t.ok)throw Error(`GET ${e} → ${t.status}`);return await t.json()},async put(e,t){let n=await fetch(e,{method:`PUT`,headers:{"content-type":`application/json`},body:JSON.stringify(t)});if(!n.ok)throw Error(`PUT ${e} → ${n.status}`);return await n.json()},async delete(e){let t=await fetch(e,{method:`DELETE`});if(!t.ok)throw Error(`DELETE ${e} → ${t.status}`);return await t.json()}}}var h=[`hub.enabled`,`hub.token`,`hub.chatId`,`hub.defaultPort`];function g({port:e,client:t,dirty:n,registerSave:g,managerClient:_}){let{state:v}=r(t,`__telegram_hub_unused__`,[e]),[y,b]=(0,u.useState)(null),[x,S]=(0,u.useState)(null),[C,w]=(0,u.useState)(null),[T,E]=(0,u.useState)(!1),[D,O]=(0,u.useState)(``),[k,A]=(0,u.useState)(``),[j,M]=(0,u.useState)(f),N=_||m(),P=(0,u.useCallback)(async()=>{w(null);try{let e=await N.get(`/api/dashboard/telegram-hub`);b(e.config),S(e.runtime||null),E(e.config.enabled),A(e.config.chatId),M(e.config.defaultPort),O(``)}catch(e){w(e instanceof Error?e.message:String(e))}},[N]);(0,u.useEffect)(()=>{P()},[e]),(0,u.useEffect)(()=>()=>{for(let e of h)n.remove(e)},[n]);let F=(0,u.useCallback)(async()=>{let e={enabled:T,chatId:k.trim(),defaultPort:j};D.trim()&&(e.token=D.trim());let t=await N.put(`/api/dashboard/telegram-hub`,e);b(t.config),S(t.runtime||null),O(``);for(let e of h)n.remove(e)},[T,k,j,D,N,n]);(0,u.useEffect)(()=>{if(g)return g(F),()=>g(null)},[g,F]);let I=(0,u.useCallback)(async e=>{try{await N.delete(`/api/dashboard/telegram-hub/routes/${encodeURIComponent(e.chatId)}/${encodeURIComponent(e.threadId)}`)}catch(e){w(e instanceof Error?e.message:String(e))}await P()},[N,P]);return C?(0,d.jsx)(o,{message:C}):y?(0,d.jsxs)(`form`,{className:`settings-page-form settings-form`,onSubmit:e=>{e.preventDefault(),F()},children:[(0,d.jsxs)(i,{title:`Telegram hub`,hint:`One dashboard-owned bot routes Telegram chat topics to instances 3457–3506.`,children:[(0,d.jsx)(s,{id:`hub-enabled`,label:`Enable hub`,value:T,onChange:e=>{E(e),n.set(`hub.enabled`,{value:e,original:y.enabled,valid:!0})}}),(0,d.jsx)(c,{id:`hub-token`,label:`Bot token`,value:D,placeholder:y.hasToken?`•••• (saved)`:`paste bot token`,onChange:e=>{O(e),n.set(`hub.token`,{value:e,original:``,valid:!0})}}),(0,d.jsx)(l,{id:`hub-chat-id`,label:`Hub chat ID`,value:k,placeholder:`823… or -100…`,onChange:e=>{A(e),n.set(`hub.chatId`,{value:e,original:y.chatId,valid:!0})}}),x?(0,d.jsxs)(`p`,{className:`settings-help`,children:[`Runtime: `,x.state,x.chatId?` · ${x.chatId}`:``,x.error?` · ${x.error}`:``]}):null,(0,d.jsxs)(`label`,{className:`settings-field`,htmlFor:`hub-default-port`,children:[(0,d.jsx)(`span`,{className:`settings-field-label`,children:`Default port`}),(0,d.jsx)(`input`,{id:`hub-default-port`,type:`number`,min:f,max:p,value:j,onChange:e=>{let t=Number(e.target.value);M(t),n.set(`hub.defaultPort`,{value:t,original:y.defaultPort,valid:t>=f&&t<=p})}})]})]}),(0,d.jsx)(i,{title:`Topic routes`,hint:`(chatId, threadId) → instance port. Bind in a bot private topic or group topic with /setthread <port>.`,children:y.routes.length===0?(0,d.jsx)(`p`,{className:`settings-empty`,children:`No routes yet.`}):(0,d.jsxs)(`table`,{className:`settings-table`,children:[(0,d.jsx)(`thead`,{children:(0,d.jsxs)(`tr`,{children:[(0,d.jsx)(`th`,{children:`Thread`}),(0,d.jsx)(`th`,{children:`Port`}),(0,d.jsx)(`th`,{children:`Label`}),(0,d.jsx)(`th`,{children:`Model`}),(0,d.jsx)(`th`,{children:`Prompt`}),(0,d.jsx)(`th`,{children:`On`}),(0,d.jsx)(`th`,{})]})}),(0,d.jsx)(`tbody`,{children:y.routes.map(e=>(0,d.jsxs)(`tr`,{children:[(0,d.jsx)(`td`,{children:e.threadId}),(0,d.jsx)(`td`,{children:e.port}),(0,d.jsx)(`td`,{children:e.label||`—`}),(0,d.jsx)(`td`,{children:e.model||`—`}),(0,d.jsx)(`td`,{children:e.systemPrompt?`✓`:`—`}),(0,d.jsx)(`td`,{children:e.enabled?`✓`:`—`}),(0,d.jsx)(`td`,{children:(0,d.jsx)(`button`,{type:`button`,onClick:()=>void I(e),children:`Delete`})})]},`${e.chatId}:${e.threadId}`))})]})})]}):(0,d.jsx)(a,{label:`Loading Telegram hub…`})}var _={defaultManagerClient:m};export{_ as __test__,g as default};
|