dsh-mnemon-source-memory-spaces 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.
@@ -1,5 +1,5 @@
1
1
  import { CATEGORIES, Category, EDGE_TYPES, EdgeType, INTENTS, Insight, Intent, JsonValue, MemoryBody, MemoryBodyProvider, MemoryBodyStats, MemoryGraphEdge, MemoryGraphNode, MemoryGraphSnapshot, MemoryListRequest, MemoryProviderCapabilities, MemoryProviderConfigField, MemoryProviderConfigOption, MemoryProviderConnection, MemoryProviderConnectionValue, MemoryProviderDescriptor, MemoryProviderIcon, MemoryProviderId, MemorySpace, MemorySpaceProvider, MemorySpaceStats, OpenVikingBodyConnection, OpenVikingSpaceConnection, RememberRequest, SOURCES, SearchRequest, Source } from "./contracts.js";
2
- import { C as ProviderSpaceStatus, S as ProviderSearchResult, _ as MemorySpaceNativeRunner, a as MemorySpaceProviderHost, b as ProviderMemorySpace, c as MemorySpaceProviderRuntimeContext, d as defineMemorySpaceProviderDefinition, f as MemoryProviderAdapter, g as MemorySpaceNativeRunOptions, h as MemorySpaceAuthority, i as MemorySpaceProviderEntry, l as MemorySpaceProviderScoreSemantics, m as MemoryProviderScoreSemantics, n as MemorySpaceProviderDefinition, o as MemorySpaceProviderManifest, p as MemoryProviderAdapterFactoryContext, r as MemorySpaceProviderDisposer, s as MemorySpaceProviderModule, t as MEMORY_SPACE_PROVIDER_API_VERSION, u as defineMemorySpaceProvider, v as NORMALIZED_RELEVANCE_SCORE, x as ProviderScoreSemantics, y as ProviderBodyStatus } from "./definitions-DwiEZSE_.js";
2
+ import { C as ProviderSearchResult, S as ProviderScoreSemantics, _ as MemorySpaceNativeRunner, a as MemorySpaceProviderHost, b as ProviderEntityIndex, c as MemorySpaceProviderRuntimeContext, d as defineMemorySpaceProviderDefinition, f as MemoryProviderAdapter, g as MemorySpaceNativeRunOptions, h as MemorySpaceAuthority, i as MemorySpaceProviderEntry, l as MemorySpaceProviderScoreSemantics, m as MemoryProviderScoreSemantics, n as MemorySpaceProviderDefinition, o as MemorySpaceProviderManifest, p as MemoryProviderAdapterFactoryContext, r as MemorySpaceProviderDisposer, s as MemorySpaceProviderModule, t as MEMORY_SPACE_PROVIDER_API_VERSION, u as defineMemorySpaceProvider, v as NORMALIZED_RELEVANCE_SCORE, w as ProviderSpaceStatus, x as ProviderMemorySpace, y as ProviderBodyStatus } from "./definitions-CtjNSwBS.js";
3
3
  //#region src/providers/http.d.ts
4
4
  interface HttpProviderOptions {
5
5
  label?: string;
@@ -60,4 +60,4 @@ declare const DEFAULT_MAX_OUTPUT_BYTES: number;
60
60
  /** Spawn without a shell, with bounded output and cooperative cancellation. */
61
61
  declare const runProcess: ProcessRunner;
62
62
  //#endregion
63
- export { CATEGORIES, type Category, DEFAULT_MAX_OUTPUT_BYTES, EDGE_TYPES, type EdgeType, HttpMemoryProvider, HttpProviderOptions, INTENTS, type Insight, type Intent, JsonRequestOptions, type JsonValue, MEMORY_SPACE_PROVIDER_API_VERSION, type MemoryBody, type MemoryBodyProvider, type MemoryBodyStats, type MemoryGraphEdge, type MemoryGraphNode, type MemoryGraphSnapshot, type MemoryListRequest, MemoryProviderAdapter, MemoryProviderAdapterFactoryContext, type MemoryProviderCapabilities, type MemoryProviderConfigField, type MemoryProviderConfigOption, type MemoryProviderConnection, type MemoryProviderConnectionValue, type MemoryProviderDescriptor, type MemoryProviderIcon, type MemoryProviderId, MemoryProviderScoreSemantics, type MemorySpace, MemorySpaceAuthority, MemorySpaceNativeRunOptions, MemorySpaceNativeRunner, type MemorySpaceProvider, type MemorySpaceProviderDefinition, type MemorySpaceProviderDisposer, type MemorySpaceProviderEntry, type MemorySpaceProviderHost, type MemorySpaceProviderManifest, type MemorySpaceProviderModule, type MemorySpaceProviderRuntimeContext, type MemorySpaceProviderScoreSemantics, type MemorySpaceStats, NORMALIZED_RELEVANCE_SCORE, type OpenVikingBodyConnection, type OpenVikingSpaceConnection, ProcessError, ProcessFailureReason, ProcessOptions, ProcessResult, ProcessRunner, ProviderBodyStatus, ProviderMemorySpace, ProviderScoreSemantics, ProviderSearchResult, ProviderSpaceStatus, type RememberRequest, SOURCES, type SearchRequest, type Source, defineMemorySpaceProvider, defineMemorySpaceProviderDefinition, firstArray, jsonArray, jsonNumber, jsonObject, jsonString, runProcess };
63
+ export { CATEGORIES, type Category, DEFAULT_MAX_OUTPUT_BYTES, EDGE_TYPES, type EdgeType, HttpMemoryProvider, HttpProviderOptions, INTENTS, type Insight, type Intent, JsonRequestOptions, type JsonValue, MEMORY_SPACE_PROVIDER_API_VERSION, type MemoryBody, type MemoryBodyProvider, type MemoryBodyStats, type MemoryGraphEdge, type MemoryGraphNode, type MemoryGraphSnapshot, type MemoryListRequest, MemoryProviderAdapter, MemoryProviderAdapterFactoryContext, type MemoryProviderCapabilities, type MemoryProviderConfigField, type MemoryProviderConfigOption, type MemoryProviderConnection, type MemoryProviderConnectionValue, type MemoryProviderDescriptor, type MemoryProviderIcon, type MemoryProviderId, MemoryProviderScoreSemantics, type MemorySpace, MemorySpaceAuthority, MemorySpaceNativeRunOptions, MemorySpaceNativeRunner, type MemorySpaceProvider, type MemorySpaceProviderDefinition, type MemorySpaceProviderDisposer, type MemorySpaceProviderEntry, type MemorySpaceProviderHost, type MemorySpaceProviderManifest, type MemorySpaceProviderModule, type MemorySpaceProviderRuntimeContext, type MemorySpaceProviderScoreSemantics, type MemorySpaceStats, NORMALIZED_RELEVANCE_SCORE, type OpenVikingBodyConnection, type OpenVikingSpaceConnection, ProcessError, ProcessFailureReason, ProcessOptions, ProcessResult, ProcessRunner, ProviderBodyStatus, ProviderEntityIndex, ProviderMemorySpace, ProviderScoreSemantics, ProviderSearchResult, ProviderSpaceStatus, type RememberRequest, SOURCES, type SearchRequest, type Source, defineMemorySpaceProvider, defineMemorySpaceProviderDefinition, firstArray, jsonArray, jsonNumber, jsonObject, jsonString, runProcess };
package/lib/testing.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { MemoryProviderConnection, MemoryProviderDescriptor, MemorySpace } from "./contracts.js";
2
- import { f as MemoryProviderAdapter, h as MemorySpaceAuthority, o as MemorySpaceProviderManifest, p as MemoryProviderAdapterFactoryContext, s as MemorySpaceProviderModule } from "./definitions-DwiEZSE_.js";
2
+ import { f as MemoryProviderAdapter, h as MemorySpaceAuthority, o as MemorySpaceProviderManifest, p as MemoryProviderAdapterFactoryContext, s as MemorySpaceProviderModule } from "./definitions-CtjNSwBS.js";
3
3
  //#region src/testing.d.ts
4
4
  interface MemorySpaceProviderTest {
5
5
  readonly registered: boolean;
@@ -1,4 +1,4 @@
1
- import type { CreateMemorySpaceRequest, EntityView, Insight, MemorySpace, MemorySpaceView, MemorySpaceMetadataMaintenanceResult, MemorySpaceCatalog, MemoryGraphSnapshot, MemoryListRequest, MemoryListView, MemoryReadSource, RememberRequest, SearchRequest, UpdateMemorySpaceRequest } from '../contracts.ts';
1
+ import type { CreateMemorySpaceRequest, EntityMemoriesView, EntityRelatedView, EntityView, Insight, MemorySpace, MemorySpaceView, MemorySpaceMetadataMaintenanceResult, MemorySpaceCatalog, MemoryGraphSnapshot, MemoryListRequest, MemoryListView, MemoryReadSource, RememberRequest, SearchRequest, UpdateMemorySpaceRequest } from '../contracts.ts';
2
2
  /**
3
3
  * Source-owned structural page API; the default bundle may supply agent-assisted callbacks.
4
4
  * body/bodies method and wire-field spellings remain compatible with existing
@@ -10,6 +10,10 @@ export interface MemorySpacesPageClient {
10
10
  graph(memoryBodyIds?: string[]): Promise<MemoryGraphSnapshot>;
11
11
  list(request?: MemoryListRequest): Promise<MemoryListView>;
12
12
  entities(entity?: string, limit?: number): Promise<EntityView>;
13
+ /** Optional for page clients written against an older Source; the Entities page then lists entities(entity) only. */
14
+ entityMemories?(entity: string, offset?: number, limit?: number): Promise<EntityMemoriesView>;
15
+ /** view: one id per page view; its next selection cancels the related read it is still waiting for. */
16
+ entityRelated?(entity: string, limit?: number, view?: string): Promise<EntityRelatedView>;
13
17
  search(request: SearchRequest): Promise<SearchResponse>;
14
18
  agentSearch(request: SearchRequest): Promise<AgentSearchResponse>;
15
19
  related(id: string, memoryBodyId?: string): Promise<Insight[]>;
@@ -235,6 +235,11 @@ export declare const EDGE_TYPES: readonly ["temporal", "semantic", "causal", "en
235
235
  export type Intent = 'WHY' | 'WHEN' | 'ENTITY' | 'GENERAL';
236
236
  export declare const INTENTS: readonly ["WHY", "WHEN", "ENTITY", "GENERAL"];
237
237
  export type RecallRelevanceTier = 'high' | 'medium' | 'low' | 'unknown';
238
+ /**
239
+ * One spelling-insensitive key per entity. The Host's entity index and the Client's graph
240
+ * both count an entity's memories by it, so their numbers agree.
241
+ */
242
+ export declare function normalizeEntityKey(entity: string): string;
238
243
  export interface Insight {
239
244
  id: string;
240
245
  content: string;
@@ -273,6 +278,13 @@ export interface SearchRequest {
273
278
  source?: Source;
274
279
  intent?: Intent;
275
280
  memoryBodyIds?: string[];
281
+ /**
282
+ * A look at the memory rather than a use of it, such as the Memory System's
283
+ * own searches. Providers that record reads, as access counts or a query
284
+ * log, leave it out, and may answer from a snapshot that lags a write still
285
+ * in flight; a check that must see a write leaves the flag unset.
286
+ */
287
+ inspect?: boolean;
276
288
  }
277
289
  export interface RememberRequest {
278
290
  content: string;
@@ -353,7 +365,8 @@ export interface MemoryGraphSnapshot {
353
365
  sources?: MemoryReadSource[];
354
366
  }
355
367
  export type MemoryReadMode = 'search' | 'graph' | 'projection' | 'enumerable' | 'query-only' | 'entities' | 'unsupported';
356
- export type MemoryReadStatus = 'ready' | 'empty' | 'query-required' | 'unsupported' | 'unavailable';
368
+ /** 'loading' is client-only: a page shows its spaces from the directory while the read runs. */
369
+ export type MemoryReadStatus = 'ready' | 'empty' | 'query-required' | 'unsupported' | 'unavailable' | 'loading';
357
370
  /**
358
371
  * One provider-backed Memory Space participating in a read surface.
359
372
  *
@@ -371,6 +384,10 @@ export interface MemoryReadSource {
371
384
  status: MemoryReadStatus;
372
385
  itemCount: number;
373
386
  edgeCount?: number;
387
+ /** Entity reads: the memories the entity index covers in this space. */
388
+ memoryCount?: number;
389
+ /** Entity reads: false when the Provider could not index every memory of this space. */
390
+ complete?: boolean;
374
391
  hint?: string;
375
392
  quality?: RecallQualityStats;
376
393
  }
@@ -505,15 +522,40 @@ export interface MemorySpacesStatus {
505
522
  dbPath?: string;
506
523
  };
507
524
  }
525
+ /**
526
+ * The entities of the active spaces. Each count is the number of memories that
527
+ * carry the entity, the same set entity-memories lists.
528
+ */
508
529
  export interface EntityView {
509
530
  items: Array<{
510
531
  entity: string;
511
532
  count: number;
512
533
  }>;
534
+ /** With a selected entity: the first page of entity-memories, kept for existing callers. */
513
535
  insights: Insight[];
514
536
  selected?: string;
515
537
  /** Omitted only when talking to a pre-provider-aware Host. */
516
538
  sources?: MemoryReadSource[];
539
+ /** Distinct entities across the active spaces; items may be capped below it. Omitted by older Hosts. */
540
+ total?: number;
541
+ /** False when a space's Provider could not index every memory. Omitted by older Hosts. */
542
+ complete?: boolean;
543
+ }
544
+ /** One page of the memories that carry an entity, by importance and then recency. */
545
+ export interface EntityMemoriesView {
546
+ /** The entity's most common spelling, or the requested name when no memory carries it. */
547
+ entity: string;
548
+ total: number;
549
+ offset: number;
550
+ items: Insight[];
551
+ complete: boolean;
552
+ sources: MemoryReadSource[];
553
+ }
554
+ /** Memories recall relates to an entity that do not carry it themselves. */
555
+ export interface EntityRelatedView {
556
+ entity: string;
557
+ items: Insight[];
558
+ sources: MemoryReadSource[];
517
559
  }
518
560
  /** @deprecated Use CreateMemorySpaceRequest. The wire shape is unchanged. */
519
561
  export type CreateMemoryBodyRequest = CreateMemorySpaceRequest;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-mnemon-source-memory-spaces",
3
- "version": "0.5.15",
3
+ "version": "0.5.17",
4
4
  "description": "Memory Spaces Source and its private Provider SDK.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -65,13 +65,13 @@
65
65
  "@types/node": "^22.0.0",
66
66
  "@types/react": "^18.3.0",
67
67
  "@types/react-dom": "^18.3.0",
68
- "dsh-mnemon": "^0.5.23",
68
+ "dsh-mnemon": "^0.5.25",
69
69
  "dsh-mnemon-provider-byterover": "^0.5.5",
70
70
  "dsh-mnemon-provider-hindsight": "^0.5.5",
71
71
  "dsh-mnemon-provider-holographic": "^0.5.6",
72
72
  "dsh-mnemon-provider-honcho": "^0.5.5",
73
73
  "dsh-mnemon-provider-mem0": "^0.5.5",
74
- "dsh-mnemon-provider-mnemon-native": "^0.5.8",
74
+ "dsh-mnemon-provider-mnemon-native": "^0.5.9",
75
75
  "dsh-mnemon-provider-openviking": "^0.5.7",
76
76
  "dsh-mnemon-provider-retaindb": "^0.5.5",
77
77
  "dsh-mnemon-provider-supermemory": "^0.5.5",
@@ -291,11 +291,23 @@
291
291
  "entities.filterHint": "输入时即时过滤左侧列表(按 Esc 清空)",
292
292
  "entities.emptyRail": "写入带实体的记忆后,这里会形成入口。",
293
293
  "entities.filterEmpty": "本地无匹配。点“查阅”向宿主发起查询。",
294
- "entities.loading": "正在沿实体关系召回…",
294
+ "entities.loading": "正在读取实体的记忆…",
295
295
  "entities.selectTitle": "选择或输入一个实体",
296
- "entities.selectText": "实体视图会聚合与它相关的记忆,而不是只做字面匹配。",
296
+ "entities.selectText": "选中后列出带有它的全部记忆;需要时,可再查找召回认为相关的其他记忆。",
297
297
  "entities.emptyTitle": "没有关联记忆",
298
298
  "entities.emptyText": "尝试更完整的名称或另一个实体别名。",
299
+ "entities.railLoading": "正在读取实体…",
300
+ "entities.memoriesHint": "带有此实体的记忆",
301
+ "entities.relatedTitle": "相关记忆",
302
+ "entities.relatedHint": "召回认为相关、但不带此实体的记忆",
303
+ "entities.findRelated": "查找相关记忆",
304
+ "entities.hideRelated": "收起",
305
+ "entities.noCarrying": "没有记忆带有此实体。",
306
+ "entities.noRelated": "没有其他相关记忆。",
307
+ "entities.retry": "重试",
308
+ "entities.sourceReady": "{count} 个实体",
309
+ "entities.sourcePartial": "{count} 个实体 · 部分",
310
+ "readSources.status.loading": "正在读取",
299
311
  "remember.title": "存入记忆",
300
312
  "remember.description": "任务 Agent 会判断是否值得保存,去重、提炼后写入合适的记忆空间,不占用当前对话。",
301
313
  "remember.readOnlyTitle": "当前为只读模式",
@@ -637,11 +649,23 @@
637
649
  "entities.filterHint": "Type to filter the rail locally (Esc to clear).",
638
650
  "entities.emptyRail": "Entities appear here after memories with entity metadata are stored.",
639
651
  "entities.filterEmpty": "No local match. Press Explore to query the host.",
640
- "entities.loading": "Recalling entity relations…",
652
+ "entities.loading": "Reading the entity's memories…",
641
653
  "entities.selectTitle": "Select or enter an entity",
642
- "entities.selectText": "The entity view aggregates related memories instead of relying on literal matching.",
654
+ "entities.selectText": "Selecting one lists every memory that carries it; Find related memories then adds others recall relates to it.",
643
655
  "entities.emptyTitle": "No related memories",
644
656
  "entities.emptyText": "Try the full name or another entity alias.",
657
+ "entities.railLoading": "Reading entities…",
658
+ "entities.memoriesHint": "Memories that carry this entity",
659
+ "entities.relatedTitle": "Related memories",
660
+ "entities.relatedHint": "Recalled as related, without this entity",
661
+ "entities.findRelated": "Find related memories",
662
+ "entities.hideRelated": "Hide",
663
+ "entities.noCarrying": "No memory carries this entity.",
664
+ "entities.noRelated": "No other related memories.",
665
+ "entities.retry": "Retry",
666
+ "entities.sourceReady": "{count} entities",
667
+ "entities.sourcePartial": "{count} entities · partial",
668
+ "readSources.status.loading": "Reading",
645
669
  "remember.title": "Save to memory",
646
670
  "remember.description": "A task Agent decides whether this is worth keeping, removes duplicates, distills it and writes it to the right Memory Space, outside this conversation.",
647
671
  "remember.readOnlyTitle": "Read-only mode",
@@ -376,6 +376,26 @@ button.readSourceCard:hover { background: var(--mn-hover); }
376
376
  .entityList button > span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
377
377
  .entityList strong { flex: none; color: var(--mn-faint); font-size: 12px; font-weight: 400; font-variant-numeric: tabular-nums; }
378
378
  .entityResults > .emptyState { min-height: 360px; }
379
+ .entitySection { min-width: 0; }
380
+ .entitySection + .entitySection { margin-top: 24px; }
381
+ /* A section keeps its height while it loads, so the one below does not jump. */
382
+ .entitySectionBody { min-height: 116px; }
383
+ .entityQuiet { margin: 0 0 8px; padding: 12px 2px; color: var(--mn-faint); font-size: 13px; line-height: 20px; }
384
+ .entityRetry { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 12px; }
385
+ .entityRelatedHead { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
386
+ .entityRelatedHead > div:first-child { flex: 1; min-width: 0; }
387
+ .entityRelatedHead > button { flex: none; margin-top: 2px; }
388
+ .insightSkeleton { position: relative; display: grid; min-height: 108px; align-content: start; gap: 12px; overflow: hidden; margin-bottom: 8px; padding: 16px; border: .5px solid var(--mn-card-line); border-radius: var(--dsw-radius-lg); }
389
+ .insightSkeleton > span { display: block; height: 10px; border-radius: 999px; background: var(--mn-fill); }
390
+ .insightSkeleton > span:nth-child(1) { width: 36%; }
391
+ .insightSkeleton > span:nth-child(2) { width: 94%; }
392
+ .insightSkeleton > span:nth-child(3) { width: 68%; }
393
+ .entityRailSkeleton { position: relative; display: block; height: 32px; overflow: hidden; border-radius: var(--dsw-radius-sm); background: color-mix(in srgb, var(--mn-fill) 55%, transparent); }
394
+ .insightSkeleton::after,
395
+ .entityRailSkeleton::after { position: absolute; inset: 0; content: ""; background: linear-gradient(105deg, transparent 20%, color-mix(in srgb, var(--mn-text) 5%, transparent) 45%, transparent 70%); transform: translateX(-120%); animation: entity-skeleton-sweep 1.2s ease-in-out infinite; pointer-events: none; }
396
+ @keyframes entity-skeleton-sweep { to { transform: translateX(120%); } }
397
+ @media (prefers-reduced-motion: reduce) { .insightSkeleton::after, .entityRailSkeleton::after { animation: none; } }
398
+ .readSourceCard[data-status="loading"] .readSourceSignal { background: var(--mn-idle); }
379
399
 
380
400
  .supervisedComposer { border: .5px solid var(--mn-card-line); border-radius: var(--dsw-radius-lg); }
381
401
  .supervisedComposer { overflow: hidden; }