From 0df511f43e3a0c2c8aea3742875874c3ed707cdc Mon Sep 17 00:00:00 2001 From: taobig Date: Tue, 29 Sep 2026 05:23:27 -0400 Subject: [PATCH] feat(dsh): migrate SDK runtime and add pinned upgrades (#650) --- README.md | 4 +- README_zh.md | 4 +- .../mate/agent/runtime/dsh/DshLaunchSpec.java | 66 + .../agent/runtime/dsh/DshRuntimeService.java | 437 +- .../mate/agent/runtime/dsh/DshSdkProcess.java | 138 + .../mate/agent/runtime/dsh/DshSdkTurn.java | 117 + .../dsh/management/DshGenerationStore.java | 333 + .../management/DshManagementController.java | 36 +- .../dsh/management/DshManagementService.java | 86 +- .../dsh/management/DshManagementState.java | 1 + .../dsh/management/DshPinnedInstaller.java | 94 + .../management/DshRuntimeConfigResolver.java | 23 +- .../management/DshRuntimeConfigService.java | 103 +- .../management/DshRuntimeConfiguration.java | 36 +- .../dsh/management/DshUpgradeService.java | 237 + .../resources/docs/en/deepseek-harness.md | 213 +- .../resources/docs/zh/deepseek-harness.md | 217 +- .../main/resources/dsh/locks/0.1.7-rc.2.json | 8915 ++++++++++++++++ .../main/resources/dsh/locks/0.2.0-rc.1.json | 9124 +++++++++++++++++ .../agent/runtime/dsh/DshLaunchSpecTest.java | 52 + .../runtime/dsh/DshRecordedProtocolTest.java | 31 + .../dsh/DshRuntimeModelLimitsTest.java | 19 +- .../runtime/dsh/DshRuntimeServiceTest.java | 63 +- .../agent/runtime/dsh/DshSdkProtocolTest.java | 63 + .../runtime/dsh/DshSdkTransportTest.java | 75 + .../agent/runtime/dsh/DshSdkTurnTest.java | 61 + .../management/DshGenerationStoreTest.java | 98 + .../management/DshPinnedInstallerTest.java | 37 + .../management/DshRuntimeConfigSaveTest.java | 81 + .../dsh/management/DshUpgradeServiceTest.java | 108 + .../test/resources/dsh/0.1.7-rc.2-sdk.jsonl | 10 + .../test/resources/dsh/0.2.0-rc.1-sdk.jsonl | 10 + mateclaw-ui/src/api/index.ts | 6 +- .../Dsh/__tests__/configMapping.test.ts | 17 + .../Dsh/__tests__/healthState.test.ts | 25 + .../src/views/Settings/Dsh/configMapping.ts | 16 +- mateclaw-ui/src/views/Settings/Dsh/index.vue | 103 +- 37 files changed, 20316 insertions(+), 743 deletions(-) create mode 100644 mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/DshLaunchSpec.java create mode 100644 mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/DshSdkProcess.java create mode 100644 mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/DshSdkTurn.java create mode 100644 mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/management/DshGenerationStore.java create mode 100644 mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/management/DshPinnedInstaller.java create mode 100644 mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/management/DshUpgradeService.java create mode 100644 mateclaw-server/src/main/resources/dsh/locks/0.1.7-rc.2.json create mode 100644 mateclaw-server/src/main/resources/dsh/locks/0.2.0-rc.1.json create mode 100644 mateclaw-server/src/test/java/vip/mate/agent/runtime/dsh/DshLaunchSpecTest.java create mode 100644 mateclaw-server/src/test/java/vip/mate/agent/runtime/dsh/DshRecordedProtocolTest.java create mode 100644 mateclaw-server/src/test/java/vip/mate/agent/runtime/dsh/DshSdkProtocolTest.java create mode 100644 mateclaw-server/src/test/java/vip/mate/agent/runtime/dsh/DshSdkTransportTest.java create mode 100644 mateclaw-server/src/test/java/vip/mate/agent/runtime/dsh/DshSdkTurnTest.java create mode 100644 mateclaw-server/src/test/java/vip/mate/agent/runtime/dsh/management/DshGenerationStoreTest.java create mode 100644 mateclaw-server/src/test/java/vip/mate/agent/runtime/dsh/management/DshPinnedInstallerTest.java create mode 100644 mateclaw-server/src/test/java/vip/mate/agent/runtime/dsh/management/DshRuntimeConfigSaveTest.java create mode 100644 mateclaw-server/src/test/java/vip/mate/agent/runtime/dsh/management/DshUpgradeServiceTest.java create mode 100644 mateclaw-server/src/test/resources/dsh/0.1.7-rc.2-sdk.jsonl create mode 100644 mateclaw-server/src/test/resources/dsh/0.2.0-rc.1-sdk.jsonl create mode 100644 mateclaw-ui/src/views/Settings/Dsh/__tests__/healthState.test.ts diff --git a/README.md b/README.md index ce89431e..51467ed9 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ > > Multi-user workspaces. Approval-gated sensitive actions. Full audit trail. Spring Boot Actuator health monitoring. Per-channel error isolation so one chat platform's outage doesn't take down the rest. One JAR in your environment; you control persisted data, and task content is sent only to model, channel, or tool services you explicitly configure. > -> **And underneath, a real Agent Runtime.** An employee is no longer welded to one reasoning loop. Choose the native StateGraph runtime for ReAct, Plan-and-Execute, Goals, and Team Runs, or run DeepSeek Harness as a managed external loop over authenticated JSON-RPC. Both paths converge on the same conversations, workspace boundaries, Tool Guard, event projection, and lifecycle controls. +> **And underneath, a real Agent Runtime.** An employee is no longer welded to one reasoning loop. Choose the native StateGraph runtime for ReAct, Plan-and-Execute, Goals, and Team Runs, or run DeepSeek Harness as a managed external loop over SDK JSON-RPC. Both paths converge on the same conversations, workspace boundaries, Tool Guard, event projection, and lifecycle controls. Most AI tools die when their vendor has a bad day. Most forget you the moment the tab closes. Most give you a chatbox and call it a product. @@ -86,7 +86,7 @@ Same brain. Same memory. Same tools. Different doors. You hire coworkers, not chat boxes. Each one has a **Role**, a **Goal**, a **Backstory**, a runtime, a pixel-art avatar, and a color of their own — six built-in templates ship ready (General Assistant · Product Assistant · Research Analyst · Customer Support · Data Analyst · Code Reviewer). Employee identity and governance stay stable even when the execution engine changes. ### Agent Runtime: native or DSH (2.2.0+) -The `AgentRuntimeProvider` contract separates an employee from the engine that runs its turn. The **native runtime** keeps ReAct, Plan-and-Execute, persistent Goals, and Team Runs inside MateClaw. The **DSH runtime** manages `dsh-jsonrpc-agent` as an authenticated child process and streams thinking, text, tool calls, usage, completion, and cancellation back as normalized runtime events. DSH owns the external Agent loop; MateClaw still owns the session, workspace, credentials, tools, approvals, messages, and UI projection. Runtime availability and capabilities are validated before startup, and DSH can be installed, verified, connection-tested, enabled, or disabled from the console. [Configure DeepSeek Harness →](https://claw.mate.vip/docs/en/deepseek-harness) +The `AgentRuntimeProvider` contract separates an employee from the engine that runs its turn. The **native runtime** keeps ReAct, Plan-and-Execute, persistent Goals, and Team Runs inside MateClaw. The **DSH runtime** launches the official `dsh --profile sdk` CLI and normalizes its thinking, text, tools, usage, completion, and cancellation events. Managed installation pins `0.2.0-rc.1` (alternative: `0.1.7-rc.2`) with reviewed npm locks and Node.js 22. Upgrades copy runtime homes, check the candidate, and switch a retained generation; rollback restores the previous home/configuration without merging newer sessions. Package and real-model adapter checks passed on macOS arm64; Linux x64 and persisted V3→V4 history migration remain unverified. [Configure DeepSeek Harness →](https://claw.mate.vip/docs/en/deepseek-harness) ### Durable long tasks: checkpoint, restart, continue (2.2.0+) Persistent Goals turn work that takes hours into bounded, recoverable segments. The database preserves the goal checklist, continuation state, attempts, cooldowns, leases, and user input accepted while the worker is busy. After a single backend instance restarts, the supervisor reconciles the interrupted attempt, reads persisted checkpoints and artifacts, and schedules the next safe segment instead of asking you to repeat the task. diff --git a/README_zh.md b/README_zh.md index c2eb7bcb..05add63a 100644 --- a/README_zh.md +++ b/README_zh.md @@ -38,7 +38,7 @@ > > 多用户工作空间。敏感操作走审批。完整审计日志。Spring Boot Actuator 健康监控。单个渠道挂掉不影响其他渠道的错误隔离。一个 JAR 包跑在自己的环境里;持久化数据由你掌控,任务所需内容只会发送到你主动配置的模型、渠道或工具服务。 > -> **底下是一套真正的 Agent Runtime。** 员工不再焊死在一套推理循环上:可以用原生 StateGraph 运行 ReAct、Plan-and-Execute、Goal 与 Team Run,也可以通过认证 JSON-RPC 把 DeepSeek Harness 作为受管理的外部循环。两条路径最终进入同一套会话、工作空间边界、Tool Guard、事件投影与生命周期控制。 +> **底下是一套真正的 Agent Runtime。** 员工不再焊死在一套推理循环上:可以用原生 StateGraph 运行 ReAct、Plan-and-Execute、Goal 与 Team Run,也可以通过 SDK JSON-RPC 把 DeepSeek Harness 作为受管理的外部循环。两条路径最终进入同一套会话、工作空间边界、Tool Guard、事件投影与生命周期控制。 大多数 AI 工具一到厂商抽风那天就两手一摊。关一次标签页就忘了你是谁。给你一个聊天框,就敢叫产品。 @@ -86,7 +86,7 @@ MateClaw 的 **LLM Wiki** 把它消化成结构化页面,页面之间自己长 你雇佣员工,不是开聊天框。每位有**角色**、**目标**、**背景故事**、运行时、像素艺术头像与专属配色——6 个内置模板(通用助手 · 产品助理 · 研究分析师 · 客服助理 · 数据分析师 · 代码审查员)开箱可用。即使更换执行引擎,员工身份和治理边界仍保持不变。 ### Agent Runtime:Native 或 DSH(2.2.0+) -`AgentRuntimeProvider` contract 把员工与实际执行回合的引擎分开。**Native Runtime** 在 MateClaw 内运行 ReAct、Plan-and-Execute、Persistent Goal 与 Team Run;**DSH Runtime** 把 `dsh-jsonrpc-agent` 作为认证子进程管理,并将思考、文本、工具调用、用量、完成与取消统一映射为 runtime event。DSH 掌管外部 Agent loop,MateClaw 继续掌管 session、workspace、凭证、工具、审批、消息和 UI 投影。启动前会校验 runtime 可用性与能力;控制台可完成 DSH 的安装、配置、校验、连接测试和启停。[配置 DeepSeek Harness →](https://claw.mate.vip/docs/zh/deepseek-harness) +`AgentRuntimeProvider` contract 将员工与执行引擎分离。**Native Runtime** 在 MateClaw 内运行 ReAct、Plan-and-Execute、Persistent Goal 与 Team Run;**DSH Runtime** 启动官方 `dsh --profile sdk` CLI,统一映射思考、文本、工具、用量、完成与取消事件。受管理安装要求 Node.js 22,使用受审查 npm 锁文件固定 `0.2.0-rc.1`(另选 `0.1.7-rc.2`)。升级复制 home、检查候选并切换保留的代次;回滚恢复旧 home/配置,不合并升级后的新会话。实际包及真实模型适配器检查已在 macOS arm64 通过;Linux x64 和持久化 V3→V4 历史迁移仍待验证。[配置 DeepSeek Harness →](https://claw.mate.vip/docs/zh/deepseek-harness) ### 持久长任务:检查点、重启、继续(2.2.0+) Persistent Goal 把需要数小时的工作拆成有界、可恢复的执行段。数据库会保存目标清单、continuation 状态、attempt、冷却、lease,以及员工忙碌期间已经接收的用户输入。单后端实例重启后,supervisor 会先核对被中断的 attempt,读取持久检查点和已有产物,再调度下一段安全工作,不要求用户重新描述任务。 diff --git a/mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/DshLaunchSpec.java b/mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/DshLaunchSpec.java new file mode 100644 index 00000000..7dd1cd72 --- /dev/null +++ b/mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/DshLaunchSpec.java @@ -0,0 +1,66 @@ +package vip.mate.agent.runtime.dsh; + + +import java.io.IOException; +import vip.mate.agent.runtime.dsh.management.DshRuntimeConfiguration; +import java.nio.file.*; +import java.nio.charset.StandardCharsets; +import java.util.*; + +/** Immutable SDK argv. Paths are never interpreted as a shell command. */ +public record DshLaunchSpec(List command, Path home, Path cwd) { + public DshLaunchSpec { command = List.copyOf(command); } + + public static DshLaunchSpec create(DshRuntimeConfiguration config, Object workspaceId, Object agentId, Path cwd) { + if (config.migrationRequired()) throw new IllegalArgumentException("MIGRATION_REQUIRED: replace legacy DSH command/Cordis configuration with an SDK executable path"); + if (!"sdk".equals(config.profile())) throw new IllegalArgumentException("DSH_PROFILE_INVALID: profile must be sdk"); + Path executable = Path.of(config.executablePath()); + if (!executable.isAbsolute() || !Files.isRegularFile(executable) || !Files.isExecutable(executable)) + throw new IllegalArgumentException("DSH_EXECUTABLE_UNAVAILABLE: configure an absolute executable path"); + if (cwd == null || !Files.isDirectory(cwd)) throw new IllegalArgumentException("DSH_CWD_UNAVAILABLE"); + List argv = new ArrayList<>(List.of(executable.normalize().toString(), "--profile", "sdk")); + for (String patch : config.patchPaths()) { + Path path = Path.of(patch); + if (!path.isAbsolute() || !Files.isRegularFile(path)) throw new IllegalArgumentException("DSH_PATCH_UNAVAILABLE"); + argv.add("--patch"); argv.add(path.normalize().toString()); + } + Path root = Path.of(config.homeRoot()).toAbsolutePath().normalize(); + Path home = root.resolve(opaque(workspaceId)).resolve(opaque(agentId)); + return new DshLaunchSpec(argv, home, cwd.toAbsolutePath().normalize()); + } + + private static String opaque(Object id) { + return UUID.nameUUIDFromBytes(String.valueOf(id).getBytes(StandardCharsets.UTF_8)).toString(); + } + + public ProcessBuilder processBuilder(Map environment) throws IOException { + Path root = home.getParent().getParent(); + // Preflight every managed component before any directory creation can follow a link. + requireDirectoryOrMissing(root); + requireDirectoryOrMissing(home.getParent()); + requireDirectoryOrMissing(home); + Files.createDirectories(root); + createHomeDirectory(home.getParent()); + createHomeDirectory(home); + if (!home.toRealPath().startsWith(root.toRealPath())) throw new IOException("DSH_HOME_ESCAPE"); + ProcessBuilder builder = new ProcessBuilder(command).directory(cwd.toFile()); + builder.environment().clear(); + builder.environment().putAll(environment); + builder.environment().remove("DSH_CORDIS_CONFIG"); + builder.environment().put("DSH_HOME", home.toString()); + builder.environment().put("DSH_CWD", cwd.toString()); + return builder; + } + private static void requireDirectoryOrMissing(Path path) throws IOException { + if (Files.isSymbolicLink(path) + || (Files.exists(path, LinkOption.NOFOLLOW_LINKS) && !Files.isDirectory(path, LinkOption.NOFOLLOW_LINKS))) + throw new IOException("DSH_HOME_ESCAPE: home components must be real directories"); + } + + private static void createHomeDirectory(Path path) throws IOException { + requireDirectoryOrMissing(path); + try { Files.createDirectory(path); } + catch (FileAlreadyExistsException exists) { requireDirectoryOrMissing(path); } + } + +} diff --git a/mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/DshRuntimeService.java b/mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/DshRuntimeService.java index 8b7bb997..188e77e9 100644 --- a/mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/DshRuntimeService.java +++ b/mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/DshRuntimeService.java @@ -1,5 +1,12 @@ package vip.mate.agent.runtime.dsh; +import java.util.concurrent.TimeUnit; +import java.io.Closeable; +import java.time.Duration; +import java.time.Instant; +import org.springframework.beans.factory.annotation.Value; +import reactor.core.publisher.Mono; +import vip.mate.workspace.core.service.MemberFileIsolation; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import lombok.extern.slf4j.Slf4j; @@ -17,6 +24,7 @@ import vip.mate.agent.runtime.contract.RuntimeCapabilities; import vip.mate.agent.runtime.contract.RuntimeContextUsage; import vip.mate.agent.runtime.contract.RuntimeValidation; import vip.mate.agent.runtime.dsh.management.DshRuntimeConfigService; +import vip.mate.agent.runtime.dsh.management.DshGenerationStore; import vip.mate.agent.runtime.dsh.management.DshRuntimeConfiguration; import vip.mate.agent.AgentService; import vip.mate.config.ConversationWindowProperties; @@ -24,21 +32,16 @@ import vip.mate.llm.model.ModelConfigEntity; import vip.mate.llm.model.ModelProviderEntity; import vip.mate.llm.service.ModelConfigService; import vip.mate.llm.service.ModelProviderService; - -import java.io.BufferedReader; -import java.io.BufferedWriter; import java.io.IOException; -import java.io.InputStreamReader; -import java.io.OutputStreamWriter; import java.nio.charset.StandardCharsets; import java.nio.file.Path; import java.nio.file.Files; -import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.UUID; import java.util.concurrent.atomic.AtomicReference; +import java.util.concurrent.atomic.AtomicBoolean; /** * Adapter for the official DeepSeek Harness SDK JSON-RPC runtime. @@ -55,6 +58,8 @@ public class DshRuntimeService implements AgentRuntimeProvider { private final ModelProviderService modelProviderService; private final DshRuntimeConfigService runtimeConfigService; private final ConversationWindowProperties windowProperties; + @Value("${mateclaw.agent.runtime.dsh.initialize-timeout-ms:30000}") + private long initializeTimeoutMs = 30000; private static final int DEFAULT_MAX_OUTPUT_TOKENS = 4096; private static final int DEFAULT_CONTEXT_WINDOW = 128000; @@ -69,32 +74,16 @@ public class DshRuntimeService implements AgentRuntimeProvider { this.modelProviderService = modelProviderService; this.runtimeConfigService = runtimeConfigService; this.windowProperties = windowProperties; - DshRuntimeConfiguration configuration = runtimeConfig(); - log.info("[DSH] runtime configured: command={}, cordisConfig={}", configuration.executablePath(), - configuration.cordisConfigPath().isBlank() ? "" : configuration.cordisConfigPath()); + // Validate lazily so administrators can repair invalid stored settings after startup. + log.info("[DSH] SDK runtime adapter initialized"); } private DshRuntimeConfiguration runtimeConfig() { DshRuntimeConfiguration raw = runtimeConfigService.resolve(); - String command = raw.executablePath(); - if (command == null || command.isBlank()) command = "dsh-jsonrpc-agent"; - String cordis = resolveCordisConfig(raw.cordisConfigPath()); String cwd = raw.workingDirectory(); if (cwd == null || cwd.isBlank()) cwd = System.getProperty("user.dir"); - return new DshRuntimeConfiguration(command, cordis, cwd, raw.baseUrl(), raw.modelName(), raw.apiKey()); - } - - private String resolveCordisConfig(String configuredPath) { - if (configuredPath == null || configuredPath.isBlank()) return ""; - Path path = Path.of(configuredPath).toAbsolutePath().normalize(); - if (Files.isRegularFile(path)) return path.toString(); - // The documented source checkout path points at the package directory; - // the checked-in composition lives below its runtime subdirectory. - Path packageDirectory = Files.isDirectory(path) ? path : path.getParent(); - Path packagedConfig = packageDirectory == null - ? path - : packageDirectory.resolve("runtime").resolve("cordis.yml"); - return Files.isRegularFile(packagedConfig) ? packagedConfig.toString() : path.toString(); + return new DshRuntimeConfiguration(raw.executablePath(), raw.cordisConfigPath(), cwd, + raw.baseUrl(), raw.modelName(), raw.apiKey(), raw.profile(), raw.patchPaths(), raw.homeRoot()); } @Override @@ -111,15 +100,10 @@ public class DshRuntimeService implements AgentRuntimeProvider { if (session.workingDirectory() == null || !Files.isDirectory(session.workingDirectory())) { return RuntimeValidation.invalid("dsh.working_directory_unavailable", "DSH working directory is unavailable"); } - if (configuration.executablePath().isBlank()) { - return RuntimeValidation.invalid("dsh.command_missing", "DSH runtime command is not configured"); - } - Path executable = Path.of(commandLine(configuration.executablePath()).get(0)); - if (!executable.isAbsolute() || !Files.isExecutable(executable)) { - return RuntimeValidation.invalid("dsh.command_unavailable", "DSH runtime command is not executable"); - } - if (!configuration.cordisConfigPath().isBlank() && !Files.isRegularFile(Path.of(configuration.cordisConfigPath()))) { - return RuntimeValidation.invalid("dsh.cordis_missing", "DSH Cordis configuration is unavailable"); + try { + DshLaunchSpec.create(configuration, session.workspaceId(), session.agentId(), session.workingDirectory()); + } catch (IllegalArgumentException error) { + return RuntimeValidation.invalid(configuration.migrationRequired() ? "dsh.migration_required" : "dsh.config_invalid", error.getMessage()); } return RuntimeValidation.success(); } @@ -131,7 +115,7 @@ public class DshRuntimeService implements AgentRuntimeProvider { public Map diagnostics() { DshRuntimeConfiguration configuration = runtimeConfig(); - Path executable = configuration.executablePath().isBlank() ? null : Path.of(commandLine(configuration.executablePath()).get(0)); + Path executable = configuration.executablePath().isBlank() ? null : Path.of(configuration.executablePath()); return Map.of( "type", type(), "commandConfigured", !configuration.executablePath().isBlank(), @@ -165,7 +149,7 @@ public class DshRuntimeService implements AgentRuntimeProvider { @Override public AgentRuntimeConnection start(RuntimeSession session) { - if (vip.mate.workspace.core.service.MemberFileIsolation.isEnabled()) { + if (MemberFileIsolation.isEnabled()) { throw new SecurityException("DSH runtime is unavailable in member file isolation mode"); } RuntimeValidation validation = validate(session); @@ -177,25 +161,26 @@ public class DshRuntimeService implements AgentRuntimeProvider { agent.setWorkspaceId(session.workspaceId()); agent.setModelName(session.modelName()); AtomicReference activeProcess = new AtomicReference<>(); + AtomicBoolean cancelled = new AtomicBoolean(); AtomicReference latestUsage = new AtomicReference<>( new RuntimeContextUsage(0, 0, 0)); return new AgentRuntimeConnection() { @Override public Flux prompt(String message) { return stream(agent, message, session.conversationId(), session.modelName(), - session.workingDirectory(), activeProcess, latestUsage) + session.workingDirectory(), activeProcess, latestUsage, cancelled) .map(DshRuntimeService.this::toRuntimeEvent); } @Override - public reactor.core.publisher.Mono cancel() { - return reactor.core.publisher.Mono.fromRunnable( - () -> cancelProcess(activeProcess.get())); + public Mono cancel() { + return Mono.fromRunnable( + () -> { cancelled.set(true); cancelProcess(activeProcess.get()); }); } @Override - public reactor.core.publisher.Mono contextUsage() { - return reactor.core.publisher.Mono.just(latestUsage.get()); + public Mono contextUsage() { + return Mono.just(latestUsage.get()); } }; } @@ -210,6 +195,7 @@ public class DshRuntimeService implements AgentRuntimeProvider { } RuntimeEventType type = switch (delta.eventType() == null ? "" : delta.eventType()) { case "done" -> RuntimeEventType.COMPLETED; + case "_usage_final" -> RuntimeEventType.CONTEXT_USAGE; case "error" -> RuntimeEventType.FAILED; case "cancelled" -> RuntimeEventType.CANCELLED; case "tool_call_started" -> RuntimeEventType.TOOL_STARTED; @@ -224,24 +210,29 @@ public class DshRuntimeService implements AgentRuntimeProvider { public Flux stream(AgentEntity agent, String message, String conversationId, String modelName) { - DshRuntimeConfiguration configuration = runtimeConfig(); return stream(agent, message, conversationId, modelName, - resolveWorkingDirectory(null, configuration), new AtomicReference<>(), - new AtomicReference<>(new RuntimeContextUsage(0, 0, 0))); + null, new AtomicReference<>(), + new AtomicReference<>(new RuntimeContextUsage(0, 0, 0)), new AtomicBoolean()); } private Flux stream(AgentEntity agent, String message, String conversationId, String modelName, Path workingDirectory, AtomicReference processRef, - AtomicReference latestUsage) { - if (vip.mate.workspace.core.service.MemberFileIsolation.isEnabled()) { + AtomicReference latestUsage, AtomicBoolean cancelled) { + if (MemberFileIsolation.isEnabled()) { return Flux.error(new SecurityException("DSH runtime is unavailable in member file isolation mode")); } return Flux.create(sink -> { Process process = null; + DshGenerationStore.Lease lease = null; + DshSdkTurn turn = null; + String credential = ""; try { if (sink.isCancelled()) return; + if (cancelled.get()) throw new InterruptedException("DSH_CANCELLED"); + if (runtimeConfigService.generations() != null) + lease = runtimeConfigService.generations().acquireLease(String.valueOf(agent.getWorkspaceId()), String.valueOf(agent.getId())); DshRuntimeConfiguration configuration = runtimeConfig(); RuntimeSession session = new RuntimeSession( conversationId, @@ -249,7 +240,7 @@ public class DshRuntimeService implements AgentRuntimeProvider { agent.getId(), agent.getWorkspaceId(), modelName, - workingDirectory, + workingDirectory == null ? resolveWorkingDirectory(null, configuration) : workingDirectory, Map.of()); // Each prompt runs in a fresh child process. DSH persists its // own session log, so reusing the MateClaw conversation id @@ -259,6 +250,7 @@ public class DshRuntimeService implements AgentRuntimeProvider { String requestedModel = modelName == null || modelName.isBlank() ? configuration.modelName() : modelName; ModelConfigEntity model = resolveModel(requestedModel); ModelProviderEntity provider = resolveProvider(model); + credential = firstNonBlank(configuration.apiKey(), provider == null ? null : provider.getApiKey()); String effectiveModelName = resolveModelName(requestedModel, model); int maxOutputTokens = resolveMaxOutputTokens(model, windowProperties.getDefaultMaxInputTokens()); log.debug("[DSH] model route: requestedModel={}, effectiveModel={}, provider={}, apiKeyConfigured={}, baseUrlConfigured={}", @@ -267,115 +259,142 @@ public class DshRuntimeService implements AgentRuntimeProvider { provider == null ? "" : provider.getProviderId(), provider != null && provider.getApiKey() != null && !provider.getApiKey().isBlank(), provider != null && provider.getBaseUrl() != null && !provider.getBaseUrl().isBlank()); - List command = commandLine(configuration.executablePath()); - ProcessBuilder builder = new ProcessBuilder(command) - .directory(session.workingDirectory().toFile()) - .redirectError(ProcessBuilder.Redirect.PIPE); - Map environment = builder.environment(); - Map childEnvironment = childEnvironment(environment, session, configuration, provider); - environment.clear(); - environment.putAll(childEnvironment); - log.debug("[DSH] child environment: keys={}, cordisConfig={}, exists={}", - environment.keySet(), - environment.getOrDefault("DSH_CORDIS_CONFIG", ""), - !configuration.cordisConfigPath().isBlank() && Files.isRegularFile(Path.of(configuration.cordisConfigPath()))); - process = builder.start(); + DshLaunchSpec launch = DshLaunchSpec.create(configuration, agent.getWorkspaceId(), agent.getId(), session.workingDirectory()); + process = launch.processBuilder(childEnvironment(System.getenv(), session, configuration, provider)).start(); processRef.set(process); - if (sink.isCancelled()) { - cancelProcess(process); - return; - } Process startedProcess = process; - Thread stderrLogger = new Thread(() -> logProcessStderr(startedProcess), - "dsh-runtime-stderr-" + conversationId); - stderrLogger.setDaemon(true); - stderrLogger.start(); - sink.onCancel(() -> cancelProcess(startedProcess)); - try (BufferedWriter writer = new BufferedWriter(new OutputStreamWriter( - process.getOutputStream(), StandardCharsets.UTF_8)); - BufferedReader reader = new BufferedReader(new InputStreamReader( - process.getInputStream(), StandardCharsets.UTF_8))) { - send(writer, request("initialize", "init-" + conversationId, Map.of( - "cwd", session.workingDirectory().toString(), - "provider", "deepseek-official", - "model", effectiveModelName, - "maxTokens", maxOutputTokens))); - awaitResponse(reader, "init-" + conversationId); + sink.onCancel(() -> { cancelled.set(true); cancelProcess(startedProcess); }); + if (sink.isCancelled()) return; + if (cancelled.get()) throw new InterruptedException("DSH_CANCELLED"); + try (DshSdkProcess sdk = new DshSdkProcess(process, objectMapper, + firstNonBlank(configuration.apiKey(), provider == null ? null : provider.getApiKey()))) { + sdk.initialize(Map.of("cwd", session.workingDirectory().toString(), + "provider", "deepseek-official", "model", effectiveModelName, "maxTokens", maxOutputTokens), + Duration.ofMillis(initializeTimeoutMs)); long sequence = 0; - sink.next(RuntimeEventProjector.project(RuntimeEvent.of( - conversationId, sequence++, RuntimeEventType.RUNTIME_READY, null, - Map.of("runtimeProvider", "dsh", "runtimeCommand", configuration.executablePath())))); - + sink.next(RuntimeEventProjector.project(RuntimeEvent.of(conversationId, sequence++, + RuntimeEventType.RUNTIME_READY, null, Map.of("runtimeProvider", "dsh")))); String promptId = "prompt-" + conversationId; - send(writer, request("session/prompt", promptId, Map.of( - "sessionId", dshSessionId, - "contentBlocks", List.of(Map.of("type", "text", "text", message))))); - - // DSH may emit session events before the JSON-RPC response - // for session/prompt. Read both on the same loop so those - // notifications are not discarded while waiting for id. - boolean terminal = false; - boolean promptResponseReceived = false; - String line; - while (!terminal && (line = reader.readLine()) != null) { - JsonNode payload = objectMapper.readTree(line); - if (payload == null) continue; - if (payload.has("id") && promptId.equals(payload.path("id").asText(null))) { - promptResponseReceived = true; - log.debug("[DSH] prompt response received: id={}, error={}", promptId, - payload.has("error")); - if (payload.has("error")) { - throw new IllegalStateException(payload.path("error").path("message") - .asText("DSH prompt failed")); - } + turn = new DshSdkTurn(dshSessionId, promptId); + sdk.send("session/prompt", promptId, Map.of("sessionId", dshSessionId, + "contentBlocks", List.of(Map.of("type", "text", "text", message)))); + while (!turn.complete() && !sink.isCancelled()) { + JsonNode payload = sdk.next(Duration.ofMinutes(10)); + if (payload.has("method") && payload.has("id")) { + sdk.send(errorResponse(payload.get("id"), -32601, "Unsupported runtime request")); continue; } - if (!payload.has("method")) continue; - String method = payload.path("method").asText(); - JsonNode params = payload.path("params"); - if (payload.has("id")) { - send(writer, errorResponse(payload.get("id"), -32601, "MateClaw does not support runtime request: " + method)); - continue; - } - if ("session.event".equals(method)) { - JsonNode event = params.path("event"); - log.debug("[DSH] event: type={}", event.path("type").asText("")); - logChunkMetadata(event); - logTerminalReason(event); - RuntimeEvent mapped = mapEvent(conversationId, sequence++, event); - if (mapped != null) { - if (mapped.type() == RuntimeEventType.CONTEXT_USAGE) { - latestUsage.set(usageFrom(mapped)); + for (JsonNode event : turn.accept(payload)) { + String type = event.path("type").asText(); + if ("assistant/message".equals(type)) { + for (JsonNode record : event.path("data").path("stream")) { + JsonNode part = record.has("chunk") ? record.path("chunk") : record; + if ("reasoning-chunks".equals(record.path("type").asText())) { + StringBuilder reasoning = new StringBuilder(); + for (JsonNode text : record.path("texts")) reasoning.append(text.asText("")); + sink.next(RuntimeEventProjector.project(RuntimeEvent.of(conversationId, sequence++, + RuntimeEventType.THINKING_DELTA, reasoning.toString(), Map.of()))); + } else if ("reasoning-delta".equals(part.path("type").asText())) { + sink.next(RuntimeEventProjector.project(RuntimeEvent.of(conversationId, sequence++, + RuntimeEventType.THINKING_DELTA, part.path("text").asText(""), Map.of()))); + } } - sink.next(RuntimeEventProjector.project(mapped)); - terminal = mapped.terminal(); + } else if ("tool/call".equals(type) || "tool/result".equals(type)) { + sink.next(RuntimeEventProjector.project(mapEvent(conversationId, sequence++, event))); } - } else if ("session.status".equals(method) - && promptResponseReceived - && "idle".equals(params.path("status").asText())) { - log.debug("[DSH] session idle after prompt"); - sink.next(RuntimeEventProjector.project(RuntimeEvent.terminal( - conversationId, sequence++, RuntimeEventType.COMPLETED, Map.of()))); - terminal = true; } } - if (!terminal) { - int exitCode = process.waitFor(); - sink.next(RuntimeEventProjector.project(RuntimeEvent.terminal( - conversationId, sequence, RuntimeEventType.FAILED, - Map.of("error", "DSH runtime closed before completion (exit=" + exitCode + ")")))); + if (!sink.isCancelled()) { + if (!turn.answer().isEmpty()) sink.next(RuntimeEventProjector.project(RuntimeEvent.of( + conversationId, sequence++, RuntimeEventType.ASSISTANT_DELTA, turn.answer(), Map.of()))); + latestUsage.set(new RuntimeContextUsage(turn.inputTokens(), turn.outputTokens(), 0)); + sink.next(RuntimeEventProjector.project(RuntimeEvent.of(conversationId, sequence++, RuntimeEventType.CONTEXT_USAGE, + null, Map.of("inputTokens", turn.inputTokens(), "outputTokens", turn.outputTokens(), + "promptTokens", turn.inputTokens(), "completionTokens", turn.outputTokens())))); + sink.next(RuntimeEventProjector.project(RuntimeEvent.terminal(conversationId, sequence, + turn.terminalType(), turn.terminalType() == RuntimeEventType.COMPLETED ? Map.of() + : Map.of("code", "DSH_INCOMPLETE_TURN", "error", "DSH turn ended: " + turn.reason())))); + sink.complete(); } - sink.complete(); } } catch (Exception error) { - sink.error(new IllegalStateException("DSH runtime unavailable: " + error.getMessage(), error)); + if (!sink.isCancelled() && turn != null && !turn.answer().isEmpty()) + sink.next(RuntimeEventProjector.project(RuntimeEvent.of(conversationId, 0, + RuntimeEventType.ASSISTANT_DELTA, turn.answer(), Map.of()))); + if (cancelled.get()) { + if (!sink.isCancelled()) { + sink.next(RuntimeEventProjector.project(RuntimeEvent.terminal(conversationId, 0, RuntimeEventType.CANCELLED, Map.of()))); + sink.complete(); + } + } else sink.error(new IllegalStateException("DSH runtime unavailable: " + DshSdkProcess.redact(error.getMessage(), credential))); if (process != null) process.destroyForcibly(); } finally { + cancelProcess(process); if (process != null) processRef.compareAndSet(process, null); + if (lease != null) lease.close(); } }).subscribeOn(Schedulers.boundedElastic()); } + /** Candidate checks deliberately bypass admission; the upgrade coordinator owns its gate. */ + public Map testConnection(DshRuntimeConfiguration configuration) { + return healthCheck(configuration, false, null); + } + + public Map testTask(DshRuntimeConfiguration configuration) { + return healthCheck(configuration, true, null); + } + + public Map testConnectionAtHome(DshRuntimeConfiguration configuration, Path home) { + return healthCheck(configuration, false, home); + } + + public Map testTaskAtHome(DshRuntimeConfiguration configuration, Path home) { + return healthCheck(configuration, true, home); + } + + private Map healthCheck(DshRuntimeConfiguration configuration, boolean task, Path home) { + long started = System.currentTimeMillis(); + try { + if (MemberFileIsolation.isEnabled()) throw new SecurityException("DSH_MEMBER_ISOLATION_UNSUPPORTED"); + Path cwd = Path.of(configuration.workingDirectory()); + DshLaunchSpec launch = DshLaunchSpec.create(configuration, "health", "health", cwd); + if (home != null) launch = new DshLaunchSpec(launch.command(), home.toAbsolutePath().normalize(), launch.cwd()); + ModelConfigEntity model = resolveModel(configuration.modelName()); + ModelProviderEntity provider = resolveProvider(model); + RuntimeSession session = new RuntimeSession("health", "health", 0L, 0L, configuration.modelName(), cwd, Map.of()); + Process process = launch.processBuilder(childEnvironment(System.getenv(), session, configuration, provider)).start(); + try (DshSdkProcess sdk = new DshSdkProcess(process, objectMapper, + firstNonBlank(configuration.apiKey(), provider == null ? null : provider.getApiKey()))) { + sdk.initialize(Map.of("cwd", cwd.toString(), "provider", "deepseek-official", + "model", resolveModelName(configuration.modelName(), model), + "maxTokens", task ? 64 : resolveMaxOutputTokens(model, windowProperties.getDefaultMaxInputTokens())), + Duration.ofMillis(initializeTimeoutMs)); + if (task) { + String id = UUID.randomUUID().toString(); + DshSdkTurn turn = new DshSdkTurn(id, "health-prompt"); + sdk.send("session/prompt", "health-prompt", Map.of("sessionId", id, + "contentBlocks", List.of(Map.of("type", "text", "text", "Reply with exactly OK. Do not use tools.")))); + long deadline = System.nanoTime() + Duration.ofSeconds(60).toNanos(); + while (!turn.complete()) { + if (System.nanoTime() >= deadline) throw new IOException("DSH_TASK_TIMEOUT"); + turn.accept(sdk.next(Duration.ofNanos(deadline - System.nanoTime()))); + } + if (turn.terminalType() != RuntimeEventType.COMPLETED || !"OK".equals(turn.answer().trim())) + throw new IOException("DSH_TASK_INCOMPLETE: " + turn.reason()); + } + } + return Map.of("success", true, "kind", task ? "task" : "handshake", + "message", task ? "SDK model task completed" : "SDK initialize handshake completed", + "checkedAt", Instant.now().toString(), "durationMs", System.currentTimeMillis() - started, + "versionStatus", "UNVERIFIED_VERSION"); + } catch (Exception error) { + return Map.of("success", false, "kind", task ? "task" : "handshake", + "message", DshSdkProcess.redact(error.getMessage(), configuration.apiKey()), + "checkedAt", Instant.now().toString(), "durationMs", System.currentTimeMillis() - started); + } + } + static Path resolveWorkingDirectory(RuntimeSession session, DshRuntimeConfiguration configuration) { if (session != null && session.workingDirectory() != null) { return session.workingDirectory().toAbsolutePath().normalize(); @@ -384,7 +403,7 @@ public class DshRuntimeService implements AgentRuntimeProvider { } static void cancelProcess(Process process) { - if (process == null || !process.isAlive()) return; + if (process == null) return; // DSH tools can spawn commands such as `sleep` that inherit the // JSON-RPC process' stdout pipe. Close the pipes and terminate the @@ -403,6 +422,8 @@ public class DshRuntimeService implements AgentRuntimeProvider { closeQuietly(process.getOutputStream()); process.destroy(); if (process.isAlive()) process.destroyForcibly(); + try { process.waitFor(1, TimeUnit.SECONDS); } + catch (InterruptedException interrupted) { Thread.currentThread().interrupt(); } } private static void cancelProcessHandle(ProcessHandle process) { @@ -411,7 +432,7 @@ public class DshRuntimeService implements AgentRuntimeProvider { if (process.isAlive()) process.destroyForcibly(); } - private static void closeQuietly(java.io.Closeable stream) { + private static void closeQuietly(Closeable stream) { if (stream == null) return; try { stream.close(); @@ -420,51 +441,6 @@ public class DshRuntimeService implements AgentRuntimeProvider { } } - private void logProcessStderr(Process process) { - try (BufferedReader errors = new BufferedReader(new InputStreamReader( - process.getErrorStream(), StandardCharsets.UTF_8))) { - String line; - while ((line = errors.readLine()) != null) { - log.warn("[DSH] {}", line); - } - } catch (IOException error) { - log.debug("[DSH] stderr reader closed: {}", error.getMessage()); - } - } - - static List commandLine(String commandLine) { - List result = new ArrayList<>(); - StringBuilder token = new StringBuilder(); - char quote = 0; - boolean escaped = false; - for (char current : commandLine == null ? "".toCharArray() : commandLine.toCharArray()) { - if (escaped) { - token.append(current); - escaped = false; - } else if (current == '\\') { - escaped = true; - } else if (quote != 0) { - if (current == quote) quote = 0; - else token.append(current); - } else if (current == '\'' || current == '"') { - quote = current; - } else if (Character.isWhitespace(current)) { - if (!token.isEmpty()) { - result.add(token.toString()); - token.setLength(0); - } - } else { - token.append(current); - } - } - if (escaped) token.append('\\'); - if (quote != 0) throw new IllegalArgumentException("DSH runtime command has an unterminated quote"); - if (!token.isEmpty()) result.add(token.toString()); - if (result.isEmpty()) throw new IllegalStateException("DSH runtime command is empty"); - log.debug("[DSH] launching command: {}", result); - return result; - } - static Map childEnvironment(Map inherited, RuntimeSession session, DshRuntimeConfiguration configuration, @@ -480,14 +456,21 @@ public class DshRuntimeService implements AgentRuntimeProvider { copyIfPresent(inherited, environment, "WINDIR"); environment.put("DSH_CWD", session.workingDirectory().toString()); - putIfPresent(environment, "DSH_CORDIS_CONFIG", configuration.cordisConfigPath()); + environment.put("DSH_HOME", Path.of(configuration.homeRoot()).toAbsolutePath().normalize() + .resolve(UUID.nameUUIDFromBytes(String.valueOf(session.workspaceId()).getBytes(StandardCharsets.UTF_8)).toString()) + .resolve(UUID.nameUUIDFromBytes(String.valueOf(session.agentId()).getBytes(StandardCharsets.UTF_8)).toString()).toString()); putIfPresent(environment, "DEEPSEEK_API_KEY", firstNonBlank(configuration.apiKey(), provider == null ? null : provider.getApiKey())); putIfPresent(environment, "DEEPSEEK_BASE_URL", - firstNonBlank(configuration.baseUrl(), provider == null ? null : provider.getBaseUrl())); + normalizeBaseUrl(firstNonBlank(configuration.baseUrl(), provider == null ? null : provider.getBaseUrl()))); return environment; } + static String normalizeBaseUrl(String url) { + if (url == null) return null; + return url.matches("https://api\\.deepseek\\.com(?:/v1)?/?") ? "https://api.deepseek.com/anthropic" : url; + } + private static void copyIfPresent(Map source, Map target, String key) { if (source == null) return; putIfPresent(target, key, source.get(key)); @@ -552,6 +535,15 @@ public class DshRuntimeService implements AgentRuntimeProvider { RuntimeEvent mapEvent(String sessionId, long sequence, JsonNode event) { String type = event.path("type").asText(""); JsonNode data = event.path("data"); + if ("assistant/message".equals(type)) { + JsonNode content = data.path("message").path("content"); + if (!content.isArray()) throw new IllegalArgumentException("DSH_PROTOCOL_ERROR: malformed assistant content"); + StringBuilder text = new StringBuilder(); + for (JsonNode block : content) { + if ("text".equals(block.path("type").asText())) text.append(block.path("text").asText("")); + } + return RuntimeEvent.of(sessionId, sequence, RuntimeEventType.ASSISTANT_DELTA, text.toString(), Map.of()); + } if ("assistant/chunk".equals(type)) { JsonNode chunk = data.has("chunk") ? data.path("chunk") : data; if ("usage".equals(chunk.path("type").asText())) { @@ -591,32 +583,20 @@ public class DshRuntimeService implements AgentRuntimeProvider { } if (type.contains("tool") && (type.contains("start") || type.contains("call"))) { return RuntimeEvent.of(sessionId, sequence, RuntimeEventType.TOOL_STARTED, null, - Map.of("toolName", data.path("toolName").asText("dsh-tool"))); + Map.of("toolName", data.path("name").asText("dsh-tool"), "callId", data.path("callId").asText(""))); } if (type.contains("tool") && (type.contains("end") || type.contains("result"))) { - return RuntimeEvent.of(sessionId, sequence, RuntimeEventType.TOOL_FINISHED, null, Map.of()); + return RuntimeEvent.of(sessionId, sequence, RuntimeEventType.TOOL_FINISHED, null, Map.of("callId", data.path("message").path("toolCallId").asText(data.path("callId").asText("")))); } if ("turn/end".equals(type)) { String kind = data.path("reason").path("kind").asText(""); - if ("error".equals(kind)) { - return RuntimeEvent.terminal(sessionId, sequence, RuntimeEventType.FAILED, - Map.of("error", data.path("reason").path("error").path("message").asText("DSH turn failed"))); - } + return RuntimeEvent.terminal(sessionId, sequence, + "completed".equals(kind) ? RuntimeEventType.COMPLETED : RuntimeEventType.FAILED, + "completed".equals(kind) ? Map.of() : Map.of("code", "DSH_INCOMPLETE_TURN", "error", "DSH turn ended: " + kind)); } return null; } - private RuntimeContextUsage usageFrom(RuntimeEvent event) { - return new RuntimeContextUsage( - number(event.data().get("inputTokens")), - number(event.data().get("outputTokens")), - number(event.data().get("contextWindow"))); - } - - private long number(Object value) { - return value instanceof Number number ? Math.max(0, number.longValue()) : 0; - } - private String firstText(JsonNode primary, JsonNode fallback) { String text = primary.path("text").asText(null); if (text != null) return text; @@ -627,58 +607,9 @@ public class DshRuntimeService implements AgentRuntimeProvider { return fallback.path("delta").path("text").asText(null); } - private void logChunkMetadata(JsonNode event) { - if (!"assistant/chunk".equals(event.path("type").asText())) return; - JsonNode data = event.path("data"); - JsonNode chunk = data.has("chunk") ? data.path("chunk") : data; - log.debug("[DSH] assistant chunk: type={}, fields={}, dataFields={}, textPresent={}, textLength={}", - chunk.path("type").asText(""), - chunk.fieldNames().hasNext(), data.fieldNames().hasNext(), - chunk.has("text"), chunk.path("text").isTextual() ? chunk.path("text").textValue().length() : 0); - } - - private void logTerminalReason(JsonNode event) { - String type = event.path("type").asText(""); - if (!"assistant/chunk".equals(type) && !"turn/end".equals(type)) return; - JsonNode reason = "assistant/chunk".equals(type) - ? event.path("data").path("chunk").path("reason") - : event.path("data").path("reason"); - if (reason.isMissingNode() || reason.isNull()) return; - JsonNode failure = reason.path("failure").isMissingNode() - ? reason.path("error") : reason.path("failure"); - log.warn("[DSH] terminal reason: eventType={}, kind={}, code={}, message={}", - type, - reason.path("kind").asText(""), - failure.path("code").asText(""), - failure.path("message").asText("")); - } - - private void awaitResponse(BufferedReader reader, String id) throws IOException { - String line; - while ((line = reader.readLine()) != null) { - JsonNode payload = objectMapper.readTree(line); - if (payload != null && id.equals(payload.path("id").asText(null))) { - if (payload.has("error")) { - throw new IllegalStateException(payload.path("error").path("message").asText("DSH JSON-RPC error")); - } - return; - } - } - throw new IOException("DSH runtime closed while waiting for " + id); - } - - private Map request(String method, String id, Map params) { - return Map.of("jsonrpc", "2.0", "id", id, "method", method, "params", params); - } - private Map errorResponse(JsonNode id, int code, String message) { return Map.of("jsonrpc", "2.0", "id", objectMapper.convertValue(id, Object.class), "error", Map.of("code", code, "message", message)); } - private void send(BufferedWriter writer, Map payload) throws IOException { - writer.write(objectMapper.writeValueAsString(payload)); - writer.newLine(); - writer.flush(); - } } diff --git a/mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/DshSdkProcess.java b/mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/DshSdkProcess.java new file mode 100644 index 00000000..20f088aa --- /dev/null +++ b/mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/DshSdkProcess.java @@ -0,0 +1,138 @@ +package vip.mate.agent.runtime.dsh; + + +import java.util.concurrent.atomic.AtomicInteger; +import com.fasterxml.jackson.databind.*; +import java.io.*; +import java.nio.charset.StandardCharsets; +import java.time.Duration; +import java.util.*; +import java.util.concurrent.*; + +/** Bounded line-delimited SDK transport. Synthetic tests do not certify a DSH release. */ +public final class DshSdkProcess implements AutoCloseable { + public static final int MAX_FRAME_BYTES = 16 * 1024 * 1024; + private static final int MAX_PENDING_BYTES = 16 * 1024 * 1024; + private final Process process; + private final ObjectMapper mapper; + private final BufferedWriter writer; + private final BlockingQueue frames = new ArrayBlockingQueue<>(4096); + private final AtomicInteger pendingBytes = new AtomicInteger(); + private final String secret; + private final StringBuilder stderr = new StringBuilder(); + private volatile boolean closed; + private volatile boolean initialized; + private volatile IOException failure; + + public DshSdkProcess(Process process, ObjectMapper mapper, String secret) { + this.process = process; this.mapper = mapper; this.secret = secret; + writer = new BufferedWriter(new OutputStreamWriter(process.getOutputStream(), StandardCharsets.UTF_8)); + startReader("dsh-sdk-stdout", this::readFrames); + startReader("dsh-sdk-stderr", this::readErrors); + } + + private static void startReader(String name, Runnable action) { + Thread thread = new Thread(action, name); + thread.setDaemon(true); + thread.start(); + } + + public void send(String method, String id, Map params) throws IOException { + send(Map.of("jsonrpc", "2.0", "method", method, "id", id, "params", params)); + } + + public synchronized void send(Map message) throws IOException { + writer.write(mapper.writeValueAsString(message)); writer.newLine(); writer.flush(); + } + + public JsonNode initialize(Map params, Duration timeout) throws Exception { + String id = "initialize-" + UUID.randomUUID(); + send("initialize", id, params); + long deadline = System.nanoTime() + bounded(timeout).toNanos(); + for (;;) { + if (System.nanoTime() >= deadline) throw new IOException("DSH_TIMEOUT"); + JsonNode frame = next(Duration.ofNanos(Math.max(1, deadline - System.nanoTime()))); + if (!frame.has("id")) continue; + if (!id.equals(frame.path("id").asText())) throw new IOException("DSH_HANDSHAKE_ID_MISMATCH"); + if (frame.has("error")) throw new IOException("DSH_INITIALIZE_REJECTED: " + redact(frame.path("error").path("message").asText("runtime error"), secret)); + if (!"deepseek-harness-sdk-runtime".equals(frame.path("result").path("serverInfo").path("name").asText())) + throw new IOException("DSH_HANDSHAKE_IDENTITY_MISMATCH"); + initialized = true; + return frame.path("result"); + } + } + + public JsonNode next(Duration timeout) throws Exception { + if (failure != null) throw failure; + Object value = frames.poll(Math.max(1, timeout.toMillis()), TimeUnit.MILLISECONDS); + if (failure != null) throw failure; + if (value == null) throw new IOException("DSH_TIMEOUT"); + if (value instanceof IOException error) throw error; + byte[] bytes = (byte[]) value; + pendingBytes.addAndGet(-bytes.length); + String line = new String(bytes, StandardCharsets.UTF_8); + if (line.stripLeading().startsWith("dsh web:")) throw new IOException("DSH_WRONG_ENTRYPOINT: Web profile banner received; select sdk"); + JsonNode node; + try { node = mapper.readTree(line); } catch (Exception error) { throw new IOException("DSH_INVALID_FRAME: expected SDK JSON-RPC"); } + if (node == null || !node.isObject() || !"2.0".equals(node.path("jsonrpc").asText())) throw new IOException("DSH_INVALID_FRAME: expected JSON-RPC 2.0"); + return node; + } + + private void readFrames() { + try (InputStream input = process.getInputStream()) { + ByteArrayOutputStream line = new ByteArrayOutputStream(); + byte[] buffer = new byte[8192]; int count; + while (!closed && (count = input.read(buffer)) >= 0) { + for (int i = 0; i < count; i++) { + if (buffer[i] == '\n') { + byte[] frame = line.toByteArray(); line.reset(); + if (pendingBytes.addAndGet(frame.length) > MAX_PENDING_BYTES || !frames.offer(frame)) + throw new IOException("DSH_NOTIFICATION_OVERFLOW"); + } else { + if (line.size() >= MAX_FRAME_BYTES) throw new IOException("DSH_FRAME_TOO_LARGE"); + line.write(buffer[i]); + } + } + } + if (!closed) frames.offer(new IOException("DSH_EOF: runtime closed before completion")); + } catch (IOException error) { + if (!closed) { failure = error; frames.offer(error); DshRuntimeService.cancelProcess(process); } + } + } + + private void readErrors() { + try (Reader reader = new InputStreamReader(process.getErrorStream(), StandardCharsets.UTF_8)) { + char[] buffer = new char[2048]; int count; + while ((count = reader.read(buffer)) >= 0) synchronized (stderr) { + stderr.append(buffer, 0, count); + if (stderr.length() > 65536) stderr.delete(0, stderr.length() - 65536); + } + } catch (IOException ignored) { } + } + + public String diagnostics() { synchronized (stderr) { return redact(stderr.toString(), secret); } } + + public static String redact(String text, String secret) { + if (text == null) return ""; + String safe = secret == null || secret.isBlank() ? text : text.replace(secret, "[REDACTED]"); + return safe.replaceAll("(?i)(authorization[\"']?\\s*[:=]\\s*[\"']?)(?:Bearer|Basic)\\s+[^\\s,\"'}]+", "$1[REDACTED]") + .replaceAll("(?i)([?&](?:token|key|api_key|access_token)=)[^\\s&#]+", "$1[REDACTED]") + .replaceAll("(?i)((?:authorization|api[_-]?key|password|secret|token)[\\\"']?\\s*[:=]\\s*[\\\"']?)[^\\s,\\\"'}]+", "$1[REDACTED]"); + } + + private static Duration bounded(Duration timeout) { + if (timeout == null || timeout.isNegative() || timeout.isZero()) return Duration.ofSeconds(30); + return timeout.compareTo(Duration.ofMinutes(2)) > 0 ? Duration.ofMinutes(2) : timeout; + } + + @Override public void close() { + if (closed) return; + try { + if (initialized && process.isAlive()) { + send("shutdown", "shutdown-" + UUID.randomUUID(), Map.of()); + process.waitFor(5, TimeUnit.SECONDS); + } + } catch (Exception ignored) { } + finally { closed = true; DshRuntimeService.cancelProcess(process); } + } +} diff --git a/mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/DshSdkTurn.java b/mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/DshSdkTurn.java new file mode 100644 index 00000000..df5b33e4 --- /dev/null +++ b/mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/DshSdkTurn.java @@ -0,0 +1,117 @@ +package vip.mate.agent.runtime.dsh; + + +import com.fasterxml.jackson.databind.JsonNode; +import vip.mate.agent.runtime.contract.RuntimeEventType; +import java.util.*; +import java.nio.charset.StandardCharsets; + +/** Correlates one prompt's durable inbox receipt with its root-session activity. */ +public final class DshSdkTurn { + // Session vocabulary pinned to the two adapted SDK prereleases. + private static final Set KNOWN_EVENTS = Set.of( + "agent-preset/selected", "agent/inbox/spliced", "approval/asked", "approval/decided", + "approval/policy", "assistant/attempt", "assistant/message", "command/done", + "command/run", "compaction/end", "compaction/prune", "compaction/start", + "compaction/summary", "deliverables/presented", "developer/message", "feedback/message-delete", + "feedback/message-put", "feedback/record", "goal/change", "hook/invoked", + "hook/result", "image/offload", "llm/retry", "llm/retry-started", + "model/selection", "permission/preset", "plan/mode", "request/context", + "request/header", "sandbox/mode", "schedule/change", "session-log-deepseek/delivery-accepted", + "session/end-seed", "session/title", "session/title-llm-request", "step/end", + "step/start", "subagent/catalog", "subagent/descriptor", "subagent/model-selection-policy", + "system/message", "team/member", "team/message/delivered", "team/message/queued", + "team/task", "todo/write", "tool-workflow/agent-end", "tool-workflow/agent-start", + "tool-workflow/run-end", "tool-workflow/run-start", "tool/call", "tool/ptc-dispatch", + "tool/ptc-dispatch-start", "tool/result", "turn/end", "turn/start", + "user/message", "web/deepseek-search-llm-request", "workspace/changes"); + private final String sessionId; + private final String promptId; + private final List pending = new ArrayList<>(); + private final Set sequences = new HashSet<>(); + private int pendingBytes; + private String messageId; + private boolean received; + private boolean complete; + private String reason; + private String answer = ""; + private long inputTokens; + private long outputTokens; + + public DshSdkTurn(String sessionId, String promptId) { this.sessionId = sessionId; this.promptId = promptId; } + + /** Returns newly admitted root events; caller projects tools and settled reasoning. */ + public List accept(JsonNode frame) { + if (complete) return List.of(); + if (frame.has("id") && promptId.equals(frame.path("id").asText())) { + if (frame.has("error")) throw new IllegalStateException("DSH_PROMPT_REJECTED"); + messageId = frame.path("result").path("messageId").asText(""); + if (messageId.isBlank()) throw new IllegalStateException("DSH_PROMPT_RECEIPT_INVALID"); + List events = new ArrayList<>(); + for (JsonNode notification : pending) events.addAll(admit(notification)); + pending.clear(); pendingBytes = 0; + return events; + } + if (!frame.has("method")) return List.of(); + if (messageId == null) { + int size = frame.toString().getBytes(StandardCharsets.UTF_8).length; + if (pending.size() >= 4096 || (long) pendingBytes + size > 16 * 1024 * 1024) + throw new IllegalStateException("DSH_NOTIFICATION_OVERFLOW"); + pending.add(frame); pendingBytes += size; + return List.of(); + } + return admit(frame); + } + + private List admit(JsonNode frame) { + JsonNode params = frame.path("params"); + if (!sessionId.equals(params.path("sessionId").asText())) return List.of(); + String method = frame.path("method").asText(); + JsonNode event = params.path("event"); + if (!received) { + if (!"session.event".equals(method) || !"agent/inbox/spliced".equals(event.path("type").asText())) return List.of(); + for (JsonNode inserted : event.path("data").path("inserted")) + if (messageId.equals(inserted.path("id").asText())) received = true; + if (!received) return List.of(); + } + if ("session.status".equals(method) && "idle".equals(params.path("status").asText())) { + complete = true; + if (reason == null) reason = "missing-turn-end"; + return List.of(); + } + if (!"session.event".equals(method)) return List.of(); + if (!event.path("seq").canConvertToLong() || !event.path("seq").isIntegralNumber()) + throw new IllegalStateException("DSH_EVENT_SEQUENCE_INVALID"); + if (!sequences.add(event.path("seq").asLong())) return List.of(); + String type = event.path("type").asText(); + if (!KNOWN_EVENTS.contains(type) && !event.path("ignorable").asBoolean(false)) + throw new IllegalStateException("DSH_UNKNOWN_REQUIRED_EVENT: " + type); + JsonNode data = event.path("data"); + if ("assistant/message".equals(type)) { + JsonNode content = data.path("message").path("content"); + if (!content.isArray()) throw new IllegalStateException("DSH_ASSISTANT_CONTENT_INVALID"); + StringBuilder text = new StringBuilder(); + for (JsonNode block : content) { + if (!block.path("type").isTextual()) throw new IllegalStateException("DSH_ASSISTANT_CONTENT_INVALID"); + if ("text".equals(block.path("type").asText())) text.append(block.path("text").asText("")); + } + answer = text.toString(); + inputTokens += Math.max(0, data.path("usage").path("inputTokens").asLong()) + + Math.max(0, data.path("usage").path("cacheReadTokens").asLong()) + + Math.max(0, data.path("usage").path("cacheWriteTokens").asLong()); + outputTokens += Math.max(0, data.path("usage").path("outputTokens").asLong()); + if (data.path("interrupted").asBoolean(false)) reason = "interrupted"; + } else if ("turn/end".equals(type)) { + String terminal = data.path("reason").path("kind").asText("unknown"); + if (!"interrupted".equals(reason)) reason = terminal; + } + return List.of(event); + } + + public boolean complete() { return complete; } + public RuntimeEventType terminalType() { return "completed".equals(reason) ? RuntimeEventType.COMPLETED : RuntimeEventType.FAILED; } + public String reason() { return reason == null ? "missing-turn-end" : reason; } + public String answer() { return answer; } + public long inputTokens() { return inputTokens; } + public long outputTokens() { return outputTokens; } +} diff --git a/mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/management/DshGenerationStore.java b/mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/management/DshGenerationStore.java new file mode 100644 index 00000000..f78d177b --- /dev/null +++ b/mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/management/DshGenerationStore.java @@ -0,0 +1,333 @@ +package vip.mate.agent.runtime.dsh.management; + +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; +import vip.mate.system.service.SettingCrypto; + +import java.io.IOException; +import java.nio.ByteBuffer; +import java.nio.channels.FileChannel; +import java.nio.file.Files; +import java.nio.file.LinkOption; +import java.nio.file.Path; +import java.nio.file.StandardCopyOption; +import java.nio.file.StandardOpenOption; +import java.nio.file.attribute.PosixFilePermissions; +import java.time.Duration; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.locks.ReentrantLock; + +/** Durable generation selection and process-shared admission for local runtimes. */ +@Component +public class DshGenerationStore { + private static final ConcurrentHashMap LOCKS = new ConcurrentHashMap<>(); + private static final TypeReference> VALUES = new TypeReference<>() {}; + private final Path root; + private final ObjectMapper mapper; + private final SettingCrypto crypto; + + public DshGenerationStore( + @Value("${mateclaw.agent.runtime.dsh.install-root:${user.home}/.mateclaw/runtimes/deepseek-harness}") String root, + ObjectMapper mapper, SettingCrypto crypto) { + this.root = Path.of(root).toAbsolutePath().normalize(); + this.mapper = mapper; + this.crypto = crypto; + } + + public Path root() { return root; } + + public String revision() { return locked(() -> pointer().getOrDefault("revision", "0")); } + public String activeGeneration() { return locked(() -> pointer().getOrDefault("generation", "")); } + public Map activeValues() { + return locked(() -> readGeneration(pointer().getOrDefault("generation", ""))); + } + public Map generationValues(String generation) { + return locked(() -> readGeneration(generation)); + } + + /** Keeps configuration changes in the same atomic domain as activation. */ + public void updateActiveValues(Map values) { + updateActiveValues(values, null); + } + + /** A resolved configuration snapshot may only replace the revision it read. */ + public void updateActiveValues(Map values, String expectedRevision) { + locked(() -> { + requireWritable(); + Map active = pointer(); + if (expectedRevision != null && !active.getOrDefault("revision", "0").equals(expectedRevision)) + throw new IllegalStateException("dsh.stale_configuration"); + Map merged = readGeneration(active.getOrDefault("generation", "")); + merged.putAll(values); + writeGeneration("config-" + UUID.randomUUID(), merged); + return null; + }); + } + + public Lease acquireLease(String workspaceId, String agentId) { + return locked(() -> { + requireWritable(); + pruneLeases(); + String key = workspaceId + ":" + agentId; + try (var paths = Files.list(directory("leases"))) { + for (Path path : paths.toList()) { + if (key.equals(read(path).get("home"))) throw new IllegalStateException("dsh.home_busy"); + } + } + Path file = directory("leases").resolve(UUID.randomUUID() + ".json"); + Map lease = owner(); + lease.put("home", key); + write(file, lease); + return new Lease(file); + }); + } + + public void beginUpgrade(String operationId, String expectedRevision) { + safeId(operationId); + locked(() -> { + requireWritable(); + if (!pointer().getOrDefault("revision", "0").equals(expectedRevision)) { + throw new IllegalStateException("dsh.stale_configuration"); + } + Map gate = owner(); + gate.put("operation", operationId); + write(root.resolve("gate.json"), gate); + return null; + }); + } + + public boolean awaitDrained(Duration timeout) throws InterruptedException { + long deadline = System.nanoTime() + timeout.toNanos(); + do { + if (locked(() -> { pruneLeases(); try (var files = Files.list(directory("leases"))) { return files.findAny().isEmpty(); } })) return true; + if (System.nanoTime() >= deadline) return false; + Thread.sleep(Math.min(50, Math.max(1, timeout.toMillis()))); + } while (true); + } + + public void activate(String operationId, String generation, Map values) { + safeId(generation); + locked(() -> { + requireGate(operationId); + requireDrained(); + writeGeneration(generation, values); + return null; + }); + } + + /** Saves the pre-upgrade configuration without changing the committed active pointer. */ + public void saveSnapshot(String operationId, String generation, Map values) { + safeId(generation); + locked(() -> { + requireGate(operationId); + requireDrained(); + writeGenerationSnapshot(generation, values); + return null; + }); + } + + public void restore(String operationId, String generation) { + safeId(generation); + locked(() -> { + requireGate(operationId); + requireDrained(); + if (!Files.isRegularFile(directory("generations").resolve(generation + ".json"))) throw new IllegalArgumentException("dsh.generation_missing"); + write(root.resolve("active.json"), Map.of("generation", generation, "revision", UUID.randomUUID().toString())); + return null; + }); + } + + public void finishUpgrade(String operationId) { + locked(() -> { + Map gate = read(root.resolve("gate.json")); + if (operationId.equals(gate.get("operation"))) { + Map op = read(directory("operations").resolve(operationId + ".json")); + if (op.isEmpty() || isTerminal(op.get("state"))) Files.deleteIfExists(root.resolve("gate.json")); + } + return null; + }); + } + + public boolean createOperation(String id, Map operation) { + safeId(id); + return locked(() -> { + Path file = directory("operations").resolve(id + ".json"); + if (Files.exists(file)) return false; + write(file, operation); + return true; + }); + } + + public void saveOperation(String id, Map operation) { + safeId(id); + locked(() -> { write(directory("operations").resolve(id + ".json"), operation); return null; }); + } + + /** Reconciles interrupted operations from the durable activation pointer. */ + public Map operation(String id) { + safeId(id); + return locked(() -> { + Map op = read(directory("operations").resolve(id + ".json")); + if (op.isEmpty()) throw new IllegalArgumentException("dsh.operation_missing"); + boolean committedPointer = op.getOrDefault("candidateGeneration", "!").equals(pointer().get("generation")); + if ((!isOwnerAlive(op) || committedPointer) && !isTerminal(op.get("state"))) { + boolean committed = op.getOrDefault("candidateGeneration", "!").equals(pointer().get("generation")); + op.put("state", committed ? "COMPLETED" : "INTERRUPTED"); + op.put("message", committed ? "Activation committed before restart" : "Upgrade interrupted; active generation retained"); + write(directory("operations").resolve(id + ".json"), op); + } + return op; + }); + } + + public static Map owner() { + Map values = new HashMap<>(); + values.put("pid", Long.toString(ProcessHandle.current().pid())); + values.put("started", ProcessHandle.current().info().startInstant().map(Object::toString).orElse("")); + return values; + } + + private static boolean isTerminal(String state) { + return "COMPLETED".equals(state) || "FAILED".equals(state) || "INTERRUPTED".equals(state); + } + + private void writeGeneration(String id, Map values) throws IOException { + writeGenerationSnapshot(id, values); + write(root.resolve("active.json"), Map.of("generation", id, "revision", UUID.randomUUID().toString())); + } + + private void writeGenerationSnapshot(String id, Map values) throws IOException { + safeId(id); + Map stored = new HashMap<>(values); + stored.replaceAll((key, value) -> value == null ? "" : value); + stored.computeIfPresent("dsh.api_key", (key, value) -> crypto.encrypt(value)); + write(directory("generations").resolve(id + ".json"), stored); + } + + private Map readGeneration(String id) throws IOException { + if (id.isBlank()) return new HashMap<>(); + safeId(id); + Path path = directory("generations").resolve(id + ".json"); + if (!Files.isRegularFile(path)) throw new IllegalStateException("dsh.active_generation_missing"); + Map values = read(path); + values.computeIfPresent("dsh.api_key", (key, value) -> crypto.decrypt(value)); + return values; + } + + private void requireGate(String id) throws IOException { + if (!id.equals(read(root.resolve("gate.json")).get("operation"))) throw new IllegalStateException("dsh.upgrade_ownership_lost"); + } + + private void requireDrained() throws IOException { + pruneLeases(); + try (var files = Files.list(directory("leases"))) { + if (files.findAny().isPresent()) throw new IllegalStateException("dsh.active_turns"); + } + } + + private void requireWritable() throws IOException { + Map gate = read(root.resolve("gate.json")); + if (gate.isEmpty()) return; + String operation = gate.get("operation"); + Map journalState = operation == null ? Map.of() : read(directory("operations").resolve(operation + ".json")); + boolean committed = journalState.getOrDefault("candidateGeneration", "!").equals(pointer().get("generation")); + if (isOwnerAlive(gate) && !committed && !isTerminal(journalState.get("state"))) { + throw new IllegalStateException("dsh.upgrade_in_progress"); + } + if (operation != null) { + Path journal = directory("operations").resolve(operation + ".json"); + Map op = read(journal); + if (!op.isEmpty() && !isTerminal(op.get("state"))) { + boolean wasCommitted = op.getOrDefault("candidateGeneration", "!").equals(pointer().get("generation")); + op.put("state", wasCommitted ? "COMPLETED" : "INTERRUPTED"); + op.put("message", wasCommitted ? "Recovered committed activation" : "Interrupted before activation"); + write(journal, op); + } + } + Files.deleteIfExists(root.resolve("gate.json")); + } + + private void pruneLeases() throws IOException { + try (var files = Files.list(directory("leases"))) { + for (Path file : files.toList()) { + if (!isOwnerAlive(read(file))) { + // A dead JVM is not proof its tool descendants stopped writing the home. + // Preserve admission until an operator verifies and removes the orphan lease. + throw new IllegalStateException("dsh.orphaned_runtime_requires_recovery"); + } + } + } + } + + private static boolean isOwnerAlive(Map value) { + try { + return ProcessHandle.of(Long.parseLong(value.getOrDefault("pid", "0"))) + .filter(ProcessHandle::isAlive) + .flatMap(handle -> handle.info().startInstant()) + .map(start -> start.toString().equals(value.get("started"))).orElse(false); + } catch (NumberFormatException error) { return false; } + } + + private Map pointer() throws IOException { return read(root.resolve("active.json")); } + + private Path directory(String name) throws IOException { + Path path = name.isEmpty() ? root : root.resolve(name); + if (Files.isSymbolicLink(path)) throw new IOException("DSH managed directory must not be a symlink"); + Files.createDirectories(path); + try { Files.setPosixFilePermissions(path, PosixFilePermissions.fromString("rwx------")); } + catch (UnsupportedOperationException ignored) { /* Non-POSIX hosts rely on the managed root ACL. */ } + return path; + } + + private Map read(Path path) throws IOException { + if (!Files.exists(path, LinkOption.NOFOLLOW_LINKS)) return new HashMap<>(); + if (Files.isSymbolicLink(path) || Files.size(path) > 1024 * 1024) throw new IOException("Invalid DSH metadata file"); + return new HashMap<>(mapper.readValue(Files.readAllBytes(path), VALUES)); + } + + private void write(Path path, Map value) throws IOException { + Path temp = Files.createTempFile(path.getParent(), ".write-", ".json"); + try { + try { Files.setPosixFilePermissions(temp, PosixFilePermissions.fromString("rw-------")); } + catch (UnsupportedOperationException ignored) { /* Inherit the managed root ACL. */ } + try (var channel = FileChannel.open(temp, StandardOpenOption.WRITE)) { + ByteBuffer bytes = ByteBuffer.wrap(mapper.writeValueAsBytes(value)); + while (bytes.hasRemaining()) channel.write(bytes); + channel.force(true); + } + Files.move(temp, path, StandardCopyOption.ATOMIC_MOVE, StandardCopyOption.REPLACE_EXISTING); + try (var directory = FileChannel.open(path.getParent(), StandardOpenOption.READ)) { directory.force(true); } + catch (UnsupportedOperationException ignored) { /* Directory fsync is unavailable on some hosts. */ } + } finally { Files.deleteIfExists(temp); } + } + + private T locked(IoSupplier action) { + ReentrantLock local = LOCKS.computeIfAbsent(root, ignored -> new ReentrantLock()); + local.lock(); + try { + directory(""); + Path lockPath = root.resolve("control.lock"); + if (Files.isSymbolicLink(lockPath)) throw new IOException("Invalid DSH lock"); + try (var channel = FileChannel.open(lockPath, StandardOpenOption.CREATE, StandardOpenOption.WRITE); + var lock = channel.lock()) { return action.get(); } + } catch (IOException error) { throw new IllegalStateException("dsh.storage_unavailable", error); } + finally { local.unlock(); } + } + + private static void safeId(String id) { + if (id == null || !id.matches("[a-zA-Z0-9][a-zA-Z0-9-]{0,99}")) throw new IllegalArgumentException("dsh.invalid_identifier"); + } + + @FunctionalInterface private interface IoSupplier { T get() throws IOException; } + + public final class Lease implements AutoCloseable { + private final Path path; + private Lease(Path path) { this.path = path; } + @Override public void close() { locked(() -> { Files.deleteIfExists(path); return null; }); } + } +} diff --git a/mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/management/DshManagementController.java b/mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/management/DshManagementController.java index 01b4eb82..b257e264 100644 --- a/mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/management/DshManagementController.java +++ b/mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/management/DshManagementController.java @@ -8,6 +8,8 @@ import vip.mate.common.result.R; import vip.mate.workspace.core.annotation.RequireGlobalAdmin; import java.util.Map; +import java.util.LinkedHashMap; +import java.util.UUID; @Tag(name = "DeepSeek Harness Runtime Management") @RestController @@ -15,11 +17,19 @@ import java.util.Map; @RequiredArgsConstructor public class DshManagementController { private final DshManagementService managementService; + private final DshUpgradeService upgrades; + + public record UpgradeRequest(String targetVersion, String expectedRevision, String idempotencyKey) {} + public record RollbackRequest(String expectedRevision, String idempotencyKey) {} @Operation(summary = "Get managed DSH runtime status") @GetMapping("/status") @RequireGlobalAdmin - public R> status() { return R.ok(managementService.status()); } + public R> status() { + Map status = new LinkedHashMap<>(managementService.status()); + status.putAll(upgrades.status()); + return R.ok(status); + } @Operation(summary = "Save managed DSH runtime configuration") @PutMapping("/config") @@ -31,7 +41,29 @@ public class DshManagementController { @Operation(summary = "Install the server-selected DSH artifact") @PostMapping("/install") @RequireGlobalAdmin - public R> install() throws Exception { return R.ok(managementService.install()); } + public R> install() { + return R.ok(upgrades.upgrade("0.2.0-rc.1", (String) upgrades.status().get("configRevision"), UUID.randomUUID().toString())); + } + + @PostMapping("/test-task") + @RequireGlobalAdmin + public R> testTask() { return R.ok(managementService.testTask()); } + + @PostMapping("/upgrades") + @RequireGlobalAdmin + public R> upgrade(@RequestBody UpgradeRequest request) { + return R.ok(upgrades.upgrade(request.targetVersion(), request.expectedRevision(), request.idempotencyKey())); + } + + @GetMapping("/upgrades/{id}") + @RequireGlobalAdmin + public R> operation(@PathVariable String id) { return R.ok(upgrades.operation(id)); } + + @PostMapping("/upgrades/{id}/rollback") + @RequireGlobalAdmin + public R> rollback(@PathVariable String id, @RequestBody RollbackRequest request) { + return R.ok(upgrades.rollback(id, request.expectedRevision(), request.idempotencyKey())); + } @Operation(summary = "Verify DSH runtime configuration") @PostMapping("/verify") diff --git a/mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/management/DshManagementService.java b/mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/management/DshManagementService.java index d48e1cf4..4b958292 100644 --- a/mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/management/DshManagementService.java +++ b/mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/management/DshManagementService.java @@ -1,14 +1,16 @@ package vip.mate.agent.runtime.dsh.management; +import java.util.Objects; +import org.springframework.beans.factory.annotation.Autowired; +import vip.mate.agent.runtime.dsh.DshRuntimeService; import org.springframework.stereotype.Service; import vip.mate.system.service.SystemSettingService; - +import vip.mate.agent.runtime.dsh.DshLaunchSpec; import java.nio.file.Files; import java.nio.file.Path; import java.time.Instant; import java.util.LinkedHashMap; import java.util.Map; -import java.util.concurrent.TimeUnit; @Service public class DshManagementService { @@ -17,6 +19,10 @@ public class DshManagementService { private final DshRuntimeConfigService configService; private final DshArtifactInstaller installer; private final SystemSettingService settings; + private volatile Map handshake = Map.of(); + private volatile Map taskCheck = Map.of(); + @Autowired + private DshRuntimeService runtime; public DshManagementService(DshRuntimeConfigService configService, DshArtifactInstaller installer, @@ -29,23 +35,29 @@ public class DshManagementService { public Map status() { DshRuntimeConfiguration configuration = configService.resolve(); boolean executableAvailable = isExecutable(configuration.executablePath()); - boolean workingDirectoryAvailable = configuration.workingDirectory() != null - && Files.isDirectory(Path.of(configuration.workingDirectory())); - boolean cordisAvailable = configuration.cordisConfigPath() == null - || configuration.cordisConfigPath().isBlank() - || Files.isRegularFile(Path.of(configuration.cordisConfigPath())); // An empty managed key is valid: DshRuntimeService can reuse the // existing DeepSeek provider key. The page may still store a managed // key when the operator wants DSH to be independent from model rows. + boolean sdkConfigAvailable; + try { DshLaunchSpec.create(configuration, "health", "health", Path.of(configuration.workingDirectory())); sdkConfigAvailable = true; } + catch (Exception error) { sdkConfigAvailable = false; } boolean enabled = settings.getBool(ENABLED_KEY, false); DshManagementState state; - if (!executableAvailable) state = DshManagementState.NOT_INSTALLED; - else if (!workingDirectoryAvailable || !cordisAvailable) state = DshManagementState.CONFIG_INVALID; + if (configuration.migrationRequired()) state = DshManagementState.MIGRATION_REQUIRED; + else if (!executableAvailable) state = DshManagementState.NOT_INSTALLED; + else if (!sdkConfigAvailable) state = DshManagementState.CONFIG_INVALID; else if (enabled) state = DshManagementState.ENABLED; else state = DshManagementState.READY; Map result = new LinkedHashMap<>(); result.put("state", state.name()); + result.put("profile", configuration.profile()); + String revision = Objects.toString(configService.revision(), "0"); + result.put("handshake", revision.equals(handshake.get("configRevision")) ? handshake : Map.of()); + result.put("taskCheck", revision.equals(taskCheck.get("configRevision")) ? taskCheck : Map.of()); + result.put("configRevision", configService.revision()); + result.put("versionStatus", "UNVERIFIED_VERSION"); + result.put("fileCheck", Map.of("success", sdkConfigAvailable)); result.put("installed", executableAvailable); result.put("enabled", enabled); result.put("config", configuration.publicStatus()); @@ -61,17 +73,6 @@ public class DshManagementService { return status(); } - public Map install() throws Exception { - DshArtifactManifest manifest = installer.loadManifest(); - Path executable = installer.install(manifest); - Map installed = new LinkedHashMap<>(); - installed.put("dsh.executable_path", executable.toString()); - Path cordis = installer.installedCordisConfig(); - if (cordis != null) installed.put("dsh.cordis_config_path", cordis.toString()); - configService.save(installed); - return status(); - } - public Map verify() { Map result = status(); boolean ok = "ENABLED".equals(result.get("state")) || "READY".equals(result.get("state")); @@ -80,41 +81,30 @@ public class DshManagementService { return result; } - public Map testConnection() { - DshRuntimeConfiguration configuration = configService.resolve(); - if (!isExecutable(configuration.executablePath())) return Map.of("success", false, "message", "DSH executable is unavailable"); - if (configuration.cordisConfigPath() == null || configuration.cordisConfigPath().isBlank()) { - return Map.of("success", false, "message", "DSH Cordis configuration is unavailable"); - } + public Map testConnection() { return check(false); } + public Map testTask() { return check(true); } + + private Map check(boolean task) { + DshGenerationStore.Lease lease = null; try { - ProcessBuilder builder = new ProcessBuilder(configuration.executablePath(), configuration.cordisConfigPath()) - .directory(Path.of(configuration.workingDirectory()).toFile()) - .redirectErrorStream(true); - builder.environment().put("DSH_CWD", configuration.workingDirectory()); - builder.environment().put("DSH_CORDIS_CONFIG", configuration.cordisConfigPath()); - if (configuration.apiKey() != null && !configuration.apiKey().isBlank()) { - builder.environment().put("DEEPSEEK_API_KEY", configuration.apiKey()); - } - if (configuration.baseUrl() != null && !configuration.baseUrl().isBlank()) { - builder.environment().put("DEEPSEEK_BASE_URL", configuration.baseUrl()); - } - Process process = builder.start(); - boolean finished = process.waitFor(5, TimeUnit.SECONDS); - if (!finished) { - process.destroyForcibly(); - return Map.of("success", true, "message", "DSH process started"); - } - String output = new String(process.getInputStream().readAllBytes()); - if (process.exitValue() != 0) throw new IllegalStateException(output.isBlank() ? "DSH process exited with code " + process.exitValue() : output.trim()); - return Map.of("success", true, "message", output.trim()); + if (configService.generations() != null) lease = configService.generations().acquireLease("health", "health"); + String revision = Objects.toString(configService.revision(), "0"); + DshRuntimeConfiguration configuration = configService.resolve(); + if (runtime == null) return Map.of("success", false, "message", "DSH health service unavailable"); + Map result = new LinkedHashMap<>(task ? runtime.testTask(configuration) : runtime.testConnection(configuration)); + result.put("configRevision", revision); + if (task) taskCheck = Map.copyOf(result); else handshake = Map.copyOf(result); + return result; } catch (Exception error) { - return Map.of("success", false, "message", "DSH connection test failed: " + error.getMessage()); - } + return Map.of("success", false, "message", "DSH health check unavailable"); + } finally { if (lease != null) lease.close(); } } public Map enable() { Map current = verify(); if (!Boolean.TRUE.equals(current.get("verified"))) throw new IllegalStateException("DSH must pass verification before enabling"); + Map checked = testConnection(); + if (!Boolean.TRUE.equals(checked.get("success"))) throw new IllegalStateException("DSH must pass the SDK handshake before enabling"); settings.saveBool(ENABLED_KEY, true, "Enable managed DeepSeek Harness runtime"); return status(); } diff --git a/mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/management/DshManagementState.java b/mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/management/DshManagementState.java index 2710634c..ea9385d7 100644 --- a/mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/management/DshManagementState.java +++ b/mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/management/DshManagementState.java @@ -2,6 +2,7 @@ package vip.mate.agent.runtime.dsh.management; /** Lifecycle states exposed by the DSH runtime management screen. */ public enum DshManagementState { + MIGRATION_REQUIRED, NOT_INSTALLED, INSTALLING, INSTALLED_UNCONFIGURED, diff --git a/mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/management/DshPinnedInstaller.java b/mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/management/DshPinnedInstaller.java new file mode 100644 index 00000000..3552ba82 --- /dev/null +++ b/mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/management/DshPinnedInstaller.java @@ -0,0 +1,94 @@ +package vip.mate.agent.runtime.dsh.management; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.stereotype.Component; +import org.springframework.core.io.ClassPathResource; + +import java.io.IOException; +import java.io.RandomAccessFile; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.time.Duration; +import java.util.List; +import java.util.Map; +import java.util.concurrent.TimeUnit; + +/** Installs exact SDK packages into a candidate prefix without touching global npm state. */ +@Component +public class DshPinnedInstaller { + public record Release(String version, String channel, String integrity) {} + public record Installation(String version, String platform, String executablePath, String integrity) {} + private static final Map CATALOG = Map.of( + "0.2.0-rc.1", new Release("0.2.0-rc.1", "next", + "sha512-F6hKNVoGgBDIzSiyRaIlobq4UD6cwxUjh+nwXqcDmufDh87TE1izsYzs8L5cZNpF2JmPnFM1mXRNnRJ0cs43ng=="), + "0.1.7-rc.2", new Release("0.1.7-rc.2", "latest", + "sha512-SQFhriLvza8GnFApnC5/32AgpcyKxrWnYXhvwDOLJdgWpkCX2EexyR9c8kCkMITJXnFLEN3Qb2CEh0W36vkLyw==")); + private final ObjectMapper mapper; + public DshPinnedInstaller(ObjectMapper mapper) { this.mapper = mapper; } + + public static Release release(String version) { + Release release = CATALOG.get(version); + if (release == null) throw new IllegalArgumentException("dsh.unsupported_version: select an exact catalog version"); + return release; + } + public static List catalog() { return List.of(release("0.2.0-rc.1"), release("0.1.7-rc.2")); } + + public static String platform(String os, String arch) { + if (os.toLowerCase().contains("linux") && (arch.equals("amd64") || arch.equals("x86_64"))) return "linux-x64"; + if (os.toLowerCase().contains("mac") && (arch.equals("aarch64") || arch.equals("arm64"))) return "darwin-arm64"; + throw new IllegalArgumentException("dsh.unsupported_platform: managed install supports Linux x64 and macOS arm64 candidates"); + } + + public Installation install(String version, Path prefix) throws Exception { + Release release = release(version); + String platform = platform(System.getProperty("os.name"), System.getProperty("os.arch")); + if (Files.exists(prefix)) throw new IllegalArgumentException("dsh.candidate_directory_exists"); + Files.createDirectories(prefix); + Path log = prefix.resolve("install.log"); + String nodeVersion = execute(List.of("node", "--version"), prefix, log, Duration.ofSeconds(10)).trim(); + if (!nodeVersion.matches("v22\\..*")) throw new IllegalStateException("dsh.node_version_unverified: Node.js 22 is required"); + // npm ci verifies every tarball against the reviewed lock before lifecycle execution. + try (var input = new ClassPathResource("dsh/locks/" + version + ".json").getInputStream()) { + Files.copy(input, prefix.resolve("package-lock.json")); + } + JsonNode trusted = mapper.readTree(prefix.resolve("package-lock.json").toFile()); + if (!release.integrity().equals(trusted.path("packages").path("node_modules/@deepseek-ai/dsh").path("integrity").asText())) { + throw new IllegalStateException("dsh.catalog_integrity_mismatch"); + } + mapper.writeValue(prefix.resolve("package.json").toFile(), Map.of("name", "mateclaw-dsh-runtime", + "version", "1.0.0", "private", true, "dependencies", Map.of("@deepseek-ai/dsh", version))); + execute(List.of("npm", "ci", "--prefix", prefix.toString(), "--registry=https://registry.npmjs.org", + "--no-audit", "--no-fund"), prefix, log, Duration.ofMinutes(5)); + JsonNode lock = mapper.readTree(prefix.resolve("package-lock.json").toFile()); + JsonNode installed = lock.path("packages").path("node_modules/@deepseek-ai/dsh"); + if (!version.equals(installed.path("version").asText()) || !release.integrity().equals(installed.path("integrity").asText())) { + throw new IllegalStateException("dsh.package_integrity_mismatch"); + } + Path executable = prefix.resolve("node_modules/.bin/dsh"); + if (!Files.isExecutable(executable)) throw new IllegalStateException("dsh.executable_missing"); + JsonNode packageJson = mapper.readTree(prefix.resolve("node_modules/@deepseek-ai/dsh/package.json").toFile()); + if (!version.equals(packageJson.path("version").asText())) throw new IllegalStateException("dsh.package_version_mismatch"); + return new Installation(version, platform, executable.toString(), release.integrity()); + } + + private static String execute(List argv, Path cwd, Path log, Duration timeout) throws Exception { + ProcessBuilder builder = new ProcessBuilder(argv).directory(cwd.toFile()).redirectErrorStream(true) + .redirectOutput(log.toFile()); + Process process = builder.start(); + try { + if (!process.waitFor(timeout.toMillis(), TimeUnit.MILLISECONDS)) throw new IllegalStateException("dsh.install_timeout"); + if (process.exitValue() != 0) throw new IllegalStateException("dsh.install_failed: inspect the protected candidate install log"); + try (RandomAccessFile output = new RandomAccessFile(log.toFile(), "r")) { + output.seek(Math.max(0, output.length() - 65536)); + byte[] tail = new byte[(int) Math.min(65536, output.length())]; + output.readFully(tail); + return new String(tail, StandardCharsets.UTF_8); + } + } finally { + process.descendants().forEach(child -> { child.destroy(); if (child.isAlive()) child.destroyForcibly(); }); + if (process.isAlive()) process.destroyForcibly(); + } + } +} diff --git a/mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/management/DshRuntimeConfigResolver.java b/mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/management/DshRuntimeConfigResolver.java index 8cc710a9..dcaa11da 100644 --- a/mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/management/DshRuntimeConfigResolver.java +++ b/mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/management/DshRuntimeConfigResolver.java @@ -1,5 +1,9 @@ package vip.mate.agent.runtime.dsh.management; + +import com.fasterxml.jackson.databind.ObjectMapper; +import java.util.ArrayList; +import java.util.List; import java.util.Map; /** Resolves managed settings first, then application properties, then legacy environment variables. */ @@ -24,7 +28,24 @@ public final class DshRuntimeConfigResolver { firstNonBlank(managed, properties, environment, "dsh.model_name", "mateclaw.agent.runtime.dsh.model-name", "DEEPSEEK_MODEL"), firstNonBlank(managed, properties, environment, - "dsh.api_key", "mateclaw.agent.runtime.dsh.api-key", "DEEPSEEK_API_KEY")); + "dsh.api_key", "mateclaw.agent.runtime.dsh.api-key", "DEEPSEEK_API_KEY"), + firstNonBlank(managed, properties, environment, "dsh.profile", "mateclaw.agent.runtime.dsh.profile", "DSH_PROFILE"), + patches(firstNonBlank(managed, properties, environment, "dsh.patch_paths", "mateclaw.agent.runtime.dsh.patch-paths", "DSH_PATCH_PATHS")), + firstNonBlank(managed, properties, environment, "dsh.home_root", "mateclaw.agent.runtime.dsh.home-root", "MATECLAW_DSH_HOME_ROOT")); + } + + private static List patches(String value) { + if (value == null || value.isBlank()) return List.of(); + try { + var node = new ObjectMapper().readTree(value); + if (!node.isArray()) throw new IllegalArgumentException(); + List paths = new ArrayList<>(); + for (var entry : node) { + if (!entry.isTextual() || entry.asText().isBlank()) throw new IllegalArgumentException(); + paths.add(entry.asText()); + } + return List.copyOf(paths); + } catch (Exception error) { throw new IllegalArgumentException("DSH_CONFIG_INVALID: patch_paths must be a JSON array of paths"); } } private static String firstNonBlank( diff --git a/mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/management/DshRuntimeConfigService.java b/mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/management/DshRuntimeConfigService.java index 904218cd..7336cd96 100644 --- a/mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/management/DshRuntimeConfigService.java +++ b/mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/management/DshRuntimeConfigService.java @@ -1,9 +1,12 @@ package vip.mate.agent.runtime.dsh.management; + +import com.fasterxml.jackson.databind.ObjectMapper; +import java.util.Arrays; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import vip.mate.system.service.SystemSettingService; - import java.util.LinkedHashMap; import java.util.Map; import java.nio.file.Files; @@ -14,11 +17,24 @@ import java.nio.file.Path; public class DshRuntimeConfigService { private static final String[] MANAGED_KEYS = { "dsh.executable_path", "dsh.cordis_config_path", "dsh.working_directory", - "dsh.base_url", "dsh.model_name", SystemSettingService.DSH_API_KEY_KEY + "dsh.base_url", "dsh.model_name", SystemSettingService.DSH_API_KEY_KEY, + "dsh.profile", "dsh.patch_paths", "dsh.home_root" }; private final SystemSettingService settings; private final Map properties; + @Autowired(required = false) + private DshGenerationStore generations; + @Value("${mateclaw.agent.runtime.dsh.profile:sdk}") + private String profile = "sdk"; + @Value("${mateclaw.agent.runtime.dsh.patch-paths:[]}") + private String patchPaths = "[]"; + @Value("${mateclaw.agent.runtime.dsh.home-root:}") + private String homeRoot = ""; + + public DshGenerationStore generations() { return generations; } + public String revision() { return generations == null ? "0" : generations.revision(); } + public DshRuntimeConfigService( SystemSettingService settings, @@ -39,43 +55,31 @@ public class DshRuntimeConfigService { } public DshRuntimeConfiguration resolve() { + return resolve(Map.of()); + } + + private DshRuntimeConfiguration resolve(Map submitted) { Map managed = new LinkedHashMap<>(); for (String key : MANAGED_KEYS) { String defaultValue = key.equals("dsh.working_directory") ? "" : null; managed.put(key, settings.getString(key, defaultValue)); } - DshRuntimeConfiguration resolved = DshRuntimeConfigResolver.resolve(managed, properties, System.getenv()); + Map active = generations == null ? Map.of() : generations.activeValues(); + managed.putAll(active); + managed.putAll(submitted); + if (managed.get("dsh.home_root") == null || managed.get("dsh.home_root").isBlank()) { + if (!homeRoot.isBlank()) managed.put("dsh.home_root", homeRoot); + else if (generations != null) managed.put("dsh.home_root", generations.root().resolve("homes").toString()); + } + Map runtimeProperties = new LinkedHashMap<>(properties); + runtimeProperties.put("mateclaw.agent.runtime.dsh.profile", profile); + runtimeProperties.put("mateclaw.agent.runtime.dsh.patch-paths", patchPaths); + DshRuntimeConfiguration resolved = DshRuntimeConfigResolver.resolve(managed, + active.isEmpty() ? runtimeProperties : Map.of(), active.isEmpty() ? System.getenv() : Map.of()); String workingDirectory = resolved.workingDirectory(); if (workingDirectory == null || workingDirectory.isBlank()) workingDirectory = System.getProperty("user.dir"); - String cordisConfig = normalizeCordisConfig(resolved.cordisConfigPath()); - if (cordisConfig.isBlank()) cordisConfig = discoverCordisConfig(resolved.executablePath()); - return new DshRuntimeConfiguration(resolved.executablePath(), cordisConfig, workingDirectory, - resolved.baseUrl(), resolved.modelName(), resolved.apiKey()); - } - - private String discoverCordisConfig(String executable) { - if (executable == null || executable.isBlank()) return ""; - Path binary = Path.of(executable.split("\\s+")[0]).toAbsolutePath().normalize(); - Path packageRoot = binary.getParent(); - if (packageRoot == null) return ""; - Path[] candidates = { - packageRoot.resolve("runtime/cordis.yml"), - packageRoot.resolve("../runtime/cordis.yml").normalize(), - packageRoot.resolve("../examples/jsonrpc-agent/cordis.yml").normalize(), - packageRoot.resolve("../../examples/jsonrpc-agent/cordis.yml").normalize() - }; - for (Path candidate : candidates) if (Files.isRegularFile(candidate)) return candidate.toString(); - return ""; - } - - private String normalizeCordisConfig(String configured) { - if (configured == null || configured.isBlank()) return ""; - Path path = Path.of(configured).toAbsolutePath().normalize(); - if (Files.isRegularFile(path)) return path.toString(); - Path packageDirectory = Files.isDirectory(path) ? path : path.getParent(); - if (packageDirectory == null) return path.toString(); - Path packagedConfig = packageDirectory.resolve("runtime/cordis.yml"); - return Files.isRegularFile(packagedConfig) ? packagedConfig.toString() : path.toString(); + return new DshRuntimeConfiguration(resolved.executablePath(), resolved.cordisConfigPath(), workingDirectory, + resolved.baseUrl(), resolved.modelName(), resolved.apiKey(), resolved.profile(), resolved.patchPaths(), resolved.homeRoot()); } public Map managedValues() { @@ -88,16 +92,51 @@ public class DshRuntimeConfigService { values.put(key, value == null ? "" : value); } } + if (generations != null) { + generations.activeValues().forEach((key, value) -> { + if (Arrays.asList(MANAGED_KEYS).contains(key)) values.put(key, + SystemSettingService.DSH_API_KEY_KEY.equals(key) ? settings.maskSecret(value) : value); + }); + } return values; } public void save(Map values) { if (values == null) return; + Map submitted = new LinkedHashMap<>(); + for (String key : MANAGED_KEYS) { + String value = values.get(key); + if (value == null) continue; + if (SystemSettingService.DSH_API_KEY_KEY.equals(key) && (value.isBlank() || value.startsWith("****"))) continue; + submitted.put(key, value); + } + String expectedRevision = generations == null ? null : generations.revision(); + // Apply repairs before parsing; malformed stored fields must remain editable. + DshRuntimeConfiguration current = resolve(submitted); + if (!"sdk".equals(current.profile())) throw new IllegalArgumentException("DSH_PROFILE_INVALID: profile must be sdk"); + if (generations != null) { + Map snapshot = new LinkedHashMap<>(); + snapshot.put("dsh.executable_path", current.executablePath()); + snapshot.put("dsh.cordis_config_path", current.cordisConfigPath()); + snapshot.put("dsh.working_directory", current.workingDirectory()); + snapshot.put("dsh.base_url", current.baseUrl() == null ? "" : current.baseUrl()); + snapshot.put("dsh.model_name", current.modelName() == null ? "" : current.modelName()); + snapshot.put("dsh.api_key", current.apiKey() == null ? "" : current.apiKey()); + snapshot.put("dsh.profile", current.profile()); + snapshot.put("dsh.home_root", current.homeRoot()); + try { snapshot.put("dsh.patch_paths", new ObjectMapper().writeValueAsString(current.patchPaths())); } + catch (Exception error) { throw new IllegalArgumentException("Invalid DSH patches", error); } + generations.updateActiveValues(snapshot, expectedRevision); + return; + } save(values, "dsh.executable_path"); save(values, "dsh.cordis_config_path"); save(values, "dsh.working_directory"); save(values, "dsh.base_url"); save(values, "dsh.model_name"); + save(values, "dsh.profile"); + save(values, "dsh.patch_paths"); + save(values, "dsh.home_root"); String apiKey = values.get(SystemSettingService.DSH_API_KEY_KEY); if (apiKey != null && !apiKey.isBlank() && !apiKey.startsWith("****")) { settings.saveString(SystemSettingService.DSH_API_KEY_KEY, apiKey.trim(), "DeepSeek API key for DSH"); diff --git a/mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/management/DshRuntimeConfiguration.java b/mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/management/DshRuntimeConfiguration.java index 56c88aa1..19a87f7d 100644 --- a/mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/management/DshRuntimeConfiguration.java +++ b/mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/management/DshRuntimeConfiguration.java @@ -1,5 +1,8 @@ package vip.mate.agent.runtime.dsh.management; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.List; import java.util.LinkedHashMap; import java.util.Map; @@ -10,10 +13,41 @@ public record DshRuntimeConfiguration( String workingDirectory, String baseUrl, String modelName, - String apiKey) { + String apiKey, + String profile, + List patchPaths, + String homeRoot) { + + public DshRuntimeConfiguration(String executablePath, String cordisConfigPath, String workingDirectory, + String baseUrl, String modelName, String apiKey) { + this(executablePath, cordisConfigPath, workingDirectory, baseUrl, modelName, apiKey, + "sdk", List.of(), Path.of(System.getProperty("user.home"), ".mateclaw", "runtimes", "deepseek-harness", "homes").toString()); + } + + public DshRuntimeConfiguration { + executablePath = executablePath == null ? "" : executablePath; + cordisConfigPath = cordisConfigPath == null ? "" : cordisConfigPath; + profile = profile == null || profile.isBlank() ? "sdk" : profile; + patchPaths = patchPaths == null ? List.of() : List.copyOf(patchPaths); + homeRoot = homeRoot == null || homeRoot.isBlank() + ? Path.of(System.getProperty("user.home"), ".mateclaw", "runtimes", "deepseek-harness", "homes").toString() : homeRoot; + } + + public boolean migrationRequired() { + return !cordisConfigPath.isBlank() || executablePath.contains("dsh-jsonrpc-agent") + || executablePath.contains(" --") + || (executablePath.chars().anyMatch(Character::isWhitespace) && !Files.isRegularFile(Path.of(executablePath))) || executablePath.startsWith("\"") || executablePath.startsWith("'"); + } + + @Override public String toString() { return "DshRuntimeConfiguration[profile=" + profile + ", credentials=redacted]"; } + public Map publicStatus() { Map status = new LinkedHashMap<>(); + status.put("profile", profile); + status.put("patchPaths", patchPaths); + status.put("homeRoot", homeRoot); + status.put("versionStatus", "UNVERIFIED_VERSION"); status.put("executablePath", executablePath); status.put("cordisConfigPath", cordisConfigPath); status.put("workingDirectory", workingDirectory); diff --git a/mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/management/DshUpgradeService.java b/mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/management/DshUpgradeService.java new file mode 100644 index 00000000..7d4ee202 --- /dev/null +++ b/mateclaw-server/src/main/java/vip/mate/agent/runtime/dsh/management/DshUpgradeService.java @@ -0,0 +1,237 @@ +package vip.mate.agent.runtime.dsh.management; + +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import vip.mate.agent.runtime.dsh.DshRuntimeService; +import vip.mate.workspace.core.service.MemberFileIsolation; + +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.nio.file.FileVisitResult; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.SimpleFileVisitor; +import java.nio.file.StandardCopyOption; +import java.nio.file.attribute.BasicFileAttributes; +import java.security.MessageDigest; +import java.time.Duration; +import java.time.Instant; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HexFormat; +import java.util.List; +import java.util.Map; +import java.util.UUID; +import java.util.concurrent.Executor; + +/** Asynchronous, journaled preparation and activation of isolated runtime generations. */ +@Service +public class DshUpgradeService { + private final DshGenerationStore store; + private final DshRuntimeConfigService config; + private final DshRuntimeService runtime; + private final DshPinnedInstaller installer; + private final ObjectMapper mapper; + private final Executor executor; + + @Autowired + public DshUpgradeService(DshGenerationStore store, DshRuntimeConfigService config, + DshRuntimeService runtime, DshPinnedInstaller installer, ObjectMapper mapper) { + this(store, config, runtime, installer, mapper, task -> Thread.ofVirtual().name("dsh-upgrade").start(task)); + } + + DshUpgradeService(DshGenerationStore store, DshRuntimeConfigService config, + DshRuntimeService runtime, DshPinnedInstaller installer, ObjectMapper mapper, Executor executor) { + this.store = store; this.config = config; this.runtime = runtime; this.installer = installer; + this.mapper = mapper; this.executor = executor; + } + + public Map status() { + return Map.of("configRevision", store.revision(), "activeGeneration", store.activeGeneration(), + "activeVersion", store.activeValues().getOrDefault("dsh.runtime_version", "unknown"), + "catalog", DshPinnedInstaller.catalog(), "supportStatus", "CANDIDATE_REQUIRES_VALIDATION"); + } + + public Map upgrade(String targetVersion, String expectedRevision, String idempotencyKey) { + DshPinnedInstaller.release(targetVersion); + return submit("upgrade", targetVersion, "", expectedRevision, idempotencyKey); + } + + public Map rollback(String originalOperation, String expectedRevision, String idempotencyKey) { + Map original = store.operation(originalOperation); + if (!"COMPLETED".equals(original.get("state")) || original.getOrDefault("previousGeneration", "").isBlank()) { + throw new IllegalStateException("dsh.rollback_unavailable"); + } + if (idempotencyKey == null || !idempotencyKey.matches("[a-zA-Z0-9-]{1,100}")) throw new IllegalArgumentException("dsh.invalid_idempotency_key"); + Map prior = null; + try { prior = operation(digest("rollback:" + idempotencyKey)); } + catch (IllegalArgumentException missing) { + if (!"dsh.operation_missing".equals(missing.getMessage())) throw missing; + } + if (prior != null) { + if (!original.get("previousGeneration").equals(prior.get("restoreGeneration")) + || !prior.get("expectedRevision").equals(expectedRevision)) throw new IllegalStateException("dsh.idempotency_conflict"); + return prior; + } + if (!original.get("candidateGeneration").equals(store.activeGeneration())) { + throw new IllegalStateException("dsh.rollback_generation_changed"); + } + String previous = original.get("previousGeneration"); + return submit("rollback", store.generationValues(previous).getOrDefault("dsh.runtime_version", "unknown"), + previous, expectedRevision, idempotencyKey); + } + + public Map operation(String id) { return store.operation(id); } + + private Map submit(String kind, String version, String restore, String revision, String key) { + if (MemberFileIsolation.isEnabled()) throw new SecurityException("DSH runtime is unavailable in member file isolation mode"); + if (key == null || !key.matches("[a-zA-Z0-9-]{1,100}")) throw new IllegalArgumentException("dsh.invalid_idempotency_key"); + String id = digest(kind + ":" + key); + Map op = DshGenerationStore.owner(); + op.putAll(Map.of("id", id, "kind", kind, "targetVersion", version, "restoreGeneration", restore, + "expectedRevision", revision == null ? "" : revision, "state", "QUEUED", "createdAt", Instant.now().toString())); + if (store.createOperation(id, op)) executor.execute(() -> run(new HashMap<>(op))); + Map existing = operation(id); + if (!version.equals(existing.get("targetVersion")) || !op.get("expectedRevision").equals(existing.get("expectedRevision")) + || !restore.equals(existing.get("restoreGeneration"))) throw new IllegalStateException("dsh.idempotency_conflict"); + return existing; + } + + private void run(Map op) { + String id = op.get("id"); + boolean gate = false; + try { + String candidate = "run-" + UUID.randomUUID(); + op.put("candidateGeneration", candidate); + Path directory = store.root().resolve("releases").resolve(candidate); + transition(op, "PREPARING", "Preparing an isolated candidate"); + DshPinnedInstaller.Installation installation = null; + if (op.get("kind").equals("upgrade")) installation = installer.install(op.get("targetVersion"), directory.resolve("package")); + store.beginUpgrade(id, op.get("expectedRevision")); + gate = true; + transition(op, "DRAINING", "Waiting for active DSH turns; new DSH turns are temporarily blocked"); + if (!store.awaitDrained(Duration.ofSeconds(60))) throw new IllegalStateException("dsh.drain_timeout"); + Map current = snapshot(config.resolve()); + current.putAll(store.activeValues()); + String previous = store.activeGeneration(); + if (previous.isBlank()) { + previous = "baseline-" + UUID.randomUUID(); + store.saveSnapshot(id, previous, current); + } + op.put("previousGeneration", previous); + Map candidateValues = op.get("kind").equals("rollback") + ? store.generationValues(op.get("restoreGeneration")) : new HashMap<>(current); + Path source = Path.of(candidateValues.get("dsh.home_root")).toAbsolutePath().normalize(); + Path home = directory.resolve("homes"); + transition(op, "SNAPSHOTTING", "Copying runtime data; original homes remain unchanged"); + copyHome(source, home); + candidateValues.put("dsh.home_root", home.toString()); + snapshotPatches(candidateValues, directory.resolve("patches")); + if (installation != null) { + candidateValues.put("dsh.executable_path", installation.executablePath()); + candidateValues.put("dsh.runtime_version", installation.version()); + candidateValues.put("dsh.platform", installation.platform()); + candidateValues.put("dsh.integrity", installation.integrity()); + candidateValues.put("dsh.profile", "sdk"); + candidateValues.put("dsh.cordis_config_path", ""); + } + transition(op, "CHECKING", "Checking candidate SDK and model task"); + DshRuntimeConfiguration resolved = DshRuntimeConfigResolver.resolve(candidateValues, Map.of(), Map.of()); + List homes = new ArrayList<>(); + try (var paths = Files.walk(home)) { + paths.filter(path -> path.getFileName().toString().equals("profiles") && Files.isDirectory(path)) + .map(Path::getParent).forEach(homes::add); + } + if (homes.isEmpty()) homes.add(Files.createDirectories(home.resolve("candidate-check"))); + int checked = 0; + for (Path affectedHome : homes) { + Map handshake = runtime.testConnectionAtHome(resolved, affectedHome); + op.put("handshakeStatus", Boolean.TRUE.equals(handshake.get("success")) ? "PASSED" : "FAILED"); + op.put("handshakeCheckedAt", Instant.now().toString()); + store.saveOperation(id, op); + if (!Boolean.TRUE.equals(handshake.get("success"))) throw new IllegalStateException("dsh.candidate_handshake_failed"); + Map task = runtime.testTaskAtHome(resolved, affectedHome); + op.put("taskStatus", Boolean.TRUE.equals(task.get("success")) ? "PASSED" : "FAILED"); + op.put("taskCheckedAt", Instant.now().toString()); + op.put("homesChecked", Integer.toString(++checked)); + store.saveOperation(id, op); + if (!Boolean.TRUE.equals(task.get("success"))) throw new IllegalStateException("dsh.candidate_model_check_failed"); + } + transition(op, "ACTIVATING", "Candidate checks passed; committing generation"); + store.activate(id, candidate, candidateValues); + transition(op, "COMPLETED", "Version and home switched together; old generation retained"); + } catch (Exception error) { + if (error instanceof InterruptedException) Thread.currentThread().interrupt(); + if (op.getOrDefault("candidateGeneration", "!").equals(store.activeGeneration())) { + transition(op, "COMPLETED", "Activation committed; recovered completion record"); + return; + } + String message = error.getMessage(); + transition(op, "FAILED", message != null && message.matches("dsh\\.[a-z_]+") + ? message : "Candidate preparation failed; active generation retained"); + } finally { + if (gate) store.finishUpgrade(id); + } + } + + private Map snapshot(DshRuntimeConfiguration c) throws IOException { + Map values = new HashMap<>(); + values.put("dsh.executable_path", c.executablePath()); + values.put("dsh.cordis_config_path", c.cordisConfigPath()); + values.put("dsh.working_directory", c.workingDirectory()); + values.put("dsh.base_url", c.baseUrl()); + values.put("dsh.model_name", c.modelName()); + values.put("dsh.api_key", c.apiKey()); + values.put("dsh.profile", c.profile()); + values.put("dsh.patch_paths", mapper.writeValueAsString(c.patchPaths())); + values.put("dsh.home_root", c.homeRoot()); + values.replaceAll((k, v) -> v == null ? "" : v); + return values; + } + + private void snapshotPatches(Map values, Path destination) throws IOException { + List patches = mapper.readValue(values.getOrDefault("dsh.patch_paths", "[]"), new TypeReference<>() {}); + List copied = new ArrayList<>(); + for (int i = 0; i < patches.size(); i++) { + Path path = Path.of(patches.get(i)); + if (!path.isAbsolute() || Files.isSymbolicLink(path) || !Files.isRegularFile(path)) throw new IOException("Unsafe patch"); + Files.createDirectories(destination); + Path target = destination.resolve(i + ".yml"); + Files.copy(path, target); + copied.add(target.toString()); + } + values.put("dsh.patch_paths", mapper.writeValueAsString(copied)); + } + + static void copyHome(Path source, Path destination) throws IOException { + source = source.toAbsolutePath().normalize(); + destination = destination.toAbsolutePath().normalize(); + if (destination.startsWith(source) || source.startsWith(destination)) throw new IOException("Overlapping home snapshot"); + if (Files.isSymbolicLink(source)) throw new IOException("Home symlinks require explicit migration"); + Files.createDirectories(destination); + if (!Files.exists(source)) return; + final Path from = source; + final Path to = destination; + Files.walkFileTree(source, new SimpleFileVisitor<>() { + @Override public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException { + Files.createDirectories(to.resolve(from.relativize(dir))); return FileVisitResult.CONTINUE; + } + @Override public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { + if (!attrs.isRegularFile() || Files.isSymbolicLink(file)) throw new IOException("Home symlinks and special files require explicit migration"); + Files.copy(file, to.resolve(from.relativize(file)), StandardCopyOption.COPY_ATTRIBUTES); + return FileVisitResult.CONTINUE; + } + }); + } + + private void transition(Map op, String state, String message) { + op.put("state", state); op.put("message", message); op.put("updatedAt", Instant.now().toString()); + store.saveOperation(op.get("id"), op); + } + private static String digest(String text) { + try { return HexFormat.of().formatHex(MessageDigest.getInstance("SHA-256").digest(text.getBytes(StandardCharsets.UTF_8))); } + catch (Exception error) { throw new IllegalStateException(error); } + } +} diff --git a/mateclaw-server/src/main/resources/docs/en/deepseek-harness.md b/mateclaw-server/src/main/resources/docs/en/deepseek-harness.md index 68f1203d..6adb0b24 100644 --- a/mateclaw-server/src/main/resources/docs/en/deepseek-harness.md +++ b/mateclaw-server/src/main/resources/docs/en/deepseek-harness.md @@ -1,208 +1,63 @@ --- title: DeepSeek Harness Integration -description: Install DeepSeek Harness and configure it as a digital employee runtime in MateClaw. -head: - - - meta - - name: keywords - content: DeepSeek Harness,DSH,digital employee,Agent runtime,JSON-RPC,Cordis +description: Configure, verify, upgrade, and recover the managed DeepSeek Harness SDK runtime. --- # DeepSeek Harness Integration -This guide connects the official DeepSeek Harness (DSH) to MateClaw and creates a digital employee powered by the DSH runtime. +DSH is an employee runtime. MateClaw launches the official `dsh --profile sdk` process and translates its JSON-RPC session events into conversation output. Configure the DeepSeek provider in **Settings → Models**, then select **DSH / DeepSeek Harness** when creating a digital employee with a workspace. -In MateClaw, DSH is an **employee runtime**, not an MCP tool and not a regular plugin. MCP supplies tools; DSH owns the external Agent process, the ReAct loop, and the event stream that MateClaw projects into the conversation UI. +## Requirements and installation -## Architecture +The managed installer requires **Node.js 22**, npm, and registry access. It supports macOS arm64 and Linux x64 candidates. Actual package installation and Java adapter/model checks have passed on macOS arm64 with Node 22.20.0 and npm 11.6.2. Linux x64 remains pending actual verification; Windows/WSL has not been verified. -```text -MateClaw Chat / SSE - | - v -DSH Runtime Provider - | - v JSON-RPC over stdin/stdout -dsh-jsonrpc-agent - | - v -DeepSeek API + Cordis composition -``` +Use the DSH management console to install the pinned **`0.2.0-rc.1`** target. The reviewed alternative is **`0.1.7-rc.2`**. Installation uses checked-in dependency locks and `npm ci` in a separate candidate directory; it does not resolve a moving `latest` tag or modify global npm packages. Both are prereleases. -MateClaw remains responsible for employees, sessions, permissions, workspaces, message persistence, and UI projection. DSH runs the turn. MateClaw injects the API key from the DeepSeek provider configuration into the DSH child process. Never put secrets in `runtimeConfig`, employee prompts, or the repository. +Run **Verify**, **Test connection**, and **Test task**. These mean different things: configuration checks, an SDK `initialize` handshake, and a real model task requiring the answer `OK`. A successful handshake alone does not establish model access. The wire server version `0.0.1` is not the npm package version; managed provenance records the pinned package separately. An external executable remains unverified unless independently checked. -## Prerequisites +## SDK configuration -- macOS, Linux, or Windows (commands below use macOS / Linux syntax) -- JDK 21 -- A running MateClaw backend and frontend -- A DeepSeek API key -- A built DSH JSON-RPC agent -- The Cordis configuration from the DSH checkout +Use an absolute executable path to `node_modules/.bin/dsh`, profile `sdk`, an existing working directory, and a dedicated home root. Optional patch paths are an ordered JSON array of absolute files. MateClaw assigns a separate `DSH_HOME` for each workspace/employee pair and launches arguments directly, without a shell. -Check the runtime files: +| Managed key | Purpose | +| --- | --- | +| `dsh.executable_path` | Absolute SDK CLI executable | +| `dsh.profile` | Must be `sdk` | +| `dsh.working_directory` | Default workspace directory | +| `dsh.home_root` | Root for isolated runtime homes | +| `dsh.patch_paths` | Ordered JSON array of patch files, for example `[]` | -```bash -"$DSH_JSONRPC_AGENT" --help -test -x "$DSH_JSONRPC_AGENT" -test -f "$DSH_CORDIS_CONFIG" -``` +Legacy `dsh-jsonrpc-agent`/Cordis entrypoint configuration requires migration. Clear `dsh.cordis_config_path` and the old `DSH_CORDIS_CONFIG` environment setting; replace the executable with the SDK CLI. Do not put a shell command or extra arguments in the executable field. `DSH_JSONRPC_AGENT` remains a compatibility environment name for an executable path, not an instruction to use the old binary. -## Install DSH +Keep credentials in the provider configuration or dedicated protected runtime settings. MateClaw passes them to the child environment. For the official DeepSeek host, the adapter maps its ordinary API root to the Messages API `/anthropic` route required by these packages. Arbitrary custom endpoints still need a compatible Messages API. -Follow the [official DeepSeek Harness repository](https://github.com/deepseek-ai/deepseek-harness) for the current build instructions. The build must provide these two paths: +MateClaw sends an explicit model output cap through `initialize.maxTokens`: the configured positive cap, defaulting to 4096, limited to half the known context window. This does not replace DSH's context management. -```text -/dist-exe/dsh-jsonrpc-agent-pkg- -/python/sdk-runtime/src/deepseek_harness_runtime/runtime/cordis.yml -``` +## Upgrade and rollback -Keep the DSH binary outside the MateClaw source tree. Configure its location with environment variables. +Managed upgrades prepare a separate package generation, block new DSH turns, and wait up to 60 seconds for current turns to drain. They copy runtime homes and configured patch files, check the candidate handshake and a new model task in each affected home, then atomically select the executable/configuration/home generation together. Original homes and the previous generation remain available. Failure before activation keeps the previous selection. Native turns are not part of the DSH admission gate. -## Configure the IDEA backend +The home copier rejects symlinks and special files instead of following them. Customized homes containing such files require explicit migration. Generation records and package locations are retained; active home contents remain mutable during normal use. -Open **Run | Edit Configurations...** in IDEA, select the MateClaw Spring Boot configuration, and add these variables under **Environment variables**: +Rollback is available for a completed operation while its candidate generation is still active. It copies and checks the retained previous home/configuration before switching. It does **not** merge sessions created after the upgrade or reverse database changes. Keep retained generations and backups until acceptance is complete. -```text -DSH_JSONRPC_AGENT=/absolute/path/to/dsh-jsonrpc-agent-pkg-macos-arm64 -DSH_CORDIS_CONFIG=/absolute/path/to/cordis.yml -DSH_CWD=/absolute/path/to/mateclaw-workspace -``` +Candidate checks start new sessions. They do not prove that every historic DSH session can be reopened or migrated. Actual persisted **V3 → V4 history migration has not been verified**. -Example: +DSH uses its profile-managed tools and does not provide MateClaw host approval integration. Member file isolation blocks this runtime. Rollback does not undo tool writes to workspace files or delete MateClaw chat records. -```text -DSH_JSONRPC_AGENT=/opt/deepseek-harness/dist-exe/dsh-jsonrpc-agent-pkg-macos-arm64 -DSH_CORDIS_CONFIG=/opt/deepseek-harness/python/sdk-runtime/src/deepseek_harness_runtime/runtime/cordis.yml -DSH_CWD=/var/lib/mateclaw/workspace -``` +## Conversations and diagnostics -`DSH_CWD` must be readable and writable by the backend process. Use absolute paths in the IDEA run configuration. Restart the backend after changing them; Spring Boot does not hot-reload process environment variables. +Each MateClaw turn uses a fresh SDK session ID. MateClaw replays bounded completed user/assistant text history; this is not restoration of DSH tool state. Do not reuse an existing persisted SDK ID as a fresh session. Completion is based on the SDK terminal event, not merely on an enqueue receipt or idle status. -## Configure the DeepSeek provider +The admin API is under `/api/v1/admin/dsh`: `GET /status`, `POST /verify`, `/test-connection`, `/test-task`, `/upgrades`, and `GET /upgrades/{id}`. Upgrade requests carry an exact `targetVersion`, the current `expectedRevision`, and an `idempotencyKey`; rollback is `POST /upgrades/{id}/rollback` with revision and idempotency key. Poll the operation record for results. Logs and status must not expose credentials. -1. Sign in to MateClaw. -2. Open **Settings → Models**. -3. Configure and enable the **DeepSeek** provider. -4. Enter the DeepSeek API key and base URL. -5. Confirm that at least one enabled DeepSeek chat model exists. +## Recovering an orphaned runtime -MateClaw resolves the model through its model configuration, using the global default when none is specified. If configuration resolution is unavailable, an explicitly requested model name is retained; `deepseek-v4-flash` is the fallback only when that name is also empty. Dedicated DSH credentials and endpoint settings take precedence; otherwise, MateClaw reads the selected model's provider configuration, falling back to the `deepseek` provider as needed. A custom model must be usable by the DeepSeek provider route in DSH. +`dsh.orphaned_runtime_requires_recovery` means a lease belongs to a JVM that is no longer alive. Admission deliberately remains blocked: its DSH process or tool descendants may still be writing the runtime home. -MateClaw explicitly sends the model's maximum output tokens through SDK `initialize.maxTokens`, avoiding DSH's 256000 default. An unset or invalid output cap defaults to 4096. The cap is also limited to half the known context window to reserve space for input. The model's configured window takes precedence over the global conversation window. For a 128000-token window, an 8192 output cap stays 8192; an oversized 256000 cap becomes 64000. +1. Stop DSH traffic and identify the lease under the managed install root's `leases/` directory (default root: `~/.mateclaw/runtimes/deepseek-harness`). +2. Verify the recorded JVM owner is gone, identify and stop its orphaned DSH processes **and tool descendants**, and confirm no process is writing the affected home. +3. Back up the affected state, then remove only the confirmed stale lease. Do not remove live leases or blindly delete the leases directory. +4. Inspect the durable upgrade operation and active generation, then retry verification before admitting work. -This is a static output bound, not a live token count of the complete DSH request. SDK initialization has no direct context-window field; DSH's internal context capacity and compaction remain controlled by its runtime/Cordis configuration. Long tool histories can still exceed the window. Upgrade older DSH versions that do not support `initialize.maxTokens`. - -## Create a DSH digital employee - -Open **Digital Employees → New**: - -1. Enter the employee name, role, and goal. -2. Select **DSH / DeepSeek Harness** as the runtime. -3. Set a workspace; when blank, `DSH_CWD` is used. -4. Use a JSON object for `runtimeConfig`, for example: - -```json -{ - "mode": "qa", - "workspace": "default", - "policy": "read-only" -} -``` - -5. Save the employee and open its chat. - -Runtime configuration describes employee policy only. Do not put `DEEPSEEK_API_KEY`, cookies, bearer tokens, or sensitive local paths in it. - -## Verification checklist - -Send this message in the DSH employee conversation: - -```text -Reply with exactly: DSH_RUNTIME_OK -``` - -Success means: - -- The employee header shows `DSH Harness`. -- Thinking state and text deltas appear in the chat. -- The log contains `provider=deepseek` and `apiKeyConfigured=true`. -- The log contains a `turn/end` event with `kind=completed`. -- The UI does not show “no output for this run”. -- The same conversation is not used to start two different DSH live sessions. - -You can continue chatting in the same MateClaw conversation. Each turn uses a fresh DSH process and runtime session ID to avoid persisted-log `id collision`. MateClaw supplies up to 40 recent completed user/assistant text messages from that conversation, within a 4096 estimated-token history budget. The current message is sent once and is not truncated by this history budget. Older history may be omitted and a boundary message may be marked `[truncated]`. Saved text history remains available after a backend restart; internal DSH tool state is not restored. Scheduled tasks do not replay conversation history. - -To verify multi-turn context, send “My name is Alex”, then “What is my name?” in the same conversation. A new conversation must not inherit that information through this history mechanism. - -## Logs and diagnostics - -The backend log is commonly located at: - -```text -logs/mateclaw.log -``` - -Search for the runtime signals: - -```bash -rg "\[DSH\]|MISSING_CREDENTIAL|EMPTY_RESPONSE|id collision" logs/mateclaw.log -``` - -The admin-only diagnostics endpoint is: - -```http -GET /api/v1/admin/agent-runtime/dsh/diagnostics -``` - -It returns command, executable, Cordis, and capability status without returning the API key. - -## Troubleshooting - -### `MISSING_CREDENTIAL` - -Check that: - -1. The DeepSeek provider is enabled under Settings → Models. -2. The API key was saved successfully. -3. The employee uses DSH rather than configuring the DSH binary as an MCP command. -4. The backend was restarted with the updated IDEA configuration. - -`apiKeyConfigured=false` in the log means the credential did not reach the DSH child process. - -### `EMPTY_RESPONSE` - -Check model availability and the base URL. Verify with a short fixed prompt before adding tools or skills. - -### `dsh.command_unavailable` - -`DSH_JSONRPC_AGENT` must point to an executable file: - -```bash -chmod +x /absolute/path/to/dsh-jsonrpc-agent-pkg-macos-arm64 -``` - -### `dsh.cordis_missing` - -`DSH_CORDIS_CONFIG` must point to the actual `cordis.yml`, not only the package directory. If a package directory is provided, MateClaw also checks its `runtime/cordis.yml` child path. - -### The answer appears twice - -Use the latest backend version. DSH emits text deltas followed by a final assistant snapshot. MateClaw must project the deltas only and must not append the snapshot again. - -## MCP, plugins, and DSH - -| Mechanism | Best for | Replaces DSH? | -|-----------|----------|--------------| -| MCP | File, GitHub, database, and other tools | No | -| Plugin | Extending MateClaw tools, models, channels, or memory | No | -| DSH employee runtime | Hosting the DeepSeek Harness Agent loop and process | It is the employee runtime, not a tool | - -The recommended composition is: **DSH as the employee runtime, MCP as the tool layer, and MateClaw as the governance and visualization layer**. - -## Security recommendations - -- Store API keys only in MateClaw provider configuration or a controlled environment. -- Give DSH a dedicated workspace instead of the whole user home directory. -- Start with a read-only policy and the smallest possible tool set. -- Never commit `.sessions/`, logs, or local credential configuration. -- In production, restrict the DSH child process filesystem, network, and credential access. +A backend restart alone is not orphan-process cleanup. Do not delete a stale lease merely to bypass the error. diff --git a/mateclaw-server/src/main/resources/docs/zh/deepseek-harness.md b/mateclaw-server/src/main/resources/docs/zh/deepseek-harness.md index b1f85eea..10652baa 100644 --- a/mateclaw-server/src/main/resources/docs/zh/deepseek-harness.md +++ b/mateclaw-server/src/main/resources/docs/zh/deepseek-harness.md @@ -1,208 +1,63 @@ --- -title: DeepSeek Harness 接入 -description: 在 MateClaw 中安装 DeepSeek Harness,并把它配置为数字员工运行时。 -head: - - - meta - - name: keywords - content: DeepSeek Harness,DSH,数字员工,Agent runtime,JSON-RPC,Cordis +title: DeepSeek Harness 集成 +description: 配置、验证、升级和恢复受管理的 DeepSeek Harness SDK 运行时。 --- -# DeepSeek Harness 接入 +# DeepSeek Harness 集成 -本文说明如何把官方 DeepSeek Harness(简称 DSH)接入 MateClaw,并在员工页面创建一个由 DSH 驱动的数字员工。 +DSH 是数字员工运行时。MateClaw 启动官方 `dsh --profile sdk` 进程,把 JSON-RPC 会话事件投影到聊天界面。先在 **设置 → 模型** 配置 DeepSeek 提供方,再为有工作空间的数字员工选择 **DSH / DeepSeek Harness**。 -DSH 在 MateClaw 中是**员工运行时**,不是 MCP 工具,也不是普通插件。MCP 负责为员工提供工具;DSH 负责启动外部 Agent 进程、运行 ReAct 循环并把思考、工具和文本事件流回 MateClaw。 +## 环境与安装 -## 架构 +受管理安装要求 **Node.js 22**、npm 和 npm 仓库网络访问。安装器接受 macOS arm64 与 Linux x64 候选环境。实际 npm 安装、Java 适配器握手和真实模型任务已在 macOS arm64、Node 22.20.0、npm 11.6.2 上通过;Linux x64 仍待实机验证,Windows/WSL 未验证。 -```text -MateClaw Chat / SSE - | - v -DSH Runtime Provider - | - v JSON-RPC over stdin/stdout -dsh-jsonrpc-agent - | - v -DeepSeek API + Cordis composition -``` +在 DSH 管理控制台安装固定目标 **`0.2.0-rc.1`**,另一个受审查版本为 **`0.1.7-rc.2`**。两者均为预发布版本。安装使用仓库内依赖锁文件,在独立候选目录运行 `npm ci`,不会追踪移动的 `latest` 标签,也不会修改全局 npm 包。 -MateClaw 仍然负责员工、会话、权限、工作空间、消息持久化和 UI 投影。DSH 只负责运行时回合。API Key 由 MateClaw 的 DeepSeek 提供商配置注入到 DSH 子进程,不要把密钥写进 `runtimeConfig`、员工提示词或仓库文件。 +依次运行 **校验**、**测试连接**、**测试任务**:分别检查配置、执行 SDK `initialize` 握手、调用真实模型并要求精确回答 `OK`。握手成功不等于模型可用。协议中的服务版本 `0.0.1` 不是 npm 包版本;受管理安装单独记录固定包的来源。外部可执行文件需要另行验证版本。 -## 前置条件 +## SDK 配置 -- macOS、Linux 或 Windows(本文命令以 macOS / Linux 为例) -- JDK 21 -- 已启动的 MateClaw 后端和前端 -- DeepSeek API Key -- 已构建的 DSH JSON-RPC Agent -- DSH 仓库中的 Cordis 配置文件 +可执行文件必须是 `node_modules/.bin/dsh` 的绝对路径,profile 必须为 `sdk`,工作目录必须存在,并设置专用 home 根目录。可选 patch 列表是按顺序传入的绝对文件路径 JSON 数组。MateClaw 按工作空间/员工分配独立 `DSH_HOME`,直接传递参数,不经过 shell。 -确认 DSH 可执行文件: +| 配置键 | 用途 | +| --- | --- | +| `dsh.executable_path` | SDK CLI 可执行文件绝对路径 | +| `dsh.profile` | 固定为 `sdk` | +| `dsh.working_directory` | 默认工作目录 | +| `dsh.home_root` | 隔离运行时 home 的根目录 | +| `dsh.patch_paths` | 有序 patch 路径 JSON 数组,例如 `[]` | -```bash -"$DSH_JSONRPC_AGENT" --help -test -x "$DSH_JSONRPC_AGENT" -test -f "$DSH_CORDIS_CONFIG" -``` +旧 `dsh-jsonrpc-agent`/Cordis 入口配置必须迁移。清空 `dsh.cordis_config_path`,移除旧 `DSH_CORDIS_CONFIG` 环境变量,改用 SDK CLI。可执行文件字段不能包含 shell 命令或附加参数。`DSH_JSONRPC_AGENT` 仍作为兼容环境变量名接受可执行文件路径,并不表示继续使用旧二进制。 -## 安装 DSH +凭证保存在模型提供方或受保护的运行时配置中,由 MateClaw 注入子进程环境。对于 DeepSeek 官方域名,适配器将普通 API 根地址映射到这些包要求的 Messages API `/anthropic` 路径;其他自定义地址仍须提供兼容的 Messages API。 -请以 [DeepSeek Harness 官方仓库](https://github.com/deepseek-ai/deepseek-harness) 的安装说明为准构建运行时。构建完成后,需要得到两个路径: +MateClaw 通过 `initialize.maxTokens` 显式设置输出上限:使用模型配置的正数值,缺省为 4096,并限制为已知上下文窗口的一半。这不替代 DSH 自身的上下文管理。 -```text -/dist-exe/dsh-jsonrpc-agent-pkg- -/python/sdk-runtime/src/deepseek_harness_runtime/runtime/cordis.yml -``` +## 升级与回滚 -不要把 DSH 二进制复制到 MateClaw 的源码仓库。推荐放在独立目录,并通过环境变量告诉 MateClaw 位置。 +受管理升级先准备独立包版本,阻止新 DSH 回合进入,最多等待 60 秒让现有回合结束;随后复制运行时 home 和配置的 patch 文件,在各受影响 home 中执行候选握手与新模型任务,通过后原子切换可执行文件、配置及 home 所属代次。原 home 和旧代次保留;激活前失败继续使用旧选择。原生运行时不受 DSH 准入门控制。 -## 在 IDEA 中配置后端 +home 复制拒绝符号链接与特殊文件,不会跟随链接。包含这些文件的自定义 home 需要显式迁移。代次记录和包目录保留,但活动 home 在正常运行时仍会变化。 -打开 IDEA 的 **Run | Edit Configurations...**,选择 MateClaw 的 Spring Boot 配置,在 **Environment variables** 中增加: +只有已完成操作的候选代次仍处于活动状态时,才能对该操作回滚。回滚复制并检查保留的旧 home/配置后再切换,不会合并升级后产生的会话,也不会逆向修改数据库。验收完成前保留旧代次和备份。 -```text -DSH_JSONRPC_AGENT=/absolute/path/to/dsh-jsonrpc-agent-pkg-macos-arm64 -DSH_CORDIS_CONFIG=/absolute/path/to/cordis.yml -DSH_CWD=/absolute/path/to/mateclaw-workspace -``` +候选检查创建新会话,不能证明每个历史 DSH 会话均可重新打开或迁移。**真实持久化 V3 → V4 历史迁移尚未验证。** -示例: +DSH 使用 profile 管理的工具,不接入 MateClaw 宿主审批;启用成员文件隔离时禁止运行此运行时。回滚不会撤销工具对工作目录文件的写入,也不会删除 MateClaw 聊天记录。 -```text -DSH_JSONRPC_AGENT=/opt/deepseek-harness/dist-exe/dsh-jsonrpc-agent-pkg-macos-arm64 -DSH_CORDIS_CONFIG=/opt/deepseek-harness/python/sdk-runtime/src/deepseek_harness_runtime/runtime/cordis.yml -DSH_CWD=/var/lib/mateclaw/workspace -``` +## 会话与诊断 -`DSH_CWD` 必须是后端进程可读写的目录。IDEA 启动配置中的路径必须是绝对路径;修改后需要重启后端,Spring Boot 不会热加载环境变量。 +每个 MateClaw 回合使用新的 SDK 会话 ID,并回放有界的已完成用户/助手文本历史;这不是恢复 DSH 工具状态。不要用已存在的持久化 SDK ID 创建新会话。是否完成由 SDK 终止事件决定,不能只依赖入队回执或 idle 状态。 -## 配置 DeepSeek 提供商 +管理 API 前缀为 `/api/v1/admin/dsh`:`GET /status`、`POST /verify`、`/test-connection`、`/test-task`、`/upgrades`,以及 `GET /upgrades/{id}`。升级请求包含精确 `targetVersion`、当前 `expectedRevision`、`idempotencyKey`;回滚接口为 `POST /upgrades/{id}/rollback`,携带版本修订号与幂等键。通过操作记录查询进度。日志及状态不得输出凭证。 -1. 登录 MateClaw。 -2. 打开 **设置 → 模型**。 -3. 配置并启用 **DeepSeek** 提供商。 -4. 填入 DeepSeek API Key 和 Base URL。 -5. 确认至少有一个启用的 DeepSeek chat 模型。 +## 孤儿运行时恢复 -模型名称通过 MateClaw 模型配置解析,未指定时使用全局默认模型;未解析到模型配置时保留明确指定的模型名,连模型名也为空时才兜底为 `deepseek-v4-flash`。凭证和地址优先使用 DSH 专有设置,否则读取所选模型的提供商配置,必要时回退到 `deepseek` 提供商。自定义模型必须能由 DeepSeek Harness 的 DeepSeek provider route 使用。 +`dsh.orphaned_runtime_requires_recovery` 表示某个租约所属 JVM 已退出。系统继续拒绝准入,因为遗留 DSH 进程或工具子孙进程仍可能写入 home。 -MateClaw 会通过 DSH SDK 的 `initialize.maxTokens` 显式传递模型最大输出 token 数,避免继承 DSH 的 256000 默认值。未配置或配置无效时使用 4096,并限制为已知上下文窗口的一半,给输入预留空间。上下文窗口优先取模型的配置,未设置时取全局会话窗口配置。例如窗口为 128000、最大输出为 8192 时发送 8192;最大输出误设为 256000 时发送 64000。 +1. 停止 DSH 流量,定位受管理安装根目录下 `leases/` 中的租约;默认根目录为 `~/.mateclaw/runtimes/deepseek-harness`。 +2. 确认记录的 JVM 已退出,识别并停止其孤儿 DSH 进程及所有工具子孙进程,确认受影响 home 已无写入进程。 +3. 备份状态后,仅删除已确认过期的租约。不要删除活动租约或直接清空租约目录。 +4. 检查持久化升级操作与活动代次,重新验证后再恢复任务。 -这是输出上限的静态保护,不是对完整 DSH 请求的实时 token 计数。SDK 初始化协议没有直接设置上下文窗口的字段;DSH 内部上下文容量和压缩仍由其运行时/Cordis 配置管理。长工具调用历史仍可能超出窗口。若使用不支持 `initialize.maxTokens` 的旧版 DSH,请升级到支持该字段的版本。 - -## 创建 DSH 数字员工 - -在 **数字员工 → 新建** 中: - -1. 填写员工名称、角色和目标。 -2. 将运行时选择为 **DSH / DeepSeek Harness**。 -3. 配置工作空间;留空时使用 `DSH_CWD`。 -4. `runtimeConfig` 使用 JSON 对象,例如: - -```json -{ - "mode": "qa", - "workspace": "default", - "policy": "read-only" -} -``` - -5. 保存员工并进入聊天。 - -运行时配置只描述员工级策略。不要在其中写 `DEEPSEEK_API_KEY`、Cookie、Bearer Token 或本机敏感路径。 - -## 验证清单 - -在 DSH 员工会话中发送: - -```text -请只回复:DSH_RUNTIME_OK -``` - -成功标准: - -- 员工标题显示 `DSH Harness`。 -- 输入框发送后能看到思考状态和文本流。 -- 日志出现 `provider=deepseek` 和 `apiKeyConfigured=true`。 -- 日志出现 `turn/end` 且 `kind=completed`。 -- 页面不会显示“本次没有输出”。 -- 同一个会话不会被并发启动两个 DSH live session。 - -可以在同一个 MateClaw 会话中继续聊天。每轮仍使用新的 DSH 进程和运行时会话 ID,避免持久化日志的 `id collision`。MateClaw 会补入当前会话最近最多 40 条已完成的用户/助手文本消息,历史部分限制在估算 4096 token 内。本轮消息只发送一次,不受该历史预算截断;较旧历史可能被省略,边界消息可能带有 `[truncated]` 标记。后端重启后仍可读取已保存的文本历史,但不会恢复 DSH 内部工具状态。定时任务不回放会话历史。 - -验证多轮上下文:在同一会话先发送“我的名字叫小明”,再问“我叫什么名字?”。新建会话不应通过这项历史机制获得前一会话的信息。 - -## 日志与诊断 - -后端日志通常位于: - -```text -logs/mateclaw.log -``` - -重点搜索: - -```bash -rg "\[DSH\]|MISSING_CREDENTIAL|EMPTY_RESPONSE|id collision" logs/mateclaw.log -``` - -安全诊断接口: - -```http -GET /api/v1/admin/agent-runtime/dsh/diagnostics -``` - -它只返回命令、可执行文件、Cordis 文件和能力状态,不返回 API Key。 - -## 常见问题 - -### `MISSING_CREDENTIAL` - -检查: - -1. 设置 → 模型中的 DeepSeek 提供商是否已启用。 -2. API Key 是否保存成功。 -3. 员工是否使用 DSH,而不是把 DSH 二进制配置成 MCP command。 -4. 后端是否使用了修改后的 IDEA 配置并完成重启。 - -日志中的 `apiKeyConfigured=false` 表示凭证没有进入 DSH 子进程。 - -### `EMPTY_RESPONSE` - -检查模型是否可用、Base URL 是否正确,以及该模型是否支持当前请求。先使用固定短消息验证,再逐步增加工具或技能。 - -### `dsh.command_unavailable` - -`DSH_JSONRPC_AGENT` 必须指向真实可执行文件。检查文件权限: - -```bash -chmod +x /absolute/path/to/dsh-jsonrpc-agent-pkg-macos-arm64 -``` - -### `dsh.cordis_missing` - -`DSH_CORDIS_CONFIG` 必须指向实际存在的 `cordis.yml`,不是 DSH 包目录。若传入包目录,MateClaw 会尝试解析其下的 `runtime/cordis.yml`。 - -### 页面显示重复回答 - -确保使用最新后端版本。DSH 会同时发送增量文本事件和最终消息快照,MateClaw 只应投影增量文本,不能把快照再次追加到回答中。 - -## MCP、插件和 DSH 的边界 - -| 机制 | 适合做什么 | 是否替代 DSH | -|------|------------|-------------| -| MCP | 提供文件、GitHub、数据库等工具 | 否 | -| 插件 | 扩展 MateClaw 的工具、模型、渠道或记忆能力 | 否 | -| DSH 员工运行时 | 承载 DeepSeek Harness 的 Agent 循环和外部进程 | 是员工运行时,不是工具 | - -推荐组合是:**DSH 作为员工运行时,MCP 作为工具层,MateClaw 作为治理和可视化层**。 - -## 安全建议 - -- API Key 只放在 MateClaw 模型提供商配置或受控环境变量中。 -- DSH 工作空间使用专用目录,不要直接指向整个用户主目录。 -- 初次接入使用只读策略和最小工具集。 -- 不要把 `.sessions/`、日志或配置文件提交到 Git。 -- 生产环境中限制 DSH 子进程的文件、网络和凭证访问范围。 +仅重启后端不能完成孤儿进程清理。不要为绕过错误直接删除租约。 diff --git a/mateclaw-server/src/main/resources/dsh/locks/0.1.7-rc.2.json b/mateclaw-server/src/main/resources/dsh/locks/0.1.7-rc.2.json new file mode 100644 index 00000000..330aac9b --- /dev/null +++ b/mateclaw-server/src/main/resources/dsh/locks/0.1.7-rc.2.json @@ -0,0 +1,8915 @@ +{ + "name": "mateclaw-dsh-runtime", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "dependencies": { + "@deepseek-ai/dsh": "0.1.7-rc.2" + }, + "name": "mateclaw-dsh-runtime", + "version": "1.0.0" + }, + "node_modules/@agentclientprotocol/sdk": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@agentclientprotocol/sdk/-/sdk-1.4.0.tgz", + "integrity": "sha512-/eufudw+aFY1LKLolT6yFE6UMmYRl7fMJ/DEONSIyR6wI3slHWITBsANRGqXEY8FRzqUxwh7QEaGiZHcJPVThg==", + "license": "Apache-2.0", + "peerDependencies": { + "zod": "^3.25.0 || ^4.0.0" + } + }, + "node_modules/@anthropic-ai/sdk": { + "version": "0.123.0", + "resolved": "https://registry.npmjs.org/@anthropic-ai/sdk/-/sdk-0.123.0.tgz", + "integrity": "sha512-Y9oX9mPNGZClHQOFqrWRk43Srcu/UHuPq3rfxxOq7JgW0gi+lJA2MAOK4Ul3k/+AUrwRWFJvd0tK3oC0Pw25dw==", + "license": "MIT", + "dependencies": { + "json-schema-to-ts": "^3.1.1", + "standardwebhooks": "^1.0.0" + }, + "bin": { + "anthropic-ai-sdk": "bin/cli" + }, + "peerDependencies": { + "zod": "^3.25.0 || ^4.0.0" + }, + "peerDependenciesMeta": { + "zod": { + "optional": true + } + } + }, + "node_modules/@aws-crypto/sha256-browser": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-5.2.0.tgz", + "integrity": "sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha256-js": "^5.2.0", + "@aws-crypto/supports-web-crypto": "^5.2.0", + "@aws-crypto/util": "^5.2.0", + "@aws-sdk/types": "^3.222.0", + "@aws-sdk/util-locate-window": "^3.0.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-crypto/sha256-js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-5.2.0.tgz", + "integrity": "sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/util": "^5.2.0", + "@aws-sdk/types": "^3.222.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-crypto/supports-web-crypto": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-5.2.0.tgz", + "integrity": "sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-crypto/util": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-5.2.0.tgz", + "integrity": "sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.222.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-sdk/client-bedrock-runtime": { + "version": "3.1048.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-bedrock-runtime/-/client-bedrock-runtime-3.1048.0.tgz", + "integrity": "sha512-u+NT61JZEkRFtpL0CAw1N1dwxnaLgwVXQl/zjJxTGgLyS/jTIdg2SdoEoCTHxgDyCnqa1HEi9QOoE9/pYRNpOQ==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/core": "^3.974.11", + "@aws-sdk/credential-provider-node": "^3.972.42", + "@aws-sdk/eventstream-handler-node": "^3.972.16", + "@aws-sdk/middleware-eventstream": "^3.972.12", + "@aws-sdk/middleware-websocket": "^3.972.19", + "@aws-sdk/token-providers": "3.1048.0", + "@aws-sdk/types": "^3.973.8", + "@smithy/core": "^3.24.2", + "@smithy/fetch-http-handler": "^5.4.2", + "@smithy/node-http-handler": "^4.7.2", + "@smithy/types": "^4.14.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/core": { + "version": "3.978.1", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.978.1.tgz", + "integrity": "sha512-LbY9aGsEiznDWmUc30Nwv3aIX/+dbwTx8KfS0yOC3NPYMO+O91e6jkT1azf34FwjOndq8/Q+RcVVZz5xnerwdg==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.974.6", + "@aws-sdk/xml-builder": "^3.972.41", + "@aws/lambda-invoke-store": "^0.3.0", + "@smithy/core": "^3.35.0", + "@smithy/signature-v4": "^5.7.3", + "@smithy/types": "^4.19.0", + "bowser": "^2.11.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-env": { + "version": "3.972.72", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.72.tgz", + "integrity": "sha512-xTKO/FWJPozTIXbozVnVGoNBhaGba8TBcx+KyUjRVeOlXE+dUc7GTR1cLvu0uTdIdmemzaFbqqCshXeZA1fZew==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.978.1", + "@aws-sdk/types": "^3.974.6", + "@smithy/core": "^3.35.0", + "@smithy/types": "^4.19.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-http": { + "version": "3.972.74", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.972.74.tgz", + "integrity": "sha512-u91E/hT8f4d1xy0Jl7VG4nVKJ3lxbrZkoBTeSVoJdWBiSEUMwMS/9+e0H/aJVQV//Lt5wuzP+E69v4aRSsNTmw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.978.1", + "@aws-sdk/types": "^3.974.6", + "@smithy/core": "^3.35.0", + "@smithy/fetch-http-handler": "^5.8.0", + "@smithy/node-http-handler": "^4.12.1", + "@smithy/types": "^4.19.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.12.1.tgz", + "integrity": "sha512-ThMkboGeONWXAelq9FvGsuJC4rOi+qyC4/zhUF58xYpxUg5sQKx2VXZYJmtNjr4dSuBJ1HeJXETQILCz3wOHvw==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/core": "^3.33.3", + "@smithy/types": "^4.18.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.973.17", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.973.17.tgz", + "integrity": "sha512-ged4KXdBkvIC81bLvNHHuQKdKak/VXhQTR1NWYTTqW0474nlmsxy9O/vlgTIohDDWH3xpBdtVMZRyjb+DnocDA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.978.1", + "@aws-sdk/credential-provider-env": "^3.972.72", + "@aws-sdk/credential-provider-http": "^3.972.74", + "@aws-sdk/credential-provider-login": "^3.972.79", + "@aws-sdk/credential-provider-process": "^3.972.72", + "@aws-sdk/credential-provider-sso": "^3.973.16", + "@aws-sdk/credential-provider-web-identity": "^3.972.78", + "@aws-sdk/nested-clients": "^3.997.46", + "@aws-sdk/types": "^3.974.6", + "@smithy/core": "^3.35.0", + "@smithy/credential-provider-imds": "^4.5.2", + "@smithy/types": "^4.19.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-login": { + "version": "3.972.79", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-login/-/credential-provider-login-3.972.79.tgz", + "integrity": "sha512-L+Z85anONJd8MaiuraO4wRxATCdEejBZ3K3eymzWI5JPXa9sOS9CkIm72PBKqXKX+Z9p9NGMX5AIMXm0LEflgw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.978.1", + "@aws-sdk/nested-clients": "^3.997.46", + "@aws-sdk/types": "^3.974.6", + "@smithy/core": "^3.35.0", + "@smithy/types": "^4.19.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-node": { + "version": "3.972.84", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.84.tgz", + "integrity": "sha512-oHt854odINVwzwsh+c5x69j0ajm4DbqqqVJ+O1ECsCIZeMDAbzFpXItaqP7UZstJj/ATdTk/KFSH0LaNAgV+kA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/credential-provider-env": "^3.972.72", + "@aws-sdk/credential-provider-http": "^3.972.74", + "@aws-sdk/credential-provider-ini": "^3.973.17", + "@aws-sdk/credential-provider-process": "^3.972.72", + "@aws-sdk/credential-provider-sso": "^3.973.16", + "@aws-sdk/credential-provider-web-identity": "^3.972.78", + "@aws-sdk/types": "^3.974.6", + "@smithy/core": "^3.35.0", + "@smithy/credential-provider-imds": "^4.5.2", + "@smithy/types": "^4.19.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-process": { + "version": "3.972.72", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.972.72.tgz", + "integrity": "sha512-rLIp2xbMjX/k9/od7APpqq1ZgXXnV0pOL1Th3ZsL8Wu0TRtBsDTVS8iPqcfRFcHakFxPvR04OSTv2ka2qOb/2A==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.978.1", + "@aws-sdk/types": "^3.974.6", + "@smithy/core": "^3.35.0", + "@smithy/types": "^4.19.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.973.16", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.973.16.tgz", + "integrity": "sha512-IGihaJfFZYacJJr/odqILCoK7W/mvrZ7cuK7ECn3sAu4vLC6u0V8bS7mCGbdugJ8Aum2tnvqmx0F2MRFp2rn9g==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.978.1", + "@aws-sdk/nested-clients": "^3.997.46", + "@aws-sdk/token-providers": "3.1138.0", + "@aws-sdk/types": "^3.974.6", + "@smithy/core": "^3.35.0", + "@smithy/types": "^4.19.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers": { + "version": "3.1138.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.1138.0.tgz", + "integrity": "sha512-GpyAr0DD63YOEmYFM6Df+gJuIgC92MMTiBK4FTKfxii5MJ9ge20epR7LyroulscYlG89J+ZB2ivFDPjvfQhzdw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.978.1", + "@aws-sdk/nested-clients": "^3.997.46", + "@aws-sdk/types": "^3.974.6", + "@smithy/core": "^3.35.0", + "@smithy/types": "^4.19.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.972.78", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.972.78.tgz", + "integrity": "sha512-/y9WvNtlcPBGLR0qc1a+9J/xtYZfVczvLUOuXaVWylzttH7ewsxwHtjmiJSolNrVSDorIxHGHMU61CbonRkmwA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.978.1", + "@aws-sdk/nested-clients": "^3.997.46", + "@aws-sdk/types": "^3.974.6", + "@smithy/core": "^3.35.0", + "@smithy/types": "^4.19.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/eventstream-handler-node": { + "version": "3.972.35", + "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-handler-node/-/eventstream-handler-node-3.972.35.tgz", + "integrity": "sha512-a8xilRoRaalvSPZdfrs0VY3/BPc0uYhXW56Z/k6nmZ5Vk430LHeowf9APIPq8utM3tMJSNGSSuJMlB9YrPsN+A==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.974.6", + "@smithy/core": "^3.35.0", + "@smithy/types": "^4.19.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/middleware-eventstream": { + "version": "3.972.30", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-eventstream/-/middleware-eventstream-3.972.30.tgz", + "integrity": "sha512-B6gvZlcnRBNWraKgyEjKsbhv+VjtbyHmpU7hmtTHzXpDSxHPpCJnYLpglEOOsF+SFne20DbZC5IVC1aNr2Pb4A==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.974.6", + "@smithy/core": "^3.35.0", + "@smithy/types": "^4.19.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/middleware-websocket": { + "version": "3.972.54", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-websocket/-/middleware-websocket-3.972.54.tgz", + "integrity": "sha512-bhESdru8u8KosziH8jcVta/NM/dNreeRz2+2aU86si5bfBYOiJ6IiqD+9U4URUcU5WJO3Yw+jO3GLDIHlscXMQ==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.978.1", + "@aws-sdk/types": "^3.974.6", + "@smithy/core": "^3.35.0", + "@smithy/fetch-http-handler": "^5.8.0", + "@smithy/signature-v4": "^5.7.3", + "@smithy/types": "^4.19.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@aws-sdk/nested-clients": { + "version": "3.997.46", + "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.997.46.tgz", + "integrity": "sha512-oRxtBcka/JGHGs9l9p9IVajGoTP8vTPmoAzdHGy4Qcy9P5vPnDf6nhIeM/COQNY9k/OahImTRaLkHftoXvfcmQ==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.978.1", + "@aws-sdk/signature-v4-multi-region": "^3.996.47", + "@aws-sdk/types": "^3.974.6", + "@smithy/core": "^3.35.0", + "@smithy/fetch-http-handler": "^5.8.0", + "@smithy/node-http-handler": "^4.12.1", + "@smithy/types": "^4.19.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.12.1.tgz", + "integrity": "sha512-ThMkboGeONWXAelq9FvGsuJC4rOi+qyC4/zhUF58xYpxUg5sQKx2VXZYJmtNjr4dSuBJ1HeJXETQILCz3wOHvw==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/core": "^3.33.3", + "@smithy/types": "^4.18.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/signature-v4-multi-region": { + "version": "3.996.47", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.996.47.tgz", + "integrity": "sha512-Zk08macMvQTHzQJCLJVkOlviVoqwYMrpXv4lmLN7b7sAbiMoOK7Go0NYdR5UeF+MW8LIbRmwrNy9u/5VvX1U5g==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.974.6", + "@smithy/signature-v4": "^5.7.3", + "@smithy/types": "^4.19.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/token-providers": { + "version": "3.1048.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.1048.0.tgz", + "integrity": "sha512-k0y/GcuesuSfWyUM0WamrGyeZmltRYaPbHO82UDA6mZ/doB+FOHKutikPAtSXMn/hDz970cF+iRuuiYO9VEbAA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.974.11", + "@aws-sdk/nested-clients": "^3.997.9", + "@aws-sdk/types": "^3.973.8", + "@smithy/core": "^3.24.2", + "@smithy/types": "^4.14.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/types": { + "version": "3.974.6", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.974.6.tgz", + "integrity": "sha512-v/clNZzZnDxGyvpHMOGpJKVXFAExJzUNAAjaWGdcx8QAcXLGwTaOkw33p5SHAi0YAioK32xB3hWwOekRVfmfKg==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.19.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/util-locate-window": { + "version": "3.965.10", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.965.10.tgz", + "integrity": "sha512-ycwH6Zd2GhuSqdXX9ihbCjeGTB6xOJs+O3+Jb8/zDG9978XU80qs75dfkPJRMNKe5MvBZPuNeFpd4JZKPoUF4g==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/xml-builder": { + "version": "3.972.41", + "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.972.41.tgz", + "integrity": "sha512-ctjVSyCMegrWfXlx6VqzSBFI6UqmQ5ZlnfMhdLIiWmhoH8UAQxSCP5N3OpG7X3k4LnS7ou74C4mt20+bfTW2aQ==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.19.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws/lambda-invoke-store": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@aws/lambda-invoke-store/-/lambda-invoke-store-0.3.0.tgz", + "integrity": "sha512-sl4Bm6yiMNYrZKkqqDFWN0UfnWhlS8ivKxrYl+6t0gCLrqr8y3B2IqZZbFRkfaVVp7C/baApyh71P+LeE1A2sQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", + "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.29.7", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.7.tgz", + "integrity": "sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@deepseek-ai/cordis": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@deepseek-ai/cordis/-/cordis-4.0.4.tgz", + "integrity": "sha512-obgyxqWAmFn3Re8kvsuUnyW+ihrz6eJCnJO4fh1cQzDtmPYz/zzVeUkH9R94I0OwSVOocK67Kgakm04j/oQXzg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/cosmokit": "~1.8.5", + "@standard-schema/spec": "^1.1.0" + }, + "bin": { + "cordis": "bin.js" + }, + "peerDependencies": { + "@deepseek-ai/cordis-plugin-include": "~1.0.9", + "@deepseek-ai/cordis-plugin-loader": "~1.0.5" + }, + "peerDependenciesMeta": { + "@deepseek-ai/cordis-plugin-include": { + "optional": true + }, + "@deepseek-ai/cordis-plugin-loader": { + "optional": true + } + } + }, + "node_modules/@deepseek-ai/cordis-plugin-group": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@deepseek-ai/cordis-plugin-group/-/cordis-plugin-group-1.0.4.tgz", + "integrity": "sha512-/7tuY5pMQetHava4v6QUeOa4CwZA+mleNvbIoj+iqEmzkYUtlXbLqhzJIcbnDa/Hxgr1jaCwROrI77nuLyeCFg==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/cordis-plugin-loader": "~1.0.5" + } + }, + "node_modules/@deepseek-ai/cordis-plugin-include": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@deepseek-ai/cordis-plugin-include/-/cordis-plugin-include-1.0.9.tgz", + "integrity": "sha512-Xmekm7u5Kpeym6nABL4T1/Mg6aQYFZxsipB0WycmCctvX1DqAv8nCFwRmg2XMx/f7EbZgNEbXQwJfabcMu8zxQ==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/cosmokit": "~1.8.5", + "js-yaml": "^4.1.0" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/cordis-plugin-loader": "~1.0.5" + } + }, + "node_modules/@deepseek-ai/cordis-plugin-loader": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@deepseek-ai/cordis-plugin-loader/-/cordis-plugin-loader-1.0.5.tgz", + "integrity": "sha512-200huL2ttWcjyeYllvPYn+qMR7I89qy8MhZasbHltPzB/KMrSfsyoCYKdCGc5KqPGj5iJugcmibQzjINMO9I+Q==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/cosmokit": "~1.8.5", + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "node-addon-require-builtin": "^0.1.6" + }, + "peerDependenciesMeta": { + "node-addon-require-builtin": { + "optional": true + } + } + }, + "node_modules/@deepseek-ai/cordis-plugin-timer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@deepseek-ai/cordis-plugin-timer/-/cordis-plugin-timer-1.1.6.tgz", + "integrity": "sha512-/nZC7G637LIDF8G+lhF4OSXl1uFRuNAZqv1x11CDGLSjUpmIayePfzABEGTDEKAY+IBivg2DIXBr/sjjaLZxqg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/cosmokit": "~1.8.5" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/cosmokit": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@deepseek-ai/cosmokit/-/cosmokit-1.8.5.tgz", + "integrity": "sha512-LXsrlem9z8dq4sLflj2yuCuYX7KqhdzF5hZly3eZyuTo8d6oDSOXuEgC5DbQWKW+lksm6zmOutQLsP/ma6wR6A==", + "license": "MIT" + }, + "node_modules/@deepseek-ai/dsh": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh/-/dsh-0.1.7-rc.2.tgz", + "integrity": "sha512-SQFhriLvza8GnFApnC5/32AgpcyKxrWnYXhvwDOLJdgWpkCX2EexyR9c8kCkMITJXnFLEN3Qb2CEh0W36vkLyw==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/cordis-plugin-include": "~1.0.9", + "@deepseek-ai/cordis-plugin-loader": "~1.0.5", + "@deepseek-ai/cordis-plugin-timer": "~1.1.6", + "@deepseek-ai/dsh-acp-app": "0.1.7-rc.2", + "@deepseek-ai/dsh-agent-instructions": "0.1.7-rc.2", + "@deepseek-ai/dsh-agent-preset": "0.1.7-rc.2", + "@deepseek-ai/dsh-agent-tool-presentation": "0.1.7-rc.2", + "@deepseek-ai/dsh-app-boot": "0.1.7-rc.2", + "@deepseek-ai/dsh-atomic-write": "0.1.7-rc.2", + "@deepseek-ai/dsh-base": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-agent-preset": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-cordis": "0.1.7-rc.2", + "@deepseek-ai/dsh-cmdline": "0.1.7-rc.2", + "@deepseek-ai/dsh-command-compact": "0.1.7-rc.2", + "@deepseek-ai/dsh-command-goal": "0.1.7-rc.2", + "@deepseek-ai/dsh-compaction-basic": "0.1.7-rc.2", + "@deepseek-ai/dsh-compaction-tool-result-pruner": "0.1.7-rc.2", + "@deepseek-ai/dsh-cordis-client-runner": "0.1.7-rc.2", + "@deepseek-ai/dsh-experimental-agent-team-profile": "0.1.7-rc.2", + "@deepseek-ai/dsh-experimental-auto-review": "0.1.7-rc.2", + "@deepseek-ai/dsh-experimental-voice-input-bundle": "0.1.7-rc.2", + "@deepseek-ai/dsh-fs-local": "0.1.7-rc.2", + "@deepseek-ai/dsh-goal": "0.1.7-rc.2", + "@deepseek-ai/dsh-goal-round-driver": "0.1.7-rc.2", + "@deepseek-ai/dsh-headless": "0.1.7-rc.2", + "@deepseek-ai/dsh-hmr": "0.1.7-rc.2", + "@deepseek-ai/dsh-home-paths": "0.1.7-rc.2", + "@deepseek-ai/dsh-hooks-claude-code": "0.1.7-rc.2", + "@deepseek-ai/dsh-hooks-codex": "0.1.7-rc.2", + "@deepseek-ai/dsh-http-proxy": "0.1.7-rc.2", + "@deepseek-ai/dsh-jobs-local": "0.1.7-rc.2", + "@deepseek-ai/dsh-launch-environment": "0.1.7-rc.2", + "@deepseek-ai/dsh-mcp-client": "0.1.7-rc.2", + "@deepseek-ai/dsh-mcp-resources": "0.1.7-rc.2", + "@deepseek-ai/dsh-persona": "0.1.7-rc.2", + "@deepseek-ai/dsh-plan-mode": "0.1.7-rc.2", + "@deepseek-ai/dsh-plugin-manager": "0.1.7-rc.2", + "@deepseek-ai/dsh-pwsh-local": "0.1.7-rc.2", + "@deepseek-ai/dsh-pwsh-sandbox": "0.1.7-rc.2", + "@deepseek-ai/dsh-schedule": "0.1.7-rc.2", + "@deepseek-ai/dsh-sdk-app": "0.1.7-rc.2", + "@deepseek-ai/dsh-sdk-minimal": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-projection": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-reference": "0.1.7-rc.2", + "@deepseek-ai/dsh-skill": "0.1.7-rc.2", + "@deepseek-ai/dsh-skill-filesystem": "0.1.7-rc.2", + "@deepseek-ai/dsh-skill-office": "0.1.7-rc.2", + "@deepseek-ai/dsh-terminal": "0.1.7-rc.2", + "@deepseek-ai/dsh-terminal-bash": "0.1.7-rc.2", + "@deepseek-ai/dsh-time-context": "0.1.7-rc.2", + "@deepseek-ai/dsh-tmux-context": "0.1.7-rc.2", + "@deepseek-ai/dsh-token-meter": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-ask-user": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-bash": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-bash-persistent": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-cordis": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-fs": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-fs-search": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-goal": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-jobs": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-present": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-pwsh": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-pwsh-persistent": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-ralph": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-skill": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-str-replace-editor": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-subagent": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-subagent-control": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-todo": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-web": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-workflow": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-workspace-dependencies": "0.1.7-rc.2", + "@deepseek-ai/dsh-web-app": "0.1.7-rc.2", + "@deepseek-ai/dsh-webhook": "0.1.7-rc.2", + "@deepseek-ai/dsh-webhook-github": "0.1.7-rc.2", + "@deepseek-ai/dsh-workflow-ptc": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4", + "commander": "^15.0.0", + "js-yaml": "^4.2.0", + "node-addon-require-builtin": "^0.1.6" + }, + "bin": { + "dsh": "lib/bin.js" + } + }, + "node_modules/@deepseek-ai/dsh-acp": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-acp/-/dsh-acp-0.1.7-rc.2.tgz", + "integrity": "sha512-pYA/KH4ks/q/S82PEwdpGQ+Bdmyx8G4aspd2N0BVM9KAfupEszrgZyfNX7L0+hvy4sYTjP5LyUr6/2QmQVhXiw==", + "license": "MIT", + "dependencies": { + "@agentclientprotocol/sdk": "1.4.0", + "@deepseek-ai/dsh-brand": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-attachment": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-mcp-client": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-persistence": "0.1.7-rc.2", + "@deepseek-ai/dsh-token-meter": "0.1.7-rc.2", + "@deepseek-ai/dsh-user-approval": "0.1.7-rc.2" + }, + "peerDependenciesMeta": { + "@deepseek-ai/dsh-token-meter": { + "optional": true + } + } + }, + "node_modules/@deepseek-ai/dsh-acp-app": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-acp-app/-/dsh-acp-app-0.1.7-rc.2.tgz", + "integrity": "sha512-7Km0Fchvx/PoL3/By4M6ykKkrmmIgelXq/1l0624Ixt3JgTtFNSgko3dpL/32Hv/a5Fn/wEsuujBHzmcBBcZ7Q==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-acp": "0.1.7-rc.2", + "@deepseek-ai/dsh-cmdline": "0.1.7-rc.2", + "commander": "^15.0.0" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-agent": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-agent/-/dsh-agent-0.1.7-rc.2.tgz", + "integrity": "sha512-9U/zHZvZqRR5S2FD9fjjAuoMh+WfDan+bE/cLBLSLpqftjZ0FhIlEBK99yonUkNkGemyHiH/lL3jCKYw35ahJA==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-invariants": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-scope": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-projection": "0.1.7-rc.2", + "@deepseek-ai/dsh-system-prompt": "0.1.7-rc.2", + "@deepseek-ai/dsh-typert-protocol": "0.1.7-rc.2", + "@deepseek-ai/dsh-util-values": "0.1.7-rc.2", + "@deepseek-ai/dsh-workspace": "0.1.7-rc.2" + }, + "peerDependenciesMeta": { + "@deepseek-ai/dsh-workspace": { + "optional": true + } + } + }, + "node_modules/@deepseek-ai/dsh-agent-default-model": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-agent-default-model/-/dsh-agent-default-model-0.1.7-rc.2.tgz", + "integrity": "sha512-Ilvgi3Dsogn6X3GTd6ke8MrWV1jBTLIVep7xji7own/TVdhtu7pP7Zs0mFYDTuuP1INGGrcnS/dHEPayNyRm+A==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-config-editor": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-agent-instructions": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-agent-instructions/-/dsh-agent-instructions-0.1.7-rc.2.tgz", + "integrity": "sha512-q6V4d4XIEmLiHgNg/z3jYV5K0f1qHvpuq1fatEHaLjTCZPXy4p3O7ge+PKQSoB8I/Gxy8HGXthZ4oJPXro5Klw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-util-values": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-fs": "0.1.7-rc.2", + "@deepseek-ai/dsh-home-paths": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-projection": "0.1.7-rc.2", + "@deepseek-ai/dsh-tools": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-agent-loop": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-agent-loop/-/dsh-agent-loop-0.1.7-rc.2.tgz", + "integrity": "sha512-X+fegYY7yITQ5kAIayFrylMY9Vg6zHFLnP83rJVZ89juF9EBRm8soGAJHvyjat+mdk5a1WViWYdIPM0t9g/glA==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-brand": "0.1.7-rc.2", + "@deepseek-ai/dsh-util-values": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-invariants": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-scope": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-persistence": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-projection": "0.1.7-rc.2", + "@deepseek-ai/dsh-system-prompt": "0.1.7-rc.2", + "@deepseek-ai/dsh-tools": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-agent-preset": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-agent-preset/-/dsh-agent-preset-0.1.7-rc.2.tgz", + "integrity": "sha512-T3HKwuNf9S+FxZilyHw34bXilX+a8GqXfaoL8QqShghUyNYLLuAI9lUDdNpADf7huuTvBA1TO+ulUmVXAN/QhA==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/cordis-plugin-loader": "~1.0.5", + "@deepseek-ai/dsh-agent-preset-registry": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-agent-preset-registry": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-agent-preset-registry/-/dsh-agent-preset-registry-0.1.7-rc.2.tgz", + "integrity": "sha512-qpB4H6uWuPx/Jqm2sLbNJPrWOtVhk3FLK+5PdqLBHqEDfCmpBZCBm6lUdSWsmnKmPnHiBeHSVZO9AZl9qJJlHQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-app-boot": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4", + "js-yaml": "^4.2.0", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/cordis-plugin-include": "~1.0.9", + "@deepseek-ai/cordis-plugin-loader": "~1.0.5", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-invariants": "0.1.7-rc.2", + "@deepseek-ai/dsh-scope": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-projection": "0.1.7-rc.2", + "@deepseek-ai/dsh-settings": "0.1.7-rc.2", + "@deepseek-ai/dsh-system-prompt": "0.1.7-rc.2", + "@deepseek-ai/dsh-tools": "0.1.7-rc.2", + "@deepseek-ai/dsh-typert-protocol": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-agent-tool-presentation": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-agent-tool-presentation/-/dsh-agent-tool-presentation-0.1.7-rc.2.tgz", + "integrity": "sha512-xKfJLdNhh91bO52qCAl9qCGJkEbuZdHg7sWGfY5dB+RsXxOGXxZwXQUOnPgbKS54f3Ydks93SmphzYKJHBSdxA==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-tools": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-anonymous-user-id": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-anonymous-user-id/-/dsh-anonymous-user-id-0.1.7-rc.2.tgz", + "integrity": "sha512-krpu7wg/5+5MjeYml8TfViV6nXm3hzPvTBIa70tjcUTyLJidXmchwDr65HqYE2Mv+tRlrkGKZr6a+iOpdscEug==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-brand": "0.1.7-rc.2", + "@deepseek-ai/dsh-home-paths": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-api-account-controller": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-api-account-controller/-/dsh-api-account-controller-0.1.7-rc.2.tgz", + "integrity": "sha512-0dQuFlmeoOcxvVg9UooR5ZztCZlLBq7V/APVTErIgZaMTbwV5myJSxlftc92Y3gxAM6lCpyjYa2eAq1mT09oww==", + "license": "MIT", + "dependencies": { + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-deepseek-account": "0.1.7-rc.2", + "@deepseek-ai/dsh-typert-protocol": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-api-gateway": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-api-gateway/-/dsh-api-gateway-0.1.7-rc.2.tgz", + "integrity": "sha512-CnM2kk7UQc/7MSEgNUG6V1CeWYoG7cS1b/IF7tpYEQihuswXGaBVPBsQSMZMAiU8uMyUFTBKm4POSJ/J6QiT2Q==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-deque": "0.1.7-rc.2", + "@deepseek-ai/dsh-timeout": "0.1.7-rc.2", + "@deepseek-ai/dsh-typert-protocol": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4", + "ws": "^8.21.0" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-client-connection": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-api-job-controller": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-api-job-controller/-/dsh-api-job-controller-0.1.7-rc.2.tgz", + "integrity": "sha512-yO3bQ3fQ5G/SG3Mm/3kQHIB7YaXjSRufIvOtBWV321SN1NOrCuhncIWBzE7UmsnaqxhGGzNQ5lIUILtIxy1aGQ==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-typert-protocol": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-api-remotes": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-api-remotes/-/dsh-api-remotes-0.1.7-rc.2.tgz", + "integrity": "sha512-MYPFy7wb9wJE3CkeFum2aEHDaDTy8YIkRSJWIpkpsYTKSEFr2IZTU6TH8dFQf8eF58WAHr0YUCA0t7p/uQJPow==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-deque": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-util-values": "0.1.7-rc.2" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-scope": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-api-session-controller": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-api-session-controller/-/dsh-api-session-controller-0.1.7-rc.2.tgz", + "integrity": "sha512-PB6Sk3h9g0ZGeIxUNcnZJIdWQxvhV4dh9g7KOd+Wu2YyqnA7TqweU9JRKitrDb4hYB1TFTDImGmdcAhiiMhbEw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-brand": "0.1.7-rc.2", + "@deepseek-ai/dsh-deque": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4", + "mime-types": "^3.0.2", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-agent-default-model": "0.1.7-rc.2", + "@deepseek-ai/dsh-agent-preset-registry": "0.1.7-rc.2", + "@deepseek-ai/dsh-api-gateway": "0.1.7-rc.2", + "@deepseek-ai/dsh-attachment": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-connection": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-file-upload": "0.1.7-rc.2", + "@deepseek-ai/dsh-commands": "0.1.7-rc.2", + "@deepseek-ai/dsh-credentials": "0.1.7-rc.2", + "@deepseek-ai/dsh-file-reference": "0.1.7-rc.2", + "@deepseek-ai/dsh-fs": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-native-command": "0.1.7-rc.2", + "@deepseek-ai/dsh-scope": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-persistence": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-projection": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-projection-cache": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-query": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-title": "0.1.7-rc.2", + "@deepseek-ai/dsh-settings": "0.1.7-rc.2", + "@deepseek-ai/dsh-skill": "0.1.7-rc.2", + "@deepseek-ai/dsh-subagent": "0.1.7-rc.2", + "@deepseek-ai/dsh-typert-protocol": "0.1.7-rc.2", + "@deepseek-ai/dsh-typert-registry": "0.1.7-rc.2", + "@deepseek-ai/dsh-util-time": "0.1.7-rc.2", + "@deepseek-ai/dsh-util-values": "0.1.7-rc.2", + "@deepseek-ai/dsh-util-workspace-path": "0.1.7-rc.2", + "@deepseek-ai/dsh-workspace": "0.1.7-rc.2" + }, + "peerDependenciesMeta": { + "@deepseek-ai/dsh-session-persistence": { + "optional": true + }, + "@deepseek-ai/dsh-session-projection-cache": { + "optional": true + }, + "@deepseek-ai/dsh-settings": { + "optional": true + } + } + }, + "node_modules/@deepseek-ai/dsh-api-settings-controller": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-api-settings-controller/-/dsh-api-settings-controller-0.1.7-rc.2.tgz", + "integrity": "sha512-6CWdSCOSjNx07WTlat3Oq2UIMlT/tqtMC9CHqIbLFEmumQcoFFIyr34IFEMyWxN8Lwf0yL5s5wJ6KcF9UOLb5Q==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent-preset-registry": "0.1.7-rc.2", + "@deepseek-ai/dsh-credentials": "0.1.7-rc.2", + "@deepseek-ai/dsh-native-command": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-settings": "0.1.7-rc.2", + "@deepseek-ai/dsh-typert-protocol": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-api-terminal-controller": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-api-terminal-controller/-/dsh-api-terminal-controller-0.1.7-rc.2.tgz", + "integrity": "sha512-SxsRrFEbi6uEmu3QHnus/pDPIUzlh40hwKonjomLZoZeceW9AjAo7G0kvU2xNQDX6RpieayOhYdSVyQjBRIQHQ==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-deque": "0.1.7-rc.2", + "@deepseek-ai/dsh-lazy-require": "0.1.7-rc.2", + "@deepseek-ai/dsh-typert-protocol": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4", + "@xterm/addon-serialize": "^0.14.0", + "@xterm/headless": "^6.0.0", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-subprocess": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-api-workspace-controller": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-api-workspace-controller/-/dsh-api-workspace-controller-0.1.7-rc.2.tgz", + "integrity": "sha512-BUeoGq1didny2GqiGsCDfQTp9QF+oeAzRCG3z6gjbkQ4AGzOWw5QoSS7eknI+BU5vUq0zrJoVPR1gOaKK/9fbg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-deque": "0.1.7-rc.2", + "@deepseek-ai/dsh-native-command": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-api-gateway": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-connection": "0.1.7-rc.2", + "@deepseek-ai/dsh-host-directory-picker": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-storage-domain": "0.1.7-rc.2", + "@deepseek-ai/dsh-typert-protocol": "0.1.7-rc.2", + "@deepseek-ai/dsh-workspace": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-api-workspace-files": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-api-workspace-files/-/dsh-api-workspace-files-0.1.7-rc.2.tgz", + "integrity": "sha512-ImRQDxH7s4imG+G3EgT3nNepUomobwriGZtf+V39hlimytIdFcV9lZjzMkx9sQgz/V+3ExovAcvr7TEnu8EA6A==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-deque": "0.1.7-rc.2", + "@deepseek-ai/dsh-typert-protocol": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-app-boot": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-app-boot/-/dsh-app-boot-0.1.7-rc.2.tgz", + "integrity": "sha512-d0QWMMXxT6kICO9QRrXTqJRKP6bWNes7SVGJK6OOEzX6Ua9mzCx1KghPIf7tjW/ZmX0b8n1FoySr4IHElBkrOg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-atomic-write": "0.1.7-rc.2", + "@deepseek-ai/dsh-package-manifest": "0.1.7-rc.2", + "@eslint-community/regexpp": "^4.12.2", + "ajv": "^8.20.0", + "js-yaml": "^4.2.0", + "node-addon-require-builtin": "^0.1.6", + "resolve.exports": "^2.0.3", + "semver": "^7.8.5" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/cordis-plugin-group": "~1.0.4", + "@deepseek-ai/cordis-plugin-include": "~1.0.9", + "@deepseek-ai/cordis-plugin-loader": "~1.0.5", + "@deepseek-ai/dsh-home-paths": "0.1.7-rc.2", + "@deepseek-ai/dsh-launch-environment": "0.1.7-rc.2", + "@deepseek-ai/dsh-system-prompt": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-atomic-write": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-atomic-write/-/dsh-atomic-write-0.1.7-rc.2.tgz", + "integrity": "sha512-gdUVkVv5DXBgnEDB1Dh/lL+HV/8mKR3AGUqNjLhQJSEqE9MIYyiHC+3zwzaWjeWhiTdLXd5rkA4HVCiS3KIcUg==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-attachment": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-attachment/-/dsh-attachment-0.1.7-rc.2.tgz", + "integrity": "sha512-g2SQ12Ki1l28T/H+fZKtSWDFF5Y1gavcKVBb2X4eOVX5uT5Jwumx+9Svelp1pHaknuAE1N2Yt9tMwj2quMkhDg==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-brand": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-attachment-local": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-attachment-local/-/dsh-attachment-local-0.1.7-rc.2.tgz", + "integrity": "sha512-Z50ktA9dTTR6DfjwoRQac7BBfkCvyE+FUcbj68u3R0d4lZpYQ9a9r4uYrSF57wrxZCVjYw48HbTYegxvyFh5mw==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-lazy-require": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4", + "sharp": "^0.35.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-attachment": "0.1.7-rc.2", + "@deepseek-ai/dsh-home-paths": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-authorization": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-authorization/-/dsh-authorization-0.1.7-rc.2.tgz", + "integrity": "sha512-20hFGce+wzzWQ9qG2BfLeO26550HVVEe5ApELvmA6J7QUVsHkGWQsldKsYUzZ6AkgzgeUz4mwuOFYDf0r4timQ==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-credentials": "0.1.7-rc.2", + "@deepseek-ai/dsh-invariants": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-base": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-base/-/dsh-base-0.1.7-rc.2.tgz", + "integrity": "sha512-LYwclGWi0SEZh0ZjnlJT/kHaOV0JDuI1mCHFCOQthYlabPp90Ohba+7wdIRX1oqcQN6erFzsQrrV1WFf+NhRYg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/cordis-plugin-timer": "~1.1.6", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-agent-default-model": "0.1.7-rc.2", + "@deepseek-ai/dsh-agent-instructions": "0.1.7-rc.2", + "@deepseek-ai/dsh-agent-loop": "0.1.7-rc.2", + "@deepseek-ai/dsh-api-gateway": "0.1.7-rc.2", + "@deepseek-ai/dsh-attachment-local": "0.1.7-rc.2", + "@deepseek-ai/dsh-authorization": "0.1.7-rc.2", + "@deepseek-ai/dsh-bash-sandbox": "0.1.7-rc.2", + "@deepseek-ai/dsh-command-compact": "0.1.7-rc.2", + "@deepseek-ai/dsh-command-feedback": "0.1.7-rc.2", + "@deepseek-ai/dsh-command-goal": "0.1.7-rc.2", + "@deepseek-ai/dsh-commands": "0.1.7-rc.2", + "@deepseek-ai/dsh-compaction-basic": "0.1.7-rc.2", + "@deepseek-ai/dsh-compaction-image-offload": "0.1.7-rc.2", + "@deepseek-ai/dsh-compaction-tool-result-pruner": "0.1.7-rc.2", + "@deepseek-ai/dsh-config-editor": "0.1.7-rc.2", + "@deepseek-ai/dsh-credentials-local": "0.1.7-rc.2", + "@deepseek-ai/dsh-deepseek-account-platform": "0.1.7-rc.2", + "@deepseek-ai/dsh-deepseek-llm-api-extensions": "0.1.7-rc.2", + "@deepseek-ai/dsh-fs-local": "0.1.7-rc.2", + "@deepseek-ai/dsh-fs-observation-policy": "0.1.7-rc.2", + "@deepseek-ai/dsh-fs-sandbox": "0.1.7-rc.2", + "@deepseek-ai/dsh-goal": "0.1.7-rc.2", + "@deepseek-ai/dsh-goal-round-driver": "0.1.7-rc.2", + "@deepseek-ai/dsh-hmr": "0.1.7-rc.2", + "@deepseek-ai/dsh-jobs-local": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm-deepseek-account": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm-deepseek-api-key": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm-pi-ai": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm-retry": "0.1.7-rc.2", + "@deepseek-ai/dsh-mcp-resources": "0.1.7-rc.2", + "@deepseek-ai/dsh-permission-presets": "0.1.7-rc.2", + "@deepseek-ai/dsh-plan-mode": "0.1.7-rc.2", + "@deepseek-ai/dsh-plugin-manager": "0.1.7-rc.2", + "@deepseek-ai/dsh-plugin-package-inventory-deepseek": "0.1.7-rc.2", + "@deepseek-ai/dsh-ptc-runtime-node": "0.1.7-rc.2", + "@deepseek-ai/dsh-pwsh-sandbox": "0.1.7-rc.2", + "@deepseek-ai/dsh-repeat-tool-reminder": "0.1.7-rc.2", + "@deepseek-ai/dsh-sandbox-local": "0.1.7-rc.2", + "@deepseek-ai/dsh-sandbox-policy": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-checkpoint-policy": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-log-deepseek": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-persistence-jsonl": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-projection": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-projection-cache": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-query-sqlite": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-telemetry-otel": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-title": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-title-first-prompt-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-settings": "0.1.7-rc.2", + "@deepseek-ai/dsh-shell-env": "0.1.7-rc.2", + "@deepseek-ai/dsh-skill": "0.1.7-rc.2", + "@deepseek-ai/dsh-skill-badge": "0.1.7-rc.2", + "@deepseek-ai/dsh-skill-filesystem": "0.1.7-rc.2", + "@deepseek-ai/dsh-spill-local": "0.1.7-rc.2", + "@deepseek-ai/dsh-spill-policy": "0.1.7-rc.2", + "@deepseek-ai/dsh-storage": "0.1.7-rc.2", + "@deepseek-ai/dsh-storage-domain": "0.1.7-rc.2", + "@deepseek-ai/dsh-storage-json": "0.1.7-rc.2", + "@deepseek-ai/dsh-subagent": "0.1.7-rc.2", + "@deepseek-ai/dsh-subagent-fork-in-process": "0.1.7-rc.2", + "@deepseek-ai/dsh-subagent-spawn-in-process": "0.1.7-rc.2", + "@deepseek-ai/dsh-subprocess-local": "0.1.7-rc.2", + "@deepseek-ai/dsh-system-prompt": "0.1.7-rc.2", + "@deepseek-ai/dsh-token-meter": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-bash": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-call-timeout-policy": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-fs": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-fs-search": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-goal": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-jobs": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-present": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-pwsh": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-ralph": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-skill": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-subagent": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-subagent-control": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-todo": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-web": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-workflow": "0.1.7-rc.2", + "@deepseek-ai/dsh-tools": "0.1.7-rc.2", + "@deepseek-ai/dsh-typert-loader": "0.1.7-rc.2", + "@deepseek-ai/dsh-typert-registry": "0.1.7-rc.2", + "@deepseek-ai/dsh-user-approval": "0.1.7-rc.2", + "@deepseek-ai/dsh-user-questions": "0.1.7-rc.2", + "@deepseek-ai/dsh-web": "0.1.7-rc.2", + "@deepseek-ai/dsh-web-fetch-http": "0.1.7-rc.2", + "@deepseek-ai/dsh-web-search-deepseek": "0.1.7-rc.2", + "@deepseek-ai/dsh-workflow-ptc": "0.1.7-rc.2" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-bash-local": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-bash-local/-/dsh-bash-local-0.1.7-rc.2.tgz", + "integrity": "sha512-8InocMSTIzUGuKXnSp05pTBfeQmUdC+L5T1I+2iESzPtrNh/F9jLQeCPknWZ7ren/XwDki79J9EqYaLE1vNiUg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-shell": "0.1.7-rc.2", + "@deepseek-ai/dsh-subprocess": "0.1.7-rc.2", + "@deepseek-ai/dsh-timeout": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-bash-sandbox": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-bash-sandbox/-/dsh-bash-sandbox-0.1.7-rc.2.tgz", + "integrity": "sha512-M4laxtYLPkXlvbtMpLm4hTWKmBb1xJuNMma/eA+xYTNdjHtV/ZJPxiKMVe1crjBp/dKuMTJR42p8rizLM1vkNg==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-bash-local": "0.1.7-rc.2", + "@deepseek-ai/dsh-sandbox": "0.1.7-rc.2", + "@deepseek-ai/dsh-sandbox-policy": "0.1.7-rc.2", + "@deepseek-ai/dsh-shell": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-brand": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-brand/-/dsh-brand-0.1.7-rc.2.tgz", + "integrity": "sha512-cvcvlNRuiFqZNNqyxdu7wcpiBjd9xa/0MpuhRvee43zBp9uED2p5JolZr5/2EKJf57gYx9k9bedb+Zbyiqnpkw==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-chunked-list": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-chunked-list/-/dsh-chunked-list-0.1.7-rc.2.tgz", + "integrity": "sha512-fMpkkFPG9I9/wlQygbyPAdGKMK/RnD1p7/czm2hbzyAZtr/kDz+RThOWtlV1VDZ23NWkps98qTwlhM3NJ3LkXg==", + "license": "MIT", + "dependencies": { + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-connection": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-connection/-/dsh-client-connection-0.1.7-rc.2.tgz", + "integrity": "sha512-Wc2ANM5NO3Ri+p8wBoVnPxTYxz++zYSuEoVOhd498WMY779w0RCgWfRzHekPY5ftJX/G02qzWNHe0yBIoTpXXw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-credentials": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-scope": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-client-file-upload": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-file-upload/-/dsh-client-file-upload-0.1.7-rc.2.tgz", + "integrity": "sha512-jjXlNn0pANLGO+VzW1ABmtGgM/9z6rvg/Dj4y1LVliGQD5bQBw+xCp2faKjpe3C/LEu2lAv9FMjUjB9YrukzVw==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-brand": "0.1.7-rc.2", + "@deepseek-ai/dsh-typert-protocol": "0.1.7-rc.2", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-scope": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-client-hmr": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-hmr/-/dsh-client-hmr-0.1.7-rc.2.tgz", + "integrity": "sha512-5Qx01rqP8uq3l2hKW3bCNPzvNZ0KdAQHM/KDGSX24LCgYQRejV4BC7VOacMRCZFZAOLVU+RlFnPXIucF6v0C9g==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-locale": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-locale/-/dsh-client-locale-0.1.7-rc.2.tgz", + "integrity": "sha512-zkRt/JrBvS7w1TPi/dOo0QCqjkcAApq7nNoeIL2lX0VlzwHD86Hrg/n/YJJlg1i0nvOEtZDibR9FGwa/X2wpvA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-modules": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-modules/-/dsh-client-modules-0.1.7-rc.2.tgz", + "integrity": "sha512-+ePHhpZr3H7bWbbQxiYq/B4oINmot11O2A+IeVMmkwMGClGi2ZumO5BWuIYZLlS1Aof9ANSez+uoX5BeVjqAdg==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-resources": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-resources/-/dsh-client-resources-0.1.7-rc.2.tgz", + "integrity": "sha512-gbfYcakpo6BhOH4/XAiNVYrpHroH3xJhSb0LUOwPLhZEOFBgDAyAy1dtlBj+o+CNPraI3j+8SCt/oHVOu5y6mw==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-shortcuts": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-shortcuts/-/dsh-client-shortcuts-0.1.7-rc.2.tgz", + "integrity": "sha512-yM52NmuHZcDkV1pbvD9f+Me5W+SgMz2jc1K8Iu9VZOgL5sy4EtMre6kPoHYMT4g1kcYpbVaqyygDXjA/guRW/A==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-util-crypto": "0.1.7-rc.2", + "@deepseek-ai/dsh-util-values": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-store": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-store/-/dsh-client-store-0.1.7-rc.2.tgz", + "integrity": "sha512-8nF4gqy/3yvSN3KsuHX61DVP1Z2YjC93wkB2uGVS5xg4iyD1KgCqWB2S+fVAdQ7END9PDzWhZTk71AYnkSh7LA==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-agent-preset": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-agent-preset/-/dsh-client-ui-agent-preset-0.1.7-rc.2.tgz", + "integrity": "sha512-dE0Ua4Ke8yDo31BPEdTK+a3mrbuTRPLbdEK3LDWwUYQ9L0V2vYjHikQle4p/Asmx2Z/g2P87Wyx/016CnXHFNw==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-approval": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-approval/-/dsh-client-ui-approval-0.1.7-rc.2.tgz", + "integrity": "sha512-zM8k2o504kLz9jDzqKze36W6Opb1voDwsO+YgWFmTrGQIjMXLmxdyuLxbMco9ER4cygUeJf8weH92FKQDw5CeA==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-attachment": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-attachment/-/dsh-client-ui-attachment-0.1.7-rc.2.tgz", + "integrity": "sha512-PG5bsHJ6WioVegi8K7GuXsoPZ3wd4rQBZ9OwSPjB4L6G2Zzln3UuBlNuAVpaTJL8lvxB5IBnUdw++4yQ8DvAWw==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-brand-official": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-brand-official/-/dsh-client-ui-brand-official-0.1.7-rc.2.tgz", + "integrity": "sha512-pdWYHX/xRFMIWkT+IfemhTTOZVAJiA3CAlesUJpTDhbu6MEXQcPeBnsd3iPKswzCiVSPanvaj9Vv/057oXWfUA==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-chat": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-chat/-/dsh-client-ui-chat-0.1.7-rc.2.tgz", + "integrity": "sha512-mH4Womiv1jFMdhNQQvvlF2t8T7rcQNDuR5e2YSJvJdVpZ2+9CxZOd/56hBURTciYX9p8QnCe+Qb1zj/A0ilWqA==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-commands": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-commands/-/dsh-client-ui-commands-0.1.7-rc.2.tgz", + "integrity": "sha512-bw6+g4uSNYMoRtkzE8gqzRK6F38Qxa5HQonGf1KcAGWkQ79k8MtTcE9MOS++SBEr4pxokuwRncjPH+Ywjh/m2w==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-conversation": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-conversation/-/dsh-client-ui-conversation-0.1.7-rc.2.tgz", + "integrity": "sha512-bPC3RNBF2TgMwoueaRuFLMIrRVA/k9iqZQ6Lre8GPpn5c8uhmtTV5D1TlKNHQPNtnKv/Gn5BGw2Kh16ItbY83Q==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-cordis": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-cordis/-/dsh-client-ui-cordis-0.1.7-rc.2.tgz", + "integrity": "sha512-v1ktLqwVQJq1Mjcml4jZpFeN0VcbePH2Pg7IkI25bAHaF2fn2afsf8hRYJdR2nfL9Us0mIwlo6/M/EkkfUGIXA==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-deliverables": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-deliverables/-/dsh-client-ui-deliverables-0.1.7-rc.2.tgz", + "integrity": "sha512-/7eOaMsDJQgOYtPRHFHoyY9wwDOgM0af8Ihy8EtvnQjr7VqeluJvX2B3L55wOW0aBnCp0llHL4MZlYa+f7Z3SA==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-typert-protocol": "0.1.7-rc.2" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-directory-picker-browse": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-directory-picker-browse/-/dsh-client-ui-directory-picker-browse-0.1.7-rc.2.tgz", + "integrity": "sha512-rpUbd6d2ZJs/uVa36ATa2y+QlX5i/RQ+24VZTWmz70hj/UhxiRWq3E6hXc2trOHIpHnXI8I3cfKYdP9BJPBb7w==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-directory-picker-native": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-directory-picker-native/-/dsh-client-ui-directory-picker-native-0.1.7-rc.2.tgz", + "integrity": "sha512-zEK/4cg6HKjqOabLRtcXWyPxsB0Q34RKulg6bYuOh58eQBEYBLlY6inyFESEVjP30fVkYx2qvrBuzBEVZ1A6Mg==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-goal": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-goal/-/dsh-client-ui-goal-0.1.7-rc.2.tgz", + "integrity": "sha512-1h3u/5FNEuui+31lCklla2q+Df7EAribAwuY/O3lv8Gf/kT9seQfrJNkxwaZMoLh/9wnx/mAAnQT6K7v4OWmMg==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-input-trigger": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-input-trigger/-/dsh-client-ui-input-trigger-0.1.7-rc.2.tgz", + "integrity": "sha512-m2uKSOFijUI7gW66LjsThuPbHt67ezvL+nfKL+IpoBSc5596/WFcj6HysFdiGBv0bv7Gd0pNXUVTOJ2Z6Jhg4Q==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-jobs": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-jobs/-/dsh-client-ui-jobs-0.1.7-rc.2.tgz", + "integrity": "sha512-QIFavpfsmMjmD/lb2nAoJNHpuaf7TQyWlpN3BNUVe2iBURu0+KviSnRQLOR8PxBztobo0AYtrAMNrmAACfLnuA==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-layout": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-layout/-/dsh-client-ui-layout-0.1.7-rc.2.tgz", + "integrity": "sha512-od2Q5A3SxiOO5V1Mi35lmm64LQLNjew+HgigjTC9oLpCkb+es739VQeWPdUnzWP/+4WVIyQ2+SbHMLZiyB5jVg==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-message-feedback": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-message-feedback/-/dsh-client-ui-message-feedback-0.1.7-rc.2.tgz", + "integrity": "sha512-6WbWPtxFc3NpFqsGlU02z+UzLaAaKZkOeD046T+DG3WXf9eAjWHs7nwyxo//kYtWOGYVFyvXI+To9knby78TXw==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-model-selection": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-model-selection/-/dsh-client-ui-model-selection-0.1.7-rc.2.tgz", + "integrity": "sha512-kazoUL2VstZZs1Pvd+IliHIHqgNVKOHPmiXehUCBxc4pqwUV6v84X+aH4W6dxFCFojd1zqzgfp7dA2RwkNBfsA==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-open-in-app": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-open-in-app/-/dsh-client-ui-open-in-app-0.1.7-rc.2.tgz", + "integrity": "sha512-cIZ8Q1v/HdPMSe1fouJMNTyIYRz9VKtN96I5Q8PwgRHKUIwoIQ1qDIxMaeCaOkYBnDftmafDVGxNSsvQ7XjfDg==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-permission-presets": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-permission-presets/-/dsh-client-ui-permission-presets-0.1.7-rc.2.tgz", + "integrity": "sha512-RUt06rwzQ1oYX74I5Va/y+nGOJC0l0i29EL5UEzfnz1RH26OGMw11PZnVDFQZbDE6QFpp44Rh8RF6H0MBlKttA==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-plan": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-plan/-/dsh-client-ui-plan-0.1.7-rc.2.tgz", + "integrity": "sha512-IYw6lMWvMZ0gCHStZYAKqUuimSIgns1iShTOqNJBsyL82u99iRLUCOjTePRNVcn+OPSD0MpJEUPA4wPa1t3byw==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-plugin-manager": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-plugin-manager/-/dsh-client-ui-plugin-manager-0.1.7-rc.2.tgz", + "integrity": "sha512-y2BlSTNqiFKxvtx86r/xaskWhjc6OYfHmtbJGI6BVfquqrHBhKeHJ7D1vNURamOFdouJjurWdc6UclrM/6D4OA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-timeout": "0.1.7-rc.2", + "@deepseek-ai/dsh-typert-protocol": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-primitives": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-primitives/-/dsh-client-ui-primitives-0.1.7-rc.2.tgz", + "integrity": "sha512-ymIUil9ivHcIDgaAmF88lOygC7dJ0UsUgdbIvXT5bymPZDzvDJIoorOKhlMsCqPEG1ZawCMVhUatnIPi4xdlMQ==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-reference": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-reference/-/dsh-client-ui-reference-0.1.7-rc.2.tgz", + "integrity": "sha512-6gfOeDM/Z9hJRDP+m777VPgiFvjhVvbjnCxkXlG8rsXQBcdO4SSqCBWX0ioQ+2tIGMuMypfVNdFPOk8pxoR7FA==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-renderer": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-renderer/-/dsh-client-ui-renderer-0.1.7-rc.2.tgz", + "integrity": "sha512-GdOE1zyespclxrcCGPTWk8+TQKQy3tUNC2Ch+4eoAyzp1GD4hmQNyzwFIiQDLB6Bwc7kv+8cWc51sbjr5/2vNg==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-schedule": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-schedule/-/dsh-client-ui-schedule-0.1.7-rc.2.tgz", + "integrity": "sha512-MIdo7fTNZ+kNOO0fp9oiw3D6qJ1O8xyjnYyJlZ1gqDFjuT+IdH65BEOoeGyT5atYYJnwMDWD7vL3sUMh5l5lqw==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-session": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-session/-/dsh-client-ui-session-0.1.7-rc.2.tgz", + "integrity": "sha512-gr7hwtWpgqU1mJwFFtugxH2QOYw+j/RvU/h8719mGYjkmBbOxzy3wgTL00tf0WFHLZh8pPMKQMg/eG3bEb0Z/w==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-settings": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-settings/-/dsh-client-ui-settings-0.1.7-rc.2.tgz", + "integrity": "sha512-RAZXUt25mVibi2fnZyHhRArAtmNYIbyEUcAx/nc0i01V8dabnZkUCuGDRLjUeB4X6aPAOrlqLCliNcATuHD+hw==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-settings-account": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-settings-account/-/dsh-client-ui-settings-account-0.1.7-rc.2.tgz", + "integrity": "sha512-bMrSAJjkGGW1NCRS5I7rYFpUrTtl+6d3rUGWAJQlFRB3GCBDICfyAd2ZjLC+8NtklqyG8sXlmKPZr29N5mh61A==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-settings-agent-loop": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-settings-agent-loop/-/dsh-client-ui-settings-agent-loop-0.1.7-rc.2.tgz", + "integrity": "sha512-qD0C+CK8KJ02B7URv7lsnddT1exlv9imvt7e6wAb5nkmzIdptXfLs2MfL5CXoH+b7NGx9sGYFHR9hRqKU3OMUA==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-settings-general": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-settings-general/-/dsh-client-ui-settings-general-0.1.7-rc.2.tgz", + "integrity": "sha512-Qy7nobyQqUuXoTwe0QckrikCAFmX8JJ5RT5Wt7J2ZZ+soesDnaEkMkAfO1ZTxJi6MKzntuwwMwjF+Z330FFmAw==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-settings-models": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-settings-models/-/dsh-client-ui-settings-models-0.1.7-rc.2.tgz", + "integrity": "sha512-WDHuCh0cVJiSUyaa31OiXSSgpwWD9TAW2gEWBWUrF8eO+hyQEA8Q5f3wzVvea1ltiOmjqU0IBFMQRtpSckyDPw==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-settings-plugin-inventory": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-settings-plugin-inventory/-/dsh-client-ui-settings-plugin-inventory-0.1.7-rc.2.tgz", + "integrity": "sha512-TweCas4hY0NPl6m4TFeE9OVNSNGH6BjRCSzRfKVddZ6qm54aCW3pxy0fprJLLRVIkVckushjbfl+vaxyYGHoFA==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-settings-plugins": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-settings-plugins/-/dsh-client-ui-settings-plugins-0.1.7-rc.2.tgz", + "integrity": "sha512-eLljHiQ6fR0K/yXDiHeyiWkCsmg1eQucoMAKcwerh8sjtyKPTpqLFQDmOn/O7znJz+b/V89yshkyyHw8ZvC38Q==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-settings-shell": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-settings-shell/-/dsh-client-ui-settings-shell-0.1.7-rc.2.tgz", + "integrity": "sha512-+N2RZaN/WCA9vVqCdf4PnvuzmtGnzyacnlOe37g5NSpZGrg2MpPnUTuv9vJnygsQhYLHZxkJOojAnxEJ/dOgfQ==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-settings-subagent": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-settings-subagent/-/dsh-client-ui-settings-subagent-0.1.7-rc.2.tgz", + "integrity": "sha512-c93MFjtSoffOCeVAUBOL9oTul1Hd5MhyUngGetBUv7APixG5zN6X13NjnS20mqOKRidSMc0xyizYiS30ygz2fQ==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-settings-web-search": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-settings-web-search/-/dsh-client-ui-settings-web-search-0.1.7-rc.2.tgz", + "integrity": "sha512-/EwngqLFH4tBnF8GXMVRDpR0Lfwk3uhJ103UFSLq+p4E46yv2zxH6S3AcKIWR8YdntB8i0nj2Xr/5Cs4IbK+yQ==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-shortcuts": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-shortcuts/-/dsh-client-ui-shortcuts-0.1.7-rc.2.tgz", + "integrity": "sha512-Bo5Z0j6Xcm5NHWmrgJwMP9vehsfUcNQvZ0IT6WAT5z51cEza3iIXfpfEa/3GTos68cv9R5i14wjAJL9a3Go7Ow==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-sidebar": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-sidebar/-/dsh-client-ui-sidebar-0.1.7-rc.2.tgz", + "integrity": "sha512-/rzmtzk5Wg89zkT03nPGD/yYx9x1MD2ircBb9zIaLB9+DMBUFNjHJh5htYmYFxN7ldNEa6zDnmcx0N6jg1xnPg==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-sidebar-browser": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-sidebar-browser/-/dsh-client-ui-sidebar-browser-0.1.7-rc.2.tgz", + "integrity": "sha512-Mnn+EVIy2YGIEyHcJf5ifAhLKUdeYjhv1XA4fMhfGUmadq0QYGMN+K9j0mWb6eBCSXoujBzfwiClhCT11dN+3w==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-sidebar-documentpreview": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-sidebar-documentpreview/-/dsh-client-ui-sidebar-documentpreview-0.1.7-rc.2.tgz", + "integrity": "sha512-5SRZ9SgYIq0GB4q9PQPY7uInG+WKaVLv7V9kQn58YWjwzzEVDDcGMDbgCP5lBLq/Hj+fZ7jI70na1M8hMCjf1g==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-sidebar-files": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-sidebar-files/-/dsh-client-ui-sidebar-files-0.1.7-rc.2.tgz", + "integrity": "sha512-5H9kFhSFoZDj19YE8BYue3Ux1anPOGC4JNAYZJI9cmYLXB/Onb8nndFUxt+9HKJhQaRaLXgYBMrBQxg+Wig6Bg==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-sidebar-right": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-sidebar-right/-/dsh-client-ui-sidebar-right-0.1.7-rc.2.tgz", + "integrity": "sha512-CXTONIEGrMJA7Aj9OK5K7XSv6Qa/f+yK8UqKHvrT03m1FAqLJZGVqj2OUUbCgoB6Yf3wBTrNh5D4RqTE0rLpVw==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-sidebar-terminal": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-sidebar-terminal/-/dsh-client-ui-sidebar-terminal-0.1.7-rc.2.tgz", + "integrity": "sha512-1nr+HVNXkxnJ1eSxkIt2NnIaotyjTHvX2tHNaV6Fy7T/KoxcDecCW3sFFqIFnhZqR61SsQ8yNIP79DV65xWfog==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-skill": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-skill/-/dsh-client-ui-skill-0.1.7-rc.2.tgz", + "integrity": "sha512-DQhYOWGid/KIX9Pg4vCngO5vIOrtxxaL6v12RIV3PWJlZQ70JB2j8UEfayN3qtfHpbmWo15UTDJ56sA71lf/Mg==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-slots": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-slots/-/dsh-client-ui-slots-0.1.7-rc.2.tgz", + "integrity": "sha512-83cd5owHfNMGIc5THEkMw1L6iKj/tl2m3thQhVGWp2p3Y+QAPh2hIrIQCNI+i97cH+7SsIsUIoCIoB0mu51aqQ==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-subagent": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-subagent/-/dsh-client-ui-subagent-0.1.7-rc.2.tgz", + "integrity": "sha512-iXO910+1CQ+AMrRkrzuG6XYDH/lH3iIXIU0YvEt844Vmp3r3GJ+HrEQAo5E1CXgctBwQtMDmocyhIUQNlYV7iA==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-theme": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-theme/-/dsh-client-ui-theme-0.1.7-rc.2.tgz", + "integrity": "sha512-sgI50PPgGwhxXR+xEUa0zTAg80S2RaQOLsuuVdfliZPbVLjodme7/bbc8cnPQ+ZV9oU5Q3to+yXxAQByuIKjRQ==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-tool": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-tool/-/dsh-client-ui-tool-0.1.7-rc.2.tgz", + "integrity": "sha512-0HDXXfaqw6u2tB0HES+XvOO+QRKGHP2gRUU5+9gE0uDcJWawj7SXX6Dj27hJ3rztT2xAAu4W2fA2S9vjxzw8MA==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-trajectory": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-trajectory/-/dsh-client-ui-trajectory-0.1.7-rc.2.tgz", + "integrity": "sha512-RteqWWQuqj/2VGQYeNo+nKkuPPd/bv7ejJxHnMRtHEuYrnwObkBUqhZ4+7CbhZuM9m0Jv26+tg9SxIp7GzO03Q==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-user-questions": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-user-questions/-/dsh-client-ui-user-questions-0.1.7-rc.2.tgz", + "integrity": "sha512-cmZOeVspzKrD2r87xvXSGbQ7j18VwznKKkvA1lukBCpsHYfFYKdqg5vt3tbW4UJYPGa9Ch0j8qX0zpRGD0YBUg==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-workflow-run": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-workflow-run/-/dsh-client-ui-workflow-run-0.1.7-rc.2.tgz", + "integrity": "sha512-241DeEeaF8vp8vC54rrENDNA0R2n+nRRPvUCg4OYNi5MKLp0p7jgbeQ1lIcTaCuabRr1wYM0AZdoMyBaCkpaCQ==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-workspace": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-workspace/-/dsh-client-ui-workspace-0.1.7-rc.2.tgz", + "integrity": "sha512-iaf28XLl3+1WTgVMsykV8HVvGPH8VXv+CQD7Z5koejk0EJZVXtMB9nosUKX810qF+CVJKL04en9a8mOm8dIsFg==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-cmdline": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-cmdline/-/dsh-cmdline-0.1.7-rc.2.tgz", + "integrity": "sha512-IULzGaZowx/xNJkWDwGTFTEP2wdjPZ7FT1uCW0gwvQdkN4MWEsbC9B1BMCenAoER1n6rs+GqIWmj3z8celngWQ==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/cordis-plugin-loader": "~1.0.5" + } + }, + "node_modules/@deepseek-ai/dsh-command-compact": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-command-compact/-/dsh-command-compact-0.1.7-rc.2.tgz", + "integrity": "sha512-vSDXWGW9Gh7hFrCCkfdMwut2kseS6HYOD89X5X43cnIxBayofenKfnMb/ZuN+NTGIWRr74FihtAe6mg0FxTtSw==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-commands": "0.1.7-rc.2", + "@deepseek-ai/dsh-compaction": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-command-feedback": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-command-feedback/-/dsh-command-feedback-0.1.7-rc.2.tgz", + "integrity": "sha512-BczHqimHOdWQYNfpGfVtMPEBhFh1AhDia88cVDxLENfSXfaF8xUagSb2cJKXxS4iG8Xco6lz8lnnZAGOdLX2JA==", + "license": "MIT", + "peer": true, + "dependencies": { + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-anonymous-user-id": "0.1.7-rc.2", + "@deepseek-ai/dsh-commands": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-typert-protocol": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-command-goal": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-command-goal/-/dsh-command-goal-0.1.7-rc.2.tgz", + "integrity": "sha512-NSBwTXaU3eFiOjHFHdxllLE2h5CJSWBcIeKIONBMZqYW2q1myAdldTv9NHY5uPSYDQU1ew4hMt47OigpJ8Vicg==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-commands": "0.1.7-rc.2", + "@deepseek-ai/dsh-goal": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-commands": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-commands/-/dsh-commands-0.1.7-rc.2.tgz", + "integrity": "sha512-wVAHwHNDLDNBKXJZU2rHnwc+e3mhi6EuazAfJmqtbzU/ldQVEoJ9f5eXqesBcdQbRIrWQlpjfjdlw3nCJfK2HQ==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-util-crypto": "0.1.7-rc.2", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-attachment": "0.1.7-rc.2", + "@deepseek-ai/dsh-brand": "0.1.7-rc.2", + "@deepseek-ai/dsh-invariants": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-scope": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-typert-protocol": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-compaction": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-compaction/-/dsh-compaction-0.1.7-rc.2.tgz", + "integrity": "sha512-NOrFYDM6EdvO+UBioNcpiZ+Klv5v2xvOxLXDWKtA0rjKKW8IvW7Rui2hBnOpchsWe5So5vwBvu4lNjTdl5/2CA==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-brand": "0.1.7-rc.2", + "@deepseek-ai/dsh-commands": "0.1.7-rc.2", + "@deepseek-ai/dsh-invariants": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-compaction-basic": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-compaction-basic/-/dsh-compaction-basic-0.1.7-rc.2.tgz", + "integrity": "sha512-8I2TzEDZA9MhbjmSTanw4nM4Ud6mZTUy0Xe9Zy8oQ7GCbYpVhAe3grb5MHnpS0WYisrW1ws063Kj8hHZerdaEQ==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-util-values": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-commands": "0.1.7-rc.2", + "@deepseek-ai/dsh-compaction": "0.1.7-rc.2", + "@deepseek-ai/dsh-compaction-tool-result-pruner": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-token-meter": "0.1.7-rc.2" + }, + "peerDependenciesMeta": { + "@deepseek-ai/dsh-compaction-tool-result-pruner": { + "optional": true + } + } + }, + "node_modules/@deepseek-ai/dsh-compaction-image-offload": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-compaction-image-offload/-/dsh-compaction-image-offload-0.1.7-rc.2.tgz", + "integrity": "sha512-IraXZq6uR88RbJcxkK7vfDViIB4WCxm8Kf9s43VWoias9Tr//w0s8oHZWTfNuy8kVgpw4cBze6DeExZooMALrw==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-util-values": "0.1.7-rc.2" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-compaction": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-compaction-tool-result-pruner": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-compaction-tool-result-pruner/-/dsh-compaction-tool-result-pruner-0.1.7-rc.2.tgz", + "integrity": "sha512-ih1YpOuUNTZQR1epsZ2SgfT7+VsBrTBypl37DTbCqWZo3nO7LvTHILvdd+Kd2B/DkV1gKpXpBt4H493UNtXJOw==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-util-values": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-compaction": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-token-meter": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-config-editor": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-config-editor/-/dsh-config-editor-0.1.7-rc.2.tgz", + "integrity": "sha512-UgNqOUqI9ZNABnb7TvoJ9d6EbaScVymL54YV/s8rU06cl4bTKuz/ahA8uLclyutCoRANkwh/eMiA+othLyhooA==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-atomic-write": "0.1.7-rc.2", + "js-yaml": "^4.1.0", + "yaml": "^2.8.1" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/cordis-plugin-include": "~1.0.9", + "@deepseek-ai/cordis-plugin-loader": "~1.0.5", + "@deepseek-ai/dsh-app-boot": "0.1.7-rc.2", + "@deepseek-ai/dsh-hmr": "0.1.7-rc.2" + }, + "peerDependenciesMeta": { + "@deepseek-ai/dsh-hmr": { + "optional": true + } + } + }, + "node_modules/@deepseek-ai/dsh-cordis-client-runner": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-cordis-client-runner/-/dsh-cordis-client-runner-0.1.7-rc.2.tgz", + "integrity": "sha512-cYRPl4Ftu8Gwbi7gDmAB11wgRvt4hiqdkRNCLq+988jU6q7p9h6lRYpvR4G/5YodP0Bs0fSdyRaZgHrpF2LOoA==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-cordis-host-runner": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-cordis-host-runner/-/dsh-cordis-host-runner-0.1.7-rc.2.tgz", + "integrity": "sha512-Rts8lOjeJyVAkth7ezDpDPAXOjr0GHplqUz1BmWcAotErQWZGkVxJK6hqiVMlFKB24JMQwr/UWH4474iZUiZKw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-util-values": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-brand": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-scope": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-tools": "0.1.7-rc.2", + "@deepseek-ai/dsh-typert-protocol": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-credentials": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-credentials/-/dsh-credentials-0.1.7-rc.2.tgz", + "integrity": "sha512-Zi5MCL+o2bphuvWcfFsaRmg6eIafkjCa758+DVB2ac2tt5hzXLoKhwSku4YVhvhZYJan8TP87abIzyGr5z1X5g==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-brand": "0.1.7-rc.2" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-invariants": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-credentials-local": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-credentials-local/-/dsh-credentials-local-0.1.7-rc.2.tgz", + "integrity": "sha512-pl3PRh+y9iLpwxZZmtxZzRTahiNGO6xNVC9nsN9h3eLu0ECetUkqRl2ByxLY/3ZcahSRzsad4eHjwKH5Prt7/w==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4", + "chokidar": "^4.0.3", + "yaml": "^2.9.0" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-atomic-write": "0.1.7-rc.2", + "@deepseek-ai/dsh-credentials": "0.1.7-rc.2", + "@deepseek-ai/dsh-home-paths": "0.1.7-rc.2", + "@deepseek-ai/dsh-launch-environment": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-deepseek-account": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-deepseek-account/-/dsh-deepseek-account-0.1.7-rc.2.tgz", + "integrity": "sha512-nJ142OEH8XPF2j9vCLBba9aQAQbO/eb3kfkZr/YdtXr3soYeConxveNFFXgIVLqevItKJReo0sa0P0l5E1xZiQ==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-brand": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2" + }, + "peerDependenciesMeta": { + "@deepseek-ai/dsh-agent": { + "optional": true + } + } + }, + "node_modules/@deepseek-ai/dsh-deepseek-account-platform": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-deepseek-account-platform/-/dsh-deepseek-account-platform-0.1.7-rc.2.tgz", + "integrity": "sha512-ppvmTdigUDtljfuZZkPkElscjOB3EA9C2hpgBMY1Y58j7F/8pYAD1OCiuFot4C+lb6uk90NbZE2M3th7NxP5mQ==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-authorization": "0.1.7-rc.2", + "@deepseek-ai/dsh-credentials": "0.1.7-rc.2", + "@deepseek-ai/dsh-deepseek-account": "0.1.7-rc.2", + "@deepseek-ai/dsh-host-webserver": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-deepseek-llm-api-extensions": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-deepseek-llm-api-extensions/-/dsh-deepseek-llm-api-extensions-0.1.7-rc.2.tgz", + "integrity": "sha512-RCUarjaYUQDuyQzQ47qDyngMKbOkALMa7P8i3jZd5SsGK67eZd49O72ClFGd/r6CeO7JNQK4s1/W+C0orosUuw==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-deque": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-deque/-/dsh-deque-0.1.7-rc.2.tgz", + "integrity": "sha512-a4zFfo+D7+BhV7hQzFQgIMtD65Hm3DQTLGRRd1EkI2O5TjrvBgVHOanyGJYK6VAgj07eIxIira8ws1KKNbbT+w==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-experimental-agent-team": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-experimental-agent-team/-/dsh-experimental-agent-team-0.1.7-rc.2.tgz", + "integrity": "sha512-N3/M+Wc1p50jKNF4fxJIP4m3iL4T4MiZelpIneVwwxVxoCTPlzdz0E5tKyN+p5x318aOxsibsa98D4N13Q4uoA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-brand": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-invariants": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-persistence": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-projection": "0.1.7-rc.2", + "@deepseek-ai/dsh-subagent": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-experimental-agent-team-profile": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-experimental-agent-team-profile/-/dsh-experimental-agent-team-profile-0.1.7-rc.2.tgz", + "integrity": "sha512-WdcCnmEflVTWK4HRtJGnLDZxZFd00cCqB2kNc80XA60SB71/r+umYU2JACtTbslLlThD5OzADG0c/3LAYuW1vQ==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-experimental-agent-team": "0.1.7-rc.2", + "@deepseek-ai/dsh-experimental-client-ui-agent-team": "0.1.7-rc.2", + "@deepseek-ai/dsh-experimental-tool-agent-team": "0.1.7-rc.2" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-experimental-api-speech-to-text": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-experimental-api-speech-to-text/-/dsh-experimental-api-speech-to-text-0.1.7-rc.2.tgz", + "integrity": "sha512-OWvVO1iG1ypxR3XKvAU8HH3To7NU9dt5AAI+g9Xb9QJ2AIbmI2qXklbm3vvrYaJyxW24p9pnEkuwuTJWcIBbWQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-experimental-speech-to-text": "0.1.7-rc.2", + "@deepseek-ai/dsh-typert-protocol": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-experimental-auto-review": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-experimental-auto-review/-/dsh-experimental-auto-review-0.1.7-rc.2.tgz", + "integrity": "sha512-qycXHx0+rxiu15vN3d5VOK5mIsKxk6yFteISHaMrEd7A+Y7aLAnJBhnKtBV0GObEfpuUjAsEbB0/N6htIxSMLA==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-util-values": "0.1.7-rc.2" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-agent-instructions": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-permission-presets": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-tools": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-experimental-client-ui-agent-team": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-experimental-client-ui-agent-team/-/dsh-experimental-client-ui-agent-team-0.1.7-rc.2.tgz", + "integrity": "sha512-K74WkKbc5ctqjVYxO3HHdBnINWvlVM39aMFIZntIH7PMK9HVRzzD0D51keigWAZhdvUVWwcX1IO7VW5ALg9TPg==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-api-session-controller": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-locale": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-conversation": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-primitives": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-renderer": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-slots": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-workspace": "0.1.7-rc.2", + "@deepseek-ai/dsh-experimental-agent-team": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-experimental-client-ui-voice-input": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-experimental-client-ui-voice-input/-/dsh-experimental-client-ui-voice-input-0.1.7-rc.2.tgz", + "integrity": "sha512-JuFJgrCoG+4gePKZlJjmCAgZN4l7TGMT7xnGEY8jr4cnKHjdyB5buMRGqNo6gF6Bu6UCJVtc1+oqsFuCz2vbHA==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-api-gateway": "0.1.7-rc.2", + "@deepseek-ai/dsh-api-remotes": "0.1.7-rc.2", + "@deepseek-ai/dsh-api-session-controller": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-locale": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-store": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-conversation": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-plugin-manager": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-primitives": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-renderer": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-slots": "0.1.7-rc.2", + "@deepseek-ai/dsh-experimental-api-speech-to-text": "0.1.7-rc.2", + "@deepseek-ai/dsh-experimental-speech-to-text": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-typert-protocol": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-experimental-speech-to-text": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-experimental-speech-to-text/-/dsh-experimental-speech-to-text-0.1.7-rc.2.tgz", + "integrity": "sha512-AYsU6xhb/Y2lBoHU+qBB4X3NKYnCOmJhP6lLhh8xl2hAxY8UPcOKMeUFatTQtMUXD3lL2flg4UwXM7vJAApj0Q==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-brand": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/cordis-plugin-loader": "~1.0.5", + "@deepseek-ai/dsh-settings": "0.1.7-rc.2" + }, + "peerDependenciesMeta": { + "@deepseek-ai/cordis-plugin-loader": { + "optional": true + } + } + }, + "node_modules/@deepseek-ai/dsh-experimental-speech-to-text-sensevoice": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-experimental-speech-to-text-sensevoice/-/dsh-experimental-speech-to-text-sensevoice-0.1.7-rc.2.tgz", + "integrity": "sha512-SVg4+Bz1QnP4bRr6lBmV39fxyDPiy6mg5f9loAM+RUI4mC6suKjDnt3A0VLhJ5TTIziFe5r5tfPRsCH6Ts2zzg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-timeout": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4", + "sherpa-onnx-node": "1.13.8", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-experimental-speech-to-text": "0.1.7-rc.2", + "@deepseek-ai/dsh-subprocess": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-experimental-tool-agent-team": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-experimental-tool-agent-team/-/dsh-experimental-tool-agent-team-0.1.7-rc.2.tgz", + "integrity": "sha512-WQ4NkWo6c1WPv5D6VP3wIhWyEkFk5+ShsBk+ecwhzNKWi4Q8v92rqwoIBy0xtPiCkHdVcrjlD37H3PS8oAUQYQ==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-experimental-agent-team": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-system-prompt": "0.1.7-rc.2", + "@deepseek-ai/dsh-tools": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-experimental-voice-input-bundle": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-experimental-voice-input-bundle/-/dsh-experimental-voice-input-bundle-0.1.7-rc.2.tgz", + "integrity": "sha512-IoaMPoVxuTFx+SRrXWeuClKCBlpeQGUKFiNozmRLM63/EzZmTqB8yLxzSkHtL3TYfnx6gMU6m31RRKUYbdjimQ==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-experimental-api-speech-to-text": "0.1.7-rc.2", + "@deepseek-ai/dsh-experimental-client-ui-voice-input": "0.1.7-rc.2", + "@deepseek-ai/dsh-experimental-speech-to-text": "0.1.7-rc.2", + "@deepseek-ai/dsh-experimental-speech-to-text-sensevoice": "0.1.7-rc.2" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-file-reference": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-file-reference/-/dsh-file-reference-0.1.7-rc.2.tgz", + "integrity": "sha512-kjtnauKgQSnoQ6acOhVrRFFsIiIb2NnLXV08Inow34is6oANH0Ti2EqJmOVFlt/7mqcEYHxBvJUbh/DY6h/vmQ==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-file-reference-local": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-file-reference-local/-/dsh-file-reference-local-0.1.7-rc.2.tgz", + "integrity": "sha512-DRsbWY4NCWIeyhnnGpbGKsbiXf0m/FB51SI/4xdGL/TLZbZjIdROtBzXthL2IYG62QDtQMzEVs+jsg9zaBAuUw==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-file-reference": "0.1.7-rc.2", + "@deepseek-ai/dsh-system-prompt": "0.1.7-rc.2", + "@deepseek-ai/dsh-tools": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-fs": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-fs/-/dsh-fs-0.1.7-rc.2.tgz", + "integrity": "sha512-3ES1FKLM4asLvFS+yBcatzRNGINfUx/Cl+x+JzGhEK5QWX3aCxpH8Oa9Z4T9k0McBStWg1CTfHziRR8trHPYyw==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-brand": "0.1.7-rc.2", + "@deepseek-ai/dsh-invariants": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-sandbox": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-fs-local": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-fs-local/-/dsh-fs-local-0.1.7-rc.2.tgz", + "integrity": "sha512-7XlSqUY2nk1S0GQNU7f7rimhBnYZYdtOtW5xr3oApHuaiWyP2Qj9D2Y0Xq5+jyFz7kQ9hoNHq3gA+g5IK1Dofw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4", + "chokidar": "^4.0.3", + "koffi": "^3.1.0" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-fs": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-fs-observation-policy": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-fs-observation-policy/-/dsh-fs-observation-policy-0.1.7-rc.2.tgz", + "integrity": "sha512-htzbOb2krclujHcSMu4eLiMxE1zl1fNlQylN7RReU3ais5J08pJPzenNLH+M18zecRWr7IljxI/mrGAXlH0Upw==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-fs": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-fs-sandbox": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-fs-sandbox/-/dsh-fs-sandbox-0.1.7-rc.2.tgz", + "integrity": "sha512-E1f+stkuTefmMeOQ1lEQJum42igtOeg+V5J5P92dZp5QObt3VT1EcIkywe9zFHtEJ+jExVzACLIxj8XNmisiiA==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-fs": "0.1.7-rc.2", + "@deepseek-ai/dsh-fs-local": "0.1.7-rc.2", + "@deepseek-ai/dsh-sandbox": "0.1.7-rc.2", + "@deepseek-ai/dsh-sandbox-policy": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-goal": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-goal/-/dsh-goal-0.1.7-rc.2.tgz", + "integrity": "sha512-9ULU4IMWGBkUTzOoQC+3tuyy7J/oFq5J05rv2PyxpLZyJGf5lRRDfhNjm/PAfbKzuXAPGEB2aOQ8eAdZ1RCnHA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-brand": "0.1.7-rc.2", + "@deepseek-ai/dsh-invariants": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-scope": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-projection": "0.1.7-rc.2", + "@deepseek-ai/dsh-typert-protocol": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-goal-round-driver": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-goal-round-driver/-/dsh-goal-round-driver-0.1.7-rc.2.tgz", + "integrity": "sha512-pIIDOhEGMr/BMLsRa+L7Q+qZgQupeAcT5wA7z3GEoZB/ABH4KTsepg0BZadZyuGEen4t0x6AG2pK2K+evonJLQ==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-goal": "0.1.7-rc.2", + "@deepseek-ai/dsh-invariants": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-headless": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-headless/-/dsh-headless-0.1.7-rc.2.tgz", + "integrity": "sha512-3M2QA46ATJNwdz2AYB5MpQMZot1ehwH36AqRBU2mNu9Iv8kC9cjsSST0eBnk1EyjF4jTqh5h6PZAkgLOBOExyA==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-brand": "0.1.7-rc.2", + "@deepseek-ai/dsh-cmdline": "0.1.7-rc.2", + "@deepseek-ai/dsh-util-values": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4", + "commander": "^15.0.0" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/cordis-plugin-loader": "~1.0.5", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-agent-default-model": "0.1.7-rc.2", + "@deepseek-ai/dsh-fs": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-query": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-hmr": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-hmr/-/dsh-hmr-0.1.7-rc.2.tgz", + "integrity": "sha512-+Zz8Fz9wwaOQ1h2KYc8BHPsCNIifRZVb+mPMRgl8N2ECByO8ZlarN0He4NjwWR9T/zgMEOvvhRf1aumPLs6TIw==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.0", + "@deepseek-ai/schemastery": "~3.18.4", + "chokidar": "^4.0.3", + "picomatch": "^4.0.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/cordis-plugin-include": "~1.0.9", + "@deepseek-ai/cordis-plugin-loader": "~1.0.5", + "@deepseek-ai/cordis-plugin-timer": "~1.1.6", + "@deepseek-ai/dsh-app-boot": "0.1.7-rc.2", + "@deepseek-ai/dsh-cmdline": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-home-paths": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-home-paths/-/dsh-home-paths-0.1.7-rc.2.tgz", + "integrity": "sha512-LafnefS9IttUziet9cQfCNfyBVce+aCPBGFrZGxsQJZYZXvkDQH94QHzDIxOIJfwwHuKC36fP5riD+Eajpx5jw==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-hook-protocol": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-hook-protocol/-/dsh-hook-protocol-0.1.7-rc.2.tgz", + "integrity": "sha512-MoTAuM84wpxOQX5N56PQFgWYS8mqxjJ7CbIvP+3KSa//+z6Ob7MWQAwi36S5VLGvywFMbzxpImCz9EawRuE5fQ==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-invariants": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-shell": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-hooks-claude-code": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-hooks-claude-code/-/dsh-hooks-claude-code-0.1.7-rc.2.tgz", + "integrity": "sha512-TJx0FUFm6GZEjJKz4o8HiuBfk3qbOEAAEoIfEIy0Kgo2JDWgl04o/c7ZOf9KgurdZt/WpfVt2dG6nEQg6UJ7mA==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-hook-protocol": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-projection": "0.1.7-rc.2", + "@deepseek-ai/dsh-subagent": "0.1.7-rc.2", + "@deepseek-ai/dsh-tools": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-hooks-codex": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-hooks-codex/-/dsh-hooks-codex-0.1.7-rc.2.tgz", + "integrity": "sha512-xsGEcQOvt42vdkCQtJgV4/w136EJKALjs7TkljeeWKkQKJyEWvPjaUV3vJtJetd/wdqcv2vof1eNxfRzRybIRQ==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-hook-protocol": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-projection": "0.1.7-rc.2", + "@deepseek-ai/dsh-tools": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-host-directory-picker": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-host-directory-picker/-/dsh-host-directory-picker-0.1.7-rc.2.tgz", + "integrity": "sha512-J/by0v0yRI5LHPPaHCokDXEJNKNEPCaDziJueGI+fxpXfXwFvpoHp3hjwdWiN+bLPDdZL6DSQLh1evC46wobtQ==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-host-directory-picker-auto": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-host-directory-picker-auto/-/dsh-host-directory-picker-auto-0.1.7-rc.2.tgz", + "integrity": "sha512-o2YCHr3uioc4HyB/s24gKDr1ZktEAHsuhqQocfTWPLivwe2Uozdvh/Kjq1LU9pBNeBGTHzUvtkhgVMTCpQXedg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-launch-environment": "0.1.7-rc.2" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/cordis-plugin-loader": "~1.0.5", + "@deepseek-ai/dsh-client-ui-directory-picker-browse": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-directory-picker-native": "0.1.7-rc.2", + "@deepseek-ai/dsh-host-directory-picker-browse": "0.1.7-rc.2", + "@deepseek-ai/dsh-host-directory-picker-native": "0.1.7-rc.2", + "@deepseek-ai/dsh-host-webserver": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-host-directory-picker-browse": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-host-directory-picker-browse/-/dsh-host-directory-picker-browse-0.1.7-rc.2.tgz", + "integrity": "sha512-XV+iP2MXbeQ6nRKCiTGLE7ntDX6/SbJJ7hK0f8UO7WbC6TrbaCWtLTiCQ3xgqC314Zc3YpOVZPs7LGUS3P013w==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-host-directory-picker": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-host-directory-picker-native": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-host-directory-picker-native/-/dsh-host-directory-picker-native-0.1.7-rc.2.tgz", + "integrity": "sha512-97pxHwk3bhMRgBlTH36W3fEyLI6JeuG6oaKLEVCyS8xduhAeWGVAv3M3JxmeTAQsKvIxaqwlVJ18bgHc7Qw6tQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-host-directory-picker": "0.1.7-rc.2", + "@deepseek-ai/dsh-native-command": "0.1.7-rc.2", + "koffi": "^3.1.0" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-host-frontend-static": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-host-frontend-static/-/dsh-host-frontend-static-0.1.7-rc.2.tgz", + "integrity": "sha512-G1DHZONOfyxiPyvEMyJns3EFPANz5svjxh+gRK0PDC7WJv6fivvJ0agR3D2wa0RIRhQLML7FMw9C1MD2Hzrfxw==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-client-connection": "0.1.7-rc.2", + "@deepseek-ai/dsh-host-webserver": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-host-open-in-app": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-host-open-in-app/-/dsh-host-open-in-app-0.1.7-rc.2.tgz", + "integrity": "sha512-bozNEbEAeCmk6fny4qaDioLYLvX9xLmHPYVAeXdXoLRML7qiwIP88BbH8NxpibreCcFKFi9uMpx/GdoiwK2bMw==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-launch-environment": "0.1.7-rc.2", + "@deepseek-ai/dsh-native-command": "0.1.7-rc.2", + "@deepseek-ai/dsh-subprocess": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-host-plugin-inventory": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-host-plugin-inventory/-/dsh-host-plugin-inventory-0.1.7-rc.2.tgz", + "integrity": "sha512-krS/FKI7cacoUtjpIaZnFQZy4cM2DnshsP//jafFdC1LyKyh5gG97MPmQ37jRM5Gm4VDJfDj3ojqWzx3BrP1sQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/cordis-plugin-loader": "~1.0.5", + "@deepseek-ai/dsh-agent-preset-registry": "0.1.7-rc.2", + "@deepseek-ai/dsh-brand": "0.1.7-rc.2", + "@deepseek-ai/dsh-typert-protocol": "0.1.7-rc.2" + }, + "peerDependenciesMeta": { + "@deepseek-ai/dsh-agent-preset-registry": { + "optional": true + } + } + }, + "node_modules/@deepseek-ai/dsh-host-webserver": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-host-webserver/-/dsh-host-webserver-0.1.7-rc.2.tgz", + "integrity": "sha512-0ex5NsJFvpqchfnar/IPtNOG5Tx7PmtUO3/zVptT4MJs5OOrvtjNYHpZ6DGntmnpupgXnci1cUsQJIfG3D+U+Q==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4", + "compression": "^1.8.1", + "negotiator": "^1.0.0" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-http-proxy": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-http-proxy/-/dsh-http-proxy-0.1.7-rc.2.tgz", + "integrity": "sha512-sG0bj5U6CX54BLWizf/6QtqYgtbv56qSe7wW/0B+DxmN+TtOr4s+6TRWLLMUxH2SCR9th20SwiEDHvuLf17Q7Q==", + "license": "MIT", + "peer": true, + "dependencies": { + "undici": "^8.10.0" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-invariants": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-invariants/-/dsh-invariants-0.1.7-rc.2.tgz", + "integrity": "sha512-GY2lY2TUUH2Qk1ZnrB3Q5+lXSh4webn1kbt5nQfhojVmNbist/f3dJC8JJa7XXOUNvqAgqRN9IZ4egbDZ9LLxQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-jobs": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-jobs/-/dsh-jobs-0.1.7-rc.2.tgz", + "integrity": "sha512-bzbdcQ1dzCAGjYDs2J+YiwG58cDpASecJ4N6euUJNl0CCmnDETwCUhCpyMKDKCWcExdG3XcHmCjaCnL2hZIC0g==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-brand": "0.1.7-rc.2", + "@deepseek-ai/dsh-invariants": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-workspace": "0.1.7-rc.2" + }, + "peerDependenciesMeta": { + "@deepseek-ai/dsh-workspace": { + "optional": true + } + } + }, + "node_modules/@deepseek-ai/dsh-jobs-local": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-jobs-local/-/dsh-jobs-local-0.1.7-rc.2.tgz", + "integrity": "sha512-DE0HLEuI15Vw1ncXLDESUIBTdWhrXgKWV3g/jupEGCwmm6GCqC9W9cjJPmbLP7JQGB7UPkui5DrIft+8MYL6Nw==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-jobs": "0.1.7-rc.2", + "@deepseek-ai/dsh-scope": "0.1.7-rc.2", + "@deepseek-ai/dsh-timeout": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-launch-environment": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-launch-environment/-/dsh-launch-environment-0.1.7-rc.2.tgz", + "integrity": "sha512-i8U15ebCS4tWtL2mnuhfl0h5XXBagtbiGO63/OMeHpfWb5sHUvTYBNWTDxmlMjLDkTNQgPsXmRl0UrbWKCSJwg==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-lazy-require": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-lazy-require/-/dsh-lazy-require-0.1.7-rc.2.tgz", + "integrity": "sha512-tJGmGfJzr+zXK9ZoDLFF9r8ZI5X5ARz945rl+tHTEDcgtm2NavkRbx4qjOg3kXoBasYGXtp18RGlBB2rWT7vGQ==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-llm": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-llm/-/dsh-llm-0.1.7-rc.2.tgz", + "integrity": "sha512-hNT3ovFnbNDQ8g544bh2Q9ORX40aI6Y+jhjer1lETeHS4g0jTjqUUVfARCTA7uAFvHucSBg2rFgbisIktmJCxw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-brand": "0.1.7-rc.2", + "@deepseek-ai/dsh-timeout": "0.1.7-rc.2", + "@deepseek-ai/dsh-typert-protocol": "0.1.7-rc.2", + "@deepseek-ai/dsh-util-crypto": "0.1.7-rc.2", + "@deepseek-ai/dsh-util-values": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-llm-deepseek": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-llm-deepseek/-/dsh-llm-deepseek-0.1.7-rc.2.tgz", + "integrity": "sha512-bFHhDxegsawOI2uqGHAbPoYiRM9Lpq5g31TeqVYAMcMCpa5qbk1wGUsAzCP+eJM/Sbb19VHJpsJj/Op6UbBESQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/cosmokit": "~1.8.5", + "@deepseek-ai/dsh-brand": "0.1.7-rc.2", + "@deepseek-ai/dsh-util-values": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4", + "eventsource-parser": "^3.1.0" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/cordis-plugin-loader": "~1.0.5", + "@deepseek-ai/dsh-anonymous-user-id": "0.1.7-rc.2", + "@deepseek-ai/dsh-atomic-write": "0.1.7-rc.2", + "@deepseek-ai/dsh-attachment": "0.1.7-rc.2", + "@deepseek-ai/dsh-deepseek-llm-api-extensions": "0.1.7-rc.2", + "@deepseek-ai/dsh-fs": "0.1.7-rc.2", + "@deepseek-ai/dsh-home-paths": "0.1.7-rc.2", + "@deepseek-ai/dsh-launch-environment": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-timeout": "0.1.7-rc.2" + }, + "peerDependenciesMeta": { + "@deepseek-ai/cordis-plugin-loader": { + "optional": true + } + } + }, + "node_modules/@deepseek-ai/dsh-llm-deepseek-account": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-llm-deepseek-account/-/dsh-llm-deepseek-account-0.1.7-rc.2.tgz", + "integrity": "sha512-Yq3oVAYih7b+kvb4S82fqcKkOmVtoT1WoxCQ7Y27SYbir2gO6g/QqVk3CsLS0Xqnq1CwBAH4xU3r2m+siq2o6A==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/cordis-plugin-loader": "~1.0.5", + "@deepseek-ai/dsh-deepseek-account": "0.1.7-rc.2", + "@deepseek-ai/dsh-launch-environment": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm-deepseek": "0.1.7-rc.2" + }, + "peerDependenciesMeta": { + "@deepseek-ai/cordis-plugin-loader": { + "optional": true + }, + "@deepseek-ai/dsh-deepseek-account": { + "optional": true + } + } + }, + "node_modules/@deepseek-ai/dsh-llm-deepseek-api-key": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-llm-deepseek-api-key/-/dsh-llm-deepseek-api-key-0.1.7-rc.2.tgz", + "integrity": "sha512-Djc3LE0fZ73U+T75P81obElk9c5Fd7G25uNubtcFcSDKuo+tuJi8qEqvSTScCQVvTAsCPRQh7Ti5YjPKQdO29g==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/cordis-plugin-loader": "~1.0.5", + "@deepseek-ai/dsh-credentials": "0.1.7-rc.2", + "@deepseek-ai/dsh-launch-environment": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm-deepseek": "0.1.7-rc.2" + }, + "peerDependenciesMeta": { + "@deepseek-ai/cordis-plugin-loader": { + "optional": true + } + } + }, + "node_modules/@deepseek-ai/dsh-llm-pi-ai": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-llm-pi-ai/-/dsh-llm-pi-ai-0.1.7-rc.2.tgz", + "integrity": "sha512-pkRHMAAu9v7Ko2yo+UzZmGg0rNlVymF3KjTch/z6kT9BfIxpI4dtNDkeibamszRvjqz3Oywm8uGm+Iwz0zW2sA==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-brand": "0.1.7-rc.2", + "@deepseek-ai/dsh-util-values": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4", + "@earendil-works/pi-ai": "^0.85.1" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/cordis-plugin-loader": "~1.0.5", + "@deepseek-ai/dsh-attachment": "0.1.7-rc.2", + "@deepseek-ai/dsh-authorization": "0.1.7-rc.2", + "@deepseek-ai/dsh-credentials": "0.1.7-rc.2", + "@deepseek-ai/dsh-fs": "0.1.7-rc.2", + "@deepseek-ai/dsh-launch-environment": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-timeout": "0.1.7-rc.2" + }, + "peerDependenciesMeta": { + "@deepseek-ai/cordis-plugin-loader": { + "optional": true + } + } + }, + "node_modules/@deepseek-ai/dsh-llm-retry": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-llm-retry/-/dsh-llm-retry-0.1.7-rc.2.tgz", + "integrity": "sha512-t3RP8ftkHFUXPRnpUGLogKsgXykJWPDad251qk8PvOHpWw/ex6HY8GqXm5YWSgbLHpEKHz+0gR7u6MyIdpqtxA==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-brand": "0.1.7-rc.2", + "@deepseek-ai/dsh-invariants": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-projection": "0.1.7-rc.2", + "@deepseek-ai/dsh-timeout": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-mcp-client": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-mcp-client/-/dsh-mcp-client-0.1.7-rc.2.tgz", + "integrity": "sha512-AUEhxqk8rPl41cIfi07/9dbIKKDOT0LWifX3K7xRki57X3Hd3XCT4PRiYekqt9sOJ7863d2t/knWk4pryieZtQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-util-values": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4", + "@modelcontextprotocol/client": "2.0.0" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-attachment": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-mcp-resources": "0.1.7-rc.2", + "@deepseek-ai/dsh-scope": "0.1.7-rc.2", + "@deepseek-ai/dsh-subprocess": "0.1.7-rc.2", + "@deepseek-ai/dsh-system-prompt": "0.1.7-rc.2", + "@deepseek-ai/dsh-timeout": "0.1.7-rc.2", + "@deepseek-ai/dsh-tools": "0.1.7-rc.2" + }, + "peerDependenciesMeta": { + "@deepseek-ai/dsh-mcp-resources": { + "optional": true + }, + "@deepseek-ai/dsh-system-prompt": { + "optional": true + } + } + }, + "node_modules/@deepseek-ai/dsh-mcp-resources": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-mcp-resources/-/dsh-mcp-resources-0.1.7-rc.2.tgz", + "integrity": "sha512-V6G8Hdmh5gtvzzvlV8RgM43LbTOnoQnfmMdd8dBNoHKZLvv0XvcpmqZWNZVqpDP8NUx3/PGjo9SQK7R3gwROYg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-util-values": "0.1.7-rc.2" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-scope": "0.1.7-rc.2", + "@deepseek-ai/dsh-system-prompt": "0.1.7-rc.2", + "@deepseek-ai/dsh-tools": "0.1.7-rc.2" + }, + "peerDependenciesMeta": { + "@deepseek-ai/dsh-system-prompt": { + "optional": true + } + } + }, + "node_modules/@deepseek-ai/dsh-message-feedback": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-message-feedback/-/dsh-message-feedback-0.1.7-rc.2.tgz", + "integrity": "sha512-XYgpXXr9iqgiuCzpFzdoNR55tT+kyZ7xEYC0DuxdcK9JNHpQdQcckOZkJU8+MzJ1FjoYGijTSV+y5jSuhX2UlQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-brand": "0.1.7-rc.2", + "@deepseek-ai/dsh-command-feedback": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-persistence": "0.1.7-rc.2", + "@deepseek-ai/dsh-typert-protocol": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-native-command": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-native-command/-/dsh-native-command-0.1.7-rc.2.tgz", + "integrity": "sha512-XObRF7I6fVAXWSWvAK0HVp+nT9ZLR6g6mPss6j2ciovW6wBiAm71O2wzi2S1YqmQXYNaGwvudolqJyMRtCSCxg==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-office-to-pdf": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-office-to-pdf/-/dsh-office-to-pdf-0.1.7-rc.2.tgz", + "integrity": "sha512-4FQi4gTiSgPg6oCYcYv5eT8hewoOK1Y3sYBAMGmYwBcJXuy7e37qOGOAu9bKaowhTAc1bi0yofdNruBm7595eg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-brand": "0.1.7-rc.2", + "@deepseek-ai/dsh-typert-protocol": "0.1.7-rc.2", + "@deepseek-ai/libreoffice-kit": "^0.1.1", + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-output-retention": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-output-retention/-/dsh-output-retention-0.1.7-rc.2.tgz", + "integrity": "sha512-hQodzFmVrANIiDw3i662XkA++Jmj0TCFW2aG3/9RYpiR+wkxmEx1bmWv5MuTX9t5QZ7vdyaAUn3t8c11OGyxhw==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-package-manifest": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-package-manifest/-/dsh-package-manifest-0.1.7-rc.2.tgz", + "integrity": "sha512-oS6OD0emk+HD25B8FomvuAkqCg0aEooQEs/Tk7sZj9ww0uMXwYtU69Wnh4rFBQzp8pkZBYv9HeIzw67iBwDH0w==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-permission-presets": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-permission-presets/-/dsh-permission-presets-0.1.7-rc.2.tgz", + "integrity": "sha512-ci5LzPdhsaxUSMq43a1LOF5wixuFWECf3BzrUSlnOHp4q+cssd6Pf50LADe/CukHJkP7yf+ns8EXhT20iDwvrg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-commands": "0.1.7-rc.2", + "@deepseek-ai/dsh-invariants": "0.1.7-rc.2", + "@deepseek-ai/dsh-sandbox": "0.1.7-rc.2", + "@deepseek-ai/dsh-sandbox-policy": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-projection": "0.1.7-rc.2", + "@deepseek-ai/dsh-shell": "0.1.7-rc.2", + "@deepseek-ai/dsh-typert-protocol": "0.1.7-rc.2", + "@deepseek-ai/dsh-user-approval": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-persona": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-persona/-/dsh-persona-0.1.7-rc.2.tgz", + "integrity": "sha512-1PceaaPx/xlZpCOJmcHVs2nAxdtgGTNo4mpytrmeEstxxc1ZEno7AoDKeTuZcnC4HIdSXBsTZHTWndNUW+SeDQ==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-system-prompt": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-plan-mode": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-plan-mode/-/dsh-plan-mode-0.1.7-rc.2.tgz", + "integrity": "sha512-Lj4btqbwnSaXC2mQkk8VHnOPqx/HFNQyuLLB/n6RgeEjbAVDeGzDWcjEy3vpT+7K9YY1zU0FxMwp7ON3cGDX7A==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-brand": "0.1.7-rc.2", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-commands": "0.1.7-rc.2", + "@deepseek-ai/dsh-invariants": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-projection": "0.1.7-rc.2", + "@deepseek-ai/dsh-system-prompt": "0.1.7-rc.2", + "@deepseek-ai/dsh-tools": "0.1.7-rc.2", + "@deepseek-ai/dsh-user-questions": "0.1.7-rc.2" + }, + "peerDependenciesMeta": { + "@deepseek-ai/dsh-commands": { + "optional": true + } + } + }, + "node_modules/@deepseek-ai/dsh-plugin-manager": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-plugin-manager/-/dsh-plugin-manager-0.1.7-rc.2.tgz", + "integrity": "sha512-jYMEyz8fJWa099wvs7meXCOC+W9n2N5mxDL4hze/GDU+t9+brMrpnif6Ind8ENTu/RXVx8O40iCCsPcUXGwa2Q==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-app-boot": "0.1.7-rc.2", + "@deepseek-ai/dsh-atomic-write": "0.1.7-rc.2", + "@deepseek-ai/dsh-util-values": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4", + "execa": "^10.0.0", + "yaml": "^2.9.0", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/cordis-plugin-loader": "~1.0.5", + "@deepseek-ai/dsh-brand": "0.1.7-rc.2", + "@deepseek-ai/dsh-hmr": "0.1.7-rc.2", + "@deepseek-ai/dsh-host-plugin-inventory": "0.1.7-rc.2", + "@deepseek-ai/dsh-sandbox": "0.1.7-rc.2", + "@deepseek-ai/dsh-sandbox-policy": "0.1.7-rc.2", + "@deepseek-ai/dsh-subprocess": "0.1.7-rc.2", + "@deepseek-ai/dsh-tools": "0.1.7-rc.2", + "@deepseek-ai/dsh-typert-protocol": "0.1.7-rc.2", + "@deepseek-ai/dsh-user-approval": "0.1.7-rc.2" + }, + "peerDependenciesMeta": { + "@deepseek-ai/dsh-hmr": { + "optional": true + }, + "@deepseek-ai/dsh-user-approval": { + "optional": true + } + } + }, + "node_modules/@deepseek-ai/dsh-plugin-package-inventory-deepseek": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-plugin-package-inventory-deepseek/-/dsh-plugin-package-inventory-deepseek-0.1.7-rc.2.tgz", + "integrity": "sha512-Y+3VG3feOpjrwFupkr6jAncASs4As82VswGclr7FzqnzGz6GS2YIlALe3EaQ4sBygN1gE3cnXPFLFUhFXOzEtw==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-brand": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/cordis-plugin-loader": "~1.0.5", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-agent-preset-registry": "0.1.7-rc.2", + "@deepseek-ai/dsh-deepseek-llm-api-extensions": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2" + }, + "peerDependenciesMeta": { + "@deepseek-ai/dsh-agent-preset-registry": { + "optional": true + } + } + }, + "node_modules/@deepseek-ai/dsh-ptc-runtime": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-ptc-runtime/-/dsh-ptc-runtime-0.1.7-rc.2.tgz", + "integrity": "sha512-zRFwSSUgTpKuFQTVwnuNO4067Gyi//4C4RRLaUntXaHkZv3z1S07f1fTaYwX4+ubIIAuAVeEsczxf6tPgZ8P5g==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-sandbox": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-ptc-runtime-node": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-ptc-runtime-node/-/dsh-ptc-runtime-node-0.1.7-rc.2.tgz", + "integrity": "sha512-E+c60QE0Lh4GCw7yDkvO56E17uRqbiT1ehJxdmFMmpu7hg3wbTT4rNB+w6qVsy5RUs8LSW7bsoSIk9ibW4R9ow==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-util-values": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-fs": "0.1.7-rc.2", + "@deepseek-ai/dsh-ptc-runtime": "0.1.7-rc.2", + "@deepseek-ai/dsh-sandbox": "0.1.7-rc.2", + "@deepseek-ai/dsh-sandbox-policy": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-subprocess": "0.1.7-rc.2", + "@deepseek-ai/dsh-timeout": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-pwsh-local": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-pwsh-local/-/dsh-pwsh-local-0.1.7-rc.2.tgz", + "integrity": "sha512-OJlGS7JLJe5CcLMvVdbxryS6bKW5pfYN2emIeTYhSu+tBsKAiah8kdD+2EOwC0XMq24NcwgKO7xlNmS8oIrurQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-shell": "0.1.7-rc.2", + "@deepseek-ai/dsh-subprocess": "0.1.7-rc.2", + "@deepseek-ai/dsh-timeout": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-pwsh-sandbox": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-pwsh-sandbox/-/dsh-pwsh-sandbox-0.1.7-rc.2.tgz", + "integrity": "sha512-c3kXLNhf8fNL7nt8NfJwcHU0jPvRiy6IPF+DHtT/Tp7+NhytHwj8vR3Ln7GIwsXGNU2hJbaD63S2IStjWLaylQ==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-pwsh-local": "0.1.7-rc.2", + "@deepseek-ai/dsh-sandbox": "0.1.7-rc.2", + "@deepseek-ai/dsh-sandbox-policy": "0.1.7-rc.2", + "@deepseek-ai/dsh-shell": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-repeat-tool-reminder": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-repeat-tool-reminder/-/dsh-repeat-tool-reminder-0.1.7-rc.2.tgz", + "integrity": "sha512-tuG5xgqXth+CfNJiEMhsW+HTXfy14vMkuKx+J+47792P9AdxHr/a/Gi8qj6Err7TRU+Tz+d/VdzfsY+6+oWkkQ==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-tools": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-sandbox": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-sandbox/-/dsh-sandbox-0.1.7-rc.2.tgz", + "integrity": "sha512-7aP893mtTvnuZfCKD6hUN5gYchi6Wogn4W3mg/rGMvogmhbWgrCs00boJx/eHK4KvVJmEW1e8kO5N+GtsesptA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-util-values": "0.1.7-rc.2" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-sandbox-local": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-sandbox-local/-/dsh-sandbox-local-0.1.7-rc.2.tgz", + "integrity": "sha512-Xfyj+z5QZbbAU3nGU5JMpoJpL+mHkNCueMO8nzbBPiDvJBNeHvNefEvKmBRgtQmaxeHrpG9NRU6P/81KfqajlA==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-sandbox-windows-acl": "0.1.7-rc.2", + "@deepseek-ai/dsh-util-values": "0.1.7-rc.2", + "@deepseek-ai/node-addon-system": "~0.1.2", + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-sandbox": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-sandbox-policy": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-sandbox-policy/-/dsh-sandbox-policy-0.1.7-rc.2.tgz", + "integrity": "sha512-pIhCaOEqYjNoKy/c7dYYgYzK+zp8/FxnEeaBA5e6fTmNROb+/qSFsC4hY3Qu+PVU9IdbH/4fa6TbT2jnqoDPQw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-invariants": "0.1.7-rc.2", + "@deepseek-ai/dsh-sandbox": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-projection": "0.1.7-rc.2", + "@deepseek-ai/dsh-system-prompt": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-sandbox-windows-acl": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-sandbox-windows-acl/-/dsh-sandbox-windows-acl-0.1.7-rc.2.tgz", + "integrity": "sha512-QOi5DSTDdEXTI2qhfx/uRZ+2zo3ssDG+r8uHWCor8Hg3VK28JICO1nWNbl3SDevvHqcKsM2oxNdwr5XTSC14jg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-lazy-require": "0.1.7-rc.2", + "@deepseek-ai/dsh-win32-process": "0.1.7-rc.2", + "koffi": "^3.1.0" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-subprocess": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-schedule": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-schedule/-/dsh-schedule-0.1.7-rc.2.tgz", + "integrity": "sha512-GR9m2V923qZkgvkEGcF/XN47hxs5By/3XahtJjqSRnqnUdMjUZ1k2C0XL4dDsluJLefrpFAK3sRx0LPJXxer3A==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4", + "@js-temporal/polyfill": "0.5.1", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-api-session-controller": "0.1.7-rc.2", + "@deepseek-ai/dsh-brand": "0.1.7-rc.2", + "@deepseek-ai/dsh-invariants": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-persistence": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-projection": "0.1.7-rc.2", + "@deepseek-ai/dsh-storage-domain": "0.1.7-rc.2", + "@deepseek-ai/dsh-tools": "0.1.7-rc.2", + "@deepseek-ai/dsh-typert-protocol": "0.1.7-rc.2", + "@deepseek-ai/dsh-workspace": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-scope": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-scope/-/dsh-scope-0.1.7-rc.2.tgz", + "integrity": "sha512-rk/OM5ej6/V8pCNczEqQ3BkKx3DuPeFGzNUsEZo8hF+tnkF/EhsxMWSXC/yP/uLKeNkSsVHzjFpaQR0qr0J3gQ==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-invariants": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-sdk-app": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-sdk-app/-/dsh-sdk-app-0.1.7-rc.2.tgz", + "integrity": "sha512-H+SUCfCrHAIHUSSM3jnxUqUf3frSdtsUDBDcQ0SjybfyWuq4P3w/L3hfmvVK26EitireKOYkhoOpEB5I/PzXlg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-cmdline": "0.1.7-rc.2", + "@deepseek-ai/dsh-sdk-jsonrpc-server": "0.1.7-rc.2", + "@deepseek-ai/dsh-skill-office": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-workspace-dependencies": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4", + "commander": "^15.0.0" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-sdk-jsonrpc-server": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-sdk-jsonrpc-server/-/dsh-sdk-jsonrpc-server-0.1.7-rc.2.tgz", + "integrity": "sha512-2eOJZ/Ml3p4LnASEGydxUq+qTild9E6mcbBQmMElRfmiy0Po5b42L0Ds+8V0uRxVKZbvKooq8XNhDywQ4ZCcQg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-brand": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-attachment": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm-deepseek-api-key": "0.1.7-rc.2", + "@deepseek-ai/dsh-scope": "0.1.7-rc.2", + "@deepseek-ai/dsh-sdk-protocol": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-subagent": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-sdk-minimal": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-sdk-minimal/-/dsh-sdk-minimal-0.1.7-rc.2.tgz", + "integrity": "sha512-nxvJQXkrA9PvgGh96GAel2mpW4XCR6D9VTgYb1UzVTX6ja6kJT+IR2SIRHf9BnqWdDHxQXw7kGdcxd9GywE2WQ==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/cordis-plugin-timer": "~1.1.6", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-agent-loop": "0.1.7-rc.2", + "@deepseek-ai/dsh-deepseek-llm-api-extensions": "0.1.7-rc.2", + "@deepseek-ai/dsh-invariants": "0.1.7-rc.2", + "@deepseek-ai/dsh-jobs-local": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm-deepseek-api-key": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm-retry": "0.1.7-rc.2", + "@deepseek-ai/dsh-mcp-resources": "0.1.7-rc.2", + "@deepseek-ai/dsh-plugin-package-inventory-deepseek": "0.1.7-rc.2", + "@deepseek-ai/dsh-sandbox-local": "0.1.7-rc.2", + "@deepseek-ai/dsh-sandbox-policy": "0.1.7-rc.2", + "@deepseek-ai/dsh-scope": "0.1.7-rc.2", + "@deepseek-ai/dsh-sdk-app": "0.1.7-rc.2", + "@deepseek-ai/dsh-sdk-jsonrpc-server": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-log-deepseek": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-persistence-jsonl": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-projection": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-title": "0.1.7-rc.2", + "@deepseek-ai/dsh-subprocess-local": "0.1.7-rc.2", + "@deepseek-ai/dsh-system-prompt": "0.1.7-rc.2", + "@deepseek-ai/dsh-terminal": "0.1.7-rc.2", + "@deepseek-ai/dsh-terminal-bash": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-bash-persistent": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-pwsh-persistent": "0.1.7-rc.2", + "@deepseek-ai/dsh-tools": "0.1.7-rc.2" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-sdk-protocol": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-sdk-protocol/-/dsh-sdk-protocol-0.1.7-rc.2.tgz", + "integrity": "sha512-jt75g7h8cxypjL6uXGiWlsvSpO8dY/aUo5Me4wnxpeslVyItYQurkIk35rYBlVG4fdlFep9/FAy+pRhnK/TKUA==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-subagent": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-session": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session/-/dsh-session-0.1.7-rc.2.tgz", + "integrity": "sha512-0dXv1t4Zox/yHkZ4PfPNSBWJfIc72PDqOvjz43EMoHpbmoKTVpit2UpUI+yTtX01e4MVBbDMxBZ95oJW/Oydnw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-brand": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-util-values": "0.1.7-rc.2" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-scope": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-session-checkpoint-policy": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-checkpoint-policy/-/dsh-session-checkpoint-policy-0.1.7-rc.2.tgz", + "integrity": "sha512-2V+o25gPkQNeBXD2E9zSTCxZzEnIKmClnQwhXEMKFWwS6Ibm99GFc51DFjIvhdu/I0/YawOS637KsrPznHILpQ==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-persistence": "0.1.7-rc.2", + "@deepseek-ai/dsh-tools": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-session-format": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-format/-/dsh-session-format-0.1.7-rc.2.tgz", + "integrity": "sha512-ayk2VoX3r7m8U9rVc+F70qx76Eq3Mi3ToLySi29hDZPFLy8ujjSOO5LVCC1xmon8uukfcnScvElNPoP/mKTkBg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-util-values": "0.1.7-rc.2" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-session-format-catalog": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-format-catalog/-/dsh-session-format-catalog-0.1.7-rc.2.tgz", + "integrity": "sha512-PMwm6M713ZWMqV0NVRFGeP0eYoBBCe0n4l5k8g1sRI+e2wD5xVoTEn8ZduG0vxnrVrGneJRDPQjZ4TiMi/fgDw==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-compaction-image-offload": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-format": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-format-v0-to-v1": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-format-v1-to-v2": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-format-v2-to-v3": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-format-v3-to-v4": "0.1.7-rc.2" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-session": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-session-format-v0-to-v1": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-format-v0-to-v1/-/dsh-session-format-v0-to-v1-0.1.7-rc.2.tgz", + "integrity": "sha512-2JjUnl5+00N8/eda1s47VXP8wEl0HFqLRKk3MgEcRb6PEH3NH3Mvxb6jmkF6EeH0mMLLvzYHbpfDazOhECkXRg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-session-format": "0.1.7-rc.2", + "@deepseek-ai/dsh-util-values": "0.1.7-rc.2" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-session-format-v1-to-v2": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-format-v1-to-v2/-/dsh-session-format-v1-to-v2-0.1.7-rc.2.tgz", + "integrity": "sha512-a7Rsv7z2zeIyWpwRWkdtbi1T8r9zBGvbcoQVQEPpmpMFH9qu5hZmzYUGNFS1qRW5KW2cZoOU+qRxHwRoKI0dcQ==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-format": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-format-v0-to-v1": "0.1.7-rc.2", + "@deepseek-ai/dsh-util-values": "0.1.7-rc.2" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-session-format-v2-to-v3": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-format-v2-to-v3/-/dsh-session-format-v2-to-v3-0.1.7-rc.2.tgz", + "integrity": "sha512-che+x4X57f4MPWYWjj3UkcDs4qU0sQspUvy0Ie8w+iMFPkH0C7f/629l6ubZXRFrGF/k6djbyLR/NYH7nArZaA==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-session-format": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-format-v0-to-v1": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-format-v1-to-v2": "0.1.7-rc.2" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-session-format-v3-to-v4": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-format-v3-to-v4/-/dsh-session-format-v3-to-v4-0.1.7-rc.2.tgz", + "integrity": "sha512-PpGsFntVbc6HEnIlTRMluk55YPAFGmbz7SSyYMXDaz7N+jzWTa54AuMg9gUthHxPwZyj7KF2QtJAJnSQ2+GPGw==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-session-format": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-format-v2-to-v3": "0.1.7-rc.2" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-session-log-deepseek": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-log-deepseek/-/dsh-session-log-deepseek-0.1.7-rc.2.tgz", + "integrity": "sha512-DOSb50EoF9ZGojLyCf+WCgHgz98aHXjQR7fX22EN7g7jDaOF7iFkFyBxJr7cHkkCwMGXgGXqvVlVb2r/Xmsyiw==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-brand": "0.1.7-rc.2", + "@deepseek-ai/dsh-util-values": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-deepseek-llm-api-extensions": "0.1.7-rc.2", + "@deepseek-ai/dsh-invariants": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-session-log-export": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-log-export/-/dsh-session-log-export-0.1.7-rc.2.tgz", + "integrity": "sha512-y7Gt5ud52yFZM+v9sdmNyxUWEbGh3xIlXg5MWo9+159KBqyLyfO9yfA8MkTL8PouqNNvHwvN3Ea5ZZm9gWFthA==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-brand": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-format": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4", + "fflate": "^0.8.2" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-persistence": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-session-persistence": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-persistence/-/dsh-session-persistence-0.1.7-rc.2.tgz", + "integrity": "sha512-xZXMo8hYMnh96UyxpkmDqvfxpmVNWbTlXqSuJray7S2kW8AkugKDc+FMy2+/znoBHhZsi+2/uKJRPj6dwDBIsg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-util-values": "0.1.7-rc.2" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-brand": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-timeout": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-session-persistence-jsonl": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-persistence-jsonl/-/dsh-session-persistence-jsonl-0.1.7-rc.2.tgz", + "integrity": "sha512-Dymapt+M11rJKQgsisfod2LSf0HvyUN/8QTv+g3BAXlRh5YFXvRcSVsY3XWj5NnUs3tlbU2aauBE7OXbMSP4vQ==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-format": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-format-catalog": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-format-v3-to-v4": "0.1.7-rc.2", + "@deepseek-ai/node-addon-system": "~0.1.2", + "@deepseek-ai/schemastery": "~3.18.4", + "koffi": "^3.1.0" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-persistence": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-session-projection": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-projection/-/dsh-session-projection-0.1.7-rc.2.tgz", + "integrity": "sha512-s5T8oHBEh+GeOTJ+wehD4CGZkTiWgczZZA+NDbfbqUO0k5L+dk0kk3fN+/srAg77rhR7UeeDSR8ZNcpYx/VUdw==", + "license": "MIT", + "dependencies": { + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-session": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-session-projection-cache": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-projection-cache/-/dsh-session-projection-cache-0.1.7-rc.2.tgz", + "integrity": "sha512-7SRuNDAzOVMbKoXyK0GAA8xMYVRAHUCoYiR56+4hHUkU7YQ5JuRjQiHxG6dEtYqibp3AI8E+oXgOJhkpB5Gl8A==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-util-values": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-projection": "0.1.7-rc.2", + "@deepseek-ai/dsh-storage-domain": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-session-query": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-query/-/dsh-session-query-0.1.7-rc.2.tgz", + "integrity": "sha512-dS9+GFdXBS0UWiSMiloD6IpSb7cDy7ig//h0LaGZAro8xcfs+rY+78Eu5JKrTObTCTL4p6x70cxAJdbRaIxzGw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-session-format-catalog": "0.1.7-rc.2" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-brand": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-persistence": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-projection": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-projection-cache": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-title": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-todo": "0.1.7-rc.2" + }, + "peerDependenciesMeta": { + "@deepseek-ai/dsh-session-persistence": { + "optional": true + }, + "@deepseek-ai/dsh-session-projection": { + "optional": true + }, + "@deepseek-ai/dsh-session-projection-cache": { + "optional": true + } + } + }, + "node_modules/@deepseek-ai/dsh-session-query-sqlite": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-query-sqlite/-/dsh-session-query-sqlite-0.1.7-rc.2.tgz", + "integrity": "sha512-Yxer7MvfvJ6mi9Gkvl+NZyKLZkVuA8eMwhQW8O7EL6AK4I+Xb8tCJymvgD4ev/EFzuoQJHgtlwtD4x86qQp/GA==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-persistence": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-query": "0.1.7-rc.2" + }, + "peerDependenciesMeta": { + "@deepseek-ai/dsh-session-persistence": { + "optional": true + } + } + }, + "node_modules/@deepseek-ai/dsh-session-reference": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-reference/-/dsh-session-reference-0.1.7-rc.2.tgz", + "integrity": "sha512-Yo+/foHDI5JitZl/+Pt76QpwytkkDjv5vwSKtMQBXXLXPRJSuXz+xtSkEqQCQ1667RbksGZz8mVzWSZWb0IpYg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-brand": "0.1.7-rc.2", + "@deepseek-ai/dsh-util-values": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-compaction": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-output-retention": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-projection": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-projection-cache": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-query": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-title": "0.1.7-rc.2", + "@deepseek-ai/dsh-spill": "0.1.7-rc.2", + "@deepseek-ai/dsh-subagent": "0.1.7-rc.2", + "@deepseek-ai/dsh-system-prompt": "0.1.7-rc.2", + "@deepseek-ai/dsh-typert-protocol": "0.1.7-rc.2" + }, + "peerDependenciesMeta": { + "@deepseek-ai/dsh-session-projection-cache": { + "optional": true + }, + "@deepseek-ai/dsh-spill": { + "optional": true + } + } + }, + "node_modules/@deepseek-ai/dsh-session-stats": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-stats/-/dsh-session-stats-0.1.7-rc.2.tgz", + "integrity": "sha512-BT3X9w6REGTkc5bRH5jLiQ6Hv+jkiqhxzSQnnwJKmskowthLwsigN9cn760IBBCPZNyPNGghixAMxm9pl0/yIQ==", + "license": "MIT", + "dependencies": { + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-projection": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-session-telemetry": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-telemetry/-/dsh-session-telemetry-0.1.7-rc.2.tgz", + "integrity": "sha512-JyCrRnTlA5tKU+8MVP3+byoA3ducZjZpSJp/2t0GofbvyAhYdvQVoR3hb4h4OxUxPiW+dPUtC95gCr+snM42Ug==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-session-telemetry-otel": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-telemetry-otel/-/dsh-session-telemetry-otel-0.1.7-rc.2.tgz", + "integrity": "sha512-rgWtlx4Wc+F9grOeun9tt9R0u6HSbToxapkxEeJFtkSIm4TFAUKRP7osv2I7LEleUNmc7dpQtp87aHrWpnXXKg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4", + "@opentelemetry/api": "^1.9.1", + "@opentelemetry/api-logs": "^0.220.0", + "@opentelemetry/exporter-logs-otlp-http": "^0.220.0", + "@opentelemetry/otlp-exporter-base": "^0.220.0", + "@opentelemetry/resources": "^2.9.0", + "@opentelemetry/sdk-logs": "^0.220.0" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-anonymous-user-id": "0.1.7-rc.2", + "@deepseek-ai/dsh-command-feedback": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-message-feedback": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-telemetry": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-session-title": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-title/-/dsh-session-title-0.1.7-rc.2.tgz", + "integrity": "sha512-UsbFH2ESc8lY2YgSb9OPsXOBryOc7qq0f57FYccb3yOAez27afERWwvcPGZY8D9YTJKZCf0Q3ae/NZMQU15AJA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-util-values": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-brand": "0.1.7-rc.2", + "@deepseek-ai/dsh-invariants": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-projection": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-session-title-first-prompt-llm": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-title-first-prompt-llm/-/dsh-session-title-first-prompt-llm-0.1.7-rc.2.tgz", + "integrity": "sha512-I7O64gk/HLoBjPWu1ikDd6kEz7QZKfI+njyLGaGapLITycRMYWDaSCQGKXqPvTlMPTNQL8ym/kKXbFrG61j/Vg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-title": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-title-llm": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-session-title-llm": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-title-llm/-/dsh-session-title-llm-0.1.7-rc.2.tgz", + "integrity": "sha512-KmHI4hvuY5lpeMJLq2sR8vxTXvakgSA96DbqmqX3zbE8neCM+pojZBcUeDKdYwV6TfiT2oWJno1n7QGwoT9fdw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-util-values": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-title": "0.1.7-rc.2", + "@deepseek-ai/dsh-timeout": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-session-turn-outline": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-turn-outline/-/dsh-session-turn-outline-0.1.7-rc.2.tgz", + "integrity": "sha512-Ouag8143h3+exBd8Q7iQ4XI22VcR+0rfDgOjzsVC3WMq6ckHLeo3SrxLFLXMuLn+UpBTBnjy1b2q6uaLemQsIA==", + "license": "MIT", + "dependencies": { + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-projection": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-settings": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-settings/-/dsh-settings-0.1.7-rc.2.tgz", + "integrity": "sha512-xS48//SMs3xp5qI+brj0T4BsJ1vgcv2LteZO6lW4X0YZVUOIe6H9aS2sRPh2OAWTFHrzPep4NwVkAOCD8NvBzQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/cordis-plugin-loader": "~1.0.5", + "@deepseek-ai/cosmokit": "~1.8.5", + "@deepseek-ai/dsh-config-editor": "0.1.7-rc.2", + "@deepseek-ai/dsh-util-values": "0.1.7-rc.2", + "yaml": "^2.8.1" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-brand": "0.1.7-rc.2", + "@deepseek-ai/dsh-invariants": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4" + } + }, + "node_modules/@deepseek-ai/dsh-shell": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-shell/-/dsh-shell-0.1.7-rc.2.tgz", + "integrity": "sha512-l/CdrpqFG3SNPKBm7/zJkqn8gODxMLcTOg57zSqyDi5VdJXb8dlRQNHH4KfhxfWM9rZSH5AC94g6Il2n3sOQ+w==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-sandbox": "0.1.7-rc.2", + "@deepseek-ai/dsh-subprocess": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-shell-env": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-shell-env/-/dsh-shell-env-0.1.7-rc.2.tgz", + "integrity": "sha512-Zu31yhGgnB+WMah0Qb/+adZTeUr1MQLmNMU8lV6YVt20tCnbA+HFI/akPTIoc9Ux8+Lqf6/fyv4e63OniPXaRw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-app-boot": "0.1.7-rc.2", + "@deepseek-ai/dsh-home-paths": "0.1.7-rc.2", + "@deepseek-ai/dsh-shell": "0.1.7-rc.2", + "@deepseek-ai/dsh-tools": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-skill": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-skill/-/dsh-skill-0.1.7-rc.2.tgz", + "integrity": "sha512-m1SFnBjx8F4upZObk13d3MC6QsiNA3kWHJ5dOZu+Z9oB5BudzNnFJWXZf2gcZclWai9lOiKxCb1ibPio1inwUg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-util-values": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-scope": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-skill-badge": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-skill-badge/-/dsh-skill-badge-0.1.7-rc.2.tgz", + "integrity": "sha512-l3jIjc7m9xqARMO3uGp/exH7S76T5A7y4e33dAFeFdIdJgy4D37pLWfy1UY8drIP91TgaIniqz4RO1jfWjPg1A==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-skill": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-skill-filesystem": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-skill-filesystem/-/dsh-skill-filesystem-0.1.7-rc.2.tgz", + "integrity": "sha512-k+I8mictkO+g8JMm8EM13yDtG4MqeES88DJq7TJNKRT4o7tD2vkDqr8Ep3KN4EYH5KDGd0h6HabIwvEqhbx37A==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4", + "chokidar": "^5.0.0", + "yaml": "^2.4.2" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-fs": "0.1.7-rc.2", + "@deepseek-ai/dsh-home-paths": "0.1.7-rc.2", + "@deepseek-ai/dsh-skill": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-skill-filesystem/node_modules/chokidar": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", + "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", + "license": "MIT", + "dependencies": { + "readdirp": "^5.0.0" + }, + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@deepseek-ai/dsh-skill-filesystem/node_modules/readdirp": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.1.1.tgz", + "integrity": "sha512-Kko+Y5XQ6fM+Ce3dq3m9YGxnacYZYl9cA1wZjaF3Vbry2L3i1qVg8+CAgNPsXRArPMUMCaOR7oa9Nqntc43JKA==", + "license": "MIT", + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@deepseek-ai/dsh-skill-office": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-skill-office/-/dsh-skill-office-0.1.7-rc.2.tgz", + "integrity": "sha512-kU6bggLhVzqxYYXZHS2dCVRxa3MlofoLbtT1cdLC0D8qmJ2S8juja4PEm7HI8100PH9y7WSsAkQLqcsJgVsJGA==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/libreoffice-kit": "^0.1.1", + "@deepseek-ai/schemastery": "~3.18.4", + "yaml": "^2.4.2" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-skill": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-spill": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-spill/-/dsh-spill-0.1.7-rc.2.tgz", + "integrity": "sha512-OV3T73WDjz9x8Zc/Qwfjui1I/bVWO7UVWNK4FjujZABJi/61PMyUYmrWMBjF22VGS4V1f2foSJ0TVzd/1mq+gQ==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-brand": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-spill-local": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-spill-local/-/dsh-spill-local-0.1.7-rc.2.tgz", + "integrity": "sha512-ls6vTHb2GHUbi2Es2/sBdtS0A3k3Wrfyq2uVbMI5XNARoMnftezcIcxyGME+s/7cCtAof7Sy5LK6BnY2vOWuUQ==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-spill": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-spill-policy": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-spill-policy/-/dsh-spill-policy-0.1.7-rc.2.tgz", + "integrity": "sha512-n4CrVMlS/kK4bQMHBlhrr9V9z3UuZdynwpXKKq1j+7Wl0GbqIyimGyzfVCVd0u5L84geVbI825ltleBqirwNFg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-attachment": "0.1.7-rc.2", + "@deepseek-ai/dsh-fs": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-output-retention": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-spill": "0.1.7-rc.2", + "@deepseek-ai/dsh-token-meter": "0.1.7-rc.2", + "@deepseek-ai/dsh-tools": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-storage": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-storage/-/dsh-storage-0.1.7-rc.2.tgz", + "integrity": "sha512-BZ5MZY44KCUoQEy8FJTpSOXfGGPQ3sJS3xrwxF9rARIqHwtsR5WR6rXY/JmsFNc3nI0djGmJ0bF81U0q7EbDLA==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-storage-domain": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-storage-domain/-/dsh-storage-domain-0.1.7-rc.2.tgz", + "integrity": "sha512-Ch+k8iYvxMtmxxcVFZQ75griJMdj7RX49mbgRXLbr0s5IvCY2RYPNVDLyB1e/2wXysT1rP08FsH8nH7PoVABRg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-invariants": "0.1.7-rc.2", + "@deepseek-ai/dsh-storage": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-storage-json": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-storage-json/-/dsh-storage-json-0.1.7-rc.2.tgz", + "integrity": "sha512-dmzUEcCPkvCppdZFv4TC9OlVNbb+oJdl20ybtENbIy967/kYVnJryyRBtAR6ajm2hQ2MmK9XyOD/XTZpZHy+Fw==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-storage": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-subagent": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-subagent/-/dsh-subagent-0.1.7-rc.2.tgz", + "integrity": "sha512-wIl53frMLSQI+QXfKTHBdyKT/hslFH9LT0DUDeiNyShGkiewYG1wSY1rnmv+p57Q+zS/SfDYjt0s0MGK1tUL0Q==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-brand": "0.1.7-rc.2", + "@deepseek-ai/dsh-chunked-list": "0.1.7-rc.2", + "@deepseek-ai/dsh-util-values": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-agent-preset-registry": "0.1.7-rc.2", + "@deepseek-ai/dsh-attachment": "0.1.7-rc.2", + "@deepseek-ai/dsh-invariants": "0.1.7-rc.2", + "@deepseek-ai/dsh-jobs": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-permission-presets": "0.1.7-rc.2", + "@deepseek-ai/dsh-sandbox": "0.1.7-rc.2", + "@deepseek-ai/dsh-sandbox-policy": "0.1.7-rc.2", + "@deepseek-ai/dsh-scope": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-persistence": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-projection": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-query": "0.1.7-rc.2", + "@deepseek-ai/dsh-system-prompt": "0.1.7-rc.2", + "@deepseek-ai/dsh-tools": "0.1.7-rc.2", + "@deepseek-ai/dsh-typert-protocol": "0.1.7-rc.2", + "@deepseek-ai/dsh-user-approval": "0.1.7-rc.2", + "@deepseek-ai/dsh-util-time": "0.1.7-rc.2", + "@deepseek-ai/dsh-workspace": "0.1.7-rc.2" + }, + "peerDependenciesMeta": { + "@deepseek-ai/dsh-agent-preset-registry": { + "optional": true + }, + "@deepseek-ai/dsh-jobs": { + "optional": true + }, + "@deepseek-ai/dsh-permission-presets": { + "optional": true + }, + "@deepseek-ai/dsh-sandbox": { + "optional": true + }, + "@deepseek-ai/dsh-sandbox-policy": { + "optional": true + }, + "@deepseek-ai/dsh-session-persistence": { + "optional": true + }, + "@deepseek-ai/dsh-session-projection": { + "optional": true + }, + "@deepseek-ai/dsh-session-query": { + "optional": true + }, + "@deepseek-ai/dsh-settings": { + "optional": true + }, + "@deepseek-ai/dsh-user-approval": { + "optional": true + }, + "@deepseek-ai/dsh-workspace": { + "optional": true + } + } + }, + "node_modules/@deepseek-ai/dsh-subagent-fork-in-process": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-subagent-fork-in-process/-/dsh-subagent-fork-in-process-0.1.7-rc.2.tgz", + "integrity": "sha512-tGJ06AG1JXXTLQBdskJRaggA/gg601+lr52kxvuT1sx/L404hRdw18OdPOebDh9wrj8gt2zxeVEkHA0QY6Hkhg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-subagent": "0.1.7-rc.2", + "@deepseek-ai/dsh-subagent-in-process-driver": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-subagent-in-process-driver": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-subagent-in-process-driver/-/dsh-subagent-in-process-driver-0.1.7-rc.2.tgz", + "integrity": "sha512-4NroGWZydU4INXIyPGFKL4Zy1XfMphGDqAJyz/bVTNdrMi6M/8XdRASzTKvsud8TP6IMklAGxcEyEw0pD+AKmg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-brand": "0.1.7-rc.2" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-subagent": "0.1.7-rc.2", + "@deepseek-ai/dsh-system-prompt": "0.1.7-rc.2", + "@deepseek-ai/dsh-tools": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-subagent-spawn-in-process": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-subagent-spawn-in-process/-/dsh-subagent-spawn-in-process-0.1.7-rc.2.tgz", + "integrity": "sha512-xEWjgl/wMalKHGlckmTZ8B0UuwPUGAUathXaeVvs/stqLgmX5IFa1t2/KAN/guLOfeK0rHYvqQGSQhBJkCGxxg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-subagent": "0.1.7-rc.2", + "@deepseek-ai/dsh-subagent-in-process-driver": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-subprocess": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-subprocess/-/dsh-subprocess-0.1.7-rc.2.tgz", + "integrity": "sha512-HgELZIXAEDvlqI4ThbaJ7bJi2ytotxjcaAoXgiKstFGyyf9EAHOSmLkmJZ1G4nunF7cop2YclSEpAvGNTofBTg==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-http-proxy": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-subprocess-local": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-subprocess-local/-/dsh-subprocess-local-0.1.7-rc.2.tgz", + "integrity": "sha512-1JKUC4YriYbuyNsDcOwb+WQVaxy6I8CWeTVP/UoEc6uXPSMQdS3GJArDYyFdC2NzjOEmAxpTr4awTNNrpA6Gmw==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-lazy-require": "0.1.7-rc.2", + "@deepseek-ai/dsh-win32-process": "0.1.7-rc.2", + "koffi": "^3.1.0", + "node-pty": "1.2.0-beta.15" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-subprocess": "0.1.7-rc.2", + "@deepseek-ai/dsh-timeout": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-system-prompt": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-system-prompt/-/dsh-system-prompt-0.1.7-rc.2.tgz", + "integrity": "sha512-vxKcADh7XOuWJOfa0WeEOhvFiUbMOdoK4w6M7KVCI0S99c9ktxrgY4wKdmAxap+nQjwTEPme3QuOlY3Na+cz9w==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-invariants": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-scope": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-terminal": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-terminal/-/dsh-terminal-0.1.7-rc.2.tgz", + "integrity": "sha512-8C7Ua0DZY2dikN1zPthvlYcxWAmB2bPMup/LJXsnD+2CK3D1QSGEsxkjIUtpGZo0HnapJY1JixzgOU3/fab5Og==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-brand": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-terminal-bash": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-terminal-bash/-/dsh-terminal-bash-0.1.7-rc.2.tgz", + "integrity": "sha512-6dlzgzSoClNcW/th0iapYjWq7gGfSQqIUTqHxZXKwvOR2g1x51uagRctQ7AamNw4iOStQzLFGQ3ctLDg8WSQfw==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-lazy-require": "0.1.7-rc.2", + "@deepseek-ai/dsh-pwsh-local": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4", + "@xterm/headless": "^6.0.0" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-sandbox": "0.1.7-rc.2", + "@deepseek-ai/dsh-sandbox-policy": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-projection": "0.1.7-rc.2", + "@deepseek-ai/dsh-subprocess": "0.1.7-rc.2", + "@deepseek-ai/dsh-terminal": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-time-context": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-time-context/-/dsh-time-context-0.1.7-rc.2.tgz", + "integrity": "sha512-YemKiNNbS+y7H80aHDSahYlgwlgQR1UU/8SabAbFLepWqrGH07O0HdSoZ8WVmXD3wBX+X+hAJyWw3zTT52jDMw==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-util-values": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-invariants": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-projection": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-timeout": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-timeout/-/dsh-timeout-0.1.7-rc.2.tgz", + "integrity": "sha512-YunLoLZSF8Ld9eYwyvKoBnxgy3GZrIQpw98HfFS15ZfZlqcFiZcchFhYmStLtUbtX+gjhoeXc8Xz913YbVifNA==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-tmux-context": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tmux-context/-/dsh-tmux-context-0.1.7-rc.2.tgz", + "integrity": "sha512-DYRsMMTgQicntevipFcV6k5LyTMm+UDmo46b9MRK0hc34y5RXCSdX9uIrC0GErDm1K8N1OufPjTXwJIgMe65MA==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-projection": "0.1.7-rc.2", + "@deepseek-ai/dsh-shell": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-token-meter": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-token-meter/-/dsh-token-meter-0.1.7-rc.2.tgz", + "integrity": "sha512-9Ig2EI16amhKyiitkWqMzvCocTc8O7Z1bHZbHEQUMeKRlp7F0t1l3hUT/JSd9DQ7UzRcjSAhVavXGwke5lWYGQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-util-values": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-compaction": "0.1.7-rc.2", + "@deepseek-ai/dsh-compaction-image-offload": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm-retry": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-projection": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-tool-ask-user": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-ask-user/-/dsh-tool-ask-user-0.1.7-rc.2.tgz", + "integrity": "sha512-qOdhDY9GD6ibSKFNNcRN3i/FHj1csnStK3DHg/5Gagz4W4i3YmpfK+5bOPp/wrhPgzRDCh/wLYjRo4SiyKujWA==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-tools": "0.1.7-rc.2", + "@deepseek-ai/dsh-user-questions": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-tool-bash": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-bash/-/dsh-tool-bash-0.1.7-rc.2.tgz", + "integrity": "sha512-pdFYrdnX2OlMN9nI0XT5MZwMkR58x4Z5j9qyTfMYLvtbuZxHwxcdHq2PJU3vAuVQj14F7TJiFEan2EXq+X1mFg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-jobs": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-sandbox": "0.1.7-rc.2", + "@deepseek-ai/dsh-sandbox-policy": "0.1.7-rc.2", + "@deepseek-ai/dsh-shell": "0.1.7-rc.2", + "@deepseek-ai/dsh-shell-env": "0.1.7-rc.2", + "@deepseek-ai/dsh-system-prompt": "0.1.7-rc.2", + "@deepseek-ai/dsh-tools": "0.1.7-rc.2", + "@deepseek-ai/dsh-user-approval": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-tool-bash-persistent": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-bash-persistent/-/dsh-tool-bash-persistent-0.1.7-rc.2.tgz", + "integrity": "sha512-aFNJWg2MW+cpyv7yOOl3sfpE7q4e9hE+DmODYiBxXtdTEKfDuKMnIY7Z8TT9sb/wonmUNaneG6LpNUzz6lV+og==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-output-retention": "0.1.7-rc.2", + "@deepseek-ai/dsh-terminal": "0.1.7-rc.2", + "@deepseek-ai/dsh-timeout": "0.1.7-rc.2", + "@deepseek-ai/dsh-tools": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-tool-call-timeout-policy": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-call-timeout-policy/-/dsh-tool-call-timeout-policy-0.1.7-rc.2.tgz", + "integrity": "sha512-k8UaAZqeeYmcY2G03o8mD6ks8LL/yy9FpxAaskcAsVF2kJxMNS3+lSajbKc2APSYExG3jJxPN2OuiZ3EOUljLw==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-timeout": "0.1.7-rc.2", + "@deepseek-ai/dsh-tools": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-tool-cordis": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-cordis/-/dsh-tool-cordis-0.1.7-rc.2.tgz", + "integrity": "sha512-hCZzHeHj2fy+fUnW9aVj4DkMao1KFuzfO249n+7Mkdo5WEEy9s9XlNAgZA6BKST6VuE6opIRbj1HqxEkMUqZuw==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/cordis-plugin-loader": "~1.0.5", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-app-boot": "0.1.7-rc.2", + "@deepseek-ai/dsh-cordis-host-runner": "0.1.7-rc.2", + "@deepseek-ai/dsh-tools": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-tool-fs": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-fs/-/dsh-tool-fs-0.1.7-rc.2.tgz", + "integrity": "sha512-/6wYrqHH1530tncA7DxC3IxLN2iI8kyhCPR/NfaugL09yGPpBwxm455bMvITSjIAvINWpJfMQvaijPui6goY2Q==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-util-code-language": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4", + "diff": "^9.0.0" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-attachment": "0.1.7-rc.2", + "@deepseek-ai/dsh-fs": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-sandbox": "0.1.7-rc.2", + "@deepseek-ai/dsh-sandbox-policy": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-system-prompt": "0.1.7-rc.2", + "@deepseek-ai/dsh-tools": "0.1.7-rc.2", + "@deepseek-ai/dsh-user-approval": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-tool-fs-search": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-fs-search/-/dsh-tool-fs-search-0.1.7-rc.2.tgz", + "integrity": "sha512-wVxBYba8b9CgnNWUZx6Es10FrM5sP1JbAN/wq3Rv1Qgt/Z5cb3CJwubqvMg5sxpohkqM0y/bXENAgxzh/hbKIw==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4", + "@vscode/ripgrep": "^1.18.0" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-output-retention": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-spill": "0.1.7-rc.2", + "@deepseek-ai/dsh-subprocess": "0.1.7-rc.2", + "@deepseek-ai/dsh-system-prompt": "0.1.7-rc.2", + "@deepseek-ai/dsh-timeout": "0.1.7-rc.2", + "@deepseek-ai/dsh-tools": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-tool-goal": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-goal/-/dsh-tool-goal-0.1.7-rc.2.tgz", + "integrity": "sha512-Otb3HOlyZA+44nDXrMi9PW4vlurudOaRYdA7hu4MZBtqvmFEty5loJAzrtDbAhwImhA/UM9M+7Qa2ijwm68qCw==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-goal": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-projection": "0.1.7-rc.2", + "@deepseek-ai/dsh-system-prompt": "0.1.7-rc.2", + "@deepseek-ai/dsh-tools": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-tool-jobs": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-jobs/-/dsh-tool-jobs-0.1.7-rc.2.tgz", + "integrity": "sha512-FAqhI8Hf1InawbrJF/XUjIlQHV11vRMWbX7ofrekJcX0OBk/Og/h8SUzy1knGBVULEm8m2PDLxggXoMu+HVlvg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-jobs": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-output-retention": "0.1.7-rc.2", + "@deepseek-ai/dsh-system-prompt": "0.1.7-rc.2", + "@deepseek-ai/dsh-tools": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-tool-present": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-present/-/dsh-tool-present-0.1.7-rc.2.tgz", + "integrity": "sha512-9TcVuL6qaQmKA89ACmPyToorvrLYmiJRVEbMr31WmcnvTyOBYLvQjcM39HWVPS50FKuYmHqlsyh3EkVUOkhTQQ==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-fs": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-projection": "0.1.7-rc.2", + "@deepseek-ai/dsh-tools": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-tool-pwsh": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-pwsh/-/dsh-tool-pwsh-0.1.7-rc.2.tgz", + "integrity": "sha512-GMFZT35QKoFOXzFV576FbohrdfcXtrMJlOPqdQvNvUdMLYPiiJEIR4WSuqQuGBoez0bLxKVwtodGzwcvPBP+dQ==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-jobs": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-sandbox": "0.1.7-rc.2", + "@deepseek-ai/dsh-sandbox-policy": "0.1.7-rc.2", + "@deepseek-ai/dsh-shell": "0.1.7-rc.2", + "@deepseek-ai/dsh-shell-env": "0.1.7-rc.2", + "@deepseek-ai/dsh-system-prompt": "0.1.7-rc.2", + "@deepseek-ai/dsh-tools": "0.1.7-rc.2", + "@deepseek-ai/dsh-user-approval": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-tool-pwsh-persistent": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-pwsh-persistent/-/dsh-tool-pwsh-persistent-0.1.7-rc.2.tgz", + "integrity": "sha512-Qmfs0hRjuy6UJXS5f+qyNhtVphZzINQlIbZ8vUCBnBJdByIRbHq8P2Qf97gvndv4XExKQ5vH+i3SwyR7UdK/GQ==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-output-retention": "0.1.7-rc.2", + "@deepseek-ai/dsh-terminal": "0.1.7-rc.2", + "@deepseek-ai/dsh-timeout": "0.1.7-rc.2", + "@deepseek-ai/dsh-tools": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-tool-ralph": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-ralph/-/dsh-tool-ralph-0.1.7-rc.2.tgz", + "integrity": "sha512-D4AVzhOUVvN3GhM/grIC61acOgMzdka1dsRbPNPsSTAq2b9iocEGWlWexa4QK90fv1O0+r18RrsuLg9CHiWOLg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-subagent": "0.1.7-rc.2", + "@deepseek-ai/dsh-system-prompt": "0.1.7-rc.2", + "@deepseek-ai/dsh-tools": "0.1.7-rc.2", + "@deepseek-ai/dsh-workflow": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-tool-skill": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-skill/-/dsh-tool-skill-0.1.7-rc.2.tgz", + "integrity": "sha512-mAhFhl7dmP5VZGsnvr36R/tAbhv1nyWRhdWmCpkkAc/zUNjn4ItqVe8eCeho9rkCfC4d0JmqBLQxY0bR6gVgIQ==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-skill": "0.1.7-rc.2", + "@deepseek-ai/dsh-tools": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-tool-str-replace-editor": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-str-replace-editor/-/dsh-tool-str-replace-editor-0.1.7-rc.2.tgz", + "integrity": "sha512-3ul3GhzjcPYu455d7UncHYi3k3j0oNaJrOi/Xa5Nu/cu6XFD1RNS+r3oeXoKsnQhhLvamvRNUbZo4+Rf2g3WIw==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-fs": "0.1.7-rc.2", + "@deepseek-ai/dsh-output-retention": "0.1.7-rc.2", + "@deepseek-ai/dsh-sandbox": "0.1.7-rc.2", + "@deepseek-ai/dsh-sandbox-policy": "0.1.7-rc.2", + "@deepseek-ai/dsh-tools": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-tool-subagent": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-subagent/-/dsh-tool-subagent-0.1.7-rc.2.tgz", + "integrity": "sha512-tsClP3op2uxw3itf/L2EQ37QLS6LEdcKuBKUmq0XNnOvAjut4xUByDzI52W94leJ2hVbWYipmDzlGis27mo95g==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-invariants": "0.1.7-rc.2", + "@deepseek-ai/dsh-jobs": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-scope": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-projection": "0.1.7-rc.2", + "@deepseek-ai/dsh-subagent": "0.1.7-rc.2", + "@deepseek-ai/dsh-system-prompt": "0.1.7-rc.2", + "@deepseek-ai/dsh-tools": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-tool-subagent-control": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-subagent-control/-/dsh-tool-subagent-control-0.1.7-rc.2.tgz", + "integrity": "sha512-GQASFI77x8ly7HSJ64Uxd281LqnPlnuQnF860Xx0z36OPHLzDzdFksFiFeT8nI1llun6FoqkZli3EUsPAXme1g==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-brand": "0.1.7-rc.2", + "@deepseek-ai/dsh-util-values": "0.1.7-rc.2" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-subagent": "0.1.7-rc.2", + "@deepseek-ai/dsh-tools": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-tool-todo": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-todo/-/dsh-tool-todo-0.1.7-rc.2.tgz", + "integrity": "sha512-W5H6XKw7C9MzEtq+tliiAe2cI8hkbg1QA/yJLpRnm2z0xPZwaaX3I3o76gJa6tQPY7TvkFu8WQYOwtToAI8fwA==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-invariants": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-projection": "0.1.7-rc.2", + "@deepseek-ai/dsh-tools": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-tool-web": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-web/-/dsh-tool-web-0.1.7-rc.2.tgz", + "integrity": "sha512-vFjWk841utlC8M9LMj+Qy1ZQF0skcbnt07vP5guH68UbL3zjDix0+LShpbd/mluQyJ3LhzRpKmqveysnna2hAg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-util-values": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4", + "@joplin/turndown-plugin-gfm": "^1.0.67", + "turndown": "^7.2.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-system-prompt": "0.1.7-rc.2", + "@deepseek-ai/dsh-tools": "0.1.7-rc.2", + "@deepseek-ai/dsh-web": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-tool-workflow": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-workflow/-/dsh-tool-workflow-0.1.7-rc.2.tgz", + "integrity": "sha512-VFo7mhhUu+tHS4sLCMejWexhQPYguoiOainwYBCuxd0fCmkgIFnSEH+AmMfsWYAbtUxhMNaoktB4RNnl8QmXmQ==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-invariants": "0.1.7-rc.2", + "@deepseek-ai/dsh-jobs": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-system-prompt": "0.1.7-rc.2", + "@deepseek-ai/dsh-tools": "0.1.7-rc.2", + "@deepseek-ai/dsh-workflow": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-tool-workspace-dependencies": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-workspace-dependencies/-/dsh-tool-workspace-dependencies-0.1.7-rc.2.tgz", + "integrity": "sha512-soBNUme9Pfp/rLTM8t4tUqYe6jJHD5rUQWvAr/z3AckuhbkBu+d9BpBij8oinJoM7fRz0uUywzxGtfaFBD42mg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-tools": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-tools": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tools/-/dsh-tools-0.1.7-rc.2.tgz", + "integrity": "sha512-c3dTdKnslKxVTgjjPLwMKLqGUMwnZH5P8RUsucMQlWn2GViyFW/+5AIUuZHBjjE6Y7NAYl+lVVE/R4LgTp5KWA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-brand": "0.1.7-rc.2", + "@deepseek-ai/dsh-util-values": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-invariants": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-ptc-runtime": "0.1.7-rc.2", + "@deepseek-ai/dsh-sandbox": "0.1.7-rc.2", + "@deepseek-ai/dsh-sandbox-policy": "0.1.7-rc.2", + "@deepseek-ai/dsh-scope": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-system-prompt": "0.1.7-rc.2", + "@deepseek-ai/dsh-user-approval": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-typert-loader": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-typert-loader/-/dsh-typert-loader-0.1.7-rc.2.tgz", + "integrity": "sha512-oA8oXl4tMfhJcaPfi0ZhxZjixCKirLvYpRG09yM1t3oIgm8sG9JlCLwJlNo/jEOlxnO9EDoxLZ2IW5saU7ANrA==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/cordis-plugin-loader": "~1.0.5", + "@deepseek-ai/dsh-typert-registry": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-typert-protocol": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-typert-protocol/-/dsh-typert-protocol-0.1.7-rc.2.tgz", + "integrity": "sha512-oJm03zqMQlvt16Ejw7VWy3/gqlJGrBCZj3Z4KL8ydLJeeTToKIR49WVCxMbJTlH0F9QFljruLtHguA5B99AeUQ==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-brand": "0.1.7-rc.2" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-typert-registry": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-typert-registry/-/dsh-typert-registry-0.1.7-rc.2.tgz", + "integrity": "sha512-fU6+xBn1BmFeWR0TlJUrOH3Vek21Wz1XHZvC+y1Ftc/cc4VNRBEQp3tvUSTKC0n3TBELqO9yY0uQP+l0JhlAHQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-user-approval": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-user-approval/-/dsh-user-approval-0.1.7-rc.2.tgz", + "integrity": "sha512-RQ6GB+C4G6VY/eJrFfS89+89DfHFAJ5G1abhmutfKBhZcYSnGNZyPIzpr5mKbl2xNMIhvCJOb9WiFz2fUPW2HA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-brand": "0.1.7-rc.2", + "@deepseek-ai/dsh-invariants": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-scope": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-system-prompt": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-user-questions": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-user-questions/-/dsh-user-questions-0.1.7-rc.2.tgz", + "integrity": "sha512-Z7rfQTXNRgPEt0gEcetoM7iO9CVxsUCeDwHVj59ArFmUGS4491Y2AxXg8NP6Hu5x79XAZ0N49sHh7FiJBPYUWQ==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-scope": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-util-code-language": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-util-code-language/-/dsh-util-code-language-0.1.7-rc.2.tgz", + "integrity": "sha512-/NcCcgFXbTfV4sse5HoYO6SyKfcn9GFHeCP/bPkFsACZSv1dhosFivnz8jkkS1esbQe97jiki+UQcZBd+O6Usw==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-util-crypto": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-util-crypto/-/dsh-util-crypto-0.1.7-rc.2.tgz", + "integrity": "sha512-BGc55/bSj/1LcDTQ5fpok4U24X9SFyN+TB23/hBlbe2TBUKVuwO8+X5FFKKje2MLO8PWYEDkXv/LrV6jRVKZEg==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-util-time": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-util-time/-/dsh-util-time-0.1.7-rc.2.tgz", + "integrity": "sha512-+bj6L7zdTybkmhEnIlv8ZR1pOm1S+I569CMCtIfbdIg88334hWxRyygCksvNC/VG3Lk3jeO0HzThkv3R7OIsxw==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-util-values": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-util-values/-/dsh-util-values-0.1.7-rc.2.tgz", + "integrity": "sha512-UX8nh5SbtZcPVVEvjd+9PCPcbybA6OpVzJGgFxYn59ao/7QQGyYbByS8KXr+THU5JtqmDDVb9xGUSJaF2IYmeQ==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-util-workspace-path": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-util-workspace-path/-/dsh-util-workspace-path-0.1.7-rc.2.tgz", + "integrity": "sha512-opp6TTeRvZHPi2bsXNK66TwUBh4uNECZJp/qK35ffLQRNa3L+RoPsGgOJZuRjkXdNygytM26P/CWjaBX65oKXg==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-web": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-web/-/dsh-web-0.1.7-rc.2.tgz", + "integrity": "sha512-iMKo3ZeF3OEl0shHmPo/k7UmRQdynPdhLyoHGuSduMj5qPSTnRzZEYCJ4OErvCaxRSY9gSlcVEiOATKhCgUwsQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-web-app": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-web-app/-/dsh-web-app-0.1.7-rc.2.tgz", + "integrity": "sha512-3cMgHys6X9N063HcjhFN2a3azGoWWDtH42/io33gcBZMZxbYP5Kevc4l/erwKa5hAzXtJ2FArjJAytJmy8WSKw==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-agent-instructions": "0.1.7-rc.2", + "@deepseek-ai/dsh-agent-preset": "0.1.7-rc.2", + "@deepseek-ai/dsh-agent-preset-registry": "0.1.7-rc.2", + "@deepseek-ai/dsh-agent-tool-presentation": "0.1.7-rc.2", + "@deepseek-ai/dsh-api-account-controller": "0.1.7-rc.2", + "@deepseek-ai/dsh-api-job-controller": "0.1.7-rc.2", + "@deepseek-ai/dsh-api-remotes": "0.1.7-rc.2", + "@deepseek-ai/dsh-api-session-controller": "0.1.7-rc.2", + "@deepseek-ai/dsh-api-settings-controller": "0.1.7-rc.2", + "@deepseek-ai/dsh-api-terminal-controller": "0.1.7-rc.2", + "@deepseek-ai/dsh-api-workspace-controller": "0.1.7-rc.2", + "@deepseek-ai/dsh-api-workspace-files": "0.1.7-rc.2", + "@deepseek-ai/dsh-app-boot": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-connection": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-file-upload": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-hmr": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-locale": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-modules": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-resources": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-shortcuts": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-agent-preset": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-approval": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-attachment": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-brand-official": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-chat": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-commands": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-conversation": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-cordis": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-deliverables": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-directory-picker-browse": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-directory-picker-native": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-goal": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-input-trigger": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-jobs": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-layout": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-message-feedback": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-model-selection": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-open-in-app": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-permission-presets": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-plan": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-plugin-manager": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-reference": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-renderer": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-schedule": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-settings": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-settings-account": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-settings-agent-loop": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-settings-general": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-settings-models": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-settings-plugin-inventory": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-settings-plugins": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-settings-shell": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-settings-subagent": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-settings-web-search": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-shortcuts": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-sidebar": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-sidebar-browser": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-sidebar-documentpreview": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-sidebar-files": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-sidebar-right": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-sidebar-terminal": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-skill": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-subagent": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-theme": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-tool": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-trajectory": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-user-questions": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-workflow-run": "0.1.7-rc.2", + "@deepseek-ai/dsh-client-ui-workspace": "0.1.7-rc.2", + "@deepseek-ai/dsh-cmdline": "0.1.7-rc.2", + "@deepseek-ai/dsh-command-compact": "0.1.7-rc.2", + "@deepseek-ai/dsh-command-goal": "0.1.7-rc.2", + "@deepseek-ai/dsh-compaction-basic": "0.1.7-rc.2", + "@deepseek-ai/dsh-compaction-tool-result-pruner": "0.1.7-rc.2", + "@deepseek-ai/dsh-cordis-client-runner": "0.1.7-rc.2", + "@deepseek-ai/dsh-cordis-host-runner": "0.1.7-rc.2", + "@deepseek-ai/dsh-file-reference": "0.1.7-rc.2", + "@deepseek-ai/dsh-file-reference-local": "0.1.7-rc.2", + "@deepseek-ai/dsh-host-directory-picker-auto": "0.1.7-rc.2", + "@deepseek-ai/dsh-host-directory-picker-browse": "0.1.7-rc.2", + "@deepseek-ai/dsh-host-directory-picker-native": "0.1.7-rc.2", + "@deepseek-ai/dsh-host-frontend-static": "0.1.7-rc.2", + "@deepseek-ai/dsh-host-open-in-app": "0.1.7-rc.2", + "@deepseek-ai/dsh-host-plugin-inventory": "0.1.7-rc.2", + "@deepseek-ai/dsh-host-webserver": "0.1.7-rc.2", + "@deepseek-ai/dsh-launch-environment": "0.1.7-rc.2", + "@deepseek-ai/dsh-message-feedback": "0.1.7-rc.2", + "@deepseek-ai/dsh-office-to-pdf": "0.1.7-rc.2", + "@deepseek-ai/dsh-persona": "0.1.7-rc.2", + "@deepseek-ai/dsh-plan-mode": "0.1.7-rc.2", + "@deepseek-ai/dsh-plugin-manager": "0.1.7-rc.2", + "@deepseek-ai/dsh-schedule": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-log-export": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-reference": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-stats": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-turn-outline": "0.1.7-rc.2", + "@deepseek-ai/dsh-skill-filesystem": "0.1.7-rc.2", + "@deepseek-ai/dsh-subprocess": "0.1.7-rc.2", + "@deepseek-ai/dsh-terminal": "0.1.7-rc.2", + "@deepseek-ai/dsh-terminal-bash": "0.1.7-rc.2", + "@deepseek-ai/dsh-time-context": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-ask-user": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-bash": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-bash-persistent": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-cordis": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-fs": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-fs-search": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-goal": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-jobs": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-present": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-pwsh": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-pwsh-persistent": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-ralph": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-skill": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-subagent": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-subagent-control": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-todo": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-web": "0.1.7-rc.2", + "@deepseek-ai/dsh-tool-workflow": "0.1.7-rc.2", + "@deepseek-ai/dsh-web-frontend": "0.1.7-rc.2", + "@deepseek-ai/dsh-workflow-ptc": "0.1.7-rc.2", + "@deepseek-ai/dsh-workspace": "0.1.7-rc.2", + "@deepseek-ai/dsh-workspace-changes": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4", + "commander": "^15.0.0", + "open": "^11.0.0" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/cordis-plugin-loader": "~1.0.5", + "@deepseek-ai/dsh-shell-env": "0.1.7-rc.2", + "@deepseek-ai/dsh-system-prompt": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-web-fetch-http": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-web-fetch-http/-/dsh-web-fetch-http-0.1.7-rc.2.tgz", + "integrity": "sha512-fz1aBg58oqigPDkmePUjlONK4u345fd7BF2q/sD2LGnTafrBBQqeiJ5BZQrjPLYoLywsATveRt9h/tLqU4XD3Q==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4", + "ipaddr.js": "^2.5.0", + "undici": "^8.10.0" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-http-proxy": "0.1.7-rc.2", + "@deepseek-ai/dsh-timeout": "0.1.7-rc.2", + "@deepseek-ai/dsh-web": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-web-frontend": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-web-frontend/-/dsh-web-frontend-0.1.7-rc.2.tgz", + "integrity": "sha512-E9OgyYxFAeVaymPWzlqluWcX2KLmE107FXDB9nUrn/ADitlaEqGlReotK6g9LXqTY5m9TMp+WcTB71qbkg2U5g==", + "license": "MIT" + }, + "node_modules/@deepseek-ai/dsh-web-search-deepseek": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-web-search-deepseek/-/dsh-web-search-deepseek-0.1.7-rc.2.tgz", + "integrity": "sha512-xkDMbKm8Bu/PzoUO7pc3q2ME5p8HQo0NVbT67dGY0jtdwX2klaMMCDkkkMDkPvKJi+HjpVIDLH7eMdtMqQbShw==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-credentials": "0.1.7-rc.2", + "@deepseek-ai/dsh-launch-environment": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-web": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-webhook": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-webhook/-/dsh-webhook-0.1.7-rc.2.tgz", + "integrity": "sha512-2ZIAdQBN6XxC2aN247m/3Q9qacEJiSE5KINhdYfWDVALt8c7cTMjWwqhIBjQhr8G0LdFUHp9PIUXNnRxNzKezA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-brand": "0.1.7-rc.2", + "@deepseek-ai/dsh-util-values": "0.1.7-rc.2" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-agent-default-model": "0.1.7-rc.2", + "@deepseek-ai/dsh-agent-preset-registry": "0.1.7-rc.2", + "@deepseek-ai/dsh-invariants": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-permission-presets": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-title": "0.1.7-rc.2", + "@deepseek-ai/dsh-workspace": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-webhook-github": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-webhook-github/-/dsh-webhook-github-0.1.7-rc.2.tgz", + "integrity": "sha512-PwGhpHa4FiYErVE0Hd905Q50qXty+0WMK+1XXLevEjOHdFyj81m8F+VB5RSw3nNjDhkGzYVmBMlplLwl2drLFw==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-util-values": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4", + "@octokit/webhooks": "^14.2.0" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-credentials": "0.1.7-rc.2", + "@deepseek-ai/dsh-host-webserver": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-webhook": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-win32-process": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-win32-process/-/dsh-win32-process-0.1.7-rc.2.tgz", + "integrity": "sha512-sa3z0camBZEQsf2g5XK8SLsNqTY5OYli0nUCG8j6yzkWOb52cBpDA0hSNo5hP6IhVba5N8hT/DfjS3IbktGz1Q==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-lazy-require": "0.1.7-rc.2", + "koffi": "^3.1.0" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-workflow": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-workflow/-/dsh-workflow-0.1.7-rc.2.tgz", + "integrity": "sha512-PJ8IH48HKPporTG5tGHPWs8pRHADMI/tp147OY09oD5FNQw3MjrVTF38TzhZp3FCjhHCxnbdhcayCxh1QzThFg==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-brand": "0.1.7-rc.2", + "@deepseek-ai/dsh-invariants": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-workflow-ptc": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-workflow-ptc/-/dsh-workflow-ptc-0.1.7-rc.2.tgz", + "integrity": "sha512-INiZ8OUrrQGYgF/YfbDi6ajwkOaFHwp0YhlSDVZQWiJY+HnG8QY9XEydCyf+wdMkayCwqLHBFSLNzHh4OsM5LA==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-brand": "0.1.7-rc.2", + "@deepseek-ai/dsh-util-values": "0.1.7-rc.2", + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-llm": "0.1.7-rc.2", + "@deepseek-ai/dsh-ptc-runtime": "0.1.7-rc.2", + "@deepseek-ai/dsh-sandbox": "0.1.7-rc.2", + "@deepseek-ai/dsh-sandbox-policy": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-subagent": "0.1.7-rc.2", + "@deepseek-ai/dsh-tools": "0.1.7-rc.2", + "@deepseek-ai/dsh-workflow": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-workspace": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-workspace/-/dsh-workspace-0.1.7-rc.2.tgz", + "integrity": "sha512-RgSIGkcJnAB6stdJ73yvRT1sXbYtcrYIz9PadVrxTHvcScffaLpXGp8NUNjQgCG0n28CfnCNPdj2qHCbG4yo1g==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-brand": "0.1.7-rc.2", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-invariants": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-session-persistence": "0.1.7-rc.2", + "@deepseek-ai/dsh-storage": "0.1.7-rc.2", + "@deepseek-ai/dsh-storage-domain": "0.1.7-rc.2", + "@deepseek-ai/dsh-typert-protocol": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/dsh-workspace-changes": { + "version": "0.1.7-rc.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-workspace-changes/-/dsh-workspace-changes-0.1.7-rc.2.tgz", + "integrity": "sha512-5CnBghKfz/Q3bzE8hcwc02GsYpg7BnobUJO7eIrlmCG9764ja+ij5xeuotoNegP9n19+lg7+3A3HKerz2B6m/Q==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4", + "diff": "^9.0.0" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.1.7-rc.2", + "@deepseek-ai/dsh-session": "0.1.7-rc.2", + "@deepseek-ai/dsh-subprocess": "0.1.7-rc.2", + "@deepseek-ai/dsh-tools": "0.1.7-rc.2" + } + }, + "node_modules/@deepseek-ai/libreoffice-kit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/libreoffice-kit/-/libreoffice-kit-0.1.2.tgz", + "integrity": "sha512-PM3GtAr8/nG7mY22yoYQgRTfkhzQ72v1sDME/46I/Kl7S4+yOFYC1h0hRT8JL9p9vjdEwXW9icdhUQK0QPz+YQ==", + "license": "MPL-2.0", + "dependencies": { + "fflate": "0.8.2", + "fontkit": "2.0.4", + "saxes": "6.0.0" + }, + "bin": { + "libreoffice-kit": "lib/cli.js" + }, + "engines": { + "node": ">=22.19.0" + }, + "optionalDependencies": { + "@deepseek-ai/libreoffice-kit-darwin-arm64": "0.1.1", + "@deepseek-ai/libreoffice-kit-darwin-x64": "0.1.1", + "@deepseek-ai/libreoffice-kit-wasm": "0.1.1", + "@deepseek-ai/libreoffice-kit-win32-arm64": "0.1.2", + "@deepseek-ai/libreoffice-kit-win32-x64": "0.1.2" + } + }, + "node_modules/@deepseek-ai/libreoffice-kit-darwin-arm64": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/libreoffice-kit-darwin-arm64/-/libreoffice-kit-darwin-arm64-0.1.1.tgz", + "integrity": "sha512-D6NBvtoNpm9pOgBXGQTdxpds1tYMeiFKhGJgnXF/SE0124ZM8j0AOXI7cZ8CErHctqIoVYP+gKWCrnQl4we41A==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=22.19.0" + } + }, + "node_modules/@deepseek-ai/libreoffice-kit-darwin-x64": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/libreoffice-kit-darwin-x64/-/libreoffice-kit-darwin-x64-0.1.1.tgz", + "integrity": "sha512-VcAqzmzDbRySLBnpRNYSEd+fDmAtdgL1hQMjRf4sFnQuz7m1vipQ00DtlqFG/T+9uCc20bMIyiDWh8zfYObW3w==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=22.19.0" + } + }, + "node_modules/@deepseek-ai/libreoffice-kit-wasm": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/libreoffice-kit-wasm/-/libreoffice-kit-wasm-0.1.1.tgz", + "integrity": "sha512-YuKZJdDhR/0GeTZUHJsJvachJR8ZiS4lcrL+lxUF2GLRwXcMikN0zAQOA+6kD/nRI+vlHsCkX0KvHaKvfae79Q==", + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=22.19.0" + } + }, + "node_modules/@deepseek-ai/libreoffice-kit-win32-arm64": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/libreoffice-kit-win32-arm64/-/libreoffice-kit-win32-arm64-0.1.2.tgz", + "integrity": "sha512-+JMKIDfLfpQEIeWWJBkKeAGJ8Niiv6SLQ1SFMh8K28eUOSaLLGPt4j7ywEWtyKCtXenD+VRlKo5gZlqDmCtNCg==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=22.19.0" + } + }, + "node_modules/@deepseek-ai/libreoffice-kit-win32-x64": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/libreoffice-kit-win32-x64/-/libreoffice-kit-win32-x64-0.1.2.tgz", + "integrity": "sha512-EUuTMnFF404uVVZz0j2oAoHY0Xhobdg0jChUUm74sudwaqxTM9rvgUYEWbeJd95oVjIParMdsb4hLdAhZ10BIw==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=22.19.0" + } + }, + "node_modules/@deepseek-ai/libreoffice-kit/node_modules/fflate": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz", + "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==", + "license": "MIT" + }, + "node_modules/@deepseek-ai/node-addon-system": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/node-addon-system/-/node-addon-system-0.1.2.tgz", + "integrity": "sha512-EFn8K+mXIXiw6s3rxX+cgp2hZTEAQdVIsURhrXnBxycSXvtQ1EQpsSVzoNKtKAQI0I0VqkEcVEjHzS/PeaGsvw==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=20" + }, + "optionalDependencies": { + "@deepseek-ai/node-addon-system-darwin-arm64": "0.1.2", + "@deepseek-ai/node-addon-system-darwin-x64": "0.1.2", + "@deepseek-ai/node-addon-system-linux-arm64": "0.1.2", + "@deepseek-ai/node-addon-system-linux-x64": "0.1.2" + } + }, + "node_modules/@deepseek-ai/node-addon-system-darwin-arm64": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/node-addon-system-darwin-arm64/-/node-addon-system-darwin-arm64-0.1.2.tgz", + "integrity": "sha512-IR0cx8um19mLCZaJ+H5PLblKr6Eg3PWvVo8eTQBr/SwH2nh5tM9CD9/5fHweNS9Pjt15UdFlGqnvLSd/w+O6Rw==", + "cpu": [ + "arm64" + ], + "license": "BSD-3-Clause", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=20" + } + }, + "node_modules/@deepseek-ai/node-addon-system-darwin-x64": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/node-addon-system-darwin-x64/-/node-addon-system-darwin-x64-0.1.2.tgz", + "integrity": "sha512-XDbmquNapk9aT28y4EKn9lbONVr9YNs1NM/GKH1Gi5gUhjOT9wgRaTv72FJdNaVIInbPAYbPoyn7/y+MzQMNNg==", + "cpu": [ + "x64" + ], + "license": "BSD-3-Clause", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=20" + } + }, + "node_modules/@deepseek-ai/node-addon-system-linux-arm64": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/node-addon-system-linux-arm64/-/node-addon-system-linux-arm64-0.1.2.tgz", + "integrity": "sha512-Z/DQtqgEYzjBzb2ocHGjMzx51W7xDILkJKKj89nyErr8gZMNiLs+JNL1uKzJqc3VLZB+vYCPaHGyQ3oX6EzEmA==", + "cpu": [ + "arm64" + ], + "license": "BSD-3-Clause", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20" + } + }, + "node_modules/@deepseek-ai/node-addon-system-linux-x64": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/node-addon-system-linux-x64/-/node-addon-system-linux-x64-0.1.2.tgz", + "integrity": "sha512-S2aPVHvYCpNCppCFyNlooMYuTB7ucK5lvD9oXQQ42v5Z2s5AoaiCdjz9r2l+ED2rI5oS1x0cUZmKjJH2dxV0pg==", + "cpu": [ + "x64" + ], + "license": "BSD-3-Clause", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20" + } + }, + "node_modules/@deepseek-ai/schemastery": { + "version": "3.18.4", + "resolved": "https://registry.npmjs.org/@deepseek-ai/schemastery/-/schemastery-3.18.4.tgz", + "integrity": "sha512-SSXO6tYuyrIqKVbmOnIq0s+riUywYzouFMcnBluHF9n4KMo2G8HvEzhCYj6pj2617/glOjbJuVInJ9hfONsjkg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/cosmokit": "~1.8.5", + "@standard-schema/spec": "^1.1.0" + } + }, + "node_modules/@earendil-works/pi-ai": { + "version": "0.85.1", + "resolved": "https://registry.npmjs.org/@earendil-works/pi-ai/-/pi-ai-0.85.1.tgz", + "integrity": "sha512-+VgVIJDkDO2efYJKEEqvPTH4zmnIaXdAppGbO+vKFA9qy5PdhFiAenuFAkU+oiCSfOC4dMHDyrjdQeL4ZoC5CQ==", + "license": "MIT", + "dependencies": { + "@anthropic-ai/sdk": "0.123.0", + "@aws-sdk/client-bedrock-runtime": "3.1048.0", + "@earendil-works/pi-telemetry": "^0.85.1", + "@google/genai": "1.52.0", + "@smithy/node-http-handler": "4.7.3", + "http-proxy-agent": "7.0.2", + "https-proxy-agent": "7.0.6", + "openai": "6.40.0", + "partial-json": "0.1.7", + "typebox": "1.3.7" + }, + "bin": { + "pi-ai": "dist/cli.js" + }, + "engines": { + "node": ">=22.19.0" + } + }, + "node_modules/@earendil-works/pi-telemetry": { + "version": "0.85.1", + "resolved": "https://registry.npmjs.org/@earendil-works/pi-telemetry/-/pi-telemetry-0.85.1.tgz", + "integrity": "sha512-Bg/YN6kA7Swja/NQxka8xFdecb4E/auIEGF2G5A25EaQXhRnPj300/7/KpgsDDMYUzHTDAv4RyUxaQPJKW81Rw==", + "license": "MIT", + "engines": { + "node": ">=22.19.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.3.tgz", + "integrity": "sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@google/genai": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/@google/genai/-/genai-1.52.0.tgz", + "integrity": "sha512-gwSvbpiN/17O9TbsqSsE/OzZcpv5Fo4RQjdngGgogtuB9RsyJ8ZHhX5KjHj1bp5N9snN2eK8LDGXSaWW2hof8Q==", + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "google-auth-library": "^10.3.0", + "p-retry": "^4.6.2", + "protobufjs": "^7.5.4", + "ws": "^8.18.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "@modelcontextprotocol/sdk": "^1.25.2" + }, + "peerDependenciesMeta": { + "@modelcontextprotocol/sdk": { + "optional": true + } + } + }, + "node_modules/@img/colour": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz", + "integrity": "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.35.5.tgz", + "integrity": "sha512-QRUlFQ0WxvdWyqqG/WtI3iupfD5rBzmCHXSdPsY91sAtVtTo7Q4cb6zOccZ3gqEqkr0f1As1ehLqmEpDsRf+lg==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.3.4" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.35.5.tgz", + "integrity": "sha512-+BR255RhDlpygUpOc/Jdt1nT6DQ3XG/ERo5wbcdOf5Q320dKtPCKPLR1LJs9VGXRaMa8l1uUa0tkCNOXiAxZUw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.3.4" + } + }, + "node_modules/@img/sharp-freebsd-wasm32": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-freebsd-wasm32/-/sharp-freebsd-wasm32-0.35.5.tgz", + "integrity": "sha512-Y/z91nEZ4uIBX5X3nfTovjU9lHNKFYbL2lpHCLVNmXQK03VIZvXBBt0KxbPGp2SdGSF+2mQU4e+hQaWOt86iAw==", + "license": "Apache-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "dependencies": { + "@img/sharp-wasm32": "0.35.5" + }, + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.3.4.tgz", + "integrity": "sha512-5R89nBYiRdUlSWJxPhO+GVtaXzXSxKnRu/xqMn3KTA3L9EB9Oy/P+Nn2f2vlhPuUdy/Zusb2DarbyTpGCfEDuw==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.3.4.tgz", + "integrity": "sha512-iR2OKH80yi0U+dUplyh3/xdpFvps6YkCwsXenIJxqxR1v9o+xtKTGbS9H7cps+2Vxjc8B1j96p75NmTGjIhtpQ==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.3.4.tgz", + "integrity": "sha512-LmRtTsOHuvM2+wlO2Db37dx5MiZhB0FvSunciw48YjdOkZz9KAiRbm8ujeMOA1INqmei5NapFxYEK1D1ZSidmw==", + "cpu": [ + "arm" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.3.4.tgz", + "integrity": "sha512-Y3dgX/6lE2QhQb+Gxy0WZxfg9MEm/JBjamZpS2IklP7xIQoKN4hzAm7KcMVGtaVDt3neE9OKBC7vAfonA/Lr1A==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-ppc64": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.3.4.tgz", + "integrity": "sha512-Le6boB8Tai0Nis+gIxIpKx68UDVVIqdR8Tin5Yf1z2LJJQLDJvCDRqRu+jC2qCoD+eIomonmOwB4smBRxfVpYQ==", + "cpu": [ + "ppc64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-riscv64": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.3.4.tgz", + "integrity": "sha512-aHkkIEHPRdQEegJN20MLmGtxYD9R2wQr3Cwpddnu5+YKMt6Uzax7S9h5gpZTo8wyrGuZSlfQ63OevL5mTyOC7Q==", + "cpu": [ + "riscv64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.3.4.tgz", + "integrity": "sha512-ra/mB6MikESDUO7Yg+Mi95bFBb9GsObURuhnOv3OqknjGe9sZrG8tCe9q0xSIGrtLgvgw0gKnFWcK4blSgQOuQ==", + "cpu": [ + "s390x" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.3.4.tgz", + "integrity": "sha512-GJ//SSXbnwSDes02umB3nDJLFcQzw8a18V8fyhqr6tV515tOEMdImjjxj1AoafMRz56F3PHgftnj1QEKSU1zkw==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.3.4.tgz", + "integrity": "sha512-hvulFwtjUcagsis6BBxHwGFwWoNZjgYmULGVrZcyfNbjA8hKILbRxGg15/7w5HDyXHXUos/j6baAWqnCyQ2DWA==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.3.4.tgz", + "integrity": "sha512-6zXKeE/p39I1AmA3cJG35eyBGNqNddLnUXjhwBnsGjFPWqf5VKkDBEqaEkPDoTEtkxwi2vv8Tcr2mDyP4So7Fg==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.35.5.tgz", + "integrity": "sha512-LEaXK2WdXVK5ykcw0buWyPMsmLLL2vpHLD6yrNSW+JGEL3BZPA4tpKN6iaMc4AxTTAoaX/sU1rOL51lcIz48ZQ==", + "cpu": [ + "arm" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.3.4" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.35.5.tgz", + "integrity": "sha512-LYVx5JTsOM2CBzmxreh+nl64/3H6Xb09iSLknqH47z2T2DFFxDeFLP5y4dJwe6H7uGQlHPyEEtIqyo3DYsRwdQ==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.3.4" + } + }, + "node_modules/@img/sharp-linux-ppc64": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.35.5.tgz", + "integrity": "sha512-QVxAAq8evVRI9ia2vqgwrmWucn5Dfv+JdWzj75pD8omHLPSP7f8p20O8jxzjCcuCEQEOtYOZUmX1hkiZ0kdevA==", + "cpu": [ + "ppc64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-ppc64": "1.3.4" + } + }, + "node_modules/@img/sharp-linux-riscv64": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.35.5.tgz", + "integrity": "sha512-LtdreXguaavKODPIfzJ4kffx7UNt1omwtK0rch4EBbbSTXPnxWmYSayXdLJw0fJzQ97kHt1gL/yh4tvU+nCyRQ==", + "cpu": [ + "riscv64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-riscv64": "1.3.4" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.35.5.tgz", + "integrity": "sha512-UZasTOFiYzotTsGOCu42BfUzP6Tu6Do/947iRm1RsLKvlllxwGcn4RN27LibGWceix4Y+Pmw3jsnTcCQIgWjqA==", + "cpu": [ + "s390x" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.3.4" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.35.5.tgz", + "integrity": "sha512-SxFtLTeJInhAA9Q836kux2vZNeOBQEx658qvbboZScr0wIARym3IcGmW7KpVD5sbVg0Ojy+udFQdayYIZyoNog==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.3.4" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.35.5.tgz", + "integrity": "sha512-9HbMclmI1zlNkFRs3z9/eBtDjfD0sGlrX1z6b1qwmiFY5ElDLh4BC0LPBdVp7z1DXFiKlIcznf+ZlsuZzLxQqg==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.3.4" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.35.5.tgz", + "integrity": "sha512-4KOphqB035HrVdqLZfCgMzzERrQkkzOwRhl4OAkRO1YCldbaFjySXMaK534Mo0V+LndnlJk+sbUyLeU0ULyD1A==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.3.4" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.35.5.tgz", + "integrity": "sha512-Ptsga1su4tQx+LLF1ECS9U6nz5kmrXKo6XVbtR48Ke3ZRxxgaWBu7IDtEe1quo8hiupwm6WFqxVlXaSf7IINGQ==", + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.11.3" + }, + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-webcontainers-wasm32": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-webcontainers-wasm32/-/sharp-webcontainers-wasm32-0.35.5.tgz", + "integrity": "sha512-hfhF/FmoQyTUkA0bIKFOtw536BQSeBMe6BF6QyWlrPxT754+TFLaZ7sKKTfvvM0yJgKgaYTwnFCIZ/GuDw5SUA==", + "cpu": [ + "wasm32" + ], + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "@img/sharp-wasm32": "0.35.5" + }, + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-arm64": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.35.5.tgz", + "integrity": "sha512-X4t7g+7ZA5DKblCBEXGjUqqemj4vczING/5viFwAL8h4N3qYeyjwdCvRLHi4EdOUI+2Z7UFlp1VM+p/AuEtm6Q==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.35.5.tgz", + "integrity": "sha512-5Zm82LoBc43nhwNybZlG7Y1KO//Zhsn306fQl29ZOuStHLGTo3BWL83q3cznX0poxSAMuYL1On/BHBxkBeKr6A==", + "cpu": [ + "ia32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.35.5.tgz", + "integrity": "sha512-x76eH0vEiHlcMQu8Y8IenntaACtddpT6W0wmXtWrnKcnKI7ME5DdgqhAD6SEWOEl1v2zDvkZDhFA9KnURwpfqg==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@joplin/turndown-plugin-gfm": { + "version": "1.0.68", + "resolved": "https://registry.npmjs.org/@joplin/turndown-plugin-gfm/-/turndown-plugin-gfm-1.0.68.tgz", + "integrity": "sha512-m8DfAQNC/V7g0j5H6Jv60WhekBBjodD+zTPGrU+g2m+ux/z8ZX07KQIl6kaAmbKwfvsQhC04op52g63I78sVgg==", + "license": "MIT" + }, + "node_modules/@js-temporal/polyfill": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@js-temporal/polyfill/-/polyfill-0.5.1.tgz", + "integrity": "sha512-hloP58zRVCRSpgDxmqCWJNlizAlUgJFqG2ypq79DCvyv9tHjRYMDOcPFjzfl/A1/YxDvRCZz8wvZvmapQnKwFQ==", + "license": "ISC", + "dependencies": { + "jsbi": "^4.3.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@koromix/koffi-android-arm64": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@koromix/koffi-android-arm64/-/koffi-android-arm64-3.3.2.tgz", + "integrity": "sha512-6mFtwFJCy1skaf/qzl82OtELmT2BwHXbephfrIFqKoxIghc7N+kiW33J3ZNRP8JhBYFI6xJ8jiatGwPJ7mCOMw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "funding": { + "url": "https://liberapay.com/Koromix" + } + }, + "node_modules/@koromix/koffi-android-x64": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@koromix/koffi-android-x64/-/koffi-android-x64-3.3.2.tgz", + "integrity": "sha512-wzIWXvldodHWST6KZBdjJlpdH0DJ2rIN5YppY+/T+mTR1DcRYdYhOXzZMGDDx9W3ao8Hry8G4GqVzK9IuYpuWA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "funding": { + "url": "https://liberapay.com/Koromix" + } + }, + "node_modules/@koromix/koffi-darwin-arm64": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@koromix/koffi-darwin-arm64/-/koffi-darwin-arm64-3.3.2.tgz", + "integrity": "sha512-gQKOkA/4tkOxXP3hdau2MrvVvTYlKQiXd86hK+B2FKErV0QcwqrWt6DWZ3FtJUYGB1scenT0srS9VfsWmbgeMQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://liberapay.com/Koromix" + } + }, + "node_modules/@koromix/koffi-darwin-x64": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@koromix/koffi-darwin-x64/-/koffi-darwin-x64-3.3.2.tgz", + "integrity": "sha512-qxysFokAwiMLiWYYVhooWZHSV3REKJErsUjnX9IeG2rAVpWNkdcXUiQ2GMdfH3hZ0f2fuv0fTuv293/tYu1yew==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://liberapay.com/Koromix" + } + }, + "node_modules/@koromix/koffi-freebsd-arm64": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@koromix/koffi-freebsd-arm64/-/koffi-freebsd-arm64-3.3.2.tgz", + "integrity": "sha512-EinnZVzK3KVTQe0N+XXnUfUN2fwNiYEY5IuAcMqtJO4rbOR+8S+C+bbViUKwqmkLG8OvL/kBesuwGLn5DLNZCQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "funding": { + "url": "https://liberapay.com/Koromix" + } + }, + "node_modules/@koromix/koffi-freebsd-ia32": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@koromix/koffi-freebsd-ia32/-/koffi-freebsd-ia32-3.3.2.tgz", + "integrity": "sha512-gnJFMVbxeyY4dSQbw0p3smSyFGDrp8QzI5krF73QxP7GSIMHR2lplejZseNQGyHIeR3XDdxuJFsfAfXmZdQM3w==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "funding": { + "url": "https://liberapay.com/Koromix" + } + }, + "node_modules/@koromix/koffi-freebsd-x64": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@koromix/koffi-freebsd-x64/-/koffi-freebsd-x64-3.3.2.tgz", + "integrity": "sha512-56mIFadXceWImQbsO0fN1hoZ76LCIvAjouL4fntoA7IKDI64BFbLSkcJ7Roww31YwxKjJaA9vdk93qt7bXXJZw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "funding": { + "url": "https://liberapay.com/Koromix" + } + }, + "node_modules/@koromix/koffi-linux-arm": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@koromix/koffi-linux-arm/-/koffi-linux-arm-3.3.2.tgz", + "integrity": "sha512-NhvFzykswakToxAWVhpHf5qA/y8z755MAz4MU1m89yIL1lqUuJDSk6Fy/moD3YIQPOjjuHVf09wO7mlO5ukCbw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://liberapay.com/Koromix" + } + }, + "node_modules/@koromix/koffi-linux-arm64": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@koromix/koffi-linux-arm64/-/koffi-linux-arm64-3.3.2.tgz", + "integrity": "sha512-adabETUHezNDJ6jpqpJV01oJRW8rI4KWH3xV6EpFlIAXCtj6l4aLCbJ6DbGH8fNmsJBLnWiuLkyoNm8zkVotCw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://liberapay.com/Koromix" + } + }, + "node_modules/@koromix/koffi-linux-ia32": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@koromix/koffi-linux-ia32/-/koffi-linux-ia32-3.3.2.tgz", + "integrity": "sha512-IMJAp4dg+l1N5Yek43NpDHDVaJFRkMaBnAg9uI3Z1vk61+WxxtaugOl0lC6gDPLBeNE+lzSXcAEeKBIkTwDzdw==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://liberapay.com/Koromix" + } + }, + "node_modules/@koromix/koffi-linux-loong64": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@koromix/koffi-linux-loong64/-/koffi-linux-loong64-3.3.2.tgz", + "integrity": "sha512-Sdf+iQ5Fo3Px6e8xFx7eTES+cAIiHxCLt9KDVmnHm0ls6fW2eTVu5ez1+3GUBb/gjLTMODX2U4+dP9LHagwHHg==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://liberapay.com/Koromix" + } + }, + "node_modules/@koromix/koffi-linux-ppc64": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@koromix/koffi-linux-ppc64/-/koffi-linux-ppc64-3.3.2.tgz", + "integrity": "sha512-FVHtjljl9vUvT6dSsAE1ObOqmPeJXzS8Ez7cidlsI/rJ5pa7h50KQutU/jPfTaK1cqChRjI66hwnJseLG8VPTA==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://liberapay.com/Koromix" + } + }, + "node_modules/@koromix/koffi-linux-riscv64": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@koromix/koffi-linux-riscv64/-/koffi-linux-riscv64-3.3.2.tgz", + "integrity": "sha512-4Q3haXJ3oP5AJ0vlyd9HZsI7gS+s+fycqz1CDDrT6JftlSruIUbfr8be1/jetUlmh7Pd8HtQBM6x2gpQBNTttQ==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://liberapay.com/Koromix" + } + }, + "node_modules/@koromix/koffi-linux-x64": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@koromix/koffi-linux-x64/-/koffi-linux-x64-3.3.2.tgz", + "integrity": "sha512-78qO1oqd9GYfzcKOxIaRiN0KgvzQzgbPfdClf0/jErlWYdxnr8gB4i9KOFvsYMdnc7kTIa/wnubl1lPCiQnqvA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://liberapay.com/Koromix" + } + }, + "node_modules/@koromix/koffi-openbsd-arm64": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@koromix/koffi-openbsd-arm64/-/koffi-openbsd-arm64-3.3.2.tgz", + "integrity": "sha512-rB6HZ/RnEAu7CZoD8IMXonCJSD6WJIX8QfZ11RCOy9MXxA8wQR5CRnP3ffy4/8IbABorRoERLLFTFk5wFFZqCw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "funding": { + "url": "https://liberapay.com/Koromix" + } + }, + "node_modules/@koromix/koffi-openbsd-ia32": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@koromix/koffi-openbsd-ia32/-/koffi-openbsd-ia32-3.3.2.tgz", + "integrity": "sha512-XmzyeUEsCc8f6n26684mzn73I5VdDBxFydm8JxwYCmvrzfkSkDPU7eQyRoxHDRwgveIK/plmRiMUIj3/7J1flw==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "funding": { + "url": "https://liberapay.com/Koromix" + } + }, + "node_modules/@koromix/koffi-openbsd-x64": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@koromix/koffi-openbsd-x64/-/koffi-openbsd-x64-3.3.2.tgz", + "integrity": "sha512-Bt+beMlH6yK4X21+y7lgk+lthjBODfwJjREFITVQH68v8rHWZ5UxV7FBInHZ7ZT0o07G/fgIr2l1DG6SpaTbEA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "funding": { + "url": "https://liberapay.com/Koromix" + } + }, + "node_modules/@koromix/koffi-win32-arm64": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@koromix/koffi-win32-arm64/-/koffi-win32-arm64-3.3.2.tgz", + "integrity": "sha512-+fLooyTbldECuFH54h1ags7BAOB4fmqnshyVkXr+HbJBhgHdHoIbZ+CcaoH1ELVth7L7G+5XNwbXDH1TOyQMvA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "funding": { + "url": "https://liberapay.com/Koromix" + } + }, + "node_modules/@koromix/koffi-win32-ia32": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@koromix/koffi-win32-ia32/-/koffi-win32-ia32-3.3.2.tgz", + "integrity": "sha512-knegFlqbXsYfWcbIsAHMrKHqVbLctqzYD9xW3+GfO1Dyt+xe1xY8YDiadjRaWtKkLz5uF1aJD886EfBZUhECLA==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "funding": { + "url": "https://liberapay.com/Koromix" + } + }, + "node_modules/@koromix/koffi-win32-x64": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@koromix/koffi-win32-x64/-/koffi-win32-x64-3.3.2.tgz", + "integrity": "sha512-OWc6s6gziEabkQj+xc+ZNaf5g69hc/DQJLBcmbhxJAifAdXDgj9vB5d8hcjS2mTHjBeAIqQ4nkd9d/Jc7OUuHw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "funding": { + "url": "https://liberapay.com/Koromix" + } + }, + "node_modules/@mixmark-io/domino": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@mixmark-io/domino/-/domino-2.2.0.tgz", + "integrity": "sha512-Y28PR25bHXUg88kCV7nivXrP2Nj2RueZ3/l/jdx6J9f8J4nsEGcgX0Qe6lt7Pa+J79+kPiJU3LguR6O/6zrLOw==", + "license": "BSD-2-Clause" + }, + "node_modules/@modelcontextprotocol/client": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@modelcontextprotocol/client/-/client-2.0.0.tgz", + "integrity": "sha512-8f1OghQ2rjzIOfqgUCP+8GiUWqRs89njoWLNqAe8kWmDePv3s1fZXseej+QXemssEuuOvLLmLO/kqM3IQHtISw==", + "license": "MIT", + "dependencies": { + "@modelcontextprotocol/core": "2.0.0", + "cross-spawn": "^7.0.5", + "eventsource": "^3.0.2", + "eventsource-parser": "^3.0.0", + "jose": "^6.1.3", + "pkce-challenge": "^5.0.0", + "zod": "^4.2.0" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@modelcontextprotocol/core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@modelcontextprotocol/core/-/core-2.0.0.tgz", + "integrity": "sha512-pJCEwGG7Lfr/+PQp9ZTwKXNeO5wzbfKL7H3MYpCorM4oFBoQrdjnBgEoqG+RjhsvS1FKrDbKux+M1HhlnGWqcA==", + "license": "MIT", + "dependencies": { + "zod": "^4.2.0" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@octokit/openapi-types": { + "version": "29.0.1", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-29.0.1.tgz", + "integrity": "sha512-9qWOMFNxxLokERcms42rU0PTLqQmVs7g5E41TI4mCOxmpFayD1rfC7XxOL55cG9MBZLFlC31BrR37myMKardwg==", + "license": "MIT" + }, + "node_modules/@octokit/openapi-webhooks-types": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-webhooks-types/-/openapi-webhooks-types-12.1.0.tgz", + "integrity": "sha512-WiuzhOsiOvb7W3Pvmhf8d2C6qaLHXrWiLBP4nJ/4kydu+wpagV5Fkz9RfQwV2afYzv3PB+3xYgp4mAdNGjDprA==", + "license": "MIT" + }, + "node_modules/@octokit/request-error": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-7.1.2.tgz", + "integrity": "sha512-XZRuT3xZ84D3gYErI1DZvhJ33dCWVV6uzBtWkaBB4TvA/L6eOeTZodxLFVB44bBEEo3vEx7y00UfX1tBLrtLRg==", + "license": "MIT", + "dependencies": { + "@octokit/types": "^18.0.0" + }, + "engines": { + "node": ">= 20" + } + }, + "node_modules/@octokit/types": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-18.0.0.tgz", + "integrity": "sha512-l6bAF43PNxkJp6g+W4PjoUSSkxHomXw2nOum5CTftJz1NlV3vu93NImgOYtLf6CbBUb5j+fiuzW0PPQ5JTSvZA==", + "license": "MIT", + "dependencies": { + "@octokit/openapi-types": "^29.0.1" + } + }, + "node_modules/@octokit/webhooks": { + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/@octokit/webhooks/-/webhooks-14.2.0.tgz", + "integrity": "sha512-da6KbdNCV5sr1/txD896V+6W0iamFWrvVl8cHkBSPT+YlvmT3DwXa4jxZnQc+gnuTEqSWbBeoSZYTayXH9wXcw==", + "license": "MIT", + "dependencies": { + "@octokit/openapi-webhooks-types": "12.1.0", + "@octokit/request-error": "^7.0.0", + "@octokit/webhooks-methods": "^6.0.0" + }, + "engines": { + "node": ">= 20" + } + }, + "node_modules/@octokit/webhooks-methods": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@octokit/webhooks-methods/-/webhooks-methods-6.0.0.tgz", + "integrity": "sha512-MFlzzoDJVw/GcbfzVC1RLR36QqkTLUf79vLVO3D+xn7r0QgxnFoLZgtrzxiQErAjFUOdH6fas2KeQJ1yr/qaXQ==", + "license": "MIT", + "engines": { + "node": ">= 20" + } + }, + "node_modules/@opentelemetry/api": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.1.tgz", + "integrity": "sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q==", + "license": "Apache-2.0", + "peer": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@opentelemetry/api-logs": { + "version": "0.220.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.220.0.tgz", + "integrity": "sha512-CmVa4ImJ+ynfrPMNaAXHET6Bhb44SwzmfyVJFq9ni2jgXJR/l7C6gfVFddNmHP+ZOkP9cf4f9DBe68qVLTHc9w==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api": "^1.3.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@opentelemetry/core": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-2.9.0.tgz", + "integrity": "sha512-m2nckMT80NnmjTYSPjJQObBJ+8dgkoajEOUbznL8AHZ3T3yHRk2P7gI1PhEBc1+lOnrYE9UWrWHqJDsmqjmNbw==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/semantic-conventions": "^1.29.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/exporter-logs-otlp-http": { + "version": "0.220.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-logs-otlp-http/-/exporter-logs-otlp-http-0.220.0.tgz", + "integrity": "sha512-8186thl+pTw64iz/qEEen5oJZoZ/gO73XruChdaGlYdWOdBIQ42r+vHLf6a7vIDqTD4b8ZOoMlyxptanECaI9A==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api-logs": "0.220.0", + "@opentelemetry/core": "2.9.0", + "@opentelemetry/otlp-exporter-base": "0.220.0", + "@opentelemetry/otlp-transformer": "0.220.0", + "@opentelemetry/sdk-logs": "0.220.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/otlp-exporter-base": { + "version": "0.220.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.220.0.tgz", + "integrity": "sha512-CXYo8UD5Mn9YbgebO2EL4wejtA+gxLmLiu6HCk2KH2BR7XhFN6/6p1UlCb23DYCjeYkndevLHuejCCN1yx4+OQ==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "2.9.0", + "@opentelemetry/otlp-transformer": "0.220.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/otlp-transformer": { + "version": "0.220.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-transformer/-/otlp-transformer-0.220.0.tgz", + "integrity": "sha512-lXGrv7KXZ0gNH9SVNUaa6vv6phVYGvJxfXAlMbzbakiXru75f5MZl8Z7oqiMMQD77riVHJCFlQvbZs/VVN2/4A==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api-logs": "0.220.0", + "@opentelemetry/core": "2.9.0", + "@opentelemetry/resources": "2.9.0", + "@opentelemetry/sdk-logs": "0.220.0", + "@opentelemetry/sdk-metrics": "2.9.0", + "@opentelemetry/sdk-trace": "2.9.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/otlp-transformer/node_modules/@opentelemetry/resources": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-2.9.0.tgz", + "integrity": "sha512-jyA5MBLQ+Dkl3+JsZkUoUvL7yHvU64kLsvpXKarWm6347Sl1t1bXFTFykUePNpT5WH5pm9a2Qtt03iIYQhZ1Fg==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "2.9.0", + "@opentelemetry/semantic-conventions": "^1.29.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.3.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/resources": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-2.11.0.tgz", + "integrity": "sha512-Ie7+8q8MDF4FAEQCKVMTx3ReUvxiIAgIiiW3c9JdmP8+HMcDy20puT+AHjexnExgnbvBxjQ9fjkFDWrikJ2jQA==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "2.11.0", + "@opentelemetry/semantic-conventions": "^1.29.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.3.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/resources/node_modules/@opentelemetry/core": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-2.11.0.tgz", + "integrity": "sha512-7YP44XH0tV6+Mb54x2YGf84i7yi+31MBZlE8JwvozkxyTvXbSp10X7cI7YE49ChJ3shMJoBmCJF3+1QFBJctGA==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/semantic-conventions": "^1.29.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-logs": { + "version": "0.220.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-logs/-/sdk-logs-0.220.0.tgz", + "integrity": "sha512-WywcTkQtv2iNmt+6y5Kcd4rzvx9bLVsBa2Nwcmg01IUaBTkTow3W4d9KE5vNBpEDtb9tp21WcRBY/lANRrApYA==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api-logs": "0.220.0", + "@opentelemetry/core": "2.9.0", + "@opentelemetry/resources": "2.9.0", + "@opentelemetry/semantic-conventions": "^1.29.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.4.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-logs/node_modules/@opentelemetry/resources": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-2.9.0.tgz", + "integrity": "sha512-jyA5MBLQ+Dkl3+JsZkUoUvL7yHvU64kLsvpXKarWm6347Sl1t1bXFTFykUePNpT5WH5pm9a2Qtt03iIYQhZ1Fg==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "2.9.0", + "@opentelemetry/semantic-conventions": "^1.29.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.3.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-metrics": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics/-/sdk-metrics-2.9.0.tgz", + "integrity": "sha512-Xx8RGS4H5XEBl01WuCreMIpiah9cCXMbSkeuIePPdD2cUpq/vUzYmj8E/MK1OsbOc93FuAD4jfn2WOacKwLn7Q==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "2.9.0", + "@opentelemetry/resources": "2.9.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.9.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-metrics/node_modules/@opentelemetry/resources": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-2.9.0.tgz", + "integrity": "sha512-jyA5MBLQ+Dkl3+JsZkUoUvL7yHvU64kLsvpXKarWm6347Sl1t1bXFTFykUePNpT5WH5pm9a2Qtt03iIYQhZ1Fg==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "2.9.0", + "@opentelemetry/semantic-conventions": "^1.29.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.3.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-trace": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace/-/sdk-trace-2.9.0.tgz", + "integrity": "sha512-sGA19HvtrrSKYsseHphluH6j3p6Xa3fqc7c7y8f/7mYWejc1lyDFcpSdD1kYa50HCLUeEo4zA5bW0pniaPszuw==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "2.9.0", + "@opentelemetry/resources": "2.9.0", + "@opentelemetry/semantic-conventions": "^1.29.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.3.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-trace/node_modules/@opentelemetry/resources": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-2.9.0.tgz", + "integrity": "sha512-jyA5MBLQ+Dkl3+JsZkUoUvL7yHvU64kLsvpXKarWm6347Sl1t1bXFTFykUePNpT5WH5pm9a2Qtt03iIYQhZ1Fg==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "2.9.0", + "@opentelemetry/semantic-conventions": "^1.29.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.3.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/semantic-conventions": { + "version": "1.43.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.43.0.tgz", + "integrity": "sha512-eSYWTm620tTk45EKSedaUL8MFYI8hW164hIXsgIHyxu3VobUB3fFCu5t0hQby6OoWRPsG1KkKUG2M5UadiLiVg==", + "license": "Apache-2.0", + "engines": { + "node": ">=14" + } + }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.5.tgz", + "integrity": "sha512-zgXFLzW3Ap33e6d0Wlj4MGIm6Ce8O89n/apUaGNB/jx+hw+ruWEp7EwGUshdLKVRCxZW12fp9r40E1mQrf/34g==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.1.tgz", + "integrity": "sha512-vW1GmwMZNnL+gMRaovlh9yZX74kc+TTU3FObkkurpMaRtBfLP3ldjS9KQWlwZgraRE0+dheEEoAxdzcJQ8eXZg==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.1.tgz", + "integrity": "sha512-GpptLrs57adMSuHi3VNj0mAF8dwh36LMaYF6XyJ6JMWlVsc+t42tm1HSEDmOs3A8fC9yyeisgLhsTVQokOZ0zw==", + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.1" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.2.tgz", + "integrity": "sha512-b1UQwcEZ4yCnMCD8DAL1VlbvBJE9/IX4FTIp7BG1xYpf29SLazLSrqUkj4w7Y5y7cCVP6E5tcqqcI0xemPkHug==", + "license": "BSD-3-Clause" + }, + "node_modules/@sec-ant/readable-stream": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz", + "integrity": "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==", + "license": "MIT" + }, + "node_modules/@sindresorhus/merge-streams": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", + "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@smithy/core": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.35.0.tgz", + "integrity": "sha512-zRMhfkByhT2snNdr1si24vJitU6Cr9ix2MikUfWmkAgp4jrNP0GcKSP5YvwQ+TlI8AZXER5QOGJn3JsVtSD9/A==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.19.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/credential-provider-imds": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.5.2.tgz", + "integrity": "sha512-A9uSdn72ozbRUSit0eib0TW7nXuNPlaeM0zcGkJ+nE6tFcSDbnmtwoxbTCFBukVQcszDAyvsd7+rTduPTXpygg==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/core": "^3.33.2", + "@smithy/types": "^4.17.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/fetch-http-handler": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-5.8.0.tgz", + "integrity": "sha512-ycSJu3tFAQ4v04CBB0agqFMVsSQ1iG3yw+SpgxRqKfaURpQD4CZ8Wn0zPMmSnOuTpTh65Vz+EA0rMrw089wvkA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/core": "^3.33.3", + "@smithy/types": "^4.18.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/is-array-buffer": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz", + "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/node-http-handler": { + "version": "4.7.3", + "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.7.3.tgz", + "integrity": "sha512-/jPhevcTFPMVl6KNjbaI47iOg1zxC7IsnX4PQDGVZKMFceOXtB8IEYaB7a9VvkP/3oC60WzTeKocvSI7vLT0vA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/core": "^3.24.3", + "@smithy/types": "^4.14.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/signature-v4": { + "version": "5.7.4", + "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.7.4.tgz", + "integrity": "sha512-tHy0K0VtqNd5Y7Y41h0a0Lhh0L1GzC08dTWg0F7vRJWFtTENg7IZikf3wQkanYIRdb7ngoIPMTmqgUi401fEeQ==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/core": "^3.35.0", + "@smithy/types": "^4.19.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/types": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-4.19.0.tgz", + "integrity": "sha512-r7jh49VJxGerfAcTQA6gXcKc+98zOp/tqRwzYjgOE+iSQsP6cEU1hq2QzbuipmP68QtYdY9wKEhiCQZIzHgZ4Q==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/util-buffer-from": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz", + "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/is-array-buffer": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/util-utf8": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", + "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/util-buffer-from": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@stablelib/base64": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/base64/-/base64-1.0.1.tgz", + "integrity": "sha512-1bnPQqSxSuc3Ii6MhBysoWCg58j97aUjuCSZrGSmDxNqtytIi0k8utUenAwTZN4V5mXXYGsVUI9zeBqy+jBOSQ==", + "license": "MIT" + }, + "node_modules/@standard-schema/spec": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", + "license": "MIT" + }, + "node_modules/@swc/helpers": { + "version": "0.5.23", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.23.tgz", + "integrity": "sha512-5lSsMOTXURePglDfvuAQUqkGek9Hg2kksOYay2m0+XR++b2NWYL/4sWyuvVBIs8oKnJaxkdi9whaL/sqN13afw==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.8.0" + } + }, + "node_modules/@types/node": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-26.6.3.tgz", + "integrity": "sha512-dsqMQQoeTLqu9wynDD00q573mNzso3IdQOAfHRJqLCcmCFPoGo9A1bDpUcv/9tnKpErQWv9uKeGfl37EIS02Yg==", + "license": "MIT", + "dependencies": { + "undici-types": "~8.9.0" + } + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "license": "MIT" + }, + "node_modules/@vscode/ripgrep": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/@vscode/ripgrep/-/ripgrep-1.18.0.tgz", + "integrity": "sha512-ns5lWe44tSfbTMbVUsyB+I1819PVSw4AdpgK0RNkzfWfwy6+3IUNSxwSrfTno1/oWaS/hERNz+XLWVyga2aJBQ==", + "license": "MIT", + "optionalDependencies": { + "@vscode/ripgrep-darwin-arm64": "1.18.0", + "@vscode/ripgrep-darwin-x64": "1.18.0", + "@vscode/ripgrep-linux-arm": "1.18.0", + "@vscode/ripgrep-linux-arm64": "1.18.0", + "@vscode/ripgrep-linux-ia32": "1.18.0", + "@vscode/ripgrep-linux-ppc64": "1.18.0", + "@vscode/ripgrep-linux-riscv64": "1.18.0", + "@vscode/ripgrep-linux-s390x": "1.18.0", + "@vscode/ripgrep-linux-x64": "1.18.0", + "@vscode/ripgrep-win32-arm64": "1.18.0", + "@vscode/ripgrep-win32-ia32": "1.18.0", + "@vscode/ripgrep-win32-x64": "1.18.0" + } + }, + "node_modules/@vscode/ripgrep-darwin-arm64": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/@vscode/ripgrep-darwin-arm64/-/ripgrep-darwin-arm64-1.18.0.tgz", + "integrity": "sha512-r3ktHSvbFycQNF6sl7sNDPocpsI7J+mEzh1IaZFkY0spm3k2Z9t8hPAeOK7+p0l6p6/swkQC14XWX01low+94Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@vscode/ripgrep-darwin-x64": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/@vscode/ripgrep-darwin-x64/-/ripgrep-darwin-x64-1.18.0.tgz", + "integrity": "sha512-25b4gWbL138dGuQU244ebCKKc0q05ULBMoFSz9oAEUHNeqK/lOJViDS7DRvbDazzAzSEdan391Znks/R5mkaTQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@vscode/ripgrep-linux-arm": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/@vscode/ripgrep-linux-arm/-/ripgrep-linux-arm-1.18.0.tgz", + "integrity": "sha512-GDAvufNDHu8zqLEmXstalQF0Wh6wQvdsBi/Vg3Yi3CK4a8XoFXqqXVEHEZ9xQz3t0NfoSEc9JbvK9DDS6FxyxQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@vscode/ripgrep-linux-arm64": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/@vscode/ripgrep-linux-arm64/-/ripgrep-linux-arm64-1.18.0.tgz", + "integrity": "sha512-lQ/5zTG++U0E3IhVgS4EPTTn/U4okncaRMM5GOFfOYZywS4nuD31GhkHbNYlDk5CuDC68+hYJ0/eQeyCKJDA+g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@vscode/ripgrep-linux-ia32": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/@vscode/ripgrep-linux-ia32/-/ripgrep-linux-ia32-1.18.0.tgz", + "integrity": "sha512-YWLkSUtFd4Jh5EepIhA9RJSfv3uMAVMo+2rBIGHPBnvgLrZciIs2cDKei1/p6Wc/aCzUoHyMAg2R6tw4ZCBKGg==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@vscode/ripgrep-linux-ppc64": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/@vscode/ripgrep-linux-ppc64/-/ripgrep-linux-ppc64-1.18.0.tgz", + "integrity": "sha512-quXVY8fwQ8O/lvU1yrSqSl3jlUzysRSb+AfUfCL/tRtphxsKlFvPAejryZ6vg4Bgvn8XL74xb4qMCDmWgYrT5w==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@vscode/ripgrep-linux-riscv64": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/@vscode/ripgrep-linux-riscv64/-/ripgrep-linux-riscv64-1.18.0.tgz", + "integrity": "sha512-f5kBQBrWfQt8Q7OhSORuNDei5dkYagBj3y4jImSUXGMy8B/Ke7SltSRcUtjPv166FAFfHCAmWuZp3+cWnX2/Vw==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@vscode/ripgrep-linux-s390x": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/@vscode/ripgrep-linux-s390x/-/ripgrep-linux-s390x-1.18.0.tgz", + "integrity": "sha512-rTOcJFGGcl2c07RUOWUo4U1ndnemKhY6A9hnMB18uk7jSgJc0d/QLBGWMWpumdtoJtpizn/wIv5mXIisJukusQ==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@vscode/ripgrep-linux-x64": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/@vscode/ripgrep-linux-x64/-/ripgrep-linux-x64-1.18.0.tgz", + "integrity": "sha512-mQ3bVrUpnD2vs7QT0vX90Lt0cnUq467uFtEktIdsJJmW296RoSULRGqWgzG1AKxyBpNDD6l4ZO4qKf6SgyC23Q==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@vscode/ripgrep-win32-arm64": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/@vscode/ripgrep-win32-arm64/-/ripgrep-win32-arm64-1.18.0.tgz", + "integrity": "sha512-vfTIjq1OHnzUjxZcHVQAMbnggp8dpGf+0QKFOZHwWPqFwXxQC8eCWM+5NUdoJ6yrElCeMzoUTXoK/LdZaniB+Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@vscode/ripgrep-win32-ia32": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/@vscode/ripgrep-win32-ia32/-/ripgrep-win32-ia32-1.18.0.tgz", + "integrity": "sha512-//rfAE+BOw5AC2EMmepmiE36jUuevtQYNQqqlw1s3m9FlRxjxEut97RkRPHAu9BG4mSojatZx+kXZXNdyI9caQ==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@vscode/ripgrep-win32-x64": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/@vscode/ripgrep-win32-x64/-/ripgrep-win32-x64-1.18.0.tgz", + "integrity": "sha512-KNPvtElldqILHdnAetujPaowkNbpqJy3ssIGGN6F6Kve9Qi+nNLI2DN01O83JjCEVQbCzl8Ov3QZ9Eov3BR8Dg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@xterm/addon-serialize": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@xterm/addon-serialize/-/addon-serialize-0.14.0.tgz", + "integrity": "sha512-uteyTU1EkrQa2Ux6P/uFl2fzmXI46jy5uoQMKEOM0fKTyiW7cSn0WrFenHm5vO5uEXX/GpwW/FgILvv3r0WbkA==", + "license": "MIT" + }, + "node_modules/@xterm/headless": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@xterm/headless/-/headless-6.0.0.tgz", + "integrity": "sha512-5Yj1QINYCyzrZtf8OFIHi47iQtI+0qYFPHmouEfG8dHNxbZ9Tb9YGSuLcsEwj9Z+OL75GJqPyJbyoFer80a2Hw==", + "license": "MIT", + "workspaces": [ + "addons/*" + ] + }, + "node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/ajv": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/bignumber.js": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.1.tgz", + "integrity": "sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/bowser": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.14.1.tgz", + "integrity": "sha512-tzPjzCxygAKWFOJP011oxFHs57HzIhOEracIgAePE4pqB3LikALKnSzUyU4MGs9/iCEUuHlAJTjTc5M+u7YEGg==", + "license": "MIT" + }, + "node_modules/brotli": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/brotli/-/brotli-1.3.3.tgz", + "integrity": "sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg==", + "license": "MIT", + "dependencies": { + "base64-js": "^1.1.2" + } + }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", + "license": "BSD-3-Clause" + }, + "node_modules/bundle-name": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.1.tgz", + "integrity": "sha512-DdH81/zPLVS11EUgWq3tEu/xn+EzljlMYooDNdzWEnFha3R3NBMpMV1UqYIpjYHV/SgpFKMIX1Oh7o06SjM/oA==", + "license": "MIT", + "dependencies": { + "run-applescript": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/commander": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-15.0.0.tgz", + "integrity": "sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg==", + "license": "MIT", + "engines": { + "node": ">=22.12.0" + } + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "license": "MIT", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.2.tgz", + "integrity": "sha512-o8vI5RE5A6EVVOd9o41jKp41aJom+QTEO/Bx8MYNjexMo/Bv2WOjUfZr+aL0WnYSgymUy6zeguqLTsIhV0gMvQ==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "compressible": "~2.0.18", + "debug": "2.6.9", + "destroy": "1.2.0", + "negotiator": "~0.6.4", + "on-headers": "~1.1.0", + "safe-buffer": "5.2.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/compression/node_modules/negotiator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.1.0.tgz", + "integrity": "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/default-browser": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.5.1.tgz", + "integrity": "sha512-m1pAzaJgZ/gssEqlOhJkPJp8Xly7QyW6xcrkUa2KKcDeDSEMP7X8xipU3snUcfisTQx0w1AGae+9UtJSfVnXGw==", + "license": "MIT", + "dependencies": { + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.1.tgz", + "integrity": "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/dfa": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/dfa/-/dfa-1.2.0.tgz", + "integrity": "sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q==", + "license": "MIT" + }, + "node_modules/diff": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-9.0.0.tgz", + "integrity": "sha512-svtcdpS8CgJyqAjEQIXdb3OjhFVVYjzGAPO8WGCmRbrml64SPw/jJD4GoE98aR7r25A0XcgrK3F02yw9R/vhQw==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/eventsource": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-3.0.7.tgz", + "integrity": "sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==", + "license": "MIT", + "dependencies": { + "eventsource-parser": "^3.0.1" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/eventsource-parser": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.1.1.tgz", + "integrity": "sha512-EKN1vKAMcZ8MlYMpaNuxN6R9yakzH6uajHcHVTqWJzvu5pWw9DyhbP35HH8MVBQ+dZjAfDxk+A8NiR9KWaXiyQ==", + "license": "MIT", + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/execa": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-10.0.1.tgz", + "integrity": "sha512-ge98qjkRK4IB7tL7Ju/6qmm5LHoH1eEMt5FNZrz3f4UIYhF28lggX20z3FaX1sgc67msLEn0N0BscOs29iuwyw==", + "license": "MIT", + "dependencies": { + "@sindresorhus/merge-streams": "^4.0.0", + "figures": "^6.1.0", + "get-stream": "^9.0.1", + "human-signals": "^8.0.1", + "is-plain-obj": "^4.1.0", + "is-stream": "^4.0.1", + "npm-run-path": "^6.0.0", + "pretty-ms": "^9.3.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^4.0.0", + "which-command": "^0.1.0", + "yoctocolors": "^2.1.2" + }, + "engines": { + "node": ">=22" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fast-sha256": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-sha256/-/fast-sha256-1.3.0.tgz", + "integrity": "sha512-n11RGP/lrWEFI/bWdygLxhI+pVeo1ZYIVwvvPkW7azl/rOy+F3HYRZ2K5zeE9mmkhQppyv9sQFx0JM9UabnpPQ==", + "license": "Unlicense" + }, + "node_modules/fast-uri": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.8.tgz", + "integrity": "sha512-GZMtZUTNRpOVIECoXwLNZS5xUGE+mVNbTB8h/7Rwh2TFWcBQiPzTgyZi05BF9UMZKkLJv8XBRJTlU7zg8+ZfMg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, + "node_modules/fflate": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.3.tgz", + "integrity": "sha512-tbZNuJrLwGUp3zshBtdy4W+ORxZuIh8a5ilyIEQDC5rY1f3U20JMry0Ll3WBzU58EZKsEuJFXhb5gwv8CsPvgA==", + "license": "MIT" + }, + "node_modules/figures": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-6.1.0.tgz", + "integrity": "sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==", + "license": "MIT", + "dependencies": { + "is-unicode-supported": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/fontkit": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/fontkit/-/fontkit-2.0.4.tgz", + "integrity": "sha512-syetQadaUEDNdxdugga9CpEYVaQIxOwk7GlwZWWZ19//qW4zE5bknOKeMBDYAASwnpaSHKJITRLMF9m1fp3s6g==", + "license": "MIT", + "dependencies": { + "@swc/helpers": "^0.5.12", + "brotli": "^1.3.2", + "clone": "^2.1.2", + "dfa": "^1.2.0", + "fast-deep-equal": "^3.1.3", + "restructure": "^3.0.0", + "tiny-inflate": "^1.0.3", + "unicode-properties": "^1.4.0", + "unicode-trie": "^2.0.0" + } + }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "license": "MIT", + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/gaxios": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-7.3.1.tgz", + "integrity": "sha512-kB3rzJV7d9juLZh8/56QTXCwQfxyhdOMdyYk1HdQKFtF8TJTDTZQJtixWIwXdE9Jji91mC41DUNpjleo4L4eAQ==", + "license": "Apache-2.0", + "dependencies": { + "extend": "^3.0.2", + "https-proxy-agent": "^7.0.1", + "node-fetch": "^3.3.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/gcp-metadata": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-8.1.2.tgz", + "integrity": "sha512-zV/5HKTfCeKWnxG0Dmrw51hEWFGfcF2xiXqcA3+J90WDuP0SvoiSO5ORvcBsifmx/FoIjgQN3oNOGaQ5PhLFkg==", + "license": "Apache-2.0", + "dependencies": { + "gaxios": "^7.0.0", + "google-logging-utils": "^1.0.0", + "json-bigint": "^1.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/get-stream": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", + "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", + "license": "MIT", + "dependencies": { + "@sec-ant/readable-stream": "^0.4.1", + "is-stream": "^4.0.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/google-auth-library": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-10.9.1.tgz", + "integrity": "sha512-i1ydyHrqcIxXkWh/uBmVkzCvIuq5yiK2ATndIe5XxKholrG/MTYP9xGYka4sQhrbIAgGjL2B6NOE7rFaiF3fXw==", + "license": "Apache-2.0", + "dependencies": { + "base64-js": "^1.3.0", + "ecdsa-sig-formatter": "^1.0.11", + "gaxios": "^7.1.4", + "gcp-metadata": "8.1.2", + "google-logging-utils": "1.1.3", + "jws": "^4.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/google-logging-utils": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/google-logging-utils/-/google-logging-utils-1.1.3.tgz", + "integrity": "sha512-eAmLkjDjAFCVXg7A1unxHsLf961m6y17QFqXqAXGj/gVkKFrEICfStRfwUlGNfeCEjNRa32JEWOUTlYXPyyKvA==", + "license": "Apache-2.0", + "engines": { + "node": ">=14" + } + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/http-proxy-agent/node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/http-proxy-agent/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/https-proxy-agent/node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/human-signals": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-8.0.1.tgz", + "integrity": "sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/ipaddr.js": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.5.0.tgz", + "integrity": "sha512-aq+t5NAc+cS6rZQQVWC2x98CPqGtKKTMDd4Gaodv0wShnItdKg/51djkGJ1hqH+Oy0ivDftCbSLCQob8zso01w==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-in-ssh": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-in-ssh/-/is-in-ssh-1.0.0.tgz", + "integrity": "sha512-jYa6Q9rH90kR1vKB6NM7qqd1mge3Fx4Dhw5TVlK1MUBqhEOuCagrEHMevNuCcbECmXZ0ThXkRm+Ymr51HwEPAw==", + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "license": "MIT", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-stream": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", + "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-unicode-supported": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", + "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-wsl": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.1.tgz", + "integrity": "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==", + "license": "MIT", + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/jose": { + "version": "6.2.12", + "resolved": "https://registry.npmjs.org/jose/-/jose-6.2.12.tgz", + "integrity": "sha512-9NiFmJEex0sy2Dk58j2UGBSHgUs2ypF9eZSu4L6vjOX3Dp96Sw1F3uL+H+D1sx02jZZdzUT0HgvCy59CuvXcWw==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.2.tgz", + "integrity": "sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbi": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/jsbi/-/jsbi-4.3.2.tgz", + "integrity": "sha512-9fqMSQbhJykSeii05nxKl4m6Eqn2P6rOlYiS+C5Dr/HPIU/7yZxu5qzbs40tgaFORiw2Amd0mirjxatXYMkIew==", + "license": "Apache-2.0" + }, + "node_modules/json-bigint": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", + "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", + "license": "MIT", + "dependencies": { + "bignumber.js": "^9.0.0" + } + }, + "node_modules/json-schema-to-ts": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/json-schema-to-ts/-/json-schema-to-ts-3.1.1.tgz", + "integrity": "sha512-+DWg8jCJG2TEnpy7kOm/7/AxaYoaRbjVB4LFZLySZlWn8exGs3A4OLJR966cVvU26N7X9TWxl+Jsw7dzAqKT6g==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "ts-algebra": "^2.0.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, + "node_modules/jwa": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.1.tgz", + "integrity": "sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==", + "license": "MIT", + "dependencies": { + "buffer-equal-constant-time": "^1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.1.tgz", + "integrity": "sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==", + "license": "MIT", + "dependencies": { + "jwa": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/koffi": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/koffi/-/koffi-3.3.2.tgz", + "integrity": "sha512-f9Rrcmpy7lQs0ayJfhaxiG5OLp1aZjXKOFLXo7Gax6snJRKmdpYnYEOkpQ7ImCBrbvOdzFT06EP+FaLZv35W7Q==", + "hasInstallScript": true, + "license": "MIT", + "funding": { + "url": "https://liberapay.com/Koromix" + }, + "optionalDependencies": { + "@koromix/koffi-android-arm64": "3.3.2", + "@koromix/koffi-android-x64": "3.3.2", + "@koromix/koffi-darwin-arm64": "3.3.2", + "@koromix/koffi-darwin-x64": "3.3.2", + "@koromix/koffi-freebsd-arm64": "3.3.2", + "@koromix/koffi-freebsd-ia32": "3.3.2", + "@koromix/koffi-freebsd-x64": "3.3.2", + "@koromix/koffi-linux-arm": "3.3.2", + "@koromix/koffi-linux-arm64": "3.3.2", + "@koromix/koffi-linux-ia32": "3.3.2", + "@koromix/koffi-linux-loong64": "3.3.2", + "@koromix/koffi-linux-ppc64": "3.3.2", + "@koromix/koffi-linux-riscv64": "3.3.2", + "@koromix/koffi-linux-x64": "3.3.2", + "@koromix/koffi-openbsd-arm64": "3.3.2", + "@koromix/koffi-openbsd-ia32": "3.3.2", + "@koromix/koffi-openbsd-x64": "3.3.2", + "@koromix/koffi-win32-arm64": "3.3.2", + "@koromix/koffi-win32-ia32": "3.3.2", + "@koromix/koffi-win32-x64": "3.3.2" + } + }, + "node_modules/long": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz", + "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==", + "license": "Apache-2.0" + }, + "node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.1.0.tgz", + "integrity": "sha512-NMPBRMJgiQHjbd8phG3Vebdx4kZ1H121rbl5IkMqeOsahptB9BKo/d7oJ3zTXqTgagn2bWlNSXkh0QUGM31RYg==", + "license": "MIT", + "dependencies": { + "content-type": "^2.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "license": "MIT" + }, + "node_modules/node-addon-native-custom-loader": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/node-addon-native-custom-loader/-/node-addon-native-custom-loader-0.1.6.tgz", + "integrity": "sha512-QaW7d8lTcGCXrpNVyFDtID3vrpa7vFdpcY9pql2/9FGFSe7tcSnhQOKZX+1aOWq+pB1d2ZwNnKAdQI5nD9wAXA==", + "license": "MIT", + "engines": { + "node": ">=20" + } + }, + "node_modules/node-addon-require-builtin": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/node-addon-require-builtin/-/node-addon-require-builtin-0.1.6.tgz", + "integrity": "sha512-P9ZGMDkloktirLJSggfpxsJ9jog5FItE1Omxpj50UBn3LhD6TS6/yx0jEBXsCGK3P9EtW1EpQVA1QL5gb11GaQ==", + "license": "MIT", + "dependencies": { + "node-addon-native-custom-loader": "0.1.6" + }, + "engines": { + "node": ">=20" + }, + "optionalDependencies": { + "node-addon-require-builtin-darwin-arm64": "0.1.6", + "node-addon-require-builtin-darwin-x64": "0.1.6", + "node-addon-require-builtin-linux-arm64-gnu": "0.1.6", + "node-addon-require-builtin-linux-x64-gnu": "0.1.6", + "node-addon-require-builtin-win32-arm64-msvc": "0.1.6", + "node-addon-require-builtin-win32-ia32-msvc": "0.1.6", + "node-addon-require-builtin-win32-x64-msvc": "0.1.6" + } + }, + "node_modules/node-addon-require-builtin-darwin-arm64": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/node-addon-require-builtin-darwin-arm64/-/node-addon-require-builtin-darwin-arm64-0.1.6.tgz", + "integrity": "sha512-KpaAh0mDcIScoJs7gD/mjXREcENJ023/DgWW3GrlLXFVzCE6bK6wFrTFpNfnkxZZP8yWsEWOg1o5T+uQ7olgTQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "node-addon-native-custom-loader": "0.1.6" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/node-addon-require-builtin-darwin-x64": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/node-addon-require-builtin-darwin-x64/-/node-addon-require-builtin-darwin-x64-0.1.6.tgz", + "integrity": "sha512-lh9o5rCvmkH8MZgBBmhyKzJRc1M1hJzgXLTFzB6iomRXNH9P1DKjN2nAJLmvGrdTij47Wcch1JVnlV5AG0cRCQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "node-addon-native-custom-loader": "0.1.6" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/node-addon-require-builtin-linux-arm64-gnu": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/node-addon-require-builtin-linux-arm64-gnu/-/node-addon-require-builtin-linux-arm64-gnu-0.1.6.tgz", + "integrity": "sha512-DrQA3aS1LBn4NgrewbZkzSAWdSSRPD/fYO5AkQfvriQ/TQD3E2adB012sZ5eac6p9TAcTjUIYhk395AYVxo4Zw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "dependencies": { + "node-addon-native-custom-loader": "0.1.6" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/node-addon-require-builtin-linux-x64-gnu": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/node-addon-require-builtin-linux-x64-gnu/-/node-addon-require-builtin-linux-x64-gnu-0.1.6.tgz", + "integrity": "sha512-8wCxrFlB2Ld5DhxIm2P+nNFnQ0wjzDE5sXF68EUhLH0X+z313B07TUQFMBKCOkyhZIIBh590dBmhHCuA43No2A==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "dependencies": { + "node-addon-native-custom-loader": "0.1.6" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/node-addon-require-builtin-win32-arm64-msvc": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/node-addon-require-builtin-win32-arm64-msvc/-/node-addon-require-builtin-win32-arm64-msvc-0.1.6.tgz", + "integrity": "sha512-NET6DiLnKrK2DHuO4NNN+zJz0CFas+RwpJlGY0d3A3A3tc5dJQqZXgw8DzLOn4cSTAQCaDq6+LbPyYX7jE2F3Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "dependencies": { + "node-addon-native-custom-loader": "0.1.6" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/node-addon-require-builtin-win32-ia32-msvc": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/node-addon-require-builtin-win32-ia32-msvc/-/node-addon-require-builtin-win32-ia32-msvc-0.1.6.tgz", + "integrity": "sha512-oj4G51r81kJ3E2t5KknKhBNb8TmTWzc/t9x7jkBF9JeRd+1a0kr99mVJVYwJNxq9d3jpt7dgBdI8mxaomuXOEQ==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "dependencies": { + "node-addon-native-custom-loader": "0.1.6" + }, + "engines": { + "node": ">=20 <23" + } + }, + "node_modules/node-addon-require-builtin-win32-x64-msvc": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/node-addon-require-builtin-win32-x64-msvc/-/node-addon-require-builtin-win32-x64-msvc-0.1.6.tgz", + "integrity": "sha512-ZQ+6thVzQBOFamW7s3t2YqHsw99EEPBNH1uAjvCx4QfnjFJTsu6I/H3prpN8i6cSt6gjnQtArfWc2LXN2ufcJQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "dependencies": { + "node-addon-native-custom-loader": "0.1.6" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "deprecated": "Use your platform's native DOMException instead", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-fetch": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "license": "MIT", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, + "node_modules/node-pty": { + "version": "1.2.0-beta.15", + "resolved": "https://registry.npmjs.org/node-pty/-/node-pty-1.2.0-beta.15.tgz", + "integrity": "sha512-vORSzHXi4Ofl7HemVWpuudLqCPdaQb4LfpRCUpE5HPxhp4JYscl8zZwxh11p26v2wvW24WMwnMfLjhRLixrfxA==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "node-addon-api": "^7.1.0" + } + }, + "node_modules/npm-run-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-6.0.0.tgz", + "integrity": "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==", + "license": "MIT", + "dependencies": { + "path-key": "^4.0.0", + "unicorn-magic": "^0.3.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/on-headers": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz", + "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/open": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/open/-/open-11.0.4.tgz", + "integrity": "sha512-++Zlftm0kVLPmzC06t6epuWmcRMDbI4z5P3NNX979WA/k23+NtSOynEGzsVfZwguKw2mi5umVgnBlJQMwRz4Pg==", + "license": "MIT", + "dependencies": { + "default-browser": "^5.5.1", + "define-lazy-prop": "^3.0.0", + "is-in-ssh": "^1.0.0", + "is-inside-container": "^1.0.0", + "powershell-utils": "^0.2.1", + "wsl-utils": "^1.0.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/openai": { + "version": "6.40.0", + "resolved": "https://registry.npmjs.org/openai/-/openai-6.40.0.tgz", + "integrity": "sha512-MWtTjd/gQt4jpbji61NTgFWJLoY/PdRJ6wG9/ZDRMYNMlBKrCrSlkLI+KgHP1vR1qT6LKSAyAqIxno6lcK9JiA==", + "license": "Apache-2.0", + "peerDependencies": { + "ws": "^8.18.0", + "zod": "^3.25 || ^4.0" + }, + "peerDependenciesMeta": { + "ws": { + "optional": true + }, + "zod": { + "optional": true + } + } + }, + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "license": "MIT", + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==", + "license": "MIT" + }, + "node_modules/parse-ms": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-4.0.0.tgz", + "integrity": "sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/partial-json": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/partial-json/-/partial-json-0.1.7.tgz", + "integrity": "sha512-Njv/59hHaokb/hRUjce3Hdv12wd60MtM9Z5Olmn+nehe0QDAsRtRbJPvJ0Z91TusF0SuZRIvnM+S4l6EIP8leA==", + "license": "MIT" + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz", + "integrity": "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkce-challenge": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/pkce-challenge/-/pkce-challenge-5.0.1.tgz", + "integrity": "sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ==", + "license": "MIT", + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/powershell-utils": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/powershell-utils/-/powershell-utils-0.2.1.tgz", + "integrity": "sha512-C+y9x90UElAddDZmV4qOx9W53B61PO7cIqWz2dQsWlwswuq4mr8NEwytdGKboYbQlGZ3awrkTeNvcZiZNHnQ8A==", + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pretty-ms": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.3.1.tgz", + "integrity": "sha512-HzMy3Geq23nVALD/M2LliU+F+M+gVNsvkQWWqeBZ8HDiCgzo6YPJ/Omrmtq24EFrIsk0a3EkQGEd7bDOo+IhGA==", + "license": "MIT", + "dependencies": { + "parse-ms": "^4.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/protobufjs": { + "version": "7.6.6", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.6.6.tgz", + "integrity": "sha512-dYDWdjSl5RNb7SgPxGQcRU+GtvP7s2fpkrY0r432PcOIaZ0/rBcxEZnQN67iJhFuQiVw754JDoPruPCNdGsbjg==", + "hasInstallScript": true, + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.5", + "@protobufjs/eventemitter": "^1.1.1", + "@protobufjs/fetch": "^1.1.1", + "@protobufjs/float": "^1.0.2", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.1", + "@types/node": ">=13.7.0", + "long": "^5.3.2" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve.exports": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz", + "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/restructure": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/restructure/-/restructure-3.0.2.tgz", + "integrity": "sha512-gSfoiOEA0VPE6Tukkrr7I0RBdE0s7H1eFCDBk05l1KIQT1UIKNc5JZy6jdyW6eYH3aR3g5b3PuL77rq0hvwtAw==", + "license": "MIT" + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/run-applescript": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz", + "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "license": "ISC", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, + "node_modules/semver": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sharp": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.35.5.tgz", + "integrity": "sha512-Ywn4OnzGukp7CDMrp08RQ50YKmuwG47brZgIVPTvBaaAfQlRlygrRqSrxdCiL9M+LlzLBiJ68IR1QqvzHyjC7g==", + "license": "Apache-2.0", + "dependencies": { + "@img/colour": "^1.1.0", + "detect-libc": "^2.1.2", + "semver": "^7.8.5" + }, + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.35.5", + "@img/sharp-darwin-x64": "0.35.5", + "@img/sharp-freebsd-wasm32": "0.35.5", + "@img/sharp-libvips-darwin-arm64": "1.3.4", + "@img/sharp-libvips-darwin-x64": "1.3.4", + "@img/sharp-libvips-linux-arm": "1.3.4", + "@img/sharp-libvips-linux-arm64": "1.3.4", + "@img/sharp-libvips-linux-ppc64": "1.3.4", + "@img/sharp-libvips-linux-riscv64": "1.3.4", + "@img/sharp-libvips-linux-s390x": "1.3.4", + "@img/sharp-libvips-linux-x64": "1.3.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.3.4", + "@img/sharp-libvips-linuxmusl-x64": "1.3.4", + "@img/sharp-linux-arm": "0.35.5", + "@img/sharp-linux-arm64": "0.35.5", + "@img/sharp-linux-ppc64": "0.35.5", + "@img/sharp-linux-riscv64": "0.35.5", + "@img/sharp-linux-s390x": "0.35.5", + "@img/sharp-linux-x64": "0.35.5", + "@img/sharp-linuxmusl-arm64": "0.35.5", + "@img/sharp-linuxmusl-x64": "0.35.5", + "@img/sharp-webcontainers-wasm32": "0.35.5", + "@img/sharp-win32-arm64": "0.35.5", + "@img/sharp-win32-ia32": "0.35.5", + "@img/sharp-win32-x64": "0.35.5" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/sherpa-onnx-darwin-arm64": { + "version": "1.13.8", + "resolved": "https://registry.npmjs.org/sherpa-onnx-darwin-arm64/-/sherpa-onnx-darwin-arm64-1.13.8.tgz", + "integrity": "sha512-FPNgJMgnWVl/KhRTIhG3KL3A4Om63Rn4YKXc9/uHY7SzLcvqLJLc/h7UBWJwduXvv7K18t5NpxHR6XgXn4sjWw==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/sherpa-onnx-darwin-x64": { + "version": "1.13.8", + "resolved": "https://registry.npmjs.org/sherpa-onnx-darwin-x64/-/sherpa-onnx-darwin-x64-1.13.8.tgz", + "integrity": "sha512-7BLRpjM6w4f9W46/nmkmq8lEKUayhebvcpslCVQ+6QN2uReYlZEMDZlSpXMjme+hUFrPfRz8P3UNq8ep/4d19g==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/sherpa-onnx-linux-arm64": { + "version": "1.13.8", + "resolved": "https://registry.npmjs.org/sherpa-onnx-linux-arm64/-/sherpa-onnx-linux-arm64-1.13.8.tgz", + "integrity": "sha512-Tlg7a70b/Wge3OF8IgTHF9jhSVCsLyKQKhwc4BsJ5A+dL/SrFtGBjzuHp4XeLhiiOT7afCxX5PdSn/D4c8Lnuw==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/sherpa-onnx-linux-x64": { + "version": "1.13.8", + "resolved": "https://registry.npmjs.org/sherpa-onnx-linux-x64/-/sherpa-onnx-linux-x64-1.13.8.tgz", + "integrity": "sha512-6plnhjagsSeTntCgnlag86hWbs/uZE9Crms1LgOb68/1nKsIQjMd+WG519m+aPwT6TrsBOiEMzrx41t8sL5L5g==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/sherpa-onnx-node": { + "version": "1.13.8", + "resolved": "https://registry.npmjs.org/sherpa-onnx-node/-/sherpa-onnx-node-1.13.8.tgz", + "integrity": "sha512-MsDMBdhLFTZ1GwvcGSSQhnS7g/EA8OMH6IYysCVUOM7j8Icty9KRc0E6YT1A5fWBsZwRfKOeh88QC95aRvS8ag==", + "license": "Apache-2.0", + "optionalDependencies": { + "sherpa-onnx-darwin-arm64": "^1.13.8", + "sherpa-onnx-darwin-x64": "^1.13.8", + "sherpa-onnx-linux-arm64": "^1.13.8", + "sherpa-onnx-linux-x64": "^1.13.8", + "sherpa-onnx-win-ia32": "^1.13.8", + "sherpa-onnx-win-x64": "^1.13.8" + } + }, + "node_modules/sherpa-onnx-win-ia32": { + "version": "1.13.8", + "resolved": "https://registry.npmjs.org/sherpa-onnx-win-ia32/-/sherpa-onnx-win-ia32-1.13.8.tgz", + "integrity": "sha512-H0Ojln9hfvM+pxWqW0cnjB/XK8/JPq4/k0IWu2JpY5Z458M3zv+XC3Hu+wmot3AoH/K1Bgt23n/tTKtPV9x8qg==", + "cpu": [ + "ia32" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/sherpa-onnx-win-x64": { + "version": "1.13.8", + "resolved": "https://registry.npmjs.org/sherpa-onnx-win-x64/-/sherpa-onnx-win-x64-1.13.8.tgz", + "integrity": "sha512-oZF1c9VPOKtMwn83Bboc5XSWL+76BRoyB3eUuVnCknBKxwSULZU2Foia9VHWzU+n4I12rPsP6z6H9Rp1hD9o8g==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/standardwebhooks": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/standardwebhooks/-/standardwebhooks-1.1.1.tgz", + "integrity": "sha512-bCbX9ZEyFkWPsRz7Bl3NuQUJohmwGSev/yhr7vhaGPlc4AfIrspIRa6cPTBuI1ItmrTDJ4d/S2hCsfe4+vQGnQ==", + "license": "MIT", + "dependencies": { + "@stablelib/base64": "^1.0.0", + "fast-sha256": "^1.3.0" + } + }, + "node_modules/strip-final-newline": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz", + "integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tiny-inflate": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz", + "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==", + "license": "MIT" + }, + "node_modules/ts-algebra": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ts-algebra/-/ts-algebra-2.0.0.tgz", + "integrity": "sha512-FPAhNPFMrkwz76P7cdjdmiShwMynZYN6SgOujD1urY4oNm80Ou9oMdmbR45LotcKOXoy7wSmHkRFE6Mxbrhefw==", + "license": "MIT" + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/turndown": { + "version": "7.2.4", + "resolved": "https://registry.npmjs.org/turndown/-/turndown-7.2.4.tgz", + "integrity": "sha512-I8yFsfRzmzK0WV1pNNOA4A7y4RDfFxPRxb3t+e3ui14qSGOxGtiSP6GjeX+Y6CHb7HYaFj7ECUD7VE5kQMZWGQ==", + "license": "MIT", + "dependencies": { + "@mixmark-io/domino": "^2.2.0" + }, + "engines": { + "node": ">=18", + "npm": ">=9" + } + }, + "node_modules/typebox": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/typebox/-/typebox-1.3.7.tgz", + "integrity": "sha512-meKuifc33Pccx0O6PdIzYMq3Og8zvP4TIi/a+Bw3AEMZMxOD0+RHGQvpglEe6Zdy3wZ8nqn/j95h8LUZLk/6Hg==", + "license": "MIT" + }, + "node_modules/undici": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/undici/-/undici-8.11.2.tgz", + "integrity": "sha512-u4UB2/IrKdU6lFxumHmmo1a3fCQO5tzQllRorfoRS63txhrB7xTpSn1PftwC4qEHkOaqP95fCWW4lJzwErwzhQ==", + "license": "MIT", + "engines": { + "node": ">=22.19.0" + } + }, + "node_modules/undici-types": { + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.9.0.tgz", + "integrity": "sha512-KTDyRTYX8sWmKXAikPHHSyc63CRPETMctyjKFupcC6OBLXT3xsN0e9aF7m+mIXutFWpUXuedtowG7iLOzp0kQg==", + "license": "MIT" + }, + "node_modules/unicode-properties": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/unicode-properties/-/unicode-properties-1.4.1.tgz", + "integrity": "sha512-CLjCCLQ6UuMxWnbIylkisbRj31qxHPAurvena/0iwSVbQ2G1VY5/HjV0IRabOEbDHlzZlRdCrD4NhB0JtU40Pg==", + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.0", + "unicode-trie": "^2.0.0" + } + }, + "node_modules/unicode-trie": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-2.0.0.tgz", + "integrity": "sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==", + "license": "MIT", + "dependencies": { + "pako": "^0.2.5", + "tiny-inflate": "^1.0.0" + } + }, + "node_modules/unicorn-magic": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", + "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/web-streams-polyfill": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-command": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/which-command/-/which-command-0.1.0.tgz", + "integrity": "sha512-XZyoF5/5hZtXitIwzrU4NKK+Wtbb9aB9CezUEw2Q0wlYK8NUYQxC1rRXgNueYLtBAJwXIb+/tFVk4dozciNJMA==", + "license": "MIT", + "bin": { + "which-command": "cli.js" + }, + "engines": { + "node": ">=22" + }, + "funding": { + "url": "https://github.com/sindresorhus/which-command?sponsor=1" + } + }, + "node_modules/ws": { + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.22.0.tgz", + "integrity": "sha512-Ydggc987+RO0AnWtZ/7Wq9FtNvcrL1b/RO0ud9mWjUPgDrsAAwQSF51sm2hm1XofbU/4jkpGEsLFsZZxU+1DOg==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/wsl-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-1.0.0.tgz", + "integrity": "sha512-Hl0ZOAs672vg+06kfujwRhoS6/jehvULrlFkuF2dRu6pHgA8U06h3xqNIqNNU1LTXPcedxByAR4GS6pwQK0mgA==", + "license": "MIT", + "dependencies": { + "is-wsl": "^3.1.0", + "powershell-utils": "^0.1.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/wsl-utils/node_modules/powershell-utils": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/powershell-utils/-/powershell-utils-0.1.0.tgz", + "integrity": "sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A==", + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "license": "MIT" + }, + "node_modules/yaml": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.9.1.tgz", + "integrity": "sha512-3NxN8+78OdzbT7C/WjGsyfPAtJaN3FNDsWxv7Y7mcDsT/oOmgW8BpyQQFFBnvZE3j9Y2Sdz1ULFLezL7Eb2yFw==", + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" + } + }, + "node_modules/yoctocolors": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.2.0.tgz", + "integrity": "sha512-xYqdZFUK/VYazNl/oCDYN+3WloWQwMfZxBoiNt6qNyk+xfOdi598muWE42rNZFp1kNOiqW936q5RhUdnpqElSg==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zod": { + "version": "4.6.5", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.6.5.tgz", + "integrity": "sha512-v5l/aFXZQeai4awLbOpSoHecE9UiMrnfx75tEXLjNonXVARxQ5mOeipTjROUchszUNCqnE+hqAMujRsRHsut2Q==", + "license": "MIT", + "peer": true, + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + } + } +} diff --git a/mateclaw-server/src/main/resources/dsh/locks/0.2.0-rc.1.json b/mateclaw-server/src/main/resources/dsh/locks/0.2.0-rc.1.json new file mode 100644 index 00000000..bc347699 --- /dev/null +++ b/mateclaw-server/src/main/resources/dsh/locks/0.2.0-rc.1.json @@ -0,0 +1,9124 @@ +{ + "name": "mateclaw-dsh-runtime", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "dependencies": { + "@deepseek-ai/dsh": "0.2.0-rc.1" + }, + "name": "mateclaw-dsh-runtime", + "version": "1.0.0" + }, + "node_modules/@agentclientprotocol/sdk": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@agentclientprotocol/sdk/-/sdk-1.4.0.tgz", + "integrity": "sha512-/eufudw+aFY1LKLolT6yFE6UMmYRl7fMJ/DEONSIyR6wI3slHWITBsANRGqXEY8FRzqUxwh7QEaGiZHcJPVThg==", + "license": "Apache-2.0", + "peerDependencies": { + "zod": "^3.25.0 || ^4.0.0" + } + }, + "node_modules/@anthropic-ai/sdk": { + "version": "0.123.0", + "resolved": "https://registry.npmjs.org/@anthropic-ai/sdk/-/sdk-0.123.0.tgz", + "integrity": "sha512-Y9oX9mPNGZClHQOFqrWRk43Srcu/UHuPq3rfxxOq7JgW0gi+lJA2MAOK4Ul3k/+AUrwRWFJvd0tK3oC0Pw25dw==", + "license": "MIT", + "dependencies": { + "json-schema-to-ts": "^3.1.1", + "standardwebhooks": "^1.0.0" + }, + "bin": { + "anthropic-ai-sdk": "bin/cli" + }, + "peerDependencies": { + "zod": "^3.25.0 || ^4.0.0" + }, + "peerDependenciesMeta": { + "zod": { + "optional": true + } + } + }, + "node_modules/@aws-crypto/sha256-browser": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-5.2.0.tgz", + "integrity": "sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha256-js": "^5.2.0", + "@aws-crypto/supports-web-crypto": "^5.2.0", + "@aws-crypto/util": "^5.2.0", + "@aws-sdk/types": "^3.222.0", + "@aws-sdk/util-locate-window": "^3.0.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-crypto/sha256-js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-5.2.0.tgz", + "integrity": "sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/util": "^5.2.0", + "@aws-sdk/types": "^3.222.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-crypto/supports-web-crypto": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-5.2.0.tgz", + "integrity": "sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-crypto/util": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-5.2.0.tgz", + "integrity": "sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.222.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-sdk/client-bedrock-runtime": { + "version": "3.1048.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-bedrock-runtime/-/client-bedrock-runtime-3.1048.0.tgz", + "integrity": "sha512-u+NT61JZEkRFtpL0CAw1N1dwxnaLgwVXQl/zjJxTGgLyS/jTIdg2SdoEoCTHxgDyCnqa1HEi9QOoE9/pYRNpOQ==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/core": "^3.974.11", + "@aws-sdk/credential-provider-node": "^3.972.42", + "@aws-sdk/eventstream-handler-node": "^3.972.16", + "@aws-sdk/middleware-eventstream": "^3.972.12", + "@aws-sdk/middleware-websocket": "^3.972.19", + "@aws-sdk/token-providers": "3.1048.0", + "@aws-sdk/types": "^3.973.8", + "@smithy/core": "^3.24.2", + "@smithy/fetch-http-handler": "^5.4.2", + "@smithy/node-http-handler": "^4.7.2", + "@smithy/types": "^4.14.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/core": { + "version": "3.978.1", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.978.1.tgz", + "integrity": "sha512-LbY9aGsEiznDWmUc30Nwv3aIX/+dbwTx8KfS0yOC3NPYMO+O91e6jkT1azf34FwjOndq8/Q+RcVVZz5xnerwdg==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.974.6", + "@aws-sdk/xml-builder": "^3.972.41", + "@aws/lambda-invoke-store": "^0.3.0", + "@smithy/core": "^3.35.0", + "@smithy/signature-v4": "^5.7.3", + "@smithy/types": "^4.19.0", + "bowser": "^2.11.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-env": { + "version": "3.972.72", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.72.tgz", + "integrity": "sha512-xTKO/FWJPozTIXbozVnVGoNBhaGba8TBcx+KyUjRVeOlXE+dUc7GTR1cLvu0uTdIdmemzaFbqqCshXeZA1fZew==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.978.1", + "@aws-sdk/types": "^3.974.6", + "@smithy/core": "^3.35.0", + "@smithy/types": "^4.19.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-http": { + "version": "3.972.74", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.972.74.tgz", + "integrity": "sha512-u91E/hT8f4d1xy0Jl7VG4nVKJ3lxbrZkoBTeSVoJdWBiSEUMwMS/9+e0H/aJVQV//Lt5wuzP+E69v4aRSsNTmw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.978.1", + "@aws-sdk/types": "^3.974.6", + "@smithy/core": "^3.35.0", + "@smithy/fetch-http-handler": "^5.8.0", + "@smithy/node-http-handler": "^4.12.1", + "@smithy/types": "^4.19.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.12.1.tgz", + "integrity": "sha512-ThMkboGeONWXAelq9FvGsuJC4rOi+qyC4/zhUF58xYpxUg5sQKx2VXZYJmtNjr4dSuBJ1HeJXETQILCz3wOHvw==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/core": "^3.33.3", + "@smithy/types": "^4.18.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.973.17", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.973.17.tgz", + "integrity": "sha512-ged4KXdBkvIC81bLvNHHuQKdKak/VXhQTR1NWYTTqW0474nlmsxy9O/vlgTIohDDWH3xpBdtVMZRyjb+DnocDA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.978.1", + "@aws-sdk/credential-provider-env": "^3.972.72", + "@aws-sdk/credential-provider-http": "^3.972.74", + "@aws-sdk/credential-provider-login": "^3.972.79", + "@aws-sdk/credential-provider-process": "^3.972.72", + "@aws-sdk/credential-provider-sso": "^3.973.16", + "@aws-sdk/credential-provider-web-identity": "^3.972.78", + "@aws-sdk/nested-clients": "^3.997.46", + "@aws-sdk/types": "^3.974.6", + "@smithy/core": "^3.35.0", + "@smithy/credential-provider-imds": "^4.5.2", + "@smithy/types": "^4.19.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-login": { + "version": "3.972.79", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-login/-/credential-provider-login-3.972.79.tgz", + "integrity": "sha512-L+Z85anONJd8MaiuraO4wRxATCdEejBZ3K3eymzWI5JPXa9sOS9CkIm72PBKqXKX+Z9p9NGMX5AIMXm0LEflgw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.978.1", + "@aws-sdk/nested-clients": "^3.997.46", + "@aws-sdk/types": "^3.974.6", + "@smithy/core": "^3.35.0", + "@smithy/types": "^4.19.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-node": { + "version": "3.972.84", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.84.tgz", + "integrity": "sha512-oHt854odINVwzwsh+c5x69j0ajm4DbqqqVJ+O1ECsCIZeMDAbzFpXItaqP7UZstJj/ATdTk/KFSH0LaNAgV+kA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/credential-provider-env": "^3.972.72", + "@aws-sdk/credential-provider-http": "^3.972.74", + "@aws-sdk/credential-provider-ini": "^3.973.17", + "@aws-sdk/credential-provider-process": "^3.972.72", + "@aws-sdk/credential-provider-sso": "^3.973.16", + "@aws-sdk/credential-provider-web-identity": "^3.972.78", + "@aws-sdk/types": "^3.974.6", + "@smithy/core": "^3.35.0", + "@smithy/credential-provider-imds": "^4.5.2", + "@smithy/types": "^4.19.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-process": { + "version": "3.972.72", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.972.72.tgz", + "integrity": "sha512-rLIp2xbMjX/k9/od7APpqq1ZgXXnV0pOL1Th3ZsL8Wu0TRtBsDTVS8iPqcfRFcHakFxPvR04OSTv2ka2qOb/2A==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.978.1", + "@aws-sdk/types": "^3.974.6", + "@smithy/core": "^3.35.0", + "@smithy/types": "^4.19.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.973.16", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.973.16.tgz", + "integrity": "sha512-IGihaJfFZYacJJr/odqILCoK7W/mvrZ7cuK7ECn3sAu4vLC6u0V8bS7mCGbdugJ8Aum2tnvqmx0F2MRFp2rn9g==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.978.1", + "@aws-sdk/nested-clients": "^3.997.46", + "@aws-sdk/token-providers": "3.1138.0", + "@aws-sdk/types": "^3.974.6", + "@smithy/core": "^3.35.0", + "@smithy/types": "^4.19.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers": { + "version": "3.1138.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.1138.0.tgz", + "integrity": "sha512-GpyAr0DD63YOEmYFM6Df+gJuIgC92MMTiBK4FTKfxii5MJ9ge20epR7LyroulscYlG89J+ZB2ivFDPjvfQhzdw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.978.1", + "@aws-sdk/nested-clients": "^3.997.46", + "@aws-sdk/types": "^3.974.6", + "@smithy/core": "^3.35.0", + "@smithy/types": "^4.19.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.972.78", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.972.78.tgz", + "integrity": "sha512-/y9WvNtlcPBGLR0qc1a+9J/xtYZfVczvLUOuXaVWylzttH7ewsxwHtjmiJSolNrVSDorIxHGHMU61CbonRkmwA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.978.1", + "@aws-sdk/nested-clients": "^3.997.46", + "@aws-sdk/types": "^3.974.6", + "@smithy/core": "^3.35.0", + "@smithy/types": "^4.19.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/eventstream-handler-node": { + "version": "3.972.35", + "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-handler-node/-/eventstream-handler-node-3.972.35.tgz", + "integrity": "sha512-a8xilRoRaalvSPZdfrs0VY3/BPc0uYhXW56Z/k6nmZ5Vk430LHeowf9APIPq8utM3tMJSNGSSuJMlB9YrPsN+A==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.974.6", + "@smithy/core": "^3.35.0", + "@smithy/types": "^4.19.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/middleware-eventstream": { + "version": "3.972.30", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-eventstream/-/middleware-eventstream-3.972.30.tgz", + "integrity": "sha512-B6gvZlcnRBNWraKgyEjKsbhv+VjtbyHmpU7hmtTHzXpDSxHPpCJnYLpglEOOsF+SFne20DbZC5IVC1aNr2Pb4A==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.974.6", + "@smithy/core": "^3.35.0", + "@smithy/types": "^4.19.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/middleware-websocket": { + "version": "3.972.54", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-websocket/-/middleware-websocket-3.972.54.tgz", + "integrity": "sha512-bhESdru8u8KosziH8jcVta/NM/dNreeRz2+2aU86si5bfBYOiJ6IiqD+9U4URUcU5WJO3Yw+jO3GLDIHlscXMQ==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.978.1", + "@aws-sdk/types": "^3.974.6", + "@smithy/core": "^3.35.0", + "@smithy/fetch-http-handler": "^5.8.0", + "@smithy/signature-v4": "^5.7.3", + "@smithy/types": "^4.19.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@aws-sdk/nested-clients": { + "version": "3.997.46", + "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.997.46.tgz", + "integrity": "sha512-oRxtBcka/JGHGs9l9p9IVajGoTP8vTPmoAzdHGy4Qcy9P5vPnDf6nhIeM/COQNY9k/OahImTRaLkHftoXvfcmQ==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.978.1", + "@aws-sdk/signature-v4-multi-region": "^3.996.47", + "@aws-sdk/types": "^3.974.6", + "@smithy/core": "^3.35.0", + "@smithy/fetch-http-handler": "^5.8.0", + "@smithy/node-http-handler": "^4.12.1", + "@smithy/types": "^4.19.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.12.1.tgz", + "integrity": "sha512-ThMkboGeONWXAelq9FvGsuJC4rOi+qyC4/zhUF58xYpxUg5sQKx2VXZYJmtNjr4dSuBJ1HeJXETQILCz3wOHvw==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/core": "^3.33.3", + "@smithy/types": "^4.18.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/signature-v4-multi-region": { + "version": "3.996.47", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.996.47.tgz", + "integrity": "sha512-Zk08macMvQTHzQJCLJVkOlviVoqwYMrpXv4lmLN7b7sAbiMoOK7Go0NYdR5UeF+MW8LIbRmwrNy9u/5VvX1U5g==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.974.6", + "@smithy/signature-v4": "^5.7.3", + "@smithy/types": "^4.19.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/token-providers": { + "version": "3.1048.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.1048.0.tgz", + "integrity": "sha512-k0y/GcuesuSfWyUM0WamrGyeZmltRYaPbHO82UDA6mZ/doB+FOHKutikPAtSXMn/hDz970cF+iRuuiYO9VEbAA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.974.11", + "@aws-sdk/nested-clients": "^3.997.9", + "@aws-sdk/types": "^3.973.8", + "@smithy/core": "^3.24.2", + "@smithy/types": "^4.14.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/types": { + "version": "3.974.6", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.974.6.tgz", + "integrity": "sha512-v/clNZzZnDxGyvpHMOGpJKVXFAExJzUNAAjaWGdcx8QAcXLGwTaOkw33p5SHAi0YAioK32xB3hWwOekRVfmfKg==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.19.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/util-locate-window": { + "version": "3.965.10", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.965.10.tgz", + "integrity": "sha512-ycwH6Zd2GhuSqdXX9ihbCjeGTB6xOJs+O3+Jb8/zDG9978XU80qs75dfkPJRMNKe5MvBZPuNeFpd4JZKPoUF4g==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/xml-builder": { + "version": "3.972.41", + "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.972.41.tgz", + "integrity": "sha512-ctjVSyCMegrWfXlx6VqzSBFI6UqmQ5ZlnfMhdLIiWmhoH8UAQxSCP5N3OpG7X3k4LnS7ou74C4mt20+bfTW2aQ==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.19.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws/lambda-invoke-store": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@aws/lambda-invoke-store/-/lambda-invoke-store-0.3.0.tgz", + "integrity": "sha512-sl4Bm6yiMNYrZKkqqDFWN0UfnWhlS8ivKxrYl+6t0gCLrqr8y3B2IqZZbFRkfaVVp7C/baApyh71P+LeE1A2sQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", + "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.29.7", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.7.tgz", + "integrity": "sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@deepseek-ai/cordis": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@deepseek-ai/cordis/-/cordis-4.0.4.tgz", + "integrity": "sha512-obgyxqWAmFn3Re8kvsuUnyW+ihrz6eJCnJO4fh1cQzDtmPYz/zzVeUkH9R94I0OwSVOocK67Kgakm04j/oQXzg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/cosmokit": "~1.8.5", + "@standard-schema/spec": "^1.1.0" + }, + "bin": { + "cordis": "bin.js" + }, + "peerDependencies": { + "@deepseek-ai/cordis-plugin-include": "~1.0.9", + "@deepseek-ai/cordis-plugin-loader": "~1.0.5" + }, + "peerDependenciesMeta": { + "@deepseek-ai/cordis-plugin-include": { + "optional": true + }, + "@deepseek-ai/cordis-plugin-loader": { + "optional": true + } + } + }, + "node_modules/@deepseek-ai/cordis-plugin-group": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@deepseek-ai/cordis-plugin-group/-/cordis-plugin-group-1.0.4.tgz", + "integrity": "sha512-/7tuY5pMQetHava4v6QUeOa4CwZA+mleNvbIoj+iqEmzkYUtlXbLqhzJIcbnDa/Hxgr1jaCwROrI77nuLyeCFg==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/cordis-plugin-loader": "~1.0.5" + } + }, + "node_modules/@deepseek-ai/cordis-plugin-include": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@deepseek-ai/cordis-plugin-include/-/cordis-plugin-include-1.0.9.tgz", + "integrity": "sha512-Xmekm7u5Kpeym6nABL4T1/Mg6aQYFZxsipB0WycmCctvX1DqAv8nCFwRmg2XMx/f7EbZgNEbXQwJfabcMu8zxQ==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/cosmokit": "~1.8.5", + "js-yaml": "^4.1.0" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/cordis-plugin-loader": "~1.0.5" + } + }, + "node_modules/@deepseek-ai/cordis-plugin-loader": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@deepseek-ai/cordis-plugin-loader/-/cordis-plugin-loader-1.0.5.tgz", + "integrity": "sha512-200huL2ttWcjyeYllvPYn+qMR7I89qy8MhZasbHltPzB/KMrSfsyoCYKdCGc5KqPGj5iJugcmibQzjINMO9I+Q==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/cosmokit": "~1.8.5", + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "node-addon-require-builtin": "^0.1.6" + }, + "peerDependenciesMeta": { + "node-addon-require-builtin": { + "optional": true + } + } + }, + "node_modules/@deepseek-ai/cordis-plugin-timer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@deepseek-ai/cordis-plugin-timer/-/cordis-plugin-timer-1.1.6.tgz", + "integrity": "sha512-/nZC7G637LIDF8G+lhF4OSXl1uFRuNAZqv1x11CDGLSjUpmIayePfzABEGTDEKAY+IBivg2DIXBr/sjjaLZxqg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/cosmokit": "~1.8.5" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/cosmokit": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@deepseek-ai/cosmokit/-/cosmokit-1.8.5.tgz", + "integrity": "sha512-LXsrlem9z8dq4sLflj2yuCuYX7KqhdzF5hZly3eZyuTo8d6oDSOXuEgC5DbQWKW+lksm6zmOutQLsP/ma6wR6A==", + "license": "MIT" + }, + "node_modules/@deepseek-ai/dsh": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh/-/dsh-0.2.0-rc.1.tgz", + "integrity": "sha512-F6hKNVoGgBDIzSiyRaIlobq4UD6cwxUjh+nwXqcDmufDh87TE1izsYzs8L5cZNpF2JmPnFM1mXRNnRJ0cs43ng==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/cordis-plugin-include": "~1.0.9", + "@deepseek-ai/cordis-plugin-loader": "~1.0.5", + "@deepseek-ai/cordis-plugin-timer": "~1.1.6", + "@deepseek-ai/dsh-acp-app": "0.2.0-rc.1", + "@deepseek-ai/dsh-agent-instructions": "0.2.0-rc.1", + "@deepseek-ai/dsh-agent-preset": "0.2.0-rc.1", + "@deepseek-ai/dsh-agent-tool-presentation": "0.2.0-rc.1", + "@deepseek-ai/dsh-app-boot": "0.2.0-rc.1", + "@deepseek-ai/dsh-atomic-write": "0.2.0-rc.1", + "@deepseek-ai/dsh-base": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-agent-preset": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-cordis": "0.2.0-rc.1", + "@deepseek-ai/dsh-cmdline": "0.2.0-rc.1", + "@deepseek-ai/dsh-command-compact": "0.2.0-rc.1", + "@deepseek-ai/dsh-command-goal": "0.2.0-rc.1", + "@deepseek-ai/dsh-compaction-basic": "0.2.0-rc.1", + "@deepseek-ai/dsh-compaction-tool-result-pruner": "0.2.0-rc.1", + "@deepseek-ai/dsh-cordis-client-runner": "0.2.0-rc.1", + "@deepseek-ai/dsh-experimental-agent-team-profile": "0.2.0-rc.1", + "@deepseek-ai/dsh-experimental-auto-review": "0.2.0-rc.1", + "@deepseek-ai/dsh-experimental-schedule-bundle": "0.2.0-rc.1", + "@deepseek-ai/dsh-experimental-voice-input-bundle": "0.2.0-rc.1", + "@deepseek-ai/dsh-fs-local": "0.2.0-rc.1", + "@deepseek-ai/dsh-goal": "0.2.0-rc.1", + "@deepseek-ai/dsh-goal-round-driver": "0.2.0-rc.1", + "@deepseek-ai/dsh-headless": "0.2.0-rc.1", + "@deepseek-ai/dsh-hmr": "0.2.0-rc.1", + "@deepseek-ai/dsh-home-paths": "0.2.0-rc.1", + "@deepseek-ai/dsh-hooks-claude-code": "0.2.0-rc.1", + "@deepseek-ai/dsh-hooks-codex": "0.2.0-rc.1", + "@deepseek-ai/dsh-http-proxy": "0.2.0-rc.1", + "@deepseek-ai/dsh-jobs-local": "0.2.0-rc.1", + "@deepseek-ai/dsh-launch-environment": "0.2.0-rc.1", + "@deepseek-ai/dsh-mcp-client": "0.2.0-rc.1", + "@deepseek-ai/dsh-mcp-resources": "0.2.0-rc.1", + "@deepseek-ai/dsh-persona": "0.2.0-rc.1", + "@deepseek-ai/dsh-plan-mode": "0.2.0-rc.1", + "@deepseek-ai/dsh-plugin-manager": "0.2.0-rc.1", + "@deepseek-ai/dsh-pwsh-local": "0.2.0-rc.1", + "@deepseek-ai/dsh-pwsh-sandbox": "0.2.0-rc.1", + "@deepseek-ai/dsh-schedule": "0.2.0-rc.1", + "@deepseek-ai/dsh-sdk-app": "0.2.0-rc.1", + "@deepseek-ai/dsh-sdk-minimal": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-projection": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-reference": "0.2.0-rc.1", + "@deepseek-ai/dsh-skill": "0.2.0-rc.1", + "@deepseek-ai/dsh-skill-filesystem": "0.2.0-rc.1", + "@deepseek-ai/dsh-skill-office": "0.2.0-rc.1", + "@deepseek-ai/dsh-terminal": "0.2.0-rc.1", + "@deepseek-ai/dsh-terminal-bash": "0.2.0-rc.1", + "@deepseek-ai/dsh-time-context": "0.2.0-rc.1", + "@deepseek-ai/dsh-tmux-context": "0.2.0-rc.1", + "@deepseek-ai/dsh-token-meter": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-ask-user": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-bash": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-bash-persistent": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-cordis": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-fs": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-fs-search": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-goal": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-jobs": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-present": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-pwsh": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-pwsh-persistent": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-ralph": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-skill": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-str-replace-editor": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-subagent": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-subagent-control": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-todo": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-web": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-workflow": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-workspace-dependencies": "0.2.0-rc.1", + "@deepseek-ai/dsh-web-app": "0.2.0-rc.1", + "@deepseek-ai/dsh-webhook": "0.2.0-rc.1", + "@deepseek-ai/dsh-webhook-github": "0.2.0-rc.1", + "@deepseek-ai/dsh-workflow-ptc": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4", + "commander": "^15.0.0", + "js-yaml": "^4.2.0", + "node-addon-require-builtin": "^0.1.6" + }, + "bin": { + "dsh": "lib/bin.js" + } + }, + "node_modules/@deepseek-ai/dsh-acp": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-acp/-/dsh-acp-0.2.0-rc.1.tgz", + "integrity": "sha512-mI/WObgzWh4Ppo8Apnx5UdJUrxj46MqKAzCMIpZuWYAW5/KQw8BED4+8u35NJ+aHOcS9YEUYdNJ63MADAPqKDA==", + "license": "MIT", + "dependencies": { + "@agentclientprotocol/sdk": "1.4.0", + "@deepseek-ai/dsh-brand": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-attachment": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-mcp-client": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-persistence": "0.2.0-rc.1", + "@deepseek-ai/dsh-token-meter": "0.2.0-rc.1", + "@deepseek-ai/dsh-user-approval": "0.2.0-rc.1" + }, + "peerDependenciesMeta": { + "@deepseek-ai/dsh-token-meter": { + "optional": true + } + } + }, + "node_modules/@deepseek-ai/dsh-acp-app": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-acp-app/-/dsh-acp-app-0.2.0-rc.1.tgz", + "integrity": "sha512-Lxoy0f4BgfHKB8IHtePKTx6unB9uDsUGWJS2tafuVAKzrohDTeK/15aGHAHMZyDTMAVOmJ0TqEiT4/+dQktDHg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-acp": "0.2.0-rc.1", + "@deepseek-ai/dsh-cmdline": "0.2.0-rc.1", + "commander": "^15.0.0" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-agent": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-agent/-/dsh-agent-0.2.0-rc.1.tgz", + "integrity": "sha512-PQ4Qtu7QiI6j2n730p8RJ+u4l7ywwhVJ4NeIe/Tj86hBYYZNvNT8iMhViECn+GSepAk7GmM/1eb7e7hvmYhsKA==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-invariants": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-scope": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-projection": "0.2.0-rc.1", + "@deepseek-ai/dsh-system-prompt": "0.2.0-rc.1", + "@deepseek-ai/dsh-typert-protocol": "0.2.0-rc.1", + "@deepseek-ai/dsh-util-values": "0.2.0-rc.1", + "@deepseek-ai/dsh-workspace": "0.2.0-rc.1" + }, + "peerDependenciesMeta": { + "@deepseek-ai/dsh-workspace": { + "optional": true + } + } + }, + "node_modules/@deepseek-ai/dsh-agent-default-model": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-agent-default-model/-/dsh-agent-default-model-0.2.0-rc.1.tgz", + "integrity": "sha512-blP7HPyC1PMyCYVU22fcGdFJX0YWflNGFaVn7D2lmgd7BuD5f0o+SibFLSFr0VGU6b32ZlSGC4TABoxxBn8Btw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-config-editor": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-agent-instructions": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-agent-instructions/-/dsh-agent-instructions-0.2.0-rc.1.tgz", + "integrity": "sha512-vXFM1kC/kYp1zcVp+4+pY6NjrQKsqRLjICCT5LrFxwc1aigBeUjE9JktuSBiePLMrhHlQsZbED/R7onQQW4QTg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-util-values": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-fs": "0.2.0-rc.1", + "@deepseek-ai/dsh-home-paths": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-projection": "0.2.0-rc.1", + "@deepseek-ai/dsh-tools": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-agent-loop": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-agent-loop/-/dsh-agent-loop-0.2.0-rc.1.tgz", + "integrity": "sha512-01JWFfTcne/44tqfGLAOH0KkMicq6VVFBV1YjQbO9vj6Q0SmcHsPObm11fP0opEZIqEmdUN5wwS6LAzCjViDlg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-brand": "0.2.0-rc.1", + "@deepseek-ai/dsh-util-values": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-invariants": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-scope": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-persistence": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-projection": "0.2.0-rc.1", + "@deepseek-ai/dsh-system-prompt": "0.2.0-rc.1", + "@deepseek-ai/dsh-tools": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-agent-preset": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-agent-preset/-/dsh-agent-preset-0.2.0-rc.1.tgz", + "integrity": "sha512-PeVlycvJwwTfvhQ+habKhm3Y9Q4KhUnbf79yWyxCH64Yw0WmK1tRCjsHNuIhYY3K0MJAVa7yyTRdTnt7T9qOLQ==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/cordis-plugin-loader": "~1.0.5", + "@deepseek-ai/dsh-agent-preset-registry": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-agent-preset-registry": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-agent-preset-registry/-/dsh-agent-preset-registry-0.2.0-rc.1.tgz", + "integrity": "sha512-66oQDnV4N0vaolLb+/YjfnDlK1+HeIORqCs0kAVsDeyFCKwyxvQhy6JJdAfm8S1nhQdC5Qo8u4IQ9UjYjhlncA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-app-boot": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4", + "js-yaml": "^4.2.0", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/cordis-plugin-include": "~1.0.9", + "@deepseek-ai/cordis-plugin-loader": "~1.0.5", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-invariants": "0.2.0-rc.1", + "@deepseek-ai/dsh-scope": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-projection": "0.2.0-rc.1", + "@deepseek-ai/dsh-settings": "0.2.0-rc.1", + "@deepseek-ai/dsh-system-prompt": "0.2.0-rc.1", + "@deepseek-ai/dsh-tools": "0.2.0-rc.1", + "@deepseek-ai/dsh-typert-protocol": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-agent-tool-presentation": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-agent-tool-presentation/-/dsh-agent-tool-presentation-0.2.0-rc.1.tgz", + "integrity": "sha512-ovUSCxsEym5QDPmpXWeQcH4G3TJGzc+/Vdtag/KAQxFb0IO5ppw+3f/CfNHcHOYWiW12ybgz/ctpOlOp5g7VfA==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-tools": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-anonymous-user-id": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-anonymous-user-id/-/dsh-anonymous-user-id-0.2.0-rc.1.tgz", + "integrity": "sha512-FMR2+JfTLM4/xMREZeqXuKxSyegVBPjVuJPCumj0ZR9ZI+3R1lVQTM9cuz+Z3WnE1jtiryqnZ7KswldE45El0w==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-brand": "0.2.0-rc.1", + "@deepseek-ai/dsh-home-paths": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-api-account-controller": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-api-account-controller/-/dsh-api-account-controller-0.2.0-rc.1.tgz", + "integrity": "sha512-iT4j8HIroOJKCYBBGtvOkG/POzxjtA+Zi32UYf39RqICKlxu+Ssjf4nAjjvC7b89bwX7cA4pPDBxEaNpa5Xmwg==", + "license": "MIT", + "dependencies": { + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-deepseek-account": "0.2.0-rc.1", + "@deepseek-ai/dsh-typert-protocol": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-api-gateway": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-api-gateway/-/dsh-api-gateway-0.2.0-rc.1.tgz", + "integrity": "sha512-HoBQyk/S5HtUJaQ3GDPWV2WvTq7BxVWlJoU4d/DYbpfzPdnb94ZUzY3fgi6g+xQqW2q80zq+k9tuJpVciypR1w==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-deque": "0.2.0-rc.1", + "@deepseek-ai/dsh-timeout": "0.2.0-rc.1", + "@deepseek-ai/dsh-typert-protocol": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4", + "ws": "^8.21.0" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-client-connection": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-api-job-controller": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-api-job-controller/-/dsh-api-job-controller-0.2.0-rc.1.tgz", + "integrity": "sha512-yAvqLmDrrvWaLUVDShV3+NkkUPYcPiPaJ1bpHsStAqYxtEO4QMZMQu0jrOKvbn/kal8QeVmqs7dxhyViTbNp9g==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-typert-protocol": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-api-remotes": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-api-remotes/-/dsh-api-remotes-0.2.0-rc.1.tgz", + "integrity": "sha512-XJYSFJ6pR/12mneBwAvtgOcoBFu7qhVXYZ3M3B3qtZDnVN6i7iR5IAu90ZqqsMU1oqUgIfqfyFne4XRiii3GPg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-deque": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-util-values": "0.2.0-rc.1" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-scope": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-api-session-controller": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-api-session-controller/-/dsh-api-session-controller-0.2.0-rc.1.tgz", + "integrity": "sha512-0oSU0vdUjQycdVPvqZeEGrnBvRiKySgLOqZ/FwDYh0FjcpD8/1SKAKhsNKq8IavjiYEXluFpT55dvOEfmicEkA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-brand": "0.2.0-rc.1", + "@deepseek-ai/dsh-deque": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4", + "mime-types": "^3.0.2", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-agent-default-model": "0.2.0-rc.1", + "@deepseek-ai/dsh-agent-preset-registry": "0.2.0-rc.1", + "@deepseek-ai/dsh-api-gateway": "0.2.0-rc.1", + "@deepseek-ai/dsh-attachment": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-connection": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-file-upload": "0.2.0-rc.1", + "@deepseek-ai/dsh-commands": "0.2.0-rc.1", + "@deepseek-ai/dsh-credentials": "0.2.0-rc.1", + "@deepseek-ai/dsh-file-reference": "0.2.0-rc.1", + "@deepseek-ai/dsh-fs": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-native-command": "0.2.0-rc.1", + "@deepseek-ai/dsh-scope": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-persistence": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-projection": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-projection-cache": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-query": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-title": "0.2.0-rc.1", + "@deepseek-ai/dsh-settings": "0.2.0-rc.1", + "@deepseek-ai/dsh-skill": "0.2.0-rc.1", + "@deepseek-ai/dsh-subagent": "0.2.0-rc.1", + "@deepseek-ai/dsh-typert-protocol": "0.2.0-rc.1", + "@deepseek-ai/dsh-typert-registry": "0.2.0-rc.1", + "@deepseek-ai/dsh-util-time": "0.2.0-rc.1", + "@deepseek-ai/dsh-util-values": "0.2.0-rc.1", + "@deepseek-ai/dsh-util-workspace-path": "0.2.0-rc.1", + "@deepseek-ai/dsh-workspace": "0.2.0-rc.1" + }, + "peerDependenciesMeta": { + "@deepseek-ai/dsh-session-persistence": { + "optional": true + }, + "@deepseek-ai/dsh-session-projection-cache": { + "optional": true + }, + "@deepseek-ai/dsh-settings": { + "optional": true + } + } + }, + "node_modules/@deepseek-ai/dsh-api-settings-controller": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-api-settings-controller/-/dsh-api-settings-controller-0.2.0-rc.1.tgz", + "integrity": "sha512-JPOQ51KxzMPvwgxoHT/40WkdKuamZ6+GCq6m8DcsQ/bAvqCyYJ8YqjGP82PeEJZATm4iRMubs3jwrgz+x4ISHA==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent-preset-registry": "0.2.0-rc.1", + "@deepseek-ai/dsh-credentials": "0.2.0-rc.1", + "@deepseek-ai/dsh-native-command": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-settings": "0.2.0-rc.1", + "@deepseek-ai/dsh-typert-protocol": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-api-terminal-controller": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-api-terminal-controller/-/dsh-api-terminal-controller-0.2.0-rc.1.tgz", + "integrity": "sha512-bogK3FSoYqSTirHPw8DAcK9Ai4ATqJulwAxAOf+tIXb7OSiXOXAqIhV+WFQXlJvslovNxtsnSlMYCKJoz1S6mA==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-deque": "0.2.0-rc.1", + "@deepseek-ai/dsh-lazy-require": "0.2.0-rc.1", + "@deepseek-ai/dsh-typert-protocol": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4", + "@xterm/addon-serialize": "^0.14.0", + "@xterm/headless": "^6.0.0", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-subprocess": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-api-workspace-controller": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-api-workspace-controller/-/dsh-api-workspace-controller-0.2.0-rc.1.tgz", + "integrity": "sha512-ufdQT5WCoHC2eQNBMX/aMtv8FgKdQs6kIdSQaBRZ+olYgfC9WKh4LeUG96KZFXp1KMvMpgdWgarANHcd6Gwviw==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-deque": "0.2.0-rc.1", + "@deepseek-ai/dsh-native-command": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-api-gateway": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-connection": "0.2.0-rc.1", + "@deepseek-ai/dsh-host-directory-picker": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-storage-domain": "0.2.0-rc.1", + "@deepseek-ai/dsh-typert-protocol": "0.2.0-rc.1", + "@deepseek-ai/dsh-workspace": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-api-workspace-files": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-api-workspace-files/-/dsh-api-workspace-files-0.2.0-rc.1.tgz", + "integrity": "sha512-zO+iz+YsHdZzHuOiEEozRXCXnVUlXVXi3xwG9t+VeNjuDf+y9x4qvZkcTqrWoGPbxLtysoF2+gvOj2IW6rlzDA==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-deque": "0.2.0-rc.1", + "@deepseek-ai/dsh-typert-protocol": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-app-boot": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-app-boot/-/dsh-app-boot-0.2.0-rc.1.tgz", + "integrity": "sha512-iHUYI+Tc3FlaYay0aLg4LsmZELi8wNWd6DSYrd46enUv0SWgm3qXVFLZivlcKqKWxcjuuvL5JxNemxGiMRIWxQ==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-atomic-write": "0.2.0-rc.1", + "@deepseek-ai/dsh-package-manifest": "0.2.0-rc.1", + "@eslint-community/regexpp": "^4.12.2", + "ajv": "^8.20.0", + "js-yaml": "^4.2.0", + "node-addon-require-builtin": "^0.1.6", + "resolve.exports": "^2.0.3", + "semver": "^7.8.5" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/cordis-plugin-group": "~1.0.4", + "@deepseek-ai/cordis-plugin-include": "~1.0.9", + "@deepseek-ai/cordis-plugin-loader": "~1.0.5", + "@deepseek-ai/dsh-home-paths": "0.2.0-rc.1", + "@deepseek-ai/dsh-launch-environment": "0.2.0-rc.1", + "@deepseek-ai/dsh-system-prompt": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-atomic-write": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-atomic-write/-/dsh-atomic-write-0.2.0-rc.1.tgz", + "integrity": "sha512-xfqotH4A560oEQl+EzvyAJFjhiFF68ywiM/LuSuMQ2xvqLnaX50tJV/WCCBfVguM+4x/hObI0jz4oLDBs0d2Kg==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-attachment": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-attachment/-/dsh-attachment-0.2.0-rc.1.tgz", + "integrity": "sha512-aKKFE9fGYYn1BCzDtun7IYkpiMANYt7s51vwPukkCnobNiLfxHrIyANLWNmMTSpq0iENfqREXPR805K/um8Hfw==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-brand": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-attachment-local": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-attachment-local/-/dsh-attachment-local-0.2.0-rc.1.tgz", + "integrity": "sha512-MljH+R0ma2uBi7gOGXo6mzVzGDI8ZS24c24O8VXV6dQoh4MSkBiKRux/7W0kyKxz0fmHv7rtZPJehNIW3xAaUw==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-lazy-require": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4", + "sharp": "^0.35.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-attachment": "0.2.0-rc.1", + "@deepseek-ai/dsh-home-paths": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-authorization": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-authorization/-/dsh-authorization-0.2.0-rc.1.tgz", + "integrity": "sha512-z2Ono7AkK02ezfrIQWLe3lfwatCAA1TZX0CnHwBbpwrnLTK8hAd7qaMAqiboVwe6HimEAg4ps0dUich0xLef1g==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-credentials": "0.2.0-rc.1", + "@deepseek-ai/dsh-invariants": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-base": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-base/-/dsh-base-0.2.0-rc.1.tgz", + "integrity": "sha512-5knjWdy+/lFOcwjuliaK4Pc+xPfDXMOoN/+CCza5JkQG5JI+GajicpAh7XFH/At6WzWjf9m8OwLGYABVz1pIxA==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/cordis-plugin-timer": "~1.1.6", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-agent-default-model": "0.2.0-rc.1", + "@deepseek-ai/dsh-agent-instructions": "0.2.0-rc.1", + "@deepseek-ai/dsh-agent-loop": "0.2.0-rc.1", + "@deepseek-ai/dsh-api-gateway": "0.2.0-rc.1", + "@deepseek-ai/dsh-attachment-local": "0.2.0-rc.1", + "@deepseek-ai/dsh-authorization": "0.2.0-rc.1", + "@deepseek-ai/dsh-bash-sandbox": "0.2.0-rc.1", + "@deepseek-ai/dsh-command-compact": "0.2.0-rc.1", + "@deepseek-ai/dsh-command-feedback": "0.2.0-rc.1", + "@deepseek-ai/dsh-command-goal": "0.2.0-rc.1", + "@deepseek-ai/dsh-commands": "0.2.0-rc.1", + "@deepseek-ai/dsh-compaction-basic": "0.2.0-rc.1", + "@deepseek-ai/dsh-compaction-image-offload": "0.2.0-rc.1", + "@deepseek-ai/dsh-compaction-tool-result-pruner": "0.2.0-rc.1", + "@deepseek-ai/dsh-config-editor": "0.2.0-rc.1", + "@deepseek-ai/dsh-credentials-local": "0.2.0-rc.1", + "@deepseek-ai/dsh-deepseek-account-platform": "0.2.0-rc.1", + "@deepseek-ai/dsh-deepseek-llm-api-extensions": "0.2.0-rc.1", + "@deepseek-ai/dsh-fs-local": "0.2.0-rc.1", + "@deepseek-ai/dsh-fs-observation-policy": "0.2.0-rc.1", + "@deepseek-ai/dsh-fs-sandbox": "0.2.0-rc.1", + "@deepseek-ai/dsh-goal": "0.2.0-rc.1", + "@deepseek-ai/dsh-goal-round-driver": "0.2.0-rc.1", + "@deepseek-ai/dsh-hmr": "0.2.0-rc.1", + "@deepseek-ai/dsh-jobs-local": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm-deepseek-account": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm-deepseek-api-key": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm-pi-ai": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm-retry": "0.2.0-rc.1", + "@deepseek-ai/dsh-mcp-resources": "0.2.0-rc.1", + "@deepseek-ai/dsh-otel": "0.2.0-rc.1", + "@deepseek-ai/dsh-permission-presets": "0.2.0-rc.1", + "@deepseek-ai/dsh-plan-mode": "0.2.0-rc.1", + "@deepseek-ai/dsh-plugin-manager": "0.2.0-rc.1", + "@deepseek-ai/dsh-plugin-package-inventory-deepseek": "0.2.0-rc.1", + "@deepseek-ai/dsh-ptc-runtime-node": "0.2.0-rc.1", + "@deepseek-ai/dsh-pwsh-sandbox": "0.2.0-rc.1", + "@deepseek-ai/dsh-repeat-tool-reminder": "0.2.0-rc.1", + "@deepseek-ai/dsh-sandbox-local": "0.2.0-rc.1", + "@deepseek-ai/dsh-sandbox-policy": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-checkpoint-policy": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-log-deepseek": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-persistence-jsonl": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-projection": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-projection-cache": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-query-sqlite": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-telemetry-otel": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-title": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-title-first-prompt-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-settings": "0.2.0-rc.1", + "@deepseek-ai/dsh-shell-env": "0.2.0-rc.1", + "@deepseek-ai/dsh-skill": "0.2.0-rc.1", + "@deepseek-ai/dsh-skill-badge": "0.2.0-rc.1", + "@deepseek-ai/dsh-skill-filesystem": "0.2.0-rc.1", + "@deepseek-ai/dsh-spill-local": "0.2.0-rc.1", + "@deepseek-ai/dsh-spill-policy": "0.2.0-rc.1", + "@deepseek-ai/dsh-storage": "0.2.0-rc.1", + "@deepseek-ai/dsh-storage-domain": "0.2.0-rc.1", + "@deepseek-ai/dsh-storage-json": "0.2.0-rc.1", + "@deepseek-ai/dsh-subagent": "0.2.0-rc.1", + "@deepseek-ai/dsh-subagent-fork-in-process": "0.2.0-rc.1", + "@deepseek-ai/dsh-subagent-spawn-in-process": "0.2.0-rc.1", + "@deepseek-ai/dsh-subprocess-local": "0.2.0-rc.1", + "@deepseek-ai/dsh-system-prompt": "0.2.0-rc.1", + "@deepseek-ai/dsh-token-meter": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-bash": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-call-timeout-policy": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-fs": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-fs-search": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-goal": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-jobs": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-present": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-pwsh": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-ralph": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-skill": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-subagent": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-subagent-control": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-todo": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-web": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-workflow": "0.2.0-rc.1", + "@deepseek-ai/dsh-tools": "0.2.0-rc.1", + "@deepseek-ai/dsh-typert-loader": "0.2.0-rc.1", + "@deepseek-ai/dsh-typert-registry": "0.2.0-rc.1", + "@deepseek-ai/dsh-user-approval": "0.2.0-rc.1", + "@deepseek-ai/dsh-user-questions": "0.2.0-rc.1", + "@deepseek-ai/dsh-web": "0.2.0-rc.1", + "@deepseek-ai/dsh-web-fetch-http": "0.2.0-rc.1", + "@deepseek-ai/dsh-web-search-deepseek": "0.2.0-rc.1", + "@deepseek-ai/dsh-workflow-ptc": "0.2.0-rc.1" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-bash-local": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-bash-local/-/dsh-bash-local-0.2.0-rc.1.tgz", + "integrity": "sha512-thF8D96F78QWem0y0C4oqef6h+x3kahGlsTKE9elXrM506sys6EGwHs+PwQqyMyQCGUJlJCVwd2gT6m4ipdplg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-shell": "0.2.0-rc.1", + "@deepseek-ai/dsh-subprocess": "0.2.0-rc.1", + "@deepseek-ai/dsh-timeout": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-bash-sandbox": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-bash-sandbox/-/dsh-bash-sandbox-0.2.0-rc.1.tgz", + "integrity": "sha512-/+vnsleF/U7kKjZdUynHiWTpjAVr9i3ZCPwuWiwecd588VUjOvm9nDeiSUd8Zl60XZFtsYAjdSYU+gunSC98PQ==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-bash-local": "0.2.0-rc.1", + "@deepseek-ai/dsh-sandbox": "0.2.0-rc.1", + "@deepseek-ai/dsh-sandbox-policy": "0.2.0-rc.1", + "@deepseek-ai/dsh-shell": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-brand": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-brand/-/dsh-brand-0.2.0-rc.1.tgz", + "integrity": "sha512-TPeMaUt/Xev0X2TfIf6pSVVGiWAbFHy+VWCIW+w8UkC0yH1ep9302JQOBqhUgefAM4s/3W1R8lra/PMbFhjx2w==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-chunked-list": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-chunked-list/-/dsh-chunked-list-0.2.0-rc.1.tgz", + "integrity": "sha512-UbIx0v5VuVR58vMX6Tv/myS91HSRakMutKHimBT152JjaVWD75tBx+3luRrGFRZesEJ22tNZ0TdTidRCHKgBKA==", + "license": "MIT", + "dependencies": { + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-connection": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-connection/-/dsh-client-connection-0.2.0-rc.1.tgz", + "integrity": "sha512-aMZvpoyryBUYpqIBxaC8+nYWcwluSCegIU5JIuKnWMyaZLNvMC187ZPm7Bbpvy3pR2hnfWqJaFkl2XQodGfGCA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-credentials": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-scope": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-client-file-upload": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-file-upload/-/dsh-client-file-upload-0.2.0-rc.1.tgz", + "integrity": "sha512-vy7v1lOvHUcVYv2GYxz6+iWVQq3lNiJbcBTxjmDESEyEhpv9mtCA6qE0aIict9GrUmvFVhhVZh8+HyYyQr2yeg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-brand": "0.2.0-rc.1", + "@deepseek-ai/dsh-typert-protocol": "0.2.0-rc.1", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-scope": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-client-hmr": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-hmr/-/dsh-client-hmr-0.2.0-rc.1.tgz", + "integrity": "sha512-YOFoL890fKG0h3LTXnshOw3LuLkeWmh1cC3ooOVA8LlYso6tA8pAkDAymX/cIc+777MPdscMkL2eMmepVzgT+w==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-locale": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-locale/-/dsh-client-locale-0.2.0-rc.1.tgz", + "integrity": "sha512-4LNz28WCad8v3quEeuSTXOTHb6YHrMGkjIq73W+6+6zkEBbbmpfiz4FJ3MW9iE72DXLR9/IyUHNBpf6N/CVZ4Q==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-modules": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-modules/-/dsh-client-modules-0.2.0-rc.1.tgz", + "integrity": "sha512-XvPOXcpz1bYU/uwRICpQRKL8mUHfcbUiLQiiXgi76H/eS5K7LNIHCSGzvmWk2IdCK7tPi4GP33lHAprrsAXCUw==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-product-analytics": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-product-analytics/-/dsh-client-product-analytics-0.2.0-rc.1.tgz", + "integrity": "sha512-eNY1chAHwv0pZvYhLnNApOMe5+X0tirTmU/NKOfiY8PjqBVPKV4v0woQpzpYe/PM0AvRdLio6cTlNEs+0DcOng==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-typert-protocol": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-resources": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-resources/-/dsh-client-resources-0.2.0-rc.1.tgz", + "integrity": "sha512-rOmIkf2CRigI0QNCloFFP75Mkfqw3nq/ci+vo3TmBkewGL82TnXD66uHmKkWXv3yIYcCyOUoRpMd7fxLOKP8ow==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-shortcuts": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-shortcuts/-/dsh-client-shortcuts-0.2.0-rc.1.tgz", + "integrity": "sha512-AiI0gZH9bOpuamthospIfr05Mm7ybQBXBctiAX9FgpWPFp1iu/16drm356E/V2Z7Xza+tf0JhSRF/L13Pj8/TQ==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-util-crypto": "0.2.0-rc.1", + "@deepseek-ai/dsh-util-values": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-store": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-store/-/dsh-client-store-0.2.0-rc.1.tgz", + "integrity": "sha512-fvjAr7KvcfH/GOGiOuZiNhwZyga+HSyYsb0tvCBHHEn3UiyGZzaguaLa6RtN++GTvE+lUUExpWSNuTGlZQ28zw==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-agent-preset": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-agent-preset/-/dsh-client-ui-agent-preset-0.2.0-rc.1.tgz", + "integrity": "sha512-HwRH60OLM0lhh0Ql9aCmLAEefOF0cJlCvR2fIrjvPqcukXlyyJtd6B/cloiO6RNLFt1eTjza4sne6uBJGfs3Ow==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-approval": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-approval/-/dsh-client-ui-approval-0.2.0-rc.1.tgz", + "integrity": "sha512-DJhgpKJMalOj8Jgz6vDedD8k4yZ8AipOZZgjFtXFLk1ffzh7Yae0SaLRmgwZh0T2KuElGtBXCODPkAJFqXp3CQ==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-attachment": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-attachment/-/dsh-client-ui-attachment-0.2.0-rc.1.tgz", + "integrity": "sha512-/rZNr/Z+5x78QmbT6fEd9ELrl1XhaV/sCAq9q2MawAIFkbudhFUp9PqYJiogZd7IPRtuC8HRfTygDbyNZPtibw==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-brand-official": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-brand-official/-/dsh-client-ui-brand-official-0.2.0-rc.1.tgz", + "integrity": "sha512-GP9eis0v0JU8epRANzQrslUgttNdVwlH+DCJmR5smXqiCb21ROvLiPUfY8qGAyl2GkyR+TntcurKIuJ2IxINmw==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-chat": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-chat/-/dsh-client-ui-chat-0.2.0-rc.1.tgz", + "integrity": "sha512-gwp0Ffx/NrvtzTLToAOcN6bqPWKN277Va4y7l33yOv3zrYbyd9zsF3oUnfgAnCg89WQ0zzRfRCRKlKgKNRcIPQ==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-commands": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-commands/-/dsh-client-ui-commands-0.2.0-rc.1.tgz", + "integrity": "sha512-QZ4BLOv9Ko2kFh9re/olt4ee6rSXGqverWLCdn+6J311WeBeYx07C6FREi418XrG3Y22s7gvkIQDuKpOe6WQIA==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-conversation": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-conversation/-/dsh-client-ui-conversation-0.2.0-rc.1.tgz", + "integrity": "sha512-2aDx9NZUrExfCe6elV5RczHoxJS/zyJlpdv7fD1FyTZIN7DS2yvDQe9+P6FpPCUfm1Sn6y0slls8QK9aLo4IvQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-cordis": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-cordis/-/dsh-client-ui-cordis-0.2.0-rc.1.tgz", + "integrity": "sha512-bNnmawRUBX66BCcDa2U+TytoRe9Es1/X8yjRB4RrDGSGCoXXsjR5hMFWH3Gg3il39syHYch3q7dyGxZydnyx7w==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-deliverables": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-deliverables/-/dsh-client-ui-deliverables-0.2.0-rc.1.tgz", + "integrity": "sha512-boMxW5bLnlTNZzoCu8DVdSK2NTzGsQ+kTIGxwgjvqHjp+a82WbSvcCM8yHjd98TlxpyPYARElqtfoqN/9is6Wg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-typert-protocol": "0.2.0-rc.1" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-directory-picker-browse": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-directory-picker-browse/-/dsh-client-ui-directory-picker-browse-0.2.0-rc.1.tgz", + "integrity": "sha512-GVj5Wg8SgaE7W/nsQiWPczRIx0AeOPIUR/lLKhavUi/08bgJcOfKnGBpY1QV/Awzc+LpdsnoLeGdqaJs3g498Q==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-directory-picker-native": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-directory-picker-native/-/dsh-client-ui-directory-picker-native-0.2.0-rc.1.tgz", + "integrity": "sha512-UtqwWrYB/xBKmsy8Mu+dZ0/nTD1C+YMlv/n2WGtuFO+iu+mIxUXZVvNOMea3g3Idex1gWNCjVDCi8tnqekg4GA==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-goal": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-goal/-/dsh-client-ui-goal-0.2.0-rc.1.tgz", + "integrity": "sha512-xTU0D0ZG5AvAP0jheF/9zoi1q+o/0RzRGr/A+bbOPl4WVqvybPE+CyaFrPfJark55w27+VMZKsP0AGzRKYxPAA==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-input-trigger": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-input-trigger/-/dsh-client-ui-input-trigger-0.2.0-rc.1.tgz", + "integrity": "sha512-PDug7HKQoLEop1qvGipM/5ZqO783XI/yiSbXvU8dOB1qgXlUoQIEBOR1bbgsh/cHWdg0WSnUKKGZPZQ4ng6P8w==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-jobs": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-jobs/-/dsh-client-ui-jobs-0.2.0-rc.1.tgz", + "integrity": "sha512-FU2Vr8oeEFZbI9eNBq/WdIDaMnsvuZn4qqVKwgIJ3CzsbPB2gUJogxgoFUQp7PbB17wRZkddq+GQZw87niarZw==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-layout": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-layout/-/dsh-client-ui-layout-0.2.0-rc.1.tgz", + "integrity": "sha512-qleVtdPWbp4z/QDaz9QmfSoNIZPIkh18pGl7EGfvYcLOoh0ZCLUVmqVYDHF9XqpEBv5cFoh572YBBD7p8iH65w==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-message-feedback": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-message-feedback/-/dsh-client-ui-message-feedback-0.2.0-rc.1.tgz", + "integrity": "sha512-MwCLdK+RUp7skNI8RQpE4NJk/HM1MP+ggMbN2nVGbgUwKWnSQcypJjP/18rf/idlbtYRohLsprEHdZHBlgs14Q==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-model-selection": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-model-selection/-/dsh-client-ui-model-selection-0.2.0-rc.1.tgz", + "integrity": "sha512-3AH0BqYgkHxJ4ZIUiVAV8aK4uI9jnMOAbZq2v40eaZV8NsBqtMnjx15FsLWg3Kp0RelFakuGqwpg5Fj6+iTfsg==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-open-in-app": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-open-in-app/-/dsh-client-ui-open-in-app-0.2.0-rc.1.tgz", + "integrity": "sha512-iaYHDsHFrrPLKj01CPEmd7FXl2bgCLhTOkNyP77h/PAhcMYHqsMKSGmqYyl8ZYNqB7U+I17xudQMRaw3bMSV9g==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-permission-presets": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-permission-presets/-/dsh-client-ui-permission-presets-0.2.0-rc.1.tgz", + "integrity": "sha512-s7kw7GZ41N12ffhDfAMTYQNylj0/TmMF4QdG1mkah7FQqr40V1Th2B7AOnclBfi+AE0k/vwECrVIQaGTZxTE/Q==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-plan": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-plan/-/dsh-client-ui-plan-0.2.0-rc.1.tgz", + "integrity": "sha512-dpArzp0qropFzzMYVwvyxD/aoHxEZv2+FHvSi+zUCd1f40LGnR5+kT4MOZYaLDNAzAF5m4LAPoid35eJ8zckCg==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-plugin-manager": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-plugin-manager/-/dsh-client-ui-plugin-manager-0.2.0-rc.1.tgz", + "integrity": "sha512-vn1wKIQYbGa0nTerV2IIIVaMCoyacHc3JfiCNASMAlpp2/nDBjcbDg5HB5FvIYH/OFzYYM0XacVKWd1oz9VpyA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-timeout": "0.2.0-rc.1", + "@deepseek-ai/dsh-typert-protocol": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-primitives": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-primitives/-/dsh-client-ui-primitives-0.2.0-rc.1.tgz", + "integrity": "sha512-1CCpyIh5PJljyXS9zQP8ib6JAg2p6PELh+iZhD3VBjQC5ZZ5i/zdgNGVOGr6Uu+sUpU7BkjYPvUkhy7AZQJWYA==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-reference": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-reference/-/dsh-client-ui-reference-0.2.0-rc.1.tgz", + "integrity": "sha512-1VZVkjP29HtY25C6Q8lDxWEFSg0ilWnh21szcHmY7bTYqrJdn7lMfL3eb+XH3sidSxUUEg3vUjR5Zy5d7gQLwQ==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-renderer": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-renderer/-/dsh-client-ui-renderer-0.2.0-rc.1.tgz", + "integrity": "sha512-jEX/d4MBgfMEYVhGN2ooiJsPfk596+ISPLKYTfOwSTTOwus/9bvGI8dMCIz2CrSKa0LMHcK6lUi/f0nQ6hWQlw==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-schedule": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-schedule/-/dsh-client-ui-schedule-0.2.0-rc.1.tgz", + "integrity": "sha512-Xd3IRpZHnjUvIWVVLrbaEOKwtjdWvbhanuC3qEF3jYJ/L6QT66ZGpOYLxUbb8qGyWHyF6t3/bVFdR/PXwk8BQQ==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-session": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-session/-/dsh-client-ui-session-0.2.0-rc.1.tgz", + "integrity": "sha512-eNFVTb0GwNxI0Q7ZlzjHsIXvFYw4NCApMcdw0DnxYw6tsAc2oLFkYFUx/PACigYvWhPiGLw4xZtOEkW5/Iekfw==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-settings": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-settings/-/dsh-client-ui-settings-0.2.0-rc.1.tgz", + "integrity": "sha512-ojZaW+Ivcwve/cvd6Zp7iA8j/uydRXNViuV4EyZaWtkp6G6yHUj6dVuwLKKlLmkgAJptcm5mJSV9AwXFe8jIzg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-settings-account": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-settings-account/-/dsh-client-ui-settings-account-0.2.0-rc.1.tgz", + "integrity": "sha512-lpmZ9n878g8E/8Vd67FMw7y/mtShAWIA2OtZ9Oo0fc3Y/XHJnjCIq0gaddGK9jwuCcOLkink2fyf4M1j8xM0rg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-settings-agent-loop": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-settings-agent-loop/-/dsh-client-ui-settings-agent-loop-0.2.0-rc.1.tgz", + "integrity": "sha512-GwGqtsdd0G09sA6RbBIQdpjFVgTDdvlr2Qr2vRVDOeXOvzZCIhoXck0IW8DdVmFuaU5mnDMexYnVfBJtEclOcw==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-settings-general": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-settings-general/-/dsh-client-ui-settings-general-0.2.0-rc.1.tgz", + "integrity": "sha512-GWySoFjsQlZsxMZkKKY2A1wY+Skd31ojisXke+iEbXpXE/bP50yn8UNXjHBaLFb9laUTs2ZvGffkJzPyPaw4Gg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-settings-models": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-settings-models/-/dsh-client-ui-settings-models-0.2.0-rc.1.tgz", + "integrity": "sha512-j887bp4qBQcXO6wqvO/B7Yi5zqN9tDuKeBeF1RHHIonSNABKO697nshk6kvPXgJni7fBg6XvgGiJahVkCkoXIA==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-settings-plugin-inventory": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-settings-plugin-inventory/-/dsh-client-ui-settings-plugin-inventory-0.2.0-rc.1.tgz", + "integrity": "sha512-otzCkzr+FEdNkhVTMKh4qB7HTE+Y4C91/UFfrGX0mupji3rPPAdgA07wQ1u8f7aNJ6ZbXzgUGaYuEwNU+EPJSA==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-settings-plugins": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-settings-plugins/-/dsh-client-ui-settings-plugins-0.2.0-rc.1.tgz", + "integrity": "sha512-zaocdxtSU99qiCzH1TKOgZm/Zdx3R3cL1MSc0UbnbNE0+tNWotly0bpMg65mFBuuQrQfolNOUxut/k4Sf6Tg1g==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-settings-session-log": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-settings-session-log/-/dsh-client-ui-settings-session-log-0.2.0-rc.1.tgz", + "integrity": "sha512-rfwIbfur9lq2vc+VMsFUctyg26lYPH9H0cQW/zuv/fZR6too4PD8+DgI4kfWph1ZeQgCM71TmKMtLBF+XJdrHg==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-settings-shell": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-settings-shell/-/dsh-client-ui-settings-shell-0.2.0-rc.1.tgz", + "integrity": "sha512-lIOzNFCRMCHfgvhMTE2WG985VDgLiTY4OI2RNLYJ2IkhEFqCAtoAQtMeoCkknjD43lBzqV/oEyKERNlSk23E4g==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-settings-subagent": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-settings-subagent/-/dsh-client-ui-settings-subagent-0.2.0-rc.1.tgz", + "integrity": "sha512-4LUhP92P5MAhj22g4n4ZErfLxwZRXxD4oj1H4b9Ds8ggR5w6XRzikEuojtyQKEALFZUaBzhxOg0LXeTzBpGUSA==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-settings-web-search": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-settings-web-search/-/dsh-client-ui-settings-web-search-0.2.0-rc.1.tgz", + "integrity": "sha512-jugRGL7Emlsr7R480bMIZH0R+ZhPePxRMxGumcfNISFr6j0XGJEBpqsmFOIXBdddzpLDiJSYi7a2keg99Dr9hQ==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-shortcuts": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-shortcuts/-/dsh-client-ui-shortcuts-0.2.0-rc.1.tgz", + "integrity": "sha512-PTb1bUjENbaHL/v2572+S1YBA9Kt/AXLQcgne1pLzc8wsxNvWkT11uWdRYZKOQsDzhvHp5MSSsYB2gCzL9LrmQ==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-sidebar": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-sidebar/-/dsh-client-ui-sidebar-0.2.0-rc.1.tgz", + "integrity": "sha512-OiUg7wrTDt7syjE1CEc6SuXqdNwQZ9naGwUYqGJyFPnyR54o1qM9HPwNP7bwQHgcF/JjizpvgB/9u8rgWzM01g==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-sidebar-browser": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-sidebar-browser/-/dsh-client-ui-sidebar-browser-0.2.0-rc.1.tgz", + "integrity": "sha512-EJDtlyJNyrq1pqv5byXXS/IgH4CRwJX4hYB9dKJhQuPkiwsTrSPl0rTzFZaUpclcXoX/MBPHmDqT8EC/U8phUg==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-sidebar-documentpreview": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-sidebar-documentpreview/-/dsh-client-ui-sidebar-documentpreview-0.2.0-rc.1.tgz", + "integrity": "sha512-2KGfhRW60KWlMOICTv7pCCTj6EHmO9eTpENJNJT08sEETciUhJpIOuInmoKWS2HGR4WO/u4xm4J99qmkAuPPQw==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-sidebar-files": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-sidebar-files/-/dsh-client-ui-sidebar-files-0.2.0-rc.1.tgz", + "integrity": "sha512-5Ie/q64XxEQ6paS8Jf2mkK3xhb+gkA+fyYCqBwwrMOXwDdwkHtIzrAZ/tSbu7b/UlugnoiHhxWqxIey0dlENtg==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-sidebar-right": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-sidebar-right/-/dsh-client-ui-sidebar-right-0.2.0-rc.1.tgz", + "integrity": "sha512-1xvY5uuOVx4Ci3mAS/TYLQRqT0OgTd3AASN6tPqtvGb4Zrd2ToF+7CnzCoFARAhCX6T/ZFZyKv9hx78V3On27w==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-sidebar-terminal": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-sidebar-terminal/-/dsh-client-ui-sidebar-terminal-0.2.0-rc.1.tgz", + "integrity": "sha512-4S6zL6MJ/EDxd2U4FC9meTfv+ylFOG5htd5NBq+VXfS85E2ujZM9KCpNXJaNQTkaYN96RJfV8et+yfGtd3gYEQ==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-skill": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-skill/-/dsh-client-ui-skill-0.2.0-rc.1.tgz", + "integrity": "sha512-nt82jN0WC/2LRkuwwO9GnEl6PKz1H/kCJl7IRQkc+1smoZugMv879vjT2Kpo/O73a0Wqd81k1h2wmaqiT9O11Q==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-slots": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-slots/-/dsh-client-ui-slots-0.2.0-rc.1.tgz", + "integrity": "sha512-GrQbf1KN9NGa63ZBocAKAA2W5aahRCOAQVYQoW2OLIvg5h2e1j30dqMx+nptni59YUvg0DmmLj6ggUXvFpzCQA==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-subagent": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-subagent/-/dsh-client-ui-subagent-0.2.0-rc.1.tgz", + "integrity": "sha512-9gJwS23Yr5IPwa801gwUioCk0EInecpR1j6VODfeBf0OZHOMgJrcUDHRoT/RGuIFamyhPK8wWu7J5yctBemOjg==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-theme": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-theme/-/dsh-client-ui-theme-0.2.0-rc.1.tgz", + "integrity": "sha512-nPcudXRmHTFenkGlePkLuUX/HNc83l+xPxpuRv9j3vRMCovtUdCnXa0LmNqfuz9TNVkeYQdyRJCMOhgsVGjkBw==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-tool": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-tool/-/dsh-client-ui-tool-0.2.0-rc.1.tgz", + "integrity": "sha512-8D9gVLZS8l/KHnjK1bBg728DXVfORq+r/uZWtg1slcmbpbE4MQ9c6A30VYSAWlGiSrb7/YRJ9+C72qXSyVT6Rw==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-trajectory": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-trajectory/-/dsh-client-ui-trajectory-0.2.0-rc.1.tgz", + "integrity": "sha512-0NW+s19crq1hyQyi7EkDCAsRxWLZRUExA87Jhgxdi6E/mVBUDjrJ3Mya1cC+Gg2l0D+Oriav6ejMk/tNM0rsMg==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-user-questions": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-user-questions/-/dsh-client-ui-user-questions-0.2.0-rc.1.tgz", + "integrity": "sha512-Y5Qm+v43aFHdCZUvniQo8wM7KrjkiHB02tz+g0qiRshMTLOWabnA83QeRy0lyaVlKOPa8NRNLo5h3sH5BU3zHg==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-workflow-run": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-workflow-run/-/dsh-client-ui-workflow-run-0.2.0-rc.1.tgz", + "integrity": "sha512-1S0lOTTVbTMOa13D0JfFYGMBmGotNMTdusu/GSVf3LQZL5Q3zzhpg7zjNIKSqgEJ+00c3/oyHqHO13PA/WQIAQ==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-client-ui-workspace": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-client-ui-workspace/-/dsh-client-ui-workspace-0.2.0-rc.1.tgz", + "integrity": "sha512-8ehLXqZGvFWk93RxQwnCKkaoMrTxdyE7HBbKyXaav3V6GAMOpe+MbUmR8fLm17JTno4cfMr/Mg2S4P9hS5dBAw==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-cmdline": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-cmdline/-/dsh-cmdline-0.2.0-rc.1.tgz", + "integrity": "sha512-n/soNp1H3gxf/gSldBQtHnfZkcV4kaW01/HEnqYsP1gGadHe8v+/8SOMP5AWGg9mnHRTpzZ9QUn7asPXbNbDTA==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/cordis-plugin-loader": "~1.0.5" + } + }, + "node_modules/@deepseek-ai/dsh-command-compact": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-command-compact/-/dsh-command-compact-0.2.0-rc.1.tgz", + "integrity": "sha512-vHQroUHHPZ17IIn0bOH1on8/dsYuOhxkkzu5jtj/G0yr/LTgjnW/mtmheu0CGUhBaIX65hhSSz5Au7GfgV3Uog==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-commands": "0.2.0-rc.1", + "@deepseek-ai/dsh-compaction": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-command-feedback": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-command-feedback/-/dsh-command-feedback-0.2.0-rc.1.tgz", + "integrity": "sha512-/UxGzg63mUuU2XmLC8bVHl+CtrOc4bmPraaEGQT42QavGSm0rbY0YkGgM/v+MYzwB20VG3hHhEEsDhCX+UUNJw==", + "license": "MIT", + "peer": true, + "dependencies": { + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-anonymous-user-id": "0.2.0-rc.1", + "@deepseek-ai/dsh-commands": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-typert-protocol": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-command-goal": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-command-goal/-/dsh-command-goal-0.2.0-rc.1.tgz", + "integrity": "sha512-D1aCSFdbzcvBmmS7W//WNZVktwGB0UipEoYAXo1eBwxiFrb9R1Dg79VDGWqCDgehLsUWOK71MfAIBdUCUvCYRA==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-commands": "0.2.0-rc.1", + "@deepseek-ai/dsh-goal": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-commands": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-commands/-/dsh-commands-0.2.0-rc.1.tgz", + "integrity": "sha512-VZOWNwjBDBkX3kXVJcD24oAoKeGRpLnHZjRiPm0gq41ZClCYy9CzNnFdl6IVtJHfG+bz9/HDnONilpiRwBg2lQ==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-util-crypto": "0.2.0-rc.1", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-attachment": "0.2.0-rc.1", + "@deepseek-ai/dsh-brand": "0.2.0-rc.1", + "@deepseek-ai/dsh-invariants": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-scope": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-typert-protocol": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-compaction": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-compaction/-/dsh-compaction-0.2.0-rc.1.tgz", + "integrity": "sha512-xtyT0MW45DIseej9fJ4HmkUlRK02IY0vC8AWPZ7ORQqaEHMV4lqX/mhTRFA937NOuOeLdLF/DKH5E4bpUeeshQ==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-brand": "0.2.0-rc.1", + "@deepseek-ai/dsh-commands": "0.2.0-rc.1", + "@deepseek-ai/dsh-invariants": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-compaction-basic": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-compaction-basic/-/dsh-compaction-basic-0.2.0-rc.1.tgz", + "integrity": "sha512-yf6sW8bkEeksBNEdgjoLxCjNjFhqJwbFqh8eNVzjfFTXJKPqnn0RvfomIS4/UUpzlFpDp7wv30ofMEm9FjUkCw==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-util-values": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-commands": "0.2.0-rc.1", + "@deepseek-ai/dsh-compaction": "0.2.0-rc.1", + "@deepseek-ai/dsh-compaction-tool-result-pruner": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-token-meter": "0.2.0-rc.1" + }, + "peerDependenciesMeta": { + "@deepseek-ai/dsh-compaction-tool-result-pruner": { + "optional": true + } + } + }, + "node_modules/@deepseek-ai/dsh-compaction-image-offload": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-compaction-image-offload/-/dsh-compaction-image-offload-0.2.0-rc.1.tgz", + "integrity": "sha512-GM+Wk7dROfMllrm0gqbYpZY8MCef+Y+tK+vSLP426hd/hNRpSSOcPB72ZNfu05hZF+IUCkNSCF7x0gTAGtm7NQ==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-util-values": "0.2.0-rc.1" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-compaction": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-compaction-tool-result-pruner": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-compaction-tool-result-pruner/-/dsh-compaction-tool-result-pruner-0.2.0-rc.1.tgz", + "integrity": "sha512-IWUqXnCu+OeaBgbmXco3K9NyoLQAwIeWlehZw+QYKHNmxfto2tY+7PZtXwZ8v1ucbnVUE9ktMg1k/cknI6FD1Q==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-util-values": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-compaction": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-token-meter": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-config-editor": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-config-editor/-/dsh-config-editor-0.2.0-rc.1.tgz", + "integrity": "sha512-BGzv0pUgPELrWO073NrL0JbnjE1cXoUvaZIbG6Q9V0kZp46mg1BITtBvbD+p/pIu+SdbKwGeP1YxRyfdHG6ZKg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-atomic-write": "0.2.0-rc.1", + "js-yaml": "^4.1.0", + "yaml": "^2.8.1" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/cordis-plugin-include": "~1.0.9", + "@deepseek-ai/cordis-plugin-loader": "~1.0.5", + "@deepseek-ai/dsh-app-boot": "0.2.0-rc.1", + "@deepseek-ai/dsh-hmr": "0.2.0-rc.1" + }, + "peerDependenciesMeta": { + "@deepseek-ai/dsh-hmr": { + "optional": true + } + } + }, + "node_modules/@deepseek-ai/dsh-cordis-client-runner": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-cordis-client-runner/-/dsh-cordis-client-runner-0.2.0-rc.1.tgz", + "integrity": "sha512-BoTSHqOxNnhkkS/NLzJigX8X55TvQDbEf4eX1ZykhCCpPVaEs7UW+qVx9XcyP+sD3ErHnHjAaIdgfpQ45dUQXw==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-cordis-host-runner": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-cordis-host-runner/-/dsh-cordis-host-runner-0.2.0-rc.1.tgz", + "integrity": "sha512-QZijpismScDliFjZ8SBMMDreAj7VcwhE8fue32AHG9TKQDJ6V42QieQX4WIri33l0IKywhj7WIi5IRzuYLTtqg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-util-values": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-brand": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-scope": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-tools": "0.2.0-rc.1", + "@deepseek-ai/dsh-typert-protocol": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-credentials": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-credentials/-/dsh-credentials-0.2.0-rc.1.tgz", + "integrity": "sha512-XcAy6bK1lHLW3XWxxwKtrFdDurEvEvpBoqNhfR6PHTetd8wV/f9l06uNg0DO7xg1GUzkY8t88j2EXhg2z2nFrw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-brand": "0.2.0-rc.1" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-invariants": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-credentials-local": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-credentials-local/-/dsh-credentials-local-0.2.0-rc.1.tgz", + "integrity": "sha512-NWU8wD+Rs09mwLKC4aR7Gms/ShiUKOszSeYEV3vU0sjEUEUR7HYjsZXkXeFFfcyyhJzQCXLBwIspGjZrxlJxeg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4", + "chokidar": "^4.0.3", + "yaml": "^2.9.0" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-atomic-write": "0.2.0-rc.1", + "@deepseek-ai/dsh-credentials": "0.2.0-rc.1", + "@deepseek-ai/dsh-home-paths": "0.2.0-rc.1", + "@deepseek-ai/dsh-launch-environment": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-deepseek-account": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-deepseek-account/-/dsh-deepseek-account-0.2.0-rc.1.tgz", + "integrity": "sha512-ouprcIoNGz4man2WaoLDDgdxPmD7PgVFGgpaFdieHuKV0sS1uD/KcjXsTwkduFre9UjK24RgOxAoa5ft976Iww==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-brand": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1" + }, + "peerDependenciesMeta": { + "@deepseek-ai/dsh-agent": { + "optional": true + } + } + }, + "node_modules/@deepseek-ai/dsh-deepseek-account-platform": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-deepseek-account-platform/-/dsh-deepseek-account-platform-0.2.0-rc.1.tgz", + "integrity": "sha512-eXzBmhKe3JiXJ/uXVcKhMtMgXHYqZ3ErQY9Oq4xRkuPquOZq7UPF8uknzS2b7QO//z0H/O9vDmgJwJ63gc1FuQ==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-authorization": "0.2.0-rc.1", + "@deepseek-ai/dsh-credentials": "0.2.0-rc.1", + "@deepseek-ai/dsh-deepseek-account": "0.2.0-rc.1", + "@deepseek-ai/dsh-host-webserver": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-deepseek-llm-api-extensions": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-deepseek-llm-api-extensions/-/dsh-deepseek-llm-api-extensions-0.2.0-rc.1.tgz", + "integrity": "sha512-IlXvOxcKeE1MWKGTEs/jOyMxcEF/bbJsX3FvSeRWx8d8iRSTis5iWvkJktyf6bX5aQ2zNEOfbZbZKXkWkaZMmw==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-deque": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-deque/-/dsh-deque-0.2.0-rc.1.tgz", + "integrity": "sha512-PlCukTxVBSavQGij2Hw7pKjbMblmT0Pbo+iU2Bw73pZeIXqsSuPrWR8z7kHr1bDb4jqd6JuKBk1Bd9fGgBxtoA==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-experimental-agent-team": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-experimental-agent-team/-/dsh-experimental-agent-team-0.2.0-rc.1.tgz", + "integrity": "sha512-hBFhLj7IcRlyGmiVadccNJtYJugwvngLQkE/TlV7f/Tv0+7CEpb3Gr9A6WaBxFvV1H/rQ5gFgRb3GZ+rpEzg+A==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-brand": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-invariants": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-persistence": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-projection": "0.2.0-rc.1", + "@deepseek-ai/dsh-subagent": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-experimental-agent-team-profile": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-experimental-agent-team-profile/-/dsh-experimental-agent-team-profile-0.2.0-rc.1.tgz", + "integrity": "sha512-4uzajL6P5GiyEXXDBlUDzsXtI3+VwcYFKkNXat8g2x8pvXml8paRVp+vaL1aVTRtss/a5HmM/e+3bSMj/TRXqg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-experimental-agent-team": "0.2.0-rc.1", + "@deepseek-ai/dsh-experimental-client-ui-agent-team": "0.2.0-rc.1", + "@deepseek-ai/dsh-experimental-tool-agent-team": "0.2.0-rc.1" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-experimental-api-speech-to-text": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-experimental-api-speech-to-text/-/dsh-experimental-api-speech-to-text-0.2.0-rc.1.tgz", + "integrity": "sha512-SUBF93O0C/v+dhkLqfHW41oz35/2DSashrDqo1XZjg/W4nKbB+TDjBL4DNj7sHLLQYtbSwaejNH68PqqIQ82yA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-experimental-speech-to-text": "0.2.0-rc.1", + "@deepseek-ai/dsh-typert-protocol": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-experimental-auto-review": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-experimental-auto-review/-/dsh-experimental-auto-review-0.2.0-rc.1.tgz", + "integrity": "sha512-dLOZfTPPVEOAAUNnu6Smh5V44U0DuzlGlSqRgXELxlM1TwYH8sGG7GBIXw2RGOXbBSU3g/IrFNXVniZYbGrlNg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-util-values": "0.2.0-rc.1" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-agent-instructions": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-permission-presets": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-tools": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-experimental-client-ui-agent-team": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-experimental-client-ui-agent-team/-/dsh-experimental-client-ui-agent-team-0.2.0-rc.1.tgz", + "integrity": "sha512-s1xoPB1RkLq8WcgnSz6n5d3F6bPhPZBUuTJtEpKrII3kRk5/QtjeoQ9OQckzfbtPsNk00CtBkqcJMK4TSASVJA==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-api-session-controller": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-locale": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-conversation": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-primitives": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-renderer": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-slots": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-workspace": "0.2.0-rc.1", + "@deepseek-ai/dsh-experimental-agent-team": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-experimental-client-ui-voice-input": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-experimental-client-ui-voice-input/-/dsh-experimental-client-ui-voice-input-0.2.0-rc.1.tgz", + "integrity": "sha512-7cslfRUCA178g3EYn7J4qKJGsWiD0iQCpMQVBNozkL94WmWt7S9u2Vx4RnjUGGxj7wzXxW8WQKSOmI5KE7H/rg==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-api-gateway": "0.2.0-rc.1", + "@deepseek-ai/dsh-api-remotes": "0.2.0-rc.1", + "@deepseek-ai/dsh-api-session-controller": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-locale": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-store": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-conversation": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-plugin-manager": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-primitives": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-renderer": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-slots": "0.2.0-rc.1", + "@deepseek-ai/dsh-experimental-api-speech-to-text": "0.2.0-rc.1", + "@deepseek-ai/dsh-experimental-speech-to-text": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-typert-protocol": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-experimental-schedule-bundle": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-experimental-schedule-bundle/-/dsh-experimental-schedule-bundle-0.2.0-rc.1.tgz", + "integrity": "sha512-wG+p2h/7GdeZG0dNthYII313ixQldUk29vNAY6TJRQ/9UFT5tmIHB5zjJ1+JhyNK/yGTJBiCettJBCAKBLuz0w==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-client-ui-schedule": "0.2.0-rc.1", + "@deepseek-ai/dsh-schedule": "0.2.0-rc.1", + "@deepseek-ai/dsh-time-context": "0.2.0-rc.1" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-experimental-speech-to-text": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-experimental-speech-to-text/-/dsh-experimental-speech-to-text-0.2.0-rc.1.tgz", + "integrity": "sha512-Dr44hiMU+RkMqrmSCvMyLFHbt4Ih7vMmCWePf+QV8fXCi1MvhdmnZiSYQzSg736ThFwPhtqGIhshs4/LHZaQ5Q==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-brand": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/cordis-plugin-loader": "~1.0.5", + "@deepseek-ai/dsh-settings": "0.2.0-rc.1" + }, + "peerDependenciesMeta": { + "@deepseek-ai/cordis-plugin-loader": { + "optional": true + } + } + }, + "node_modules/@deepseek-ai/dsh-experimental-speech-to-text-sensevoice": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-experimental-speech-to-text-sensevoice/-/dsh-experimental-speech-to-text-sensevoice-0.2.0-rc.1.tgz", + "integrity": "sha512-JfRXgcwJmGbYFyqNhk2/K1pGTICwRo/BZqnz+K44zapPz/dUqfYo0PpWQSILG/57ASoVzZX2pELRrZI6cCRuIg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-timeout": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4", + "sherpa-onnx-node": "1.13.8", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-experimental-speech-to-text": "0.2.0-rc.1", + "@deepseek-ai/dsh-subprocess": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-experimental-tool-agent-team": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-experimental-tool-agent-team/-/dsh-experimental-tool-agent-team-0.2.0-rc.1.tgz", + "integrity": "sha512-BzkN/2TYydVpwgwuC5MPKgtraoggIpRW4MeTIfJtTfo43Vmvy0k4XrMPVGTe4ocZXITLBCh5MuQV1WNgynh7Ug==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-experimental-agent-team": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-system-prompt": "0.2.0-rc.1", + "@deepseek-ai/dsh-tools": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-experimental-voice-input-bundle": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-experimental-voice-input-bundle/-/dsh-experimental-voice-input-bundle-0.2.0-rc.1.tgz", + "integrity": "sha512-IWKrs2qwOcWyPurHObu83TbHWwkpwaCTgaO3u+vLxJc3gsXR1KBSPJAqueHUom5BoUfO/8SW5dyNKVmBvABv3A==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-experimental-api-speech-to-text": "0.2.0-rc.1", + "@deepseek-ai/dsh-experimental-client-ui-voice-input": "0.2.0-rc.1", + "@deepseek-ai/dsh-experimental-speech-to-text": "0.2.0-rc.1", + "@deepseek-ai/dsh-experimental-speech-to-text-sensevoice": "0.2.0-rc.1" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-file-reference": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-file-reference/-/dsh-file-reference-0.2.0-rc.1.tgz", + "integrity": "sha512-QYMVTexTK8V3dS3cDpSzYj2USN44nG4MZcUUjNyr0D/58A5g6HeER1ZUiwEnNSenj9wMUrNUulbgQUL2PYBQxg==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-file-reference-local": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-file-reference-local/-/dsh-file-reference-local-0.2.0-rc.1.tgz", + "integrity": "sha512-joBT3wRIIl78LifoixL1GktzYaS+wCrObj+Kf8TWtqqfKlwzUVYY12uqmQoVesQjWZHN8ICtEjV1OKfjK2us8w==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-file-reference": "0.2.0-rc.1", + "@deepseek-ai/dsh-system-prompt": "0.2.0-rc.1", + "@deepseek-ai/dsh-tools": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-fs": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-fs/-/dsh-fs-0.2.0-rc.1.tgz", + "integrity": "sha512-IWjXn/BsoWwT5dti/Jfkrx49GDGi1H7B3cuTgwRvxIQl6o86eb7ns+3mQiBpFyrCrVOMV+1t8FC1ipiIxol+gA==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-brand": "0.2.0-rc.1", + "@deepseek-ai/dsh-invariants": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-sandbox": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-fs-local": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-fs-local/-/dsh-fs-local-0.2.0-rc.1.tgz", + "integrity": "sha512-ntgv1fFhXEuL2ncfbORPprI+mVppaBSdVsUNLN1mfigO6snU6ORU5V2kohL3rop0Q5605lGA/+pGiiGIJYdxQg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4", + "chokidar": "^4.0.3", + "koffi": "3.1.1" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-fs": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-fs-observation-policy": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-fs-observation-policy/-/dsh-fs-observation-policy-0.2.0-rc.1.tgz", + "integrity": "sha512-odxCFuRQAyruog2mYSl0DxJJ//piwUEJuQpC0rY3Hrt4Zv3GjtNhZ42hwvIAug6ueqkJ8nWuR1XevJoRu518SA==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-fs": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-fs-sandbox": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-fs-sandbox/-/dsh-fs-sandbox-0.2.0-rc.1.tgz", + "integrity": "sha512-5pIVWc3mGUHigSCSq6R1eUuQB7NjwhdhQ9E6BbrTYXC/qzezvxLJSYEF7z0Vr6ajd7qhV00Wih8OyS1zGkJ9ww==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-fs": "0.2.0-rc.1", + "@deepseek-ai/dsh-fs-local": "0.2.0-rc.1", + "@deepseek-ai/dsh-sandbox": "0.2.0-rc.1", + "@deepseek-ai/dsh-sandbox-policy": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-goal": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-goal/-/dsh-goal-0.2.0-rc.1.tgz", + "integrity": "sha512-gqpN0MvHofDjqw/c23JF9EQ93VQnRrOFiyVG6XMl3d+PHPVizmLxEHsm4lIE+dU42+iA1dYVtPS1IUkH6l0jFA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-brand": "0.2.0-rc.1", + "@deepseek-ai/dsh-invariants": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-scope": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-projection": "0.2.0-rc.1", + "@deepseek-ai/dsh-typert-protocol": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-goal-round-driver": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-goal-round-driver/-/dsh-goal-round-driver-0.2.0-rc.1.tgz", + "integrity": "sha512-9MlObGRGkFE/DIp2kHV3GBS5/1zcx6eVysXDfWs9AvMYb0Etk8gJK5nHumyBAIXT97seiaFa30IBITTYemsi7w==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-goal": "0.2.0-rc.1", + "@deepseek-ai/dsh-invariants": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-headless": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-headless/-/dsh-headless-0.2.0-rc.1.tgz", + "integrity": "sha512-xdx3LXmRmeu1bXBvXOppaitF5UxsudhsIy8IrYpMkIRh63LWVbxJGMTCgwk6pM8Jrg1ayW7vhi8Fw7ewukMDtA==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-brand": "0.2.0-rc.1", + "@deepseek-ai/dsh-cmdline": "0.2.0-rc.1", + "@deepseek-ai/dsh-util-values": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4", + "commander": "^15.0.0" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/cordis-plugin-loader": "~1.0.5", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-agent-default-model": "0.2.0-rc.1", + "@deepseek-ai/dsh-fs": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-query": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-hmr": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-hmr/-/dsh-hmr-0.2.0-rc.1.tgz", + "integrity": "sha512-m92yJzl5TTnVAfPpyG9GYSW1hWZB8g+9UjrimF8a2RWOCbHgviytKYOexa+9vccsnoP0FqRxKQuVQh4aEJ6ymw==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.0", + "@deepseek-ai/schemastery": "~3.18.4", + "chokidar": "^4.0.3", + "picomatch": "^4.0.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/cordis-plugin-include": "~1.0.9", + "@deepseek-ai/cordis-plugin-loader": "~1.0.5", + "@deepseek-ai/cordis-plugin-timer": "~1.1.6", + "@deepseek-ai/dsh-app-boot": "0.2.0-rc.1", + "@deepseek-ai/dsh-cmdline": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-home-paths": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-home-paths/-/dsh-home-paths-0.2.0-rc.1.tgz", + "integrity": "sha512-QWHegbfNY4J7qZgBdiWshhhcF6fgybua6XKUaMIhxj4J+mqR9KEQOJ7hRjOOg8Yub3nGbBTyqpH10C44EGGroA==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-hook-protocol": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-hook-protocol/-/dsh-hook-protocol-0.2.0-rc.1.tgz", + "integrity": "sha512-jWgiLmTmXz60gEKTH+nKS/wqveKntQ498+cqzjQk9pGFsUaITi0twYu2SSVqYQ1dvLIbvlAvqsHrCCWZMOywTg==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-invariants": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-shell": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-hooks-claude-code": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-hooks-claude-code/-/dsh-hooks-claude-code-0.2.0-rc.1.tgz", + "integrity": "sha512-6pTtBU3l1jSCWxHYCeQdpDL5MZ4CJCsVGgpokEoB7u0OeT2vrA5/RHQuXi3YiOEtrzZqfKIcO0/ZCi8Bk1Z+5A==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-hook-protocol": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-projection": "0.2.0-rc.1", + "@deepseek-ai/dsh-subagent": "0.2.0-rc.1", + "@deepseek-ai/dsh-tools": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-hooks-codex": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-hooks-codex/-/dsh-hooks-codex-0.2.0-rc.1.tgz", + "integrity": "sha512-Xw00kZZvrhcogPZPxLIKps4N7tGeKsW2WX5+Rma7QWqSf/RA7d7pz/tRvdvOp4jElaRWc1PQ8JHi/2UWDXk+hg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-hook-protocol": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-projection": "0.2.0-rc.1", + "@deepseek-ai/dsh-tools": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-host-directory-picker": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-host-directory-picker/-/dsh-host-directory-picker-0.2.0-rc.1.tgz", + "integrity": "sha512-8OCjonS/poDfc49afEr2Jv60clYQjGfAqFWnKgE7RZ6AQH+THOEHfqC3LXF7n/YQD2xBesZ4U+uwS8Cjl1/CFw==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-host-directory-picker-auto": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-host-directory-picker-auto/-/dsh-host-directory-picker-auto-0.2.0-rc.1.tgz", + "integrity": "sha512-e3vk66vn+QLUathynSBtlVPP03KgEzOG/HSLCeVJ4Jhnipj4AIVDfNE5yMJ9CdJGkOH/+iMnOr4/dEIFAGaBGA==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-launch-environment": "0.2.0-rc.1" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/cordis-plugin-loader": "~1.0.5", + "@deepseek-ai/dsh-client-ui-directory-picker-browse": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-directory-picker-native": "0.2.0-rc.1", + "@deepseek-ai/dsh-host-directory-picker-browse": "0.2.0-rc.1", + "@deepseek-ai/dsh-host-directory-picker-native": "0.2.0-rc.1", + "@deepseek-ai/dsh-host-webserver": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-host-directory-picker-browse": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-host-directory-picker-browse/-/dsh-host-directory-picker-browse-0.2.0-rc.1.tgz", + "integrity": "sha512-Q00tYIdz3bHW76wZpvoaV7DFB0dKdEi6RkE8gUXxM9M3DrDw8r/zIPDX8kgWWFn7D+Y0kSWSrhpIRdOmwc4vlQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-host-directory-picker": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-host-directory-picker-native": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-host-directory-picker-native/-/dsh-host-directory-picker-native-0.2.0-rc.1.tgz", + "integrity": "sha512-vl+xT3TiLx3alIwj178DkQy5I5kde8VXMFRbfe4tdKYpesB34UYAsF/wCJf0xOB2AvZfwa65iEyzSmDkK40Qyw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-host-directory-picker": "0.2.0-rc.1", + "@deepseek-ai/dsh-native-command": "0.2.0-rc.1", + "koffi": "3.1.1" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-host-frontend-static": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-host-frontend-static/-/dsh-host-frontend-static-0.2.0-rc.1.tgz", + "integrity": "sha512-KypcH/rf2D+gnyBpVaNnXZdxcpBru3ko7kvKfg3EyAGVl7EU/BZNqk4SAeBlGC2Q+IrY0+dClQMK11zcBvJvDA==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-client-connection": "0.2.0-rc.1", + "@deepseek-ai/dsh-host-webserver": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-host-open-in-app": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-host-open-in-app/-/dsh-host-open-in-app-0.2.0-rc.1.tgz", + "integrity": "sha512-G5zIMumcUPzsSuqKQYkbgqEq4VO6f/hH9goOI8C0jYIJK5U4+vN9L4VXEQccTjCSh5DBp9957H9G0YAnuZn2KQ==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-launch-environment": "0.2.0-rc.1", + "@deepseek-ai/dsh-native-command": "0.2.0-rc.1", + "@deepseek-ai/dsh-subprocess": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-host-plugin-inventory": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-host-plugin-inventory/-/dsh-host-plugin-inventory-0.2.0-rc.1.tgz", + "integrity": "sha512-9jPsILbbodim7gswvWzCuvHgzXbvDMvVnR11pGY+FaSVEt4beWVdSPglxHmGHGbEOotSnhbwUnl6vouyRQo7eg==", + "license": "MIT", + "peer": true, + "dependencies": { + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/cordis-plugin-loader": "~1.0.5", + "@deepseek-ai/dsh-agent-preset-registry": "0.2.0-rc.1", + "@deepseek-ai/dsh-brand": "0.2.0-rc.1", + "@deepseek-ai/dsh-typert-protocol": "0.2.0-rc.1" + }, + "peerDependenciesMeta": { + "@deepseek-ai/dsh-agent-preset-registry": { + "optional": true + } + } + }, + "node_modules/@deepseek-ai/dsh-host-product-telemetry-otel": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-host-product-telemetry-otel/-/dsh-host-product-telemetry-otel-0.2.0-rc.1.tgz", + "integrity": "sha512-hLQW1eZoTjYoAWcPRiwDPkaQ9s5OszQ2gRDe3Q5kAsPKcwqVXFJOD5pM49W1JUArnmXJ8Szop3oVHthsoZD5zg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4", + "@opentelemetry/api-logs": "^0.220.0", + "@opentelemetry/otlp-exporter-base": "^0.220.0", + "@opentelemetry/sdk-logs": "^0.220.0" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-otel": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-host-webserver": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-host-webserver/-/dsh-host-webserver-0.2.0-rc.1.tgz", + "integrity": "sha512-/LkuSWupB7vijPty3Iypt9DZrBli9wsNh/E485m+xgo4uBbgloANQA+nyIpB0n+N20zleyV4EFYbe6Lb6k2oqQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4", + "compression": "^1.8.1", + "negotiator": "^1.0.0" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-http-proxy": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-http-proxy/-/dsh-http-proxy-0.2.0-rc.1.tgz", + "integrity": "sha512-C+0eloM7v1Ob0nNSKJ+ilU2uMIX8FOxE4t31Mdpf8TXXxGAVbjzu6P1Icn0WnjOXL+wAPuEXBrt9qhKPB6NPRQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "undici": "^8.10.0" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-invariants": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-invariants/-/dsh-invariants-0.2.0-rc.1.tgz", + "integrity": "sha512-sEeO6sRPGxgHChQsiU/V3LvelbVaLt7kb4WHVQqljZGgoAv3VZK0rzSlQaGfTCYJrThcoJ/a9mCT9pcZEZ3aDg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-jobs": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-jobs/-/dsh-jobs-0.2.0-rc.1.tgz", + "integrity": "sha512-ewueg51ZSEF+/sLXEhi5ySqFu2egKWI4koBwBciE2sAaOwBY2Ou9BqYUHFN1wGRaUYVZ/DrMpn18c0XBC37j0A==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-brand": "0.2.0-rc.1", + "@deepseek-ai/dsh-invariants": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-workspace": "0.2.0-rc.1" + }, + "peerDependenciesMeta": { + "@deepseek-ai/dsh-workspace": { + "optional": true + } + } + }, + "node_modules/@deepseek-ai/dsh-jobs-local": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-jobs-local/-/dsh-jobs-local-0.2.0-rc.1.tgz", + "integrity": "sha512-h8N5VxKl+cvc6NoZ73ymnFTyf2HPlzbAImEjvzmmhMPiotooXSFW/YCFAimrL883L9m0d4XZBsJOnlLekfHNFQ==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-jobs": "0.2.0-rc.1", + "@deepseek-ai/dsh-scope": "0.2.0-rc.1", + "@deepseek-ai/dsh-timeout": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-launch-environment": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-launch-environment/-/dsh-launch-environment-0.2.0-rc.1.tgz", + "integrity": "sha512-ADTbIFhcVnFSYmycI4Ln4q9GGv5YS+MRg0ahCbn0+rDLcYyx4TT9B9Xyiz856YRRPpYRbYwQqZ+o14kCDpicQA==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-lazy-require": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-lazy-require/-/dsh-lazy-require-0.2.0-rc.1.tgz", + "integrity": "sha512-WpC8EVJXeUiIwnDA1ThIqw0wQvcdqE7QxXwo1FgDfIo9JZRHPu0gdqtLr2a7iWp+ddNtsIB/5mD8c1sghWQD5w==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-llm": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-llm/-/dsh-llm-0.2.0-rc.1.tgz", + "integrity": "sha512-F5ZlBG8z8o5PfEWeEF/PN9t/A1N/oEErvqmpqE4J8f9mJR85DvBdV+rjDs7OjAbMJsJ8INjkbroruG5NNKDg5A==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-brand": "0.2.0-rc.1", + "@deepseek-ai/dsh-timeout": "0.2.0-rc.1", + "@deepseek-ai/dsh-typert-protocol": "0.2.0-rc.1", + "@deepseek-ai/dsh-util-crypto": "0.2.0-rc.1", + "@deepseek-ai/dsh-util-values": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-llm-deepseek": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-llm-deepseek/-/dsh-llm-deepseek-0.2.0-rc.1.tgz", + "integrity": "sha512-ENUE7f58O3neU2G72IpZP5t/0GBoKr748KEcNIrccmO+kIENjAwuOM87QY2Uw1GPcSBfVUx/TELolgcyAPpCTg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/cosmokit": "~1.8.5", + "@deepseek-ai/dsh-brand": "0.2.0-rc.1", + "@deepseek-ai/dsh-util-values": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4", + "eventsource-parser": "^3.1.0" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/cordis-plugin-loader": "~1.0.5", + "@deepseek-ai/dsh-anonymous-user-id": "0.2.0-rc.1", + "@deepseek-ai/dsh-atomic-write": "0.2.0-rc.1", + "@deepseek-ai/dsh-attachment": "0.2.0-rc.1", + "@deepseek-ai/dsh-deepseek-llm-api-extensions": "0.2.0-rc.1", + "@deepseek-ai/dsh-fs": "0.2.0-rc.1", + "@deepseek-ai/dsh-home-paths": "0.2.0-rc.1", + "@deepseek-ai/dsh-launch-environment": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-timeout": "0.2.0-rc.1" + }, + "peerDependenciesMeta": { + "@deepseek-ai/cordis-plugin-loader": { + "optional": true + } + } + }, + "node_modules/@deepseek-ai/dsh-llm-deepseek-account": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-llm-deepseek-account/-/dsh-llm-deepseek-account-0.2.0-rc.1.tgz", + "integrity": "sha512-rCgt9emRYA/RrxWPSlOR3DIzKhU0P5Pf6Cl35ZCoM++ulxHAHLpxHHagDGZa5aHMSpoYLXZyWtlhmrHFDB/xIw==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/cordis-plugin-loader": "~1.0.5", + "@deepseek-ai/dsh-deepseek-account": "0.2.0-rc.1", + "@deepseek-ai/dsh-launch-environment": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm-deepseek": "0.2.0-rc.1" + }, + "peerDependenciesMeta": { + "@deepseek-ai/cordis-plugin-loader": { + "optional": true + }, + "@deepseek-ai/dsh-deepseek-account": { + "optional": true + } + } + }, + "node_modules/@deepseek-ai/dsh-llm-deepseek-api-key": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-llm-deepseek-api-key/-/dsh-llm-deepseek-api-key-0.2.0-rc.1.tgz", + "integrity": "sha512-Qi2eXq0WVjYKU3RMiu523He2THnTK2Iek+qS1MMtVB45jwXJ3pVoKE0z30lN2+i368GLIJmsU5DeSWFo6DxRWg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/cordis-plugin-loader": "~1.0.5", + "@deepseek-ai/dsh-credentials": "0.2.0-rc.1", + "@deepseek-ai/dsh-launch-environment": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm-deepseek": "0.2.0-rc.1" + }, + "peerDependenciesMeta": { + "@deepseek-ai/cordis-plugin-loader": { + "optional": true + } + } + }, + "node_modules/@deepseek-ai/dsh-llm-pi-ai": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-llm-pi-ai/-/dsh-llm-pi-ai-0.2.0-rc.1.tgz", + "integrity": "sha512-rUeNLPlMPJk1Hn7UzBY6F1WE+yjRFBPnNAcXZ2ZtXuDaHN7wrVUaHsWZjdQwD3gYlttuhF/6Nx2Id8foLFMy0A==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-brand": "0.2.0-rc.1", + "@deepseek-ai/dsh-util-values": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4", + "@earendil-works/pi-ai": "^0.85.1" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/cordis-plugin-loader": "~1.0.5", + "@deepseek-ai/dsh-attachment": "0.2.0-rc.1", + "@deepseek-ai/dsh-authorization": "0.2.0-rc.1", + "@deepseek-ai/dsh-credentials": "0.2.0-rc.1", + "@deepseek-ai/dsh-fs": "0.2.0-rc.1", + "@deepseek-ai/dsh-launch-environment": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-timeout": "0.2.0-rc.1" + }, + "peerDependenciesMeta": { + "@deepseek-ai/cordis-plugin-loader": { + "optional": true + } + } + }, + "node_modules/@deepseek-ai/dsh-llm-retry": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-llm-retry/-/dsh-llm-retry-0.2.0-rc.1.tgz", + "integrity": "sha512-nYcRHDXWGyRVX1QLT45XskTeghOcvS7MbpOjBYrlIcggkrDMSzRmmo9pWz2ldIUZw+7PMg1/e8dStX9sLhFw4Q==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-brand": "0.2.0-rc.1", + "@deepseek-ai/dsh-invariants": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-projection": "0.2.0-rc.1", + "@deepseek-ai/dsh-timeout": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-mcp-client": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-mcp-client/-/dsh-mcp-client-0.2.0-rc.1.tgz", + "integrity": "sha512-/yiHuyxFbGAvYAyDc/eaE2eK/dywHeGAWT5+FyyuA0YBsc+mC0/cHj8+xv+lYRCaqYBPZoblbZf0tbnQi5/OWQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-util-values": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4", + "@modelcontextprotocol/client": "2.0.0" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-attachment": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-mcp-resources": "0.2.0-rc.1", + "@deepseek-ai/dsh-scope": "0.2.0-rc.1", + "@deepseek-ai/dsh-subprocess": "0.2.0-rc.1", + "@deepseek-ai/dsh-system-prompt": "0.2.0-rc.1", + "@deepseek-ai/dsh-timeout": "0.2.0-rc.1", + "@deepseek-ai/dsh-tools": "0.2.0-rc.1" + }, + "peerDependenciesMeta": { + "@deepseek-ai/dsh-mcp-resources": { + "optional": true + }, + "@deepseek-ai/dsh-system-prompt": { + "optional": true + } + } + }, + "node_modules/@deepseek-ai/dsh-mcp-resources": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-mcp-resources/-/dsh-mcp-resources-0.2.0-rc.1.tgz", + "integrity": "sha512-tam4++Z3XMYOgJvA8hRuPUEknViMUsXIRsM2lzojnf/KLb7AN/0a9PF9DwqzzLaMSL6Y4LxplZrZmSHDLSyjhA==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-util-values": "0.2.0-rc.1" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-scope": "0.2.0-rc.1", + "@deepseek-ai/dsh-system-prompt": "0.2.0-rc.1", + "@deepseek-ai/dsh-tools": "0.2.0-rc.1" + }, + "peerDependenciesMeta": { + "@deepseek-ai/dsh-system-prompt": { + "optional": true + } + } + }, + "node_modules/@deepseek-ai/dsh-message-feedback": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-message-feedback/-/dsh-message-feedback-0.2.0-rc.1.tgz", + "integrity": "sha512-1ViiXiaR/69s1nPqjSabPrdwxbxOewjw9pCQ+wiRG4WHjR/GL7DXwJJULsjKXrJDKNL+s9dlNU6IPpT29slNyw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-brand": "0.2.0-rc.1", + "@deepseek-ai/dsh-command-feedback": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-persistence": "0.2.0-rc.1", + "@deepseek-ai/dsh-typert-protocol": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-native-command": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-native-command/-/dsh-native-command-0.2.0-rc.1.tgz", + "integrity": "sha512-CgWN1pIq+ESrwl54Zuj9yYMQMqhoDch2hDW6/hZ+jzHOx7xyrJP/yCCoaOw6KSH3GRN+jUUIT2ZcciBVxs2nQw==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-office-to-pdf": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-office-to-pdf/-/dsh-office-to-pdf-0.2.0-rc.1.tgz", + "integrity": "sha512-7fCxmUTTN26hQIQG8IdjpMybNiK3XcebtvEdm/0mLsdwebJekbDKJr9l7Y9mVVB0724DgiJNp7OixG3ovZBgjA==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-brand": "0.2.0-rc.1", + "@deepseek-ai/dsh-typert-protocol": "0.2.0-rc.1", + "@deepseek-ai/libreoffice-kit": "^0.1.1", + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-otel": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-otel/-/dsh-otel-0.2.0-rc.1.tgz", + "integrity": "sha512-HuPnHW19o5DUvaUQq9ZlrsgQR2GgGnqoxzqWfVIilJaziW3Mnd1KhAzisVFLLVeb8OFqConOBwoSsJCC+VMx3A==", + "license": "MIT", + "peer": true, + "dependencies": { + "@opentelemetry/api": "^1.9.1", + "@opentelemetry/api-logs": "^0.220.0", + "@opentelemetry/core": "2.9.0", + "@opentelemetry/otlp-exporter-base": "^0.220.0", + "@opentelemetry/otlp-transformer": "^0.220.0", + "@opentelemetry/resources": "^2.9.0", + "@opentelemetry/sdk-logs": "^0.220.0", + "got": "^14.6.6" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-session": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-output-retention": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-output-retention/-/dsh-output-retention-0.2.0-rc.1.tgz", + "integrity": "sha512-hIP3eAgwrSAQ67+48+TWdR7jdMFRan39yxwwr3dY6bzCaCgrRqRSuvYxSYr9eAdIqak0n0aZdnGdlX/m1Fp97w==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-package-manifest": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-package-manifest/-/dsh-package-manifest-0.2.0-rc.1.tgz", + "integrity": "sha512-topsRB2Pr2pfyQgqIkcEnS0mjDWZUDS+inb7/FREv0UaxkB0ezIiQuSJVJk5PQ3KMyuMSz2oNH/URlKOGw35Sw==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-permission-presets": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-permission-presets/-/dsh-permission-presets-0.2.0-rc.1.tgz", + "integrity": "sha512-GXoWGm+kMrBxBgKH8NaAvDNilmvRxypFlSWnI6NIzoepi2GHCxknt5FLpzU9Jlnyb7mlajwufjJw9TQc4zfotg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-commands": "0.2.0-rc.1", + "@deepseek-ai/dsh-invariants": "0.2.0-rc.1", + "@deepseek-ai/dsh-sandbox": "0.2.0-rc.1", + "@deepseek-ai/dsh-sandbox-policy": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-projection": "0.2.0-rc.1", + "@deepseek-ai/dsh-shell": "0.2.0-rc.1", + "@deepseek-ai/dsh-typert-protocol": "0.2.0-rc.1", + "@deepseek-ai/dsh-user-approval": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-persona": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-persona/-/dsh-persona-0.2.0-rc.1.tgz", + "integrity": "sha512-iq618bx0VAswW8JmetEA9BvC7ouRSPqSfoC3iOhIrh414fYYahrebDcbMmAQixBAs5xyDOs6sR3lbdBJgiNgQQ==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-system-prompt": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-plan-mode": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-plan-mode/-/dsh-plan-mode-0.2.0-rc.1.tgz", + "integrity": "sha512-d3aBB67lLbFmPp7Wpk0MRGYLGD3fplZx6ZBw+YeQ5Sx8EkEiS7aOJDarjtpO46dXjy2yBdh4Fg9e2/XUYdrt9g==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-brand": "0.2.0-rc.1", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-commands": "0.2.0-rc.1", + "@deepseek-ai/dsh-invariants": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-projection": "0.2.0-rc.1", + "@deepseek-ai/dsh-system-prompt": "0.2.0-rc.1", + "@deepseek-ai/dsh-tools": "0.2.0-rc.1", + "@deepseek-ai/dsh-user-questions": "0.2.0-rc.1" + }, + "peerDependenciesMeta": { + "@deepseek-ai/dsh-commands": { + "optional": true + } + } + }, + "node_modules/@deepseek-ai/dsh-plugin-manager": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-plugin-manager/-/dsh-plugin-manager-0.2.0-rc.1.tgz", + "integrity": "sha512-5GVhQcwQi1O9UG4YTNgvR+PO3BDV9+XAAF2+YrIm2ycFwQ60bk2wevpepm7Pcw+g4dD9pmjigg4OY0pC4YBHjg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-app-boot": "0.2.0-rc.1", + "@deepseek-ai/dsh-atomic-write": "0.2.0-rc.1", + "@deepseek-ai/dsh-util-values": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4", + "execa": "^10.0.0", + "yaml": "^2.9.0", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/cordis-plugin-loader": "~1.0.5", + "@deepseek-ai/dsh-brand": "0.2.0-rc.1", + "@deepseek-ai/dsh-hmr": "0.2.0-rc.1", + "@deepseek-ai/dsh-host-plugin-inventory": "0.2.0-rc.1", + "@deepseek-ai/dsh-sandbox": "0.2.0-rc.1", + "@deepseek-ai/dsh-sandbox-policy": "0.2.0-rc.1", + "@deepseek-ai/dsh-subprocess": "0.2.0-rc.1", + "@deepseek-ai/dsh-tools": "0.2.0-rc.1", + "@deepseek-ai/dsh-typert-protocol": "0.2.0-rc.1", + "@deepseek-ai/dsh-user-approval": "0.2.0-rc.1" + }, + "peerDependenciesMeta": { + "@deepseek-ai/dsh-hmr": { + "optional": true + }, + "@deepseek-ai/dsh-user-approval": { + "optional": true + } + } + }, + "node_modules/@deepseek-ai/dsh-plugin-package-inventory-deepseek": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-plugin-package-inventory-deepseek/-/dsh-plugin-package-inventory-deepseek-0.2.0-rc.1.tgz", + "integrity": "sha512-KYPqao0dwMUrJCSZNWgxQAughS9jNJRy+4qt04lwxadOLEuaYAUlfaAStCJI68YYw19AZ5+BrC1w7+tk2qRt1w==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-brand": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/cordis-plugin-loader": "~1.0.5", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-agent-preset-registry": "0.2.0-rc.1", + "@deepseek-ai/dsh-deepseek-llm-api-extensions": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1" + }, + "peerDependenciesMeta": { + "@deepseek-ai/dsh-agent-preset-registry": { + "optional": true + } + } + }, + "node_modules/@deepseek-ai/dsh-ptc-runtime": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-ptc-runtime/-/dsh-ptc-runtime-0.2.0-rc.1.tgz", + "integrity": "sha512-bz4ObfDeRZyBCejUMrSiDKpIffCImGafgktIWqTEAqNCprVWLRUHT+rHGFPcxHJRBsvxFQLlXHkYc/ccfqIB4A==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-sandbox": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-ptc-runtime-node": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-ptc-runtime-node/-/dsh-ptc-runtime-node-0.2.0-rc.1.tgz", + "integrity": "sha512-qQUn6oKgoOIOnzXPMXoCgiuq9ocQl8vEgbmDignviXPj1au48FQpkXVilKBGF+ClVHmmyuVmVHPIdG1X+2RWTA==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-util-values": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-fs": "0.2.0-rc.1", + "@deepseek-ai/dsh-ptc-runtime": "0.2.0-rc.1", + "@deepseek-ai/dsh-sandbox": "0.2.0-rc.1", + "@deepseek-ai/dsh-sandbox-policy": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-subprocess": "0.2.0-rc.1", + "@deepseek-ai/dsh-timeout": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-pwsh-local": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-pwsh-local/-/dsh-pwsh-local-0.2.0-rc.1.tgz", + "integrity": "sha512-iKi2MdBcU1B6y0qe6oDvB7JUPL2DyMOfmNGww/+4eFh8jRnlJe+uoTJSRmcq5ofKHzChWfuuXpepiBJr9NFt7A==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-shell": "0.2.0-rc.1", + "@deepseek-ai/dsh-subprocess": "0.2.0-rc.1", + "@deepseek-ai/dsh-timeout": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-pwsh-sandbox": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-pwsh-sandbox/-/dsh-pwsh-sandbox-0.2.0-rc.1.tgz", + "integrity": "sha512-1vxcRjpRCk5ynQn1+QZM407P9v2oeFztZatg60Ti6LBO1JoXUBDdtcGDtpD+MXOu7LT/wxRdNpqnCyqXs5k/Ig==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-pwsh-local": "0.2.0-rc.1", + "@deepseek-ai/dsh-sandbox": "0.2.0-rc.1", + "@deepseek-ai/dsh-sandbox-policy": "0.2.0-rc.1", + "@deepseek-ai/dsh-shell": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-repeat-tool-reminder": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-repeat-tool-reminder/-/dsh-repeat-tool-reminder-0.2.0-rc.1.tgz", + "integrity": "sha512-+I/6Lh6bzpMrMsYSjPfSaTRqbJ+06xGKeNxILYR1zjerptN5zf1Xyv+jshNvWhf1qslpVYbFCutS+7xdrB73nA==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-tools": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-sandbox": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-sandbox/-/dsh-sandbox-0.2.0-rc.1.tgz", + "integrity": "sha512-NnEHqSf4SKoM5cIqtHg+utLUZYJX4r9u2PwQbEpYwiOYSvOW5G4DRtLRpIX7J6V2HOC6CXo2Xcm3DJBOsbKYOA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-util-values": "0.2.0-rc.1" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-sandbox-local": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-sandbox-local/-/dsh-sandbox-local-0.2.0-rc.1.tgz", + "integrity": "sha512-R5/wtWevtmu2rt6onuvmEBHXYQwU49kRsxc4Cc9GpZdgbXs7vVtvdzXjwl+cICcGbZybAfjUv/9rntWwXZskjg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-sandbox-windows-acl": "0.2.0-rc.1", + "@deepseek-ai/dsh-util-values": "0.2.0-rc.1", + "@deepseek-ai/node-addon-system": "~0.1.2", + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-sandbox": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-sandbox-policy": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-sandbox-policy/-/dsh-sandbox-policy-0.2.0-rc.1.tgz", + "integrity": "sha512-O850xvmnU+Bxpq7F7d0QjiFm3Y581GwFxfvBvLohzyAC81M6iXGBrbxt4EcX/CUPJEIHB0KSOUrX9/3xQulNZw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-invariants": "0.2.0-rc.1", + "@deepseek-ai/dsh-sandbox": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-projection": "0.2.0-rc.1", + "@deepseek-ai/dsh-system-prompt": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-sandbox-windows-acl": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-sandbox-windows-acl/-/dsh-sandbox-windows-acl-0.2.0-rc.1.tgz", + "integrity": "sha512-UWyU91QFx5+SUzCcoXous5GFjHtgwJ5p7IvOT0MiFRGFUlqjR5kzYWwvOln40JZUgKLpqa0KnC0Yr9SLBDbatA==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-lazy-require": "0.2.0-rc.1", + "@deepseek-ai/dsh-win32-process": "0.2.0-rc.1", + "koffi": "3.1.1", + "yaml": "^2.4.2" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-skill": "0.2.0-rc.1", + "@deepseek-ai/dsh-subprocess": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-schedule": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-schedule/-/dsh-schedule-0.2.0-rc.1.tgz", + "integrity": "sha512-r62dsh+E192+Mpa08DkWm+bkQlAJbztRgTy/a5l/LaNNIWU2LTmBalVJauB69l2Gx5YEbIKZW51xNAM+w9Chjg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4", + "@js-temporal/polyfill": "0.5.1", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-api-session-controller": "0.2.0-rc.1", + "@deepseek-ai/dsh-brand": "0.2.0-rc.1", + "@deepseek-ai/dsh-invariants": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-persistence": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-projection": "0.2.0-rc.1", + "@deepseek-ai/dsh-storage-domain": "0.2.0-rc.1", + "@deepseek-ai/dsh-tools": "0.2.0-rc.1", + "@deepseek-ai/dsh-typert-protocol": "0.2.0-rc.1", + "@deepseek-ai/dsh-workspace": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-scope": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-scope/-/dsh-scope-0.2.0-rc.1.tgz", + "integrity": "sha512-D1JeWIz40A62/nJIi7HwLsddmuDwdcxV9Lbx5IgBveWDZHGqPIP0/CPJ4o6XWr+C1qI/GBtdMkN2Z3F20Rlt7w==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-invariants": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-sdk-app": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-sdk-app/-/dsh-sdk-app-0.2.0-rc.1.tgz", + "integrity": "sha512-6/M09yD7Hlv6IrshCt+/+91rWUmXNTmbkREr3OTrV2yl0CqtVCaysALq3hV+NlIf62hqF2Y+4HiV6MIcHF4VbQ==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-cmdline": "0.2.0-rc.1", + "@deepseek-ai/dsh-sdk-jsonrpc-server": "0.2.0-rc.1", + "@deepseek-ai/dsh-skill-office": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-workspace-dependencies": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4", + "commander": "^15.0.0" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-sdk-jsonrpc-server": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-sdk-jsonrpc-server/-/dsh-sdk-jsonrpc-server-0.2.0-rc.1.tgz", + "integrity": "sha512-oyKsDN7turr85xcpsniV3EciMTfPIekktNcVBLLPduT0fuyUwX3d0hcWPz8wwuaEKqtZwYrd+pi/AyPGTyFQXA==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-brand": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-attachment": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm-deepseek-api-key": "0.2.0-rc.1", + "@deepseek-ai/dsh-scope": "0.2.0-rc.1", + "@deepseek-ai/dsh-sdk-protocol": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-subagent": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-sdk-minimal": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-sdk-minimal/-/dsh-sdk-minimal-0.2.0-rc.1.tgz", + "integrity": "sha512-/lVh/a7ua0+NNThOX8fdpd2tsGuxSq6Ft8E5thdVTj4QT3RrTVSEvzrKAC2MCECQfP4k1A0vMNPr5V6KXpUbCA==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/cordis-plugin-timer": "~1.1.6", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-agent-loop": "0.2.0-rc.1", + "@deepseek-ai/dsh-deepseek-llm-api-extensions": "0.2.0-rc.1", + "@deepseek-ai/dsh-invariants": "0.2.0-rc.1", + "@deepseek-ai/dsh-jobs-local": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm-deepseek-api-key": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm-retry": "0.2.0-rc.1", + "@deepseek-ai/dsh-mcp-resources": "0.2.0-rc.1", + "@deepseek-ai/dsh-plugin-package-inventory-deepseek": "0.2.0-rc.1", + "@deepseek-ai/dsh-sandbox-local": "0.2.0-rc.1", + "@deepseek-ai/dsh-sandbox-policy": "0.2.0-rc.1", + "@deepseek-ai/dsh-scope": "0.2.0-rc.1", + "@deepseek-ai/dsh-sdk-app": "0.2.0-rc.1", + "@deepseek-ai/dsh-sdk-jsonrpc-server": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-log-deepseek": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-persistence-jsonl": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-projection": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-title": "0.2.0-rc.1", + "@deepseek-ai/dsh-subprocess-local": "0.2.0-rc.1", + "@deepseek-ai/dsh-system-prompt": "0.2.0-rc.1", + "@deepseek-ai/dsh-terminal": "0.2.0-rc.1", + "@deepseek-ai/dsh-terminal-bash": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-bash-persistent": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-pwsh-persistent": "0.2.0-rc.1", + "@deepseek-ai/dsh-tools": "0.2.0-rc.1" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-sdk-protocol": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-sdk-protocol/-/dsh-sdk-protocol-0.2.0-rc.1.tgz", + "integrity": "sha512-UK9wS7F0tbQHhTMJdIFYSqsTecYDkRsReeNpFqIaVd8ZEIx7yYLPnm+znSZ2vcC7frZhzViZPwOkVsbVEMKM8A==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-subagent": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-session": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session/-/dsh-session-0.2.0-rc.1.tgz", + "integrity": "sha512-KUDCUk8kmiJCwvV3gDbkUSpkyoGHdg36nIhKsEh6iBoYDuIQCuvX2htiVRXCm099XZO6rCBVInmm1193UoPYcA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-brand": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-util-values": "0.2.0-rc.1" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-scope": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-session-checkpoint-policy": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-checkpoint-policy/-/dsh-session-checkpoint-policy-0.2.0-rc.1.tgz", + "integrity": "sha512-mhtI7HVxgYknilZryytjFJl3b1wlUFg/LNorw5zcoeBXoC/+eGw8JelIbuT81oU3bkerfNHir3CUA+RFdkyZkw==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-persistence": "0.2.0-rc.1", + "@deepseek-ai/dsh-tools": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-session-format": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-format/-/dsh-session-format-0.2.0-rc.1.tgz", + "integrity": "sha512-j2m+3FQeFPW9fgzRktL8E6J2UegpWPcc7nSFP+Ir7fdKYD5xDukcbdYDzzairbqQedntb0QMcp78rBQeJOmoYA==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-util-values": "0.2.0-rc.1" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-session-format-catalog": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-format-catalog/-/dsh-session-format-catalog-0.2.0-rc.1.tgz", + "integrity": "sha512-Kacc7D3at1ifPlPbFD3t463/m+jg0RdERnuTWH1omv0hjT5ZkX/xM0TS37bhlyhLJdI+1TOqm9Jy3BpR15yR0Q==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-compaction-image-offload": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-format": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-format-v0-to-v1": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-format-v1-to-v2": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-format-v2-to-v3": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-format-v3-to-v4": "0.2.0-rc.1" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-session": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-session-format-v0-to-v1": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-format-v0-to-v1/-/dsh-session-format-v0-to-v1-0.2.0-rc.1.tgz", + "integrity": "sha512-bBf8YJKpolltz2vn03+mbT5IZ3mrAeN1GjgVQ5FwhU5ITWLV6jQqvtN7DWEWjTwKVVmUpl2XkmRcGBib+PH16Q==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-session-format": "0.2.0-rc.1", + "@deepseek-ai/dsh-util-values": "0.2.0-rc.1" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-session-format-v1-to-v2": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-format-v1-to-v2/-/dsh-session-format-v1-to-v2-0.2.0-rc.1.tgz", + "integrity": "sha512-YXqkqnTqMUKUgdSZT4GXCEwWvfSZv7TEIG+wfYxtJBWQlzfuCf7iHjNIWVNBslQdxl0VxbaFThbwZUtBa3f2Tg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-format": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-format-v0-to-v1": "0.2.0-rc.1", + "@deepseek-ai/dsh-util-values": "0.2.0-rc.1" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-session-format-v2-to-v3": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-format-v2-to-v3/-/dsh-session-format-v2-to-v3-0.2.0-rc.1.tgz", + "integrity": "sha512-f7QapRRmMstuTYVVORYWgZn2gngw8Vu/ls5iBYfyb+15FbgwYr8bIOKNMGQ660dg4PHsxzWprsTbsxBAe9QDNw==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-session-format": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-format-v0-to-v1": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-format-v1-to-v2": "0.2.0-rc.1" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-session-format-v3-to-v4": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-format-v3-to-v4/-/dsh-session-format-v3-to-v4-0.2.0-rc.1.tgz", + "integrity": "sha512-vnplfHQOqTXpe7EMN/0h0VZyBS10+kzzjm5x/X01iu5lynbOQs2jRdi4Lrzp9fgnAUEJYaESZZLlWKY40arLCw==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-session-format": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-format-v2-to-v3": "0.2.0-rc.1" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-session-log-deepseek": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-log-deepseek/-/dsh-session-log-deepseek-0.2.0-rc.1.tgz", + "integrity": "sha512-L8Nvf1YKaIsHNGkPa4PBLnjDpxY57rdBwBQdEeCcwgnvlljZJ5DGsLdCA+Kz3bwxSDZjaqjtc6DpC9Fz7T8G+Q==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-brand": "0.2.0-rc.1", + "@deepseek-ai/dsh-util-values": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-deepseek-llm-api-extensions": "0.2.0-rc.1", + "@deepseek-ai/dsh-invariants": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-session-log-export": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-log-export/-/dsh-session-log-export-0.2.0-rc.1.tgz", + "integrity": "sha512-cY7HbxXrt/GIJMNjUWuIO9d3pYIE0Q4PEQ6TICrSnW4dPNwvPprfjrIORsdgiS9hx8mfKQpctoxRE/kDARywXA==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-brand": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-format": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4", + "fflate": "^0.8.2" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-persistence": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-session-persistence": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-persistence/-/dsh-session-persistence-0.2.0-rc.1.tgz", + "integrity": "sha512-OAHmDpR3LasgEXzpmGyajlgcG5tOEzlUSclovllLtKaY402hcTn6Vm7W/EzRMwc+jvSfEQyXDY1g7wG3t3Ch+g==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-util-values": "0.2.0-rc.1" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-brand": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-timeout": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-session-persistence-jsonl": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-persistence-jsonl/-/dsh-session-persistence-jsonl-0.2.0-rc.1.tgz", + "integrity": "sha512-16hp5zx1Q1SIVJfQI/hrxASHMkE/r+pHeELn1b/GZCpKwCD1nwiQapqHhgq/+WEb9SRvRpWAxE5dQWEscZghEw==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-format": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-format-catalog": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-format-v3-to-v4": "0.2.0-rc.1", + "@deepseek-ai/node-addon-system": "~0.1.2", + "@deepseek-ai/schemastery": "~3.18.4", + "koffi": "3.1.1" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-persistence": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-session-projection": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-projection/-/dsh-session-projection-0.2.0-rc.1.tgz", + "integrity": "sha512-6ymxQyycjXlxayjgVfxAsQv8POk3oKny/mrpxPcz30/Sv8FRsWnEnKaWf1pQvlBsGQcN6atOqXWsNyvHSyT/zw==", + "license": "MIT", + "dependencies": { + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-session": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-session-projection-cache": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-projection-cache/-/dsh-session-projection-cache-0.2.0-rc.1.tgz", + "integrity": "sha512-RXBfR2mwWAa/VyA2VJvGMOYngGLQ9gcuHc6/9Hd3HAVqJxqLA4I0lj1+QaGiNBjjbymHr+1F4Kk27tCmgOUiLA==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-util-values": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-projection": "0.2.0-rc.1", + "@deepseek-ai/dsh-storage-domain": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-session-query": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-query/-/dsh-session-query-0.2.0-rc.1.tgz", + "integrity": "sha512-kjYmW5/D/hANpczVOYUtbkYUen2s2ZyVaAwJfdlYKW5l/ls++XxdKM947BX76DxgHYg8RXjcSkkbK1TPNaAjiA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-session-format-catalog": "0.2.0-rc.1" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-brand": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-persistence": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-projection": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-projection-cache": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-title": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-todo": "0.2.0-rc.1" + }, + "peerDependenciesMeta": { + "@deepseek-ai/dsh-session-persistence": { + "optional": true + }, + "@deepseek-ai/dsh-session-projection": { + "optional": true + }, + "@deepseek-ai/dsh-session-projection-cache": { + "optional": true + } + } + }, + "node_modules/@deepseek-ai/dsh-session-query-sqlite": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-query-sqlite/-/dsh-session-query-sqlite-0.2.0-rc.1.tgz", + "integrity": "sha512-KLKXIPFrSIhpenXUcibR9FMpVDxoAzXs1/YfaU1TdvE6Re/BMB1kzajymIw/QJNcEy0P9OuqzRslvcd1VpT2KQ==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-persistence": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-query": "0.2.0-rc.1" + }, + "peerDependenciesMeta": { + "@deepseek-ai/dsh-session-persistence": { + "optional": true + } + } + }, + "node_modules/@deepseek-ai/dsh-session-reference": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-reference/-/dsh-session-reference-0.2.0-rc.1.tgz", + "integrity": "sha512-cjjGkNB7f0BvT9GQUInoc8+kmomPl8dPHNQ+Om7ip+Ayl/n3Hi5f7Uzam7DWK8Du8eJnne2NFmhlHow0xdUidw==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-brand": "0.2.0-rc.1", + "@deepseek-ai/dsh-util-values": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-compaction": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-output-retention": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-projection": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-projection-cache": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-query": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-title": "0.2.0-rc.1", + "@deepseek-ai/dsh-spill": "0.2.0-rc.1", + "@deepseek-ai/dsh-subagent": "0.2.0-rc.1", + "@deepseek-ai/dsh-system-prompt": "0.2.0-rc.1", + "@deepseek-ai/dsh-typert-protocol": "0.2.0-rc.1" + }, + "peerDependenciesMeta": { + "@deepseek-ai/dsh-session-projection-cache": { + "optional": true + }, + "@deepseek-ai/dsh-spill": { + "optional": true + } + } + }, + "node_modules/@deepseek-ai/dsh-session-stats": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-stats/-/dsh-session-stats-0.2.0-rc.1.tgz", + "integrity": "sha512-Rf7/SaDYyT5Fk8KNodrMzBGkRTwLBmOfEyZmSGWyRb/CRSg1TFscOLStvUk9jq9OllzvicpWjfqgFK1SJi2Paw==", + "license": "MIT", + "dependencies": { + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-projection": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-session-telemetry": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-telemetry/-/dsh-session-telemetry-0.2.0-rc.1.tgz", + "integrity": "sha512-scKwzaJReHYOZ9R0R83qK7FnuXcSp4lnzvzwDNslJOH1IE+bb65LTXct0l8Nrhe1u2PtFRngCtOb+IiolKFaZg==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-session-telemetry-otel": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-telemetry-otel/-/dsh-session-telemetry-otel-0.2.0-rc.1.tgz", + "integrity": "sha512-Ky/czsfOUzF7lXtVcYVw0qFam07ihh9noyzPudbyFbTnc9o1E0GIPgI9Wa/w3ypE9z2dGkUJLx8HakEAom3F5Q==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4", + "@opentelemetry/api-logs": "^0.220.0", + "@opentelemetry/otlp-exporter-base": "^0.220.0", + "@opentelemetry/sdk-logs": "^0.220.0" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-anonymous-user-id": "0.2.0-rc.1", + "@deepseek-ai/dsh-command-feedback": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-message-feedback": "0.2.0-rc.1", + "@deepseek-ai/dsh-otel": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-telemetry": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-session-title": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-title/-/dsh-session-title-0.2.0-rc.1.tgz", + "integrity": "sha512-IHvlestI2LFrknefZ3TrgdtEAghYV75eBVr1CL3gbJfj9ycu8qMpzTTrmMQn4TDldzuKf9mr+6iAp7MhOPKzvA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-util-values": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-brand": "0.2.0-rc.1", + "@deepseek-ai/dsh-invariants": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-projection": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-session-title-first-prompt-llm": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-title-first-prompt-llm/-/dsh-session-title-first-prompt-llm-0.2.0-rc.1.tgz", + "integrity": "sha512-tknCoK5EI9n01xglMhZGASjZV60aD3ShoG/hZZnEovU8xFOjRpfspXZnrexD9V9hVpndkvvnRRkYiKSF2AvicA==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-title": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-title-llm": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-session-title-llm": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-title-llm/-/dsh-session-title-llm-0.2.0-rc.1.tgz", + "integrity": "sha512-LXSKmGA7vNv/SRL1Icw3BH8o6FdDfEP4uYKWpUFPIWLFJgJNfZtYkrv2AfMjHx4wiSJ6SKzrpZnic3TD3GLByQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-util-values": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-title": "0.2.0-rc.1", + "@deepseek-ai/dsh-timeout": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-session-turn-outline": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-turn-outline/-/dsh-session-turn-outline-0.2.0-rc.1.tgz", + "integrity": "sha512-vwj2sWYyFDCjlutw9N+2NPNDPlRk1qITQOEYC1uNgNSaFKwAnQ7vEM38pasFVRHZ32J8D9UotOahz+j3wYWK4g==", + "license": "MIT", + "dependencies": { + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-projection": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-settings": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-settings/-/dsh-settings-0.2.0-rc.1.tgz", + "integrity": "sha512-kC7Cq6Ls6of8J9qY0/8oehLbf9AV62QVA9dL0YPOnvdvgaNJaRbLtXxwr+I36rjDVmOfUkqvW4nxBIjJmPSY/g==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/cordis-plugin-loader": "~1.0.5", + "@deepseek-ai/cosmokit": "~1.8.5", + "@deepseek-ai/dsh-config-editor": "0.2.0-rc.1", + "@deepseek-ai/dsh-util-values": "0.2.0-rc.1", + "yaml": "^2.8.1" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-brand": "0.2.0-rc.1", + "@deepseek-ai/dsh-invariants": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4" + } + }, + "node_modules/@deepseek-ai/dsh-shell": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-shell/-/dsh-shell-0.2.0-rc.1.tgz", + "integrity": "sha512-gdugmqfA+BA1y+qLxHjtHuw8Jc1Dnar2dCaKlawagUxnBCK7mcqkYstTaeiANM7o+2tWELLIt/Pjj46PnMY8iA==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-sandbox": "0.2.0-rc.1", + "@deepseek-ai/dsh-subprocess": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-shell-env": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-shell-env/-/dsh-shell-env-0.2.0-rc.1.tgz", + "integrity": "sha512-4qOlCOg7Bs/dieRpYFK5aTycWLuJU3RLsbGHtgwz9hyjCyI339pCR9Sd4TyZstENhPHI9k/mjKy1IsbT4T+wig==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-app-boot": "0.2.0-rc.1", + "@deepseek-ai/dsh-home-paths": "0.2.0-rc.1", + "@deepseek-ai/dsh-shell": "0.2.0-rc.1", + "@deepseek-ai/dsh-tools": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-skill": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-skill/-/dsh-skill-0.2.0-rc.1.tgz", + "integrity": "sha512-gCubwIMvMstpF1nWppJBAygQxrPDxN+XfX4RwQtvXcv3m5qGtcqPL0owx/tF7s+LUGipCf97LwMm5trn5sOOUg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-util-values": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-scope": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-skill-badge": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-skill-badge/-/dsh-skill-badge-0.2.0-rc.1.tgz", + "integrity": "sha512-KmO+IvU3kure3Pd3VjJBXRnQDwkbQHYA9m8EPUkmDcyiVklowUVza/jpJkG1FoK53bEgvU269AzkB3Jor5UUdw==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-skill": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-skill-filesystem": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-skill-filesystem/-/dsh-skill-filesystem-0.2.0-rc.1.tgz", + "integrity": "sha512-33ZQ3QxGhaXozezcKMAJ+wqqynLD6tEUgufVtDMHzAto41uc8N3U+uqjJijuujiIE7Giw8gNG8vt60rOjWqMVw==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4", + "chokidar": "^5.0.0", + "yaml": "^2.4.2" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-fs": "0.2.0-rc.1", + "@deepseek-ai/dsh-home-paths": "0.2.0-rc.1", + "@deepseek-ai/dsh-skill": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-skill-filesystem/node_modules/chokidar": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", + "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", + "license": "MIT", + "dependencies": { + "readdirp": "^5.0.0" + }, + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@deepseek-ai/dsh-skill-filesystem/node_modules/readdirp": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.1.1.tgz", + "integrity": "sha512-Kko+Y5XQ6fM+Ce3dq3m9YGxnacYZYl9cA1wZjaF3Vbry2L3i1qVg8+CAgNPsXRArPMUMCaOR7oa9Nqntc43JKA==", + "license": "MIT", + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@deepseek-ai/dsh-skill-office": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-skill-office/-/dsh-skill-office-0.2.0-rc.1.tgz", + "integrity": "sha512-x2RS6pWUqGAuxJ1mmPp9xk6EsUiUQNydEmH1P8dwMIIBOmjAaiG0dGRUA6nBxYGuONv+RqrQ+zGo5vkiM+wEsg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/libreoffice-kit": "^0.1.1", + "@deepseek-ai/schemastery": "~3.18.4", + "yaml": "^2.4.2" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-skill": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-spill": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-spill/-/dsh-spill-0.2.0-rc.1.tgz", + "integrity": "sha512-f4f2nqOPkLZgW/LlPq4eIGjSRcrIm0YJrYx8M3Dn5lvEuvsM9fbnB/Ye1V1CTBNv0khKMoZDOpbzd/tT0tjp6w==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-brand": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-spill-local": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-spill-local/-/dsh-spill-local-0.2.0-rc.1.tgz", + "integrity": "sha512-lbaBxQ+lNYVoHpG0FT7w6juJ2iXakpavpa/7hjI00HUc9YYvnrSquLt1HkV+tI/ADU2mJiG4YuUu2GKGNyZ+BA==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-spill": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-spill-policy": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-spill-policy/-/dsh-spill-policy-0.2.0-rc.1.tgz", + "integrity": "sha512-DAC8i1Tedl9n5doGsYp7KfYeVixqRpdiJD3H8AvbDQLhH3rHRK0h2yvpf0jSi2lGwBcJw8D6fi8lI95/9y3KoA==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-attachment": "0.2.0-rc.1", + "@deepseek-ai/dsh-fs": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-output-retention": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-spill": "0.2.0-rc.1", + "@deepseek-ai/dsh-token-meter": "0.2.0-rc.1", + "@deepseek-ai/dsh-tools": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-storage": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-storage/-/dsh-storage-0.2.0-rc.1.tgz", + "integrity": "sha512-cHHR5jdsqS+Coj9dm5xslDcn2AUL5N7H8M6udEBAGlxjTCB/0cO+S8i2I04LOuBUd/3MJ+1Xwsny7rC9SpBjHg==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-storage-domain": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-storage-domain/-/dsh-storage-domain-0.2.0-rc.1.tgz", + "integrity": "sha512-LnoWOJs72A/KxwyOH+EfFji39JUX2u2dqyfeDWodqW/qFVu+bekubuz1HTURuBzuG281TFzTSyHFYt9vgL0wrw==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-invariants": "0.2.0-rc.1", + "@deepseek-ai/dsh-storage": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-storage-json": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-storage-json/-/dsh-storage-json-0.2.0-rc.1.tgz", + "integrity": "sha512-+/WUqPOCsUkgXRorisy7MW2y0Z94OpkLJpcBR4RxvYG1w62JR6Sd0pQbl+koYpMvf9k8ybfnGmarp6QLivQ8cw==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-storage": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-subagent": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-subagent/-/dsh-subagent-0.2.0-rc.1.tgz", + "integrity": "sha512-apyy9ovQMHfS1/J1aztVJR1mwwKyksajI+P+LwaRie3ZCpzHksE1U9LPZHHdJFNA0VMoMUu8B+BuupKAjYuihA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-brand": "0.2.0-rc.1", + "@deepseek-ai/dsh-chunked-list": "0.2.0-rc.1", + "@deepseek-ai/dsh-util-values": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-agent-preset-registry": "0.2.0-rc.1", + "@deepseek-ai/dsh-attachment": "0.2.0-rc.1", + "@deepseek-ai/dsh-invariants": "0.2.0-rc.1", + "@deepseek-ai/dsh-jobs": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-permission-presets": "0.2.0-rc.1", + "@deepseek-ai/dsh-sandbox": "0.2.0-rc.1", + "@deepseek-ai/dsh-sandbox-policy": "0.2.0-rc.1", + "@deepseek-ai/dsh-scope": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-persistence": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-projection": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-query": "0.2.0-rc.1", + "@deepseek-ai/dsh-system-prompt": "0.2.0-rc.1", + "@deepseek-ai/dsh-tools": "0.2.0-rc.1", + "@deepseek-ai/dsh-typert-protocol": "0.2.0-rc.1", + "@deepseek-ai/dsh-user-approval": "0.2.0-rc.1", + "@deepseek-ai/dsh-util-time": "0.2.0-rc.1", + "@deepseek-ai/dsh-workspace": "0.2.0-rc.1" + }, + "peerDependenciesMeta": { + "@deepseek-ai/dsh-agent-preset-registry": { + "optional": true + }, + "@deepseek-ai/dsh-jobs": { + "optional": true + }, + "@deepseek-ai/dsh-permission-presets": { + "optional": true + }, + "@deepseek-ai/dsh-sandbox": { + "optional": true + }, + "@deepseek-ai/dsh-sandbox-policy": { + "optional": true + }, + "@deepseek-ai/dsh-session-persistence": { + "optional": true + }, + "@deepseek-ai/dsh-session-projection": { + "optional": true + }, + "@deepseek-ai/dsh-session-query": { + "optional": true + }, + "@deepseek-ai/dsh-settings": { + "optional": true + }, + "@deepseek-ai/dsh-user-approval": { + "optional": true + }, + "@deepseek-ai/dsh-workspace": { + "optional": true + } + } + }, + "node_modules/@deepseek-ai/dsh-subagent-fork-in-process": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-subagent-fork-in-process/-/dsh-subagent-fork-in-process-0.2.0-rc.1.tgz", + "integrity": "sha512-886dtUOj3BIlytCciCLwyITH4Irznj/2AGZkjkw8osxUNcOHCp6efSSzXVbhF17ZIYxRAVdF6UhzU9n2wI+pvg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-subagent": "0.2.0-rc.1", + "@deepseek-ai/dsh-subagent-in-process-driver": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-subagent-in-process-driver": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-subagent-in-process-driver/-/dsh-subagent-in-process-driver-0.2.0-rc.1.tgz", + "integrity": "sha512-bjewvpt1aLGuOFNipCzSspZPHAXGmhc7t0Ps9X1UGdCwKn9+pIA6wx6ezpT9mdXNjVjVgwpcOSCROcbsbvDDMg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-brand": "0.2.0-rc.1" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-subagent": "0.2.0-rc.1", + "@deepseek-ai/dsh-system-prompt": "0.2.0-rc.1", + "@deepseek-ai/dsh-tools": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-subagent-spawn-in-process": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-subagent-spawn-in-process/-/dsh-subagent-spawn-in-process-0.2.0-rc.1.tgz", + "integrity": "sha512-Y8gaI3jJGmvD8A0QH8v6ETgbZguASWKVLaiVzPW9qyG+xZ7iCvBy89PSBXENkwfCDcmxTIsi567i5XwBj2O3YQ==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-subagent": "0.2.0-rc.1", + "@deepseek-ai/dsh-subagent-in-process-driver": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-subprocess": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-subprocess/-/dsh-subprocess-0.2.0-rc.1.tgz", + "integrity": "sha512-nqrYK8+qA4133YR71PCuEUCinCT+CHQZoNlYhTBRiG7sybQLLkgu+/Dpqrcio3+2htRCnvriTw0RzY/2J6msOQ==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-http-proxy": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-subprocess-local": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-subprocess-local/-/dsh-subprocess-local-0.2.0-rc.1.tgz", + "integrity": "sha512-rO0VCIPqEk6A47rlVZxvHXXaoQ2MS8pW5yhXpb3+hqc/2NQA33ZOMViqeDeVyyBlhLTxn7p972kETEB1EhEZfw==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-lazy-require": "0.2.0-rc.1", + "@deepseek-ai/dsh-win32-process": "0.2.0-rc.1", + "koffi": "3.1.1", + "node-pty": "1.2.0-beta.15" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-subprocess": "0.2.0-rc.1", + "@deepseek-ai/dsh-timeout": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-system-prompt": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-system-prompt/-/dsh-system-prompt-0.2.0-rc.1.tgz", + "integrity": "sha512-AZC0HBWaiopkVcJXh/WEzyyF19+/yBPnbuLrZoD7h+UJYF8iG8tlDabauWfMw+dvgoYe9hIiTV2EcFRv4AgJhw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-invariants": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-scope": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-terminal": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-terminal/-/dsh-terminal-0.2.0-rc.1.tgz", + "integrity": "sha512-SnxxvUCyQV5jLMGkBf6ZJCVwPdgf6sUW65klKElt4alrdQfVFmbikgAUzmO7SLUrmkCi+ZSNsjzPm1QWk1Qj0Q==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-brand": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-terminal-bash": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-terminal-bash/-/dsh-terminal-bash-0.2.0-rc.1.tgz", + "integrity": "sha512-k8xWws6zaKxC/skSCIVcTAHSr9hOarB8oe0tV/2wjvmQ9RPsJJbKiHj5FEI/8QFg+mDu6xYniE42Nw1YVUphjQ==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-lazy-require": "0.2.0-rc.1", + "@deepseek-ai/dsh-pwsh-local": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4", + "@xterm/headless": "^6.0.0" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-sandbox": "0.2.0-rc.1", + "@deepseek-ai/dsh-sandbox-policy": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-projection": "0.2.0-rc.1", + "@deepseek-ai/dsh-subprocess": "0.2.0-rc.1", + "@deepseek-ai/dsh-terminal": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-time-context": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-time-context/-/dsh-time-context-0.2.0-rc.1.tgz", + "integrity": "sha512-OKG+cbFR+AviPTUsOgdbdQkfCHSeOq5ONOHQhG4VVDiIVRFdFC8egVjKNDDkST9MdU9kuETS4gdubsGGic3OPg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-util-values": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-invariants": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-projection": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-timeout": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-timeout/-/dsh-timeout-0.2.0-rc.1.tgz", + "integrity": "sha512-SQpvDLIPU0EJP1lbphfuEkLrvnX+CE9u9ym1+L5z/8dYe9BCPbhgjQoRvDnyzKZqFyoXVvZFdqdAADlc6DX7Ig==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-tmux-context": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tmux-context/-/dsh-tmux-context-0.2.0-rc.1.tgz", + "integrity": "sha512-C/2Q6CkTq8fa0OWXr6dUPYOBAzY09Jm9bhC0+FWmCHz1pICVC9PiYmLi0Xg7KtI1mxfwcFb3rUIqx5zV2Oozzg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-projection": "0.2.0-rc.1", + "@deepseek-ai/dsh-shell": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-token-meter": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-token-meter/-/dsh-token-meter-0.2.0-rc.1.tgz", + "integrity": "sha512-pmRb5ZkQdhGcY21xyqDkkRmXvonJH4Nje2vW0gGZdjGR4L+QlK6JBAWKvSmTiu4dYmy+7xvGp8uT496lLQI38Q==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-util-values": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-compaction": "0.2.0-rc.1", + "@deepseek-ai/dsh-compaction-image-offload": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm-retry": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-projection": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-tool-ask-user": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-ask-user/-/dsh-tool-ask-user-0.2.0-rc.1.tgz", + "integrity": "sha512-9wlLclXVI2nu7eVTLpNziwHU166iXn2JAcRhpel0lH23bn2v/L8kdzxu0Wys7lsaeXbD624dTNyYbpeVBAeLTg==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-tools": "0.2.0-rc.1", + "@deepseek-ai/dsh-user-questions": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-tool-bash": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-bash/-/dsh-tool-bash-0.2.0-rc.1.tgz", + "integrity": "sha512-/uF4JXgGIc141xAOsA89c3jlaxVcEjOeXmJ6WDtcg6IcEVvpXbIW4DFvgd49VFCskcGoyzy0eOVPATkIryyo2A==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-jobs": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-sandbox": "0.2.0-rc.1", + "@deepseek-ai/dsh-sandbox-policy": "0.2.0-rc.1", + "@deepseek-ai/dsh-shell": "0.2.0-rc.1", + "@deepseek-ai/dsh-shell-env": "0.2.0-rc.1", + "@deepseek-ai/dsh-system-prompt": "0.2.0-rc.1", + "@deepseek-ai/dsh-tools": "0.2.0-rc.1", + "@deepseek-ai/dsh-user-approval": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-tool-bash-persistent": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-bash-persistent/-/dsh-tool-bash-persistent-0.2.0-rc.1.tgz", + "integrity": "sha512-EQkQ/y84HVYVoKYyXM1FeukHd44g51Tw8wbEeJ7DY6vcIuKLieRRJbVRtRC4VmHpdLIPQhI4qetBL3zUStrK4w==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-output-retention": "0.2.0-rc.1", + "@deepseek-ai/dsh-terminal": "0.2.0-rc.1", + "@deepseek-ai/dsh-timeout": "0.2.0-rc.1", + "@deepseek-ai/dsh-tools": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-tool-call-timeout-policy": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-call-timeout-policy/-/dsh-tool-call-timeout-policy-0.2.0-rc.1.tgz", + "integrity": "sha512-smuWDOG4LVxpbTmUnn3UuY6ThT71ngfFDGpLlVs+kdXtFw64lXjcCxNkGVKsiE7I3GobTJdt8w3f5JByrAn+LA==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-timeout": "0.2.0-rc.1", + "@deepseek-ai/dsh-tools": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-tool-cordis": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-cordis/-/dsh-tool-cordis-0.2.0-rc.1.tgz", + "integrity": "sha512-/SpJa0MdZEEjhYoBJhP4y3cL6T9uci4q1E8YXVNPZhpbbvxuKGDHG9PIAOSUWR6BK1tsU5ZCOKS1Db2SZLQSOw==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/cordis-plugin-loader": "~1.0.5", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-app-boot": "0.2.0-rc.1", + "@deepseek-ai/dsh-cordis-host-runner": "0.2.0-rc.1", + "@deepseek-ai/dsh-tools": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-tool-fs": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-fs/-/dsh-tool-fs-0.2.0-rc.1.tgz", + "integrity": "sha512-B6CY0yldjoWXQ2RY/5XNtQd9UHgcWRjw7jgZt9wk2i0vw6FuusQ/1VF9b0FPotmOhQ5W6MHiNaOwx0LS5lSfUQ==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-util-code-language": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4", + "diff": "^9.0.0" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-attachment": "0.2.0-rc.1", + "@deepseek-ai/dsh-fs": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-sandbox": "0.2.0-rc.1", + "@deepseek-ai/dsh-sandbox-policy": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-system-prompt": "0.2.0-rc.1", + "@deepseek-ai/dsh-tools": "0.2.0-rc.1", + "@deepseek-ai/dsh-user-approval": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-tool-fs-search": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-fs-search/-/dsh-tool-fs-search-0.2.0-rc.1.tgz", + "integrity": "sha512-4NDC5ILCGUJ8nXSfuXD9bPzE5VsVf1YSzkSb1IeqQpa+CIMY0rXVsLPAhBzFQXV+4KrSqcwmPC9gsg6cAa6QsA==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4", + "@vscode/ripgrep": "^1.18.0" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-output-retention": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-spill": "0.2.0-rc.1", + "@deepseek-ai/dsh-subprocess": "0.2.0-rc.1", + "@deepseek-ai/dsh-system-prompt": "0.2.0-rc.1", + "@deepseek-ai/dsh-timeout": "0.2.0-rc.1", + "@deepseek-ai/dsh-tools": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-tool-goal": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-goal/-/dsh-tool-goal-0.2.0-rc.1.tgz", + "integrity": "sha512-EIrmvt28dsJ1/ujj/7B6cd6URYeIiBg3pigjViTr9hI5XeGdbUsIie3TiIHixdB4HK8+f1TE27kDvWoIpCIslg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-goal": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-projection": "0.2.0-rc.1", + "@deepseek-ai/dsh-system-prompt": "0.2.0-rc.1", + "@deepseek-ai/dsh-tools": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-tool-jobs": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-jobs/-/dsh-tool-jobs-0.2.0-rc.1.tgz", + "integrity": "sha512-drRwecBoDKmjY3iS16w9/Tpt7qc+uJYmFpuYk7PaSFvRGEINQQWVlcrwoV6NFSr2DRTJnBEomEnQ7zCzMRy3hw==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-jobs": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-output-retention": "0.2.0-rc.1", + "@deepseek-ai/dsh-system-prompt": "0.2.0-rc.1", + "@deepseek-ai/dsh-tools": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-tool-present": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-present/-/dsh-tool-present-0.2.0-rc.1.tgz", + "integrity": "sha512-PQBPewkx6D7bEiMdYMfS7Q2ie3YX5DWGw0Co0tSlK0Ib2er0GMcJ0NGeT5F28W0Kj/aIO3PBAMiqY5zKJVwOPQ==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-fs": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-projection": "0.2.0-rc.1", + "@deepseek-ai/dsh-tools": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-tool-pwsh": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-pwsh/-/dsh-tool-pwsh-0.2.0-rc.1.tgz", + "integrity": "sha512-jxKcyzZ1c9/1tRdBweae+fivnx4WhYMWco+9AG5ANmVHTOXaSCJ8RtUfBQyB7/HUXsLEU1jtHWg3kEcLxZK33Q==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-jobs": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-sandbox": "0.2.0-rc.1", + "@deepseek-ai/dsh-sandbox-policy": "0.2.0-rc.1", + "@deepseek-ai/dsh-shell": "0.2.0-rc.1", + "@deepseek-ai/dsh-shell-env": "0.2.0-rc.1", + "@deepseek-ai/dsh-system-prompt": "0.2.0-rc.1", + "@deepseek-ai/dsh-tools": "0.2.0-rc.1", + "@deepseek-ai/dsh-user-approval": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-tool-pwsh-persistent": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-pwsh-persistent/-/dsh-tool-pwsh-persistent-0.2.0-rc.1.tgz", + "integrity": "sha512-y4k5TkOuz+/YqaXaVKyIHhVDoqHYrrNQq3iK/7lI0DJj8UqkdBmTZfXBQc+76L0sle/EytGpwxDc7HIYe916Hg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-output-retention": "0.2.0-rc.1", + "@deepseek-ai/dsh-terminal": "0.2.0-rc.1", + "@deepseek-ai/dsh-timeout": "0.2.0-rc.1", + "@deepseek-ai/dsh-tools": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-tool-ralph": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-ralph/-/dsh-tool-ralph-0.2.0-rc.1.tgz", + "integrity": "sha512-Cpkz9tzcigZmOtCGfoC4tS3z8AFbGCiBPlwNizqrixLKvKuiP+XvyIDQgieqDMMZmZXAnJU4kpCUeSaJ4tTzOw==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-subagent": "0.2.0-rc.1", + "@deepseek-ai/dsh-system-prompt": "0.2.0-rc.1", + "@deepseek-ai/dsh-tools": "0.2.0-rc.1", + "@deepseek-ai/dsh-workflow": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-tool-skill": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-skill/-/dsh-tool-skill-0.2.0-rc.1.tgz", + "integrity": "sha512-7GxHyoCtVmGeJ2oFO9aWrVwxFSI6Db19Pht6ZbhIxYZhGGP7aqyRw1na+zM0YKMo9zrmnymPnI3Tq4mmfuqSwQ==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-skill": "0.2.0-rc.1", + "@deepseek-ai/dsh-tools": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-tool-str-replace-editor": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-str-replace-editor/-/dsh-tool-str-replace-editor-0.2.0-rc.1.tgz", + "integrity": "sha512-XLWernbS092Dy8Y2WmXZrTkT23bVQkeddq8EpkwGcOi2BG+y6sX/BFSlIouPyOv/GRA7q+WeA4Rt6NrnqTSAgQ==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-fs": "0.2.0-rc.1", + "@deepseek-ai/dsh-output-retention": "0.2.0-rc.1", + "@deepseek-ai/dsh-sandbox": "0.2.0-rc.1", + "@deepseek-ai/dsh-sandbox-policy": "0.2.0-rc.1", + "@deepseek-ai/dsh-tools": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-tool-subagent": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-subagent/-/dsh-tool-subagent-0.2.0-rc.1.tgz", + "integrity": "sha512-q9m+zwKUuPd/AGuEXvCk+1173RzPDoafo/78XlWWukXwh5I0wZH275PCNjUhuL0PeqDosvEftp+44pEtlFubcQ==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-invariants": "0.2.0-rc.1", + "@deepseek-ai/dsh-jobs": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-scope": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-projection": "0.2.0-rc.1", + "@deepseek-ai/dsh-subagent": "0.2.0-rc.1", + "@deepseek-ai/dsh-system-prompt": "0.2.0-rc.1", + "@deepseek-ai/dsh-tools": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-tool-subagent-control": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-subagent-control/-/dsh-tool-subagent-control-0.2.0-rc.1.tgz", + "integrity": "sha512-NLjfci/OnvB1uoCUMLrlAIwmUR8L4w+RtdDDySJRP3Jx6ubuiMYzR2U9RhsZZKkJgtHPvZ7DBf78IhCj6hX65w==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-brand": "0.2.0-rc.1", + "@deepseek-ai/dsh-util-values": "0.2.0-rc.1" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-subagent": "0.2.0-rc.1", + "@deepseek-ai/dsh-tools": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-tool-todo": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-todo/-/dsh-tool-todo-0.2.0-rc.1.tgz", + "integrity": "sha512-NzgpZxc/sngDmznEVbMoZPCOx3l0N6UCDcyf9kBK0wQA+FQMgrMrmI0BaZUyjF0yMPXeQ47KXQVAoh8spramHg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-invariants": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-projection": "0.2.0-rc.1", + "@deepseek-ai/dsh-tools": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-tool-web": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-web/-/dsh-tool-web-0.2.0-rc.1.tgz", + "integrity": "sha512-n7HXoCWU2n9PSEETdCJpmGB0ovi57t1oQ9SUv1ox+qqCq6tMtIQiFsT1LGhCk9e2b3FVMrQ33TSz3/8hTb4Lyw==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-util-values": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4", + "@joplin/turndown-plugin-gfm": "^1.0.67", + "turndown": "^7.2.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-system-prompt": "0.2.0-rc.1", + "@deepseek-ai/dsh-tools": "0.2.0-rc.1", + "@deepseek-ai/dsh-web": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-tool-workflow": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-workflow/-/dsh-tool-workflow-0.2.0-rc.1.tgz", + "integrity": "sha512-CXwaItUISZ+4ZNyizZkwm0mdfczEgk9sr2cYS7MVHr9NUI8GxTmq8HQOlu5MGCxB4QaeBzkvbluf0nx8/Nuqlw==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-invariants": "0.2.0-rc.1", + "@deepseek-ai/dsh-jobs": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-system-prompt": "0.2.0-rc.1", + "@deepseek-ai/dsh-tools": "0.2.0-rc.1", + "@deepseek-ai/dsh-workflow": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-tool-workspace-dependencies": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tool-workspace-dependencies/-/dsh-tool-workspace-dependencies-0.2.0-rc.1.tgz", + "integrity": "sha512-1/iMGKPb2QDjGoPSk4yu0GKskHm9udkFOCCB8H4JrNC+R+4B14kzR+NLcob5WeSnTCN15fUhyFLM241AyC+9tw==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-tools": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-tools": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-tools/-/dsh-tools-0.2.0-rc.1.tgz", + "integrity": "sha512-HmXY+X4HBoeuGBJWkS+q91GEGK61XgNc3qCXT+QqI+nzCcg1VOIwWvjgOnr1c76x5HKPyxR7FF3PMMq3+hO7oQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-brand": "0.2.0-rc.1", + "@deepseek-ai/dsh-util-values": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-invariants": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-ptc-runtime": "0.2.0-rc.1", + "@deepseek-ai/dsh-sandbox": "0.2.0-rc.1", + "@deepseek-ai/dsh-sandbox-policy": "0.2.0-rc.1", + "@deepseek-ai/dsh-scope": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-system-prompt": "0.2.0-rc.1", + "@deepseek-ai/dsh-user-approval": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-typert-loader": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-typert-loader/-/dsh-typert-loader-0.2.0-rc.1.tgz", + "integrity": "sha512-u0ElSCb9OmTBg4mvpI8tDGNUlaYKnjY6j85ohUoMFFyoBkik9pZKYUbY5W8yAjLHbKgDwGZp55hjvKMMkZxEtg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/cordis-plugin-loader": "~1.0.5", + "@deepseek-ai/dsh-typert-registry": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-typert-protocol": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-typert-protocol/-/dsh-typert-protocol-0.2.0-rc.1.tgz", + "integrity": "sha512-MhpeimGP6E3MqSESLm32OmPgx5aNUG7yCJCgcIFw7XBWhQmKB9fU3CWuUxxbWZeC7eWkdJ93AG2ww/Qu6QWW9A==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-brand": "0.2.0-rc.1" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-typert-registry": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-typert-registry/-/dsh-typert-registry-0.2.0-rc.1.tgz", + "integrity": "sha512-qJAMWRlCFeDVqy7lDnLA670VDQ705lu+Ojd3NDCzvTCRBx4gSxjPRs3FKU8CcrCDr+K0GA+qmw1WijhzsOKiNA==", + "license": "MIT", + "peer": true, + "dependencies": { + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-user-approval": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-user-approval/-/dsh-user-approval-0.2.0-rc.1.tgz", + "integrity": "sha512-0d2sFESHYhnnwuIPDw7sNImFE+HWU6kbX9cWZSPntMXLMhr8lgJFmtZFmrZwobQO7lhpEZKcvX8Jhzmc3OCdWQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-brand": "0.2.0-rc.1", + "@deepseek-ai/dsh-invariants": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-scope": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-system-prompt": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-user-questions": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-user-questions/-/dsh-user-questions-0.2.0-rc.1.tgz", + "integrity": "sha512-hBBsHcJoov3b8z/7aZC3Zaebq1oquJ/7lEJtXD5An2T/iEiJ9osxMCFbkMxApM5ApD4zH1tVJggeMIC4CxyeVA==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-scope": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-util-code-language": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-util-code-language/-/dsh-util-code-language-0.2.0-rc.1.tgz", + "integrity": "sha512-PABYXHQ+h7azPFvSSBMYB0IAWa8vfBXoAKuIXuFFpa5RPn5nHPtOpbcK0PUIyNDJJJd1IB7ldImMZr1Y06lSBA==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-util-crypto": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-util-crypto/-/dsh-util-crypto-0.2.0-rc.1.tgz", + "integrity": "sha512-BLBQVRGBlzhNprSpREiMDi1JwX0X8jKdEPWiVRKBnttlG9d33j1pLsaiH9HHLY/D10lXX/NagGia/Zz9mW4FBA==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-util-time": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-util-time/-/dsh-util-time-0.2.0-rc.1.tgz", + "integrity": "sha512-SMJgashRtqOzZM8QvAgiN1tKRXExqIgRRiIkR6s4MStDHgjvUUrpzazPCarL3SAzXKDCi3I+H5QeglGG+j9qKA==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-util-values": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-util-values/-/dsh-util-values-0.2.0-rc.1.tgz", + "integrity": "sha512-Eh1HH0LFvztBwU2xotdfW5oCwLlWGjK2ygCC5+PnC3tkSDh9gvVQpEf0ezK+Kk6vpLz117V7VPehhR1+gs90+Q==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-util-workspace-path": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-util-workspace-path/-/dsh-util-workspace-path-0.2.0-rc.1.tgz", + "integrity": "sha512-8pNpCCgByrlYtxXqDLuIz/77rJg4p+bdQs/IotRppM7ahfIQtY/u3qkcbniCTQo4FUfoC3F2p6Lw/fHdLhcgqQ==", + "license": "MIT", + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-web": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-web/-/dsh-web-0.2.0-rc.1.tgz", + "integrity": "sha512-tqCgrF1/vrBxmsn3pWTob9n+/Es1rNlzIuDJu1NAc4XvZz9uzuJlspwEHnG+cqvJsBSKVoEotLC7h4LDUldJoA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-web-app": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-web-app/-/dsh-web-app-0.2.0-rc.1.tgz", + "integrity": "sha512-Gho07L3/1hk0UdVc7PjYtl01CPRb9famTmgsw9KrzuBfUcv5co1gKdAJYF+urZdx7mqkux6lZDBqUNbOIrPgBg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-agent-instructions": "0.2.0-rc.1", + "@deepseek-ai/dsh-agent-preset": "0.2.0-rc.1", + "@deepseek-ai/dsh-agent-preset-registry": "0.2.0-rc.1", + "@deepseek-ai/dsh-agent-tool-presentation": "0.2.0-rc.1", + "@deepseek-ai/dsh-api-account-controller": "0.2.0-rc.1", + "@deepseek-ai/dsh-api-job-controller": "0.2.0-rc.1", + "@deepseek-ai/dsh-api-remotes": "0.2.0-rc.1", + "@deepseek-ai/dsh-api-session-controller": "0.2.0-rc.1", + "@deepseek-ai/dsh-api-settings-controller": "0.2.0-rc.1", + "@deepseek-ai/dsh-api-terminal-controller": "0.2.0-rc.1", + "@deepseek-ai/dsh-api-workspace-controller": "0.2.0-rc.1", + "@deepseek-ai/dsh-api-workspace-files": "0.2.0-rc.1", + "@deepseek-ai/dsh-app-boot": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-connection": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-file-upload": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-hmr": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-locale": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-modules": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-product-analytics": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-resources": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-shortcuts": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-agent-preset": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-approval": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-attachment": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-brand-official": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-chat": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-commands": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-conversation": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-cordis": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-deliverables": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-directory-picker-browse": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-directory-picker-native": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-goal": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-input-trigger": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-jobs": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-layout": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-message-feedback": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-model-selection": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-open-in-app": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-permission-presets": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-plan": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-plugin-manager": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-reference": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-renderer": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-settings": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-settings-account": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-settings-agent-loop": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-settings-general": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-settings-models": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-settings-plugin-inventory": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-settings-plugins": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-settings-session-log": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-settings-shell": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-settings-subagent": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-settings-web-search": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-shortcuts": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-sidebar": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-sidebar-browser": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-sidebar-documentpreview": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-sidebar-files": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-sidebar-right": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-sidebar-terminal": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-skill": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-subagent": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-theme": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-tool": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-trajectory": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-user-questions": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-workflow-run": "0.2.0-rc.1", + "@deepseek-ai/dsh-client-ui-workspace": "0.2.0-rc.1", + "@deepseek-ai/dsh-cmdline": "0.2.0-rc.1", + "@deepseek-ai/dsh-command-compact": "0.2.0-rc.1", + "@deepseek-ai/dsh-command-goal": "0.2.0-rc.1", + "@deepseek-ai/dsh-compaction-basic": "0.2.0-rc.1", + "@deepseek-ai/dsh-compaction-tool-result-pruner": "0.2.0-rc.1", + "@deepseek-ai/dsh-cordis-client-runner": "0.2.0-rc.1", + "@deepseek-ai/dsh-cordis-host-runner": "0.2.0-rc.1", + "@deepseek-ai/dsh-file-reference": "0.2.0-rc.1", + "@deepseek-ai/dsh-file-reference-local": "0.2.0-rc.1", + "@deepseek-ai/dsh-host-directory-picker-auto": "0.2.0-rc.1", + "@deepseek-ai/dsh-host-directory-picker-browse": "0.2.0-rc.1", + "@deepseek-ai/dsh-host-directory-picker-native": "0.2.0-rc.1", + "@deepseek-ai/dsh-host-frontend-static": "0.2.0-rc.1", + "@deepseek-ai/dsh-host-open-in-app": "0.2.0-rc.1", + "@deepseek-ai/dsh-host-plugin-inventory": "0.2.0-rc.1", + "@deepseek-ai/dsh-host-product-telemetry-otel": "0.2.0-rc.1", + "@deepseek-ai/dsh-host-webserver": "0.2.0-rc.1", + "@deepseek-ai/dsh-launch-environment": "0.2.0-rc.1", + "@deepseek-ai/dsh-message-feedback": "0.2.0-rc.1", + "@deepseek-ai/dsh-office-to-pdf": "0.2.0-rc.1", + "@deepseek-ai/dsh-persona": "0.2.0-rc.1", + "@deepseek-ai/dsh-plan-mode": "0.2.0-rc.1", + "@deepseek-ai/dsh-plugin-manager": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-log-export": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-reference": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-stats": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-turn-outline": "0.2.0-rc.1", + "@deepseek-ai/dsh-skill-filesystem": "0.2.0-rc.1", + "@deepseek-ai/dsh-subprocess": "0.2.0-rc.1", + "@deepseek-ai/dsh-terminal": "0.2.0-rc.1", + "@deepseek-ai/dsh-terminal-bash": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-ask-user": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-bash": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-bash-persistent": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-cordis": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-fs": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-fs-search": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-goal": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-jobs": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-present": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-pwsh": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-pwsh-persistent": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-ralph": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-skill": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-subagent": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-subagent-control": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-todo": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-web": "0.2.0-rc.1", + "@deepseek-ai/dsh-tool-workflow": "0.2.0-rc.1", + "@deepseek-ai/dsh-web-frontend": "0.2.0-rc.1", + "@deepseek-ai/dsh-workflow-ptc": "0.2.0-rc.1", + "@deepseek-ai/dsh-workspace": "0.2.0-rc.1", + "@deepseek-ai/dsh-workspace-changes": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4", + "commander": "^15.0.0", + "open": "^11.0.0" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/cordis-plugin-loader": "~1.0.5", + "@deepseek-ai/dsh-shell-env": "0.2.0-rc.1", + "@deepseek-ai/dsh-system-prompt": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-web-fetch-http": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-web-fetch-http/-/dsh-web-fetch-http-0.2.0-rc.1.tgz", + "integrity": "sha512-n1SU/kGQ7QpS+7dv+JZiWuCeJ1hbJoFSIB9V4eue6S3P+kg8BEmMyMct7orH4yeQHqH2e364DsL6cYLks9zewg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4", + "ipaddr.js": "^2.5.0", + "undici": "^8.10.0" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-http-proxy": "0.2.0-rc.1", + "@deepseek-ai/dsh-timeout": "0.2.0-rc.1", + "@deepseek-ai/dsh-web": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-web-frontend": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-web-frontend/-/dsh-web-frontend-0.2.0-rc.1.tgz", + "integrity": "sha512-XzBWSOFu0nAOF8XXUwtjDt48cbdqGQ2yHLQyrEjF4r/pBZc0DQ3NNqlTLOXwfVGjc271ulUh4yloHpsVlrlKnA==", + "license": "MIT" + }, + "node_modules/@deepseek-ai/dsh-web-search-deepseek": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-web-search-deepseek/-/dsh-web-search-deepseek-0.2.0-rc.1.tgz", + "integrity": "sha512-N46x8Mqrjj41+25TBRV5jtks8RtK/HM2DRNkDr2Snpr/AyRmVhuzkFRr55/lYPZ50mo5HF4tkw3pMEgbo6vAlQ==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-credentials": "0.2.0-rc.1", + "@deepseek-ai/dsh-deepseek-account": "0.2.0-rc.1", + "@deepseek-ai/dsh-launch-environment": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-web": "0.2.0-rc.1" + }, + "peerDependenciesMeta": { + "@deepseek-ai/dsh-deepseek-account": { + "optional": true + } + } + }, + "node_modules/@deepseek-ai/dsh-webhook": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-webhook/-/dsh-webhook-0.2.0-rc.1.tgz", + "integrity": "sha512-ocCO9leE2+deJEFNCSFWTN1sRd17OyjOS8IT5pareH6AUlvZsEkfFcrpTucgjFgybDvJuR3ZJB7F+ntyAJMFtA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-brand": "0.2.0-rc.1", + "@deepseek-ai/dsh-util-values": "0.2.0-rc.1" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-agent-default-model": "0.2.0-rc.1", + "@deepseek-ai/dsh-agent-preset-registry": "0.2.0-rc.1", + "@deepseek-ai/dsh-invariants": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-permission-presets": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-title": "0.2.0-rc.1", + "@deepseek-ai/dsh-workspace": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-webhook-github": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-webhook-github/-/dsh-webhook-github-0.2.0-rc.1.tgz", + "integrity": "sha512-BRQJsjgu/Oy9oC5DQmTABCkj2ELluCNgl6sntnIdGygrYh2w/WJyJbK3PXB+VBS8vyAs2YF+5DyELpNnE6sFag==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-util-values": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4", + "@octokit/webhooks": "^14.2.0" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-credentials": "0.2.0-rc.1", + "@deepseek-ai/dsh-host-webserver": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-webhook": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-win32-process": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-win32-process/-/dsh-win32-process-0.2.0-rc.1.tgz", + "integrity": "sha512-K62qU+BXxPp+jUpX+3j0Wic1Alt3rxByXFxcJPmtgZRbntZoRndaYrkPsqjcmtFWXZGn3qj+mzDEB978prbTDg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-lazy-require": "0.2.0-rc.1", + "koffi": "3.1.1" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4" + } + }, + "node_modules/@deepseek-ai/dsh-workflow": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-workflow/-/dsh-workflow-0.2.0-rc.1.tgz", + "integrity": "sha512-SZXW3TL/8iJ3mmxaHCp17qeVx+hFxjKjxYEiy5q6V8ksOIA5u4hAsy15cccoAqUfYLy/KeJewJgTKzv/qRItrQ==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-brand": "0.2.0-rc.1", + "@deepseek-ai/dsh-invariants": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-workflow-ptc": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-workflow-ptc/-/dsh-workflow-ptc-0.2.0-rc.1.tgz", + "integrity": "sha512-4kBfMes+N0ZEn98IG7fBNa3L5gu0TIvr2h4i9ffGWR6q1nYxlOI1Eq/UqePcAQVyn+Jb5YX/OkGDxfFWzHpDNA==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/dsh-brand": "0.2.0-rc.1", + "@deepseek-ai/dsh-util-values": "0.2.0-rc.1", + "@deepseek-ai/schemastery": "~3.18.4" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-llm": "0.2.0-rc.1", + "@deepseek-ai/dsh-ptc-runtime": "0.2.0-rc.1", + "@deepseek-ai/dsh-sandbox": "0.2.0-rc.1", + "@deepseek-ai/dsh-sandbox-policy": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-subagent": "0.2.0-rc.1", + "@deepseek-ai/dsh-tools": "0.2.0-rc.1", + "@deepseek-ai/dsh-workflow": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-workspace": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-workspace/-/dsh-workspace-0.2.0-rc.1.tgz", + "integrity": "sha512-iEVfkxwNdNUUINTlQaalw6GXxU9lQUldBAhc1LY3l6nGk+XY53hQ9rT1bP+RN/jDi7ad6xd+i+jSbowGdLgLgA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@deepseek-ai/dsh-brand": "0.2.0-rc.1", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-invariants": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-session-persistence": "0.2.0-rc.1", + "@deepseek-ai/dsh-storage": "0.2.0-rc.1", + "@deepseek-ai/dsh-storage-domain": "0.2.0-rc.1", + "@deepseek-ai/dsh-typert-protocol": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/dsh-workspace-changes": { + "version": "0.2.0-rc.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-workspace-changes/-/dsh-workspace-changes-0.2.0-rc.1.tgz", + "integrity": "sha512-Sei3KQvv+o1kAwI6mORToQRL4KQXM7QF1kfTEWIJF2kbkQY4WyCAYl/5XWUM460ESznQm7Mnq08YKziNPptW8Q==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/schemastery": "~3.18.4", + "diff": "^9.0.0" + }, + "peerDependencies": { + "@deepseek-ai/cordis": "~4.0.4", + "@deepseek-ai/dsh-agent": "0.2.0-rc.1", + "@deepseek-ai/dsh-session": "0.2.0-rc.1", + "@deepseek-ai/dsh-subprocess": "0.2.0-rc.1", + "@deepseek-ai/dsh-tools": "0.2.0-rc.1" + } + }, + "node_modules/@deepseek-ai/libreoffice-kit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/libreoffice-kit/-/libreoffice-kit-0.1.2.tgz", + "integrity": "sha512-PM3GtAr8/nG7mY22yoYQgRTfkhzQ72v1sDME/46I/Kl7S4+yOFYC1h0hRT8JL9p9vjdEwXW9icdhUQK0QPz+YQ==", + "license": "MPL-2.0", + "dependencies": { + "fflate": "0.8.2", + "fontkit": "2.0.4", + "saxes": "6.0.0" + }, + "bin": { + "libreoffice-kit": "lib/cli.js" + }, + "engines": { + "node": ">=22.19.0" + }, + "optionalDependencies": { + "@deepseek-ai/libreoffice-kit-darwin-arm64": "0.1.1", + "@deepseek-ai/libreoffice-kit-darwin-x64": "0.1.1", + "@deepseek-ai/libreoffice-kit-wasm": "0.1.1", + "@deepseek-ai/libreoffice-kit-win32-arm64": "0.1.2", + "@deepseek-ai/libreoffice-kit-win32-x64": "0.1.2" + } + }, + "node_modules/@deepseek-ai/libreoffice-kit-darwin-arm64": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/libreoffice-kit-darwin-arm64/-/libreoffice-kit-darwin-arm64-0.1.1.tgz", + "integrity": "sha512-D6NBvtoNpm9pOgBXGQTdxpds1tYMeiFKhGJgnXF/SE0124ZM8j0AOXI7cZ8CErHctqIoVYP+gKWCrnQl4we41A==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=22.19.0" + } + }, + "node_modules/@deepseek-ai/libreoffice-kit-darwin-x64": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/libreoffice-kit-darwin-x64/-/libreoffice-kit-darwin-x64-0.1.1.tgz", + "integrity": "sha512-VcAqzmzDbRySLBnpRNYSEd+fDmAtdgL1hQMjRf4sFnQuz7m1vipQ00DtlqFG/T+9uCc20bMIyiDWh8zfYObW3w==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=22.19.0" + } + }, + "node_modules/@deepseek-ai/libreoffice-kit-wasm": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@deepseek-ai/libreoffice-kit-wasm/-/libreoffice-kit-wasm-0.1.1.tgz", + "integrity": "sha512-YuKZJdDhR/0GeTZUHJsJvachJR8ZiS4lcrL+lxUF2GLRwXcMikN0zAQOA+6kD/nRI+vlHsCkX0KvHaKvfae79Q==", + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=22.19.0" + } + }, + "node_modules/@deepseek-ai/libreoffice-kit-win32-arm64": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/libreoffice-kit-win32-arm64/-/libreoffice-kit-win32-arm64-0.1.2.tgz", + "integrity": "sha512-+JMKIDfLfpQEIeWWJBkKeAGJ8Niiv6SLQ1SFMh8K28eUOSaLLGPt4j7ywEWtyKCtXenD+VRlKo5gZlqDmCtNCg==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=22.19.0" + } + }, + "node_modules/@deepseek-ai/libreoffice-kit-win32-x64": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/libreoffice-kit-win32-x64/-/libreoffice-kit-win32-x64-0.1.2.tgz", + "integrity": "sha512-EUuTMnFF404uVVZz0j2oAoHY0Xhobdg0jChUUm74sudwaqxTM9rvgUYEWbeJd95oVjIParMdsb4hLdAhZ10BIw==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=22.19.0" + } + }, + "node_modules/@deepseek-ai/libreoffice-kit/node_modules/fflate": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz", + "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==", + "license": "MIT" + }, + "node_modules/@deepseek-ai/node-addon-system": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/node-addon-system/-/node-addon-system-0.1.2.tgz", + "integrity": "sha512-EFn8K+mXIXiw6s3rxX+cgp2hZTEAQdVIsURhrXnBxycSXvtQ1EQpsSVzoNKtKAQI0I0VqkEcVEjHzS/PeaGsvw==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=20" + }, + "optionalDependencies": { + "@deepseek-ai/node-addon-system-darwin-arm64": "0.1.2", + "@deepseek-ai/node-addon-system-darwin-x64": "0.1.2", + "@deepseek-ai/node-addon-system-linux-arm64": "0.1.2", + "@deepseek-ai/node-addon-system-linux-x64": "0.1.2" + } + }, + "node_modules/@deepseek-ai/node-addon-system-darwin-arm64": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/node-addon-system-darwin-arm64/-/node-addon-system-darwin-arm64-0.1.2.tgz", + "integrity": "sha512-IR0cx8um19mLCZaJ+H5PLblKr6Eg3PWvVo8eTQBr/SwH2nh5tM9CD9/5fHweNS9Pjt15UdFlGqnvLSd/w+O6Rw==", + "cpu": [ + "arm64" + ], + "license": "BSD-3-Clause", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=20" + } + }, + "node_modules/@deepseek-ai/node-addon-system-darwin-x64": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/node-addon-system-darwin-x64/-/node-addon-system-darwin-x64-0.1.2.tgz", + "integrity": "sha512-XDbmquNapk9aT28y4EKn9lbONVr9YNs1NM/GKH1Gi5gUhjOT9wgRaTv72FJdNaVIInbPAYbPoyn7/y+MzQMNNg==", + "cpu": [ + "x64" + ], + "license": "BSD-3-Clause", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=20" + } + }, + "node_modules/@deepseek-ai/node-addon-system-linux-arm64": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/node-addon-system-linux-arm64/-/node-addon-system-linux-arm64-0.1.2.tgz", + "integrity": "sha512-Z/DQtqgEYzjBzb2ocHGjMzx51W7xDILkJKKj89nyErr8gZMNiLs+JNL1uKzJqc3VLZB+vYCPaHGyQ3oX6EzEmA==", + "cpu": [ + "arm64" + ], + "license": "BSD-3-Clause", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20" + } + }, + "node_modules/@deepseek-ai/node-addon-system-linux-x64": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@deepseek-ai/node-addon-system-linux-x64/-/node-addon-system-linux-x64-0.1.2.tgz", + "integrity": "sha512-S2aPVHvYCpNCppCFyNlooMYuTB7ucK5lvD9oXQQ42v5Z2s5AoaiCdjz9r2l+ED2rI5oS1x0cUZmKjJH2dxV0pg==", + "cpu": [ + "x64" + ], + "license": "BSD-3-Clause", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20" + } + }, + "node_modules/@deepseek-ai/schemastery": { + "version": "3.18.4", + "resolved": "https://registry.npmjs.org/@deepseek-ai/schemastery/-/schemastery-3.18.4.tgz", + "integrity": "sha512-SSXO6tYuyrIqKVbmOnIq0s+riUywYzouFMcnBluHF9n4KMo2G8HvEzhCYj6pj2617/glOjbJuVInJ9hfONsjkg==", + "license": "MIT", + "dependencies": { + "@deepseek-ai/cosmokit": "~1.8.5", + "@standard-schema/spec": "^1.1.0" + } + }, + "node_modules/@earendil-works/pi-ai": { + "version": "0.85.1", + "resolved": "https://registry.npmjs.org/@earendil-works/pi-ai/-/pi-ai-0.85.1.tgz", + "integrity": "sha512-+VgVIJDkDO2efYJKEEqvPTH4zmnIaXdAppGbO+vKFA9qy5PdhFiAenuFAkU+oiCSfOC4dMHDyrjdQeL4ZoC5CQ==", + "license": "MIT", + "dependencies": { + "@anthropic-ai/sdk": "0.123.0", + "@aws-sdk/client-bedrock-runtime": "3.1048.0", + "@earendil-works/pi-telemetry": "^0.85.1", + "@google/genai": "1.52.0", + "@smithy/node-http-handler": "4.7.3", + "http-proxy-agent": "7.0.2", + "https-proxy-agent": "7.0.6", + "openai": "6.40.0", + "partial-json": "0.1.7", + "typebox": "1.3.7" + }, + "bin": { + "pi-ai": "dist/cli.js" + }, + "engines": { + "node": ">=22.19.0" + } + }, + "node_modules/@earendil-works/pi-telemetry": { + "version": "0.85.1", + "resolved": "https://registry.npmjs.org/@earendil-works/pi-telemetry/-/pi-telemetry-0.85.1.tgz", + "integrity": "sha512-Bg/YN6kA7Swja/NQxka8xFdecb4E/auIEGF2G5A25EaQXhRnPj300/7/KpgsDDMYUzHTDAv4RyUxaQPJKW81Rw==", + "license": "MIT", + "engines": { + "node": ">=22.19.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.3.tgz", + "integrity": "sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@google/genai": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/@google/genai/-/genai-1.52.0.tgz", + "integrity": "sha512-gwSvbpiN/17O9TbsqSsE/OzZcpv5Fo4RQjdngGgogtuB9RsyJ8ZHhX5KjHj1bp5N9snN2eK8LDGXSaWW2hof8Q==", + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "google-auth-library": "^10.3.0", + "p-retry": "^4.6.2", + "protobufjs": "^7.5.4", + "ws": "^8.18.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "@modelcontextprotocol/sdk": "^1.25.2" + }, + "peerDependenciesMeta": { + "@modelcontextprotocol/sdk": { + "optional": true + } + } + }, + "node_modules/@img/colour": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz", + "integrity": "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.35.5.tgz", + "integrity": "sha512-QRUlFQ0WxvdWyqqG/WtI3iupfD5rBzmCHXSdPsY91sAtVtTo7Q4cb6zOccZ3gqEqkr0f1As1ehLqmEpDsRf+lg==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.3.4" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.35.5.tgz", + "integrity": "sha512-+BR255RhDlpygUpOc/Jdt1nT6DQ3XG/ERo5wbcdOf5Q320dKtPCKPLR1LJs9VGXRaMa8l1uUa0tkCNOXiAxZUw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.3.4" + } + }, + "node_modules/@img/sharp-freebsd-wasm32": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-freebsd-wasm32/-/sharp-freebsd-wasm32-0.35.5.tgz", + "integrity": "sha512-Y/z91nEZ4uIBX5X3nfTovjU9lHNKFYbL2lpHCLVNmXQK03VIZvXBBt0KxbPGp2SdGSF+2mQU4e+hQaWOt86iAw==", + "license": "Apache-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "dependencies": { + "@img/sharp-wasm32": "0.35.5" + }, + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.3.4.tgz", + "integrity": "sha512-5R89nBYiRdUlSWJxPhO+GVtaXzXSxKnRu/xqMn3KTA3L9EB9Oy/P+Nn2f2vlhPuUdy/Zusb2DarbyTpGCfEDuw==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.3.4.tgz", + "integrity": "sha512-iR2OKH80yi0U+dUplyh3/xdpFvps6YkCwsXenIJxqxR1v9o+xtKTGbS9H7cps+2Vxjc8B1j96p75NmTGjIhtpQ==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.3.4.tgz", + "integrity": "sha512-LmRtTsOHuvM2+wlO2Db37dx5MiZhB0FvSunciw48YjdOkZz9KAiRbm8ujeMOA1INqmei5NapFxYEK1D1ZSidmw==", + "cpu": [ + "arm" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.3.4.tgz", + "integrity": "sha512-Y3dgX/6lE2QhQb+Gxy0WZxfg9MEm/JBjamZpS2IklP7xIQoKN4hzAm7KcMVGtaVDt3neE9OKBC7vAfonA/Lr1A==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-ppc64": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.3.4.tgz", + "integrity": "sha512-Le6boB8Tai0Nis+gIxIpKx68UDVVIqdR8Tin5Yf1z2LJJQLDJvCDRqRu+jC2qCoD+eIomonmOwB4smBRxfVpYQ==", + "cpu": [ + "ppc64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-riscv64": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.3.4.tgz", + "integrity": "sha512-aHkkIEHPRdQEegJN20MLmGtxYD9R2wQr3Cwpddnu5+YKMt6Uzax7S9h5gpZTo8wyrGuZSlfQ63OevL5mTyOC7Q==", + "cpu": [ + "riscv64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.3.4.tgz", + "integrity": "sha512-ra/mB6MikESDUO7Yg+Mi95bFBb9GsObURuhnOv3OqknjGe9sZrG8tCe9q0xSIGrtLgvgw0gKnFWcK4blSgQOuQ==", + "cpu": [ + "s390x" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.3.4.tgz", + "integrity": "sha512-GJ//SSXbnwSDes02umB3nDJLFcQzw8a18V8fyhqr6tV515tOEMdImjjxj1AoafMRz56F3PHgftnj1QEKSU1zkw==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.3.4.tgz", + "integrity": "sha512-hvulFwtjUcagsis6BBxHwGFwWoNZjgYmULGVrZcyfNbjA8hKILbRxGg15/7w5HDyXHXUos/j6baAWqnCyQ2DWA==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.3.4.tgz", + "integrity": "sha512-6zXKeE/p39I1AmA3cJG35eyBGNqNddLnUXjhwBnsGjFPWqf5VKkDBEqaEkPDoTEtkxwi2vv8Tcr2mDyP4So7Fg==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.35.5.tgz", + "integrity": "sha512-LEaXK2WdXVK5ykcw0buWyPMsmLLL2vpHLD6yrNSW+JGEL3BZPA4tpKN6iaMc4AxTTAoaX/sU1rOL51lcIz48ZQ==", + "cpu": [ + "arm" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.3.4" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.35.5.tgz", + "integrity": "sha512-LYVx5JTsOM2CBzmxreh+nl64/3H6Xb09iSLknqH47z2T2DFFxDeFLP5y4dJwe6H7uGQlHPyEEtIqyo3DYsRwdQ==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.3.4" + } + }, + "node_modules/@img/sharp-linux-ppc64": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.35.5.tgz", + "integrity": "sha512-QVxAAq8evVRI9ia2vqgwrmWucn5Dfv+JdWzj75pD8omHLPSP7f8p20O8jxzjCcuCEQEOtYOZUmX1hkiZ0kdevA==", + "cpu": [ + "ppc64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-ppc64": "1.3.4" + } + }, + "node_modules/@img/sharp-linux-riscv64": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.35.5.tgz", + "integrity": "sha512-LtdreXguaavKODPIfzJ4kffx7UNt1omwtK0rch4EBbbSTXPnxWmYSayXdLJw0fJzQ97kHt1gL/yh4tvU+nCyRQ==", + "cpu": [ + "riscv64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-riscv64": "1.3.4" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.35.5.tgz", + "integrity": "sha512-UZasTOFiYzotTsGOCu42BfUzP6Tu6Do/947iRm1RsLKvlllxwGcn4RN27LibGWceix4Y+Pmw3jsnTcCQIgWjqA==", + "cpu": [ + "s390x" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.3.4" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.35.5.tgz", + "integrity": "sha512-SxFtLTeJInhAA9Q836kux2vZNeOBQEx658qvbboZScr0wIARym3IcGmW7KpVD5sbVg0Ojy+udFQdayYIZyoNog==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.3.4" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.35.5.tgz", + "integrity": "sha512-9HbMclmI1zlNkFRs3z9/eBtDjfD0sGlrX1z6b1qwmiFY5ElDLh4BC0LPBdVp7z1DXFiKlIcznf+ZlsuZzLxQqg==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.3.4" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.35.5.tgz", + "integrity": "sha512-4KOphqB035HrVdqLZfCgMzzERrQkkzOwRhl4OAkRO1YCldbaFjySXMaK534Mo0V+LndnlJk+sbUyLeU0ULyD1A==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.3.4" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.35.5.tgz", + "integrity": "sha512-Ptsga1su4tQx+LLF1ECS9U6nz5kmrXKo6XVbtR48Ke3ZRxxgaWBu7IDtEe1quo8hiupwm6WFqxVlXaSf7IINGQ==", + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.11.3" + }, + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-webcontainers-wasm32": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-webcontainers-wasm32/-/sharp-webcontainers-wasm32-0.35.5.tgz", + "integrity": "sha512-hfhF/FmoQyTUkA0bIKFOtw536BQSeBMe6BF6QyWlrPxT754+TFLaZ7sKKTfvvM0yJgKgaYTwnFCIZ/GuDw5SUA==", + "cpu": [ + "wasm32" + ], + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "@img/sharp-wasm32": "0.35.5" + }, + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-arm64": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.35.5.tgz", + "integrity": "sha512-X4t7g+7ZA5DKblCBEXGjUqqemj4vczING/5viFwAL8h4N3qYeyjwdCvRLHi4EdOUI+2Z7UFlp1VM+p/AuEtm6Q==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.35.5.tgz", + "integrity": "sha512-5Zm82LoBc43nhwNybZlG7Y1KO//Zhsn306fQl29ZOuStHLGTo3BWL83q3cznX0poxSAMuYL1On/BHBxkBeKr6A==", + "cpu": [ + "ia32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.35.5.tgz", + "integrity": "sha512-x76eH0vEiHlcMQu8Y8IenntaACtddpT6W0wmXtWrnKcnKI7ME5DdgqhAD6SEWOEl1v2zDvkZDhFA9KnURwpfqg==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@joplin/turndown-plugin-gfm": { + "version": "1.0.68", + "resolved": "https://registry.npmjs.org/@joplin/turndown-plugin-gfm/-/turndown-plugin-gfm-1.0.68.tgz", + "integrity": "sha512-m8DfAQNC/V7g0j5H6Jv60WhekBBjodD+zTPGrU+g2m+ux/z8ZX07KQIl6kaAmbKwfvsQhC04op52g63I78sVgg==", + "license": "MIT" + }, + "node_modules/@js-temporal/polyfill": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@js-temporal/polyfill/-/polyfill-0.5.1.tgz", + "integrity": "sha512-hloP58zRVCRSpgDxmqCWJNlizAlUgJFqG2ypq79DCvyv9tHjRYMDOcPFjzfl/A1/YxDvRCZz8wvZvmapQnKwFQ==", + "license": "ISC", + "dependencies": { + "jsbi": "^4.3.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@keyv/serialize": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-1.1.1.tgz", + "integrity": "sha512-dXn3FZhPv0US+7dtJsIi2R+c7qWYiReoEh5zUntWCf4oSpMNib8FDhSoed6m3QyZdx5hK7iLFkYk3rNxwt8vTA==", + "license": "MIT" + }, + "node_modules/@koromix/koffi-darwin-arm64": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@koromix/koffi-darwin-arm64/-/koffi-darwin-arm64-3.1.1.tgz", + "integrity": "sha512-+Dl0zQDh1Wb55AWOn9hp7K30qgkODvrvN+ZNkFOh81Q0oFX/rpJQtocgjAuYk2zFAcajSeVDumkcHMPwnKSXzA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://liberapay.com/Koromix" + } + }, + "node_modules/@koromix/koffi-darwin-x64": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@koromix/koffi-darwin-x64/-/koffi-darwin-x64-3.1.1.tgz", + "integrity": "sha512-cDFAKn1qdZBFLrp7dAc9QUDw3l4xAhTJbOdPWWb0LxssVicUdHcRCLZGrDsmPW2tpH6LGNNeLgqRpAoD2Mo8iA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://liberapay.com/Koromix" + } + }, + "node_modules/@koromix/koffi-freebsd-arm64": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@koromix/koffi-freebsd-arm64/-/koffi-freebsd-arm64-3.1.1.tgz", + "integrity": "sha512-zaP7FJISI/scQW9Wa5QicY3a09WmtKBWSbmC+5nfCqPzwWe7Hx2so74Er7mPsDfCiMMR0Ya+evKbJQDkfyXicg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "funding": { + "url": "https://liberapay.com/Koromix" + } + }, + "node_modules/@koromix/koffi-freebsd-ia32": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@koromix/koffi-freebsd-ia32/-/koffi-freebsd-ia32-3.1.1.tgz", + "integrity": "sha512-7GejVb688TLM8rbjfc0oezJrATxZc0dn801xWEDJekN2DgmRXu7HquGqWQ6z3NeSq7ZxEggz4T3xtlbCysQapA==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "funding": { + "url": "https://liberapay.com/Koromix" + } + }, + "node_modules/@koromix/koffi-freebsd-x64": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@koromix/koffi-freebsd-x64/-/koffi-freebsd-x64-3.1.1.tgz", + "integrity": "sha512-XLiCFP9OFCyOoGTjAimtDKLhzhfo34WcP1ShVWxRzNCWDGjfz8BYjwd69cp/cDSUXZbxamqs4+/6vmkePq9wxA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "funding": { + "url": "https://liberapay.com/Koromix" + } + }, + "node_modules/@koromix/koffi-linux-arm64": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@koromix/koffi-linux-arm64/-/koffi-linux-arm64-3.1.1.tgz", + "integrity": "sha512-HA9xINK7G4dRAkpfnBWD9VfuyIBgW1SuK+KPHjksUwRMOnhgqP8J/JqgrAzdzcDiefGBkqEacIP776OUwz7knQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://liberapay.com/Koromix" + } + }, + "node_modules/@koromix/koffi-linux-ia32": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@koromix/koffi-linux-ia32/-/koffi-linux-ia32-3.1.1.tgz", + "integrity": "sha512-jG7IFytmP8K5Qtbx0ro0ZeuX3JjSsLxmYhq+nmXDdrtOAlxIsWGynuiDLS6Jk3vOchVii2m6Y2f/L3GLG2fG5A==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://liberapay.com/Koromix" + } + }, + "node_modules/@koromix/koffi-linux-loong64": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@koromix/koffi-linux-loong64/-/koffi-linux-loong64-3.1.1.tgz", + "integrity": "sha512-CIsT1cNnih8FuU52Me/IVlJBpH28SQfoDeYPctJswgJzaARktusF7m4MUbtR1PBDjuquCVM4/vFyNdOzfPonvA==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://liberapay.com/Koromix" + } + }, + "node_modules/@koromix/koffi-linux-riscv64": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@koromix/koffi-linux-riscv64/-/koffi-linux-riscv64-3.1.1.tgz", + "integrity": "sha512-9D6RmqeKsSvs3U6jILJU9PcAjMwKKyn7yLxNBb5k6z9PCoUoGJ3/BrhXAX0qjrLLwEiIpP/hS/40RuXvH8Lc3Q==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://liberapay.com/Koromix" + } + }, + "node_modules/@koromix/koffi-linux-x64": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@koromix/koffi-linux-x64/-/koffi-linux-x64-3.1.1.tgz", + "integrity": "sha512-pyTcX5fePeYbt7TZAwRby69wdlRx3PT+g15ra5IYdat/Pgh3qAKEYeZ+uu7WpPGOy43p/oSRqqZoa2kORzozlA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://liberapay.com/Koromix" + } + }, + "node_modules/@koromix/koffi-openbsd-ia32": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@koromix/koffi-openbsd-ia32/-/koffi-openbsd-ia32-3.1.1.tgz", + "integrity": "sha512-iPnPzvG2HOfdzaiG1drdkt86sAqmTPDv9mAf+5gL7mRzkeeQC88EVGboRy7eXwdXn7R+v0ntA3iQxdHrBn6yXw==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "funding": { + "url": "https://liberapay.com/Koromix" + } + }, + "node_modules/@koromix/koffi-openbsd-x64": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@koromix/koffi-openbsd-x64/-/koffi-openbsd-x64-3.1.1.tgz", + "integrity": "sha512-/Xqc3R0SVoMCYjMPZnJ9bULtRo364+dKmnQhfDrI83tSpxUHRw7HRNf12vBeL+hPgKxSBjtMpWfQ/ZIyVyLFag==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "funding": { + "url": "https://liberapay.com/Koromix" + } + }, + "node_modules/@koromix/koffi-win32-arm64": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@koromix/koffi-win32-arm64/-/koffi-win32-arm64-3.1.1.tgz", + "integrity": "sha512-JhqHauEwQvdcWUERxrV5HH/DT9W7hY1A1eU6/o8tB+yck+D3kt5elpRDBt9KjpW6h+vHPy3V0sjDvO0CXyabTA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "funding": { + "url": "https://liberapay.com/Koromix" + } + }, + "node_modules/@koromix/koffi-win32-ia32": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@koromix/koffi-win32-ia32/-/koffi-win32-ia32-3.1.1.tgz", + "integrity": "sha512-ZRuyYmlGS/rCc966qqs0qREXDW4FRdul7rDF1VgSWHbVmdc196PUgUT+blq/GjZgTwqzeEXtMRgM+cU8krHjvA==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "funding": { + "url": "https://liberapay.com/Koromix" + } + }, + "node_modules/@koromix/koffi-win32-x64": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@koromix/koffi-win32-x64/-/koffi-win32-x64-3.1.1.tgz", + "integrity": "sha512-KqHPmvj6QILhNyI/To8QSihHsijeVGIYYPBOUnXEpcnH2LuLbargY4Hd6dDeTN3Z90uUUxN+1FWz1UnhVzFOiA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "funding": { + "url": "https://liberapay.com/Koromix" + } + }, + "node_modules/@mixmark-io/domino": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@mixmark-io/domino/-/domino-2.2.0.tgz", + "integrity": "sha512-Y28PR25bHXUg88kCV7nivXrP2Nj2RueZ3/l/jdx6J9f8J4nsEGcgX0Qe6lt7Pa+J79+kPiJU3LguR6O/6zrLOw==", + "license": "BSD-2-Clause" + }, + "node_modules/@modelcontextprotocol/client": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@modelcontextprotocol/client/-/client-2.0.0.tgz", + "integrity": "sha512-8f1OghQ2rjzIOfqgUCP+8GiUWqRs89njoWLNqAe8kWmDePv3s1fZXseej+QXemssEuuOvLLmLO/kqM3IQHtISw==", + "license": "MIT", + "dependencies": { + "@modelcontextprotocol/core": "2.0.0", + "cross-spawn": "^7.0.5", + "eventsource": "^3.0.2", + "eventsource-parser": "^3.0.0", + "jose": "^6.1.3", + "pkce-challenge": "^5.0.0", + "zod": "^4.2.0" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@modelcontextprotocol/core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@modelcontextprotocol/core/-/core-2.0.0.tgz", + "integrity": "sha512-pJCEwGG7Lfr/+PQp9ZTwKXNeO5wzbfKL7H3MYpCorM4oFBoQrdjnBgEoqG+RjhsvS1FKrDbKux+M1HhlnGWqcA==", + "license": "MIT", + "dependencies": { + "zod": "^4.2.0" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@octokit/openapi-types": { + "version": "29.0.1", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-29.0.1.tgz", + "integrity": "sha512-9qWOMFNxxLokERcms42rU0PTLqQmVs7g5E41TI4mCOxmpFayD1rfC7XxOL55cG9MBZLFlC31BrR37myMKardwg==", + "license": "MIT" + }, + "node_modules/@octokit/openapi-webhooks-types": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-webhooks-types/-/openapi-webhooks-types-12.1.0.tgz", + "integrity": "sha512-WiuzhOsiOvb7W3Pvmhf8d2C6qaLHXrWiLBP4nJ/4kydu+wpagV5Fkz9RfQwV2afYzv3PB+3xYgp4mAdNGjDprA==", + "license": "MIT" + }, + "node_modules/@octokit/request-error": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-7.1.2.tgz", + "integrity": "sha512-XZRuT3xZ84D3gYErI1DZvhJ33dCWVV6uzBtWkaBB4TvA/L6eOeTZodxLFVB44bBEEo3vEx7y00UfX1tBLrtLRg==", + "license": "MIT", + "dependencies": { + "@octokit/types": "^18.0.0" + }, + "engines": { + "node": ">= 20" + } + }, + "node_modules/@octokit/types": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-18.0.0.tgz", + "integrity": "sha512-l6bAF43PNxkJp6g+W4PjoUSSkxHomXw2nOum5CTftJz1NlV3vu93NImgOYtLf6CbBUb5j+fiuzW0PPQ5JTSvZA==", + "license": "MIT", + "dependencies": { + "@octokit/openapi-types": "^29.0.1" + } + }, + "node_modules/@octokit/webhooks": { + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/@octokit/webhooks/-/webhooks-14.2.0.tgz", + "integrity": "sha512-da6KbdNCV5sr1/txD896V+6W0iamFWrvVl8cHkBSPT+YlvmT3DwXa4jxZnQc+gnuTEqSWbBeoSZYTayXH9wXcw==", + "license": "MIT", + "dependencies": { + "@octokit/openapi-webhooks-types": "12.1.0", + "@octokit/request-error": "^7.0.0", + "@octokit/webhooks-methods": "^6.0.0" + }, + "engines": { + "node": ">= 20" + } + }, + "node_modules/@octokit/webhooks-methods": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@octokit/webhooks-methods/-/webhooks-methods-6.0.0.tgz", + "integrity": "sha512-MFlzzoDJVw/GcbfzVC1RLR36QqkTLUf79vLVO3D+xn7r0QgxnFoLZgtrzxiQErAjFUOdH6fas2KeQJ1yr/qaXQ==", + "license": "MIT", + "engines": { + "node": ">= 20" + } + }, + "node_modules/@opentelemetry/api": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.1.tgz", + "integrity": "sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q==", + "license": "Apache-2.0", + "peer": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@opentelemetry/api-logs": { + "version": "0.220.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.220.0.tgz", + "integrity": "sha512-CmVa4ImJ+ynfrPMNaAXHET6Bhb44SwzmfyVJFq9ni2jgXJR/l7C6gfVFddNmHP+ZOkP9cf4f9DBe68qVLTHc9w==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api": "^1.3.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@opentelemetry/core": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-2.9.0.tgz", + "integrity": "sha512-m2nckMT80NnmjTYSPjJQObBJ+8dgkoajEOUbznL8AHZ3T3yHRk2P7gI1PhEBc1+lOnrYE9UWrWHqJDsmqjmNbw==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/semantic-conventions": "^1.29.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/otlp-exporter-base": { + "version": "0.220.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.220.0.tgz", + "integrity": "sha512-CXYo8UD5Mn9YbgebO2EL4wejtA+gxLmLiu6HCk2KH2BR7XhFN6/6p1UlCb23DYCjeYkndevLHuejCCN1yx4+OQ==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "2.9.0", + "@opentelemetry/otlp-transformer": "0.220.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/otlp-transformer": { + "version": "0.220.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-transformer/-/otlp-transformer-0.220.0.tgz", + "integrity": "sha512-lXGrv7KXZ0gNH9SVNUaa6vv6phVYGvJxfXAlMbzbakiXru75f5MZl8Z7oqiMMQD77riVHJCFlQvbZs/VVN2/4A==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api-logs": "0.220.0", + "@opentelemetry/core": "2.9.0", + "@opentelemetry/resources": "2.9.0", + "@opentelemetry/sdk-logs": "0.220.0", + "@opentelemetry/sdk-metrics": "2.9.0", + "@opentelemetry/sdk-trace": "2.9.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/otlp-transformer/node_modules/@opentelemetry/resources": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-2.9.0.tgz", + "integrity": "sha512-jyA5MBLQ+Dkl3+JsZkUoUvL7yHvU64kLsvpXKarWm6347Sl1t1bXFTFykUePNpT5WH5pm9a2Qtt03iIYQhZ1Fg==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "2.9.0", + "@opentelemetry/semantic-conventions": "^1.29.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.3.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/resources": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-2.11.0.tgz", + "integrity": "sha512-Ie7+8q8MDF4FAEQCKVMTx3ReUvxiIAgIiiW3c9JdmP8+HMcDy20puT+AHjexnExgnbvBxjQ9fjkFDWrikJ2jQA==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "2.11.0", + "@opentelemetry/semantic-conventions": "^1.29.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.3.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/resources/node_modules/@opentelemetry/core": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-2.11.0.tgz", + "integrity": "sha512-7YP44XH0tV6+Mb54x2YGf84i7yi+31MBZlE8JwvozkxyTvXbSp10X7cI7YE49ChJ3shMJoBmCJF3+1QFBJctGA==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/semantic-conventions": "^1.29.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-logs": { + "version": "0.220.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-logs/-/sdk-logs-0.220.0.tgz", + "integrity": "sha512-WywcTkQtv2iNmt+6y5Kcd4rzvx9bLVsBa2Nwcmg01IUaBTkTow3W4d9KE5vNBpEDtb9tp21WcRBY/lANRrApYA==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api-logs": "0.220.0", + "@opentelemetry/core": "2.9.0", + "@opentelemetry/resources": "2.9.0", + "@opentelemetry/semantic-conventions": "^1.29.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.4.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-logs/node_modules/@opentelemetry/resources": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-2.9.0.tgz", + "integrity": "sha512-jyA5MBLQ+Dkl3+JsZkUoUvL7yHvU64kLsvpXKarWm6347Sl1t1bXFTFykUePNpT5WH5pm9a2Qtt03iIYQhZ1Fg==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "2.9.0", + "@opentelemetry/semantic-conventions": "^1.29.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.3.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-metrics": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics/-/sdk-metrics-2.9.0.tgz", + "integrity": "sha512-Xx8RGS4H5XEBl01WuCreMIpiah9cCXMbSkeuIePPdD2cUpq/vUzYmj8E/MK1OsbOc93FuAD4jfn2WOacKwLn7Q==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "2.9.0", + "@opentelemetry/resources": "2.9.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.9.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-metrics/node_modules/@opentelemetry/resources": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-2.9.0.tgz", + "integrity": "sha512-jyA5MBLQ+Dkl3+JsZkUoUvL7yHvU64kLsvpXKarWm6347Sl1t1bXFTFykUePNpT5WH5pm9a2Qtt03iIYQhZ1Fg==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "2.9.0", + "@opentelemetry/semantic-conventions": "^1.29.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.3.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-trace": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace/-/sdk-trace-2.9.0.tgz", + "integrity": "sha512-sGA19HvtrrSKYsseHphluH6j3p6Xa3fqc7c7y8f/7mYWejc1lyDFcpSdD1kYa50HCLUeEo4zA5bW0pniaPszuw==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "2.9.0", + "@opentelemetry/resources": "2.9.0", + "@opentelemetry/semantic-conventions": "^1.29.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.3.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-trace/node_modules/@opentelemetry/resources": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-2.9.0.tgz", + "integrity": "sha512-jyA5MBLQ+Dkl3+JsZkUoUvL7yHvU64kLsvpXKarWm6347Sl1t1bXFTFykUePNpT5WH5pm9a2Qtt03iIYQhZ1Fg==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "2.9.0", + "@opentelemetry/semantic-conventions": "^1.29.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.3.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/semantic-conventions": { + "version": "1.43.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.43.0.tgz", + "integrity": "sha512-eSYWTm620tTk45EKSedaUL8MFYI8hW164hIXsgIHyxu3VobUB3fFCu5t0hQby6OoWRPsG1KkKUG2M5UadiLiVg==", + "license": "Apache-2.0", + "engines": { + "node": ">=14" + } + }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.5.tgz", + "integrity": "sha512-zgXFLzW3Ap33e6d0Wlj4MGIm6Ce8O89n/apUaGNB/jx+hw+ruWEp7EwGUshdLKVRCxZW12fp9r40E1mQrf/34g==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.1.tgz", + "integrity": "sha512-vW1GmwMZNnL+gMRaovlh9yZX74kc+TTU3FObkkurpMaRtBfLP3ldjS9KQWlwZgraRE0+dheEEoAxdzcJQ8eXZg==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.1.tgz", + "integrity": "sha512-GpptLrs57adMSuHi3VNj0mAF8dwh36LMaYF6XyJ6JMWlVsc+t42tm1HSEDmOs3A8fC9yyeisgLhsTVQokOZ0zw==", + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.1" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.2.tgz", + "integrity": "sha512-b1UQwcEZ4yCnMCD8DAL1VlbvBJE9/IX4FTIp7BG1xYpf29SLazLSrqUkj4w7Y5y7cCVP6E5tcqqcI0xemPkHug==", + "license": "BSD-3-Clause" + }, + "node_modules/@sec-ant/readable-stream": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz", + "integrity": "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==", + "license": "MIT" + }, + "node_modules/@sindresorhus/is": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-7.2.0.tgz", + "integrity": "sha512-P1Cz1dWaFfR4IR+U13mqqiGsLFf1KbayybWwdd2vfctdV6hDpUkgCY0nKOLLTMSoRd/jJNjtbqzf13K8DCCXQw==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@sindresorhus/merge-streams": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", + "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@smithy/core": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.35.0.tgz", + "integrity": "sha512-zRMhfkByhT2snNdr1si24vJitU6Cr9ix2MikUfWmkAgp4jrNP0GcKSP5YvwQ+TlI8AZXER5QOGJn3JsVtSD9/A==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.19.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/credential-provider-imds": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.5.2.tgz", + "integrity": "sha512-A9uSdn72ozbRUSit0eib0TW7nXuNPlaeM0zcGkJ+nE6tFcSDbnmtwoxbTCFBukVQcszDAyvsd7+rTduPTXpygg==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/core": "^3.33.2", + "@smithy/types": "^4.17.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/fetch-http-handler": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-5.8.0.tgz", + "integrity": "sha512-ycSJu3tFAQ4v04CBB0agqFMVsSQ1iG3yw+SpgxRqKfaURpQD4CZ8Wn0zPMmSnOuTpTh65Vz+EA0rMrw089wvkA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/core": "^3.33.3", + "@smithy/types": "^4.18.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/is-array-buffer": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz", + "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/node-http-handler": { + "version": "4.7.3", + "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.7.3.tgz", + "integrity": "sha512-/jPhevcTFPMVl6KNjbaI47iOg1zxC7IsnX4PQDGVZKMFceOXtB8IEYaB7a9VvkP/3oC60WzTeKocvSI7vLT0vA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/core": "^3.24.3", + "@smithy/types": "^4.14.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/signature-v4": { + "version": "5.7.4", + "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.7.4.tgz", + "integrity": "sha512-tHy0K0VtqNd5Y7Y41h0a0Lhh0L1GzC08dTWg0F7vRJWFtTENg7IZikf3wQkanYIRdb7ngoIPMTmqgUi401fEeQ==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/core": "^3.35.0", + "@smithy/types": "^4.19.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/types": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-4.19.0.tgz", + "integrity": "sha512-r7jh49VJxGerfAcTQA6gXcKc+98zOp/tqRwzYjgOE+iSQsP6cEU1hq2QzbuipmP68QtYdY9wKEhiCQZIzHgZ4Q==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/util-buffer-from": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz", + "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/is-array-buffer": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/util-utf8": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", + "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/util-buffer-from": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@stablelib/base64": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/base64/-/base64-1.0.1.tgz", + "integrity": "sha512-1bnPQqSxSuc3Ii6MhBysoWCg58j97aUjuCSZrGSmDxNqtytIi0k8utUenAwTZN4V5mXXYGsVUI9zeBqy+jBOSQ==", + "license": "MIT" + }, + "node_modules/@standard-schema/spec": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", + "license": "MIT" + }, + "node_modules/@swc/helpers": { + "version": "0.5.23", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.23.tgz", + "integrity": "sha512-5lSsMOTXURePglDfvuAQUqkGek9Hg2kksOYay2m0+XR++b2NWYL/4sWyuvVBIs8oKnJaxkdi9whaL/sqN13afw==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.8.0" + } + }, + "node_modules/@types/http-cache-semantics": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", + "integrity": "sha512-L3LgimLHXtGkWikKnsPg0/VFx9OGZaC+eN1u4r+OB1XRqH3meBIAVC2zr1WdMH+RHmnRkqliQAOHNJ/E0j/e0Q==", + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-26.6.3.tgz", + "integrity": "sha512-dsqMQQoeTLqu9wynDD00q573mNzso3IdQOAfHRJqLCcmCFPoGo9A1bDpUcv/9tnKpErQWv9uKeGfl37EIS02Yg==", + "license": "MIT", + "dependencies": { + "undici-types": "~8.9.0" + } + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "license": "MIT" + }, + "node_modules/@vscode/ripgrep": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/@vscode/ripgrep/-/ripgrep-1.18.0.tgz", + "integrity": "sha512-ns5lWe44tSfbTMbVUsyB+I1819PVSw4AdpgK0RNkzfWfwy6+3IUNSxwSrfTno1/oWaS/hERNz+XLWVyga2aJBQ==", + "license": "MIT", + "optionalDependencies": { + "@vscode/ripgrep-darwin-arm64": "1.18.0", + "@vscode/ripgrep-darwin-x64": "1.18.0", + "@vscode/ripgrep-linux-arm": "1.18.0", + "@vscode/ripgrep-linux-arm64": "1.18.0", + "@vscode/ripgrep-linux-ia32": "1.18.0", + "@vscode/ripgrep-linux-ppc64": "1.18.0", + "@vscode/ripgrep-linux-riscv64": "1.18.0", + "@vscode/ripgrep-linux-s390x": "1.18.0", + "@vscode/ripgrep-linux-x64": "1.18.0", + "@vscode/ripgrep-win32-arm64": "1.18.0", + "@vscode/ripgrep-win32-ia32": "1.18.0", + "@vscode/ripgrep-win32-x64": "1.18.0" + } + }, + "node_modules/@vscode/ripgrep-darwin-arm64": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/@vscode/ripgrep-darwin-arm64/-/ripgrep-darwin-arm64-1.18.0.tgz", + "integrity": "sha512-r3ktHSvbFycQNF6sl7sNDPocpsI7J+mEzh1IaZFkY0spm3k2Z9t8hPAeOK7+p0l6p6/swkQC14XWX01low+94Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@vscode/ripgrep-darwin-x64": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/@vscode/ripgrep-darwin-x64/-/ripgrep-darwin-x64-1.18.0.tgz", + "integrity": "sha512-25b4gWbL138dGuQU244ebCKKc0q05ULBMoFSz9oAEUHNeqK/lOJViDS7DRvbDazzAzSEdan391Znks/R5mkaTQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@vscode/ripgrep-linux-arm": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/@vscode/ripgrep-linux-arm/-/ripgrep-linux-arm-1.18.0.tgz", + "integrity": "sha512-GDAvufNDHu8zqLEmXstalQF0Wh6wQvdsBi/Vg3Yi3CK4a8XoFXqqXVEHEZ9xQz3t0NfoSEc9JbvK9DDS6FxyxQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@vscode/ripgrep-linux-arm64": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/@vscode/ripgrep-linux-arm64/-/ripgrep-linux-arm64-1.18.0.tgz", + "integrity": "sha512-lQ/5zTG++U0E3IhVgS4EPTTn/U4okncaRMM5GOFfOYZywS4nuD31GhkHbNYlDk5CuDC68+hYJ0/eQeyCKJDA+g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@vscode/ripgrep-linux-ia32": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/@vscode/ripgrep-linux-ia32/-/ripgrep-linux-ia32-1.18.0.tgz", + "integrity": "sha512-YWLkSUtFd4Jh5EepIhA9RJSfv3uMAVMo+2rBIGHPBnvgLrZciIs2cDKei1/p6Wc/aCzUoHyMAg2R6tw4ZCBKGg==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@vscode/ripgrep-linux-ppc64": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/@vscode/ripgrep-linux-ppc64/-/ripgrep-linux-ppc64-1.18.0.tgz", + "integrity": "sha512-quXVY8fwQ8O/lvU1yrSqSl3jlUzysRSb+AfUfCL/tRtphxsKlFvPAejryZ6vg4Bgvn8XL74xb4qMCDmWgYrT5w==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@vscode/ripgrep-linux-riscv64": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/@vscode/ripgrep-linux-riscv64/-/ripgrep-linux-riscv64-1.18.0.tgz", + "integrity": "sha512-f5kBQBrWfQt8Q7OhSORuNDei5dkYagBj3y4jImSUXGMy8B/Ke7SltSRcUtjPv166FAFfHCAmWuZp3+cWnX2/Vw==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@vscode/ripgrep-linux-s390x": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/@vscode/ripgrep-linux-s390x/-/ripgrep-linux-s390x-1.18.0.tgz", + "integrity": "sha512-rTOcJFGGcl2c07RUOWUo4U1ndnemKhY6A9hnMB18uk7jSgJc0d/QLBGWMWpumdtoJtpizn/wIv5mXIisJukusQ==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@vscode/ripgrep-linux-x64": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/@vscode/ripgrep-linux-x64/-/ripgrep-linux-x64-1.18.0.tgz", + "integrity": "sha512-mQ3bVrUpnD2vs7QT0vX90Lt0cnUq467uFtEktIdsJJmW296RoSULRGqWgzG1AKxyBpNDD6l4ZO4qKf6SgyC23Q==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@vscode/ripgrep-win32-arm64": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/@vscode/ripgrep-win32-arm64/-/ripgrep-win32-arm64-1.18.0.tgz", + "integrity": "sha512-vfTIjq1OHnzUjxZcHVQAMbnggp8dpGf+0QKFOZHwWPqFwXxQC8eCWM+5NUdoJ6yrElCeMzoUTXoK/LdZaniB+Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@vscode/ripgrep-win32-ia32": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/@vscode/ripgrep-win32-ia32/-/ripgrep-win32-ia32-1.18.0.tgz", + "integrity": "sha512-//rfAE+BOw5AC2EMmepmiE36jUuevtQYNQqqlw1s3m9FlRxjxEut97RkRPHAu9BG4mSojatZx+kXZXNdyI9caQ==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@vscode/ripgrep-win32-x64": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/@vscode/ripgrep-win32-x64/-/ripgrep-win32-x64-1.18.0.tgz", + "integrity": "sha512-KNPvtElldqILHdnAetujPaowkNbpqJy3ssIGGN6F6Kve9Qi+nNLI2DN01O83JjCEVQbCzl8Ov3QZ9Eov3BR8Dg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@xterm/addon-serialize": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@xterm/addon-serialize/-/addon-serialize-0.14.0.tgz", + "integrity": "sha512-uteyTU1EkrQa2Ux6P/uFl2fzmXI46jy5uoQMKEOM0fKTyiW7cSn0WrFenHm5vO5uEXX/GpwW/FgILvv3r0WbkA==", + "license": "MIT" + }, + "node_modules/@xterm/headless": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@xterm/headless/-/headless-6.0.0.tgz", + "integrity": "sha512-5Yj1QINYCyzrZtf8OFIHi47iQtI+0qYFPHmouEfG8dHNxbZ9Tb9YGSuLcsEwj9Z+OL75GJqPyJbyoFer80a2Hw==", + "license": "MIT", + "workspaces": [ + "addons/*" + ] + }, + "node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/ajv": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/bignumber.js": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.1.tgz", + "integrity": "sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/bowser": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.14.1.tgz", + "integrity": "sha512-tzPjzCxygAKWFOJP011oxFHs57HzIhOEracIgAePE4pqB3LikALKnSzUyU4MGs9/iCEUuHlAJTjTc5M+u7YEGg==", + "license": "MIT" + }, + "node_modules/brotli": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/brotli/-/brotli-1.3.3.tgz", + "integrity": "sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg==", + "license": "MIT", + "dependencies": { + "base64-js": "^1.1.2" + } + }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", + "license": "BSD-3-Clause" + }, + "node_modules/bundle-name": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.1.tgz", + "integrity": "sha512-DdH81/zPLVS11EUgWq3tEu/xn+EzljlMYooDNdzWEnFha3R3NBMpMV1UqYIpjYHV/SgpFKMIX1Oh7o06SjM/oA==", + "license": "MIT", + "dependencies": { + "run-applescript": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/byte-counter": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/byte-counter/-/byte-counter-0.1.0.tgz", + "integrity": "sha512-jheRLVMeUKrDBjVw2O5+k4EvR4t9wtxHL+bo/LxfkxsVeuGMy3a5SEGgXdAFA4FSzTrU8rQXQIrsZ3oBq5a0pQ==", + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacheable-lookup": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", + "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", + "license": "MIT", + "engines": { + "node": ">=14.16" + } + }, + "node_modules/cacheable-request": { + "version": "13.0.19", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-13.0.19.tgz", + "integrity": "sha512-SVXGH037+Mo1aIMO5B2UcleR43FGjFdN+M8JObSyEoQ2Mn4CODRWx28gN5jiTF0n5ItsgtIZfyargMNs8GX4kg==", + "license": "MIT", + "dependencies": { + "@types/http-cache-semantics": "^4.2.0", + "get-stream": "^9.0.1", + "http-cache-semantics": "^4.2.0", + "keyv": "^5.6.0", + "mimic-response": "^4.0.0", + "normalize-url": "^8.1.1", + "responselike": "^4.0.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/commander": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-15.0.0.tgz", + "integrity": "sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg==", + "license": "MIT", + "engines": { + "node": ">=22.12.0" + } + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "license": "MIT", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.2.tgz", + "integrity": "sha512-o8vI5RE5A6EVVOd9o41jKp41aJom+QTEO/Bx8MYNjexMo/Bv2WOjUfZr+aL0WnYSgymUy6zeguqLTsIhV0gMvQ==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "compressible": "~2.0.18", + "debug": "2.6.9", + "destroy": "1.2.0", + "negotiator": "~0.6.4", + "on-headers": "~1.1.0", + "safe-buffer": "5.2.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/compression/node_modules/negotiator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.1.0.tgz", + "integrity": "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/decompress-response": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-10.0.0.tgz", + "integrity": "sha512-oj7KWToJuuxlPr7VV0vabvxEIiqNMo+q0NueIiL3XhtwC6FVOX7Hr1c0C4eD0bmf7Zr+S/dSf2xvkH3Ad6sU3Q==", + "license": "MIT", + "dependencies": { + "mimic-response": "^4.0.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.5.1.tgz", + "integrity": "sha512-m1pAzaJgZ/gssEqlOhJkPJp8Xly7QyW6xcrkUa2KKcDeDSEMP7X8xipU3snUcfisTQx0w1AGae+9UtJSfVnXGw==", + "license": "MIT", + "dependencies": { + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.1.tgz", + "integrity": "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/dfa": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/dfa/-/dfa-1.2.0.tgz", + "integrity": "sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q==", + "license": "MIT" + }, + "node_modules/diff": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-9.0.0.tgz", + "integrity": "sha512-svtcdpS8CgJyqAjEQIXdb3OjhFVVYjzGAPO8WGCmRbrml64SPw/jJD4GoE98aR7r25A0XcgrK3F02yw9R/vhQw==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/eventsource": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-3.0.7.tgz", + "integrity": "sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==", + "license": "MIT", + "dependencies": { + "eventsource-parser": "^3.0.1" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/eventsource-parser": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.1.1.tgz", + "integrity": "sha512-EKN1vKAMcZ8MlYMpaNuxN6R9yakzH6uajHcHVTqWJzvu5pWw9DyhbP35HH8MVBQ+dZjAfDxk+A8NiR9KWaXiyQ==", + "license": "MIT", + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/execa": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-10.0.1.tgz", + "integrity": "sha512-ge98qjkRK4IB7tL7Ju/6qmm5LHoH1eEMt5FNZrz3f4UIYhF28lggX20z3FaX1sgc67msLEn0N0BscOs29iuwyw==", + "license": "MIT", + "dependencies": { + "@sindresorhus/merge-streams": "^4.0.0", + "figures": "^6.1.0", + "get-stream": "^9.0.1", + "human-signals": "^8.0.1", + "is-plain-obj": "^4.1.0", + "is-stream": "^4.0.1", + "npm-run-path": "^6.0.0", + "pretty-ms": "^9.3.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^4.0.0", + "which-command": "^0.1.0", + "yoctocolors": "^2.1.2" + }, + "engines": { + "node": ">=22" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fast-sha256": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-sha256/-/fast-sha256-1.3.0.tgz", + "integrity": "sha512-n11RGP/lrWEFI/bWdygLxhI+pVeo1ZYIVwvvPkW7azl/rOy+F3HYRZ2K5zeE9mmkhQppyv9sQFx0JM9UabnpPQ==", + "license": "Unlicense" + }, + "node_modules/fast-uri": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.8.tgz", + "integrity": "sha512-GZMtZUTNRpOVIECoXwLNZS5xUGE+mVNbTB8h/7Rwh2TFWcBQiPzTgyZi05BF9UMZKkLJv8XBRJTlU7zg8+ZfMg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, + "node_modules/fflate": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.3.tgz", + "integrity": "sha512-tbZNuJrLwGUp3zshBtdy4W+ORxZuIh8a5ilyIEQDC5rY1f3U20JMry0Ll3WBzU58EZKsEuJFXhb5gwv8CsPvgA==", + "license": "MIT" + }, + "node_modules/figures": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-6.1.0.tgz", + "integrity": "sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==", + "license": "MIT", + "dependencies": { + "is-unicode-supported": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/fontkit": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/fontkit/-/fontkit-2.0.4.tgz", + "integrity": "sha512-syetQadaUEDNdxdugga9CpEYVaQIxOwk7GlwZWWZ19//qW4zE5bknOKeMBDYAASwnpaSHKJITRLMF9m1fp3s6g==", + "license": "MIT", + "dependencies": { + "@swc/helpers": "^0.5.12", + "brotli": "^1.3.2", + "clone": "^2.1.2", + "dfa": "^1.2.0", + "fast-deep-equal": "^3.1.3", + "restructure": "^3.0.0", + "tiny-inflate": "^1.0.3", + "unicode-properties": "^1.4.0", + "unicode-trie": "^2.0.0" + } + }, + "node_modules/form-data-encoder": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-4.1.0.tgz", + "integrity": "sha512-G6NsmEW15s0Uw9XnCg+33H3ViYRyiM0hMrMhhqQOR8NFc5GhYrI+6I3u7OTw7b91J2g8rtvMBZJDbcGb2YUniw==", + "license": "MIT", + "engines": { + "node": ">= 18" + } + }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "license": "MIT", + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/gaxios": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-7.3.1.tgz", + "integrity": "sha512-kB3rzJV7d9juLZh8/56QTXCwQfxyhdOMdyYk1HdQKFtF8TJTDTZQJtixWIwXdE9Jji91mC41DUNpjleo4L4eAQ==", + "license": "Apache-2.0", + "dependencies": { + "extend": "^3.0.2", + "https-proxy-agent": "^7.0.1", + "node-fetch": "^3.3.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/gcp-metadata": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-8.1.2.tgz", + "integrity": "sha512-zV/5HKTfCeKWnxG0Dmrw51hEWFGfcF2xiXqcA3+J90WDuP0SvoiSO5ORvcBsifmx/FoIjgQN3oNOGaQ5PhLFkg==", + "license": "Apache-2.0", + "dependencies": { + "gaxios": "^7.0.0", + "google-logging-utils": "^1.0.0", + "json-bigint": "^1.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/get-stream": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", + "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", + "license": "MIT", + "dependencies": { + "@sec-ant/readable-stream": "^0.4.1", + "is-stream": "^4.0.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/google-auth-library": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-10.9.1.tgz", + "integrity": "sha512-i1ydyHrqcIxXkWh/uBmVkzCvIuq5yiK2ATndIe5XxKholrG/MTYP9xGYka4sQhrbIAgGjL2B6NOE7rFaiF3fXw==", + "license": "Apache-2.0", + "dependencies": { + "base64-js": "^1.3.0", + "ecdsa-sig-formatter": "^1.0.11", + "gaxios": "^7.1.4", + "gcp-metadata": "8.1.2", + "google-logging-utils": "1.1.3", + "jws": "^4.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/google-logging-utils": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/google-logging-utils/-/google-logging-utils-1.1.3.tgz", + "integrity": "sha512-eAmLkjDjAFCVXg7A1unxHsLf961m6y17QFqXqAXGj/gVkKFrEICfStRfwUlGNfeCEjNRa32JEWOUTlYXPyyKvA==", + "license": "Apache-2.0", + "engines": { + "node": ">=14" + } + }, + "node_modules/got": { + "version": "14.6.6", + "resolved": "https://registry.npmjs.org/got/-/got-14.6.6.tgz", + "integrity": "sha512-QLV1qeYSo5l13mQzWgP/y0LbMr5Plr5fJilgAIwgnwseproEbtNym8xpLsDzeZ6MWXgNE6kdWGBjdh3zT/Qerg==", + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^7.0.1", + "byte-counter": "^0.1.0", + "cacheable-lookup": "^7.0.0", + "cacheable-request": "^13.0.12", + "decompress-response": "^10.0.0", + "form-data-encoder": "^4.0.2", + "http2-wrapper": "^2.2.1", + "keyv": "^5.5.3", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^4.0.1", + "responselike": "^4.0.2", + "type-fest": "^4.26.1" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", + "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", + "license": "BSD-2-Clause" + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/http-proxy-agent/node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/http-proxy-agent/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/http2-wrapper": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", + "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==", + "license": "MIT", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.2.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/https-proxy-agent/node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/human-signals": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-8.0.1.tgz", + "integrity": "sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/ipaddr.js": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.5.0.tgz", + "integrity": "sha512-aq+t5NAc+cS6rZQQVWC2x98CPqGtKKTMDd4Gaodv0wShnItdKg/51djkGJ1hqH+Oy0ivDftCbSLCQob8zso01w==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-in-ssh": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-in-ssh/-/is-in-ssh-1.0.0.tgz", + "integrity": "sha512-jYa6Q9rH90kR1vKB6NM7qqd1mge3Fx4Dhw5TVlK1MUBqhEOuCagrEHMevNuCcbECmXZ0ThXkRm+Ymr51HwEPAw==", + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "license": "MIT", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-stream": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", + "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-unicode-supported": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", + "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-wsl": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.1.tgz", + "integrity": "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==", + "license": "MIT", + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/jose": { + "version": "6.2.12", + "resolved": "https://registry.npmjs.org/jose/-/jose-6.2.12.tgz", + "integrity": "sha512-9NiFmJEex0sy2Dk58j2UGBSHgUs2ypF9eZSu4L6vjOX3Dp96Sw1F3uL+H+D1sx02jZZdzUT0HgvCy59CuvXcWw==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.2.tgz", + "integrity": "sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbi": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/jsbi/-/jsbi-4.3.2.tgz", + "integrity": "sha512-9fqMSQbhJykSeii05nxKl4m6Eqn2P6rOlYiS+C5Dr/HPIU/7yZxu5qzbs40tgaFORiw2Amd0mirjxatXYMkIew==", + "license": "Apache-2.0" + }, + "node_modules/json-bigint": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", + "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", + "license": "MIT", + "dependencies": { + "bignumber.js": "^9.0.0" + } + }, + "node_modules/json-schema-to-ts": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/json-schema-to-ts/-/json-schema-to-ts-3.1.1.tgz", + "integrity": "sha512-+DWg8jCJG2TEnpy7kOm/7/AxaYoaRbjVB4LFZLySZlWn8exGs3A4OLJR966cVvU26N7X9TWxl+Jsw7dzAqKT6g==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "ts-algebra": "^2.0.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, + "node_modules/jwa": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.1.tgz", + "integrity": "sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==", + "license": "MIT", + "dependencies": { + "buffer-equal-constant-time": "^1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.1.tgz", + "integrity": "sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==", + "license": "MIT", + "dependencies": { + "jwa": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/keyv": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.6.0.tgz", + "integrity": "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==", + "license": "MIT", + "dependencies": { + "@keyv/serialize": "^1.1.1" + } + }, + "node_modules/koffi": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/koffi/-/koffi-3.1.1.tgz", + "integrity": "sha512-mRX6AMeeKCxSOeOopqAcLAl5jcNvge7NAG8l7rF/8gGJATI0tdHFYjteIdE0mGOtWdsrJOij+PjnP8Q9c1gwgA==", + "hasInstallScript": true, + "license": "MIT", + "funding": { + "url": "https://liberapay.com/Koromix" + }, + "optionalDependencies": { + "@koromix/koffi-darwin-arm64": "3.1.1", + "@koromix/koffi-darwin-x64": "3.1.1", + "@koromix/koffi-freebsd-arm64": "3.1.1", + "@koromix/koffi-freebsd-ia32": "3.1.1", + "@koromix/koffi-freebsd-x64": "3.1.1", + "@koromix/koffi-linux-arm64": "3.1.1", + "@koromix/koffi-linux-ia32": "3.1.1", + "@koromix/koffi-linux-loong64": "3.1.1", + "@koromix/koffi-linux-riscv64": "3.1.1", + "@koromix/koffi-linux-x64": "3.1.1", + "@koromix/koffi-openbsd-ia32": "3.1.1", + "@koromix/koffi-openbsd-x64": "3.1.1", + "@koromix/koffi-win32-arm64": "3.1.1", + "@koromix/koffi-win32-ia32": "3.1.1", + "@koromix/koffi-win32-x64": "3.1.1" + } + }, + "node_modules/long": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz", + "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==", + "license": "Apache-2.0" + }, + "node_modules/lowercase-keys": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/mimic-response": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", + "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.1.0.tgz", + "integrity": "sha512-NMPBRMJgiQHjbd8phG3Vebdx4kZ1H121rbl5IkMqeOsahptB9BKo/d7oJ3zTXqTgagn2bWlNSXkh0QUGM31RYg==", + "license": "MIT", + "dependencies": { + "content-type": "^2.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "license": "MIT" + }, + "node_modules/node-addon-native-custom-loader": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/node-addon-native-custom-loader/-/node-addon-native-custom-loader-0.1.6.tgz", + "integrity": "sha512-QaW7d8lTcGCXrpNVyFDtID3vrpa7vFdpcY9pql2/9FGFSe7tcSnhQOKZX+1aOWq+pB1d2ZwNnKAdQI5nD9wAXA==", + "license": "MIT", + "engines": { + "node": ">=20" + } + }, + "node_modules/node-addon-require-builtin": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/node-addon-require-builtin/-/node-addon-require-builtin-0.1.6.tgz", + "integrity": "sha512-P9ZGMDkloktirLJSggfpxsJ9jog5FItE1Omxpj50UBn3LhD6TS6/yx0jEBXsCGK3P9EtW1EpQVA1QL5gb11GaQ==", + "license": "MIT", + "dependencies": { + "node-addon-native-custom-loader": "0.1.6" + }, + "engines": { + "node": ">=20" + }, + "optionalDependencies": { + "node-addon-require-builtin-darwin-arm64": "0.1.6", + "node-addon-require-builtin-darwin-x64": "0.1.6", + "node-addon-require-builtin-linux-arm64-gnu": "0.1.6", + "node-addon-require-builtin-linux-x64-gnu": "0.1.6", + "node-addon-require-builtin-win32-arm64-msvc": "0.1.6", + "node-addon-require-builtin-win32-ia32-msvc": "0.1.6", + "node-addon-require-builtin-win32-x64-msvc": "0.1.6" + } + }, + "node_modules/node-addon-require-builtin-darwin-arm64": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/node-addon-require-builtin-darwin-arm64/-/node-addon-require-builtin-darwin-arm64-0.1.6.tgz", + "integrity": "sha512-KpaAh0mDcIScoJs7gD/mjXREcENJ023/DgWW3GrlLXFVzCE6bK6wFrTFpNfnkxZZP8yWsEWOg1o5T+uQ7olgTQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "node-addon-native-custom-loader": "0.1.6" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/node-addon-require-builtin-darwin-x64": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/node-addon-require-builtin-darwin-x64/-/node-addon-require-builtin-darwin-x64-0.1.6.tgz", + "integrity": "sha512-lh9o5rCvmkH8MZgBBmhyKzJRc1M1hJzgXLTFzB6iomRXNH9P1DKjN2nAJLmvGrdTij47Wcch1JVnlV5AG0cRCQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "node-addon-native-custom-loader": "0.1.6" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/node-addon-require-builtin-linux-arm64-gnu": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/node-addon-require-builtin-linux-arm64-gnu/-/node-addon-require-builtin-linux-arm64-gnu-0.1.6.tgz", + "integrity": "sha512-DrQA3aS1LBn4NgrewbZkzSAWdSSRPD/fYO5AkQfvriQ/TQD3E2adB012sZ5eac6p9TAcTjUIYhk395AYVxo4Zw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "dependencies": { + "node-addon-native-custom-loader": "0.1.6" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/node-addon-require-builtin-linux-x64-gnu": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/node-addon-require-builtin-linux-x64-gnu/-/node-addon-require-builtin-linux-x64-gnu-0.1.6.tgz", + "integrity": "sha512-8wCxrFlB2Ld5DhxIm2P+nNFnQ0wjzDE5sXF68EUhLH0X+z313B07TUQFMBKCOkyhZIIBh590dBmhHCuA43No2A==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "dependencies": { + "node-addon-native-custom-loader": "0.1.6" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/node-addon-require-builtin-win32-arm64-msvc": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/node-addon-require-builtin-win32-arm64-msvc/-/node-addon-require-builtin-win32-arm64-msvc-0.1.6.tgz", + "integrity": "sha512-NET6DiLnKrK2DHuO4NNN+zJz0CFas+RwpJlGY0d3A3A3tc5dJQqZXgw8DzLOn4cSTAQCaDq6+LbPyYX7jE2F3Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "dependencies": { + "node-addon-native-custom-loader": "0.1.6" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/node-addon-require-builtin-win32-ia32-msvc": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/node-addon-require-builtin-win32-ia32-msvc/-/node-addon-require-builtin-win32-ia32-msvc-0.1.6.tgz", + "integrity": "sha512-oj4G51r81kJ3E2t5KknKhBNb8TmTWzc/t9x7jkBF9JeRd+1a0kr99mVJVYwJNxq9d3jpt7dgBdI8mxaomuXOEQ==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "dependencies": { + "node-addon-native-custom-loader": "0.1.6" + }, + "engines": { + "node": ">=20 <23" + } + }, + "node_modules/node-addon-require-builtin-win32-x64-msvc": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/node-addon-require-builtin-win32-x64-msvc/-/node-addon-require-builtin-win32-x64-msvc-0.1.6.tgz", + "integrity": "sha512-ZQ+6thVzQBOFamW7s3t2YqHsw99EEPBNH1uAjvCx4QfnjFJTsu6I/H3prpN8i6cSt6gjnQtArfWc2LXN2ufcJQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "dependencies": { + "node-addon-native-custom-loader": "0.1.6" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "deprecated": "Use your platform's native DOMException instead", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-fetch": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "license": "MIT", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, + "node_modules/node-pty": { + "version": "1.2.0-beta.15", + "resolved": "https://registry.npmjs.org/node-pty/-/node-pty-1.2.0-beta.15.tgz", + "integrity": "sha512-vORSzHXi4Ofl7HemVWpuudLqCPdaQb4LfpRCUpE5HPxhp4JYscl8zZwxh11p26v2wvW24WMwnMfLjhRLixrfxA==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "node-addon-api": "^7.1.0" + } + }, + "node_modules/normalize-url": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.1.1.tgz", + "integrity": "sha512-JYc0DPlpGWB40kH5g07gGTrYuMqV653k3uBKY6uITPWds3M0ov3GaWGp9lbE3Bzngx8+XkfzgvASb9vk9JDFXQ==", + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-6.0.0.tgz", + "integrity": "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==", + "license": "MIT", + "dependencies": { + "path-key": "^4.0.0", + "unicorn-magic": "^0.3.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/on-headers": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz", + "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/open": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/open/-/open-11.0.4.tgz", + "integrity": "sha512-++Zlftm0kVLPmzC06t6epuWmcRMDbI4z5P3NNX979WA/k23+NtSOynEGzsVfZwguKw2mi5umVgnBlJQMwRz4Pg==", + "license": "MIT", + "dependencies": { + "default-browser": "^5.5.1", + "define-lazy-prop": "^3.0.0", + "is-in-ssh": "^1.0.0", + "is-inside-container": "^1.0.0", + "powershell-utils": "^0.2.1", + "wsl-utils": "^1.0.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/openai": { + "version": "6.40.0", + "resolved": "https://registry.npmjs.org/openai/-/openai-6.40.0.tgz", + "integrity": "sha512-MWtTjd/gQt4jpbji61NTgFWJLoY/PdRJ6wG9/ZDRMYNMlBKrCrSlkLI+KgHP1vR1qT6LKSAyAqIxno6lcK9JiA==", + "license": "Apache-2.0", + "peerDependencies": { + "ws": "^8.18.0", + "zod": "^3.25 || ^4.0" + }, + "peerDependenciesMeta": { + "ws": { + "optional": true + }, + "zod": { + "optional": true + } + } + }, + "node_modules/p-cancelable": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-4.0.1.tgz", + "integrity": "sha512-wBowNApzd45EIKdO1LaU+LrMBwAcjfPaYtVzV3lmfM3gf8Z4CHZsiIqlM8TZZ8okYvh5A1cP6gTfCRQtwUpaUg==", + "license": "MIT", + "engines": { + "node": ">=14.16" + } + }, + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "license": "MIT", + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==", + "license": "MIT" + }, + "node_modules/parse-ms": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-4.0.0.tgz", + "integrity": "sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/partial-json": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/partial-json/-/partial-json-0.1.7.tgz", + "integrity": "sha512-Njv/59hHaokb/hRUjce3Hdv12wd60MtM9Z5Olmn+nehe0QDAsRtRbJPvJ0Z91TusF0SuZRIvnM+S4l6EIP8leA==", + "license": "MIT" + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz", + "integrity": "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkce-challenge": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/pkce-challenge/-/pkce-challenge-5.0.1.tgz", + "integrity": "sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ==", + "license": "MIT", + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/powershell-utils": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/powershell-utils/-/powershell-utils-0.2.1.tgz", + "integrity": "sha512-C+y9x90UElAddDZmV4qOx9W53B61PO7cIqWz2dQsWlwswuq4mr8NEwytdGKboYbQlGZ3awrkTeNvcZiZNHnQ8A==", + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pretty-ms": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.3.1.tgz", + "integrity": "sha512-HzMy3Geq23nVALD/M2LliU+F+M+gVNsvkQWWqeBZ8HDiCgzo6YPJ/Omrmtq24EFrIsk0a3EkQGEd7bDOo+IhGA==", + "license": "MIT", + "dependencies": { + "parse-ms": "^4.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/protobufjs": { + "version": "7.6.6", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.6.6.tgz", + "integrity": "sha512-dYDWdjSl5RNb7SgPxGQcRU+GtvP7s2fpkrY0r432PcOIaZ0/rBcxEZnQN67iJhFuQiVw754JDoPruPCNdGsbjg==", + "hasInstallScript": true, + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.5", + "@protobufjs/eventemitter": "^1.1.1", + "@protobufjs/fetch": "^1.1.1", + "@protobufjs/float": "^1.0.2", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.1", + "@types/node": ">=13.7.0", + "long": "^5.3.2" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", + "license": "MIT" + }, + "node_modules/resolve.exports": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz", + "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/responselike": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-4.0.2.tgz", + "integrity": "sha512-cGk8IbWEAnaCpdAt1BHzJ3Ahz5ewDJa0KseTsE3qIRMJ3C698W8psM7byCeWVpd/Ha7FUYzuRVzXoKoM6nRUbA==", + "license": "MIT", + "dependencies": { + "lowercase-keys": "^3.0.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/restructure": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/restructure/-/restructure-3.0.2.tgz", + "integrity": "sha512-gSfoiOEA0VPE6Tukkrr7I0RBdE0s7H1eFCDBk05l1KIQT1UIKNc5JZy6jdyW6eYH3aR3g5b3PuL77rq0hvwtAw==", + "license": "MIT" + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/run-applescript": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz", + "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "license": "ISC", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, + "node_modules/semver": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sharp": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.35.5.tgz", + "integrity": "sha512-Ywn4OnzGukp7CDMrp08RQ50YKmuwG47brZgIVPTvBaaAfQlRlygrRqSrxdCiL9M+LlzLBiJ68IR1QqvzHyjC7g==", + "license": "Apache-2.0", + "dependencies": { + "@img/colour": "^1.1.0", + "detect-libc": "^2.1.2", + "semver": "^7.8.5" + }, + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.35.5", + "@img/sharp-darwin-x64": "0.35.5", + "@img/sharp-freebsd-wasm32": "0.35.5", + "@img/sharp-libvips-darwin-arm64": "1.3.4", + "@img/sharp-libvips-darwin-x64": "1.3.4", + "@img/sharp-libvips-linux-arm": "1.3.4", + "@img/sharp-libvips-linux-arm64": "1.3.4", + "@img/sharp-libvips-linux-ppc64": "1.3.4", + "@img/sharp-libvips-linux-riscv64": "1.3.4", + "@img/sharp-libvips-linux-s390x": "1.3.4", + "@img/sharp-libvips-linux-x64": "1.3.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.3.4", + "@img/sharp-libvips-linuxmusl-x64": "1.3.4", + "@img/sharp-linux-arm": "0.35.5", + "@img/sharp-linux-arm64": "0.35.5", + "@img/sharp-linux-ppc64": "0.35.5", + "@img/sharp-linux-riscv64": "0.35.5", + "@img/sharp-linux-s390x": "0.35.5", + "@img/sharp-linux-x64": "0.35.5", + "@img/sharp-linuxmusl-arm64": "0.35.5", + "@img/sharp-linuxmusl-x64": "0.35.5", + "@img/sharp-webcontainers-wasm32": "0.35.5", + "@img/sharp-win32-arm64": "0.35.5", + "@img/sharp-win32-ia32": "0.35.5", + "@img/sharp-win32-x64": "0.35.5" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/sherpa-onnx-darwin-arm64": { + "version": "1.13.8", + "resolved": "https://registry.npmjs.org/sherpa-onnx-darwin-arm64/-/sherpa-onnx-darwin-arm64-1.13.8.tgz", + "integrity": "sha512-FPNgJMgnWVl/KhRTIhG3KL3A4Om63Rn4YKXc9/uHY7SzLcvqLJLc/h7UBWJwduXvv7K18t5NpxHR6XgXn4sjWw==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/sherpa-onnx-darwin-x64": { + "version": "1.13.8", + "resolved": "https://registry.npmjs.org/sherpa-onnx-darwin-x64/-/sherpa-onnx-darwin-x64-1.13.8.tgz", + "integrity": "sha512-7BLRpjM6w4f9W46/nmkmq8lEKUayhebvcpslCVQ+6QN2uReYlZEMDZlSpXMjme+hUFrPfRz8P3UNq8ep/4d19g==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/sherpa-onnx-linux-arm64": { + "version": "1.13.8", + "resolved": "https://registry.npmjs.org/sherpa-onnx-linux-arm64/-/sherpa-onnx-linux-arm64-1.13.8.tgz", + "integrity": "sha512-Tlg7a70b/Wge3OF8IgTHF9jhSVCsLyKQKhwc4BsJ5A+dL/SrFtGBjzuHp4XeLhiiOT7afCxX5PdSn/D4c8Lnuw==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/sherpa-onnx-linux-x64": { + "version": "1.13.8", + "resolved": "https://registry.npmjs.org/sherpa-onnx-linux-x64/-/sherpa-onnx-linux-x64-1.13.8.tgz", + "integrity": "sha512-6plnhjagsSeTntCgnlag86hWbs/uZE9Crms1LgOb68/1nKsIQjMd+WG519m+aPwT6TrsBOiEMzrx41t8sL5L5g==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/sherpa-onnx-node": { + "version": "1.13.8", + "resolved": "https://registry.npmjs.org/sherpa-onnx-node/-/sherpa-onnx-node-1.13.8.tgz", + "integrity": "sha512-MsDMBdhLFTZ1GwvcGSSQhnS7g/EA8OMH6IYysCVUOM7j8Icty9KRc0E6YT1A5fWBsZwRfKOeh88QC95aRvS8ag==", + "license": "Apache-2.0", + "optionalDependencies": { + "sherpa-onnx-darwin-arm64": "^1.13.8", + "sherpa-onnx-darwin-x64": "^1.13.8", + "sherpa-onnx-linux-arm64": "^1.13.8", + "sherpa-onnx-linux-x64": "^1.13.8", + "sherpa-onnx-win-ia32": "^1.13.8", + "sherpa-onnx-win-x64": "^1.13.8" + } + }, + "node_modules/sherpa-onnx-win-ia32": { + "version": "1.13.8", + "resolved": "https://registry.npmjs.org/sherpa-onnx-win-ia32/-/sherpa-onnx-win-ia32-1.13.8.tgz", + "integrity": "sha512-H0Ojln9hfvM+pxWqW0cnjB/XK8/JPq4/k0IWu2JpY5Z458M3zv+XC3Hu+wmot3AoH/K1Bgt23n/tTKtPV9x8qg==", + "cpu": [ + "ia32" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/sherpa-onnx-win-x64": { + "version": "1.13.8", + "resolved": "https://registry.npmjs.org/sherpa-onnx-win-x64/-/sherpa-onnx-win-x64-1.13.8.tgz", + "integrity": "sha512-oZF1c9VPOKtMwn83Bboc5XSWL+76BRoyB3eUuVnCknBKxwSULZU2Foia9VHWzU+n4I12rPsP6z6H9Rp1hD9o8g==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/standardwebhooks": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/standardwebhooks/-/standardwebhooks-1.1.1.tgz", + "integrity": "sha512-bCbX9ZEyFkWPsRz7Bl3NuQUJohmwGSev/yhr7vhaGPlc4AfIrspIRa6cPTBuI1ItmrTDJ4d/S2hCsfe4+vQGnQ==", + "license": "MIT", + "dependencies": { + "@stablelib/base64": "^1.0.0", + "fast-sha256": "^1.3.0" + } + }, + "node_modules/strip-final-newline": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz", + "integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tiny-inflate": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz", + "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==", + "license": "MIT" + }, + "node_modules/ts-algebra": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ts-algebra/-/ts-algebra-2.0.0.tgz", + "integrity": "sha512-FPAhNPFMrkwz76P7cdjdmiShwMynZYN6SgOujD1urY4oNm80Ou9oMdmbR45LotcKOXoy7wSmHkRFE6Mxbrhefw==", + "license": "MIT" + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/turndown": { + "version": "7.2.4", + "resolved": "https://registry.npmjs.org/turndown/-/turndown-7.2.4.tgz", + "integrity": "sha512-I8yFsfRzmzK0WV1pNNOA4A7y4RDfFxPRxb3t+e3ui14qSGOxGtiSP6GjeX+Y6CHb7HYaFj7ECUD7VE5kQMZWGQ==", + "license": "MIT", + "dependencies": { + "@mixmark-io/domino": "^2.2.0" + }, + "engines": { + "node": ">=18", + "npm": ">=9" + } + }, + "node_modules/type-fest": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typebox": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/typebox/-/typebox-1.3.7.tgz", + "integrity": "sha512-meKuifc33Pccx0O6PdIzYMq3Og8zvP4TIi/a+Bw3AEMZMxOD0+RHGQvpglEe6Zdy3wZ8nqn/j95h8LUZLk/6Hg==", + "license": "MIT" + }, + "node_modules/undici": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/undici/-/undici-8.11.2.tgz", + "integrity": "sha512-u4UB2/IrKdU6lFxumHmmo1a3fCQO5tzQllRorfoRS63txhrB7xTpSn1PftwC4qEHkOaqP95fCWW4lJzwErwzhQ==", + "license": "MIT", + "engines": { + "node": ">=22.19.0" + } + }, + "node_modules/undici-types": { + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.9.0.tgz", + "integrity": "sha512-KTDyRTYX8sWmKXAikPHHSyc63CRPETMctyjKFupcC6OBLXT3xsN0e9aF7m+mIXutFWpUXuedtowG7iLOzp0kQg==", + "license": "MIT" + }, + "node_modules/unicode-properties": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/unicode-properties/-/unicode-properties-1.4.1.tgz", + "integrity": "sha512-CLjCCLQ6UuMxWnbIylkisbRj31qxHPAurvena/0iwSVbQ2G1VY5/HjV0IRabOEbDHlzZlRdCrD4NhB0JtU40Pg==", + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.0", + "unicode-trie": "^2.0.0" + } + }, + "node_modules/unicode-trie": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-2.0.0.tgz", + "integrity": "sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==", + "license": "MIT", + "dependencies": { + "pako": "^0.2.5", + "tiny-inflate": "^1.0.0" + } + }, + "node_modules/unicorn-magic": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", + "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/web-streams-polyfill": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-command": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/which-command/-/which-command-0.1.0.tgz", + "integrity": "sha512-XZyoF5/5hZtXitIwzrU4NKK+Wtbb9aB9CezUEw2Q0wlYK8NUYQxC1rRXgNueYLtBAJwXIb+/tFVk4dozciNJMA==", + "license": "MIT", + "bin": { + "which-command": "cli.js" + }, + "engines": { + "node": ">=22" + }, + "funding": { + "url": "https://github.com/sindresorhus/which-command?sponsor=1" + } + }, + "node_modules/ws": { + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.22.0.tgz", + "integrity": "sha512-Ydggc987+RO0AnWtZ/7Wq9FtNvcrL1b/RO0ud9mWjUPgDrsAAwQSF51sm2hm1XofbU/4jkpGEsLFsZZxU+1DOg==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/wsl-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-1.0.0.tgz", + "integrity": "sha512-Hl0ZOAs672vg+06kfujwRhoS6/jehvULrlFkuF2dRu6pHgA8U06h3xqNIqNNU1LTXPcedxByAR4GS6pwQK0mgA==", + "license": "MIT", + "dependencies": { + "is-wsl": "^3.1.0", + "powershell-utils": "^0.1.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/wsl-utils/node_modules/powershell-utils": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/powershell-utils/-/powershell-utils-0.1.0.tgz", + "integrity": "sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A==", + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "license": "MIT" + }, + "node_modules/yaml": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.9.1.tgz", + "integrity": "sha512-3NxN8+78OdzbT7C/WjGsyfPAtJaN3FNDsWxv7Y7mcDsT/oOmgW8BpyQQFFBnvZE3j9Y2Sdz1ULFLezL7Eb2yFw==", + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" + } + }, + "node_modules/yoctocolors": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.2.0.tgz", + "integrity": "sha512-xYqdZFUK/VYazNl/oCDYN+3WloWQwMfZxBoiNt6qNyk+xfOdi598muWE42rNZFp1kNOiqW936q5RhUdnpqElSg==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zod": { + "version": "4.6.5", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.6.5.tgz", + "integrity": "sha512-v5l/aFXZQeai4awLbOpSoHecE9UiMrnfx75tEXLjNonXVARxQ5mOeipTjROUchszUNCqnE+hqAMujRsRHsut2Q==", + "license": "MIT", + "peer": true, + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + } + } +} diff --git a/mateclaw-server/src/test/java/vip/mate/agent/runtime/dsh/DshLaunchSpecTest.java b/mateclaw-server/src/test/java/vip/mate/agent/runtime/dsh/DshLaunchSpecTest.java new file mode 100644 index 00000000..687c36b9 --- /dev/null +++ b/mateclaw-server/src/test/java/vip/mate/agent/runtime/dsh/DshLaunchSpecTest.java @@ -0,0 +1,52 @@ +package vip.mate.agent.runtime.dsh; + +import java.io.IOException; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; +import vip.mate.agent.runtime.dsh.management.DshRuntimeConfiguration; +import java.nio.file.*; +import java.util.*; +import static org.junit.jupiter.api.Assertions.*; +class DshLaunchSpecTest { + @TempDir Path directory; + @Test void preservesExecutableSpacesPatchOrderAndIsolatesAgentHomes() throws Exception { + Path executable = Files.writeString(directory.resolve("dsh binary"), "#!/bin/sh\nexit 0\n"); + executable.toFile().setExecutable(true); + Path first = Files.writeString(directory.resolve("first patch.yml"), "{}"); + Path second = Files.writeString(directory.resolve("second.yml"), "{}"); + var config = new DshRuntimeConfiguration(executable.toString(), "", directory.toString(), "", "", "", + "sdk", List.of(first.toString(), second.toString()), directory.resolve("homes").toString()); + var launch = DshLaunchSpec.create(config, 1L, 2L, directory); + assertEquals(List.of(executable.toString(), "--profile", "sdk", "--patch", first.toString(), "--patch", second.toString()), launch.command()); + assertNotEquals(launch.home(), DshLaunchSpec.create(config, 1L, 3L, directory).home()); + assertEquals(launch.home().toString(), launch.processBuilder(Map.of()).environment().get("DSH_HOME")); + } + @Test void rejectsLegacyCommandAndCordis() { + var config = new DshRuntimeConfiguration("/bin/sh --stdio", "", directory.toString(), "", "", ""); + assertTrue(assertThrows(IllegalArgumentException.class, () -> DshLaunchSpec.create(config, 1, 2, directory)).getMessage().startsWith("MIGRATION_REQUIRED")); + } + @Test void normalizesOnlyOfficialApiRoute() { + assertEquals("https://api.deepseek.com/anthropic", DshRuntimeService.normalizeBaseUrl("https://api.deepseek.com")); + assertEquals("https://api.deepseek.com/anthropic", DshRuntimeService.normalizeBaseUrl("https://api.deepseek.com/v1/")); + assertEquals("https://custom.example/v1", DshRuntimeService.normalizeBaseUrl("https://custom.example/v1")); + } + @Test void workspaceSymlinkIsRejectedBeforeCreatingAgentHomeOutsideRoot() throws Exception { + Path root = Files.createDirectory(directory.resolve("homes")); + Path outside = Files.createDirectory(directory.resolve("outside")); + var config = new DshRuntimeConfiguration("/bin/sh", "", directory.toString(), "", "", "", "sdk", List.of(), root.toString()); + var launch = DshLaunchSpec.create(config, 1, 2, directory); + Files.createSymbolicLink(launch.home().getParent(), outside); + assertThrows(IOException.class, () -> launch.processBuilder(Map.of())); + assertFalse(Files.exists(outside.resolve(launch.home().getFileName())), "validation must precede all writes through the link"); + } + + @Test void homeRootSymlinkIsRejectedWithoutWritingToItsTarget() throws Exception { + Path outside = Files.createDirectory(directory.resolve("outside")); + Path root = Files.createSymbolicLink(directory.resolve("homes"), outside); + var config = new DshRuntimeConfiguration("/bin/sh", "", directory.toString(), "", "", "", "sdk", List.of(), root.toString()); + var launch = DshLaunchSpec.create(config, 1, 2, directory); + assertThrows(IOException.class, () -> launch.processBuilder(Map.of())); + try (var entries = Files.list(outside)) { assertEquals(0, entries.count()); } + } + +} diff --git a/mateclaw-server/src/test/java/vip/mate/agent/runtime/dsh/DshRecordedProtocolTest.java b/mateclaw-server/src/test/java/vip/mate/agent/runtime/dsh/DshRecordedProtocolTest.java new file mode 100644 index 00000000..b8577c62 --- /dev/null +++ b/mateclaw-server/src/test/java/vip/mate/agent/runtime/dsh/DshRecordedProtocolTest.java @@ -0,0 +1,31 @@ +package vip.mate.agent.runtime.dsh; + +import com.fasterxml.jackson.databind.*; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ValueSource; +import vip.mate.agent.runtime.contract.RuntimeEventType; +import java.nio.charset.StandardCharsets; +import static org.junit.jupiter.api.Assertions.*; + +/** Captured npm release SDK calls on macOS arm64/Node 22.20, Messages API, 2026-09-29. + * Replay state signatures removed. These recordings do not validate Linux/WSL or tools. */ +class DshRecordedProtocolTest { + @ParameterizedTest @ValueSource(strings = {"0.1.7-rc.2", "0.2.0-rc.1"}) + void recordedModelReplyCorrelatesPreResponseReceiptAndIncludesCachedInput(String version) throws Exception { + var mapper = new ObjectMapper(); + try (var input = getClass().getResourceAsStream("/dsh/" + version + "-sdk.jsonl")) { + assertNotNull(input); + var frames = new String(input.readAllBytes(), StandardCharsets.UTF_8).lines().map(line -> { + try { return mapper.readTree(line); } catch (Exception error) { throw new IllegalStateException(error); } + }).toList(); + String root = frames.stream().filter(frame -> frame.path("params").has("sessionId")).findFirst().orElseThrow().path("params").path("sessionId").asText(); + var turn = new DshSdkTurn(root, "2"); + for (var frame : frames) turn.accept(frame); + assertTrue(turn.complete()); + assertEquals(RuntimeEventType.COMPLETED, turn.terminalType()); + assertEquals("SDK_OK", turn.answer()); + assertEquals(5421, turn.inputTokens()); + assertEquals(4, turn.outputTokens()); + } + } +} diff --git a/mateclaw-server/src/test/java/vip/mate/agent/runtime/dsh/DshRuntimeModelLimitsTest.java b/mateclaw-server/src/test/java/vip/mate/agent/runtime/dsh/DshRuntimeModelLimitsTest.java index 68b95014..b33c0210 100644 --- a/mateclaw-server/src/test/java/vip/mate/agent/runtime/dsh/DshRuntimeModelLimitsTest.java +++ b/mateclaw-server/src/test/java/vip/mate/agent/runtime/dsh/DshRuntimeModelLimitsTest.java @@ -1,5 +1,6 @@ package vip.mate.agent.runtime.dsh; +import java.util.List; import com.fasterxml.jackson.databind.ObjectMapper; import org.junit.jupiter.api.io.TempDir; import org.junit.jupiter.api.Test; @@ -13,11 +14,9 @@ import vip.mate.llm.model.ModelConfigEntity; import vip.mate.llm.model.ModelProviderEntity; import vip.mate.llm.service.ModelConfigService; import vip.mate.llm.service.ModelProviderService; - import java.nio.file.Files; import java.nio.file.Path; import java.time.Duration; - import static org.junit.jupiter.api.Assertions.*; import static org.mockito.Mockito.*; @@ -47,15 +46,21 @@ class DshRuntimeModelLimitsTest { Files.writeString(script, """ #!/bin/sh IFS= read -r initialize - printf '%s\\n' "$initialize" > "$1" - printf '%s\\n' '{"jsonrpc":"2.0","id":"init-limit-test","result":{}}' + printf '%s\\n' "$initialize" > initialize.json + id=$(printf '%s' "$initialize" | sed -n 's/.*"id":"\\([^"]*\\)".*/\\1/p') + printf '{"jsonrpc":"2.0","id":"%s","result":{"serverInfo":{"name":"deepseek-harness-sdk-runtime"}}}\\n' "$id" IFS= read -r prompt - printf '%s\\n' '{"jsonrpc":"2.0","id":"prompt-limit-test","result":{}}' - printf '%s\\n' '{"jsonrpc":"2.0","method":"session.status","params":{"status":"idle"}}' + session=$(printf '%s' "$prompt" | sed -n 's/.*"sessionId":"\\([^"]*\\)".*/\\1/p') + printf '%s\\n' '{"jsonrpc":"2.0","id":"prompt-limit-test","result":{"messageId":"m1"}}' + printf '{"jsonrpc":"2.0","method":"session.event","params":{"sessionId":"%s","event":{"seq":1,"type":"agent/inbox/spliced","data":{"inserted":[{"id":"m1"}]}}}}\\n' "$session" + printf '{"jsonrpc":"2.0","method":"session.event","params":{"sessionId":"%s","event":{"seq":2,"type":"turn/end","data":{"reason":{"kind":"completed"}}}}}\\n' "$session" + printf '{"jsonrpc":"2.0","method":"session.status","params":{"sessionId":"%s","status":"idle"}}\\n' "$session" + IFS= read -r shutdown """); + assertTrue(script.toFile().setExecutable(true)); var config = mock(DshRuntimeConfigService.class); when(config.resolve()).thenReturn(new DshRuntimeConfiguration( - "/bin/sh \"" + script + "\" \"" + capture + "\"", "", temp.toString(), "", "", "")); + script.toString(), "", temp.toString(), "", "", "", "sdk", List.of(), temp.resolve("homes").toString())); var models = mock(ModelConfigService.class); var model = new ModelConfigEntity(); model.setModelName("custom-model"); diff --git a/mateclaw-server/src/test/java/vip/mate/agent/runtime/dsh/DshRuntimeServiceTest.java b/mateclaw-server/src/test/java/vip/mate/agent/runtime/dsh/DshRuntimeServiceTest.java index dd8f06ca..d67f4cec 100644 --- a/mateclaw-server/src/test/java/vip/mate/agent/runtime/dsh/DshRuntimeServiceTest.java +++ b/mateclaw-server/src/test/java/vip/mate/agent/runtime/dsh/DshRuntimeServiceTest.java @@ -1,5 +1,9 @@ package vip.mate.agent.runtime.dsh; +import java.nio.file.Files; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.io.TempDir; +import vip.mate.config.ConversationWindowProperties; import com.fasterxml.jackson.databind.ObjectMapper; import org.junit.jupiter.api.Test; import org.mockito.Mockito; @@ -13,14 +17,12 @@ import vip.mate.agent.runtime.dsh.management.DshRuntimeConfiguration; import vip.mate.llm.model.ModelProviderEntity; import vip.mate.llm.service.ModelConfigService; import vip.mate.llm.service.ModelProviderService; - import java.nio.file.Path; import java.util.HashMap; import java.util.Map; import java.util.List; import java.util.concurrent.TimeUnit; import java.time.Duration; - import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; import static org.junit.jupiter.api.Assertions.assertFalse; @@ -82,23 +84,25 @@ class DshRuntimeServiceTest { } @Test - void streamSubscriptionReturnsBeforeSynchronousDshReadLoopFinishes() { - DshRuntimeService service = service("/bin/sh -c \"sleep 5\""); + void streamSubscriptionReturnsBeforeSynchronousDshReadLoopFinishes(@TempDir Path temp) throws Exception { + Path script = Files.writeString(temp.resolve("synthetic-sdk"), "#!/bin/sh\nsleep 5\n"); + assertTrue(script.toFile().setExecutable(true)); + DshRuntimeService service = service(script.toString()); AgentEntity agent = new AgentEntity(); agent.setId(1L); agent.setWorkspaceId(2L); agent.setModelName("model"); Disposable subscription = assertTimeout(Duration.ofSeconds(2), () -> - service.stream(agent, "hello", "conversation", "model").subscribe()); + service.stream(agent, "hello", "conversation", "model").subscribe(delta -> {}, error -> {})); assertFalse(subscription.isDisposed()); subscription.dispose(); } @Test - void commandLineKeepsQuotedExecutablePathTogether() { - assertEquals(List.of("/opt/Deep Seek/dsh-jsonrpc-agent", "--stdio"), - DshRuntimeService.commandLine("\"/opt/Deep Seek/dsh-jsonrpc-agent\" --stdio")); + void oldCommandStringRequiresMigration() { + DshRuntimeConfiguration configuration = new DshRuntimeConfiguration("/bin/sh --stdio", "", "/tmp", "", "", ""); + assertTrue(configuration.migrationRequired()); } @Test @@ -123,7 +127,8 @@ class DshRuntimeServiceTest { assertEquals("/usr/bin", environment.get("PATH")); assertEquals("/Users/tester", environment.get("HOME")); assertEquals("/workspace/project", environment.get("DSH_CWD")); - assertEquals("/opt/dsh/cordis.yml", environment.get("DSH_CORDIS_CONFIG")); + assertFalse(environment.containsKey("DSH_CORDIS_CONFIG")); + assertTrue(environment.containsKey("DSH_HOME")); assertEquals("configured-key", environment.get("DEEPSEEK_API_KEY")); assertEquals("https://configured.example/v1", environment.get("DEEPSEEK_BASE_URL")); assertFalse(environment.containsKey("AWS_SECRET_ACCESS_KEY")); @@ -131,6 +136,42 @@ class DshRuntimeServiceTest { assertFalse(environment.containsValue("/stale/cordis.yml")); } + @Test + void committedMessageUsesContentNotStream() throws Exception { + RuntimeEvent event = service().mapEvent("root", 1, new ObjectMapper().readTree(""" + {"type":"assistant/message","data":{"message":{"content":[{"type":"text","text":"answer"}]}, + "stream":[{"type":"text-delta","text":"duplicate"}]}} + """)); + Assertions.assertNotNull(event); + assertEquals("answer", event.text()); + } + + @Test + void incompleteTurnIsFailure() throws Exception { + RuntimeEvent event = service().mapEvent("root", 1, new ObjectMapper().readTree(""" + {"type":"turn/end","data":{"reason":{"kind":"max-tokens"}}} + """)); + Assertions.assertNotNull(event); + assertEquals(RuntimeEventType.FAILED, event.type()); + } + + @Test + void toolUsesSdkNameAndCallId() throws Exception { + RuntimeEvent event = service().mapEvent("root", 1, new ObjectMapper().readTree(""" + {"type":"tool/start","data":{"name":"read_file","callId":"call-1"}} + """)); + assertEquals("read_file", event.data().get("toolName")); + assertEquals("call-1", event.data().get("callId")); + } + + @Test + void toolResultPairsWithNestedMessageCallId() throws Exception { + RuntimeEvent event = service().mapEvent("root", 1, new ObjectMapper().readTree(""" + {"type":"tool/result","data":{"message":{"role":"tool","toolCallId":"call-1","content":[]}}} + """)); + assertEquals("call-1", event.data().get("callId")); + } + private static DshRuntimeService service() { return service("/bin/dsh"); } @@ -138,10 +179,10 @@ class DshRuntimeServiceTest { private static DshRuntimeService service(String executable) { DshRuntimeConfigService config = Mockito.mock(DshRuntimeConfigService.class); Mockito.when(config.resolve()).thenReturn(new DshRuntimeConfiguration( - executable, "", "/tmp", "", "model", "")); + executable, "", "/tmp", "", "model", "", "sdk", List.of(), Path.of(executable).getParent().resolve("homes").toString())); return new DshRuntimeService(new ObjectMapper(), Mockito.mock(ModelConfigService.class), - Mockito.mock(ModelProviderService.class), config, new vip.mate.config.ConversationWindowProperties()); + Mockito.mock(ModelProviderService.class), config, new ConversationWindowProperties()); } private static RuntimeSession session(Path workingDirectory) { diff --git a/mateclaw-server/src/test/java/vip/mate/agent/runtime/dsh/DshSdkProtocolTest.java b/mateclaw-server/src/test/java/vip/mate/agent/runtime/dsh/DshSdkProtocolTest.java new file mode 100644 index 00000000..b1eee413 --- /dev/null +++ b/mateclaw-server/src/test/java/vip/mate/agent/runtime/dsh/DshSdkProtocolTest.java @@ -0,0 +1,63 @@ +package vip.mate.agent.runtime.dsh; + +import org.springframework.test.util.ReflectionTestUtils; +import vip.mate.config.ConversationWindowProperties; +import vip.mate.llm.service.ModelConfigService; +import vip.mate.llm.service.ModelProviderService; +import vip.mate.workspace.core.service.MemberFileIsolation; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; +import vip.mate.agent.runtime.dsh.management.*; +import vip.mate.system.service.SystemSettingService; +import java.nio.file.*; +import java.util.*; +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.Mockito.*; + +/** Synthetic subprocess fixtures exercise host failure handling, not real DSH compatibility. */ +class DshSdkProtocolTest { + @TempDir Path directory; + + @Test void sleepingProcessIsNotSuccessfulHandshake() throws Exception { + Path executable = script("sleep 10"); + var configuration = new DshRuntimeConfiguration(executable.toString(), "", directory.toString(), "", "model", "", + "sdk", List.of(), directory.resolve("homes").toString()); + DshRuntimeService service = runtime(configuration); + ReflectionTestUtils.setField(service, "initializeTimeoutMs", 100L); + assertEquals(false, service.testConnection(configuration).get("success")); + } + + @Test void legacyCordisIsMigrationRequiredEvenWhenFilesExist() throws Exception { + Path executable = script("exit 0"); + Path cordis = Files.writeString(directory.resolve("cordis.yml"), "{}"); + var config = mock(DshRuntimeConfigService.class); + when(config.resolve()).thenReturn(new DshRuntimeConfiguration(executable.toString(), cordis.toString(), directory.toString(), "", "model", "")); + var service = new DshManagementService(config, mock(DshArtifactInstaller.class), mock(SystemSettingService.class)); + assertEquals("MIGRATION_REQUIRED", service.status().get("state")); + } + + @Test void healthCheckRejectsMemberIsolationBeforeSpawn() throws Exception { + Path marker = directory.resolve("started"); + Path executable = script("touch '" + marker + "'"); + var configuration = new DshRuntimeConfiguration(executable.toString(), "", directory.toString(), "", "model", ""); + try { + MemberFileIsolation.configure(origin -> origin); + assertEquals(false, runtime(configuration).testTask(configuration).get("success")); + assertFalse(Files.exists(marker)); + } finally { MemberFileIsolation.configure(null); } + } + + private DshRuntimeService runtime(DshRuntimeConfiguration configuration) { + var config = mock(DshRuntimeConfigService.class); + when(config.resolve()).thenReturn(configuration); + return new DshRuntimeService(new ObjectMapper(), mock(ModelConfigService.class), + mock(ModelProviderService.class), config, new ConversationWindowProperties()); + } + + private Path script(String body) throws Exception { + Path file = Files.writeString(directory.resolve("synthetic dsh"), "#!/bin/sh\n" + body + "\n"); + file.toFile().setExecutable(true); + return file; + } +} diff --git a/mateclaw-server/src/test/java/vip/mate/agent/runtime/dsh/DshSdkTransportTest.java b/mateclaw-server/src/test/java/vip/mate/agent/runtime/dsh/DshSdkTransportTest.java new file mode 100644 index 00000000..b05f3656 --- /dev/null +++ b/mateclaw-server/src/test/java/vip/mate/agent/runtime/dsh/DshSdkTransportTest.java @@ -0,0 +1,75 @@ +package vip.mate.agent.runtime.dsh; + +import java.util.concurrent.TimeUnit; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; +import java.nio.file.*; +import java.time.Duration; +import java.util.Map; +import static org.junit.jupiter.api.Assertions.*; + +/** Synthetic executables test deterministic protocol failure paths, not release support. */ +class DshSdkTransportTest { + @TempDir Path directory; + @Test void rejectsWebBannerWithoutLeakingToken() throws Exception { + Process process = process("echo 'dsh web: http://localhost/?token=secret123'; sleep 30"); + try (var sdk = new DshSdkProcess(process, new ObjectMapper(), "secret123")) { + Exception error = assertThrows(Exception.class, () -> sdk.initialize(Map.of(), Duration.ofSeconds(3))); + assertTrue(error.getMessage().contains("WRONG_ENTRYPOINT"), error.getMessage()); + assertFalse(error.getMessage().contains("secret123")); + } + assertFalse(process.isAlive()); + } + @Test void timesOutAndReapsSilentProcess() throws Exception { + Process process = process("sleep 30"); + try (var sdk = new DshSdkProcess(process, new ObjectMapper(), "")) { + Exception error = assertThrows(Exception.class, () -> sdk.initialize(Map.of(), Duration.ofMillis(100))); + assertEquals("DSH_TIMEOUT", error.getMessage()); + } + assertTrue(process.waitFor(2, TimeUnit.SECONDS)); + } + @Test void rejectsWrongResponseId() throws Exception { + Process process = process("read request; echo '{\"jsonrpc\":\"2.0\",\"id\":\"wrong\",\"result\":{}}'"); + try (var sdk = new DshSdkProcess(process, new ObjectMapper(), "")) { + Exception error = assertThrows(Exception.class, () -> sdk.initialize(Map.of(), Duration.ofSeconds(1))); + assertEquals("DSH_HANDSHAKE_ID_MISMATCH", error.getMessage()); + } + } + @Test void acceptsOnlySdkIdentityAndShutsDown() throws Exception { + Process process = process(""" + read request + id=$(printf '%s' "$request" | sed -n 's/.*"id":"\\([^"]*\\)".*/\\1/p') + printf '{"jsonrpc":"2.0","id":"%s","result":{"serverInfo":{"name":"deepseek-harness-sdk-runtime","version":"0.0.1"}}}\\n' "$id" + read shutdown + """); + try (var sdk = new DshSdkProcess(process, new ObjectMapper(), "")) { + assertEquals("0.0.1", sdk.initialize(Map.of(), Duration.ofSeconds(2)).path("serverInfo").path("version").asText()); + } + assertTrue(process.waitFor(2, TimeUnit.SECONDS)); + } + @Test void redactsCredentialsAndUrlTokens() { + String diagnostic = DshSdkProcess.redact("api_key=abc https://host/?token=xyz bearer-secret", "bearer-secret"); + assertFalse(diagnostic.contains("abc")); assertFalse(diagnostic.contains("xyz")); assertFalse(diagnostic.contains("bearer-secret")); + } + @Test void rejectsOversizedFrameBeforeParsingIt() throws Exception { + Process process = process("dd if=/dev/zero bs=1048576 count=17 2>/dev/null; sleep 30"); + try (var sdk = new DshSdkProcess(process, new ObjectMapper(), "")) { + Exception error = assertThrows(Exception.class, () -> sdk.next(Duration.ofSeconds(5))); + assertEquals("DSH_FRAME_TOO_LARGE", error.getMessage()); + } + assertFalse(process.isAlive()); + } + @Test void stderrIsBoundedAndDoesNotBlockHandshakeTimeout() throws Exception { + Process process = process("dd if=/dev/zero bs=1024 count=128 1>&2 2>/dev/null; sleep 30"); + try (var sdk = new DshSdkProcess(process, new ObjectMapper(), "")) { + assertThrows(Exception.class, () -> sdk.initialize(Map.of(), Duration.ofMillis(300))); + assertTrue(sdk.diagnostics().length() <= 65536); + } + } + private Process process(String body) throws Exception { + Path script = Files.writeString(directory.resolve("synthetic-runtime"), "#!/bin/sh\n" + body + "\n"); + script.toFile().setExecutable(true); + return new ProcessBuilder(script.toString()).start(); + } +} diff --git a/mateclaw-server/src/test/java/vip/mate/agent/runtime/dsh/DshSdkTurnTest.java b/mateclaw-server/src/test/java/vip/mate/agent/runtime/dsh/DshSdkTurnTest.java new file mode 100644 index 00000000..fe95009b --- /dev/null +++ b/mateclaw-server/src/test/java/vip/mate/agent/runtime/dsh/DshSdkTurnTest.java @@ -0,0 +1,61 @@ +package vip.mate.agent.runtime.dsh; + +import com.fasterxml.jackson.databind.*; +import org.junit.jupiter.api.Test; +import vip.mate.agent.runtime.contract.RuntimeEventType; +import static org.junit.jupiter.api.Assertions.*; +/** Synthetic envelopes matching pinned 0.2.0-rc.1 SDK shapes; no model compatibility claim. */ +class DshSdkTurnTest { + private final ObjectMapper json = new ObjectMapper(); + private JsonNode frame(String body) throws Exception { return json.readTree(body); } + @Test void buffersBeforePromptResponseAndRequiresRootReceiptThenTerminalThenIdle() throws Exception { + var turn = new DshSdkTurn("root", "prompt"); + turn.accept(frame(""" +{"method":"session.event","params":{"sessionId":"root","event":{"seq":1,"type":"agent/inbox/spliced","data":{"inserted":[{"id":"m1"}]}}}}""")); + turn.accept(frame(""" +{"method":"session.status","params":{"sessionId":"child","status":"idle"}}""")); + turn.accept(frame(""" +{"id":"prompt","result":{"messageId":"m1"}}""")); + assertFalse(turn.complete()); + turn.accept(frame(""" +{"method":"session.event","params":{"sessionId":"root","event":{"seq":2,"type":"turn/end","data":{"reason":{"kind":"completed"}}}}}""")); + assertFalse(turn.complete()); + turn.accept(frame(""" +{"method":"session.status","params":{"sessionId":"root","status":"idle"}}""")); + assertTrue(turn.complete()); + assertEquals(RuntimeEventType.COMPLETED, turn.terminalType()); + } + @Test void idleWithoutTerminalEvidenceFails() throws Exception { + var turn = new DshSdkTurn("root", "prompt"); + turn.accept(frame(""" +{"id":"prompt","result":{"messageId":"m1"}}""")); + turn.accept(frame(""" +{"method":"session.event","params":{"sessionId":"root","event":{"seq":1,"type":"agent/inbox/spliced","data":{"inserted":[{"id":"m1"}]}}}}""")); + turn.accept(frame(""" +{"method":"session.status","params":{"sessionId":"root","status":"idle"}}""")); + assertEquals(RuntimeEventType.FAILED, turn.terminalType()); + } + @Test void deduplicatesCommittedUsageAndKeepsLastRootAnswer() throws Exception { + var turn = new DshSdkTurn("root", "prompt"); + turn.accept(frame(""" +{"id":"prompt","result":{"messageId":"m1"}}""")); + turn.accept(frame(""" +{"method":"session.event","params":{"sessionId":"root","event":{"seq":1,"type":"agent/inbox/spliced","data":{"inserted":[{"id":"m1"}]}}}}""")); + var answer = frame(""" +{"method":"session.event","params":{"sessionId":"root","event":{"seq":2,"type":"assistant/message","data":{"message":{"content":[{"type":"text","text":"answer"}]},"usage":{"inputTokens":3,"outputTokens":4}}}}}"""); + turn.accept(answer); turn.accept(answer); + assertEquals(3, turn.inputTokens()); + assertEquals(4, turn.outputTokens()); + assertEquals("answer", turn.answer()); + } + @Test void unknownRootEventCannotSilentlyChangeConversationMeaning() throws Exception { + var turn = new DshSdkTurn("root", "prompt"); + turn.accept(frame(""" + {"id":"prompt","result":{"messageId":"m1"}}""")); + turn.accept(frame(""" + {"method":"session.event","params":{"sessionId":"root","event":{"seq":1,"type":"agent/inbox/spliced","data":{"inserted":[{"id":"m1"}]}}}}""")); + assertThrows(IllegalStateException.class, () -> turn.accept(frame(""" + {"method":"session.event","params":{"sessionId":"root","event":{"seq":2,"type":"unknown/required","data":{}}}}"""))); + } + +} diff --git a/mateclaw-server/src/test/java/vip/mate/agent/runtime/dsh/management/DshGenerationStoreTest.java b/mateclaw-server/src/test/java/vip/mate/agent/runtime/dsh/management/DshGenerationStoreTest.java new file mode 100644 index 00000000..12669875 --- /dev/null +++ b/mateclaw-server/src/test/java/vip/mate/agent/runtime/dsh/management/DshGenerationStoreTest.java @@ -0,0 +1,98 @@ +package vip.mate.agent.runtime.dsh.management; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; +import vip.mate.system.service.SettingCrypto; + +import java.nio.file.Files; +import java.nio.file.Path; +import java.time.Duration; +import java.util.Map; + +import static org.junit.jupiter.api.Assertions.*; + +class DshGenerationStoreTest { + @TempDir Path root; + + private DshGenerationStore store() { + return new DshGenerationStore(root.toString(), new ObjectMapper(), new SettingCrypto("test-encryption-key")); + } + + @Test + void activationAndRollbackKeepVersionDataPairsAndEncryptCredentials() throws Exception { + DshGenerationStore store = store(); + store.beginUpgrade("op1", store.revision()); + store.activate("op1", "g1", Map.of("dsh.runtime_version", "0.1.7-rc.2", "dsh.home_root", root.resolve("g1/home").toString(), "dsh.api_key", "secret-value")); + store.finishUpgrade("op1"); + String oldRevision = store.revision(); + store.beginUpgrade("op2", oldRevision); + store.activate("op2", "g2", Map.of("dsh.runtime_version", "0.2.0-rc.1", "dsh.home_root", root.resolve("g2/home").toString(), "dsh.api_key", "new-secret")); + store.finishUpgrade("op2"); + assertEquals("new-secret", store.activeValues().get("dsh.api_key")); + assertFalse(Files.readString(root.resolve("generations/g2.json")).contains("new-secret")); + store.beginUpgrade("rollback", store.revision()); + store.restore("rollback", "g1"); + store.finishUpgrade("rollback"); + assertEquals("secret-value", store().activeValues().get("dsh.api_key")); + assertEquals("0.1.7-rc.2", store().activeValues().get("dsh.runtime_version")); + assertTrue(Files.exists(root.resolve("generations/g2.json"))); + } + + @Test + void drainDoesNotKillActiveWorkAndAdmissionResumesAfterAbort() throws Exception { + DshGenerationStore store = store(); + try (var lease = store.acquireLease("1", "2")) { + assertThrows(IllegalStateException.class, () -> store.acquireLease("1", "2")); + store.beginUpgrade("upgrade", store.revision()); + assertThrows(IllegalStateException.class, () -> store.acquireLease("3", "4")); + assertFalse(store.awaitDrained(Duration.ofMillis(10))); + store.finishUpgrade("upgrade"); + try (var second = store.acquireLease("3", "4")) { assertNotNull(second); } + } + assertTrue(store.awaitDrained(Duration.ofMillis(10))); + } + + @Test + void staleRevisionAndUnsafeGenerationCannotActivate() throws Exception { + DshGenerationStore store = store(); + assertThrows(IllegalStateException.class, () -> store.beginUpgrade("op", "outdated")); + store.beginUpgrade("op", store.revision()); + assertThrows(IllegalArgumentException.class, () -> store.activate("op", "../escape", Map.of())); + assertTrue(store.activeValues().isEmpty()); + store.finishUpgrade("op"); + } + + @Test + void activationCannotBypassDrainOrMutateDuringUpgrade() throws Exception { + DshGenerationStore store = store(); + try (var lease = store.acquireLease("1", "2")) { + store.beginUpgrade("op", store.revision()); + assertThrows(IllegalStateException.class, () -> store.activate("op", "g", Map.of())); + assertThrows(IllegalStateException.class, () -> store.updateActiveValues(Map.of("dsh.model_name", "changed"))); + store.finishUpgrade("op"); + } + } + @Test + void deadJvmLeaseDoesNotAdmitPotentialOrphanWriters() throws Exception { + DshGenerationStore store = store(); + store.revision(); + Path leases = Files.createDirectories(root.resolve("leases")); + new ObjectMapper().writeValue(leases.resolve("orphan.json").toFile(), Map.of("pid", "0", "started", "", "home", "1:2")); + assertThrows(IllegalStateException.class, () -> store.acquireLease("1", "2")); + assertTrue(Files.exists(leases.resolve("orphan.json"))); + } + + @Test + void committedCrashIsReconciledBeforeSubsequentConfigWrite() throws Exception { + DshGenerationStore store = store(); + store.beginUpgrade("op", store.revision()); + store.saveOperation("op", Map.of("pid", "0", "started", "", "state", "ACTIVATING", "candidateGeneration", "g")); + store.activate("op", "g", Map.of("dsh.model_name", "old")); + new ObjectMapper().writeValue(root.resolve("gate.json").toFile(), Map.of("pid", "0", "started", "", "operation", "op")); + store.updateActiveValues(Map.of("dsh.model_name", "new")); + assertEquals("COMPLETED", store.operation("op").get("state")); + assertEquals("new", store.activeValues().get("dsh.model_name")); + } + +} diff --git a/mateclaw-server/src/test/java/vip/mate/agent/runtime/dsh/management/DshPinnedInstallerTest.java b/mateclaw-server/src/test/java/vip/mate/agent/runtime/dsh/management/DshPinnedInstallerTest.java new file mode 100644 index 00000000..c040ef30 --- /dev/null +++ b/mateclaw-server/src/test/java/vip/mate/agent/runtime/dsh/management/DshPinnedInstallerTest.java @@ -0,0 +1,37 @@ +package vip.mate.agent.runtime.dsh.management; + +import org.junit.jupiter.api.Test; +import com.fasterxml.jackson.databind.ObjectMapper; +import static org.junit.jupiter.api.Assertions.*; + +class DshPinnedInstallerTest { + @Test + void catalogRequiresExactKnownVersionAndCorrectHostPlatform() { + assertEquals("0.2.0-rc.1", DshPinnedInstaller.release("0.2.0-rc.1").version()); + assertTrue(DshPinnedInstaller.release("0.1.7-rc.2").integrity().startsWith("sha512-")); + assertThrows(IllegalArgumentException.class, () -> DshPinnedInstaller.release("latest")); + assertThrows(IllegalArgumentException.class, () -> DshPinnedInstaller.release("1.0.0")); + assertEquals("linux-x64", DshPinnedInstaller.platform("Linux", "amd64")); + assertEquals("darwin-arm64", DshPinnedInstaller.platform("Mac OS X", "aarch64")); + assertThrows(IllegalArgumentException.class, () -> DshPinnedInstaller.platform("Windows", "amd64")); + } + @Test + void trustedLocksPinAllRegistryPackagesBeforeInstallScripts() throws Exception { + var mapper = new ObjectMapper(); + for (var release : DshPinnedInstaller.catalog()) { + try (var input = getClass().getResourceAsStream("/dsh/locks/" + release.version() + ".json")) { + assertNotNull(input); + var packages = mapper.readTree(input).path("packages"); + assertEquals(release.integrity(), packages.path("node_modules/@deepseek-ai/dsh").path("integrity").asText()); + assertTrue(packages.size() > 100); + for (var entry : packages) { + if (entry.has("resolved")) { + assertTrue(entry.path("resolved").asText().startsWith("https://registry.npmjs.org/")); + assertTrue(entry.path("integrity").asText().startsWith("sha512-")); + } + } + } + } + } + +} diff --git a/mateclaw-server/src/test/java/vip/mate/agent/runtime/dsh/management/DshRuntimeConfigSaveTest.java b/mateclaw-server/src/test/java/vip/mate/agent/runtime/dsh/management/DshRuntimeConfigSaveTest.java new file mode 100644 index 00000000..44aacaa6 --- /dev/null +++ b/mateclaw-server/src/test/java/vip/mate/agent/runtime/dsh/management/DshRuntimeConfigSaveTest.java @@ -0,0 +1,81 @@ +package vip.mate.agent.runtime.dsh.management; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ValueSource; +import org.springframework.test.util.ReflectionTestUtils; +import vip.mate.system.service.SettingCrypto; +import vip.mate.agent.runtime.dsh.DshRuntimeService; +import vip.mate.config.ConversationWindowProperties; +import vip.mate.llm.service.ModelConfigService; +import vip.mate.llm.service.ModelProviderService; +import vip.mate.system.service.SystemSettingService; +import java.nio.file.Path; +import java.util.Map; +import java.util.concurrent.atomic.AtomicBoolean; +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.Mockito.*; + +class DshRuntimeConfigSaveTest { + @TempDir Path root; + + @ParameterizedTest @ValueSource(booleans = {false, true}) + void upgradeDuringConfigResolutionCannotRestoreStalePaths(boolean upgradeBeforeRead) { + AtomicBoolean interleave = new AtomicBoolean(); + DshGenerationStore store = new DshGenerationStore(root.toString(), new ObjectMapper(), new SettingCrypto("test-key")) { + @Override public Map activeValues() { + if (!interleave.compareAndSet(true, false)) return super.activeValues(); + Map before = super.activeValues(); + beginUpgrade("upgrade", revision()); + activate("upgrade", "new", Map.of("dsh.executable_path", "/new/dsh", "dsh.home_root", root.resolve("new").toString(), "dsh.runtime_version", "0.2.0-rc.1")); + finishUpgrade("upgrade"); + return upgradeBeforeRead ? super.activeValues() : before; + } + }; + store.updateActiveValues(Map.of("dsh.executable_path", "/old/dsh", "dsh.home_root", root.resolve("old").toString(), "dsh.runtime_version", "0.1.7-rc.2")); + DshRuntimeConfigService config = config(store); + interleave.set(true); + IllegalStateException error = assertThrows(IllegalStateException.class, () -> config.save(Map.of("dsh.model_name", "edited"))); + assertEquals("dsh.stale_configuration", error.getMessage()); + assertEquals("/new/dsh", store.activeValues().get("dsh.executable_path")); + assertEquals(root.resolve("new").toString(), store.activeValues().get("dsh.home_root")); + assertEquals("0.2.0-rc.1", store.activeValues().get("dsh.runtime_version")); + assertFalse(store.activeValues().containsKey("dsh.model_name")); + } + + @Test void malformedPatchJsonNeverBecomesActive() { + DshGenerationStore store = store(); + store.updateActiveValues(Map.of("dsh.patch_paths", "[]")); + String revision = store.revision(); + assertThrows(IllegalArgumentException.class, () -> config(store).save(Map.of("dsh.patch_paths", "["))); + assertEquals(revision, store.revision()); + assertEquals("[]", store.activeValues().get("dsh.patch_paths")); + } + + @Test void validSubmissionCanRepairAlreadyInvalidStoredPatchJson() { + DshGenerationStore store = store(); + store.updateActiveValues(Map.of("dsh.patch_paths", "[")); + DshRuntimeConfigService config = config(store); + config.save(Map.of("dsh.patch_paths", "[]")); + assertTrue(config.resolve().patchPaths().isEmpty()); + assertEquals("[]", store.activeValues().get("dsh.patch_paths")); + } + + @Test void corruptRuntimeSettingsDoNotPreventAdminServiceStartup() { + DshGenerationStore store = store(); + store.updateActiveValues(Map.of("dsh.patch_paths", "[")); + assertDoesNotThrow(() -> new DshRuntimeService(new ObjectMapper(), mock(ModelConfigService.class), + mock(ModelProviderService.class), config(store), new ConversationWindowProperties())); + } + + private DshGenerationStore store() { + return new DshGenerationStore(root.toString(), new ObjectMapper(), new SettingCrypto("test-key")); + } + private DshRuntimeConfigService config(DshGenerationStore store) { + DshRuntimeConfigService service = new DshRuntimeConfigService(mock(SystemSettingService.class), "", "", root.toString(), "", "", ""); + ReflectionTestUtils.setField(service, "generations", store); + return service; + } +} diff --git a/mateclaw-server/src/test/java/vip/mate/agent/runtime/dsh/management/DshUpgradeServiceTest.java b/mateclaw-server/src/test/java/vip/mate/agent/runtime/dsh/management/DshUpgradeServiceTest.java new file mode 100644 index 00000000..e49ddef6 --- /dev/null +++ b/mateclaw-server/src/test/java/vip/mate/agent/runtime/dsh/management/DshUpgradeServiceTest.java @@ -0,0 +1,108 @@ +package vip.mate.agent.runtime.dsh.management; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; +import vip.mate.agent.runtime.dsh.DshRuntimeService; +import vip.mate.system.service.SettingCrypto; + +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Map; +import java.util.List; + +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.Mockito.*; + +class DshUpgradeServiceTest { + @TempDir Path root; + + @Test + void failedCandidateRetainsActiveGenerationAndOriginalHome() throws Exception { + ObjectMapper mapper = new ObjectMapper(); + DshGenerationStore store = new DshGenerationStore(root.toString(), mapper, new SettingCrypto("test")); + Path home = Files.createDirectories(root.resolve("old-home")); + Files.writeString(home.resolve("user-state"), "preserve"); + store.updateActiveValues(Map.of("dsh.home_root", home.toString(), "dsh.runtime_version", "0.1.7-rc.2")); + String previous = store.activeGeneration(); + DshRuntimeConfigService config = mock(DshRuntimeConfigService.class); + when(config.resolve()).thenReturn(new DshRuntimeConfiguration("/bin/dsh", "", root.toString(), "", "model", "")); + DshRuntimeService runtime = mock(DshRuntimeService.class); + DshPinnedInstaller installer = mock(DshPinnedInstaller.class); + when(installer.install(eq("0.2.0-rc.1"), any())).thenThrow(new IllegalStateException("failure")); + DshUpgradeService service = new DshUpgradeService(store, config, runtime, installer, mapper, Runnable::run); + Map op = service.upgrade("0.2.0-rc.1", store.revision(), "request-1"); + assertEquals("FAILED", service.operation(op.get("id")).get("state")); + assertEquals(previous, store.activeGeneration()); + assertEquals("preserve", Files.readString(home.resolve("user-state"))); + try (var lease = store.acquireLease("w", "a")) { assertNotNull(lease); } + service.upgrade("0.2.0-rc.1", op.get("expectedRevision"), "request-1"); + verify(installer, times(1)).install(eq("0.2.0-rc.1"), any()); + } + + @Test + void firstUpgradeFailedHealthDoesNotCreateAnActivePointer() throws Exception { + ObjectMapper mapper = new ObjectMapper(); + DshGenerationStore store = new DshGenerationStore(root.toString(), mapper, new SettingCrypto("test")); + Path home = Files.createDirectories(root.resolve("legacy-home")); + Files.writeString(home.resolve("history"), "preserve"); + DshRuntimeConfigService config = mock(DshRuntimeConfigService.class); + when(config.resolve()).thenReturn(new DshRuntimeConfiguration("/bin/dsh", "", root.toString(), "", "model", "", "sdk", List.of(), home.toString())); + DshRuntimeService runtime = mock(DshRuntimeService.class); + when(runtime.testConnectionAtHome(any(), any())).thenReturn(Map.of("success", false)); + DshPinnedInstaller installer = mock(DshPinnedInstaller.class); + when(installer.install(eq("0.2.0-rc.1"), any())).thenReturn(new DshPinnedInstaller.Installation("0.2.0-rc.1", "darwin-arm64", "/bin/dsh", "hash")); + DshUpgradeService service = new DshUpgradeService(store, config, runtime, installer, mapper, Runnable::run); + Map op = service.upgrade("0.2.0-rc.1", "0", "first-failed"); + assertEquals("FAILED", op.get("state")); + assertEquals("", store.activeGeneration()); + assertEquals("0", store.revision()); + assertEquals("preserve", Files.readString(home.resolve("history"))); + try (var lease = store.acquireLease("w", "a")) { assertNotNull(lease); } + } + + @Test + void snapshotRejectsSymlinksWithoutFollowingOutsideRoot() throws Exception { + Path source = Files.createDirectories(root.resolve("source")); + Path outside = Files.writeString(root.resolve("private"), "private-content"); + Files.createSymbolicLink(source.resolve("link"), outside); + assertThrows(Exception.class, () -> DshUpgradeService.copyHome(source, root.resolve("candidate"))); + assertEquals("private-content", Files.readString(outside)); + } + @Test + void candidateChecksEveryCopiedProfileBeforeActivation() throws Exception { + ObjectMapper mapper = new ObjectMapper(); + DshGenerationStore store = new DshGenerationStore(root.toString(), mapper, new SettingCrypto("test")); + Path home = Files.createDirectories(root.resolve("old-home")); + Files.createDirectories(home.resolve("w/a/profiles")); + Files.createDirectories(home.resolve("w/b/profiles")); + Files.writeString(home.resolve("w/a/state"), "original"); + store.updateActiveValues(Map.of("dsh.home_root", home.toString(), "dsh.runtime_version", "0.1.7-rc.2")); + String previous = store.activeGeneration(); + DshRuntimeConfigService config = mock(DshRuntimeConfigService.class); + when(config.resolve()).thenReturn(new DshRuntimeConfiguration("/bin/dsh", "", root.toString(), "", "model", "")); + DshRuntimeService runtime = mock(DshRuntimeService.class); + when(runtime.testConnectionAtHome(any(), any())).thenReturn(Map.of("success", true)); + when(runtime.testTaskAtHome(any(), any())).thenAnswer(invocation -> { + Files.writeString(((Path) invocation.getArgument(1)).resolve("probe"), "candidate"); + return Map.of("success", true); + }); + DshPinnedInstaller installer = mock(DshPinnedInstaller.class); + when(installer.install(eq("0.2.0-rc.1"), any())).thenReturn(new DshPinnedInstaller.Installation("0.2.0-rc.1", "darwin-arm64", "/bin/dsh", "hash")); + DshUpgradeService service = new DshUpgradeService(store, config, runtime, installer, mapper, Runnable::run); + Map op = service.upgrade("0.2.0-rc.1", store.revision(), "request-2"); + assertEquals("COMPLETED", op.get("state")); + assertEquals("2", op.get("homesChecked")); + assertEquals("PASSED", op.get("taskStatus")); + assertNotEquals(previous, store.activeGeneration()); + assertFalse(Files.exists(home.resolve("w/a/probe"))); + verify(runtime, times(2)).testTaskAtHome(any(), any()); + String rollbackRevision = store.revision(); + Map rollback = service.rollback(op.get("id"), rollbackRevision, "rollback-1"); + assertEquals(rollback.get("id"), service.rollback(op.get("id"), rollbackRevision, "rollback-1").get("id")); + assertEquals("COMPLETED", rollback.get("state")); + assertEquals("0.1.7-rc.2", store.activeValues().get("dsh.runtime_version")); + assertEquals("original", Files.readString(home.resolve("w/a/state"))); + } + +} diff --git a/mateclaw-server/src/test/resources/dsh/0.1.7-rc.2-sdk.jsonl b/mateclaw-server/src/test/resources/dsh/0.1.7-rc.2-sdk.jsonl new file mode 100644 index 00000000..e0dbcd1c --- /dev/null +++ b/mateclaw-server/src/test/resources/dsh/0.1.7-rc.2-sdk.jsonl @@ -0,0 +1,10 @@ +{"jsonrpc":"2.0","id":1,"result":{"serverInfo":{"name":"deepseek-harness-sdk-runtime","version":"0.0.1"}}} +{"jsonrpc":"2.0","method":"session.event","params":{"sessionId":"sdk-probe-1790672004227","event":{"type":"agent/inbox/spliced","seq":3,"time":1790672004234,"data":{"target":"next-turn","start":0,"inserted":[{"content":[{"type":"text","text":"Reply with exactly SDK_OK. Do not use tools."}],"source":{"kind":"user"},"role":"user","id":"75a68f70-965c-4b4f-b1d6-c1191581d750"}]}}}} +{"jsonrpc":"2.0","method":"session.status","params":{"sessionId":"sdk-probe-1790672004227","status":"running"}} +{"jsonrpc":"2.0","method":"session.event","params":{"sessionId":"sdk-probe-1790672004227","event":{"type":"turn/start","seq":4,"time":1790672004235,"data":{"turn":1}}}} +{"jsonrpc":"2.0","method":"session.event","params":{"sessionId":"sdk-probe-1790672004227","event":{"type":"agent/inbox/spliced","seq":5,"time":1790672004235,"data":{"target":"next-turn","start":0,"removedCount":1,"inserted":[]}}}} +{"jsonrpc":"2.0","id":2,"result":{"messageId":"75a68f70-965c-4b4f-b1d6-c1191581d750"}} +{"jsonrpc":"2.0","method":"session.event","params":{"sessionId":"sdk-probe-1790672004227","event":{"type":"assistant/message","seq":14,"time":1790672004957,"data":{"turn":1,"step":1,"message":{"role":"assistant","content":[{"type":"reasoning","text":""},{"type":"text","text":"SDK_OK"}],"source":{"kind":"model","provider":"deepseek-official","model":"deepseek-v4-flash"},"id":"e1a0eb37-fecc-447b-97a3-1f88784a5610"},"usage":{"inputTokens":5037,"outputTokens":4,"cacheReadTokens":384,"cacheWriteTokens":0,"totalTokens":5425},"stream":[{"type":"chunk","time":1790672004539,"chunk":{"type":"block-start","index":0,"blockType":"reasoning"}},{"type":"chunk","time":1790672004937,"chunk":{"type":"block-end","index":0,"block":{"type":"reasoning","text":""}}},{"type":"chunk","time":1790672004937,"chunk":{"type":"block-start","index":1,"blockType":"text"}},{"type":"text-chunks","time0":1790672004938,"index":1,"dt":[12,0],"texts":["SD","K","_OK"]},{"type":"chunk","time":1790672004954,"chunk":{"type":"block-end","index":1,"block":{"type":"text","text":"SDK_OK"}}},{"type":"chunk","time":1790672004955,"chunk":{"type":"usage","usage":{"inputTokens":5037,"outputTokens":4,"cacheReadTokens":384,"cacheWriteTokens":0,"totalTokens":5425}}},{"type":"chunk","time":1790672004955,"chunk":{"type":"finish","reason":{"kind":"stop"}}}]},"surfaceOp":"append"}}} +{"jsonrpc":"2.0","method":"session.event","params":{"sessionId":"sdk-probe-1790672004227","event":{"type":"turn/end","seq":16,"time":1790672004957,"data":{"turn":1,"reason":{"kind":"completed"}}}}} +{"jsonrpc":"2.0","method":"session.status","params":{"sessionId":"sdk-probe-1790672004227","status":"idle"}} +{"jsonrpc":"2.0","id":3,"result":{}} diff --git a/mateclaw-server/src/test/resources/dsh/0.2.0-rc.1-sdk.jsonl b/mateclaw-server/src/test/resources/dsh/0.2.0-rc.1-sdk.jsonl new file mode 100644 index 00000000..76b8600c --- /dev/null +++ b/mateclaw-server/src/test/resources/dsh/0.2.0-rc.1-sdk.jsonl @@ -0,0 +1,10 @@ +{"jsonrpc":"2.0","id":1,"result":{"serverInfo":{"name":"deepseek-harness-sdk-runtime","version":"0.0.1"}}} +{"jsonrpc":"2.0","method":"session.event","params":{"sessionId":"sdk-probe-1790671995332","event":{"type":"agent/inbox/spliced","seq":3,"time":1790671995340,"data":{"target":"next-turn","start":0,"inserted":[{"content":[{"type":"text","text":"Reply with exactly SDK_OK. Do not use tools."}],"source":{"kind":"user"},"role":"user","id":"5468f4e9-3fc1-4426-a5e3-f5fd4b152a52"}]}}}} +{"jsonrpc":"2.0","method":"session.status","params":{"sessionId":"sdk-probe-1790671995332","status":"running"}} +{"jsonrpc":"2.0","method":"session.event","params":{"sessionId":"sdk-probe-1790671995332","event":{"type":"turn/start","seq":4,"time":1790671995341,"data":{"turn":1}}}} +{"jsonrpc":"2.0","method":"session.event","params":{"sessionId":"sdk-probe-1790671995332","event":{"type":"agent/inbox/spliced","seq":5,"time":1790671995341,"data":{"target":"next-turn","start":0,"removedCount":1,"inserted":[]}}}} +{"jsonrpc":"2.0","id":2,"result":{"messageId":"5468f4e9-3fc1-4426-a5e3-f5fd4b152a52"}} +{"jsonrpc":"2.0","method":"session.event","params":{"sessionId":"sdk-probe-1790671995332","event":{"type":"assistant/message","seq":14,"time":1790671996238,"data":{"turn":1,"step":1,"message":{"role":"assistant","content":[{"type":"reasoning","text":""},{"type":"text","text":"SDK_OK"}],"source":{"kind":"model","provider":"deepseek-official","model":"deepseek-v4-flash"},"id":"154a1d19-80a8-49d7-8af9-7ac3ea79c4d9"},"usage":{"inputTokens":5421,"outputTokens":4,"cacheReadTokens":0,"cacheWriteTokens":0,"totalTokens":5425},"stream":[{"type":"chunk","time":1790671995814,"chunk":{"type":"block-start","index":0,"blockType":"reasoning"}},{"type":"chunk","time":1790671996221,"chunk":{"type":"block-end","index":0,"block":{"type":"reasoning","text":""}}},{"type":"chunk","time":1790671996221,"chunk":{"type":"block-start","index":1,"blockType":"text"}},{"type":"text-chunks","time0":1790671996221,"index":1,"dt":[12,1],"texts":["SD","K","_OK"]},{"type":"chunk","time":1790671996236,"chunk":{"type":"block-end","index":1,"block":{"type":"text","text":"SDK_OK"}}},{"type":"chunk","time":1790671996236,"chunk":{"type":"usage","usage":{"inputTokens":5421,"outputTokens":4,"cacheReadTokens":0,"cacheWriteTokens":0,"totalTokens":5425}}},{"type":"chunk","time":1790671996236,"chunk":{"type":"finish","reason":{"kind":"stop"}}}]},"surfaceOp":"append"}}} +{"jsonrpc":"2.0","method":"session.event","params":{"sessionId":"sdk-probe-1790671995332","event":{"type":"turn/end","seq":16,"time":1790671996239,"data":{"turn":1,"reason":{"kind":"completed"}}}}} +{"jsonrpc":"2.0","method":"session.status","params":{"sessionId":"sdk-probe-1790671995332","status":"idle"}} +{"jsonrpc":"2.0","id":3,"result":{}} diff --git a/mateclaw-ui/src/api/index.ts b/mateclaw-ui/src/api/index.ts index d840208a..b2ecc5cb 100644 --- a/mateclaw-ui/src/api/index.ts +++ b/mateclaw-ui/src/api/index.ts @@ -771,7 +771,11 @@ export const dshApi = { saveConfig: (data: Record) => http.put('/admin/dsh/config', data), install: () => http.post('/admin/dsh/install'), verify: () => http.post('/admin/dsh/verify'), - testConnection: () => http.post('/admin/dsh/test-connection'), + testConnection: () => http.post('/admin/dsh/test-connection', undefined, { timeout: 45000 }), + testTask: () => http.post('/admin/dsh/test-task', undefined, { timeout: 100000 }), + upgrade: (data: { targetVersion: string; expectedRevision: string; idempotencyKey: string }) => http.post('/admin/dsh/upgrades', data), + upgradeStatus: (id: string) => http.get(`/admin/dsh/upgrades/${encodeURIComponent(id)}`), + rollback: (id: string, data: { expectedRevision: string; idempotencyKey: string }) => http.post(`/admin/dsh/upgrades/${encodeURIComponent(id)}/rollback`, data), enable: () => http.post('/admin/dsh/enable'), disable: () => http.post('/admin/dsh/disable'), } diff --git a/mateclaw-ui/src/views/Settings/Dsh/__tests__/configMapping.test.ts b/mateclaw-ui/src/views/Settings/Dsh/__tests__/configMapping.test.ts index 700a2c63..22517026 100644 --- a/mateclaw-ui/src/views/Settings/Dsh/__tests__/configMapping.test.ts +++ b/mateclaw-ui/src/views/Settings/Dsh/__tests__/configMapping.test.ts @@ -15,6 +15,9 @@ describe('DSH managed configuration mapping', () => { 'dsh.model_name': 'deepseek-chat', 'dsh.api_key': 'plain-test-key', })).toEqual({ + profile: 'sdk', + patch_paths: '[]', + home_root: '', executable_path: '/opt/dsh/bin', cordis_config_path: '/opt/dsh/cordis.yml', working_directory: '/srv/workspace', @@ -31,6 +34,9 @@ describe('DSH managed configuration mapping', () => { it('maps every settings form field to the canonical backend key', () => { const payload = formToManagedConfig({ + profile: 'sdk', + patch_paths: '["/tmp/my patch.yml"]', + home_root: '/tmp/dsh-home', executable_path: '/opt/dsh/bin', cordis_config_path: '/opt/dsh/cordis.yml', working_directory: '/srv/workspace', @@ -40,6 +46,9 @@ describe('DSH managed configuration mapping', () => { }) expect(payload).toEqual({ + 'dsh.profile': 'sdk', + 'dsh.patch_paths': '["/tmp/my patch.yml"]', + 'dsh.home_root': '/tmp/dsh-home', 'dsh.executable_path': '/opt/dsh/bin', 'dsh.cordis_config_path': '/opt/dsh/cordis.yml', 'dsh.working_directory': '/srv/workspace', @@ -50,3 +59,11 @@ describe('DSH managed configuration mapping', () => { expect(payload).not.toHaveProperty('executable_path') }) }) + +it('rejects patch lists that are not JSON arrays of absolute paths', () => { + const form = createEmptyDshConfigForm() + form.patch_paths = '["relative.yml"]' + expect(() => formToManagedConfig(form)).toThrow() + form.patch_paths = '{}' + expect(() => formToManagedConfig(form)).toThrow() +}) diff --git a/mateclaw-ui/src/views/Settings/Dsh/__tests__/healthState.test.ts b/mateclaw-ui/src/views/Settings/Dsh/__tests__/healthState.test.ts new file mode 100644 index 00000000..5e4b0b7f --- /dev/null +++ b/mateclaw-ui/src/views/Settings/Dsh/__tests__/healthState.test.ts @@ -0,0 +1,25 @@ +import { afterEach, expect, it, vi } from 'vitest' +import { createApp, nextTick } from 'vue' +import DshSettings from '../index.vue' + +const api = vi.hoisted(() => ({ status: vi.fn(), testConnection: vi.fn() })) +vi.mock('@/api', () => ({ dshApi: api })) +vi.mock('@/composables/useMcToast', () => ({ mcToast: { success: vi.fn(), error: vi.fn() } })) +let unmount: (() => void) | undefined +afterEach(() => { unmount?.(); document.body.innerHTML = ''; sessionStorage.clear(); vi.clearAllMocks() }) +async function flush() { for (let i = 0; i < 10; i++) { await Promise.resolve(); await nextTick() } } + +it('clears a previous successful handshake after a failed recheck', async () => { + const ready = { state: 'READY', installed: true, enabled: false, config: {}, managed: {}, handshake: { success: true } } + api.status.mockResolvedValueOnce({ data: ready }).mockResolvedValue({ data: { ...ready, handshake: { success: false } } }) + api.testConnection.mockResolvedValue({ data: { success: false, message: 'SDK handshake failed' } }) + const host = document.createElement('div'); document.body.append(host) + const app = createApp(DshSettings); app.mount(host); unmount = () => app.unmount() + await flush() + const button = (label: string) => [...host.querySelectorAll('button')].find(item => item.textContent === label)! + expect(button('启用 DSH').disabled).toBe(false) + button('测试 SDK 握手').click(); await flush() + expect(button('启用 DSH').disabled).toBe(true) + expect(host.querySelector('.error-card')?.textContent).toContain('SDK handshake failed') + expect(api.status).toHaveBeenCalledTimes(2) +}) diff --git a/mateclaw-ui/src/views/Settings/Dsh/configMapping.ts b/mateclaw-ui/src/views/Settings/Dsh/configMapping.ts index 09316f40..8384a03b 100644 --- a/mateclaw-ui/src/views/Settings/Dsh/configMapping.ts +++ b/mateclaw-ui/src/views/Settings/Dsh/configMapping.ts @@ -1,4 +1,7 @@ export interface DshConfigForm { + profile: string + patch_paths: string + home_root: string executable_path: string cordis_config_path: string working_directory: string @@ -8,6 +11,9 @@ export interface DshConfigForm { } const MANAGED_KEYS = { + profile: 'dsh.profile', + patch_paths: 'dsh.patch_paths', + home_root: 'dsh.home_root', executable_path: 'dsh.executable_path', cordis_config_path: 'dsh.cordis_config_path', working_directory: 'dsh.working_directory', @@ -20,7 +26,9 @@ const FORM_FIELDS = Object.keys(MANAGED_KEYS) as Array export function createEmptyDshConfigForm(): DshConfigForm { return { - executable_path: '', + profile: 'sdk', + patch_paths: '[]', + home_root: '', executable_path: '', cordis_config_path: '', working_directory: '', base_url: '', @@ -34,13 +42,17 @@ export function managedConfigToForm( ): DshConfigForm { const form = createEmptyDshConfigForm() for (const field of FORM_FIELDS) { - form[field] = managed[MANAGED_KEYS[field]] || '' + form[field] = managed[MANAGED_KEYS[field]] ?? form[field] } if (form.api_key.startsWith('****')) form.api_key = '' return form } export function formToManagedConfig(form: DshConfigForm): Record { + const patches: unknown = JSON.parse(form.patch_paths || '[]') + if (!Array.isArray(patches) || patches.some(path => typeof path !== 'string' || !(/^(?:\/|[A-Za-z]:[\\/])/.test(path)))) { + throw new Error('Patch 必须是绝对路径组成的 JSON 数组') + } return Object.fromEntries( FORM_FIELDS.map(field => [MANAGED_KEYS[field], form[field]]), ) diff --git a/mateclaw-ui/src/views/Settings/Dsh/index.vue b/mateclaw-ui/src/views/Settings/Dsh/index.vue index 692d0cad..207b5f49 100644 --- a/mateclaw-ui/src/views/Settings/Dsh/index.vue +++ b/mateclaw-ui/src/views/Settings/Dsh/index.vue @@ -4,7 +4,7 @@
运行时管理

DeepSeek Harness

-

在页面完成安装、配置、检测和启用,不再依赖 IDEA 的环境变量。

+

使用 SDK profile 接入。分别检查文件、SDK 握手与真实模型任务,按固定版本升级。

{{ stateLabel }} @@ -23,37 +23,50 @@

运行时配置

托管配置优先于 application.yml 和旧环境变量。

API Key 已配置
- - + + + + + - +
-
+
-

安装与连接

安装包由服务端私有制品清单提供,前端不能注入任意下载地址。

+

版本升级与连接

版本与依赖使用固定清单。升级会排空活动任务,在副本中验证后切换,并保留旧数据。

+ +

当前版本:{{ status.activeVersion || '未知 / 外部安装' }}。候选版本需完成本机检测,不代表已通过所有平台验证。

- - - + + + +
-

当前未配置私有制品清单。可以继续使用已有安装路径或旧环境变量;要启用页面安装,请设置 DSH_MANIFEST_URL。

+

自动安装候选支持 Linux x64 / macOS arm64,要求 Node.js 22 和 npm。自定义地址必须支持 Messages API;官方根地址会转换为 /anthropic。真实模型测试和升级验证会调用已配置的模型。

+
+ {{ operation.state }} · {{ operation.message }} +

已检查 {{ operation.homesChecked }} 个数据目录 · SDK {{ operation.handshakeStatus }} · 模型 {{ operation.taskStatus }}

+ +
+

回滚会恢复旧 DSH 数据快照,保留新版本数据供核对;不会撤销工具写入工作目录的文件,也不会删除 MateClaw 聊天记录。

+

DSH 自带工具由其 profile 管理,不提供 MateClaw 宿主审批;启用成员文件隔离时禁止运行。

检测结果

敏感信息只显示是否已配置。

-
状态
{{ stateLabel }}
可执行文件
{{ status.config?.executablePath || '未配置' }}
工作目录
{{ status.config?.workingDirectory || '未配置' }}
API Key
{{ status.config?.apiKeyConfigured ? '已配置' : '未配置' }}
+
文件检查
{{ checkLabel(status.fileCheck) }}
SDK 握手
{{ checkLabel(status.handshake) }}
模型任务
{{ checkLabel(status.taskCheck) }}
状态
{{ stateLabel }}
可执行文件
{{ status.config?.executablePath || '未配置' }}
工作目录
{{ status.config?.workingDirectory || '未配置' }}
API Key
{{ status.config?.apiKeyConfigured ? '已配置' : '未配置' }}