@remnic/core 9.3.727 → 9.3.729

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 (95) hide show
  1. package/dist/access-boundary.d.ts +2 -2
  2. package/dist/access-boundary.js +6 -6
  3. package/dist/access-cli.js +11 -11
  4. package/dist/access-http.d.ts +2 -2
  5. package/dist/access-http.js +10 -10
  6. package/dist/access-mcp.d.ts +2 -2
  7. package/dist/access-mcp.js +9 -9
  8. package/dist/access-operations-batch.js +7 -7
  9. package/dist/access-operations.d.ts +8 -8
  10. package/dist/access-operations.js +8 -8
  11. package/dist/access-schema.d.ts +46 -46
  12. package/dist/{access-service-Bgpjxo4f.d.ts → access-service-BXMJqkTA.d.ts} +1 -1
  13. package/dist/access-service.d.ts +2 -2
  14. package/dist/access-service.js +5 -5
  15. package/dist/access-surface-catalog.d.ts +2 -2
  16. package/dist/bootstrap.d.ts +1 -1
  17. package/dist/capabilities.d.ts +43 -1
  18. package/dist/capabilities.js +5 -3
  19. package/dist/{chunk-DVRHLN2O.js → chunk-3RCBIOOJ.js} +18 -2
  20. package/dist/{chunk-DVRHLN2O.js.map → chunk-3RCBIOOJ.js.map} +1 -1
  21. package/dist/{chunk-R7IYU5DZ.js → chunk-4ESAR77N.js} +2 -2
  22. package/dist/{chunk-SNKPUJHR.js → chunk-76NHR6ZL.js} +3 -3
  23. package/dist/{chunk-6PY5YJAV.js → chunk-BQCHEV7O.js} +8 -3
  24. package/dist/{chunk-6PY5YJAV.js.map → chunk-BQCHEV7O.js.map} +1 -1
  25. package/dist/{chunk-ZA2S2VLL.js → chunk-C2PG7IEH.js} +5 -2
  26. package/dist/chunk-C2PG7IEH.js.map +1 -0
  27. package/dist/{chunk-MJIHJ7OG.js → chunk-H5BWGCRZ.js} +11 -10
  28. package/dist/chunk-H5BWGCRZ.js.map +1 -0
  29. package/dist/{chunk-XPHVAOBT.js → chunk-HEDZUSCS.js} +180 -101
  30. package/dist/chunk-HEDZUSCS.js.map +1 -0
  31. package/dist/{chunk-N3VNUM4Z.js → chunk-HGNOCPZX.js} +4 -4
  32. package/dist/{chunk-CSRXQ6NB.js → chunk-I5REUWLH.js} +10 -4
  33. package/dist/chunk-I5REUWLH.js.map +1 -0
  34. package/dist/{chunk-NSA5ZRUL.js → chunk-M4AYVEWS.js} +3 -3
  35. package/dist/{chunk-OEEW4KJA.js → chunk-O6YH5F47.js} +3 -3
  36. package/dist/{chunk-27QQC7ZX.js → chunk-UM5AWJNQ.js} +6 -5
  37. package/dist/chunk-UM5AWJNQ.js.map +1 -0
  38. package/dist/{chunk-2KAYTPPT.js → chunk-UTHQPSRC.js} +2 -2
  39. package/dist/{chunk-CTOQEZSN.js → chunk-V4GNSDFH.js} +2 -2
  40. package/dist/{chunk-EHISUJFN.js → chunk-WAS3NV46.js} +6 -3
  41. package/dist/chunk-WAS3NV46.js.map +1 -0
  42. package/dist/{chunk-DKJCRGWM.js → chunk-YGIQORJ3.js} +2 -2
  43. package/dist/{cli-BLME420h.d.ts → cli-DmAiDd8A.d.ts} +2 -2
  44. package/dist/cli.d.ts +3 -3
  45. package/dist/cli.js +13 -13
  46. package/dist/embedding-fallback.js +2 -1
  47. package/dist/explicit-capture.d.ts +1 -1
  48. package/dist/extraction.js +2 -1
  49. package/dist/{first-start-migration-PG5HBC3K.js → first-start-migration-22LPFHD5.js} +6 -2
  50. package/dist/first-start-migration-22LPFHD5.js.map +1 -0
  51. package/dist/index.d.ts +4 -4
  52. package/dist/index.js +16 -16
  53. package/dist/mcp-memory-inspector-app.d.ts +2 -2
  54. package/dist/namespaces/migrate.js +5 -4
  55. package/dist/namespaces/search.js +4 -3
  56. package/dist/operator-toolkit.js +6 -6
  57. package/dist/{orchestrator-DqPAz8ot.d.ts → orchestrator-BR0sGsME.d.ts} +104 -26
  58. package/dist/orchestrator.d.ts +1 -1
  59. package/dist/orchestrator.js +7 -7
  60. package/dist/schemas.d.ts +74 -74
  61. package/dist/search/embed-helper.js +2 -1
  62. package/dist/search/factory.js +3 -2
  63. package/dist/search/index.js +3 -2
  64. package/dist/shared-context/manager.d.ts +2 -2
  65. package/dist/transfer/types.d.ts +12 -12
  66. package/package.json +2 -2
  67. package/src/access-service.ts +2 -1
  68. package/src/capabilities.test.ts +155 -0
  69. package/src/capabilities.ts +91 -0
  70. package/src/chat/chat-engine.test.ts +39 -1
  71. package/src/chat/chat-session.ts +25 -2
  72. package/src/cli.ts +3 -2
  73. package/src/embedding-fallback.ts +2 -1
  74. package/src/extraction.ts +7 -3
  75. package/src/maintenance/first-start-migration.ts +3 -1
  76. package/src/orchestration/extraction-queue-coordinator.ts +175 -0
  77. package/src/orchestrator-extraction-queue.test.ts +26 -38
  78. package/src/orchestrator-flush.test.ts +10 -15
  79. package/src/orchestrator.ts +52 -104
  80. package/src/search/embed-helper.ts +3 -2
  81. package/dist/chunk-27QQC7ZX.js.map +0 -1
  82. package/dist/chunk-CSRXQ6NB.js.map +0 -1
  83. package/dist/chunk-EHISUJFN.js.map +0 -1
  84. package/dist/chunk-MJIHJ7OG.js.map +0 -1
  85. package/dist/chunk-XPHVAOBT.js.map +0 -1
  86. package/dist/chunk-ZA2S2VLL.js.map +0 -1
  87. package/dist/first-start-migration-PG5HBC3K.js.map +0 -1
  88. /package/dist/{chunk-R7IYU5DZ.js.map → chunk-4ESAR77N.js.map} +0 -0
  89. /package/dist/{chunk-SNKPUJHR.js.map → chunk-76NHR6ZL.js.map} +0 -0
  90. /package/dist/{chunk-N3VNUM4Z.js.map → chunk-HGNOCPZX.js.map} +0 -0
  91. /package/dist/{chunk-NSA5ZRUL.js.map → chunk-M4AYVEWS.js.map} +0 -0
  92. /package/dist/{chunk-OEEW4KJA.js.map → chunk-O6YH5F47.js.map} +0 -0
  93. /package/dist/{chunk-2KAYTPPT.js.map → chunk-UTHQPSRC.js.map} +0 -0
  94. /package/dist/{chunk-CTOQEZSN.js.map → chunk-V4GNSDFH.js.map} +0 -0
  95. /package/dist/{chunk-DKJCRGWM.js.map → chunk-YGIQORJ3.js.map} +0 -0
@@ -104,10 +104,10 @@ declare const recallRequestSchema: z.ZodObject<{
104
104
  includeLowConfidence: z.ZodOptional<z.ZodBoolean>;
105
105
  }, "strip", z.ZodTypeAny, {
106
106
  query: string;
107
+ namespace?: string | undefined;
107
108
  sessionKey?: string | undefined;
108
109
  tags?: string[] | undefined;
109
110
  cwd?: string | undefined;
110
- namespace?: string | undefined;
111
111
  mode?: "auto" | "no_recall" | "minimal" | "full" | "graph_mode" | undefined;
112
112
  codingContext?: {
113
113
  projectId: string;
@@ -125,10 +125,10 @@ declare const recallRequestSchema: z.ZodObject<{
125
125
  includeLowConfidence?: boolean | undefined;
126
126
  }, {
127
127
  query: string;
128
+ namespace?: string | undefined;
128
129
  sessionKey?: string | undefined;
129
130
  tags?: string[] | undefined;
130
131
  cwd?: string | undefined;
131
- namespace?: string | undefined;
132
132
  mode?: "auto" | "no_recall" | "minimal" | "full" | "graph_mode" | undefined;
133
133
  codingContext?: {
134
134
  projectId: string;
@@ -149,11 +149,11 @@ declare const recallExplainRequestSchema: z.ZodObject<{
149
149
  sessionKey: z.ZodOptional<z.ZodString>;
150
150
  namespace: z.ZodOptional<z.ZodString>;
151
151
  }, "strip", z.ZodTypeAny, {
152
- sessionKey?: string | undefined;
153
152
  namespace?: string | undefined;
154
- }, {
155
153
  sessionKey?: string | undefined;
154
+ }, {
156
155
  namespace?: string | undefined;
156
+ sessionKey?: string | undefined;
157
157
  }>;
158
158
  /**
159
159
  * Standalone "set coding context" request. Used by the HTTP endpoint
@@ -328,8 +328,8 @@ declare const observeRequestSchema: z.ZodObject<{
328
328
  sourceFormat?: "openai" | "anthropic" | "openclaw" | "pi" | "lossless-claw" | "remnic" | null | undefined;
329
329
  rawContent?: unknown;
330
330
  }[];
331
- cwd?: string | undefined;
332
331
  namespace?: string | undefined;
332
+ cwd?: string | undefined;
333
333
  idempotencyKey?: string | undefined;
334
334
  projectTag?: string | undefined;
335
335
  skipExtraction?: boolean | undefined;
@@ -352,8 +352,8 @@ declare const observeRequestSchema: z.ZodObject<{
352
352
  sourceFormat?: "openai" | "anthropic" | "openclaw" | "pi" | "lossless-claw" | "remnic" | null | undefined;
353
353
  rawContent?: unknown;
354
354
  }[];
355
- cwd?: string | undefined;
356
355
  namespace?: string | undefined;
356
+ cwd?: string | undefined;
357
357
  idempotencyKey?: string | undefined;
358
358
  projectTag?: string | undefined;
359
359
  skipExtraction?: boolean | undefined;
@@ -375,31 +375,31 @@ declare const memoryStoreRequestSchema: z.ZodObject<{
375
375
  projectTag: z.ZodOptional<z.ZodString>;
376
376
  }, "strip", z.ZodTypeAny, {
377
377
  content: string;
378
- schemaVersion?: number | undefined;
378
+ namespace?: string | undefined;
379
+ category?: "decision" | "fact" | "preference" | "correction" | "entity" | "relationship" | "principle" | "commitment" | "moment" | "skill" | "rule" | "procedure" | "reasoning_trace" | undefined;
380
+ confidence?: number | undefined;
381
+ ttl?: string | undefined;
379
382
  sessionKey?: string | undefined;
383
+ schemaVersion?: number | undefined;
380
384
  tags?: string[] | undefined;
381
- cwd?: string | undefined;
382
385
  dryRun?: boolean | undefined;
383
- namespace?: string | undefined;
384
- category?: "fact" | "preference" | "correction" | "entity" | "decision" | "relationship" | "principle" | "commitment" | "moment" | "skill" | "rule" | "procedure" | "reasoning_trace" | undefined;
385
- confidence?: number | undefined;
386
+ cwd?: string | undefined;
386
387
  entityRef?: string | undefined;
387
- ttl?: string | undefined;
388
388
  idempotencyKey?: string | undefined;
389
389
  projectTag?: string | undefined;
390
390
  sourceReason?: string | undefined;
391
391
  }, {
392
392
  content: string;
393
- schemaVersion?: number | undefined;
393
+ namespace?: string | undefined;
394
+ category?: "decision" | "fact" | "preference" | "correction" | "entity" | "relationship" | "principle" | "commitment" | "moment" | "skill" | "rule" | "procedure" | "reasoning_trace" | undefined;
395
+ confidence?: number | undefined;
396
+ ttl?: string | undefined;
394
397
  sessionKey?: string | undefined;
398
+ schemaVersion?: number | undefined;
395
399
  tags?: string[] | undefined;
396
- cwd?: string | undefined;
397
400
  dryRun?: boolean | undefined;
398
- namespace?: string | undefined;
399
- category?: "fact" | "preference" | "correction" | "entity" | "decision" | "relationship" | "principle" | "commitment" | "moment" | "skill" | "rule" | "procedure" | "reasoning_trace" | undefined;
400
- confidence?: number | undefined;
401
+ cwd?: string | undefined;
401
402
  entityRef?: string | undefined;
402
- ttl?: string | undefined;
403
403
  idempotencyKey?: string | undefined;
404
404
  projectTag?: string | undefined;
405
405
  sourceReason?: string | undefined;
@@ -421,31 +421,31 @@ declare const suggestionSubmitRequestSchema: z.ZodObject<{
421
421
  projectTag: z.ZodOptional<z.ZodString>;
422
422
  }, "strip", z.ZodTypeAny, {
423
423
  content: string;
424
- schemaVersion?: number | undefined;
424
+ namespace?: string | undefined;
425
+ category?: "decision" | "fact" | "preference" | "correction" | "entity" | "relationship" | "principle" | "commitment" | "moment" | "skill" | "rule" | "procedure" | "reasoning_trace" | undefined;
426
+ confidence?: number | undefined;
427
+ ttl?: string | undefined;
425
428
  sessionKey?: string | undefined;
429
+ schemaVersion?: number | undefined;
426
430
  tags?: string[] | undefined;
427
- cwd?: string | undefined;
428
431
  dryRun?: boolean | undefined;
429
- namespace?: string | undefined;
430
- category?: "fact" | "preference" | "correction" | "entity" | "decision" | "relationship" | "principle" | "commitment" | "moment" | "skill" | "rule" | "procedure" | "reasoning_trace" | undefined;
431
- confidence?: number | undefined;
432
+ cwd?: string | undefined;
432
433
  entityRef?: string | undefined;
433
- ttl?: string | undefined;
434
434
  idempotencyKey?: string | undefined;
435
435
  projectTag?: string | undefined;
436
436
  sourceReason?: string | undefined;
437
437
  }, {
438
438
  content: string;
439
- schemaVersion?: number | undefined;
439
+ namespace?: string | undefined;
440
+ category?: "decision" | "fact" | "preference" | "correction" | "entity" | "relationship" | "principle" | "commitment" | "moment" | "skill" | "rule" | "procedure" | "reasoning_trace" | undefined;
441
+ confidence?: number | undefined;
442
+ ttl?: string | undefined;
440
443
  sessionKey?: string | undefined;
444
+ schemaVersion?: number | undefined;
441
445
  tags?: string[] | undefined;
442
- cwd?: string | undefined;
443
446
  dryRun?: boolean | undefined;
444
- namespace?: string | undefined;
445
- category?: "fact" | "preference" | "correction" | "entity" | "decision" | "relationship" | "principle" | "commitment" | "moment" | "skill" | "rule" | "procedure" | "reasoning_trace" | undefined;
446
- confidence?: number | undefined;
447
+ cwd?: string | undefined;
447
448
  entityRef?: string | undefined;
448
- ttl?: string | undefined;
449
449
  idempotencyKey?: string | undefined;
450
450
  projectTag?: string | undefined;
451
451
  sourceReason?: string | undefined;
@@ -478,18 +478,18 @@ declare const trustZonePromoteRequestSchema: z.ZodObject<{
478
478
  recordId: string;
479
479
  targetZone: "working" | "trusted";
480
480
  promotionReason: string;
481
+ namespace?: string | undefined;
481
482
  recordedAt?: string | undefined;
482
483
  summary?: string | undefined;
483
484
  dryRun?: boolean | undefined;
484
- namespace?: string | undefined;
485
485
  }, {
486
486
  recordId: string;
487
487
  targetZone: "working" | "trusted";
488
488
  promotionReason: string;
489
+ namespace?: string | undefined;
489
490
  recordedAt?: string | undefined;
490
491
  summary?: string | undefined;
491
492
  dryRun?: boolean | undefined;
492
- namespace?: string | undefined;
493
493
  }>;
494
494
  declare const trustZoneDemoSeedRequestSchema: z.ZodObject<{
495
495
  scenario: z.ZodOptional<z.ZodString>;
@@ -497,14 +497,14 @@ declare const trustZoneDemoSeedRequestSchema: z.ZodObject<{
497
497
  dryRun: z.ZodOptional<z.ZodBoolean>;
498
498
  namespace: z.ZodOptional<z.ZodString>;
499
499
  }, "strip", z.ZodTypeAny, {
500
+ namespace?: string | undefined;
500
501
  recordedAt?: string | undefined;
501
502
  dryRun?: boolean | undefined;
502
- namespace?: string | undefined;
503
503
  scenario?: string | undefined;
504
504
  }, {
505
+ namespace?: string | undefined;
505
506
  recordedAt?: string | undefined;
506
507
  dryRun?: boolean | undefined;
507
- namespace?: string | undefined;
508
508
  scenario?: string | undefined;
509
509
  }>;
510
510
  declare const lcmSearchRequestSchema: z.ZodObject<{
@@ -515,15 +515,15 @@ declare const lcmSearchRequestSchema: z.ZodObject<{
515
515
  limit: z.ZodOptional<z.ZodNumber>;
516
516
  }, "strip", z.ZodTypeAny, {
517
517
  query: string;
518
- sessionKey?: string | undefined;
519
518
  namespace?: string | undefined;
520
519
  limit?: number | undefined;
520
+ sessionKey?: string | undefined;
521
521
  sessionPrefix?: string | undefined;
522
522
  }, {
523
523
  query: string;
524
- sessionKey?: string | undefined;
525
524
  namespace?: string | undefined;
526
525
  limit?: number | undefined;
526
+ sessionKey?: string | undefined;
527
527
  sessionPrefix?: string | undefined;
528
528
  }>;
529
529
  declare const lcmCompactionFlushRequestSchema: z.ZodObject<{
@@ -558,13 +558,13 @@ declare const daySummaryRequestSchema: z.ZodObject<{
558
558
  namespace: z.ZodOptional<z.ZodString>;
559
559
  timeZone: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
560
560
  }, "strip", z.ZodTypeAny, {
561
- sessionKey?: string | undefined;
562
561
  namespace?: string | undefined;
562
+ sessionKey?: string | undefined;
563
563
  timeZone?: string | undefined;
564
564
  memories?: string | undefined;
565
565
  }, {
566
- sessionKey?: string | undefined;
567
566
  namespace?: string | undefined;
567
+ sessionKey?: string | undefined;
568
568
  timeZone?: string | undefined;
569
569
  memories?: string | undefined;
570
570
  }>;
@@ -613,11 +613,11 @@ declare const capsuleListRequestSchema: z.ZodObject<{
613
613
  namespace: z.ZodOptional<z.ZodString>;
614
614
  sessionKey: z.ZodOptional<z.ZodString>;
615
615
  }, "strip", z.ZodTypeAny, {
616
- sessionKey?: string | undefined;
617
616
  namespace?: string | undefined;
618
- }, {
619
617
  sessionKey?: string | undefined;
618
+ }, {
620
619
  namespace?: string | undefined;
620
+ sessionKey?: string | undefined;
621
621
  }>;
622
622
  declare const offlineSyncSnapshotRequestSchema: z.ZodObject<{
623
623
  namespace: z.ZodOptional<z.ZodString>;
@@ -758,12 +758,12 @@ declare const actionConfidenceRequestSchema: z.ZodObject<{
758
758
  safety: z.ZodEffects<z.ZodNullable<z.ZodOptional<z.ZodEnum<["safe", "requires-review", "blocked"]>>>, NonNullable<"safe" | "requires-review" | "blocked"> | undefined, "safe" | "requires-review" | "blocked" | null | undefined>;
759
759
  safetyReasons: z.ZodEffects<z.ZodNullable<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>, string[] | undefined, string[] | null | undefined>;
760
760
  }, "strict", z.ZodTypeAny, {
761
+ confidence?: number | undefined;
761
762
  source?: string | undefined;
762
763
  stale?: boolean | undefined;
763
764
  created?: string | undefined;
764
765
  updated?: string | undefined;
765
766
  scope?: string | undefined;
766
- confidence?: number | undefined;
767
767
  retrievalReason?: string | undefined;
768
768
  safety?: NonNullable<"safe" | "requires-review" | "blocked"> | undefined;
769
769
  safeToUse?: boolean | undefined;
@@ -772,12 +772,12 @@ declare const actionConfidenceRequestSchema: z.ZodObject<{
772
772
  safetyReasons?: string[] | undefined;
773
773
  userContextScopes?: string[] | undefined;
774
774
  }, {
775
+ confidence?: number | null | undefined;
775
776
  source?: string | null | undefined;
776
777
  stale?: boolean | null | undefined;
777
778
  created?: string | null | undefined;
778
779
  updated?: string | null | undefined;
779
780
  scope?: string | null | undefined;
780
- confidence?: number | null | undefined;
781
781
  retrievalReason?: string | null | undefined;
782
782
  safety?: "safe" | "requires-review" | "blocked" | null | undefined;
783
783
  safeToUse?: boolean | null | undefined;
@@ -786,12 +786,12 @@ declare const actionConfidenceRequestSchema: z.ZodObject<{
786
786
  safetyReasons?: string[] | null | undefined;
787
787
  userContextScopes?: string[] | null | undefined;
788
788
  }>, "many">>>, {
789
+ confidence?: number | undefined;
789
790
  source?: string | undefined;
790
791
  stale?: boolean | undefined;
791
792
  created?: string | undefined;
792
793
  updated?: string | undefined;
793
794
  scope?: string | undefined;
794
- confidence?: number | undefined;
795
795
  retrievalReason?: string | undefined;
796
796
  safety?: NonNullable<"safe" | "requires-review" | "blocked"> | undefined;
797
797
  safeToUse?: boolean | undefined;
@@ -800,12 +800,12 @@ declare const actionConfidenceRequestSchema: z.ZodObject<{
800
800
  safetyReasons?: string[] | undefined;
801
801
  userContextScopes?: string[] | undefined;
802
802
  }[] | undefined, {
803
+ confidence?: number | null | undefined;
803
804
  source?: string | null | undefined;
804
805
  stale?: boolean | null | undefined;
805
806
  created?: string | null | undefined;
806
807
  updated?: string | null | undefined;
807
808
  scope?: string | null | undefined;
808
- confidence?: number | null | undefined;
809
809
  retrievalReason?: string | null | undefined;
810
810
  safety?: "safe" | "requires-review" | "blocked" | null | undefined;
811
811
  safeToUse?: boolean | null | undefined;
@@ -826,12 +826,12 @@ declare const actionConfidenceRequestSchema: z.ZodObject<{
826
826
  description?: string | undefined;
827
827
  }[] | undefined;
828
828
  retrievedMemories?: {
829
+ confidence?: number | undefined;
829
830
  source?: string | undefined;
830
831
  stale?: boolean | undefined;
831
832
  created?: string | undefined;
832
833
  updated?: string | undefined;
833
834
  scope?: string | undefined;
834
- confidence?: number | undefined;
835
835
  retrievalReason?: string | undefined;
836
836
  safety?: NonNullable<"safe" | "requires-review" | "blocked"> | undefined;
837
837
  safeToUse?: boolean | undefined;
@@ -852,12 +852,12 @@ declare const actionConfidenceRequestSchema: z.ZodObject<{
852
852
  description?: string | null | undefined;
853
853
  }[] | null | undefined;
854
854
  retrievedMemories?: {
855
+ confidence?: number | null | undefined;
855
856
  source?: string | null | undefined;
856
857
  stale?: boolean | null | undefined;
857
858
  created?: string | null | undefined;
858
859
  updated?: string | null | undefined;
859
860
  scope?: string | null | undefined;
860
- confidence?: number | null | undefined;
861
861
  retrievalReason?: string | null | undefined;
862
862
  safety?: "safe" | "requires-review" | "blocked" | null | undefined;
863
863
  safeToUse?: boolean | null | undefined;
@@ -4,7 +4,7 @@ import { StorageManager } from './storage.js';
4
4
  import { a as Peer, b as PeerProfile } from './types-B1VHaf2w.js';
5
5
  import { RecallExplainJsonPayload } from './recall-explain-renderer.js';
6
6
  import { AnomalyDetectorResult } from './recall-audit-anomaly.js';
7
- import { O as Orchestrator, I as IntentDebugSnapshot, G as GraphRecallSnapshot, P as PatternReinforcementResult, W as WearablesService } from './orchestrator-DqPAz8ot.js';
7
+ import { O as Orchestrator, I as IntentDebugSnapshot, G as GraphRecallSnapshot, P as PatternReinforcementResult, W as WearablesService } from './orchestrator-BR0sGsME.js';
8
8
  import { ExplicitCaptureInput } from './explicit-capture.js';
9
9
  import { BudgetDecision } from './cross-namespace-budget.js';
10
10
  import { readMemoryGovernanceRunArtifact } from './maintenance/memory-governance.js';
@@ -1,10 +1,10 @@
1
- export { o as CodingScopedWriteInput, p as ENGRAM_ACCESS_WRITE_SCHEMA_VERSION, q as EngramAccessActionConfidenceRequest, r as EngramAccessActionConfidenceResponse, s as EngramAccessBriefingRequest, t as EngramAccessBriefingResponse, u as EngramAccessCapsuleListResponse, v as EngramAccessDaySummaryRequest, w as EngramAccessEntityListResponse, x as EngramAccessEntityResponse, y as EngramAccessEntitySummary, z as EngramAccessHealthResponse, i as EngramAccessInputError, B as EngramAccessLcmCompactionFlushRequest, F as EngramAccessLcmCompactionFlushResponse, G as EngramAccessLcmCompactionRecordRequest, H as EngramAccessLcmCompactionRecordResponse, I as EngramAccessLcmSearchRequest, J as EngramAccessLcmSearchResponse, K as EngramAccessLcmStatusResponse, L as EngramAccessMaintenanceResponse, M as EngramAccessMemoryBrowseRequest, N as EngramAccessMemoryBrowseResponse, O as EngramAccessMemoryRecord, E as EngramAccessMemoryResponse, Q as EngramAccessMemoryStoreRequest, R as EngramAccessMemorySummary, S as EngramAccessObserveMessage, T as EngramAccessObserveRequest, U as EngramAccessObserveResponse, V as EngramAccessOfflineSyncApplyFileContentRequest, W as EngramAccessOfflineSyncApplyFileContentResponse, X as EngramAccessOfflineSyncApplyRequest, Y as EngramAccessOfflineSyncApplyResponse, Z as EngramAccessOfflineSyncFileContentRequest, _ as EngramAccessOfflineSyncFileContentResponse, $ as EngramAccessOfflineSyncFilesRequest, a0 as EngramAccessOfflineSyncFilesResponse, a1 as EngramAccessOfflineSyncSnapshotRequest, a2 as EngramAccessOfflineSyncSnapshotResponse, a3 as EngramAccessOfflineSyncSnapshotStreamResponse, a4 as EngramAccessQmdCollectionState, a5 as EngramAccessQmdHealthResponse, a6 as EngramAccessQualityResponse, a7 as EngramAccessRecallExplainRequest, a8 as EngramAccessRecallExplainResponse, a9 as EngramAccessRecallRequest, h as EngramAccessRecallResponse, aa as EngramAccessReviewDispositionRequest, ab as EngramAccessReviewDispositionResponse, ac as EngramAccessReviewQueueResponse, ad as EngramAccessScopeDebug, g as EngramAccessService, ae as EngramAccessSetCodingContextRequest, af as EngramAccessSuggestionSubmitRequest, ag as EngramAccessTimelineResponse, ah as EngramAccessTrustZoneBrowseRequest, ai as EngramAccessTrustZoneBrowseResponse, aj as EngramAccessTrustZoneDemoSeedRequest, ak as EngramAccessTrustZoneDemoSeedResponse, al as EngramAccessTrustZonePromoteRequest, am as EngramAccessTrustZonePromoteResponse, an as EngramAccessTrustZoneRecordSummary, ao as EngramAccessTrustZoneStatusResponse, ap as EngramAccessWriteEnvelope, e as EngramAccessWriteResponse, aq as MemoryScopePlan, ar as shapeMemorySummary } from './access-service-Bgpjxo4f.js';
1
+ export { o as CodingScopedWriteInput, p as ENGRAM_ACCESS_WRITE_SCHEMA_VERSION, q as EngramAccessActionConfidenceRequest, r as EngramAccessActionConfidenceResponse, s as EngramAccessBriefingRequest, t as EngramAccessBriefingResponse, u as EngramAccessCapsuleListResponse, v as EngramAccessDaySummaryRequest, w as EngramAccessEntityListResponse, x as EngramAccessEntityResponse, y as EngramAccessEntitySummary, z as EngramAccessHealthResponse, i as EngramAccessInputError, B as EngramAccessLcmCompactionFlushRequest, F as EngramAccessLcmCompactionFlushResponse, G as EngramAccessLcmCompactionRecordRequest, H as EngramAccessLcmCompactionRecordResponse, I as EngramAccessLcmSearchRequest, J as EngramAccessLcmSearchResponse, K as EngramAccessLcmStatusResponse, L as EngramAccessMaintenanceResponse, M as EngramAccessMemoryBrowseRequest, N as EngramAccessMemoryBrowseResponse, O as EngramAccessMemoryRecord, E as EngramAccessMemoryResponse, Q as EngramAccessMemoryStoreRequest, R as EngramAccessMemorySummary, S as EngramAccessObserveMessage, T as EngramAccessObserveRequest, U as EngramAccessObserveResponse, V as EngramAccessOfflineSyncApplyFileContentRequest, W as EngramAccessOfflineSyncApplyFileContentResponse, X as EngramAccessOfflineSyncApplyRequest, Y as EngramAccessOfflineSyncApplyResponse, Z as EngramAccessOfflineSyncFileContentRequest, _ as EngramAccessOfflineSyncFileContentResponse, $ as EngramAccessOfflineSyncFilesRequest, a0 as EngramAccessOfflineSyncFilesResponse, a1 as EngramAccessOfflineSyncSnapshotRequest, a2 as EngramAccessOfflineSyncSnapshotResponse, a3 as EngramAccessOfflineSyncSnapshotStreamResponse, a4 as EngramAccessQmdCollectionState, a5 as EngramAccessQmdHealthResponse, a6 as EngramAccessQualityResponse, a7 as EngramAccessRecallExplainRequest, a8 as EngramAccessRecallExplainResponse, a9 as EngramAccessRecallRequest, h as EngramAccessRecallResponse, aa as EngramAccessReviewDispositionRequest, ab as EngramAccessReviewDispositionResponse, ac as EngramAccessReviewQueueResponse, ad as EngramAccessScopeDebug, g as EngramAccessService, ae as EngramAccessSetCodingContextRequest, af as EngramAccessSuggestionSubmitRequest, ag as EngramAccessTimelineResponse, ah as EngramAccessTrustZoneBrowseRequest, ai as EngramAccessTrustZoneBrowseResponse, aj as EngramAccessTrustZoneDemoSeedRequest, ak as EngramAccessTrustZoneDemoSeedResponse, al as EngramAccessTrustZonePromoteRequest, am as EngramAccessTrustZonePromoteResponse, an as EngramAccessTrustZoneRecordSummary, ao as EngramAccessTrustZoneStatusResponse, ap as EngramAccessWriteEnvelope, e as EngramAccessWriteResponse, aq as MemoryScopePlan, ar as shapeMemorySummary } from './access-service-BXMJqkTA.js';
2
2
  import './storage.js';
3
3
  import './types-B1VHaf2w.js';
4
4
  import './recall-explain-renderer.js';
5
5
  import './types-ChQb9D6s.js';
6
6
  import './recall-audit-anomaly.js';
7
- import './orchestrator-DqPAz8ot.js';
7
+ import './orchestrator-BR0sGsME.js';
8
8
  import './explicit-capture.js';
9
9
  import './cross-namespace-budget.js';
10
10
  import './maintenance/memory-governance.js';
@@ -3,7 +3,7 @@ import {
3
3
  EngramAccessInputError,
4
4
  EngramAccessService,
5
5
  shapeMemorySummary
6
- } from "./chunk-27QQC7ZX.js";
6
+ } from "./chunk-UM5AWJNQ.js";
7
7
  import "./chunk-GDASG7NC.js";
8
8
  import "./chunk-GDB4J2H3.js";
9
9
  import "./chunk-ARV3AUOM.js";
@@ -25,13 +25,13 @@ import "./chunk-DRUDC2UX.js";
25
25
  import "./chunk-AQEJKOKI.js";
26
26
  import "./chunk-6HMYUWXR.js";
27
27
  import "./chunk-J6BH2OBA.js";
28
- import "./chunk-CTOQEZSN.js";
29
- import "./chunk-2KAYTPPT.js";
28
+ import "./chunk-V4GNSDFH.js";
29
+ import "./chunk-UTHQPSRC.js";
30
30
  import "./chunk-WRFKZEO6.js";
31
31
  import "./chunk-CYEPCZN5.js";
32
32
  import "./chunk-LQ6JI4VH.js";
33
33
  import "./chunk-SANZHXY2.js";
34
- import "./chunk-EHISUJFN.js";
34
+ import "./chunk-WAS3NV46.js";
35
35
  import "./chunk-5CEJH5ZN.js";
36
36
  import "./chunk-AER6MT24.js";
37
37
  import "./chunk-CINZGPSJ.js";
@@ -51,7 +51,7 @@ import "./chunk-QDW3E4RD.js";
51
51
  import "./chunk-EH5ED3C6.js";
52
52
  import "./chunk-3ONXXHQO.js";
53
53
  import "./chunk-ODPLEWB6.js";
54
- import "./chunk-DVRHLN2O.js";
54
+ import "./chunk-3RCBIOOJ.js";
55
55
  import "./chunk-ZY2MNJR6.js";
56
56
  import "./chunk-SQNED75R.js";
57
57
  import "./chunk-EHQ5HO5T.js";
@@ -1,6 +1,6 @@
1
1
  import { OperationName } from './access-boundary.js';
2
2
  import 'zod';
3
- import './access-service-Bgpjxo4f.js';
3
+ import './access-service-BXMJqkTA.js';
4
4
  import './catalog-bMczlO2G.js';
5
5
  import './types-ChQb9D6s.js';
6
6
  import './types-gb_SNtjR.js';
@@ -22,7 +22,7 @@ import './memory-provenance.js';
22
22
  import './user-model.js';
23
23
  import './recall-audit-anomaly.js';
24
24
  import './recall-audit.js';
25
- import './orchestrator-DqPAz8ot.js';
25
+ import './orchestrator-BR0sGsME.js';
26
26
  import './briefing.js';
27
27
  import './buffer.js';
28
28
  import './extraction-faithfulness.js';
@@ -1,5 +1,5 @@
1
1
  import { P as PluginConfig } from './types-ChQb9D6s.js';
2
- import { O as Orchestrator } from './orchestrator-DqPAz8ot.js';
2
+ import { O as Orchestrator } from './orchestrator-BR0sGsME.js';
3
3
  import './types-gb_SNtjR.js';
4
4
  import './message-parts/index.js';
5
5
  import './briefing.js';
@@ -125,5 +125,47 @@ interface AccessSetupCapabilitySet {
125
125
  */
126
126
  type AccessSetupConfigProjection = Pick<PluginConfig, "recallCrossNamespaceBudgetEnabled" | "recallAuditAnomalyDetectionEnabled">;
127
127
  declare function resolveAccessSetupCapabilities(config: AccessSetupConfigProjection): AccessSetupCapabilitySet;
128
+ /**
129
+ * Frozen projection of memory-lifecycle feature gates (issue #1523 batch 3).
130
+ *
131
+ * Resolved once per write / recall-filter / maintenance operation and threaded
132
+ * down. Composition lives ONLY in {@link resolveMemoryLifecycleCapabilities}.
133
+ */
134
+ interface MemoryLifecycleCapabilitySet {
135
+ /** `temporalSupersessionEnabled` — supersede stale structured facts on write, filter on recall. */
136
+ readonly temporalSupersession: boolean;
137
+ /** `temporalMemoryTreeEnabled` — temporal-memory-tree build + recall tier. */
138
+ readonly temporalMemoryTree: boolean;
139
+ /** `lifecyclePolicyEnabled` — lifecycle promotion / decay metadata pass. */
140
+ readonly lifecyclePolicy: boolean;
141
+ /** `lifecycleFilterStaleEnabled` — filter stale-lifecycle memories from recall. */
142
+ readonly lifecycleFilterStale: boolean;
143
+ /** `lifecycleMetricsEnabled` — emit lifecycle-pass metrics. */
144
+ readonly lifecycleMetrics: boolean;
145
+ /** `extractionScopeClassificationEnabled` — LLM classifies each fact's scope. */
146
+ readonly extractionScopeClassification: boolean;
147
+ /** `extractionJudgeEnabled` — LLM-as-judge fact-worthiness gate. */
148
+ readonly extractionJudge: boolean;
149
+ /** `extractionDedupeEnabled` — dedupe against recent extractions. */
150
+ readonly extractionDedupe: boolean;
151
+ /** `extractionTelemetryPrefilterEnabled` — skip mechanical-telemetry transcripts. */
152
+ readonly extractionTelemetryPrefilter: boolean;
153
+ /** `extractionJudgeTelemetryEnabled` — collect judge verdict telemetry. */
154
+ readonly extractionJudgeTelemetry: boolean;
155
+ /** `embeddingFallbackEnabled` — semantic-dedup / archive-search embedding fallback. */
156
+ readonly embeddingFallback: boolean;
157
+ }
158
+ /**
159
+ * Config projection consumed by {@link resolveMemoryLifecycleCapabilities}.
160
+ */
161
+ type MemoryLifecycleConfigProjection = Pick<PluginConfig, "temporalSupersessionEnabled" | "temporalMemoryTreeEnabled" | "lifecyclePolicyEnabled" | "lifecycleFilterStaleEnabled" | "lifecycleMetricsEnabled" | "extractionScopeClassificationEnabled" | "extractionJudgeEnabled" | "extractionDedupeEnabled" | "extractionTelemetryPrefilterEnabled" | "extractionJudgeTelemetryEnabled" | "embeddingFallbackEnabled">;
162
+ /**
163
+ * Resolve the {@link MemoryLifecycleCapabilitySet} from parsed config.
164
+ *
165
+ * Call this ONCE per write / recall-filter / maintenance operation entry and
166
+ * thread the result down — exactly the pattern {@link resolveCapabilities}
167
+ * established for recall.
168
+ */
169
+ declare function resolveMemoryLifecycleCapabilities(config: MemoryLifecycleConfigProjection): MemoryLifecycleCapabilitySet;
128
170
 
129
- export { type AccessSetupCapabilitySet, type AccessSetupConfigProjection, type CapabilitySet, type GraphConstructionCapabilitySet, type GraphConstructionConfigProjection, resolveAccessSetupCapabilities, resolveCapabilities, resolveGraphConstructionCapabilities };
171
+ export { type AccessSetupCapabilitySet, type AccessSetupConfigProjection, type CapabilitySet, type GraphConstructionCapabilitySet, type GraphConstructionConfigProjection, type MemoryLifecycleCapabilitySet, type MemoryLifecycleConfigProjection, resolveAccessSetupCapabilities, resolveCapabilities, resolveGraphConstructionCapabilities, resolveMemoryLifecycleCapabilities };
@@ -1,12 +1,14 @@
1
1
  import {
2
2
  resolveAccessSetupCapabilities,
3
3
  resolveCapabilities,
4
- resolveGraphConstructionCapabilities
5
- } from "./chunk-DVRHLN2O.js";
4
+ resolveGraphConstructionCapabilities,
5
+ resolveMemoryLifecycleCapabilities
6
+ } from "./chunk-3RCBIOOJ.js";
6
7
  import "./chunk-PZ5AY32C.js";
7
8
  export {
8
9
  resolveAccessSetupCapabilities,
9
10
  resolveCapabilities,
10
- resolveGraphConstructionCapabilities
11
+ resolveGraphConstructionCapabilities,
12
+ resolveMemoryLifecycleCapabilities
11
13
  };
12
14
  //# sourceMappingURL=capabilities.js.map
@@ -41,10 +41,26 @@ function resolveAccessSetupCapabilities(config) {
41
41
  recallAuditAnomalyDetection: config.recallAuditAnomalyDetectionEnabled === true
42
42
  });
43
43
  }
44
+ function resolveMemoryLifecycleCapabilities(config) {
45
+ return Object.freeze({
46
+ temporalSupersession: config.temporalSupersessionEnabled,
47
+ temporalMemoryTree: config.temporalMemoryTreeEnabled,
48
+ lifecyclePolicy: config.lifecyclePolicyEnabled,
49
+ lifecycleFilterStale: config.lifecycleFilterStaleEnabled,
50
+ lifecycleMetrics: config.lifecycleMetricsEnabled,
51
+ extractionScopeClassification: config.extractionScopeClassificationEnabled,
52
+ extractionJudge: config.extractionJudgeEnabled,
53
+ extractionDedupe: config.extractionDedupeEnabled,
54
+ extractionTelemetryPrefilter: config.extractionTelemetryPrefilterEnabled,
55
+ extractionJudgeTelemetry: config.extractionJudgeTelemetryEnabled,
56
+ embeddingFallback: config.embeddingFallbackEnabled
57
+ });
58
+ }
44
59
 
45
60
  export {
46
61
  resolveCapabilities,
47
62
  resolveGraphConstructionCapabilities,
48
- resolveAccessSetupCapabilities
63
+ resolveAccessSetupCapabilities,
64
+ resolveMemoryLifecycleCapabilities
49
65
  };
50
- //# sourceMappingURL=chunk-DVRHLN2O.js.map
66
+ //# sourceMappingURL=chunk-3RCBIOOJ.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/capabilities.ts"],"sourcesContent":["/**\n * CapabilitySet — recall-operation feature gates resolved once, then threaded.\n *\n * Issue #1523 (Phase 1 of epic #1520). Root cause this addresses: 161+\n * scattered `config.<flag>Enabled` reads mean each gate is re-derived at every\n * call site, and reviews keep finding parallel code paths where one branch\n * checks a gate the other forgot (CLAUDE.md rule 39 — the \"gate divergence\"\n * defect class). The fix is to resolve a frozen capability projection ONCE at\n * the top of the recall operation and pass it down explicitly.\n *\n * Scope of THIS module (first migration PR): only the recall-operation-scoped\n * flags below. Flags that are also read in graph construction, writes, CLI, or\n * the summarizer are deliberately deferred to a follow-up so we never leave a\n * single flag half-migrated (some sites on `caps.`, some on `config.`).\n *\n * Field naming: each field is the config flag name with the trailing `Enabled`\n * removed (`recallMmrEnabled` → `recallMmr`).\n *\n * This is plumbing, not a feature — there is deliberately NO `enabled` gate for\n * the CapabilitySet itself (rule 30 governs behavior changes; resolving and\n * threading a capability projection must stay behavior-preserving).\n */\n\nimport type { PluginConfig } from \"./types.js\";\n\n/**\n * Frozen projection of recall-operation feature gates.\n *\n * Every field is `readonly boolean`. The composition that maps a config flag to\n * a capability (including default-when-undefined semantics for optional flags)\n * lives ONLY in {@link resolveCapabilities} — call sites must read the\n * capability, never re-derive it from raw config.\n */\nexport interface CapabilitySet {\n /** `rerankCacheEnabled` — cache reranker scores across recall passes. */\n readonly rerankCache: boolean;\n /** `recallDirectAnswerEnabled` — observation-mode direct-answer tier. */\n readonly recallDirectAnswer: boolean;\n /** `recallMemoryWorthFilterEnabled` — Memory-Worth score reweighting. */\n readonly recallMemoryWorthFilter: boolean;\n /** `trustScoreEnabled` — unified TrustScore recall stage (issue #1577). */\n readonly recallTrustScore: boolean;\n /** `recallMmrEnabled` — maximal-marginal-relevance diversification. */\n readonly recallMmr: boolean;\n /** `recallReasoningTraceBoostEnabled` — boost reasoning-trace memories. */\n readonly recallReasoningTraceBoost: boolean;\n /** `recallPlannerLlmEnabled` — LLM-backed recall-mode planner. */\n readonly recallPlannerLlm: boolean;\n /** `recallPlannerEnabled` — recall-mode planner (heuristic + optional LLM). */\n readonly recallPlanner: boolean;\n /** `recallConfidenceGateEnabled` — Synapse-style confidence gate. */\n readonly recallConfidenceGate: boolean;\n /** `graphRecallEnabled` — graph-mode recall tier (gates planner graph mode). */\n readonly graphRecall: boolean;\n /** `graphAssistInFullModeEnabled` — graph-assist overlay in full mode. */\n readonly graphAssistInFullMode: boolean;\n /** `graphExpandedIntentEnabled` — promote broad-intent asks to graph mode. */\n readonly graphExpandedIntent: boolean;\n // --- Issue #1566 Cluster C: mixed-operation flags (recall + summarizer/CLI/writes) ---\n /** `rerankEnabled` — optional LLM reranking of recall candidates. */\n readonly rerank: boolean;\n /** `harmonicRetrievalEnabled` — abstraction-node harmonic retrieval tier. */\n readonly harmonicRetrieval: boolean;\n /** `parallelRetrievalEnabled` — three-agent parallel retrieval (DirectFact + Contextual + Temporal). */\n readonly parallelRetrieval: boolean;\n}\n\n/**\n * Resolve the recall-operation {@link CapabilitySet} from parsed config.\n *\n * Call this ONCE per recall operation (at the `recall()` / `recallInternal`\n * entry) and thread the result down. Composition lives here and only here.\n *\n * Session toggles are intentionally not a parameter yet: `session-toggles.ts`\n * is agent-scoped (per session/agent enable-disable of the whole plugin), not\n * flag-scoped — none of the flags projected here have a per-session override,\n * so there is nothing for a toggle argument to compose at this layer.\n */\nexport function resolveCapabilities(config: PluginConfig): CapabilitySet {\n return Object.freeze({\n rerankCache: config.rerankCacheEnabled,\n recallDirectAnswer: config.recallDirectAnswerEnabled,\n recallMemoryWorthFilter: config.recallMemoryWorthFilterEnabled,\n // Issue #1577: TrustScore subsumes the Memory Worth multiplier when on;\n // the orchestrator runs exactly one of the two (mutual exclusion, rule 39).\n recallTrustScore: config.trustScoreEnabled === true,\n recallMmr: config.recallMmrEnabled,\n recallReasoningTraceBoost: config.recallReasoningTraceBoostEnabled,\n recallPlannerLlm: config.recallPlannerLlmEnabled,\n recallPlanner: config.recallPlannerEnabled,\n recallConfidenceGate: config.recallConfidenceGateEnabled,\n graphRecall: config.graphRecallEnabled,\n // Optional flags: preserve the exact default-when-undefined semantics the\n // migrated call sites used (`!== false` = default-on, `=== true` = default-off).\n graphAssistInFullMode: config.graphAssistInFullModeEnabled !== false,\n graphExpandedIntent: config.graphExpandedIntentEnabled === true,\n // Issue #1566 Cluster C: mixed-operation flags resolved once per recall op.\n rerank: config.rerankEnabled,\n harmonicRetrieval: config.harmonicRetrievalEnabled,\n parallelRetrieval: config.parallelRetrievalEnabled,\n });\n}\n\n// ---------------------------------------------------------------------------\n// Graph-construction capability set (issue #1566 Cluster A).\n//\n// The recall CapabilitySet above covers flags whose EVERY read site lives on\n// the recall call chain. The five flags below are read on graph-construction,\n// write/extraction, AND recall paths — so they cannot join the recall set\n// without leaving some sites on `caps.` and others on `config.` (the exact\n// divergence #1523 forbade). They get their own projection, resolved at graph\n// build/write entry (and alongside `caps` when recall reads them).\n// ---------------------------------------------------------------------------\n\n/**\n * Frozen projection of graph-construction feature gates.\n *\n * Every field is `readonly boolean`. Composition (including default-when-\n * undefined semantics for the optional `graphWriteSessionAdjacencyEnabled`)\n * lives ONLY in {@link resolveGraphConstructionCapabilities}.\n */\nexport interface GraphConstructionCapabilitySet {\n /** `entityGraphEnabled` — maintain entity co-reference graph edges. */\n readonly entityGraph: boolean;\n /** `timeGraphEnabled` — maintain thread-adjacency graph edges. */\n readonly timeGraph: boolean;\n /** `causalGraphEnabled` — maintain causal-language graph edges. */\n readonly causalGraph: boolean;\n /** `multiGraphMemoryEnabled` — master switch for multi-graph writes/traversal. */\n readonly multiGraphMemory: boolean;\n /** `graphWriteSessionAdjacencyEnabled` — session-adjacency fallback for time edges (default-on). */\n readonly graphWriteSessionAdjacency: boolean;\n}\n\n/**\n * Resolve the {@link GraphConstructionCapabilitySet} from parsed config.\n *\n * Call this ONCE at graph build/write entry (extraction, recall graph\n * expansion, graph-health/repair) and thread the result down — exactly the\n * pattern {@link resolveCapabilities} established for recall.\n */\nexport type GraphConstructionConfigProjection = Pick<\n PluginConfig,\n | \"entityGraphEnabled\"\n | \"timeGraphEnabled\"\n | \"causalGraphEnabled\"\n | \"multiGraphMemoryEnabled\"\n | \"graphWriteSessionAdjacencyEnabled\"\n>;\n\nexport function resolveGraphConstructionCapabilities(\n config: GraphConstructionConfigProjection,\n): GraphConstructionCapabilitySet {\n return Object.freeze({\n entityGraph: config.entityGraphEnabled,\n timeGraph: config.timeGraphEnabled,\n causalGraph: config.causalGraphEnabled,\n multiGraphMemory: config.multiGraphMemoryEnabled,\n // Optional flag: preserve the exact default-when-undefined semantics the\n // migrated call site used (`!== false` = default-on).\n graphWriteSessionAdjacency: config.graphWriteSessionAdjacencyEnabled !== false,\n });\n}\n\n// ---------------------------------------------------------------------------\n// Access-setup capability set (issue #1566 Cluster B).\n//\n// These two flags gate cross-namespace recall budgeting and anomaly-detection\n// auditing. Resolved once at access-service handler entry (and the operator\n// doctor check) rather than re-derived from raw config at each site.\n// ---------------------------------------------------------------------------\n\n/**\n * Frozen projection of access-setup feature gates (issue #1566 Cluster B).\n *\n * Every field is `readonly boolean`. Composition (including the default-off\n * semantics for the optional `recallAuditAnomalyDetectionEnabled`) lives ONLY\n * in {@link resolveAccessSetupCapabilities}.\n */\nexport interface AccessSetupCapabilitySet {\n /** `recallCrossNamespaceBudgetEnabled` — rolling cross-namespace recall budget. */\n readonly recallCrossNamespaceBudget: boolean;\n /** `recallAuditAnomalyDetectionEnabled` — access-audit anomaly detection (default-off). */\n readonly recallAuditAnomalyDetection: boolean;\n}\n\n/**\n * Resolve the {@link AccessSetupCapabilitySet} from parsed config.\n *\n * Call this ONCE at access-service handler entry and thread the result down.\n */\nexport type AccessSetupConfigProjection = Pick<\n PluginConfig,\n \"recallCrossNamespaceBudgetEnabled\" | \"recallAuditAnomalyDetectionEnabled\"\n>;\n\nexport function resolveAccessSetupCapabilities(\n config: AccessSetupConfigProjection,\n): AccessSetupCapabilitySet {\n return Object.freeze({\n recallCrossNamespaceBudget: config.recallCrossNamespaceBudgetEnabled,\n // Optional/default-off flag: preserve `=== true` semantics.\n recallAuditAnomalyDetection: config.recallAuditAnomalyDetectionEnabled === true,\n });\n}\n"],"mappings":";AA8EO,SAAS,oBAAoB,QAAqC;AACvE,SAAO,OAAO,OAAO;AAAA,IACnB,aAAa,OAAO;AAAA,IACpB,oBAAoB,OAAO;AAAA,IAC3B,yBAAyB,OAAO;AAAA;AAAA;AAAA,IAGhC,kBAAkB,OAAO,sBAAsB;AAAA,IAC/C,WAAW,OAAO;AAAA,IAClB,2BAA2B,OAAO;AAAA,IAClC,kBAAkB,OAAO;AAAA,IACzB,eAAe,OAAO;AAAA,IACtB,sBAAsB,OAAO;AAAA,IAC7B,aAAa,OAAO;AAAA;AAAA;AAAA,IAGpB,uBAAuB,OAAO,iCAAiC;AAAA,IAC/D,qBAAqB,OAAO,+BAA+B;AAAA;AAAA,IAE3D,QAAQ,OAAO;AAAA,IACf,mBAAmB,OAAO;AAAA,IAC1B,mBAAmB,OAAO;AAAA,EAC5B,CAAC;AACH;AAiDO,SAAS,qCACd,QACgC;AAChC,SAAO,OAAO,OAAO;AAAA,IACnB,aAAa,OAAO;AAAA,IACpB,WAAW,OAAO;AAAA,IAClB,aAAa,OAAO;AAAA,IACpB,kBAAkB,OAAO;AAAA;AAAA;AAAA,IAGzB,4BAA4B,OAAO,sCAAsC;AAAA,EAC3E,CAAC;AACH;AAkCO,SAAS,+BACd,QAC0B;AAC1B,SAAO,OAAO,OAAO;AAAA,IACnB,4BAA4B,OAAO;AAAA;AAAA,IAEnC,6BAA6B,OAAO,uCAAuC;AAAA,EAC7E,CAAC;AACH;","names":[]}
1
+ {"version":3,"sources":["../src/capabilities.ts"],"sourcesContent":["/**\n * CapabilitySet — recall-operation feature gates resolved once, then threaded.\n *\n * Issue #1523 (Phase 1 of epic #1520). Root cause this addresses: 161+\n * scattered `config.<flag>Enabled` reads mean each gate is re-derived at every\n * call site, and reviews keep finding parallel code paths where one branch\n * checks a gate the other forgot (CLAUDE.md rule 39 — the \"gate divergence\"\n * defect class). The fix is to resolve a frozen capability projection ONCE at\n * the top of the recall operation and pass it down explicitly.\n *\n * Scope of THIS module (first migration PR): only the recall-operation-scoped\n * flags below. Flags that are also read in graph construction, writes, CLI, or\n * the summarizer are deliberately deferred to a follow-up so we never leave a\n * single flag half-migrated (some sites on `caps.`, some on `config.`).\n *\n * Field naming: each field is the config flag name with the trailing `Enabled`\n * removed (`recallMmrEnabled` → `recallMmr`).\n *\n * This is plumbing, not a feature — there is deliberately NO `enabled` gate for\n * the CapabilitySet itself (rule 30 governs behavior changes; resolving and\n * threading a capability projection must stay behavior-preserving).\n */\n\nimport type { PluginConfig } from \"./types.js\";\n\n/**\n * Frozen projection of recall-operation feature gates.\n *\n * Every field is `readonly boolean`. The composition that maps a config flag to\n * a capability (including default-when-undefined semantics for optional flags)\n * lives ONLY in {@link resolveCapabilities} — call sites must read the\n * capability, never re-derive it from raw config.\n */\nexport interface CapabilitySet {\n /** `rerankCacheEnabled` — cache reranker scores across recall passes. */\n readonly rerankCache: boolean;\n /** `recallDirectAnswerEnabled` — observation-mode direct-answer tier. */\n readonly recallDirectAnswer: boolean;\n /** `recallMemoryWorthFilterEnabled` — Memory-Worth score reweighting. */\n readonly recallMemoryWorthFilter: boolean;\n /** `trustScoreEnabled` — unified TrustScore recall stage (issue #1577). */\n readonly recallTrustScore: boolean;\n /** `recallMmrEnabled` — maximal-marginal-relevance diversification. */\n readonly recallMmr: boolean;\n /** `recallReasoningTraceBoostEnabled` — boost reasoning-trace memories. */\n readonly recallReasoningTraceBoost: boolean;\n /** `recallPlannerLlmEnabled` — LLM-backed recall-mode planner. */\n readonly recallPlannerLlm: boolean;\n /** `recallPlannerEnabled` — recall-mode planner (heuristic + optional LLM). */\n readonly recallPlanner: boolean;\n /** `recallConfidenceGateEnabled` — Synapse-style confidence gate. */\n readonly recallConfidenceGate: boolean;\n /** `graphRecallEnabled` — graph-mode recall tier (gates planner graph mode). */\n readonly graphRecall: boolean;\n /** `graphAssistInFullModeEnabled` — graph-assist overlay in full mode. */\n readonly graphAssistInFullMode: boolean;\n /** `graphExpandedIntentEnabled` — promote broad-intent asks to graph mode. */\n readonly graphExpandedIntent: boolean;\n // --- Issue #1566 Cluster C: mixed-operation flags (recall + summarizer/CLI/writes) ---\n /** `rerankEnabled` — optional LLM reranking of recall candidates. */\n readonly rerank: boolean;\n /** `harmonicRetrievalEnabled` — abstraction-node harmonic retrieval tier. */\n readonly harmonicRetrieval: boolean;\n /** `parallelRetrievalEnabled` — three-agent parallel retrieval (DirectFact + Contextual + Temporal). */\n readonly parallelRetrieval: boolean;\n}\n\n/**\n * Resolve the recall-operation {@link CapabilitySet} from parsed config.\n *\n * Call this ONCE per recall operation (at the `recall()` / `recallInternal`\n * entry) and thread the result down. Composition lives here and only here.\n *\n * Session toggles are intentionally not a parameter yet: `session-toggles.ts`\n * is agent-scoped (per session/agent enable-disable of the whole plugin), not\n * flag-scoped — none of the flags projected here have a per-session override,\n * so there is nothing for a toggle argument to compose at this layer.\n */\nexport function resolveCapabilities(config: PluginConfig): CapabilitySet {\n return Object.freeze({\n rerankCache: config.rerankCacheEnabled,\n recallDirectAnswer: config.recallDirectAnswerEnabled,\n recallMemoryWorthFilter: config.recallMemoryWorthFilterEnabled,\n // Issue #1577: TrustScore subsumes the Memory Worth multiplier when on;\n // the orchestrator runs exactly one of the two (mutual exclusion, rule 39).\n recallTrustScore: config.trustScoreEnabled === true,\n recallMmr: config.recallMmrEnabled,\n recallReasoningTraceBoost: config.recallReasoningTraceBoostEnabled,\n recallPlannerLlm: config.recallPlannerLlmEnabled,\n recallPlanner: config.recallPlannerEnabled,\n recallConfidenceGate: config.recallConfidenceGateEnabled,\n graphRecall: config.graphRecallEnabled,\n // Optional flags: preserve the exact default-when-undefined semantics the\n // migrated call sites used (`!== false` = default-on, `=== true` = default-off).\n graphAssistInFullMode: config.graphAssistInFullModeEnabled !== false,\n graphExpandedIntent: config.graphExpandedIntentEnabled === true,\n // Issue #1566 Cluster C: mixed-operation flags resolved once per recall op.\n rerank: config.rerankEnabled,\n harmonicRetrieval: config.harmonicRetrievalEnabled,\n parallelRetrieval: config.parallelRetrievalEnabled,\n });\n}\n\n// ---------------------------------------------------------------------------\n// Graph-construction capability set (issue #1566 Cluster A).\n//\n// The recall CapabilitySet above covers flags whose EVERY read site lives on\n// the recall call chain. The five flags below are read on graph-construction,\n// write/extraction, AND recall paths — so they cannot join the recall set\n// without leaving some sites on `caps.` and others on `config.` (the exact\n// divergence #1523 forbade). They get their own projection, resolved at graph\n// build/write entry (and alongside `caps` when recall reads them).\n// ---------------------------------------------------------------------------\n\n/**\n * Frozen projection of graph-construction feature gates.\n *\n * Every field is `readonly boolean`. Composition (including default-when-\n * undefined semantics for the optional `graphWriteSessionAdjacencyEnabled`)\n * lives ONLY in {@link resolveGraphConstructionCapabilities}.\n */\nexport interface GraphConstructionCapabilitySet {\n /** `entityGraphEnabled` — maintain entity co-reference graph edges. */\n readonly entityGraph: boolean;\n /** `timeGraphEnabled` — maintain thread-adjacency graph edges. */\n readonly timeGraph: boolean;\n /** `causalGraphEnabled` — maintain causal-language graph edges. */\n readonly causalGraph: boolean;\n /** `multiGraphMemoryEnabled` — master switch for multi-graph writes/traversal. */\n readonly multiGraphMemory: boolean;\n /** `graphWriteSessionAdjacencyEnabled` — session-adjacency fallback for time edges (default-on). */\n readonly graphWriteSessionAdjacency: boolean;\n}\n\n/**\n * Resolve the {@link GraphConstructionCapabilitySet} from parsed config.\n *\n * Call this ONCE at graph build/write entry (extraction, recall graph\n * expansion, graph-health/repair) and thread the result down — exactly the\n * pattern {@link resolveCapabilities} established for recall.\n */\nexport type GraphConstructionConfigProjection = Pick<\n PluginConfig,\n | \"entityGraphEnabled\"\n | \"timeGraphEnabled\"\n | \"causalGraphEnabled\"\n | \"multiGraphMemoryEnabled\"\n | \"graphWriteSessionAdjacencyEnabled\"\n>;\n\nexport function resolveGraphConstructionCapabilities(\n config: GraphConstructionConfigProjection,\n): GraphConstructionCapabilitySet {\n return Object.freeze({\n entityGraph: config.entityGraphEnabled,\n timeGraph: config.timeGraphEnabled,\n causalGraph: config.causalGraphEnabled,\n multiGraphMemory: config.multiGraphMemoryEnabled,\n // Optional flag: preserve the exact default-when-undefined semantics the\n // migrated call site used (`!== false` = default-on).\n graphWriteSessionAdjacency: config.graphWriteSessionAdjacencyEnabled !== false,\n });\n}\n\n// ---------------------------------------------------------------------------\n// Access-setup capability set (issue #1566 Cluster B).\n//\n// These two flags gate cross-namespace recall budgeting and anomaly-detection\n// auditing. Resolved once at access-service handler entry (and the operator\n// doctor check) rather than re-derived from raw config at each site.\n// ---------------------------------------------------------------------------\n\n/**\n * Frozen projection of access-setup feature gates (issue #1566 Cluster B).\n *\n * Every field is `readonly boolean`. Composition (including the default-off\n * semantics for the optional `recallAuditAnomalyDetectionEnabled`) lives ONLY\n * in {@link resolveAccessSetupCapabilities}.\n */\nexport interface AccessSetupCapabilitySet {\n /** `recallCrossNamespaceBudgetEnabled` — rolling cross-namespace recall budget. */\n readonly recallCrossNamespaceBudget: boolean;\n /** `recallAuditAnomalyDetectionEnabled` — access-audit anomaly detection (default-off). */\n readonly recallAuditAnomalyDetection: boolean;\n}\n\n/**\n * Resolve the {@link AccessSetupCapabilitySet} from parsed config.\n *\n * Call this ONCE at access-service handler entry and thread the result down.\n */\nexport type AccessSetupConfigProjection = Pick<\n PluginConfig,\n \"recallCrossNamespaceBudgetEnabled\" | \"recallAuditAnomalyDetectionEnabled\"\n>;\n\nexport function resolveAccessSetupCapabilities(\n config: AccessSetupConfigProjection,\n): AccessSetupCapabilitySet {\n return Object.freeze({\n recallCrossNamespaceBudget: config.recallCrossNamespaceBudgetEnabled,\n // Optional/default-off flag: preserve `=== true` semantics.\n recallAuditAnomalyDetection: config.recallAuditAnomalyDetectionEnabled === true,\n });\n}\n\n// ---------------------------------------------------------------------------\n// Memory-lifecycle capability set (issue #1523 batch 3).\n//\n// The flags below gate memory WRITE/EXTRACTION (extraction judge, scope\n// classification, dedupe, telemetry prefilter), temporal supersession of\n// stored facts, and the lifecycle policy pass (promotion / decay / stale\n// filtering). They are read on the persistExtraction write path, the recall\n// candidate-filter path, and the maintenance / lifecycle-pass path — so, like\n// the graph-construction set above, they get their own projection resolved\n// ONCE at each operation entry that reads them (never re-derived from raw\n// config mid-operation — the gate-divergence defect class #1523 targets).\n//\n// Every field projects from an already-resolved PluginConfig boolean (defaults\n// are applied at the config-parse boundary, rule 36), so the resolver is a\n// pure projection — no `!== false` / `=== true` re-coercion here.\n// ---------------------------------------------------------------------------\n\n/**\n * Frozen projection of memory-lifecycle feature gates (issue #1523 batch 3).\n *\n * Resolved once per write / recall-filter / maintenance operation and threaded\n * down. Composition lives ONLY in {@link resolveMemoryLifecycleCapabilities}.\n */\nexport interface MemoryLifecycleCapabilitySet {\n /** `temporalSupersessionEnabled` — supersede stale structured facts on write, filter on recall. */\n readonly temporalSupersession: boolean;\n /** `temporalMemoryTreeEnabled` — temporal-memory-tree build + recall tier. */\n readonly temporalMemoryTree: boolean;\n /** `lifecyclePolicyEnabled` — lifecycle promotion / decay metadata pass. */\n readonly lifecyclePolicy: boolean;\n /** `lifecycleFilterStaleEnabled` — filter stale-lifecycle memories from recall. */\n readonly lifecycleFilterStale: boolean;\n /** `lifecycleMetricsEnabled` — emit lifecycle-pass metrics. */\n readonly lifecycleMetrics: boolean;\n /** `extractionScopeClassificationEnabled` — LLM classifies each fact's scope. */\n readonly extractionScopeClassification: boolean;\n /** `extractionJudgeEnabled` — LLM-as-judge fact-worthiness gate. */\n readonly extractionJudge: boolean;\n /** `extractionDedupeEnabled` — dedupe against recent extractions. */\n readonly extractionDedupe: boolean;\n /** `extractionTelemetryPrefilterEnabled` — skip mechanical-telemetry transcripts. */\n readonly extractionTelemetryPrefilter: boolean;\n /** `extractionJudgeTelemetryEnabled` — collect judge verdict telemetry. */\n readonly extractionJudgeTelemetry: boolean;\n /** `embeddingFallbackEnabled` — semantic-dedup / archive-search embedding fallback. */\n readonly embeddingFallback: boolean;\n}\n\n/**\n * Config projection consumed by {@link resolveMemoryLifecycleCapabilities}.\n */\nexport type MemoryLifecycleConfigProjection = Pick<\n PluginConfig,\n | \"temporalSupersessionEnabled\"\n | \"temporalMemoryTreeEnabled\"\n | \"lifecyclePolicyEnabled\"\n | \"lifecycleFilterStaleEnabled\"\n | \"lifecycleMetricsEnabled\"\n | \"extractionScopeClassificationEnabled\"\n | \"extractionJudgeEnabled\"\n | \"extractionDedupeEnabled\"\n | \"extractionTelemetryPrefilterEnabled\"\n | \"extractionJudgeTelemetryEnabled\"\n | \"embeddingFallbackEnabled\"\n>;\n\n/**\n * Resolve the {@link MemoryLifecycleCapabilitySet} from parsed config.\n *\n * Call this ONCE per write / recall-filter / maintenance operation entry and\n * thread the result down — exactly the pattern {@link resolveCapabilities}\n * established for recall.\n */\nexport function resolveMemoryLifecycleCapabilities(\n config: MemoryLifecycleConfigProjection,\n): MemoryLifecycleCapabilitySet {\n return Object.freeze({\n temporalSupersession: config.temporalSupersessionEnabled,\n temporalMemoryTree: config.temporalMemoryTreeEnabled,\n lifecyclePolicy: config.lifecyclePolicyEnabled,\n lifecycleFilterStale: config.lifecycleFilterStaleEnabled,\n lifecycleMetrics: config.lifecycleMetricsEnabled,\n extractionScopeClassification: config.extractionScopeClassificationEnabled,\n extractionJudge: config.extractionJudgeEnabled,\n extractionDedupe: config.extractionDedupeEnabled,\n extractionTelemetryPrefilter: config.extractionTelemetryPrefilterEnabled,\n extractionJudgeTelemetry: config.extractionJudgeTelemetryEnabled,\n embeddingFallback: config.embeddingFallbackEnabled,\n });\n}\n"],"mappings":";AA8EO,SAAS,oBAAoB,QAAqC;AACvE,SAAO,OAAO,OAAO;AAAA,IACnB,aAAa,OAAO;AAAA,IACpB,oBAAoB,OAAO;AAAA,IAC3B,yBAAyB,OAAO;AAAA;AAAA;AAAA,IAGhC,kBAAkB,OAAO,sBAAsB;AAAA,IAC/C,WAAW,OAAO;AAAA,IAClB,2BAA2B,OAAO;AAAA,IAClC,kBAAkB,OAAO;AAAA,IACzB,eAAe,OAAO;AAAA,IACtB,sBAAsB,OAAO;AAAA,IAC7B,aAAa,OAAO;AAAA;AAAA;AAAA,IAGpB,uBAAuB,OAAO,iCAAiC;AAAA,IAC/D,qBAAqB,OAAO,+BAA+B;AAAA;AAAA,IAE3D,QAAQ,OAAO;AAAA,IACf,mBAAmB,OAAO;AAAA,IAC1B,mBAAmB,OAAO;AAAA,EAC5B,CAAC;AACH;AAiDO,SAAS,qCACd,QACgC;AAChC,SAAO,OAAO,OAAO;AAAA,IACnB,aAAa,OAAO;AAAA,IACpB,WAAW,OAAO;AAAA,IAClB,aAAa,OAAO;AAAA,IACpB,kBAAkB,OAAO;AAAA;AAAA;AAAA,IAGzB,4BAA4B,OAAO,sCAAsC;AAAA,EAC3E,CAAC;AACH;AAkCO,SAAS,+BACd,QAC0B;AAC1B,SAAO,OAAO,OAAO;AAAA,IACnB,4BAA4B,OAAO;AAAA;AAAA,IAEnC,6BAA6B,OAAO,uCAAuC;AAAA,EAC7E,CAAC;AACH;AA2EO,SAAS,mCACd,QAC8B;AAC9B,SAAO,OAAO,OAAO;AAAA,IACnB,sBAAsB,OAAO;AAAA,IAC7B,oBAAoB,OAAO;AAAA,IAC3B,iBAAiB,OAAO;AAAA,IACxB,sBAAsB,OAAO;AAAA,IAC7B,kBAAkB,OAAO;AAAA,IACzB,+BAA+B,OAAO;AAAA,IACtC,iBAAiB,OAAO;AAAA,IACxB,kBAAkB,OAAO;AAAA,IACzB,8BAA8B,OAAO;AAAA,IACrC,0BAA0B,OAAO;AAAA,IACjC,mBAAmB,OAAO;AAAA,EAC5B,CAAC;AACH;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  EngramAccessInputError
3
- } from "./chunk-27QQC7ZX.js";
3
+ } from "./chunk-UM5AWJNQ.js";
4
4
  import {
5
5
  expandTildePath
6
6
  } from "./chunk-EYIEWJNI.js";
@@ -130,4 +130,4 @@ export {
130
130
  listRegisteredOperations,
131
131
  __resetRegistryForTest
132
132
  };
133
- //# sourceMappingURL=chunk-R7IYU5DZ.js.map
133
+ //# sourceMappingURL=chunk-4ESAR77N.js.map
@@ -3,13 +3,13 @@ import {
3
3
  } from "./chunk-FVZ2ISIX.js";
4
4
  import {
5
5
  defineOperation
6
- } from "./chunk-R7IYU5DZ.js";
6
+ } from "./chunk-4ESAR77N.js";
7
7
  import {
8
8
  DECISION_SUBCOMMANDS,
9
9
  DELTA_SUBCOMMANDS,
10
10
  EngramAccessInputError,
11
11
  isCodegraphToolName
12
- } from "./chunk-27QQC7ZX.js";
12
+ } from "./chunk-UM5AWJNQ.js";
13
13
  import {
14
14
  CorrectionContractError
15
15
  } from "./chunk-AQLOP5F4.js";
@@ -465,4 +465,4 @@ export {
465
465
  codegraphIngestTracesOperation,
466
466
  REGISTERED_OPERATIONS
467
467
  };
468
- //# sourceMappingURL=chunk-SNKPUJHR.js.map
468
+ //# sourceMappingURL=chunk-76NHR6ZL.js.map
@@ -12,10 +12,10 @@ import {
12
12
  } from "./chunk-FVZ2ISIX.js";
13
13
  import {
14
14
  getOperation
15
- } from "./chunk-R7IYU5DZ.js";
15
+ } from "./chunk-4ESAR77N.js";
16
16
  import {
17
17
  EngramAccessInputError
18
- } from "./chunk-27QQC7ZX.js";
18
+ } from "./chunk-UM5AWJNQ.js";
19
19
  import {
20
20
  readEnvVar
21
21
  } from "./chunk-JUC24CTX.js";
@@ -903,6 +903,11 @@ async function loadChatSession(memoryDir, chatSessionId) {
903
903
  } catch {
904
904
  }
905
905
  }
906
+ for (const e of transcript) {
907
+ if (typeof e.seq === "number" && e.seq + 1 > lastTranscriptSeq) {
908
+ lastTranscriptSeq = e.seq + 1;
909
+ }
910
+ }
906
911
  return {
907
912
  id: chatSessionId,
908
913
  principal,
@@ -3614,4 +3619,4 @@ export {
3614
3619
  processChatMessage,
3615
3620
  EngramMcpServer
3616
3621
  };
3617
- //# sourceMappingURL=chunk-6PY5YJAV.js.map
3622
+ //# sourceMappingURL=chunk-BQCHEV7O.js.map