@remnic/core 9.69.73 → 9.69.74
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.js +34 -34
- package/dist/access-authorization-probe.js +35 -35
- package/dist/access-boundary.js +34 -34
- package/dist/access-cli.js +98 -97
- package/dist/access-cli.js.map +1 -1
- package/dist/access-extraction-force-flush.js +34 -34
- package/dist/access-http-briefing.js +35 -35
- package/dist/access-http-query.js +36 -36
- package/dist/access-http.js +53 -53
- package/dist/access-identity-continuity-surface.js +34 -34
- package/dist/access-lcm-surface.js +34 -34
- package/dist/access-mcp.js +45 -45
- package/dist/access-namespace-preflight.js +34 -34
- package/dist/access-observe-write-category.js +6 -6
- package/dist/access-observe-write-surface.js +34 -34
- package/dist/access-offline-manifest.js +3 -3
- package/dist/access-operations-batch.js +37 -37
- package/dist/access-operations.js +44 -44
- package/dist/access-recall-concurrency.js +34 -34
- package/dist/access-recall-response.js +34 -34
- package/dist/access-recall-surface.js +34 -34
- package/dist/access-schema.js +5 -5
- package/dist/access-service.js +34 -34
- package/dist/access-surface-catalog.js +36 -36
- package/dist/active-recall.js +14 -13
- package/dist/active-recall.js.map +1 -1
- package/dist/briefing.js +7 -7
- package/dist/buffer.js +1 -1
- package/dist/causal-behavior.js +2 -2
- package/dist/causal-chain.js +2 -2
- package/dist/causal-consolidation.js +10 -10
- package/dist/causal-retrieval.js +2 -2
- package/dist/causal-trajectory-graph.js +2 -2
- package/dist/causal-trajectory.js +1 -1
- package/dist/{chunk-HRQWSXNB.js → chunk-2IH2WNM6.js} +3 -3
- package/dist/{chunk-ADWCQWK3.js → chunk-2JJVJMN6.js} +2 -2
- package/dist/{chunk-GWK7FEUL.js → chunk-2U3R3DDH.js} +6 -6
- package/dist/{chunk-GWQVMKUJ.js → chunk-2UPTRDGM.js} +3 -3
- package/dist/{chunk-ONEUTVGJ.js → chunk-3SBDUMPW.js} +2 -2
- package/dist/{chunk-CMAGVPS2.js → chunk-47AONXWB.js} +2 -2
- package/dist/{chunk-JX2NWPQ4.js → chunk-4ETSHAIZ.js} +10 -10
- package/dist/{chunk-H7BZBSP6.js → chunk-52II7PB6.js} +4 -4
- package/dist/{chunk-GUWH5SOO.js → chunk-542IROS3.js} +2 -2
- package/dist/{chunk-7FL25VH3.js → chunk-5TS5QOZS.js} +6 -6
- package/dist/{chunk-AYDU5MJC.js → chunk-5W62ZVC6.js} +2 -2
- package/dist/{chunk-B2FMRNHA.js → chunk-A5HBAR5Y.js} +2 -2
- package/dist/{chunk-5ID5RTHY.js → chunk-A7AI3WDN.js} +2 -2
- package/dist/{chunk-GNC5X3J7.js → chunk-AG5QWIU7.js} +11 -11
- package/dist/{chunk-ZDTG7ALZ.js → chunk-B2PGHXTP.js} +2 -2
- package/dist/{chunk-JDBZSRUA.js → chunk-BFUYPEJB.js} +2 -2
- package/dist/{chunk-ICMXLHSC.js → chunk-BMTR244T.js} +2 -2
- package/dist/{chunk-RG7ZWG3M.js → chunk-BRJNNP7R.js} +2 -2
- package/dist/{chunk-DQFZOPDL.js → chunk-CGO3A7SR.js} +2 -2
- package/dist/{chunk-SF6RFI5Z.js → chunk-CHDGJJV6.js} +2 -2
- package/dist/{chunk-AJEUESNJ.js → chunk-FJZUIM5G.js} +2 -2
- package/dist/{chunk-YDMN7TUM.js → chunk-FRD5N3CS.js} +2 -2
- package/dist/chunk-GBGLS44T.js +20 -0
- package/dist/chunk-GBGLS44T.js.map +1 -0
- package/dist/{chunk-D5F2Z6WO.js → chunk-GLX4SU4W.js} +2 -2
- package/dist/{chunk-XY25CPAO.js → chunk-GM2UUMWJ.js} +5 -5
- package/dist/{chunk-266NJ2YF.js → chunk-GXHRNONR.js} +2 -2
- package/dist/{chunk-VVKLAB3Y.js → chunk-HA5V67N4.js} +2 -2
- package/dist/{chunk-5TC6MQOW.js → chunk-HS75MCQF.js} +4 -4
- package/dist/{chunk-ADZLUBNE.js → chunk-HVWLZ7ZQ.js} +3 -3
- package/dist/{chunk-DDNML3YE.js → chunk-HXRZRYHQ.js} +2 -2
- package/dist/{chunk-2WMXZYMS.js → chunk-HZZIH5SW.js} +2 -2
- package/dist/{chunk-YHU5XUF4.js → chunk-IFCKHPY4.js} +2 -2
- package/dist/{chunk-KQAFEZQX.js → chunk-IPLYGWQF.js} +5 -5
- package/dist/{chunk-2VV3XLZB.js → chunk-IXLHREAB.js} +4 -4
- package/dist/{chunk-2XGPN5TL.js → chunk-JLNJ7AGH.js} +5 -5
- package/dist/{chunk-G3QJVHFG.js → chunk-JTGL6UX7.js} +12 -9
- package/dist/chunk-JTGL6UX7.js.map +1 -0
- package/dist/{chunk-B6RTKSOT.js → chunk-KK6TS7ED.js} +3 -3
- package/dist/{chunk-HW4DKAAA.js → chunk-KSJP3AWY.js} +2 -2
- package/dist/{chunk-6E5GYDIE.js → chunk-MFZACYZ6.js} +2 -2
- package/dist/{chunk-NEARGPN7.js → chunk-ML64HXAN.js} +2 -2
- package/dist/{chunk-BGBW4H7C.js → chunk-NKIK4VFP.js} +2 -2
- package/dist/{chunk-KNPWG3VI.js → chunk-NNPJWVGN.js} +32 -32
- package/dist/{chunk-WXPIEWQW.js → chunk-NS2SFWKC.js} +3 -3
- package/dist/{chunk-VQJ7UAKA.js → chunk-NVPE6AJ3.js} +1 -1
- package/dist/{chunk-GRSFFLUY.js → chunk-OMU54WOM.js} +2 -2
- package/dist/{chunk-JUOJGZPV.js → chunk-PDY7C73D.js} +3 -3
- package/dist/{chunk-UBCVHKZQ.js → chunk-QNUK4SUE.js} +2 -2
- package/dist/{chunk-NZUHZVHF.js → chunk-QOL6OTIK.js} +2 -2
- package/dist/{chunk-BICNRVEC.js → chunk-QWUJWBZ5.js} +2 -2
- package/dist/{chunk-OVO545UE.js → chunk-QXDZYPBL.js} +2 -2
- package/dist/{chunk-W7PY7IIB.js → chunk-RBAG3VUT.js} +13 -13
- package/dist/{chunk-WJPRWNZN.js → chunk-RWQXTR35.js} +2 -2
- package/dist/{chunk-BIKX37D2.js → chunk-SIV2ENTD.js} +28 -28
- package/dist/{chunk-QVWNNN64.js → chunk-SUD76OMV.js} +89 -83
- package/dist/chunk-SUD76OMV.js.map +1 -0
- package/dist/{chunk-YEHKKZ5T.js → chunk-SYTPPMCM.js} +2 -2
- package/dist/{chunk-2ZU6CYTJ.js → chunk-T3XDF5RO.js} +2 -2
- package/dist/{chunk-SUI5JQVE.js → chunk-UHQ5UPAQ.js} +2 -2
- package/dist/{chunk-RDWVTUXZ.js → chunk-V6ULW25E.js} +2 -2
- package/dist/{chunk-FN6E373Q.js → chunk-VE456O3R.js} +2 -2
- package/dist/{chunk-VDKZTNG5.js → chunk-VSBY5HAI.js} +2 -2
- package/dist/{chunk-LMMQKZK3.js → chunk-VZBW6CDG.js} +1 -1
- package/dist/{chunk-RFVF5PLN.js → chunk-WZGSSLYI.js} +2 -2
- package/dist/{chunk-TRLPF7ZP.js → chunk-Y4IQFWGD.js} +2 -2
- package/dist/{chunk-WQZZDN5M.js → chunk-ZHOXXHT5.js} +4 -4
- package/dist/{chunk-5I63ZRIH.js → chunk-ZIJ5FAI4.js} +4 -4
- package/dist/{chunk-BSCR5TEN.js → chunk-ZL3Q4OWJ.js} +2 -2
- package/dist/{chunk-MQTCNXTG.js → chunk-ZMV67JXV.js} +4 -4
- package/dist/cli.js +76 -75
- package/dist/coding/export-okf-codegraph.js +6 -6
- package/dist/coding/pre-action-gate.js +2 -2
- package/dist/compounding/engine.js +7 -7
- package/dist/config-search-backend.d.ts +5 -0
- package/dist/config-search-backend.d.ts.map +1 -0
- package/dist/config-search-backend.js +8 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +14 -13
- package/dist/connectors/codex-materialize-runner.js +7 -7
- package/dist/connectors/index.js +7 -7
- package/dist/convergence-refresh.js +9 -9
- package/dist/corpus-watermark.js +9 -9
- package/dist/deep-recall-http-glue.js +6 -6
- package/dist/deep-recall.js +2 -2
- package/dist/entity-retrieval.js +7 -7
- package/dist/event-order-recall.js +2 -2
- package/dist/external-wiki-access.js +35 -35
- package/dist/extraction.js +9 -9
- package/dist/{graph-edge-decay-ROSUPDX3.js → graph-edge-decay-PVKDKLQK.js} +5 -5
- package/dist/graph-edge-decay-PVKDKLQK.js.map +1 -0
- package/dist/graph-jsonl.js +3 -3
- package/dist/graph-snapshot.js +3 -3
- package/dist/graph.js +4 -4
- package/dist/harmonic-retrieval.js +1 -1
- package/dist/index.js +107 -106
- package/dist/lcm/index.js +3 -3
- package/dist/location/index.js +9 -9
- package/dist/maintenance/memory-governance.js +7 -7
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +7 -7
- package/dist/maintenance/rebuild-memory-projection.js +8 -8
- package/dist/memory-browse-operations.js +35 -35
- package/dist/namespaces/migrate.js +8 -8
- package/dist/namespaces/search.js +3 -3
- package/dist/namespaces/storage.js +7 -7
- package/dist/offline-sync.js +2 -2
- package/dist/operator-doctor-corpus.js +10 -10
- package/dist/operator-toolkit.js +25 -24
- package/dist/orchestration/extraction-persist-citation.d.ts +4 -0
- package/dist/orchestration/extraction-persist-citation.d.ts.map +1 -0
- package/dist/orchestration/extraction-persist.d.ts +1 -3
- package/dist/orchestration/extraction-persist.d.ts.map +1 -1
- package/dist/orchestration/maintenance.js +15 -15
- package/dist/orchestrator.js +98 -97
- package/dist/recall-navigation-operations.js +35 -35
- package/dist/recall-navigation.js +34 -34
- package/dist/resume-bundles.js +15 -14
- package/dist/search/factory.js +2 -2
- package/dist/search/index.js +4 -4
- package/dist/semantic-consolidation.js +8 -8
- package/dist/semantic-rule-promotion.js +7 -7
- package/dist/semantic-rule-verifier.js +7 -7
- package/dist/source-agent-qualifier.js +7 -7
- package/dist/standup/build.js +7 -7
- package/dist/storage.js +6 -6
- package/dist/support-passport/index.js +37 -37
- package/dist/transfer/autodetect.js +1 -1
- package/dist/transfer/backup.js +1 -1
- package/dist/transfer/capsule-export.js +2 -2
- package/dist/transfer/export-okf.js +7 -7
- package/dist/verified-recall.js +7 -7
- package/dist/who-knows-cli.js +8 -8
- package/dist/who-knows.js +7 -7
- package/package.json +2 -2
- package/src/config-search-backend.test.ts +21 -0
- package/src/config-search-backend.ts +17 -0
- package/src/config.ts +2 -3
- package/src/orchestration/extraction-persist-citation.test.ts +9 -0
- package/src/orchestration/extraction-persist-citation.ts +37 -0
- package/src/orchestration/extraction-persist.ts +8 -42
- package/dist/chunk-G3QJVHFG.js.map +0 -1
- package/dist/chunk-QVWNNN64.js.map +0 -1
- /package/dist/{chunk-HRQWSXNB.js.map → chunk-2IH2WNM6.js.map} +0 -0
- /package/dist/{chunk-ADWCQWK3.js.map → chunk-2JJVJMN6.js.map} +0 -0
- /package/dist/{chunk-GWK7FEUL.js.map → chunk-2U3R3DDH.js.map} +0 -0
- /package/dist/{chunk-GWQVMKUJ.js.map → chunk-2UPTRDGM.js.map} +0 -0
- /package/dist/{chunk-ONEUTVGJ.js.map → chunk-3SBDUMPW.js.map} +0 -0
- /package/dist/{chunk-CMAGVPS2.js.map → chunk-47AONXWB.js.map} +0 -0
- /package/dist/{chunk-JX2NWPQ4.js.map → chunk-4ETSHAIZ.js.map} +0 -0
- /package/dist/{chunk-H7BZBSP6.js.map → chunk-52II7PB6.js.map} +0 -0
- /package/dist/{chunk-GUWH5SOO.js.map → chunk-542IROS3.js.map} +0 -0
- /package/dist/{chunk-7FL25VH3.js.map → chunk-5TS5QOZS.js.map} +0 -0
- /package/dist/{chunk-AYDU5MJC.js.map → chunk-5W62ZVC6.js.map} +0 -0
- /package/dist/{chunk-B2FMRNHA.js.map → chunk-A5HBAR5Y.js.map} +0 -0
- /package/dist/{chunk-5ID5RTHY.js.map → chunk-A7AI3WDN.js.map} +0 -0
- /package/dist/{chunk-GNC5X3J7.js.map → chunk-AG5QWIU7.js.map} +0 -0
- /package/dist/{chunk-ZDTG7ALZ.js.map → chunk-B2PGHXTP.js.map} +0 -0
- /package/dist/{chunk-JDBZSRUA.js.map → chunk-BFUYPEJB.js.map} +0 -0
- /package/dist/{chunk-ICMXLHSC.js.map → chunk-BMTR244T.js.map} +0 -0
- /package/dist/{chunk-RG7ZWG3M.js.map → chunk-BRJNNP7R.js.map} +0 -0
- /package/dist/{chunk-DQFZOPDL.js.map → chunk-CGO3A7SR.js.map} +0 -0
- /package/dist/{chunk-SF6RFI5Z.js.map → chunk-CHDGJJV6.js.map} +0 -0
- /package/dist/{chunk-AJEUESNJ.js.map → chunk-FJZUIM5G.js.map} +0 -0
- /package/dist/{chunk-YDMN7TUM.js.map → chunk-FRD5N3CS.js.map} +0 -0
- /package/dist/{chunk-D5F2Z6WO.js.map → chunk-GLX4SU4W.js.map} +0 -0
- /package/dist/{chunk-XY25CPAO.js.map → chunk-GM2UUMWJ.js.map} +0 -0
- /package/dist/{chunk-266NJ2YF.js.map → chunk-GXHRNONR.js.map} +0 -0
- /package/dist/{chunk-VVKLAB3Y.js.map → chunk-HA5V67N4.js.map} +0 -0
- /package/dist/{chunk-5TC6MQOW.js.map → chunk-HS75MCQF.js.map} +0 -0
- /package/dist/{chunk-ADZLUBNE.js.map → chunk-HVWLZ7ZQ.js.map} +0 -0
- /package/dist/{chunk-DDNML3YE.js.map → chunk-HXRZRYHQ.js.map} +0 -0
- /package/dist/{chunk-2WMXZYMS.js.map → chunk-HZZIH5SW.js.map} +0 -0
- /package/dist/{chunk-YHU5XUF4.js.map → chunk-IFCKHPY4.js.map} +0 -0
- /package/dist/{chunk-KQAFEZQX.js.map → chunk-IPLYGWQF.js.map} +0 -0
- /package/dist/{chunk-2VV3XLZB.js.map → chunk-IXLHREAB.js.map} +0 -0
- /package/dist/{chunk-2XGPN5TL.js.map → chunk-JLNJ7AGH.js.map} +0 -0
- /package/dist/{chunk-B6RTKSOT.js.map → chunk-KK6TS7ED.js.map} +0 -0
- /package/dist/{chunk-HW4DKAAA.js.map → chunk-KSJP3AWY.js.map} +0 -0
- /package/dist/{chunk-6E5GYDIE.js.map → chunk-MFZACYZ6.js.map} +0 -0
- /package/dist/{chunk-NEARGPN7.js.map → chunk-ML64HXAN.js.map} +0 -0
- /package/dist/{chunk-BGBW4H7C.js.map → chunk-NKIK4VFP.js.map} +0 -0
- /package/dist/{chunk-KNPWG3VI.js.map → chunk-NNPJWVGN.js.map} +0 -0
- /package/dist/{chunk-WXPIEWQW.js.map → chunk-NS2SFWKC.js.map} +0 -0
- /package/dist/{chunk-VQJ7UAKA.js.map → chunk-NVPE6AJ3.js.map} +0 -0
- /package/dist/{chunk-GRSFFLUY.js.map → chunk-OMU54WOM.js.map} +0 -0
- /package/dist/{chunk-JUOJGZPV.js.map → chunk-PDY7C73D.js.map} +0 -0
- /package/dist/{chunk-UBCVHKZQ.js.map → chunk-QNUK4SUE.js.map} +0 -0
- /package/dist/{chunk-NZUHZVHF.js.map → chunk-QOL6OTIK.js.map} +0 -0
- /package/dist/{chunk-BICNRVEC.js.map → chunk-QWUJWBZ5.js.map} +0 -0
- /package/dist/{chunk-OVO545UE.js.map → chunk-QXDZYPBL.js.map} +0 -0
- /package/dist/{chunk-W7PY7IIB.js.map → chunk-RBAG3VUT.js.map} +0 -0
- /package/dist/{chunk-WJPRWNZN.js.map → chunk-RWQXTR35.js.map} +0 -0
- /package/dist/{chunk-BIKX37D2.js.map → chunk-SIV2ENTD.js.map} +0 -0
- /package/dist/{chunk-YEHKKZ5T.js.map → chunk-SYTPPMCM.js.map} +0 -0
- /package/dist/{chunk-2ZU6CYTJ.js.map → chunk-T3XDF5RO.js.map} +0 -0
- /package/dist/{chunk-SUI5JQVE.js.map → chunk-UHQ5UPAQ.js.map} +0 -0
- /package/dist/{chunk-RDWVTUXZ.js.map → chunk-V6ULW25E.js.map} +0 -0
- /package/dist/{chunk-FN6E373Q.js.map → chunk-VE456O3R.js.map} +0 -0
- /package/dist/{chunk-VDKZTNG5.js.map → chunk-VSBY5HAI.js.map} +0 -0
- /package/dist/{chunk-LMMQKZK3.js.map → chunk-VZBW6CDG.js.map} +0 -0
- /package/dist/{chunk-RFVF5PLN.js.map → chunk-WZGSSLYI.js.map} +0 -0
- /package/dist/{chunk-TRLPF7ZP.js.map → chunk-Y4IQFWGD.js.map} +0 -0
- /package/dist/{chunk-WQZZDN5M.js.map → chunk-ZHOXXHT5.js.map} +0 -0
- /package/dist/{chunk-5I63ZRIH.js.map → chunk-ZIJ5FAI4.js.map} +0 -0
- /package/dist/{chunk-BSCR5TEN.js.map → chunk-ZL3Q4OWJ.js.map} +0 -0
- /package/dist/{chunk-MQTCNXTG.js.map → chunk-ZMV67JXV.js.map} +0 -0
- /package/dist/{graph-edge-decay-ROSUPDX3.js.map → config-search-backend.js.map} +0 -0
|
@@ -125,6 +125,10 @@ import { applySemanticMergeAtPersist, runMergedTargetPostEffects, writeMergedVer
|
|
|
125
125
|
import { buildMergedTargetPromotionPayload } from "./semantic-merge-promotion-payload.js";
|
|
126
126
|
import { persistMergedTargetThreadEpisode } from "./semantic-merge-commit-effects.js";
|
|
127
127
|
import { ExtractionAnchorSnapshot } from "./extraction-anchor-snapshot.js";
|
|
128
|
+
import {
|
|
129
|
+
applyInlineCitation as applyInlineCitationToContent,
|
|
130
|
+
normalizeStoredHashSource as normalizeStoredHashSourceContent,
|
|
131
|
+
} from "./extraction-persist-citation.js";
|
|
128
132
|
|
|
129
133
|
export class ExtractionPersistCoordinator {
|
|
130
134
|
constructor(
|
|
@@ -145,26 +149,12 @@ export class ExtractionPersistCoordinator {
|
|
|
145
149
|
sourceContext?: ExtractionSourceContext,
|
|
146
150
|
baseNamespace?: string,
|
|
147
151
|
scopeProfileWritePlan?: ResolvedScopeProfilePlan | null,
|
|
148
|
-
/** Verbatim source turn text the facts were extracted from (faithfulness gate #1576). */
|
|
149
152
|
sourceText?: string,
|
|
150
153
|
graphCaps: GraphConstructionCapabilitySet = resolveGraphConstructionCapabilities(this.deps.config),
|
|
151
154
|
lifecycleCaps: MemoryLifecycleCapabilitySet = resolveMemoryLifecycleCapabilities(this.deps.config),
|
|
152
155
|
): Promise<{ persistedIds: string[]; memoryPathById: Map<string, string> }> {
|
|
153
|
-
// Inline source attribution (issue #369). When enabled, every extracted
|
|
154
|
-
// fact is rewritten to carry a compact provenance tag inside its body so
|
|
155
|
-
// the citation survives hostile memory text, copy/paste, and LLM quoting.
|
|
156
|
-
// The helper is a no-op when the feature flag is off, so legacy pipelines
|
|
157
|
-
// see zero behavioral change.
|
|
158
156
|
const citationEnabled = resolvePipelineProcessingCapabilities(this.deps.config).inlineSourceAttribution === true;
|
|
159
157
|
const citationTemplate = this.deps.config.inlineSourceAttributionFormat;
|
|
160
|
-
// #1909: the main-path fact writes defer their per-fact fact-hash-index flush
|
|
161
|
-
// to the orchestrator's end-of-persist reconciling batch save ONLY when fact
|
|
162
|
-
// deduplication is enabled (with it off, contentHashIndexForStorage() returns
|
|
163
|
-
// null and the batch save is a no-op, so the write must save immediately).
|
|
164
|
-
// Round 11: there is NO fact-hashes.ready marker anymore — the fact-hash
|
|
165
|
-
// index is ALWAYS rebuilt from the corpus on restart (see
|
|
166
|
-
// ensureFactHashIndexAuthoritative), so a deferred write, crash, or
|
|
167
|
-
// multi-process interleave is safe by construction with no marker to guard.
|
|
168
158
|
const factDedupEnabled = resolveRecallAuxiliaryCapabilities(this.deps.config).factDeduplication;
|
|
169
159
|
const harmonicConstructionEnabled = resolveCapabilities(this.deps.config).harmonicRetrieval;
|
|
170
160
|
const harmonicAnchorsEnabled =
|
|
@@ -182,40 +172,16 @@ export class ExtractionPersistCoordinator {
|
|
|
182
172
|
let harmonicSourceOrder = 0;
|
|
183
173
|
const promotedCopyProbe = createBatchPromotedCopyProbe(this.deps.config, this.deps.getStorageRouter, scopeProfileWritePlan); // #2330 finding F: one promoted-copy scan per namespace per batch
|
|
184
174
|
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
const normalizeStoredHashSource = (raw: string): string =>
|
|
188
|
-
ContentHashIndex.normalizeContent(
|
|
189
|
-
sanitizeMemoryContent(
|
|
190
|
-
citationEnabled && hasCitationForTemplate(raw, citationTemplate)
|
|
191
|
-
? stripCitationForTemplate(raw, citationTemplate)
|
|
192
|
-
: raw,
|
|
193
|
-
).text,
|
|
194
|
-
);
|
|
195
|
-
// The stable fields (agent, session) are computed once; `ts` is intentionally
|
|
196
|
-
// omitted here and added fresh per invocation so each fact in a large batch
|
|
197
|
-
// gets its own insertion timestamp rather than sharing a single batch-start time.
|
|
175
|
+
const normalizeStoredHashSource = (raw: string): string =>
|
|
176
|
+
normalizeStoredHashSourceContent(raw, citationEnabled, citationTemplate);
|
|
198
177
|
const citationContextBase: Omit<CitationContext, "ts"> = citationEnabled
|
|
199
178
|
? {
|
|
200
179
|
agent: sourceContext?.principal,
|
|
201
180
|
session: sourceContext?.sessionKey,
|
|
202
181
|
}
|
|
203
182
|
: {};
|
|
204
|
-
const applyInlineCitation = (content: string): string =>
|
|
205
|
-
|
|
206
|
-
if (typeof content !== "string" || content.length === 0) return content;
|
|
207
|
-
// Build a fresh CitationContext per call so `ts` reflects the actual
|
|
208
|
-
// insertion time of each individual fact rather than the batch-start time.
|
|
209
|
-
const citationContext: CitationContext = {
|
|
210
|
-
...citationContextBase,
|
|
211
|
-
ts: new Date().toISOString(),
|
|
212
|
-
};
|
|
213
|
-
// `attachCitation` already calls `hasCitationForTemplate` internally and
|
|
214
|
-
// is a no-op when the content already carries a citation (default or
|
|
215
|
-
// custom template). The outer check was redundant and has been removed
|
|
216
|
-
// to avoid a maintenance hazard where the two guard paths could diverge.
|
|
217
|
-
return attachCitation(content, citationContext, citationTemplate);
|
|
218
|
-
};
|
|
183
|
+
const applyInlineCitation = (content: string): string =>
|
|
184
|
+
applyInlineCitationToContent(content, citationEnabled, citationTemplate, citationContextBase);
|
|
219
185
|
const persistedIds: string[] = [];
|
|
220
186
|
const memoryPathById = new Map<string, string>();
|
|
221
187
|
const anchorSnapshots = new ExtractionAnchorSnapshot({
|