@starwish-ai/xingyuan-dsh 0.5.8 → 0.5.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +33 -0
- package/lib/client/index.js +7 -6
- package/lib/client/tab-visibility.js +1 -1
- package/lib/client.js +7 -7
- package/lib/pref-settings.js +11 -7
- package/lib/types/client/cards.d.ts +1 -1
- package/lib/types/client/index.d.ts +3 -3
- package/lib/types/client/tab-visibility.d.ts +1 -1
- package/lib/types/pref-settings.d.ts +8 -4
- package/lib/types/ui-settings.d.ts +4 -3
- package/lib/ui-settings.js +8 -7
- package/package.json +36 -30
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,39 @@ All notable changes to this project are documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.5.9] - 2026-09-04
|
|
9
|
+
|
|
10
|
+
> **Note:** this release migrates the plugin to DeepSeek Harness `0.1.2-rc.1`
|
|
11
|
+
> (the host is still a technical preview and broke APIs on this bump). No data
|
|
12
|
+
> format changes: existing databases, settings and recorded sessions replay as
|
|
13
|
+
> before. On older hosts (`0.1.1-rc.2`) this version no longer loads — pin
|
|
14
|
+
> `0.5.8` if you must stay on the previous harness.
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
- **Settings namespaces now install through the service face**
|
|
18
|
+
(`ctx.inject(['settings'], (inv) => inv.settings.installSection(...))`):
|
|
19
|
+
`dsh-settings` removed the standalone `installSettingsSection` /
|
|
20
|
+
`settingsNamespace` helpers, so `xingyuan-pref` and `xingyuan-ui` register
|
|
21
|
+
via the new API and are no longer imported at runtime. The persistence
|
|
22
|
+
guarantee is unchanged — namespaces stay on the bundle-resident layer.
|
|
23
|
+
- **Client half re-wired to the reshaped browser packages**:
|
|
24
|
+
`@deepseek-ai/dsh-client-runtime` is gone; `ClientContext` is now plain
|
|
25
|
+
Cordis `Context`. The `ChatNodeDataMap` declaration merge moved to
|
|
26
|
+
`@deepseek-ai/dsh-client-ui-chat/client`, `ConversationStepDataMap` stays in
|
|
27
|
+
`dsh-client-ui-conversation/client`, event-card definitions register through
|
|
28
|
+
`ctx.uiConversation.events`, and the slot service is provided by
|
|
29
|
+
`dsh-client-ui-renderer`. `dsh.client.inject` was rewritten to the new
|
|
30
|
+
package-row semantics (baseline modules are seeded by the shell and need no
|
|
31
|
+
declaration).
|
|
32
|
+
- **Session-preset detection for tab visibility** now reads
|
|
33
|
+
`projectionValues.agentPreset` from the sessions list row — the
|
|
34
|
+
`SessionSummary.agentPreset` field was removed upstream in
|
|
35
|
+
`0.1.2-rc.1` (this was silently hiding all Xingyuan view tabs after the
|
|
36
|
+
host bump; same data source the official preset label uses).
|
|
37
|
+
- **Peer dependency ranges** bumped to `^0.1.2-rc.1` (Cordis `^4.0.2`);
|
|
38
|
+
AGENTS.md records the migration facts and the new troubleshooting rows
|
|
39
|
+
(`cannot get property without inject`, missing view tabs).
|
|
40
|
+
|
|
8
41
|
## [0.5.8] - 2026-09-04
|
|
9
42
|
|
|
10
43
|
> **Note:** this release is the fourth six-perspective quality pass. It finishes
|
package/lib/client/index.js
CHANGED
|
@@ -4,7 +4,7 @@ import { STYLE_TEXT } from './styles.js';
|
|
|
4
4
|
import { CARD_VIEWS } from './cards.js';
|
|
5
5
|
import { installTabVisibility } from './tab-visibility.js';
|
|
6
6
|
import { SettingsSection } from './pages/settings.js';
|
|
7
|
-
export const inject = ['slots', 'settingsScope', '
|
|
7
|
+
export const inject = ['slots', 'settingsScope', 'uiConversation'];
|
|
8
8
|
/** 事件类型 → 渲染 kind。 */
|
|
9
9
|
const KIND_BY_EVENT = {
|
|
10
10
|
'xingyuan/wish': 'xy-wish',
|
|
@@ -59,11 +59,12 @@ export function apply(ctx) {
|
|
|
59
59
|
disposeToasts();
|
|
60
60
|
disposeConfirms();
|
|
61
61
|
});
|
|
62
|
-
|
|
63
|
-
ctx.
|
|
64
|
-
ctx.
|
|
65
|
-
ctx.
|
|
66
|
-
ctx.
|
|
62
|
+
// dsh 0.1.2:事件 Definition 注册收进 uiConversation 服务的 events 子注册表。
|
|
63
|
+
ctx.uiConversation.events.register(definition('xy-wish'));
|
|
64
|
+
ctx.uiConversation.events.register(definition('xy-task'));
|
|
65
|
+
ctx.uiConversation.events.register(definition('xy-checkin'));
|
|
66
|
+
ctx.uiConversation.events.register(definition('xy-chart'));
|
|
67
|
+
ctx.uiConversation.events.register(definition('xy-micro'));
|
|
67
68
|
// 卡片注册不声明 locale:t 席位由组件内 useXyT() 取代(键受查 + 订阅刷新),
|
|
68
69
|
// 避免 'conversation' 窄域 t 与本插件命名空间的类型冲突。
|
|
69
70
|
ctx.slots.inject('conversation.chat.node', () => [
|
|
@@ -33,7 +33,7 @@ export function installTabVisibility(ctx) {
|
|
|
33
33
|
const hidden = value?.hiddenTabs ?? TAB_VISIBILITY_DEFAULTS.hiddenTabs;
|
|
34
34
|
const list = sessions?.list?.getSnapshot();
|
|
35
35
|
const row = list?.current !== undefined ? list.byId[list.current] : undefined;
|
|
36
|
-
const isXingyuan = row?.agentPreset === 'xingyuan';
|
|
36
|
+
const isXingyuan = row?.projectionValues?.agentPreset === 'xingyuan';
|
|
37
37
|
// 「始终显示 × 非星愿会话」的今日页轻提示(Q4=b 结论),其余模式不提示
|
|
38
38
|
setTodayHint(mode === 'show' && !isXingyuan);
|
|
39
39
|
const visible = new Set(visibleTabIds(mode, hidden, isXingyuan));
|
package/lib/client.js
CHANGED
|
@@ -4732,7 +4732,7 @@ function installTabVisibility(ctx) {
|
|
|
4732
4732
|
const mode = value?.tabVisibilityMode ?? TAB_VISIBILITY_DEFAULTS.tabVisibilityMode;
|
|
4733
4733
|
const hidden = value?.hiddenTabs ?? TAB_VISIBILITY_DEFAULTS.hiddenTabs;
|
|
4734
4734
|
const list = sessions?.list?.getSnapshot();
|
|
4735
|
-
const isXingyuan = (list?.current !== void 0 ? list.byId[list.current] : void 0)?.agentPreset === "xingyuan";
|
|
4735
|
+
const isXingyuan = (list?.current !== void 0 ? list.byId[list.current] : void 0)?.projectionValues?.agentPreset === "xingyuan";
|
|
4736
4736
|
setTodayHint(mode === "show" && !isXingyuan);
|
|
4737
4737
|
const visible = new Set(visibleTabIds(mode, hidden, isXingyuan));
|
|
4738
4738
|
for (const entry of TAB_ENTRIES) {
|
|
@@ -5151,7 +5151,7 @@ function SettingsSection(props) {
|
|
|
5151
5151
|
const inject = [
|
|
5152
5152
|
"slots",
|
|
5153
5153
|
"settingsScope",
|
|
5154
|
-
"
|
|
5154
|
+
"uiConversation"
|
|
5155
5155
|
];
|
|
5156
5156
|
/** 事件类型 → 渲染 kind。 */
|
|
5157
5157
|
const KIND_BY_EVENT = {
|
|
@@ -5205,11 +5205,11 @@ function apply(ctx) {
|
|
|
5205
5205
|
disposeToasts();
|
|
5206
5206
|
disposeConfirms();
|
|
5207
5207
|
});
|
|
5208
|
-
ctx.
|
|
5209
|
-
ctx.
|
|
5210
|
-
ctx.
|
|
5211
|
-
ctx.
|
|
5212
|
-
ctx.
|
|
5208
|
+
ctx.uiConversation.events.register(definition("xy-wish"));
|
|
5209
|
+
ctx.uiConversation.events.register(definition("xy-task"));
|
|
5210
|
+
ctx.uiConversation.events.register(definition("xy-checkin"));
|
|
5211
|
+
ctx.uiConversation.events.register(definition("xy-chart"));
|
|
5212
|
+
ctx.uiConversation.events.register(definition("xy-micro"));
|
|
5213
5213
|
ctx.slots.inject("conversation.chat.node", () => [
|
|
5214
5214
|
ctx.slots.register({
|
|
5215
5215
|
name: "conversation.chat.node",
|
package/lib/pref-settings.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import z from '@deepseek-ai/schemastery';
|
|
2
|
-
import { installSettingsSection, settingsNamespace } from '@deepseek-ai/dsh-settings';
|
|
3
2
|
import { CONFIRM_LANGS, MEMORY_LIMIT_MAX, MEMORY_LIMIT_MIN, PREF_DEFAULTS, } from './pref-policy.js';
|
|
4
|
-
/** 对话偏好命名空间(client 半侧 settingsScope
|
|
5
|
-
export const PREF_NS =
|
|
3
|
+
/** 对话偏好命名空间(client 半侧 settingsScope 同名配对,勿改;小写连字符文法由新 API 类型校验)。 */
|
|
4
|
+
export const PREF_NS = 'xingyuan-pref';
|
|
6
5
|
/** 配置 schema(默认值写进 schema;step(1) 让服务端也拒绝小数,防手改文档/RPC 直写)。 */
|
|
7
6
|
export const PrefSettingsSchema = z.object({
|
|
8
7
|
confirmWrites: z.boolean().default(PREF_DEFAULTS.confirmWrites),
|
|
@@ -20,10 +19,15 @@ export const PrefSettingsSchema = z.object({
|
|
|
20
19
|
export function installPrefSettings(ctx) {
|
|
21
20
|
// 闭包局部,非模块级单例(AGENTS.md §8:不做任何跨重载的模块级单例状态)
|
|
22
21
|
let read = () => PREF_DEFAULTS;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
22
|
+
// 回调形参 inv 才是声明了 settings 依赖的上下文:cordis 4.0.2 起,
|
|
23
|
+
// 未在当前 fiber 声明的服务属性不得访问(外层 ctx 直接读 ctx.settings 会
|
|
24
|
+
// 抛 "cannot get property without inject"),注册归属(owner)仍传插件 fiber。
|
|
25
|
+
ctx.inject(['settings'], (inv) => {
|
|
26
|
+
inv.settings.installSection(ctx, PREF_NS, PrefSettingsSchema, PREF_DEFAULTS, {
|
|
27
|
+
setSource: (current) => { read = current; },
|
|
28
|
+
// 消费方(工具/提示词)每次执行即时读 thunk,无需在此重建任何东西
|
|
29
|
+
onChange: () => { },
|
|
30
|
+
});
|
|
27
31
|
});
|
|
28
32
|
return () => read();
|
|
29
33
|
}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* 文案经 useXyT():语言切换由 locale revision 订阅驱动重渲(见 i18n.ts §方案)。
|
|
6
6
|
*/
|
|
7
7
|
import { type ReactElement } from 'react';
|
|
8
|
-
import type { ChatNodeViewProps } from '@deepseek-ai/dsh-client-ui-
|
|
8
|
+
import type { ChatNodeViewProps } from '@deepseek-ai/dsh-client-ui-chat/client';
|
|
9
9
|
/**
|
|
10
10
|
* 卡片组件 props:剥掉壳注入的 'conversation' 命名空间 t 席位(本插件文案走 useXyT,
|
|
11
11
|
* 键受查且随语言切换订阅刷新);注册处不声明 locale,避免窄域 t 的类型冲突。
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
* 6 个会话视图标签页(今日/愿望/任务/日历/成长/记忆)+ 设置整页。
|
|
4
4
|
* 文案与渲染细节分别在 i18n.ts / cards.ts / pages/*;本文件只做注册与接线。
|
|
5
5
|
*/
|
|
6
|
-
import type { ClientContext } from '@deepseek-ai/
|
|
6
|
+
import type { Context as ClientContext } from '@deepseek-ai/cordis';
|
|
7
7
|
import type { XyState } from './types.js';
|
|
8
8
|
export declare const inject: string[];
|
|
9
|
-
declare module '@deepseek-ai/dsh-client-ui-
|
|
9
|
+
declare module '@deepseek-ai/dsh-client-ui-chat/client' {
|
|
10
10
|
interface ChatNodeDataMap {
|
|
11
11
|
'xy-wish': XyState;
|
|
12
12
|
'xy-task': XyState;
|
|
@@ -15,7 +15,7 @@ declare module '@deepseek-ai/dsh-client-ui-conversation/client' {
|
|
|
15
15
|
'xy-micro': XyState;
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
|
-
declare module '@deepseek-ai/dsh-client-
|
|
18
|
+
declare module '@deepseek-ai/dsh-client-ui-conversation/client' {
|
|
19
19
|
interface ConversationStepDataMap {
|
|
20
20
|
'xy-wish': XyState;
|
|
21
21
|
'xy-task': XyState;
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* 判据:settingsScope('xingyuan-ui').tabVisibilityMode × hiddenTabs ×
|
|
12
12
|
* 当前(staged)会话 SessionSummary.agentPreset === 'xingyuan'。
|
|
13
13
|
*/
|
|
14
|
-
import type { ClientContext } from '@deepseek-ai/
|
|
14
|
+
import type { Context as ClientContext } from '@deepseek-ai/cordis';
|
|
15
15
|
/**
|
|
16
16
|
* 安装标签页显隐控制器,返回随 conversation.view 声明生命周期卸载的 disposer。
|
|
17
17
|
* 必须在 slots.inject('conversation.view') 回调内调用:保证首次 sync() 时
|
|
@@ -15,14 +15,18 @@
|
|
|
15
15
|
* 故此处让数据常驻以对齐常驻 UI,而非让 UI 跟随数据(那会让设置页出现
|
|
16
16
|
* 部分字段时有时无的割裂,且安全策略类设置「有时候找不到」不可接受)。
|
|
17
17
|
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
18
|
+
* dsh 0.1.2-rc.1 起 settings 子系统重排:命名空间安装收进服务面
|
|
19
|
+
* `settings.installSection(owner, ns, schema, entry, hooks)`(独立函数
|
|
20
|
+
* installSettingsSection/settingsNamespace 已删除)。本模块经 ctx.inject(['settings'],
|
|
21
|
+
* (inv) => …) 等待 settings 服务挂载后在回调形参 inv 上访问(cordis 4.0.2 服务属性守卫:
|
|
22
|
+
* 未声明依赖的 fiber 上读 ctx.settings 会抛),服务缺席(headless 等)时整段不运行,
|
|
23
|
+
* bundle 激活不依赖它。
|
|
20
24
|
*/
|
|
21
25
|
import type { Context } from '@deepseek-ai/cordis';
|
|
22
26
|
import z from '@deepseek-ai/schemastery';
|
|
23
27
|
import { type PrefSettings } from './pref-policy.js';
|
|
24
|
-
/** 对话偏好命名空间(client 半侧 settingsScope
|
|
25
|
-
export declare const PREF_NS
|
|
28
|
+
/** 对话偏好命名空间(client 半侧 settingsScope 同名配对,勿改;小写连字符文法由新 API 类型校验)。 */
|
|
29
|
+
export declare const PREF_NS = "xingyuan-pref";
|
|
26
30
|
/** 配置 schema(默认值写进 schema;step(1) 让服务端也拒绝小数,防手改文档/RPC 直写)。 */
|
|
27
31
|
export declare const PrefSettingsSchema: z<PrefSettings>;
|
|
28
32
|
/**
|
|
@@ -8,14 +8,15 @@
|
|
|
8
8
|
* bundle 层命名空间常驻:未选过星愿预设也能调整,且与 dsh host-backed
|
|
9
9
|
* settings 惯例一致(跟随 $DSH_HOME/settings.yaml 跨 Web 端口)。
|
|
10
10
|
*
|
|
11
|
-
*
|
|
11
|
+
* dsh 0.1.2-rc.1 起命名空间安装收进服务面 ctx.settings.installSection;
|
|
12
|
+
* 本模块经 ctx.inject(['settings']) 等待 settings 服务挂载,
|
|
12
13
|
* 服务缺席(headless 等)时整段不运行,bundle 激活不依赖它。
|
|
13
14
|
*/
|
|
14
15
|
import type { Context } from '@deepseek-ai/cordis';
|
|
15
16
|
import z from '@deepseek-ai/schemastery';
|
|
16
17
|
import { type TabId, type TabVisibilityMode } from './tab-policy.js';
|
|
17
|
-
/** 界面偏好命名空间(client 半侧 settingsScope
|
|
18
|
-
export declare const UI_NS
|
|
18
|
+
/** 界面偏好命名空间(client 半侧 settingsScope 同名配对,勿改;小写连字符文法由新 API 类型校验)。 */
|
|
19
|
+
export declare const UI_NS = "xingyuan-ui";
|
|
19
20
|
/** 命名空间解析值(schema 默认 → base 层 → 用户层)。 */
|
|
20
21
|
export interface UiSettings {
|
|
21
22
|
tabVisibilityMode: TabVisibilityMode;
|
package/lib/ui-settings.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import z from '@deepseek-ai/schemastery';
|
|
2
|
-
import { installSettingsSection, settingsNamespace } from '@deepseek-ai/dsh-settings';
|
|
3
2
|
import { TAB_IDS, TAB_VISIBILITY_DEFAULTS } from './tab-policy.js';
|
|
4
|
-
/** 界面偏好命名空间(client 半侧 settingsScope
|
|
5
|
-
export const UI_NS =
|
|
3
|
+
/** 界面偏好命名空间(client 半侧 settingsScope 同名配对,勿改;小写连字符文法由新 API 类型校验)。 */
|
|
4
|
+
export const UI_NS = 'xingyuan-ui';
|
|
6
5
|
/** 配置 schema(默认值写进 schema;schemastery 无 z.enum,枚举用 const+union)。 */
|
|
7
6
|
export const UiSettingsSchema = z.object({
|
|
8
7
|
tabVisibilityMode: z.union([
|
|
@@ -14,9 +13,11 @@ export const UiSettingsSchema = z.object({
|
|
|
14
13
|
});
|
|
15
14
|
/** bundle 层安装界面偏好命名空间(幂等:注册随插件 fiber 生命周期自动清理)。 */
|
|
16
15
|
export function installUiSettings(ctx) {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
16
|
+
ctx.inject(['settings'], (inv) => {
|
|
17
|
+
inv.settings.installSection(ctx, UI_NS, UiSettingsSchema, TAB_VISIBILITY_DEFAULTS, {
|
|
18
|
+
// 本命名空间只有 client 半侧消费(经 wire 读快照),host 侧无派生事实
|
|
19
|
+
setSource: () => { },
|
|
20
|
+
onChange: () => { },
|
|
21
|
+
});
|
|
21
22
|
});
|
|
22
23
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@starwish-ai/xingyuan-dsh",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.9",
|
|
4
4
|
"description": "星愿 XingYuan for DeepSeek Harness: 对话创建愿望/任务、机会日打卡、微行动、记忆与图表的 Agent Preset 组合包",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -77,11 +77,11 @@
|
|
|
77
77
|
"client": {
|
|
78
78
|
"platform": "web",
|
|
79
79
|
"inject": [
|
|
80
|
-
"@deepseek-ai/dsh-client-
|
|
81
|
-
"@deepseek-ai/dsh-client-ui-
|
|
80
|
+
"@deepseek-ai/dsh-client-locale",
|
|
81
|
+
"@deepseek-ai/dsh-client-ui-chat",
|
|
82
82
|
"@deepseek-ai/dsh-client-ui-conversation",
|
|
83
|
-
"@deepseek-ai/dsh-client-ui-settings
|
|
84
|
-
"@deepseek-ai/dsh-client-
|
|
83
|
+
"@deepseek-ai/dsh-client-ui-settings",
|
|
84
|
+
"@deepseek-ai/dsh-client-ui-settings-plugins"
|
|
85
85
|
]
|
|
86
86
|
}
|
|
87
87
|
},
|
|
@@ -92,15 +92,15 @@
|
|
|
92
92
|
"watch": "tsdown --watch"
|
|
93
93
|
},
|
|
94
94
|
"peerDependencies": {
|
|
95
|
-
"@deepseek-ai/cordis": "^4.0.
|
|
96
|
-
"@deepseek-ai/dsh-host-webserver": "^0.1.
|
|
97
|
-
"@deepseek-ai/dsh-session": "^0.1.
|
|
98
|
-
"@deepseek-ai/dsh-settings": "^0.1.
|
|
99
|
-
"@deepseek-ai/dsh-storage": "^0.1.
|
|
100
|
-
"@deepseek-ai/dsh-storage-domain": "^0.1.
|
|
101
|
-
"@deepseek-ai/dsh-system-prompt": "^0.1.
|
|
102
|
-
"@deepseek-ai/dsh-tools": "^0.1.
|
|
103
|
-
"@deepseek-ai/dsh-user-questions": "^0.1.
|
|
95
|
+
"@deepseek-ai/cordis": "^4.0.2",
|
|
96
|
+
"@deepseek-ai/dsh-host-webserver": "^0.1.2-rc.1",
|
|
97
|
+
"@deepseek-ai/dsh-session": "^0.1.2-rc.1",
|
|
98
|
+
"@deepseek-ai/dsh-settings": "^0.1.2-rc.1",
|
|
99
|
+
"@deepseek-ai/dsh-storage": "^0.1.2-rc.1",
|
|
100
|
+
"@deepseek-ai/dsh-storage-domain": "^0.1.2-rc.1",
|
|
101
|
+
"@deepseek-ai/dsh-system-prompt": "^0.1.2-rc.1",
|
|
102
|
+
"@deepseek-ai/dsh-tools": "^0.1.2-rc.1",
|
|
103
|
+
"@deepseek-ai/dsh-user-questions": "^0.1.2-rc.1",
|
|
104
104
|
"@deepseek-ai/schemastery": "*",
|
|
105
105
|
"react": "^18.2.0",
|
|
106
106
|
"zod": "^4.4.3"
|
|
@@ -111,23 +111,29 @@
|
|
|
111
111
|
}
|
|
112
112
|
},
|
|
113
113
|
"devDependencies": {
|
|
114
|
-
"@deepseek-ai/cordis": "4.0.
|
|
114
|
+
"@deepseek-ai/cordis": "4.0.2",
|
|
115
115
|
"@deepseek-ai/cordis-plugin-loader": "1.0.2",
|
|
116
|
-
"@deepseek-ai/dsh-agent": "0.1.
|
|
117
|
-
"@deepseek-ai/dsh-
|
|
118
|
-
"@deepseek-ai/dsh-
|
|
119
|
-
"@deepseek-ai/dsh-
|
|
120
|
-
"@deepseek-ai/dsh-client-
|
|
121
|
-
"@deepseek-ai/dsh-client-
|
|
122
|
-
"@deepseek-ai/dsh-
|
|
123
|
-
"@deepseek-ai/dsh-
|
|
124
|
-
"@deepseek-ai/dsh-
|
|
125
|
-
"@deepseek-ai/dsh-settings": "0.1.
|
|
126
|
-
"@deepseek-ai/dsh-
|
|
127
|
-
"@deepseek-ai/dsh-
|
|
128
|
-
"@deepseek-ai/dsh-
|
|
129
|
-
"@deepseek-ai/dsh-
|
|
130
|
-
"@deepseek-ai/dsh-
|
|
116
|
+
"@deepseek-ai/dsh-agent": "0.1.2-rc.1",
|
|
117
|
+
"@deepseek-ai/dsh-api-remotes": "0.1.2-rc.1",
|
|
118
|
+
"@deepseek-ai/dsh-api-session-controller": "0.1.2-rc.1",
|
|
119
|
+
"@deepseek-ai/dsh-attachment": "0.1.2-rc.1",
|
|
120
|
+
"@deepseek-ai/dsh-client-locale": "0.1.2-rc.1",
|
|
121
|
+
"@deepseek-ai/dsh-client-store": "0.1.2-rc.1",
|
|
122
|
+
"@deepseek-ai/dsh-client-ui-chat": "0.1.2-rc.1",
|
|
123
|
+
"@deepseek-ai/dsh-client-ui-conversation": "0.1.2-rc.1",
|
|
124
|
+
"@deepseek-ai/dsh-client-ui-renderer": "0.1.2-rc.1",
|
|
125
|
+
"@deepseek-ai/dsh-client-ui-settings": "0.1.2-rc.1",
|
|
126
|
+
"@deepseek-ai/dsh-client-ui-settings-plugins": "0.1.2-rc.1",
|
|
127
|
+
"@deepseek-ai/dsh-client-ui-slots": "0.1.2-rc.1",
|
|
128
|
+
"@deepseek-ai/dsh-host-webserver": "0.1.2-rc.1",
|
|
129
|
+
"@deepseek-ai/dsh-llm": "0.1.2-rc.1",
|
|
130
|
+
"@deepseek-ai/dsh-session": "0.1.2-rc.1",
|
|
131
|
+
"@deepseek-ai/dsh-settings": "0.1.2-rc.1",
|
|
132
|
+
"@deepseek-ai/dsh-storage": "0.1.2-rc.1",
|
|
133
|
+
"@deepseek-ai/dsh-storage-domain": "0.1.2-rc.1",
|
|
134
|
+
"@deepseek-ai/dsh-system-prompt": "0.1.2-rc.1",
|
|
135
|
+
"@deepseek-ai/dsh-tools": "0.1.2-rc.1",
|
|
136
|
+
"@deepseek-ai/dsh-user-questions": "0.1.2-rc.1",
|
|
131
137
|
"@deepseek-ai/schemastery": "^3.18.0",
|
|
132
138
|
"@types/node": "^24.0.0",
|
|
133
139
|
"@types/react": "~18.3.1",
|