@deepseek-ai/dsh-experimental-liveshare 0.2.2-alpha.2 → 0.2.2-alpha.3

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/lib/client.js CHANGED
@@ -6860,45 +6860,13 @@ window.__ModuleLoader__.load({
6860
6860
  //#endregion
6861
6861
  //#region lib/types/client/viewer-session-row.js
6862
6862
  var viewer_session_row_exports = /* @__PURE__ */ __exportAll({
6863
- ViewerForkMenuItem: () => ViewerForkMenuItem,
6864
6863
  apply: () => apply$2,
6865
6864
  inject: () => inject$2,
6866
6865
  name: () => name$1
6867
6866
  });
6868
6867
  const name$1 = "liveshare-viewer-session-row";
6869
- /** The slot ledger, the locale seat, and the navigation service. */
6870
- const inject$2 = [
6871
- "slots",
6872
- "locale",
6873
- "uiWorkspace"
6874
- ];
6875
- /**
6876
- * Cell shadowing rank of the viewer's branch row. The shipped row registers at the default 0, and the
6877
- * lowest rank renders, so the viewer's row takes the cell the shipped row would have rendered while
6878
- * keeping the shipped order.
6879
- */
6880
- const VIEWER_PRIORITY = -100;
6881
- /**
6882
- * The branch row: present only while the access snapshot includes `session/fork` for the row's Session.
6883
- *
6884
- * The label is this package's own copy, and the click asks the Workspace navigation service for the
6885
- * reader's branch: the child is created without the title write a reader does not hold, and opens
6886
- * once the Host lists it.
6887
- * @param props - owner share, menu open state, access Hook, locale seat, and the viewer share.
6888
- * @returns the menu row, or null while the page may not branch that Session.
6889
- */
6890
- function ViewerForkMenuItem({ sessionId, useMenuOpenState, useSessionAccess, forkSession, t }) {
6891
- const [, setMenuOpen] = useMenuOpenState();
6892
- if (!useSessionAccess(sessionId, "session/fork")) return null;
6893
- return (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.MenuItemButton, {
6894
- icon: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconBranchOutlineRegular, {}),
6895
- onSelect: () => {
6896
- setMenuOpen(false);
6897
- forkSession(sessionId);
6898
- },
6899
- children: t("viewer.row.fork")
6900
- });
6901
- }
6868
+ /** The slot ledger and locale seat used by branch lineage markers. */
6869
+ const inject$2 = ["slots", "locale"];
6902
6870
  /** Liveshare interprets its own lineage projection without retaining every listed Session. */
6903
6871
  function ViewerForkMarker({ sessionId, useSessions, t }) {
6904
6872
  const lineage = useSessions((list) => {
@@ -6914,36 +6882,15 @@ window.__ModuleLoader__.load({
6914
6882
  });
6915
6883
  }
6916
6884
  /**
6917
- * Read the stable code one refused branch carries.
6918
- *
6919
- * A share refusal decided by the access check arrives as {@link ACCESS_DENIED} with the share's own
6920
- * code as its reason, which is the code the reader's copy names.
6921
- * @param error - Rejection the fork reported.
6922
- * @returns The Host's code, or undefined when the rejection named none.
6923
- */
6924
- /**
6925
- * Register the viewer's branch mark and its branch row over the shipped one.
6885
+ * Register the viewer's branch lineage marker.
6926
6886
  * @param ctx - browser context of the viewer's module table.
6927
6887
  */
6928
6888
  function apply$2(ctx) {
6929
- ctx.slots.inject("sidebar.session.row.leading", () => ctx.slots.register({
6889
+ ctx.effect(() => ctx.slots.inject("sidebar.session.row.leading", () => ctx.slots.register({
6930
6890
  name: "sidebar.session.row.leading",
6931
6891
  id: "liveshare.fork",
6932
6892
  locale: NS
6933
- }, ViewerForkMarker));
6934
- const uiWorkspace = ctx.uiWorkspace;
6935
- const forkSession = (sessionId) => {
6936
- uiWorkspace.forkSession(sessionId).catch((error) => {});
6937
- };
6938
- const viewerInjected = () => ({ forkSession });
6939
- ctx.slots.inject("sidebar.workspaces.session.menu.item", () => ctx.slots.register({
6940
- name: "sidebar.workspaces.session.menu.item",
6941
- id: "fork",
6942
- order: 300,
6943
- priority: VIEWER_PRIORITY,
6944
- locale: NS,
6945
- inject: viewerInjected
6946
- }, ViewerForkMenuItem));
6893
+ }, ViewerForkMarker)), "liveshare: branch lineage marker");
6947
6894
  }
6948
6895
  //#endregion
6949
6896
  //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/experimental/liveshare/src/client/viewer-share-path.module.css.mjs
package/lib/index.js CHANGED
@@ -6328,11 +6328,14 @@ const VIEWER_ENDPOINT_CLASSES = {
6328
6328
  "agentPresets/read": "owner-only",
6329
6329
  "agentPresets/select": "owner-only",
6330
6330
  "schedule/catalog": "owner-only",
6331
- "schedule/delete": "owner-only",
6331
+ "schedule/create": "owner-only",
6332
+ "schedule/deliveryLimits": "owner-only",
6332
6333
  "schedule/deleteInactive": "owner-only",
6334
+ "schedule/edit": "owner-only",
6333
6335
  "schedule/history": "owner-only",
6334
6336
  "schedule/list": "owner-only",
6335
- "schedule/update": "owner-only",
6337
+ "schedule/run": "owner-only",
6338
+ "schedule/view": "owner-only",
6336
6339
  "subagents/interruptByParent": "owner-only",
6337
6340
  "subagents/prompt": "owner-only",
6338
6341
  "liveshareShares/audit": "owner-only",
@@ -167,11 +167,14 @@ export declare const COMPLETE_VIEWER_ENDPOINT_CLASSES: {
167
167
  readonly 'agentPresets/read': "owner-only";
168
168
  readonly 'agentPresets/select': "owner-only";
169
169
  readonly 'schedule/catalog': "owner-only";
170
- readonly 'schedule/delete': "owner-only";
170
+ readonly 'schedule/create': "owner-only";
171
+ readonly 'schedule/deliveryLimits': "owner-only";
171
172
  readonly 'schedule/deleteInactive': "owner-only";
173
+ readonly 'schedule/edit': "owner-only";
172
174
  readonly 'schedule/history': "owner-only";
173
175
  readonly 'schedule/list': "owner-only";
174
- readonly 'schedule/update': "owner-only";
176
+ readonly 'schedule/run': "owner-only";
177
+ readonly 'schedule/view': "owner-only";
175
178
  readonly 'subagents/interruptByParent': "owner-only";
176
179
  readonly 'subagents/prompt': "owner-only";
177
180
  readonly 'liveshareShares/audit': "owner-only";
@@ -1,48 +1,20 @@
1
1
  /**
2
- * The viewer page's own Session row verbs.
2
+ * The viewer page's branch lineage markers.
3
3
  *
4
- * The viewer page renders the normal sidebar, so it carries ui-workspace's shipped Session row
5
- * entries, and each of them hides itself while the page's access snapshot excludes its endpoint. This
6
- * module registers the viewer's own branch row over the shipped one by id — the one verb a share can
7
- * grant, stated in the reader's words when the Host refuses it — and the row's branch mark.
4
+ * The viewer renders the normal sidebar. Its Session menu actions belong to
5
+ * ui-workspace and follow the page's endpoint access snapshot. Branch creation
6
+ * uses the Workspace navigation service's reader path, without a title write
7
+ * the reader does not hold, and opens the child once the Host lists it.
8
8
  *
9
9
  * The Liveshare client face mounts this module only on a viewer page.
10
- *
11
10
  * @module @deepseek-ai/dsh-experimental-liveshare/src/client/viewer-session-row
12
11
  */
13
12
  import type { Context as ClientContext } from '@deepseek-ai/cordis';
14
- import type { InjectFace, PropsLocale, PropsRuntime } from '@deepseek-ai/dsh-client-ui-slots';
15
- import { SessionId } from '@deepseek-ai/dsh-session/types';
16
13
  export declare const name = "liveshare-viewer-session-row";
17
- /** The slot ledger, the locale seat, and the navigation service. */
14
+ /** The slot ledger and locale seat used by branch lineage markers. */
18
15
  export declare const inject: readonly string[];
19
- /** The viewer share the branch row receives. */
20
- export interface ViewerSessionRowInjected {
21
- /** Branch the row's Session the way this page's reader path does. */
22
- forkSession: (sessionId: SessionId) => void;
23
- }
24
- /** Props of the viewer's branch row: the row share, the menu hook, the locale seat, and the viewer share. */
25
- export type ViewerForkMenuItemProps = PropsRuntime<'sidebar.workspaces.session.menu.item'> & PropsLocale<'liveshare'> & InjectFace<ViewerSessionRowInjected>;
26
- /**
27
- * The branch row: present only while the access snapshot includes `session/fork` for the row's Session.
28
- *
29
- * The label is this package's own copy, and the click asks the Workspace navigation service for the
30
- * reader's branch: the child is created without the title write a reader does not hold, and opens
31
- * once the Host lists it.
32
- * @param props - owner share, menu open state, access Hook, locale seat, and the viewer share.
33
- * @returns the menu row, or null while the page may not branch that Session.
34
- */
35
- export declare function ViewerForkMenuItem({ sessionId, useMenuOpenState, useSessionAccess, forkSession, t, }: ViewerForkMenuItemProps): import("react").JSX.Element | null;
36
- /**
37
- * Read the stable code one refused branch carries.
38
- *
39
- * A share refusal decided by the access check arrives as {@link ACCESS_DENIED} with the share's own
40
- * code as its reason, which is the code the reader's copy names.
41
- * @param error - Rejection the fork reported.
42
- * @returns The Host's code, or undefined when the rejection named none.
43
- */
44
16
  /**
45
- * Register the viewer's branch mark and its branch row over the shipped one.
17
+ * Register the viewer's branch lineage marker.
46
18
  * @param ctx - browser context of the viewer's module table.
47
19
  */
48
20
  export declare function apply(ctx: ClientContext): void;
@@ -185,11 +185,14 @@ export declare const VIEWER_ENDPOINT_CLASSES: {
185
185
  readonly 'agentPresets/read': "owner-only";
186
186
  readonly 'agentPresets/select': "owner-only";
187
187
  readonly 'schedule/catalog': "owner-only";
188
- readonly 'schedule/delete': "owner-only";
188
+ readonly 'schedule/create': "owner-only";
189
+ readonly 'schedule/deliveryLimits': "owner-only";
189
190
  readonly 'schedule/deleteInactive': "owner-only";
191
+ readonly 'schedule/edit': "owner-only";
190
192
  readonly 'schedule/history': "owner-only";
191
193
  readonly 'schedule/list': "owner-only";
192
- readonly 'schedule/update': "owner-only";
194
+ readonly 'schedule/run': "owner-only";
195
+ readonly 'schedule/view': "owner-only";
193
196
  readonly 'subagents/interruptByParent': "owner-only";
194
197
  readonly 'subagents/prompt': "owner-only";
195
198
  readonly 'liveshareShares/audit': "owner-only";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@deepseek-ai/dsh-experimental-liveshare",
3
3
  "description": "Opt-in LiveShare host bundle: share a Session through a separate Relay at the view or bounded-write tier, with forking and attachment uploads as independent switches",
4
- "version": "0.2.2-alpha.2",
4
+ "version": "0.2.2-alpha.3",
5
5
  "icon": "./icon.svg",
6
6
  "repository": {
7
7
  "type": "git",
@@ -58,87 +58,88 @@
58
58
  ],
59
59
  "license": "MIT",
60
60
  "dependencies": {
61
- "@deepseek-ai/dsh-atomic-write": "0.2.2-alpha.2",
62
- "@deepseek-ai/dsh-brand": "0.2.2-alpha.2",
63
- "@deepseek-ai/dsh-experimental-liveshare-protocol": "0.2.2-alpha.2",
64
- "@deepseek-ai/dsh-session": "0.2.2-alpha.2",
65
- "@deepseek-ai/dsh-typert-protocol": "0.2.2-alpha.2",
66
- "@deepseek-ai/dsh-util-values": "0.2.2-alpha.2",
61
+ "@deepseek-ai/dsh-atomic-write": "0.2.2-alpha.3",
62
+ "@deepseek-ai/dsh-brand": "0.2.2-alpha.3",
63
+ "@deepseek-ai/dsh-experimental-liveshare-protocol": "0.2.2-alpha.3",
64
+ "@deepseek-ai/dsh-session": "0.2.2-alpha.3",
65
+ "@deepseek-ai/dsh-typert-protocol": "0.2.2-alpha.3",
66
+ "@deepseek-ai/dsh-util-values": "0.2.2-alpha.3",
67
67
  "ws": "^8.18.3",
68
68
  "zod": "4.4.3"
69
69
  },
70
70
  "peerDependencies": {
71
- "@deepseek-ai/cordis": "~4.0.6-alpha.1",
72
- "@deepseek-ai/dsh-scope": "0.2.2-alpha.2"
71
+ "@deepseek-ai/cordis": "~4.0.6-alpha.2",
72
+ "@deepseek-ai/dsh-scope": "0.2.2-alpha.3"
73
73
  },
74
74
  "devDependencies": {
75
- "@deepseek-ai/cordis": "~4.0.6-alpha.1",
76
- "@deepseek-ai/cordis-plugin-loader": "~1.0.7-alpha.1",
77
- "@deepseek-ai/dsh-agent": "0.2.2-alpha.2",
78
- "@deepseek-ai/dsh-agent-loop-testkit": "0.2.2-alpha.2",
79
- "@deepseek-ai/dsh-api-gateway": "0.2.2-alpha.2",
80
- "@deepseek-ai/dsh-api-remote-access": "0.2.2-alpha.2",
81
- "@deepseek-ai/dsh-api-remotes": "0.2.2-alpha.2",
82
- "@deepseek-ai/dsh-api-session-controller": "0.2.2-alpha.2",
83
- "@deepseek-ai/dsh-api-settings-controller": "0.2.2-alpha.2",
84
- "@deepseek-ai/dsh-api-workspace-controller": "0.2.2-alpha.2",
85
- "@deepseek-ai/dsh-api-workspace-files": "0.2.2-alpha.2",
86
- "@deepseek-ai/dsh-client-connection": "0.2.2-alpha.2",
87
- "@deepseek-ai/dsh-client-file-upload": "0.2.2-alpha.2",
88
- "@deepseek-ai/dsh-client-locale": "0.2.2-alpha.2",
89
- "@deepseek-ai/dsh-client-modules": "0.2.2-alpha.2",
90
- "@deepseek-ai/dsh-client-resources": "0.2.2-alpha.2",
91
- "@deepseek-ai/dsh-client-shortcuts": "0.2.2-alpha.2",
92
- "@deepseek-ai/dsh-client-store": "0.2.2-alpha.2",
93
- "@deepseek-ai/dsh-client-test-runtime": "0.2.2-alpha.2",
94
- "@deepseek-ai/dsh-client-ui-agent-preset": "0.2.2-alpha.2",
95
- "@deepseek-ai/dsh-client-ui-approval": "0.2.2-alpha.2",
96
- "@deepseek-ai/dsh-client-ui-attachment": "0.2.2-alpha.2",
97
- "@deepseek-ai/dsh-client-ui-brand-official": "0.2.2-alpha.2",
98
- "@deepseek-ai/dsh-client-ui-chat": "0.2.2-alpha.2",
99
- "@deepseek-ai/dsh-client-ui-commands": "0.2.2-alpha.2",
100
- "@deepseek-ai/dsh-client-ui-conversation": "0.2.2-alpha.2",
101
- "@deepseek-ai/dsh-client-ui-deliverables": "0.2.2-alpha.2",
102
- "@deepseek-ai/dsh-client-ui-input-trigger": "0.2.2-alpha.2",
103
- "@deepseek-ai/dsh-client-ui-jobs": "0.2.2-alpha.2",
104
- "@deepseek-ai/dsh-client-ui-layout": "0.2.2-alpha.2",
105
- "@deepseek-ai/dsh-client-ui-plan": "0.2.2-alpha.2",
106
- "@deepseek-ai/dsh-client-ui-primitives": "0.2.2-alpha.2",
107
- "@deepseek-ai/dsh-client-ui-reference": "0.2.2-alpha.2",
108
- "@deepseek-ai/dsh-client-ui-renderer": "0.2.2-alpha.2",
109
- "@deepseek-ai/dsh-client-ui-session": "0.2.2-alpha.2",
110
- "@deepseek-ai/dsh-client-ui-settings": "0.2.2-alpha.2",
111
- "@deepseek-ai/dsh-client-ui-sidebar": "0.2.2-alpha.2",
112
- "@deepseek-ai/dsh-client-ui-sidebar-right": "0.2.2-alpha.2",
113
- "@deepseek-ai/dsh-client-ui-slots": "0.2.2-alpha.2",
114
- "@deepseek-ai/dsh-client-ui-subagent": "0.2.2-alpha.2",
115
- "@deepseek-ai/dsh-client-ui-theme": "0.2.2-alpha.2",
116
- "@deepseek-ai/dsh-client-ui-tool": "0.2.2-alpha.2",
117
- "@deepseek-ai/dsh-client-ui-trajectory": "0.2.2-alpha.2",
118
- "@deepseek-ai/dsh-client-ui-user-questions": "0.2.2-alpha.2",
119
- "@deepseek-ai/dsh-client-ui-workflow-run": "0.2.2-alpha.2",
120
- "@deepseek-ai/dsh-client-ui-workspace": "0.2.2-alpha.2",
121
- "@deepseek-ai/dsh-client-web": "0.2.2-alpha.2",
122
- "@deepseek-ai/dsh-cua": "0.2.2-alpha.2",
123
- "@deepseek-ai/dsh-experimental-api-speech-to-text": "0.2.2-alpha.2",
124
- "@deepseek-ai/dsh-experimental-claude-code-mods": "0.2.2-alpha.2",
125
- "@deepseek-ai/dsh-experimental-client-ui-cot-translation": "0.2.2-alpha.2",
126
- "@deepseek-ai/dsh-fs": "0.2.2-alpha.2",
127
- "@deepseek-ai/dsh-fs-local": "0.2.2-alpha.2",
128
- "@deepseek-ai/dsh-fs-observation-policy": "0.2.2-alpha.2",
129
- "@deepseek-ai/dsh-fs-sandbox": "0.2.2-alpha.2",
130
- "@deepseek-ai/dsh-host-webserver": "0.2.2-alpha.2",
131
- "@deepseek-ai/dsh-llm": "0.2.2-alpha.2",
132
- "@deepseek-ai/dsh-sandbox": "0.2.2-alpha.2",
133
- "@deepseek-ai/dsh-sandbox-policy": "0.2.2-alpha.2",
134
- "@deepseek-ai/dsh-scope": "0.2.2-alpha.2",
135
- "@deepseek-ai/dsh-session-projection": "0.2.2-alpha.2",
136
- "@deepseek-ai/dsh-settings": "0.2.2-alpha.2",
137
- "@deepseek-ai/dsh-tool-executor-native": "0.2.2-alpha.2",
138
- "@deepseek-ai/dsh-tool-fs": "0.2.2-alpha.2",
139
- "@deepseek-ai/dsh-tools": "0.2.2-alpha.2",
140
- "@deepseek-ai/dsh-typert-registry": "0.2.2-alpha.2",
141
- "@deepseek-ai/dsh-workspace": "0.2.2-alpha.2",
75
+ "@deepseek-ai/cordis": "~4.0.6-alpha.2",
76
+ "@deepseek-ai/cordis-plugin-loader": "~1.0.7-alpha.2",
77
+ "@deepseek-ai/dsh-agent": "0.2.2-alpha.3",
78
+ "@deepseek-ai/dsh-agent-loop-testkit": "0.2.2-alpha.3",
79
+ "@deepseek-ai/dsh-api-gateway": "0.2.2-alpha.3",
80
+ "@deepseek-ai/dsh-api-remote-access": "0.2.2-alpha.3",
81
+ "@deepseek-ai/dsh-api-remotes": "0.2.2-alpha.3",
82
+ "@deepseek-ai/dsh-api-session-controller": "0.2.2-alpha.3",
83
+ "@deepseek-ai/dsh-api-settings-controller": "0.2.2-alpha.3",
84
+ "@deepseek-ai/dsh-api-workspace-controller": "0.2.2-alpha.3",
85
+ "@deepseek-ai/dsh-api-workspace-files": "0.2.2-alpha.3",
86
+ "@deepseek-ai/dsh-client-connection": "0.2.2-alpha.3",
87
+ "@deepseek-ai/dsh-client-file-upload": "0.2.2-alpha.3",
88
+ "@deepseek-ai/dsh-client-locale": "0.2.2-alpha.3",
89
+ "@deepseek-ai/dsh-client-modules": "0.2.2-alpha.3",
90
+ "@deepseek-ai/dsh-client-resources": "0.2.2-alpha.3",
91
+ "@deepseek-ai/dsh-client-shortcuts": "0.2.2-alpha.3",
92
+ "@deepseek-ai/dsh-client-store": "0.2.2-alpha.3",
93
+ "@deepseek-ai/dsh-client-test-runtime": "0.2.2-alpha.3",
94
+ "@deepseek-ai/dsh-client-ui-agent-preset": "0.2.2-alpha.3",
95
+ "@deepseek-ai/dsh-client-ui-approval": "0.2.2-alpha.3",
96
+ "@deepseek-ai/dsh-client-ui-attachment": "0.2.2-alpha.3",
97
+ "@deepseek-ai/dsh-client-ui-brand-official": "0.2.2-alpha.3",
98
+ "@deepseek-ai/dsh-client-ui-chat": "0.2.2-alpha.3",
99
+ "@deepseek-ai/dsh-client-ui-commands": "0.2.2-alpha.3",
100
+ "@deepseek-ai/dsh-client-ui-context-menu": "0.2.2-alpha.3",
101
+ "@deepseek-ai/dsh-client-ui-conversation": "0.2.2-alpha.3",
102
+ "@deepseek-ai/dsh-client-ui-deliverables": "0.2.2-alpha.3",
103
+ "@deepseek-ai/dsh-client-ui-input-trigger": "0.2.2-alpha.3",
104
+ "@deepseek-ai/dsh-client-ui-jobs": "0.2.2-alpha.3",
105
+ "@deepseek-ai/dsh-client-ui-layout": "0.2.2-alpha.3",
106
+ "@deepseek-ai/dsh-client-ui-plan": "0.2.2-alpha.3",
107
+ "@deepseek-ai/dsh-client-ui-primitives": "0.2.2-alpha.3",
108
+ "@deepseek-ai/dsh-client-ui-reference": "0.2.2-alpha.3",
109
+ "@deepseek-ai/dsh-client-ui-renderer": "0.2.2-alpha.3",
110
+ "@deepseek-ai/dsh-client-ui-session": "0.2.2-alpha.3",
111
+ "@deepseek-ai/dsh-client-ui-settings": "0.2.2-alpha.3",
112
+ "@deepseek-ai/dsh-client-ui-sidebar": "0.2.2-alpha.3",
113
+ "@deepseek-ai/dsh-client-ui-sidebar-right": "0.2.2-alpha.3",
114
+ "@deepseek-ai/dsh-client-ui-slots": "0.2.2-alpha.3",
115
+ "@deepseek-ai/dsh-client-ui-subagent": "0.2.2-alpha.3",
116
+ "@deepseek-ai/dsh-client-ui-theme": "0.2.2-alpha.3",
117
+ "@deepseek-ai/dsh-client-ui-tool": "0.2.2-alpha.3",
118
+ "@deepseek-ai/dsh-client-ui-trajectory": "0.2.2-alpha.3",
119
+ "@deepseek-ai/dsh-client-ui-user-questions": "0.2.2-alpha.3",
120
+ "@deepseek-ai/dsh-client-ui-workflow-run": "0.2.2-alpha.3",
121
+ "@deepseek-ai/dsh-client-ui-workspace": "0.2.2-alpha.3",
122
+ "@deepseek-ai/dsh-client-web": "0.2.2-alpha.3",
123
+ "@deepseek-ai/dsh-cua": "0.2.2-alpha.3",
124
+ "@deepseek-ai/dsh-experimental-api-speech-to-text": "0.2.2-alpha.3",
125
+ "@deepseek-ai/dsh-experimental-claude-code-mods": "0.2.2-alpha.3",
126
+ "@deepseek-ai/dsh-experimental-client-ui-cot-translation": "0.2.2-alpha.3",
127
+ "@deepseek-ai/dsh-fs": "0.2.2-alpha.3",
128
+ "@deepseek-ai/dsh-fs-local": "0.2.2-alpha.3",
129
+ "@deepseek-ai/dsh-fs-observation-policy": "0.2.2-alpha.3",
130
+ "@deepseek-ai/dsh-fs-sandbox": "0.2.2-alpha.3",
131
+ "@deepseek-ai/dsh-host-webserver": "0.2.2-alpha.3",
132
+ "@deepseek-ai/dsh-llm": "0.2.2-alpha.3",
133
+ "@deepseek-ai/dsh-sandbox": "0.2.2-alpha.3",
134
+ "@deepseek-ai/dsh-sandbox-policy": "0.2.2-alpha.3",
135
+ "@deepseek-ai/dsh-scope": "0.2.2-alpha.3",
136
+ "@deepseek-ai/dsh-session-projection": "0.2.2-alpha.3",
137
+ "@deepseek-ai/dsh-settings": "0.2.2-alpha.3",
138
+ "@deepseek-ai/dsh-tool-executor-native": "0.2.2-alpha.3",
139
+ "@deepseek-ai/dsh-tool-fs": "0.2.2-alpha.3",
140
+ "@deepseek-ai/dsh-tools": "0.2.2-alpha.3",
141
+ "@deepseek-ai/dsh-typert-registry": "0.2.2-alpha.3",
142
+ "@deepseek-ai/dsh-workspace": "0.2.2-alpha.3",
142
143
  "@types/ws": "^8.18.1",
143
144
  "react": "^18.2.0",
144
145
  "react-dom": "^18.2.0"