@remnic/core 9.6.6 → 9.6.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/access-admin-ops-surface.d.ts +2 -2
- package/dist/access-admin-ops-surface.js +1 -1
- package/dist/access-boundary.d.ts +2 -2
- package/dist/access-boundary.js +2 -2
- package/dist/access-cli.js +9 -9
- package/dist/access-http.d.ts +2 -2
- package/dist/access-http.js +6 -6
- package/dist/access-identity-continuity-surface.d.ts +1 -1
- package/dist/access-identity-continuity-surface.js +1 -1
- package/dist/access-lcm-surface.d.ts +2 -2
- package/dist/access-lcm-surface.js +1 -1
- package/dist/access-mcp.d.ts +2 -2
- package/dist/access-mcp.js +5 -5
- package/dist/access-observe-write-surface.d.ts +2 -2
- package/dist/access-observe-write-surface.js +1 -1
- package/dist/access-operations-batch.js +3 -3
- package/dist/access-operations.d.ts +2 -2
- package/dist/access-operations.js +4 -4
- package/dist/access-recall-surface.d.ts +2 -2
- package/dist/access-recall-surface.js +1 -1
- package/dist/{access-service-DVrdUFNx.d.ts → access-service-DK7s3wMj.d.ts} +1 -1
- package/dist/access-service.d.ts +2 -2
- package/dist/access-service.js +1 -1
- package/dist/access-surface-catalog.d.ts +2 -2
- package/dist/bootstrap.d.ts +1 -1
- package/dist/{chunk-N56UNLQ6.js → chunk-D3YEDDCC.js} +3 -3
- package/dist/{chunk-BQUE75AB.js → chunk-I7PEZK2A.js} +8 -8
- package/dist/chunk-I7PEZK2A.js.map +1 -0
- package/dist/{chunk-DKEBBOBM.js → chunk-KD6PBCXP.js} +4 -4
- package/dist/{chunk-TML6D45I.js → chunk-KJ3QGI63.js} +3 -3
- package/dist/{chunk-F5NN5J7O.js → chunk-L6NW2XSU.js} +3 -3
- package/dist/{chunk-MVAQLXM2.js → chunk-OP47QBUR.js} +3 -17
- package/dist/chunk-OP47QBUR.js.map +1 -0
- package/dist/{chunk-R5OGPRLF.js → chunk-RSS3CZV7.js} +2 -2
- package/dist/{chunk-5MH5NF3U.js → chunk-U4CWMKN6.js} +3 -3
- package/dist/chunk-U4CWMKN6.js.map +1 -0
- package/dist/{chunk-J7NJZPWW.js → chunk-ZZYLM6KQ.js} +3 -3
- package/dist/{chunk-J7NJZPWW.js.map → chunk-ZZYLM6KQ.js.map} +1 -1
- package/dist/{cli-Dzh-d4Y3.d.ts → cli-CLSdmOVU.d.ts} +5 -86
- package/dist/cli.d.ts +8 -8
- package/dist/cli.js +8 -8
- package/dist/explicit-capture.d.ts +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.js +9 -9
- package/dist/mcp-memory-inspector-app.d.ts +2 -2
- package/dist/operator-toolkit.d.ts +33 -31
- package/dist/operator-toolkit.js +1 -1
- package/dist/{orchestrator-DiFog4aM.d.ts → orchestrator-BzXGNHco.d.ts} +95 -142
- package/dist/orchestrator.d.ts +2 -2
- package/dist/orchestrator.js +9 -9
- package/package.json +2 -2
- package/src/access-admin-ops-surface.ts +2 -2
- package/src/cli.ts +8 -65
- package/src/operator-toolkit.ts +37 -35
- package/src/orchestrator.ts +0 -68
- package/dist/chunk-5MH5NF3U.js.map +0 -1
- package/dist/chunk-BQUE75AB.js.map +0 -1
- package/dist/chunk-MVAQLXM2.js.map +0 -1
- /package/dist/{chunk-N56UNLQ6.js.map → chunk-D3YEDDCC.js.map} +0 -0
- /package/dist/{chunk-DKEBBOBM.js.map → chunk-KD6PBCXP.js.map} +0 -0
- /package/dist/{chunk-TML6D45I.js.map → chunk-KJ3QGI63.js.map} +0 -0
- /package/dist/{chunk-F5NN5J7O.js.map → chunk-L6NW2XSU.js.map} +0 -0
- /package/dist/{chunk-R5OGPRLF.js.map → chunk-RSS3CZV7.js.map} +0 -0
|
@@ -612,6 +612,100 @@ declare function locateTranscriptPath(hitPath: string): {
|
|
|
612
612
|
date: string;
|
|
613
613
|
} | null;
|
|
614
614
|
|
|
615
|
+
/**
|
|
616
|
+
* Conversation index coordinator — extracted from the orchestrator (issue #1526).
|
|
617
|
+
*
|
|
618
|
+
* Owns the conversation-index subsystem: semantic recall over past
|
|
619
|
+
* conversations, plus the build / update / rebuild / inspect / health
|
|
620
|
+
* lifecycle of the on-disk chunk store and its pluggable search backend
|
|
621
|
+
* (qmd or faiss). Behavior-preserving move from orchestrator.ts — no logic
|
|
622
|
+
* changes; the orchestrator constructs one instance and keeps thin
|
|
623
|
+
* delegating methods so existing call sites and tests that exercise the
|
|
624
|
+
* private API continue to work.
|
|
625
|
+
*
|
|
626
|
+
* The backend and transcript are read through getters (not captured at
|
|
627
|
+
* construction) so that post-construction reassignment of the orchestrator's
|
|
628
|
+
* live fields — exercised by the conversation-index integration tests and by
|
|
629
|
+
* backend swap-in at deferred-init time — is honored. This mirrors the
|
|
630
|
+
* TierMigrationCoordinator accessor pattern.
|
|
631
|
+
*/
|
|
632
|
+
|
|
633
|
+
/**
|
|
634
|
+
* Coordinator for the conversation-index subsystem.
|
|
635
|
+
*
|
|
636
|
+
* Holds the per-session last-update timestamps (previously an orchestrator
|
|
637
|
+
* field) and delegates chunk building / persistence / embedding to the
|
|
638
|
+
* configured backend.
|
|
639
|
+
*/
|
|
640
|
+
declare class ConversationIndexCoordinator {
|
|
641
|
+
private readonly config;
|
|
642
|
+
private readonly getTranscript;
|
|
643
|
+
private readonly getBackend;
|
|
644
|
+
private readonly indexDir;
|
|
645
|
+
private readonly lastUpdateAtMs;
|
|
646
|
+
constructor(options: {
|
|
647
|
+
config: PluginConfig;
|
|
648
|
+
getTranscript: () => TranscriptManager;
|
|
649
|
+
getBackend: () => ConversationIndexBackend | undefined;
|
|
650
|
+
indexDir: string;
|
|
651
|
+
});
|
|
652
|
+
/** Semantic recall over past-conversation chunks (fail-open: empty on miss). */
|
|
653
|
+
search(retrievalQuery: string, topK: number): Promise<ConversationSearchResult[]>;
|
|
654
|
+
/** Render conversation-recall search hits as a budgeted markdown section. */
|
|
655
|
+
formatRecallSection(results: ConversationSearchResult[], maxChars: number): string | null;
|
|
656
|
+
/** Recursively count `.md` chunk documents under a directory. */
|
|
657
|
+
countChunkDocs(dir: string): Promise<number>;
|
|
658
|
+
/** Read recent transcript entries and chunk them for indexing. */
|
|
659
|
+
buildChunks(sessionKey?: string, hours?: number): Promise<ConversationChunk[]>;
|
|
660
|
+
getHealth(): Promise<{
|
|
661
|
+
enabled: boolean;
|
|
662
|
+
backend: "qmd" | "faiss";
|
|
663
|
+
status: "ok" | "degraded" | "disabled";
|
|
664
|
+
chunkDocCount: number;
|
|
665
|
+
lastUpdateAt: string | null;
|
|
666
|
+
qmdAvailable?: boolean;
|
|
667
|
+
faiss?: {
|
|
668
|
+
ok: boolean;
|
|
669
|
+
status: "ok" | "degraded" | "error";
|
|
670
|
+
indexPath: string;
|
|
671
|
+
message?: string;
|
|
672
|
+
manifest?: {
|
|
673
|
+
version: number;
|
|
674
|
+
modelId: string;
|
|
675
|
+
normalizedModelId: string;
|
|
676
|
+
dimension: number;
|
|
677
|
+
chunkCount: number;
|
|
678
|
+
updatedAt: string;
|
|
679
|
+
lastSuccessfulRebuildAt: string;
|
|
680
|
+
};
|
|
681
|
+
};
|
|
682
|
+
}>;
|
|
683
|
+
inspect(): Promise<ConversationIndexBackendInspection & {
|
|
684
|
+
enabled: boolean;
|
|
685
|
+
chunkDocCount: number;
|
|
686
|
+
lastUpdateAt: string | null;
|
|
687
|
+
}>;
|
|
688
|
+
update(sessionKey: string, hours?: number, opts?: {
|
|
689
|
+
embed?: boolean;
|
|
690
|
+
enforceMinInterval?: boolean;
|
|
691
|
+
}): Promise<{
|
|
692
|
+
chunks: number;
|
|
693
|
+
skipped: boolean;
|
|
694
|
+
reason?: string;
|
|
695
|
+
retryAfterMs?: number;
|
|
696
|
+
embedded?: boolean;
|
|
697
|
+
}>;
|
|
698
|
+
rebuild(sessionKey?: string, hours?: number, opts?: {
|
|
699
|
+
embed?: boolean;
|
|
700
|
+
}): Promise<{
|
|
701
|
+
chunks: number;
|
|
702
|
+
skipped: boolean;
|
|
703
|
+
reason?: string;
|
|
704
|
+
embedded?: boolean;
|
|
705
|
+
rebuilt?: boolean;
|
|
706
|
+
}>;
|
|
707
|
+
}
|
|
708
|
+
|
|
615
709
|
/**
|
|
616
710
|
* Tier migration coordinator — extracted from the orchestrator (issue #1526).
|
|
617
711
|
*
|
|
@@ -1023,100 +1117,6 @@ declare class RecallResultFormatter {
|
|
|
1023
1117
|
} | null>;
|
|
1024
1118
|
}
|
|
1025
1119
|
|
|
1026
|
-
/**
|
|
1027
|
-
* Conversation index coordinator — extracted from the orchestrator (issue #1526).
|
|
1028
|
-
*
|
|
1029
|
-
* Owns the conversation-index subsystem: semantic recall over past
|
|
1030
|
-
* conversations, plus the build / update / rebuild / inspect / health
|
|
1031
|
-
* lifecycle of the on-disk chunk store and its pluggable search backend
|
|
1032
|
-
* (qmd or faiss). Behavior-preserving move from orchestrator.ts — no logic
|
|
1033
|
-
* changes; the orchestrator constructs one instance and keeps thin
|
|
1034
|
-
* delegating methods so existing call sites and tests that exercise the
|
|
1035
|
-
* private API continue to work.
|
|
1036
|
-
*
|
|
1037
|
-
* The backend and transcript are read through getters (not captured at
|
|
1038
|
-
* construction) so that post-construction reassignment of the orchestrator's
|
|
1039
|
-
* live fields — exercised by the conversation-index integration tests and by
|
|
1040
|
-
* backend swap-in at deferred-init time — is honored. This mirrors the
|
|
1041
|
-
* TierMigrationCoordinator accessor pattern.
|
|
1042
|
-
*/
|
|
1043
|
-
|
|
1044
|
-
/**
|
|
1045
|
-
* Coordinator for the conversation-index subsystem.
|
|
1046
|
-
*
|
|
1047
|
-
* Holds the per-session last-update timestamps (previously an orchestrator
|
|
1048
|
-
* field) and delegates chunk building / persistence / embedding to the
|
|
1049
|
-
* configured backend.
|
|
1050
|
-
*/
|
|
1051
|
-
declare class ConversationIndexCoordinator {
|
|
1052
|
-
private readonly config;
|
|
1053
|
-
private readonly getTranscript;
|
|
1054
|
-
private readonly getBackend;
|
|
1055
|
-
private readonly indexDir;
|
|
1056
|
-
private readonly lastUpdateAtMs;
|
|
1057
|
-
constructor(options: {
|
|
1058
|
-
config: PluginConfig;
|
|
1059
|
-
getTranscript: () => TranscriptManager;
|
|
1060
|
-
getBackend: () => ConversationIndexBackend | undefined;
|
|
1061
|
-
indexDir: string;
|
|
1062
|
-
});
|
|
1063
|
-
/** Semantic recall over past-conversation chunks (fail-open: empty on miss). */
|
|
1064
|
-
search(retrievalQuery: string, topK: number): Promise<ConversationSearchResult[]>;
|
|
1065
|
-
/** Render conversation-recall search hits as a budgeted markdown section. */
|
|
1066
|
-
formatRecallSection(results: ConversationSearchResult[], maxChars: number): string | null;
|
|
1067
|
-
/** Recursively count `.md` chunk documents under a directory. */
|
|
1068
|
-
countChunkDocs(dir: string): Promise<number>;
|
|
1069
|
-
/** Read recent transcript entries and chunk them for indexing. */
|
|
1070
|
-
buildChunks(sessionKey?: string, hours?: number): Promise<ConversationChunk[]>;
|
|
1071
|
-
getHealth(): Promise<{
|
|
1072
|
-
enabled: boolean;
|
|
1073
|
-
backend: "qmd" | "faiss";
|
|
1074
|
-
status: "ok" | "degraded" | "disabled";
|
|
1075
|
-
chunkDocCount: number;
|
|
1076
|
-
lastUpdateAt: string | null;
|
|
1077
|
-
qmdAvailable?: boolean;
|
|
1078
|
-
faiss?: {
|
|
1079
|
-
ok: boolean;
|
|
1080
|
-
status: "ok" | "degraded" | "error";
|
|
1081
|
-
indexPath: string;
|
|
1082
|
-
message?: string;
|
|
1083
|
-
manifest?: {
|
|
1084
|
-
version: number;
|
|
1085
|
-
modelId: string;
|
|
1086
|
-
normalizedModelId: string;
|
|
1087
|
-
dimension: number;
|
|
1088
|
-
chunkCount: number;
|
|
1089
|
-
updatedAt: string;
|
|
1090
|
-
lastSuccessfulRebuildAt: string;
|
|
1091
|
-
};
|
|
1092
|
-
};
|
|
1093
|
-
}>;
|
|
1094
|
-
inspect(): Promise<ConversationIndexBackendInspection & {
|
|
1095
|
-
enabled: boolean;
|
|
1096
|
-
chunkDocCount: number;
|
|
1097
|
-
lastUpdateAt: string | null;
|
|
1098
|
-
}>;
|
|
1099
|
-
update(sessionKey: string, hours?: number, opts?: {
|
|
1100
|
-
embed?: boolean;
|
|
1101
|
-
enforceMinInterval?: boolean;
|
|
1102
|
-
}): Promise<{
|
|
1103
|
-
chunks: number;
|
|
1104
|
-
skipped: boolean;
|
|
1105
|
-
reason?: string;
|
|
1106
|
-
retryAfterMs?: number;
|
|
1107
|
-
embedded?: boolean;
|
|
1108
|
-
}>;
|
|
1109
|
-
rebuild(sessionKey?: string, hours?: number, opts?: {
|
|
1110
|
-
embed?: boolean;
|
|
1111
|
-
}): Promise<{
|
|
1112
|
-
chunks: number;
|
|
1113
|
-
skipped: boolean;
|
|
1114
|
-
reason?: string;
|
|
1115
|
-
embedded?: boolean;
|
|
1116
|
-
rebuilt?: boolean;
|
|
1117
|
-
}>;
|
|
1118
|
-
}
|
|
1119
|
-
|
|
1120
1120
|
/**
|
|
1121
1121
|
* Recall rerank coordinator — extracted from the orchestrator (issue #1526).
|
|
1122
1122
|
*
|
|
@@ -2628,34 +2628,6 @@ declare class Orchestrator {
|
|
|
2628
2628
|
}): Promise<boolean>;
|
|
2629
2629
|
private searchConversationRecallResults;
|
|
2630
2630
|
private formatConversationRecallSection;
|
|
2631
|
-
getConversationIndexHealth(): Promise<{
|
|
2632
|
-
enabled: boolean;
|
|
2633
|
-
backend: "qmd" | "faiss";
|
|
2634
|
-
status: "ok" | "degraded" | "disabled";
|
|
2635
|
-
chunkDocCount: number;
|
|
2636
|
-
lastUpdateAt: string | null;
|
|
2637
|
-
qmdAvailable?: boolean;
|
|
2638
|
-
faiss?: {
|
|
2639
|
-
ok: boolean;
|
|
2640
|
-
status: "ok" | "degraded" | "error";
|
|
2641
|
-
indexPath: string;
|
|
2642
|
-
message?: string;
|
|
2643
|
-
manifest?: {
|
|
2644
|
-
version: number;
|
|
2645
|
-
modelId: string;
|
|
2646
|
-
normalizedModelId: string;
|
|
2647
|
-
dimension: number;
|
|
2648
|
-
chunkCount: number;
|
|
2649
|
-
updatedAt: string;
|
|
2650
|
-
lastSuccessfulRebuildAt: string;
|
|
2651
|
-
};
|
|
2652
|
-
};
|
|
2653
|
-
}>;
|
|
2654
|
-
inspectConversationIndex(): Promise<ConversationIndexBackendInspection & {
|
|
2655
|
-
enabled: boolean;
|
|
2656
|
-
chunkDocCount: number;
|
|
2657
|
-
lastUpdateAt: string | null;
|
|
2658
|
-
}>;
|
|
2659
2631
|
getRecoverySummary(sessionKey?: string): Promise<{
|
|
2660
2632
|
generatedAt: string;
|
|
2661
2633
|
sessionKey?: string;
|
|
@@ -2665,25 +2637,6 @@ declare class Orchestrator {
|
|
|
2665
2637
|
brokenChains: number;
|
|
2666
2638
|
checkpointHealthy: boolean;
|
|
2667
2639
|
}>;
|
|
2668
|
-
updateConversationIndex(sessionKey: string, hours?: number, opts?: {
|
|
2669
|
-
embed?: boolean;
|
|
2670
|
-
enforceMinInterval?: boolean;
|
|
2671
|
-
}): Promise<{
|
|
2672
|
-
chunks: number;
|
|
2673
|
-
skipped: boolean;
|
|
2674
|
-
reason?: string;
|
|
2675
|
-
retryAfterMs?: number;
|
|
2676
|
-
embedded?: boolean;
|
|
2677
|
-
}>;
|
|
2678
|
-
rebuildConversationIndex(sessionKey?: string, hours?: number, opts?: {
|
|
2679
|
-
embed?: boolean;
|
|
2680
|
-
}): Promise<{
|
|
2681
|
-
chunks: number;
|
|
2682
|
-
skipped: boolean;
|
|
2683
|
-
reason?: string;
|
|
2684
|
-
embedded?: boolean;
|
|
2685
|
-
rebuilt?: boolean;
|
|
2686
|
-
}>;
|
|
2687
2640
|
private validateLocalLlmModel;
|
|
2688
2641
|
recall(prompt: string, sessionKey?: string, options?: RecallInvocationOptions): Promise<string>;
|
|
2689
2642
|
/**
|
|
@@ -3032,4 +2985,4 @@ declare class Orchestrator {
|
|
|
3032
2985
|
private readArchivedMemoriesForNamespaces;
|
|
3033
2986
|
}
|
|
3034
2987
|
|
|
3035
|
-
export { type
|
|
2988
|
+
export { type GraphRecallShadowComparison as $, memoryStatusForMode as A, resolveSpeaker as B, ConversationIndexCoordinator as C, DEFAULT_SELF_NAME as D, resolveSyncDates as E, sanitizeSessionKeyForFilename as F, type GraphRecallSnapshot as G, saveSpeakerRegistry as H, type IntentDebugSnapshot as I, speakerRegistryKey as J, speakersFilePath as K, syncWearableSource as L, wearableDayTag as M, wearableSourceLabel as N, Orchestrator as O, type PatternReinforcementResult as P, writeDailyDigestMemory as Q, type ResolvedScopeProfilePlan as R, type ScopeProfileLayerResolution as S, TierMigrationCoordinator as T, type BulkImportBatchIngestResult as U, BulkImportBatchPartialFailureError as V, WearablesService as W, COMPACTION_SIGNAL_MAX_AGE_MS as X, type DaySummaryGatherOptions as Y, type ExtractionRunResult as Z, type GraphRecallRankedResult as _, type ScopeProfilePromotionResolution as a, type QmdRecallSnapshot as a0, type QueryAwarePrefilter as a1, type RecallInvocationOptions as a2, type RecallModeDecision as a3, appendMemoryToGraphContext as a4, applyQueryAwareCandidateFilter as a5, blendGraphExpandedRecallScore as a6, buildCompressionGuidelinesMarkdown as a7, buildMemoryPathById as a8, computeArtifactCandidateFetchLimit as a9, shouldFilterLifecycleRecallCandidate as aA, splitTurnsBySourceValidAt as aB, summarizeGraphShadowComparison as aC, targetSourceValidAtSortMs as aD, throwIfRecallAborted as aE, tokenizeRecallQuery as aF, utcDateKeysForLocalDay as aG, computeArtifactRecallLimit as aa, computeQmdHybridFetchLimit as ab, deriveTopicsFromExtraction as ac, filterHourlySummaryMarkdownForLocalDay as ad, filterRecallCandidates as ae, formatDateInTimeZone as af, graphPathRelativeToStorage as ag, hasIdentityRecoveryIntent as ah, isArtifactMemoryPath as ai, lifecycleRecallScoreAdjustment as aj, mapRecallSourceToXrayServedBy as ak, mergeArtifactRecallCandidates as al, mergeGraphExpandedResults as am, normalizeIanaTimeZone as an, parseFiniteDate as ao, parseGraphRecallRankedResults as ap, parseMemoryIntentSnapshot as aq, parseQmdRecallResults as ar, qmdStartupCollectionCheckWithTimeout as as, raceRecallAbort as at, resolveEffectiveIdentityInjectionMode as au, resolveEffectiveRecallMode as av, resolvePersistedMemoryRelativePath as aw, resolveRecallModeDecision as ax, resolveRecallModeDecisionAsync as ay, resolveRecentThreadMemoryPaths as az, type SpeakerRegistry as b, type ResolvedSpeaker as c, type SpeakerOverride as d, WEARABLE_SOURCE_PREFIX as e, type WearableDayTranscriptView as f, type WearableMemoryGenDeps as g, type WearableMemoryGenResult as h, type WearableMemorySearchResult as i, type WearableMemoryWriter as j, type WearableSearchBackend as k, type WearableStorageIo as l, type WearableSyncDeps as m, type WearableSyncOptions as n, type WearableTranscriptSearchResult as o, type WearablesServiceDeps as p, buildExtractionTurns as q, dateInTimezone as r, defaultTimezone as s, defaultWorkspaceDir as t, distinctSpeakerLabels as u, emptySpeakerRegistry as v, generateWearableMemories as w, importNativeMemories as x, loadSpeakerRegistry as y, locateTranscriptPath as z };
|
package/dist/orchestrator.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ import './summarizer.js';
|
|
|
8
8
|
import './local-llm.js';
|
|
9
9
|
import './fallback-llm.js';
|
|
10
10
|
import './orchestration/maintenance.js';
|
|
11
|
-
export {
|
|
11
|
+
export { U as BulkImportBatchIngestResult, V as BulkImportBatchPartialFailureError, X as COMPACTION_SIGNAL_MAX_AGE_MS, Y as DaySummaryGatherOptions, Z as ExtractionRunResult, _ as GraphRecallRankedResult, $ as GraphRecallShadowComparison, G as GraphRecallSnapshot, I as IntentDebugSnapshot, O as Orchestrator, a0 as QmdRecallSnapshot, a1 as QueryAwarePrefilter, a2 as RecallInvocationOptions, a3 as RecallModeDecision, a4 as appendMemoryToGraphContext, a5 as applyQueryAwareCandidateFilter, a6 as blendGraphExpandedRecallScore, a7 as buildCompressionGuidelinesMarkdown, a8 as buildMemoryPathById, a9 as computeArtifactCandidateFetchLimit, aa as computeArtifactRecallLimit, ab as computeQmdHybridFetchLimit, t as defaultWorkspaceDir, ac as deriveTopicsFromExtraction, ad as filterHourlySummaryMarkdownForLocalDay, ae as filterRecallCandidates, af as formatDateInTimeZone, ag as graphPathRelativeToStorage, ah as hasIdentityRecoveryIntent, ai as isArtifactMemoryPath, aj as lifecycleRecallScoreAdjustment, ak as mapRecallSourceToXrayServedBy, al as mergeArtifactRecallCandidates, am as mergeGraphExpandedResults, an as normalizeIanaTimeZone, ao as parseFiniteDate, ap as parseGraphRecallRankedResults, aq as parseMemoryIntentSnapshot, ar as parseQmdRecallResults, as as qmdStartupCollectionCheckWithTimeout, at as raceRecallAbort, au as resolveEffectiveIdentityInjectionMode, av as resolveEffectiveRecallMode, aw as resolvePersistedMemoryRelativePath, ax as resolveRecallModeDecision, ay as resolveRecallModeDecisionAsync, az as resolveRecentThreadMemoryPaths, F as sanitizeSessionKeyForFilename, aA as shouldFilterLifecycleRecallCandidate, aB as splitTurnsBySourceValidAt, aC as summarizeGraphShadowComparison, aD as targetSourceValidAtSortMs, aE as throwIfRecallAborted, aF as tokenizeRecallQuery, aG as utcDateKeysForLocalDay } from './orchestrator-BzXGNHco.js';
|
|
12
12
|
export { formatCompressionGuidelinesForRecall } from './orchestration/compression-guideline-coordinator.js';
|
|
13
13
|
import './live-connectors-runner.js';
|
|
14
14
|
import './model-registry.js';
|
|
@@ -23,7 +23,6 @@ import './replay/types.js';
|
|
|
23
23
|
import './types-DDUDgd7T.js';
|
|
24
24
|
import './lcm/engine.js';
|
|
25
25
|
import './semantic-consolidation-BTShF2Fo.js';
|
|
26
|
-
import './conversation-index/backend.js';
|
|
27
26
|
import './catalog-9WanSGtt.js';
|
|
28
27
|
import './namespaces/search.js';
|
|
29
28
|
import './shared-context/manager.js';
|
|
@@ -59,6 +58,7 @@ import './work-product-ledger.js';
|
|
|
59
58
|
import './trust-score-stage.js';
|
|
60
59
|
import './trust-score.js';
|
|
61
60
|
import './conversation-index/chunker.js';
|
|
61
|
+
import './conversation-index/backend.js';
|
|
62
62
|
import './faiss-adapter-BHecI1fF.js';
|
|
63
63
|
import './runtime/child-process.js';
|
|
64
64
|
import './capabilities.js';
|
package/dist/orchestrator.js
CHANGED
|
@@ -43,7 +43,7 @@ import {
|
|
|
43
43
|
throwIfRecallAborted,
|
|
44
44
|
tokenizeRecallQuery,
|
|
45
45
|
utcDateKeysForLocalDay
|
|
46
|
-
} from "./chunk-
|
|
46
|
+
} from "./chunk-OP47QBUR.js";
|
|
47
47
|
import "./chunk-J3XHPFEU.js";
|
|
48
48
|
import "./chunk-JODHPNLN.js";
|
|
49
49
|
import "./chunk-I74SUMNI.js";
|
|
@@ -125,7 +125,7 @@ import "./chunk-Q6IP2ARR.js";
|
|
|
125
125
|
import "./chunk-6HEM6HTQ.js";
|
|
126
126
|
import "./chunk-O2EL7EGG.js";
|
|
127
127
|
import "./chunk-FVTLSFWU.js";
|
|
128
|
-
import "./chunk-
|
|
128
|
+
import "./chunk-I7PEZK2A.js";
|
|
129
129
|
import "./chunk-MMACM5G2.js";
|
|
130
130
|
import "./chunk-54BGIBCR.js";
|
|
131
131
|
import "./chunk-H4CKS5B2.js";
|
|
@@ -169,7 +169,7 @@ import "./chunk-GQGDRLDM.js";
|
|
|
169
169
|
import "./chunk-SFQ6QNL7.js";
|
|
170
170
|
import "./chunk-3T74IZB3.js";
|
|
171
171
|
import "./chunk-33JBK2XP.js";
|
|
172
|
-
import "./chunk-
|
|
172
|
+
import "./chunk-U4CWMKN6.js";
|
|
173
173
|
import "./chunk-VHJARF5R.js";
|
|
174
174
|
import "./chunk-JZKR6ZAV.js";
|
|
175
175
|
import "./chunk-23G3T2Q5.js";
|
|
@@ -216,7 +216,7 @@ import "./chunk-G6NKALRN.js";
|
|
|
216
216
|
import "./chunk-OO42R444.js";
|
|
217
217
|
import "./chunk-K6MV3TRQ.js";
|
|
218
218
|
import "./chunk-OADWQ5CR.js";
|
|
219
|
-
import "./chunk-
|
|
219
|
+
import "./chunk-KD6PBCXP.js";
|
|
220
220
|
import "./chunk-V7IZKJI3.js";
|
|
221
221
|
import "./chunk-SEDEKFYQ.js";
|
|
222
222
|
import "./chunk-RKNJBZ55.js";
|
|
@@ -225,13 +225,13 @@ import "./chunk-RSUYKGGZ.js";
|
|
|
225
225
|
import "./chunk-42NQ7AVG.js";
|
|
226
226
|
import "./chunk-TMSXWOBZ.js";
|
|
227
227
|
import "./chunk-7RXCMVFQ.js";
|
|
228
|
-
import "./chunk-
|
|
228
|
+
import "./chunk-L6NW2XSU.js";
|
|
229
229
|
import "./chunk-IC2TCZJ2.js";
|
|
230
230
|
import "./chunk-D24OXEPB.js";
|
|
231
231
|
import "./chunk-5RUE3GHQ.js";
|
|
232
|
-
import "./chunk-
|
|
232
|
+
import "./chunk-D3YEDDCC.js";
|
|
233
233
|
import "./chunk-UPSAT4PY.js";
|
|
234
|
-
import "./chunk-
|
|
234
|
+
import "./chunk-KJ3QGI63.js";
|
|
235
235
|
import "./chunk-HLTAPHZZ.js";
|
|
236
236
|
import "./chunk-YF6FMLBT.js";
|
|
237
237
|
import "./chunk-KQDNAXOM.js";
|
|
@@ -239,9 +239,9 @@ import "./chunk-PRTA6444.js";
|
|
|
239
239
|
import "./chunk-35NN3ZFA.js";
|
|
240
240
|
import "./chunk-FTYDWKO6.js";
|
|
241
241
|
import "./chunk-T4WDJPEZ.js";
|
|
242
|
-
import "./chunk-
|
|
242
|
+
import "./chunk-RSS3CZV7.js";
|
|
243
243
|
import "./chunk-D7FOKIY5.js";
|
|
244
|
-
import "./chunk-
|
|
244
|
+
import "./chunk-ZZYLM6KQ.js";
|
|
245
245
|
import "./chunk-GDASG7NC.js";
|
|
246
246
|
import "./chunk-GDB4J2H3.js";
|
|
247
247
|
import "./chunk-CYWCKFCL.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@remnic/core",
|
|
3
|
-
"version": "9.6.
|
|
3
|
+
"version": "9.6.7",
|
|
4
4
|
"description": "Framework-agnostic Remnic memory engine — orchestrator, storage, extraction, search, trust zones",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -3000,7 +3000,7 @@
|
|
|
3000
3000
|
"core"
|
|
3001
3001
|
],
|
|
3002
3002
|
"peerDependencies": {
|
|
3003
|
-
"@remnic/coding-graph": "^9.6.
|
|
3003
|
+
"@remnic/coding-graph": "^9.6.7"
|
|
3004
3004
|
},
|
|
3005
3005
|
"peerDependenciesMeta": {
|
|
3006
3006
|
"@remnic/coding-graph": {
|
|
@@ -257,7 +257,7 @@ export class AccessAdminOpsSurface {
|
|
|
257
257
|
}
|
|
258
258
|
|
|
259
259
|
if (sessionKey) {
|
|
260
|
-
const result = await this.deps.orchestrator.
|
|
260
|
+
const result = await this.deps.orchestrator.conversationIndexCoordinator.update(
|
|
261
261
|
sessionKey,
|
|
262
262
|
hours,
|
|
263
263
|
{ embed: request.embed },
|
|
@@ -282,7 +282,7 @@ export class AccessAdminOpsSurface {
|
|
|
282
282
|
let embeddedRuns = 0;
|
|
283
283
|
|
|
284
284
|
for (const sessionKey of sessionKeys) {
|
|
285
|
-
const result = await this.deps.orchestrator.
|
|
285
|
+
const result = await this.deps.orchestrator.conversationIndexCoordinator.update(
|
|
286
286
|
sessionKey,
|
|
287
287
|
hours,
|
|
288
288
|
{ embed: request.embed },
|
package/src/cli.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { access, lstat, readFile, readdir, realpath, unlink } from "node:fs/prom
|
|
|
4
4
|
import { createHash } from "node:crypto";
|
|
5
5
|
import type { Readable, Writable } from "node:stream";
|
|
6
6
|
import type { Orchestrator } from "./orchestrator.js";
|
|
7
|
+
import type { ConversationIndexCoordinator } from "./orchestration/conversation-index-coordinator.js";
|
|
7
8
|
import { resolveNamespaceCapabilities,
|
|
8
9
|
resolveMemoryLifecycleCapabilities,
|
|
9
10
|
resolveIdentityContinuityCapabilities,
|
|
@@ -607,68 +608,10 @@ interface TailscaleHelperLike {
|
|
|
607
608
|
}
|
|
608
609
|
|
|
609
610
|
export interface ConversationIndexHealthCliOrchestrator {
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
chunkDocCount: number;
|
|
615
|
-
lastUpdateAt: string | null;
|
|
616
|
-
qmdAvailable?: boolean;
|
|
617
|
-
faiss?: {
|
|
618
|
-
ok: boolean;
|
|
619
|
-
status: "ok" | "degraded" | "error";
|
|
620
|
-
indexPath: string;
|
|
621
|
-
message?: string;
|
|
622
|
-
manifest?: {
|
|
623
|
-
version: number;
|
|
624
|
-
modelId: string;
|
|
625
|
-
normalizedModelId: string;
|
|
626
|
-
dimension: number;
|
|
627
|
-
chunkCount: number;
|
|
628
|
-
updatedAt: string;
|
|
629
|
-
lastSuccessfulRebuildAt: string;
|
|
630
|
-
};
|
|
631
|
-
};
|
|
632
|
-
}>;
|
|
633
|
-
inspectConversationIndex(): Promise<{
|
|
634
|
-
enabled: boolean;
|
|
635
|
-
backend: "qmd" | "faiss";
|
|
636
|
-
status: "ok" | "degraded" | "disabled";
|
|
637
|
-
available: boolean;
|
|
638
|
-
indexPath: string;
|
|
639
|
-
supportsIncrementalUpdate: boolean;
|
|
640
|
-
message?: string;
|
|
641
|
-
chunkDocCount: number;
|
|
642
|
-
lastUpdateAt: string | null;
|
|
643
|
-
metadata: {
|
|
644
|
-
chunkCount: number | null;
|
|
645
|
-
qmdAvailable?: boolean;
|
|
646
|
-
debugStatus?: string;
|
|
647
|
-
hasIndex?: boolean;
|
|
648
|
-
hasMetadata?: boolean;
|
|
649
|
-
hasManifest?: boolean;
|
|
650
|
-
manifest?: {
|
|
651
|
-
version: number;
|
|
652
|
-
modelId: string;
|
|
653
|
-
normalizedModelId: string;
|
|
654
|
-
dimension: number;
|
|
655
|
-
chunkCount: number;
|
|
656
|
-
updatedAt: string;
|
|
657
|
-
lastSuccessfulRebuildAt: string;
|
|
658
|
-
};
|
|
659
|
-
};
|
|
660
|
-
}>;
|
|
661
|
-
rebuildConversationIndex(
|
|
662
|
-
sessionKey?: string,
|
|
663
|
-
hours?: number,
|
|
664
|
-
opts?: { embed?: boolean },
|
|
665
|
-
): Promise<{
|
|
666
|
-
chunks: number;
|
|
667
|
-
skipped: boolean;
|
|
668
|
-
reason?: string;
|
|
669
|
-
embedded?: boolean;
|
|
670
|
-
rebuilt?: boolean;
|
|
671
|
-
}>;
|
|
611
|
+
conversationIndexCoordinator: Pick<
|
|
612
|
+
ConversationIndexCoordinator,
|
|
613
|
+
"getHealth" | "inspect" | "rebuild"
|
|
614
|
+
>;
|
|
672
615
|
}
|
|
673
616
|
|
|
674
617
|
export interface GraphHealthCliCommandOptions {
|
|
@@ -1222,13 +1165,13 @@ export async function runConversationIndexHealthCliCommand(
|
|
|
1222
1165
|
};
|
|
1223
1166
|
};
|
|
1224
1167
|
}> {
|
|
1225
|
-
return orchestrator.
|
|
1168
|
+
return orchestrator.conversationIndexCoordinator.getHealth();
|
|
1226
1169
|
}
|
|
1227
1170
|
|
|
1228
1171
|
export async function runConversationIndexInspectCliCommand(
|
|
1229
1172
|
orchestrator: ConversationIndexHealthCliOrchestrator,
|
|
1230
1173
|
) {
|
|
1231
|
-
return orchestrator.
|
|
1174
|
+
return orchestrator.conversationIndexCoordinator.inspect();
|
|
1232
1175
|
}
|
|
1233
1176
|
|
|
1234
1177
|
export async function runConversationIndexRebuildCliCommand(
|
|
@@ -1239,7 +1182,7 @@ export async function runConversationIndexRebuildCliCommand(
|
|
|
1239
1182
|
embed?: boolean;
|
|
1240
1183
|
},
|
|
1241
1184
|
) {
|
|
1242
|
-
return orchestrator.
|
|
1185
|
+
return orchestrator.conversationIndexCoordinator.rebuild(
|
|
1243
1186
|
options.sessionKey,
|
|
1244
1187
|
options.hours,
|
|
1245
1188
|
{ embed: options.embed },
|
package/src/operator-toolkit.ts
CHANGED
|
@@ -116,40 +116,42 @@ function formatUnknownError(error: unknown): string {
|
|
|
116
116
|
}
|
|
117
117
|
|
|
118
118
|
interface ConversationIndexLike {
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
119
|
+
conversationIndexCoordinator: {
|
|
120
|
+
getHealth(): Promise<{
|
|
121
|
+
enabled: boolean;
|
|
122
|
+
backend: "qmd" | "faiss";
|
|
123
|
+
status: "ok" | "degraded" | "disabled";
|
|
124
|
+
chunkDocCount: number;
|
|
125
|
+
lastUpdateAt: string | null;
|
|
126
|
+
qmdAvailable?: boolean;
|
|
127
|
+
faiss?: {
|
|
128
|
+
ok: boolean;
|
|
129
|
+
status: "ok" | "degraded" | "error";
|
|
130
|
+
indexPath: string;
|
|
131
|
+
message?: string;
|
|
132
|
+
manifest?: {
|
|
133
|
+
version: number;
|
|
134
|
+
modelId: string;
|
|
135
|
+
normalizedModelId: string;
|
|
136
|
+
dimension: number;
|
|
137
|
+
chunkCount: number;
|
|
138
|
+
updatedAt: string;
|
|
139
|
+
lastSuccessfulRebuildAt: string;
|
|
140
|
+
};
|
|
139
141
|
};
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
}
|
|
142
|
+
}>;
|
|
143
|
+
rebuild(
|
|
144
|
+
sessionKey?: string,
|
|
145
|
+
hours?: number,
|
|
146
|
+
opts?: { embed?: boolean },
|
|
147
|
+
): Promise<{
|
|
148
|
+
chunks: number;
|
|
149
|
+
skipped: boolean;
|
|
150
|
+
reason?: string;
|
|
151
|
+
embedded?: boolean;
|
|
152
|
+
rebuilt?: boolean;
|
|
153
|
+
}>;
|
|
154
|
+
};
|
|
153
155
|
}
|
|
154
156
|
|
|
155
157
|
export interface OperatorToolkitOrchestrator extends ConversationIndexLike {
|
|
@@ -1240,7 +1242,7 @@ export async function runOperatorDoctor(options: OperatorDoctorOptions): Promise
|
|
|
1240
1242
|
},
|
|
1241
1243
|
});
|
|
1242
1244
|
|
|
1243
|
-
const conversationIndex = await options.orchestrator.
|
|
1245
|
+
const conversationIndex = await options.orchestrator.conversationIndexCoordinator.getHealth();
|
|
1244
1246
|
checks.push({
|
|
1245
1247
|
key: "conversation_index",
|
|
1246
1248
|
status: conversationIndex.status === "ok"
|
|
@@ -2277,7 +2279,7 @@ export async function runOperatorInventory(options: OperatorInventoryOptions): P
|
|
|
2277
2279
|
reviewQueue = 0;
|
|
2278
2280
|
}
|
|
2279
2281
|
}
|
|
2280
|
-
const conversationIndex = await options.orchestrator.
|
|
2282
|
+
const conversationIndex = await options.orchestrator.conversationIndexCoordinator.getHealth();
|
|
2281
2283
|
const nativeKnowledgeStatus = await summarizeNativeKnowledgeStatus(config);
|
|
2282
2284
|
|
|
2283
2285
|
return {
|