@daweifu/capability-menu 0.1.2 → 0.1.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/README.en.md +39 -18
- package/README.md +46 -25
- package/cordis.patch.yml +15 -24
- package/lib/client.d.ts +211 -32
- package/lib/client.d.ts.map +1 -1
- package/lib/client.js +1510 -158
- package/lib/constants.js +33 -0
- package/lib/constants.js.map +1 -0
- package/lib/index.js +1 -1
- package/lib/locations.js +541 -0
- package/lib/locations.js.map +1 -0
- package/lib/patch-file.js +192 -0
- package/lib/patch-file.js.map +1 -0
- package/lib/policy.js +211 -27
- package/lib/policy.js.map +1 -1
- package/lib/registry.js +256 -38
- package/lib/registry.js.map +1 -1
- package/lib/search.js +10 -2
- package/lib/search.js.map +1 -1
- package/lib/server/remote.js +137 -4
- package/lib/server/remote.js.map +1 -1
- package/lib/types/constants.d.ts +33 -0
- package/lib/types/constants.d.ts.map +1 -0
- package/lib/types/index.d.ts +1 -1
- package/lib/types/locations.d.ts +142 -0
- package/lib/types/locations.d.ts.map +1 -0
- package/lib/types/patch-file.d.ts +46 -0
- package/lib/types/patch-file.d.ts.map +1 -0
- package/lib/types/policy.d.ts +39 -0
- package/lib/types/policy.d.ts.map +1 -1
- package/lib/types/registry.d.ts +48 -16
- package/lib/types/registry.d.ts.map +1 -1
- package/lib/types/search.d.ts.map +1 -1
- package/lib/types/server/remote.d.ts +47 -2
- package/lib/types/server/remote.d.ts.map +1 -1
- package/package.json +24 -23
package/lib/types/registry.d.ts
CHANGED
|
@@ -7,6 +7,8 @@ import type { Context } from '@deepseek-ai/cordis';
|
|
|
7
7
|
import z from '@deepseek-ai/schemastery';
|
|
8
8
|
import type { ScopeKey } from '@deepseek-ai/dsh-scope';
|
|
9
9
|
import type { JsonSchemaNode } from '@deepseek-ai/dsh-tools';
|
|
10
|
+
import { BUILT_IN_SERVER, MCP_ID_PREFIX } from './constants.ts';
|
|
11
|
+
export { BUILT_IN_SERVER, MCP_ID_PREFIX };
|
|
10
12
|
/**
|
|
11
13
|
* Kinds of capability the catalog can hold.
|
|
12
14
|
* - `tool`: action capability — executes a concrete action (an MCP tool or a
|
|
@@ -22,25 +24,16 @@ export type CapabilityKind = 'tool' | 'skill';
|
|
|
22
24
|
* `load` = load the method/instructions (a skill).
|
|
23
25
|
*/
|
|
24
26
|
export type CapabilityAction = 'execute' | 'load';
|
|
25
|
-
/**
|
|
26
|
-
* Tool id prefixes are part of the REAL registered tool name: MCP tools are
|
|
27
|
-
* registered as `mcp__<server>__<raw>` by the harness MCP client and natives
|
|
28
|
-
* keep their bare name (`bash`/`read`/…), so tool records are keyed by that
|
|
29
|
-
* name. Skills have no name-level namespace: a skill's id IS its bare name and
|
|
30
|
-
* `kind` disambiguates it from a same-named tool.
|
|
31
|
-
*/
|
|
32
|
-
export declare const MCP_ID_PREFIX = "mcp__";
|
|
33
|
-
/**
|
|
34
|
-
* Reserved pseudo-server that groups harness-native (non-MCP) tools in the
|
|
35
|
-
* management surface. Native tools (bash/read/write/…) are cataloged like MCP
|
|
36
|
-
* tools — same `server` dimension — so the 能力管理 can group them, classify
|
|
37
|
-
* them Resident/On-demand/Disabled, and `meta_invoke` can dispatch them.
|
|
38
|
-
*/
|
|
39
|
-
export declare const BUILT_IN_SERVER = "built-in";
|
|
40
27
|
/**
|
|
41
28
|
* Tool names that never enter the capability catalog: this plugin's own
|
|
42
29
|
* control plane (`meta_search`/`meta_invoke`, always Resident) and the
|
|
43
30
|
* reserved Code Mode presentation transport (`run_code`).
|
|
31
|
+
*
|
|
32
|
+
* Tool ids (the key everything else uses) are the REAL registered tool name:
|
|
33
|
+
* MCP tools are registered as `mcp__<server>__<raw>` by the harness MCP client
|
|
34
|
+
* and natives keep their bare name (`bash`/`read`/…). Skills have no
|
|
35
|
+
* name-level namespace: a skill's id IS its bare name and `kind` disambiguates
|
|
36
|
+
* it from a same-named tool.
|
|
44
37
|
*/
|
|
45
38
|
export declare const CATALOG_EXCLUDED_TOOLS: ReadonlySet<string>;
|
|
46
39
|
/** Capability-stable origin metadata used by search filters and detail views. */
|
|
@@ -172,6 +165,15 @@ export interface CapabilityService {
|
|
|
172
165
|
* (content containing NUL) return undefined.
|
|
173
166
|
*/
|
|
174
167
|
readSkillFile(id: string, relPath: string): Promise<string | undefined>;
|
|
168
|
+
/**
|
|
169
|
+
* Indexed skills whose provider exposes a filesystem directory, as
|
|
170
|
+
* `{ name, skillDir }` where `skillDir` is `<entryDir>/<name>`.
|
|
171
|
+
*/
|
|
172
|
+
skillDirs(): ReadonlyArray<{
|
|
173
|
+
readonly name: string;
|
|
174
|
+
readonly skillDir: string;
|
|
175
|
+
readonly source?: string;
|
|
176
|
+
}>;
|
|
175
177
|
/** Return the current number of indexed capabilities. */
|
|
176
178
|
size(): number;
|
|
177
179
|
/**
|
|
@@ -193,6 +195,20 @@ export interface CapabilityService {
|
|
|
193
195
|
* that want to force a rebuild.
|
|
194
196
|
*/
|
|
195
197
|
refresh(): Promise<void>;
|
|
198
|
+
/**
|
|
199
|
+
* Ask for a rebuild without waiting for it. The scheduler coalesces bursts,
|
|
200
|
+
* so a caller that changes something repeatedly (the management UI cycling
|
|
201
|
+
* a classification) triggers one rebuild, not one per call.
|
|
202
|
+
*/
|
|
203
|
+
requestRefresh(): void;
|
|
204
|
+
/**
|
|
205
|
+
* Re-emit the materialized on-demand catalog from the index already in hand,
|
|
206
|
+
* without re-enumerating tools or skills. Moving a capability between tiers
|
|
207
|
+
* changes no inventory, so the only thing stale on disk is that file — and a
|
|
208
|
+
* full rebuild would re-scan the global skill layer plus every agent preset
|
|
209
|
+
* for no new information, which is what made a tier click stall.
|
|
210
|
+
*/
|
|
211
|
+
rewriteCatalog(): Promise<void>;
|
|
196
212
|
}
|
|
197
213
|
declare module '@deepseek-ai/cordis' {
|
|
198
214
|
interface Context {
|
|
@@ -205,7 +221,12 @@ export interface Config {
|
|
|
205
221
|
summaryMaxChars?: number;
|
|
206
222
|
/** Whether to include the skill body in `getDetail` results (default false). */
|
|
207
223
|
detailIncludesBody?: boolean;
|
|
208
|
-
/**
|
|
224
|
+
/**
|
|
225
|
+
* Maximum search results returned (default 20). No upper bound is enforced:
|
|
226
|
+
* callers that need the whole catalog (the policy's `classifyAll`) pass a
|
|
227
|
+
* very large value on purpose, so capping here would silently truncate the
|
|
228
|
+
* management surface.
|
|
229
|
+
*/
|
|
209
230
|
maxResults?: number;
|
|
210
231
|
/** Experience-weighting intensity for ranking (0 disables, default 0.1). */
|
|
211
232
|
weighting?: number;
|
|
@@ -216,6 +237,17 @@ export interface Config {
|
|
|
216
237
|
* emission. Disabled capabilities are never written.
|
|
217
238
|
*/
|
|
218
239
|
catalogFile?: string;
|
|
240
|
+
/**
|
|
241
|
+
* Debounce window (ms) applied to catalog rebuilds triggered by
|
|
242
|
+
* `tools/change` / `skills/change`. The skill/preset lifecycle emits these
|
|
243
|
+
* events in bursts, and a rebuild's own registry access can emit further
|
|
244
|
+
* ones, so rebuilding once per event produced an unbounded CPU storm. The
|
|
245
|
+
* scheduler runs at most one rebuild at a time and coalesces a burst into a
|
|
246
|
+
* single follow-up after this window. Set to `0` to disable debouncing
|
|
247
|
+
* (every event still gets at most one coalesced rebuild, never a concurrent
|
|
248
|
+
* one). Default 200.
|
|
249
|
+
*/
|
|
250
|
+
refreshDebounceMs?: number;
|
|
219
251
|
}
|
|
220
252
|
/** Validate and default the registry configuration. */
|
|
221
253
|
export declare const Config: z<Config>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/registry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,CAAC,MAAM,0BAA0B,CAAA;AACxC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACtD,OAAO,KAAK,EAAE,cAAc,EAAsC,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/search.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,CAAC,MAAM,0BAA0B,CAAA;AAIxC,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAExE,eAAO,MAAM,IAAI,2BAA2B,CAAA;AAC5C,eAAO,MAAM,MAAM,UAAoC,CAAA;AAEvD,gDAAgD;AAChD,MAAM,WAAW,MAAM;IACrB,0DAA0D;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,mDAAmD;AACnD,eAAO,MAAM,MAAM,EAAE,CAAC,CAAC,MAAM,CAE3B,CAAA;AAEF,kCAAkC;AAClC,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,EAAE,iBAAiB,EAAE,CAAA;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAED,oCAAoC;AACpC,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;IACvB,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAA;CAClC;AAED,mDAAmD;AACnD,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,GAAG,sBAAsB,CAAA;AAE5E;;;;;;;;;GASG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,GAAE,MAAW,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/search.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,CAAC,MAAM,0BAA0B,CAAA;AAIxC,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAExE,eAAO,MAAM,IAAI,2BAA2B,CAAA;AAC5C,eAAO,MAAM,MAAM,UAAoC,CAAA;AAEvD,gDAAgD;AAChD,MAAM,WAAW,MAAM;IACrB,0DAA0D;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,mDAAmD;AACnD,eAAO,MAAM,MAAM,EAAE,CAAC,CAAC,MAAM,CAE3B,CAAA;AAEF,kCAAkC;AAClC,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,EAAE,iBAAiB,EAAE,CAAA;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAED,oCAAoC;AACpC,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;IACvB,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAA;CAClC;AAED,mDAAmD;AACnD,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,GAAG,sBAAsB,CAAA;AAE5E;;;;;;;;;GASG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,GAAE,MAAW,GAAG,IAAI,CAsI7D"}
|
|
@@ -11,6 +11,7 @@ import type { Context } from '@deepseek-ai/cordis';
|
|
|
11
11
|
import { TypertRemoteService } from '@deepseek-ai/dsh-typert-protocol';
|
|
12
12
|
import type { CapabilityClassification, CapabilityPolicyService, Config as CapabilityPolicyConfig } from '../policy.ts';
|
|
13
13
|
import type { CapabilityDetail, SkillDirEntry, CapabilityService } from '../registry.ts';
|
|
14
|
+
import type { McpInput, McpLocation, McpUpdateInput, SkillLocation } from '../locations.ts';
|
|
14
15
|
declare module '@deepseek-ai/cordis' {
|
|
15
16
|
interface Context {
|
|
16
17
|
capabilityPolicy: CapabilityPolicyService;
|
|
@@ -30,7 +31,7 @@ export interface CatalogDocs {
|
|
|
30
31
|
readonly catalogMissing?: 'disabled' | 'read-failed';
|
|
31
32
|
}
|
|
32
33
|
/**
|
|
33
|
-
* Host-side remote face for the
|
|
34
|
+
* Host-side remote face for the 能力菜单 tab. Every method delegates to the
|
|
34
35
|
* policy service installed by `@daweifu/capability-menu/policy`; the registry
|
|
35
36
|
* sibling (`capability`) must be mounted for `classifyAll` to return anything.
|
|
36
37
|
*
|
|
@@ -49,6 +50,13 @@ export declare class CapabilityPolicyGateway extends TypertRemoteService {
|
|
|
49
50
|
updateConfig(partial: Partial<CapabilityPolicyConfig>): Promise<void>;
|
|
50
51
|
/** Classify every capability currently indexed by `ctx.capability`. */
|
|
51
52
|
classifyAll(): CapabilityClassification[];
|
|
53
|
+
/**
|
|
54
|
+
* Rebuild the capability catalog now and resolve once it has converged.
|
|
55
|
+
* The UI calls this after registering a new source (an MCP server or a
|
|
56
|
+
* skill directory) so the list reflects it without waiting for the
|
|
57
|
+
* scheduler's debounce window.
|
|
58
|
+
*/
|
|
59
|
+
refresh(): Promise<void>;
|
|
52
60
|
/** Resolve one capability's full detail (schema, description; skill body optional). */
|
|
53
61
|
getDetail(id: string): Promise<CapabilityDetail | undefined>;
|
|
54
62
|
/** List a skill's directory children (one level deep; optional subpath). */
|
|
@@ -61,9 +69,46 @@ export declare class CapabilityPolicyGateway extends TypertRemoteService {
|
|
|
61
69
|
* server → 工具短名 分级列出;skills 无 server 维度,resident 恒为 '*',
|
|
62
70
|
* 例外为短名平铺。空例外不渲染 key,避免 []/{} 歧义。
|
|
63
71
|
* 另返回按需能力目录物化文件(~/.dsh/capability-catalog.yaml)的路径和内容。
|
|
64
|
-
*
|
|
72
|
+
* 两者都是只读视图;改规则的入口是「能力菜单」的点选,改动会自动写回 cordis.patch.yml。
|
|
65
73
|
*/
|
|
66
74
|
getCatalogDocs(): Promise<CatalogDocs>;
|
|
75
|
+
/** MCP servers declared in the patch file. */
|
|
76
|
+
listLocations(): Promise<McpLocation[]>;
|
|
77
|
+
/** Declare a new MCP server. */
|
|
78
|
+
addLocation(input: McpInput): Promise<string>;
|
|
79
|
+
/** Remove a declared MCP server. */
|
|
80
|
+
removeLocation(id: string): Promise<boolean>;
|
|
81
|
+
/** Replace a declared MCP server's connection config. */
|
|
82
|
+
updateLocation(id: string, input: McpUpdateInput): Promise<boolean>;
|
|
83
|
+
/**
|
|
84
|
+
* Skill entries the operator can manage: everything under the user root, plus
|
|
85
|
+
* the project-scoped entries the skill index knows about.
|
|
86
|
+
*
|
|
87
|
+
* dsh discovers a project's skills from `<projectRoot>/.dsh/skills` and
|
|
88
|
+
* `<projectRoot>/.agents/skills` for whichever project the *session* cwd sits
|
|
89
|
+
* in, so reading the user root alone cannot see them. The index records each
|
|
90
|
+
* skill's own directory, which is what lets these rows be edited and removed
|
|
91
|
+
* rather than merely listed.
|
|
92
|
+
*/
|
|
93
|
+
listSkillLocations(): Promise<SkillLocation[]>;
|
|
94
|
+
/**
|
|
95
|
+
* Register a skill directory: into the user root by default, or into a
|
|
96
|
+
* project's `.dsh/skills` when `projectPath` names a path inside that project.
|
|
97
|
+
* Returns the entry path actually written so the UI can report it.
|
|
98
|
+
*/
|
|
99
|
+
addSkillLocation(dir: string, projectPath?: string): Promise<string>;
|
|
100
|
+
/**
|
|
101
|
+
* Adopt a skill that already lives in a user-level root this plugin reads but
|
|
102
|
+
* does not manage (`~/.agents/skills`, custom dirs) by linking its own
|
|
103
|
+
* directory into the user root. The content is untouched — this is exactly how
|
|
104
|
+
* the entries already in `~/.dsh/skills` are set up — and the skill becomes
|
|
105
|
+
* editable afterwards. Returns the entry path written.
|
|
106
|
+
*/
|
|
107
|
+
adoptSkillLocation(name: string): Promise<string>;
|
|
108
|
+
/** Unregister a skill entry; `entryDir` addresses a project entry. */
|
|
109
|
+
removeSkillLocation(name: string, entryDir?: string): Promise<boolean>;
|
|
110
|
+
/** Repoint a registered skill entry at a different directory. */
|
|
111
|
+
updateSkillLocation(name: string, dir: string, entryDir?: string): Promise<boolean>;
|
|
67
112
|
}
|
|
68
113
|
/** Register the remote gateway on a context. */
|
|
69
114
|
export declare const name = "capability-menu-remote";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../../../src/server/remote.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,mBAAmB,EAAU,MAAM,kCAAkC,CAAA;AAG9E,OAAO,KAAK,EACV,wBAAwB,EACxB,uBAAuB,EACvB,MAAM,IAAI,sBAAsB,EACjC,MAAM,cAAc,CAAA;AACrB,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../../../src/server/remote.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@daweifu/capability-menu",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "Unified capability management for the DeepSeek Harness: catalog (ctx.capability) + meta_search/meta_invoke + Resident/On-demand/Disabled projection policy +
|
|
3
|
+
"version": "0.1.3",
|
|
4
|
+
"description": "Unified capability management for the DeepSeek Harness: catalog (ctx.capability) + meta_search/meta_invoke + Resident/On-demand/Disabled projection policy + 能力菜单 settings tab, in one installable bundle (server + browser).",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -74,40 +74,41 @@
|
|
|
74
74
|
}
|
|
75
75
|
},
|
|
76
76
|
"peerDependencies": {
|
|
77
|
-
"@deepseek-ai/cordis": "^4.0.
|
|
78
|
-
"@deepseek-ai/dsh-agent": "^0.1.
|
|
79
|
-
"@deepseek-ai/dsh-llm": "^0.1.
|
|
80
|
-
"@deepseek-ai/dsh-scope": "^0.1.
|
|
81
|
-
"@deepseek-ai/dsh-session": "^0.1.
|
|
82
|
-
"@deepseek-ai/dsh-skill": "^0.1.
|
|
83
|
-
"@deepseek-ai/dsh-system-prompt": "^0.1.
|
|
84
|
-
"@deepseek-ai/dsh-tools": "^0.1.
|
|
85
|
-
"@deepseek-ai/dsh-api-remotes": "^0.1.
|
|
86
|
-
"@deepseek-ai/dsh-client-connection": "^0.1.
|
|
87
|
-
"@deepseek-ai/dsh-client-locale": "^0.1.
|
|
77
|
+
"@deepseek-ai/cordis": "^4.0.2",
|
|
78
|
+
"@deepseek-ai/dsh-agent": "^0.1.5-rc.2",
|
|
79
|
+
"@deepseek-ai/dsh-llm": "^0.1.5-rc.2",
|
|
80
|
+
"@deepseek-ai/dsh-scope": "^0.1.5-rc.2",
|
|
81
|
+
"@deepseek-ai/dsh-session": "^0.1.5-rc.2",
|
|
82
|
+
"@deepseek-ai/dsh-skill": "^0.1.5-rc.2",
|
|
83
|
+
"@deepseek-ai/dsh-system-prompt": "^0.1.5-rc.2",
|
|
84
|
+
"@deepseek-ai/dsh-tools": "^0.1.5-rc.2",
|
|
85
|
+
"@deepseek-ai/dsh-api-remotes": "^0.1.5-rc.2",
|
|
86
|
+
"@deepseek-ai/dsh-client-connection": "^0.1.5-rc.2",
|
|
87
|
+
"@deepseek-ai/dsh-client-locale": "^0.1.5-rc.2",
|
|
88
88
|
"@deepseek-ai/dsh-client-runtime": "^0.1.1-rc.1",
|
|
89
89
|
"@deepseek-ai/dsh-client-schema-form": "^0.1.0-rc.7",
|
|
90
|
-
"@deepseek-ai/dsh-client-ui-primitives": "^0.1.
|
|
91
|
-
"@deepseek-ai/dsh-client-ui-settings": "^0.1.
|
|
92
|
-
"@deepseek-ai/dsh-client-ui-slots": "^0.1.
|
|
90
|
+
"@deepseek-ai/dsh-client-ui-primitives": "^0.1.5-rc.2",
|
|
91
|
+
"@deepseek-ai/dsh-client-ui-settings": "^0.1.5-rc.2",
|
|
92
|
+
"@deepseek-ai/dsh-client-ui-slots": "^0.1.5-rc.2",
|
|
93
93
|
"@deepseek-ai/dsh-client-web-react": "^0.1.0-rc.7",
|
|
94
|
-
"@deepseek-ai/dsh-typert-protocol": "^0.1.
|
|
95
|
-
"@deepseek-ai/schemastery": "^3.18.
|
|
94
|
+
"@deepseek-ai/dsh-typert-protocol": "^0.1.5-rc.2",
|
|
95
|
+
"@deepseek-ai/schemastery": "^3.18.2",
|
|
96
96
|
"react": "^18.2.0"
|
|
97
97
|
},
|
|
98
98
|
"dependencies": {
|
|
99
|
-
"@deepseek-ai/schemastery": "^3.18.
|
|
100
|
-
"js-yaml": "^4.1.0"
|
|
99
|
+
"@deepseek-ai/schemastery": "^3.18.2",
|
|
100
|
+
"js-yaml": "^4.1.0",
|
|
101
|
+
"yaml": "^2.8.1"
|
|
101
102
|
},
|
|
102
103
|
"devDependencies": {
|
|
103
|
-
"@deepseek-ai/dsh-skill-filesystem": "^0.1.
|
|
104
|
+
"@deepseek-ai/dsh-skill-filesystem": "^0.1.5-rc.2",
|
|
104
105
|
"@types/js-yaml": "^4.0.9",
|
|
105
106
|
"@types/node": "^22.0.0",
|
|
106
107
|
"@types/react": "^18.2.0",
|
|
107
108
|
"tsdown": "^0.22.2",
|
|
108
109
|
"typescript": "^6.0.3",
|
|
109
110
|
"vitest": "^4.1.8",
|
|
110
|
-
"
|
|
111
|
-
"
|
|
111
|
+
"@deepseek-ai/dsh-util-values": "^0.1.5-rc.2",
|
|
112
|
+
"zod": "^4.4.3"
|
|
112
113
|
}
|
|
113
114
|
}
|