@remnic/core 9.42.0 → 9.44.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/access-admin-ops-surface.d.ts +2 -2
- package/dist/access-admin-ops-surface.js +40 -40
- package/dist/access-authorization-probe.d.ts +2 -2
- package/dist/access-authorization-probe.js +41 -41
- package/dist/access-boundary.d.ts +2 -2
- package/dist/access-boundary.js +40 -40
- package/dist/access-cli.js +101 -99
- package/dist/access-cli.js.map +1 -1
- package/dist/access-extraction-force-flush.d.ts +2 -2
- package/dist/access-extraction-force-flush.js +40 -40
- package/dist/access-http-lcm-compaction.d.ts +2 -2
- package/dist/access-http-lifecycle-flush.d.ts +2 -2
- package/dist/access-http-query.d.ts +8 -0
- package/dist/access-http-query.js +179 -0
- package/dist/access-http.d.ts +2 -2
- package/dist/access-http.js +48 -47
- package/dist/access-identity-continuity-surface.d.ts +1 -1
- package/dist/access-identity-continuity-surface.js +40 -40
- package/dist/access-lcm-surface.d.ts +2 -2
- package/dist/access-lcm-surface.js +40 -40
- package/dist/access-mcp.d.ts +2 -2
- package/dist/access-mcp.js +44 -44
- package/dist/access-namespace-preflight.js +40 -40
- package/dist/access-observe-write-surface.d.ts +2 -2
- package/dist/access-observe-write-surface.js +40 -40
- package/dist/access-operations-batch.js +42 -42
- package/dist/access-operations.d.ts +2 -2
- package/dist/access-operations.js +43 -43
- package/dist/access-recall-concurrency.d.ts +2 -2
- package/dist/access-recall-concurrency.js +40 -40
- package/dist/access-recall-response.d.ts +2 -2
- package/dist/access-recall-response.js +40 -40
- package/dist/access-recall-surface.d.ts +2 -2
- package/dist/access-recall-surface.js +40 -40
- package/dist/{access-service-D1BkxwSf.d.ts → access-service-BCZJbX0f.d.ts} +12 -2
- package/dist/access-service-helpers.d.ts +2 -2
- package/dist/access-service.d.ts +2 -2
- package/dist/access-service.js +40 -40
- package/dist/access-surface-catalog.d.ts +2 -2
- package/dist/access-surface-catalog.js +5 -0
- package/dist/access-surface-catalog.js.map +1 -1
- package/dist/{auto-sync-UPTUVE4X.js → auto-sync-5OE5QOZB.js} +3 -3
- package/dist/bootstrap.d.ts +1 -1
- package/dist/briefing.js +8 -8
- package/dist/buffer.js +6 -6
- package/dist/causal-behavior.js +2 -2
- package/dist/causal-chain.js +2 -2
- package/dist/causal-consolidation.js +12 -12
- 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-LEPOP46W.js → chunk-227UFSEQ.js} +4 -4
- package/dist/{chunk-BEQOZOYZ.js → chunk-2FTRRQKZ.js} +5 -5
- package/dist/{chunk-CMENJQ6I.js → chunk-2QR2RRH6.js} +2 -2
- package/dist/{chunk-3C2TGBDB.js → chunk-35IC3EVP.js} +2 -2
- package/dist/{chunk-L2DPF4DF.js → chunk-3SHB4YAW.js} +4 -4
- package/dist/{chunk-UV72DEZD.js → chunk-4B77XSG5.js} +5 -5
- package/dist/{chunk-GUQYMOPU.js → chunk-4LMA77JH.js} +5 -5
- package/dist/{chunk-AX2J2LC4.js → chunk-5ZE7QHTK.js} +2 -2
- package/dist/{chunk-YFHMW37V.js → chunk-6CZPDBJS.js} +5 -5
- package/dist/chunk-6ZYQ36IB.js +30 -0
- package/dist/chunk-6ZYQ36IB.js.map +1 -0
- package/dist/{chunk-QY66HJ4X.js → chunk-7PLHD7EO.js} +5 -5
- package/dist/{chunk-NRV4Y3PM.js → chunk-CAGPP5NB.js} +1 -1
- package/dist/{chunk-5TOV3D6U.js → chunk-CH2WTP6R.js} +6 -6
- package/dist/{chunk-AXUU7SG3.js → chunk-E6JYVPBK.js} +2 -2
- package/dist/{chunk-NF3U3MPG.js → chunk-ECK75GDJ.js} +2 -2
- package/dist/{chunk-NHRNYJPJ.js → chunk-EMC5GT4H.js} +7 -7
- package/dist/{chunk-Q4XL7LJW.js → chunk-EUVPB5TA.js} +55 -37
- package/dist/chunk-EUVPB5TA.js.map +1 -0
- package/dist/{chunk-PWKZV4A3.js → chunk-G24HJJ67.js} +4 -4
- package/dist/{chunk-OEXKYYVH.js → chunk-HGFILS2Q.js} +6 -6
- package/dist/{chunk-IOQFPVGY.js → chunk-HLPD7B7P.js} +2 -2
- package/dist/{chunk-CWPDM66T.js → chunk-HXTUA7QM.js} +28 -28
- package/dist/chunk-HXTUA7QM.js.map +1 -0
- package/dist/{chunk-WGCTFGLW.js → chunk-I22U5YYD.js} +3 -3
- package/dist/{chunk-MSXWUXFE.js → chunk-IADUAH35.js} +2 -2
- package/dist/{chunk-FHEJ22B7.js → chunk-IXFI6E3Q.js} +3 -3
- package/dist/{chunk-6I2C3EOH.js → chunk-J43XN7N3.js} +90 -88
- package/dist/chunk-J43XN7N3.js.map +1 -0
- package/dist/{chunk-F2KMAFEB.js → chunk-JDDTNK5P.js} +2 -2
- package/dist/{chunk-UGCUVLOL.js → chunk-MUKLQDJP.js} +50 -50
- package/dist/{chunk-5N26WBPQ.js → chunk-MYFFOPO2.js} +5 -5
- package/dist/{chunk-Q53RLEW7.js → chunk-N7LPS4Z3.js} +2 -2
- package/dist/{chunk-UZQCNOPS.js → chunk-NVRYW264.js} +12 -12
- package/dist/{chunk-MVW234LO.js → chunk-O4BADU6R.js} +2 -2
- package/dist/{chunk-ZERSIPFC.js → chunk-OHLNFI6Z.js} +17 -17
- package/dist/{chunk-KXGN6G2Y.js → chunk-OPVOUBHT.js} +2 -2
- package/dist/{chunk-JDXDA5OO.js → chunk-OZL7KB6B.js} +2 -2
- package/dist/{chunk-XRWVXPEM.js → chunk-PJUHQC4T.js} +2 -2
- package/dist/{chunk-CQ5MR2HQ.js → chunk-PLQCPMJA.js} +14 -14
- package/dist/{chunk-MU7ZHSZE.js → chunk-PO5LSKQO.js} +2 -2
- package/dist/{chunk-LRGSLV7M.js → chunk-PYHOAXTI.js} +4 -4
- package/dist/{chunk-ONHRRJZM.js → chunk-QJAQNXWI.js} +6 -6
- package/dist/{chunk-UQVGDEAJ.js → chunk-TRBIJS2T.js} +2 -2
- package/dist/{chunk-6GIMMNVK.js → chunk-U5SX74DV.js} +4 -4
- package/dist/{chunk-KPJQTSRJ.js → chunk-UUQLB2HJ.js} +2 -2
- package/dist/{chunk-JYIFGGEM.js → chunk-UZGJFIIG.js} +2 -2
- package/dist/{chunk-HNZKVLAN.js → chunk-W6ROK2KU.js} +2 -2
- package/dist/{chunk-7VIB7PAE.js → chunk-WMHO3WLC.js} +2 -2
- package/dist/{chunk-OYFDEJZB.js → chunk-WUDWRUGK.js} +2 -2
- package/dist/{chunk-4VXGRIH6.js → chunk-WUNIWKY4.js} +5 -5
- package/dist/{chunk-BI6RE2ZS.js → chunk-WX6KOVVK.js} +2 -2
- package/dist/chunk-YUOKZ3LJ.js +24 -0
- package/dist/chunk-YUOKZ3LJ.js.map +1 -0
- package/dist/{cli-IUhV-lmk.d.ts → cli-U30A3jyx.d.ts} +2 -2
- package/dist/cli.d.ts +3 -3
- package/dist/cli.js +70 -69
- package/dist/compounding/engine.js +8 -8
- package/dist/connectors/codex-materialize-runner.js +8 -8
- package/dist/connectors/index.js +8 -8
- package/dist/convergence-refresh.d.ts +24 -0
- package/dist/convergence-refresh.js +74 -0
- package/dist/convergence-refresh.js.map +1 -0
- package/dist/conversation-index/backend.js +2 -2
- package/dist/corpus-watermark.js +20 -20
- package/dist/entity-retrieval.js +8 -8
- package/dist/explicit-capture.d.ts +1 -1
- package/dist/explicit-capture.js +3 -3
- package/dist/extraction.js +14 -14
- package/dist/{graph-edge-decay-Z6ENALU2.js → graph-edge-decay-GF3ZSGSP.js} +4 -4
- package/dist/graph-edge-decay-GF3ZSGSP.js.map +1 -0
- package/dist/graph-snapshot.js +3 -3
- package/dist/graph.js +2 -2
- package/dist/index.d.ts +4 -4
- package/dist/index.js +161 -159
- package/dist/lcm/index.js +3 -3
- package/dist/maintenance/memory-governance.js +9 -9
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +8 -8
- package/dist/maintenance/rebuild-memory-projection.js +10 -10
- package/dist/mcp-memory-inspector-app.d.ts +2 -2
- package/dist/namespaces/migrate.js +19 -19
- package/dist/namespaces/search.js +10 -10
- package/dist/namespaces/storage.js +8 -8
- package/dist/offline-sync-impression-drain.js +4 -4
- package/dist/operator-doctor-corpus.js +21 -21
- package/dist/operator-toolkit.js +30 -30
- package/dist/orchestration/maintenance.js +15 -15
- package/dist/{orchestrator-fYTncnLy.d.ts → orchestrator-DUxbhhqO.d.ts} +1 -1
- package/dist/orchestrator.d.ts +1 -1
- package/dist/orchestrator.js +102 -100
- package/dist/qmd.js +4 -4
- package/dist/reconcile/cursor.d.ts +21 -0
- package/dist/reconcile/cursor.js +104 -0
- package/dist/reconcile/cursor.js.map +1 -0
- package/dist/resume-bundles.js +1 -1
- package/dist/search/factory.js +9 -9
- package/dist/search/index.js +17 -17
- package/dist/semantic-consolidation.js +10 -10
- package/dist/semantic-rule-promotion.js +8 -8
- package/dist/semantic-rule-verifier.js +9 -9
- package/dist/source-agent-qualifier.js +13 -13
- package/dist/storage.js +7 -7
- package/dist/transfer/import-sqlite.js +2 -2
- package/dist/verified-recall.js +9 -9
- package/package.json +12 -2
- package/src/access-http-query.ts +25 -0
- package/src/access-http.test.ts +136 -0
- package/src/access-http.ts +26 -26
- package/src/access-service-offline-file-content.test.ts +40 -0
- package/src/access-service.ts +34 -0
- package/src/access-surface-catalog.ts +5 -0
- package/src/convergence-refresh.ts +28 -0
- package/src/orchestrator-convergence-refresh.test.ts +114 -0
- package/src/orchestrator.ts +5 -4
- package/src/reconcile/cursor.test.ts +123 -0
- package/src/reconcile/cursor.ts +130 -0
- package/dist/chunk-6I2C3EOH.js.map +0 -1
- package/dist/chunk-CWPDM66T.js.map +0 -1
- package/dist/chunk-Q4XL7LJW.js.map +0 -1
- /package/dist/{graph-edge-decay-Z6ENALU2.js.map → access-http-query.js.map} +0 -0
- /package/dist/{auto-sync-UPTUVE4X.js.map → auto-sync-5OE5QOZB.js.map} +0 -0
- /package/dist/{chunk-LEPOP46W.js.map → chunk-227UFSEQ.js.map} +0 -0
- /package/dist/{chunk-BEQOZOYZ.js.map → chunk-2FTRRQKZ.js.map} +0 -0
- /package/dist/{chunk-CMENJQ6I.js.map → chunk-2QR2RRH6.js.map} +0 -0
- /package/dist/{chunk-3C2TGBDB.js.map → chunk-35IC3EVP.js.map} +0 -0
- /package/dist/{chunk-L2DPF4DF.js.map → chunk-3SHB4YAW.js.map} +0 -0
- /package/dist/{chunk-UV72DEZD.js.map → chunk-4B77XSG5.js.map} +0 -0
- /package/dist/{chunk-GUQYMOPU.js.map → chunk-4LMA77JH.js.map} +0 -0
- /package/dist/{chunk-AX2J2LC4.js.map → chunk-5ZE7QHTK.js.map} +0 -0
- /package/dist/{chunk-YFHMW37V.js.map → chunk-6CZPDBJS.js.map} +0 -0
- /package/dist/{chunk-QY66HJ4X.js.map → chunk-7PLHD7EO.js.map} +0 -0
- /package/dist/{chunk-NRV4Y3PM.js.map → chunk-CAGPP5NB.js.map} +0 -0
- /package/dist/{chunk-5TOV3D6U.js.map → chunk-CH2WTP6R.js.map} +0 -0
- /package/dist/{chunk-AXUU7SG3.js.map → chunk-E6JYVPBK.js.map} +0 -0
- /package/dist/{chunk-NF3U3MPG.js.map → chunk-ECK75GDJ.js.map} +0 -0
- /package/dist/{chunk-NHRNYJPJ.js.map → chunk-EMC5GT4H.js.map} +0 -0
- /package/dist/{chunk-PWKZV4A3.js.map → chunk-G24HJJ67.js.map} +0 -0
- /package/dist/{chunk-OEXKYYVH.js.map → chunk-HGFILS2Q.js.map} +0 -0
- /package/dist/{chunk-IOQFPVGY.js.map → chunk-HLPD7B7P.js.map} +0 -0
- /package/dist/{chunk-WGCTFGLW.js.map → chunk-I22U5YYD.js.map} +0 -0
- /package/dist/{chunk-MSXWUXFE.js.map → chunk-IADUAH35.js.map} +0 -0
- /package/dist/{chunk-FHEJ22B7.js.map → chunk-IXFI6E3Q.js.map} +0 -0
- /package/dist/{chunk-F2KMAFEB.js.map → chunk-JDDTNK5P.js.map} +0 -0
- /package/dist/{chunk-UGCUVLOL.js.map → chunk-MUKLQDJP.js.map} +0 -0
- /package/dist/{chunk-5N26WBPQ.js.map → chunk-MYFFOPO2.js.map} +0 -0
- /package/dist/{chunk-Q53RLEW7.js.map → chunk-N7LPS4Z3.js.map} +0 -0
- /package/dist/{chunk-UZQCNOPS.js.map → chunk-NVRYW264.js.map} +0 -0
- /package/dist/{chunk-MVW234LO.js.map → chunk-O4BADU6R.js.map} +0 -0
- /package/dist/{chunk-ZERSIPFC.js.map → chunk-OHLNFI6Z.js.map} +0 -0
- /package/dist/{chunk-KXGN6G2Y.js.map → chunk-OPVOUBHT.js.map} +0 -0
- /package/dist/{chunk-JDXDA5OO.js.map → chunk-OZL7KB6B.js.map} +0 -0
- /package/dist/{chunk-XRWVXPEM.js.map → chunk-PJUHQC4T.js.map} +0 -0
- /package/dist/{chunk-CQ5MR2HQ.js.map → chunk-PLQCPMJA.js.map} +0 -0
- /package/dist/{chunk-MU7ZHSZE.js.map → chunk-PO5LSKQO.js.map} +0 -0
- /package/dist/{chunk-LRGSLV7M.js.map → chunk-PYHOAXTI.js.map} +0 -0
- /package/dist/{chunk-ONHRRJZM.js.map → chunk-QJAQNXWI.js.map} +0 -0
- /package/dist/{chunk-UQVGDEAJ.js.map → chunk-TRBIJS2T.js.map} +0 -0
- /package/dist/{chunk-6GIMMNVK.js.map → chunk-U5SX74DV.js.map} +0 -0
- /package/dist/{chunk-KPJQTSRJ.js.map → chunk-UUQLB2HJ.js.map} +0 -0
- /package/dist/{chunk-JYIFGGEM.js.map → chunk-UZGJFIIG.js.map} +0 -0
- /package/dist/{chunk-HNZKVLAN.js.map → chunk-W6ROK2KU.js.map} +0 -0
- /package/dist/{chunk-7VIB7PAE.js.map → chunk-WMHO3WLC.js.map} +0 -0
- /package/dist/{chunk-OYFDEJZB.js.map → chunk-WUDWRUGK.js.map} +0 -0
- /package/dist/{chunk-4VXGRIH6.js.map → chunk-WUNIWKY4.js.map} +0 -0
- /package/dist/{chunk-BI6RE2ZS.js.map → chunk-WX6KOVVK.js.map} +0 -0
package/dist/search/factory.js
CHANGED
|
@@ -2,24 +2,24 @@ import {
|
|
|
2
2
|
createConversationIndexRuntime,
|
|
3
3
|
createConversationSearchBackend,
|
|
4
4
|
createSearchBackend
|
|
5
|
-
} from "../chunk-
|
|
6
|
-
import "../chunk-ES36HTSC.js";
|
|
7
|
-
import "../chunk-3Y224NYC.js";
|
|
8
|
-
import "../chunk-H24WNPA2.js";
|
|
5
|
+
} from "../chunk-NVRYW264.js";
|
|
9
6
|
import "../chunk-BLAKS3CP.js";
|
|
10
7
|
import "../chunk-S2BBISHU.js";
|
|
8
|
+
import "../chunk-CYEPCZN5.js";
|
|
9
|
+
import "../chunk-ES36HTSC.js";
|
|
10
|
+
import "../chunk-3Y224NYC.js";
|
|
11
11
|
import "../chunk-W7IGLX4G.js";
|
|
12
|
+
import "../chunk-H24WNPA2.js";
|
|
12
13
|
import "../chunk-CINZGPSJ.js";
|
|
13
|
-
import "../chunk-
|
|
14
|
-
import "../chunk-
|
|
14
|
+
import "../chunk-227UFSEQ.js";
|
|
15
|
+
import "../chunk-ET356KSB.js";
|
|
15
16
|
import "../chunk-72A4L5JJ.js";
|
|
16
17
|
import "../chunk-A7Q43EUZ.js";
|
|
17
|
-
import "../chunk-ET356KSB.js";
|
|
18
18
|
import "../chunk-3ONXXHQO.js";
|
|
19
|
-
import "../chunk-
|
|
19
|
+
import "../chunk-QJAQNXWI.js";
|
|
20
20
|
import "../chunk-YV32N67O.js";
|
|
21
|
-
import "../chunk-IUM3VSHI.js";
|
|
22
21
|
import "../chunk-64UDOIMI.js";
|
|
22
|
+
import "../chunk-IUM3VSHI.js";
|
|
23
23
|
import "../chunk-O75CRYGF.js";
|
|
24
24
|
import "../chunk-GCASGYIO.js";
|
|
25
25
|
import "../chunk-XMMESCPD.js";
|
package/dist/search/index.js
CHANGED
|
@@ -2,38 +2,38 @@ import {
|
|
|
2
2
|
createConversationIndexRuntime,
|
|
3
3
|
createConversationSearchBackend,
|
|
4
4
|
createSearchBackend
|
|
5
|
-
} from "../chunk-
|
|
6
|
-
import {
|
|
7
|
-
OramaBackend
|
|
8
|
-
} from "../chunk-ES36HTSC.js";
|
|
9
|
-
import {
|
|
10
|
-
RemoteSearchBackend
|
|
11
|
-
} from "../chunk-3Y224NYC.js";
|
|
12
|
-
import {
|
|
13
|
-
EmbedHelper
|
|
14
|
-
} from "../chunk-H24WNPA2.js";
|
|
5
|
+
} from "../chunk-NVRYW264.js";
|
|
15
6
|
import {
|
|
16
7
|
LanceDbBackend
|
|
17
8
|
} from "../chunk-BLAKS3CP.js";
|
|
18
9
|
import {
|
|
19
10
|
MeilisearchBackend
|
|
20
11
|
} from "../chunk-S2BBISHU.js";
|
|
12
|
+
import {
|
|
13
|
+
NoopSearchBackend
|
|
14
|
+
} from "../chunk-CYEPCZN5.js";
|
|
15
|
+
import {
|
|
16
|
+
OramaBackend
|
|
17
|
+
} from "../chunk-ES36HTSC.js";
|
|
18
|
+
import {
|
|
19
|
+
RemoteSearchBackend
|
|
20
|
+
} from "../chunk-3Y224NYC.js";
|
|
21
21
|
import {
|
|
22
22
|
scanMemoryDir
|
|
23
23
|
} from "../chunk-W7IGLX4G.js";
|
|
24
|
-
import "../chunk-CINZGPSJ.js";
|
|
25
24
|
import {
|
|
26
|
-
|
|
27
|
-
} from "../chunk-
|
|
28
|
-
import "../chunk-
|
|
25
|
+
EmbedHelper
|
|
26
|
+
} from "../chunk-H24WNPA2.js";
|
|
27
|
+
import "../chunk-CINZGPSJ.js";
|
|
28
|
+
import "../chunk-227UFSEQ.js";
|
|
29
|
+
import "../chunk-ET356KSB.js";
|
|
29
30
|
import "../chunk-72A4L5JJ.js";
|
|
30
31
|
import "../chunk-A7Q43EUZ.js";
|
|
31
|
-
import "../chunk-ET356KSB.js";
|
|
32
32
|
import "../chunk-3ONXXHQO.js";
|
|
33
|
-
import "../chunk-
|
|
33
|
+
import "../chunk-QJAQNXWI.js";
|
|
34
34
|
import "../chunk-YV32N67O.js";
|
|
35
|
-
import "../chunk-IUM3VSHI.js";
|
|
36
35
|
import "../chunk-64UDOIMI.js";
|
|
36
|
+
import "../chunk-IUM3VSHI.js";
|
|
37
37
|
import "../chunk-O75CRYGF.js";
|
|
38
38
|
import "../chunk-GCASGYIO.js";
|
|
39
39
|
import "../chunk-XMMESCPD.js";
|
|
@@ -7,28 +7,29 @@ import {
|
|
|
7
7
|
materializeAfterSemanticConsolidation,
|
|
8
8
|
parseConsolidationResponse,
|
|
9
9
|
parseOperatorAwareConsolidationResponse
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-7PLHD7EO.js";
|
|
11
11
|
import {
|
|
12
12
|
resolveExtensionsRoot
|
|
13
13
|
} from "./chunk-JLNBQWZ2.js";
|
|
14
|
-
import "./chunk-
|
|
14
|
+
import "./chunk-UUQLB2HJ.js";
|
|
15
15
|
import "./chunk-KSXJOC4F.js";
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
16
|
+
import "./chunk-ZBJMUXZH.js";
|
|
17
|
+
import "./chunk-OHLNFI6Z.js";
|
|
18
18
|
import "./chunk-ENTCVTQR.js";
|
|
19
|
+
import "./chunk-UHVXE24Y.js";
|
|
19
20
|
import "./chunk-WIPEXG6R.js";
|
|
20
21
|
import "./chunk-J6A3CX5N.js";
|
|
21
22
|
import "./chunk-GSL47NPM.js";
|
|
22
|
-
import "./chunk-
|
|
23
|
+
import "./chunk-WUNIWKY4.js";
|
|
23
24
|
import "./chunk-EGGE52UU.js";
|
|
24
25
|
import "./chunk-ZA53AZND.js";
|
|
25
|
-
import "./chunk-7RJUVTVF.js";
|
|
26
|
-
import "./chunk-SCU65EZI.js";
|
|
27
26
|
import "./chunk-WRJVB3C2.js";
|
|
28
27
|
import "./chunk-GCASGYIO.js";
|
|
28
|
+
import "./chunk-7RJUVTVF.js";
|
|
29
|
+
import "./chunk-SCU65EZI.js";
|
|
29
30
|
import "./chunk-DM2T26WE.js";
|
|
30
31
|
import "./chunk-LDXUBPMO.js";
|
|
31
|
-
import "./chunk-
|
|
32
|
+
import "./chunk-2FTRRQKZ.js";
|
|
32
33
|
import "./chunk-CGASUJVP.js";
|
|
33
34
|
import "./chunk-R3DJVOSM.js";
|
|
34
35
|
import "./chunk-BT7NVCML.js";
|
|
@@ -37,6 +38,7 @@ import "./chunk-RL6NEVXT.js";
|
|
|
37
38
|
import "./chunk-JYIJNNN3.js";
|
|
38
39
|
import "./chunk-AAD2ZS6P.js";
|
|
39
40
|
import "./chunk-YXZG5TVN.js";
|
|
41
|
+
import "./chunk-W5H6ZRPT.js";
|
|
40
42
|
import {
|
|
41
43
|
CONSOLIDATION_OPERATORS,
|
|
42
44
|
isConsolidationOperator,
|
|
@@ -50,7 +52,6 @@ import "./chunk-4J7G5SY4.js";
|
|
|
50
52
|
import "./chunk-DNHVPZOD.js";
|
|
51
53
|
import "./chunk-6CIAGZ6X.js";
|
|
52
54
|
import "./chunk-FFAZ2XFU.js";
|
|
53
|
-
import "./chunk-W5H6ZRPT.js";
|
|
54
55
|
import "./chunk-XMMESCPD.js";
|
|
55
56
|
import "./chunk-42JKGUFJ.js";
|
|
56
57
|
import "./chunk-C23BYTJV.js";
|
|
@@ -67,7 +68,6 @@ import "./chunk-EYIEWJNI.js";
|
|
|
67
68
|
import "./chunk-JUC24CTX.js";
|
|
68
69
|
import "./chunk-6MKAMLQL.js";
|
|
69
70
|
import "./chunk-JAKIDQB2.js";
|
|
70
|
-
import "./chunk-ZBJMUXZH.js";
|
|
71
71
|
import "./chunk-BJMBJZ2Y.js";
|
|
72
72
|
import "./chunk-UKJAGEXH.js";
|
|
73
73
|
import "./chunk-FP2373TW.js";
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import {
|
|
2
2
|
promoteSemanticRuleFromMemory,
|
|
3
3
|
setSemanticRulePromotionTestHooks
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-UHVXE24Y.js";
|
|
4
|
+
} from "./chunk-O4BADU6R.js";
|
|
5
|
+
import "./chunk-OHLNFI6Z.js";
|
|
7
6
|
import "./chunk-ENTCVTQR.js";
|
|
7
|
+
import "./chunk-UHVXE24Y.js";
|
|
8
8
|
import "./chunk-WIPEXG6R.js";
|
|
9
9
|
import "./chunk-J6A3CX5N.js";
|
|
10
10
|
import "./chunk-GSL47NPM.js";
|
|
11
|
-
import "./chunk-
|
|
11
|
+
import "./chunk-WUNIWKY4.js";
|
|
12
12
|
import "./chunk-EGGE52UU.js";
|
|
13
13
|
import "./chunk-ZA53AZND.js";
|
|
14
|
-
import "./chunk-7RJUVTVF.js";
|
|
15
|
-
import "./chunk-SCU65EZI.js";
|
|
16
14
|
import "./chunk-WRJVB3C2.js";
|
|
17
15
|
import "./chunk-GCASGYIO.js";
|
|
16
|
+
import "./chunk-7RJUVTVF.js";
|
|
17
|
+
import "./chunk-SCU65EZI.js";
|
|
18
18
|
import "./chunk-DM2T26WE.js";
|
|
19
19
|
import "./chunk-LDXUBPMO.js";
|
|
20
|
-
import "./chunk-
|
|
20
|
+
import "./chunk-2FTRRQKZ.js";
|
|
21
21
|
import "./chunk-CGASUJVP.js";
|
|
22
22
|
import "./chunk-R3DJVOSM.js";
|
|
23
23
|
import "./chunk-BT7NVCML.js";
|
|
@@ -26,6 +26,7 @@ import "./chunk-RL6NEVXT.js";
|
|
|
26
26
|
import "./chunk-JYIJNNN3.js";
|
|
27
27
|
import "./chunk-AAD2ZS6P.js";
|
|
28
28
|
import "./chunk-YXZG5TVN.js";
|
|
29
|
+
import "./chunk-W5H6ZRPT.js";
|
|
29
30
|
import "./chunk-G7D6GZ5J.js";
|
|
30
31
|
import "./chunk-DLVPUX7U.js";
|
|
31
32
|
import "./chunk-IJ7HK452.js";
|
|
@@ -34,7 +35,6 @@ import "./chunk-4J7G5SY4.js";
|
|
|
34
35
|
import "./chunk-DNHVPZOD.js";
|
|
35
36
|
import "./chunk-6CIAGZ6X.js";
|
|
36
37
|
import "./chunk-FFAZ2XFU.js";
|
|
37
|
-
import "./chunk-W5H6ZRPT.js";
|
|
38
38
|
import "./chunk-XMMESCPD.js";
|
|
39
39
|
import "./chunk-42JKGUFJ.js";
|
|
40
40
|
import "./chunk-C23BYTJV.js";
|
|
@@ -1,23 +1,24 @@
|
|
|
1
1
|
import {
|
|
2
2
|
compareVerifiedSemanticRuleResults,
|
|
3
3
|
searchVerifiedSemanticRules
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-CH2WTP6R.js";
|
|
5
|
+
import "./chunk-ZBJMUXZH.js";
|
|
6
|
+
import "./chunk-OHLNFI6Z.js";
|
|
7
7
|
import "./chunk-ENTCVTQR.js";
|
|
8
|
+
import "./chunk-UHVXE24Y.js";
|
|
8
9
|
import "./chunk-WIPEXG6R.js";
|
|
9
10
|
import "./chunk-J6A3CX5N.js";
|
|
10
11
|
import "./chunk-GSL47NPM.js";
|
|
11
|
-
import "./chunk-
|
|
12
|
+
import "./chunk-WUNIWKY4.js";
|
|
12
13
|
import "./chunk-EGGE52UU.js";
|
|
13
14
|
import "./chunk-ZA53AZND.js";
|
|
14
|
-
import "./chunk-7RJUVTVF.js";
|
|
15
|
-
import "./chunk-SCU65EZI.js";
|
|
16
15
|
import "./chunk-WRJVB3C2.js";
|
|
17
16
|
import "./chunk-GCASGYIO.js";
|
|
17
|
+
import "./chunk-7RJUVTVF.js";
|
|
18
|
+
import "./chunk-SCU65EZI.js";
|
|
18
19
|
import "./chunk-DM2T26WE.js";
|
|
19
20
|
import "./chunk-LDXUBPMO.js";
|
|
20
|
-
import "./chunk-
|
|
21
|
+
import "./chunk-2FTRRQKZ.js";
|
|
21
22
|
import "./chunk-CGASUJVP.js";
|
|
22
23
|
import "./chunk-R3DJVOSM.js";
|
|
23
24
|
import "./chunk-BT7NVCML.js";
|
|
@@ -26,6 +27,7 @@ import "./chunk-RL6NEVXT.js";
|
|
|
26
27
|
import "./chunk-JYIJNNN3.js";
|
|
27
28
|
import "./chunk-AAD2ZS6P.js";
|
|
28
29
|
import "./chunk-YXZG5TVN.js";
|
|
30
|
+
import "./chunk-W5H6ZRPT.js";
|
|
29
31
|
import "./chunk-G7D6GZ5J.js";
|
|
30
32
|
import "./chunk-DLVPUX7U.js";
|
|
31
33
|
import "./chunk-IJ7HK452.js";
|
|
@@ -34,7 +36,6 @@ import "./chunk-4J7G5SY4.js";
|
|
|
34
36
|
import "./chunk-DNHVPZOD.js";
|
|
35
37
|
import "./chunk-6CIAGZ6X.js";
|
|
36
38
|
import "./chunk-FFAZ2XFU.js";
|
|
37
|
-
import "./chunk-W5H6ZRPT.js";
|
|
38
39
|
import "./chunk-XMMESCPD.js";
|
|
39
40
|
import "./chunk-42JKGUFJ.js";
|
|
40
41
|
import "./chunk-C23BYTJV.js";
|
|
@@ -51,7 +52,6 @@ import "./chunk-EYIEWJNI.js";
|
|
|
51
52
|
import "./chunk-JUC24CTX.js";
|
|
52
53
|
import "./chunk-6MKAMLQL.js";
|
|
53
54
|
import "./chunk-JAKIDQB2.js";
|
|
54
|
-
import "./chunk-ZBJMUXZH.js";
|
|
55
55
|
import "./chunk-BJMBJZ2Y.js";
|
|
56
56
|
import "./chunk-UKJAGEXH.js";
|
|
57
57
|
import "./chunk-FP2373TW.js";
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
headerConnector,
|
|
4
4
|
renderExtractionConversation,
|
|
5
5
|
resolveSourceConnector
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-5ZE7QHTK.js";
|
|
7
7
|
import "./chunk-YIAA2X3D.js";
|
|
8
8
|
import "./chunk-WOCNN776.js";
|
|
9
9
|
import "./chunk-P2BM76KT.js";
|
|
@@ -11,33 +11,34 @@ import "./chunk-VEWZZM3H.js";
|
|
|
11
11
|
import "./chunk-T2TTP3KU.js";
|
|
12
12
|
import "./chunk-7TWUCYER.js";
|
|
13
13
|
import "./chunk-EMDLM3LW.js";
|
|
14
|
-
import "./chunk-
|
|
14
|
+
import "./chunk-ECK75GDJ.js";
|
|
15
15
|
import "./chunk-BUE5E2HL.js";
|
|
16
16
|
import "./chunk-PD6O7AXF.js";
|
|
17
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-QJAQNXWI.js";
|
|
18
18
|
import "./chunk-YV32N67O.js";
|
|
19
|
-
import "./chunk-IUM3VSHI.js";
|
|
20
19
|
import "./chunk-64UDOIMI.js";
|
|
20
|
+
import "./chunk-IUM3VSHI.js";
|
|
21
21
|
import "./chunk-O75CRYGF.js";
|
|
22
22
|
import "./chunk-OD4FM2U7.js";
|
|
23
|
-
import "./chunk-
|
|
23
|
+
import "./chunk-UUQLB2HJ.js";
|
|
24
24
|
import "./chunk-KSXJOC4F.js";
|
|
25
|
-
import "./chunk-
|
|
26
|
-
import "./chunk-
|
|
25
|
+
import "./chunk-TBBDFYXW.js";
|
|
26
|
+
import "./chunk-OHLNFI6Z.js";
|
|
27
27
|
import "./chunk-ENTCVTQR.js";
|
|
28
|
+
import "./chunk-UHVXE24Y.js";
|
|
28
29
|
import "./chunk-WIPEXG6R.js";
|
|
29
30
|
import "./chunk-J6A3CX5N.js";
|
|
30
31
|
import "./chunk-GSL47NPM.js";
|
|
31
|
-
import "./chunk-
|
|
32
|
+
import "./chunk-WUNIWKY4.js";
|
|
32
33
|
import "./chunk-EGGE52UU.js";
|
|
33
34
|
import "./chunk-ZA53AZND.js";
|
|
34
|
-
import "./chunk-7RJUVTVF.js";
|
|
35
|
-
import "./chunk-SCU65EZI.js";
|
|
36
35
|
import "./chunk-WRJVB3C2.js";
|
|
37
36
|
import "./chunk-GCASGYIO.js";
|
|
37
|
+
import "./chunk-7RJUVTVF.js";
|
|
38
|
+
import "./chunk-SCU65EZI.js";
|
|
38
39
|
import "./chunk-DM2T26WE.js";
|
|
39
40
|
import "./chunk-LDXUBPMO.js";
|
|
40
|
-
import "./chunk-
|
|
41
|
+
import "./chunk-2FTRRQKZ.js";
|
|
41
42
|
import "./chunk-CGASUJVP.js";
|
|
42
43
|
import "./chunk-R3DJVOSM.js";
|
|
43
44
|
import "./chunk-BT7NVCML.js";
|
|
@@ -46,6 +47,7 @@ import "./chunk-RL6NEVXT.js";
|
|
|
46
47
|
import "./chunk-JYIJNNN3.js";
|
|
47
48
|
import "./chunk-AAD2ZS6P.js";
|
|
48
49
|
import "./chunk-YXZG5TVN.js";
|
|
50
|
+
import "./chunk-W5H6ZRPT.js";
|
|
49
51
|
import "./chunk-G7D6GZ5J.js";
|
|
50
52
|
import "./chunk-DLVPUX7U.js";
|
|
51
53
|
import "./chunk-IJ7HK452.js";
|
|
@@ -54,7 +56,6 @@ import "./chunk-4J7G5SY4.js";
|
|
|
54
56
|
import "./chunk-DNHVPZOD.js";
|
|
55
57
|
import "./chunk-6CIAGZ6X.js";
|
|
56
58
|
import "./chunk-FFAZ2XFU.js";
|
|
57
|
-
import "./chunk-W5H6ZRPT.js";
|
|
58
59
|
import "./chunk-XMMESCPD.js";
|
|
59
60
|
import "./chunk-42JKGUFJ.js";
|
|
60
61
|
import "./chunk-C23BYTJV.js";
|
|
@@ -73,7 +74,6 @@ import "./chunk-EYIEWJNI.js";
|
|
|
73
74
|
import "./chunk-JUC24CTX.js";
|
|
74
75
|
import "./chunk-6MKAMLQL.js";
|
|
75
76
|
import "./chunk-JAKIDQB2.js";
|
|
76
|
-
import "./chunk-TBBDFYXW.js";
|
|
77
77
|
import "./chunk-BJMBJZ2Y.js";
|
|
78
78
|
import "./chunk-UKJAGEXH.js";
|
|
79
79
|
import "./chunk-FP2373TW.js";
|
package/dist/storage.js
CHANGED
|
@@ -13,25 +13,25 @@ import {
|
|
|
13
13
|
parseFrontmatter,
|
|
14
14
|
parseFrontmatterStringValue,
|
|
15
15
|
serializeEntityFile
|
|
16
|
-
} from "./chunk-
|
|
17
|
-
import "./chunk-UHVXE24Y.js";
|
|
16
|
+
} from "./chunk-OHLNFI6Z.js";
|
|
18
17
|
import "./chunk-ENTCVTQR.js";
|
|
18
|
+
import "./chunk-UHVXE24Y.js";
|
|
19
19
|
import "./chunk-WIPEXG6R.js";
|
|
20
20
|
import "./chunk-J6A3CX5N.js";
|
|
21
21
|
import "./chunk-GSL47NPM.js";
|
|
22
|
-
import "./chunk-
|
|
22
|
+
import "./chunk-WUNIWKY4.js";
|
|
23
23
|
import "./chunk-EGGE52UU.js";
|
|
24
24
|
import "./chunk-ZA53AZND.js";
|
|
25
|
-
import "./chunk-7RJUVTVF.js";
|
|
26
|
-
import "./chunk-SCU65EZI.js";
|
|
27
25
|
import "./chunk-WRJVB3C2.js";
|
|
28
26
|
import "./chunk-GCASGYIO.js";
|
|
27
|
+
import "./chunk-7RJUVTVF.js";
|
|
28
|
+
import "./chunk-SCU65EZI.js";
|
|
29
29
|
import "./chunk-DM2T26WE.js";
|
|
30
30
|
import "./chunk-LDXUBPMO.js";
|
|
31
31
|
import {
|
|
32
32
|
ContentHashIndex,
|
|
33
33
|
FactHashIndexNotAuthoritativeError
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-2FTRRQKZ.js";
|
|
35
35
|
import "./chunk-CGASUJVP.js";
|
|
36
36
|
import {
|
|
37
37
|
normalizeAttributePairs,
|
|
@@ -45,6 +45,7 @@ import "./chunk-AAD2ZS6P.js";
|
|
|
45
45
|
import {
|
|
46
46
|
normalizeEntityName
|
|
47
47
|
} from "./chunk-YXZG5TVN.js";
|
|
48
|
+
import "./chunk-W5H6ZRPT.js";
|
|
48
49
|
import "./chunk-G7D6GZ5J.js";
|
|
49
50
|
import "./chunk-DLVPUX7U.js";
|
|
50
51
|
import "./chunk-IJ7HK452.js";
|
|
@@ -53,7 +54,6 @@ import "./chunk-4J7G5SY4.js";
|
|
|
53
54
|
import "./chunk-DNHVPZOD.js";
|
|
54
55
|
import "./chunk-6CIAGZ6X.js";
|
|
55
56
|
import "./chunk-FFAZ2XFU.js";
|
|
56
|
-
import "./chunk-W5H6ZRPT.js";
|
|
57
57
|
import "./chunk-XMMESCPD.js";
|
|
58
58
|
import "./chunk-42JKGUFJ.js";
|
|
59
59
|
import "./chunk-C23BYTJV.js";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
importSqlite
|
|
3
|
-
} from "../chunk-
|
|
4
|
-
import "../chunk-G4IAEX6D.js";
|
|
3
|
+
} from "../chunk-PYHOAXTI.js";
|
|
5
4
|
import "../chunk-Z734BLO3.js";
|
|
5
|
+
import "../chunk-G4IAEX6D.js";
|
|
6
6
|
import "../chunk-RL6NEVXT.js";
|
|
7
7
|
import "../chunk-GCGJW34D.js";
|
|
8
8
|
import "../chunk-PZ5AY32C.js";
|
package/dist/verified-recall.js
CHANGED
|
@@ -1,24 +1,25 @@
|
|
|
1
1
|
import {
|
|
2
2
|
compareVerifiedEpisodeResults,
|
|
3
3
|
searchVerifiedEpisodes
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-HGFILS2Q.js";
|
|
5
5
|
import "./chunk-B7RWBZXW.js";
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
6
|
+
import "./chunk-ZBJMUXZH.js";
|
|
7
|
+
import "./chunk-OHLNFI6Z.js";
|
|
8
8
|
import "./chunk-ENTCVTQR.js";
|
|
9
|
+
import "./chunk-UHVXE24Y.js";
|
|
9
10
|
import "./chunk-WIPEXG6R.js";
|
|
10
11
|
import "./chunk-J6A3CX5N.js";
|
|
11
12
|
import "./chunk-GSL47NPM.js";
|
|
12
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-WUNIWKY4.js";
|
|
13
14
|
import "./chunk-EGGE52UU.js";
|
|
14
15
|
import "./chunk-ZA53AZND.js";
|
|
15
|
-
import "./chunk-7RJUVTVF.js";
|
|
16
|
-
import "./chunk-SCU65EZI.js";
|
|
17
16
|
import "./chunk-WRJVB3C2.js";
|
|
18
17
|
import "./chunk-GCASGYIO.js";
|
|
18
|
+
import "./chunk-7RJUVTVF.js";
|
|
19
|
+
import "./chunk-SCU65EZI.js";
|
|
19
20
|
import "./chunk-DM2T26WE.js";
|
|
20
21
|
import "./chunk-LDXUBPMO.js";
|
|
21
|
-
import "./chunk-
|
|
22
|
+
import "./chunk-2FTRRQKZ.js";
|
|
22
23
|
import "./chunk-CGASUJVP.js";
|
|
23
24
|
import "./chunk-R3DJVOSM.js";
|
|
24
25
|
import "./chunk-BT7NVCML.js";
|
|
@@ -27,6 +28,7 @@ import "./chunk-RL6NEVXT.js";
|
|
|
27
28
|
import "./chunk-JYIJNNN3.js";
|
|
28
29
|
import "./chunk-AAD2ZS6P.js";
|
|
29
30
|
import "./chunk-YXZG5TVN.js";
|
|
31
|
+
import "./chunk-W5H6ZRPT.js";
|
|
30
32
|
import "./chunk-G7D6GZ5J.js";
|
|
31
33
|
import "./chunk-DLVPUX7U.js";
|
|
32
34
|
import "./chunk-IJ7HK452.js";
|
|
@@ -35,7 +37,6 @@ import "./chunk-4J7G5SY4.js";
|
|
|
35
37
|
import "./chunk-DNHVPZOD.js";
|
|
36
38
|
import "./chunk-6CIAGZ6X.js";
|
|
37
39
|
import "./chunk-FFAZ2XFU.js";
|
|
38
|
-
import "./chunk-W5H6ZRPT.js";
|
|
39
40
|
import "./chunk-XMMESCPD.js";
|
|
40
41
|
import "./chunk-42JKGUFJ.js";
|
|
41
42
|
import "./chunk-C23BYTJV.js";
|
|
@@ -52,7 +53,6 @@ import "./chunk-EYIEWJNI.js";
|
|
|
52
53
|
import "./chunk-JUC24CTX.js";
|
|
53
54
|
import "./chunk-6MKAMLQL.js";
|
|
54
55
|
import "./chunk-JAKIDQB2.js";
|
|
55
|
-
import "./chunk-ZBJMUXZH.js";
|
|
56
56
|
import "./chunk-BJMBJZ2Y.js";
|
|
57
57
|
import "./chunk-UKJAGEXH.js";
|
|
58
58
|
import "./chunk-FP2373TW.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@remnic/core",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.44.0",
|
|
4
4
|
"description": "Framework-agnostic Remnic memory engine — orchestrator, storage, extraction, search, trust zones",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -166,6 +166,16 @@
|
|
|
166
166
|
"remnic-source": "./src/reconcile/plan.ts",
|
|
167
167
|
"import": "./dist/reconcile/plan.js"
|
|
168
168
|
},
|
|
169
|
+
"./reconcile/cursor": {
|
|
170
|
+
"types": "./dist/reconcile/cursor.d.ts",
|
|
171
|
+
"remnic-source": "./src/reconcile/cursor.ts",
|
|
172
|
+
"import": "./dist/reconcile/cursor.js"
|
|
173
|
+
},
|
|
174
|
+
"./reconcile/cursor.js": {
|
|
175
|
+
"types": "./dist/reconcile/cursor.d.ts",
|
|
176
|
+
"remnic-source": "./src/reconcile/cursor.ts",
|
|
177
|
+
"import": "./dist/reconcile/cursor.js"
|
|
178
|
+
},
|
|
169
179
|
"./adapters/codex": {
|
|
170
180
|
"types": "./dist/adapters/codex.d.ts",
|
|
171
181
|
"remnic-source": "./src/adapters/codex.ts",
|
|
@@ -3086,7 +3096,7 @@
|
|
|
3086
3096
|
"core"
|
|
3087
3097
|
],
|
|
3088
3098
|
"peerDependencies": {
|
|
3089
|
-
"@remnic/coding-graph": "^9.
|
|
3099
|
+
"@remnic/coding-graph": "^9.44.0"
|
|
3090
3100
|
},
|
|
3091
3101
|
"peerDependenciesMeta": {
|
|
3092
3102
|
"@remnic/coding-graph": {
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { EngramAccessInputError } from "./access-service.js";
|
|
2
|
+
|
|
3
|
+
/** Optional string field from a JSON body: absent/null/"" → undefined. */
|
|
4
|
+
export function optionalQueryString(value: unknown, label: string): string | undefined {
|
|
5
|
+
if (value === undefined || value === null || value === "") return undefined;
|
|
6
|
+
if (typeof value !== "string") {
|
|
7
|
+
throw new EngramAccessInputError(`${label} must be a string (got ${JSON.stringify(value)})`);
|
|
8
|
+
}
|
|
9
|
+
return value;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/** Optional non-empty query param: null/"" → undefined. */
|
|
13
|
+
export function nonEmptyQueryParam(value: string | null): string | undefined {
|
|
14
|
+
return value !== null && value.length > 0 ? value : undefined;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/** Optional positive-integer query param; rejects invalid values. */
|
|
18
|
+
export function positiveIntQueryParam(value: string | null, label: string): number | undefined {
|
|
19
|
+
if (value === null || value.length === 0) return undefined;
|
|
20
|
+
const parsed = Number(value);
|
|
21
|
+
if (!Number.isFinite(parsed) || parsed <= 0 || !Number.isInteger(parsed)) {
|
|
22
|
+
throw new EngramAccessInputError(`${label} expects a positive integer`);
|
|
23
|
+
}
|
|
24
|
+
return parsed;
|
|
25
|
+
}
|
package/src/access-http.test.ts
CHANGED
|
@@ -3648,3 +3648,139 @@ test("HTTP authorization probe verifies requested operation grants without invok
|
|
|
3648
3648
|
await server.stop();
|
|
3649
3649
|
}
|
|
3650
3650
|
});
|
|
3651
|
+
|
|
3652
|
+
test("HTTP convergence completion forwards one authenticated namespace batch refresh", async () => {
|
|
3653
|
+
const calls: Array<{ namespaces: string[]; principal?: string; sourceId: string }> = [];
|
|
3654
|
+
const service = {
|
|
3655
|
+
offlineSyncFinalizeConvergence: async (options: {
|
|
3656
|
+
namespaces: string[];
|
|
3657
|
+
principal?: string;
|
|
3658
|
+
sourceId: string;
|
|
3659
|
+
}) => {
|
|
3660
|
+
calls.push(options);
|
|
3661
|
+
return { namespaces: options.namespaces, refreshed: true as const };
|
|
3662
|
+
},
|
|
3663
|
+
} as unknown as EngramAccessService;
|
|
3664
|
+
const server = new EngramAccessHttpServer({
|
|
3665
|
+
service,
|
|
3666
|
+
port: 0,
|
|
3667
|
+
authToken: "test-token",
|
|
3668
|
+
principal: "writer",
|
|
3669
|
+
adminConsoleEnabled: false,
|
|
3670
|
+
});
|
|
3671
|
+
const route = "/remnic/v1/offline-sync/convergence-complete?namespace=team&namespace=shared";
|
|
3672
|
+
|
|
3673
|
+
const status = await server.start();
|
|
3674
|
+
try {
|
|
3675
|
+
const denied = await fetch(`http://127.0.0.1:${status.port}${route}`, {
|
|
3676
|
+
method: "POST",
|
|
3677
|
+
headers: { "x-remnic-source-id": encodeURIComponent("remnic-converge") },
|
|
3678
|
+
});
|
|
3679
|
+
assert.equal(denied.status, 401);
|
|
3680
|
+
|
|
3681
|
+
const response = await fetch(`http://127.0.0.1:${status.port}${route}`, {
|
|
3682
|
+
method: "POST",
|
|
3683
|
+
headers: {
|
|
3684
|
+
authorization: "Bearer test-token",
|
|
3685
|
+
"x-remnic-source-id": encodeURIComponent("remnic-converge"),
|
|
3686
|
+
},
|
|
3687
|
+
});
|
|
3688
|
+
|
|
3689
|
+
assert.equal(response.status, 200);
|
|
3690
|
+
assert.deepEqual(await response.json(), {
|
|
3691
|
+
namespaces: ["team", "shared"],
|
|
3692
|
+
refreshed: true,
|
|
3693
|
+
});
|
|
3694
|
+
assert.deepEqual(calls, [{
|
|
3695
|
+
namespaces: ["team", "shared"],
|
|
3696
|
+
principal: "writer",
|
|
3697
|
+
sourceId: "remnic-converge",
|
|
3698
|
+
}]);
|
|
3699
|
+
} finally {
|
|
3700
|
+
await server.stop();
|
|
3701
|
+
}
|
|
3702
|
+
});
|
|
3703
|
+
|
|
3704
|
+
test("HTTP convergence completion enforces the per-principal write rate limit", async () => {
|
|
3705
|
+
let completions = 0;
|
|
3706
|
+
const service = {
|
|
3707
|
+
offlineSyncFinalizeConvergence: async () => {
|
|
3708
|
+
completions += 1;
|
|
3709
|
+
return { namespaces: ["team"], refreshed: true as const };
|
|
3710
|
+
},
|
|
3711
|
+
} as unknown as EngramAccessService;
|
|
3712
|
+
const server = new EngramAccessHttpServer({
|
|
3713
|
+
service,
|
|
3714
|
+
port: 0,
|
|
3715
|
+
authToken: "test-token",
|
|
3716
|
+
adminConsoleEnabled: false,
|
|
3717
|
+
writeRateLimitMaxRequests: 1,
|
|
3718
|
+
});
|
|
3719
|
+
const status = await server.start();
|
|
3720
|
+
const route = `http://127.0.0.1:${status.port}/remnic/v1/offline-sync/convergence-complete?namespace=team`;
|
|
3721
|
+
const requestOptions: RequestInit = {
|
|
3722
|
+
method: "POST",
|
|
3723
|
+
headers: {
|
|
3724
|
+
authorization: "Bearer test-token",
|
|
3725
|
+
"x-remnic-source-id": encodeURIComponent("remnic-converge"),
|
|
3726
|
+
},
|
|
3727
|
+
};
|
|
3728
|
+
|
|
3729
|
+
try {
|
|
3730
|
+
const first = await fetch(route, requestOptions);
|
|
3731
|
+
assert.equal(first.status, 200);
|
|
3732
|
+
await first.text();
|
|
3733
|
+
|
|
3734
|
+
const second = await fetch(route, requestOptions);
|
|
3735
|
+
assert.equal(second.status, 429);
|
|
3736
|
+
const rateLimited: unknown = await second.json();
|
|
3737
|
+
assert.ok(rateLimited && typeof rateLimited === "object" && "code" in rateLimited);
|
|
3738
|
+
assert.equal(rateLimited.code, "write_rate_limited");
|
|
3739
|
+
assert.equal(completions, 1, "the rate-limited completion must not reach the service");
|
|
3740
|
+
} finally {
|
|
3741
|
+
await server.stop();
|
|
3742
|
+
}
|
|
3743
|
+
});
|
|
3744
|
+
|
|
3745
|
+
test("HTTP convergence completion denies scoped tokens that omit the namespace", async () => {
|
|
3746
|
+
let completions = 0;
|
|
3747
|
+
const service = {
|
|
3748
|
+
configRef: parseConfig({
|
|
3749
|
+
memoryDir: "/tmp/remnic-http-convergence-completion-namespace",
|
|
3750
|
+
namespacesEnabled: true,
|
|
3751
|
+
defaultNamespace: "default",
|
|
3752
|
+
}),
|
|
3753
|
+
offlineSyncFinalizeConvergence: async () => {
|
|
3754
|
+
completions += 1;
|
|
3755
|
+
return { namespaces: ["default"], refreshed: true as const };
|
|
3756
|
+
},
|
|
3757
|
+
} as unknown as EngramAccessService;
|
|
3758
|
+
const server = new EngramAccessHttpServer({
|
|
3759
|
+
service,
|
|
3760
|
+
port: 0,
|
|
3761
|
+
authTokenEntriesGetter: () => [
|
|
3762
|
+
{ token: "scoped-token", capabilities: { version: 1, namespaces: ["team"] } },
|
|
3763
|
+
],
|
|
3764
|
+
adminConsoleEnabled: false,
|
|
3765
|
+
});
|
|
3766
|
+
const status = await server.start();
|
|
3767
|
+
|
|
3768
|
+
try {
|
|
3769
|
+
const response = await fetch(
|
|
3770
|
+
`http://127.0.0.1:${status.port}/remnic/v1/offline-sync/convergence-complete`,
|
|
3771
|
+
{
|
|
3772
|
+
method: "POST",
|
|
3773
|
+
headers: {
|
|
3774
|
+
authorization: "Bearer scoped-token",
|
|
3775
|
+
"x-remnic-source-id": encodeURIComponent("remnic-converge"),
|
|
3776
|
+
},
|
|
3777
|
+
},
|
|
3778
|
+
);
|
|
3779
|
+
|
|
3780
|
+
assert.equal(response.status, 403);
|
|
3781
|
+
await response.text();
|
|
3782
|
+
assert.equal(completions, 0, "the denied completion must not reach the service");
|
|
3783
|
+
} finally {
|
|
3784
|
+
await server.stop();
|
|
3785
|
+
}
|
|
3786
|
+
});
|