Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
594 changes: 493 additions & 101 deletions patches/@deepseek-ai+dsh-api-session-controller+0.1.5-rc.2.patch

Large diffs are not rendered by default.

24 changes: 24 additions & 0 deletions patches/@deepseek-ai+dsh-client-file-upload+0.1.5-rc.2.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
diff --git a/node_modules/@deepseek-ai/dsh-client-file-upload/lib/index.js b/node_modules/@deepseek-ai/dsh-client-file-upload/lib/index.js
index 167cc5d..780f957 100644
--- a/node_modules/@deepseek-ai/dsh-client-file-upload/lib/index.js
+++ b/node_modules/@deepseek-ai/dsh-client-file-upload/lib/index.js
@@ -230,6 +230,19 @@ let FileUploads = (() => {
return this.stagedFiles.get(agent.session)?.get(receiptId)?.file;
}
/**
+ * Find one staged durable file by attachment id inside the Agent scope.
+ * @param agent - receiving Agent.
+ * @param attachmentId - content-addressed file identity.
+ * @returns durable file reference, or `undefined` when nothing staged matches.
+ */
+ findStagedFile(agent, attachmentId) {
+ this.assertAgentScope(agent);
+ const staged = this.stagedFiles.get(agent.session);
+ if (staged === void 0) return;
+ const id = String(attachmentId);
+ for (const upload of staged.values()) if (String(upload.file.attachmentId) === id) return upload.file;
+ }
+ /**
* Bind receipts while one prompt enters an Agent inbox.
* Disposal restores every prior binding unless the caller commits successful delivery.
* @param agent - receiving Agent.
65 changes: 65 additions & 0 deletions patches/@deepseek-ai+dsh-client-ui-attachment+0.1.5-rc.2.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
diff --git a/node_modules/@deepseek-ai/dsh-client-ui-attachment/lib/client.js b/node_modules/@deepseek-ai/dsh-client-ui-attachment/lib/client.js
index 0b50b91..6cab321 100644
--- a/node_modules/@deepseek-ai/dsh-client-ui-attachment/lib/client.js
+++ b/node_modules/@deepseek-ai/dsh-client-ui-attachment/lib/client.js
@@ -357,7 +357,7 @@ window.__ModuleLoader__.load({
});
//#endregion
//#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-attachment/src/FileCard.module.css.mjs
- const css$3 = ".gSkjMW_card{border:.5px solid var(--dsw-alias-border-l2,#0000001f);background:var(--dsw-specific-input-major,transparent);box-sizing:border-box;text-align:left;border-radius:16px;align-items:center;gap:10px;width:240px;height:64px;padding:0 12px;display:inline-flex;position:relative}.gSkjMW_failed{border-color:var(--dsw-alias-state-error-primary,#d54941)}.gSkjMW_icon{flex:none;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.gSkjMW_spinner{corner-shape:round;border:2px solid;border-top-color:#0000;border-radius:50%;width:20px;height:20px;animation:.8s linear infinite gSkjMW_file-card-spin}@keyframes gSkjMW_file-card-spin{to{transform:rotate(360deg)}}.gSkjMW_body{flex-direction:column;flex:1;min-width:0;padding:8px 0;display:flex}.gSkjMW_retry{color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0}.gSkjMW_name{white-space:nowrap;text-overflow:ellipsis;color:var(--dsw-alias-label-primary);font-size:14px;font-weight:500;line-height:22px;overflow:hidden}.gSkjMW_meta{white-space:nowrap;text-overflow:ellipsis;color:var(--dsw-alias-label-tertiary,#00000073);font-size:12px;line-height:15px;overflow:hidden}.gSkjMW_metaFailed{color:var(--dsw-alias-state-error-primary,#d54941)}.gSkjMW_remove{corner-shape:round;background:var(--dsw-alias-button-contrast-fill,#000000b8);width:18px;height:18px;color:var(--dsw-alias-label-primary-inverted,#fff);opacity:0;cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:opacity .2s ease-in-out;display:inline-flex;position:absolute;top:6px;right:6px}.gSkjMW_card:hover .gSkjMW_remove,.gSkjMW_remove:focus-visible{opacity:1}@media (pointer:coarse){.gSkjMW_remove{opacity:1}}@media (prefers-reduced-motion:reduce){.gSkjMW_remove{transition:none}}.gSkjMW_card:hover .gSkjMW_name,.gSkjMW_card:focus-within .gSkjMW_name{padding-right:18px}.gSkjMW_removeFailed{background:var(--dsw-alias-state-error-primary,#d54941);color:#fff;opacity:1}.gSkjMW_progressTrack{background:var(--dsw-alias-fill-tertiary,#00000014);border-radius:1px;height:2px;position:absolute;bottom:5px;left:12px;right:12px;overflow:hidden}.gSkjMW_progressBar{border-radius:inherit;background:var(--dsw-alias-brand-primary,#4d6bfe);width:35%;height:100%;animation:1.2s ease-in-out infinite alternate gSkjMW_file-card-progress;display:block}.gSkjMW_progressBar[style]{animation:none}@keyframes gSkjMW_file-card-progress{0%{transform:translate(-70%)}to{transform:translate(220%)}}@media (pointer:coarse){.gSkjMW_remove{opacity:1}}";
+ const css$3 = ".gSkjMW_card{border:.5px solid var(--dsw-alias-border-l2,#0000001f);background:var(--dsw-specific-input-major,transparent);box-sizing:border-box;text-align:left;border-radius:16px;align-items:center;gap:10px;width:240px;height:64px;padding:0 12px;display:inline-flex;position:relative}.gSkjMW_preview{color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0}.gSkjMW_failed{border-color:var(--dsw-alias-state-error-primary,#d54941)}.gSkjMW_icon{flex:none;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.gSkjMW_spinner{corner-shape:round;border:2px solid;border-top-color:#0000;border-radius:50%;width:20px;height:20px;animation:.8s linear infinite gSkjMW_file-card-spin}@keyframes gSkjMW_file-card-spin{to{transform:rotate(360deg)}}.gSkjMW_body{flex-direction:column;flex:1;min-width:0;padding:8px 0;display:flex}.gSkjMW_retry{color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0}.gSkjMW_name{white-space:nowrap;text-overflow:ellipsis;color:var(--dsw-alias-label-primary);font-size:14px;font-weight:500;line-height:22px;overflow:hidden}.gSkjMW_meta{white-space:nowrap;text-overflow:ellipsis;color:var(--dsw-alias-label-tertiary,#00000073);font-size:12px;line-height:15px;overflow:hidden}.gSkjMW_metaFailed{color:var(--dsw-alias-state-error-primary,#d54941)}.gSkjMW_remove{corner-shape:round;background:var(--dsw-alias-button-contrast-fill,#000000b8);width:18px;height:18px;color:var(--dsw-alias-label-primary-inverted,#fff);opacity:0;cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:opacity .2s ease-in-out;display:inline-flex;position:absolute;top:6px;right:6px}.gSkjMW_card:hover .gSkjMW_remove,.gSkjMW_remove:focus-visible{opacity:1}@media (pointer:coarse){.gSkjMW_remove{opacity:1}}@media (prefers-reduced-motion:reduce){.gSkjMW_remove{transition:none}}.gSkjMW_card:hover .gSkjMW_name,.gSkjMW_card:focus-within .gSkjMW_name{padding-right:18px}.gSkjMW_removeFailed{background:var(--dsw-alias-state-error-primary,#d54941);color:#fff;opacity:1}.gSkjMW_progressTrack{background:var(--dsw-alias-fill-tertiary,#00000014);border-radius:1px;height:2px;position:absolute;bottom:5px;left:12px;right:12px;overflow:hidden}.gSkjMW_progressBar{border-radius:inherit;background:var(--dsw-alias-brand-primary,#4d6bfe);width:35%;height:100%;animation:1.2s ease-in-out infinite alternate gSkjMW_file-card-progress;display:block}.gSkjMW_progressBar[style]{animation:none}@keyframes gSkjMW_file-card-progress{0%{transform:translate(-70%)}to{transform:translate(220%)}}@media (pointer:coarse){.gSkjMW_remove{opacity:1}}";
const tagId$3 = "@deepseek-ai/dsh-client-ui-attachment/FileCard.module.css";
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$3) + "]") === null) {
const tag = document.createElement("style");
@@ -376,6 +376,7 @@ window.__ModuleLoader__.load({
"meta": "gSkjMW_meta",
"metaFailed": "gSkjMW_metaFailed",
"name": "gSkjMW_name",
+ "preview": "gSkjMW_preview",
"progressBar": "gSkjMW_progressBar",
"progressTrack": "gSkjMW_progressTrack",
"remove": "gSkjMW_remove",
@@ -386,7 +387,7 @@ window.__ModuleLoader__.load({
//#endregion
//#region lib/types/FileCard.js
/** One pending file card: type glyph, name, size or upload status, remove, retry. */
- function FileCard({ name, bytes, state, progress, labels, onRemove, onRetry }) {
+ function FileCard({ name, bytes, state, progress, labels, onRemove, onRetry, onOpen }) {
const extension = (0, _deepseek_ai_dsh_client_ui_primitives.fileExtension)(name).toUpperCase().slice(0, 8);
const meta = state === "uploading" ? labels.uploading : state === "error" ? labels.failed : [extension, (0, _deepseek_ai_dsh_client_ui_primitives.fileSizeText)(bytes)].filter((part) => part !== "").join(" ");
const retryable = state === "error";
@@ -411,9 +412,11 @@ window.__ModuleLoader__.load({
className: `${FileCard_module_css_default.meta} ${FileCard_module_css_default.metaFailed}`,
children: meta
})]
- }) : (0, react_jsx_runtime.jsxs)("span", {
- className: FileCard_module_css_default.body,
+ }) : (0, react_jsx_runtime.jsxs)(onOpen === void 0 ? "span" : "button", {
+ type: onOpen === void 0 ? void 0 : "button",
+ className: onOpen === void 0 ? FileCard_module_css_default.body : `${FileCard_module_css_default.body} ${FileCard_module_css_default.preview}`,
"aria-label": labels.label,
+ onClick: onOpen,
children: [(0, react_jsx_runtime.jsx)("span", {
className: FileCard_module_css_default.name,
children: name
@@ -603,7 +606,7 @@ window.__ModuleLoader__.load({
//#endregion
//#region lib/types/client/ComposerAttachments.js
/** Draft image previews, pending-file cards, drop target, and original-image preview. */
- function ComposerAttachments({ attachments, canAcceptDrop, onAddFiles, onRemoveAttachment, uploads, onRetryFile, dropLimits, t }) {
+ function ComposerAttachments({ attachments, canAcceptDrop, onAddFiles, onRemoveAttachment, uploads, onRetryFile, onOpenUploadedFile, dropLimits, t }) {
const [preview, setPreview] = (0, react.useState)(null);
const [dragActive, setDragActive] = (0, react.useState)(false);
const dragDepth = (0, react.useRef)(0);
@@ -691,7 +694,10 @@ window.__ModuleLoader__.load({
},
onRetry: () => {
onRetryFile(attachment.id);
- }
+ },
+ onOpen: upload?.status === "ready" && upload.file !== void 0 && onOpenUploadedFile !== void 0 ? () => {
+ onOpenUploadedFile(upload.file.attachmentId);
+ } : void 0
});
}
return (0, react_jsx_runtime.jsxs)("div", {
Loading