dsh-mnemon 0.5.15 → 0.5.17

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.
@@ -37,6 +37,10 @@ export interface MemorySourcePageProps {
37
37
  /** Opaque navigation data owned by this Source page. */
38
38
  navigationInput?: MemoryJsonValue;
39
39
  onRefresh?(): void;
40
+ /** Reset only this workbench's page scroll when Source-owned navigation changes. */
41
+ onResetScroll?(): void;
42
+ /** Reveal a descendant in this canvas only, below the Source's measured sticky header. */
43
+ onRevealElement?(element: HTMLElement, topInset?: number): void;
40
44
  /** Optional, Source-bound product preferences; no raw settings service or secrets. */
41
45
  preferences?: {
42
46
  value: MemoryJsonValue;
@@ -8,7 +8,7 @@ export declare const MNEMON_SOURCE_CONFIGURATION_MUTATE: "configuration";
8
8
  export type MemorySourcePageComponent = (props: MemorySourcePageProps) => ReactNode;
9
9
  /** The existing DSH Slot capability narrowed to this one child Slot. */
10
10
  export interface MemorySourceUIContext {
11
- locale?: {
11
+ locale: {
12
12
  bind(namespace: 'mnemon'): import('./locales.ts').MnemonTranslate;
13
13
  };
14
14
  slots: {
@@ -23,7 +23,7 @@ export interface MemorySourceUIContext {
23
23
  };
24
24
  }
25
25
  interface MemorySourcePageDirectoryContext {
26
- locale?: {
26
+ locale: {
27
27
  getSnapshot(): unknown;
28
28
  subscribe(listener: () => void): () => void;
29
29
  };
@@ -1,4 +1,3 @@
1
- import * as primitives from '@deepseek-ai/dsh-client-ui-primitives';
2
- import type { ComponentType } from 'react';
3
- export declare const IconChevronLeftOutline14: ComponentType<primitives.IconProps>;
4
- export declare const IconDataOutline16: ComponentType<primitives.IconProps>;
1
+ export { IconCloseOutlineRegular, IconRefreshOutlineRegular, IconSettingsOutlineRegular } from '@deepseek-ai/dsh-client-ui-primitives';
2
+ export declare const IconChevronLeftOutline14: (props: import("@deepseek-ai/dsh-client-ui-primitives").IconProps) => import("react").JSX.Element;
3
+ export declare const IconDataOutline16: (props: import("@deepseek-ai/dsh-client-ui-primitives").IconProps) => import("react").JSX.Element;
@@ -116,19 +116,45 @@ export interface MemoryStrategyManifest {
116
116
  typeId: string;
117
117
  packageName: string;
118
118
  deterministic: true;
119
+ /** Source roles this Strategy may select; [ANY_MEMORY_SOURCE_ROLE] accepts every role. */
119
120
  supportedSourceRoles: string[];
120
121
  maxSources: number;
121
122
  maxRoutes: number;
122
123
  maxActions: number;
123
- /** Exclusive contribution slots owned by this Strategy, not Core vocabulary. */
124
+ /** Exclusive contribution slots this Strategy accepts; standard slots follow Core's value contracts. */
124
125
  extensionSlots?: string[];
125
126
  }
126
- /** An additive plugin targets one explicit Strategy contract, never replaces it. */
127
+ /** Extension target for every selected Strategy that declares the extension's standard slot. */
128
+ export declare const ANY_MEMORY_STRATEGY: "*";
129
+ /** Strategy role list entry for a role-agnostic Strategy that may select any Source. */
130
+ export declare const ANY_MEMORY_SOURCE_ROLE: "*";
131
+ /** Standard View extension slots, each with one public value contract any Strategy may accept. */
132
+ export declare const MEMORY_VIEW_EXTENSION_SLOTS: readonly ["selection", "projection", "capture"];
133
+ export type MemoryViewExtensionSlot = typeof MEMORY_VIEW_EXTENSION_SLOTS[number];
134
+ export interface MemoryViewExtensionValues {
135
+ /** Admitted Source instances in priority order; writableSourceKeys keeps actions on a subset. */
136
+ selection: {
137
+ sourceKeys: string[];
138
+ writableSourceKeys?: string[];
139
+ };
140
+ /** Ceiling for resident projection characters within the Host budget. */
141
+ projection: {
142
+ maxProjectionCharacters: number;
143
+ };
144
+ /** Asks the current model to record qualified durable facts through Source-local actions. */
145
+ capture: {
146
+ instruction: string;
147
+ actionIds: string[];
148
+ sourceKeys?: string[];
149
+ };
150
+ }
151
+ /** An additive plugin targets one Strategy contract, or any Strategy through a standard slot; it never replaces the Strategy. */
127
152
  export interface MemoryStrategyExtensionManifest {
128
153
  apiVersion: typeof COMPOSABLE_MEMORY_API_VERSION;
129
154
  kind: 'strategy-extension';
130
155
  typeId: string;
131
156
  packageName: string;
157
+ /** One Strategy typeId, or ANY_MEMORY_STRATEGY with a standard slot. */
132
158
  strategyTypeId: string;
133
159
  slot: string;
134
160
  deterministic: true;
@@ -1,4 +1,4 @@
1
- import z from 'schemastery';
1
+ import z from '@deepseek-ai/schemastery';
2
2
  export { resolveEmbedding, resolvePersistenceStrategy, resolveRecallQuality } from 'dsh-mnemon-source-memory-spaces';
3
3
  import type { Config as SharedConfig, CustomPackConfig as SharedCustomPackConfig, InteractionConfig as SharedInteractionConfig, ResolvedConfig as SharedResolvedConfig, ResolvedInteractionConfig as SharedResolvedInteractionConfig } from "./protocol.ts";
4
4
  export { DEFAULT_IDLE_REVIEW_MS, DEFAULT_EMBEDDING_ENDPOINT, DEFAULT_EMBEDDING_MODEL, DEFAULT_EMBEDDING_PROTOCOL, DEFAULT_RECALL_CANDIDATE_MULTIPLIER, DEFAULT_RECALL_HIGH_SCORE_THRESHOLD, DEFAULT_RECALL_LIMIT, DEFAULT_RECALL_LOW_SCORE_THRESHOLD, DEFAULT_RECALL_MAX_MEDIUM_RESULTS, DEFAULT_RECALL_MAX_UNKNOWN_RESULTS, DEFAULT_RECALL_QUALITY_POLICY, DEFAULT_RUNTIME_MAINTENANCE_MAX_TOKENS, DEFAULT_RUNTIME_MEMORY_LIMIT_BYTES, DEFAULT_RUNTIME_USER_LIMIT_BYTES, DEFAULT_TIMEOUT_MS, MAX_RUNTIME_MAINTENANCE_MAX_TOKENS, MAX_RUNTIME_MEMORY_LIMIT_BYTES, } from './config-values.ts';
@@ -1,11 +1,11 @@
1
- import type { Volatile } from '@deepseek-ai/cosmokit';
2
- import type z from 'schemastery';
1
+ import { type Volatile } from '@deepseek-ai/cosmokit';
2
+ import z from '@deepseek-ai/schemastery';
3
3
  import { type Config } from './config.ts';
4
4
  /** DSH keeps these references stable while committing live profile edits. */
5
5
  export type LiveHostConfig = {
6
6
  [Key in keyof Config]-?: Key extends 'remoteAccess' ? Config[Key] : Volatile<Config[Key]>;
7
7
  };
8
- /** Read a detached configuration snapshot from either DSH generation. */
8
+ /** Read a detached snapshot of the live profile configuration. */
9
9
  export declare function plainHostConfig(value?: unknown): Config;
10
10
  /** Profile Config for live forms; transport authority retains normal remounts. */
11
- export declare const LiveConfig: z<import("./protocol.ts").Config> | z<import("./protocol.ts").Config, LiveHostConfig>;
11
+ export declare const LiveConfig: z<import("./protocol.ts").Config, LiveHostConfig>;
@@ -11,6 +11,10 @@ export interface MemoryTopologyDefinition {
11
11
  }>;
12
12
  }
13
13
  export interface MemoryCompositionStatus {
14
+ /** Whether a composition serves new turns. A rejected change can leave the previous one serving. */
15
+ serving: boolean;
16
+ /** The main Strategy composing the serving composition, which a fallback can make differ from the selected one. */
17
+ strategyTypeId?: string;
14
18
  evaluation: import('../core/contracts/index.ts').MemoryCompositionEvaluationReport;
15
19
  sources: MemorySourceManagementInstance[];
16
20
  configuration: ResolvedMemoryTopologyConfig;
@@ -104,7 +108,7 @@ export type RpcResult<T = JsonValue> = {
104
108
  error: RpcError;
105
109
  };
106
110
  /** Public DSH browser RPC face plus the transport boundary needed to gate local-only writes. */
107
- export type ClientConnectionHandle = Pick<DshClientConnectionHandle, 'rpc'> & Partial<Pick<DshClientConnectionHandle, 'isLoopback'>>;
111
+ export type ClientConnectionHandle = Pick<DshClientConnectionHandle, 'rpc' | 'isLoopback'>;
108
112
  export interface ClientSettingsSnapshot<T> {
109
113
  status: 'loading' | 'ready' | 'unavailable';
110
114
  value?: T;
@@ -117,11 +121,7 @@ export interface ClientSettingsSnapshot<T> {
117
121
  export interface ClientSettingsScope<T> {
118
122
  getSnapshot(): ClientSettingsSnapshot<T>;
119
123
  subscribe(listener: () => void): () => void;
120
- set(field: string, value: unknown): Promise<void>;
121
- unset(field: string): Promise<void>;
122
- setPath(path: string[], value: unknown): Promise<void>;
123
- unsetPath(path: string[]): Promise<void>;
124
- mutate?(ops: SettingsOperation[]): Promise<void>;
124
+ mutate(ops: SettingsOperation[]): Promise<void>;
125
125
  }
126
126
  export type SettingsOperation = {
127
127
  op: 'set';
@@ -220,7 +220,7 @@ export interface Config {
220
220
  displayMode?: MnemonDisplayMode | 'buildin';
221
221
  tabEnabled?: boolean;
222
222
  writeEnabled?: boolean;
223
- /** DSH rc.2 management-channel authority; ignored by DSH 0.1.2-alpha.1. */
223
+ /** Remote management grant for paired pages; loopback pages keep full access. */
224
224
  remoteAccess?: 'read-only' | 'trusted-host';
225
225
  lifecycleEnabled?: boolean;
226
226
  recallMode?: 'guided' | 'off';
@@ -297,7 +297,7 @@ export interface ResolvedConfig {
297
297
  displayMode: MnemonDisplayMode;
298
298
  tabEnabled: boolean;
299
299
  writeEnabled: boolean;
300
- /** DSH rc.2 management-channel authority; ignored by DSH 0.1.2-alpha.1. */
300
+ /** Remote management grant for paired pages; loopback pages keep full access. */
301
301
  remoteAccess: 'read-only' | 'trusted-host';
302
302
  lifecycleEnabled: boolean;
303
303
  recallMode: 'guided' | 'off';
@@ -523,6 +523,8 @@ export interface StatusView {
523
523
  };
524
524
  }
525
525
  export type MnemonPackComponent = 'runtime' | 'documents' | 'memory-spaces';
526
+ /** The Sources that keep their data in Mnemon's data directory, in the order a backup lists them. */
527
+ export declare const MNEMON_PACK_COMPONENTS: readonly ["runtime", "documents", "memory-spaces"];
526
528
  export type MnemonPackScope = 'full' | MnemonPackComponent;
527
529
  export type MnemonPackImportMode = 'merge' | 'replace';
528
530
  export interface MnemonPackComponentSummary {
@@ -543,6 +545,12 @@ export interface MnemonPackManifest {
543
545
  components: MnemonPackComponent[];
544
546
  summary: MnemonPackComponentSummary[];
545
547
  }
548
+ /** Where memory lives now, and where the global scope keeps it when no directory is chosen. */
549
+ export interface MnemonPackTarget {
550
+ root: string;
551
+ scope: StorageScopeKind;
552
+ defaultRoot: string;
553
+ }
546
554
  export interface MnemonPackExport {
547
555
  fileName: string;
548
556
  mimeType: 'application/zip';
@@ -8,9 +8,14 @@ export interface MemoryPluginPreference {
8
8
  enabled: boolean;
9
9
  config: Record<string, MemoryJsonValue>;
10
10
  }
11
+ /** Saved form: enablement lives in the DSH profile patch once the plugin manager can write it. */
12
+ export interface MemoryPluginSavedPreference {
13
+ enabled?: boolean;
14
+ config: Record<string, MemoryJsonValue>;
15
+ }
11
16
  export interface MemoryViewPreferences {
12
17
  strategyTypeId?: string;
13
- entries: Record<string, MemoryPluginPreference>;
18
+ entries: Record<string, MemoryPluginSavedPreference>;
14
19
  }
15
20
  export interface MemoryPluginEntryView {
16
21
  entryId: string;
@@ -4,6 +4,7 @@ export { defineMemoryPlugin, defineMemorySource, defineMemoryStrategy, defineMem
4
4
  export { record as memoryInputRecord, text as memoryInputText, integer as memoryInputInteger, stringArray as memoryInputStringArray, truncate as truncateMemoryText, receipt as createMemoryMutationReceipt, migrationLineage as memoryInputMigrationLineage } from './input.ts';
5
5
  export { memoryConfigurationDigest } from './input.ts';
6
6
  export { defineMemoryStrategyConfiguration } from './strategy-configuration.ts';
7
+ export { defineMemoryViewExtension, memoryViewExtensionValues, validateMemoryViewExtension } from './view-extensions.ts';
7
8
  export type { MemoryStrategyConfiguration, MemoryStrategyConfigurationField, MemoryLocalizedText } from './strategy-configuration.ts';
8
9
  export { withMemoryStorageLock } from './storage-lock.ts';
9
- export type { ComposableMemoryView, MemoryActionOffer, MemoryCompositionEvaluationReport, MemoryEvidence, MemoryMutationReceipt, MemoryPluginDescriptor, MemoryPluginLocalizedText, MemoryPluginProvidedCapability, MemoryPluginRole, MemoryMutationCompletion, MemoryReadGrant, MemorySourceDefinition, MemorySourceFacts, MemoryAvailableSource, MemorySourceManifest, MemorySourcePresentation, MemorySourcePresentationItem, MemorySourceRuntime, MemorySourceViewContext, MemoryStrategyDefinition, MemoryStrategyExtensionDefinition, MemoryStrategyExtensionManifest, MemoryStrategyContribution, MemoryStrategyTurn, MemoryStrategyReadRequest, MemoryStrategyRead, MemoryStrategyManifest, MemoryViewRequest, MemoryViewSourcePresentation, MemoryViewSpec, MemoryViewGuidance, } from "../core/contracts/index.ts";
10
+ export type { ComposableMemoryView, MemoryActionOffer, MemoryCompositionEvaluationReport, MemoryEvidence, MemoryMutationReceipt, MemoryPluginDescriptor, MemoryPluginLocalizedText, MemoryPluginProvidedCapability, MemoryPluginRole, MemoryMutationCompletion, MemoryReadGrant, MemorySourceDefinition, MemorySourceFacts, MemoryAvailableSource, MemorySourceManifest, MemorySourcePresentation, MemorySourcePresentationItem, MemorySourceRuntime, MemorySourceViewContext, MemoryStrategyDefinition, MemoryStrategyExtensionDefinition, MemoryStrategyExtensionManifest, MemoryStrategyContribution, MemoryStrategyTurn, MemoryStrategyReadRequest, MemoryStrategyRead, MemoryStrategyManifest, MemoryViewRequest, MemoryViewSourcePresentation, MemoryViewSpec, MemoryViewGuidance, MemoryViewExtensionSlot, MemoryViewExtensionValues, } from "../core/contracts/index.ts";
@@ -20,6 +20,7 @@ export interface MemoryTestSource {
20
20
  export interface MemoryTestOptions {
21
21
  strategyInstanceKey?: string;
22
22
  strategyTypeId?: string;
23
+ strategyFallback?: 'sole-strategy';
23
24
  sourceConfiguration?: (source: MemoryTestSource) => Readonly<Record<string, MemoryJsonValue>>;
24
25
  sourceCapabilities?: (source: MemoryTestSource) => readonly MemoryCapability[];
25
26
  now?: () => Date;
@@ -0,0 +1,12 @@
1
+ import { type MemoryAvailableSource, type MemoryJsonValue, type MemoryStrategyContribution, type MemoryStrategyExtensionDefinition, type MemoryViewExtensionSlot, type MemoryViewExtensionValues, type MemoryViewRequest } from '../core/contracts/index.ts';
2
+ /** Validate one standard View extension value; a Strategy validates again before interpreting it. */
3
+ export declare function validateMemoryViewExtension<K extends MemoryViewExtensionSlot>(slot: K, value: MemoryJsonValue): MemoryViewExtensionValues[K];
4
+ /** Standard values contributed to one composition; each slot has at most one owner. */
5
+ export declare function memoryViewExtensionValues(contributions: readonly MemoryStrategyContribution[]): Partial<MemoryViewExtensionValues>;
6
+ /** An extension for whichever selected Strategy declares its standard slot. */
7
+ export declare function defineMemoryViewExtension<K extends MemoryViewExtensionSlot>(definition: {
8
+ typeId: string;
9
+ packageName: string;
10
+ slot: K;
11
+ contribute(request: MemoryViewRequest, sources: readonly MemoryAvailableSource[]): MemoryViewExtensionValues[K];
12
+ }): MemoryStrategyExtensionDefinition;
package/locale/en.json ADDED
@@ -0,0 +1,3 @@
1
+ {
2
+ "meta": {}
3
+ }
package/locale/zh.json ADDED
@@ -0,0 +1,6 @@
1
+ {
2
+ "meta": {
3
+ "title": "可组合记忆 (dsh-mnemon)",
4
+ "description": "面向 DeepSeek Harness 的可组合视图记忆。记忆来源与策略可插拔,开箱即用提供分层记忆。"
5
+ }
6
+ }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "dsh-mnemon",
3
- "version": "0.5.15",
4
- "description": "Composable three-tier memory control plane for DeepSeek Harness: persistent runtime context, searchable project documents, pluggable long-term memory, guarded strategies, WebUI, and headless tools.",
3
+ "version": "0.5.17",
4
+ "description": "Composable, view-based memory for DeepSeek Harness. Pluggable sources and strategies, with layered memory out of the box.",
5
5
  "keywords": [
6
6
  "deepseek-harness",
7
7
  "deepseek-harness-plugin",
@@ -88,9 +88,11 @@
88
88
  "types": "./lib/types/src/sdk/testing.d.ts",
89
89
  "default": "./lib/testing.js"
90
90
  },
91
- "./package.json": "./package.json"
91
+ "./package.json": "./package.json",
92
+ "./locale/*.json": "./locale/*.json"
92
93
  },
93
94
  "files": [
95
+ "locale",
94
96
  "lib",
95
97
  "bin/repair-legacy-session.mjs",
96
98
  "cordis.patch.yml",
@@ -108,6 +110,8 @@
108
110
  "inject": [
109
111
  "@deepseek-ai/dsh-client-connection",
110
112
  "@deepseek-ai/dsh-client-ui-conversation",
113
+ "@deepseek-ai/dsh-client-ui-layout",
114
+ "@deepseek-ai/dsh-client-ui-sidebar",
111
115
  "@deepseek-ai/dsh-client-ui-renderer",
112
116
  "@deepseek-ai/dsh-client-ui-settings",
113
117
  "@deepseek-ai/dsh-client-ui-session",
@@ -118,7 +122,6 @@
118
122
  },
119
123
  "scripts": {
120
124
  "build": "tsdown && tsc -p tsconfig.types.json && node scripts/link-bundle-declarations.mjs",
121
- "bundle": "tsdown",
122
125
  "prepublishOnly": "pnpm run verify",
123
126
  "lint:package": "publint --strict && attw --pack . --profile esm-only --quiet",
124
127
  "typecheck": "tsc -p tsconfig.json --noEmit",
@@ -135,75 +138,76 @@
135
138
  "release:intent": "node scripts/check-release-intent.mjs",
136
139
  "release:status": "changeset status",
137
140
  "release:version": "changeset version && node scripts/sync-release-metadata.mjs && pnpm install --lockfile-only",
138
- "dsh:link-source": "node scripts/link-dsh-source.mjs",
139
- "dsh:restore-registry": "node scripts/link-dsh-source.mjs --restore",
140
141
  "release:check": "node scripts/release.mjs --check"
141
142
  },
142
143
  "dependencies": {
143
- "@deepseek-ai/cosmokit": "^1.8.4",
144
- "dsh-mnemon-provider-byterover": "0.5.4",
145
- "dsh-mnemon-provider-hindsight": "0.5.4",
146
- "dsh-mnemon-provider-holographic": "0.5.4",
147
- "dsh-mnemon-provider-honcho": "0.5.4",
148
- "dsh-mnemon-provider-mem0": "0.5.4",
149
- "dsh-mnemon-provider-mnemon-native": "0.5.5",
150
- "dsh-mnemon-provider-openviking": "0.5.6",
151
- "dsh-mnemon-provider-retaindb": "0.5.4",
152
- "dsh-mnemon-provider-supermemory": "0.5.4",
153
- "dsh-mnemon-source-documents": "0.5.6",
154
- "dsh-mnemon-source-memory-spaces": "0.5.9",
155
- "dsh-mnemon-source-runtime": "0.5.9",
156
- "dsh-mnemon-strategy-auto-capture": "0.5.4",
157
- "dsh-mnemon-strategy-default-three-tier": "0.5.6",
158
- "dsh-mnemon-strategy-light-context": "0.5.4",
159
- "dsh-mnemon-strategy-scoped": "0.5.4",
144
+ "@deepseek-ai/cosmokit": "^1.8.5",
145
+ "@deepseek-ai/schemastery": "^3.18.4",
146
+ "dsh-mnemon-provider-byterover": "0.5.5",
147
+ "dsh-mnemon-provider-hindsight": "0.5.5",
148
+ "dsh-mnemon-provider-holographic": "0.5.5",
149
+ "dsh-mnemon-provider-honcho": "0.5.5",
150
+ "dsh-mnemon-provider-mem0": "0.5.5",
151
+ "dsh-mnemon-provider-mnemon-native": "0.5.6",
152
+ "dsh-mnemon-provider-openviking": "0.5.7",
153
+ "dsh-mnemon-provider-retaindb": "0.5.5",
154
+ "dsh-mnemon-provider-supermemory": "0.5.5",
155
+ "dsh-mnemon-source-documents": "0.5.7",
156
+ "dsh-mnemon-source-memory-spaces": "0.5.11",
157
+ "dsh-mnemon-source-runtime": "0.5.10",
158
+ "dsh-mnemon-strategy-auto-capture": "0.5.5",
159
+ "dsh-mnemon-strategy-default-three-tier": "0.5.7",
160
+ "dsh-mnemon-strategy-general": "0.5.1",
161
+ "dsh-mnemon-strategy-light-context": "0.5.5",
162
+ "dsh-mnemon-strategy-scoped": "0.5.5",
160
163
  "fflate": "^0.8.3",
161
- "schemastery": "^3.18.0",
162
- "schemastery-live": "npm:@deepseek-ai/schemastery@^3.18.3",
163
164
  "yaml": "^2.9.0",
164
165
  "zod": "^4.4.3"
165
166
  },
166
167
  "peerDependencies": {
167
- "@deepseek-ai/cordis": "^4.0.1",
168
- "@deepseek-ai/dsh-client-ui-primitives": "^0.1.5-rc.1 || ^0.1.6-alpha.2 || ^0.1.7-alpha.1",
169
- "@deepseek-ai/dsh-typert-protocol": "^0.1.5-rc.1 || ^0.1.6-alpha.2 || ^0.1.7-alpha.1",
168
+ "@deepseek-ai/cordis": "^4.0.4",
169
+ "@deepseek-ai/dsh-client-ui-primitives": "^0.1.7-rc.2",
170
+ "@deepseek-ai/dsh-typert-protocol": "^0.1.7-rc.2",
170
171
  "react": "^18.2.0",
171
172
  "react-dom": "^18.2.0"
172
173
  },
173
174
  "devDependencies": {
174
175
  "@arethetypeswrong/cli": "^0.18.5",
175
176
  "@changesets/cli": "^2.31.1",
176
- "@deepseek-ai/cordis": "^4.0.2",
177
- "@deepseek-ai/dsh": "0.1.5-rc.1",
178
- "@deepseek-ai/dsh-agent": "0.1.5-rc.1",
179
- "@deepseek-ai/dsh-agent-loop": "0.1.5-rc.1",
180
- "@deepseek-ai/dsh-api-gateway": "0.1.5-rc.1",
181
- "@deepseek-ai/dsh-client-connection": "0.1.5-rc.1",
182
- "@deepseek-ai/dsh-client-locale": "0.1.5-rc.1",
183
- "@deepseek-ai/dsh-client-store": "0.1.5-rc.1",
184
- "@deepseek-ai/dsh-client-ui-conversation": "0.1.5-rc.1",
185
- "@deepseek-ai/dsh-client-ui-layout": "0.1.5-rc.1",
186
- "@deepseek-ai/dsh-client-ui-primitives": "0.1.5-rc.1",
187
- "@deepseek-ai/dsh-client-ui-renderer": "0.1.5-rc.1",
188
- "@deepseek-ai/dsh-client-ui-session": "0.1.5-rc.1",
189
- "@deepseek-ai/dsh-client-ui-settings": "0.1.5-rc.1",
190
- "@deepseek-ai/dsh-client-ui-slots": "0.1.5-rc.1",
191
- "@deepseek-ai/dsh-client-ui-tool": "0.1.5-rc.1",
192
- "@deepseek-ai/dsh-invariants": "0.1.5-rc.1",
193
- "@deepseek-ai/dsh-llm": "0.1.5-rc.1",
194
- "@deepseek-ai/dsh-session": "0.1.5-rc.1",
195
- "@deepseek-ai/dsh-session-format-v0-to-v1": "0.1.5-rc.1",
196
- "@deepseek-ai/dsh-session-persistence-jsonl": "0.1.5-rc.1",
197
- "@deepseek-ai/dsh-session-projection": "0.1.5-rc.1",
198
- "@deepseek-ai/dsh-session-projection-legacy": "npm:@deepseek-ai/dsh-session-projection@0.1.0-rc.8",
199
- "@deepseek-ai/dsh-session-query": "0.1.5-rc.1",
200
- "@deepseek-ai/dsh-subagent": "0.1.5-rc.1",
201
- "@deepseek-ai/dsh-subagent-spawn-in-process": "0.1.5-rc.1",
202
- "@deepseek-ai/dsh-system-prompt": "0.1.5-rc.1",
203
- "@deepseek-ai/dsh-tools": "0.1.5-rc.1",
204
- "@deepseek-ai/dsh-typert-protocol": "0.1.5-rc.1",
205
- "@deepseek-ai/dsh-typert-registry": "0.1.5-rc.1",
206
- "@deepseek-ai/schemastery": "3.18.2",
177
+ "@deepseek-ai/cordis": "^4.0.4",
178
+ "@deepseek-ai/dsh": "0.1.7-rc.2",
179
+ "@deepseek-ai/dsh-agent": "0.1.7-rc.2",
180
+ "@deepseek-ai/dsh-agent-loop": "0.1.7-rc.2",
181
+ "@deepseek-ai/dsh-api-gateway": "0.1.7-rc.2",
182
+ "@deepseek-ai/dsh-client-connection": "0.1.7-rc.2",
183
+ "@deepseek-ai/dsh-client-locale": "0.1.7-rc.2",
184
+ "@deepseek-ai/dsh-client-store": "0.1.7-rc.2",
185
+ "@deepseek-ai/dsh-client-ui-chat": "0.1.7-rc.2",
186
+ "@deepseek-ai/dsh-client-ui-conversation": "0.1.7-rc.2",
187
+ "@deepseek-ai/dsh-client-ui-layout": "0.1.7-rc.2",
188
+ "@deepseek-ai/dsh-client-ui-plugin-manager": "0.1.7-rc.2",
189
+ "@deepseek-ai/dsh-client-ui-primitives": "0.1.7-rc.2",
190
+ "@deepseek-ai/dsh-client-ui-renderer": "0.1.7-rc.2",
191
+ "@deepseek-ai/dsh-client-ui-session": "0.1.7-rc.2",
192
+ "@deepseek-ai/dsh-client-ui-settings": "0.1.7-rc.2",
193
+ "@deepseek-ai/dsh-client-ui-sidebar": "0.1.7-rc.2",
194
+ "@deepseek-ai/dsh-client-ui-slots": "0.1.7-rc.2",
195
+ "@deepseek-ai/dsh-client-ui-tool": "0.1.7-rc.2",
196
+ "@deepseek-ai/dsh-invariants": "0.1.7-rc.2",
197
+ "@deepseek-ai/dsh-llm": "0.1.7-rc.2",
198
+ "@deepseek-ai/dsh-session": "0.1.7-rc.2",
199
+ "@deepseek-ai/dsh-session-format-v0-to-v1": "0.1.7-rc.2",
200
+ "@deepseek-ai/dsh-session-persistence-jsonl": "0.1.7-rc.2",
201
+ "@deepseek-ai/dsh-session-projection": "0.1.7-rc.2",
202
+ "@deepseek-ai/dsh-session-query": "0.1.7-rc.2",
203
+ "@deepseek-ai/dsh-subagent": "0.1.7-rc.2",
204
+ "@deepseek-ai/dsh-subagent-spawn-in-process": "0.1.7-rc.2",
205
+ "@deepseek-ai/dsh-system-prompt": "0.1.7-rc.2",
206
+ "@deepseek-ai/dsh-tools": "0.1.7-rc.2",
207
+ "@deepseek-ai/dsh-typert-protocol": "0.1.7-rc.2",
208
+ "@deepseek-ai/dsh-typert-registry": "0.1.7-rc.2",
209
+ "@deepseek-ai/dsh-util-code-language": "0.1.7-rc.2",
210
+ "@deepseek-ai/dsh-util-workspace-path": "0.1.7-rc.2",
207
211
  "@shikijs/langs": "^4.3.1",
208
212
  "@testing-library/react": "^16.3.0",
209
213
  "@types/node": "^22.0.0",
@@ -211,7 +215,8 @@
211
215
  "@types/react-dom": "^18.3.0",
212
216
  "anser": "^2.3.5",
213
217
  "clsx": "^2.1.1",
214
- "cosmokit-legacy": "npm:@deepseek-ai/cosmokit@1.8.3",
218
+ "diff": "^9.0.0",
219
+ "immer": "^10.1.1",
215
220
  "jsdom": "^26.1.0",
216
221
  "katex": "^0.16.47",
217
222
  "lightningcss": "^1.29.0",
@@ -231,9 +236,11 @@
231
236
  "react-dom": "^18.2.0",
232
237
  "semver": "^7.8.5",
233
238
  "shiki": "^4.3.1",
239
+ "simple-icons": "16.31.0",
234
240
  "tsdown": "^0.22.0",
235
241
  "typescript": "^5.9.0",
236
- "vitest": "^3.2.0"
242
+ "vitest": "^3.2.0",
243
+ "zustand": "~4.4.7"
237
244
  },
238
245
  "bin": {
239
246
  "dsh-mnemon-repair-session": "bin/repair-legacy-session.mjs"
@@ -1,35 +0,0 @@
1
- //#region src/core/contracts/plugin.ts
2
- /** Declarative identity and graph relations shared by every Mnemon plugin. */
3
- const MEMORY_PLUGIN_API_VERSION = "dsh-mnemon/plugin/v1";
4
- //#endregion
5
- //#region src/core/contracts/view.ts
6
- const COMPOSABLE_MEMORY_API_VERSION = "dsh-mnemon/v1";
7
- const DEFAULT_MEMORY_VIEW_BUDGET = Object.freeze({
8
- maxProjectionCharacters: 65536,
9
- maxRoutes: 16,
10
- maxActions: 16,
11
- maxEvidenceResults: 16,
12
- maxEvidenceCharacters: 16384
13
- });
14
- //#endregion
15
- //#region src/core/contracts/index.ts
16
- const MEMORY_CAPABILITIES = [
17
- "status",
18
- "project",
19
- "recall",
20
- "search",
21
- "read",
22
- "browse",
23
- "write",
24
- "archive",
25
- "graph",
26
- "related",
27
- "link",
28
- "forget",
29
- "maintain",
30
- "export",
31
- "import"
32
- ];
33
- const MEMORY_SOURCE_MODES = ["eager", "routed"];
34
- //#endregion
35
- export { MEMORY_PLUGIN_API_VERSION as a, DEFAULT_MEMORY_VIEW_BUDGET as i, MEMORY_SOURCE_MODES as n, COMPOSABLE_MEMORY_API_VERSION as r, MEMORY_CAPABILITIES as t };