@norman-else/dsh-claude 0.1.10 → 0.1.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { _ as CLAUDE_PROJECTION_PATH, a as latestClaudeTasks, c as normalizeTasksEvent, d as CLAUDE_ACTIVITY_EVENT, f as CLAUDE_CODE_PRESET_ID, g as CLAUDE_GLOBAL_SETTINGS_PATH, h as CLAUDE_DOCTOR_PATH, i as latestClaudeSessionBinding, l as redactText, m as CLAUDE_CODE_PROVIDER_IDS, n as currentClaudeActivityCursor, o as normalizeActivity, p as CLAUDE_CODE_PROVIDER, r as latestClaudeContextUsage, s as normalizeContextUsage, t as boundText, u as safeDetail, v as CLAUDE_UPDATE_CHECK_PATH, x as TASK_TOOL_NAMES, y as CLAUDE_UPDATE_PATH } from "./events-6xTApIQw.mjs";
2
- import { a as ClaudeCommandBridge, i as CLAUDE_COMMANDS_SERVICE, r as dynamicPresenterDefinition, t as CLAUDE_PRESENTER_NAMES } from "./presenters-C8Yx_rNY.mjs";
2
+ import { a as ClaudeCommandBridge, i as CLAUDE_COMMANDS_SERVICE, r as dynamicPresenterDefinition, t as CLAUDE_PRESENTER_NAMES } from "./presenters-BE6LPw2m.mjs";
3
3
  import { a as resolveClaudeExecutable, n as ensureManagedPreset, o as runClaudeDoctor, t as ManagedPresetConflictError } from "./preset-installer-B0NrA4Hi.mjs";
4
4
  import z from "@deepseek-ai/schemastery";
5
5
  import { CallId, LlmAdapter, ReasoningEffortId, createToolResultMessage, createUserMessage } from "@deepseek-ai/dsh-llm";
@@ -1345,6 +1345,7 @@ var ClaudeSupervisor = class {
1345
1345
  }
1346
1346
  async #handleMessage(entry, message) {
1347
1347
  if (message.kind === "init") {
1348
+ const firstInitialization = !entry.initialized;
1348
1349
  if (entry.expectedResume !== void 0 && message.sessionId !== entry.expectedResume) throw new ClaudeProtocolError(`Claude Code resumed unexpected session ${message.sessionId}; expected ${entry.expectedResume}`);
1349
1350
  if (message.cwd !== entry.cwd) throw new ClaudeProtocolError(`Claude Code initialized in unexpected cwd ${message.cwd}; expected ${entry.cwd}`);
1350
1351
  if (entry.initTimer !== void 0) {
@@ -1355,7 +1356,7 @@ var ClaudeSupervisor = class {
1355
1356
  entry.claudeSessionId = message.sessionId;
1356
1357
  entry.state = entry.active === void 0 ? "idle" : "running";
1357
1358
  for (const waiter of entry.initWaiters.splice(0)) waiter(void 0);
1358
- if (entry.tasks.size > 0) {
1359
+ if (firstInitialization && entry.tasks.size > 0) {
1359
1360
  entry.tasks.clear();
1360
1361
  await this.#flushTasksSnapshot(entry);
1361
1362
  }
@@ -2504,14 +2505,15 @@ async function updatePlugin(deps = {}) {
2504
2505
  throw new Error(`DSH plugin update failed (${outcome.exitCode ?? outcome.signal ?? "unknown exit"}): ${safeMessage(detail)}`);
2505
2506
  }
2506
2507
  await verifyInstalledVersion(installation, latest);
2508
+ if (deps.requestRestart !== void 0) setTimeout(() => deps.requestRestart?.(), 100).unref?.();
2507
2509
  return {
2508
2510
  currentVersion: latest,
2509
2511
  latestVersion: latest,
2510
2512
  source: "registry",
2511
2513
  state: "current",
2512
2514
  canUpdate: false,
2513
- restartRequired: true,
2514
- message: "Update installed; restart DSH Desktop to load it"
2515
+ restartRequired: deps.requestRestart === void 0,
2516
+ message: deps.requestRestart === void 0 ? "Update installed; restart DSH Desktop to load it" : "Update installed; DSH Desktop is restarting to load it"
2515
2517
  };
2516
2518
  }
2517
2519
  function registerClaudeUpdateRoutes(ctx, runtime, deps = {}) {
@@ -2768,8 +2770,8 @@ function mountClaudeMetadata(ctx, supervisor, agent, model, sidecar, resolveComm
2768
2770
  const bridge = new ClaudeCommandBridge({
2769
2771
  list: () => scopedCommands().list(agent),
2770
2772
  register: (definition) => scopedCommands().register(definition),
2771
- forward: (line) => {
2772
- agent.followup(createUserMessage({
2773
+ forward: (receivingAgent, line) => {
2774
+ receivingAgent.followup(createUserMessage({
2773
2775
  content: [{
2774
2776
  type: "text",
2775
2777
  text: line
@@ -2943,7 +2945,8 @@ async function apply(ctx, config) {
2943
2945
  ctx.effect(() => () => supervisor.dispose(), "dsh-claude: process supervisor");
2944
2946
  ctx.inject(["webServer"], (webCtx) => {
2945
2947
  registerClaudeDoctorRoutes(webCtx, webCtx.subprocess, supervisor, supervisorConfig, resolutionError);
2946
- registerClaudeUpdateRoutes(webCtx, webCtx.subprocess);
2948
+ const desktopActions = webCtx.get("desktopActions");
2949
+ registerClaudeUpdateRoutes(webCtx, webCtx.subprocess, { ...typeof desktopActions?.requestRestart === "function" ? { requestRestart: desktopActions.requestRestart.bind(desktopActions) } : {} });
2947
2950
  registerClaudeGlobalSettingsRoute(webCtx);
2948
2951
  registerClaudeProjectionRoute(webCtx, sidecar, (sessionId) => {
2949
2952
  const agent = webCtx.agents.get(sessionId);