@remnic/core 10.0.95 → 10.0.97
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/abstraction-nodes.d.ts.map +1 -1
- package/dist/abstraction-nodes.js +7 -1
- package/dist/access-admin-ops-surface.js +91 -90
- package/dist/access-audit.js +2 -2
- package/dist/access-cli.js +91 -90
- package/dist/access-cli.js.map +1 -1
- package/dist/access-extraction-force-flush.js +91 -90
- package/dist/access-http-briefing.js +91 -90
- package/dist/access-http-query.js +91 -90
- package/dist/access-http-types.d.ts +2 -0
- package/dist/access-http-types.d.ts.map +1 -1
- package/dist/access-http.d.ts +1 -0
- package/dist/access-http.d.ts.map +1 -1
- package/dist/access-http.js +91 -90
- package/dist/access-identity-continuity-surface.js +91 -90
- package/dist/access-lcm-surface.js +91 -90
- package/dist/access-mcp.js +91 -90
- package/dist/access-observe-write-surface.js +91 -90
- package/dist/access-operations-batch.js +91 -90
- package/dist/access-operations.js +91 -90
- package/dist/access-recall-concurrency.js +91 -90
- package/dist/access-recall-response.js +91 -90
- package/dist/access-recall-surface.js +91 -90
- package/dist/access-schema.d.ts +5 -5
- package/dist/access-service.js +91 -90
- package/dist/active-recall.js +16 -16
- package/dist/briefing.js +15 -15
- package/dist/buffer.js +7 -7
- package/dist/calibration.js +2 -2
- package/dist/{capsule-merge-6IDAYTKG.js → capsule-merge-ILR35DIB.js} +10 -10
- package/dist/causal-consolidation.js +16 -16
- package/dist/{chunk-UN4RVUG2.js → chunk-2R3ACFYN.js} +3 -3
- package/dist/{chunk-RQFXZYTF.js → chunk-33C4BK7I.js} +4 -4
- package/dist/{chunk-BN2EBCLB.js → chunk-3DQZ2GAY.js} +2 -2
- package/dist/{chunk-DDATG2SF.js → chunk-3ETADXEP.js} +136 -127
- package/dist/{chunk-DDATG2SF.js.map → chunk-3ETADXEP.js.map} +1 -1
- package/dist/{chunk-UBEKET2V.js → chunk-3R63SXC5.js} +4 -4
- package/dist/{chunk-GBJUTX44.js → chunk-3WDFQKB4.js} +2 -2
- package/dist/{chunk-LLPMMMWG.js → chunk-4IJFJQPD.js} +2 -2
- package/dist/{chunk-BPK32FRM.js → chunk-4PXDXCNE.js} +61 -6
- package/dist/chunk-4PXDXCNE.js.map +1 -0
- package/dist/{chunk-CIWMTNHW.js → chunk-5NFF2TSD.js} +2 -2
- package/dist/{chunk-WGGRZYSQ.js → chunk-6RW5TONS.js} +8 -8
- package/dist/{chunk-LNGELD2M.js → chunk-6VAIFSDG.js} +2 -2
- package/dist/{chunk-2WCLTWV2.js → chunk-7NVK6AGC.js} +2 -2
- package/dist/{chunk-X5HGU2EM.js → chunk-A2D5WZRO.js} +2 -2
- package/dist/{chunk-LS7PT3YD.js → chunk-AMRGZOIP.js} +5 -5
- package/dist/{chunk-PC5DRBGD.js → chunk-AP4BFWSW.js} +2 -2
- package/dist/{chunk-OUVYYKYU.js → chunk-B2BMTXIF.js} +2 -2
- package/dist/{chunk-A4F7OIC5.js → chunk-BUOP3DOK.js} +7 -3
- package/dist/{chunk-A4F7OIC5.js.map → chunk-BUOP3DOK.js.map} +1 -1
- package/dist/{chunk-DNY63QWJ.js → chunk-CCQEANCY.js} +2 -2
- package/dist/{chunk-YIXJSW5M.js → chunk-CH2N4XCJ.js} +3 -3
- package/dist/{chunk-LQ5SS4OP.js → chunk-D6IGZYTN.js} +3 -3
- package/dist/{chunk-FWRXW7CZ.js → chunk-D6WJNWZG.js} +29 -29
- package/dist/{chunk-4EZWSDFL.js → chunk-E3YHIAO3.js} +3 -3
- package/dist/{chunk-IL3RHBWM.js → chunk-ECC6AAEE.js} +3 -3
- package/dist/{chunk-XJ2S5UBF.js → chunk-EHJ2RYR7.js} +3 -3
- package/dist/{chunk-F4QFU5IZ.js → chunk-EZ7XJJ5L.js} +2 -2
- package/dist/{chunk-FQAQ63QA.js → chunk-FHQ5SPMD.js} +2 -2
- package/dist/{chunk-LXATZLSC.js → chunk-FL3O34XF.js} +12 -5
- package/dist/chunk-FL3O34XF.js.map +1 -0
- package/dist/{chunk-DPPLNZ3A.js → chunk-FM4P7HSW.js} +4 -4
- package/dist/{chunk-QDESY76F.js → chunk-FQACH7MC.js} +2 -2
- package/dist/{chunk-XPXHQI6N.js → chunk-FVMEZ57K.js} +2 -2
- package/dist/{chunk-ILY5SSOM.js → chunk-FVPWQWIK.js} +6 -6
- package/dist/{chunk-F2XNSIPP.js → chunk-G2CGIFRP.js} +10 -3
- package/dist/chunk-G2CGIFRP.js.map +1 -0
- package/dist/{chunk-S3S72HRM.js → chunk-HCCRWSP7.js} +2 -2
- package/dist/{chunk-NMGHGTVR.js → chunk-HRMOKGQM.js} +6 -6
- package/dist/chunk-ITAUMNQU.js +40 -0
- package/dist/chunk-ITAUMNQU.js.map +1 -0
- package/dist/{chunk-R23JWJD3.js → chunk-J426U7XK.js} +9 -9
- package/dist/{chunk-CL4JU3DF.js → chunk-KI7E3N6Q.js} +3 -3
- package/dist/{chunk-SQ3GEIEL.js → chunk-KUQLUYIR.js} +5 -5
- package/dist/{chunk-J7BIFOYP.js → chunk-MXXTU4R2.js} +2 -2
- package/dist/{chunk-IAYUTGF2.js → chunk-O3GZPLVY.js} +4 -4
- package/dist/{chunk-IGOW4TJE.js → chunk-O3JG4PD3.js} +2 -2
- package/dist/{chunk-UHMHJX5G.js → chunk-OIG4ZFMB.js} +4 -4
- package/dist/{chunk-D5XG2KPS.js → chunk-OTSRGZRU.js} +2 -2
- package/dist/{chunk-ZDV5YWID.js → chunk-PWATRW3H.js} +6 -6
- package/dist/{chunk-ESLOLCD4.js → chunk-RUWKIPWJ.js} +2 -2
- package/dist/{chunk-IQ55QGY5.js → chunk-RXL67CV6.js} +2 -2
- package/dist/{chunk-W54Z2MOP.js → chunk-RXSGBO7Y.js} +2 -2
- package/dist/{chunk-QMFAMOT2.js → chunk-SFZEJJ6V.js} +2 -2
- package/dist/{chunk-QHARXWTC.js → chunk-SW3WUUYA.js} +2 -2
- package/dist/{chunk-FZZMLGWQ.js → chunk-TFI2Y5AR.js} +2 -2
- package/dist/{chunk-BOK6BN5M.js → chunk-THV6PZ7V.js} +2 -2
- package/dist/{chunk-Z3FTSHT5.js → chunk-UG54AEUG.js} +2 -2
- package/dist/{chunk-X2BVB74H.js → chunk-UZQXJDOE.js} +2 -2
- package/dist/{chunk-SUTEBYGI.js → chunk-VRBTZDQ5.js} +2 -2
- package/dist/{chunk-RKABLU5M.js → chunk-XP5CKXFV.js} +9 -9
- package/dist/{chunk-RNG7S3FY.js → chunk-YCQMNW3F.js} +6 -6
- package/dist/{chunk-OJXK5C6Z.js → chunk-ZG4GNPRE.js} +7 -7
- package/dist/{chunk-TYRWSE4B.js → chunk-ZUMHQEW4.js} +2 -2
- package/dist/{chunk-DAOMWGO2.js → chunk-ZX5N5D6M.js} +4 -4
- package/dist/cli.js +91 -90
- package/dist/coding/export-okf-codegraph.js +14 -14
- package/dist/compounding/engine.js +16 -16
- package/dist/config.js +16 -16
- package/dist/connectors/codex-materialize-runner.js +15 -15
- package/dist/connectors/index.js +15 -15
- package/dist/consolidation-provenance-check.js +8 -8
- package/dist/consolidation-undo.js +6 -6
- package/dist/contradiction/index.js +6 -6
- package/dist/convergence-refresh.js +17 -17
- package/dist/corpus-watermark.js +17 -17
- package/dist/cue-anchors.d.ts.map +1 -1
- package/dist/cue-anchors.js +8 -2
- package/dist/{entity-canonical-id-migration-JJSTZF73.js → entity-canonical-id-migration-IG77BOGD.js} +5 -5
- package/dist/entity-mention-index-cache.js +2 -2
- package/dist/entity-retrieval.js +16 -16
- package/dist/explicit-capture.js +91 -90
- package/dist/extraction.js +21 -21
- package/dist/harmonic-construction.js +9 -3
- package/dist/harmonic-graph-version.d.ts +14 -0
- package/dist/harmonic-graph-version.d.ts.map +1 -0
- package/dist/harmonic-graph-version.js +17 -0
- package/dist/harmonic-retrieval.d.ts +19 -14
- package/dist/harmonic-retrieval.d.ts.map +1 -1
- package/dist/harmonic-retrieval.js +22 -17
- package/dist/index.js +105 -104
- package/dist/lcm/engine.js +3 -3
- package/dist/lcm/index.js +8 -8
- package/dist/local-llm.js +2 -2
- package/dist/location/index.js +16 -16
- package/dist/maintenance/memory-governance.js +15 -15
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +15 -15
- package/dist/maintenance/rebuild-memory-projection-runner.js +17 -17
- package/dist/maintenance/rebuild-memory-projection.js +16 -16
- package/dist/memory-browse.js +7 -7
- package/dist/namespaces/migrate.js +16 -16
- package/dist/namespaces/search.d.ts.map +1 -1
- package/dist/namespaces/search.js +6 -6
- package/dist/namespaces/storage.js +15 -15
- package/dist/operator-doctor-corpus.js +18 -18
- package/dist/operator-toolkit.js +24 -24
- package/dist/orchestration/backlog-scheduler.js +92 -91
- package/dist/orchestration/backlog-scheduler.js.map +1 -1
- package/dist/orchestration/buffer-drain-runner.js +92 -91
- package/dist/orchestration/maintenance.js +25 -25
- package/dist/orchestrator.js +93 -92
- package/dist/page-versioning.js +6 -6
- package/dist/qmd.js +4 -4
- package/dist/recall-navigation.js +91 -90
- package/dist/recall-state-view-admission.js +7 -7
- package/dist/recall-why-service.js +7 -7
- package/dist/{resolution-OVVIF7ZY.js → resolution-G4SLHSEU.js} +7 -7
- package/dist/resolution-G4SLHSEU.js.map +1 -0
- package/dist/resume-bundles.js +17 -17
- package/dist/schemas.d.ts +9 -9
- package/dist/search/factory.js +5 -5
- package/dist/search/index.js +5 -5
- package/dist/semantic-consolidation.js +16 -16
- package/dist/semantic-rule-promotion.js +15 -15
- package/dist/semantic-rule-verifier.js +15 -15
- package/dist/source-agent-qualifier.js +18 -18
- package/dist/standup/build.js +15 -15
- package/dist/storage.js +14 -14
- package/dist/summarizer.js +3 -3
- package/dist/support-passport/index.js +3 -3
- package/dist/transfer/capsule-import.js +8 -8
- package/dist/transfer/export-okf.js +15 -15
- package/dist/verified-recall.js +15 -15
- package/dist/who-knows-cli.js +16 -16
- package/dist/who-knows.js +15 -15
- package/package.json +2 -2
- package/src/abstraction-nodes.ts +7 -2
- package/src/access-http-cancellation.test.ts +45 -0
- package/src/access-http-types.ts +2 -0
- package/src/access-http.ts +13 -1
- package/src/cue-anchors.ts +8 -3
- package/src/harmonic-graph-cache.test.ts +244 -0
- package/src/harmonic-graph-version.ts +46 -0
- package/src/harmonic-retrieval.ts +92 -2
- package/src/namespaces/search.test.ts +35 -0
- package/src/namespaces/search.ts +7 -1
- package/src/orchestration/recall-internal.ts +1 -1
- package/dist/chunk-BPK32FRM.js.map +0 -1
- package/dist/chunk-F2XNSIPP.js.map +0 -1
- package/dist/chunk-LXATZLSC.js.map +0 -1
- /package/dist/{capsule-merge-6IDAYTKG.js.map → capsule-merge-ILR35DIB.js.map} +0 -0
- /package/dist/{chunk-UN4RVUG2.js.map → chunk-2R3ACFYN.js.map} +0 -0
- /package/dist/{chunk-RQFXZYTF.js.map → chunk-33C4BK7I.js.map} +0 -0
- /package/dist/{chunk-BN2EBCLB.js.map → chunk-3DQZ2GAY.js.map} +0 -0
- /package/dist/{chunk-UBEKET2V.js.map → chunk-3R63SXC5.js.map} +0 -0
- /package/dist/{chunk-GBJUTX44.js.map → chunk-3WDFQKB4.js.map} +0 -0
- /package/dist/{chunk-LLPMMMWG.js.map → chunk-4IJFJQPD.js.map} +0 -0
- /package/dist/{chunk-CIWMTNHW.js.map → chunk-5NFF2TSD.js.map} +0 -0
- /package/dist/{chunk-WGGRZYSQ.js.map → chunk-6RW5TONS.js.map} +0 -0
- /package/dist/{chunk-LNGELD2M.js.map → chunk-6VAIFSDG.js.map} +0 -0
- /package/dist/{chunk-2WCLTWV2.js.map → chunk-7NVK6AGC.js.map} +0 -0
- /package/dist/{chunk-X5HGU2EM.js.map → chunk-A2D5WZRO.js.map} +0 -0
- /package/dist/{chunk-LS7PT3YD.js.map → chunk-AMRGZOIP.js.map} +0 -0
- /package/dist/{chunk-PC5DRBGD.js.map → chunk-AP4BFWSW.js.map} +0 -0
- /package/dist/{chunk-OUVYYKYU.js.map → chunk-B2BMTXIF.js.map} +0 -0
- /package/dist/{chunk-DNY63QWJ.js.map → chunk-CCQEANCY.js.map} +0 -0
- /package/dist/{chunk-YIXJSW5M.js.map → chunk-CH2N4XCJ.js.map} +0 -0
- /package/dist/{chunk-LQ5SS4OP.js.map → chunk-D6IGZYTN.js.map} +0 -0
- /package/dist/{chunk-FWRXW7CZ.js.map → chunk-D6WJNWZG.js.map} +0 -0
- /package/dist/{chunk-4EZWSDFL.js.map → chunk-E3YHIAO3.js.map} +0 -0
- /package/dist/{chunk-IL3RHBWM.js.map → chunk-ECC6AAEE.js.map} +0 -0
- /package/dist/{chunk-XJ2S5UBF.js.map → chunk-EHJ2RYR7.js.map} +0 -0
- /package/dist/{chunk-F4QFU5IZ.js.map → chunk-EZ7XJJ5L.js.map} +0 -0
- /package/dist/{chunk-FQAQ63QA.js.map → chunk-FHQ5SPMD.js.map} +0 -0
- /package/dist/{chunk-DPPLNZ3A.js.map → chunk-FM4P7HSW.js.map} +0 -0
- /package/dist/{chunk-QDESY76F.js.map → chunk-FQACH7MC.js.map} +0 -0
- /package/dist/{chunk-XPXHQI6N.js.map → chunk-FVMEZ57K.js.map} +0 -0
- /package/dist/{chunk-ILY5SSOM.js.map → chunk-FVPWQWIK.js.map} +0 -0
- /package/dist/{chunk-S3S72HRM.js.map → chunk-HCCRWSP7.js.map} +0 -0
- /package/dist/{chunk-NMGHGTVR.js.map → chunk-HRMOKGQM.js.map} +0 -0
- /package/dist/{chunk-R23JWJD3.js.map → chunk-J426U7XK.js.map} +0 -0
- /package/dist/{chunk-CL4JU3DF.js.map → chunk-KI7E3N6Q.js.map} +0 -0
- /package/dist/{chunk-SQ3GEIEL.js.map → chunk-KUQLUYIR.js.map} +0 -0
- /package/dist/{chunk-J7BIFOYP.js.map → chunk-MXXTU4R2.js.map} +0 -0
- /package/dist/{chunk-IAYUTGF2.js.map → chunk-O3GZPLVY.js.map} +0 -0
- /package/dist/{chunk-IGOW4TJE.js.map → chunk-O3JG4PD3.js.map} +0 -0
- /package/dist/{chunk-UHMHJX5G.js.map → chunk-OIG4ZFMB.js.map} +0 -0
- /package/dist/{chunk-D5XG2KPS.js.map → chunk-OTSRGZRU.js.map} +0 -0
- /package/dist/{chunk-ZDV5YWID.js.map → chunk-PWATRW3H.js.map} +0 -0
- /package/dist/{chunk-ESLOLCD4.js.map → chunk-RUWKIPWJ.js.map} +0 -0
- /package/dist/{chunk-IQ55QGY5.js.map → chunk-RXL67CV6.js.map} +0 -0
- /package/dist/{chunk-W54Z2MOP.js.map → chunk-RXSGBO7Y.js.map} +0 -0
- /package/dist/{chunk-QMFAMOT2.js.map → chunk-SFZEJJ6V.js.map} +0 -0
- /package/dist/{chunk-QHARXWTC.js.map → chunk-SW3WUUYA.js.map} +0 -0
- /package/dist/{chunk-FZZMLGWQ.js.map → chunk-TFI2Y5AR.js.map} +0 -0
- /package/dist/{chunk-BOK6BN5M.js.map → chunk-THV6PZ7V.js.map} +0 -0
- /package/dist/{chunk-Z3FTSHT5.js.map → chunk-UG54AEUG.js.map} +0 -0
- /package/dist/{chunk-X2BVB74H.js.map → chunk-UZQXJDOE.js.map} +0 -0
- /package/dist/{chunk-SUTEBYGI.js.map → chunk-VRBTZDQ5.js.map} +0 -0
- /package/dist/{chunk-RKABLU5M.js.map → chunk-XP5CKXFV.js.map} +0 -0
- /package/dist/{chunk-RNG7S3FY.js.map → chunk-YCQMNW3F.js.map} +0 -0
- /package/dist/{chunk-OJXK5C6Z.js.map → chunk-ZG4GNPRE.js.map} +0 -0
- /package/dist/{chunk-TYRWSE4B.js.map → chunk-ZUMHQEW4.js.map} +0 -0
- /package/dist/{chunk-DAOMWGO2.js.map → chunk-ZX5N5D6M.js.map} +0 -0
- /package/dist/{entity-canonical-id-migration-JJSTZF73.js.map → entity-canonical-id-migration-IG77BOGD.js.map} +0 -0
- /package/dist/{resolution-OVVIF7ZY.js.map → harmonic-graph-version.js.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cue-anchors.ts"],"sourcesContent":["import { mkdir, unlink, writeFile } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { resolveAbstractionNodeStoreDir, validateAbstractionNode, type AbstractionNode } from \"./abstraction-nodes.js\";\nimport { listJsonFilesStrict, readJsonFile, withJsonStoreMutationLock, writeJsonFileAtomic } from \"./json-store.js\";\nimport { compareDeterministicStrings, mergeSortedUniqueStrings } from \"./deterministic-order.js\";\nimport { isNotFoundError } from \"./utils/errno.js\";\nimport {\n assertIsoRecordedAt,\n assertSafePathSegment,\n assertString,\n isRecord,\n optionalStringArray,\n validateStringRecord,\n} from \"./store-contract.js\";\n\nexport type CueAnchorType = \"entity\" | \"file\" | \"tool\" | \"outcome\" | \"constraint\" | \"date\";\n\nexport interface CueAnchor {\n schemaVersion: 1;\n anchorId: string;\n anchorType: CueAnchorType;\n anchorValue: string;\n normalizedCue: string;\n recordedAt: string;\n sessionKey: string;\n nodeRefs: string[];\n sourceMemoryIdsByNodeRef?: Record<string, string[]>;\n tags?: string[];\n metadata?: Record<string, string>;\n}\n\nexport interface CueAnchorStoreStatus {\n enabled: boolean;\n anchorsEnabled: boolean;\n rootDir: string;\n anchors: {\n total: number;\n valid: number;\n invalid: number;\n byType: Partial<Record<CueAnchorType, number>>;\n totalNodeRefs: number;\n latestAnchorId?: string;\n latestRecordedAt?: string;\n latestSessionKey?: string;\n };\n latestAnchor?: CueAnchor;\n invalidAnchors: Array<{\n path: string;\n error: string;\n }>;\n}\n\nfunction validateAnchorType(raw: unknown): CueAnchorType {\n const value = assertString(raw, \"anchorType\");\n if (![\"entity\", \"file\", \"tool\", \"outcome\", \"constraint\", \"date\"].includes(value)) {\n throw new Error(\"anchorType must be one of entity|file|tool|outcome|constraint|date\");\n }\n return value as CueAnchorType;\n}\n\nfunction validateNodeRefs(raw: unknown): string[] {\n const nodeRefs = optionalStringArray(raw, \"nodeRefs\");\n if (!nodeRefs || nodeRefs.length === 0) {\n throw new Error(\"nodeRefs must contain at least one node reference\");\n }\n return nodeRefs.map((nodeRef, index) => assertSafePathSegment(nodeRef, `nodeRefs[${index}]`));\n}\n\nfunction validateSourceMemoryIdsByNodeRef(raw: unknown): Record<string, string[]> | undefined {\n if (raw === undefined) return undefined;\n if (!isRecord(raw)) throw new Error(\"sourceMemoryIdsByNodeRef must be an object of string arrays\");\n const entries: Array<[string, string[]]> = [];\n for (const [rawNodeRef, rawSourceMemoryIds] of Object.entries(raw)) {\n const nodeRef = assertSafePathSegment(\n assertString(rawNodeRef, \"sourceMemoryIdsByNodeRef key\"),\n \"sourceMemoryIdsByNodeRef.nodeRef\"\n );\n const sourceMemoryIds = optionalStringArray(rawSourceMemoryIds, `sourceMemoryIdsByNodeRef.${nodeRef}`);\n if (sourceMemoryIds) entries.push([nodeRef, mergeSortedUniqueStrings(sourceMemoryIds)]);\n }\n if (entries.length === 0) return undefined;\n return Object.fromEntries(entries.sort(([left], [right]) => compareDeterministicStrings(left, right)));\n}\n\nfunction mergeSourceMemoryIdsByNodeRef(\n existing: Record<string, string[]> | undefined,\n incoming: Record<string, string[]> | undefined\n): Record<string, string[]> | undefined {\n const merged = new Map<string, string[]>();\n for (const [nodeRef, sourceMemoryIds] of Object.entries(existing ?? {})) {\n merged.set(nodeRef, [...sourceMemoryIds]);\n }\n for (const [nodeRef, sourceMemoryIds] of Object.entries(incoming ?? {})) {\n merged.set(nodeRef, mergeSortedUniqueStrings(merged.get(nodeRef), sourceMemoryIds));\n }\n return validateSourceMemoryIdsByNodeRef(Object.fromEntries(merged));\n}\n\nfunction boundSourceMemoryIdsByNodeRef(\n sourceMemoryIdsByNodeRef: Record<string, string[]> | undefined,\n nodeRefs: string[],\n liveNodes?: Map<string, AbstractionNode>\n): Record<string, string[]> | undefined {\n if (!sourceMemoryIdsByNodeRef) return undefined;\n const retained = Object.fromEntries(\n nodeRefs.flatMap((nodeRef) => {\n const sourceMemoryIds = sourceMemoryIdsByNodeRef[nodeRef];\n if (!sourceMemoryIds) return [];\n const liveSourceMemoryIds = liveNodes?.get(nodeRef)?.sourceMemoryIds;\n if (liveNodes && !liveSourceMemoryIds) return [];\n const retainedSourceMemoryIds = mergeSortedUniqueStrings(sourceMemoryIds).filter((sourceMemoryId) =>\n liveSourceMemoryIds ? liveSourceMemoryIds.includes(sourceMemoryId) : true\n );\n return retainedSourceMemoryIds.length > 0 ? [[nodeRef, retainedSourceMemoryIds] as const] : [];\n })\n );\n return validateSourceMemoryIdsByNodeRef(retained);\n}\n\nexport function resolveCueAnchorStoreDir(abstractionNodeStoreDir: string, overrideDir?: string): string {\n if (typeof overrideDir === \"string\" && overrideDir.trim().length > 0) {\n return overrideDir.trim();\n }\n return path.join(abstractionNodeStoreDir, \"anchors\");\n}\n\nexport function validateCueAnchor(raw: unknown): CueAnchor {\n if (!isRecord(raw)) throw new Error(\"cue anchor must be an object\");\n if (raw.schemaVersion !== 1) throw new Error(\"schemaVersion must be 1\");\n\n return {\n schemaVersion: 1,\n anchorId: assertSafePathSegment(assertString(raw.anchorId, \"anchorId\"), \"anchorId\"),\n anchorType: validateAnchorType(raw.anchorType),\n anchorValue: assertString(raw.anchorValue, \"anchorValue\"),\n normalizedCue: assertString(raw.normalizedCue, \"normalizedCue\"),\n recordedAt: assertIsoRecordedAt(assertString(raw.recordedAt, \"recordedAt\")),\n sessionKey: assertString(raw.sessionKey, \"sessionKey\"),\n nodeRefs: validateNodeRefs(raw.nodeRefs),\n sourceMemoryIdsByNodeRef: validateSourceMemoryIdsByNodeRef(raw.sourceMemoryIdsByNodeRef),\n tags: optionalStringArray(raw.tags, \"tags\"),\n metadata: validateStringRecord(raw.metadata, \"metadata\"),\n };\n}\n\nexport async function recordCueAnchor(options: {\n memoryDir: string;\n abstractionNodeStoreDir?: string;\n cueAnchorStoreDir?: string;\n anchor: CueAnchor;\n}): Promise<string> {\n const abstractionNodeStoreDir = options.abstractionNodeStoreDir?.trim().length\n ? options.abstractionNodeStoreDir.trim()\n : path.join(options.memoryDir, \"state\", \"abstraction-nodes\");\n const rootDir = resolveCueAnchorStoreDir(abstractionNodeStoreDir, options.cueAnchorStoreDir);\n const validated = validateCueAnchor(options.anchor);\n const boundedNodeRefs = boundNodeRefs(validated.nodeRefs);\n const bounded = validateCueAnchor({\n ...validated,\n nodeRefs: boundedNodeRefs,\n sourceMemoryIdsByNodeRef: boundSourceMemoryIdsByNodeRef(validated.sourceMemoryIdsByNodeRef, boundedNodeRefs),\n });\n const anchorDir = path.join(rootDir, bounded.anchorType);\n const filePath = path.join(anchorDir, `${bounded.anchorId}.json`);\n await mkdir(anchorDir, { recursive: true });\n await writeFile(filePath, JSON.stringify(bounded, null, 2), \"utf8\");\n return filePath;\n}\n\nfunction mergeSortedValues(existing: string[] | undefined, incoming: string[] | undefined): string[] {\n return mergeSortedUniqueStrings(existing, incoming);\n}\n\nfunction boundNodeRefs(nodeRefs: string[], liveNodes?: Map<string, AbstractionNode>): string[] {\n const uniqueRefs = mergeSortedUniqueStrings(nodeRefs);\n if (!liveNodes) return uniqueRefs.slice(0, 50);\n return uniqueRefs\n .filter((nodeRef) => liveNodes.has(nodeRef))\n .sort(\n (left, right) =>\n Date.parse(liveNodes.get(right)?.recordedAt ?? \"\") - Date.parse(liveNodes.get(left)?.recordedAt ?? \"\") ||\n compareDeterministicStrings(left, right)\n )\n .slice(0, 50);\n}\n\nasync function readLiveNodes(nodesDir: string): Promise<Map<string, AbstractionNode> | undefined> {\n const liveNodes = new Map<string, AbstractionNode>();\n let nodeFiles: string[];\n try {\n nodeFiles = await listJsonFilesStrict(nodesDir);\n } catch (error) {\n if (isNotFoundError(error)) return undefined;\n throw error;\n }\n for (const filePath of nodeFiles) {\n const node = validateAbstractionNode(await readJsonFile(filePath));\n const previous = liveNodes.get(node.nodeId);\n if (\n !previous ||\n Date.parse(previous.recordedAt) < Date.parse(node.recordedAt) ||\n (Date.parse(previous.recordedAt) === Date.parse(node.recordedAt) &&\n compareDeterministicStrings(previous.sessionKey, node.sessionKey) < 0)\n ) {\n liveNodes.set(node.nodeId, node);\n }\n }\n return liveNodes;\n}\n\nexport async function upsertCueAnchors(options: {\n memoryDir: string;\n abstractionNodeStoreDir?: string;\n cueAnchorStoreDir?: string;\n anchors: CueAnchor[];\n}): Promise<string[]> {\n const abstractionNodeStoreDir = resolveAbstractionNodeStoreDir(options.memoryDir, options.abstractionNodeStoreDir);\n const incomingAnchors = options.anchors.map(validateCueAnchor);\n if (incomingAnchors.length === 0) return [];\n\n return withJsonStoreMutationLock(abstractionNodeStoreDir, async () => {\n const rootDir = resolveCueAnchorStoreDir(abstractionNodeStoreDir, options.cueAnchorStoreDir);\n const liveNodes = await readLiveNodes(path.join(abstractionNodeStoreDir, \"nodes\"));\n const incomingByKey = new Map<string, CueAnchor[]>();\n for (const anchor of incomingAnchors) {\n const key = `${anchor.anchorType}\\u0000${anchor.anchorId}`;\n const grouped = incomingByKey.get(key) ?? [];\n grouped.push(anchor);\n incomingByKey.set(key, grouped);\n }\n const filePaths: string[] = [];\n for (const key of [...incomingByKey.keys()].sort(compareDeterministicStrings)) {\n const grouped = incomingByKey.get(key) ?? [];\n grouped.sort(compareIncomingCueAnchors);\n const incoming = grouped.shift();\n if (!incoming) throw new Error(`cue anchor batch has no anchor: ${key}`);\n const filePath = path.join(rootDir, incoming.anchorType, `${incoming.anchorId}.json`);\n let existing: CueAnchor | undefined;\n try {\n existing = validateCueAnchor(await readJsonFile(filePath));\n } catch (error) {\n if (!isNotFoundError(error)) throw error;\n }\n let merged = mergeCueAnchors(existing, incoming, liveNodes);\n for (const next of grouped) merged = mergeCueAnchors(merged, next, liveNodes);\n await writeJsonFileAtomic(filePath, merged);\n filePaths.push(filePath);\n }\n return filePaths;\n });\n}\n\nfunction compareIncomingCueAnchors(left: CueAnchor, right: CueAnchor): number {\n const recordedAtComparison = Date.parse(left.recordedAt) - Date.parse(right.recordedAt);\n if (recordedAtComparison < 0) return -1;\n if (recordedAtComparison > 0) return 1;\n return compareDeterministicStrings(canonicalCueAnchorKey(left), canonicalCueAnchorKey(right));\n}\n\nfunction canonicalMetadata(metadata: Record<string, string> | undefined): Record<string, string> {\n return Object.fromEntries(\n Object.entries(metadata ?? {}).sort(([left], [right]) => compareDeterministicStrings(left, right))\n );\n}\n\nfunction canonicalCueAnchorKey(anchor: CueAnchor): string {\n return JSON.stringify({\n ...anchor,\n metadata: canonicalMetadata(anchor.metadata),\n });\n}\n\nfunction mergeCueAnchors(\n existing: CueAnchor | undefined,\n incoming: CueAnchor,\n liveNodes: Map<string, AbstractionNode> | undefined\n): CueAnchor {\n const incomingIsNewest = !existing || Date.parse(existing.recordedAt) <= Date.parse(incoming.recordedAt);\n const newest = incomingIsNewest ? incoming : existing;\n const older = incomingIsNewest ? existing : incoming;\n const mergedMetadata = canonicalMetadata({\n ...(older?.metadata ?? {}),\n ...(newest.metadata ?? {}),\n });\n const nodeRefs = boundNodeRefs(mergeSortedValues(existing?.nodeRefs, incoming.nodeRefs), liveNodes);\n return validateCueAnchor({\n ...newest,\n nodeRefs,\n sourceMemoryIdsByNodeRef: boundSourceMemoryIdsByNodeRef(\n mergeSourceMemoryIdsByNodeRef(existing?.sourceMemoryIdsByNodeRef, incoming.sourceMemoryIdsByNodeRef),\n nodeRefs,\n liveNodes\n ),\n tags: mergeSortedValues(existing?.tags, incoming.tags),\n metadata: mergedMetadata,\n });\n}\n\nexport async function upsertCueAnchor(options: {\n memoryDir: string;\n abstractionNodeStoreDir?: string;\n cueAnchorStoreDir?: string;\n anchor: CueAnchor;\n}): Promise<string> {\n const [filePath] = await upsertCueAnchors({ ...options, anchors: [options.anchor] });\n if (!filePath) throw new Error(\"cue anchor upsert did not write a file\");\n return filePath;\n}\n\nexport async function pruneOrphanCueAnchors(options: {\n memoryDir: string;\n abstractionNodeStoreDir?: string;\n cueAnchorStoreDir?: string;\n}): Promise<number> {\n const abstractionNodeStoreDir = resolveAbstractionNodeStoreDir(options.memoryDir, options.abstractionNodeStoreDir);\n return withJsonStoreMutationLock(abstractionNodeStoreDir, async () => {\n const cueAnchorStoreDir = resolveCueAnchorStoreDir(abstractionNodeStoreDir, options.cueAnchorStoreDir);\n const liveNodes = (await readLiveNodes(path.join(abstractionNodeStoreDir, \"nodes\"))) ?? new Map();\n let removed = 0;\n const anchorFiles = await listJsonFilesStrict(cueAnchorStoreDir, {\n allowMissingDirectory: true,\n });\n for (const filePath of anchorFiles) {\n let anchor: CueAnchor;\n try {\n anchor = validateCueAnchor(await readJsonFile(filePath));\n } catch {\n continue;\n }\n const nodeRefs = boundNodeRefs(anchor.nodeRefs, liveNodes);\n const sourceMemoryIdsByNodeRef = boundSourceMemoryIdsByNodeRef(\n anchor.sourceMemoryIdsByNodeRef,\n nodeRefs,\n liveNodes\n );\n if (nodeRefs.length === 0) {\n try {\n await unlink(filePath);\n removed++;\n } catch (error) {\n if (!isNotFoundError(error)) throw error;\n }\n continue;\n }\n if (\n nodeRefs.length !== anchor.nodeRefs.length ||\n nodeRefs.some((nodeRef, index) => nodeRef !== anchor.nodeRefs[index]) ||\n JSON.stringify(sourceMemoryIdsByNodeRef) !== JSON.stringify(anchor.sourceMemoryIdsByNodeRef)\n ) {\n await writeJsonFileAtomic(filePath, validateCueAnchor({ ...anchor, nodeRefs, sourceMemoryIdsByNodeRef }));\n }\n }\n return removed;\n });\n}\n\nexport async function getCueAnchorStoreStatus(options: {\n memoryDir: string;\n abstractionNodeStoreDir?: string;\n cueAnchorStoreDir?: string;\n enabled: boolean;\n anchorsEnabled: boolean;\n}): Promise<CueAnchorStoreStatus> {\n const abstractionNodeStoreDir = options.abstractionNodeStoreDir?.trim().length\n ? options.abstractionNodeStoreDir.trim()\n : path.join(options.memoryDir, \"state\", \"abstraction-nodes\");\n const rootDir = resolveCueAnchorStoreDir(abstractionNodeStoreDir, options.cueAnchorStoreDir);\n const files = await listJsonFilesStrict(rootDir, { allowMissingDirectory: true });\n const anchors: CueAnchor[] = [];\n const invalidAnchors: Array<{ path: string; error: string }> = [];\n\n for (const filePath of files) {\n try {\n anchors.push(validateCueAnchor(await readJsonFile(filePath)));\n } catch (error) {\n invalidAnchors.push({\n path: filePath,\n error: error instanceof Error ? error.message : String(error),\n });\n }\n }\n\n anchors.sort(\n (a, b) => Date.parse(b.recordedAt) - Date.parse(a.recordedAt) || compareDeterministicStrings(a.anchorId, b.anchorId)\n );\n\n const byType: Partial<Record<CueAnchorType, number>> = {};\n let totalNodeRefs = 0;\n for (const anchor of anchors) {\n byType[anchor.anchorType] = (byType[anchor.anchorType] ?? 0) + 1;\n totalNodeRefs += anchor.nodeRefs.length;\n }\n\n return {\n enabled: options.enabled,\n anchorsEnabled: options.anchorsEnabled,\n rootDir,\n anchors: {\n total: files.length,\n valid: anchors.length,\n invalid: invalidAnchors.length,\n byType,\n totalNodeRefs,\n latestAnchorId: anchors[0]?.anchorId,\n latestRecordedAt: anchors[0]?.recordedAt,\n latestSessionKey: anchors[0]?.sessionKey,\n },\n latestAnchor: anchors[0],\n invalidAnchors,\n };\n}\n"],"mappings":"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","names":[]}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|