From 0bd3e4dab15603d1b1668bb79a0f22496f33ebcf Mon Sep 17 00:00:00 2001 From: Neil Date: Thu, 27 Aug 2026 22:55:16 +0800 Subject: [PATCH 1/2] feat(dsh): add research tool views --- packages/dsh-web/package.json | 3 + packages/dsh-web/src/client.css | 271 ++++++++++++++++++++ packages/dsh-web/src/client.ts | 308 +++++++++++++++++++++-- packages/dsh-web/src/css-inline.d.ts | 4 + packages/dsh-web/test/artifact.test.ts | 1 + packages/dsh-web/test/client.test.ts | 34 +++ packages/dsh-web/tsup.config.ts | 2 + pnpm-lock.yaml | 336 ++++++++++++++++++++++++- 8 files changed, 929 insertions(+), 30 deletions(-) create mode 100644 packages/dsh-web/src/client.css create mode 100644 packages/dsh-web/src/css-inline.d.ts diff --git a/packages/dsh-web/package.json b/packages/dsh-web/package.json index 8155d83..6688625 100644 --- a/packages/dsh-web/package.json +++ b/packages/dsh-web/package.json @@ -50,6 +50,7 @@ "@deepseek-ai/dsh-client-connection", "@deepseek-ai/dsh-client-locale", "@deepseek-ai/dsh-client-runtime", + "@deepseek-ai/dsh-client-ui-tool", "@deepseek-ai/dsh-client-ui-settings", "@deepseek-ai/dsh-client-ui-settings-plugins" ] @@ -64,6 +65,7 @@ "@deepseek-ai/dsh-client-ui-settings": "0.1.0-rc.8", "@deepseek-ai/dsh-client-ui-settings-plugins": "0.1.0-rc.8", "@deepseek-ai/dsh-client-ui-slots": "0.1.0-rc.8", + "@deepseek-ai/dsh-client-ui-tool": "0.1.0-rc.8", "@deepseek-ai/dsh-credentials": "0.1.0-rc.8", "@deepseek-ai/dsh-settings": "0.1.0-rc.8", "@deepseek-ai/dsh-tools": "0.1.0-rc.8", @@ -80,6 +82,7 @@ "@deepseek-ai/dsh-client-ui-settings": "0.1.0-rc.8", "@deepseek-ai/dsh-client-ui-settings-plugins": "0.1.0-rc.8", "@deepseek-ai/dsh-client-ui-slots": "0.1.0-rc.8", + "@deepseek-ai/dsh-client-ui-tool": "0.1.0-rc.8", "@deepseek-ai/dsh-credentials": "0.1.0-rc.8", "@deepseek-ai/dsh-settings": "0.1.0-rc.8", "@deepseek-ai/dsh-tools": "0.1.0-rc.8", diff --git a/packages/dsh-web/src/client.css b/packages/dsh-web/src/client.css new file mode 100644 index 0000000..f03fccb --- /dev/null +++ b/packages/dsh-web/src/client.css @@ -0,0 +1,271 @@ +.guionai-web__settings { + display: grid; + max-width: 560px; + gap: 16px; + padding: 16px; + border: 1px solid var(--dsw-alias-border-l2); + border-radius: 12px; + background: var(--dsw-specific-input-major); + box-shadow: var(--dsw-shadow-lv1); +} + +.guionai-web__title, +.guionai-web__legend { + margin: 0; + color: var(--dsw-alias-label-primary); + font-size: 14px; + font-weight: 600; + line-height: 20px; +} + +.guionai-web__copy, +.guionai-web__status, +.guionai-web__feedback { + margin: 0; + color: var(--dsw-alias-label-secondary); + font-size: 13px; + line-height: 20px; +} + +.guionai-web__label { + display: grid; + gap: 6px; + color: var(--dsw-alias-label-secondary); + font-size: 13px; + font-weight: 500; + line-height: 20px; +} + +.guionai-web__select, +.guionai-web__input { + box-sizing: border-box; + width: 100%; + min-height: 36px; + padding: 7px 10px; + border: 1px solid var(--dsw-alias-border-l2); + border-radius: 8px; + background: var(--dsw-specific-input-major); + color: var(--dsw-alias-label-primary); + font: inherit; +} + +.guionai-web__credential { + display: grid; + gap: 10px; + min-width: 0; + margin: 0; + padding: 12px; + border: 1px solid var(--dsw-alias-border-l2); + border-radius: 8px; +} + +.guionai-web__legend { + padding: 0 4px; +} + +.guionai-web__status { + color: var(--dsw-alias-label-tertiary); +} + +.guionai-web__actions { + display: flex; + flex-wrap: wrap; + gap: 8px; +} + +.guionai-web__button { + padding: 6px 10px; + border: 1px solid var(--dsw-alias-border-l2); + border-radius: 8px; + background: var(--dsw-alias-bg-base); + color: var(--dsw-alias-label-secondary); + cursor: pointer; + font: inherit; +} + +.guionai-web__button:hover:not(:disabled) { + background: var(--dsw-alias-interactive-bg-hover-solid); + color: var(--dsw-alias-label-primary); +} + +.guionai-web__button:disabled, +.guionai-web__input:disabled { + cursor: not-allowed; + opacity: 0.5; +} + +.guionai-web__button:focus-visible, +.guionai-web__select:focus-visible, +.guionai-web__input:focus-visible { + outline: 2px solid var(--dsw-alias-interactive-border-focus); + outline-offset: 2px; +} + +.guionai-web__feedback { + color: var(--dsw-alias-state-error-primary); +} + +@media (prefers-reduced-motion: reduce) { + .guionai-web__button { + transition: none; + } +} + +.guionai-web__tool-card { + display: grid; + max-width: 560px; + gap: 10px; + padding: 12px 14px; + border: 1px solid var(--dsw-alias-border-l2); + border-radius: 10px; + background: var(--dsw-specific-input-major); +} + +.guionai-web__tool-heading { + display: flex; + align-items: center; + gap: 8px; + min-width: 0; +} + +.guionai-web__state-dot { + flex: none; + width: 7px; + height: 7px; + border-radius: 50%; + background: var(--dsw-alias-label-tertiary); +} + +.guionai-web__tool-card[data-state="success"] .guionai-web__state-dot { + background: var(--dsw-alias-state-success-primary); +} + +.guionai-web__tool-card[data-state="error"] .guionai-web__state-dot { + background: var(--dsw-alias-state-error-primary); +} + +.guionai-web__tool-card[data-state="running"] .guionai-web__state-dot { + background: var(--dsw-alias-interactive-border-focus); +} + +.guionai-web__tool-title { + min-width: 0; + overflow: hidden; + color: var(--dsw-alias-label-primary); + font-size: 14px; + line-height: 20px; + text-overflow: ellipsis; + white-space: nowrap; +} + +.guionai-web__tool-state { + margin-left: auto; + color: var(--dsw-alias-label-tertiary); + font-size: 12px; + line-height: 18px; +} + +.guionai-web__tool-summary, +.guionai-web__result-count, +.guionai-web__excerpt, +.guionai-web__tool-error { + margin: 0; + color: var(--dsw-alias-label-secondary); + font-size: 13px; + line-height: 20px; +} + +.guionai-web__tool-summary { + overflow: hidden; + color: var(--dsw-alias-label-tertiary); + text-overflow: ellipsis; + white-space: nowrap; +} + +.guionai-web__tool-body { + display: grid; + gap: 8px; +} + +.guionai-web__source-link, +.guionai-web__link-list a { + color: var(--dsw-alias-label-link); + text-decoration: none; +} + +.guionai-web__source-link:hover, +.guionai-web__link-list a:hover { + text-decoration: underline; +} + +.guionai-web__source-link:focus-visible, +.guionai-web__link-list a:focus-visible, +.guionai-web__raw-output summary:focus-visible { + outline: 2px solid var(--dsw-alias-interactive-border-focus); + outline-offset: 2px; +} + +.guionai-web__link-list, +.guionai-web__library-list { + display: grid; + gap: 6px; + margin: 0; + padding-left: 18px; + color: var(--dsw-alias-label-secondary); + font-size: 13px; + line-height: 20px; +} + +.guionai-web__link-list a { + display: block; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.guionai-web__library-list li { + display: flex; + gap: 8px; + min-width: 0; +} + +.guionai-web__library-list code { + flex: none; + color: var(--dsw-alias-label-primary); + font: var(--dsw-font-markdown-code-block-small); +} + +.guionai-web__library-list span { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.guionai-web__tool-error { + color: var(--dsw-alias-state-error-primary); +} + +.guionai-web__raw-output { + color: var(--dsw-alias-label-secondary); + font-size: 13px; + line-height: 20px; +} + +.guionai-web__raw-output summary { + width: fit-content; + cursor: pointer; +} + +.guionai-web__raw-output pre { + max-height: 320px; + margin: 8px 0 0; + padding: 10px; + overflow: auto; + border: 1px solid var(--dsw-alias-border-l2); + border-radius: 8px; + background: var(--dsw-alias-markdown-code-block); + color: var(--dsw-alias-label-secondary); + font: var(--dsw-font-markdown-code-block-small); + white-space: pre-wrap; + word-break: break-word; +} diff --git a/packages/dsh-web/src/client.ts b/packages/dsh-web/src/client.ts index dc229bb..5b0e08e 100644 --- a/packages/dsh-web/src/client.ts +++ b/packages/dsh-web/src/client.ts @@ -12,6 +12,8 @@ import type {} from "@deepseek-ai/dsh-api-remotes/client"; import type {} from "@deepseek-ai/dsh-client-ui-settings/client"; import type {} from "@deepseek-ai/dsh-client-ui-settings-plugins/client"; import type {} from "@deepseek-ai/dsh-client-ui-slots"; +import type { ToolCallViewProps } from "@deepseek-ai/dsh-client-ui-tool/client"; +import cssText from "./client.css"; import { BRAVE_CREDENTIAL_REF, @@ -181,21 +183,32 @@ function SettingsCard({ return createElement( "section", - { "aria-labelledby": "guionai-web-settings-title" }, - createElement("h2", { id: "guionai-web-settings-title" }, "Guion Web"), + { + className: "guionai-web__settings", + "aria-labelledby": "guionai-web-settings-title", + }, + createElement( + "h2", + { + id: "guionai-web-settings-title", + className: "guionai-web__title", + }, + "Guion Web", + ), createElement( "p", - null, + { className: "guionai-web__copy" }, "Choose the search provider explicitly. Both providers require an API key.", ), createElement( "label", - { htmlFor: "guionai-web-provider" }, + { htmlFor: "guionai-web-provider", className: "guionai-web__label" }, "Search provider", createElement( "select", { id: "guionai-web-provider", + className: "guionai-web__select", value: provider, onChange: (event: { target: { value: string } }) => { if (isSearchProvider(event.target.value)) @@ -217,16 +230,20 @@ function SettingsCard({ const current = status[ref] ?? { configured: false, writable: false }; return createElement( "fieldset", - { key: ref }, - createElement("legend", null, label), + { key: ref, className: "guionai-web__credential" }, + createElement("legend", { className: "guionai-web__legend" }, label), createElement( "label", - { htmlFor: `guionai-web-${ref}` }, + { + htmlFor: `guionai-web-${ref}`, + className: "guionai-web__label", + }, "Write a new key", createElement("input", { id: `guionai-web-${ref}`, type: "password", autoComplete: "new-password", + className: "guionai-web__input", value: drafts[ref] ?? "", disabled: !current.writable, onChange: (event: { target: { value: string } }) => @@ -235,34 +252,48 @@ function SettingsCard({ ), createElement( "p", - { role: "status" }, + { role: "status", className: "guionai-web__status" }, `Status: ${current.configured ? "configured" : "not configured"}; source: ${current.source ?? "none"}; writable: ${current.writable ? "yes" : "no"}.`, ), createElement( - "button", - { - type: "button", - disabled: !current.writable || (drafts[ref] ?? "").trim() === "", - onClick: () => void saveCredential(ref), - }, - "Save key", - ), - createElement( - "button", - { - type: "button", - disabled: !current.writable || !current.configured, - onClick: () => void clearCredential(ref), - }, - "Remove key", + "div", + { className: "guionai-web__actions" }, + createElement( + "button", + { + type: "button", + className: "guionai-web__button", + disabled: + !current.writable || (drafts[ref] ?? "").trim() === "", + onClick: () => void saveCredential(ref), + }, + "Save key", + ), + createElement( + "button", + { + type: "button", + className: "guionai-web__button", + disabled: !current.writable || !current.configured, + onClick: () => void clearCredential(ref), + }, + "Remove key", + ), ), ); }), - error ? createElement("p", { role: "alert" }, error) : null, + error + ? createElement( + "p", + { role: "alert", className: "guionai-web__feedback" }, + error, + ) + : null, ); } export function apply(ctx: ClientContext): void { + ctx.effect(() => installStyles(cssText), "guionai-web: styles"); const connection = ctx.get("connection") as ConnectionHandle; const remote = ctx.get("remote") as RemoteApi; const scope = ctx.settingsScope.bind({ @@ -285,4 +316,231 @@ export function apply(ctx: ClientContext): void { })) as never, ), ); + ctx.slots.inject("tool.call.toolview", function* () { + for (const key of ["web_fetch", "web_links", "web_docs"]) { + yield ctx.slots.register( + { + name: "tool.call.toolview", + key, + inject: () => ({}), + } as never, + ((props: ToolCallViewProps) => + createElement(WebResearchToolCard, props)) as never, + ); + } + }); +} + +function installStyles(css: string): () => void { + const style = document.createElement("style"); + style.dataset.dshPlugin = "guionai-web"; + style.textContent = css; + document.head.append(style); + return () => style.remove(); +} + +type ResearchToolName = "web_fetch" | "web_links" | "web_docs"; + +function WebResearchToolCard({ + toolName, + block, +}: ToolCallViewProps): ReturnType { + const name = toolName as ResearchToolName; + const args = toolArguments(block); + const output = toolOutput(block); + const running = !isToolResult(block); + const error = isToolResult(block) && block.isError; + const title = + name === "web_fetch" + ? "Fetch page" + : name === "web_links" + ? "Find links" + : args.action === "resolve" + ? "Find documentation" + : "Fetch documentation"; + const summary = toolSummary(name, args); + + return createElement( + "section", + { + className: "guionai-web__tool-card", + "aria-label": title, + "data-state": running ? "running" : error ? "error" : "success", + }, + createElement( + "div", + { className: "guionai-web__tool-heading" }, + createElement("span", { className: "guionai-web__state-dot", "aria-hidden": true }), + createElement("strong", { className: "guionai-web__tool-title" }, title), + createElement( + "span", + { className: "guionai-web__tool-state", role: "status" }, + running ? "Working…" : error ? "Failed" : "Complete", + ), + ), + summary + ? createElement("p", { className: "guionai-web__tool-summary" }, summary) + : null, + running + ? null + : error + ? createElement( + "p", + { className: "guionai-web__tool-error", role: "alert" }, + block.error ? `${block.error.name}: ${block.error.code}` : "The request failed.", + ) + : toolBody(name, args, output), + !running && output + ? createElement( + "details", + { className: "guionai-web__raw-output" }, + createElement("summary", null, "Show raw output"), + createElement("pre", null, output), + ) + : null, + ); +} + +function toolBody( + name: ResearchToolName, + args: Record, + output: string, +): ReturnType | null { + if (name === "web_links") { + const links = linksFromOutput(output); + const count = /^Found (\d+) links?/.exec(output)?.[1]; + return createElement( + "div", + { className: "guionai-web__tool-body" }, + createElement( + "p", + { className: "guionai-web__result-count" }, + count ? `${count} links found` : "Link scan complete", + ), + links.length > 0 + ? createElement( + "ul", + { className: "guionai-web__link-list" }, + ...links.slice(0, 5).map((link) => + createElement( + "li", + { key: link.url }, + createElement( + "a", + { + href: link.url, + target: "_blank", + rel: "noreferrer", + title: link.url, + }, + link.text, + ), + ), + ), + ) + : null, + ); + } + if (name === "web_docs" && args.action === "resolve") { + const libraries = librariesFromOutput(output); + return createElement( + "div", + { className: "guionai-web__tool-body" }, + createElement( + "p", + { className: "guionai-web__result-count" }, + libraries.length > 0 ? `${libraries.length} library matches` : "No libraries found", + ), + libraries.length > 0 + ? createElement( + "ul", + { className: "guionai-web__library-list" }, + ...libraries.slice(0, 5).map((library) => + createElement( + "li", + { key: library.id }, + createElement("code", null, library.id), + createElement("span", null, library.title), + ), + ), + ) + : null, + ); + } + const url = typeof args.url === "string" ? args.url : undefined; + return createElement( + "div", + { className: "guionai-web__tool-body" }, + url + ? createElement( + "a", + { + className: "guionai-web__source-link", + href: url, + target: "_blank", + rel: "noreferrer", + }, + "Open source", + ) + : null, + createElement("p", { className: "guionai-web__excerpt" }, excerpt(output)), + ); +} + +function toolArguments(block: ToolCallViewProps["block"]): Record { + const argsRaw = isToolResult(block) ? block.call?.argsRaw : block.argsRaw; + if (!argsRaw) return {}; + try { + const value: unknown = JSON.parse(argsRaw); + return typeof value === "object" && value !== null && !Array.isArray(value) + ? (value as Record) + : {}; + } catch { + return {}; + } +} + +function toolOutput(block: ToolCallViewProps["block"]): string { + if (!isToolResult(block)) return ""; + return block.content + .map((content) => (content.type === "text" ? content.text : JSON.stringify(content))) + .join("\n"); +} + +function toolSummary(name: ResearchToolName, args: Record): string { + if (name === "web_docs") { + const identifier = args.action === "resolve" ? args.query : args.library_id; + return typeof identifier === "string" ? identifier : "Documentation request"; + } + if (typeof args.url !== "string") return name === "web_links" ? "Page links" : "Web page"; + try { + const url = new URL(args.url); + return `${url.hostname}${url.pathname === "/" ? "" : url.pathname}`; + } catch { + return args.url; + } +} + +function excerpt(output: string): string { + const compact = output.replace(/\s+/g, " ").trim(); + return compact.length <= 360 ? compact : `${compact.slice(0, 357)}…`; +} + +function linksFromOutput(output: string): Array<{ text: string; url: string }> { + return [...output.matchAll(/^\d+\. (.+)\n\s*URL: (https?:\/\/\S+)$/gm)].map( + ([, text, url]) => ({ text: text || "(no text)", url: url! }), + ); +} + +function librariesFromOutput(output: string): Array<{ id: string; title: string }> { + return [...output.matchAll(/^- (.+?): (.+)$/gm)].map(([, id, title]) => ({ + id: id!, + title: title!, + })); +} + +function isToolResult( + block: ToolCallViewProps["block"], +): block is Extract { + return "kind" in block && block.kind === "tool-result"; } diff --git a/packages/dsh-web/src/css-inline.d.ts b/packages/dsh-web/src/css-inline.d.ts new file mode 100644 index 0000000..137711f --- /dev/null +++ b/packages/dsh-web/src/css-inline.d.ts @@ -0,0 +1,4 @@ +declare module "*.css" { + const css: string; + export default css; +} diff --git a/packages/dsh-web/test/artifact.test.ts b/packages/dsh-web/test/artifact.test.ts index 0c7518f..8c51e89 100644 --- a/packages/dsh-web/test/artifact.test.ts +++ b/packages/dsh-web/test/artifact.test.ts @@ -147,6 +147,7 @@ describe("DSH rc.8 packed package contract", () => { "@deepseek-ai/dsh-client-connection", "@deepseek-ai/dsh-client-locale", "@deepseek-ai/dsh-client-runtime", + "@deepseek-ai/dsh-client-ui-tool", "@deepseek-ai/dsh-client-ui-settings", "@deepseek-ai/dsh-client-ui-settings-plugins", ], diff --git a/packages/dsh-web/test/client.test.ts b/packages/dsh-web/test/client.test.ts index 32cf088..9f27745 100644 --- a/packages/dsh-web/test/client.test.ts +++ b/packages/dsh-web/test/client.test.ts @@ -7,6 +7,7 @@ import { SETTINGS_NAMESPACE, } from "../src/contract.js"; import { + apply, decodeSettings, describeCredentialStatus, persistProviderSelection, @@ -49,6 +50,39 @@ function fakeApi(overrides: Record = {}) { } describe("DSH settings client credential surface", () => { + it("registers dedicated views for fetch, links, and docs without replacing search views", () => { + const registrations: Array<{ key: string }> = []; + const ctx = { + effect: () => undefined, + get: () => ({ api: {} }), + settingsScope: { bind: () => ({}) }, + slots: { + inject: (_name: string, callback: () => unknown) => { + const value = callback(); + if ( + value !== null && + typeof value === "object" && + Symbol.iterator in value + ) + for (const _registration of value as Iterable) { + // Exhaust the generator so every keyed registration is observed. + } + }, + register: (spec: { key: string }) => { + registrations.push(spec); + return spec; + }, + }, + }; + apply(ctx as any); + expect(registrations.map((registration) => registration.key)).toEqual([ + SETTINGS_NAMESPACE, + "web_fetch", + "web_links", + "web_docs", + ]); + }); + it("persists only the selected provider and drops unknown/secret settings fields", async () => { const calls: Array<{ field: string; value: unknown }> = []; await persistProviderSelection( diff --git a/packages/dsh-web/tsup.config.ts b/packages/dsh-web/tsup.config.ts index 88c5538..ecc4c64 100644 --- a/packages/dsh-web/tsup.config.ts +++ b/packages/dsh-web/tsup.config.ts @@ -9,6 +9,7 @@ const dshExternals = [ "@deepseek-ai/dsh-client-ui-settings", "@deepseek-ai/dsh-client-ui-settings-plugins", "@deepseek-ai/dsh-client-ui-slots", + "@deepseek-ai/dsh-client-ui-tool", "@deepseek-ai/dsh-credentials", "@deepseek-ai/dsh-settings", "@deepseek-ai/dsh-tools", @@ -33,6 +34,7 @@ export default defineConfig([ entry: { client: "src/client.ts" }, format: ["cjs"], platform: "browser", + loader: { ".css": "text" }, target: "es2022", bundle: true, dts: true, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4d36979..203bfd2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -56,6 +56,9 @@ importers: '@deepseek-ai/dsh-client-ui-slots': specifier: 0.1.0-rc.8 version: 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)) + '@deepseek-ai/dsh-client-ui-tool': + specifier: 0.1.0-rc.8 + version: 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-api-remotes@0.1.0-rc.8(595254fcd6f0e2eefb415cb6827720e3))(@deepseek-ai/dsh-client-connection@0.1.0-rc.8)(@deepseek-ai/dsh-client-locale@0.1.0-rc.8(1a3d8a91c4f4fa0e0397786bec3eddce))(@deepseek-ai/dsh-client-runtime@0.1.0-rc.8(c30c11caf28a5634279e6e808a6e5391))(@deepseek-ai/dsh-client-ui-conversation@0.1.0-rc.8(9eb15e612d91724f640eae94221511b6))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)) '@deepseek-ai/dsh-credentials': specifier: 0.1.0-rc.8 version: 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-brand@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)) @@ -394,6 +397,50 @@ packages: '@deepseek-ai/dsh-typert-protocol': ^0.1.0-rc.8 '@deepseek-ai/dsh-typert-registry': ^0.1.0-rc.8 + '@deepseek-ai/dsh-client-ui-conversation@0.1.0-rc.8': + resolution: {integrity: sha512-GnQSE47/goSm1UzxQpYQrQnMJLyTmYFH6NENdrOxrVJxQnB55ruactgM1kVwfFnc/WUQVYy0599AK7pxjbxjMg==} + peerDependencies: + '@deepseek-ai/cordis': ^4.0.1 + '@deepseek-ai/dsh-agent': ^0.1.0-rc.8 + '@deepseek-ai/dsh-api-remotes': ^0.1.0-rc.8 + '@deepseek-ai/dsh-attachment': ^0.1.0-rc.8 + '@deepseek-ai/dsh-brand': ^0.1.0-rc.8 + '@deepseek-ai/dsh-client-connection': ^0.1.0-rc.8 + '@deepseek-ai/dsh-client-locale': ^0.1.0-rc.8 + '@deepseek-ai/dsh-client-runtime': ^0.1.0-rc.8 + '@deepseek-ai/dsh-client-ui-input-trigger': ^0.1.0-rc.8 + '@deepseek-ai/dsh-client-ui-layout': ^0.1.0-rc.8 + '@deepseek-ai/dsh-client-ui-settings': ^0.1.0-rc.8 + '@deepseek-ai/dsh-commands': ^0.1.0-rc.8 + '@deepseek-ai/dsh-compaction': ^0.1.0-rc.8 + '@deepseek-ai/dsh-goal': ^0.1.0-rc.8 + '@deepseek-ai/dsh-invariants': ^0.1.0-rc.8 + '@deepseek-ai/dsh-llm-retry': ^0.1.0-rc.8 + '@deepseek-ai/dsh-permission-presets': ^0.1.0-rc.8 + '@deepseek-ai/dsh-plan-mode': ^0.1.0-rc.8 + '@deepseek-ai/dsh-session-stats': ^0.1.0-rc.8 + '@deepseek-ai/dsh-settings': ^0.1.0-rc.8 + '@deepseek-ai/dsh-token-meter': ^0.1.0-rc.8 + '@deepseek-ai/dsh-tool-todo': ^0.1.0-rc.8 + '@deepseek-ai/dsh-tools': ^0.1.0-rc.8 + + '@deepseek-ai/dsh-client-ui-input-trigger@0.1.0-rc.8': + resolution: {integrity: sha512-uVJEZ1ftUdMemLvNf17gzB6ThYw0DL4k+0kcQrUPc6LHNQ2ZeuuvOz/931OlqzzUKMtlAGZgy0LvWyJ62LlSog==} + peerDependencies: + '@deepseek-ai/cordis': ^4.0.1 + '@deepseek-ai/dsh-client-locale': ^0.1.0-rc.8 + '@deepseek-ai/dsh-client-runtime': ^0.1.0-rc.8 + '@deepseek-ai/dsh-file-reference': ^0.1.0-rc.8 + '@deepseek-ai/dsh-invariants': ^0.1.0-rc.8 + + '@deepseek-ai/dsh-client-ui-layout@0.1.0-rc.8': + resolution: {integrity: sha512-tbHawbf8FsJqdwnXrU46V8u13bfAFVQQf0hA0OXH4k0PiLiThdZgQFn/T94+56JMUzD1QLqe7DLmNz29cwmjvQ==} + peerDependencies: + '@deepseek-ai/cordis': ^4.0.1 + '@deepseek-ai/dsh-client-runtime': ^0.1.0-rc.8 + '@deepseek-ai/dsh-client-ui-theme': ^0.1.0-rc.8 + '@deepseek-ai/dsh-invariants': ^0.1.0-rc.8 + '@deepseek-ai/dsh-client-ui-settings-plugins@0.1.0-rc.8': resolution: {integrity: sha512-BLLFFxBz4TmnXXsR5bnQaLMboXBOvCfhoqSbdPFqkqrmJSD+3KGbg4SQJZPcfLL19Kq7qeDraPCXwxo3wpIULg==} peerDependencies: @@ -421,6 +468,30 @@ packages: '@deepseek-ai/cordis': ^4.0.1 '@deepseek-ai/dsh-invariants': ^0.1.0-rc.8 + '@deepseek-ai/dsh-client-ui-theme@0.1.0-rc.8': + resolution: {integrity: sha512-orLl5eoWOnvjj76lI6xucE+lT+o+ouniRMSFsuYwF1DNH2pbyfVPQYJWL3iM55gE28yyZJGgmtmABnQBiEF5iA==} + peerDependencies: + '@deepseek-ai/cordis': ^4.0.1 + '@deepseek-ai/dsh-api-remotes': ^0.1.0-rc.8 + '@deepseek-ai/dsh-client-connection': ^0.1.0-rc.8 + '@deepseek-ai/dsh-client-locale': ^0.1.0-rc.8 + '@deepseek-ai/dsh-client-runtime': ^0.1.0-rc.8 + '@deepseek-ai/dsh-client-ui-settings': ^0.1.0-rc.8 + '@deepseek-ai/dsh-host-webserver': ^0.1.0-rc.8 + '@deepseek-ai/dsh-invariants': ^0.1.0-rc.8 + '@deepseek-ai/dsh-settings': ^0.1.0-rc.8 + + '@deepseek-ai/dsh-client-ui-tool@0.1.0-rc.8': + resolution: {integrity: sha512-+Mtgx56PptrtoN4Q36yISe3u0lnVazdqV9s+1cLU2C2sAw7bB7o2Y/J9PBPiuBSsK8rmCLbUPYK6QefenwFE7Q==} + peerDependencies: + '@deepseek-ai/cordis': ^4.0.1 + '@deepseek-ai/dsh-api-remotes': ^0.1.0-rc.8 + '@deepseek-ai/dsh-client-connection': ^0.1.0-rc.8 + '@deepseek-ai/dsh-client-locale': ^0.1.0-rc.8 + '@deepseek-ai/dsh-client-runtime': ^0.1.0-rc.8 + '@deepseek-ai/dsh-client-ui-conversation': ^0.1.0-rc.8 + '@deepseek-ai/dsh-invariants': ^0.1.0-rc.8 + '@deepseek-ai/dsh-code-runtime@0.1.0-rc.8': resolution: {integrity: sha512-6ZKyEE7dHH1UkKe5b0lg18Byww/7ocZyrNMVjAoUWEWp5i96Brf9Eavu9q3zepBMDMZJErCfV0pyt7KDhBJSig==} peerDependencies: @@ -584,6 +655,55 @@ packages: '@deepseek-ai/cordis': ^4.0.1 '@deepseek-ai/dsh-invariants': ^0.1.0-rc.8 + '@deepseek-ai/dsh-permission-presets@0.1.0-rc.8': + resolution: {integrity: sha512-EeTn8Av5kmb1Qj53D7myRnKcNQrrupGrM2m9LVUO8ieWvlIaYX7n2g0y8kg14SUpcD2YzaT40oGJ6VeDuhTZAA==} + peerDependencies: + '@deepseek-ai/cordis': ^4.0.1 + '@deepseek-ai/dsh-commands': ^0.1.0-rc.8 + '@deepseek-ai/dsh-invariants': ^0.1.0-rc.8 + '@deepseek-ai/dsh-sandbox': ^0.1.0-rc.8 + '@deepseek-ai/dsh-sandbox-policy': ^0.1.0-rc.8 + '@deepseek-ai/dsh-session': ^0.1.0-rc.8 + '@deepseek-ai/dsh-session-projection': ^0.1.0-rc.8 + '@deepseek-ai/dsh-settings': ^0.1.0-rc.8 + '@deepseek-ai/dsh-shell': ^0.1.0-rc.8 + '@deepseek-ai/dsh-user-approval': ^0.1.0-rc.8 + + '@deepseek-ai/dsh-plan-mode@0.1.0-rc.8': + resolution: {integrity: sha512-/SY/iil7KLDvveqKRUZxO4HiADwDlOX9u3xyG/93h785mWSfRXooiv4Zp2tiBjU+pJB0tJXMsQNAXDdg7DWtwA==} + peerDependencies: + '@deepseek-ai/cordis': ^4.0.1 + '@deepseek-ai/dsh-agent': ^0.1.0-rc.8 + '@deepseek-ai/dsh-commands': ^0.1.0-rc.8 + '@deepseek-ai/dsh-invariants': ^0.1.0-rc.8 + '@deepseek-ai/dsh-llm': ^0.1.0-rc.8 + '@deepseek-ai/dsh-session': ^0.1.0-rc.8 + '@deepseek-ai/dsh-session-projection': ^0.1.0-rc.8 + '@deepseek-ai/dsh-system-prompt': ^0.1.0-rc.8 + '@deepseek-ai/dsh-tools': ^0.1.0-rc.8 + '@deepseek-ai/dsh-user-questions': ^0.1.0-rc.8 + peerDependenciesMeta: + '@deepseek-ai/dsh-commands': + optional: true + + '@deepseek-ai/dsh-sandbox-policy@0.1.0-rc.8': + resolution: {integrity: sha512-xQOlYWbUr1Oj6cnRd5aHZIz52EOEAdSO1HJIfeDkQrVaOgohFsiiCIp6PNFumuGNWdCEnf4Q18ebafLNtazYlA==} + peerDependencies: + '@deepseek-ai/cordis': ^4.0.1 + '@deepseek-ai/dsh-agent': ^0.1.0-rc.8 + '@deepseek-ai/dsh-invariants': ^0.1.0-rc.8 + '@deepseek-ai/dsh-sandbox': ^0.1.0-rc.8 + '@deepseek-ai/dsh-session': ^0.1.0-rc.8 + '@deepseek-ai/dsh-system-prompt': ^0.1.0-rc.8 + + '@deepseek-ai/dsh-sandbox@0.1.0-rc.8': + resolution: {integrity: sha512-dJpy5p/KjKkHG9AnMKU4+/ilj/4DCglsq3kof/jhIwtsZJCix07TEXP9vV8LCv4fU8af7cK3antXw4eVMqkwuQ==} + peerDependencies: + '@deepseek-ai/cordis': ^4.0.1 + '@deepseek-ai/dsh-invariants': ^0.1.0-rc.8 + '@deepseek-ai/dsh-llm': ^0.1.0-rc.8 + '@deepseek-ai/dsh-session': ^0.1.0-rc.8 + '@deepseek-ai/dsh-scope@0.1.0-rc.8': resolution: {integrity: sha512-/o+PxkVV2zUy9lYlMFr4TWSb+ESW4DE+fI891yIbsLzOJdFgfbmmLpGrlWgnz8/unIGJZxjeXdwyppV04Z277Q==} peerDependencies: @@ -643,6 +763,15 @@ packages: '@deepseek-ai/dsh-session-query': ^0.1.0-rc.8 '@deepseek-ai/dsh-typert-protocol': ^0.1.0-rc.8 + '@deepseek-ai/dsh-session-stats@0.1.0-rc.8': + resolution: {integrity: sha512-T+SEzBkMxZpQ31MaeJCjaLN3/xu8yyZ3Va5u6osfq0nsJz1tvuZ53MHMbApdwERHVV0t/1eILTUo1J6XdksUEA==} + peerDependencies: + '@deepseek-ai/cordis': ^4.0.1 + '@deepseek-ai/dsh-invariants': ^0.1.0-rc.8 + '@deepseek-ai/dsh-llm': ^0.1.0-rc.8 + '@deepseek-ai/dsh-session': ^0.1.0-rc.8 + '@deepseek-ai/dsh-session-projection': ^0.1.0-rc.8 + '@deepseek-ai/dsh-session-title@0.1.0-rc.8': resolution: {integrity: sha512-OFG9kHFGnM5ND4LCkqg8oZr57qgF6xMkBxR/4MRaJJ42QrPI9QKzoZVRpNpXEl3v3uw8oR7Jj0jbc7WClNl3ow==} peerDependencies: @@ -671,6 +800,15 @@ packages: '@deepseek-ai/dsh-invariants': ^0.1.0-rc.8 '@deepseek-ai/schemastery': ^3.18.1 + '@deepseek-ai/dsh-shell@0.1.0-rc.8': + resolution: {integrity: sha512-RNhp7Y25DXUH7o36X4GcN0lnOLg6NXTlWZpYNURT7aDj3UHcLLajRsyddiAh1EbwQnl0GRKRZhLaZHrrG6gMIw==} + peerDependencies: + '@deepseek-ai/cordis': ^4.0.1 + '@deepseek-ai/dsh-invariants': ^0.1.0-rc.8 + '@deepseek-ai/dsh-sandbox': ^0.1.0-rc.8 + '@deepseek-ai/dsh-settings': ^0.1.0-rc.8 + '@deepseek-ai/dsh-subprocess': ^0.1.0-rc.8 + '@deepseek-ai/dsh-skill@0.1.0-rc.8': resolution: {integrity: sha512-MqcOzl4Y5pQEvFBNVAi5w0IZWH5kVbXmp1RYScrl+8HpVATZbgumDhztVnEc2kUrZu+o6LKb1hnbunK6JHUE5g==} peerDependencies: @@ -729,6 +867,12 @@ packages: '@deepseek-ai/dsh-user-approval': optional: true + '@deepseek-ai/dsh-subprocess@0.1.0-rc.8': + resolution: {integrity: sha512-rTWwWCq/WrBTjaXhApu7gaho6UHwMZq0+l7nZ06YMUreNZoCHfg67pAXopMqTgr/iotphmXQdChrLgBabzL1gA==} + peerDependencies: + '@deepseek-ai/cordis': ^4.0.1 + '@deepseek-ai/dsh-invariants': ^0.1.0-rc.8 + '@deepseek-ai/dsh-system-prompt@0.1.0-rc.8': resolution: {integrity: sha512-yk8Z85rzX2EwpKNWA5i+K3I3mqsIIUc9niwbDpXO8vlHvpC2qR3RNHjJIJN2EZYDqfSzTVtkbxHFsuMzDXIbew==} peerDependencies: @@ -743,6 +887,26 @@ packages: '@deepseek-ai/cordis': ^4.0.1 '@deepseek-ai/dsh-invariants': ^0.1.0-rc.8 + '@deepseek-ai/dsh-token-meter@0.1.0-rc.8': + resolution: {integrity: sha512-ZcS6vuuJhoqjUrbyROuiiYk4nrvChkkYEfIoj7CjGbNArWOhbStmBaiPyahtcB1kThcnUKdu7vv7DaZJdLw8Lg==} + peerDependencies: + '@deepseek-ai/cordis': ^4.0.1 + '@deepseek-ai/dsh-compaction': ^0.1.0-rc.8 + '@deepseek-ai/dsh-invariants': ^0.1.0-rc.8 + '@deepseek-ai/dsh-llm': ^0.1.0-rc.8 + '@deepseek-ai/dsh-session': ^0.1.0-rc.8 + '@deepseek-ai/dsh-session-projection': ^0.1.0-rc.8 + + '@deepseek-ai/dsh-tool-todo@0.1.0-rc.8': + resolution: {integrity: sha512-eWxwTeX5WsQPSsz1qyJq+UMiASYB5UHLdObVd4vFLYKbFOoglUK0X+Ie5OjlAkFTP+OzCQMAzUl2gJMwJPWKig==} + peerDependencies: + '@deepseek-ai/cordis': ^4.0.1 + '@deepseek-ai/dsh-agent': ^0.1.0-rc.8 + '@deepseek-ai/dsh-invariants': ^0.1.0-rc.8 + '@deepseek-ai/dsh-session': ^0.1.0-rc.8 + '@deepseek-ai/dsh-session-projection': ^0.1.0-rc.8 + '@deepseek-ai/dsh-tools': ^0.1.0-rc.8 + '@deepseek-ai/dsh-tools@0.1.0-rc.8': resolution: {integrity: sha512-tvuGAVUS4yoPW9zH7CGWJgMlAzGjfu2UlRiricldlcwSKAaJZPZx/K/YfTivUyDTER6aK1DJUnIpVG7RD/DoHQ==} peerDependencies: @@ -2713,7 +2877,7 @@ snapshots: '@deepseek-ai/cordis': 4.0.1(@deepseek-ai/cordis-plugin-include@1.0.6)(@deepseek-ai/cordis-plugin-loader@1.0.2) '@deepseek-ai/dsh-attachment': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-brand@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)) '@deepseek-ai/dsh-commands': 0.1.0-rc.8(72bbe6fdb3741b872b5fbe4132676802) - '@deepseek-ai/dsh-host-apiproxy': 0.1.0-rc.8(9db0ce01d61fac03da5d751375c48981) + '@deepseek-ai/dsh-host-apiproxy': 0.1.0-rc.8(8d2dfe139bc73f2726eab881d5f42494) '@deepseek-ai/dsh-host-webserver': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)) '@deepseek-ai/dsh-invariants': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1) '@deepseek-ai/dsh-llm': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-attachment@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-brand@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-brand@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/dsh-timeout@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))) @@ -2744,7 +2908,7 @@ snapshots: '@deepseek-ai/dsh-attachment': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-brand@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)) '@deepseek-ai/dsh-client-connection': 0.1.0-rc.8(fe206655156830a934a8c1ad4c553629) '@deepseek-ai/dsh-commands': 0.1.0-rc.8(72bbe6fdb3741b872b5fbe4132676802) - '@deepseek-ai/dsh-host-apiproxy': 0.1.0-rc.8(9db0ce01d61fac03da5d751375c48981) + '@deepseek-ai/dsh-host-apiproxy': 0.1.0-rc.8(8d2dfe139bc73f2726eab881d5f42494) '@deepseek-ai/dsh-invariants': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1) '@deepseek-ai/dsh-llm': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-attachment@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-brand@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-brand@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/dsh-timeout@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))) '@deepseek-ai/dsh-llm-retry': 0.1.0-rc.8(ff4d2d0de8af4e8b9da0c8574536c23a) @@ -2760,6 +2924,50 @@ snapshots: - '@types/react' - react + '@deepseek-ai/dsh-client-ui-conversation@0.1.0-rc.8(9eb15e612d91724f640eae94221511b6)': + dependencies: + '@deepseek-ai/cordis': 4.0.1(@deepseek-ai/cordis-plugin-include@1.0.6)(@deepseek-ai/cordis-plugin-loader@1.0.2) + '@deepseek-ai/dsh-agent': 0.1.0-rc.8(92f269661ea5e195fab72177f1a12db7) + '@deepseek-ai/dsh-api-remotes': 0.1.0-rc.8(595254fcd6f0e2eefb415cb6827720e3) + '@deepseek-ai/dsh-attachment': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-brand@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)) + '@deepseek-ai/dsh-brand': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)) + '@deepseek-ai/dsh-client-connection': 0.1.0-rc.8(fe206655156830a934a8c1ad4c553629) + '@deepseek-ai/dsh-client-locale': 0.1.0-rc.8(1a3d8a91c4f4fa0e0397786bec3eddce) + '@deepseek-ai/dsh-client-runtime': 0.1.0-rc.8(c30c11caf28a5634279e6e808a6e5391) + '@deepseek-ai/dsh-client-ui-input-trigger': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-client-locale@0.1.0-rc.8(1a3d8a91c4f4fa0e0397786bec3eddce))(@deepseek-ai/dsh-client-runtime@0.1.0-rc.8(c30c11caf28a5634279e6e808a6e5391))(@deepseek-ai/dsh-file-reference@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-agent@0.1.0-rc.8(92f269661ea5e195fab72177f1a12db7))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/dsh-typert-protocol@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)) + '@deepseek-ai/dsh-client-ui-layout': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-client-runtime@0.1.0-rc.8(c30c11caf28a5634279e6e808a6e5391))(@deepseek-ai/dsh-client-ui-theme@0.1.0-rc.8(14c64cd6fafb94197c895253d24547f1))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)) + '@deepseek-ai/dsh-client-ui-settings': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-api-remotes@0.1.0-rc.8(595254fcd6f0e2eefb415cb6827720e3))(@deepseek-ai/dsh-client-connection@0.1.0-rc.8)(@deepseek-ai/dsh-client-runtime@0.1.0-rc.8(c30c11caf28a5634279e6e808a6e5391))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/dsh-settings@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-brand@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/schemastery@3.18.1)) + '@deepseek-ai/dsh-commands': 0.1.0-rc.8(72bbe6fdb3741b872b5fbe4132676802) + '@deepseek-ai/dsh-compaction': 0.1.0-rc.8(3cc0be3a739161751497b5d470122ec7) + '@deepseek-ai/dsh-goal': 0.1.0-rc.8(ee40b9fe89b358f0d6e7a82951758559) + '@deepseek-ai/dsh-invariants': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1) + '@deepseek-ai/dsh-llm-retry': 0.1.0-rc.8(ff4d2d0de8af4e8b9da0c8574536c23a) + '@deepseek-ai/dsh-permission-presets': 0.1.0-rc.8(79092f373de8f3cb4f50c9f60514c823) + '@deepseek-ai/dsh-plan-mode': 0.1.0-rc.8(2be47fd308fbfc0e10a3ebd3a2fb2862) + '@deepseek-ai/dsh-session-stats': 0.1.0-rc.8(200e2dcb959662a87005cdf835cfa062) + '@deepseek-ai/dsh-settings': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-brand@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/schemastery@3.18.1) + '@deepseek-ai/dsh-token-meter': 0.1.0-rc.8(526283d1ad8e7e70580fdcc3cf71a50f) + '@deepseek-ai/dsh-tool-todo': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-agent@0.1.0-rc.8(92f269661ea5e195fab72177f1a12db7))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/dsh-session-projection@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/dsh-session@0.1.0-rc.8(fbdb1d988541b64ff002d18c4ded7293)))(@deepseek-ai/dsh-session@0.1.0-rc.8(fbdb1d988541b64ff002d18c4ded7293))(@deepseek-ai/dsh-tools@0.1.0-rc.8(ac9081d1e007de8a90a707560a8ae1c3)) + '@deepseek-ai/dsh-tools': 0.1.0-rc.8(ac9081d1e007de8a90a707560a8ae1c3) + '@deepseek-ai/schemastery': 3.18.1 + clsx: 2.1.1 + + '@deepseek-ai/dsh-client-ui-input-trigger@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-client-locale@0.1.0-rc.8(1a3d8a91c4f4fa0e0397786bec3eddce))(@deepseek-ai/dsh-client-runtime@0.1.0-rc.8(c30c11caf28a5634279e6e808a6e5391))(@deepseek-ai/dsh-file-reference@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-agent@0.1.0-rc.8(92f269661ea5e195fab72177f1a12db7))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/dsh-typert-protocol@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))': + dependencies: + '@deepseek-ai/cordis': 4.0.1(@deepseek-ai/cordis-plugin-include@1.0.6)(@deepseek-ai/cordis-plugin-loader@1.0.2) + '@deepseek-ai/dsh-client-locale': 0.1.0-rc.8(1a3d8a91c4f4fa0e0397786bec3eddce) + '@deepseek-ai/dsh-client-runtime': 0.1.0-rc.8(c30c11caf28a5634279e6e808a6e5391) + '@deepseek-ai/dsh-file-reference': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-agent@0.1.0-rc.8(92f269661ea5e195fab72177f1a12db7))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/dsh-typert-protocol@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))) + '@deepseek-ai/dsh-invariants': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1) + clsx: 2.1.1 + + '@deepseek-ai/dsh-client-ui-layout@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-client-runtime@0.1.0-rc.8(c30c11caf28a5634279e6e808a6e5391))(@deepseek-ai/dsh-client-ui-theme@0.1.0-rc.8(14c64cd6fafb94197c895253d24547f1))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))': + dependencies: + '@deepseek-ai/cordis': 4.0.1(@deepseek-ai/cordis-plugin-include@1.0.6)(@deepseek-ai/cordis-plugin-loader@1.0.2) + '@deepseek-ai/dsh-client-runtime': 0.1.0-rc.8(c30c11caf28a5634279e6e808a6e5391) + '@deepseek-ai/dsh-client-ui-theme': 0.1.0-rc.8(14c64cd6fafb94197c895253d24547f1) + '@deepseek-ai/dsh-invariants': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1) + '@deepseek-ai/dsh-client-ui-settings-plugins@0.1.0-rc.8(24340344f117501a5bd1e3cb88ec3d0e)': dependencies: '@deepseek-ai/cordis': 4.0.1(@deepseek-ai/cordis-plugin-include@1.0.6)(@deepseek-ai/cordis-plugin-loader@1.0.2) @@ -2786,6 +2994,31 @@ snapshots: '@deepseek-ai/cordis': 4.0.1(@deepseek-ai/cordis-plugin-include@1.0.6)(@deepseek-ai/cordis-plugin-loader@1.0.2) '@deepseek-ai/dsh-invariants': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1) + '@deepseek-ai/dsh-client-ui-theme@0.1.0-rc.8(14c64cd6fafb94197c895253d24547f1)': + dependencies: + '@deepseek-ai/cordis': 4.0.1(@deepseek-ai/cordis-plugin-include@1.0.6)(@deepseek-ai/cordis-plugin-loader@1.0.2) + '@deepseek-ai/dsh-api-remotes': 0.1.0-rc.8(595254fcd6f0e2eefb415cb6827720e3) + '@deepseek-ai/dsh-client-connection': 0.1.0-rc.8(fe206655156830a934a8c1ad4c553629) + '@deepseek-ai/dsh-client-locale': 0.1.0-rc.8(1a3d8a91c4f4fa0e0397786bec3eddce) + '@deepseek-ai/dsh-client-runtime': 0.1.0-rc.8(c30c11caf28a5634279e6e808a6e5391) + '@deepseek-ai/dsh-client-ui-settings': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-api-remotes@0.1.0-rc.8(595254fcd6f0e2eefb415cb6827720e3))(@deepseek-ai/dsh-client-connection@0.1.0-rc.8)(@deepseek-ai/dsh-client-runtime@0.1.0-rc.8(c30c11caf28a5634279e6e808a6e5391))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/dsh-settings@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-brand@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/schemastery@3.18.1)) + '@deepseek-ai/dsh-host-webserver': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)) + '@deepseek-ai/dsh-invariants': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1) + '@deepseek-ai/dsh-settings': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-brand@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/schemastery@3.18.1) + '@deepseek-ai/schemastery': 3.18.1 + clsx: 2.1.1 + + '@deepseek-ai/dsh-client-ui-tool@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-api-remotes@0.1.0-rc.8(595254fcd6f0e2eefb415cb6827720e3))(@deepseek-ai/dsh-client-connection@0.1.0-rc.8)(@deepseek-ai/dsh-client-locale@0.1.0-rc.8(1a3d8a91c4f4fa0e0397786bec3eddce))(@deepseek-ai/dsh-client-runtime@0.1.0-rc.8(c30c11caf28a5634279e6e808a6e5391))(@deepseek-ai/dsh-client-ui-conversation@0.1.0-rc.8(9eb15e612d91724f640eae94221511b6))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))': + dependencies: + '@deepseek-ai/cordis': 4.0.1(@deepseek-ai/cordis-plugin-include@1.0.6)(@deepseek-ai/cordis-plugin-loader@1.0.2) + '@deepseek-ai/dsh-api-remotes': 0.1.0-rc.8(595254fcd6f0e2eefb415cb6827720e3) + '@deepseek-ai/dsh-client-connection': 0.1.0-rc.8(fe206655156830a934a8c1ad4c553629) + '@deepseek-ai/dsh-client-locale': 0.1.0-rc.8(1a3d8a91c4f4fa0e0397786bec3eddce) + '@deepseek-ai/dsh-client-runtime': 0.1.0-rc.8(c30c11caf28a5634279e6e808a6e5391) + '@deepseek-ai/dsh-client-ui-conversation': 0.1.0-rc.8(9eb15e612d91724f640eae94221511b6) + '@deepseek-ai/dsh-invariants': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1) + clsx: 2.1.1 + '@deepseek-ai/dsh-code-runtime@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))': dependencies: '@deepseek-ai/cordis': 4.0.1(@deepseek-ai/cordis-plugin-include@1.0.6)(@deepseek-ai/cordis-plugin-loader@1.0.2) @@ -2860,7 +3093,7 @@ snapshots: '@deepseek-ai/cordis': 4.0.1(@deepseek-ai/cordis-plugin-include@1.0.6)(@deepseek-ai/cordis-plugin-loader@1.0.2) '@deepseek-ai/dsh-invariants': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1) - '@deepseek-ai/dsh-host-apiproxy@0.1.0-rc.8(9db0ce01d61fac03da5d751375c48981)': + '@deepseek-ai/dsh-host-apiproxy@0.1.0-rc.8(8d2dfe139bc73f2726eab881d5f42494)': dependencies: '@deepseek-ai/cordis': 4.0.1(@deepseek-ai/cordis-plugin-include@1.0.6)(@deepseek-ai/cordis-plugin-loader@1.0.2) '@deepseek-ai/dsh-agent': 0.1.0-rc.8(92f269661ea5e195fab72177f1a12db7) @@ -2886,7 +3119,7 @@ snapshots: '@deepseek-ai/dsh-session-title': 0.1.0-rc.8(91b31584ff9779c6cd69a9db13c5ad7e) '@deepseek-ai/dsh-settings': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-brand@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/schemastery@3.18.1) '@deepseek-ai/dsh-skill': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/dsh-llm@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-attachment@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-brand@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-brand@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/dsh-timeout@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))))(@deepseek-ai/dsh-scope@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))) - '@deepseek-ai/dsh-subagent': 0.1.0-rc.8(38206611447eb6c96bb3cc421eeb53af) + '@deepseek-ai/dsh-subagent': 0.1.0-rc.8(52d3162df9a65923cc941f3a328408da) '@deepseek-ai/dsh-tools': 0.1.0-rc.8(ac9081d1e007de8a90a707560a8ae1c3) '@deepseek-ai/dsh-user-approval': 0.1.0-rc.8(380a43f4d6510c4a5dfadf54dc7f17a7) '@deepseek-ai/dsh-user-questions': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-agent@0.1.0-rc.8(92f269661ea5e195fab72177f1a12db7))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/dsh-llm@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-attachment@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-brand@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-brand@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/dsh-timeout@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))) @@ -2987,6 +3220,53 @@ snapshots: '@deepseek-ai/cordis': 4.0.1(@deepseek-ai/cordis-plugin-include@1.0.6)(@deepseek-ai/cordis-plugin-loader@1.0.2) '@deepseek-ai/dsh-invariants': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1) + '@deepseek-ai/dsh-permission-presets@0.1.0-rc.8(79092f373de8f3cb4f50c9f60514c823)': + dependencies: + '@deepseek-ai/cordis': 4.0.1(@deepseek-ai/cordis-plugin-include@1.0.6)(@deepseek-ai/cordis-plugin-loader@1.0.2) + '@deepseek-ai/dsh-commands': 0.1.0-rc.8(72bbe6fdb3741b872b5fbe4132676802) + '@deepseek-ai/dsh-invariants': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1) + '@deepseek-ai/dsh-sandbox': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/dsh-llm@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-attachment@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-brand@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-brand@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/dsh-timeout@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))))(@deepseek-ai/dsh-session@0.1.0-rc.8(fbdb1d988541b64ff002d18c4ded7293)) + '@deepseek-ai/dsh-sandbox-policy': 0.1.0-rc.8(89f2459a5c8f6954b5e2bd86338a89a7) + '@deepseek-ai/dsh-session': 0.1.0-rc.8(fbdb1d988541b64ff002d18c4ded7293) + '@deepseek-ai/dsh-session-projection': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/dsh-session@0.1.0-rc.8(fbdb1d988541b64ff002d18c4ded7293)) + '@deepseek-ai/dsh-settings': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-brand@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/schemastery@3.18.1) + '@deepseek-ai/dsh-shell': 0.1.0-rc.8(cf0ef1256d81cd604a972a35a4bab0bc) + '@deepseek-ai/dsh-user-approval': 0.1.0-rc.8(380a43f4d6510c4a5dfadf54dc7f17a7) + '@deepseek-ai/schemastery': 3.18.1 + zod: 4.4.3 + + '@deepseek-ai/dsh-plan-mode@0.1.0-rc.8(2be47fd308fbfc0e10a3ebd3a2fb2862)': + dependencies: + '@deepseek-ai/cordis': 4.0.1(@deepseek-ai/cordis-plugin-include@1.0.6)(@deepseek-ai/cordis-plugin-loader@1.0.2) + '@deepseek-ai/dsh-agent': 0.1.0-rc.8(92f269661ea5e195fab72177f1a12db7) + '@deepseek-ai/dsh-invariants': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1) + '@deepseek-ai/dsh-llm': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-attachment@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-brand@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-brand@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/dsh-timeout@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))) + '@deepseek-ai/dsh-session': 0.1.0-rc.8(fbdb1d988541b64ff002d18c4ded7293) + '@deepseek-ai/dsh-session-projection': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/dsh-session@0.1.0-rc.8(fbdb1d988541b64ff002d18c4ded7293)) + '@deepseek-ai/dsh-system-prompt': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/dsh-llm@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-attachment@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-brand@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-brand@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/dsh-timeout@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))))(@deepseek-ai/dsh-scope@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))) + '@deepseek-ai/dsh-tools': 0.1.0-rc.8(ac9081d1e007de8a90a707560a8ae1c3) + '@deepseek-ai/dsh-user-questions': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-agent@0.1.0-rc.8(92f269661ea5e195fab72177f1a12db7))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/dsh-llm@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-attachment@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-brand@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-brand@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/dsh-timeout@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))) + zod: 4.4.3 + optionalDependencies: + '@deepseek-ai/dsh-commands': 0.1.0-rc.8(72bbe6fdb3741b872b5fbe4132676802) + + '@deepseek-ai/dsh-sandbox-policy@0.1.0-rc.8(89f2459a5c8f6954b5e2bd86338a89a7)': + dependencies: + '@deepseek-ai/cordis': 4.0.1(@deepseek-ai/cordis-plugin-include@1.0.6)(@deepseek-ai/cordis-plugin-loader@1.0.2) + '@deepseek-ai/dsh-agent': 0.1.0-rc.8(92f269661ea5e195fab72177f1a12db7) + '@deepseek-ai/dsh-invariants': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1) + '@deepseek-ai/dsh-sandbox': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/dsh-llm@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-attachment@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-brand@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-brand@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/dsh-timeout@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))))(@deepseek-ai/dsh-session@0.1.0-rc.8(fbdb1d988541b64ff002d18c4ded7293)) + '@deepseek-ai/dsh-session': 0.1.0-rc.8(fbdb1d988541b64ff002d18c4ded7293) + '@deepseek-ai/dsh-system-prompt': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/dsh-llm@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-attachment@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-brand@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-brand@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/dsh-timeout@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))))(@deepseek-ai/dsh-scope@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))) + '@deepseek-ai/schemastery': 3.18.1 + + '@deepseek-ai/dsh-sandbox@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/dsh-llm@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-attachment@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-brand@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-brand@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/dsh-timeout@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))))(@deepseek-ai/dsh-session@0.1.0-rc.8(fbdb1d988541b64ff002d18c4ded7293))': + dependencies: + '@deepseek-ai/cordis': 4.0.1(@deepseek-ai/cordis-plugin-include@1.0.6)(@deepseek-ai/cordis-plugin-loader@1.0.2) + '@deepseek-ai/dsh-invariants': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1) + '@deepseek-ai/dsh-llm': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-attachment@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-brand@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-brand@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/dsh-timeout@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))) + '@deepseek-ai/dsh-session': 0.1.0-rc.8(fbdb1d988541b64ff002d18c4ded7293) + '@deepseek-ai/dsh-scope@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))': dependencies: '@deepseek-ai/cordis': 4.0.1(@deepseek-ai/cordis-plugin-include@1.0.6)(@deepseek-ai/cordis-plugin-loader@1.0.2) @@ -3043,6 +3323,15 @@ snapshots: '@deepseek-ai/schemastery': 3.18.1 zod: 4.4.3 + '@deepseek-ai/dsh-session-stats@0.1.0-rc.8(200e2dcb959662a87005cdf835cfa062)': + dependencies: + '@deepseek-ai/cordis': 4.0.1(@deepseek-ai/cordis-plugin-include@1.0.6)(@deepseek-ai/cordis-plugin-loader@1.0.2) + '@deepseek-ai/dsh-invariants': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1) + '@deepseek-ai/dsh-llm': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-attachment@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-brand@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-brand@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/dsh-timeout@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))) + '@deepseek-ai/dsh-session': 0.1.0-rc.8(fbdb1d988541b64ff002d18c4ded7293) + '@deepseek-ai/dsh-session-projection': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/dsh-session@0.1.0-rc.8(fbdb1d988541b64ff002d18c4ded7293)) + zod: 4.4.3 + '@deepseek-ai/dsh-session-title@0.1.0-rc.8(91b31584ff9779c6cd69a9db13c5ad7e)': dependencies: '@deepseek-ai/cordis': 4.0.1(@deepseek-ai/cordis-plugin-include@1.0.6)(@deepseek-ai/cordis-plugin-loader@1.0.2) @@ -3070,6 +3359,14 @@ snapshots: '@deepseek-ai/dsh-invariants': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1) '@deepseek-ai/schemastery': 3.18.1 + '@deepseek-ai/dsh-shell@0.1.0-rc.8(cf0ef1256d81cd604a972a35a4bab0bc)': + dependencies: + '@deepseek-ai/cordis': 4.0.1(@deepseek-ai/cordis-plugin-include@1.0.6)(@deepseek-ai/cordis-plugin-loader@1.0.2) + '@deepseek-ai/dsh-invariants': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1) + '@deepseek-ai/dsh-sandbox': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/dsh-llm@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-attachment@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-brand@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-brand@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/dsh-timeout@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))))(@deepseek-ai/dsh-session@0.1.0-rc.8(fbdb1d988541b64ff002d18c4ded7293)) + '@deepseek-ai/dsh-settings': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-brand@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/schemastery@3.18.1) + '@deepseek-ai/dsh-subprocess': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)) + '@deepseek-ai/dsh-skill@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/dsh-llm@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-attachment@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-brand@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-brand@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/dsh-timeout@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))))(@deepseek-ai/dsh-scope@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))': dependencies: '@deepseek-ai/cordis': 4.0.1(@deepseek-ai/cordis-plugin-include@1.0.6)(@deepseek-ai/cordis-plugin-loader@1.0.2) @@ -3091,7 +3388,7 @@ snapshots: '@deepseek-ai/cordis': 4.0.1(@deepseek-ai/cordis-plugin-include@1.0.6)(@deepseek-ai/cordis-plugin-loader@1.0.2) '@deepseek-ai/dsh-invariants': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1) - '@deepseek-ai/dsh-subagent@0.1.0-rc.8(38206611447eb6c96bb3cc421eeb53af)': + '@deepseek-ai/dsh-subagent@0.1.0-rc.8(52d3162df9a65923cc941f3a328408da)': dependencies: '@deepseek-ai/cordis': 4.0.1(@deepseek-ai/cordis-plugin-include@1.0.6)(@deepseek-ai/cordis-plugin-loader@1.0.2) '@deepseek-ai/dsh-agent': 0.1.0-rc.8(92f269661ea5e195fab72177f1a12db7) @@ -3105,11 +3402,18 @@ snapshots: optionalDependencies: '@deepseek-ai/dsh-agent-presets': 0.1.0-rc.8(20c3ff7f747776d9e6629d98881e3397) '@deepseek-ai/dsh-jobs': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-agent@0.1.0-rc.8(92f269661ea5e195fab72177f1a12db7))(@deepseek-ai/dsh-brand@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/dsh-session@0.1.0-rc.8(fbdb1d988541b64ff002d18c4ded7293)) + '@deepseek-ai/dsh-sandbox': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/dsh-llm@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-attachment@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-brand@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-brand@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/dsh-timeout@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))))(@deepseek-ai/dsh-session@0.1.0-rc.8(fbdb1d988541b64ff002d18c4ded7293)) + '@deepseek-ai/dsh-sandbox-policy': 0.1.0-rc.8(89f2459a5c8f6954b5e2bd86338a89a7) '@deepseek-ai/dsh-session-persistence': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-brand@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/dsh-session@0.1.0-rc.8(fbdb1d988541b64ff002d18c4ded7293))(@deepseek-ai/dsh-timeout@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))) '@deepseek-ai/dsh-session-projection': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/dsh-session@0.1.0-rc.8(fbdb1d988541b64ff002d18c4ded7293)) '@deepseek-ai/dsh-session-projection-cache': 0.1.0-rc.8(80a7956f091cdf0c220b226dd100fe03) '@deepseek-ai/dsh-user-approval': 0.1.0-rc.8(380a43f4d6510c4a5dfadf54dc7f17a7) + '@deepseek-ai/dsh-subprocess@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))': + dependencies: + '@deepseek-ai/cordis': 4.0.1(@deepseek-ai/cordis-plugin-include@1.0.6)(@deepseek-ai/cordis-plugin-loader@1.0.2) + '@deepseek-ai/dsh-invariants': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1) + '@deepseek-ai/dsh-system-prompt@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/dsh-llm@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-attachment@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-brand@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-brand@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/dsh-timeout@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))))(@deepseek-ai/dsh-scope@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))': dependencies: '@deepseek-ai/cordis': 4.0.1(@deepseek-ai/cordis-plugin-include@1.0.6)(@deepseek-ai/cordis-plugin-loader@1.0.2) @@ -3123,6 +3427,28 @@ snapshots: '@deepseek-ai/cordis': 4.0.1(@deepseek-ai/cordis-plugin-include@1.0.6)(@deepseek-ai/cordis-plugin-loader@1.0.2) '@deepseek-ai/dsh-invariants': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1) + '@deepseek-ai/dsh-token-meter@0.1.0-rc.8(526283d1ad8e7e70580fdcc3cf71a50f)': + dependencies: + '@deepseek-ai/cordis': 4.0.1(@deepseek-ai/cordis-plugin-include@1.0.6)(@deepseek-ai/cordis-plugin-loader@1.0.2) + '@deepseek-ai/dsh-compaction': 0.1.0-rc.8(3cc0be3a739161751497b5d470122ec7) + '@deepseek-ai/dsh-invariants': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1) + '@deepseek-ai/dsh-llm': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-attachment@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-brand@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-brand@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/dsh-timeout@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))) + '@deepseek-ai/dsh-session': 0.1.0-rc.8(fbdb1d988541b64ff002d18c4ded7293) + '@deepseek-ai/dsh-session-projection': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/dsh-session@0.1.0-rc.8(fbdb1d988541b64ff002d18c4ded7293)) + '@deepseek-ai/schemastery': 3.18.1 + zod: 4.4.3 + + '@deepseek-ai/dsh-tool-todo@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-agent@0.1.0-rc.8(92f269661ea5e195fab72177f1a12db7))(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/dsh-session-projection@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/dsh-session@0.1.0-rc.8(fbdb1d988541b64ff002d18c4ded7293)))(@deepseek-ai/dsh-session@0.1.0-rc.8(fbdb1d988541b64ff002d18c4ded7293))(@deepseek-ai/dsh-tools@0.1.0-rc.8(ac9081d1e007de8a90a707560a8ae1c3))': + dependencies: + '@deepseek-ai/cordis': 4.0.1(@deepseek-ai/cordis-plugin-include@1.0.6)(@deepseek-ai/cordis-plugin-loader@1.0.2) + '@deepseek-ai/dsh-agent': 0.1.0-rc.8(92f269661ea5e195fab72177f1a12db7) + '@deepseek-ai/dsh-invariants': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1) + '@deepseek-ai/dsh-session': 0.1.0-rc.8(fbdb1d988541b64ff002d18c4ded7293) + '@deepseek-ai/dsh-session-projection': 0.1.0-rc.8(@deepseek-ai/cordis@4.0.1)(@deepseek-ai/dsh-invariants@0.1.0-rc.8(@deepseek-ai/cordis@4.0.1))(@deepseek-ai/dsh-session@0.1.0-rc.8(fbdb1d988541b64ff002d18c4ded7293)) + '@deepseek-ai/dsh-tools': 0.1.0-rc.8(ac9081d1e007de8a90a707560a8ae1c3) + '@deepseek-ai/schemastery': 3.18.1 + zod: 4.4.3 + '@deepseek-ai/dsh-tools@0.1.0-rc.8(ac9081d1e007de8a90a707560a8ae1c3)': dependencies: '@deepseek-ai/cordis': 4.0.1(@deepseek-ai/cordis-plugin-include@1.0.6)(@deepseek-ai/cordis-plugin-loader@1.0.2) From 5b6dcfcee2423a4b52cc9fd25ebe00f173b98cea Mon Sep 17 00:00:00 2001 From: Neil Date: Thu, 27 Aug 2026 23:04:17 +0800 Subject: [PATCH 2/2] fix(dsh): format research tool views --- packages/dsh-web/src/client.ts | 56 +++++++++++++++++++++++----------- 1 file changed, 38 insertions(+), 18 deletions(-) diff --git a/packages/dsh-web/src/client.ts b/packages/dsh-web/src/client.ts index 5b0e08e..369fe9e 100644 --- a/packages/dsh-web/src/client.ts +++ b/packages/dsh-web/src/client.ts @@ -263,8 +263,7 @@ function SettingsCard({ { type: "button", className: "guionai-web__button", - disabled: - !current.writable || (drafts[ref] ?? "").trim() === "", + disabled: !current.writable || (drafts[ref] ?? "").trim() === "", onClick: () => void saveCredential(ref), }, "Save key", @@ -370,7 +369,10 @@ function WebResearchToolCard({ createElement( "div", { className: "guionai-web__tool-heading" }, - createElement("span", { className: "guionai-web__state-dot", "aria-hidden": true }), + createElement("span", { + className: "guionai-web__state-dot", + "aria-hidden": true, + }), createElement("strong", { className: "guionai-web__tool-title" }, title), createElement( "span", @@ -387,7 +389,9 @@ function WebResearchToolCard({ ? createElement( "p", { className: "guionai-web__tool-error", role: "alert" }, - block.error ? `${block.error.name}: ${block.error.code}` : "The request failed.", + block.error + ? `${block.error.name}: ${block.error.code}` + : "The request failed.", ) : toolBody(name, args, output), !running && output @@ -449,20 +453,24 @@ function toolBody( createElement( "p", { className: "guionai-web__result-count" }, - libraries.length > 0 ? `${libraries.length} library matches` : "No libraries found", + libraries.length > 0 + ? `${libraries.length} library matches` + : "No libraries found", ), libraries.length > 0 ? createElement( "ul", { className: "guionai-web__library-list" }, - ...libraries.slice(0, 5).map((library) => - createElement( - "li", - { key: library.id }, - createElement("code", null, library.id), - createElement("span", null, library.title), + ...libraries + .slice(0, 5) + .map((library) => + createElement( + "li", + { key: library.id }, + createElement("code", null, library.id), + createElement("span", null, library.title), + ), ), - ), ) : null, ); @@ -487,7 +495,9 @@ function toolBody( ); } -function toolArguments(block: ToolCallViewProps["block"]): Record { +function toolArguments( + block: ToolCallViewProps["block"], +): Record { const argsRaw = isToolResult(block) ? block.call?.argsRaw : block.argsRaw; if (!argsRaw) return {}; try { @@ -503,16 +513,24 @@ function toolArguments(block: ToolCallViewProps["block"]): Record (content.type === "text" ? content.text : JSON.stringify(content))) + .map((content) => + content.type === "text" ? content.text : JSON.stringify(content), + ) .join("\n"); } -function toolSummary(name: ResearchToolName, args: Record): string { +function toolSummary( + name: ResearchToolName, + args: Record, +): string { if (name === "web_docs") { const identifier = args.action === "resolve" ? args.query : args.library_id; - return typeof identifier === "string" ? identifier : "Documentation request"; + return typeof identifier === "string" + ? identifier + : "Documentation request"; } - if (typeof args.url !== "string") return name === "web_links" ? "Page links" : "Web page"; + if (typeof args.url !== "string") + return name === "web_links" ? "Page links" : "Web page"; try { const url = new URL(args.url); return `${url.hostname}${url.pathname === "/" ? "" : url.pathname}`; @@ -532,7 +550,9 @@ function linksFromOutput(output: string): Array<{ text: string; url: string }> { ); } -function librariesFromOutput(output: string): Array<{ id: string; title: string }> { +function librariesFromOutput( + output: string, +): Array<{ id: string; title: string }> { return [...output.matchAll(/^- (.+?): (.+)$/gm)].map(([, id, title]) => ({ id: id!, title: title!,