@jingyi0605/codingns4dsh 0.2.1-beta.13 → 0.2.1-beta.15
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.en.md +5 -5
- package/README.md +6 -9
- package/data/build/dist/bootstrap/dsh-connection-adapter.d.ts +1 -1
- package/data/build/dist/bootstrap/dsh-connection-adapter.d.ts.map +1 -1
- package/data/build/dist/bootstrap/index.d.ts +1 -1
- package/data/build/dist/bootstrap/index.d.ts.map +1 -1
- package/data/build/dist/client/bundle.js +1947 -585
- package/data/build/dist/client/bundle.js.map +1 -1
- package/data/build/dist/client/cli-slots.d.ts.map +1 -1
- package/data/build/dist/client/cli-slots.js +11 -3
- package/data/build/dist/client/cli-slots.js.map +1 -1
- package/data/build/dist/client/client.model-catalog-cache.js +9 -1
- package/data/build/dist/client/client.model-catalog-cache.js.map +1 -1
- package/data/build/dist/client/client.native-workspace-store.js +65 -15
- package/data/build/dist/client/client.native-workspace-store.js.map +1 -1
- package/data/build/dist/client/client.transport.js +70 -4
- package/data/build/dist/client/client.transport.js.map +1 -1
- package/data/build/dist/client/desktop-assistant.js +180 -114
- package/data/build/dist/client/features/cli-adapters.js +4 -2
- package/data/build/dist/client/features/cli-adapters.js.map +1 -1
- package/data/build/dist/client/features/file-management.d.ts.map +1 -1
- package/data/build/dist/client/features/file-management.js +16 -0
- package/data/build/dist/client/features/file-management.js.map +1 -1
- package/data/build/dist/client/features/lan-access-panel.d.ts.map +1 -1
- package/data/build/dist/client/features/lan-access-panel.js +1 -0
- package/data/build/dist/client/features/lan-access-panel.js.map +1 -1
- package/data/build/dist/client/features/mobile-access.d.ts.map +1 -1
- package/data/build/dist/client/features/mobile-access.js +7 -0
- package/data/build/dist/client/features/mobile-access.js.map +1 -1
- package/data/build/dist/client/features/peer-host.d.ts.map +1 -1
- package/data/build/dist/client/features/peer-host.js +3 -0
- package/data/build/dist/client/features/peer-host.js.map +1 -1
- package/data/build/dist/client/features/session-translation.js +2 -2
- package/data/build/dist/client/features/session-translation.js.map +1 -1
- package/data/build/dist/client/features/workspace-session-enhancement.d.ts.map +1 -1
- package/data/build/dist/client/features/workspace-session-enhancement.js +6 -0
- package/data/build/dist/client/features/workspace-session-enhancement.js.map +1 -1
- package/data/build/dist/client/file-management-dom.d.ts +20 -1
- package/data/build/dist/client/file-management-dom.d.ts.map +1 -1
- package/data/build/dist/client/file-management-dom.js +94 -18
- package/data/build/dist/client/file-management-dom.js.map +1 -1
- package/data/build/dist/client/file-viewer-copy-path-menu.d.ts +27 -0
- package/data/build/dist/client/file-viewer-copy-path-menu.d.ts.map +1 -0
- package/data/build/dist/client/file-viewer-copy-path-menu.js +101 -0
- package/data/build/dist/client/file-viewer-copy-path-menu.js.map +1 -0
- package/data/build/dist/client/git-management-settings.d.ts +4 -0
- package/data/build/dist/client/git-management-settings.d.ts.map +1 -0
- package/data/build/dist/client/git-management-settings.js +73 -0
- package/data/build/dist/client/git-management-settings.js.map +1 -0
- package/data/build/dist/client/git-management.d.ts +2 -1
- package/data/build/dist/client/git-management.d.ts.map +1 -1
- package/data/build/dist/client/git-management.js +55 -34
- package/data/build/dist/client/git-management.js.map +1 -1
- package/data/build/dist/client/git-panel-styles.d.ts +4 -0
- package/data/build/dist/client/git-panel-styles.d.ts.map +1 -1
- package/data/build/dist/client/git-panel-styles.js +14 -0
- package/data/build/dist/client/git-panel-styles.js.map +1 -1
- package/data/build/dist/client/locale.d.ts.map +1 -1
- package/data/build/dist/client/locale.js +10 -2
- package/data/build/dist/client/locale.js.map +1 -1
- package/data/build/dist/client/locales/cliManagement.d.ts.map +1 -1
- package/data/build/dist/client/locales/cliManagement.js +16 -0
- package/data/build/dist/client/locales/cliManagement.js.map +1 -1
- package/data/build/dist/client/locales/git.d.ts.map +1 -1
- package/data/build/dist/client/locales/git.js +30 -2
- package/data/build/dist/client/locales/git.js.map +1 -1
- package/data/build/dist/client/locales/peerHost.d.ts.map +1 -1
- package/data/build/dist/client/locales/peerHost.js +2 -0
- package/data/build/dist/client/locales/peerHost.js.map +1 -1
- package/data/build/dist/client/locales/quickApps.d.ts +6 -0
- package/data/build/dist/client/locales/quickApps.d.ts.map +1 -1
- package/data/build/dist/client/locales/quickApps.js +12 -0
- package/data/build/dist/client/locales/quickApps.js.map +1 -1
- package/data/build/dist/client/mobile-team-panel-dom.d.ts +14 -0
- package/data/build/dist/client/mobile-team-panel-dom.d.ts.map +1 -0
- package/data/build/dist/client/mobile-team-panel-dom.js +164 -0
- package/data/build/dist/client/mobile-team-panel-dom.js.map +1 -0
- package/data/build/dist/client/model-priority-pool.d.ts +23 -0
- package/data/build/dist/client/model-priority-pool.d.ts.map +1 -0
- package/data/build/dist/client/{session-translation-model-pool.js → model-priority-pool.js} +8 -9
- package/data/build/dist/client/model-priority-pool.js.map +1 -0
- package/data/build/dist/client/provider-icons.d.ts.map +1 -1
- package/data/build/dist/client/provider-icons.js +3 -1
- package/data/build/dist/client/provider-icons.js.map +1 -1
- package/data/build/dist/client/quick-apps/browser-storage.d.ts +24 -0
- package/data/build/dist/client/quick-apps/browser-storage.d.ts.map +1 -0
- package/data/build/dist/client/quick-apps/browser-storage.js +114 -0
- package/data/build/dist/client/quick-apps/browser-storage.js.map +1 -0
- package/data/build/dist/client/quick-apps/client.d.ts +3 -1
- package/data/build/dist/client/quick-apps/client.d.ts.map +1 -1
- package/data/build/dist/client/quick-apps/client.js +4 -4
- package/data/build/dist/client/quick-apps/client.js.map +1 -1
- package/data/build/dist/client/quick-apps/launcher.d.ts.map +1 -1
- package/data/build/dist/client/quick-apps/launcher.js +23 -8
- package/data/build/dist/client/quick-apps/launcher.js.map +1 -1
- package/data/build/dist/client/quick-apps/presentation.d.ts.map +1 -1
- package/data/build/dist/client/quick-apps/presentation.js +18 -2
- package/data/build/dist/client/quick-apps/presentation.js.map +1 -1
- package/data/build/dist/client/quick-apps/rail-preference.d.ts +5 -0
- package/data/build/dist/client/quick-apps/rail-preference.d.ts.map +1 -0
- package/data/build/dist/client/quick-apps/rail-preference.js +19 -0
- package/data/build/dist/client/quick-apps/rail-preference.js.map +1 -0
- package/data/build/dist/client/quick-apps/styles.d.ts.map +1 -1
- package/data/build/dist/client/quick-apps/styles.js +12 -2
- package/data/build/dist/client/quick-apps/styles.js.map +1 -1
- package/data/build/dist/client/quick-apps/viewer.d.ts.map +1 -1
- package/data/build/dist/client/quick-apps/viewer.js +13 -3
- package/data/build/dist/client/quick-apps/viewer.js.map +1 -1
- package/data/build/dist/client/style.css +219 -219
- package/data/build/dist/client/workspace-session-rightbar-dom.d.ts.map +1 -1
- package/data/build/dist/client/workspace-session-rightbar-dom.js +12 -21
- package/data/build/dist/client/workspace-session-rightbar-dom.js.map +1 -1
- package/data/build/dist/client/workspace-session-visibility-dom.d.ts +3 -0
- package/data/build/dist/client/workspace-session-visibility-dom.d.ts.map +1 -1
- package/data/build/dist/client/workspace-session-visibility-dom.js +43 -10
- package/data/build/dist/client/workspace-session-visibility-dom.js.map +1 -1
- package/data/build/dist/dsh-capabilities/client/composer-presentation-adapter.d.ts +8 -0
- package/data/build/dist/dsh-capabilities/client/composer-presentation-adapter.d.ts.map +1 -0
- package/data/build/dist/dsh-capabilities/client/composer-presentation-adapter.js +71 -0
- package/data/build/dist/dsh-capabilities/client/composer-presentation-adapter.js.map +1 -0
- package/data/build/dist/dsh-capabilities/client/peer-host-attachment-adapter.d.ts +3 -0
- package/data/build/dist/dsh-capabilities/client/peer-host-attachment-adapter.d.ts.map +1 -0
- package/data/build/dist/dsh-capabilities/client/peer-host-attachment-adapter.js +27 -0
- package/data/build/dist/dsh-capabilities/client/peer-host-attachment-adapter.js.map +1 -0
- package/data/build/dist/dsh-capabilities/client/session-performance-adapter.d.ts +2 -1
- package/data/build/dist/dsh-capabilities/client/session-performance-adapter.d.ts.map +1 -1
- package/data/build/dist/dsh-capabilities/client/session-performance-adapter.js +22 -47
- package/data/build/dist/dsh-capabilities/client/session-performance-adapter.js.map +1 -1
- package/data/build/dist/dsh-capabilities/host/agent-team-adapter.d.ts +52 -0
- package/data/build/dist/dsh-capabilities/host/agent-team-adapter.d.ts.map +1 -0
- package/data/build/dist/dsh-capabilities/host/agent-team-adapter.js +109 -0
- package/data/build/dist/dsh-capabilities/host/agent-team-adapter.js.map +1 -0
- package/data/build/dist/dsh-capabilities/host/quick-app-proxy-provider.js +1 -1
- package/data/build/dist/dsh-capabilities/host/quick-app-proxy-provider.js.map +1 -1
- package/data/build/dist/dsh-capabilities/matrix.d.ts.map +1 -1
- package/data/build/dist/dsh-capabilities/matrix.js +12 -10
- package/data/build/dist/dsh-capabilities/matrix.js.map +1 -1
- package/data/build/dist/dsh-capabilities/routes.d.ts.map +1 -1
- package/data/build/dist/dsh-capabilities/routes.js +13 -8
- package/data/build/dist/dsh-capabilities/routes.js.map +1 -1
- package/data/build/dist/dsh-capabilities/types.d.ts +1 -1
- package/data/build/dist/dsh-capabilities/types.d.ts.map +1 -1
- package/data/build/dist/dsh-capabilities/types.js.map +1 -1
- package/data/build/dist/host/cli-adapters/acp-cli-driver.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/acp-cli-driver.js +6 -3
- package/data/build/dist/host/cli-adapters/acp-cli-driver.js.map +1 -1
- package/data/build/dist/host/cli-adapters/claude-driver.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/claude-driver.js +4 -0
- package/data/build/dist/host/cli-adapters/claude-driver.js.map +1 -1
- package/data/build/dist/host/cli-adapters/codex-driver.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/codex-driver.js +13 -6
- package/data/build/dist/host/cli-adapters/codex-driver.js.map +1 -1
- package/data/build/dist/host/cli-adapters/command-code-acp-loader.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/command-code-acp-loader.js +11 -1
- package/data/build/dist/host/cli-adapters/command-code-acp-loader.js.map +1 -1
- package/data/build/dist/host/cli-adapters/command-code-driver.js +5 -3
- package/data/build/dist/host/cli-adapters/command-code-driver.js.map +1 -1
- package/data/build/dist/host/cli-adapters/desktop-app-runtime.d.ts +3 -1
- package/data/build/dist/host/cli-adapters/desktop-app-runtime.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/desktop-app-runtime.js +41 -4
- package/data/build/dist/host/cli-adapters/desktop-app-runtime.js.map +1 -1
- package/data/build/dist/host/cli-adapters/dsh-message-projector.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/dsh-message-projector.js +2 -1
- package/data/build/dist/host/cli-adapters/dsh-message-projector.js.map +1 -1
- package/data/build/dist/host/cli-adapters/dsh-tool-history.js +3 -2
- package/data/build/dist/host/cli-adapters/dsh-tool-history.js.map +1 -1
- package/data/build/dist/host/cli-adapters/dsh-virtual-providers.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/dsh-virtual-providers.js +3 -2
- package/data/build/dist/host/cli-adapters/dsh-virtual-providers.js.map +1 -1
- package/data/build/dist/host/cli-adapters/feature.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/feature.js +134 -29
- package/data/build/dist/host/cli-adapters/feature.js.map +1 -1
- package/data/build/dist/host/cli-adapters/gemini-driver.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/gemini-driver.js +4 -2
- package/data/build/dist/host/cli-adapters/gemini-driver.js.map +1 -1
- package/data/build/dist/host/cli-adapters/grok-driver.d.ts +4 -0
- package/data/build/dist/host/cli-adapters/grok-driver.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/grok-driver.js +183 -9
- package/data/build/dist/host/cli-adapters/grok-driver.js.map +1 -1
- package/data/build/dist/host/cli-adapters/grok-performance-projection.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/grok-performance-projection.js +2 -1
- package/data/build/dist/host/cli-adapters/grok-performance-projection.js.map +1 -1
- package/data/build/dist/host/cli-adapters/legacy-session-adapter.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/legacy-session-adapter.js +20 -3
- package/data/build/dist/host/cli-adapters/legacy-session-adapter.js.map +1 -1
- package/data/build/dist/host/cli-adapters/management-methods.d.ts +5 -0
- package/data/build/dist/host/cli-adapters/management-methods.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/management-methods.js +9 -0
- package/data/build/dist/host/cli-adapters/management-methods.js.map +1 -1
- package/data/build/dist/host/cli-adapters/management-process.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/management-process.js +13 -2
- package/data/build/dist/host/cli-adapters/management-process.js.map +1 -1
- package/data/build/dist/host/cli-adapters/management.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/management.js +6 -1
- package/data/build/dist/host/cli-adapters/management.js.map +1 -1
- package/data/build/dist/host/cli-adapters/mcode-driver.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/mcode-driver.js +11 -4
- package/data/build/dist/host/cli-adapters/mcode-driver.js.map +1 -1
- package/data/build/dist/host/cli-adapters/native-subagent-dispatch.d.ts +1 -1
- package/data/build/dist/host/cli-adapters/native-subagent-dispatch.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/native-subagent-dispatch.js +11 -3
- package/data/build/dist/host/cli-adapters/native-subagent-dispatch.js.map +1 -1
- package/data/build/dist/host/cli-adapters/native-team-subagent.d.ts +7 -1
- package/data/build/dist/host/cli-adapters/native-team-subagent.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/native-team-subagent.js +4 -2
- package/data/build/dist/host/cli-adapters/native-team-subagent.js.map +1 -1
- package/data/build/dist/host/cli-adapters/opencode-v2-protocol.js +3 -1
- package/data/build/dist/host/cli-adapters/opencode-v2-protocol.js.map +1 -1
- package/data/build/dist/host/cli-adapters/pi-driver.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/pi-driver.js +44 -10
- package/data/build/dist/host/cli-adapters/pi-driver.js.map +1 -1
- package/data/build/dist/host/cli-adapters/registry.d.ts +4 -1
- package/data/build/dist/host/cli-adapters/registry.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/registry.js +65 -25
- package/data/build/dist/host/cli-adapters/registry.js.map +1 -1
- package/data/build/dist/host/cli-adapters/standard-stream-driver.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/standard-stream-driver.js +4 -0
- package/data/build/dist/host/cli-adapters/standard-stream-driver.js.map +1 -1
- package/data/build/dist/host/cli-adapters/subagent-tool.js +1 -1
- package/data/build/dist/host/cli-adapters/subagent-tool.js.map +1 -1
- package/data/build/dist/host/cli-adapters/team-input.d.ts +17 -0
- package/data/build/dist/host/cli-adapters/team-input.d.ts.map +1 -0
- package/data/build/dist/host/cli-adapters/team-input.js +67 -0
- package/data/build/dist/host/cli-adapters/team-input.js.map +1 -0
- package/data/build/dist/host/cli-adapters/update-check.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/update-check.js +5 -5
- package/data/build/dist/host/cli-adapters/update-check.js.map +1 -1
- package/data/build/dist/host/cli-adapters/zcode-driver.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/zcode-driver.js +6 -1
- package/data/build/dist/host/cli-adapters/zcode-driver.js.map +1 -1
- package/data/build/dist/host/cli-adapters/zcode-update.d.ts +8 -0
- package/data/build/dist/host/cli-adapters/zcode-update.d.ts.map +1 -0
- package/data/build/dist/host/cli-adapters/zcode-update.js +149 -0
- package/data/build/dist/host/cli-adapters/zcode-update.js.map +1 -0
- package/data/build/dist/host/cli-bridge/bridge-holder.d.ts +14 -0
- package/data/build/dist/host/cli-bridge/bridge-holder.d.ts.map +1 -1
- package/data/build/dist/host/cli-bridge/bridge-holder.js +53 -6
- package/data/build/dist/host/cli-bridge/bridge-holder.js.map +1 -1
- package/data/build/dist/host/cli-bridge/bridge-server.d.ts +6 -0
- package/data/build/dist/host/cli-bridge/bridge-server.d.ts.map +1 -1
- package/data/build/dist/host/cli-bridge/bridge-server.js +61 -6
- package/data/build/dist/host/cli-bridge/bridge-server.js.map +1 -1
- package/data/build/dist/host/cli-bridge/command-code-mod.d.ts.map +1 -1
- package/data/build/dist/host/cli-bridge/command-code-mod.js +86 -0
- package/data/build/dist/host/cli-bridge/command-code-mod.js.map +1 -1
- package/data/build/dist/host/cli-bridge/dispatch.js +1 -1
- package/data/build/dist/host/cli-bridge/dispatch.js.map +1 -1
- package/data/build/dist/host/cli-bridge/injections.d.ts +11 -0
- package/data/build/dist/host/cli-bridge/injections.d.ts.map +1 -1
- package/data/build/dist/host/cli-bridge/injections.js +62 -7
- package/data/build/dist/host/cli-bridge/injections.js.map +1 -1
- package/data/build/dist/host/cli-bridge/mcp-stdio-entry.d.ts +1 -1
- package/data/build/dist/host/cli-bridge/mcp-stdio-entry.js +64 -7
- package/data/build/dist/host/cli-bridge/mcp-stdio-entry.js.map +1 -1
- package/data/build/dist/host/cli-bridge/pi-extension-entry.d.ts +3 -0
- package/data/build/dist/host/cli-bridge/pi-extension-entry.d.ts.map +1 -0
- package/data/build/dist/host/cli-bridge/pi-extension-entry.js +9 -0
- package/data/build/dist/host/cli-bridge/pi-extension-entry.js.map +1 -0
- package/data/build/dist/host/cli-bridge/pi-extension.d.ts +52 -0
- package/data/build/dist/host/cli-bridge/pi-extension.d.ts.map +1 -0
- package/data/build/dist/host/cli-bridge/pi-extension.js +273 -0
- package/data/build/dist/host/cli-bridge/pi-extension.js.map +1 -0
- package/data/build/dist/host/cli-bridge/search-dispatch.d.ts +20 -0
- package/data/build/dist/host/cli-bridge/search-dispatch.d.ts.map +1 -0
- package/data/build/dist/host/cli-bridge/search-dispatch.js +61 -0
- package/data/build/dist/host/cli-bridge/search-dispatch.js.map +1 -0
- package/data/build/dist/host/cli-bridge/team-adapters.d.ts +11 -0
- package/data/build/dist/host/cli-bridge/team-adapters.d.ts.map +1 -0
- package/data/build/dist/host/cli-bridge/team-adapters.js +23 -0
- package/data/build/dist/host/cli-bridge/team-adapters.js.map +1 -0
- package/data/build/dist/host/cli-bridge/team-dispatch.d.ts +28 -0
- package/data/build/dist/host/cli-bridge/team-dispatch.d.ts.map +1 -0
- package/data/build/dist/host/cli-bridge/team-dispatch.js +208 -0
- package/data/build/dist/host/cli-bridge/team-dispatch.js.map +1 -0
- package/data/build/dist/host/cli-bridge/team-tool.d.ts +3 -0
- package/data/build/dist/host/cli-bridge/team-tool.d.ts.map +1 -0
- package/data/build/dist/host/cli-bridge/team-tool.js +18 -0
- package/data/build/dist/host/cli-bridge/team-tool.js.map +1 -0
- package/data/build/dist/host/features/file-management.d.ts.map +1 -1
- package/data/build/dist/host/features/file-management.js +2 -1
- package/data/build/dist/host/features/file-management.js.map +1 -1
- package/data/build/dist/host/features/git-commit-message.d.ts +5 -0
- package/data/build/dist/host/features/git-commit-message.d.ts.map +1 -0
- package/data/build/dist/host/features/git-commit-message.js +66 -0
- package/data/build/dist/host/features/git-commit-message.js.map +1 -0
- package/data/build/dist/host/features/git-management.d.ts +11 -2
- package/data/build/dist/host/features/git-management.d.ts.map +1 -1
- package/data/build/dist/host/features/git-management.js +61 -7
- package/data/build/dist/host/features/git-management.js.map +1 -1
- package/data/build/dist/host/features/lan-access-dsh.d.ts.map +1 -1
- package/data/build/dist/host/features/lan-access-dsh.js +2 -2
- package/data/build/dist/host/features/lan-access-dsh.js.map +1 -1
- package/data/build/dist/host/features/quick-apps.js +2 -2
- package/data/build/dist/host/features/quick-apps.js.map +1 -1
- package/data/build/dist/host/features/session-prompt-translation.d.ts.map +1 -1
- package/data/build/dist/host/features/session-prompt-translation.js +11 -3
- package/data/build/dist/host/features/session-prompt-translation.js.map +1 -1
- package/data/build/dist/host/index.d.ts.map +1 -1
- package/data/build/dist/host/index.js +6 -38
- package/data/build/dist/host/index.js.map +1 -1
- package/data/build/dist/host/lan-access-dsh.d.ts +9 -1
- package/data/build/dist/host/lan-access-dsh.d.ts.map +1 -1
- package/data/build/dist/host/lan-access-dsh.js +38 -11
- package/data/build/dist/host/lan-access-dsh.js.map +1 -1
- package/data/build/dist/host/modules/quick-apps/egress.d.ts +35 -0
- package/data/build/dist/host/modules/quick-apps/egress.d.ts.map +1 -0
- package/data/build/dist/host/modules/quick-apps/egress.js +244 -0
- package/data/build/dist/host/modules/quick-apps/egress.js.map +1 -0
- package/data/build/dist/host/modules/quick-apps/registry.d.ts.map +1 -1
- package/data/build/dist/host/modules/quick-apps/registry.js +10 -1
- package/data/build/dist/host/modules/quick-apps/registry.js.map +1 -1
- package/data/build/dist/host/modules/quick-apps/remote.d.ts +1 -1
- package/data/build/dist/host/modules/quick-apps/remote.d.ts.map +1 -1
- package/data/build/dist/host/modules/quick-apps/remote.js +6 -5
- package/data/build/dist/host/modules/quick-apps/remote.js.map +1 -1
- package/data/build/dist/host/modules/quick-apps/service.d.ts +1 -1
- package/data/build/dist/host/modules/quick-apps/service.d.ts.map +1 -1
- package/data/build/dist/host/modules/quick-apps/service.js +8 -4
- package/data/build/dist/host/modules/quick-apps/service.js.map +1 -1
- package/data/build/dist/host/modules/quick-apps/static-handler.d.ts +1 -1
- package/data/build/dist/host/modules/quick-apps/static-handler.d.ts.map +1 -1
- package/data/build/dist/host/modules/quick-apps/static-handler.js +35 -3
- package/data/build/dist/host/modules/quick-apps/static-handler.js.map +1 -1
- package/data/build/dist/host/rpc.js +2 -2
- package/data/build/dist/host/rpc.js.map +1 -1
- package/data/build/dist/host/session-changes.d.ts.map +1 -1
- package/data/build/dist/host/session-changes.js +6 -2
- package/data/build/dist/host/session-changes.js.map +1 -1
- package/data/build/dist/host/session-migration-repair.js +48 -35
- package/data/build/dist/host/session-migration-repair.js.map +1 -1
- package/data/build/dist/host/settings.d.ts.map +1 -1
- package/data/build/dist/host/settings.js +8 -0
- package/data/build/dist/host/settings.js.map +1 -1
- package/data/build/dist/host/workspace-root.d.ts +14 -0
- package/data/build/dist/host/workspace-root.d.ts.map +1 -0
- package/data/build/dist/host/workspace-root.js +99 -0
- package/data/build/dist/host/workspace-root.js.map +1 -0
- package/data/build/dist/shared/cli-provider-route.d.ts +7 -0
- package/data/build/dist/shared/cli-provider-route.d.ts.map +1 -0
- package/data/build/dist/shared/cli-provider-route.js +13 -0
- package/data/build/dist/shared/cli-provider-route.js.map +1 -0
- package/data/build/dist/shared/contracts/agent-team.d.ts +14 -0
- package/data/build/dist/shared/contracts/agent-team.d.ts.map +1 -0
- package/data/build/dist/shared/contracts/agent-team.js +48 -0
- package/data/build/dist/shared/contracts/agent-team.js.map +1 -0
- package/data/build/dist/shared/contracts/cli-adapter.d.ts +10 -0
- package/data/build/dist/shared/contracts/cli-adapter.d.ts.map +1 -1
- package/data/build/dist/shared/contracts/config.d.ts +5 -1
- package/data/build/dist/shared/contracts/config.d.ts.map +1 -1
- package/data/build/dist/shared/contracts/config.js +3 -0
- package/data/build/dist/shared/contracts/config.js.map +1 -1
- package/data/build/dist/shared/contracts/errors.d.ts +2 -2
- package/data/build/dist/shared/contracts/errors.d.ts.map +1 -1
- package/data/build/dist/shared/contracts/git.d.ts +17 -0
- package/data/build/dist/shared/contracts/git.d.ts.map +1 -1
- package/data/build/dist/shared/contracts/git.js +27 -1
- package/data/build/dist/shared/contracts/git.js.map +1 -1
- package/data/build/dist/shared/contracts/quick-apps.d.ts +2 -0
- package/data/build/dist/shared/contracts/quick-apps.d.ts.map +1 -1
- package/data/build/dist/shared/contracts/quick-apps.js.map +1 -1
- package/data/build/dist/shared/contracts/version.d.ts +9 -15
- package/data/build/dist/shared/contracts/version.d.ts.map +1 -1
- package/data/build/dist/shared/contracts/version.js +8 -14
- package/data/build/dist/shared/contracts/version.js.map +1 -1
- package/data/build/dist/shared/index.d.ts +2 -1
- package/data/build/dist/shared/index.d.ts.map +1 -1
- package/data/build/dist/shared/index.js +2 -1
- package/data/build/dist/shared/index.js.map +1 -1
- package/data/build/dist/shared/quick-app-browser-storage.d.ts +33 -0
- package/data/build/dist/shared/quick-app-browser-storage.d.ts.map +1 -0
- package/data/build/dist/shared/quick-app-browser-storage.js +33 -0
- package/data/build/dist/shared/quick-app-browser-storage.js.map +1 -0
- package/data/build/dist/shared/quick-app-network-allow.d.ts +8 -0
- package/data/build/dist/shared/quick-app-network-allow.d.ts.map +1 -0
- package/data/build/dist/shared/quick-app-network-allow.js +192 -0
- package/data/build/dist/shared/quick-app-network-allow.js.map +1 -0
- package/data/build/dist/shared/quick-app-network-bootstrap.d.ts +9 -0
- package/data/build/dist/shared/quick-app-network-bootstrap.d.ts.map +1 -0
- package/data/build/dist/shared/quick-app-network-bootstrap.js +134 -0
- package/data/build/dist/shared/quick-app-network-bootstrap.js.map +1 -0
- package/data/build/dist/shared/quick-app-storage-bootstrap.d.ts +9 -0
- package/data/build/dist/shared/quick-app-storage-bootstrap.d.ts.map +1 -0
- package/data/build/dist/shared/quick-app-storage-bootstrap.js +189 -0
- package/data/build/dist/shared/quick-app-storage-bootstrap.js.map +1 -0
- package/package.json +32 -32
- package/profile/README.md +2 -2
- package/profile/package.json +3 -3
- package/profile/version.json +3 -3
- package/version.json +3 -3
- package/data/build/dist/client/session-translation-model-pool.d.ts +0 -16
- package/data/build/dist/client/session-translation-model-pool.d.ts.map +0 -1
- package/data/build/dist/client/session-translation-model-pool.js.map +0 -1
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { ReactElement } from 'react';
|
|
2
|
+
import type { AssistantChatCatalog } from '../shared/contracts/assistant.js';
|
|
3
|
+
import type { CodingNsTranslator } from './locale.js';
|
|
4
|
+
interface ModelSelection {
|
|
5
|
+
readonly provider: string;
|
|
6
|
+
readonly model: string;
|
|
7
|
+
}
|
|
8
|
+
interface ModelPoolProps {
|
|
9
|
+
readonly models: readonly ModelSelection[];
|
|
10
|
+
readonly catalog: AssistantChatCatalog | null;
|
|
11
|
+
readonly disabled: boolean;
|
|
12
|
+
readonly pending: boolean;
|
|
13
|
+
readonly t: CodingNsTranslator;
|
|
14
|
+
readonly onChange: (models: readonly ModelSelection[]) => Promise<boolean>;
|
|
15
|
+
readonly titleKey?: string;
|
|
16
|
+
readonly pickerTitleKey?: string;
|
|
17
|
+
readonly helpKey?: string;
|
|
18
|
+
readonly saveRejectedKey?: string;
|
|
19
|
+
}
|
|
20
|
+
/** The persisted pool owns priority; modal choices and drag previews remain local until confirmed. */
|
|
21
|
+
export declare function ModelPriorityPool({ models: pool, catalog, disabled, pending, t, onChange, titleKey, pickerTitleKey, helpKey, saveRejectedKey, }: ModelPoolProps): ReactElement;
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=model-priority-pool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-priority-pool.d.ts","sourceRoot":"","sources":["../../../../src/client/model-priority-pool.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAA+B,YAAY,EAAE,MAAM,OAAO,CAAA;AAKtE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAA;AAE5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAIrD,UAAU,cAAc;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAED,UAAU,cAAc;IACtB,QAAQ,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,CAAA;IAC1C,QAAQ,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAAA;IAC7C,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,CAAC,EAAE,kBAAkB,CAAA;IAC9B,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IAC1E,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAClC;AAUD,sGAAsG;AACtG,wBAAgB,iBAAiB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EACvF,QAAmC,EAAE,cAA+C,EAAE,OAAiC,EACvH,eAA4C,GAC7C,EAAE,cAAc,GAAG,YAAY,CAuM/B"}
|
|
@@ -4,8 +4,7 @@ import { isSessionTranslationAdapter } from '../shared/contracts/session-transla
|
|
|
4
4
|
import { uiFontSize } from './font-scale.js';
|
|
5
5
|
import { dshSettingsHelpStyle, dshThemeColor } from './theme.js';
|
|
6
6
|
/** The persisted pool owns priority; modal choices and drag previews remain local until confirmed. */
|
|
7
|
-
export function
|
|
8
|
-
const pool = value.translationModels ?? (value.translationModel === undefined ? [] : [value.translationModel]);
|
|
7
|
+
export function ModelPriorityPool({ models: pool, catalog, disabled, pending, t, onChange, titleKey = 'translation.modelTitle', pickerTitleKey = 'translation.modelPickerTitle', helpKey = 'translation.modelHelp', saveRejectedKey = 'translation.saveRejected', }) {
|
|
9
8
|
const available = new Map((catalog?.models ?? [])
|
|
10
9
|
.filter((model) => !isSessionTranslationAdapter(model.provider))
|
|
11
10
|
.map((model) => [modelKey(model), model]));
|
|
@@ -137,7 +136,7 @@ export function SessionTranslationModelPool({ value, catalog, disabled, pending,
|
|
|
137
136
|
setSaveFailed(false);
|
|
138
137
|
setSelection(new Set());
|
|
139
138
|
} },
|
|
140
|
-
}, t('translation.modelAdd'))), pool.length === 0 ? createElement('div', { className: 'codingns-translation-pool-empty' }, createElement(resolveDataIcon(), { size: 22 }), createElement('span', null, t('translation.modelPoolEmpty'))) : createElement('ol', { ref: list, className: 'codingns-translation-pool-list', 'aria-label': t(
|
|
139
|
+
}, t('translation.modelAdd'))), pool.length === 0 ? createElement('div', { className: 'codingns-translation-pool-empty' }, createElement(resolveDataIcon(), { size: 22 }), createElement('span', null, t('translation.modelPoolEmpty'))) : createElement('ol', { ref: list, className: 'codingns-translation-pool-list', 'aria-label': t(titleKey),
|
|
141
140
|
onPointerMove: moveDrag, onPointerUp: finishDrag, onPointerCancel: cancelDrag, onLostPointerCapture: cancelDrag,
|
|
142
141
|
}, ...(preview?.order ?? pool).map((model, index) => {
|
|
143
142
|
const key = modelKey(model);
|
|
@@ -154,14 +153,14 @@ export function SessionTranslationModelPool({ value, catalog, disabled, pending,
|
|
|
154
153
|
onClick: () => { if (!locked)
|
|
155
154
|
void onChange(pool.filter((item) => modelKey(item) !== key)); },
|
|
156
155
|
}, createElement(resolveAssistantControlIcon('close'), { size: 14 })));
|
|
157
|
-
})), createElement('div', { className: 'codingns-translation-pool-toolbar' }, createElement('span', { style: { ...dshSettingsHelpStyle, flex: 1 } }, t(
|
|
156
|
+
})), createElement('div', { className: 'codingns-translation-pool-toolbar' }, createElement('span', { style: { ...dshSettingsHelpStyle, flex: 1 } }, t(helpKey)), pool.length > 0 && createElement(DshButton, { type: 'button', size: 'sm', disabled: disabled || pickerOpen,
|
|
158
157
|
style: { color: dshThemeColor.error }, 'aria-haspopup': 'dialog', 'aria-expanded': resetOpen,
|
|
159
158
|
onClick: () => { if (!locked) {
|
|
160
159
|
setResetFailed(false);
|
|
161
160
|
setResetOpen(true);
|
|
162
161
|
} },
|
|
163
162
|
}, t('translation.modelFollowDefault'))), createElement('span', { role: 'status', 'aria-live': 'polite', className: 'codingns-translation-pool-status' }, announcement), createElement(DshModal, {
|
|
164
|
-
open: pickerOpen, onClose: closePicker, title: t(
|
|
163
|
+
open: pickerOpen, onClose: closePicker, title: t(pickerTitleKey), closeLabel: t('translation.modelCancel'),
|
|
165
164
|
description: t('translation.modelPickerHelp'), className: 'codingns-translation-model-picker',
|
|
166
165
|
contentClassName: 'codingns-translation-model-picker-content',
|
|
167
166
|
footer: createElement(Fragment, null, createElement('span', { className: 'codingns-translation-picker-count', 'aria-live': 'polite', style: dshSettingsHelpStyle }, t('translation.modelPickerCount', { count: additions.length })), createElement(DshButton, { type: 'button', variant: 'outline', disabled: pending, onClick: closePicker }, t('translation.modelCancel')), createElement(DshButton, { type: 'button', variant: 'primary', disabled: disabled || additions.length === 0,
|
|
@@ -170,7 +169,7 @@ export function SessionTranslationModelPool({ value, catalog, disabled, pending,
|
|
|
170
169
|
}, createElement('div', { className: 'codingns-translation-picker-body', 'aria-busy': pending }, createElement(DshInput, { type: 'search', value: search, placeholder: t('translation.modelSearch'),
|
|
171
170
|
'aria-label': t('translation.modelSearch'), ...{ 'data-modal-autofocus': true }, disabled,
|
|
172
171
|
onChange: (event) => setSearch(event.currentTarget.value),
|
|
173
|
-
}), createElement('div', { className: 'codingns-translation-picker-list', role: 'group', 'aria-label': t(
|
|
172
|
+
}), createElement('div', { className: 'codingns-translation-picker-list', role: 'group', 'aria-label': t(pickerTitleKey) }, ...filtered.map((model) => {
|
|
174
173
|
const key = modelKey(model);
|
|
175
174
|
return createElement('div', { key, className: `codingns-translation-picker-choice${selection?.has(key) ? ' is-selected' : ''}` }, createElement(DshCheckbox, { checked: selection?.has(key) === true, disabled, label: model.label,
|
|
176
175
|
onChange: (checked) => {
|
|
@@ -186,7 +185,7 @@ export function SessionTranslationModelPool({ value, catalog, disabled, pending,
|
|
|
186
185
|
});
|
|
187
186
|
},
|
|
188
187
|
}), createElement('span', { className: 'codingns-translation-picker-provider', style: dshSettingsHelpStyle }, t(isOfficialProvider(model.provider) ? 'translation.modelOfficial' : 'translation.modelThirdParty')));
|
|
189
|
-
}), filtered.length > 0 ? null : createElement('div', { className: 'codingns-translation-pool-empty', role: 'status' }, t(catalog === null ? 'translation.modelLoading' : candidates.length > 0 ? 'translation.modelNoMatches' : available.size > 0 ? 'translation.modelAllAdded' : 'translation.modelEmpty'))), saveFailed && createElement('span', { role: 'alert', style: { ...dshSettingsHelpStyle, color: dshThemeColor.error } }, t(
|
|
188
|
+
}), filtered.length > 0 ? null : createElement('div', { className: 'codingns-translation-pool-empty', role: 'status' }, t(catalog === null ? 'translation.modelLoading' : candidates.length > 0 ? 'translation.modelNoMatches' : available.size > 0 ? 'translation.modelAllAdded' : 'translation.modelEmpty'))), saveFailed && createElement('span', { role: 'alert', style: { ...dshSettingsHelpStyle, color: dshThemeColor.error } }, t(saveRejectedKey)))), createElement(DshModal, {
|
|
190
189
|
open: resetOpen, onClose: closeReset, title: t('translation.modelResetTitle'), closeLabel: t('translation.modelCancel'),
|
|
191
190
|
description: t('translation.modelResetHelp', { count: pool.length }),
|
|
192
191
|
footer: createElement(Fragment, null, createElement(DshButton, { type: 'button', variant: 'outline', disabled: pending,
|
|
@@ -194,7 +193,7 @@ export function SessionTranslationModelPool({ value, catalog, disabled, pending,
|
|
|
194
193
|
}, t('translation.modelCancel')), createElement(DshButton, { type: 'button', variant: 'outline', disabled,
|
|
195
194
|
style: { color: dshThemeColor.error }, onClick: () => { void confirmReset(); },
|
|
196
195
|
}, t('translation.modelResetConfirm'))),
|
|
197
|
-
}, resetFailed ? createElement('span', { role: 'alert', style: { ...dshSettingsHelpStyle, color: dshThemeColor.error } }, t(
|
|
196
|
+
}, resetFailed ? createElement('span', { role: 'alert', style: { ...dshSettingsHelpStyle, color: dshThemeColor.error } }, t(saveRejectedKey)) : undefined));
|
|
198
197
|
}
|
|
199
198
|
function modelKey(model) { return JSON.stringify([model.provider, model.model]); }
|
|
200
199
|
function moveModel(pool, source, target) {
|
|
@@ -243,4 +242,4 @@ const modelPoolCss = `
|
|
|
243
242
|
.codingns-translation-picker-count{margin-right:auto}
|
|
244
243
|
@media(max-width:480px){.codingns-translation-pool-row{gap:6px;padding-right:8px}.codingns-translation-pool-unavailable{max-width:70px}.codingns-translation-picker-choice{padding:10px}}
|
|
245
244
|
`;
|
|
246
|
-
//# sourceMappingURL=
|
|
245
|
+
//# sourceMappingURL=model-priority-pool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-priority-pool.js","sourceRoot":"","sources":["../../../../src/client/model-priority-pool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-icons.d.ts","sourceRoot":"","sources":["../../../../src/client/provider-icons.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"provider-icons.d.ts","sourceRoot":"","sources":["../../../../src/client/provider-icons.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAGhF,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAED,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAED,sCAAsC;AACtC,eAAO,MAAM,sBAAsB,YAAY,CAAA;AAE/C;;;;;GAKG;AACH,QAAA,MAAM,oBAAoB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAoBtE,CAAA;AAED,QAAA,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,CAAA;AAEjD,0CAA0C;AAC1C,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,CAOlF;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAErE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,CAAC,CAAC,EAAE,kBAAkB,GAAG,cAAc,CAWpG;AAQD,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,CAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { resolveCodingNsTranslator } from './locale.js';
|
|
2
|
+
import { fromCliProviderId } from '../shared/cli-provider-route.js';
|
|
2
3
|
/** 未绑定和未知 Agent 使用中性灰,绝不冒充任一已知品牌色。 */
|
|
3
4
|
export const PROVIDER_NEUTRAL_COLOR = '#71717a';
|
|
4
5
|
/**
|
|
@@ -63,7 +64,8 @@ export function providerVisual(adapterId, t) {
|
|
|
63
64
|
}
|
|
64
65
|
/** 兼容旧版 CN profile 的会话快照,但不重新暴露第二个 Provider。 */
|
|
65
66
|
function normalizeProviderAdapterId(adapterId) {
|
|
66
|
-
|
|
67
|
+
const normalized = fromCliProviderId(adapterId) ?? adapterId;
|
|
68
|
+
return normalized === 'codebuddy-cn' ? 'codebuddy' : normalized;
|
|
67
69
|
}
|
|
68
70
|
export { PROVIDER_DEFINITIONS, PROVIDER_ICONS };
|
|
69
71
|
//# sourceMappingURL=provider-icons.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-icons.js","sourceRoot":"","sources":["../../../../src/client/provider-icons.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAA2B,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"provider-icons.js","sourceRoot":"","sources":["../../../../src/client/provider-icons.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type QuickAppStorageArea, type QuickAppStorageEntries } from '../../shared/quick-app-browser-storage.js';
|
|
2
|
+
export declare function storageFailure(error: unknown): {
|
|
3
|
+
name: string;
|
|
4
|
+
message: string;
|
|
5
|
+
};
|
|
6
|
+
/** Only this object chooses the namespace; requests cannot provide storage keys or identities. */
|
|
7
|
+
export declare function createQuickAppBrowserStore(scope: string, resolve: (area: QuickAppStorageArea) => Storage): {
|
|
8
|
+
read: (area: QuickAppStorageArea) => QuickAppStorageEntries;
|
|
9
|
+
execute(request: unknown): {
|
|
10
|
+
id: number;
|
|
11
|
+
value: unknown;
|
|
12
|
+
entries: [string, string][];
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
/** Exact window + launch token authenticate the initial transfer; Origin:null alone never does. */
|
|
16
|
+
export declare function attachQuickAppStorageBroker(options: {
|
|
17
|
+
owner: Window;
|
|
18
|
+
frame(): HTMLIFrameElement | null;
|
|
19
|
+
token: string;
|
|
20
|
+
scope: string;
|
|
21
|
+
expiresAt: number;
|
|
22
|
+
onError(error: Error): void;
|
|
23
|
+
}): () => void;
|
|
24
|
+
//# sourceMappingURL=browser-storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-storage.d.ts","sourceRoot":"","sources":["../../../../../src/client/quick-apps/browser-storage.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,mBAAmB,EAAE,KAAK,sBAAsB,EAA+B,MAAM,2CAA2C,CAAA;AAEvI,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAEhF;AAED,kGAAkG;AAClG,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,mBAAmB,KAAK,OAAO;iBAGnF,mBAAmB,KAAG,sBAAsB;qBAQhC,OAAO;;;;;EAkBxC;AAED,mGAAmG;AACnG,wBAAgB,2BAA2B,CAAC,OAAO,EAAE;IACnD,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,IAAI,iBAAiB,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;CAC/H,GAAG,MAAM,IAAI,CA2Cb"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { QUICK_APP_STORAGE_LIMITS, QUICK_APP_STORAGE_PROTOCOL, isQuickAppStorageRequest, validateQuickAppStorageEntries } from '../../shared/quick-app-browser-storage.js';
|
|
2
|
+
export function storageFailure(error) {
|
|
3
|
+
return { name: error instanceof Error ? error.name : 'UnknownError', message: error instanceof Error ? error.message : 'Application storage failed.' };
|
|
4
|
+
}
|
|
5
|
+
/** Only this object chooses the namespace; requests cannot provide storage keys or identities. */
|
|
6
|
+
export function createQuickAppBrowserStore(scope, resolve) {
|
|
7
|
+
const key = scope;
|
|
8
|
+
if (!key.startsWith('codingns.quickApps.storage.v1:') || key.length > 8192)
|
|
9
|
+
throw new DOMException('Invalid application storage scope.', 'SecurityError');
|
|
10
|
+
const read = (area) => {
|
|
11
|
+
const text = resolve(area).getItem(key);
|
|
12
|
+
if (text !== null && text.length * 2 > QUICK_APP_STORAGE_LIMITS.bytes)
|
|
13
|
+
throw new DOMException('Application storage quota exceeded.', 'QuotaExceededError');
|
|
14
|
+
let entries;
|
|
15
|
+
try {
|
|
16
|
+
entries = text === null ? [] : JSON.parse(text);
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
throw new DOMException('Application storage is not valid JSON.', 'DataError');
|
|
20
|
+
}
|
|
21
|
+
validateQuickAppStorageEntries(entries);
|
|
22
|
+
return entries;
|
|
23
|
+
};
|
|
24
|
+
return { read, execute(request) {
|
|
25
|
+
if (!isQuickAppStorageRequest(request))
|
|
26
|
+
throw new DOMException('Invalid application storage request.', 'SecurityError');
|
|
27
|
+
const store = resolve(request.area);
|
|
28
|
+
// Clearing a damaged namespace must not require parsing the damaged value first.
|
|
29
|
+
const entries = new Map(request.operation === 'clear' ? [] : read(request.area));
|
|
30
|
+
let value = null;
|
|
31
|
+
switch (request.operation) {
|
|
32
|
+
case 'getItem':
|
|
33
|
+
value = entries.get(request.key) ?? null;
|
|
34
|
+
break;
|
|
35
|
+
case 'setItem':
|
|
36
|
+
entries.set(request.key, request.value);
|
|
37
|
+
break;
|
|
38
|
+
case 'removeItem':
|
|
39
|
+
entries.delete(request.key);
|
|
40
|
+
break;
|
|
41
|
+
case 'keys':
|
|
42
|
+
value = [...entries.keys()];
|
|
43
|
+
break;
|
|
44
|
+
}
|
|
45
|
+
const snapshot = [...entries];
|
|
46
|
+
validateQuickAppStorageEntries(snapshot);
|
|
47
|
+
if (request.operation === 'clear')
|
|
48
|
+
store.removeItem(key);
|
|
49
|
+
else if (request.operation === 'setItem' || request.operation === 'removeItem')
|
|
50
|
+
store.setItem(key, JSON.stringify(snapshot));
|
|
51
|
+
return { id: request.id, value, entries: snapshot };
|
|
52
|
+
} };
|
|
53
|
+
}
|
|
54
|
+
/** Exact window + launch token authenticate the initial transfer; Origin:null alone never does. */
|
|
55
|
+
export function attachQuickAppStorageBroker(options) {
|
|
56
|
+
const { owner, token, expiresAt, onError } = options;
|
|
57
|
+
const store = createQuickAppBrowserStore(options.scope, area => area === 'local' ? owner.localStorage : owner.sessionStorage);
|
|
58
|
+
let active = true;
|
|
59
|
+
let port;
|
|
60
|
+
let documentId;
|
|
61
|
+
const shutdown = () => {
|
|
62
|
+
port?.postMessage({ type: 'closed', error: { name: 'SecurityError', message: 'The application storage channel was closed.' } });
|
|
63
|
+
port?.close();
|
|
64
|
+
port = undefined;
|
|
65
|
+
};
|
|
66
|
+
const connect = (event) => {
|
|
67
|
+
const frameWindow = options.frame()?.contentWindow;
|
|
68
|
+
const data = event.data;
|
|
69
|
+
if (!active || Date.now() >= expiresAt || !frameWindow || event.source !== frameWindow || event.origin !== 'null'
|
|
70
|
+
|| !data || data.type !== QUICK_APP_STORAGE_PROTOCOL || data.token !== token || typeof data.documentId !== 'string'
|
|
71
|
+
|| !/^[a-f0-9]{32}$/u.test(data.documentId) || documentId === data.documentId)
|
|
72
|
+
return;
|
|
73
|
+
shutdown();
|
|
74
|
+
documentId = data.documentId;
|
|
75
|
+
const channel = new MessageChannel();
|
|
76
|
+
port = channel.port1;
|
|
77
|
+
const current = port;
|
|
78
|
+
const snapshot = {};
|
|
79
|
+
const errors = {};
|
|
80
|
+
for (const area of ['local', 'session']) {
|
|
81
|
+
try {
|
|
82
|
+
snapshot[area] = store.read(area);
|
|
83
|
+
}
|
|
84
|
+
catch (error) {
|
|
85
|
+
errors[area] = storageFailure(error);
|
|
86
|
+
onError(new Error(errors[area].message));
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
current.onmessage = message => {
|
|
90
|
+
if (current !== port)
|
|
91
|
+
return;
|
|
92
|
+
if (!active || Date.now() >= expiresAt) {
|
|
93
|
+
shutdown();
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
try {
|
|
97
|
+
current.postMessage(store.execute(message.data));
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
const failure = storageFailure(error);
|
|
101
|
+
const id = message.data?.id;
|
|
102
|
+
current.postMessage({ id, error: failure });
|
|
103
|
+
onError(new Error(failure.message));
|
|
104
|
+
if (!isQuickAppStorageRequest(message.data))
|
|
105
|
+
shutdown();
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
frameWindow.postMessage({ type: QUICK_APP_STORAGE_PROTOCOL, token, documentId, snapshot, errors }, '*', [channel.port2]);
|
|
109
|
+
};
|
|
110
|
+
owner.addEventListener('message', connect);
|
|
111
|
+
const expiry = setTimeout(() => { active = false; shutdown(); owner.removeEventListener('message', connect); }, Math.max(0, Math.min(expiresAt - Date.now(), 2_147_483_647)));
|
|
112
|
+
return () => { active = false; clearTimeout(expiry); owner.removeEventListener('message', connect); shutdown(); };
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=browser-storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-storage.js","sourceRoot":"","sources":["../../../../../src/client/quick-apps/browser-storage.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ export declare class QuickAppsClient {
|
|
|
8
8
|
constructor(rpc: CodingNsRpcClient);
|
|
9
9
|
call<T>(action: string, payload?: unknown): Promise<T>;
|
|
10
10
|
reorder(apps: readonly QuickApp[], current: () => boolean): Promise<readonly QuickApp[]>;
|
|
11
|
-
open(id: string): Promise<QuickAppView | undefined>;
|
|
11
|
+
open(id: string, browserStorage?: boolean): Promise<QuickAppView | undefined>;
|
|
12
12
|
close(): Promise<void>;
|
|
13
13
|
}
|
|
14
14
|
export type QuickAppView = ({
|
|
@@ -25,5 +25,7 @@ export type QuickAppView = ({
|
|
|
25
25
|
expiresAt: number;
|
|
26
26
|
isolation?: 'lan-port' | 'sandbox-proxy';
|
|
27
27
|
basePath?: string;
|
|
28
|
+
storageToken?: string;
|
|
29
|
+
storageScope?: string;
|
|
28
30
|
};
|
|
29
31
|
//# sourceMappingURL=client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../../src/client/quick-apps/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAA;AAItF,mGAAmG;AACnG,qBAAa,eAAe;IAGd,OAAO,CAAC,QAAQ,CAAC,GAAG;IAFhC,OAAO,CAAC,UAAU,CAAI;IACtB,OAAO,CAAC,QAAQ,CAAoB;gBACP,GAAG,EAAE,iBAAiB;IAC7C,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,OAAY,GAAG,OAAO,CAAC,CAAC,CAAC;IAS1D,OAAO,CAAC,IAAI,EAAE,SAAS,QAAQ,EAAE,EAAE,OAAO,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,QAAQ,EAAE,CAAC;IAiBxF,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../../src/client/quick-apps/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAA;AAItF,mGAAmG;AACnG,qBAAa,eAAe;IAGd,OAAO,CAAC,QAAQ,CAAC,GAAG;IAFhC,OAAO,CAAC,UAAU,CAAI;IACtB,OAAO,CAAC,QAAQ,CAAoB;gBACP,GAAG,EAAE,iBAAiB;IAC7C,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,OAAY,GAAG,OAAO,CAAC,CAAC,CAAC;IAS1D,OAAO,CAAC,IAAI,EAAE,SAAS,QAAQ,EAAE,EAAE,OAAO,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,QAAQ,EAAE,CAAC;IAiBxF,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,UAAO,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAa1E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAM7B;AAGD,MAAM,MAAM,YAAY,GAAG,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC,CAAC,GAC7J;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,UAAU,GAAG,eAAe,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA"}
|
|
@@ -35,19 +35,19 @@ export class QuickAppsClient {
|
|
|
35
35
|
saved.push(app);
|
|
36
36
|
continue;
|
|
37
37
|
}
|
|
38
|
-
const { id, title, hostId, workspaceId, entryPath, documentRoot, kind, fileAccess, spaFallback, mounts } = app;
|
|
38
|
+
const { id, title, hostId, workspaceId, entryPath, documentRoot, kind, fileAccess, spaFallback, networkAllow, mounts } = app;
|
|
39
39
|
saved.push(await this.call('upsert', { expectedRevision: app.revision,
|
|
40
|
-
app: { id, title, hostId, workspaceId, entryPath, documentRoot, kind, ...(fileAccess ? { fileAccess } : {}), spaFallback, mounts, order } }));
|
|
40
|
+
app: { id, title, hostId, workspaceId, entryPath, documentRoot, kind, ...(fileAccess ? { fileAccess } : {}), spaFallback, ...(networkAllow?.length ? { networkAllow } : {}), mounts, order } }));
|
|
41
41
|
}
|
|
42
42
|
return saved;
|
|
43
43
|
}
|
|
44
|
-
async open(id) {
|
|
44
|
+
async open(id, browserStorage = true) {
|
|
45
45
|
const closing = this.close();
|
|
46
46
|
const generation = this.generation;
|
|
47
47
|
await closing;
|
|
48
48
|
if (generation !== this.generation)
|
|
49
49
|
return undefined;
|
|
50
|
-
const result = await this.call('launch', { id });
|
|
50
|
+
const result = await this.call('launch', { id, ...(browserStorage ? { browserStorage: true } : {}) });
|
|
51
51
|
if (generation !== this.generation) {
|
|
52
52
|
if (result.launchId)
|
|
53
53
|
await this.call('close', { id: result.launchId });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../../src/client/quick-apps/client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAA;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAEtD,mGAAmG;AACnG,MAAM,OAAO,eAAe;IAGG;IAFrB,UAAU,GAAG,CAAC,CAAA;IACd,QAAQ,CAAoB;IACpC,YAA6B,GAAsB;QAAtB,QAAG,GAAH,GAAG,CAAmB;IAAG,CAAC;IACvD,KAAK,CAAC,IAAI,CAAI,MAAc,EAAE,UAAmB,EAAE;QACjD,2FAA2F;QAC3F,MAAM,QAAQ,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS;YACvD,CAAC,CAAC,QAAQ,CAAC,QAAQ,KAAK,UAAU,IAAI,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAA;QAC5G,MAAM,KAAK,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,QAAQ,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAI,OAAkB,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,OAAO,CAAA;QACrH,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,MAAM,EAAE,EAAE,KAAK,CAAC,CAAA;QAClF,IAAI,CAAC,MAAM,CAAC,EAAE;YAAE,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;QACjG,OAAO,MAAM,CAAC,KAAU,CAAA;IAC1B,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,IAAyB,EAAE,OAAsB;QAC7D,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,IAAI,CAAa,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,gBAAgB,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAA;QAC5H,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAK,KAA2B,CAAC,IAAI,KAAK,wBAAwB;gBAAE,MAAM,KAAK,CAAA;QACjF,CAAC;QACD,iGAAiG;QACjG,MAAM,KAAK,GAAe,EAAE,CAAA;QAC5B,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YAC1C,IAAI,CAAC,OAAO,EAAE;gBAAE,OAAO,KAAK,CAAA;YAC5B,IAAI,GAAG,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;gBAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAAC,SAAQ;YAAC,CAAC;YACtD,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,GAAG,CAAA;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../../src/client/quick-apps/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launcher.d.ts","sourceRoot":"","sources":["../../../../../src/client/quick-apps/launcher.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAa,MAAM,OAAO,CAAA;AACpD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"launcher.d.ts","sourceRoot":"","sources":["../../../../../src/client/quick-apps/launcher.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAa,MAAM,OAAO,CAAA;AACpD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAuBlE,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;IAAE,QAAQ,EAAE,sBAAsB,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG,YAAY,CAsNvH"}
|
|
@@ -4,6 +4,7 @@ import { DshFileTypeIcon, DshFolderIcon, DshInput, DshModal, classifyDshFileType
|
|
|
4
4
|
import { useCodingNsTranslator } from '../locale.js';
|
|
5
5
|
import { readNativeWorkspaceSnapshot, readNativeWorkspaceListStore } from '../native-workspace-store.js';
|
|
6
6
|
import { QuickAppsClient } from './client.js';
|
|
7
|
+
import { parseQuickAppNetworkAllow } from '../../shared/quick-app-network-allow.js';
|
|
7
8
|
import { draftChanged, entryTitle, newQuickAppDraft, quickAppEntryPatch, shortcutIcon } from './presentation.js';
|
|
8
9
|
import { QuickAppActions, QuickAppButton, QuickAppControlIcon, QuickAppField } from './ui.js';
|
|
9
10
|
import { quickAppsCss } from './styles.js';
|
|
@@ -11,6 +12,7 @@ import { QuickAppWorkspacePicker } from './workspace-picker.js';
|
|
|
11
12
|
import { QuickAppFilePicker } from './file-picker.js';
|
|
12
13
|
import { QuickAppViewer } from './viewer.js';
|
|
13
14
|
import { useQuickAppReorder } from './reorder.js';
|
|
15
|
+
import { readQuickAppsRailCollapsed, writeQuickAppsRailCollapsed } from './rail-preference.js';
|
|
14
16
|
import { sidebarFooterControlStyle, useSidebarFooterAlignment } from '../sidebar-footer-style.js';
|
|
15
17
|
export function QuickAppsLauncher({ services, wide }) {
|
|
16
18
|
const rail = useSidebarFooterAlignment(wide);
|
|
@@ -18,9 +20,11 @@ export function QuickAppsLauncher({ services, wide }) {
|
|
|
18
20
|
const formId = useId();
|
|
19
21
|
const client = useMemo(() => new QuickAppsClient(services.rpc), [services.rpc]);
|
|
20
22
|
const [screen, setScreen] = useState(null);
|
|
21
|
-
const [mode, setMode] = useState('normal');
|
|
23
|
+
const [mode, setMode] = useState(() => readQuickAppsRailCollapsed() ? 'collapsed' : 'normal');
|
|
22
24
|
const editing = mode === 'edit';
|
|
23
25
|
const collapsed = mode === 'collapsed';
|
|
26
|
+
const expandRail = () => { writeQuickAppsRailCollapsed(false); setMode('normal'); };
|
|
27
|
+
const collapseRail = () => { writeQuickAppsRailCollapsed(true); setMode('collapsed'); };
|
|
24
28
|
const [pickingFile, setPickingFile] = useState(false);
|
|
25
29
|
const [apps, setApps] = useState([]);
|
|
26
30
|
const [notice, setNotice] = useState(null);
|
|
@@ -120,13 +124,22 @@ export function QuickAppsLauncher({ services, wide }) {
|
|
|
120
124
|
invalid.workspaceId = t('quickApps.chooseWorkspace');
|
|
121
125
|
if (!draft.entryPath.trim())
|
|
122
126
|
invalid.entryPath = t('quickApps.entryRequired');
|
|
127
|
+
const lines = (draft.networkAllow ?? []).map(line => line.trim()).filter(Boolean);
|
|
128
|
+
let networkAllow = [];
|
|
129
|
+
try {
|
|
130
|
+
networkAllow = parseQuickAppNetworkAllow(lines);
|
|
131
|
+
}
|
|
132
|
+
catch {
|
|
133
|
+
invalid.networkAllow = t('quickApps.networkAllowInvalid');
|
|
134
|
+
}
|
|
123
135
|
if (Object.keys(invalid).length) {
|
|
124
136
|
setErrors(invalid);
|
|
125
137
|
return;
|
|
126
138
|
}
|
|
127
139
|
void perform(async (current) => {
|
|
128
|
-
const
|
|
129
|
-
|
|
140
|
+
const { networkAllow: _draftAllow, ...fields } = draft;
|
|
141
|
+
const saved = await client.call('upsert', { app: { ...fields, fileAccess: draft.kind === 'html' ? 'workspace' : undefined,
|
|
142
|
+
title: draft.title.trim() || entryTitle(draft.entryPath), ...(networkAllow.length ? { networkAllow } : {}) }, expectedRevision: draft.expectedRevision });
|
|
130
143
|
if (draft.kind === 'html' && saved.fileAccess !== 'workspace')
|
|
131
144
|
throw new Error(t('quickApps.workspaceAccessHostUpdate'));
|
|
132
145
|
if (!current())
|
|
@@ -180,7 +193,9 @@ export function QuickAppsLauncher({ services, wide }) {
|
|
|
180
193
|
setPickingFile(false);
|
|
181
194
|
updateDraft({ workspaceId: workspace.workspaceId, hostId: workspace.hostId ?? 'local', entryPath: '', documentRoot: '', mounts: [], spaFallback: false });
|
|
182
195
|
} }), field('entryPath', draft), field('title', draft), pickingFile && selected ? h(QuickAppFilePicker, { key: `${draft.hostId}:${draft.workspaceId}`, client, workspace: selected, value: draft.entryPath, t,
|
|
183
|
-
onClose: () => setPickingFile(false), onSelect: path => { setEntry(draft, path); setPickingFile(false); } }) : null, h(QuickAppField, { id: `${formId}-kind`, label: t('quickApps.kind') }, h('select', { id: `${formId}-kind`, className: 'qa-select', value: draft.kind, disabled: busy, onChange: (event) => updateDraft({ kind: event.target.value }) }, h('option', { value: 'html' }, t('quickApps.html')), h('option', { value: 'text' }, t('quickApps.text')))),
|
|
196
|
+
onClose: () => setPickingFile(false), onSelect: path => { setEntry(draft, path); setPickingFile(false); } }) : null, h(QuickAppField, { id: `${formId}-kind`, label: t('quickApps.kind') }, h('select', { id: `${formId}-kind`, className: 'qa-select', value: draft.kind, disabled: busy, onChange: (event) => updateDraft({ kind: event.target.value }) }, h('option', { value: 'html' }, t('quickApps.html')), h('option', { value: 'text' }, t('quickApps.text')))), h(QuickAppField, { id: `${formId}-network-allow`, label: t('quickApps.networkAllow'), error: errors.networkAllow, help: t('quickApps.networkAllowHelp') }, h('textarea', { id: `${formId}-network-allow`, className: 'qa-allow', rows: 4, value: (draft.networkAllow ?? []).join('\n'), disabled: busy, spellCheck: false,
|
|
197
|
+
placeholder: t('quickApps.networkAllowPlaceholder'), 'aria-invalid': Boolean(errors.networkAllow), 'aria-describedby': `${formId}-network-allow-help`,
|
|
198
|
+
onChange: (event) => updateDraft({ networkAllow: event.target.value.split('\n') }) })), draft.kind === 'html' && selected ? h('p', { className: 'qa-help' }, t('quickApps.workspaceAccessHelp', { workspace: selected.title })) : null, draft.id ? h('fieldset', { className: 'qa-management', disabled: busy || changed, 'aria-label': t('quickApps.accessAndRemoval') }, changed ? h('p', { className: 'qa-help' }, t('quickApps.saveBeforeAccess')) : null, h(QuickAppActions, null, draft.kind === 'html' ? button(t('quickApps.revoke'), () => {
|
|
184
199
|
void perform(async (current) => {
|
|
185
200
|
const result = await client.call('revoke', { id: draft.id });
|
|
186
201
|
if (!current())
|
|
@@ -217,9 +232,9 @@ export function QuickAppsLauncher({ services, wide }) {
|
|
|
217
232
|
'aria-expanded': icon === 'collapse' || icon === 'expand' ? !collapsed : undefined, onClick,
|
|
218
233
|
}, h(QuickAppControlIcon, { icon }));
|
|
219
234
|
return h('section', { ref: rail, className: 'codingns-quick-app-rail', 'data-wide': wide, 'data-collapsed': collapsed, 'aria-label': t('quickApps.title'), 'aria-busy': busy }, h('style', null, quickAppsCss), h('header', { className: 'qa-rail-header' }, wide ? h('h2', null, t('quickApps.title')) : null, wide && loaded && !collapsed ? h('span', { className: 'qa-count', 'aria-label': t('quickApps.count', { count: apps.length }) }, apps.length) : null, h('div', { className: 'qa-controls' }, !collapsed ? editing ? control(t('quickApps.add'), 'add', add)
|
|
220
|
-
: control(t('quickApps.manage'), 'edit', () => { setMode('edit'); setNotice(null); }) : null, collapsed ? control(t('quickApps.expandBar'), 'expand',
|
|
235
|
+
: control(t('quickApps.manage'), 'edit', () => { setMode('edit'); setNotice(null); }) : null, collapsed ? control(t('quickApps.expandBar'), 'expand', expandRail)
|
|
221
236
|
: editing ? control(t('quickApps.done'), 'done', () => { setMode('normal'); setNotice(null); })
|
|
222
|
-
: control(t('quickApps.collapseBar'), 'collapse',
|
|
237
|
+
: control(t('quickApps.collapseBar'), 'collapse', collapseRail))), !collapsed ? h('div', { className: 'qa-rail-content' }, !screen && notice ? h('p', { className: 'qa-rail-notice', role: notice.tone === 'error' ? 'alert' : 'status', title: notice.text }, wide ? notice.text : '!') : null, !loaded && !notice ? h('p', { className: 'qa-rail-notice', role: 'status', title: t('quickApps.loading') }, wide ? t('quickApps.loading') : '…') : null, !screen && (!loaded || notice?.tone === 'error') && !busy ? control(t('quickApps.retry'), 'retry', () => { void perform(refresh); }) : null, loaded && !apps.length && wide ? h('p', { className: 'qa-rail-notice' }, t('quickApps.empty')) : null, h('div', { className: 'qa-grid', ...reorder.gridProps }, ...reorder.apps.map(app => {
|
|
223
238
|
const icon = shortcutIcon(app);
|
|
224
239
|
const workspace = workspaces.find(item => item.workspaceId === app.workspaceId && (item.hostId ?? 'local') === app.hostId);
|
|
225
240
|
const available = app.availability === 'available';
|
|
@@ -238,14 +253,14 @@ export function QuickAppsLauncher({ services, wide }) {
|
|
|
238
253
|
setNotice({ tone: 'error', text: status });
|
|
239
254
|
return;
|
|
240
255
|
}
|
|
241
|
-
void perform(async (current) => { const view = await client.open(app.id); if (current() && view)
|
|
256
|
+
void perform(async (current) => { const view = await client.open(app.id, app.kind === 'html'); if (current() && view)
|
|
242
257
|
navigate({ kind: 'view', app, view }); });
|
|
243
258
|
} }, h('span', { className: 'qa-icon', style: icon.style, 'aria-hidden': true }, icon.text, !available ? h('span', { className: 'qa-unavailable' }, '!') : null), h('strong', null, app.title)), editing ? h('button', { type: 'button', className: 'qa-remove', disabled: busy,
|
|
244
259
|
title: t('quickApps.removeNamed', { title: app.title }), 'aria-label': t('quickApps.removeNamed', { title: app.title }),
|
|
245
260
|
onClick: () => navigate({ kind: 'remove', app }),
|
|
246
261
|
}, h(QuickAppControlIcon, { icon: 'remove' })) : null);
|
|
247
262
|
}))) : null, screen?.kind === 'view' ? h(QuickAppViewer, { key: screen.app.id, app: screen.app, view: screen.view, client, busy, error: notice?.tone === 'error' ? notice.text : undefined, t, onClose: close,
|
|
248
|
-
onReload: () => { void perform(async (current) => { const view = await client.open(screen.app.id); if (current() && view)
|
|
263
|
+
onReload: () => { void perform(async (current) => { const view = await client.open(screen.app.id, screen.app.kind === 'html'); if (current() && view)
|
|
249
264
|
setScreen({ ...screen, view }); }); } })
|
|
250
265
|
: screen ? h(DshModal, { open: true, title, closeLabel: t('quickApps.close'), onClose: close, className: 'codingns-quick-app-dialog', contentClassName: 'qa-content', footer }, h('div', { className: 'qa-body', 'aria-busy': busy }, notice ? h('div', { className: 'qa-notice', role: notice.tone === 'error' ? 'alert' : 'status' }, notice.text) : null, body)) : null);
|
|
251
266
|
}
|