@lingxi-ai-cn/dsh-tui-runtime 0.1.7-alpha.2 → 0.1.8-rc.1

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.js CHANGED
@@ -17,7 +17,8 @@ import { createUserMessage, errorChain, freezeMessage, normalizeApiKey } from "@
17
17
  import { MessageId } from "@deepseek-ai/dsh-llm/brand";
18
18
  import { runNativeCommand } from "@deepseek-ai/dsh-native-command";
19
19
  import { isAppendSurfaceEvent } from "@deepseek-ai/dsh-session/surface";
20
- import { SESSION_FORMAT_VERSION, SessionId } from "@deepseek-ai/dsh-session";
20
+ import { SESSION_FORMAT_VERSION, SessionId, SessionLogOffset } from "@deepseek-ai/dsh-session";
21
+ import { queueHostSubagentPrompt } from "@deepseek-ai/dsh-subagent/internal";
21
22
  import { activeAtToken, formatFileMention } from "@deepseek-ai/dsh-file-reference";
22
23
  import { formatSessionReferenceMention } from "@deepseek-ai/dsh-session-reference";
23
24
  import { deriveTurnTokenUsage } from "@deepseek-ai/dsh-token-meter/client";
@@ -41,7 +42,7 @@ function settingsNamespace(value) {
41
42
  if (!SETTINGS_NAMESPACE_PATTERN.test(value)) throw new TypeError(`settings namespace "${value}" must match ${String(SETTINGS_NAMESPACE_PATTERN)}`);
42
43
  return brandString(value);
43
44
  }
44
- /** Install one TUI settings section through the alpha.2 owner method. */
45
+ /** Install one TUI settings section through the rc.1 owner method. */
45
46
  function installSettingsSection(ctx, namespace, schema, entry, hooks) {
46
47
  ctx.inject(["settings"], (settingsCtx) => {
47
48
  settingsCtx.settings.installSection(ctx, namespace, schema, entry, hooks);
@@ -27296,7 +27297,7 @@ var TuiController = class {
27296
27297
  return;
27297
27298
  }
27298
27299
  this.handle = handle;
27299
- this.events = new SessionEventStore(handle.agent.session.events);
27300
+ this.events = new SessionEventStore(handle.agent.session.snapshotEvents());
27300
27301
  this.status = new AgentStatusStore(handle.agent.status);
27301
27302
  this.selection = prepared.selection;
27302
27303
  this.modelSelection.set(prepared.selectedModel);
@@ -27791,8 +27792,11 @@ var TuiController = class {
27791
27792
  const setup = async (agentCtx) => {
27792
27793
  const session = agentCtx.agent?.session;
27793
27794
  if (session === void 0) throw new Error("TUI Agent setup cannot resolve its unpublished Session");
27794
- const presetId = request.kind === "resume" ? this.assertResumeCompatible(session.header, session.events) : resolvedPreset?.id;
27795
- migration.legacyPreset = request.kind === "resume" && sessionUsesLegacyCodePreset(session);
27795
+ const presetId = request.kind === "resume" ? this.assertResumeCompatible(session.header, session.snapshotEvents()) : resolvedPreset?.id;
27796
+ migration.legacyPreset = request.kind === "resume" && sessionUsesLegacyCodePreset({
27797
+ header: session.header,
27798
+ events: session.snapshotEvents()
27799
+ });
27796
27800
  if (presetId === void 0) throw new Error("TUI Agent setup has no resolved Agent preset");
27797
27801
  const logged = session.requestHeader()?.config;
27798
27802
  if (logged !== void 0) selected.current = {
@@ -27801,7 +27805,7 @@ var TuiController = class {
27801
27805
  ...logged.reasoningEffort === void 0 ? {} : { reasoningEffort: logged.reasoningEffort }
27802
27806
  };
27803
27807
  else if (request.kind === "resume") {
27804
- const route = resumeRoute(session.events);
27808
+ const route = resumeRoute(session.snapshotEvents());
27805
27809
  if (route !== void 0) selected.current = route;
27806
27810
  }
27807
27811
  installModelSelection(agentCtx, selected);
@@ -27831,9 +27835,12 @@ var TuiController = class {
27831
27835
  cwd: request.cwd,
27832
27836
  agentPreset: resolvedPreset.id,
27833
27837
  parentSession: request.parentSession,
27834
- seedLength: request.seed.length
27838
+ isSeeded: true
27835
27839
  },
27836
- ...request.kind === "rewind" ? { seed: request.seed } : {},
27840
+ ...request.kind === "rewind" ? {
27841
+ seed: request.seed,
27842
+ inheritedEventCount: SessionLogOffset(request.seed.length)
27843
+ } : {},
27837
27844
  agentOptions: {
27838
27845
  provider: defaultSelection.provider,
27839
27846
  model: defaultSelection.model
@@ -28395,7 +28402,7 @@ var TuiController = class {
28395
28402
  acceptsInput: true
28396
28403
  }),
28397
28404
  agent: child,
28398
- events: new SessionEventStore(child.session.events),
28405
+ events: new SessionEventStore(child.session.snapshotEvents()),
28399
28406
  status: new AgentStatusStore(child.status)
28400
28407
  };
28401
28408
  try {
@@ -29937,7 +29944,10 @@ var TuiController = class {
29937
29944
  text: tuiMessage(this.locale, "plugin.command.dialog")
29938
29945
  };
29939
29946
  const presets = hostAgentPresets(this.ctx);
29940
- const currentId = resolveSessionPreset(invocation.agent.session) ?? presets.composedPreset(invocation.agent.ctx);
29947
+ const currentId = resolveSessionPreset({
29948
+ header: invocation.agent.session.header,
29949
+ events: invocation.agent.session.snapshotEvents()
29950
+ }) ?? presets.composedPreset(invocation.agent.ctx);
29941
29951
  if (currentId === void 0) throw new Error("The active TUI Agent has no composed preset");
29942
29952
  const roster = tuiAgentModeOptions(await presets.list(), currentId, this.locale);
29943
29953
  const options = Object.freeze([...roster.filter((option) => option.preset.id === currentId), ...roster.filter((option) => option.preset.id !== currentId)]);
@@ -29969,7 +29979,7 @@ var TuiController = class {
29969
29979
  kind: "success",
29970
29980
  text: tuiMessage(this.locale, "mode.same", { mode: selected.name })
29971
29981
  };
29972
- if (invocation.agent.session.events.some((event) => event.type === "turn/start")) {
29982
+ if (invocation.agent.session.snapshotEvents().some((event) => event.type === "turn/start")) {
29973
29983
  const cwd = invocation.agent.session.header.cwd;
29974
29984
  if (cwd === void 0) return {
29975
29985
  kind: "error",
@@ -30444,7 +30454,7 @@ var TuiController = class {
30444
30454
  this.rewindDialog.set({
30445
30455
  ...dialog,
30446
30456
  phase: "browsing",
30447
- candidates: tuiRewindCandidates(agent.session.events)
30457
+ candidates: tuiRewindCandidates(agent.session.snapshotEvents())
30448
30458
  });
30449
30459
  }
30450
30460
  closeRewind() {
@@ -30474,10 +30484,13 @@ var TuiController = class {
30474
30484
  }
30475
30485
  const detached = this.detachedRewindSource?.id === dialog.currentSessionId ? this.detachedRewindSource : void 0;
30476
30486
  const sourceId = detached?.id ?? agent.session.id;
30477
- const sourceEvents = detached?.events ?? agent.session.events;
30487
+ const sourceEvents = detached?.events ?? agent.session.snapshotEvents();
30478
30488
  const cwd = detached?.cwd ?? agent.session.header.cwd;
30479
30489
  const selectedModel = detached?.selection ?? this.selection?.current ?? this.modelSelection.getSnapshot();
30480
- const preset = detached?.preset ?? resolveSessionPreset(agent.session);
30490
+ const preset = detached?.preset ?? resolveSessionPreset({
30491
+ header: agent.session.header,
30492
+ events: agent.session.snapshotEvents()
30493
+ });
30481
30494
  if (cwd === void 0 || selectedModel === void 0) {
30482
30495
  this.rewindDialog.set({
30483
30496
  ...dialog,
@@ -30990,7 +31003,7 @@ var TuiController = class {
30990
31003
  openTrajectory() {
30991
31004
  const root = this.handle?.agent;
30992
31005
  if (root === void 0) return;
30993
- const events = root.session.events;
31006
+ const events = root.session.snapshotEvents();
30994
31007
  const snapshot = this.trajectoryProjection.update(events, this.trajectoryLimit);
30995
31008
  this.trajectoryStore.set(snapshot);
30996
31009
  }
@@ -31159,7 +31172,7 @@ var TuiController = class {
31159
31172
  const live = this.ctx.sessions.get(id);
31160
31173
  const source = live === void 0 ? await this.ctx.sessionQuery.readSession(id) : {
31161
31174
  session: live.header,
31162
- events: live.events
31175
+ events: live.snapshotEvents()
31163
31176
  };
31164
31177
  if (source.session.version !== SESSION_FORMAT_VERSION) throw new Error("the source Session format is incompatible");
31165
31178
  if (source.session.origin === "subagent") throw new Error("subagent-owned Sessions cannot be forked here");
@@ -31289,7 +31302,7 @@ var TuiController = class {
31289
31302
  const live = this.ctx.sessions.get(record.header.id);
31290
31303
  const session = live === void 0 ? await this.ctx.sessionQuery.readSession(record.header.id) : {
31291
31304
  session: live.header,
31292
- events: live.events
31305
+ events: live.snapshotEvents()
31293
31306
  };
31294
31307
  signal.throwIfAborted();
31295
31308
  const id = resolveSessionPreset({
@@ -31389,7 +31402,7 @@ var TuiController = class {
31389
31402
  async resumeActivityTime(record, signal) {
31390
31403
  signal.throwIfAborted();
31391
31404
  const live = this.ctx.sessions.get(record.header.id);
31392
- if (live !== void 0) return live.events.at(-1)?.time;
31405
+ if (live !== void 0) return live.snapshotEvents().at(-1)?.time;
31393
31406
  const location = this.ctx.get("sessionPersistence")?.locate(record.header);
31394
31407
  if (location === void 0) return void 0;
31395
31408
  try {
@@ -31443,7 +31456,7 @@ var TuiController = class {
31443
31456
  async projectedResumeTitle(cache, record, signal) {
31444
31457
  const live = this.ctx.sessions.get(record.header.id);
31445
31458
  if (live !== void 0) return this.ctx.get("sessionProjections")?.snapshot(live).values.title;
31446
- const cached = cache.cachedSnapshot(record.header);
31459
+ const cached = record.header.isSeeded ? void 0 : cache.cachedSnapshot(record.header, SessionLogOffset(0), ["title"]);
31447
31460
  if (cached !== void 0 && "title" in cached.values) return cached.values.title;
31448
31461
  const observation = await this.ctx.sessionQuery.observeSession(record.header.id, { signal });
31449
31462
  try {
@@ -31626,7 +31639,10 @@ var TuiController = class {
31626
31639
  if (!this.ownsAgent(oldAgent)) throw new Error("the active TUI Session changed");
31627
31640
  const initialStatus = this.agentStatus(oldAgent);
31628
31641
  if (initialStatus !== "idle") throw new Error(`current Agent is ${initialStatus}`);
31629
- const preset = targetPreset?.id ?? resolveSessionPreset(oldAgent.session);
31642
+ const preset = targetPreset?.id ?? resolveSessionPreset({
31643
+ header: oldAgent.session.header,
31644
+ events: oldAgent.session.snapshotEvents()
31645
+ });
31630
31646
  if (preset === void 0) throw new Error("the current Session has no Agent preset to inherit");
31631
31647
  const prepared = await this.prepareAgent({
31632
31648
  kind: "fresh",
@@ -31688,7 +31704,7 @@ var TuiController = class {
31688
31704
  const oldExportDialog = this.sessionExportDialog.getSnapshot();
31689
31705
  const oldActiveView = this.activeView;
31690
31706
  if (oldHandle?.agent !== oldAgent || oldEvents === void 0 || oldStatus === void 0 || this.instance === void 0) throw new Error("TUI Agent switch lost its current owner");
31691
- const nextEvents = new SessionEventStore(prepared.handle.agent.session.events);
31707
+ const nextEvents = new SessionEventStore(prepared.handle.agent.session.snapshotEvents());
31692
31708
  const nextStatus = new AgentStatusStore(prepared.handle.agent.status);
31693
31709
  this.handle = prepared.handle;
31694
31710
  this.events = nextEvents;
@@ -32127,13 +32143,10 @@ var TuiController = class {
32127
32143
  }
32128
32144
  }
32129
32145
  const controller = new AbortController();
32130
- const completion = this.ctx.subagents.followup(parent, view.agent.id, [{
32146
+ const completion = queueHostSubagentPrompt(this.ctx.subagents, parent, view.agent.id, [{
32131
32147
  type: "text",
32132
32148
  text
32133
- }, ...imageBlocks], {
32134
- source: { kind: "user" },
32135
- signal: controller.signal
32136
- });
32149
+ }, ...imageBlocks], { kind: "user" }, controller.signal);
32137
32150
  const operation = {
32138
32151
  controller,
32139
32152
  completion
@@ -37,12 +37,13 @@ export { MessageId } from '@deepseek-ai/dsh-llm/brand';
37
37
  export { runNativeCommand } from '@deepseek-ai/dsh-native-command';
38
38
  export type { PermissionSelect } from '@deepseek-ai/dsh-permission-presets';
39
39
  export { isAppendSurfaceEvent, } from '@deepseek-ai/dsh-session/surface';
40
- export { SESSION_FORMAT_VERSION, SessionId, } from '@deepseek-ai/dsh-session';
40
+ export { SESSION_FORMAT_VERSION, SessionId, SessionLogOffset, } from '@deepseek-ai/dsh-session';
41
41
  export type { SessionEvent, SessionHeader, SessionId as SessionIdType, TurnEndReason } from '@deepseek-ai/dsh-session';
42
42
  export type { SessionPersistence } from '@deepseek-ai/dsh-session-persistence';
43
43
  export type { TodoItem } from '@deepseek-ai/dsh-tool-todo';
44
44
  export type { SessionProjectionCache } from '@deepseek-ai/dsh-session-projection-cache';
45
45
  export type { SessionRecord } from '@deepseek-ai/dsh-session-query';
46
+ export { queueHostSubagentPrompt } from '@deepseek-ai/dsh-subagent/internal';
46
47
  export type { SettingsDescriptor, SettingsNamespace, SettingsPathOp, SettingsProvider, } from '@deepseek-ai/dsh-settings';
47
48
  export { activeAtToken, formatFileMention } from '@deepseek-ai/dsh-file-reference';
48
49
  export type { FileReferenceCandidate } from '@deepseek-ai/dsh-file-reference';
@@ -60,7 +61,7 @@ export interface TuiSettingsSectionHooks<T> {
60
61
  /** Refuse a resolved settings section the TUI cannot apply. */
61
62
  validate?: (value: T) => void;
62
63
  }
63
- /** Install one TUI settings section through the alpha.2 owner method. */
64
+ /** Install one TUI settings section through the rc.1 owner method. */
64
65
  export declare function installSettingsSection<T>(ctx: HostContext, namespace: string, schema: z<T>, entry: T, hooks: TuiSettingsSectionHooks<T>): void;
65
66
  /** Resolve the shared Host settings owner through the reviewed adapter boundary. */
66
67
  export declare function hostSettings(ctx: HostContext): import('@deepseek-ai/dsh-settings').SettingsProvider;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@lingxi-ai-cn/dsh-tui-runtime",
3
3
  "description": "Native terminal UI for one in-process DeepSeek Harness Agent and Session",
4
- "version": "0.1.7-alpha.2",
4
+ "version": "0.1.8-rc.1",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -40,53 +40,53 @@
40
40
  "string-width": "^7.2.0"
41
41
  },
42
42
  "peerDependencies": {
43
- "@deepseek-ai/dsh-brand": "0.1.2-alpha.2",
44
- "@deepseek-ai/dsh-attachment": "0.1.2-alpha.2",
45
- "@deepseek-ai/dsh-authorization": "0.1.2-alpha.2",
43
+ "@deepseek-ai/dsh-brand": "0.1.2-rc.1",
44
+ "@deepseek-ai/dsh-attachment": "0.1.2-rc.1",
45
+ "@deepseek-ai/dsh-authorization": "0.1.2-rc.1",
46
46
  "@deepseek-ai/cordis-plugin-loader": "1.0.3",
47
- "@deepseek-ai/dsh-agent": "0.1.2-alpha.2",
48
- "@deepseek-ai/dsh-agent-default-model": "0.1.2-alpha.2",
49
- "@deepseek-ai/dsh-agent-presets": "0.1.2-alpha.2",
50
- "@deepseek-ai/dsh-atomic-write": "0.1.2-alpha.2",
51
- "@deepseek-ai/dsh-cmdline": "0.1.2-alpha.2",
52
- "@deepseek-ai/dsh-compaction": "0.1.2-alpha.2",
53
- "@deepseek-ai/dsh-commands": "0.1.2-alpha.2",
54
- "@deepseek-ai/dsh-credentials": "0.1.2-alpha.2",
55
- "@deepseek-ai/dsh-fs": "0.1.2-alpha.2",
56
- "@deepseek-ai/dsh-file-reference": "0.1.2-alpha.2",
57
- "@deepseek-ai/dsh-home-paths": "0.1.2-alpha.2",
58
- "@deepseek-ai/dsh-host-directory-picker": "0.1.2-alpha.2",
59
- "@deepseek-ai/dsh-host-plugin-inventory": "0.1.2-alpha.2",
60
- "@deepseek-ai/dsh-goal": "0.1.2-alpha.2",
61
- "@deepseek-ai/dsh-invariants": "0.1.2-alpha.2",
62
- "@deepseek-ai/dsh-jobs": "0.1.2-alpha.2",
63
- "@deepseek-ai/dsh-llm": "0.1.2-alpha.2",
64
- "@deepseek-ai/dsh-message-feedback": "0.1.2-alpha.2",
65
- "@deepseek-ai/dsh-native-command": "0.1.2-alpha.2",
66
- "@deepseek-ai/dsh-permission-presets": "0.1.2-alpha.2",
67
- "@deepseek-ai/dsh-plan-mode": "0.1.2-alpha.2",
68
- "@deepseek-ai/dsh-session": "0.1.2-alpha.2",
69
- "@deepseek-ai/dsh-session-projection": "0.1.2-alpha.2",
70
- "@deepseek-ai/dsh-session-projection-cache": "0.1.2-alpha.2",
71
- "@deepseek-ai/dsh-session-stats": "0.1.2-alpha.2",
72
- "@deepseek-ai/dsh-session-query": "0.1.2-alpha.2",
73
- "@deepseek-ai/dsh-session-reference": "0.1.2-alpha.2",
74
- "@deepseek-ai/dsh-schedule": "0.1.2-alpha.2",
75
- "@deepseek-ai/dsh-session-title": "0.1.2-alpha.2",
76
- "@deepseek-ai/dsh-settings": "0.1.2-alpha.2",
77
- "@deepseek-ai/dsh-subagent": "0.1.2-alpha.2",
78
- "@deepseek-ai/dsh-token-meter": "0.1.2-alpha.2",
79
- "@deepseek-ai/dsh-tool-todo": "0.1.2-alpha.2",
80
- "@deepseek-ai/dsh-tools": "0.1.2-alpha.2",
81
- "@deepseek-ai/dsh-session-persistence": "0.1.2-alpha.2",
82
- "@deepseek-ai/dsh-subprocess": "0.1.2-alpha.2",
83
- "@deepseek-ai/dsh-user-approval": "0.1.2-alpha.2",
84
- "@deepseek-ai/dsh-user-questions": "0.1.2-alpha.2",
85
- "@deepseek-ai/dsh-workspace": "0.1.2-alpha.2",
47
+ "@deepseek-ai/dsh-agent": "0.1.2-rc.1",
48
+ "@deepseek-ai/dsh-agent-default-model": "0.1.2-rc.1",
49
+ "@deepseek-ai/dsh-agent-presets": "0.1.2-rc.1",
50
+ "@deepseek-ai/dsh-atomic-write": "0.1.2-rc.1",
51
+ "@deepseek-ai/dsh-cmdline": "0.1.2-rc.1",
52
+ "@deepseek-ai/dsh-compaction": "0.1.2-rc.1",
53
+ "@deepseek-ai/dsh-commands": "0.1.2-rc.1",
54
+ "@deepseek-ai/dsh-credentials": "0.1.2-rc.1",
55
+ "@deepseek-ai/dsh-fs": "0.1.2-rc.1",
56
+ "@deepseek-ai/dsh-file-reference": "0.1.2-rc.1",
57
+ "@deepseek-ai/dsh-home-paths": "0.1.2-rc.1",
58
+ "@deepseek-ai/dsh-host-directory-picker": "0.1.2-rc.1",
59
+ "@deepseek-ai/dsh-host-plugin-inventory": "0.1.2-rc.1",
60
+ "@deepseek-ai/dsh-goal": "0.1.2-rc.1",
61
+ "@deepseek-ai/dsh-invariants": "0.1.2-rc.1",
62
+ "@deepseek-ai/dsh-jobs": "0.1.2-rc.1",
63
+ "@deepseek-ai/dsh-llm": "0.1.2-rc.1",
64
+ "@deepseek-ai/dsh-message-feedback": "0.1.2-rc.1",
65
+ "@deepseek-ai/dsh-native-command": "0.1.2-rc.1",
66
+ "@deepseek-ai/dsh-permission-presets": "0.1.2-rc.1",
67
+ "@deepseek-ai/dsh-plan-mode": "0.1.2-rc.1",
68
+ "@deepseek-ai/dsh-session": "0.1.2-rc.1",
69
+ "@deepseek-ai/dsh-session-projection": "0.1.2-rc.1",
70
+ "@deepseek-ai/dsh-session-projection-cache": "0.1.2-rc.1",
71
+ "@deepseek-ai/dsh-session-stats": "0.1.2-rc.1",
72
+ "@deepseek-ai/dsh-session-query": "0.1.2-rc.1",
73
+ "@deepseek-ai/dsh-session-reference": "0.1.2-rc.1",
74
+ "@deepseek-ai/dsh-schedule": "0.1.2-rc.1",
75
+ "@deepseek-ai/dsh-session-title": "0.1.2-rc.1",
76
+ "@deepseek-ai/dsh-settings": "0.1.2-rc.1",
77
+ "@deepseek-ai/dsh-subagent": "0.1.2-rc.1",
78
+ "@deepseek-ai/dsh-token-meter": "0.1.2-rc.1",
79
+ "@deepseek-ai/dsh-tool-todo": "0.1.2-rc.1",
80
+ "@deepseek-ai/dsh-tools": "0.1.2-rc.1",
81
+ "@deepseek-ai/dsh-session-persistence": "0.1.2-rc.1",
82
+ "@deepseek-ai/dsh-subprocess": "0.1.2-rc.1",
83
+ "@deepseek-ai/dsh-user-approval": "0.1.2-rc.1",
84
+ "@deepseek-ai/dsh-user-questions": "0.1.2-rc.1",
85
+ "@deepseek-ai/dsh-workspace": "0.1.2-rc.1",
86
86
  "@deepseek-ai/cordis": "4.0.2",
87
87
  "@deepseek-ai/schemastery": "3.18.2",
88
- "@lingxi-ai-cn/dsh-session-export": "0.1.7-alpha.2",
89
- "@lingxi-ai-cn/dsh-plugin-hub": "0.1.7-alpha.2"
88
+ "@lingxi-ai-cn/dsh-session-export": "0.1.8-rc.1",
89
+ "@lingxi-ai-cn/dsh-plugin-hub": "0.1.8-rc.1"
90
90
  },
91
91
  "peerDependenciesMeta": {
92
92
  "@deepseek-ai/dsh-attachment": {
@@ -226,53 +226,53 @@
226
226
  }
227
227
  },
228
228
  "devDependencies": {
229
- "@deepseek-ai/dsh-brand": "0.1.2-alpha.2",
230
- "@deepseek-ai/dsh-atomic-write": "0.1.2-alpha.2",
231
- "@deepseek-ai/dsh-home-paths": "0.1.2-alpha.2",
232
- "@deepseek-ai/dsh-host-directory-picker": "0.1.2-alpha.2",
233
- "@deepseek-ai/dsh-host-plugin-inventory": "0.1.2-alpha.2",
234
- "@deepseek-ai/dsh-goal": "0.1.2-alpha.2",
235
- "@deepseek-ai/dsh-attachment": "0.1.2-alpha.2",
236
- "@deepseek-ai/dsh-authorization": "0.1.2-alpha.2",
229
+ "@deepseek-ai/dsh-brand": "0.1.2-rc.1",
230
+ "@deepseek-ai/dsh-atomic-write": "0.1.2-rc.1",
231
+ "@deepseek-ai/dsh-home-paths": "0.1.2-rc.1",
232
+ "@deepseek-ai/dsh-host-directory-picker": "0.1.2-rc.1",
233
+ "@deepseek-ai/dsh-host-plugin-inventory": "0.1.2-rc.1",
234
+ "@deepseek-ai/dsh-goal": "0.1.2-rc.1",
235
+ "@deepseek-ai/dsh-attachment": "0.1.2-rc.1",
236
+ "@deepseek-ai/dsh-authorization": "0.1.2-rc.1",
237
237
  "@deepseek-ai/cordis-plugin-loader": "1.0.3",
238
- "@deepseek-ai/dsh-agent": "0.1.2-alpha.2",
239
- "@deepseek-ai/dsh-agent-default-model": "0.1.2-alpha.2",
240
- "@deepseek-ai/dsh-agent-presets": "0.1.2-alpha.2",
241
- "@deepseek-ai/dsh-cmdline": "0.1.2-alpha.2",
242
- "@deepseek-ai/dsh-compaction": "0.1.2-alpha.2",
243
- "@deepseek-ai/dsh-commands": "0.1.2-alpha.2",
244
- "@deepseek-ai/dsh-credentials": "0.1.2-alpha.2",
245
- "@deepseek-ai/dsh-fs": "0.1.2-alpha.2",
246
- "@deepseek-ai/dsh-file-reference": "0.1.2-alpha.2",
247
- "@deepseek-ai/dsh-invariants": "0.1.2-alpha.2",
248
- "@deepseek-ai/dsh-jobs": "0.1.2-alpha.2",
249
- "@deepseek-ai/dsh-llm": "0.1.2-alpha.2",
250
- "@deepseek-ai/dsh-message-feedback": "0.1.2-alpha.2",
251
- "@deepseek-ai/dsh-native-command": "0.1.2-alpha.2",
252
- "@deepseek-ai/dsh-permission-presets": "0.1.2-alpha.2",
253
- "@deepseek-ai/dsh-plan-mode": "0.1.2-alpha.2",
254
- "@deepseek-ai/dsh-session": "0.1.2-alpha.2",
255
- "@deepseek-ai/dsh-session-projection": "0.1.2-alpha.2",
256
- "@deepseek-ai/dsh-session-projection-cache": "0.1.2-alpha.2",
257
- "@deepseek-ai/dsh-session-stats": "0.1.2-alpha.2",
258
- "@deepseek-ai/dsh-session-query": "0.1.2-alpha.2",
259
- "@deepseek-ai/dsh-session-reference": "0.1.2-alpha.2",
260
- "@deepseek-ai/dsh-schedule": "0.1.2-alpha.2",
261
- "@deepseek-ai/dsh-session-title": "0.1.2-alpha.2",
262
- "@deepseek-ai/dsh-settings": "0.1.2-alpha.2",
263
- "@deepseek-ai/dsh-subagent": "0.1.2-alpha.2",
264
- "@deepseek-ai/dsh-token-meter": "0.1.2-alpha.2",
265
- "@deepseek-ai/dsh-tool-todo": "0.1.2-alpha.2",
266
- "@deepseek-ai/dsh-tools": "0.1.2-alpha.2",
267
- "@deepseek-ai/dsh-session-persistence": "0.1.2-alpha.2",
268
- "@deepseek-ai/dsh-subprocess": "0.1.2-alpha.2",
269
- "@deepseek-ai/dsh-user-approval": "0.1.2-alpha.2",
270
- "@deepseek-ai/dsh-user-questions": "0.1.2-alpha.2",
271
- "@deepseek-ai/dsh-workspace": "0.1.2-alpha.2",
238
+ "@deepseek-ai/dsh-agent": "0.1.2-rc.1",
239
+ "@deepseek-ai/dsh-agent-default-model": "0.1.2-rc.1",
240
+ "@deepseek-ai/dsh-agent-presets": "0.1.2-rc.1",
241
+ "@deepseek-ai/dsh-cmdline": "0.1.2-rc.1",
242
+ "@deepseek-ai/dsh-compaction": "0.1.2-rc.1",
243
+ "@deepseek-ai/dsh-commands": "0.1.2-rc.1",
244
+ "@deepseek-ai/dsh-credentials": "0.1.2-rc.1",
245
+ "@deepseek-ai/dsh-fs": "0.1.2-rc.1",
246
+ "@deepseek-ai/dsh-file-reference": "0.1.2-rc.1",
247
+ "@deepseek-ai/dsh-invariants": "0.1.2-rc.1",
248
+ "@deepseek-ai/dsh-jobs": "0.1.2-rc.1",
249
+ "@deepseek-ai/dsh-llm": "0.1.2-rc.1",
250
+ "@deepseek-ai/dsh-message-feedback": "0.1.2-rc.1",
251
+ "@deepseek-ai/dsh-native-command": "0.1.2-rc.1",
252
+ "@deepseek-ai/dsh-permission-presets": "0.1.2-rc.1",
253
+ "@deepseek-ai/dsh-plan-mode": "0.1.2-rc.1",
254
+ "@deepseek-ai/dsh-session": "0.1.2-rc.1",
255
+ "@deepseek-ai/dsh-session-projection": "0.1.2-rc.1",
256
+ "@deepseek-ai/dsh-session-projection-cache": "0.1.2-rc.1",
257
+ "@deepseek-ai/dsh-session-stats": "0.1.2-rc.1",
258
+ "@deepseek-ai/dsh-session-query": "0.1.2-rc.1",
259
+ "@deepseek-ai/dsh-session-reference": "0.1.2-rc.1",
260
+ "@deepseek-ai/dsh-schedule": "0.1.2-rc.1",
261
+ "@deepseek-ai/dsh-session-title": "0.1.2-rc.1",
262
+ "@deepseek-ai/dsh-settings": "0.1.2-rc.1",
263
+ "@deepseek-ai/dsh-subagent": "0.1.2-rc.1",
264
+ "@deepseek-ai/dsh-token-meter": "0.1.2-rc.1",
265
+ "@deepseek-ai/dsh-tool-todo": "0.1.2-rc.1",
266
+ "@deepseek-ai/dsh-tools": "0.1.2-rc.1",
267
+ "@deepseek-ai/dsh-session-persistence": "0.1.2-rc.1",
268
+ "@deepseek-ai/dsh-subprocess": "0.1.2-rc.1",
269
+ "@deepseek-ai/dsh-user-approval": "0.1.2-rc.1",
270
+ "@deepseek-ai/dsh-user-questions": "0.1.2-rc.1",
271
+ "@deepseek-ai/dsh-workspace": "0.1.2-rc.1",
272
272
  "@deepseek-ai/cordis": "4.0.2",
273
273
  "@deepseek-ai/schemastery": "3.18.2",
274
274
  "@types/react": "~18.3.1",
275
- "@lingxi-ai-cn/dsh-session-export": "0.1.7-alpha.2",
276
- "@lingxi-ai-cn/dsh-plugin-hub": "0.1.7-alpha.2"
275
+ "@lingxi-ai-cn/dsh-session-export": "0.1.8-rc.1",
276
+ "@lingxi-ai-cn/dsh-plugin-hub": "0.1.8-rc.1"
277
277
  }
278
278
  }