@remnic/core 9.68.0 → 9.69.0

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.
Files changed (45) hide show
  1. package/dist/access-admin-ops-surface.d.ts +1 -1
  2. package/dist/access-authorization-probe.d.ts +1 -1
  3. package/dist/access-boundary.d.ts +1 -1
  4. package/dist/access-cli.js +1 -1
  5. package/dist/access-extraction-force-flush.d.ts +1 -1
  6. package/dist/access-http-lcm-compaction.d.ts +1 -1
  7. package/dist/access-http-lifecycle-flush.d.ts +1 -1
  8. package/dist/access-http-offline-stream.d.ts +1 -1
  9. package/dist/access-http.d.ts +2 -2
  10. package/dist/access-lcm-surface.d.ts +1 -1
  11. package/dist/access-mcp.d.ts +1 -1
  12. package/dist/access-observe-write-surface.d.ts +1 -1
  13. package/dist/access-operations.d.ts +6 -6
  14. package/dist/access-recall-concurrency.d.ts +1 -1
  15. package/dist/access-recall-response.d.ts +1 -1
  16. package/dist/access-recall-surface.d.ts +1 -1
  17. package/dist/access-schema.d.ts +89 -89
  18. package/dist/access-service-helpers.d.ts +1 -1
  19. package/dist/access-service.d.ts +1 -1
  20. package/dist/access-surface-catalog.d.ts +1 -1
  21. package/dist/{chunk-WFFGUFFN.js → chunk-BZ26443Y.js} +60 -1
  22. package/dist/chunk-BZ26443Y.js.map +1 -0
  23. package/dist/{cli-Bvy4jdBu.d.ts → cli-CFpMhqz5.d.ts} +1 -1
  24. package/dist/cli.d.ts +2 -2
  25. package/dist/external-wiki-access.d.ts +1 -1
  26. package/dist/external-wiki-mcp-tools.d.ts +1 -1
  27. package/dist/index.d.ts +713 -681
  28. package/dist/index.js +5 -1
  29. package/dist/mcp-memory-inspector-app.d.ts +1 -1
  30. package/dist/memory-subject-cli.d.ts +1 -1
  31. package/dist/memory-subject.d.ts +1 -1
  32. package/dist/orchestrator.js +1 -1
  33. package/dist/{public-http-2MyshWxl.d.ts → public-http-C9-CHc40.d.ts} +1 -1
  34. package/dist/schemas.d.ts +176 -176
  35. package/dist/shared-context/manager.d.ts +6 -6
  36. package/dist/support-passport/index.d.ts +4 -4
  37. package/dist/transfer/types.d.ts +78 -78
  38. package/dist/who-knows-cli.d.ts +1 -1
  39. package/dist/who-knows.d.ts +1 -1
  40. package/package.json +2 -2
  41. package/src/activity/index.ts +1 -0
  42. package/src/activity/vault-status.test.ts +138 -0
  43. package/src/activity/vault-status.ts +96 -0
  44. package/dist/chunk-WFFGUFFN.js.map +0 -1
  45. package/dist/{access-service-LbwWl05g.d.ts → access-service-DcfM0Vf0.d.ts} +64 -64
@@ -30,12 +30,12 @@ declare const SharedFeedbackEntrySchema: z.ZodObject<{
30
30
  decision: "rejected" | "approved" | "approved_with_feedback";
31
31
  agent: string;
32
32
  date: string;
33
- severity?: "low" | "medium" | "high" | undefined;
34
- confidence?: number | undefined;
35
- tags?: string[] | undefined;
36
33
  workflow?: string | undefined;
34
+ tags?: string[] | undefined;
37
35
  outcome?: string | undefined;
36
+ confidence?: number | undefined;
38
37
  refs?: string[] | undefined;
38
+ severity?: "high" | "low" | "medium" | undefined;
39
39
  learning?: string | undefined;
40
40
  evidenceWindowStart?: string | undefined;
41
41
  evidenceWindowEnd?: string | undefined;
@@ -44,12 +44,12 @@ declare const SharedFeedbackEntrySchema: z.ZodObject<{
44
44
  decision: "rejected" | "approved" | "approved_with_feedback";
45
45
  agent: string;
46
46
  date: string;
47
- severity?: "low" | "medium" | "high" | undefined;
48
- confidence?: number | undefined;
49
- tags?: string[] | undefined;
50
47
  workflow?: string | undefined;
48
+ tags?: string[] | undefined;
51
49
  outcome?: string | undefined;
50
+ confidence?: number | undefined;
52
51
  refs?: string[] | undefined;
52
+ severity?: "high" | "low" | "medium" | undefined;
53
53
  learning?: string | undefined;
54
54
  evidenceWindowStart?: string | undefined;
55
55
  evidenceWindowEnd?: string | undefined;
@@ -1,9 +1,9 @@
1
- import { S as SupportPassportExternalRequestHandler } from '../public-http-2MyshWxl.js';
2
- export { a as SUPPORT_PASSPORT_PUBLIC_HTTP_ROUTES, b as SupportPassportPublicHandlerOptions, c as buildSupportPassportPublicRequestHandler, d as composeSupportPassportExternalRequestHandlers, n as normalizeSupportPassportNetworkAddress } from '../public-http-2MyshWxl.js';
1
+ import { S as SupportPassportExternalRequestHandler } from '../public-http-C9-CHc40.js';
2
+ export { a as SUPPORT_PASSPORT_PUBLIC_HTTP_ROUTES, b as SupportPassportPublicHandlerOptions, c as buildSupportPassportPublicRequestHandler, d as composeSupportPassportExternalRequestHandlers, n as normalizeSupportPassportNetworkAddress } from '../public-http-C9-CHc40.js';
3
3
  import { OfflineSyncExcludeFile } from '../offline-sync-file-io.js';
4
4
  import { M as MemoryFile, d6 as SupportPassportConfig } from '../types-eM7QIcX2.js';
5
- import { ay as SupportPassportCard, aF as SupportPassportCardServiceDependencies, b2 as SupportPassportManualDraftInput, aQ as SupportPassportDraftCard, bq as SupportPassportOwnerScope, bu as SupportPassportReplaceCardInput, aC as SupportPassportCardMutationInput, aY as SupportPassportGrantCardRef, a_ as SupportPassportGrantState, aJ as SupportPassportCreateGrantInput, aO as SupportPassportCreatedGrant, bo as SupportPassportOwnerGrant, bw as SupportPassportRevokeGrantInput, bs as SupportPassportPublicGuide, bh as SupportPassportModelRoute, b6 as SupportPassportModelAdapter, ba as SupportPassportModelAuditSink, av as SupportPassportAnswerOutput } from '../access-service-LbwWl05g.js';
6
- export { aj as SUPPORT_PASSPORT_CARD_CATEGORIES, ak as SUPPORT_PASSPORT_CARD_STATUSES, al as SUPPORT_PASSPORT_DRAFT_MAX_CONTENT_CHARACTERS, am as SUPPORT_PASSPORT_DRAFT_MAX_MEMORIES, an as SUPPORT_PASSPORT_NOT_IN_GUIDE_ANSWER, ao as SUPPORT_PASSPORT_SOURCE_MEMORY_ID_MAX_LENGTH, ar as SupportPassportAccessSurface, as as SupportPassportAccessSurfaceDependencies, at as SupportPassportAnswerModelInput, au as SupportPassportAnswerModelInputSchema, aw as SupportPassportAnswerOutputSchema, ax as SupportPassportAnswerResult, az as SupportPassportCardCategory, aA as SupportPassportCardCategorySchema, aB as SupportPassportCardListSchema, aD as SupportPassportCardMutationInputSchema, aE as SupportPassportCardSchema, aG as SupportPassportCardStatus, aH as SupportPassportCardStatusSchema, aI as SupportPassportCardTitleSchema, aK as SupportPassportCreateGrantInputSchema, aL as SupportPassportCreateGrantRequest, aM as SupportPassportCreateGrantRequestSchema, aN as SupportPassportCreateGrantResult, aP as SupportPassportCreatedGrantSchema, aR as SupportPassportDraftCardSchema, aS as SupportPassportDraftModelInput, aT as SupportPassportDraftModelInputSchema, aU as SupportPassportDraftOutputSchema, aV as SupportPassportDraftResult, aW as SupportPassportError, aX as SupportPassportErrorCode, aZ as SupportPassportGrantCardRefSchema, a$ as SupportPassportGrantStateSchema, b0 as SupportPassportListCardsInputSchema, b1 as SupportPassportListGrantsInputSchema, b3 as SupportPassportManualDraftInputSchema, b4 as SupportPassportMemoryIdSchema, b5 as SupportPassportMemoryPreview, b7 as SupportPassportModelAdapterOptions, b8 as SupportPassportModelAuditRecord, b9 as SupportPassportModelAuditRecordSchema, bb as SupportPassportModelAuditStore, bc as SupportPassportModelCallError, bd as SupportPassportModelClients, be as SupportPassportModelFailureMetadata, bf as SupportPassportModelMessage, bg as SupportPassportModelResultMetadata, bi as SupportPassportModelRouteKind, bj as SupportPassportModelRouteResult, bk as SupportPassportModelUsage, bl as SupportPassportNamespaceSchema, bm as SupportPassportOwnerCreateGrantRequest, bn as SupportPassportOwnerCreateGrantRequestSchema, bp as SupportPassportOwnerGrantSchema, br as SupportPassportPublicCardSchema, bt as SupportPassportPublicGuideSchema, bv as SupportPassportReplaceCardInputSchema, bx as SupportPassportRevokeGrantInputSchema, by as SupportPassportRevokeGrantResult, bz as SupportPassportSourceMemoryIdSchema, bK as acceptsSupportPassportModelResponse, bN as buildSupportPassportDirectGatewayConfig, bS as computeSupportPassportCardRevision, bU as createSupportPassportModelAdapter, b_ as hashSupportPassportAuditValues, c5 as resolveSupportPassportModelRoutePlan } from '../access-service-LbwWl05g.js';
5
+ import { ay as SupportPassportCard, aF as SupportPassportCardServiceDependencies, b2 as SupportPassportManualDraftInput, aQ as SupportPassportDraftCard, bq as SupportPassportOwnerScope, bu as SupportPassportReplaceCardInput, aC as SupportPassportCardMutationInput, aY as SupportPassportGrantCardRef, a_ as SupportPassportGrantState, aJ as SupportPassportCreateGrantInput, aO as SupportPassportCreatedGrant, bo as SupportPassportOwnerGrant, bw as SupportPassportRevokeGrantInput, bs as SupportPassportPublicGuide, bh as SupportPassportModelRoute, b6 as SupportPassportModelAdapter, ba as SupportPassportModelAuditSink, av as SupportPassportAnswerOutput } from '../access-service-DcfM0Vf0.js';
6
+ export { aj as SUPPORT_PASSPORT_CARD_CATEGORIES, ak as SUPPORT_PASSPORT_CARD_STATUSES, al as SUPPORT_PASSPORT_DRAFT_MAX_CONTENT_CHARACTERS, am as SUPPORT_PASSPORT_DRAFT_MAX_MEMORIES, an as SUPPORT_PASSPORT_NOT_IN_GUIDE_ANSWER, ao as SUPPORT_PASSPORT_SOURCE_MEMORY_ID_MAX_LENGTH, ar as SupportPassportAccessSurface, as as SupportPassportAccessSurfaceDependencies, at as SupportPassportAnswerModelInput, au as SupportPassportAnswerModelInputSchema, aw as SupportPassportAnswerOutputSchema, ax as SupportPassportAnswerResult, az as SupportPassportCardCategory, aA as SupportPassportCardCategorySchema, aB as SupportPassportCardListSchema, aD as SupportPassportCardMutationInputSchema, aE as SupportPassportCardSchema, aG as SupportPassportCardStatus, aH as SupportPassportCardStatusSchema, aI as SupportPassportCardTitleSchema, aK as SupportPassportCreateGrantInputSchema, aL as SupportPassportCreateGrantRequest, aM as SupportPassportCreateGrantRequestSchema, aN as SupportPassportCreateGrantResult, aP as SupportPassportCreatedGrantSchema, aR as SupportPassportDraftCardSchema, aS as SupportPassportDraftModelInput, aT as SupportPassportDraftModelInputSchema, aU as SupportPassportDraftOutputSchema, aV as SupportPassportDraftResult, aW as SupportPassportError, aX as SupportPassportErrorCode, aZ as SupportPassportGrantCardRefSchema, a$ as SupportPassportGrantStateSchema, b0 as SupportPassportListCardsInputSchema, b1 as SupportPassportListGrantsInputSchema, b3 as SupportPassportManualDraftInputSchema, b4 as SupportPassportMemoryIdSchema, b5 as SupportPassportMemoryPreview, b7 as SupportPassportModelAdapterOptions, b8 as SupportPassportModelAuditRecord, b9 as SupportPassportModelAuditRecordSchema, bb as SupportPassportModelAuditStore, bc as SupportPassportModelCallError, bd as SupportPassportModelClients, be as SupportPassportModelFailureMetadata, bf as SupportPassportModelMessage, bg as SupportPassportModelResultMetadata, bi as SupportPassportModelRouteKind, bj as SupportPassportModelRouteResult, bk as SupportPassportModelUsage, bl as SupportPassportNamespaceSchema, bm as SupportPassportOwnerCreateGrantRequest, bn as SupportPassportOwnerCreateGrantRequestSchema, bp as SupportPassportOwnerGrantSchema, br as SupportPassportPublicCardSchema, bt as SupportPassportPublicGuideSchema, bv as SupportPassportReplaceCardInputSchema, bx as SupportPassportRevokeGrantInputSchema, by as SupportPassportRevokeGrantResult, bz as SupportPassportSourceMemoryIdSchema, bK as acceptsSupportPassportModelResponse, bN as buildSupportPassportDirectGatewayConfig, bS as computeSupportPassportCardRevision, bU as createSupportPassportModelAdapter, b_ as hashSupportPassportAuditValues, c5 as resolveSupportPassportModelRoutePlan } from '../access-service-DcfM0Vf0.js';
7
7
  import { S as StorageManager } from '../storage-6fn7BPmb.js';
8
8
  import { FileHandle } from 'node:fs/promises';
9
9
  import { withHeldFileLock } from '../utils/serialize-mutations.js';
@@ -20,26 +20,26 @@ declare const ExportManifestV1Schema: z.ZodObject<{
20
20
  bytes: number;
21
21
  }>, "many">;
22
22
  }, "strip", z.ZodTypeAny, {
23
- format: "openclaw-engram-export";
24
- createdAt: string;
25
- pluginVersion: string;
23
+ schemaVersion: 1;
26
24
  files: {
27
25
  sha256: string;
28
26
  path: string;
29
27
  bytes: number;
30
28
  }[];
31
- schemaVersion: 1;
32
- includesTranscripts: boolean;
33
- }, {
34
- format: "openclaw-engram-export";
35
29
  createdAt: string;
30
+ format: "openclaw-engram-export";
36
31
  pluginVersion: string;
32
+ includesTranscripts: boolean;
33
+ }, {
34
+ schemaVersion: 1;
37
35
  files: {
38
36
  sha256: string;
39
37
  path: string;
40
38
  bytes: number;
41
39
  }[];
42
- schemaVersion: 1;
40
+ createdAt: string;
41
+ format: "openclaw-engram-export";
42
+ pluginVersion: string;
43
43
  includesTranscripts: boolean;
44
44
  }>;
45
45
  type ExportManifestV1 = z.infer<typeof ExportManifestV1Schema>;
@@ -75,26 +75,26 @@ declare const ExportBundleV1Schema: z.ZodObject<{
75
75
  bytes: number;
76
76
  }>, "many">;
77
77
  }, "strip", z.ZodTypeAny, {
78
- format: "openclaw-engram-export";
79
- createdAt: string;
80
- pluginVersion: string;
78
+ schemaVersion: 1;
81
79
  files: {
82
80
  sha256: string;
83
81
  path: string;
84
82
  bytes: number;
85
83
  }[];
86
- schemaVersion: 1;
87
- includesTranscripts: boolean;
88
- }, {
89
- format: "openclaw-engram-export";
90
84
  createdAt: string;
85
+ format: "openclaw-engram-export";
91
86
  pluginVersion: string;
87
+ includesTranscripts: boolean;
88
+ }, {
89
+ schemaVersion: 1;
92
90
  files: {
93
91
  sha256: string;
94
92
  path: string;
95
93
  bytes: number;
96
94
  }[];
97
- schemaVersion: 1;
95
+ createdAt: string;
96
+ format: "openclaw-engram-export";
97
+ pluginVersion: string;
98
98
  includesTranscripts: boolean;
99
99
  }>;
100
100
  records: z.ZodArray<z.ZodObject<{
@@ -109,15 +109,15 @@ declare const ExportBundleV1Schema: z.ZodObject<{
109
109
  }>, "many">;
110
110
  }, "strip", z.ZodTypeAny, {
111
111
  manifest: {
112
- format: "openclaw-engram-export";
113
- createdAt: string;
114
- pluginVersion: string;
112
+ schemaVersion: 1;
115
113
  files: {
116
114
  sha256: string;
117
115
  path: string;
118
116
  bytes: number;
119
117
  }[];
120
- schemaVersion: 1;
118
+ createdAt: string;
119
+ format: "openclaw-engram-export";
120
+ pluginVersion: string;
121
121
  includesTranscripts: boolean;
122
122
  };
123
123
  records: {
@@ -126,15 +126,15 @@ declare const ExportBundleV1Schema: z.ZodObject<{
126
126
  }[];
127
127
  }, {
128
128
  manifest: {
129
- format: "openclaw-engram-export";
130
- createdAt: string;
131
- pluginVersion: string;
129
+ schemaVersion: 1;
132
130
  files: {
133
131
  sha256: string;
134
132
  path: string;
135
133
  bytes: number;
136
134
  }[];
137
- schemaVersion: 1;
135
+ createdAt: string;
136
+ format: "openclaw-engram-export";
137
+ pluginVersion: string;
138
138
  includesTranscripts: boolean;
139
139
  };
140
140
  records: {
@@ -313,15 +313,15 @@ declare const CapsuleBlockSchema: z.ZodObject<{
313
313
  peerProfiles: boolean;
314
314
  }>;
315
315
  }, "strip", z.ZodTypeAny, {
316
+ schemaVersion: string;
316
317
  includes: {
317
318
  procedural: boolean;
318
319
  taxonomy: boolean;
319
320
  identityAnchors: boolean;
320
321
  peerProfiles: boolean;
321
322
  };
322
- description: string;
323
323
  id: string;
324
- schemaVersion: string;
324
+ description: string;
325
325
  version: string;
326
326
  parentCapsule: string | null;
327
327
  retrievalPolicy: {
@@ -334,15 +334,15 @@ declare const CapsuleBlockSchema: z.ZodObject<{
334
334
  forkRoot: string;
335
335
  } | null;
336
336
  }, {
337
+ schemaVersion: string;
337
338
  includes: {
338
339
  procedural: boolean;
339
340
  taxonomy: boolean;
340
341
  identityAnchors: boolean;
341
342
  peerProfiles: boolean;
342
343
  };
343
- description: string;
344
344
  id: string;
345
- schemaVersion: string;
345
+ description: string;
346
346
  version: string;
347
347
  parentCapsule: string | null;
348
348
  retrievalPolicy: {
@@ -464,15 +464,15 @@ declare const ExportManifestV2Schema: z.ZodObject<{
464
464
  peerProfiles: boolean;
465
465
  }>;
466
466
  }, "strip", z.ZodTypeAny, {
467
+ schemaVersion: string;
467
468
  includes: {
468
469
  procedural: boolean;
469
470
  taxonomy: boolean;
470
471
  identityAnchors: boolean;
471
472
  peerProfiles: boolean;
472
473
  };
473
- description: string;
474
474
  id: string;
475
- schemaVersion: string;
475
+ description: string;
476
476
  version: string;
477
477
  parentCapsule: string | null;
478
478
  retrievalPolicy: {
@@ -485,15 +485,15 @@ declare const ExportManifestV2Schema: z.ZodObject<{
485
485
  forkRoot: string;
486
486
  } | null;
487
487
  }, {
488
+ schemaVersion: string;
488
489
  includes: {
489
490
  procedural: boolean;
490
491
  taxonomy: boolean;
491
492
  identityAnchors: boolean;
492
493
  peerProfiles: boolean;
493
494
  };
494
- description: string;
495
495
  id: string;
496
- schemaVersion: string;
496
+ description: string;
497
497
  version: string;
498
498
  parentCapsule: string | null;
499
499
  retrievalPolicy: {
@@ -507,24 +507,26 @@ declare const ExportManifestV2Schema: z.ZodObject<{
507
507
  } | null | undefined;
508
508
  }>;
509
509
  }, "strip", z.ZodTypeAny, {
510
- format: "openclaw-engram-export";
511
- createdAt: string;
512
- pluginVersion: string;
510
+ schemaVersion: 2;
513
511
  files: {
514
512
  sha256: string;
515
513
  path: string;
516
514
  bytes: number;
517
515
  }[];
516
+ createdAt: string;
517
+ format: "openclaw-engram-export";
518
+ pluginVersion: string;
519
+ includesTranscripts: boolean;
518
520
  capsule: {
521
+ schemaVersion: string;
519
522
  includes: {
520
523
  procedural: boolean;
521
524
  taxonomy: boolean;
522
525
  identityAnchors: boolean;
523
526
  peerProfiles: boolean;
524
527
  };
525
- description: string;
526
528
  id: string;
527
- schemaVersion: string;
529
+ description: string;
528
530
  version: string;
529
531
  parentCapsule: string | null;
530
532
  retrievalPolicy: {
@@ -537,27 +539,27 @@ declare const ExportManifestV2Schema: z.ZodObject<{
537
539
  forkRoot: string;
538
540
  } | null;
539
541
  };
540
- schemaVersion: 2;
541
- includesTranscripts: boolean;
542
542
  }, {
543
- format: "openclaw-engram-export";
544
- createdAt: string;
545
- pluginVersion: string;
543
+ schemaVersion: 2;
546
544
  files: {
547
545
  sha256: string;
548
546
  path: string;
549
547
  bytes: number;
550
548
  }[];
549
+ createdAt: string;
550
+ format: "openclaw-engram-export";
551
+ pluginVersion: string;
552
+ includesTranscripts: boolean;
551
553
  capsule: {
554
+ schemaVersion: string;
552
555
  includes: {
553
556
  procedural: boolean;
554
557
  taxonomy: boolean;
555
558
  identityAnchors: boolean;
556
559
  peerProfiles: boolean;
557
560
  };
558
- description: string;
559
561
  id: string;
560
- schemaVersion: string;
562
+ description: string;
561
563
  version: string;
562
564
  parentCapsule: string | null;
563
565
  retrievalPolicy: {
@@ -570,8 +572,6 @@ declare const ExportManifestV2Schema: z.ZodObject<{
570
572
  forkRoot: string;
571
573
  } | null | undefined;
572
574
  };
573
- schemaVersion: 2;
574
- includesTranscripts: boolean;
575
575
  }>;
576
576
  type ExportManifestV2 = z.infer<typeof ExportManifestV2Schema>;
577
577
  declare const ExportBundleV2Schema: z.ZodObject<{
@@ -683,15 +683,15 @@ declare const ExportBundleV2Schema: z.ZodObject<{
683
683
  peerProfiles: boolean;
684
684
  }>;
685
685
  }, "strip", z.ZodTypeAny, {
686
+ schemaVersion: string;
686
687
  includes: {
687
688
  procedural: boolean;
688
689
  taxonomy: boolean;
689
690
  identityAnchors: boolean;
690
691
  peerProfiles: boolean;
691
692
  };
692
- description: string;
693
693
  id: string;
694
- schemaVersion: string;
694
+ description: string;
695
695
  version: string;
696
696
  parentCapsule: string | null;
697
697
  retrievalPolicy: {
@@ -704,15 +704,15 @@ declare const ExportBundleV2Schema: z.ZodObject<{
704
704
  forkRoot: string;
705
705
  } | null;
706
706
  }, {
707
+ schemaVersion: string;
707
708
  includes: {
708
709
  procedural: boolean;
709
710
  taxonomy: boolean;
710
711
  identityAnchors: boolean;
711
712
  peerProfiles: boolean;
712
713
  };
713
- description: string;
714
714
  id: string;
715
- schemaVersion: string;
715
+ description: string;
716
716
  version: string;
717
717
  parentCapsule: string | null;
718
718
  retrievalPolicy: {
@@ -726,24 +726,26 @@ declare const ExportBundleV2Schema: z.ZodObject<{
726
726
  } | null | undefined;
727
727
  }>;
728
728
  }, "strip", z.ZodTypeAny, {
729
- format: "openclaw-engram-export";
730
- createdAt: string;
731
- pluginVersion: string;
729
+ schemaVersion: 2;
732
730
  files: {
733
731
  sha256: string;
734
732
  path: string;
735
733
  bytes: number;
736
734
  }[];
735
+ createdAt: string;
736
+ format: "openclaw-engram-export";
737
+ pluginVersion: string;
738
+ includesTranscripts: boolean;
737
739
  capsule: {
740
+ schemaVersion: string;
738
741
  includes: {
739
742
  procedural: boolean;
740
743
  taxonomy: boolean;
741
744
  identityAnchors: boolean;
742
745
  peerProfiles: boolean;
743
746
  };
744
- description: string;
745
747
  id: string;
746
- schemaVersion: string;
748
+ description: string;
747
749
  version: string;
748
750
  parentCapsule: string | null;
749
751
  retrievalPolicy: {
@@ -756,27 +758,27 @@ declare const ExportBundleV2Schema: z.ZodObject<{
756
758
  forkRoot: string;
757
759
  } | null;
758
760
  };
759
- schemaVersion: 2;
760
- includesTranscripts: boolean;
761
761
  }, {
762
- format: "openclaw-engram-export";
763
- createdAt: string;
764
- pluginVersion: string;
762
+ schemaVersion: 2;
765
763
  files: {
766
764
  sha256: string;
767
765
  path: string;
768
766
  bytes: number;
769
767
  }[];
768
+ createdAt: string;
769
+ format: "openclaw-engram-export";
770
+ pluginVersion: string;
771
+ includesTranscripts: boolean;
770
772
  capsule: {
773
+ schemaVersion: string;
771
774
  includes: {
772
775
  procedural: boolean;
773
776
  taxonomy: boolean;
774
777
  identityAnchors: boolean;
775
778
  peerProfiles: boolean;
776
779
  };
777
- description: string;
778
780
  id: string;
779
- schemaVersion: string;
781
+ description: string;
780
782
  version: string;
781
783
  parentCapsule: string | null;
782
784
  retrievalPolicy: {
@@ -789,8 +791,6 @@ declare const ExportBundleV2Schema: z.ZodObject<{
789
791
  forkRoot: string;
790
792
  } | null | undefined;
791
793
  };
792
- schemaVersion: 2;
793
- includesTranscripts: boolean;
794
794
  }>;
795
795
  records: z.ZodArray<z.ZodObject<{
796
796
  path: z.ZodString;
@@ -804,24 +804,26 @@ declare const ExportBundleV2Schema: z.ZodObject<{
804
804
  }>, "many">;
805
805
  }, "strip", z.ZodTypeAny, {
806
806
  manifest: {
807
- format: "openclaw-engram-export";
808
- createdAt: string;
809
- pluginVersion: string;
807
+ schemaVersion: 2;
810
808
  files: {
811
809
  sha256: string;
812
810
  path: string;
813
811
  bytes: number;
814
812
  }[];
813
+ createdAt: string;
814
+ format: "openclaw-engram-export";
815
+ pluginVersion: string;
816
+ includesTranscripts: boolean;
815
817
  capsule: {
818
+ schemaVersion: string;
816
819
  includes: {
817
820
  procedural: boolean;
818
821
  taxonomy: boolean;
819
822
  identityAnchors: boolean;
820
823
  peerProfiles: boolean;
821
824
  };
822
- description: string;
823
825
  id: string;
824
- schemaVersion: string;
826
+ description: string;
825
827
  version: string;
826
828
  parentCapsule: string | null;
827
829
  retrievalPolicy: {
@@ -834,8 +836,6 @@ declare const ExportBundleV2Schema: z.ZodObject<{
834
836
  forkRoot: string;
835
837
  } | null;
836
838
  };
837
- schemaVersion: 2;
838
- includesTranscripts: boolean;
839
839
  };
840
840
  records: {
841
841
  content: string;
@@ -843,24 +843,26 @@ declare const ExportBundleV2Schema: z.ZodObject<{
843
843
  }[];
844
844
  }, {
845
845
  manifest: {
846
- format: "openclaw-engram-export";
847
- createdAt: string;
848
- pluginVersion: string;
846
+ schemaVersion: 2;
849
847
  files: {
850
848
  sha256: string;
851
849
  path: string;
852
850
  bytes: number;
853
851
  }[];
852
+ createdAt: string;
853
+ format: "openclaw-engram-export";
854
+ pluginVersion: string;
855
+ includesTranscripts: boolean;
854
856
  capsule: {
857
+ schemaVersion: string;
855
858
  includes: {
856
859
  procedural: boolean;
857
860
  taxonomy: boolean;
858
861
  identityAnchors: boolean;
859
862
  peerProfiles: boolean;
860
863
  };
861
- description: string;
862
864
  id: string;
863
- schemaVersion: string;
865
+ description: string;
864
866
  version: string;
865
867
  parentCapsule: string | null;
866
868
  retrievalPolicy: {
@@ -873,8 +875,6 @@ declare const ExportBundleV2Schema: z.ZodObject<{
873
875
  forkRoot: string;
874
876
  } | null | undefined;
875
877
  };
876
- schemaVersion: 2;
877
- includesTranscripts: boolean;
878
878
  };
879
879
  records: {
880
880
  content: string;
@@ -1,4 +1,4 @@
1
- import { W as WhoKnowsResult } from './access-service-LbwWl05g.js';
1
+ import { W as WhoKnowsResult } from './access-service-DcfM0Vf0.js';
2
2
  import './types-eM7QIcX2.js';
3
3
  import './message-parts/index.js';
4
4
  import './bounded-jsonl-state.js';
@@ -1,4 +1,4 @@
1
- export { bA as WHO_KNOWS_AUTHORSHIP_BONUS, bB as WHO_KNOWS_DEFAULT_LIMIT, bC as WHO_KNOWS_MAX_EVIDENCE, bD as WHO_KNOWS_MAX_LIMIT, bE as WHO_KNOWS_MCP_TOOLS, bF as WhoKnowsEntity, bG as WhoKnowsEvidence, bH as WhoKnowsHit, bI as WhoKnowsHttpOutcome, W as WhoKnowsResult, bJ as WhoKnowsStorage, bT as computeWhoKnows, bZ as handleWhoKnowsHttpQuery, c2 as loadWhoKnowsEntities, c9 as tokenizeTopic, ca as validateWhoKnowsInput } from './access-service-LbwWl05g.js';
1
+ export { bA as WHO_KNOWS_AUTHORSHIP_BONUS, bB as WHO_KNOWS_DEFAULT_LIMIT, bC as WHO_KNOWS_MAX_EVIDENCE, bD as WHO_KNOWS_MAX_LIMIT, bE as WHO_KNOWS_MCP_TOOLS, bF as WhoKnowsEntity, bG as WhoKnowsEvidence, bH as WhoKnowsHit, bI as WhoKnowsHttpOutcome, W as WhoKnowsResult, bJ as WhoKnowsStorage, bT as computeWhoKnows, bZ as handleWhoKnowsHttpQuery, c2 as loadWhoKnowsEntities, c9 as tokenizeTopic, ca as validateWhoKnowsInput } from './access-service-DcfM0Vf0.js';
2
2
  import './types-eM7QIcX2.js';
3
3
  import './orchestrator-Btq9lzAN.js';
4
4
  import './recall-state.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remnic/core",
3
- "version": "9.68.0",
3
+ "version": "9.69.0",
4
4
  "description": "Framework-agnostic Remnic memory engine — orchestrator, storage, extraction, search, trust zones",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -3217,7 +3217,7 @@
3217
3217
  "core"
3218
3218
  ],
3219
3219
  "peerDependencies": {
3220
- "@remnic/coding-graph": "^9.68.0"
3220
+ "@remnic/coding-graph": "^9.69.0"
3221
3221
  },
3222
3222
  "peerDependenciesMeta": {
3223
3223
  "@remnic/coding-graph": {
@@ -25,6 +25,7 @@ export * from "./privacy-status.js";
25
25
  export * from "./privacy-window.js";
26
26
  export * from "./vault-path.js";
27
27
  export * from "./vault-publish.js";
28
+ export * from "./vault-status.js";
28
29
  export * from "./vault-insert.js";
29
30
  export * from "./vault-frontmatter.js";
30
31
  export * from "./vault-wikilink.js";
@@ -0,0 +1,138 @@
1
+ import assert from "node:assert/strict";
2
+ import test from "node:test";
3
+
4
+ import { VAULT_PUBLISH_OUTCOMES, summarizeVaultPublish } from "./vault-status.js";
5
+ import type { VaultPublishResult } from "./vault-status.js";
6
+
7
+ test("summarizeVaultPublish counts a mixed list, sorts by path, and flags the error", () => {
8
+ const status = summarizeVaultPublish([
9
+ { path: "notes/e.md", outcome: "updated" },
10
+ { path: "notes/d.md", outcome: "error", reason: "missing_file" },
11
+ { path: "notes/a.md", outcome: "updated" },
12
+ { path: "notes/c.md", outcome: "skipped", reason: "no_marker" },
13
+ { path: "notes/b.md", outcome: "unchanged" },
14
+ ]);
15
+ assert.deepEqual(status.counts, { updated: 2, unchanged: 1, skipped: 1, error: 1 });
16
+ assert.equal(status.hasError, true);
17
+ assert.deepEqual(status.results, [
18
+ { path: "notes/a.md", outcome: "updated" },
19
+ { path: "notes/b.md", outcome: "unchanged" },
20
+ { path: "notes/c.md", outcome: "skipped", reason: "no_marker" },
21
+ { path: "notes/d.md", outcome: "error", reason: "missing_file" },
22
+ { path: "notes/e.md", outcome: "updated" },
23
+ ]);
24
+ });
25
+
26
+ test("empty input returns zeroed counts, no results, and hasError false", () => {
27
+ const status = summarizeVaultPublish([]);
28
+ assert.deepEqual(status.counts, { updated: 0, unchanged: 0, skipped: 0, error: 0 });
29
+ for (const outcome of VAULT_PUBLISH_OUTCOMES) {
30
+ assert.equal(status.counts[outcome], 0, `count key ${outcome} must exist at zero`);
31
+ }
32
+ assert.deepEqual(status.results, []);
33
+ assert.equal(status.hasError, false);
34
+ });
35
+
36
+ test("unknown outcome throws TypeError listing the allow-list", () => {
37
+ assert.throws(
38
+ () => summarizeVaultPublish([{ path: "notes/a.md", outcome: "deleted" }]),
39
+ (err: unknown) => {
40
+ assert.ok(err instanceof TypeError);
41
+ assert.match(err.message, /unknown vault publish outcome/);
42
+ for (const outcome of VAULT_PUBLISH_OUTCOMES) {
43
+ assert.ok(err.message.includes(outcome), `message lists ${outcome}`);
44
+ }
45
+ return true;
46
+ },
47
+ );
48
+ });
49
+
50
+ test("skipped without a reason throws TypeError", () => {
51
+ assert.throws(
52
+ () => summarizeVaultPublish([{ path: "notes/a.md", outcome: "skipped" }]),
53
+ (err: unknown) => err instanceof TypeError && /reason/.test(err.message),
54
+ );
55
+ });
56
+
57
+ test("error with a missing or whitespace-only reason throws TypeError", () => {
58
+ assert.throws(
59
+ () => summarizeVaultPublish([{ path: "notes/a.md", outcome: "error" }]),
60
+ (err: unknown) => err instanceof TypeError && /reason/.test(err.message),
61
+ );
62
+ assert.throws(
63
+ () => summarizeVaultPublish([{ path: "notes/a.md", outcome: "error", reason: " " }]),
64
+ (err: unknown) => err instanceof TypeError && /reason/.test(err.message),
65
+ );
66
+ });
67
+
68
+ test("updated and unchanged must not carry a reason", () => {
69
+ assert.throws(
70
+ () => summarizeVaultPublish([{ path: "notes/a.md", outcome: "updated", reason: "no_marker" }]),
71
+ (err: unknown) => err instanceof TypeError && /reason/.test(err.message),
72
+ );
73
+ assert.throws(
74
+ () => summarizeVaultPublish([{ path: "notes/a.md", outcome: "unchanged", reason: "x" }]),
75
+ (err: unknown) => err instanceof TypeError && /reason/.test(err.message),
76
+ );
77
+ });
78
+
79
+ test("blank path throws RangeError", () => {
80
+ assert.throws(
81
+ () => summarizeVaultPublish([{ path: "", outcome: "updated" }]),
82
+ (err: unknown) => err instanceof RangeError && /path/.test(err.message),
83
+ );
84
+ assert.throws(
85
+ () => summarizeVaultPublish([{ path: " \t ", outcome: "updated" }]),
86
+ (err: unknown) => err instanceof RangeError && /path/.test(err.message),
87
+ );
88
+ });
89
+
90
+ test("duplicate paths are all preserved, not deduplicated", () => {
91
+ const status = summarizeVaultPublish([
92
+ { path: "notes/a.md", outcome: "updated" },
93
+ { path: "notes/a.md", outcome: "skipped", reason: "no_marker" },
94
+ { path: "notes/a.md", outcome: "updated" },
95
+ ]);
96
+ assert.equal(status.results.length, 3);
97
+ assert.deepEqual(status.counts, { updated: 2, unchanged: 0, skipped: 1, error: 0 });
98
+ assert.deepEqual(
99
+ status.results.map((entry) => entry.outcome),
100
+ ["updated", "updated", "skipped"],
101
+ );
102
+ assert.equal(status.hasError, false);
103
+ });
104
+
105
+ test("order is deterministic across shuffled input", () => {
106
+ const base: VaultPublishResult[] = [
107
+ { path: "days/2026-08-18.md", outcome: "error", reason: "missing_file" },
108
+ { path: "days/2026-08-18.md", outcome: "updated" },
109
+ { path: "days/2026-08-18.md", outcome: "skipped", reason: "no_marker" },
110
+ { path: "days/2026-08-18.md", outcome: "skipped", reason: "duplicate_heading" },
111
+ { path: "days/2026-08-17.md", outcome: "unchanged" },
112
+ { path: "places/office.md", outcome: "updated" },
113
+ ];
114
+ const forward = summarizeVaultPublish(base);
115
+ const reversed = summarizeVaultPublish([...base].reverse());
116
+ assert.deepEqual(forward, reversed);
117
+ assert.deepEqual(
118
+ forward.results.map((entry) => `${entry.path}:${entry.outcome}:${entry.reason ?? ""}`),
119
+ [
120
+ "days/2026-08-17.md:unchanged:",
121
+ "days/2026-08-18.md:updated:",
122
+ "days/2026-08-18.md:skipped:duplicate_heading",
123
+ "days/2026-08-18.md:skipped:no_marker",
124
+ "days/2026-08-18.md:error:missing_file",
125
+ "places/office.md:updated:",
126
+ ],
127
+ );
128
+ });
129
+
130
+ test("input is not mutated", () => {
131
+ const input: VaultPublishResult[] = [
132
+ { path: "notes/b.md", outcome: "updated" },
133
+ { path: "notes/a.md", outcome: "skipped", reason: "no_marker" },
134
+ ];
135
+ const snapshot = structuredClone(input);
136
+ summarizeVaultPublish(input);
137
+ assert.deepEqual(input, snapshot);
138
+ });