@deepseek-ai/dsh-client-ui-directory-picker-native 0.0.1-rc.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/LICENSE +28 -0
- package/README.i18n.yaml +6 -0
- package/README.md +22 -0
- package/README.zh.md +22 -0
- package/lib/client.js +82 -0
- package/lib/index.js +12 -0
- package/lib/invariant.js +24 -0
- package/lib/types/client/flow.d.ts +17 -0
- package/lib/types/client/index.d.ts +20 -0
- package/lib/types/index.d.ts +10 -0
- package/lib/types/invariant.d.ts +16 -0
- package/package.json +71 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
BSD 3-Clause License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026, DeepSeek
|
|
4
|
+
|
|
5
|
+
Redistribution and use in source and binary forms, with or without
|
|
6
|
+
modification, are permitted provided that the following conditions are met:
|
|
7
|
+
|
|
8
|
+
1. Redistributions of source code must retain the above copyright notice, this
|
|
9
|
+
list of conditions and the following disclaimer.
|
|
10
|
+
|
|
11
|
+
2. Redistributions in binary form must reproduce the above copyright notice,
|
|
12
|
+
this list of conditions and the following disclaimer in the documentation
|
|
13
|
+
and/or other materials provided with the distribution.
|
|
14
|
+
|
|
15
|
+
3. Neither the name of the copyright holder nor the names of its
|
|
16
|
+
contributors may be used to endorse or promote products derived from
|
|
17
|
+
this software without specific prior written permission.
|
|
18
|
+
|
|
19
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
20
|
+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
21
|
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
22
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
23
|
+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
24
|
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
25
|
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
26
|
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
27
|
+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
28
|
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
package/README.i18n.yaml
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
|
2
|
+
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
|
3
|
+
# after editing either side, bring the other along and re-record with:
|
|
4
|
+
# pnpm run verify-translation-pairing --write packages/client/ui-directory-picker-native/README.md
|
|
5
|
+
README.md: feb944b38a17086e0fcc6e4da52e1f16a4055166
|
|
6
|
+
README.zh.md: 0420fb4d5edc0c05ce72d68243c7377b144ee639
|
package/README.md
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# @deepseek-ai/dsh-client-ui-directory-picker-native
|
|
2
|
+
|
|
3
|
+
English | [中文](README.zh.md)
|
|
4
|
+
|
|
5
|
+
Native directory-picker surface: the browser half of the native picking interaction. It fills ui-workspace's two directory-flow holes (`conversation.hero.workspace.directoryFlow` and `sidebar.workspaces.directoryFlow`) with a renderless occupant that answers each `open` request by driving the local Host's OS chooser through `ctx.workspaces.pickDirectory()`, then reports exactly one outcome — a picked path, a cancellation, or a failure — back through the owner conversation. The OS dialog itself belongs to [`dsh-host-directory-picker-native`](../../host/directory-picker-native/README.md); mounting this package composes the surface with that backend from one cordis.yml row, so no client code branches on a capability kind.
|
|
6
|
+
|
|
7
|
+
Both registrations install as one transactional effect through nested `slots.inject()` calls, because either declaring entry may activate later or replace its declaration. The occupant arms once per rising `open` edge, so re-renders — including an adoption that keeps `open` true while `busy` — never launch a second chooser, and the owner withdrawing `open` re-arms the next request. Settlements ride a ref so the answer reaches the owner's latest handlers rather than the ones captured when the chooser opened. An unmount (HMR replacing the occupant) discards the settlement wholesale: the wire carries no per-request abort, so the host-side chooser survives until answered, its answer lands nowhere, and the replacement instance re-arms under the owner's still-open request.
|
|
8
|
+
|
|
9
|
+
The node half is an empty `apply`: it exists so the plugin appears in the host cordis.yml and Loader, while the browser half ships through `exports["./client"]` and is discovered through the `dsh.client` manifest declaration.
|
|
10
|
+
|
|
11
|
+
## Model Experience
|
|
12
|
+
|
|
13
|
+
None, as the directory chooser is browser chrome; nothing here reaches a model request.
|
|
14
|
+
|
|
15
|
+
#### KV Cache effect
|
|
16
|
+
|
|
17
|
+
None; this package neither assembles nor sends a provider request.
|
|
18
|
+
|
|
19
|
+
## Known Limitations and Deferred Work
|
|
20
|
+
|
|
21
|
+
- **No cancellation of an open chooser** — the wire has no per-request abort, so a chooser already on the host display cannot be closed from the browser; a discarded settlement is simply ignored.
|
|
22
|
+
- **Local Host carriers only** — an OS dialog opens on the machine running the Host, so in-process and remote-browser deployments need the `-browse` composition instead. Platform failures surface through the owner's retryable folder dialog.
|
package/README.zh.md
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# @deepseek-ai/dsh-client-ui-directory-picker-native
|
|
2
|
+
|
|
3
|
+
[English](README.md) | 中文
|
|
4
|
+
|
|
5
|
+
原生目录选择界面:原生选取交互的浏览器半边。它通过 ui-workspace 的两个 directory-flow 洞(`conversation.hero.workspace.directoryFlow` 与 `sidebar.workspaces.directoryFlow`)装入一个无渲染占位者,每次收到 `open` 请求就用 `ctx.workspaces.pickDirectory()` 驱动本地 Host 的操作系统选择框,然后通过 owner 会话回报恰好一个结果——选中的路径、取消、或失败。系统对话框本身属于 [`dsh-host-directory-picker-native`](../../host/directory-picker-native/README.md);挂载本包即用一行 cordis.yml 把界面与该后端组合起来,因此没有任何客户端代码按能力种类分支。
|
|
6
|
+
|
|
7
|
+
两处注册通过嵌套的 `slots.inject()` 作为一个事务性 effect 安装,因为任一声明方条目都可能稍后激活或替换其声明。占位者在每个 `open` 上升沿只武装一次,所以重渲染(包括采纳期间 `busy` 而 `open` 仍为真)都不会再开第二个选择框;owner 撤回 `open` 会为下一次请求重新武装。结果经由 ref 回报,因此答案落到 owner 最新的处理器上,而不是打开选择框时捕获的那一套。卸载(HMR 替换占位者)会整体丢弃该结果:wire 上没有按请求的中止通道,所以 Host 侧的选择框会一直存在到被回答,它的答案无处可落,替换后的实例则在 owner 仍然打开的请求下重新武装。
|
|
8
|
+
|
|
9
|
+
node 半边是一个空 `apply`:它的存在只为让插件出现在 host 的 cordis.yml 与 Loader 中,浏览器半边经 `exports["./client"]` 出货,并通过 `dsh.client` 清单声明被发现。
|
|
10
|
+
|
|
11
|
+
## 模型体验
|
|
12
|
+
|
|
13
|
+
无,因为目录选择器属于浏览器界面;本包中的任何内容都不会进入模型请求。
|
|
14
|
+
|
|
15
|
+
#### KV Cache 影响
|
|
16
|
+
|
|
17
|
+
无;本包既不组装也不发送 provider 请求。
|
|
18
|
+
|
|
19
|
+
## 已知限制与暂缓事项
|
|
20
|
+
|
|
21
|
+
- **无法取消已打开的选择框** —— wire 上没有按请求的中止通道,因此已经出现在 Host 显示器上的选择框无法从浏览器关闭;被丢弃的结果只是被忽略。
|
|
22
|
+
- **仅限本地 Host 载体** —— 系统对话框开在运行 Host 的机器上,所以进程内与远程浏览器部署需要改用 `-browse` 组合。平台失败通过 owner 的可重试文件夹对话框呈现。
|
package/lib/client.js
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
window.__ModuleLoader__.load({
|
|
2
|
+
id: "@deepseek-ai/dsh-client-ui-directory-picker-native",
|
|
3
|
+
factory: (require) => {
|
|
4
|
+
var module = { exports: {} };
|
|
5
|
+
var exports = module.exports;
|
|
6
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
7
|
+
let react = require("react");
|
|
8
|
+
//#region lib/types/client/flow.js
|
|
9
|
+
/**
|
|
10
|
+
* The native picking occupant (package-internal; the `./client` surface
|
|
11
|
+
* exposes only the Loader exports). Same-package tests exercise it directly
|
|
12
|
+
* through this module.
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Renderless flow occupant: each rising `open` edge runs exactly one pick and
|
|
16
|
+
* reports exactly one outcome; the ref arms once per open so re-renders (and
|
|
17
|
+
* an adoption keeping `open` true while `busy`) never launch a second
|
|
18
|
+
* chooser. The owner withdrawing `open` re-arms the next request.
|
|
19
|
+
* @param props - owner conversation plus the injected pick call.
|
|
20
|
+
* @returns nothing — the native chooser renders on the host display.
|
|
21
|
+
*/
|
|
22
|
+
function NativeDirectoryFlow(props) {
|
|
23
|
+
const { open, pick } = props;
|
|
24
|
+
const armed = (0, react.useRef)(false);
|
|
25
|
+
const outcome = (0, react.useRef)(props);
|
|
26
|
+
outcome.current = props;
|
|
27
|
+
const alive = (0, react.useRef)(true);
|
|
28
|
+
(0, react.useEffect)(() => {
|
|
29
|
+
alive.current = true;
|
|
30
|
+
return () => {
|
|
31
|
+
alive.current = false;
|
|
32
|
+
};
|
|
33
|
+
}, []);
|
|
34
|
+
(0, react.useEffect)(() => {
|
|
35
|
+
if (!open) {
|
|
36
|
+
armed.current = false;
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
if (armed.current) return;
|
|
40
|
+
armed.current = true;
|
|
41
|
+
pick().then((path) => {
|
|
42
|
+
if (!alive.current) return;
|
|
43
|
+
if (path === null) outcome.current.onCancel();
|
|
44
|
+
else outcome.current.onPicked(path);
|
|
45
|
+
}, (reason) => {
|
|
46
|
+
if (!alive.current) return;
|
|
47
|
+
outcome.current.onError(reason instanceof Error ? reason.message : String(reason));
|
|
48
|
+
});
|
|
49
|
+
}, [open, pick]);
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
//#endregion
|
|
53
|
+
//#region lib/types/client/index.js
|
|
54
|
+
/** Required services (cordis fiber inject): the slot registry and the wire-facing workspace service. */
|
|
55
|
+
const inject = ["slots", "workspaces"];
|
|
56
|
+
/**
|
|
57
|
+
* Client plugin body: register the renderless native flow into both
|
|
58
|
+
* directory-flow holes through `slots.inject()` because the ui-workspace
|
|
59
|
+
* entries may activate later or replace their declarations.
|
|
60
|
+
* @param ctx - client root context.
|
|
61
|
+
*/
|
|
62
|
+
function apply(ctx) {
|
|
63
|
+
const injected = () => ({ pick: () => ctx.workspaces.pickDirectory() });
|
|
64
|
+
ctx.slots.inject("conversation.hero.workspace.directoryFlow", () => ctx.slots.inject("sidebar.workspaces.directoryFlow", function* () {
|
|
65
|
+
yield ctx.slots.register({
|
|
66
|
+
name: "conversation.hero.workspace.directoryFlow",
|
|
67
|
+
inject: injected
|
|
68
|
+
}, NativeDirectoryFlow);
|
|
69
|
+
yield ctx.slots.register({
|
|
70
|
+
name: "sidebar.workspaces.directoryFlow",
|
|
71
|
+
inject: injected
|
|
72
|
+
}, NativeDirectoryFlow);
|
|
73
|
+
}));
|
|
74
|
+
}
|
|
75
|
+
//#endregion
|
|
76
|
+
exports.apply = apply;
|
|
77
|
+
exports.inject = inject;
|
|
78
|
+
return module.exports;
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
//# sourceMappingURL=client.js.map
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
//#region lib/types/index.js
|
|
2
|
+
/**
|
|
3
|
+
* Native directory-picker surface, node half. Pure UI plugin: the empty apply
|
|
4
|
+
* exists so the plugin appears in the host cordis.yml / Loader; the browser
|
|
5
|
+
* half ships via exports["./client"], discovered through the package.json
|
|
6
|
+
* dsh.client declaration. The OS chooser it drives lives in
|
|
7
|
+
* `@deepseek-ai/dsh-host-directory-picker-native`.
|
|
8
|
+
*/
|
|
9
|
+
/** Host plugin body — no host-side behavior for this surface plugin. */
|
|
10
|
+
function apply() {}
|
|
11
|
+
//#endregion
|
|
12
|
+
export { apply };
|
package/lib/invariant.js
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
//#region lib/types/invariant.js
|
|
2
|
+
/**
|
|
3
|
+
* Package-owned invariant companion for `@deepseek-ai/dsh-client-ui-directory-picker-native`.
|
|
4
|
+
* @module @deepseek-ai/dsh-client-ui-directory-picker-native/invariant
|
|
5
|
+
*/
|
|
6
|
+
const PACKAGE_NAME = "@deepseek-ai/dsh-client-ui-directory-picker-native";
|
|
7
|
+
/** Cordis companion plugin name. */
|
|
8
|
+
const name = "client-ui-directory-picker-native-invariant";
|
|
9
|
+
/** Service required before the companion can reserve package ownership. */
|
|
10
|
+
const inject = ["invariants"];
|
|
11
|
+
/**
|
|
12
|
+
* No runtime invariant: the plugin registers a renderless flow occupant into
|
|
13
|
+
* two workspace holes as one transactional effect, whose disposal the
|
|
14
|
+
* HMR-safety spec proves, and it retains no state between picks.
|
|
15
|
+
*/
|
|
16
|
+
const install = () => {};
|
|
17
|
+
/**
|
|
18
|
+
* Register this package's invariant companion.
|
|
19
|
+
* @param ctx - Cordis context carrying the invariant service.
|
|
20
|
+
* @returns the installed registration's disposer after setup succeeds.
|
|
21
|
+
*/
|
|
22
|
+
const apply = (ctx) => Promise.resolve(ctx.invariants.register(PACKAGE_NAME, install));
|
|
23
|
+
//#endregion
|
|
24
|
+
export { apply, inject, name };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ReactElement } from 'react';
|
|
2
|
+
import type { DirectoryFlowOwnerProps } from '@deepseek-ai/dsh-client-ui-workspace/client';
|
|
3
|
+
/** Injected face: the wire call the flow drives (bound in apply's closure). */
|
|
4
|
+
export interface NativeFlowInjected {
|
|
5
|
+
/** Ask the local Host to open its native single-directory chooser. */
|
|
6
|
+
pick: () => Promise<string | null>;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Renderless flow occupant: each rising `open` edge runs exactly one pick and
|
|
10
|
+
* reports exactly one outcome; the ref arms once per open so re-renders (and
|
|
11
|
+
* an adoption keeping `open` true while `busy`) never launch a second
|
|
12
|
+
* chooser. The owner withdrawing `open` re-arms the next request.
|
|
13
|
+
* @param props - owner conversation plus the injected pick call.
|
|
14
|
+
* @returns nothing — the native chooser renders on the host display.
|
|
15
|
+
*/
|
|
16
|
+
export declare function NativeDirectoryFlow(props: DirectoryFlowOwnerProps & NativeFlowInjected): ReactElement | null;
|
|
17
|
+
//# sourceMappingURL=flow.d.ts.map
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser half of the native directory-picker backend: fills ui-workspace's
|
|
3
|
+
* two directory-flow holes with a renderless occupant that answers each
|
|
4
|
+
* `open` by driving `host.pickDirectory` (the node half's OS chooser) and
|
|
5
|
+
* reporting the one outcome — picked path, cancellation, or failure — back
|
|
6
|
+
* through the owner conversation. Mounting this package therefore composes
|
|
7
|
+
* both sides of the native interaction with one cordis.yml row; no client
|
|
8
|
+
* code branches on a capability kind.
|
|
9
|
+
*/
|
|
10
|
+
import type { ClientContext } from '@deepseek-ai/dsh-client-runtime/client';
|
|
11
|
+
/** Required services (cordis fiber inject): the slot registry and the wire-facing workspace service. */
|
|
12
|
+
export declare const inject: string[];
|
|
13
|
+
/**
|
|
14
|
+
* Client plugin body: register the renderless native flow into both
|
|
15
|
+
* directory-flow holes through `slots.inject()` because the ui-workspace
|
|
16
|
+
* entries may activate later or replace their declarations.
|
|
17
|
+
* @param ctx - client root context.
|
|
18
|
+
*/
|
|
19
|
+
export declare function apply(ctx: ClientContext): void;
|
|
20
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Native directory-picker surface, node half. Pure UI plugin: the empty apply
|
|
3
|
+
* exists so the plugin appears in the host cordis.yml / Loader; the browser
|
|
4
|
+
* half ships via exports["./client"], discovered through the package.json
|
|
5
|
+
* dsh.client declaration. The OS chooser it drives lives in
|
|
6
|
+
* `@deepseek-ai/dsh-host-directory-picker-native`.
|
|
7
|
+
*/
|
|
8
|
+
/** Host plugin body — no host-side behavior for this surface plugin. */
|
|
9
|
+
export declare function apply(): void;
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Package-owned invariant companion for `@deepseek-ai/dsh-client-ui-directory-picker-native`.
|
|
3
|
+
* @module @deepseek-ai/dsh-client-ui-directory-picker-native/invariant
|
|
4
|
+
*/
|
|
5
|
+
import type { Context } from '@deepseek-ai/cordis';
|
|
6
|
+
/** Cordis companion plugin name. */
|
|
7
|
+
export declare const name = "client-ui-directory-picker-native-invariant";
|
|
8
|
+
/** Service required before the companion can reserve package ownership. */
|
|
9
|
+
export declare const inject: string[];
|
|
10
|
+
/**
|
|
11
|
+
* Register this package's invariant companion.
|
|
12
|
+
* @param ctx - Cordis context carrying the invariant service.
|
|
13
|
+
* @returns the installed registration's disposer after setup succeeds.
|
|
14
|
+
*/
|
|
15
|
+
export declare const apply: (ctx: Context) => Promise<() => void>;
|
|
16
|
+
//# sourceMappingURL=invariant.d.ts.map
|
package/package.json
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@deepseek-ai/dsh-client-ui-directory-picker-native",
|
|
3
|
+
"description": "Native directory-picker surface: the renderless workspace directory-flow occupant driving the host's OS chooser",
|
|
4
|
+
"version": "0.0.1-rc.3",
|
|
5
|
+
"publishConfig": {
|
|
6
|
+
"access": "restricted"
|
|
7
|
+
},
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "git+https://github.com/deepseek-ai/deepseek-harness.git",
|
|
11
|
+
"directory": "packages/client/ui-directory-picker-native"
|
|
12
|
+
},
|
|
13
|
+
"type": "module",
|
|
14
|
+
"main": "lib/index.js",
|
|
15
|
+
"types": "lib/types/index.d.ts",
|
|
16
|
+
"exports": {
|
|
17
|
+
".": {
|
|
18
|
+
"types": "./lib/types/index.d.ts",
|
|
19
|
+
"default": "./lib/index.js"
|
|
20
|
+
},
|
|
21
|
+
"./invariant": {
|
|
22
|
+
"types": "./lib/types/invariant.d.ts",
|
|
23
|
+
"default": "./lib/invariant.js"
|
|
24
|
+
},
|
|
25
|
+
"./client": {
|
|
26
|
+
"types": "./lib/types/client/index.d.ts",
|
|
27
|
+
"default": "./lib/client.js"
|
|
28
|
+
},
|
|
29
|
+
"./src/*": "./src/*",
|
|
30
|
+
"./package.json": "./package.json"
|
|
31
|
+
},
|
|
32
|
+
"dsh": {
|
|
33
|
+
"client": {
|
|
34
|
+
"inject": [
|
|
35
|
+
"@deepseek-ai/dsh-client-runtime",
|
|
36
|
+
"@deepseek-ai/dsh-client-ui-workspace"
|
|
37
|
+
],
|
|
38
|
+
"platform": "web"
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"license": "BSD-3-Clause",
|
|
42
|
+
"peerDependencies": {
|
|
43
|
+
"react": "^18.2.0",
|
|
44
|
+
"@deepseek-ai/dsh-client-runtime": "^0.0.1-rc.3",
|
|
45
|
+
"@deepseek-ai/dsh-client-ui-workspace": "^0.0.1-rc.3",
|
|
46
|
+
"@deepseek-ai/dsh-client-ui-slots": "^0.0.1-rc.3",
|
|
47
|
+
"@deepseek-ai/cordis": "^4.0.1-rc.1",
|
|
48
|
+
"@deepseek-ai/dsh-invariants": "^0.0.1-rc.3"
|
|
49
|
+
},
|
|
50
|
+
"devDependencies": {
|
|
51
|
+
"@testing-library/react": "^16.1.0",
|
|
52
|
+
"@types/react": "~18.3.1",
|
|
53
|
+
"react": "^18.2.0",
|
|
54
|
+
"react-dom": "^18.2.0",
|
|
55
|
+
"@deepseek-ai/dsh-client-runtime": "^0.0.1-rc.3",
|
|
56
|
+
"@deepseek-ai/dsh-client-ui-slots": "^0.0.1-rc.3",
|
|
57
|
+
"@deepseek-ai/dsh-client-ui-workspace": "^0.0.1-rc.3",
|
|
58
|
+
"@deepseek-ai/dsh-invariants": "^0.0.1-rc.3",
|
|
59
|
+
"@deepseek-ai/cordis": "^4.0.1-rc.1"
|
|
60
|
+
},
|
|
61
|
+
"files": [
|
|
62
|
+
"lib/index.js",
|
|
63
|
+
"lib/invariant.js",
|
|
64
|
+
"lib/client.js",
|
|
65
|
+
"lib/types/**/*.d.ts"
|
|
66
|
+
],
|
|
67
|
+
"scripts": {
|
|
68
|
+
"bundle": "tsdown",
|
|
69
|
+
"watch": "tsdown --watch"
|
|
70
|
+
}
|
|
71
|
+
}
|