@monotykamary/dsh-client-ui-reference 0.1.0-rc.10
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 +21 -0
- package/README.i18n.yaml +6 -0
- package/README.md +25 -0
- package/README.zh.md +25 -0
- package/lib/client.js +149 -0
- package/lib/index.js +11 -0
- package/lib/invariant.js +24 -0
- package/lib/types/client/index.d.ts +9 -0
- package/lib/types/client/locales.d.ts +30 -0
- package/lib/types/index.d.ts +9 -0
- package/lib/types/invariant.d.ts +16 -0
- package/package.json +77 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 DeepSeek
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
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-reference/README.md
|
|
5
|
+
README.md: 5c12f2d29ec9d3c6904bf2a68bab3f72aa5476a3
|
|
6
|
+
README.zh.md: 660bdbb423ec550a62f09b4fe45e258d2f9ad979
|
package/README.md
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# `@monotykamary/dsh-client-ui-reference`
|
|
2
|
+
|
|
3
|
+
English | [中文](README.zh.md)
|
|
4
|
+
|
|
5
|
+
Unified Web `@file` and `@session` source. The browser starts the `fileReferences/list` and `sessionReferenceResolver/candidates` Remote calls together for an unquoted token, deterministically orders files before sessions with locale-registered folder/file/session labels, and renders the rows under non-selectable file and session section headings without a redundant raw `reference` source title. Either failed candidate domain degrades independently. An open `@"…` token searches files only.
|
|
6
|
+
|
|
7
|
+
File picks preserve the natural text defined by the shared `@path` grammar as their hidden serialized and clipboard form. A file closes completion as an atomic inline reference displayed with a file glyph, business-color filename, and no capsule. A directory remains plain editable path text with a folder glyph and keeps the menu active at its trailing slash so the user can descend another level. Paths containing whitespace use `@"path with spaces"`, and a quote the user opened explicitly remains quoted.
|
|
8
|
+
|
|
9
|
+
Session picks insert an atomic inline reference whose hidden `ref` and clipboard representation are the canonical `@[label](dsh-session:…)` mention returned by the Host. Its visible form is a chat-bubble glyph plus the business-color session title, without a capsule; serialization never reconstructs identity from that title. Ordinary send carries the canonical mention through `session.prompt`; the session-reference service validates it and captures model context at `agent/pre-step`.
|
|
10
|
+
|
|
11
|
+
The `/client` export is the plugin body (`apply`/`inject`) only; candidate encoding stays internal to the registration effect.
|
|
12
|
+
|
|
13
|
+
## Model Experience
|
|
14
|
+
|
|
15
|
+
Indirectly, through `@monotykamary/dsh-file-reference-local` for path guidance and `@monotykamary/dsh-session-reference` for prepared session snapshots.
|
|
16
|
+
|
|
17
|
+
#### KV Cache effect
|
|
18
|
+
|
|
19
|
+
Candidate browsing has no model effect. A selected file or session changes only the new user-message suffix and any Host-prepared session-reference context that follows that message; earlier target history remains unchanged.
|
|
20
|
+
|
|
21
|
+
## Known Limitations and Deferred Work
|
|
22
|
+
|
|
23
|
+
- **Candidate failure is intentionally quiet** — one unavailable or failed Remote discovery call yields no rows for that domain. A session-reference preparation failure occurs after prompt acceptance and terminates that agent turn.
|
|
24
|
+
- **No browser-side file scan** — Web completion requires a mounted Host `ctx.fileReferences` provider; the browser cannot fall back to its own filesystem.
|
|
25
|
+
- **Session search remains metadata-only** — discovery filters session id, cwd, and the latest log-backed title through `ctx.sessionReferenceResolver`; message bodies and full transcripts are not searched.
|
package/README.zh.md
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# `@monotykamary/dsh-client-ui-reference`
|
|
2
|
+
|
|
3
|
+
[English](README.md) | 中文
|
|
4
|
+
|
|
5
|
+
统一的 Web `@file` 与 `@session` source。对于未加引号的 token,浏览器会同时启动 `fileReferences/list` 和 `sessionReferenceResolver/candidates` Remote 调用,以确定性顺序把文件排在会话之前,并使用注册在 locale 字典中的文件夹、文件与会话标签;各行分别渲染在不可选择的文件与会话分组标题下,不显示重复的原始 `reference` source 标题。任一候选领域的失败都会独立降级。尚未闭合的 `@"…` token 只搜索文件。
|
|
6
|
+
|
|
7
|
+
选择文件会把共享 `@path` 语法所定义的自然文本保留为隐藏的序列化与剪贴板形式。文件会关闭补全,并显示为文件图标加业务色文件名、无胶囊容器的原子行内引用。目录仍是带文件夹图标的可编辑路径纯文本,并让菜单在尾部斜杠处保持活跃,用户可以继续进入下一层。包含空白的路径使用 `@"path with spaces"`,用户显式打开的引号会继续保留。
|
|
8
|
+
|
|
9
|
+
选择会话会插入一个原子的行内引用,其隐藏 `ref` 与剪贴板表示均为宿主返回的规范 `@[label](dsh-session:…)` mention。可见形式为聊天气泡图标加业务色会话标题,不使用胶囊容器;序列化永远不会根据该标题重建身份。普通发送会通过 `session.prompt` 携带规范 mention,session-reference 服务会在 `agent/pre-step` 校验它并捕获模型上下文。
|
|
10
|
+
|
|
11
|
+
`/client` 只导出插件主体(`apply`/`inject`);候选编码保留在注册 effect 内部。
|
|
12
|
+
|
|
13
|
+
## 模型体验
|
|
14
|
+
|
|
15
|
+
间接影响模型体验:路径指引由 `@monotykamary/dsh-file-reference-local` 提供,准备后的会话快照由 `@monotykamary/dsh-session-reference` 提供。
|
|
16
|
+
|
|
17
|
+
#### KV 缓存影响
|
|
18
|
+
|
|
19
|
+
浏览候选项不会影响模型。选择文件或会话只会改变新用户消息的后缀,以及紧随该消息、由宿主准备的会话引用上下文;目标会话更早的历史保持不变。
|
|
20
|
+
|
|
21
|
+
## 已知限制与暂缓事项
|
|
22
|
+
|
|
23
|
+
- **候选失败有意保持静默**:Remote 发现调用不可用或失败时,该领域不产生候选行。会话引用准备失败发生在提示词接受后,并会终止该 agent 轮次。
|
|
24
|
+
- **浏览器侧不扫描文件**:Web 补全需要挂载宿主 `ctx.fileReferences` 提供方;浏览器无法回退到自身文件系统。
|
|
25
|
+
- **会话搜索仍仅使用元数据**:发现流程通过 `ctx.sessionReferenceResolver` 筛选 session id、cwd 和以日志为依据的最新标题;不搜索消息主体或完整 transcript(文本记录)。
|
package/lib/client.js
ADDED
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
window.__ModuleLoader__.load({
|
|
2
|
+
id: "@monotykamary/dsh-client-ui-reference",
|
|
3
|
+
factory: (require) => {
|
|
4
|
+
var module = { exports: {} };
|
|
5
|
+
var exports = module.exports;
|
|
6
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
7
|
+
//#region ../../context/file-reference/src/grammar.ts
|
|
8
|
+
/**
|
|
9
|
+
* Format a selected path as prompt text. Whitespace uses the quoted
|
|
10
|
+
* `@"path"` grammar; a quoted directory keeps that quote open after its
|
|
11
|
+
* trailing slash so completion can descend another level.
|
|
12
|
+
* @param candidate - selected file or directory.
|
|
13
|
+
* @param preserveQuote - retain an explicitly opened quote even when unnecessary.
|
|
14
|
+
* @returns the insertion value, or `undefined` for a path the editor grammar cannot represent safely.
|
|
15
|
+
*/
|
|
16
|
+
function formatFileMention(candidate, preserveQuote) {
|
|
17
|
+
const path = candidate.kind === "directory" ? `${candidate.path}/` : candidate.path;
|
|
18
|
+
if (/[\u0000-\u001f\u007f-\u009f"]/u.test(path)) return void 0;
|
|
19
|
+
if (!(preserveQuote || /\s/u.test(path))) return `@${path}`;
|
|
20
|
+
if (candidate.kind === "directory") return `@"${path}`;
|
|
21
|
+
return `@"${path}"`;
|
|
22
|
+
}
|
|
23
|
+
//#endregion
|
|
24
|
+
//#region lib/types/client/locales.js
|
|
25
|
+
/** `reference` namespace dictionaries for the unified `@` source. */
|
|
26
|
+
/** Dictionary namespace owned by this plugin. */
|
|
27
|
+
const NS = "reference";
|
|
28
|
+
/** Simplified Chinese dictionary (the key-set source of truth). */
|
|
29
|
+
const zh = {
|
|
30
|
+
"section.files": "文件与文件夹",
|
|
31
|
+
"section.sessions": "Session 对话",
|
|
32
|
+
"candidate.file": "文件",
|
|
33
|
+
"candidate.folder": "文件夹",
|
|
34
|
+
"candidate.session": "Session",
|
|
35
|
+
"candidate.noCwd": "(无工作目录)"
|
|
36
|
+
};
|
|
37
|
+
/** English dictionary, checked complete against the zh key set. */
|
|
38
|
+
const en = {
|
|
39
|
+
"section.files": "Files & folders",
|
|
40
|
+
"section.sessions": "Session conversations",
|
|
41
|
+
"candidate.file": "File",
|
|
42
|
+
"candidate.folder": "Folder",
|
|
43
|
+
"candidate.session": "Session",
|
|
44
|
+
"candidate.noCwd": "(no cwd)"
|
|
45
|
+
};
|
|
46
|
+
//#endregion
|
|
47
|
+
//#region lib/types/client/index.js
|
|
48
|
+
/** Required services: the trigger registry, the Remote namespaces, and the copy. */
|
|
49
|
+
const inject = [
|
|
50
|
+
"inputTriggers",
|
|
51
|
+
"locale",
|
|
52
|
+
"remote",
|
|
53
|
+
"remote.fileReferences",
|
|
54
|
+
"remote.sessionReferenceResolver"
|
|
55
|
+
];
|
|
56
|
+
/**
|
|
57
|
+
* Register the combined `@file` / `@session` source.
|
|
58
|
+
* @param ctx - client root context.
|
|
59
|
+
*/
|
|
60
|
+
function apply(ctx) {
|
|
61
|
+
ctx.effect(() => ctx.locale.register(NS, {
|
|
62
|
+
zh,
|
|
63
|
+
en
|
|
64
|
+
}), "ui-reference: dictionaries");
|
|
65
|
+
const t = ctx.locale.bind(NS);
|
|
66
|
+
const source = {
|
|
67
|
+
trigger: "@",
|
|
68
|
+
name: "reference",
|
|
69
|
+
showGroupTitle: false,
|
|
70
|
+
async candidates(session, { query, quoted, signal }) {
|
|
71
|
+
const files = ctx.remote.fileReferences.list(session.sessionId, query, signal).then((result) => result.ok ? result.value : [], () => []);
|
|
72
|
+
const sessions = quoted === true ? Promise.resolve([]) : ctx.remote.sessionReferenceResolver.candidates(session.sessionId, query, signal).then((result) => result.ok ? result.value : [], () => []);
|
|
73
|
+
const [fileItems, sessionItems] = await Promise.all([files, sessions]);
|
|
74
|
+
if (signal.aborted) return [];
|
|
75
|
+
return [...fileItems.flatMap((candidate) => fileCandidate(candidate, quoted === true, t)), ...sessionItems.map((candidate) => sessionCandidate(candidate, t))];
|
|
76
|
+
},
|
|
77
|
+
onPick({ candidate }) {
|
|
78
|
+
const value = parseCandidate(candidate.value);
|
|
79
|
+
if (value?.kind === "file") return value.fileKind === "directory" ? {
|
|
80
|
+
text: value.mention,
|
|
81
|
+
continue: true
|
|
82
|
+
} : { insert: {
|
|
83
|
+
source: "reference",
|
|
84
|
+
ref: value.mention,
|
|
85
|
+
label: value.label,
|
|
86
|
+
appearance: "file",
|
|
87
|
+
clipboardText: value.mention
|
|
88
|
+
} };
|
|
89
|
+
if (value?.kind === "session") return { insert: {
|
|
90
|
+
source: "reference",
|
|
91
|
+
ref: value.mention,
|
|
92
|
+
label: value.label,
|
|
93
|
+
appearance: "session",
|
|
94
|
+
clipboardText: value.mention
|
|
95
|
+
} };
|
|
96
|
+
},
|
|
97
|
+
codec: {
|
|
98
|
+
clipboardText: (ref) => ref,
|
|
99
|
+
serialize: (ref) => Promise.resolve(ref)
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
const inputTriggers = ctx.get("inputTriggers");
|
|
103
|
+
ctx.effect(() => inputTriggers.registerSource(source), "ui-reference: @ source");
|
|
104
|
+
}
|
|
105
|
+
function fileCandidate(candidate, preserveQuote, t) {
|
|
106
|
+
const mention = formatFileMention(candidate, preserveQuote);
|
|
107
|
+
if (mention === void 0) return [];
|
|
108
|
+
const name = candidate.path.slice(candidate.path.lastIndexOf("/") + 1);
|
|
109
|
+
const directory = candidate.kind === "directory";
|
|
110
|
+
const value = {
|
|
111
|
+
kind: "file",
|
|
112
|
+
fileKind: candidate.kind,
|
|
113
|
+
label: name,
|
|
114
|
+
mention
|
|
115
|
+
};
|
|
116
|
+
return [{
|
|
117
|
+
name: `${t(directory ? "candidate.folder" : "candidate.file")} · ${name}${directory ? "/" : ""}`,
|
|
118
|
+
description: candidate.path,
|
|
119
|
+
section: t("section.files"),
|
|
120
|
+
value: JSON.stringify(value)
|
|
121
|
+
}];
|
|
122
|
+
}
|
|
123
|
+
function sessionCandidate(candidate, t) {
|
|
124
|
+
const location = candidate.cwd ?? t("candidate.noCwd");
|
|
125
|
+
const description = `${candidate.label === candidate.sessionId ? "" : `${candidate.sessionId} · `}${location} · ${new Date(candidate.createdAt).toISOString()}`;
|
|
126
|
+
const value = {
|
|
127
|
+
kind: "session",
|
|
128
|
+
label: candidate.label,
|
|
129
|
+
mention: candidate.mention
|
|
130
|
+
};
|
|
131
|
+
return {
|
|
132
|
+
name: `${t("candidate.session")} · ${candidate.label}`,
|
|
133
|
+
description,
|
|
134
|
+
section: t("section.sessions"),
|
|
135
|
+
value: JSON.stringify(value)
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
function parseCandidate(value) {
|
|
139
|
+
if (value === void 0) return void 0;
|
|
140
|
+
return JSON.parse(value);
|
|
141
|
+
}
|
|
142
|
+
//#endregion
|
|
143
|
+
exports.apply = apply;
|
|
144
|
+
exports.inject = inject;
|
|
145
|
+
return module.exports;
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
|
|
149
|
+
//# sourceMappingURL=client.js.map
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
//#region lib/types/index.js
|
|
2
|
+
/**
|
|
3
|
+
* File/session reference plugin, 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.
|
|
7
|
+
*/
|
|
8
|
+
/** Host plugin body — no host-side behavior for this source plugin. */
|
|
9
|
+
function apply() {}
|
|
10
|
+
//#endregion
|
|
11
|
+
export { apply };
|
package/lib/invariant.js
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
//#region lib/types/invariant.js
|
|
2
|
+
/**
|
|
3
|
+
* Package-owned invariant companion for `@monotykamary/dsh-client-ui-reference`.
|
|
4
|
+
* @module @monotykamary/dsh-client-ui-reference/invariant
|
|
5
|
+
*/
|
|
6
|
+
const PACKAGE_NAME = "@monotykamary/dsh-client-ui-reference";
|
|
7
|
+
/** Cordis companion plugin name. */
|
|
8
|
+
const name = "client-ui-reference-invariant";
|
|
9
|
+
/** Service required before the companion can reserve package ownership. */
|
|
10
|
+
const inject = ["invariants"];
|
|
11
|
+
/**
|
|
12
|
+
* No runtime invariant: a single slash-source registration whose disposal is
|
|
13
|
+
* proven by the HMR-safety spec — it emits no cordis events and owns no
|
|
14
|
+
* cross-plugin mutable state.
|
|
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,9 @@
|
|
|
1
|
+
import type { ClientContext } from '@monotykamary/dsh-client-runtime/client';
|
|
2
|
+
/** Required services: the trigger registry, the Remote namespaces, and the copy. */
|
|
3
|
+
export declare const inject: string[];
|
|
4
|
+
/**
|
|
5
|
+
* Register the combined `@file` / `@session` source.
|
|
6
|
+
* @param ctx - client root context.
|
|
7
|
+
*/
|
|
8
|
+
export declare function apply(ctx: ClientContext): void;
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/** `reference` namespace dictionaries for the unified `@` source. */
|
|
2
|
+
/** Dictionary namespace owned by this plugin. */
|
|
3
|
+
export declare const NS = "reference";
|
|
4
|
+
/** Simplified Chinese dictionary (the key-set source of truth). */
|
|
5
|
+
export declare const zh: {
|
|
6
|
+
'section.files': string;
|
|
7
|
+
'section.sessions': string;
|
|
8
|
+
'candidate.file': string;
|
|
9
|
+
'candidate.folder': string;
|
|
10
|
+
'candidate.session': string;
|
|
11
|
+
'candidate.noCwd': string;
|
|
12
|
+
};
|
|
13
|
+
/** The reference namespace key union. */
|
|
14
|
+
export type ReferenceKey = keyof typeof zh;
|
|
15
|
+
declare module '@monotykamary/dsh-client-ui-slots' {
|
|
16
|
+
interface LocaleNamespaceMap {
|
|
17
|
+
/** The unified `@` reference menu's copy. */
|
|
18
|
+
reference: ReferenceKey;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
/** English dictionary, checked complete against the zh key set. */
|
|
22
|
+
export declare const en: {
|
|
23
|
+
'section.files': string;
|
|
24
|
+
'section.sessions': string;
|
|
25
|
+
'candidate.file': string;
|
|
26
|
+
'candidate.folder': string;
|
|
27
|
+
'candidate.session': string;
|
|
28
|
+
'candidate.noCwd': string;
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=locales.d.ts.map
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File/session reference plugin, 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.
|
|
6
|
+
*/
|
|
7
|
+
/** Host plugin body — no host-side behavior for this source plugin. */
|
|
8
|
+
export declare function apply(): void;
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Package-owned invariant companion for `@monotykamary/dsh-client-ui-reference`.
|
|
3
|
+
* @module @monotykamary/dsh-client-ui-reference/invariant
|
|
4
|
+
*/
|
|
5
|
+
import type { Context } from '@monotykamary/cordis';
|
|
6
|
+
/** Cordis companion plugin name. */
|
|
7
|
+
export declare const name = "client-ui-reference-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,77 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@monotykamary/dsh-client-ui-reference",
|
|
3
|
+
"description": "Unified Web @file and @session reference source",
|
|
4
|
+
"version": "0.1.0-rc.10",
|
|
5
|
+
"publishConfig": {
|
|
6
|
+
"access": "public"
|
|
7
|
+
},
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "git+https://github.com/deepseek-ai/deepseek-harness.git",
|
|
11
|
+
"directory": "packages/client/ui-reference"
|
|
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
|
+
"@monotykamary/dsh-client-runtime",
|
|
36
|
+
"@monotykamary/dsh-api-remotes",
|
|
37
|
+
"@monotykamary/dsh-client-locale",
|
|
38
|
+
"@monotykamary/dsh-client-ui-input-trigger"
|
|
39
|
+
],
|
|
40
|
+
"platform": "web"
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"license": "MIT",
|
|
44
|
+
"peerDependencies": {
|
|
45
|
+
"@monotykamary/dsh-client-ui-input-trigger": "^0.1.0-rc.10",
|
|
46
|
+
"@monotykamary/dsh-client-locale": "^0.1.0-rc.10",
|
|
47
|
+
"@monotykamary/dsh-api-remotes": "^0.1.0-rc.10",
|
|
48
|
+
"@monotykamary/dsh-invariants": "^0.1.0-rc.10",
|
|
49
|
+
"@monotykamary/cordis": "^4.0.1",
|
|
50
|
+
"@monotykamary/dsh-client-runtime": "^0.1.0-rc.10",
|
|
51
|
+
"@monotykamary/dsh-file-reference": "^0.1.0-rc.10",
|
|
52
|
+
"@monotykamary/dsh-session-reference": "^0.1.0-rc.10",
|
|
53
|
+
"@monotykamary/dsh-typert-protocol": "^0.1.0-rc.10"
|
|
54
|
+
},
|
|
55
|
+
"devDependencies": {
|
|
56
|
+
"@monotykamary/dsh-client-locale": "^0.1.0-rc.10",
|
|
57
|
+
"@monotykamary/dsh-client-runtime": "^0.1.0-rc.10",
|
|
58
|
+
"@monotykamary/dsh-api-remotes": "^0.1.0-rc.10",
|
|
59
|
+
"@monotykamary/dsh-client-ui-slots": "^0.1.0-rc.10",
|
|
60
|
+
"@monotykamary/cordis": "^4.0.1",
|
|
61
|
+
"@monotykamary/dsh-typert-protocol": "^0.1.0-rc.10",
|
|
62
|
+
"@monotykamary/dsh-invariants": "^0.1.0-rc.10",
|
|
63
|
+
"@monotykamary/dsh-client-ui-input-trigger": "^0.1.0-rc.10",
|
|
64
|
+
"@monotykamary/dsh-file-reference": "^0.1.0-rc.10",
|
|
65
|
+
"@monotykamary/dsh-session-reference": "^0.1.0-rc.10"
|
|
66
|
+
},
|
|
67
|
+
"files": [
|
|
68
|
+
"lib/index.js",
|
|
69
|
+
"lib/invariant.js",
|
|
70
|
+
"lib/client.js",
|
|
71
|
+
"lib/types/**/*.d.ts"
|
|
72
|
+
],
|
|
73
|
+
"scripts": {
|
|
74
|
+
"bundle": "tsdown",
|
|
75
|
+
"watch": "tsdown --watch"
|
|
76
|
+
}
|
|
77
|
+
}
|