@deepseek-ai/dsh-client-ui-tool 0.1.5-alpha.1 → 0.1.5-alpha.2
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
|
@@ -47,112 +47,6 @@ window.__ModuleLoader__.load({
|
|
|
47
47
|
if (path.startsWith(`${root}/`)) return `~${path.slice(root.length)}`;
|
|
48
48
|
return path;
|
|
49
49
|
}
|
|
50
|
-
//#endregion
|
|
51
|
-
//#region lib/types/client/tool/models/tool-call-model.js
|
|
52
|
-
/** Locale key per generic row variant. */
|
|
53
|
-
const VARIANT_TITLE_KEYS = {
|
|
54
|
-
search: "tool.title.search",
|
|
55
|
-
read: "tool.title.read",
|
|
56
|
-
bash: "tool.title.bash",
|
|
57
|
-
write: "tool.title.write",
|
|
58
|
-
edit: "tool.title.edit",
|
|
59
|
-
code: "tool.title.code",
|
|
60
|
-
others: "tool.title.generic"
|
|
61
|
-
};
|
|
62
|
-
/**
|
|
63
|
-
* Known tool name -> variant.
|
|
64
|
-
*
|
|
65
|
-
* `cordis_define` is deliberately absent: ui-cordis registers a keyed
|
|
66
|
-
* `tool.call.toolview` entry for it, and a keyed hit REPLACES the generic row
|
|
67
|
-
* (this table is only reached through GenericToolCard, the dispatch fallback in
|
|
68
|
-
* ToolCallTree). An entry here would be unreachable, and a second title for the
|
|
69
|
-
* same call would be a second answer to a question the card already owns.
|
|
70
|
-
*/
|
|
71
|
-
const TOOL_VARIANTS = {
|
|
72
|
-
bash: "bash",
|
|
73
|
-
pwsh: "bash",
|
|
74
|
-
read: "read",
|
|
75
|
-
read_image: "read",
|
|
76
|
-
web_fetch: "read",
|
|
77
|
-
web_search: "search",
|
|
78
|
-
grep: "search",
|
|
79
|
-
glob: "search",
|
|
80
|
-
write: "write",
|
|
81
|
-
edit: "edit",
|
|
82
|
-
run_code: "code",
|
|
83
|
-
cordis_package_inspect: "read",
|
|
84
|
-
cordis_runtime_inspect: "read",
|
|
85
|
-
cordis_run: "others",
|
|
86
|
-
cordis_stop: "others",
|
|
87
|
-
cordis_undefine: "others"
|
|
88
|
-
};
|
|
89
|
-
/** Tool-owned titles that refine a generic row variant without replacing it. */
|
|
90
|
-
const TOOL_TITLE_KEYS = {
|
|
91
|
-
cordis_package_inspect: "tool.title.inspect",
|
|
92
|
-
cordis_runtime_inspect: "tool.title.inspect",
|
|
93
|
-
cordis_run: "tool.title.runCordis",
|
|
94
|
-
cordis_stop: "tool.title.stopCordis",
|
|
95
|
-
cordis_undefine: "tool.title.removeCordis",
|
|
96
|
-
pwsh: "tool.title.pwsh",
|
|
97
|
-
read_image: "tool.title.readImage"
|
|
98
|
-
};
|
|
99
|
-
/**
|
|
100
|
-
* Classify a tool name into its row variant.
|
|
101
|
-
* @param toolName - wire tool name.
|
|
102
|
-
* @returns matching variant, others when unknown.
|
|
103
|
-
*/
|
|
104
|
-
function classifyTool(toolName) {
|
|
105
|
-
return TOOL_VARIANTS[toolName] ?? "others";
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* Flatten a settled result's content blocks to display text: text blocks
|
|
109
|
-
* verbatim, other block shapes as pretty JSON. Empty content on a failed call
|
|
110
|
-
* falls back to the structured error's `name: code` line.
|
|
111
|
-
* @param node - the settled result node.
|
|
112
|
-
* @returns the flattened result text (may be empty).
|
|
113
|
-
*/
|
|
114
|
-
function resultText(node) {
|
|
115
|
-
const parts = [];
|
|
116
|
-
for (const block of node.content) if (block.type === "text") parts.push(block.text);
|
|
117
|
-
else parts.push(JSON.stringify(block, null, 2));
|
|
118
|
-
if (parts.length === 0 && node.error !== void 0) parts.push(`${node.error.name}: ${node.error.code}`);
|
|
119
|
-
return parts.join("\n");
|
|
120
|
-
}
|
|
121
|
-
function parseArgs(argsRaw) {
|
|
122
|
-
try {
|
|
123
|
-
return JSON.parse(argsRaw);
|
|
124
|
-
} catch {
|
|
125
|
-
return;
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
function firstLine(text) {
|
|
129
|
-
const nl = text.indexOf("\n");
|
|
130
|
-
return nl === -1 ? text : text.slice(0, nl);
|
|
131
|
-
}
|
|
132
|
-
function pickString(args, keys) {
|
|
133
|
-
for (const key of keys) {
|
|
134
|
-
const v = args[key];
|
|
135
|
-
if (typeof v === "string" && v !== "") return v;
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
/** Summary key preference per variant (args-derived; result-derived summaries are a ledger item). */
|
|
139
|
-
const SUMMARY_KEYS = {
|
|
140
|
-
bash: ["description", "command"],
|
|
141
|
-
read: [
|
|
142
|
-
"path",
|
|
143
|
-
"file_path",
|
|
144
|
-
"url"
|
|
145
|
-
],
|
|
146
|
-
search: [
|
|
147
|
-
"query",
|
|
148
|
-
"pattern",
|
|
149
|
-
"url"
|
|
150
|
-
],
|
|
151
|
-
write: ["path", "file_path"],
|
|
152
|
-
edit: ["path", "file_path"],
|
|
153
|
-
code: ["description"],
|
|
154
|
-
others: []
|
|
155
|
-
};
|
|
156
50
|
/**
|
|
157
51
|
* Strip the workspace root from a workspace-rooted absolute path (display only).
|
|
158
52
|
* @param text - the path to shorten.
|
|
@@ -165,80 +59,6 @@ window.__ModuleLoader__.load({
|
|
|
165
59
|
if (text.startsWith(`${root}/`) || text.startsWith(`${root}\\`)) return text.slice(root.length + 1);
|
|
166
60
|
return text;
|
|
167
61
|
}
|
|
168
|
-
function deriveSummary(variant, argsRaw) {
|
|
169
|
-
const parsed = parseArgs(argsRaw);
|
|
170
|
-
if (typeof parsed !== "object" || parsed === null) return firstLine(argsRaw);
|
|
171
|
-
const args = parsed;
|
|
172
|
-
if (variant === "search" && Array.isArray(args.queries)) {
|
|
173
|
-
const queries = args.queries.filter((query) => typeof query === "string" && query !== "");
|
|
174
|
-
if (queries.length > 0) return queries.map(firstLine).join(", ");
|
|
175
|
-
}
|
|
176
|
-
const picked = pickString(args, SUMMARY_KEYS[variant]);
|
|
177
|
-
if (picked !== void 0) return firstLine(picked);
|
|
178
|
-
for (const v of Object.values(args)) if (typeof v === "string" && v !== "") return firstLine(v);
|
|
179
|
-
return firstLine(argsRaw);
|
|
180
|
-
}
|
|
181
|
-
/** Path keys only — never `url` (web_fetch lands on the read variant). */
|
|
182
|
-
const FILE_PATH_KEYS = ["path", "file_path"];
|
|
183
|
-
/** File-tool variants whose summary may be an openable workspace path. */
|
|
184
|
-
const FILE_PATH_VARIANTS = new Set([
|
|
185
|
-
"read",
|
|
186
|
-
"write",
|
|
187
|
-
"edit"
|
|
188
|
-
]);
|
|
189
|
-
function deriveFilePath(variant, argsRaw) {
|
|
190
|
-
if (!FILE_PATH_VARIANTS.has(variant)) return void 0;
|
|
191
|
-
const parsed = parseArgs(argsRaw);
|
|
192
|
-
if (typeof parsed !== "object" || parsed === null) return void 0;
|
|
193
|
-
const picked = pickString(parsed, FILE_PATH_KEYS);
|
|
194
|
-
return picked === void 0 ? void 0 : firstLine(picked);
|
|
195
|
-
}
|
|
196
|
-
/**
|
|
197
|
-
* Format one argument payload when its generic input body becomes visible.
|
|
198
|
-
* @param variant - row presentation selected for the Tool name.
|
|
199
|
-
* @param argsRaw - original argument JSON or incomplete raw text.
|
|
200
|
-
* @returns display body, or null for empty input.
|
|
201
|
-
*/
|
|
202
|
-
function formatToolBody(variant, argsRaw) {
|
|
203
|
-
if (argsRaw === "") return null;
|
|
204
|
-
const parsed = parseArgs(argsRaw);
|
|
205
|
-
if (parsed === void 0) return argsRaw;
|
|
206
|
-
if (variant === "code" && typeof parsed === "object" && parsed !== null) {
|
|
207
|
-
const code = parsed.code;
|
|
208
|
-
if (typeof code === "string" && code !== "") return code;
|
|
209
|
-
}
|
|
210
|
-
return JSON.stringify(parsed, null, 2);
|
|
211
|
-
}
|
|
212
|
-
/**
|
|
213
|
-
* Derive the full row model from a frozen call slice.
|
|
214
|
-
* @param toolName - wire tool name (dispatch-supplied; survives windowless results).
|
|
215
|
-
* @param block - RunningToolCall or ToolResultNode off the snapshot caches.
|
|
216
|
-
* @param cwd - session workspace root; workspace-rooted path summaries display relative to it.
|
|
217
|
-
* @param home - host account home; a leftover POSIX home path displays as `~`.
|
|
218
|
-
* @returns the row model.
|
|
219
|
-
*/
|
|
220
|
-
function toolRowModel(toolName, block, cwd, home) {
|
|
221
|
-
const variant = classifyTool(toolName);
|
|
222
|
-
const done = "kind" in block;
|
|
223
|
-
const argsRaw = (done ? block.call?.argsRaw : block.argsRaw) ?? "";
|
|
224
|
-
const state = !done ? "running" : block.error?.code === "interrupted" ? "stopped" : block.isError ? "error" : "ok";
|
|
225
|
-
const base = argsRaw === "" ? block.callId : abbreviateHomePath(relativizeToCwd(deriveSummary(variant, argsRaw), cwd), home);
|
|
226
|
-
const toolTitleKey = TOOL_TITLE_KEYS[toolName];
|
|
227
|
-
const summary = variant === "others" && toolName !== "" && toolTitleKey === void 0 ? `${toolName} · ${base}` : base;
|
|
228
|
-
const output = done ? resultText(block) || null : null;
|
|
229
|
-
const errorSummary = state === "error" && output !== null ? firstLine(output) : null;
|
|
230
|
-
const bodyRaw = argsRaw === "" ? null : argsRaw;
|
|
231
|
-
return {
|
|
232
|
-
variant,
|
|
233
|
-
titleKey: toolTitleKey ?? VARIANT_TITLE_KEYS[variant],
|
|
234
|
-
summary,
|
|
235
|
-
filePath: deriveFilePath(variant, argsRaw),
|
|
236
|
-
bodyRaw,
|
|
237
|
-
output,
|
|
238
|
-
errorSummary,
|
|
239
|
-
state
|
|
240
|
-
};
|
|
241
|
-
}
|
|
242
62
|
//#endregion
|
|
243
63
|
//#region lib/types/client/tool/models/raw-tool-call.js
|
|
244
64
|
const parsedCalls = /* @__PURE__ */ new WeakMap();
|
|
@@ -971,6 +791,186 @@ window.__ModuleLoader__.load({
|
|
|
971
791
|
};
|
|
972
792
|
}
|
|
973
793
|
//#endregion
|
|
794
|
+
//#region lib/types/client/tool/models/tool-call-model.js
|
|
795
|
+
/** Locale key per generic row variant. */
|
|
796
|
+
const VARIANT_TITLE_KEYS = {
|
|
797
|
+
search: "tool.title.search",
|
|
798
|
+
read: "tool.title.read",
|
|
799
|
+
bash: "tool.title.bash",
|
|
800
|
+
write: "tool.title.write",
|
|
801
|
+
edit: "tool.title.edit",
|
|
802
|
+
code: "tool.title.code",
|
|
803
|
+
others: "tool.title.generic"
|
|
804
|
+
};
|
|
805
|
+
/**
|
|
806
|
+
* Known tool name -> variant.
|
|
807
|
+
*
|
|
808
|
+
* `cordis_define` is deliberately absent: ui-cordis registers a keyed
|
|
809
|
+
* `tool.call.toolview` entry for it, and a keyed hit REPLACES the generic row
|
|
810
|
+
* (this table is only reached through GenericToolCard, the dispatch fallback in
|
|
811
|
+
* ToolCallTree). An entry here would be unreachable, and a second title for the
|
|
812
|
+
* same call would be a second answer to a question the card already owns.
|
|
813
|
+
*/
|
|
814
|
+
const TOOL_VARIANTS = {
|
|
815
|
+
bash: "bash",
|
|
816
|
+
pwsh: "bash",
|
|
817
|
+
read: "read",
|
|
818
|
+
read_image: "read",
|
|
819
|
+
web_fetch: "read",
|
|
820
|
+
web_search: "search",
|
|
821
|
+
grep: "search",
|
|
822
|
+
glob: "search",
|
|
823
|
+
write: "write",
|
|
824
|
+
edit: "edit",
|
|
825
|
+
run_code: "code",
|
|
826
|
+
cordis_package_inspect: "read",
|
|
827
|
+
cordis_runtime_inspect: "read",
|
|
828
|
+
cordis_run: "others",
|
|
829
|
+
cordis_stop: "others",
|
|
830
|
+
cordis_undefine: "others"
|
|
831
|
+
};
|
|
832
|
+
/** Tool-owned titles that refine a generic row variant without replacing it. */
|
|
833
|
+
const TOOL_TITLE_KEYS = {
|
|
834
|
+
cordis_package_inspect: "tool.title.inspect",
|
|
835
|
+
cordis_runtime_inspect: "tool.title.inspect",
|
|
836
|
+
cordis_run: "tool.title.runCordis",
|
|
837
|
+
cordis_stop: "tool.title.stopCordis",
|
|
838
|
+
cordis_undefine: "tool.title.removeCordis",
|
|
839
|
+
pwsh: "tool.title.pwsh",
|
|
840
|
+
read_image: "tool.title.readImage"
|
|
841
|
+
};
|
|
842
|
+
/**
|
|
843
|
+
* Classify a tool name into its row variant.
|
|
844
|
+
* @param toolName - wire tool name.
|
|
845
|
+
* @returns matching variant, others when unknown.
|
|
846
|
+
*/
|
|
847
|
+
function classifyTool(toolName) {
|
|
848
|
+
return TOOL_VARIANTS[toolName] ?? "others";
|
|
849
|
+
}
|
|
850
|
+
/**
|
|
851
|
+
* Flatten a settled result's content blocks to display text: text blocks
|
|
852
|
+
* verbatim, other block shapes as pretty JSON. Empty content on a failed call
|
|
853
|
+
* falls back to the structured error's `name: code` line.
|
|
854
|
+
* @param node - the settled result node.
|
|
855
|
+
* @returns the flattened result text (may be empty).
|
|
856
|
+
*/
|
|
857
|
+
function resultText(node) {
|
|
858
|
+
const parts = [];
|
|
859
|
+
for (const block of node.content) if (block.type === "text") parts.push(block.text);
|
|
860
|
+
else parts.push(JSON.stringify(block, null, 2));
|
|
861
|
+
if (parts.length === 0 && node.error !== void 0) parts.push(`${node.error.name}: ${node.error.code}`);
|
|
862
|
+
return parts.join("\n");
|
|
863
|
+
}
|
|
864
|
+
function parseArgs(argsRaw) {
|
|
865
|
+
try {
|
|
866
|
+
return JSON.parse(argsRaw);
|
|
867
|
+
} catch {
|
|
868
|
+
return;
|
|
869
|
+
}
|
|
870
|
+
}
|
|
871
|
+
function firstLine(text) {
|
|
872
|
+
const nl = text.indexOf("\n");
|
|
873
|
+
return nl === -1 ? text : text.slice(0, nl);
|
|
874
|
+
}
|
|
875
|
+
function pickString(args, keys) {
|
|
876
|
+
for (const key of keys) {
|
|
877
|
+
const v = args[key];
|
|
878
|
+
if (typeof v === "string" && v !== "") return v;
|
|
879
|
+
}
|
|
880
|
+
}
|
|
881
|
+
/** Summary key preference per variant (args-derived; result-derived summaries are a ledger item). */
|
|
882
|
+
const SUMMARY_KEYS = {
|
|
883
|
+
bash: ["description", "command"],
|
|
884
|
+
read: [
|
|
885
|
+
"path",
|
|
886
|
+
"file_path",
|
|
887
|
+
"url"
|
|
888
|
+
],
|
|
889
|
+
search: [
|
|
890
|
+
"query",
|
|
891
|
+
"pattern",
|
|
892
|
+
"url"
|
|
893
|
+
],
|
|
894
|
+
write: ["path", "file_path"],
|
|
895
|
+
edit: ["path", "file_path"],
|
|
896
|
+
code: ["description"],
|
|
897
|
+
others: []
|
|
898
|
+
};
|
|
899
|
+
function deriveSummary(variant, argsRaw) {
|
|
900
|
+
const parsed = parseArgs(argsRaw);
|
|
901
|
+
if (typeof parsed !== "object" || parsed === null) return firstLine(argsRaw);
|
|
902
|
+
const args = parsed;
|
|
903
|
+
if (variant === "search" && Array.isArray(args.queries)) {
|
|
904
|
+
const queries = args.queries.filter((query) => typeof query === "string" && query !== "");
|
|
905
|
+
if (queries.length > 0) return queries.map(firstLine).join(", ");
|
|
906
|
+
}
|
|
907
|
+
const picked = pickString(args, SUMMARY_KEYS[variant]);
|
|
908
|
+
if (picked !== void 0) return firstLine(picked);
|
|
909
|
+
for (const v of Object.values(args)) if (typeof v === "string" && v !== "") return firstLine(v);
|
|
910
|
+
return firstLine(argsRaw);
|
|
911
|
+
}
|
|
912
|
+
/** Path keys only — never `url` (web_fetch lands on the read variant). */
|
|
913
|
+
const FILE_PATH_KEYS = ["path", "file_path"];
|
|
914
|
+
/** File-tool variants whose summary may be an openable workspace path. */
|
|
915
|
+
const FILE_PATH_VARIANTS = new Set([
|
|
916
|
+
"read",
|
|
917
|
+
"write",
|
|
918
|
+
"edit"
|
|
919
|
+
]);
|
|
920
|
+
function deriveFilePath(variant, argsRaw) {
|
|
921
|
+
if (!FILE_PATH_VARIANTS.has(variant)) return void 0;
|
|
922
|
+
const parsed = parseArgs(argsRaw);
|
|
923
|
+
if (typeof parsed !== "object" || parsed === null) return void 0;
|
|
924
|
+
const picked = pickString(parsed, FILE_PATH_KEYS);
|
|
925
|
+
return picked === void 0 ? void 0 : firstLine(picked);
|
|
926
|
+
}
|
|
927
|
+
/**
|
|
928
|
+
* Format one argument payload when its generic input body becomes visible.
|
|
929
|
+
* @param variant - row presentation selected for the Tool name.
|
|
930
|
+
* @param argsRaw - original argument JSON or incomplete raw text.
|
|
931
|
+
* @returns display body, or null for empty input.
|
|
932
|
+
*/
|
|
933
|
+
function formatToolBody(variant, argsRaw) {
|
|
934
|
+
if (argsRaw === "") return null;
|
|
935
|
+
const parsed = parseArgs(argsRaw);
|
|
936
|
+
if (parsed === void 0) return argsRaw;
|
|
937
|
+
if (variant === "code" && typeof parsed === "object" && parsed !== null) {
|
|
938
|
+
const code = parsed.code;
|
|
939
|
+
if (typeof code === "string" && code !== "") return code;
|
|
940
|
+
}
|
|
941
|
+
return JSON.stringify(parsed, null, 2);
|
|
942
|
+
}
|
|
943
|
+
/**
|
|
944
|
+
* Derive the full row model from a frozen call slice.
|
|
945
|
+
* @param toolName - wire tool name (dispatch-supplied; survives windowless results).
|
|
946
|
+
* @param block - RunningToolCall or ToolResultNode off the snapshot caches.
|
|
947
|
+
* @param cwd - session workspace root; workspace-rooted path summaries display relative to it.
|
|
948
|
+
* @param home - host account home; a leftover POSIX home path displays as `~`.
|
|
949
|
+
* @returns the row model.
|
|
950
|
+
*/
|
|
951
|
+
function toolRowModel(toolName, block, cwd, home) {
|
|
952
|
+
const variant = classifyTool(toolName);
|
|
953
|
+
const done = "kind" in block;
|
|
954
|
+
const argsRaw = (done ? block.call?.argsRaw : block.argsRaw) ?? "";
|
|
955
|
+
const state = !done ? "running" : block.error?.code === "interrupted" ? "stopped" : block.isError ? "error" : "ok";
|
|
956
|
+
const base = argsRaw === "" ? block.callId : abbreviateHomePath(relativizeToCwd(deriveSummary(variant, argsRaw), cwd), home);
|
|
957
|
+
const toolTitleKey = TOOL_TITLE_KEYS[toolName];
|
|
958
|
+
const summary = variant === "others" && toolName !== "" && toolTitleKey === void 0 ? `${toolName} · ${base}` : base;
|
|
959
|
+
const output = done ? resultText(block) || null : null;
|
|
960
|
+
const errorSummary = state === "error" && output !== null ? firstLine(output) : null;
|
|
961
|
+
const bodyRaw = argsRaw === "" ? null : argsRaw;
|
|
962
|
+
return {
|
|
963
|
+
variant,
|
|
964
|
+
titleKey: toolTitleKey ?? VARIANT_TITLE_KEYS[variant],
|
|
965
|
+
summary,
|
|
966
|
+
filePath: deriveFilePath(variant, argsRaw),
|
|
967
|
+
bodyRaw,
|
|
968
|
+
output,
|
|
969
|
+
errorSummary,
|
|
970
|
+
state
|
|
971
|
+
};
|
|
972
|
+
}
|
|
973
|
+
//#endregion
|
|
974
974
|
//#region ../../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs
|
|
975
975
|
function r(e) {
|
|
976
976
|
var t, f, n = "";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** Pure image-card derivation from raw result content and metadata. @module */
|
|
2
2
|
import type { ImageAttachmentRef } from '@deepseek-ai/dsh-attachment';
|
|
3
|
-
import {
|
|
3
|
+
import type { ToolCallBlock } from './tool-call-model.ts';
|
|
4
4
|
/**
|
|
5
5
|
* The image-card material one settled call contributes: the display label plus
|
|
6
6
|
* the durable references the attachment slot renders as a gallery.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** Pure read-card derivation from raw result content and metadata. @module */
|
|
2
2
|
import type { ReadBlockProps } from '@deepseek-ai/dsh-client-ui-primitives';
|
|
3
|
-
import {
|
|
3
|
+
import type { ToolCallBlock } from './tool-call-model.ts';
|
|
4
4
|
/**
|
|
5
5
|
* Content lines the chat row's resident read body shows before collapsing the
|
|
6
6
|
* middle — half the primitive's own default, which the details panel keeps. A
|
|
@@ -56,13 +56,6 @@ export interface ToolRowModel {
|
|
|
56
56
|
* @returns the flattened result text (may be empty).
|
|
57
57
|
*/
|
|
58
58
|
export declare function resultText(node: ToolResultNode): string;
|
|
59
|
-
/**
|
|
60
|
-
* Strip the workspace root from a workspace-rooted absolute path (display only).
|
|
61
|
-
* @param text - the path to shorten.
|
|
62
|
-
* @param cwd - session workspace root; absent or empty leaves the path unchanged.
|
|
63
|
-
* @returns the path relative to the workspace root, or unchanged when it is not rooted there.
|
|
64
|
-
*/
|
|
65
|
-
export declare function relativizeToCwd(text: string, cwd: string | undefined): string;
|
|
66
59
|
/**
|
|
67
60
|
* Format one argument payload when its generic input body becomes visible.
|
|
68
61
|
* @param variant - row presentation selected for the Tool name.
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deepseek-ai/dsh-client-ui-tool",
|
|
3
3
|
"description": "Client Tool call-tree renderer and keyed per-tool presentation slot",
|
|
4
|
-
"version": "0.1.5-alpha.
|
|
4
|
+
"version": "0.1.5-alpha.2",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
@@ -37,9 +37,6 @@
|
|
|
37
37
|
}
|
|
38
38
|
},
|
|
39
39
|
"license": "MIT",
|
|
40
|
-
"dependencies": {
|
|
41
|
-
"clsx": "^2.0.0"
|
|
42
|
-
},
|
|
43
40
|
"peerDependencies": {
|
|
44
41
|
"@deepseek-ai/cordis": "^4.0.2"
|
|
45
42
|
},
|
|
@@ -48,28 +45,29 @@
|
|
|
48
45
|
"@types/react": "~18.3.1",
|
|
49
46
|
"react": "^18.2.0",
|
|
50
47
|
"react-dom": "^18.2.0",
|
|
51
|
-
"
|
|
52
|
-
"@deepseek-ai/dsh-agent": "^0.1.5-alpha.
|
|
53
|
-
"@deepseek-ai/dsh-
|
|
54
|
-
"@deepseek-ai/dsh-
|
|
55
|
-
"@deepseek-ai/dsh-
|
|
56
|
-
"@deepseek-ai/dsh-
|
|
57
|
-
"@deepseek-ai/dsh-
|
|
58
|
-
"@deepseek-ai/dsh-
|
|
59
|
-
"@deepseek-ai/dsh-
|
|
60
|
-
"@deepseek-ai/
|
|
61
|
-
"@deepseek-ai/dsh-client-
|
|
62
|
-
"@deepseek-ai/dsh-client-
|
|
63
|
-
"@deepseek-ai/dsh-client-ui-
|
|
64
|
-
"@deepseek-ai/dsh-client-ui-
|
|
65
|
-
"@deepseek-ai/dsh-
|
|
66
|
-
"@deepseek-ai/dsh-
|
|
67
|
-
"@deepseek-ai/dsh-client-ui-
|
|
68
|
-
"@deepseek-ai/dsh-client-ui-
|
|
69
|
-
"@deepseek-ai/dsh-client-
|
|
70
|
-
"@deepseek-ai/dsh-util-workspace-path": "^0.1.5-alpha.
|
|
71
|
-
"@deepseek-ai/dsh-attachment": "^0.1.5-alpha.
|
|
72
|
-
"@deepseek-ai/
|
|
48
|
+
"clsx": "^2.0.0",
|
|
49
|
+
"@deepseek-ai/dsh-agent": "^0.1.5-alpha.2",
|
|
50
|
+
"@deepseek-ai/dsh-spill-policy": "^0.1.5-alpha.2",
|
|
51
|
+
"@deepseek-ai/dsh-llm": "^0.1.5-alpha.2",
|
|
52
|
+
"@deepseek-ai/dsh-session": "^0.1.5-alpha.2",
|
|
53
|
+
"@deepseek-ai/dsh-system-prompt": "^0.1.5-alpha.2",
|
|
54
|
+
"@deepseek-ai/dsh-tools": "^0.1.5-alpha.2",
|
|
55
|
+
"@deepseek-ai/dsh-spill": "^0.1.5-alpha.2",
|
|
56
|
+
"@deepseek-ai/dsh-code-runtime-worker-thread": "^0.1.5-alpha.2",
|
|
57
|
+
"@deepseek-ai/cordis": "^4.0.2",
|
|
58
|
+
"@deepseek-ai/dsh-client-connection": "^0.1.5-alpha.2",
|
|
59
|
+
"@deepseek-ai/dsh-client-ui-conversation": "^0.1.5-alpha.2",
|
|
60
|
+
"@deepseek-ai/dsh-client-ui-primitives": "^0.1.5-alpha.2",
|
|
61
|
+
"@deepseek-ai/dsh-client-ui-slots": "^0.1.5-alpha.2",
|
|
62
|
+
"@deepseek-ai/dsh-api-workspace-controller": "^0.1.5-alpha.2",
|
|
63
|
+
"@deepseek-ai/dsh-client-ui-chat": "^0.1.5-alpha.2",
|
|
64
|
+
"@deepseek-ai/dsh-client-ui-renderer": "^0.1.5-alpha.2",
|
|
65
|
+
"@deepseek-ai/dsh-client-ui-session": "^0.1.5-alpha.2",
|
|
66
|
+
"@deepseek-ai/dsh-client-test-runtime": "^0.1.5-alpha.2",
|
|
67
|
+
"@deepseek-ai/dsh-util-workspace-path": "^0.1.5-alpha.2",
|
|
68
|
+
"@deepseek-ai/dsh-attachment": "^0.1.5-alpha.2",
|
|
69
|
+
"@deepseek-ai/dsh-api-remotes": "^0.1.5-alpha.2",
|
|
70
|
+
"@deepseek-ai/dsh-client-locale": "^0.1.5-alpha.2"
|
|
73
71
|
},
|
|
74
72
|
"files": [
|
|
75
73
|
"lib/index.js",
|