chore(web): assemble Sidebar domains and register workspace packages
This commit is contained in:
1 parent
a7c7e99652
commit
508831624f
25 files changed
+140
-33
No files matched your search
@@ -33,6 +33,7 @@
|
||||
"@deepseek-ai/cordis-plugin-group": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-modules": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-store": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-dockkit": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-primitives": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-slots": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-web": "workspace:^",
|
||||
|
||||
@@ -87,6 +87,7 @@
|
||||
"tests/feedback-command.e2e.ts",
|
||||
"tests/feedback-release.e2e.ts",
|
||||
"tests/agent-team-panel.e2e.ts",
|
||||
"tests/sidebar-right.e2e.ts",
|
||||
"tests/startup-auto-selection.e2e.ts",
|
||||
"tests/produced-files.e2e.ts",
|
||||
"tests/produced-file-mentions.e2e.ts",
|
||||
|
||||
@@ -54,6 +54,8 @@ One page per subsystem of the DeepSeek Harness: what it is, the data structures
|
||||
| [web-client.md](web-client.md) | the browser architecture: boot, Remote communication, paired Client models, UI adapters, Conversation assembly, Slots, and reconnect semantics |
|
||||
| [client-modules.md](client-modules.md) | the web plugin table: `dsh.client` declarations, `WebBootGraph` wire composition, the bundle route and index tap |
|
||||
| [slots.md](slots.md) | typed Web UI composition: declaration ownership, cardinality and scope, framework and feature injection, props derivation, and the shipped hierarchy |
|
||||
| [client-resources.md](client-resources.md) | the client resource model: `dsh-resource://<type>/…` addresses, protocol providers and `ResourceProtocolMap`, the `useResource` global hook and its states, pins and release |
|
||||
| [sidebar-right.md](sidebar-right.md) | the right Sidebar: resource and navigation addresses, tab-type registration and routing, the `ctx.sidebarRight` navigation service, the pane-tab slots and owner props, the resource model, and the Workspace Files service |
|
||||
| [conversation.md](conversation.md) | target-neutral Session-event assembly: Context identity, Location data, replay paths, view builders, and target-owned render nodes |
|
||||
| [session-projection.md](session-projection.md) | the projection seam: `SessionProjectionMap`, the pure `ProjectionDefinition` unit, `ProjectionSnapshot`'s consistent cut, the change feed |
|
||||
| [session-telemetry.md](session-telemetry.md) | the outbound session-reporting capability seam: `SessionTelemetryRecord`/`SessionTelemetrySeverity`, the `SessionTelemetrySink` contract, and the `session-telemetry/record` redact waterfall |
|
||||
|
||||
@@ -54,6 +54,8 @@
|
||||
| [web-client.md](web-client.zh.md) | 浏览器架构:启动、Remote 通信、配对的 Client model、UI adapter、Conversation 组装、Slots 与重连语义 |
|
||||
| [client-modules.md](client-modules.zh.md) | Web 插件表:`dsh.client` 声明、`WebBootGraph` 线上组合、bundle 路由与 index 转换 |
|
||||
| [slots.md](slots.zh.md) | 类型化 Web UI 组合:声明所有权、cardinality 与 scope、框架与功能注入、props 推导及当前层级 |
|
||||
| [client-resources.md](client-resources.zh.md) | 客户端资源模型:`dsh-resource://<type>/…` 地址、协议提供方与 `ResourceProtocolMap`、`useResource` 全局 hook 及其状态、钉住与释放 |
|
||||
| [sidebar-right.md](sidebar-right.zh.md) | 右侧 Sidebar:资源地址与导航地址、tab 类型注册与路由、`ctx.sidebarRight` 导航服务、pane-tab slot 与 owner props、资源模型及 Workspace Files 服务 |
|
||||
| [conversation.md](conversation.zh.md) | target-neutral Session event 组装:Context identity、Location data、replay 路径、view builder 与 target 自有 render node |
|
||||
| [session-projection.md](session-projection.zh.md) | 投影 seam:`SessionProjectionMap`、纯函数 `ProjectionDefinition` 单元、`ProjectionSnapshot` 的一致切面、变更馈送 |
|
||||
| [session-telemetry.md](session-telemetry.zh.md) | 对外会话上报能力 seam:`SessionTelemetryRecord`/`SessionTelemetrySeverity`、`SessionTelemetrySink` 约定和 `session-telemetry/record` 脱敏 waterfall |
|
||||
|
||||
@@ -142,7 +142,8 @@ root
|
||||
│ ├─ conversation.session.header
|
||||
│ │ ├─ conversation.session.header.lineage
|
||||
│ │ ├─ conversation.session.header.actions
|
||||
│ │ └─ conversation.session.header.utilities
|
||||
│ │ ├─ conversation.session.header.utilities
|
||||
│ │ └─ conversation.session.header.corner
|
||||
│ ├─ conversation.composer
|
||||
│ │ └─ conversation.approval.detail
|
||||
│ ├─ conversation.composer.bar
|
||||
@@ -158,8 +159,11 @@ root
|
||||
│ ├─ conversation.hero.workspace
|
||||
│ │ └─ conversation.hero.workspace.directoryFlow
|
||||
│ └─ conversation.hero.agentPreset
|
||||
├─ details
|
||||
│ └─ conversation.details.tool
|
||||
├─ rightbar
|
||||
│ ├─ sidebar.right.pane.tab
|
||||
│ │ └─ sidebar.right.tab.guide
|
||||
│ ├─ sidebar.right.pane.tab.title
|
||||
│ └─ sidebar.right.tab.menu.item
|
||||
└─ shell.overlay
|
||||
```
|
||||
|
||||
|
||||
@@ -142,7 +142,8 @@ root
|
||||
│ ├─ conversation.session.header
|
||||
│ │ ├─ conversation.session.header.lineage
|
||||
│ │ ├─ conversation.session.header.actions
|
||||
│ │ └─ conversation.session.header.utilities
|
||||
│ │ ├─ conversation.session.header.utilities
|
||||
│ │ └─ conversation.session.header.corner
|
||||
│ ├─ conversation.composer
|
||||
│ │ └─ conversation.approval.detail
|
||||
│ ├─ conversation.composer.bar
|
||||
@@ -158,8 +159,11 @@ root
|
||||
│ ├─ conversation.hero.workspace
|
||||
│ │ └─ conversation.hero.workspace.directoryFlow
|
||||
│ └─ conversation.hero.agentPreset
|
||||
├─ details
|
||||
│ └─ conversation.details.tool
|
||||
├─ rightbar
|
||||
│ ├─ sidebar.right.pane.tab
|
||||
│ │ └─ sidebar.right.tab.guide
|
||||
│ ├─ sidebar.right.pane.tab.title
|
||||
│ └─ sidebar.right.tab.menu.item
|
||||
└─ shell.overlay
|
||||
```
|
||||
|
||||
|
||||
@@ -84,9 +84,11 @@
|
||||
"@deepseek-ai/dsh-client-file-upload": "workspace:^",
|
||||
"@deepseek-ai/dsh-commands": "workspace:^",
|
||||
"@deepseek-ai/dsh-file-reference": "workspace:^",
|
||||
"@deepseek-ai/dsh-fs": "workspace:^",
|
||||
"@deepseek-ai/dsh-jobs": "workspace:^",
|
||||
"@deepseek-ai/dsh-llm": "workspace:^",
|
||||
"@deepseek-ai/dsh-native-command": "workspace:^",
|
||||
"@deepseek-ai/dsh-sandbox-policy": "workspace:^",
|
||||
"@deepseek-ai/dsh-scope": "workspace:^",
|
||||
"@deepseek-ai/dsh-session": "workspace:^",
|
||||
"@deepseek-ai/dsh-session-persistence": "workspace:^",
|
||||
@@ -128,10 +130,12 @@
|
||||
"@deepseek-ai/dsh-commands": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-store": "workspace:^",
|
||||
"@deepseek-ai/dsh-file-reference": "workspace:^",
|
||||
"@deepseek-ai/dsh-fs": "workspace:^",
|
||||
"@deepseek-ai/dsh-jobs": "workspace:^",
|
||||
"@deepseek-ai/dsh-llm": "workspace:^",
|
||||
"@deepseek-ai/dsh-native-command": "workspace:^",
|
||||
"@deepseek-ai/dsh-permission-presets": "workspace:^",
|
||||
"@deepseek-ai/dsh-sandbox-policy": "workspace:^",
|
||||
"@deepseek-ai/dsh-scope": "workspace:^",
|
||||
"@deepseek-ai/dsh-session": "workspace:^",
|
||||
"@deepseek-ai/dsh-session-persistence": "workspace:^",
|
||||
|
||||
@@ -28,6 +28,8 @@
|
||||
{ "path": "../../core/scope" },
|
||||
{ "path": "../../core/session" },
|
||||
{ "path": "../../context/file-reference" },
|
||||
{ "path": "../../fs/fs" },
|
||||
{ "path": "../../sandbox/sandbox-policy" },
|
||||
{ "path": "../../attachment/attachment" },
|
||||
{ "path": "../../client/file-upload/tsconfig.host.json" },
|
||||
{ "path": "../../interaction/permission-presets" },
|
||||
|
||||
@@ -105,6 +105,11 @@
|
||||
- id: session-controller
|
||||
name: '@deepseek-ai/dsh-api-session-controller'
|
||||
|
||||
# Workspace file service: bounded read, directory listing, and the
|
||||
# agent-write change feed inside the session workspace root.
|
||||
- id: workspace-files
|
||||
name: '@deepseek-ai/dsh-api-workspace-files'
|
||||
|
||||
# Configuration-surface reads and writes over Typert Remote. Each method
|
||||
# reports an actionable error when its settings-domain provider is absent.
|
||||
- id: settings-controller
|
||||
@@ -208,9 +213,27 @@
|
||||
- id: ui-session
|
||||
name: '@deepseek-ai/dsh-client-ui-session'
|
||||
|
||||
# Unified resource model: protocol providers behind the useResource hook.
|
||||
- id: resources
|
||||
name: '@deepseek-ai/dsh-client-resources'
|
||||
|
||||
- id: ui-sidebar
|
||||
name: '@deepseek-ai/dsh-client-ui-sidebar'
|
||||
|
||||
# The right Sidebar: one docking surface per session over ui-dockkit.
|
||||
- id: ui-sidebar-right
|
||||
name: '@deepseek-ai/dsh-client-ui-sidebar-right'
|
||||
|
||||
|
||||
# The right Sidebar's first outside tab type: workspace text files, read
|
||||
# through the bounded workspaceFiles endpoint.
|
||||
- id: ui-sidebar-textpreview
|
||||
name: '@deepseek-ai/dsh-client-ui-sidebar-textpreview'
|
||||
|
||||
# The right Sidebar's workspace file tree tab type.
|
||||
- id: ui-sidebar-files
|
||||
name: '@deepseek-ai/dsh-client-ui-sidebar-files'
|
||||
|
||||
- id: ui-settings
|
||||
name: '@deepseek-ai/dsh-client-ui-settings'
|
||||
|
||||
|
||||
@@ -40,91 +40,96 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@deepseek-ai/dsh-agent-presets": "workspace:^",
|
||||
"@deepseek-ai/dsh-tool-subagent": "workspace:^",
|
||||
"@deepseek-ai/dsh-api-remotes": "workspace:^",
|
||||
"@deepseek-ai/dsh-api-session-controller": "workspace:^",
|
||||
"@deepseek-ai/dsh-api-settings-controller": "workspace:^",
|
||||
"@deepseek-ai/dsh-api-workspace-controller": "workspace:^",
|
||||
"@deepseek-ai/dsh-api-workspace-files": "workspace:^",
|
||||
"@deepseek-ai/dsh-app-boot": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-connection": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-file-upload": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-hmr": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-locale": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-modules": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-renderer": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-resources": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-agent-preset": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-attachment": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-approval": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-attachment": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-brand-official": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-commands": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-chat": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-commands": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-conversation": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-cordis": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-deliverables": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-directory-picker-browse": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-open-in-app": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-directory-picker-native": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-message-feedback": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-goal": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-input-trigger": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-jobs": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-layout": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-message-feedback": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-model-selection": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-settings-models": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-settings-plugin-inventory": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-open-in-app": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-permission-presets": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-plan": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-reference": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-renderer": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-schedule": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-session": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-settings-plugins": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-user-questions": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-settings": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-settings-general": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-settings-models": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-settings-plugin-inventory": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-settings-plugins": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-sidebar": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-sidebar-files": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-sidebar-right": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-sidebar-textpreview": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-skill": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-input-trigger": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-reference": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-subagent": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-jobs": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-theme": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-tool": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-workflow-run": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-trajectory": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-user-questions": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-workflow-run": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-workspace": "workspace:^",
|
||||
"@deepseek-ai/dsh-cmdline": "workspace:^",
|
||||
"@deepseek-ai/dsh-code-runtime-worker-thread": "workspace:^",
|
||||
"@deepseek-ai/dsh-cordis-client-runner": "workspace:^",
|
||||
"@deepseek-ai/dsh-cordis-host-runner": "workspace:^",
|
||||
"@deepseek-ai/dsh-web-frontend": "workspace:^",
|
||||
"@deepseek-ai/dsh-host-frontend-static": "workspace:^",
|
||||
"@deepseek-ai/dsh-file-reference": "workspace:^",
|
||||
"@deepseek-ai/dsh-file-reference-local": "workspace:^",
|
||||
"@deepseek-ai/dsh-host-directory-picker-auto": "workspace:^",
|
||||
"@deepseek-ai/dsh-host-directory-picker-browse": "workspace:^",
|
||||
"@deepseek-ai/dsh-host-directory-picker-native": "workspace:^",
|
||||
"@deepseek-ai/dsh-host-frontend-static": "workspace:^",
|
||||
"@deepseek-ai/dsh-host-open-in-app": "workspace:^",
|
||||
"@deepseek-ai/dsh-host-plugin-inventory": "workspace:^",
|
||||
"@deepseek-ai/dsh-host-webserver": "workspace:^",
|
||||
"@deepseek-ai/dsh-file-reference": "workspace:^",
|
||||
"@deepseek-ai/dsh-file-reference-local": "workspace:^",
|
||||
"@deepseek-ai/dsh-launch-environment": "workspace:^",
|
||||
"@deepseek-ai/dsh-message-feedback": "workspace:^",
|
||||
"@deepseek-ai/dsh-session-reference": "workspace:^",
|
||||
"@deepseek-ai/dsh-session-log-export": "workspace:^",
|
||||
"@deepseek-ai/dsh-session-reference": "workspace:^",
|
||||
"@deepseek-ai/dsh-session-stats": "workspace:^",
|
||||
"@deepseek-ai/dsh-session-turn-outline": "workspace:^",
|
||||
"@deepseek-ai/dsh-api-session-controller": "workspace:^",
|
||||
"@deepseek-ai/dsh-api-settings-controller": "workspace:^",
|
||||
"@deepseek-ai/dsh-api-workspace-controller": "workspace:^",
|
||||
"@deepseek-ai/dsh-subprocess": "workspace:^",
|
||||
"@deepseek-ai/dsh-tool-subagent": "workspace:^",
|
||||
"@deepseek-ai/dsh-web-frontend": "workspace:^",
|
||||
"@deepseek-ai/dsh-workspace": "workspace:^",
|
||||
"@deepseek-ai/schemastery": "workspace:^",
|
||||
"commander": "^15.0.0",
|
||||
"open": "^11.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@deepseek-ai/cordis": "workspace:^",
|
||||
"@deepseek-ai/cordis-plugin-loader": "workspace:^",
|
||||
"@deepseek-ai/dsh-shell-env": "workspace:^",
|
||||
"@deepseek-ai/dsh-system-prompt": "workspace:^",
|
||||
"@deepseek-ai/cordis": "workspace:^"
|
||||
"@deepseek-ai/dsh-system-prompt": "workspace:^"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@deepseek-ai/cordis": "workspace:^",
|
||||
"@deepseek-ai/cordis-plugin-loader": "workspace:^",
|
||||
"@deepseek-ai/dsh-shell-env": "workspace:^",
|
||||
"@deepseek-ai/dsh-system-prompt": "workspace:^",
|
||||
"@deepseek-ai/cordis": "workspace:^"
|
||||
"@deepseek-ai/dsh-system-prompt": "workspace:^"
|
||||
}
|
||||
}
|
||||
@@ -42,6 +42,8 @@ The kernel packages boot and serve the page; the UI feature packages present it.
|
||||
| [`ui-attachment/`](ui-attachment/README.md) | Registers composer and message-image attachment presentation | — |
|
||||
| [`ui-layout/`](ui-layout/README.md) | Arranges the main application regions | — |
|
||||
| [`ui-sidebar/`](ui-sidebar/README.md) | Presents workspace and session navigation | — |
|
||||
| [`resources/`](resources/README.md) | Unified resource model: protocol providers behind the `useResource` session standard hook | `ctx.resources` |
|
||||
| [`ui-sidebar-files/`](ui-sidebar-files/README.md) | Right-Sidebar workspace file tree tab type | — |
|
||||
| [`ui-brand-official/`](ui-brand-official/README.md) | Fills the generic browser-brand slots with the official name and marks | — |
|
||||
| [`ui-workspace/`](ui-workspace/README.md) | Provides workspace selection and creation surfaces | — |
|
||||
| [`ui-conversation/`](ui-conversation/README.md) | Presents the active conversation and its input surface | — |
|
||||
|
||||
@@ -42,6 +42,8 @@ kind: "package-group"
|
||||
| [`ui-attachment/`](ui-attachment/README.zh.md) | 注册输入框与消息图片的附件呈现 | — |
|
||||
| [`ui-layout/`](ui-layout/README.zh.md) | 排列应用的主要区域 | — |
|
||||
| [`ui-sidebar/`](ui-sidebar/README.zh.md) | 展示工作区与会话导航 | — |
|
||||
| [`resources/`](resources/README.zh.md) | 统一资源模型:`useResource` 会话标准 hook 背后的协议提供者 | `ctx.resources` |
|
||||
| [`ui-sidebar-files/`](ui-sidebar-files/README.zh.md) | 右侧 Sidebar 的工作区文件树 tab 类型 | — |
|
||||
| [`ui-brand-official/`](ui-brand-official/README.zh.md) | 用官方名称与标记填充通用浏览器品牌 slot | — |
|
||||
| [`ui-workspace/`](ui-workspace/README.zh.md) | 提供工作区选择与创建界面 | — |
|
||||
| [`ui-conversation/`](ui-conversation/README.zh.md) | 展示当前对话及其输入界面 | — |
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
"@deepseek-ai/cordis-plugin-loader": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-modules": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-store": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-dockkit": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-renderer": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-primitives": "workspace:^",
|
||||
"@deepseek-ai/dsh-client-ui-slots": "workspace:^",
|
||||
|
||||
@@ -10,6 +10,7 @@ export const PLATFORM_MODULES = [
|
||||
'@deepseek-ai/dsh-client-store',
|
||||
'@deepseek-ai/dsh-client-ui-slots',
|
||||
'@deepseek-ai/dsh-client-ui-primitives',
|
||||
'@deepseek-ai/dsh-client-ui-dockkit',
|
||||
] as const
|
||||
|
||||
/** Client-bundle specifiers whose factories the parser preloads before the shell starts. */
|
||||
|
||||
@@ -14,6 +14,7 @@ import * as Cordis from '@deepseek-ai/cordis'
|
||||
import * as ClientStore from '@deepseek-ai/dsh-client-store'
|
||||
import * as UiSlots from '@deepseek-ai/dsh-client-ui-slots'
|
||||
import * as UiPrimitives from '@deepseek-ai/dsh-client-ui-primitives'
|
||||
import * as UiDockkit from '@deepseek-ai/dsh-client-ui-dockkit'
|
||||
import type { PlatformModule } from './platform.ts'
|
||||
|
||||
/**
|
||||
@@ -33,5 +34,6 @@ export function getStaticModules(): Record<string, unknown> {
|
||||
'@deepseek-ai/dsh-client-store': ClientStore,
|
||||
'@deepseek-ai/dsh-client-ui-slots': UiSlots,
|
||||
'@deepseek-ai/dsh-client-ui-primitives': UiPrimitives,
|
||||
'@deepseek-ai/dsh-client-ui-dockkit': UiDockkit,
|
||||
} satisfies Record<PlatformModule, unknown>
|
||||
}
|
||||
@@ -26,6 +26,9 @@
|
||||
{
|
||||
"path": "../ui-primitives"
|
||||
},
|
||||
{
|
||||
"path": "../ui-dockkit"
|
||||
},
|
||||
{
|
||||
"path": "../ui-renderer"
|
||||
}
|
||||
|
||||
@@ -153,6 +153,7 @@ const packageFileExtras: Readonly<Record<string, readonly string[]>> = {
|
||||
// The glob covers whichever sheets a package emits; sourcemaps stay
|
||||
// unpublished, as everywhere else in the repository.
|
||||
'@deepseek-ai/dsh-client-ui-primitives': ['lib/**/*.css'],
|
||||
'@deepseek-ai/dsh-client-ui-dockkit': ['lib/**/*.css'],
|
||||
'@deepseek-ai/dsh-client-web': ['lib/**/*.css'],
|
||||
'@deepseek-ai/dsh-client-ui-theme': ['lib/styles'],
|
||||
// The CPython side ships as source .py files, published as-is rather than built.
|
||||
|
||||
@@ -123,6 +123,7 @@ export const SERVICE_PAGE: Record<string, string> = {
|
||||
webhookRuntime: 'webhook.md',
|
||||
workspaceRegistry: 'workspace.md',
|
||||
workspaceController: 'workspace.md',
|
||||
workspaceFiles: 'workspace.md',
|
||||
directoryPickerController: 'workspace.md',
|
||||
}
|
||||
|
||||
@@ -175,6 +176,9 @@ export const SERVICE_WALK_EXEMPTIONS: Record<string, string> = {
|
||||
slots: 'client-side interface-typed browser service — packages/client/ui-renderer/README.md owns the API',
|
||||
theme: 'client-side interface-typed browser service — packages/client/ui-theme/README.md owns the API',
|
||||
workspaces: 'client-side interface-typed browser service — packages/api/workspace-controller/README.md owns the API',
|
||||
resources: 'client-side resource model (protocol providers, pins, live sources) — packages/client/resources/README.md owns the API',
|
||||
sidebarRight: 'client-side right-Sidebar navigation face — packages/client/ui-sidebar-right/README.md owns the API',
|
||||
sidebarRightTabs: 'client-side right-Sidebar tab-type registry — packages/client/ui-sidebar-right/README.md owns the API',
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -755,6 +759,14 @@ export const TYPE_LINK_EXEMPTIONS: Readonly<Record<string, string>> = {
|
||||
WorkflowAgentEndInfo: 'event-local snapshot is owned by packages/workflow/workflow/src/index.ts',
|
||||
WorkflowAgentInfo: 'event-local snapshot is owned by packages/workflow/workflow/src/index.ts',
|
||||
WorkflowResultInfo: 'event-local snapshot is owned by packages/workflow/workflow/src/index.ts',
|
||||
WorkspaceByteRange: 'Host workspace file endpoint contract is owned by packages/api/workspace-files/README.md',
|
||||
WorkspaceDirectoryListing: 'Host workspace file endpoint contract is owned by packages/api/workspace-files/README.md',
|
||||
WorkspaceFileBytes: 'Host workspace file endpoint contract is owned by packages/api/workspace-files/README.md',
|
||||
WorkspaceFileChange: 'Host workspace file endpoint contract is owned by packages/api/workspace-files/README.md',
|
||||
WorkspaceFileWatchFrame: 'Host workspace file endpoint contract is owned by packages/api/workspace-files/README.md',
|
||||
WorkspaceFileRange: 'Host workspace file endpoint contract is owned by packages/api/workspace-files/README.md',
|
||||
WorkspaceFileStat: 'Host workspace file endpoint contract is owned by packages/api/workspace-files/README.md',
|
||||
WorkspaceFileText: 'Host workspace file endpoint contract is owned by packages/api/workspace-files/README.md',
|
||||
}
|
||||
|
||||
/** Repository data policy consumed by the Cordis catalog projector. */
|
||||
|
||||
@@ -10,7 +10,7 @@ const root = resolve(import.meta.dirname, '..')
|
||||
const CLIENT_OUT = 'packages/extensions/cordis-client-runner/src/client/api-catalog.ts'
|
||||
|
||||
const CLIENT_SERVICES: Readonly<Record<string, readonly string[]>> = {
|
||||
layout: ['toggleSidebar', 'openDetails', 'closeDetails'],
|
||||
layout: ['toggleSidebar', 'openRightbar', 'closeRightbar'],
|
||||
locale: ['getLocale', 'getSnapshot', 'subscribe', 'setLocale', 'addLanguage', 'register', 'bind'],
|
||||
sessions: ['open', 'openSubagent', 'setSubagentCatalogOpen', 'refreshSubagents', 'search', 'fork', 'scope', 'binding'],
|
||||
slots: ['register', 'inject'],
|
||||
|
||||
@@ -192,6 +192,13 @@ const SERVICE_ROLES: ServiceRole[] = [
|
||||
mode: 'core',
|
||||
note: 'Projects the user-settings seam onto the generated Remote namespace: the read is always redacted and every refusal is classified here, not on the seam Definition.',
|
||||
},
|
||||
{
|
||||
key: 'workspaceFiles',
|
||||
pkg: 'api-workspace-files',
|
||||
title: 'Host workspace file Remote service',
|
||||
mode: 'core',
|
||||
note: 'Serves stat, paged text, byte windows, directory listings, and the change feed for files inside a Session\'s workspace root, confined by lstat, containment, and a stat re-check.',
|
||||
},
|
||||
{
|
||||
key: 'workspaceController',
|
||||
pkg: 'api-workspace-controller',
|
||||
|
||||
@@ -84,6 +84,8 @@ const SENTENCE_MODEL_EXPERIENCE: Readonly<Record<string, SentenceContract>> = {
|
||||
'packages/experimental/agent-team-web-profile': { kind: 'indirect', reason: 'The private Web layer delegates model composition to the Host-side Agent Teams profile.' },
|
||||
'packages/experimental/client-ui-agent-team': { kind: 'none', reason: 'The browser projection and task controls register no model-facing input.' },
|
||||
'packages/client/ui-layout': { kind: 'none', reason: 'Browser-side UI plugin layer; registers nothing model-facing.' },
|
||||
'packages/client/ui-dockkit': { kind: 'none', reason: 'Browser-side docking layout engine and components; registers nothing model-facing.' },
|
||||
'packages/client/ui-sidebar-right': { kind: 'none', reason: 'Browser-side UI plugin layer; registers nothing model-facing.' },
|
||||
'packages/client/ui-sidebar': { kind: 'none', reason: 'Browser-side UI plugin layer; registers nothing model-facing.' },
|
||||
'packages/client/ui-brand-official': { kind: 'none', reason: 'Browser-side presentation occupants; registers nothing model-facing.' },
|
||||
'packages/client/ui-conversation': { kind: 'none', reason: 'Browser-side UI plugin layer; registers nothing model-facing.' },
|
||||
@@ -109,6 +111,9 @@ const SENTENCE_MODEL_EXPERIENCE: Readonly<Record<string, SentenceContract>> = {
|
||||
'packages/client/ui-directory-picker-browse': { kind: 'none', reason: 'Browser-side directory-browsing surface; registers nothing model-facing.' },
|
||||
'packages/client/ui-directory-picker-native': { kind: 'none', reason: 'Browser-side surface driving the host OS chooser; registers nothing model-facing.' },
|
||||
'packages/client/ui-theme': { kind: 'none', reason: 'Browser-side UI plugin layer; registers nothing model-facing.' },
|
||||
'packages/client/ui-sidebar-textpreview': { kind: 'none', reason: 'Browser-only text viewer; registers no tool, prompt section, or session event, and what the user reads never enters a model request.' },
|
||||
'packages/client/ui-sidebar-files': { kind: 'none', reason: 'Browser-only workspace file tree; registers no tool, prompt section, or session event.' },
|
||||
'packages/client/resources': { kind: 'none', reason: 'Browser-side resource model (providers, pinning, useResource); registers nothing model-facing.' },
|
||||
'packages/client/ui-settings': { kind: 'none', reason: 'Browser-side UI plugin layer; registers nothing model-facing.' },
|
||||
'packages/client/ui-settings-general': { kind: 'none', reason: 'Browser-side UI plugin layer; registers nothing model-facing.' },
|
||||
'packages/client/ui-settings-models': { kind: 'none', reason: 'Browser-side UI plugin layer; registers nothing model-facing.' },
|
||||
@@ -173,6 +178,7 @@ const SENTENCE_MODEL_EXPERIENCE: Readonly<Record<string, SentenceContract>> = {
|
||||
'packages/api/session-controller': { kind: 'none', reason: 'Session API and transport owner; invoked Agent commands own any model-visible effect.' },
|
||||
'packages/api/settings-controller': { kind: 'none', reason: 'Configuration-surface API owner; it registers no prompt, tool, or session event.' },
|
||||
'packages/api/workspace-controller': { kind: 'none', reason: 'Workspace API and state projection owner; it registers no prompt, tool, or session event.' },
|
||||
'packages/api/workspace-files': { kind: 'none', reason: 'Workspace file read API and its Client resource provider; it registers no prompt, tool, or session event.' },
|
||||
'packages/typert/protocol': { kind: 'none', reason: 'Compiler-independent Remote protocol declarations; registers nothing model-facing.' },
|
||||
'packages/typert/generator': { kind: 'none', reason: 'The build-time generator runs outside any agent runtime and touches no model request.' },
|
||||
'packages/jobs/jobs': { kind: 'indirect', reason: 'Producer and controller plugins own all model rendering over the job registry.' },
|
||||
|
||||
@@ -154,6 +154,18 @@
|
||||
"@deepseek-ai/dsh-client-ui-slots": ["./packages/client/ui-slots/src"],
|
||||
"@deepseek-ai/dsh-client-ui-attachment": ["./packages/client/ui-attachment/src"],
|
||||
"@deepseek-ai/dsh-client-ui-primitives": ["./packages/client/ui-primitives/src"],
|
||||
"@deepseek-ai/dsh-client-ui-dockkit": ["./packages/client/ui-dockkit/src"],
|
||||
"@deepseek-ai/dsh-client-ui-sidebar-right": ["./packages/client/ui-sidebar-right/src"],
|
||||
"@deepseek-ai/dsh-client-ui-sidebar-right/client": ["./packages/client/ui-sidebar-right/src/client"],
|
||||
"@deepseek-ai/dsh-client-ui-sidebar-textpreview": ["./packages/client/ui-sidebar-textpreview/src"],
|
||||
"@deepseek-ai/dsh-client-ui-sidebar-textpreview/client": ["./packages/client/ui-sidebar-textpreview/src/client"],
|
||||
"@deepseek-ai/dsh-api-workspace-files": ["./packages/api/workspace-files/src"],
|
||||
"@deepseek-ai/dsh-api-workspace-files/types": ["./packages/api/workspace-files/src/types.ts"],
|
||||
"@deepseek-ai/dsh-api-workspace-files/client": ["./packages/api/workspace-files/src/client/index.ts"],
|
||||
"@deepseek-ai/dsh-client-resources": ["./packages/client/resources/src"],
|
||||
"@deepseek-ai/dsh-client-resources/client": ["./packages/client/resources/src/client"],
|
||||
"@deepseek-ai/dsh-client-ui-sidebar-files": ["./packages/client/ui-sidebar-files/src"],
|
||||
"@deepseek-ai/dsh-client-ui-sidebar-files/client": ["./packages/client/ui-sidebar-files/src/client"],
|
||||
"@deepseek-ai/dsh-client-store": ["./packages/client/store/src/index.ts"],
|
||||
"@deepseek-ai/dsh-client-ui-renderer": ["./packages/client/ui-renderer/src"],
|
||||
"@deepseek-ai/dsh-client-ui-renderer/client": ["./packages/client/ui-renderer/src/client"],
|
||||
|
||||
@@ -84,6 +84,10 @@
|
||||
{ "path": "./packages/client/ui-reference" },
|
||||
{ "path": "./packages/client/ui-subagent" },
|
||||
{ "path": "./packages/experimental/client-ui-agent-team" },
|
||||
{ "path": "./packages/client/ui-dockkit" },
|
||||
{ "path": "./packages/client/ui-sidebar-right" },
|
||||
{ "path": "./packages/client/ui-sidebar-textpreview" },
|
||||
{ "path": "./packages/client/ui-sidebar-files" },
|
||||
{ "path": "./packages/client/ui-jobs" },
|
||||
{ "path": "./packages/client/ui-schedule" },
|
||||
{ "path": "./packages/client/ui-directory-picker-browse" },
|
||||
@@ -107,6 +111,8 @@
|
||||
{ "path": "./packages/client/locale" },
|
||||
{ "path": "./packages/client/ui-renderer" },
|
||||
{ "path": "./packages/client/ui-session" },
|
||||
{ "path": "./packages/client/resources" },
|
||||
{ "path": "./packages/api/workspace-files/tsconfig.client.json" },
|
||||
{ "path": "./packages/client/web" },
|
||||
{ "path": "./packages/context/file-reference" },
|
||||
{ "path": "./apps/web" }
|
||||
|
||||
@@ -89,6 +89,7 @@
|
||||
"apps/web/tests/turn-tail-actions.e2e.ts",
|
||||
"apps/web/tests/goal-multi-turn-actions.e2e.ts",
|
||||
"apps/web/tests/agent-team-panel.e2e.ts",
|
||||
"apps/web/tests/sidebar-right.e2e.ts",
|
||||
"apps/web/tests/chat-scroll-fixture.ts",
|
||||
"apps/web/tests/chat-scroll-contract.e2e.ts",
|
||||
"apps/web/tests/chat-long-interactions.e2e.ts",
|
||||
@@ -162,6 +163,7 @@
|
||||
{ "path": "./packages/api/gateway/tsconfig.host.json" },
|
||||
{ "path": "./packages/api/remotes/tsconfig.host.json" },
|
||||
{ "path": "./packages/api/session-controller/tsconfig.host.json" },
|
||||
{ "path": "./packages/api/workspace-files/tsconfig.host.json" },
|
||||
{ "path": "./packages/api/settings-controller" },
|
||||
{ "path": "./packages/api/workspace-controller/tsconfig.host.json" },
|
||||
{ "path": "./packages/typert/loader" },
|
||||
|
||||
@@ -347,6 +347,8 @@ const subsystemGroups = [
|
||||
['web-client.md', 'Web Client 架构', 'Web Client architecture'],
|
||||
['client-modules.md', '客户端模块', 'Client modules'],
|
||||
['slots.md', '客户端 Slots', 'Client slots'],
|
||||
['client-resources.md', '客户端资源', 'Client resources'],
|
||||
['sidebar-right.md', '右侧 Sidebar', 'Right Sidebar'],
|
||||
['conversation.md', 'Conversation 组装', 'Conversation assembly'],
|
||||
['typert.md', 'Typert', 'Typert'],
|
||||
['storage.md', '存储', 'Storage'],
|
||||
|
||||
Reference in new issue
Block a user